1/* Exports from main to helper modules 2 * 3 * See copyright notice in main.c 4 */ 5#ifndef _ORINOCO_MAIN_H_ 6#define _ORINOCO_MAIN_H_ 7 8#include <linux/ieee80211.h> 9#include "orinoco.h" 10 11/********************************************************************/ 12/* Compile time configuration and compatibility stuff */ 13/********************************************************************/ 14 15/* We do this this way to avoid ifdefs in the actual code */ 16#ifdef WIRELESS_SPY 17#define SPY_NUMBER(priv) (priv->spy_data.spy_number) 18#else 19#define SPY_NUMBER(priv) 0 20#endif /* WIRELESS_SPY */ 21 22/********************************************************************/ 23 24/* Export module parameter */ 25extern int force_monitor; 26 27/* Forward declarations */ 28struct net_device; 29struct work_struct; 30 31void set_port_type(struct orinoco_private *priv); 32int orinoco_commit(struct orinoco_private *priv); 33void orinoco_reset(struct work_struct *work); 34 35/* Information element helpers - find a home for these... */ 36static inline u8 *orinoco_get_ie(u8 *data, size_t len, 37 enum ieee80211_eid eid) 38{ 39 u8 *p = data; 40 while ((p + 2) < (data + len)) { 41 if (p[0] == eid) 42 return p; 43 p += p[1] + 2; 44 } 45 return NULL; 46} 47 48#define WPA_OUI_TYPE "\x00\x50\xF2\x01" 49#define WPA_SELECTOR_LEN 4 50static inline u8 *orinoco_get_wpa_ie(u8 *data, size_t len) 51{ 52 u8 *p = data; 53 while ((p + 2 + WPA_SELECTOR_LEN) < (data + len)) { 54 if ((p[0] == WLAN_EID_GENERIC) && 55 (memcmp(&p[2], WPA_OUI_TYPE, WPA_SELECTOR_LEN) == 0)) 56 return p; 57 p += p[1] + 2; 58 } 59 return NULL; 60} 61 62#endif /* _ORINOCO_MAIN_H_ */ 63