⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vnetusba.h

📁 Atmel公司的USB无线局域网卡11 mbps Linux设备驱动
💻 H
字号:
#ifndef __vnetusba_h_OK__#define __vnetusba_h_OK__#include <linux/sched.h>#include <linux/malloc.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/netdevice.h>#include <linux/wireless.h>#include <linux/etherdevice.h>#include <linux/usb.h>#include <asm/uaccess.h>#include "general.h"#include "appint.h"#define VNetVID			0x03EB#define VNetPID 		0x7603#define VNetPID_RFMD 	0x7605#define	VNET_TX_TIMEOUT		(HZ*10)// version.....#define USB_VNET_MAJOR_VERSION  2#define USB_VNET_MINOR_VERSION  0#define USB_VNET_SUB_VERSION	0#define USB_VNET_BUILD	        4#define RFMD_Board		1#define Normal_Board	2#define VNET_MAX_WIRELESS_PACKET 1536#define ACTIVE_MODE				1#define PS_MODE					2#define	ALIGN(x)				x __attribute__((aligned(L1_CACHE_BYTES)))// various flags#define RX_BUSY					0x00000002 // receiver working#define TX_SLEEP				0x00000004 // bulk out endpoint in use#define STOPPED_RX				0x00000008 // used to stop Rx path....//functionallity controls#define	CTRL_URB_SLEEP			0x00000010 // ctrl endpoint in use#define VNET_RUNNING			0x00000020 // driver up and running#define NEED_CLEAR_HALT			0x00000040 // in case of usb_st_stall#define INIT_PENDING			0x00000080 // flag for initialization#define TX_STOPPED				0x00000100 // flag for tx queue status(system's queue)#define INTERNAL_FW_DNLD		0x00000200 // internal f/w downloading (DFU)#define USB_RESET_DEVICE        0x00000400 // RESET NEEDED..#define IOCTL_SLEEPING			0x00000800 // Ioctl Pending....#define ChangePending			0x00001000#define GetCommandPedding		0x00002000// mgmt status#define HeardBeacons			0x00004000 // check for out of range....#define StationIsAuthenticated	0x00008000 // check if the station is authenticated										   // (needed in Association Responce)#define StationWasAssociated	0x00010000 // check if the station was associated#define BSSIDfound				0x00020000 // in selectBSS flag for BSSID state#define StationIsAssociated		0x00040000#define SITE_SURVEY_REQUEST		0x00080000// wep status#define WepIsSet				0x00100000//SetPreamble Status, Fragmentation, Rts/Cts#define	PreambleChanged			0x00200000#define FragChanged				0x00400000#define RtsCtsChanged			0x00800000#define AutoRFChanged			0x01000000// WEP key values#define	WEP_DISABLED			0#define	WEP_64BIT				1#define	WEP_128BIT				2#define WEP_MODE_MANDATORY		0#define WEP_MODE_OPTIONAL		1// Privacy#define C80211_MGMT_AAN_OPENSYSTEM		0x0000#define C80211_MGMT_AAN_SHAREDKEY		0x0001#define	AD_HOC_MODE						1#define	INFRASTRUCTURE_MODE				2#define PREAMBLE_TYPE_SHORT				0#define	PREAMBLE_TYPE_LONG				1///////////////////////// StationState defines///////////////////////#define STATION_STATE_INITIALIZING              0x00#define STATION_STATE_SCANNING					0x01#define STATION_STATE_JOINING 					0x02#define STATION_STATE_AUTHENTICATING			0x03#define STATION_STATE_ASSOCIATING				0x04#define STATION_STATE_READY                     0x05#define STATION_STATE_OUT_OF_RANGE				0x06#define STATION_STATE_DISASSOCIATING			0x07#define STATION_STATE_DEAUTHENTICATING			0x08#define STATION_STATE_REASSOCIATING				0x09#define STATION_STATE_RECONFIGURING				0x0A#define STATION_STATE_FW_DOWNLOAD				0x0B#define STATION_STATE_IDLE						0x0C#define STATION_STATE_RESET						0x0F#define STATION_STATE_EXITING					0x10#define STATION_STATE_MGMT_ERROR				0xf1#define STATION_STATE_INIT_FAILED				0xf2 // if initialization failed	// and a function sleeps(vnet_probe) when it wakes up it has to know what happened/////////////////////////// Device Operating Modes/////////////////////////#define DeviceNetCardMode					1#define DeviceConfigurationMode				2#define DeviceDFUMode						3#define DeviceNOFlashNetCardMode			4#define UNDER_CONSTRUCTION	0x01#define TX_DATA				0x02#define TX_MGMT				0x04#define UNDER_SUBMIT		0x08//Setup Packet used in Ctrl urb's filler....#define FILL_REQUEST(a,aa,ab,ac,ad,ae)\  do {\      (a)->devreq.request = aa;\      (a)->devreq.requesttype = ab;\      (a)->devreq.value = cpu_to_le16(ac);\      (a)->devreq.index = cpu_to_le16(ad);\      (a)->devreq.length = cpu_to_le16(ae);\  }while(0)typedef struct __DFU{	PUCHAR				ExternalRom;	PUCHAR				InternalRom;	USHORT				BlockCnt;	UCHAR				State;	UCHAR				StatusBuf[6];	ULONG 				TimeOut;	UCHAR				ReSendState;	USHORT				ExternalFWSizeLeft;	USHORT				InternalFWSizeLeft;}DFU, *PDFU;typedef struct __RX_BUFFER{	USHORT		WLength;	UCHAR		RxRate;	UCHAR		WEP;	UCHAR		Fragmentation;	UCHAR		RSSI;	UCHAR		LinkQuality;	UCHAR		NoiseLevel;	UCHAR		RxTime[4];	UCHAR		WirelessPacket[VNET_MAX_WIRELESS_PACKET];} RX_BUFFER, *PRX_BUFFER;typedef struct __VNET_ADAPTER {	struct usb_device 				*usb;	struct net_device 				*net;	struct net_device_stats			netstats;#ifdef WIRELESS_EXT	struct iw_statistics			w_stats;#endif   	struct usb_config_descriptor 	*config;   	   	UCHAR							TxPacketsPending;	struct list_head				TxList;	struct list_head				freeTx;	struct timer_list				CtrlTimer;				unsigned long					flags;	devrequest						devreq;	wait_queue_head_t				ctrl_wait, remove_wait;	RX_BUFFER						RxInBuff;	RX_BUFFER						RxBuffUp;	UCHAR							ALIGN(ctrl_buff[200]);    purb_t					  		ctrl_urb, rx_urb, tx_urb;    UCHAR							BoardType;// Device Specific	// Addresses	UCHAR							StationAddress[6];	UCHAR							CurrentAddress[6];	UCHAR							CurrentBSSID[6];	// AP's Info	UCHAR							DesiredSSID[ESSID_SIZE];	UCHAR							SelectedSSID[ESSID_SIZE];	UCHAR							DesiredSSIDsize;	UCHAR							SSID_size;	UCHAR							Channel;	// CardInfo	UCHAR							DevMode; //Parallel, ....	UCHAR							PreambleType;	UCHAR							TxRate;	UCHAR							PowerMgmtMode;	UCHAR							OperatingMode;	UCHAR							FwVersion[4];	UCHAR							Rssi;	UCHAR							LinkQuality;	UCHAR           				StationState;	UCHAR							PrivacyInvoked;	USHORT							RtsThreshold;	USHORT							FragmentationThreshold;	WEP_INFO						WepInfo;		// General Info    UCHAR               			RegDomain;	//driver info	UCHAR              				CmdStatus[40];	UCHAR							LastCommand[2];	UCHAR							BeaconPeriod;	UCHAR							CallbacksPending;	STATISTICS						Stats;	spinlock_t						lock;		SITE_SURVEY_INFO				SiteS;	UCHAR							ErrorCode;	//Mgmt Info	UCHAR							ExpectedAuthentTransactionSeqNum;		UCHAR							AuthenticationRequestRetries;	UCHAR							CurrentAuthentTransactionSeqNum;	UCHAR							AssociationRequestRetries;	UCHAR							ReAssociationRequestRetries;	int								(*cmdhandler)(struct __VNET_ADAPTER *Adapter);	ULONG							Proc, Poll;	ULONG							in, out;	PDFU							pDfu;	} VNet_ADAPTER, *PVNet_ADAPTER;typedef struct __TX_BUFFER{	USHORT		WLength;	UCHAR		TxRate;	UCHAR		PaddingBytes;	UCHAR		Reserved[4];	UCHAR		WirelessPacket[1534];} TX_BUFFER, *PTX_BUFFER;typedef struct __TxList{	struct list_head tx_list;	struct sk_buff 	*skb;	PVNet_ADAPTER   Adapter;	PTX_BUFFER		tx_buff;	USHORT			length;	UCHAR			status;}TX_LIST, *PTX_LIST;#define VnetTimer(a,x) {\	if(timer_pending(&(a))!=0)\		del_timer_sync(&(a));\	(a).expires = jiffies+ (x*HZ)/10;\	add_timer(&(a));}	#ifdef USBDBG#define dbgusb(format, arg...) printk(KERN_INFO format, ## arg);#define dbgusbnl(format, arg...) printk(KERN_INFO __FILE__" : "__FUNCTION__": " format "\n" , ## arg);#elif defined(INSANEDBG)#define dbgusb(format, arg...) {printk(KERN_INFO format, ## arg);}#define dbgusbnl(format, arg...) {\	printk(KERN_INFO __FILE__" : "__FUNCTION__" : " format "\n" , ## arg);\	udelay(1000);udelay(1000);udelay(1000);}#else#define dbgusb(format, arg...) {}#define dbgusbnl(format, arg...) {}#endif#include "stdinclude.h"#endif //__vnetusba_h_OK__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -