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... */
36#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)) {
42		if ((p[0] == WLAN_EID_VENDOR_SPECIFIC) &&
43		    (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_ */
51