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

📄 utility.h

📁 philip L107x sdio wifi 驱动程序
💻 H
📖 第 1 页 / 共 2 页
字号:
    ULONG                   ulCamScanInterval;

    ULONG                   ulPsScanInterval;

} NDIS_COMMASIC_BACKGROUND_SCAN_CONFIG, *PNDIS_COMMASIC_BACKGROUND_SCAN_CONFIG;





// Data type for OID_COMMASIC_UTIL_STATUS.

typedef	struct	_COMMASIC_UTIL_STATUS

{

    ULONG					boConnected;	// TRUE: connected; FALSE: disconnected.

    NDIS_802_11_SSID		sSsid;			// SSID.

    NDIS_802_11_MAC_ADDRESS	ucBssid;		// AP MAC address or IBSS MAC address.

    ULONG					ulInfraMode;	// Ndis802_11Infrastructure or Ndis802_11IBSS.

    ULONG					ulChannel;		// Channel (0-14).

    ULONG					ulTxRate;		// Tx rate (0, 2, 4, 11, 22, .., 108).



} COMMASIC_UTIL_STATUS, *PCOMMASIC_UTIL_STATUS;



// Data type for OID_COMMASIC_UTIL_SIGNAL.

typedef struct	_COMMASIC_UTIL_SIGNAL

{

    LONG					lRssi;			// RSSI, Received Signal Strength Indication.

    LONG					lSnr;			// SNR, Signal-to-Noise Ratio. 



} COMMASIC_UTIL_SIGNAL, *PCOMMASIC_UTIL_SIGNAL;



// Data type for OID_COMMASIC_UTIL_STAT.

typedef struct	_COMMASIC_UTIL_STAT

{

    ULONG					ulTxFrames;		// Total Data and Mgmt frames Tx'ed.

    ULONG					ulTxErrors;		// Total Tx failed frames.

    ULONG					ulRxFrames;		// Total Data and Mgmt frames Rx'ed.

    ULONG					ulRxErrors;		// Total Rx FCS error frames.

    ULONGLONG				ullTxDataBytes;	// Txed data bytes.

    ULONGLONG				ullRxDataBytes;	// Rxed data bytes.



} COMMASIC_UTIL_STAT, *PCOMMASIC_UTIL_STAT;



// Statistics structure.

typedef struct

{

    ULONG	  ulTotalPktsTxedOk;

    ULONG	  ulTotalPktsTxedError;

    ULONGLONG ullDirectedBytesTxed;

    ULONG	  ulDirectedPktsTxed;

    ULONGLONG ullMulticastBytesTxed;

    ULONG	  ulMulticastPktsTxed;

    ULONGLONG ullBroadcastBytesTxed;

    ULONG	  ulBroadcastPktsTxed;



    ULONG	  ulTotalPktsRxedOk;

    ULONG	  ulTotalPktsRxedError;

    ULONGLONG ullDirectedBytesRxed;

    ULONG	  ulDirectedPktsRxed;

    ULONGLONG ullMulticastBytesRxed;

    ULONG	  ulMulticastPktsRxed;

    ULONGLONG ullBroadcastBytesRxed;

    ULONG	  ulBroadcastPktsRxed;

    ULONG	  ulRxResourceError;

    ULONG	  ulRcvCrcErrors;



    ULONG	  ulTxOneCollision;

    ULONG	  ulTxMoreCollision;

    ULONG	  ulRxAlignmentError;

} DAT_STATISTICS, * PDAT_STATISTICS;



// Change network request.

typedef struct

{

    NDIS_OID				ulOid;					// Set BBSID or set SSID.



    NDIS_802_11_MAC_ADDRESS	ucBSSID;				// AP MAC address or IBSS MAC address.

    NDIS_802_11_SSID		sSSID;					// SSID.

    BOOLEAN					boNeedDisconnect;		// TRUE if need to disconnect first.

    BOOLEAN					boAuthModeChanged;		// TRUE if need to set authentication mode.

    BOOLEAN					boEncryptStatusChanged;	// TRUE if need to set encryption status.

    BOOLEAN					boWEPKeysChanged;		// TRUE if need to set WEP keys.

    BOOLEAN					boIbssChannelChanged;	// TRUE if need to set adhoc channel.

    BOOLEAN					boRecoverLostAPConnection;	// TRUE if previously

} CHANGE_NETWORK, * PCHANGE_NETWORK;





typedef struct

