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

📄 zdapi.h

📁 ZYDAS zd1211b driver for Linux2.4
💻 H
字号:
#ifndef _ZDAPI_H_#define _ZDAPI_H_#include "zdtypes.h"#include "zdsorts.h"//#define HMAC_DEBUG#ifdef HMAC_DEBUG#define FPRINT(string)			printk(KERN_DEBUG "%s\n", string)#define FPRINT_V(string, i)		printk(KERN_DEBUG "%s = %x\n", string, i)#else#define FPRINT(string)#define FPRINT_V(string, i)#define VerAssert(x)	printk("Maybe Unsupport mode in %s(%d)",__FILE__,__LINE__);#define LongPrint(x,y)	{int i;for(i=0;i<100*y;i++) printk("%s",x);}#endif//#define ZD_DEBUG 	//debug protocol stack#ifdef ZD_DEBUG#define ZDEBUG(string)			FPRINT(string)#define ZDEBUG_V(string, i)		FPRINT_V(string, i)#else#define ZDEBUG(string) 			//do {} while (0)#define ZDEBUG_V(string, i)		//do {} while (0)#endif//#define PS_DEBUG		//debug power save function#ifdef PS_DEBUG#define PSDEBUG(string)			FPRINT(string)#define PSDEBUG_V(string, i)	FPRINT_V(string, i)#else#define PSDEBUG(string) 		//do {} while (0)#define PSDEBUG_V(string, i)	//do {} while (0)#endif//#define HASH_DEBUG	//debug hash function#ifdef HASH_DEBUG#define HSDEBUG(string)			FPRINT(string)#define HSDEBUG_V(string, i)	FPRINT_V(string, i)#else#define HSDEBUG(string) 		//do {} while (0)#define HSDEBUG_V(string, i)	//do {} while (0)#endif//#define RATE_DEBUG	//debug rate adaption function#ifdef RATE_DEBUG#define RATEDEBUG(string)		FPRINT(string)#define RATEDEBUG_V(string, i)	FPRINT_V(string, i)#else#define RATEDEBUG(string) 		//do {} while (0)#define RATEDEBUG_V(string, i)	//do {} while (0)#endif//#define DEFRAG_DEBUG	//debug defrag function#ifdef DEFRAG_DEBUG#define DFDEBUG(string)			FPRINT(string)#define DFDEBUG_V(string, i)	FPRINT_V(string, i)#else#define DFDEBUG(string) 		//do {} while (0)#define DFDEBUG_V(string, i)	//do {} while (0)#endif/* ath_desc: bigendian support *//* ath: use cpu_to_le32 instead of zd_cpu_to_le32 *//* ath: deleted zd_cpu_to_le32 definition */#define CMD_RESET_80211			0x0001	//parm1: zd_80211Obj_t *#define CMD_ENABLE				0x0002	//parm1: None#define CMD_DISASOC				0x0003	//parm1: U8 *MacAddress, parm2: reasonCode#define CMD_DEAUTH				0x0004	//parm1: U8 *MacAddress, parm2: reasonCode#define CMD_PS_POLL				0x0005	//parm1: U8 *MacHeader#define CMD_PASSIVE_SCAN		0x0006	//parm1: None#define CMD_DISASOC_ALL			0x0007	//parm1: U8 *MacAddress, parm2: reasonCode#define CMD_CONNECT				0x0008	//parm1: None, parm2: BssIndex#define CMD_PROBE_REQ			0x0009	//parm1: None, parm2: WithSSID#define CMD_DIS_CONNECT			0x000A#define	CMD_FLUSH_QUEUE			0x000B#define	CMD_ROAMING             0x000C//Event Notify#define EVENT_TBCN				0x0010#define EVENT_DTIM_NOTIFY		0x0011#define EVENT_TX_COMPLETE		0x0012 //parm1: tx status, parm2: msgId, parm3: aid#define EVENT_TCHAL_TIMEOUT		0x0013#define EVENT_SCAN_TIMEOUT		0x0014#define EVENT_UPDATE_TX_RATE	0x0015 //parm1: rate, parm2: aid#define EVENT_SW_RESET          0x0016#define EVENT_BUF_RELEASE       0x0017#define EVENT_ENABLE_PROTECTION	0x0018#define EVENT_AUTH_TIMEOUT		0x0019#define EVENT_ASOC_TIMEOUT		0x001A#define EVENT_PS_CHANGE			0x001B //parm1: PwrState#define EVENT_MORE_DATA			0x001C#define EVENT_ENABLE_BARKER     0x001D#define EVENT_SHORT_SLOT        0x001E#define DO_CHAL					0x0001#define DO_SCAN					0x0002#define DO_AUTH					0x0003#define DO_ASOC					0x0004#define SCAN_TIMEOUT			50   //ms#define HOUSE_KEEPING_PERIOD	100	 //ms#define AUTH_TIMEOUT			512  //3000 //ms#define ASOC_TIMEOUT			512  //2000 //ms//reason code#define ZD_UNSPEC_REASON 		1#define ZD_AUTH_NOT_VALID		2#define ZD_DEAUTH_LEAVE_BSS		3#define ZD_INACTIVITY			4#define ZD_AP_OVERLOAD			5#define ZD_CLASS2_ERROR			6#define ZD_CLASS3_ERROR			7#define ZD_DISAS_LEAVE_CSS		8#define ZD_ASOC_NOT_AUTH		9#define ZD_INVALID_IE			13#define ZD_MIC_FAIL				14#define ZD_4WAY_SHAKE_TIMEOUT	15#define ZD_GKEY_UPDATE_TIMEOUT	16#define ZD_IE_IMCOMPABILITY		17#define ZD_MC_CIPHER_INVALID	18#define ZD_UNI_CIPHER_INVALID	19#define ZD_AKMP_INVALID			20#define ZD_UNSUP_RSNE_VERSION	21#define ZD_INVALID_RSNE_CAP		22#define ZD_8021X_AUTH_FAIL		23/* association_status_notify() <- status */#define STA_ASOC_REQ			0x0001#define STA_REASOC_REQ			0x0002#define STA_ASSOCIATED			0x0003#define STA_REASSOCIATED		0x0004#define STA_DISASSOCIATED		0x0005#define STA_AUTH_REQ			0x0006#define STA_DEAUTHED			0x0007//Tx complete event#define ZD_TX_CONFIRM			0x0001#define ZD_RETRY_FAILED			0x0002//for Dymanic Key#define DYN_KEY_WEP64			1#define DYN_KEY_WEP128			2#define DYN_KEY_TKIP			4#define DYN_KEY_AES			    5//Rate Defintion#define RATE_1M		            0#define	RATE_2M		            1#define	RATE_5M		            2#define	RATE_11M	            3#define	RATE_16M	            4#define	RATE_22M	            5#define	RATE_27M	            6#define RATE_33M		        7#define	RATE_38M		        8#define	RATE_44M		        9#define	RATE_49M	            10#define	RATE_55M	            11#define	RATE_60M	            12#define	RATE_6M	                0x04#define	RATE_9M	                0x05#define	RATE_12M	            0x06#define	RATE_18M	            0x07#define	RATE_24M	            0x08#define	RATE_36M	            0x09#define	RATE_48M	            0x0a#define	RATE_54M	            0x0b#define NO_WEP                  0x0#define AES                     0x4#define WEP64                   0x1#define WEP128                  0x5#define WEP256                  0x6#define TKIP                    0x2#define	NUM_SUPPORTED_RATE	    32// pfrmDesc->ConfigSet#define INTRA_BSS_SET			0x01#define EAPOL_FRAME_SET			0x02#define FORCE_WEP_SET			0x04//BssType#define INDEPENDENT_BSS			0x0#define INFRASTRUCTURE_BSS		0x1#define PSEUDO_IBSS				0x3#define	AP_BSS					0x4//RxFilter#define AP_RX_FILTER			0x0400feff#define STA_RX_FILTER			0x0000ffff//pSetting->MacMode#define MIXED_MODE		        0x01#define PURE_G_MODE		        0x02#define PURE_B_MODE 	        0x03#define PURE_A_MODE				0x04#define CW_SHORT_SLOT		    0x7f043f#define CW_NORMAL_SLOT		    0xff043f#define CW_LONG_SLOT            0x7f047f//for Rate Adaption#define RISE_CONDITION_THRESHOLD	5#define DOWN_CONDITION_THRESHOLD	3#define	LINE1				100#define	LINE2				10#define	LINE3				5//for CAM#define CAM_VAP_START_AID	33#define CAM_VAP_END_AID		39#define HW_MIC_FINISH		0x55555555#define CAM_ADDR_NOT_MATCH	40#define PURE_B_AP       0#define MIXED_AP        1#define PURE_G_AP       2#define PURE_A_AP			3enum Operation_Mode {        CAM_IBSS = 0,        CAM_AP,        CAM_STA,        CAM_AP_WDS,        CAM_AP_CLIENT,        CAM_AP_VAP};typedef struct card_Setting_s{        U8		EncryOnOff;		//0: encryption off, 1: encryption on        U8		OperationMode;	//0: IBSS, 1: AP, 2: STA, 3: WDS, 4: AP Client, 5: Virtual AP        U8		PreambleType;	//0: long preamble, 1: short preamble        U8		TxRate;			//0: 1M, 1: 2M, 2: 5.5M, 3: 11M, 4: 16.5M        U8		FixedRate;		// fixed Tx Rate        U8		CurrTxRate;		//        U8		AuthMode;		//0: open system only, 1: shared key only, 2: auto        U8		HiddenSSID;		//0: disable, 1:enable        U8		LimitedUser;	//limited client number max to 32 user        U8		RadioOn;		//0: radio off, 1: radio on        U8		BlockBSS;		//0: don't block intra-bss traffic, 1: block        U8		TxPowerLevel;	//0: 17dbm, 1: 14dbm, 2: 11dbm        U8		BasicRate;		//        U8		EncryMode;		//0: no wep, 2: wep63, 3:wep128        U8		EncryKeyId;		//encryption key id        U8		BcKeyId;		//broadcast key id for dynamic key        U8		SwCipher;		//        U8		WepKeyLen;		//WEP key length        U8		BcKeyLen;		//Broadcast key length        U8		DynKeyMode;		//Dynamic key mode, 1: WEP64, 2: WEP128, 4:TKIP        U16		Channel;		//channel number        U16		FragThreshold;	//fragment threshold, from 256~2432        U16		RTSThreshold;	//RTS threshold, from 256~2432        U16		BeaconInterval;	//default 100 ms        U16		DtimPeriod;		//default 1        U8		MacAddr[8];        // ElementID(1), Len(1), SSID        U8		Info_SSID[36];	//include element ID, element Length, and element content        // ElementID(1), Len(1), SupportedRates(1-8)        U8		Info_SupportedRates[NUM_SUPPORTED_RATE];	//include element ID, element Length, and element content        U8		keyVector[4][32];        U8		BcKeyVector[16];        U8		WPAIe[128];        U8		WPAIeLen;        U8		WPASupport;        U8		Rate275;        U8		WpaBcKeyLen;        U8		BssType;        U16		ATIMWindow;        //added for G        U8		Ext_SupportedRates[NUM_SUPPORTED_RATE];        U8		MacMode;        U8		ShortSlotTime;        U8		BarkerPreamble;        // for UART support        //U8		UartEnable;        //U8		BaudRate;        U8		LastSentTxRate;        U8		ap_scan;#ifdef OFDM        U8		HighestTxRate;#endif}card_Setting_t;#define ZD_MAX_FRAG_NUM		8typedef struct fragInfo_s{        U8	*macHdr[ZD_MAX_FRAG_NUM];        U8	*macBody[ZD_MAX_FRAG_NUM];        U32	bodyLen[ZD_MAX_FRAG_NUM];        U32	nextBodyLen[ZD_MAX_FRAG_NUM];        U8	hdrLen;        U8	totalFrag;        U8	bIntraBss;        U8	msgID;        U8	rate;        U8	preamble;        U8	encryType;        U8	burst;        U16 	vapId;        U16 	aid;        U8 	CalSwMic[MIC_LNG+1];        //U8	keyInstalled;        //U8	bWaitingMIC;        //U8	bSwCalcMIC;        //U32	HwMicPhys;        void *buf;}fragInfo_t;typedef struct rxInfo_s{        U8	rate;        U8	bDataFrm;        U8	SaIndex;        U8	signalStrength;        U8	signalQuality;        U8	bSwCheckMIC;}rxInfo_t;typedef struct bss_info_s{        U8	bssid[6];        U16	beaconInterval;        U16	cap;        U16	atimWindow;        U8	ssid[36];        U8	supRates[NUM_SUPPORTED_RATE];        U8	extRates[NUM_SUPPORTED_RATE];        U8	WPAIe[128];        U8	RSNIe[128];        U8	channel;        U8	signalStrength;        U8 	signalQuality;        U8	apMode;}bss_info_t;//for pdot11Obj->QueueFlag#define TX_QUEUE_SET				0x01#define MGT_QUEUE_SET				0x02#define	AWAKE_QUEUE_SET				0x04//for mRequestFlag#define CONNECT_TOUT_SET			0x0001#define DIS_CONNECT_SET				0x0002#define BSS_CONNECT_SET             0x0004#define CHANNEL_SCAN_SET            0x0008#define PS_CHANGE_SET				0x0010#define PS_POLL_SET					0x0020#define IBSS_CONNECT_SET			0x0040#define ROAMING_SET                 0x0080//for pdot11Obj->ConfigFlag#define ENABLE_PROTECTION_SET 		0x0001#define BARKER_PREAMBLE_SET 		0x0002#define SHORT_SLOT_TIME_SET         0x0004#define NON_ERP_PRESENT_SET         0x0008#define PASSIVE_CHANNEL_SCAN_SET	0x0010#define ACTIVE_CHANNEL_SCAN_SET		0x0020#define IBSS_CHANNEL_SCAN_SET		0x0040#define SCAN_AND_CONNECT_SET        0x0080#define JUST_CHANNEL_SCAN           0x1000// Feature Bit Map#define	FBM_ANTTENA_DIVERSITY		0x00000001#define	FBM_802_11D					0x00000002#define	FBM_27_5_MBPS				0x00000004#define	FBM_SINGLE_LED				0x00000008// Define debug command#define DBG_CMD_BEACON				0x0001//driver to provide callback functions for 802.11 protocol stacktypedef	struct zd_80211Obj_s{        void		*reg;			//Input        U8		QueueFlag;		//Output        U16		ConfigFlag; 		//Output        U8		BasicRate;        U8		bDeviceInSleep;        U8		BssType;        U8		bOverWritePhyRegFromE2P;        U8		bIsNormalSize;        U16		BeaconInterval;        U16		Channel;        U16		Aid;        U32		rfMode;        U32     HWFeature;        U32		RegionCode;        U32		S_bit_cnt;        U32		AllowedChannel;        U32		dbg_cmd;        U8		TxGainSetting;#if fTX_GAIN_OFDM        U8      	TxGainSetting2;#endif        U8     	CR31Flag;        U8     	CR122Flag;        U8     	CR203Flag;        U8	PhyTest;        U8	IsUSB2_0;        U8      bContinueTx;        U8      bChScanning;        U16    	IntValue[14];        U8      CurrSsid[34+1];#ifdef ZD1211B        U8		LengthDiff;#endif        BOOLEAN MIC_CNT;        void	(* ReleaseBuffer)(void *buf);							// release rx buffer        void	(* StartTimer)(U32 timeout, U32 event);					// start a chanllege timer (shared key authentication)        void	(* StopTimer)(U32 TimerId);								// stop the challenge timer        void	(* RxInd)(U8 *pData, U32 length, void *buf);			// rx indication        void	(* TxCompleted)(void);									// tx completed        BOOLEAN	(* SetupNextSend)(fragInfo_t *pFragInfo);				// send to HMAC        void	(* SetReg)(void *reg, U32 offset, U32 value);			// set HMAC register        U32	(* GetReg)(void *reg, U32 offset);						// get HMAC register        U16 	(* StatusNotify)(U16 status, U8 *StaAddr);				// association notify for bridge management        void 	(* ExitCS)(U32 flags);								// enable interrupt        U32	(* EnterCS)(void);								// disable interrupt        U32 	(* Vir2PhyAddr)(U32 virtAddr);							// translate virtual address to physical address        BOOLEAN	(* CheckTCBAvail)(U8 NumOfFrag);						// check TCB available        void	(* DelayUs)(U16 ustime);								// delay function        void *	(* AllocBuffer)(U16 dataSize, U8 **pData);				// allocate wireless forwarding buffer        int	(* Rand)(U32 seed);        void    (* AcquireDoNotSleep)(void);        void    (* ReleaseDoNotSleep)(void);        // wpa support        void	(* MicFailure)(unsigned char *addr);        int	(* AssocRequest)(U8 *addr, U8* data, U16 size);        int 	(* WpaIe)(U8 *buffer, int length);}zd_80211Obj_t;//802.11 export functions for driver useextern void zd_SigProcess(void);									// protocol statck entry pointextern BOOLEAN zd_SendPkt(U8 *pEthHdr, U8 *pBody, U32 bodyLen, void *buf, U8 bEapol, void *pHash);	// tx requestextern void zd_ReceivePkt(U8 *pHdr, U32 hdrLen, U8 *pBody, U32 bodyLen, void *buf, U8 *pEthHdr, rxInfo_t *pRxInfo); // rx indicationextern BOOLEAN zd_CmdProcess(U16 CmdId, void *parm1, U32 parm2);	//command processextern void zd_EventNotify(U16 EventId, U32 parm1, U32 parm2, U32 parm3);		//event notifyextern void zd_UpdateCardSetting(card_Setting_t *pSetting);extern BOOLEAN zd_CleanupTxQ(void);extern BOOLEAN zd_CleanupAwakeQ(void);extern int zd_SetKeyInfo(U8 *addr, U8 encryMode, U8 keyLength, U8 KeyId, U8 *pKeyContent);extern void zd_PerSecTimer(void);extern BOOLEAN zd_CheckIvSeq(U8 aid, U16 iv16, U32 iv32);extern void zd_RateMoniter(void);extern BOOLEAN zd_QueryStaTable(U8 *sta, void **ppHash);extern void zd_ConnectMon(void);extern U8 zd_GetBssList(bss_info_t *pBssList);extern U16 zd_AidLookUp(U8 *addr);extern void zd_makeRateInfoMAP(U8 *pRates, U16 *basicRateMap, U16 *supRateMap);extern void zd_UpdateIbssInfo(U8 *addr, U8 maxRate, U8 preamble, U8 erpSta);#endif

⌨️ 快捷键说明

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