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

📄 eagledev.h

📁 此压缩包为杰得开发得z228的BSP的源代码,可以实现很多功能,尤其是视频解码有很好的效果.
💻 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: schiu $
 *
 *	$Date: 2004/12/15 $
 *
 *	$Revision: #10 $
 *
 *****************************************************************************/

#ifndef _MRVDRVDEVICE_H_
#define _MRVDRVDEVICE_H_

#ifdef IF_GSPI
#include "hostcmd.h"
#endif ///IF_GSPI

#ifdef IF_SDIO
#include "SDCardDDK.h" 
#endif // IF_SDIO
#ifdef BG_SCAN
#define LENGTH_BGSCAN_CFG      512
#endif
#ifdef PA_CFG_EXT
#define LENGTH_PA_CFG      64
#endif
#define MAX_TX_PACKETS      64  //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; 

#ifdef PMKID_CACHE_CAP
#define MAX_PMKID_CACHE	8
#define LEN_OF_PMKID		16
#define MAX_PMKID_CANDIDATE	5

typedef struct _PMKID_CACHE
{
	UCHAR		bssid[MRVDRV_ETH_ADDR_LEN];
	UCHAR		pad[2]; // for 4 bytes boundary. ?do we need it?
	UCHAR		pmkid[LEN_OF_PMKID];
} PMKID_CACHE, *PPMKID_CACHE;
#endif //PMKID_CACHE_CAP


/////////////////////////////////////////////////////////////////
//
//			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;   
	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;  
	//35.p6++
	BOOLEAN                   bIsBeaconLoseEvent;
   	BOOLEAN 		     bIsDeauthenticationEvent;
       //35.p6--     
    #endif //REASSOCIATE	

     #ifdef ACTIVE_ROAMING
       NDIS_MINIPORT_TIMER				       MrvActiveRoamingTimer;     
       BOOLEAN                                                 ActiveRoamingTimerIsSet;
       BOOLEAN                                                 bIsActiveRoaming;
       ULONG                                                   bActiveRoamingScanOneChannel;  
       ULONG                                                   bLinkLostScanOneChannel;
      
       NDIS_MINIPORT_TIMER				       MrvBGActiveRoamingTimer;   
       BOOLEAN                                                 BGActiveRoamingTimerIsSet;
       USHORT                                                  ACTIVE_ROAMING_Count;
       UCHAR                                                   Pre_ACTIVING_ROAMING_BSSID[MRVDRV_ETH_ADDR_LEN];
       BOOLEAN                                                 ActiveRoamingwithBGSCAN_FLAG;
    #endif //ACTIVE_ROAMING     	

    BOOLEAN					CommandTimerSet;
    BOOLEAN					TxPktTimerIsSet;
    //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[MAX_AC_QUEUES];	   // 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
#ifdef WMM_UAPSD
  ULONG                 bNullFrameSent;
#endif
  //  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 spin lock
	  NDIS_SPIN_LOCK						FreeQSpinLock;      // Command : free queue 
  //dralee_1108 --
  //  NDIS_SPIN_LOCK						PriorityQSpinLock;	// Command : priority queue 
  //  NDIS_SPIN_LOCK 	        			TxSpinLock;			// Tx
       
    //ahan [2005-12-13] ++dralee_20060217
    SubscibeEvent_t         EventRecord;         
    USHORT                  SubscribeEvents; 
       
    //++dralee_20060220
    USHORT                  ScanProbes;			 //ahan [2005-12-09]
    USHORT                  LocalListenInterval; //ahan [2005-12-12]

	// 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];    
    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					            RSSITriggerValue;
    USHORT					            RSSITriggerCounter;
 
    USHORT					           RxPDRate;
#ifdef NEW_RSSI
    /** Requested Signal Strength*/
	USHORT			                  bcn_avg_factor;
	USHORT		                         data_avg_factor;
	SHORT			                  SNR[MAX_TYPE_B][MAX_TYPE_AVG];
	SHORT		                         NF[MAX_TYPE_B][MAX_TYPE_AVG];
	SHORT		                         RSSI[MAX_TYPE_B][MAX_TYPE_AVG];
	ULONG                                    ulRSSITickCount; 
	ULONG                                    ulRSSIThresholdTimer;
	SHORT                                    RSSI_Range;
	SHORT                                    NegativeRSSI_Range;
#endif //NEW_RSSI
#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;
    LARGE_INTEGER           MulticastReceivedFrameCount;
    LARGE_INTEGER           FCSErrorCount;

	// Software filter support
	BOOLEAN					SoftwareFilterOn;

    ULONG                   NoOfWEPEntry;
    MRVL_WEP_KEY            LastAddedWEPKey;
    MRVL_WEP_INFO           WEP_INFO_LIST[MRVDRV_NUM_OF_WEP_INFO];

    ULONG                   IV;
    MRVL_WEP_KEY            CurrentWEPKey;

	BOOLEAN AdHocCreated;
	BOOLEAN AdHocFailed; 
	ULONG 	AcceptAnySSID;
	ULONG	AutoConfig;
	ULONG	TxWepKey;
	ULONG	Preamble;
	NDIS_802_11_ANTENNA	TxAntenna;
	NDIS_802_11_ANTENNA	RxAntenna;
	ULONG	Channel;
	ULONG	TxPower;
	NDIS_802_11_FRAGMENTATION_THRESHOLD	FragThsd;
	NDIS_802_11_RTS_THRESHOLD	RTSThsd;
	ULONG	RTSRetryLimit;
	ULONG	NetworkMode; 	
    // 0:auto, 1:1 Mbps, 2:2 Mbps, 3:5.5 Mbps,4:11 Mbps, 5:22 Mbps
	ULONG	DataRate;
	
	MRVL_WEP_KEY WepKey1;
	MRVL_WEP_KEY WepKey2;

⌨️ 快捷键说明

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