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

📄 utility.h

📁 mx27 f14v2 源代码。包括ADS板上诸多驱动的源码。
💻 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 + -