| 
									
										
										
										
											2009-02-04 23:05:56 +00:00
										 |  |  | /* 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); | 
					
						
							| 
									
										
										
										
											2009-06-18 23:21:31 +01:00
										 |  |  | int orinoco_commit(struct orinoco_private *priv); | 
					
						
							| 
									
										
										
										
											2009-02-04 23:05:56 +00:00
										 |  |  | 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)) { | 
					
						
							| 
									
										
										
										
											2012-10-12 12:28:14 +02:00
										 |  |  | 		if ((p[0] == WLAN_EID_VENDOR_SPECIFIC) && | 
					
						
							| 
									
										
										
										
											2009-02-04 23:05:56 +00:00
										 |  |  | 		    (memcmp(&p[2], WPA_OUI_TYPE, WPA_SELECTOR_LEN) == 0)) | 
					
						
							|  |  |  | 			return p; | 
					
						
							|  |  |  | 		p += p[1] + 2; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return NULL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* _ORINOCO_MAIN_H_ */
 |