ieee80211_var.h.svn-base

来自「最新之atheros芯片driver source code, 基于linux操」· SVN-BASE 代码 · 共 779 行 · 第 1/3 页

SVN-BASE
779
字号
	unsigned int (*ic_read_register)(struct ieee80211com *, unsigned int, unsigned int*);#endif /* #ifdef ATH_REVERSE_ENGINEERING */	int (*ic_debug_ath_iwpriv)(struct ieee80211com *, unsigned int param, unsigned int value);};#define MAX_PROC_IEEE80211_SIZE 16383#define PROC_IEEE80211_PERM 0644struct proc_ieee80211_priv {	int rlen;	int max_rlen;	char *rbuf;	int wlen;	int max_wlen;	char *wbuf;};struct ieee80211_proc_entry {	char *name;	struct file_operations *fileops;	struct proc_dir_entry *entry;	struct ieee80211_proc_entry *next;};MALLOC_DECLARE(M_80211_VAP);#define	IEEE80211_ADDR_NULL(a1)		(memcmp(a1, "\x00\x00\x00\x00\x00\x00", \					 IEEE80211_ADDR_LEN) == 0)#define	IEEE80211_ADDR_EQ(a1, a2)	(memcmp(a1, a2, IEEE80211_ADDR_LEN) == 0)#define	IEEE80211_ADDR_COPY(dst, src)	memcpy(dst, src, IEEE80211_ADDR_LEN)#define	IEEE80211_ADDR_SET_NULL(dst)	memset(dst, 0, IEEE80211_ADDR_LEN)/* ic_flags */#define	IEEE80211_F_FF		0x00000001		/* CONF: ATH FF enabled */#define	IEEE80211_F_TURBOP	0x00000002		/* CONF: ATH Turbo enabled*/#define	IEEE80211_F_PROMISC	0x00000004		/* STATUS: promiscuous mode */#define	IEEE80211_F_ALLMULTI	0x00000008		/* STATUS: all multicast mode *//* NB: this is intentionally setup to be IEEE80211_CAPINFO_PRIVACY */#define	IEEE80211_F_PRIVACY	0x00000010		/* CONF: privacy enabled */#define	IEEE80211_F_PUREG	0x00000020		/* CONF: 11g w/o 11b STAs */#define	IEEE80211_F_XRUPDATE	0x00000040		/* CONF: update beacon XR element*/#define	IEEE80211_F_SCAN	0x00000080		/* STATUS: scanning */#define	IEEE80211_F_XR		0x00000100		/* CONF: operate in XR mode */#define	IEEE80211_F_SIBSS	0x00000200		/* STATUS: start IBSS *//* NB: this is intentionally setup to be IEEE80211_CAPINFO_SHORT_SLOTTIME */#define	IEEE80211_F_SHSLOT	0x00000400		/* STATUS: use short slot time*/#define	IEEE80211_F_PMGTON	0x00000800		/* CONF: Power mgmt enable */#define	IEEE80211_F_DESBSSID	0x00001000		/* CONF: des_bssid is set */#define	IEEE80211_F_WME		0x00002000		/* CONF: enable WME use */#define	IEEE80211_F_BGSCAN	0x00004000		/* CONF: bg scan enabled */#define	IEEE80211_F_SWRETRY	0x00008000		/* CONF: sw tx retry enabled */#define IEEE80211_F_TXPOW_FIXED	0x00010000		/* TX Power: fixed rate */#define	IEEE80211_F_IBSSON	0x00020000		/* CONF: IBSS creation enable */#define	IEEE80211_F_SHPREAMBLE	0x00040000		/* STATUS: use short preamble */#define	IEEE80211_F_DATAPAD	0x00080000		/* CONF: do alignment pad */#define	IEEE80211_F_USEPROT	0x00100000		/* STATUS: protection enabled */#define	IEEE80211_F_USEBARKER	0x00200000		/* STATUS: use barker preamble*/#define	IEEE80211_F_TIMUPDATE	0x00400000		/* STATUS: update beacon tim */#define	IEEE80211_F_WPA1	0x00800000		/* CONF: WPA enabled */#define	IEEE80211_F_WPA2	0x01000000		/* CONF: WPA2 enabled */#define	IEEE80211_F_WPA		0x01800000		/* CONF: WPA/WPA2 enabled */#define	IEEE80211_F_DROPUNENC	0x02000000		/* CONF: drop unencrypted */#define	IEEE80211_F_COUNTERM	0x04000000		/* CONF: TKIP countermeasures */#define	IEEE80211_F_HIDESSID	0x08000000		/* CONF: hide SSID in beacon */#define IEEE80211_F_NOBRIDGE    0x10000000		/* CONF: disable internal bridge */#define	IEEE80211_F_WMEUPDATE	0x20000000		/* STATUS: update beacon wme */#define IEEE80211_F_DOTH	0x40000000		/* CONF: enable 11.h (dot11SpectrumManagementRequired) */#define IEEE80211_F_CHANSWITCH	0x80000000		/* force chanswitch *//* ic_flags_ext */#define	IEEE80211_FEXT_WDS		0x00000001	/* CONF: 4 addr allowed */#define IEEE80211_FEXT_COUNTRYIE	0x00000002	/* CONF: enable country IE */#define IEEE80211_FEXT_SCAN_PENDING	0x00000004	/* STATE: scan pending */#define	IEEE80211_FEXT_BGSCAN		0x00000008	/* STATE: enable full bgscan completion */#define IEEE80211_FEXT_UAPSD		0x00000010	/* CONF: enable U-APSD */#define IEEE80211_FEXT_SLEEP		0x00000020	/* STATUS: sleeping */#define IEEE80211_FEXT_EOSPDROP		0x00000040	/* drop uapsd EOSP frames for test */#define	IEEE80211_FEXT_MARKDFS		0x00000080	/* Enable marking of dfs interference */#define IEEE80211_FEXT_REGCLASS		0x00000100	/* CONF: send regclassids in country ie */#define IEEE80211_FEXT_ERPUPDATE	0x00000200	/* STATUS: update ERP element */#define IEEE80211_FEXT_SWBMISS		0x00000400	/* CONF: use software beacon timer */#define IEEE80211_FEXT_DROPUNENC_EAPOL	0x00000800	/* CONF: drop unencrypted eapol frames */#define IEEE80211_FEXT_APPIE_UPDATE	0x00001000	/* STATE: beacon APP IE updated */#define IEEE80211_COM_UAPSD_ENABLE(_ic)		((_ic)->ic_flags_ext |= IEEE80211_FEXT_UAPSD)#define IEEE80211_COM_UAPSD_DISABLE(_ic)	((_ic)->ic_flags_ext &= ~IEEE80211_FEXT_UAPSD)#define IEEE80211_COM_UAPSD_ENABLED(_ic)	((_ic)->ic_flags_ext & IEEE80211_FEXT_UAPSD)#define IEEE80211_COM_GOTOSLEEP(_ic)		((_ic)->ic_flags_ext |= IEEE80211_FEXT_GOTOSLEEP)#define IEEE80211_COM_WAKEUP(_ic)		((_ic)->ic_flags_ext &= ~IEEE80211_FEXT_SLEEP)#define IEEE80211_COM_IS_SLEEPING(_ic)		((_ic)->ic_flags_ext & IEEE80211_FEXT_SLEEP)#define IEEE80211_VAP_UAPSD_ENABLE(_v)		((_v)->iv_flags_ext |= IEEE80211_FEXT_UAPSD)#define IEEE80211_VAP_UAPSD_DISABLE(_v)		((_v)->iv_flags_ext &= ~IEEE80211_FEXT_UAPSD)#define IEEE80211_VAP_UAPSD_ENABLED(_v)		((_v)->iv_flags_ext & IEEE80211_FEXT_UAPSD)#define IEEE80211_VAP_GOTOSLEEP(_v)		((_v)->iv_flags_ext |= IEEE80211_FEXT_SLEEP)#define IEEE80211_VAP_WAKEUP(_v)		((_v)->iv_flags_ext &= ~IEEE80211_FEXT_SLEEP)#define IEEE80211_VAP_IS_SLEEPING(_v)		((_v)->iv_flags_ext & IEEE80211_FEXT_SLEEP)#define IEEE80211_VAP_EOSPDROP_ENABLE(_v)  	((_v)->iv_flags_ext |= IEEE80211_FEXT_EOSPDROP)#define IEEE80211_VAP_EOSPDROP_DISABLE(_v) 	((_v)->iv_flags_ext &= ~IEEE80211_FEXT_EOSPDROP)#define IEEE80211_VAP_EOSPDROP_ENABLED(_v) 	((_v)->iv_flags_ext & IEEE80211_FEXT_EOSPDROP)#define IEEE80211_VAP_DROPUNENC_EAPOL_ENABLE(_v) \						((_v)->iv_flags_ext |= IEEE80211_FEXT_DROPUNENC_EAPOL)#define IEEE80211_VAP_DROPUNENC_EAPOL_DISABLE(_v) \						((_v)->iv_flags_ext &= ~IEEE80211_FEXT_DROPUNENC_EAPOL)#define IEEE80211_VAP_DROPUNENC_EAPOL(_v) 	((_v)->iv_flags_ext & IEEE80211_FEXT_DROPUNENC_EAPOL)/* ic_caps */#define	IEEE80211_C_WEP		0x00000001	/* CAPABILITY: WEP available */#define	IEEE80211_C_TKIP	0x00000002	/* CAPABILITY: TKIP available */#define	IEEE80211_C_AES		0x00000004	/* CAPABILITY: AES OCB avail */#define	IEEE80211_C_AES_CCM	0x00000008	/* CAPABILITY: AES CCM avail */#define	IEEE80211_C_CKIP	0x00000020	/* CAPABILITY: CKIP available */#define	IEEE80211_C_FF		0x00000040	/* CAPABILITY: ATH FF avail */#define	IEEE80211_C_TURBOP	0x00000080	/* CAPABILITY: ATH Turbo avail*/#define	IEEE80211_C_IBSS	0x00000100	/* CAPABILITY: IBSS available */#define	IEEE80211_C_PMGT	0x00000200	/* CAPABILITY: Power mgmt */#define	IEEE80211_C_HOSTAP	0x00000400	/* CAPABILITY: HOSTAP avail */#define	IEEE80211_C_AHDEMO	0x00000800	/* CAPABILITY: Old Adhoc Demo */#define	IEEE80211_C_SWRETRY	0x00001000	/* CAPABILITY: sw tx retry */#define	IEEE80211_C_TXPMGT	0x00002000	/* CAPABILITY: tx power mgmt */#define	IEEE80211_C_SHSLOT	0x00004000	/* CAPABILITY: short slottime */#define	IEEE80211_C_SHPREAMBLE	0x00008000	/* CAPABILITY: short preamble */#define	IEEE80211_C_MONITOR	0x00010000	/* CAPABILITY: monitor mode */#define	IEEE80211_C_TKIPMIC	0x00020000	/* CAPABILITY: TKIP MIC avail */#define	IEEE80211_C_WPA1	0x00800000	/* CAPABILITY: WPA1 avail */#define	IEEE80211_C_WPA2	0x01000000	/* CAPABILITY: WPA2 avail */#define	IEEE80211_C_WPA		0x01800000	/* CAPABILITY: WPA1+WPA2 avail*/#define	IEEE80211_C_BURST	0x02000000	/* CAPABILITY: frame bursting */#define	IEEE80211_C_WME		0x04000000	/* CAPABILITY: WME avail */#define	IEEE80211_C_WDS		0x08000000	/* CAPABILITY: 4-addr support */#define IEEE80211_C_WME_TKIPMIC	0x10000000	/* CAPABILITY: TKIP MIC for QoS frame */#define	IEEE80211_C_BGSCAN	0x20000000	/* CAPABILITY: bg scanning */#define	IEEE80211_C_UAPSD	0x40000000	/* CAPABILITY: UAPSD *//* XXX protection/barker? */#define	IEEE80211_C_CRYPTO	0x0000002f	/* CAPABILITY: crypto alg's *//* Atheros ABOLT definitions */#define IEEE80211_ABOLT_TURBO_G		0x01	/* Legacy Turbo G */#define IEEE80211_ABOLT_TURBO_PRIME	0x02	/* Turbo Prime */#define IEEE80211_ABOLT_COMPRESSION	0x04	/* Compression */#define IEEE80211_ABOLT_FAST_FRAME	0x08	/* Fast Frames */#define IEEE80211_ABOLT_BURST		0x10	/* Bursting */#define IEEE80211_ABOLT_WME_ELE		0x20	/* WME based cwmin/max/burst tuning */#define IEEE80211_ABOLT_XR		0x40	/* XR */#define IEEE80211_ABOLT_AR		0x80	/* AR switches out based on adjaced non-turbo traffic *//* Atheros Advanced Capabilities ABOLT definition */#define IEEE80211_ABOLT_ADVCAP	(IEEE80211_ABOLT_TURBO_PRIME | \				 IEEE80211_ABOLT_COMPRESSION | \				 IEEE80211_ABOLT_FAST_FRAME | \				 IEEE80211_ABOLT_XR | \				 IEEE80211_ABOLT_AR | \				 IEEE80211_ABOLT_BURST | \				 IEEE80211_ABOLT_WME_ELE)/* check if a capability was negotiated for use */#define	IEEE80211_ATH_CAP(vap, ni, bit) \	((ni)->ni_ath_flags & (vap)->iv_ath_cap & (bit))/* flags to VAP create function */#define IEEE80211_VAP_XR		0x10000	/* create a XR VAP without registering net device with OS */int ieee80211_ifattach(struct ieee80211com *);void ieee80211_ifdetach(struct ieee80211com *);int ieee80211_vap_setup(struct ieee80211com *, struct net_device *,	const char *, int, int);int ieee80211_vap_attach(struct ieee80211vap *, ifm_change_cb_t, ifm_stat_cb_t);void ieee80211_vap_detach(struct ieee80211vap *);void ieee80211_mark_dfs(struct ieee80211com *, struct ieee80211_channel *);void ieee80211_dfs_test_return(struct ieee80211com *, u_int8_t);void ieee80211_announce(struct ieee80211com *);void ieee80211_announce_channels(struct ieee80211com *);int ieee80211_media_change(struct net_device *);void ieee80211_media_status(struct net_device *, struct ifmediareq *);int ieee80211_rate2media(struct ieee80211com*, int, enum ieee80211_phymode);int ieee80211_media2rate(int);u_int ieee80211_mhz2ieee(u_int, u_int);u_int ieee80211_chan2ieee(struct ieee80211com *,	const struct ieee80211_channel *);u_int ieee80211_ieee2mhz(u_int, u_int);struct ieee80211_channel *ieee80211_find_channel(struct ieee80211com *, int, int);int ieee80211_setmode(struct ieee80211com *, enum ieee80211_phymode);void ieee80211_reset_erp(struct ieee80211com *, enum ieee80211_phymode);enum ieee80211_phymode ieee80211_chan2mode(const struct ieee80211_channel *);void ieee80211_build_countryie(struct ieee80211com *);int ieee80211_media_setup(struct ieee80211com *, struct ifmedia *, u_int32_t,	ifm_change_cb_t, ifm_stat_cb_t);void ieee80211_build_sc_ie(struct ieee80211com *);void ieee80211_dfs_action(struct ieee80211com *);void ieee80211_expire_channel_excl_restrictions(struct ieee80211com *);/* * Iterate through ic_channels to enumerate all distinct ic_ieee channel numbers. * It relies on the assumption that ic_ieee cannot be 0 and that all the * duplicates in ic_channels occur subsequently. * * _i and _prevchan are temporary variables */#define CHANNEL_FOREACH(_chan, _ic, _i, _prevchan)			\	for ((_i) = 0, (_prevchan) = 0;					\	     (_i) < (_ic)->ic_nchans && ((_chan) =			\		     (_ic)->ic_channels[(_i)].ic_ieee);			\	     (_prevchan) = (_chan), (_i)++				\	    ) if ((_chan) != (_prevchan))/* Key update synchronization methods.  XXX should not be visible. */static __inline voidieee80211_key_update_begin(struct ieee80211vap *vap){	vap->iv_key_update_begin(vap);}static __inline voidieee80211_key_update_end(struct ieee80211vap *vap){	vap->iv_key_update_end(vap);}/* XXX these need to be here for IEEE80211_F_DATAPAD *//* * Return the space occupied by the 802.11 header and any * padding required by the driver.  This works for a * management or data frame. */static __inline intieee80211_hdrspace(struct ieee80211com *ic, const void *data){	int size = ieee80211_hdrsize(data);	if (ic->ic_flags & IEEE80211_F_DATAPAD)		size = roundup(size, sizeof(u_int32_t));	return size;}/* Like ieee80211_hdrspace, but handles any type of frame. */static __inline intieee80211_anyhdrspace(struct ieee80211com *ic, const void *data){	int size = ieee80211_anyhdrsize(data);	if (ic->ic_flags & IEEE80211_F_DATAPAD)		size = roundup(size, sizeof(u_int32_t));	return size;}/* Macros to print MAC address used in 802.11 headers */#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"#define MAC_ADDR(addr) \  ((unsigned char *)(addr)) [0], \  ((unsigned char *)(addr)) [1], \  ((unsigned char *)(addr)) [2], \  ((unsigned char *)(addr)) [3], \  ((unsigned char *)(addr)) [4], \  ((unsigned char *)(addr)) [5]#endif /* _NET80211_IEEE80211_VAR_H_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?