blob: 5a8fec26136ef338455e8ee71d7583c64cd3bce5 [file] [log] [blame]
David Kilroycb1576a2009-02-04 23:05:56 +00001/* 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);
David Kilroy721aa2f2009-06-18 23:21:31 +010032int orinoco_commit(struct orinoco_private *priv);
David Kilroycb1576a2009-02-04 23:05:56 +000033void orinoco_reset(struct work_struct *work);
34
David Kilroycb1576a2009-02-04 23:05:56 +000035/* Information element helpers - find a home for these... */
David Kilroycb1576a2009-02-04 23:05:56 +000036#define WPA_OUI_TYPE "\x00\x50\xF2\x01"
37#define WPA_SELECTOR_LEN 4
38static inline u8 *orinoco_get_wpa_ie(u8 *data, size_t len)
39{
40 u8 *p = data;
41 while ((p + 2 + WPA_SELECTOR_LEN) < (data + len)) {
Arend van Spriel04b23122012-10-12 12:28:14 +020042 if ((p[0] == WLAN_EID_VENDOR_SPECIFIC) &&
David Kilroycb1576a2009-02-04 23:05:56 +000043 (memcmp(&p[2], WPA_OUI_TYPE, WPA_SELECTOR_LEN) == 0))
44 return p;
45 p += p[1] + 2;
46 }
47 return NULL;
48}
49
50#endif /* _ORINOCO_MAIN_H_ */