📄 vnet.h
字号:
/**************************************************************************//* *//* Copyright (c) 1999-2000 by Atmel Corporation *//* *//* This software is copyrighted by and is the sole property of Atmel *//* Corporation. All rights, title, ownership, or other interests *//* in the software remain the property of Atmel Corporation. This *//* software may only be used in accordance with the corresponding */ /* license agreement. Any un-authorized use, duplication, transmission, *//* distribution, or disclosure of this software is expressly forbidden. *//* *//* This Copyright notice may not be removed or modified without prior *//* written consent of Atmel Corporation. *//* *//* Atmel Corporation, Inc. reserves the right to modify this software *//* without notice. *//* *//* Atmel Corporation. *//* 2325 Orchard Parkway literature@atmel.com *//* San Jose, CA 95131 http://www.atmel.com *//* *//**************************************************************************//***************************************************************************//***************************************************************************//** *//** FastVNET (PCMCIA) NDIS Miniport Driver *//** *//** The main header for the Miniport driver *//** *//***************************************************************************//***************************************************************************/#ifndef __VNet_h_OK__#define __VNet_h_OK__#define MAX_SSID_LENGTH 32#ifdef LINUX_OS#include "vnet_linux.h"#endif#ifdef WINDOWS_OS#include <ndis.h>#endif#include "debug.h"#include "appint.h"#include "at76c502.h"#include "frame.h"#ifdef WINDOWS_OS#include "vnet_win.h"#endif#define FAST_VNET_MAJOR_VERSION 4#define FAST_VNET_MINOR_VERSION 0#define FAST_VNET_SUB_VERSION 0#define FAST_VNET_BUILD 3#define PRODUCT_NAME "PCMCIA Wireless Network Adapter"#define MAX_DRIVER_DESC_LENGTH 100#define AUTHENTICATION_RESPONSE_TIME_OUT 1000///////////////////////////////////////////////////////////////////////////// General definitions///////////////////////////////////////////////////////////////////////////#define VNet_MAX_FRAME_SIZE 1500#define VNet_HEADER_SIZE 14#define MAX_WIRELESS_FRAME_SIZE 1550 // 1500 + 14 + 18 + ...#define VNet_MAX_LOOKAHEAD VNet_MAX_FRAME_SIZE #define VNet_LENGTH_OF_ADDRESS 6#define DEFAULT_MULTICASTLISTMAX 32#define MAX_RX_PACKET_SIZE 2000#define LOOP_RETRY_LIMIT 500000#define PERIODIC_TIMER_TOUT 2000#define MAX_DEVICE_ID_LENGTH 50#define ACTIVE_MODE 1#define PS_MODE 2#define MIN_BEACON_PROBE_BYTES 60///////////////////////////////////////////////////////////////////////////// 802.11 related definitions///////////////////////////////////////////////////////////////////////////#define AD_HOC_MODE 0#define INFRASTRUCTURE_MODE 1#define AUTO_MODE 2#define BSS_TYPE_AD_HOC 1#define BSS_TYPE_INFRASTRUCTURE 2#define SCAN_TYPE_ACTIVE 0#define SCAN_TYPE_PASSIVE 1#define LONG_PREAMBLE 0#define SHORT_PREAMBLE 1#define WEP_MODE_MANDATORY 0#define WEP_MODE_OPTIONAL 1#define LISTEN_INTERVAL 200#define DATA_FRAME_WS_HEADER_SIZE 30#define CTRL_FRAMES_TX_RATE 1#define MGMT_FRAMES_TX_RATE 1#define PROM_MODE_OFF 0x0#define PROM_MODE_UNKNOWN 0x1#define PROM_MODE_CRC_FAILED 0x2#define PROM_MODE_DUPLICATED 0x4#define PROM_MODE_MGMT 0x8#define PROM_MODE_CTRL 0x10#define PROM_MODE_BAD_PROTOCOL 0x20#define CARD_TYPE_PARALLEL_FLASH 0x1#define CARD_TYPE_SPI_FLASH 0x2#define CARD_TYPE_EEPROM 0x3///////////////////////////////////////////////////////////////////////////// FLASH programming related definitions///////////////////////////////////////////////////////////////////////////#define BANK_SIZE 0x10000#define ATMEL_ID 0x1f#define ST_ID 0x20#define ST_M29W010B 0x23 #define ATMEL_49LV002 0x07#define ATMEL_49LV002T 0x08#define ATMEL_49LV001 0x05#define ATMEL_49LV001T 0x04#define ATMEL_29LV512 0x3d#define ATMEL_29LV010 0x35#define ATMEL_29LV020 0xba#define ATMEL_29LV040 0xc4#define CIS_BYTES 1024#define HW_CONFIG_BYTES 0x700#define HW_CONFIG_OFFSET 0x1C000///////////////////////////////////////////////////////////////////////////// type definitions///////////////////////////////////////////////////////////////////////////typedef UCHAR MACADDR[VNet_LENGTH_OF_ADDRESS];///////////////////////////////////////////////////////////////////////////// IFACE/////////////////////////////////////////////////////////////////////////////// interface host driver/firmware structure IFACE//typedef struct __IFACE{ UCHAR volatile IntStatus; UCHAR volatile IntMask; UCHAR volatile LockoutHost; UCHAR volatile LockoutMac; USHORT TxBuffPos; USHORT TxBuffSize; USHORT TxDescPos; USHORT TxDescCount; USHORT RxBuffPos; USHORT RxBuffSize; USHORT RxDescPos; USHORT RxDescCount; USHORT BuildVer; USHORT CommandPos; USHORT MajorVer; USHORT MinorVer; UCHAR FuncCtrl; UCHAR Reserved[3]; } IFACE, *PIFACE;#define IFACE_INT_STATUS_OFFSET 0#define IFACE_INT_MASK_OFFSET 1#define IFACE_LOCKOUT_HOST_OFFSET 2#define IFACE_LOCKOUT_MAC_OFFSET 3#define IFACE_FUNC_CTRL_OFFSET 28//// IFACE MACROS & definitions////// FuncCtrl field: //#define FUNC_CTRL_TxENABLE (UCHAR)0x10#define FUNC_CTRL_RxENABLE (UCHAR)0x20#define FUNC_CTRL_INIT_COMPLETE (UCHAR)0x01//// Station States definitions//#define STATION_STATE_INITIALIZING 0x00#define STATION_STATE_SCANNING 0x01#define STATION_STATE_JOINNING 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_DIAUTHENTICATING 0x08#define STATION_STATE_REASSOCIATING 0x09#define STATION_STATE_FORCED_JOINNING 0x0a#define STATION_STATE_RECONFIGURING 0x0b#define STATION_STATE_FW_UPGRADE 0x0c#define STATION_STATE_FORCED_JOIN_FAILURE 0x0d#define STATION_STATE_RESETTING 0x0e#define STATION_STATE_RESET_PENDING 0x0f#define STATION_STATE_SNIFFER_MODE 0x10#define STATION_STATE_WAIT_ACTION 0x11 //under XP we need this state to allow XP to initiate a new scan//errors: error code field is valid#define STATION_STATE_NO_CARD 0xf0#define STATION_STATE_MGMT_ERROR 0xf1#ifdef UNDER_CE#define GEN_ARRAY_LENGTH 250#endiftypedef struct __VNet_ADAPTER { // // I/O // UINT IoBaseAddr; ULONG IoPortsLen; ULONG IoBase; BOOLEAN IOregistered; // // Interrupt //#ifdef WINDOWS_OS NDIS_MINIPORT_INTERRUPT Interrupt; UCHAR InterruptLevel; UCHAR InterruptVector; BOOLEAN InterruptRegistered;#endif UCHAR InterruptStatus; UCHAR InterruptType; UCHAR InterruptMask; // // NDIS // UCHAR BusType; UINT MulticastListMax; ULONG PacketFilter; ULONG CurrentLookAhead; UCHAR Lookahead[MAX_WIRELESS_FRAME_SIZE];#ifdef WINDOWS_OS NDIS_HANDLE MiniportAdapterHandle; NDIS_SPIN_LOCK Lock;#endif UCHAR StationAddress[VNet_LENGTH_OF_ADDRESS];#ifdef LINUX_OS struct net_device *dev;#endif // // Statistics // STATISTICS Stats; // // TX // USHORT TxDescFree; USHORT TxDescHead; USHORT TxDescTail; USHORT TxDescPrevious; USHORT TxFreeBuffMem; USHORT TxBuffHead; USHORT TxBuffTail; USHORT TxBuffEnd; USHORT TxBuffStart; ULONG Transmissions; ULONG CompletedTransmissions;#ifdef WINDOWS_OS PNDIS_PACKET FirstTxQueue; PNDIS_PACKET LastTxQueue;#endif ULONG PendingTxPackets; // // RX // USHORT RxDescHead; USHORT RxBuffEnd; USHORT RxBuffStart; ULONG Receptions; ULONG RxPacketLen; ULONG RxPacketLoc; BOOLEAN IndicateReceiveDone;#ifdef WINDOWS_OS // // SNIFFER // RX_SNIFFER RxSniffer; UCHAR ChannelToKeepAndRestore; UCHAR OperatingModeToSetOnExitSniffer; WEP_INFO WepStructToRestore; SNIFFER_FILTER SnifferFilter; // // Sniffer Statistics // SNIFFER_STATISTICS SnifferStats;#endif // // parameters // UCHAR Channel; UCHAR OperatingMode; USHORT RtsThreshold; USHORT FragmentationThreshold; UCHAR DataFramesTxRate; IFACE HostInfo; USHORT HostInfoBase; UCHAR PreambleType; UCHAR Rssi; UCHAR LinkQuality; UCHAR DriverDesc[MAX_DRIVER_DESC_LENGTH]; UCHAR DriverDescSize; // // State/Control vars // UCHAR StationState; USHORT CurrentAuthentTransactionSeqNum; USHORT ExpectedAuthentTransactionSeqNum; BOOLEAN StationWasAssociated; BOOLEAN MiniportResetRequest; UCHAR SiteSurveyState; UCHAR CardType; UCHAR IndicateConnectState; BOOLEAN IndicateResetComplete; BOOLEAN RejectPendingTxPackets; BOOLEAN WepIsConfigured; // // 802.11 // MACADDR CurrentBSSID; UCHAR DesiredSSID[MAX_SSID_LENGTH]; UCHAR SSID_Size; UCHAR InitialSSIDsize; UCHAR InitialSSID[MAX_SSID_LENGTH]; UCHAR BSSID[6]; UCHAR AuthenticationRequestRetryCnt; UCHAR AssociationRequestRetryCnt; UCHAR ReAssociationRequestRetryCnt; WEP_INFO WepInfo; BOOLEAN ApSelected; UCHAR PowerMgmtMode; USHORT BeaconPeriod; USHORT ListenInterval; BSS_INFO BSSinfo[MAX_BSS_ENTRIES]; IBSS_INFO IBSSinfo[MAX_IBSS_ENTRIES]; UCHAR BSSListEntries; UCHAR IBSSMemberEntries; ULONG MgmtErrorCode; // //Timers //#ifdef WINDOWS_OS NDIS_MINIPORT_TIMER MgmtTimeOutTimer; NDIS_MINIPORT_TIMER PeriodicTimer;#endif#ifdef LINUX_OS struct timer_list MgmtTimer; UCHAR IsUp;#endif // // application support // VERSION_INFO VersionInfo; UCHAR DeviceID[MAX_DEVICE_ID_LENGTH]; UCHAR DeviceIDsize;#ifdef UNDER_CE BOOLEAN FirstTimerEntry; HKEY hKey;#endif // // DFU // UCHAR VendorID; UCHAR FlashID; ULONG FlashTotalBytes; ULONG FirmwareFileLength; PUCHAR MappedFirmwareBuffer;#ifdef WINDOWS_OS NDIS_HANDLE FwFileHandle;#endif PUCHAR pCIS; PUCHAR pHardConfig; BOOLEAN InvalidMACaddress;} VNet_ADAPTER, * PVNet_ADAPTER;#ifdef WINDOWS_OS#define VNET_ASSERT(A) ASSERT(A)#endif#ifdef LINUX_OS #define VNET_ASSERT(A) {}#endif#include "stdinclude.h"#ifdef WINDOWS_OS#include "win_inlines.h"#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -