📄 vnetusba.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 + -