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

📄 device.h

📁 VIA VT6656 USB linux source code.
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. * All rights reserved. * * This software is copyrighted by and is the sole property of * VIA Networking Technologies, Inc. This software may only be used * in accordance with the corresponding license agreement. Any unauthorized * use, duplication, transmission, distribution, or disclosure of this * software is expressly forbidden. * * This software is provided by VIA Networking Technologies, Inc. "as is" * and any express or implied warranties, including, but not limited to, the * implied warranties of merchantability and fitness for a particular purpose * are disclaimed. In no event shall VIA Networking Technologies, Inc. * be liable for any direct, indirect, incidental, special, exemplary, or * consequential damages. * * File: device.h * * Purpose: MAC Data structure * * Author: Tevin Chen * * Date: Mar 17, 1997 * */ #ifndef __DEVICE_H__#define __DEVICE_H__#ifdef MODULE#ifdef MODVERSIONS#include <linux/modversions.h>#endif /* MODVERSIONS */#include <linux/module.h>#endif /* MODULE */#include <linux/types.h>#include <linux/init.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/version.h>#include <linux/string.h>#include <linux/wait.h>#include <linux/if_arp.h>#include <linux/sched.h>#include <linux/if.h>#include <linux/rtnetlink.h>//James#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)#include <linux/config.h>#endif#include <linux/proc_fs.h>#include <linux/inetdevice.h>#include <linux/reboot.h>#include <linux/usb.h>#include <linux/signal.h>#include <asm/io.h>#include <asm/uaccess.h>#ifdef SIOCETHTOOL#define DEVICE_ETHTOOL_IOCTL_SUPPORT#include <linux/ethtool.h>#else#undef DEVICE_ETHTOOL_IOCTL_SUPPORT#endif/* Include Wireless Extension definition and check version - Jean II */#include <linux/wireless.h>#if WIRELESS_EXT > 12#include <net/iw_handler.h>	// New driver API#endif	/* WIRELESS_EXT > 12 *///2008-0409-07, <Add> by Einsn Liu#if WIRELESS_EXT > 17#ifndef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT#define WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT#endif #endif//// device specific//#if !defined(_KCOMPAT_H)#include "kcompat.h"#endif#if !defined(__DEVICE_CONFIG_H)#include "device_cfg.h"#endif#if !defined(__TTYPE_H__)#include "ttype.h"#endif#if !defined(__80211HDR_H__)#include "80211hdr.h"#endif#if !defined(__TETHER_H__)#include "tether.h"#endif#if !defined(__WMGR_H__)#include "wmgr.h"#endif#if !defined(__WCMD_H__)#include "wcmd.h"#endif#if !defined(__MIB_H__)#include "mib.h"#endif#if !defined(__SROM_H__)#include "srom.h"#endif#if !defined(__RC4_H__)#include "rc4.h"#endif#if !defined(__TPCI_H__)#include "tpci.h"#endif#if !defined(__DESC_H__)#include "desc.h"#endif#if !defined(__KEY_H__)#include "key.h"#endif#if !defined(__CARD_H__)#include "card.h"#endif/*---------------------  Export Definitions -------------------------*/#define VNT_USB_VENDOR_ID                     0x160A#define VNT_USB_PRODUCT_ID                    0x3184#define MAC_MAX_CONTEXT_REG     (256+128)#define MAX_MULTICAST_ADDRESS_NUM       32#define MULTICAST_ADDRESS_LIST_SIZE     (MAX_MULTICAST_ADDRESS_NUM * U_ETHER_ADDR_LEN)//#define OP_MODE_INFRASTRUCTURE  0//#define OP_MODE_ADHOC           1//#define OP_MODE_AP              2#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 ANT_TXA                 0#define ANT_TXB                 1#define ANT_RXA                 2#define ANT_RXB                 3#define MAXCHECKHANGCNT         4//Packet type#define TX_PKT_UNI              0x00#define TX_PKT_MULTI            0x01#define TX_PKT_BROAD            0x02#define BB_VGA_LEVEL            4#define BB_VGA_CHANGE_THRESHOLD 3#ifndef RUN_AT#define RUN_AT(x)                       (jiffies+(x))#endif// DMA related#define RESERV_AC0DMA                   4/*---------------------  Export Types  ------------------------------*/#define DBG_PRT(l, p, args...) {if (l<=msglevel) printk( p ,##args);}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;typedef enum __device_init_type {    DEVICE_INIT_COLD=0,         // cold init    DEVICE_INIT_RESET,          // reset init or Dx to D0 power remain init    DEVICE_INIT_DXPL            // Dx to D0 power lost init} DEVICE_INIT_TYPE, *PDEVICE_INIT_TYPE;//USB //// Enum of context types for SendPacket//typedef enum _CONTEXT_TYPE {    CONTEXT_DATA_PACKET = 1,    CONTEXT_MGMT_PACKET} CONTEXT_TYPE;// RCB (Receive Control Block)typedef struct _RCB{    PVOID                   Next;    LONG                    Ref;    PVOID                   pDevice;    struct urb              *pUrb;    SRxMgmtPacket           sMngPacket;    struct sk_buff*         skb;    BOOL                    bBoolInUse;    } RCB, *PRCB;// used to track bulk out irps typedef struct _USB_SEND_CONTEXT {    PVOID           pDevice;    struct sk_buff *pPacket;    struct urb      *pUrb;    UINT            uBufLen;    CONTEXT_TYPE    Type;    SEthernetHeader sEthHeader;    PVOID           Next;    BOOL            bBoolInUse;     UCHAR           Data[MAX_TOTAL_SIZE_WITH_ALL_HEADERS];} USB_SEND_CONTEXT, *PUSB_SEND_CONTEXT;//// Structure to keep track of usb interrupt packets//typedef struct {    UINT            uDataLen;    PBYTE           pDataBuf; //    struct urb      *pUrb;        BOOL            bInUse;} INT_BUFFER, *PINT_BUFFER;//0:11A 1:11B 2:11Gtypedef 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;//++ NDIS related#define NDIS_STATUS     int#define NTSTATUS        inttypedef enum __DEVICE_NDIS_STATUS {    STATUS_SUCCESS=0,    STATUS_FAILURE,    STATUS_RESOURCES,    STATUS_PENDING,} DEVICE_NDIS_STATUS, *PDEVICE_NDIS_STATUS;    #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 Structurestypedef UCHAR   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.typedef struct _PMKID_CANDIDATE {    NDIS_802_11_MAC_ADDRESS BSSID;    ULONG Flags;} PMKID_CANDIDATE, *PPMKID_CANDIDATE;typedef struct _BSSID_INFO{    NDIS_802_11_MAC_ADDRESS BSSID;    NDIS_802_11_PMKID_VALUE PMKID;} BSSID_INFO, *PBSSID_INFO;typedef struct tagSPMKID {    ULONG Length;    ULONG BSSIDInfoCount;    BSSID_INFO BSSIDInfo[MAX_BSSIDINFO_4_PMKID];} SPMKID, *PSPMKID;typedef struct tagSPMKIDCandidateEvent {    NDIS_802_11_STATUS_TYPE     StatusType;    ULONG Version;       // Version of the structure    ULONG NumCandidates; // No. of pmkid candidates    PMKID_CANDIDATE CandidateList[MAX_PMKIDLIST];} SPMKIDCandidateEvent, DEF* PSPMKIDCandidateEvent; //--//++ 802.11h related#define MAX_QUIET_COUNT     8typedef struct tagSQuietControl {    BOOL        bEnable;    DWORD       dwStartTime;    BYTE        byPeriod;    WORD        wDuration;} SQuietControl, DEF* PSQuietControl;//--// The receive duplicate detection cache entrytypedef struct tagSCacheEntry{    WORD        wFmSequence;                         BYTE        abyAddr2[U_ETHER_ADDR_LEN];    WORD        wFrameCtl;    } SCacheEntry, *PSCacheEntry;typedef struct tagSCache{/* The receive cache is updated circularly.  The next entry to be written is * indexed by the "InPtr".*/    UINT            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 reassemblytypedef struct tagSDeFragControlBlock{    WORD            wSequence;    WORD            wFragNum;    BYTE            abyAddr2[U_ETHER_ADDR_LEN];	UINT            uLifetime;    struct sk_buff* skb;    PBYTE           pbyRxBuffer;    UINT            cbFrameLength;    BOOL            bInUse;} SDeFragControlBlock, DEF* PSDeFragControlBlock;//flags for options#define     DEVICE_FLAGS_UNPLUG          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//flags for driver status#define     DEVICE_FLAGS_OPENED          0x00010000UL#define     DEVICE_FLAGS_WOL_ENABLED     0x00080000UL//flags for capbilities#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           0x00000001ULtypedef struct __device_opt {    int         nRxDescs0;    //Number of RX descriptors0    int         nTxDescs0;    //Number of TX descriptors 0, 1, 2, 3    int         rts_thresh;   //rts threshold    int         frag_thresh;    int         OpMode;    int         data_rate;    int         channel_num;    int         short_retry;    int         long_retry;    int         bbp_type;    U32         flags;} OPTIONS, *POPTIONS;typedef struct __device_info {// netdev 	struct usb_device*          usb;     struct net_device*          dev;    struct net_device_stats     stats;        OPTIONS                     sOpts;        	struct tasklet_struct       CmdWorkItem;    	struct tasklet_struct       EventWorkItem;  	struct tasklet_struct       ReadWorkItem;    	struct tasklet_struct       RxMngWorkItem;  	  	

⌨️ 快捷键说明

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