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

📄 eagledev.h

📁 marvell8385 GSPI开发驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
/******************* (c) Marvell Semiconductor, Inc., 2004 ********************
 *
 *
 *  Purpose:
 *
 *      This file contains definitions and data structures that are specific
 *      to Marvell MrvDrv 802.11 NIC. It contains the Device Information
 *      structure MRVDRV_ADAPTER.
 *
 *
 *	$Author: heb $
 *
 *	$Date: 2007/07/13 08:01:34 $
 *
 *	$Revision: 1.5.2.1 $
 *
 *****************************************************************************/

#ifndef _MRVDRVDEVICE_H_
#define _MRVDRVDEVICE_H_

#ifdef IF_SPI
#include "hostcmd.h"
#endif

#ifdef SDIO
#include "SDCardDDK.h" 
#endif // SDIO
//#define MAX_TX_PACKETS      128  //dralee_20051128
#define MAX_TX_PACKETS      256  //dralee_20051128
#define MAX_ACTIVE_REG_PATH 256
#define NDIS_SUCCESS(Status) ((NDIS_STATUS)(Status) == NDIS_STATUS_SUCCESS)

typedef struct _TX_QUEUE_NODE {
	PNDIS_PACKET        pNextPacket;
}TX_QUEUE_NODE, *PTX_QUEUE_NODE;

typedef struct _TX_QUEUE_HEADER{
	PNDIS_PACKET        Head, Tail;
}TX_QUEUE_HEADER, *PTX_QUEUE_HEADER;


#ifdef FAST_RETURN_PACKET

typedef struct _RXPDQIDX {
	PVOID	_DO_NOT_USE;
	UINT	Index;
} RX_PDQ_IDX, *PRX_PDQ_IDX;

/*#define MrvDrvGetReturnedPackets(Adapter,Packet)								  \
{																			  \
	NDIS_SET_PACKET_STATUS(Packet, NDIS_STATUS_SUCCESS);					  \
	Adapter->RxPDQ[((PRX_PDQ_IDX)Packet->MiniportReserved)->Index].Control =0;\
}*/

#endif

typedef struct _MRV_QOS_PARAMS
{
	ULONG  AC_BE;		// Best Effort AC parameters
	ULONG  AC_BE_XTRA;	// Extra AC_BE parameters
	ULONG  AC_BK;		// Background AC parameters
	ULONG  AC_BK_XTRA;	// Extra AC_BK parameters
	ULONG  AC_VI;		// Video AC parameters
	ULONG  AC_VI_XTRA;	// Extra Video AC parameters
	ULONG  AC_VO;		// Voice AC parameters
	ULONG  AC_VO_XTRA;	// Extra Voice AC parameters
} MRV_QOS_PARAMS, *PMRV_QOS_PARAMS;

typedef struct _MRV_BSSID_IE_LIST
{
    NDIS_802_11_FIXED_IEs       FixedIE;
    UCHAR                       VariableIE[MRVDRV_SCAN_LIST_VAR_IE_SPACE];
} MRV_BSSID_IE_LIST, *PMRV_BSSID_IE_LIST;

typedef struct _PER_CHANNEL_BSSID_LIST_DATA 
{
    UCHAR               ucNumEntry;
    MRV_BSSID_IE_LIST   IEBuffer[MRVDRV_MAX_BSSID_LIST];
    NDIS_WLAN_BSSID_EX  BSSIDList[MRVDRV_MAX_BSSID_LIST];
} PER_CHANNEL_BSSID_LIST_DATA, *PPER_CHANNEL_BSSID_LIST_DATA; 



/////////////////////////////////////////////////////////////////
//
//			Adapter information
//
/////////////////////////////////////////////////////////////////

#pragma pack(4)