{

    int8        i8CurrentMaxTxPower;     // Max Tx Power in effect



    bool        boCountryIeValid;

    int8        i8MaxSubbandTxPower;     // From 802.11d,j Country IE



    bool        boLocalPowerConstraintValid;

    uint8       u8LocalPowerConstraint;  // From 802.11h Power Constraint IE



    bool        boMeasPilotParamsValid;

    int8        i8MaxRegulatoryPower;    // From 802.11k Meas Pilot

    int8        i8MaxTxPower;            // From 802.11k Meas Pilot

    int8        i8TransceiverNoiseFloor; // From 802.11k Meas Pilot



    bool        boRegulatoryClassKnown;  

    uint8       u8RegulatoryClass;       // From 802.11k AP Channel Report IE

} WLAN_TPC_ENTRY, *PWLAN_TPC_ENTRY;





typedef struct 

{

    LONGLONG				llTimeStamp;

    PNDIS_WLAN_BSSID_EX		psBssid;

    LONG                    lSnr;

    CHAR					acBssCountryCode[MIB_COUNTRY_LENGTH];

    WLAN_TPC_ENTRY			sTpc;

} WLAN_BSSID_ENTRY, *PWLAN_BSSID_ENTRY;



// 802.11 WLAN block.

typedef struct

{

    NDIS_802_11_MAC_ADDRESS	ucBSSID;				// AP MAC address or IBSS MAC address.

    NDIS_802_11_SSID		sSSID;					// SSID.

    NDIS_802_11_SSID		sDesiredSSID;			// Desired SSID.



    ULONG					ulNumOfNetworkType;		// Number of network type supported.

    ULONG					ulNetworkType[Ndis802_11NetworkTypeMax];

    ULONG					ulNetworkTypeInUse;		// Network type in use.



    NDIS_802_11_RSSI		lRssi;					// Receive signal strength indication.

    NDIS_802_11_RSSI		lRssiTrigger;			// RSSI trigger value.

	

    ULONG					ulInfraMode;			// Infrastructure mode.

    ULONG					ulFragmentThreshold;	// Fragmentation threshold.

    ULONG					ulRTSThreshold;			// RTS threshold.



    ULONG					ulNumOfRxAntennas;		// Number of Rx antennas.

    ULONG					ulNumOfTxAntennas;		// Number of Tx antennas.

    ULONG					ulRxAntennaSelected;	// Current Rx antenna selected.

    ULONG					ulTxAntennaSelected;	// Current Tx antenna selected.



    NDIS_802_11_RATES_EX	ucSupportedRates;		// Supported rates.

    NDIS_802_11_RATES_EX	ucDesiredRates;			// Desired rates.



    NDIS_802_11_CONFIGURATION sRadioConfig;			// Radio configuration.



    NDIS_802_11_STATISTICS	sStatistics;			// 802.11 Statistics.



    NDIS_802_11_MEDIA_STREAM_MODE ulMediaStreamModeInUse;



    NDIS_COMMASIC_GEN_STATS sGenStatistics;			// Generic Stats



    ULONG					ulPowerMode;			// Power mode.



    BOOLEAN					boScanInProgress;		// Scan flag.

    ULONG					ulNumOfBssidBuf;		// Number of BSSID buffer allocated.

    ULONG					ulNumOfBssid;			// Number of items in BSSID list.

    WLAN_BSSID_ENTRY		sBssidList[END_MAX_BSSID_NUM];

	



    UINT                                        auth_params[11];

    BOOLEAN                                     encoding_enabled;

    ULONG					ulGroupTransmitKey;		// Index (1-n) of group transmit key.

    BOOLEAN					boTransmitKeyAvail;		// TRUE if transmit key available.



    ULONG					ulDefaultWEPKeyId;		// Default WEP key Id.

    MIB_WEP_DEF_KEYS		sWEPKeys;				// WEP key length and martial.



    MICERR_STATE			eMicErrorState;			// MIC error handling state.

    ULONG					ulMicErrorTimer;		// MIC error handling timer.

    BOOLEAN					boNonEAPOLPktFilter;	// TRUE if need to filter non-802.1X EAPOL packets.



    NDIS_802_11_CAPABILITY			sDriverCapability;		// Driver's authentication/encryption capabilities

    NDIS_802_11_AUTHENTICATION_ENCRYPTION	ucAuthEncSupported[END_MAX_AUTH_ENC_NUM]; // Space for extra data from above



    NDIS_802_11_ASSOCIATION_INFORMATION	sAssocInfo;	// Association information.

    UCHAR					ucAssocIEs[END_MAX_IES_SIZE];





    CHANGE_NETWORK			sChangeNetwork;			// Structure for changing network.



    ULONG					ulTxThruputPSThreshold;	// Threshold of Tx packets under Fast PSP mode.

    ULONG					ulRxThruputPSThreshold;	// Threshold of Rx packets under Fast PSP mode.

    ULONG					ulTxCountPS;			// Tx packet count under PS mode.

    ULONG					ulRxCountPS;			// Rx packet count under PS mode.



    BOOLEAN					boShortPreamble;	// Controls Short preamble usage.  When FALSE, STA will TX 

                                                                        // 2 Mbps, 5 Mbps and 11 Mbps frames using long preambles

                                                                        // When TRUE, STA will TX 2 Mbps, 5 Mbps and 11 Mbps frames

                                                                        // using either long or short preambles based on the 

                                                                        // setting of the 802.11 'Short Preamble' bit in the

                                                                        // Capability Information Field of the BSS/IBSS Beacon frame 

    ULONG					ulRxOverflows;			// Rx buffer overflows.

    BOOLEAN					boUwaSensLockout;		// Enable / Disable UWA Sensitivity lockout function

    LONG					lSnr;					// SNR for quality measurement

    ULONG					ulUwaRxStats[MIB_UWA_RX_STATS_LENGTH];	// UWA rx stats



    ULONG					ulForcedRate;			// Rate to be forced to for testing

    ULONG					ulListenInterval;		// Listen Interval for Power saving

    ULONG					ulRestrChannel;			// Restricted channel

    ULONG					ulIbssChannel;			// Channel to use when creating an IBSS (0 = any channel)

    ULONG					ulRegDomain;			// Regulatory Domain

    NDIS_802_11_MAC_ADDRESS	ucMacAddr;				// STA's MAC address



    BOOLEAN					boDesiredRadio;			// Desired radio state.

    BOOLEAN					boRadioOn;				// TRUE: radio on; FALSE: radio off.



    NDIS_COMMASIC_BACKGROUND_SCAN_CONFIG	sBckGrndScanConfig;	// Background scan params.



    ULONG					ulCardCapabilities;		// Adapter capabilities.

    BOOLEAN					boSetProtocolType;		// Set protocol type flag.

    BOOLEAN					boSetRegDomain;			// Set reg domain flag.



    ULONG					ulARestrChannel;		// A mode restricted channel.

    ULONG					ulAIbssChannel;			// A mode IBSS channel.

    ULONG					ulARegDomain;			// A mode regulatory domain.

    ULONG					ulBGRestrChannel;		// B/G mode restricted channel.

    BOOLEAN                 boBGIbss54g;            // Indicates whether 802.11g OFDM rates are used in 802.11 b/g adhoc mode

    ULONG					ulBGIbssChannel;		// B/G mode IBSS channel.

    ULONG					ulBGRegDomain;			// B/G mode regulatory domain.



    LONG					lRssiThreshold;

    ULONG					ulRssiHysteresis;



    BOOLEAN					boMultiDomainCapabilityEnabled;		// TRUE if 802.11d Multi Domain Capability is enabled.

    BOOLEAN					boRadioMeasurementCapabilityEnabled;	// TRUE if 802.11k Radio Measurement Capability is enabled.

    BOOLEAN					boCcxCapabilityEnabled;	// TRUE if CCX1 and CCX2 Capability is enabled.



    BOOLEAN					boBluetoothCoexCapabilityEnabled;	// TRUE if Bluetooth Coexistance Capability is enabled.





} WLAN_CONTEXT, * PWLAN_CONTEXT;



