63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* 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... */
 | 
						|
static inline u8 *orinoco_get_ie(u8 *data, size_t len,
 | 
						|
				 enum ieee80211_eid eid)
 | 
						|
{
 | 
						|
	u8 *p = data;
 | 
						|
	while ((p + 2) < (data + len)) {
 | 
						|
		if (p[0] == eid)
 | 
						|
			return p;
 | 
						|
		p += p[1] + 2;
 | 
						|
	}
 | 
						|
	return NULL;
 | 
						|
}
 | 
						|
 | 
						|
#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_GENERIC) &&
 | 
						|
		    (memcmp(&p[2], WPA_OUI_TYPE, WPA_SELECTOR_LEN) == 0))
 | 
						|
			return p;
 | 
						|
		p += p[1] + 2;
 | 
						|
	}
 | 
						|
	return NULL;
 | 
						|
}
 | 
						|
 | 
						|
#endif /* _ORINOCO_MAIN_H_ */
 |