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

📄 utility.h

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

//Copyright (C) 2006, Freescale Semiconductor, Inc. All Rights Reserved.

// THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS

// AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT 

//--------------------------------------------------------------------------

//

// File:  utility.h

// Header file for platform specific SDIO WLAN functions

//------------------------------------------------------------------------------



#ifndef CFSD_NDUTILITY_H

#define CFSD_NDUTILITY_H





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

/***               Included Headers                                      */

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



#include "mib_id.h"



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

/***               Public Constant Defintions                            */

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

// no trace support under Windows

#define TRACE(x, y)



// Vendor information.

#define VENDOR_ID					0x4321		// Device vendor ID. 



#define VENDOR_MAJOR_VERSION	((1<<8) | 110)

#define VENDOR_MINOR_VERSION	((1<<8) | 2)



#define MAX_RX_PACKETS				32

#define MAX_RX_PENDING_PACKETS		24

#define MAX_MULTICAST_ADDRESSES		32



// Ethernet packet related definitions.

#define ETHER_MAX_FRAME_SIZE		1514		// Max packet length of Ethernet 802.3.

#define ETHER_HDR_SIZE				14			// Header length of Ethernet 802.3.

#define ETHER_TYPE_SIZE				2			// Type/length size in Ethernet 802.3 header.



#define DAT_SIZE_ETHERNET_HDR		(14)



/* From [1] section 18.12: the standard 802.2 Logical Link Control (LLC)

and SubNetwork Attachment Point (SNAP) header is as follows:

- LLC  (AA.AA.03)

- OUI1 (00)

- OUI2 (00.00)

- TYPE (08.00) 

*/

#define DAT_SIZE_LLC_AND_SNAP_HDR	(8)



// Ethernet type/length field.

#define DAT_SIZE_ETHERNET_TYPE		(2)



#define DAT_ETHERNET_DEST(x)		((PUCHAR)(x) + 0)

#define DAT_ETHERNET_SRC(x)			((PUCHAR)(x) + 6)

#define DAT_ETHERNET_TYPE(x)		((PUCHAR)(x) + 12)

#define DAT_ETHERNET_LENGTH(x)		((PUCHAR)(x) + 12)

#define DAT_ETHERNET_PAYLOAD(x)		((PUCHAR)(x) + 14)



// Macros used to check destination address.

#define DAT_IS_DIRECTED_PKT(x)		((((PUCHAR)x)[0] & 1) == 0)

#define DAT_IS_BROADCAST_PKT(x)		((((PUCHAR)x)[0] == 0xFF) &&  \

                                     (((PUCHAR)x)[1] == 0xFF) &&  \

                                     (((PUCHAR)x)[2] == 0xFF) &&  \

                                     (((PUCHAR)x)[3] == 0xFF) &&  \

                                     (((PUCHAR)x)[4] == 0xFF) &&  \

                                     (((PUCHAR)x)[5] == 0xFF))

// Data packet type.

#define DAT_TYPE_EAPOL				(0x888E)



/* Various IEEE-defined values */

#define FRAME_EL_ESSID				0	/* ess id							*/

#define FRAME_EL_SUPPORTED_RATES	1	/* Supported phy rates				*/

#define FRAME_EL_DS_PARAMETER_SET	3	/* Direct-sequence paramters		*/

#define FRAME_EL_COUNTRY            7   // Country - see 802.11d,j

#define FRAME_EL_RSN                48  /* RSN (Robust Security Network)    */

#define FRAME_EL_EX_SUPPORTED_RATES 50	/* Extended supported rates (g)		*/

#define FRAME_EL_AP_CHANNEL_REPORT  51  // see 802.11k 

#define FRAME_EL_BSS_LOAD           55  // see 802.11k 

#define FRAME_EL_VENDOR_SPECIFIC    221 // WiFi extensions - used for WPA



#define FRAME_CAPINFO_ESS_MASK				0x0001

#define FRAME_CAPINFO_IBSS_MASK				0x0002

#define FRAME_CAPINFO_PRIVACY_MASK			0x0010

#define FRAME_CAPINFO_SHORT_PREAMBLE_MASK	0x0020

#define FRAME_CAPINFO_SHORT_SLOT_MASK		0x0400



#define FRAME_REASON_DEAUTH_SENDER_LEAVING	3

#define FRAME_REASON_MIC_FAILURE			14



// Version 2 current as of initial WPA2 support

#define DRIVER_OID_802_11_CAPABILITY_VERSION	2



// Resources buffer size.

#define END_RESOURCE_BUF_SIZE		(sizeof(NDIS_RESOURCE_LIST) +          \

                                  5 * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR))

#define END_MAX_ACTIVE_REG_PATH		(256)



// Timeout (millisecond) for device initialization.

#define END_INITIAL_TIMEOUT			(2000)



// Timeout (second) for TKIP MIC error handling.

#define END_MIC_ERROR_TIMEOUT		(60)

#define END_CHECKFORHANG_INTERVAL	(2)



// Maximum number of BSSID supported.

#define END_MAX_BSSID_NUM			(32)

// Maximum size of variable-length IEs.

#define END_MAX_IES_SIZE			(128)



// Maximum number of authentication/encryption supported table

#define END_MAX_AUTH_ENC_NUM			(14)



// Default supported rates bitmaps.

#define END_802_11A_BASIC_RATES		(0x0015)

#define END_802_11A_COMMON_RATES	(0x00FF)

#define END_802_11B_BASIC_RATES		(0x000F)

#define END_802_11B_COMMON_RATES	(0x000F)

#define END_802_11G_BASIC_RATES		(0x026F)

#define END_802_11G_COMMON_RATES	(0x3AFF)



// Dot11 OIDs.

#define OID_DOT11_NDIS_START					0x0D010300

#define OID_DOT11_CURRENT_REG_DOMAIN			(OID_DOT11_NDIS_START + 39)



// Custom OIDs.

#define OID_COMMASIC_TX_THRUPUT_PS_THRESHOLD	0xFF432101

#define OID_COMMASIC_RX_THRUPUT_PS_THRESHOLD	0xFF432102

#define OID_COMMASIC_SHORT_PREAMBLE				0xFF432103

#define OID_COMMASIC_RX_BUF_OVERFLOW_CT			0xFF432104

#define OID_COMMASIC_RESET						0xFF432105

#define OID_COMMASIC_UWA_SENS_LOCKOUT			0xFF432106

#define OID_COMMASIC_RX_STATS					0xFF432107

#define OID_COMMASIC_CONFIG						0xFF432108

#define OID_COMMASIC_SNR						0xFF432109

#define OID_COMMASIC_GEN_STATS					0xFF43210A

#define	OID_COMMASIC_RADIO						0xFF43210B

#define OID_COMMASIC_IBSS_CHANNEL				0xFF43210C

//#define OID_COMMASIC_BACKGROUND_SCAN_CONFIG		0xFF43210D

#define OID_COMMASIC_CARD_CAPABILITIES			0xFF43210E

#define OID_COMMASIC_FORCE_TX_RATE              0xFF43210F



#define OID_COMMASIC_CARD_STATUS				0xFF432111

#define OID_COMMASIC_CARD_CIS					0xFF432112

#define OID_COMMASIC_REGISTER					0xFF432113



#define OID_COMMASIC_UTIL_STATUS				0xFF432121

#define OID_COMMASIC_UTIL_SIGNAL				0xFF432122

#define OID_COMMASIC_UTIL_STAT					0xFF432123



#define OID_COMMASIC_GET_MIB_ATTR				0xFF432124

#define OID_QUERY_STATUS						0xFF432125

#define OID_COMMASIC_DBG_LEV					0xFF432126



#ifdef CA_CE_GROUND



#define OID_COMMASIC_CARADIO_INIT				0xFF432161



#define OID_COMMASIC_CARADIO_LOAD				0xFF432162



#define OID_COMMASIC_CARADIO_SEQ				0xFF432163



#define OID_COMMASIC_CARADIO_RES				0xFF432164



#define CE_LOCAL 1 



#define CE_PASSTHROUGH 2



#define MAX_CA_PKT_LENGTH 200



#define CA_HEAD 4



#define MAX_MSG_LENGTH MAX_CA_PKT_LENGTH + CA_HEAD



#define MSG_REQUEST  1



#define MSG_RESPONSE  2



typedef struct {

	unsigned char msgType;

	unsigned char msgLen;

	unsigned char moreData;

	unsigned char reserved;

	unsigned char  msg[MAX_CA_PKT_LENGTH];

} caMsg;

#endif



#define MAX_RTS_THR         		2347

#define MIN_RTS_THR         		0

#define MAX_FRAG_THR                2346

#define MIN_FRAG_THR        		256

#define IW_AUTH_WPA_VERSION		0

#define IW_AUTH_CIPHER_PAIRWISE		1

#define IW_AUTH_CIPHER_GROUP		2

#define IW_AUTH_KEY_MGMT		3

#define IW_AUTH_TKIP_COUNTERMEASURES	4

#define IW_AUTH_DROP_UNENCRYPTED	5

#define IW_AUTH_80211_AUTH_ALG		6

#define IW_AUTH_WPA_ENABLED		7

#define IW_AUTH_RX_UNENCRYPTED_EAPOL	8

#define IW_AUTH_ROAMING_CONTROL		9

#define IW_AUTH_PRIVACY_INVOKED		10



/* IW_AUTH_WPA_VERSION values (bit field) */

#define IW_AUTH_WPA_VERSION_DISABLED	0x00000001

#define IW_AUTH_WPA_VERSION_WPA		0x00000002

#define IW_AUTH_WPA_VERSION_WPA2	0x00000004



/* IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values (bit field) */

#define IW_AUTH_CIPHER_NONE	0x00000001

#define IW_AUTH_CIPHER_WEP40	0x00000002

#define IW_AUTH_CIPHER_TKIP	0x00000004

#define IW_AUTH_CIPHER_CCMP	0x00000008

#define IW_AUTH_CIPHER_WEP104	0x00000010



/* IW_AUTH_KEY_MGMT values (bit field) */

#define IW_AUTH_KEY_MGMT_802_1X	1

#define IW_AUTH_KEY_MGMT_PSK	2



/* IW_AUTH_80211_AUTH_ALG values (bit field) */

#define IW_AUTH_ALG_OPEN_SYSTEM	0x00000001

#define IW_AUTH_ALG_SHARED_KEY	0x00000002

#define IW_AUTH_ALG_LEAP	0x00000004





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

/***               Public Macro Definitions                              */

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





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

/***               Public Type Definitions                               */

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

// NET state.

typedef enum

{

    NET_STOPPED,

    NET_SETUP,

    NET_CONNECTING,

    NET_CONNECTED,

    NET_DISCONNECTING,

    NET_DISCONNECTED

} NET_STATE;



// MIC error handling state.

typedef enum

{

    MICERR_INIT,

    MICERR_ONEERROR,

    MICERR_FILTERON,

    MICERR_TXEAPOL,

    MICERR_DISASSOC

} MICERR_STATE;



#pragma pack(push,4)





#define OID_802_11_MEDIA_STREAM_MODE            0x0D010121



// 802.11 Media stream constraints, associated with OID_802_11_MEDIA_STREAM_MODE

/*typedef enum _NDIS_802_11_MEDIA_STREAM_MODE

{

    Ndis802_11MediaStreamOff,

    Ndis802_11MediaStreamOn,

} NDIS_802_11_MEDIA_STREAM_MODE, *PNDIS_802_11_MEDIA_STREAM_MODE;*/



#define OID_802_11_CAPABILITY					0x0D010122

#define OID_802_11_PMKID						0x0D010123



#define Ndis802_11AuthModeWPA2		6

#define Ndis802_11AuthModeWPA2PSK	7