typedef struct _END_CONTEXT

{



    NDIS_HANDLE				hMiniportAdapterHandle;

    NDIS_HANDLE				hConfigurationHandle;

    NDIS_MINIPORT_INTERRUPT	sInterrupt;				// NDIS interrupt structure.

    NDIS_MINIPORT_TIMER		sResetTimer;			// Timer object for reset.

    NDIS_MINIPORT_TIMER		sMicFailTimer;			// Timer object for MIC failure.



    NDIS_MINIPORT_TIMER		sCFInterfacePSTimer;	// Timer object for CF interface to sleep

    // polling



    NDIS_HANDLE				hRxPacketPool;			// NDIS packet pool handle for Rx.

    NDIS_HANDLE				hRxBufferPool;			// NDIS buffer pool handle for Rx.

    

    PENDING_OID				sPendingOID;			// Pending OID request.

    

    SD_DEVICE_HANDLE		hSDDeviceHandle;		// Handle to SDIO device.

    WCHAR					wActivePath[END_MAX_ACTIVE_REG_PATH];

    NDIS_MINIPORT_TIMER		sSDIOTimer;				// Timer object for SDIO interrupt DPC.

    BOOLEAN					boSDIOTimerIssued;		// Timer issued flag.

    

    PUCHAR					pucMemoryBase;			// Virtual address of memory base.

    ULONG					ulMemoryLength;			// Memory length.

    ULONG					ulIRQNumber;			// IRQ number.



    NET_STATE				eNetState;				// Network state.

    NDIS_MEDIA_STATE		eMediaState;			// Media connect status.

    ULONG					ulPacketFilter;			// Receive packet filter.

    ULONG					ulCurrentLookahead;		// Current look ahead size.



    UCHAR					ucPermanentAddress[ETH_LENGTH_OF_ADDRESS];

    UCHAR					ucCurrentAddress[ETH_LENGTH_OF_ADDRESS];

    BOOLEAN					boGetPermanentAddress;	// Get MAC address flag.

    BOOLEAN					boMACAddressOverride;	// MAC address override flag.



    BOOLEAN					boResetInProgress;		// Reset flag.

    BOOLEAN					boNeedReset;			// Force to reset flag.



    BOOLEAN					boSendNoResourcesFlag;	// Tx no resources flag.

    ULONG					ulRxIndicatedPending;	// Pending Rx indicated packets count.



    /* Configuration block */

    CFG_CONTEXT				sCFG;



    /* 802.11 WLAN block */

    WLAN_CONTEXT			sWlan;



    /* Hardware Abstract Layer block */

    HAL_CONTEXT				sHAL;



    /* Statistics structure */

    DAT_STATISTICS			sStats;



#ifdef CA_CE_GROUND

    BOOLEAN 					resReady; 

    uint16 						resMsgLen;

    uint16 						resMsgCurrentLen;

    unsigned char 				resMsg[4096];    

    caMsg  					message;    

#endif    

} END_CONTEXT, * PEND_CONTEXT;



