| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755 |
- /*
- * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * File: device.h
- *
- * Purpose: MAC Data structure
- *
- * Author: Tevin Chen
- *
- * Date: Mar 17, 1997
- *
- */
- #ifndef __DEVICE_H__
- #define __DEVICE_H__
- #include <linux/module.h>
- #include <linux/types.h>
- #include <linux/mm.h>
- #include <linux/errno.h>
- #include <linux/ioport.h>
- #include <linux/pci.h>
- #include <linux/kernel.h>
- #include <linux/netdevice.h>
- #include <linux/etherdevice.h>
- #include <linux/skbuff.h>
- #include <linux/delay.h>
- #include <linux/timer.h>
- #include <linux/slab.h>
- #include <linux/interrupt.h>
- #include <linux/string.h>
- #include <linux/wait.h>
- #include <linux/if_arp.h>
- #include <linux/sched.h>
- #include <linux/io.h>
- #include <linux/if.h>
- #include <linux/crc32.h>
- //#include <linux/config.h>
- #include <linux/uaccess.h>
- #include <linux/proc_fs.h>
- #include <linux/inetdevice.h>
- #include <linux/reboot.h>
- #include <linux/ethtool.h>
- /* Include Wireless Extension definition and check version - Jean II */
- #include <linux/wireless.h>
- #include <net/iw_handler.h> // New driver API
- //2008-0409-07, <Add> by Einsn Liu
- #ifndef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
- #define WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
- #endif
- //
- // device specific
- //
- #include "device_cfg.h"
- #include "ttype.h"
- #include "80211hdr.h"
- #include "tether.h"
- #include "wmgr.h"
- #include "wcmd.h"
- #include "mib.h"
- #include "srom.h"
- #include "rc4.h"
- #include "desc.h"
- #include "key.h"
- #include "mac.h"
- /*--------------------- Export Definitions -------------------------*/
- #define MAC_MAX_CONTEXT_REG (256+128)
- #define MAX_MULTICAST_ADDRESS_NUM 32
- #define MULTICAST_ADDRESS_LIST_SIZE (MAX_MULTICAST_ADDRESS_NUM * ETH_ALEN)
- #define DUPLICATE_RX_CACHE_LENGTH 5
- #define NUM_KEY_ENTRY 11
- #define TX_WEP_NONE 0
- #define TX_WEP_OTF 1
- #define TX_WEP_SW 2
- #define TX_WEP_SWOTP 3
- #define TX_WEP_OTPSW 4
- #define TX_WEP_SW232 5
- #define KEYSEL_WEP40 0
- #define KEYSEL_WEP104 1
- #define KEYSEL_TKIP 2
- #define KEYSEL_CCMP 3
- #define AUTO_FB_NONE 0
- #define AUTO_FB_0 1
- #define AUTO_FB_1 2
- #define FB_RATE0 0
- #define FB_RATE1 1
- // Antenna Mode
- #define ANT_A 0
- #define ANT_B 1
- #define ANT_DIVERSITY 2
- #define ANT_RXD_TXA 3
- #define ANT_RXD_TXB 4
- #define ANT_UNKNOWN 0xFF
- #define MAXCHECKHANGCNT 4
- #define BB_VGA_LEVEL 4
- #define BB_VGA_CHANGE_THRESHOLD 16
- #ifndef RUN_AT
- #define RUN_AT(x) (jiffies+(x))
- #endif
- // DMA related
- #define RESERV_AC0DMA 4
- // BUILD OBJ mode
- #define AVAIL_TD(p, q) ((p)->sOpts.nTxDescs[(q)] - ((p)->iTDUsed[(q)]))
- #define NUM 64
- #define PRIVATE_Message 0
- /*--------------------- Export Types ------------------------------*/
- #define PRINT_K(p, args...) \
- do { \
- if (PRIVATE_Message) \
- printk(p, ##args); \
- } while (0)
- //0:11A 1:11B 2:11G
- typedef enum _VIA_BB_TYPE
- {
- BB_TYPE_11A = 0,
- BB_TYPE_11B,
- BB_TYPE_11G
- } VIA_BB_TYPE, *PVIA_BB_TYPE;
- //0:11a,1:11b,2:11gb(only CCK in BasicRate),3:11ga(OFDM in Basic Rate)
- typedef enum _VIA_PKT_TYPE
- {
- PK_TYPE_11A = 0,
- PK_TYPE_11B,
- PK_TYPE_11GB,
- PK_TYPE_11GA
- } VIA_PKT_TYPE, *PVIA_PKT_TYPE;
- typedef enum __device_msg_level {
- MSG_LEVEL_ERR = 0, //Errors that will cause abnormal operation.
- MSG_LEVEL_NOTICE = 1, //Some errors need users to be notified.
- MSG_LEVEL_INFO = 2, //Normal message.
- MSG_LEVEL_VERBOSE = 3, //Will report all trival errors.
- MSG_LEVEL_DEBUG = 4 //Only for debug purpose.
- } DEVICE_MSG_LEVEL, *PDEVICE_MSG_LEVEL;
- //++ NDIS related
- #define MAX_BSSIDINFO_4_PMKID 16
- #define MAX_PMKIDLIST 5
- //Flags for PMKID Candidate list structure
- #define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01
- // PMKID Structures
- typedef unsigned char NDIS_802_11_PMKID_VALUE[16];
- typedef enum _NDIS_802_11_WEP_STATUS {
- Ndis802_11WEPEnabled,
- Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
- Ndis802_11WEPDisabled,
- Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
- Ndis802_11WEPKeyAbsent,
- Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
- Ndis802_11WEPNotSupported,
- Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
- Ndis802_11Encryption2Enabled,
- Ndis802_11Encryption2KeyAbsent,
- Ndis802_11Encryption3Enabled,
- Ndis802_11Encryption3KeyAbsent
- } NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS,
- NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS;
- typedef enum _NDIS_802_11_STATUS_TYPE {
- Ndis802_11StatusType_Authentication,
- Ndis802_11StatusType_MediaStreamMode,
- Ndis802_11StatusType_PMKID_CandidateList,
- Ndis802_11StatusTypeMax // not a real type, defined as an upper bound
- } NDIS_802_11_STATUS_TYPE, *PNDIS_802_11_STATUS_TYPE;
- //Added new types for PMKID Candidate lists.
- struct pmkid_candidate {
- NDIS_802_11_MAC_ADDRESS BSSID;
- unsigned long Flags;
- };
- typedef struct _BSSID_INFO {
- NDIS_802_11_MAC_ADDRESS BSSID;
- NDIS_802_11_PMKID_VALUE PMKID;
- } BSSID_INFO, *PBSSID_INFO;
- typedef struct tagSPMKID {
- unsigned long Length;
- unsigned long BSSIDInfoCount;
- BSSID_INFO BSSIDInfo[MAX_BSSIDINFO_4_PMKID];
- } SPMKID, *PSPMKID;
- typedef struct tagSPMKIDCandidateEvent {
- NDIS_802_11_STATUS_TYPE StatusType;
- unsigned long Version; // Version of the structure
- unsigned long NumCandidates; // No. of pmkid candidates
- struct pmkid_candidate CandidateList[MAX_PMKIDLIST];
- } SPMKIDCandidateEvent, *PSPMKIDCandidateEvent;
- //--
- //++ 802.11h related
- #define MAX_QUIET_COUNT 8
- typedef struct tagSQuietControl {
- bool bEnable;
- unsigned long dwStartTime;
- unsigned char byPeriod;
- unsigned short wDuration;
- } SQuietControl, *PSQuietControl;
- //--
- typedef struct __chip_info_tbl {
- CHIP_TYPE chip_id;
- char *name;
- int io_size;
- int nTxQueue;
- u32 flags;
- } CHIP_INFO, *PCHIP_INFO;
- typedef enum {
- OWNED_BY_HOST = 0,
- OWNED_BY_NIC = 1
- } DEVICE_OWNER_TYPE, *PDEVICE_OWNER_TYPE;
- // The receive duplicate detection cache entry
- typedef struct tagSCacheEntry {
- unsigned short wFmSequence;
- unsigned char abyAddr2[ETH_ALEN];
- } SCacheEntry, *PSCacheEntry;
- typedef struct tagSCache {
- /* The receive cache is updated circularly. The next entry to be written is
- * indexed by the "InPtr".
- */
- unsigned int uInPtr; // Place to use next
- SCacheEntry asCacheEntry[DUPLICATE_RX_CACHE_LENGTH];
- } SCache, *PSCache;
- #define CB_MAX_RX_FRAG 64
- // DeFragment Control Block, used for collecting fragments prior to reassembly
- typedef struct tagSDeFragControlBlock {
- unsigned short wSequence;
- unsigned short wFragNum;
- unsigned char abyAddr2[ETH_ALEN];
- unsigned int uLifetime;
- struct sk_buff *skb;
- unsigned char *pbyRxBuffer;
- unsigned int cbFrameLength;
- bool bInUse;
- } SDeFragControlBlock, *PSDeFragControlBlock;
- //flags for options
- #define DEVICE_FLAGS_IP_ALIGN 0x00000001UL
- #define DEVICE_FLAGS_PREAMBLE_TYPE 0x00000002UL
- #define DEVICE_FLAGS_OP_MODE 0x00000004UL
- #define DEVICE_FLAGS_PS_MODE 0x00000008UL
- #define DEVICE_FLAGS_80211h_MODE 0x00000010UL
- #define DEVICE_FLAGS_DiversityANT 0x00000020UL
- //flags for driver status
- #define DEVICE_FLAGS_OPENED 0x00010000UL
- #define DEVICE_FLAGS_WOL_ENABLED 0x00080000UL
- //flags for capabilities
- #define DEVICE_FLAGS_TX_ALIGN 0x01000000UL
- #define DEVICE_FLAGS_HAVE_CAM 0x02000000UL
- #define DEVICE_FLAGS_FLOW_CTRL 0x04000000UL
- //flags for MII status
- #define DEVICE_LINK_FAIL 0x00000001UL
- #define DEVICE_SPEED_10 0x00000002UL
- #define DEVICE_SPEED_100 0x00000004UL
- #define DEVICE_SPEED_1000 0x00000008UL
- #define DEVICE_DUPLEX_FULL 0x00000010UL
- #define DEVICE_AUTONEG_ENABLE 0x00000020UL
- #define DEVICE_FORCED_BY_EEPROM 0x00000040UL
- //for device_set_media_duplex
- #define DEVICE_LINK_CHANGE 0x00000001UL
- typedef struct __device_opt {
- int nRxDescs0; //Number of RX descriptors0
- int nRxDescs1; //Number of RX descriptors1
- int nTxDescs[2]; //Number of TX descriptors 0, 1
- int int_works; //interrupt limits
- int rts_thresh; //rts threshold
- int frag_thresh;
- int data_rate;
- int channel_num;
- int short_retry;
- int long_retry;
- int bbp_type;
- u32 flags;
- } OPTIONS, *POPTIONS;
- struct vnt_private {
- struct pci_dev *pcid;
- // netdev
- struct net_device *dev;
- //dma addr, rx/tx pool
- dma_addr_t pool_dma;
- dma_addr_t rd0_pool_dma;
- dma_addr_t rd1_pool_dma;
- dma_addr_t td0_pool_dma;
- dma_addr_t td1_pool_dma;
- dma_addr_t tx_bufs_dma0;
- dma_addr_t tx_bufs_dma1;
- dma_addr_t tx_beacon_dma;
- unsigned char *tx0_bufs;
- unsigned char *tx1_bufs;
- unsigned char *tx_beacon_bufs;
- CHIP_TYPE chip_id;
- void __iomem *PortOffset;
- unsigned long dwIsr;
- u32 memaddr;
- u32 ioaddr;
- u32 io_size;
- unsigned char byRevId;
- unsigned short SubSystemID;
- unsigned short SubVendorID;
- int nTxQueues;
- volatile int iTDUsed[TYPE_MAXTD];
- volatile PSTxDesc apCurrTD[TYPE_MAXTD];
- volatile PSTxDesc apTailTD[TYPE_MAXTD];
- volatile PSTxDesc apTD0Rings;
- volatile PSTxDesc apTD1Rings;
- volatile PSRxDesc aRD0Ring;
- volatile PSRxDesc aRD1Ring;
- volatile PSRxDesc pCurrRD[TYPE_MAXRD];
- SCache sDupRxCache;
- SDeFragControlBlock sRxDFCB[CB_MAX_RX_FRAG];
- unsigned int cbDFCB;
- unsigned int cbFreeDFCB;
- unsigned int uCurrentDFCBIdx;
- OPTIONS sOpts;
- u32 flags;
- u32 rx_buf_sz;
- int multicast_limit;
- unsigned char byRxMode;
- spinlock_t lock;
- pid_t MLMEThr_pid;
- struct completion notify;
- struct semaphore mlme_semaphore;
- u32 rx_bytes;
- // Version control
- unsigned char byLocalID;
- unsigned char byRFType;
- unsigned char byMaxPwrLevel;
- unsigned char byZoneType;
- bool bZoneRegExist;
- unsigned char byOriginalZonetype;
- unsigned char abyMacContext[MAC_MAX_CONTEXT_REG];
- bool bLinkPass; // link status: OK or fail
- unsigned char abyCurrentNetAddr[ETH_ALEN];
- // Adapter statistics
- SStatCounter scStatistic;
- // 802.11 counter
- SDot11Counters s802_11Counter;
- // 802.11 management
- PSMgmtObject pMgmt;
- SMgmtObject sMgmtObj;
- // 802.11 MAC specific
- unsigned int uCurrRSSI;
- unsigned char byCurrSQ;
- unsigned long dwTxAntennaSel;
- unsigned long dwRxAntennaSel;
- unsigned char byAntennaCount;
- unsigned char byRxAntennaMode;
- unsigned char byTxAntennaMode;
- bool bTxRxAntInv;
- unsigned char *pbyTmpBuff;
- unsigned int uSIFS; //Current SIFS
- unsigned int uDIFS; //Current DIFS
- unsigned int uEIFS; //Current EIFS
- unsigned int uSlot; //Current SlotTime
- unsigned int uCwMin; //Current CwMin
- unsigned int uCwMax; //CwMax is fixed on 1023.
- // PHY parameter
- unsigned char bySIFS;
- unsigned char byDIFS;
- unsigned char byEIFS;
- unsigned char bySlot;
- unsigned char byCWMaxMin;
- CARD_PHY_TYPE eCurrentPHYType;
- VIA_BB_TYPE byBBType; //0: 11A, 1:11B, 2:11G
- VIA_PKT_TYPE byPacketType; //0:11a,1:11b,2:11gb(only CCK in BasicRate),3:11ga(OFDM in Basic Rate)
- unsigned short wBasicRate;
- unsigned char byACKRate;
- unsigned char byTopOFDMBasicRate;
- unsigned char byTopCCKBasicRate;
- unsigned char byMinChannel;
- unsigned char byMaxChannel;
- unsigned int uConnectionRate;
- unsigned char byPreambleType;
- unsigned char byShortPreamble;
- unsigned short wCurrentRate;
- unsigned short wRTSThreshold;
- unsigned short wFragmentationThreshold;
- unsigned char byShortRetryLimit;
- unsigned char byLongRetryLimit;
- enum nl80211_iftype op_mode;
- unsigned char byOpMode;
- bool bBSSIDFilter;
- unsigned short wMaxTransmitMSDULifetime;
- unsigned char abyBSSID[ETH_ALEN];
- unsigned char abyDesireBSSID[ETH_ALEN];
- unsigned short wACKDuration; // update while speed change
- unsigned short wRTSTransmitLen; // update while speed change
- unsigned char byRTSServiceField; // update while speed change
- unsigned char byRTSSignalField; // update while speed change
- unsigned long dwMaxReceiveLifetime; // dot11MaxReceiveLifetime
- bool bEncryptionEnable;
- bool bLongHeader;
- bool bShortSlotTime;
- bool bProtectMode;
- bool bNonERPPresent;
- bool bBarkerPreambleMd;
- unsigned char byERPFlag;
- unsigned short wUseProtectCntDown;
- bool bRadioControlOff;
- bool bRadioOff;
- bool bEnablePSMode;
- unsigned short wListenInterval;
- bool bPWBitOn;
- WMAC_POWER_MODE ePSMode;
- // GPIO Radio Control
- unsigned char byRadioCtl;
- unsigned char byGPIO;
- bool bHWRadioOff;
- bool bPrvActive4RadioOFF;
- bool bGPIOBlockRead;
- // Beacon related
- unsigned short wSeqCounter;
- unsigned short wBCNBufLen;
- bool bBeaconBufReady;
- bool bBeaconSent;
- bool bIsBeaconBufReadySet;
- unsigned int cbBeaconBufReadySetCnt;
- bool bFixRate;
- unsigned char byCurrentCh;
- unsigned int uScanTime;
- CMD_STATE eCommandState;
- CMD_CODE eCommand;
- bool bBeaconTx;
- bool bStopBeacon;
- bool bStopDataPkt;
- bool bStopTx0Pkt;
- unsigned int uAutoReConnectTime;
- // 802.11 counter
- CMD_ITEM eCmdQueue[CMD_Q_SIZE];
- unsigned int uCmdDequeueIdx;
- unsigned int uCmdEnqueueIdx;
- unsigned int cbFreeCmdQueue;
- bool bCmdRunning;
- bool bCmdClear;
- bool bRoaming;
- //WOW
- unsigned char abyIPAddr[4];
- unsigned long ulTxPower;
- NDIS_802_11_WEP_STATUS eEncryptionStatus;
- bool bTransmitKey;
- //2007-0925-01<Add>by MikeLiu
- //mike add :save old Encryption
- NDIS_802_11_WEP_STATUS eOldEncryptionStatus;
- SKeyManagement sKey;
- unsigned long dwIVCounter;
- u64 qwPacketNumber; /* For CCMP and TKIP as TSC(6 bytes) */
- unsigned int uCurrentWEPMode;
- RC4Ext SBox;
- unsigned char abyPRNG[WLAN_WEPMAX_KEYLEN+3];
- unsigned char byKeyIndex;
- unsigned int uKeyLength;
- unsigned char abyKey[WLAN_WEP232_KEYLEN];
- bool bAES;
- unsigned char byCntMeasure;
- // for AP mode
- unsigned int uAssocCount;
- bool bMoreData;
- // QoS
- bool bGrpAckPolicy;
- // for OID_802_11_ASSOCIATION_INFORMATION
- bool bAssocInfoSet;
- unsigned char byAutoFBCtrl;
- bool bTxMICFail;
- bool bRxMICFail;
- unsigned int uRATEIdx;
- // For Update BaseBand VGA Gain Offset
- bool bUpdateBBVGA;
- unsigned int uBBVGADiffCount;
- unsigned char byBBVGANew;
- unsigned char byBBVGACurrent;
- unsigned char abyBBVGA[BB_VGA_LEVEL];
- long ldBmThreshold[BB_VGA_LEVEL];
- unsigned char byBBPreEDRSSI;
- unsigned char byBBPreEDIndex;
- bool bRadioCmd;
- unsigned long dwDiagRefCount;
- // For FOE Tuning
- unsigned char byFOETuning;
- // For Auto Power Tunning
- unsigned char byAutoPwrTunning;
- short sPSetPointCCK;
- short sPSetPointOFDMG;
- short sPSetPointOFDMA;
- long lPFormulaOffset;
- short sPThreshold;
- char cAdjustStep;
- char cMinTxAGC;
- // For RF Power table
- unsigned char byCCKPwr;
- unsigned char byOFDMPwrG;
- unsigned char byCurPwr;
- char byCurPwrdBm;
- unsigned char abyCCKPwrTbl[CB_MAX_CHANNEL_24G+1];
- unsigned char abyOFDMPwrTbl[CB_MAX_CHANNEL+1];
- char abyCCKDefaultPwr[CB_MAX_CHANNEL_24G+1];
- char abyOFDMDefaultPwr[CB_MAX_CHANNEL+1];
- char abyRegPwr[CB_MAX_CHANNEL+1];
- char abyLocalPwr[CB_MAX_CHANNEL+1];
- // BaseBand Loopback Use
- unsigned char byBBCR4d;
- unsigned char byBBCRc9;
- unsigned char byBBCR88;
- unsigned char byBBCR09;
- // command timer
- struct timer_list sTimerCommand;
- struct timer_list sTimerTxData;
- unsigned long nTxDataTimeCout;
- bool fTxDataInSleep;
- bool IsTxDataTrigger;
- #ifdef WPA_SM_Transtatus
- bool fWPA_Authened; //is WPA/WPA-PSK or WPA2/WPA2-PSK authen??
- #endif
- unsigned char byReAssocCount; //mike add:re-association retry times!
- unsigned char byLinkWaitCount;
- unsigned char abyNodeName[17];
- bool bDiversityRegCtlON;
- bool bDiversityEnable;
- unsigned long ulDiversityNValue;
- unsigned long ulDiversityMValue;
- unsigned char byTMax;
- unsigned char byTMax2;
- unsigned char byTMax3;
- unsigned long ulSQ3TH;
- // ANT diversity
- unsigned long uDiversityCnt;
- unsigned char byAntennaState;
- unsigned long ulRatio_State0;
- unsigned long ulRatio_State1;
- //SQ3 functions for antenna diversity
- struct timer_list TimerSQ3Tmax1;
- struct timer_list TimerSQ3Tmax2;
- struct timer_list TimerSQ3Tmax3;
- unsigned long uNumSQ3[MAX_RATE];
- unsigned short wAntDiversityMaxRate;
- SEthernetHeader sTxEthHeader;
- SEthernetHeader sRxEthHeader;
- unsigned char abyBroadcastAddr[ETH_ALEN];
- unsigned char abySNAP_RFC1042[ETH_ALEN];
- unsigned char abySNAP_Bridgetunnel[ETH_ALEN];
- unsigned char abyEEPROM[EEP_MAX_CONTEXT_SIZE]; //unsigned long alignment
- // Pre-Authentication & PMK cache
- SPMKID gsPMKID;
- SPMKIDCandidateEvent gsPMKIDCandidate;
- // for 802.11h
- bool b11hEnable;
- unsigned char abyCountryCode[3];
- // for 802.11h DFS
- unsigned int uNumOfMeasureEIDs;
- PWLAN_IE_MEASURE_REQ pCurrMeasureEID;
- bool bMeasureInProgress;
- unsigned char byOrgChannel;
- unsigned char byOrgRCR;
- unsigned long dwOrgMAR0;
- unsigned long dwOrgMAR4;
- unsigned char byBasicMap;
- unsigned char byCCAFraction;
- unsigned char abyRPIs[8];
- unsigned long dwRPIs[8];
- bool bChannelSwitch;
- unsigned char byNewChannel;
- unsigned char byChannelSwitchCount;
- bool bQuietEnable;
- bool bEnableFirstQuiet;
- unsigned char byQuietStartCount;
- unsigned int uQuietEnqueue;
- unsigned long dwCurrentQuietEndTime;
- SQuietControl sQuiet[MAX_QUIET_COUNT];
- // for 802.11h TPC
- bool bCountryInfo5G;
- bool bCountryInfo24G;
- unsigned short wBeaconInterval;
- //WPA supplicant deamon
- struct net_device *wpadev;
- bool bWPADEVUp;
- struct sk_buff *skb;
- #ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
- unsigned int bwextcount;
- bool bWPASuppWextEnabled;
- #endif
- //--
- #ifdef HOSTAP
- // user space daemon: hostapd, is used for HOSTAP
- bool bEnableHostapd;
- bool bEnable8021x;
- bool bEnableHostWEP;
- struct net_device *apdev;
- int (*tx_80211)(struct sk_buff *skb, struct net_device *dev);
- #endif
- unsigned int uChannel;
- bool bMACSuspend;
- struct iw_statistics wstats; // wireless stats
- bool bCommit;
- };
- static inline bool device_get_ip(struct vnt_private *pInfo)
- {
- struct in_device *in_dev = (struct in_device *)pInfo->dev->ip_ptr;
- struct in_ifaddr *ifa;
- if (in_dev != NULL) {
- ifa = (struct in_ifaddr *)in_dev->ifa_list;
- if (ifa != NULL) {
- memcpy(pInfo->abyIPAddr, &ifa->ifa_address, 4);
- return true;
- }
- }
- return false;
- }
- static inline PDEVICE_RD_INFO alloc_rd_info(void)
- {
- return kzalloc(sizeof(DEVICE_RD_INFO), GFP_ATOMIC);
- }
- static inline PDEVICE_TD_INFO alloc_td_info(void)
- {
- return kzalloc(sizeof(DEVICE_TD_INFO), GFP_ATOMIC);
- }
- /*--------------------- Export Functions --------------------------*/
- bool device_dma0_xmit(struct vnt_private *pDevice,
- struct sk_buff *skb, unsigned int uNodeIndex);
- bool device_alloc_frag_buf(struct vnt_private *pDevice,
- PSDeFragControlBlock pDeF);
- int Config_FileOperation(struct vnt_private *pDevice,
- bool fwrite, unsigned char *Parameter);
- #endif
|