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

📄 utility.h

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