#pragma pack(pop)



/*************************************************************************/

/*************************************************************************/

/***               Public Variable Declarations                          */

/*************************************************************************/





/*************************************************************************/

/***               Public Function Prototypes                            */

/*************************************************************************/

VOID vENDInitializeWLAN( OUT PWLAN_CONTEXT psWlan, IN PCFG_CONTEXT psCFG );



VOID vENDgetRatesBitmapArray( IN ULONG ulNetworkType, 

	IN OUT PULONG pulBasicRates, 

	IN OUT PULONG pulComRates, 

	IN OUT PUCHAR pucRates );



VOID vENDcheckDomainChannel( IN ULONG ulProtocolType, 

	IN OUT PULONG pulDomain, 

	IN OUT PULONG pulChannel, 

	IN OUT PULONG pulIbssChannel );



VOID vENDgetChannelFrequency( IN ULONG ulChannelFreq, OUT PULONG pulFreqChannel );



VOID vENDsetDefaultRateSet( IN ULONG ulProtocolType, 



	OUT PUCHAR pucSupportedRates, 

	OUT PUCHAR pucDesiredRates );



VOID vENDindicateConnectionStatus( IN PEND_CONTEXT psAdapter,

	IN NDIS_MEDIA_STATE eMediaState );



VOID vENDconnectBSSID( IN PEND_CONTEXT psAdapter, 

	IN NDIS_802_11_MAC_ADDRESS ucBssid, 

	IN bool bUseHostProvidedSecurityIEs );



VOID vENDconnectSSID( IN PEND_CONTEXT psAdapter, 

	IN PNDIS_802_11_SSID psSsid, 

	IN bool bUseHostProvidedSecurityIEs );



VOID vENDconnectNetwork( IN PEND_CONTEXT psAdapter , 

	IN bool bUseSSID, 

	IN bool bUseHostProvidedSecurityIEs);



BOOLEAN boCFGgetFirstMibItem( IN PCFG_CONTEXT psCFG, 

	IN PWLAN_CONTEXT psWlan,

	OUT PUSHORT pusObjectID, 

	OUT MIB_VALUE *puValue );



BOOLEAN boCFGgetNextMibItem( IN PCFG_CONTEXT psCFG, 

	IN PWLAN_CONTEXT psWlan,

	OUT PUSHORT pusObjectID, 

	OUT MIB_VALUE *puValue );



NDIS_STATUS iMiniportReset(OUT PBOOLEAN AddressingReset,IN NDIS_HANDLE MiniportAdapterContext);



BOOLEAN boENDcheckFilterPacket( IN PNDIS_PACKET psPktDesc );



VOID vENDresetTimer( IN PVOID pvSystemSpecific1, 

	IN NDIS_HANDLE psFuncContext, 

	IN PVOID pvSystemSpecific2, 

	IN PVOID pvSystemSpecific3 );



VOID vENDmicFailTimer( IN PVOID pvSystemSpecific1, 

	IN NDIS_HANDLE psFuncContext, 

	IN PVOID pvSystemSpecific2, 

	IN PVOID pvSystemSpecific3 );





#endif /* CFSD_NDUTILITY_H */

⌨️ 快捷键说明

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