blob: c98ced1b7ecec64c367d92a582339fb3d7cbc53b [file] [log] [blame]
/*
* Command structure 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_cmd.h 428479 2013-10-08 23:08:49Z $
*/
#ifndef _wlu_cmd_h_
#define _wlu_cmd_h_
typedef struct cmd cmd_t;
typedef int (cmd_func_t)(void *wl, cmd_t *cmd, char **argv);
/* generic command line argument handler */
struct cmd {
const char *name;
cmd_func_t *func;
int get;
int set;
const char *help;
};
/* list of command line arguments */
extern cmd_t wl_cmds[];
extern cmd_t wl_varcmd;
/* per-port ioctl handlers */
extern int wl_get(void *wl, int cmd, void *buf, int len);
extern int wl_set(void *wl, int cmd, void *buf, int len);
/*
* Flags for command categories. A command may belong to
* multiple categories. These are used in bitmaps, so be careful
* to keep the macro value (2 ^ n) and the array indexes (n)
* consistent.
*/
#define CMD_PHY 0x1
#define CMD_CHAN 0x2
#define CMD_RATE 0x4
#define CMD_POWER 0x8
#define CMD_MAC 0x10
#define CMD_MGMT 0x20
#define CMD_SEC 0x40
#define CMD_WME 0x80
#define CMD_MON 0x100
#define CMD_AP 0x200
#define CMD_STA 0x400
#define CMD_BOARD 0x800
#define CMD_ADMIN 0x1000
#define CMD_DEV 0x2000
#define CMD_DEP 0x4000
#define CMD_UNCAT 0x8000
#define CMD_ALL 0xffff
/* Initializer for category string array */
#define CMD_CATEGORY_STRINGS_INIT { \
"phy", \
"chan", \
"rate", \
"power", \
"mac", \
"mgmt", \
"sec", \
"wme", \
"mon", \
"ap", \
"sta", \
"board", \
"admin", \
"dev", \
"dep", \
"uncat", \
"" }
extern const char *wl_cmd_category_strings[];
extern const int wl_cmd_category_count;
/* Initializer for category description strings array */
#define CMD_CATEGORY_DESC_INIT { \
"PHY and radio; speed, band, etc", \
"Channel; subclass of phy", \
"Rate; subclass of phy, a/b/g", \
"Power; subclass of phy", \
"MAC; Media access", \
"Management, association, IE, etc", \
"Security; subclass of mgmt", \
"WME; media extensions", \
"Monitoring device (counters, etc)", \
"AP subclass of mgmt", \
"STA subclass of mgmt", \
"Board, hardware", \
"Administration; software, UI, diags", \
"Device; low level control", \
"Deprecated", \
"Uncategorized so far", \
"" }
extern const char *wl_cmd_category_desc[];
/*
*
* IO variable information
*
*/
/* Supplemental IO variable info structure */
typedef const struct wlu_iov_info_s {
const char *name;
uint32 cat; /* Category flags; same as command categories */
uint32 flags; /* See below */
int dflt; /* Only for integers; see flags */
const char *desc; /* Description */
} wlu_iov_info_t;
/* Flags for wlu_iov_info_t */
#define WLU_IOVI_READ_ONLY 0x1 /* Known to be read only */
#define WLU_IOVI_WRITE_ONLY 0x2 /* Known to be write only */
#define WLU_IOVI_BCM_INTERNAL 0x4 /* Known to be BCM internal */
#define WLU_IOVI_DEFAULT_VALID 0x8 /* Default value in structure is valid */
extern wlu_iov_info_t wlu_iov_info[];
extern int wlu_iov_info_count;
#define WLU_IOV_BLOCK_LEN 10
#define WLU_MOD_NAME_MAX 64 /* Max num modules */
#define WLU_MOD_NAME_BYTES 16 /* Size of modules name */
extern int wl_get_scan(void *wl, int opc, char *scan_buf, uint buf_len);
#endif /* _wlu_cmd_h_ */