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

📄 ah.h.svn-base

📁 最新之atheros芯片driver source code, 基于linux操作系统,內含atheros芯片HAL全部代码
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
	HAL_PM_NETWORK_SLEEP	= 2,	HAL_PM_UNDEFINED	= 3} HAL_POWER_MODE;/* * NOTE WELL: * These are mapped to take advantage of the common locations for many of * the bits on all of the currently supported MAC chips. This is to make * the ISR as efficient as possible, while still abstracting HW differences. * When new hardware breaks this commonality this enumerated type, as well * as the HAL functions using it, must be modified. All values are directly * mapped unless commented otherwise. */typedef enum {	HAL_INT_RX	= 0x00000001,	/* Non-common mapping */	HAL_INT_RXDESC	= 0x00000002,	HAL_INT_RXNOFRM	= 0x00000008,	HAL_INT_RXEOL	= 0x00000010,	HAL_INT_RXORN	= 0x00000020,	HAL_INT_TX	= 0x00000040,	/* Non-common mapping */	HAL_INT_TXDESC	= 0x00000080,	HAL_INT_TXURN	= 0x00000800,	HAL_INT_MIB	= 0x00001000,	HAL_INT_RXPHY	= 0x00004000,	HAL_INT_RXKCM	= 0x00008000,	HAL_INT_SWBA	= 0x00010000,	HAL_INT_BMISS	= 0x00040000,	HAL_INT_BNR	= 0x00100000,	/* Non-common mapping */	HAL_INT_TIM	= 0x00200000,	/* Non-common mapping */	HAL_INT_DTIM	= 0x00400000,	/* Non-common mapping */	HAL_INT_DTIMSYNC= 0x00800000,	/* Non-common mapping */	HAL_INT_GPIO	= 0x01000000,	HAL_INT_CABEND	= 0x02000000,	/* Non-common mapping */	HAL_INT_TSFOOR	= 0x04000000,	/* Non-common mapping */	HAL_INT_CST	= 0x10000000,	/* Non-common mapping */	HAL_INT_GTT	= 0x20000000,	/* Non-common mapping */	HAL_INT_FATAL	= 0x40000000,	/* Non-common mapping */#define	HAL_INT_GLOBAL	0x80000000	/* Set/clear IER */	HAL_INT_BMISC	= HAL_INT_TIM			| HAL_INT_DTIM			| HAL_INT_DTIMSYNC			| HAL_INT_CABEND,	/* Interrupt bits that map directly to ISR/IMR bits */	HAL_INT_COMMON  = HAL_INT_RXNOFRM			| HAL_INT_RXDESC			| HAL_INT_RXEOL			| HAL_INT_RXORN			| HAL_INT_TXURN			| HAL_INT_TXDESC			| HAL_INT_MIB			| HAL_INT_RXPHY			| HAL_INT_RXKCM			| HAL_INT_SWBA			| HAL_INT_BMISS			| HAL_INT_GPIO,} HAL_INT;typedef enum {	HAL_RFGAIN_INACTIVE		= 0,	HAL_RFGAIN_READ_REQUESTED	= 1,	HAL_RFGAIN_NEED_CHANGE		= 2} HAL_RFGAIN;/* * Channels are specified by frequency. */typedef struct {	uint32_t	channelFlags;	/* see below */	uint16_t	channel;	/* setting in Mhz */	uint8_t		privFlags;	int8_t		maxRegTxPower;	/* max regulatory tx power in dBm */	int8_t		maxTxPower;	/* max true tx power in 0.5 dBm */	int8_t		minTxPower;	/* min true tx power in 0.5 dBm */} HAL_CHANNEL;/* channelFlags */#define	CHANNEL_CW_INT	0x00002	/* CW interference detected on channel */#define	CHANNEL_TURBO	0x00010	/* Turbo Channel */#define	CHANNEL_CCK	0x00020	/* CCK channel */#define	CHANNEL_OFDM	0x00040	/* OFDM channel */#define	CHANNEL_2GHZ	0x00080	/* 2 GHz spectrum channel */#define	CHANNEL_5GHZ	0x00100	/* 5 GHz spectrum channel */#define	CHANNEL_PASSIVE	0x00200	/* Only passive scan allowed in the channel */#define	CHANNEL_DYN	0x00400	/* dynamic CCK-OFDM channel */#define	CHANNEL_STURBO	0x02000	/* Static turbo, no 11a-only usage */#define	CHANNEL_HALF    0x04000 /* Half rate channel */#define	CHANNEL_QUARTER 0x08000 /* Quarter rate channel */#define	CHANNEL_HT20	0x10000 /* 11n 20MHZ channel */ #define	CHANNEL_HT40PLUS 0x20000 /* 11n 40MHZ channel w/ ext chan above */#define	CHANNEL_HT40MINUS 0x40000 /* 11n 40MHZ channel w/ ext chan below *//* privFlags */#define CHANNEL_INTERFERENCE   	0x01 /* Software use: channel interference 				        used for as AR as well as RADAR 				        interference detection */#define CHANNEL_DFS		0x02 /* DFS required on channel */#define CHANNEL_4MS_LIMIT	0x04 /* 4msec packet limit on this channel */#define CHANNEL_DFS_CLEAR	0x08 /* if channel has been checked for DFS */#define	CHANNEL_A	(CHANNEL_5GHZ|CHANNEL_OFDM)#define	CHANNEL_B	(CHANNEL_2GHZ|CHANNEL_CCK)#define	CHANNEL_PUREG	(CHANNEL_2GHZ|CHANNEL_OFDM)#ifdef notdef#define	CHANNEL_G	(CHANNEL_2GHZ|CHANNEL_DYN)#else#define	CHANNEL_G	(CHANNEL_2GHZ|CHANNEL_OFDM)#endif#define	CHANNEL_T	(CHANNEL_5GHZ|CHANNEL_OFDM|CHANNEL_TURBO)#define CHANNEL_ST	(CHANNEL_T|CHANNEL_STURBO)#define	CHANNEL_108G	(CHANNEL_2GHZ|CHANNEL_OFDM|CHANNEL_TURBO)#define	CHANNEL_108A	CHANNEL_T#define	CHANNEL_G_HT20		(CHANNEL_G|CHANNEL_HT20)#define	CHANNEL_A_HT20		(CHANNEL_A|CHANNEL_HT20)#define	CHANNEL_G_HT40PLUS	(CHANNEL_G|CHANNEL_HT40PLUS)#define	CHANNEL_G_HT40MINUS	(CHANNEL_G|CHANNEL_HT40MINUS)#define	CHANNEL_A_HT40PLUS	(CHANNEL_A|CHANNEL_HT40PLUS)#define	CHANNEL_A_HT40MINUS	(CHANNEL_A|CHANNEL_HT40MINUS)#define	CHANNEL_ALL \	(CHANNEL_OFDM | CHANNEL_CCK| CHANNEL_2GHZ | CHANNEL_5GHZ | \	 CHANNEL_TURBO | CHANNEL_HT20 | CHANNEL_HT40PLUS | CHANNEL_HT40MINUS)#define	CHANNEL_ALL_NOTURBO 	(CHANNEL_ALL &~ CHANNEL_TURBO)#define HAL_ANTENNA_MIN_MODE  0#define HAL_ANTENNA_FIXED_A   1#define HAL_ANTENNA_FIXED_B   2#define HAL_ANTENNA_MAX_MODE  3typedef struct {	uint32_t	ackrcv_bad;	uint32_t	rts_bad;	uint32_t	rts_good;	uint32_t	fcs_bad;	uint32_t	beacons;} HAL_MIB_STATS;typedef uint16_t HAL_CTRY_CODE;		/* country code */typedef uint16_t HAL_REG_DOMAIN;		/* regulatory domain code */enum {	CTRY_DEBUG	= 0x1ff,		/* debug country code */	CTRY_DEFAULT	= 0			/* default country code */};enum {	HAL_MODE_11A	= 0x001,		/* 11a channels */	HAL_MODE_TURBO	= 0x002,		/* 11a turbo-only channels */	HAL_MODE_11B	= 0x004,		/* 11b channels */	HAL_MODE_PUREG	= 0x008,		/* 11g channels (OFDM only) */#ifdef notdef	HAL_MODE_11G	= 0x010,		/* 11g channels (OFDM/CCK) */#else	HAL_MODE_11G	= 0x008,		/* XXX historical */#endif	HAL_MODE_108G	= 0x020,		/* 11g+Turbo channels */	HAL_MODE_108A	= 0x040,		/* 11a+Turbo channels */	HAL_MODE_11A_HALF_RATE = 0x200,		/* 11a half width channels */	HAL_MODE_11A_QUARTER_RATE = 0x400,	/* 11a quarter width channels */	HAL_MODE_11G_HALF_RATE = 0x800,		/* 11g half width channels */	HAL_MODE_11G_QUARTER_RATE = 0x1000,	/* 11g quarter width channels */	HAL_MODE_11NG_HT20	= 0x008000,	HAL_MODE_11NA_HT20  	= 0x010000,	HAL_MODE_11NG_HT40PLUS	= 0x020000,	HAL_MODE_11NG_HT40MINUS	= 0x040000,	HAL_MODE_11NA_HT40PLUS	= 0x080000,	HAL_MODE_11NA_HT40MINUS	= 0x100000,	HAL_MODE_ALL	= 0xffffff};typedef struct {	int		rateCount;		/* NB: for proper padding */	uint8_t		rateCodeToIndex[144];	/* back mapping */	struct {		uint8_t	valid;		/* valid for rate control use */		uint8_t	phy;		/* CCK/OFDM/XR */		uint32_t	rateKbps;	/* transfer rate in kbs */		uint8_t		rateCode;	/* rate for h/w descriptors */		uint8_t		shortPreamble;	/* mask for enabling short						 * preamble in CCK rate code */		uint8_t		dot11Rate;	/* value for supported rates						 * info element of MLME */		uint8_t		controlRate;	/* index of next lower basic						 * rate; used for dur. calcs */		uint16_t	lpAckDuration;	/* long preamble ACK duration */		uint16_t	spAckDuration;	/* short preamble ACK duration*/	} info[32];} HAL_RATE_TABLE;typedef struct {	u_int		rs_count;		/* number of valid entries */	uint8_t	rs_rates[32];		/* rates */} HAL_RATE_SET;/* * 802.11n specific structures and enums */typedef enum {	HAL_CHAINTYPE_TX	= 1,	/* Tx chain type */	HAL_CHAINTYPE_RX	= 2,	/* RX chain type */} HAL_CHAIN_TYPE;typedef struct {	u_int	Tries;	u_int	Rate;	u_int	PktDuration;	u_int	ChSel;	u_int	RateFlags;#define	HAL_RATESERIES_RTS_CTS		0x0001	/* use rts/cts w/this series */#define	HAL_RATESERIES_2040		0x0002	/* use ext channel for series */#define	HAL_RATESERIES_HALFGI		0x0004	/* use half-gi for series */} HAL_11N_RATE_SERIES;typedef enum {	HAL_HT_MACMODE_20	= 0,	/* 20 MHz operation */	HAL_HT_MACMODE_2040	= 1,	/* 20/40 MHz operation */} HAL_HT_MACMODE;typedef enum {	HAL_HT_PHYMODE_20	= 0,	/* 20 MHz operation */	HAL_HT_PHYMODE_2040	= 1,	/* 20/40 MHz operation */} HAL_HT_PHYMODE;typedef enum {	HAL_HT_EXTPROTSPACING_20 = 0,	/* 20 MHz spacing */	HAL_HT_EXTPROTSPACING_25 = 1,	/* 25 MHz spacing */} HAL_HT_EXTPROTSPACING;typedef enum {	HAL_RX_CLEAR_CTL_LOW	= 0x1,	/* force control channel to appear busy */	HAL_RX_CLEAR_EXT_LOW	= 0x2,	/* force extension channel to appear busy */} HAL_HT_RXCLEAR;/* * Antenna switch control.  By default antenna selection * enables multiple (2) antenna use.  To force use of the * A or B antenna only specify a fixed setting.  Fixing * the antenna will also disable any diversity support. */typedef enum {	HAL_ANT_VARIABLE = 0,			/* variable by programming */	HAL_ANT_FIXED_A	 = 1,			/* fixed antenna A */	HAL_ANT_FIXED_B	 = 2,			/* fixed antenna B */} HAL_ANT_SETTING;typedef enum {	HAL_M_STA	= 1,			/* infrastructure station */	HAL_M_IBSS	= 0,			/* IBSS (adhoc) station */	HAL_M_HOSTAP	= 6,			/* Software Access Point */	HAL_M_MONITOR	= 8			/* Monitor mode */} HAL_OPMODE;typedef struct {	uint8_t		kv_type;		/* one of HAL_CIPHER */	uint8_t		kv_pad;	uint16_t	kv_len;			/* length in bits */	uint8_t		kv_val[16];		/* enough for 128-bit keys */	uint8_t		kv_mic[8];		/* TKIP MIC key */	uint8_t		kv_txmic[8];		/* TKIP TX MIC key (optional) */} HAL_KEYVAL;typedef enum {	HAL_CIPHER_WEP		= 0,	HAL_CIPHER_AES_OCB	= 1,	HAL_CIPHER_AES_CCM	= 2,	HAL_CIPHER_CKIP		= 3,	HAL_CIPHER_TKIP		= 4,	HAL_CIPHER_CLR		= 5,		/* no encryption */	HAL_CIPHER_MIC		= 127		/* TKIP-MIC, not a cipher */} HAL_CIPHER;enum {	HAL_SLOT_TIME_6	 = 6,			/* NB: for turbo mode */	HAL_SLOT_TIME_9	 = 9,	HAL_SLOT_TIME_20 = 20,};/* * Per-station beacon timer state.  Note that the specified * beacon interval (given in TU's) can also include flags * to force a TSF reset and to enable the beacon xmit logic. * If bs_cfpmaxduration is non-zero the hardware is setup to * coexist with a PCF-capable AP. */typedef struct {	uint32_t	bs_nexttbtt;		/* next beacon in TU */	uint32_t	bs_nextdtim;		/* next DTIM in TU */	uint32_t	bs_intval;		/* beacon interval+flags */#define	HAL_BEACON_PERIOD	0x0000ffff	/* beacon interval period */#define	HAL_BEACON_ENA		0x00800000	/* beacon xmit enable */#define	HAL_BEACON_RESET_TSF	0x01000000	/* clear TSF */	uint32_t	bs_dtimperiod;	uint16_t	bs_cfpperiod;		/* CFP period in TU */	uint16_t	bs_cfpmaxduration;	/* max CFP duration in TU */	uint32_t	bs_cfpnext;		/* next CFP in TU */	uint16_t	bs_timoffset;		/* byte offset to TIM bitmap */	uint16_t	bs_bmissthreshold;	/* beacon miss threshold */	uint32_t	bs_sleepduration;	/* max sleep duration */} HAL_BEACON_STATE;

⌨️ 快捷键说明

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