129 lines
4.1 KiB
C
129 lines
4.1 KiB
C
/*
|
|
* Common code for wl command line utility
|
|
*
|
|
* Copyright 2002, Broadcom Corporation
|
|
* All Rights Reserved.
|
|
*
|
|
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
|
|
* the contents of this file may not be disclosed to third parties, copied or
|
|
* duplicated in any form, in whole or in part, without the prior written
|
|
* permission of Broadcom Corporation.
|
|
*
|
|
* $Id: wlu.h 356283 2012-09-12 02:03:56Z jwang $
|
|
*/
|
|
|
|
#ifndef _wlu_h_
|
|
#define _wlu_h_
|
|
|
|
#include "wlu_cmd.h"
|
|
|
|
extern const char *wlu_av0;
|
|
|
|
/* parse common option */
|
|
extern int wl_option(char ***pargv, char **pifname, int *phelp);
|
|
extern void wl_cmd_init(void);
|
|
extern void wlu_init(void);
|
|
|
|
/* print usage */
|
|
extern void wl_cmd_usage(FILE *fid, cmd_t *cmd);
|
|
extern void wl_usage(FILE *fid, cmd_t *port_cmds);
|
|
extern void wl_cmds_usage(FILE *fid, cmd_t *port_cmds);
|
|
|
|
/* print helpers */
|
|
extern void wl_printlasterror(void *wl);
|
|
extern void wl_printint(int val);
|
|
|
|
/* pretty print an SSID */
|
|
extern int wl_format_ssid(char* buf, uint8* ssid, int ssid_len);
|
|
|
|
/* pretty hex print a contiguous buffer */
|
|
extern void wl_hexdump(uchar *buf, uint nbytes);
|
|
|
|
/* check driver version */
|
|
extern int wl_check(void *wl);
|
|
|
|
/* wl functions used by the ndis wl. */
|
|
extern void dump_rateset(uint8 *rates, uint count);
|
|
extern uint freq2channel(uint freq);
|
|
extern int wl_ether_atoe(const char *a, struct ether_addr *n);
|
|
extern char *wl_ether_etoa(const struct ether_addr *n);
|
|
struct ipv4_addr; /* forward declaration */
|
|
extern int wl_atoip(const char *a, struct ipv4_addr *n);
|
|
extern char *wl_iptoa(const struct ipv4_addr *n);
|
|
extern cmd_func_t wl_int;
|
|
extern cmd_func_t wl_varint;
|
|
extern void wl_dump_raw_ie(bcm_tlv_t *ie, uint len);
|
|
extern int wl_mk_ie_setbuf(const char *command, uint32 pktflag_ok, char **argv,
|
|
vndr_ie_setbuf_t **buf, int *buf_len);
|
|
extern cmd_func_t wl_list_ie;
|
|
|
|
extern void wl_printlasterror(void *wl);
|
|
extern bool wc_cmd_check(const char *cmd);
|
|
|
|
#ifdef BCMINTERNAL
|
|
extern int wl_iov_names(void *wl, cmd_t *cmd, char **argv);
|
|
extern int wl_cmd_help(void *wl, cmd_t *cmd_in, char **argv);
|
|
#endif
|
|
|
|
/* functions for downloading firmware to a device via serial or other transport */
|
|
#ifdef SERDOWNLOAD
|
|
extern int dhd_init(void *dhd, cmd_t *cmd, char **argv);
|
|
extern int dhd_download(void *dhd, cmd_t *cmd, char **argv);
|
|
extern int hsic_download(void *dhd, cmd_t *cmd, char **argv);
|
|
#endif /* SERDOWNLOAD */
|
|
|
|
#ifdef BCMDLL
|
|
#ifdef LOCAL
|
|
extern FILE *dll_fd;
|
|
#else
|
|
extern void * dll_fd_out;
|
|
extern void * dll_fd_in;
|
|
#endif
|
|
#undef printf
|
|
#undef fprintf
|
|
#define printf printf_to_fprintf /* printf to stdout */
|
|
#define fprintf fprintf_to_fprintf /* fprintf to stderr */
|
|
extern void fprintf_to_fprintf(FILE * stderror, const char *fmt, ...);
|
|
extern void printf_to_fprintf(const char *fmt, ...);
|
|
extern void raw_puts(const char *buf, void *dll_fd_out);
|
|
#define fputs(buf, stdout) raw_puts(buf, dll_fd_out)
|
|
#else
|
|
#undef fprintf
|
|
#define fprintf(x, ...) printf(__VA_ARGS__)
|
|
#endif /* BCMDLL */
|
|
|
|
#define RAM_SIZE_4325 0x60000
|
|
#define RAM_SIZE_4329 0x48000
|
|
#define RAM_SIZE_43291 0x60000
|
|
#define RAM_SIZE_4330_a1 0x3c000
|
|
#define RAM_SIZE_4330_b0 0x48000
|
|
|
|
/* useful macros */
|
|
#ifndef ARRAYSIZE
|
|
#define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
|
|
#endif /* ARRAYSIZE */
|
|
|
|
/* buffer length needed for wl_format_ssid
|
|
* 32 SSID chars, max of 4 chars for each SSID char "\xFF", plus NULL
|
|
*/
|
|
#define SSID_FMT_BUF_LEN (4*32+1) /* Length for SSID format string */
|
|
|
|
#define USAGE_ERROR -1 /* Error code for Usage */
|
|
#define IOCTL_ERROR -2 /* Error code for Ioctl failure */
|
|
#define BAD_PARAM -3 /* Error code for bad params, but don't dump cmd_help */
|
|
#define CMD_DEPRECATED -4 /* Commands that are functionally deprecated or don't provide
|
|
* a useful value to a specific OS port of wl
|
|
*/
|
|
|
|
/* integer output format */
|
|
#define INT_FMT_DEC 0 /* signed integer */
|
|
#define INT_FMT_UINT 1 /* unsigned integer */
|
|
#define INT_FMT_HEX 2 /* hexdecimal */
|
|
|
|
/* command line argument usage */
|
|
#define CMD_ERR -1 /* Error for command */
|
|
#define CMD_OPT 0 /* a command line option */
|
|
#define CMD_WL 1 /* the start of a wl command */
|
|
|
|
#endif /* _wlu_h_ */
|