typedef struct _MRVDRV_ADAPTER
{
	// Handle given by NDIS when the NIC registered itself
    NDIS_HANDLE             MrvDrvAdapterHdl;
	// Device information
    ULONG					VendorID;
    UINT					BusNumber;
    USHORT				SlotNumber;
    USHORT				DeviceNumber;
	  UCHAR         ChipVersion;
    USHORT				DriverVersion;
    UCHAR					MachineName[MRVDRV_DEFAULT_MACHINE_NAME_SIZE];

	// Interrupt object for this adapter
    NDIS_MINIPORT_INTERRUPT	MrvDrvINT;
    NDIS_INTERRUPT_MODE		MrvDrvINTMode;
    UINT					MrvDrvINTVector;
    UINT					MrvDrvINTLevel;
    ULONG					INTCause;
    NDIS_HANDLE             MrvDrvWrapperConfigurationContext;

	ULONG					InitializationStatus;
    UINT					TimerInterval;


	// NDIS Timer
  NDIS_MINIPORT_TIMER		MrvDrvCommandTimer;   
#ifdef CONFIG_WLAN_DHCP_PROXY
  NDIS_MINIPORT_TIMER		DHCPProxyRxPktTimer;   
	PNDIS_PACKET	        DHCPRespPacket;            
      UINT					DHCPProxyRxPktTimerSet;
#endif
	NDIS_MINIPORT_TIMER		MrvDrvTxPktTimer;
  //dralee, unused 
	//NDIS_MINIPORT_TIMER		MrvDrvCheckTxQueueTimer;
	NDIS_MINIPORT_TIMER	    MrvDrvIndicateConnectStatusTimer;
   #ifdef REASSOCIATE
	NDIS_MINIPORT_TIMER        MrvReConnectTimer;     
	BOOLEAN                             ReConnectTimerIsSet;  
       // reconnect
       BOOLEAN                 bIsReconnectEnable;
       USHORT                   ReconnectType;
       USHORT                   usReconnectCounter;
       ULONG                     ulReconnectPeriod;
       ULONG                     ulStartTimeStamp;
       BOOLEAN                 bIsReConnectNow;
       BOOLEAN                 bIsSystemConnectNow;
       BOOLEAN                 bIsAcceptSystemConnect;
       NDIS_802_11_NETWORK_INFRASTRUCTURE  ReInfrastructureMode; 
       NDIS_802_11_AUTHENTICATION_MODE     ReAuthenticationMode;
       NDIS_802_11_ENCRYPTION_STATUS       ReEncryptionStatus;
       MRVL_WEP_KEY            ReWEPKey;
       NDIS_802_11_SSID        ReSSID;   
    #endif //REASSOCIATE	

	NDIS_MINIPORT_TIMER 	MrvDrvRssiHighTimer;


    BOOLEAN					CommandTimerSet;
    BOOLEAN					TxPktTimerIsSet;
	BOOLEAN					RssiHighTimerIsSet;
    //BOOLEAN					CheckTxQueueTimerIsSet;
    BOOLEAN					isCommandTimerExpired;
    BOOLEAN					DisconnectTimerSet;
	
	NDIS_WORK_ITEM  		MrvDrvPMWorkItem;
	

	// Command-related variables
    USHORT					SeqNum;
    CmdCtrlNode				*CmdArray;
    CmdCtrlNode				*CurCmd;	   // Current Command
    Q_KEEPER				CmdFreeQ;	   // Queue to keep free command buffers
    Q_KEEPER                            CmdPendQ;          // plus 

    #ifdef TX_PRY_Q 
    TXQ_NODE          FreeTxQNode[MAX_TX_PACKETS];
    PTXQ_NODE         TxFreeQ;

    TXQ_KEEPER				TXPRYQ[NUM_OF_WMM_PRIORITY_LEVEL];	   // Tx priority Queue 0,1,2,3
    //TXQ_KEEPER				TXPRYQ1;     // Tx priority Queue 1 	
    //TXQ_KEEPER				TXPRYQ2;     // Tx priority Queue 2 	
	  TXQ_KEEPER				TXRETQ;     // Tx priority Queue 3  
  
    #ifdef RETQ_TIMER 
    BOOLEAN             RetQTimerIsSet;
	NDIS_MINIPORT_TIMER MrvRetQTimer;
    #endif //RETQ_TIMER

    #endif //TX_PRY_Q
	// Tx-related variables 
  //ULONG PacketSentState;

	WCB			            Wcb;
	TxCtrlNode	            TxNode;
	PNDIS_PACKET	        SentPacket;            
  ULONG                 bSentPacketReturned;  //dralee++ 09172005
  //  PNDIS_PACKET            QueuedPacket;   // packet queued while in sleep , dralee

	//UINT			        SentFlags;   dralee, unused .   
  //dralee-- 09172005 unused flag
	//BOOLEAN                 FirstSentDone; 
  //  UCHAR                   TxRetryCount;   // number of times to retry sending the pkt

//#ifdef USE_TX_QUEUE
//	NDIS_SPIN_LOCK						TxQueueLock;
//	TX_QUEUE_HEADER 					TxQueue;
//	UINT								TxQueueDepth;
//#endif
    /// Rx-related variables 
    //dralee, 072705
    //RxPD                                RxPD1;
	UCHAR                   			pRxBuf[MRVDRV_ETH_RX_PACKET_BUFFER_SIZE];
	ULONG                   			ulRxSize;

    PNDIS_PACKET                    pRxCurPkt;
    PRxPD                           pRxPD1;

    NDIS_HANDLE                 		RxPacketPoolHandle;
    NDIS_HANDLE                 		RxBufferPoolHandle;
    PNDIS_PACKET                		pRxPacket[MRVDRV_NUM_RX_PKT_IN_QUEUE];
    PNDIS_BUFFER                		pRxBuffer[MRVDRV_NUM_RX_PKT_IN_QUEUE];
    PVOID                       		pRxBufVM[MRVDRV_NUM_RX_PKT_IN_QUEUE];
    PACKET_QUEUE_NODE           		RxPacketQueueNode[MRVDRV_NUM_RX_PKT_IN_QUEUE];
    NDIS_SPIN_LOCK              		RxQueueSpinLock;
    Q_KEEPER                    		RxPacketFreeQueue;
    SHORT                      		  sNumOutstandingRxPacket;            
		
    NDIS_HANDLE                 		PMUTxPacketPoolHandle;
    NDIS_HANDLE                 		PMUTxBufferPoolHandle;
    PNDIS_PACKET                		pPMUTxPacket;
    PNDIS_BUFFER                		pPMUTxBuffer;
    PVOID                       		pPMUTxBufVM;
	/// NDIS spin lock
	  NDIS_SPIN_LOCK						FreeQSpinLock;      // Command : free queue 
  //dralee_1108 --
  //  NDIS_SPIN_LOCK						PriorityQSpinLock;	// Command : priority queue 
  //  NDIS_SPIN_LOCK 	        			TxSpinLock;			// Tx

	// MAC address information
    UCHAR					PermanentAddr[MRVDRV_ETH_ADDR_LEN];
    UCHAR					CurrentAddr[MRVDRV_ETH_ADDR_LEN];
    UCHAR					MulticastList[MRVDRV_MAX_MULTICAST_LIST_SIZE][MRVDRV_ETH_ADDR_LEN];
    ULONG					NumOfMulticastMACAddr;
    USHORT                  RegionCode;
    USHORT                  RegionTableIndex;
    ULONG					FWReleaseNumber;

	// Operation characteristics
    ULONG					LinkSpeed;
    ULONG					CurrentPacketFilter;
    ULONG					CurrentLookAhead;
    ULONG					ProtocolOptions;
    ULONG					MACOptions;
    ULONG					MediaConnectStatus;
    NDIS_MEDIUM				MediaInUse;

	// Status variables
    NDIS_HARDWARE_STATUS    HardwareStatus;
    USHORT                  FWStatus;
    USHORT                  MACStatus;
    USHORT                  RFStatus;
    USHORT                  CurentChannel; // 1..99

#ifdef WPA
    /// WPA-related variables
	NDIS_802_11_ENCRYPTION_STATUS       EncryptionStatus;
    BOOLEAN                             WPAEnabled;

    // Alignment on PDA
    UCHAR                               RESERVED[3];

    // Buffer to store data from OID_802_11_ASSOCIATION_INFORMATION
    UCHAR                               AssocInfoBuffer[MRVDRV_ASSOCIATE_INFO_BUFFER_SIZE];

    // Key management
    MRVL_WPA_KEY_SET                    KeyMap[MRVL_NUM_WPA_KEYSET_SUPPORTED];
    UCHAR                               ucCurrentUsedKeyIdx;

    // Last added pair wise key
    PMRVL_WPA_KEY                       pLastAddedPWK;

    // Last matching group wise key
    PMRVL_WPA_KEY                       pLastAddedGWK;

#endif // #ifdef WPA
    ///Misc variables
    ULONG                               FWCapInfo;

    NDIS_802_11_WEP_STATUS              WEPStatus;

    NDIS_802_11_AUTHENTICATION_MODE	    AuthenticationMode;
    NDIS_802_11_NETWORK_INFRASTRUCTURE  InfrastructureMode;
    NDIS_802_11_PRIVACY_FILTER          PrivacyFilter;
    ULONG                               ulAttemptedBSSIDIndex;
    ULONG                               ulCurrentBSSIDIndex;
    NDIS_802_11_SSID                    CurrentSSID;
    UCHAR                               CurrentBSSID[MRVDRV_ETH_ADDR_LEN];
    NDIS_802_11_CONFIGURATION           CurrentConfiguration;

    NDIS_WLAN_BSSID_EX                  CurrentBSSIDDesciptor;
    MRV_BSSID_IE_LIST                   CurrentBSSIDIEBuffer;
	BSS_DESCRIPTION_SET_ALL_FIELDS      CurrentBssDesciptor;

    NDIS_802_11_SSID                    AttemptedSSIDBeforeScan;
    NDIS_802_11_SSID                    PreviousSSID;
    UCHAR                               PreviousBSSID[MRVDRV_ETH_ADDR_LEN];

    // BSSID LIST for ESS and IBSS 
    NDIS_WLAN_BSSID_EX		            BSSIDList[MRVDRV_MAX_BSSID_LIST];
    MRV_BSSID_IE_LIST                   IEBuffer[MRVDRV_MAX_BSSID_LIST];
	BSS_DESCRIPTION_SET_ALL_FIELDS		BssDescList[MRVDRV_MAX_BSSID_LIST];
	ULONG					            ulNumOfBSSIDs;
    // progressive scan data
    NDIS_WLAN_BSSID_EX                  PSBSSIDList[MRVDRV_MAX_BSSID_LIST];    
    NDIS_WLAN_BLACK_BSSID_EX      BlackBSSIDList[MRVDRV_MAX_BSSID_LIST];  
	ULONG					            BlackBSSIDListCursor;    
	ULONG					            ProfileListCursor;    
    MRV_BSSID_IE_LIST                   PSIEBuffer[MRVDRV_MAX_BSSID_LIST];
	BSS_DESCRIPTION_SET_ALL_FIELDS		PSBssDescList[MRVDRV_MAX_BSSID_LIST];
	ULONG					            ulPSNumOfBSSIDs;    

	BOOLEAN                             bIsPendingReset;
	BOOLEAN								bIsAssociationBlockedByScan;
	BOOLEAN                             bIsScanWhileConnect;
    BOOLEAN                             bIsConnectToAny;
  
    BOOLEAN    							bIsScanInProgress;
	BOOLEAN    							bIsAssociateInProgress;
	
    BOOLEAN                     		bRetryAssociate;

	PENDING_OID							PendingGetBssidOid;
	PENDING_OID                         PendingSetSssidOid;

	LONG					            LastRSSI;
	LONG 						rssi_Current	;
    LONG					            RSSITriggerValue;
    USHORT					            RSSITriggerCounter;
#ifdef NEW_RSSI
    /* Requested Signal Strength Indicator */
	//int			                    AvgPacketCount;
	UCHAR			                    SNRNF[MAX_SNR][2];
	USHORT			                    SNR[MAX_TYPE_B][MAX_TYPE_AVG];
	USHORT			                    NF[MAX_TYPE_B][MAX_TYPE_AVG];
	//USHORT			                RSSI[MAX_TYPE_B][MAX_TYPE_AVG];
	LONG			                    RSSI[MAX_TYPE_B][MAX_TYPE_AVG];
	//ULONG			                    RxPDSNRAge;
#endif
#ifdef UNDER_CE
    BOOLEAN                             bIsLastOIDSetEncryptionStatus;
#endif // #ifdef UNDER_CE
    BOOLEAN                     		TxPowerLevelIsSetByOS; // is the power level set by the OS or API?
    NDIS_802_11_TX_POWER_LEVEL  		TxPowerLevel;

 	USHORT   							DTIMNum;
    BOOLEAN  							DTIMFlag;

    UCHAR                       		ucNumCmdTimeOut;

    ULONG                       		DefaultPerChannelScanTime;
    ULONG                       		ulLastMICErrorTime;
	// MAC control record 
    USHORT                              usMacControlRecord;

   
   /// Used to deal with 0 length SET SSID (Need to auto associate)
    NDIS_802_11_SSID		            DesiredSSID;
    NDIS_802_11_SSID                    NullSSID;
    NDIS_802_11_SSID					ActiveScanSSID;
    BOOLEAN								SetActiveScanSSID;
    UCHAR 								ActiveScanBSSID[MRVDRV_ETH_ADDR_LEN];
	BOOLEAN								SetActiveScanBSSID;
    UCHAR                               NullBSSID[MRVDRV_ETH_ADDR_LEN];
    ULONG                               ulLastScanRequestTime;
	UINT 								m_NumScanInAssociationBlocked;	

	/// Power management and pNp support
	NDIS_DEVICE_POWER_STATE CurPowerState;
	ULONG                   PowerLevelList[MRVDRV_TX_POWER_LEVEL_TOTAL];
	BOOLEAN                 SurpriseRemoved;
    UCHAR                   Pad3;
	USHORT                  SupportTxPowerLevel;
	USHORT                  CurrentTxPowerLevel;

    /// 802.3 Statistics
    ULONGLONG               XmitOK;
    ULONGLONG               RcvOK;
    ULONGLONG               XmitError;
    ULONGLONG               RcvError;
    ULONGLONG               RcvNoBuffer;
    ULONGLONG               RcvCRCError;
	ULONGLONG				DirectedFramesRcvOK;

    /// 802.11 statistics
    LARGE_INTEGER           TransmittedFragmentCount;
    LARGE_INTEGER           MulticastTransmittedFrameCount;
    LARGE_INTEGER           FailedCount;
    LARGE_INTEGER           RetryCount;
    LARGE_INTEGER           MultipleRetryCount;
    LARGE_INTEGER           RTSSuccessCount;
    LARGE_INTEGER           RTSFailureCount;
    LARGE_INTEGER           ACKFailureCount;
    LARGE_INTEGER           FrameDuplicateCount;
    LARGE_INTEGER           ReceivedFragmentCount;

⌨️ 快捷键说明

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