/* Exports from main to helper modules * * See copyright notice in main.c */ #ifndef _ORINOCO_MAIN_H_ #define _ORINOCO_MAIN_H_ #include <linux/ieee80211.h> #include "orinoco.h" /********************************************************************/ /* Compile time configuration and compatibility stuff */ /********************************************************************/ /* We do this this way to avoid ifdefs in the actual code */ #ifdef WIRELESS_SPY #define SPY_NUMBER(priv) (priv->spy_data.spy_number) #else #define SPY_NUMBER(priv) 0 #endif /* WIRELESS_SPY */ /********************************************************************/ /* Export module parameter */ extern int force_monitor; /* Forward declarations */ struct net_device; struct work_struct; void set_port_type(struct orinoco_private *priv); int orinoco_commit(struct orinoco_private *priv); void orinoco_reset(struct work_struct *work); /* Information element helpers - find a home for these... */ #define WPA_OUI_TYPE "\x00\x50\xF2\x01" #define WPA_SELECTOR_LEN 4 static inline u8 *orinoco_get_wpa_ie(u8 *data, size_t len) { u8 *p = data; while ((p + 2 + WPA_SELECTOR_LEN) < (data + len)) { if ((p[0] == WLAN_EID_VENDOR_SPECIFIC) && (memcmp(&p[2], WPA_OUI_TYPE, WPA_SELECTOR_LEN) == 0)) return p; p += p[1] + 2; } return NULL; } #endif /* _ORINOCO_MAIN_H_ */ |