#ifndef LIBIPW_H
#define LIBIPW_H
#include <linux/if_ether.h>
#include <linux/kernel.h>
#include <linux/wireless.h>
#include <linux/ieee80211.h>
#include <net/lib80211.h>
#include <net/cfg80211.h>
#define LIBIPW_VERSION …
#define LIBIPW_DATA_LEN …
#define LIBIPW_1ADDR_LEN …
#define LIBIPW_2ADDR_LEN …
#define LIBIPW_3ADDR_LEN …
#define LIBIPW_4ADDR_LEN …
#define LIBIPW_FCS_LEN …
#define LIBIPW_HLEN …
#define LIBIPW_FRAME_LEN …
#define MIN_FRAG_THRESHOLD …
#define MAX_FRAG_THRESHOLD …
#define LIBIPW_QCTL_TID …
#ifdef CONFIG_LIBIPW_DEBUG
extern u32 libipw_debug_level;
#define LIBIPW_DEBUG(level, fmt, args...) …
#else
#define LIBIPW_DEBUG …
#endif
#define LIBIPW_DL_INFO …
#define LIBIPW_DL_WX …
#define LIBIPW_DL_SCAN …
#define LIBIPW_DL_STATE …
#define LIBIPW_DL_MGMT …
#define LIBIPW_DL_FRAG …
#define LIBIPW_DL_DROP …
#define LIBIPW_DL_TX …
#define LIBIPW_DL_RX …
#define LIBIPW_DL_QOS …
#define LIBIPW_ERROR(f, a...) …
#define LIBIPW_WARNING(f, a...) …
#define LIBIPW_DEBUG_INFO(f, a...) …
#define LIBIPW_DEBUG_WX(f, a...) …
#define LIBIPW_DEBUG_SCAN(f, a...) …
#define LIBIPW_DEBUG_STATE(f, a...) …
#define LIBIPW_DEBUG_MGMT(f, a...) …
#define LIBIPW_DEBUG_FRAG(f, a...) …
#define LIBIPW_DEBUG_DROP(f, a...) …
#define LIBIPW_DEBUG_TX(f, a...) …
#define LIBIPW_DEBUG_RX(f, a...) …
#define LIBIPW_DEBUG_QOS(f, a...) …
#include <linux/netdevice.h>
#include <linux/if_arp.h>
#ifndef WIRELESS_SPY
#define WIRELESS_SPY …
#endif
#include <net/iw_handler.h>
#define ETH_P_PREAUTH …
#ifndef ETH_P_80211_RAW
#define ETH_P_80211_RAW …
#endif
#define P80211_OUI_LEN …
struct libipw_snap_hdr { … } __packed;
#define SNAP_SIZE …
#define WLAN_FC_GET_VERS(fc) …
#define WLAN_FC_GET_TYPE(fc) …
#define WLAN_FC_GET_STYPE(fc) …
#define WLAN_GET_SEQ_FRAG(seq) …
#define WLAN_GET_SEQ_SEQ(seq) …
#define LIBIPW_STATMASK_SIGNAL …
#define LIBIPW_STATMASK_RSSI …
#define LIBIPW_STATMASK_NOISE …
#define LIBIPW_STATMASK_RATE …
#define LIBIPW_STATMASK_WEMASK …
#define LIBIPW_CCK_MODULATION …
#define LIBIPW_OFDM_MODULATION …
#define LIBIPW_24GHZ_BAND …
#define LIBIPW_52GHZ_BAND …
#define LIBIPW_CCK_RATE_1MB …
#define LIBIPW_CCK_RATE_2MB …
#define LIBIPW_CCK_RATE_5MB …
#define LIBIPW_CCK_RATE_11MB …
#define LIBIPW_OFDM_RATE_6MB …
#define LIBIPW_OFDM_RATE_9MB …
#define LIBIPW_OFDM_RATE_12MB …
#define LIBIPW_OFDM_RATE_18MB …
#define LIBIPW_OFDM_RATE_24MB …
#define LIBIPW_OFDM_RATE_36MB …
#define LIBIPW_OFDM_RATE_48MB …
#define LIBIPW_OFDM_RATE_54MB …
#define LIBIPW_BASIC_RATE_MASK …
#define LIBIPW_CCK_RATE_1MB_MASK …
#define LIBIPW_CCK_RATE_2MB_MASK …
#define LIBIPW_CCK_RATE_5MB_MASK …
#define LIBIPW_CCK_RATE_11MB_MASK …
#define LIBIPW_OFDM_RATE_6MB_MASK …
#define LIBIPW_OFDM_RATE_9MB_MASK …
#define LIBIPW_OFDM_RATE_12MB_MASK …
#define LIBIPW_OFDM_RATE_18MB_MASK …
#define LIBIPW_OFDM_RATE_24MB_MASK …
#define LIBIPW_OFDM_RATE_36MB_MASK …
#define LIBIPW_OFDM_RATE_48MB_MASK …
#define LIBIPW_OFDM_RATE_54MB_MASK …
#define LIBIPW_CCK_RATES_MASK …
#define LIBIPW_CCK_BASIC_RATES_MASK …
#define LIBIPW_CCK_DEFAULT_RATES_MASK …
#define LIBIPW_OFDM_RATES_MASK …
#define LIBIPW_OFDM_BASIC_RATES_MASK …
#define LIBIPW_OFDM_DEFAULT_RATES_MASK …
#define LIBIPW_DEFAULT_RATES_MASK …
#define LIBIPW_NUM_OFDM_RATES …
#define LIBIPW_NUM_CCK_RATES …
#define LIBIPW_OFDM_SHIFT_MASK_A …
struct libipw_rx_stats { … };
#define LIBIPW_FRAG_CACHE_LEN …
struct libipw_frag_entry { … };
struct libipw_stats { … };
struct libipw_device;
#define SEC_KEY_1 …
#define SEC_KEY_2 …
#define SEC_KEY_3 …
#define SEC_KEY_4 …
#define SEC_ACTIVE_KEY …
#define SEC_AUTH_MODE …
#define SEC_UNICAST_GROUP …
#define SEC_LEVEL …
#define SEC_ENABLED …
#define SEC_ENCRYPT …
#define SEC_LEVEL_0 …
#define SEC_LEVEL_1 …
#define SEC_LEVEL_2 …
#define SEC_LEVEL_2_CKIP …
#define SEC_LEVEL_3 …
#define SEC_ALG_NONE …
#define SEC_ALG_WEP …
#define SEC_ALG_TKIP …
#define SEC_ALG_CCMP …
#define WEP_KEYS …
#define WEP_KEY_LEN …
#define SCM_KEY_LEN …
#define SCM_TEMPORAL_KEY_LENGTH …
struct libipw_security { … } __packed;
#define BEACON_PROBE_SSID_ID_POSITION …
struct libipw_hdr_1addr { … } __packed;
struct libipw_hdr_2addr { … } __packed;
struct libipw_hdr_3addr { … } __packed;
struct libipw_hdr_4addr { … } __packed;
struct libipw_hdr_3addrqos { … } __packed;
struct libipw_info_element { … } __packed;
struct libipw_auth { … } __packed;
struct libipw_channel_switch { … } __packed;
struct libipw_action { … } __packed;
struct libipw_disassoc { … } __packed;
#define libipw_deauth …
struct libipw_probe_request { … } __packed;
struct libipw_probe_response { … } __packed;
#define libipw_beacon …
struct libipw_assoc_request { … } __packed;
struct libipw_reassoc_request { … } __packed;
struct libipw_assoc_response { … } __packed;
struct libipw_txb { … };
#define MAX_SWEEP_TAB_ENTRIES …
#define MAX_SWEEP_TAB_ENTRIES_PER_PACKET …
#define MAX_RATES_LENGTH …
#define MAX_RATES_EX_LENGTH …
#define MAX_NETWORK_COUNT …
#define CRC_LENGTH …
#define MAX_WPA_IE_LEN …
#define NETWORK_HAS_OFDM …
#define NETWORK_HAS_CCK …
#define NETWORK_HAS_QOS_PARAMETERS …
#define NETWORK_HAS_QOS_INFORMATION …
#define NETWORK_HAS_QOS_MASK …
#define NETWORK_HAS_POWER_CONSTRAINT …
#define NETWORK_HAS_CSA …
#define NETWORK_HAS_QUIET …
#define NETWORK_HAS_IBSS_DFS …
#define NETWORK_HAS_TPC_REPORT …
#define NETWORK_HAS_ERP_VALUE …
#define QOS_QUEUE_NUM …
#define QOS_OUI_LEN …
#define QOS_OUI_TYPE …
#define QOS_ELEMENT_ID …
#define QOS_OUI_INFO_SUB_TYPE …
#define QOS_OUI_PARAM_SUB_TYPE …
#define QOS_VERSION_1 …
#define QOS_AIFSN_MIN_VALUE …
struct libipw_qos_information_element { … } __packed;
struct libipw_qos_ac_parameter { … } __packed;
struct libipw_qos_parameter_info { … } __packed;
struct libipw_qos_parameters { … } __packed;
struct libipw_qos_data { … };
struct libipw_tim_parameters { … } __packed;
struct libipw_tpc_report { … } __packed;
struct libipw_channel_map { … } __packed;
struct libipw_ibss_dfs { … };
struct libipw_csa { … } __packed;
struct libipw_quiet { … } __packed;
struct libipw_network { … };
enum libipw_state { … };
#define DEFAULT_MAX_SCAN_AGE …
#define DEFAULT_FTS …
#define CFG_LIBIPW_RESERVE_FCS …
#define CFG_LIBIPW_COMPUTE_FCS …
#define CFG_LIBIPW_RTS …
#define LIBIPW_24GHZ_MIN_CHANNEL …
#define LIBIPW_24GHZ_MAX_CHANNEL …
#define LIBIPW_24GHZ_CHANNELS …
#define LIBIPW_52GHZ_MIN_CHANNEL …
#define LIBIPW_52GHZ_MAX_CHANNEL …
#define LIBIPW_52GHZ_CHANNELS …
enum { … };
struct libipw_channel { … };
struct libipw_geo { … };
struct libipw_device { … };
#define IEEE_A …
#define IEEE_B …
#define IEEE_G …
#define IEEE_MODE_MASK …
static inline void *libipw_priv(struct net_device *dev)
{ … }
static inline int libipw_is_valid_mode(struct libipw_device *ieee,
int mode)
{ … }
static inline int libipw_get_hdrlen(u16 fc)
{ … }
static inline u8 *libipw_get_payload(struct ieee80211_hdr *hdr)
{ … }
static inline int libipw_is_ofdm_rate(u8 rate)
{ … }
static inline int libipw_is_cck_rate(u8 rate)
{ … }
void free_libipw(struct net_device *dev, int monitor);
struct net_device *alloc_libipw(int sizeof_priv, int monitor);
void libipw_networks_age(struct libipw_device *ieee, unsigned long age_secs);
int libipw_set_encryption(struct libipw_device *ieee);
netdev_tx_t libipw_xmit(struct sk_buff *skb, struct net_device *dev);
void libipw_txb_free(struct libipw_txb *);
void libipw_rx_any(struct libipw_device *ieee, struct sk_buff *skb,
struct libipw_rx_stats *stats);
int libipw_rx(struct libipw_device *ieee, struct sk_buff *skb,
struct libipw_rx_stats *rx_stats);
void libipw_rx_mgt(struct libipw_device *ieee, struct libipw_hdr_4addr *header,
struct libipw_rx_stats *stats);
const struct libipw_geo *libipw_get_geo(struct libipw_device *ieee);
void libipw_set_geo(struct libipw_device *ieee, const struct libipw_geo *geo);
int libipw_is_valid_channel(struct libipw_device *ieee, u8 channel);
int libipw_channel_to_index(struct libipw_device *ieee, u8 channel);
u8 libipw_freq_to_channel(struct libipw_device *ieee, u32 freq);
u8 libipw_get_channel_flags(struct libipw_device *ieee, u8 channel);
const struct libipw_channel *libipw_get_channel(struct libipw_device *ieee,
u8 channel);
u32 libipw_channel_to_freq(struct libipw_device *ieee, u8 channel);
int libipw_wx_get_scan(struct libipw_device *ieee, struct iw_request_info *info,
union iwreq_data *wrqu, char *key);
int libipw_wx_set_encode(struct libipw_device *ieee,
struct iw_request_info *info, union iwreq_data *wrqu,
char *key);
int libipw_wx_get_encode(struct libipw_device *ieee,
struct iw_request_info *info, union iwreq_data *wrqu,
char *key);
int libipw_wx_set_encodeext(struct libipw_device *ieee,
struct iw_request_info *info,
union iwreq_data *wrqu, char *extra);
int libipw_wx_get_encodeext(struct libipw_device *ieee,
struct iw_request_info *info,
union iwreq_data *wrqu, char *extra);
static inline void libipw_increment_scans(struct libipw_device *ieee)
{ … }
static inline int libipw_get_scans(struct libipw_device *ieee)
{ … }
#endif