Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a28792e7 authored by Brett Rudley's avatar Brett Rudley Committed by Greg Kroah-Hartman
Browse files

staging: brcm80211: Remove cruft from wlioctl.h

parent 9014378b
Loading
Loading
Loading
Loading
+6 −323
Original line number Diff line number Diff line
@@ -34,82 +34,8 @@
#include <packed_section_start.h>

#ifdef BRCM_FULLMAC
/* Legacy structure to help keep backward compatible wl tool and tray app */

#define	LEGACY_WL_BSS_INFO_VERSION	107	/* older version of wl_bss_info struct */

typedef struct wl_bss_info_107 {
	u32 version;		/* version field */
	u32 length;		/* byte length of data in this record,
				 * starting at version and including IEs
				 */
	struct ether_addr BSSID;
	u16 beacon_period;	/* units are Kusec */
	u16 capability;	/* Capability information */
	u8 SSID_len;
	u8 SSID[32];
	struct {
		uint count;	/* # rates in this set */
		u8 rates[16];	/* rates in 500kbps units w/hi bit set if basic */
	} rateset;		/* supported rates */
	u8 channel;		/* Channel no. */
	u16 atim_window;	/* units are Kusec */
	u8 dtim_period;	/* DTIM period */
	s16 RSSI;		/* receive signal strength (in dBm) */
	s8 phy_noise;		/* noise (in dBm) */
	u32 ie_length;	/* byte length of Information Elements */
	/* variable length Information Elements */
} wl_bss_info_107_t;

/*
 * Per-BSS information structure.
 */

#define	LEGACY2_WL_BSS_INFO_VERSION	108	/* old version of wl_bss_info struct */

/* BSS info structure
 * Applications MUST CHECK ie_offset field and length field to access IEs and
 * next bss_info structure in a vector (in wl_scan_results_t)
 */
typedef struct wl_bss_info_108 {
	u32 version;		/* version field */
	u32 length;		/* byte length of data in this record,
				 * starting at version and including IEs
				 */
	struct ether_addr BSSID;
	u16 beacon_period;	/* units are Kusec */
	u16 capability;	/* Capability information */
	u8 SSID_len;
	u8 SSID[32];
	struct {
		uint count;	/* # rates in this set */
		u8 rates[16];	/* rates in 500kbps units w/hi bit set if basic */
	} rateset;		/* supported rates */
	chanspec_t chanspec;	/* chanspec for bss */
	u16 atim_window;	/* units are Kusec */
	u8 dtim_period;	/* DTIM period */
	s16 RSSI;		/* receive signal strength (in dBm) */
	s8 phy_noise;		/* noise (in dBm) */

	u8 n_cap;		/* BSS is 802.11N Capable */
	u32 nbss_cap;	/* 802.11N BSS Capabilities (based on HT_CAP_*) */
	u8 ctl_ch;		/* 802.11N BSS control channel number */
	u32 reserved32[1];	/* Reserved for expansion of BSS properties */
	u8 flags;		/* flags */
	u8 reserved[3];	/* Reserved for expansion of BSS properties */
	u8 basic_mcs[MCSSET_LEN];	/* 802.11N BSS required MCS set */

	u16 ie_offset;	/* offset at which IEs start, from beginning */
	u32 ie_length;	/* byte length of Information Elements */
	/* Add new fields here */
	/* variable length Information Elements */
} wl_bss_info_108_t;

#ifdef BRCM_FULLMAC
#define	WL_BSS_INFO_VERSION	108	/* current ver of wl_bss_info struct */
#else
#define	WL_BSS_INFO_VERSION	109	/* current ver of wl_bss_info struct */
#endif

/* BSS info structure
 * Applications MUST CHECK ie_offset field and length field to access IEs and
@@ -633,27 +559,6 @@ typedef struct wl_led_info {
	u8 activehi;
} wl_led_info_t;

/* flags */
#define WLC_ASSOC_REQ_IS_REASSOC 0x01	/* assoc req was actually a reassoc */

/* srom read/write struct passed through ioctl */
typedef struct {
	uint byteoff;		/* byte offset */
	uint nbytes;		/* number of bytes */
	u16 buf[1];
} srom_rw_t;

/* similar cis (srom or otp) struct [iovar: may not be aligned] */
typedef struct {
	u32 source;		/* cis source */
	u32 byteoff;		/* byte offset */
	u32 nbytes;		/* number of bytes */
	/* data follows here */
} cis_rw_t;

#define WLC_CIS_DEFAULT	0	/* built-in default */
#define WLC_CIS_SROM	1	/* source is sprom */
#define WLC_CIS_OTP	2	/* source is otp */

