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 + -
显示快捷键?