/*typedef struct _NDIS_802_11_AUTHENTICATION_ENCRYPTION

{

	NDIS_802_11_AUTHENTICATION_MODE	AuthModeSupported;

	NDIS_802_11_ENCRYPTION_STATUS	EncryptStatusSupported;

} NDIS_802_11_AUTHENTICATION_ENCRYPTION, *PNDIS_802_11_AUTHENTICATION_ENCRYPTION;*/



/*typedef struct _NDIS_802_11_CAPABILITY

{

	ULONG	Length;

	ULONG	Version;

	ULONG	NoOfPMKIDs;

	ULONG	NoOfAuthEncryptPairsSupported;

	NDIS_802_11_AUTHENTICATION_ENCRYPTION AuthenticationEncryptionSupported[1];

} NDIS_802_11_CAPABILITY, *PNDIS_802_11_CAPABILITY;*/



typedef UCHAR NDIS_802_11_PMKID_VALUE[16];



typedef struct _BSSIDInfo

{

	NDIS_802_11_MAC_ADDRESS BSSID;

	NDIS_802_11_PMKID_VALUE PMKID;

} BSSIDInfo, *PBSSIDInfo;



/*typedef struct _NDIS_802_11_PMKID

{

	ULONG	Length;

	ULONG	BSSIDInfoCount;

	BSSIDInfo BSSIDInfo[1];

} NDIS_802_11_PMKID, *PNDIS_802_11PMKID;*/





#define NDIS_802_11_LENGTH_RATES_EX				16



/*typedef struct _NDIS_802_11_AUTHENTICATION_EVENT

{

	NDIS_802_11_STATUS_INDICATION		Status;

	NDIS_802_11_AUTHENTICATION_REQUEST	Request[1];

} NDIS_802_11_AUTHENTICATION_EVENT, *PNDIS_802_11_AUTHENTICATION_EVENT;*/



// Pending OID request.

typedef struct

{

	NDIS_OID	ulOid;

	PVOID		pvBuffer;

	ULONG		ulBufferLength;

	PULONG		pulBytesWritten;

	PULONG		pulBytesNeeded;

} PENDING_OID, * PPENDING_OID;



// Data type for channel set.

typedef struct _CHANNEL_SET

{

    ULONG			ulDomain;				// Domain code.

    ULONG			ulChannelNum;			// Number of channels in list.

    ULONG			ulChannelList[24];		// Available channel list.



} END_CHANNEL_SET, *PEND_CHANNEL_SET;



// structure for OID_COMMASIC_GEN_STATS 

typedef struct _NDIS_COMMASIC_GEN_STATS

{

    ULONG			Length;					// Length of structure

    ULONG			TxTotalDataFrames;		// Total Data frames tx'ed

    ULONG			TxTotalMgmtFrames;		// Total Mgmt frames tx'ed

    ULONG			RxDroppedFrames;		// Rx frames that were discarded

    ULONG			RxTotalDataFrames;		// Total Data frames rx'ed

    ULONG			RxTotalMgmtFrames;		// Total Mgmt frames rx'ed

    ULONGLONG		DataBytesTxed;			// Txed data bytes

    ULONGLONG		DataBytesRxed;			// Rxed data bytes

} NDIS_COMMASIC_GEN_STATS, *PNDIS_COMMASIC_GEN_STATS;



// structure for OID_COMMASIC_CONFIG - this OID allows the host to configure

// different parameters in the device the device will reset after receiving

// this OID

typedef struct _NDIS_COMMASIC_CONFIG

{

    ULONG					ParamMask;		// each bit corresponds to a 

    ULONG					ListenInterval; // number of beacons between

    ULONG					Channel;		// Restricted channel

    ULONG					RegDomain;		// The regulatory domain

    NDIS_802_11_MAC_ADDRESS MacAddr;		// MAC address of the device

} NDIS_COMMASIC_CONFIG, *PNDIS_COMMASIC_CONFIG;



// structure for OID_COMMASIC_BACKGROUND_SCAN_CONFIG - this OID allows the host to configure different parameters in the device

// the device will reset after receiving this OID

typedef struct _NDIS_COMMASIC_BACKGROUND_SCAN_CONFIG

{

⌨️ 快捷键说明

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