/* R_REG and W_REG struct passed through ioctl */
typedef struct {
@@ -663,102 +568,14 @@ typedef struct {
	uint band;		/* band (optional) */
} rw_reg_t;

/* Structure used by GET/SET_ATTEN ioctls - it controls power in b/g-band */
/* PCL - Power Control Loop */
/* current gain setting is replaced by user input */
#define WL_ATTEN_APP_INPUT_PCL_OFF	0	/* turn off PCL, apply supplied input */
#define WL_ATTEN_PCL_ON			1	/* turn on PCL */
/* current gain setting is maintained */
#define WL_ATTEN_PCL_OFF		2	/* turn off PCL. */

typedef struct {
	u16 auto_ctrl;	/* WL_ATTEN_XX */
	u16 bb;		/* Baseband attenuation */
	u16 radio;		/* Radio attenuation */
	u16 txctl1;		/* Radio TX_CTL1 value */
} atten_t;

/* Per-AC retry parameters */
struct wme_tx_params_s {
	u8 short_retry;
	u8 short_fallback;
	u8 long_retry;
	u8 long_fallback;
	u16 max_rate;	/* In units of 512 Kbps */
};

typedef struct wme_tx_params_s wme_tx_params_t;

#define WL_WME_TX_PARAMS_IO_BYTES (sizeof(wme_tx_params_t) * AC_COUNT)

/* defines used by poweridx iovar - it controls power in a-band */
/* current gain setting is maintained */
#define WL_PWRIDX_PCL_OFF	-2	/* turn off PCL.  */
#define WL_PWRIDX_PCL_ON	-1	/* turn on PCL */
#define WL_PWRIDX_LOWER_LIMIT	-2	/* lower limit */
#define WL_PWRIDX_UPPER_LIMIT	63	/* upper limit */
/* value >= 0 causes
 *	- input to be set to that value
 *	- PCL to be off
 */

/* Used to get specific link/ac parameters */
typedef struct {
	int ac;
	u8 val;
	struct ether_addr ea;
} link_val_t;

#define BCM_MAC_STATUS_INDICATION	(0x40010200L)

typedef struct {
	u16 ver;		/* version of this struct */
	u16 len;		/* length in bytes of this structure */
	u16 cap;		/* sta's advertised capabilities */
	u32 flags;		/* flags defined below */
	u32 idle;		/* time since data pkt rx'd from sta */
	struct ether_addr ea;	/* Station address */
	wl_rateset_t rateset;	/* rateset in use */
	u32 in;		/* seconds elapsed since associated */
	u32 listen_interval_inms;	/* Min Listen interval in ms for this STA */
	u32 tx_pkts;		/* # of packets transmitted */
	u32 tx_failures;	/* # of packets failed */
	u32 rx_ucast_pkts;	/* # of unicast packets received */
	u32 rx_mcast_pkts;	/* # of multicast packets received */
	u32 tx_rate;		/* Rate of last successful tx frame */
	u32 rx_rate;		/* Rate of last successful rx frame */
	u32 rx_decrypt_succeeds;	/* # of packet decrypted successfully */
	u32 rx_decrypt_failures;	/* # of packet decrypted unsuccessfully */
} sta_info_t;

#define WL_OLD_STAINFO_SIZE	offsetof(sta_info_t, tx_pkts)

#define WL_STA_VER		3

/* Flags for sta_info_t indicating properties of STA */
#define WL_STA_BRCM		0x1	/* Running a Broadcom driver */
#define WL_STA_WME		0x2	/* WMM association */
#define WL_STA_ABCAP		0x4
#define WL_STA_AUTHE		0x8	/* Authenticated */
#define WL_STA_ASSOC		0x10	/* Associated */
#define WL_STA_AUTHO		0x20	/* Authorized */
#define WL_STA_WDS		0x40	/* Wireless Distribution System */
#define WL_STA_WDS_LINKUP	0x80	/* WDS traffic/probes flowing properly */
#define WL_STA_PS		0x100	/* STA is in power save mode from AP's viewpoint */
#define WL_STA_APSD_BE		0x200	/* APSD delv/trigger for AC_BE is default enabled */
#define WL_STA_APSD_BK		0x400	/* APSD delv/trigger for AC_BK is default enabled */
#define WL_STA_APSD_VI		0x800	/* APSD delv/trigger for AC_VI is default enabled */
#define WL_STA_APSD_VO		0x1000	/* APSD delv/trigger for AC_VO is default enabled */
#define WL_STA_N_CAP		0x2000	/* STA 802.11n capable */
#define WL_STA_SCBSTATS		0x4000	/* Per STA debug stats */

#define WL_WDS_LINKUP		WL_STA_WDS_LINKUP	/* deprecated */

#ifdef BRCM_FULLMAC
/* Used to get specific STA parameters */
typedef struct {
	u32 val;
	struct ether_addr ea;
} scb_val_t;
#endif /* BRCM_FULLMAC */

/* channel encoding */
typedef struct channel_info {
@@ -782,6 +599,7 @@ typedef struct get_pktcnt {
	uint rx_ocast_good_pkt;	/* unicast packets destined for others */
} get_pktcnt_t;

#ifdef BRCM_FULLMAC
/* Linux network driver ioctl encoding */
typedef struct wl_ioctl {
	uint cmd;		/* common ioctl definition */
@@ -791,11 +609,8 @@ typedef struct wl_ioctl {
	uint used;		/* bytes read or written (optional) */
	uint needed;		/* bytes needed (optional) */
} wl_ioctl_t;
#endif /* BRCM_FULLMAC */

/* reference to wl_ioctl_t struct used by usermode driver */
#define ioctl_subtype	set	/* subtype param */
#define ioctl_pid	used	/* pid param */
#define ioctl_status	needed	/* status param */

/*
 * Structure for passing hardware and software
@@ -822,45 +637,11 @@ typedef struct wlc_rev_info {

#define WL_REV_INFO_LEGACY_LENGTH	48

#define WL_BRAND_MAX 10
typedef struct wl_instance_info {
	uint instance;
	char brand[WL_BRAND_MAX];
} wl_instance_info_t;

/* structure to change size of tx fifo */
typedef struct wl_txfifo_sz {
	u16 magic;
	u16 fifo;
	u16 size;
} wl_txfifo_sz_t;
/* magic pattern used for mismatch driver and wl */
#define WL_TXFIFO_SZ_MAGIC	0xa5a5

/* Transfer info about an IOVar from the driver */
/* Max supported IOV name size in bytes, + 1 for nul termination */
#define WLC_IOV_NAME_LEN 30
typedef struct wlc_iov_trx_s {
	u8 module;
	u8 type;
	char name[WLC_IOV_NAME_LEN];
} wlc_iov_trx_t;

/* check this magic number */
#define WLC_IOCTL_MAGIC		0x14e46c77

#define PROC_ENTRY_NAME "brcm_debug"
/* bump this number if you change the ioctl interface */
#define WLC_IOCTL_VERSION	1

#ifdef BRCM_FULLMAC
#define	WLC_IOCTL_MAXLEN	8192
#else
#define	WLC_IOCTL_MAXLEN		3072	/* max length ioctl buffer required */
#endif
#define	WLC_IOCTL_SMLEN			256	/* "small" length ioctl buffer required */
#define WLC_IOCTL_MEDLEN		1536	/* "med" length ioctl buffer required */
#define WLC_SAMPLECOLLECT_MAXLEN	10240	/* Max Sample Collect buffer for two cores */
#define	WLC_IOCTL_MAXLEN	8192
#endif

/* common ioctl definitions */
#define WLC_GET_MAGIC				0
@@ -1411,23 +1192,6 @@ typedef struct {
#define WL_TX_POWER_MCS40_FIRST	        28
#define WL_TX_POWER_MCS40_NUM	        17

typedef struct {
	u32 flags;
	chanspec_t chanspec;	/* txpwr report for this channel */
	chanspec_t local_chanspec;	/* channel on which we are associated */
	u8 local_max;	/* local max according to the AP */
	u8 local_constraint;	/* local constraint according to the AP */
	s8 antgain[2];	/* Ant gain for each band - from SROM */
	u8 rf_cores;		/* count of RF Cores being reported */
	u8 est_Pout[4];	/* Latest tx power out estimate per RF
				 * chain without adjustment
				 */
	u8 est_Pout_cck;	/* Latest CCK tx power out estimate */
	u8 user_limit[WL_TX_POWER_RATES_LEGACY];	/* User limit */
	u8 reg_limit[WL_TX_POWER_RATES_LEGACY];	/* Regulatory power limit */
	u8 board_limit[WL_TX_POWER_RATES_LEGACY];	/* Max power board can support (SROM) */
	u8 target[WL_TX_POWER_RATES_LEGACY];	/* Latest target power */
} tx_power_legacy2_t;

#define WL_TX_POWER_RATES	       101
#define WL_TX_POWER_CCK_FIRST	       0
@@ -1860,63 +1624,6 @@ struct ampdu_retry_tid {
	u8 retry;		/* retry value */
};

/* structure for addts arguments */
/* For ioctls that take a list of TSPEC */
struct tslist {
	int count;		/* number of tspecs */
	struct tsinfo_arg tsinfo[1];	/* variable length array of tsinfo */
};

/* structure for addts/delts arguments */
typedef struct tspec_arg {
	u16 version;		/* see definition of TSPEC_ARG_VERSION */
	u16 length;		/* length of entire structure */
	uint flag;		/* bit field */
	/* TSPEC Arguments */
	struct tsinfo_arg tsinfo;	/* TS Info bit field */
	u16 nom_msdu_size;	/* (Nominal or fixed) MSDU Size (bytes) */
	u16 max_msdu_size;	/* Maximum MSDU Size (bytes) */
	uint min_srv_interval;	/* Minimum Service Interval (us) */
	uint max_srv_interval;	/* Maximum Service Interval (us) */
	uint inactivity_interval;	/* Inactivity Interval (us) */
	uint suspension_interval;	/* Suspension Interval (us) */
	uint srv_start_time;	/* Service Start Time (us) */
	uint min_data_rate;	/* Minimum Data Rate (bps) */
	uint mean_data_rate;	/* Mean Data Rate (bps) */
	uint peak_data_rate;	/* Peak Data Rate (bps) */
	uint max_burst_size;	/* Maximum Burst Size (bytes) */
	uint delay_bound;	/* Delay Bound (us) */
	uint min_phy_rate;	/* Minimum PHY Rate (bps) */
	u16 surplus_bw;	/* Surplus Bandwidth Allowance (range 1.0 to 8.0) */
	u16 medium_time;	/* Medium Time (32 us/s periods) */
	u8 dialog_token;	/* dialog token */
} tspec_arg_t;

/* tspec arg for desired station */
typedef struct tspec_per_sta_arg {
	struct ether_addr ea;
	struct tspec_arg ts;
} tspec_per_sta_arg_t;

/* structure for max bandwidth for each access category */
typedef struct wme_max_bandwidth {
	u32 ac[AC_COUNT];	/* max bandwidth for each access category */
} wme_max_bandwidth_t;

#define WL_WME_MBW_PARAMS_IO_BYTES (sizeof(wme_max_bandwidth_t))

/* current version of wl_tspec_arg_t struct */
#define	TSPEC_ARG_VERSION		2	/* current version of wl_tspec_arg_t struct */
#define TSPEC_ARG_LENGTH		55	/* argument length from tsinfo to medium_time */
#define TSPEC_DEFAULT_DIALOG_TOKEN	42	/* default dialog token */
#define TSPEC_DEFAULT_SBW_FACTOR	0x3000	/* default surplus bw */

/* define for flag */
#define TSPEC_PENDING		0	/* TSPEC pending */
#define TSPEC_ACCEPTED		1	/* TSPEC accepted */
#define TSPEC_REJECTED		2	/* TSPEC rejected */
#define TSPEC_UNKNOWN		3	/* TSPEC unknown */
#define TSPEC_STATUS_MASK	7	/* TSPEC status mask */

/* Software feature flag defines used by wlfeatureflag */
#define WL_SWFL_NOHWRADIO	0x0004
@@ -1925,16 +1632,6 @@ typedef struct wme_max_bandwidth {

#define WL_LIFETIME_MAX 0xFFFF	/* Max value in ms */

/*
 * Dongle pattern matching filter.
 */

/* Packet filter types. Currently, only pattern matching is supported. */
typedef enum wl_pkt_filter_type {
	WL_PKT_FILTER_TYPE_PATTERN_MATCH	/* Pattern matching filter */
} wl_pkt_filter_type_t;

#define WL_PKT_FILTER_TYPE wl_pkt_filter_type_t

/* Pattern matching filter. Specifies an offset within received packets to
 * start matching, the pattern to match, the size of the pattern, and a bitmask
@@ -1969,20 +1666,6 @@ typedef struct wl_pkt_filter_enable {
	u32 enable;		/* Enable/disable bool */
} wl_pkt_filter_enable_t;

/* IOVAR "pkt_filter_list" parameter. Used to retrieve a list of installed filters. */
typedef struct wl_pkt_filter_list {
	u32 num;		/* Number of installed packet filters */
	wl_pkt_filter_t filter[1];	/* Variable array of packet filters. */
} wl_pkt_filter_list_t;

#define WL_PKT_FILTER_LIST_FIXED_LEN	  offsetof(wl_pkt_filter_list_t, filter)

/* IOVAR "pkt_filter_stats" parameter. Used to retrieve debug statistics. */
typedef struct wl_pkt_filter_stats {
	u32 num_pkts_matched;	/* # filter matches for specified filter id */
	u32 num_pkts_forwarded;	/* # packets fwded from dongle to host for all filters */
	u32 num_pkts_discarded;	/* # packets discarded by dongle for all filters */
} wl_pkt_filter_stats_t;

#define	WLC_RSSI_INVALID	 0	/* invalid RSSI value */