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

📄 rt2870.h

📁 ralink最新rt3070 usb wifi 无线网卡驱动程序
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifdef RT2870#define GET_TXRING_FREENO(_pAd, _QueIdx) 	(_QueIdx) //(_pAd->TxRing[_QueIdx].TxSwFreeIdx)#define GET_MGMTRING_FREENO(_pAd) 			(_pAd->MgmtRing.TxSwFreeIdx)#endif // RT2870 ///* ----------------- RX Related MACRO ----------------- *///#define RT28XX_RX_ERROR_CHECK				RTMPCheckRxWI#define RT28XX_RV_ALL_BUF_END(bBulkReceive)		\	/* We return STATUS_MORE_PROCESSING_REQUIRED so that the completion */	\	/* routine (IofCompleteRequest) will stop working on the irp. */		\	if (bBulkReceive == TRUE)	RTUSBBulkReceive(pAd);/* ----------------- ASIC Related MACRO ----------------- */// reset MAC of a station entry to 0xFFFFFFFFFFFF#define RT28XX_STA_ENTRY_MAC_RESET(pAd, Wcid)					\	{	RT_SET_ASIC_WCID	SetAsicWcid;						\		SetAsicWcid.WCID = Wcid;								\		SetAsicWcid.SetTid = 0xffffffff;						\		SetAsicWcid.DeleteTid = 0xffffffff;						\		RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_SET_ASIC_WCID, 	\				&SetAsicWcid, sizeof(RT_SET_ASIC_WCID));	}// add this entry into ASIC RX WCID search table#define RT28XX_STA_ENTRY_ADD(pAd, pEntry)							\	RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_SET_CLIENT_MAC_ENTRY, 	\							pEntry, sizeof(MAC_TABLE_ENTRY));// add by johnli, fix "in_interrupt" error when call "MacTableDeleteEntry" in Rx tasklet// Set MAC register value according operation mode#define RT28XX_UPDATE_PROTECT(pAd)	\ 	RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_UPDATE_PROTECT, NULL, 0);// end johnli// remove Pair-wise key material from ASIC// yet implement#define RT28XX_STA_ENTRY_KEY_DEL(pAd, BssIdx, Wcid)// add Client security information into ASIC WCID table and IVEIV table#define RT28XX_STA_SECURITY_INFO_ADD(pAd, apidx, KeyID, pEntry)						\	{	RT28XX_STA_ENTRY_MAC_RESET(pAd, pEntry->Aid);								\		if (pEntry->Aid >= 1) {														\			RT_SET_ASIC_WCID_ATTRI	SetAsicWcidAttri;								\			SetAsicWcidAttri.WCID = pEntry->Aid;									\			if ((pEntry->AuthMode <= Ndis802_11AuthModeAutoSwitch) &&				\				(pEntry->WepStatus == Ndis802_11Encryption1Enabled))				\			{																		\				SetAsicWcidAttri.Cipher = pAd->SharedKey[apidx][KeyID].CipherAlg;	\			}																		\			else if (pEntry->AuthMode == Ndis802_11AuthModeWPANone)					\			{																		\				SetAsicWcidAttri.Cipher = pAd->SharedKey[apidx][KeyID].CipherAlg;	\			}																		\			else SetAsicWcidAttri.Cipher = 0;										\            DBGPRINT(RT_DEBUG_TRACE, ("aid cipher = %ld\n",SetAsicWcidAttri.Cipher));       \			RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_SET_ASIC_WCID_CIPHER, 			\							&SetAsicWcidAttri, sizeof(RT_SET_ASIC_WCID_ATTRI)); } }// Insert the BA bitmap to ASIC for the Wcid entry#define RT28XX_ADD_BA_SESSION_TO_ASIC(_pAd, _Aid, _TID)					\		do{																\			RT_SET_ASIC_WCID	SetAsicWcid;							\			SetAsicWcid.WCID = (_Aid);									\			SetAsicWcid.SetTid = (0x10000<<(_TID));						\			SetAsicWcid.DeleteTid = 0xffffffff;							\			RTUSBEnqueueInternalCmd((_pAd), CMDTHREAD_SET_ASIC_WCID, &SetAsicWcid, sizeof(RT_SET_ASIC_WCID));	\		}while(0)// Remove the BA bitmap from ASIC for the Wcid entry#define RT28XX_DEL_BA_SESSION_FROM_ASIC(_pAd, _Wcid, _TID)				\		do{																\			RT_SET_ASIC_WCID	SetAsicWcid;							\			SetAsicWcid.WCID = (_Wcid);									\			SetAsicWcid.SetTid = (0xffffffff);							\			SetAsicWcid.DeleteTid = (0x10000<<(_TID) );					\			RTUSBEnqueueInternalCmd((_pAd), CMDTHREAD_SET_ASIC_WCID, &SetAsicWcid, sizeof(RT_SET_ASIC_WCID));	\		}while(0)		/* ----------------- PCI/USB Related MACRO ----------------- */#define RT28XX_HANDLE_DEV_ASSIGN(handle, dev_p)			\	((POS_COOKIE)handle)->pUsb_Dev = dev_p;// no use#define RT28XX_UNMAP()#define RT28XX_IRQ_REQUEST(net_dev)#define RT28XX_IRQ_RELEASE(net_dev)#define RT28XX_IRQ_INIT(pAd)#define RT28XX_IRQ_ENABLE(pAd)/* ----------------- MLME Related MACRO ----------------- */#define RT28XX_MLME_HANDLER(pAd)			RTUSBMlmeUp(pAd)#define RT28XX_MLME_PRE_SANITY_CHECK(pAd)								\	{	if ((pAd->CommonCfg.bHardwareRadio == TRUE) && 					\			(!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)) &&		\			(!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS))) {	\			RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_CHECK_GPIO, NULL, 0); } }#define RT28XX_MLME_STA_QUICK_RSP_WAKE_UP(pAd)	\	{	RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_QKERIODIC_EXECUT, NULL, 0);	\		RTUSBMlmeUp(pAd); }#define RT28XX_MLME_RESET_STATE_MACHINE(pAd)	\		        MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_RESET_CONF, 0, NULL);	\		        RTUSBMlmeUp(pAd);#define RT28XX_HANDLE_COUNTER_MEASURE(_pAd, _pEntry)		\	{	RTUSBEnqueueInternalCmd(_pAd, CMDTHREAD_802_11_COUNTER_MEASURE, _pEntry, sizeof(MAC_TABLE_ENTRY));	\		RTUSBMlmeUp(_pAd);									\	}/* ----------------- Power Save Related MACRO ----------------- */#define RT28XX_PS_POLL_ENQUEUE(pAd)						\	{	RTUSB_SET_BULK_FLAG(pAd, fRTUSB_BULK_OUT_PSPOLL);	\		RTUSBKickBulkOut(pAd); }#define RT28xx_CHIP_NAME            "RT2870"#define USB_CYC_CFG                 0x02a4#define NT_SUCCESS(status)			(((status) > 0) ? (1):(0))#define InterlockedIncrement 	 	atomic_inc#define NdisInterlockedIncrement 	atomic_inc#define InterlockedDecrement		atomic_dec#define NdisInterlockedDecrement 	atomic_dec#define InterlockedExchange			atomic_set//#define NdisMSendComplete			RTMP_SendComplete#define NdisMCancelTimer			RTMPCancelTimer#define NdisAllocMemory(_ptr, _size, _flag)	\									do{_ptr = kmalloc((_size),(_flag));}while(0)#define NdisFreeMemory(a, b, c) 	kfree((a))#define NdisMSleep					RTMPusecDelay		/* unit: microsecond */#define USBD_TRANSFER_DIRECTION_OUT		0#define USBD_TRANSFER_DIRECTION_IN		0#define USBD_SHORT_TRANSFER_OK			0#define PURB			purbb_t#define RTUSB_FREE_URB(pUrb)	usb_free_urb(pUrb)//#undef MlmeAllocateMemory//#undef MlmeFreeMemorytypedef struct usb_device	* PUSB_DEV;/* MACRO for linux usb */typedef struct urb *purbb_t;typedef struct usb_ctrlrequest devctrlrequest;#define PIRP		PVOID#define PMDL		PVOID#define NDIS_OID	UINT#ifndef USB_ST_NOERROR#define USB_ST_NOERROR     0#endif// vendor-specific control operations#define CONTROL_TIMEOUT_JIFFIES ( (100 * HZ) / 1000)#define UNLINK_TIMEOUT_MS		3/* unlink urb	*/#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7)#define RTUSB_UNLINK_URB(pUrb)		usb_kill_urb(pUrb)#else#define RTUSB_UNLINK_URB(pUrb)		usb_unlink_urb(pUrb)#endif// Prototypes of completion funuc.#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)#define RTUSBBulkOutDataPacketComplete(purb, pt_regs)    RTUSBBulkOutDataPacketComplete(purb)#define RTUSBBulkOutMLMEPacketComplete(pUrb, pt_regs)    RTUSBBulkOutMLMEPacketComplete(pUrb)#define RTUSBBulkOutNullFrameComplete(pUrb, pt_regs)     RTUSBBulkOutNullFrameComplete(pUrb)#define RTUSBBulkOutRTSFrameComplete(pUrb, pt_regs)      RTUSBBulkOutRTSFrameComplete(pUrb)#define RTUSBBulkOutPsPollComplete(pUrb, pt_regs)        RTUSBBulkOutPsPollComplete(pUrb)#define RTUSBBulkRxComplete(pUrb, pt_regs)               RTUSBBulkRxComplete(pUrb)#endifVOID RTUSBBulkOutDataPacketComplete(purbb_t purb, struct pt_regs *pt_regs);VOID RTUSBBulkOutMLMEPacketComplete(purbb_t pUrb, struct pt_regs *pt_regs);VOID RTUSBBulkOutNullFrameComplete(purbb_t pUrb, struct pt_regs *pt_regs);VOID RTUSBBulkOutRTSFrameComplete(purbb_t pUrb, struct pt_regs *pt_regs);VOID RTUSBBulkOutPsPollComplete(purbb_t pUrb, struct pt_regs *pt_regs);VOID RTUSBBulkRxComplete(purbb_t pUrb, struct pt_regs *pt_regs);#define RTUSBMlmeUp(pAd)	        \{								    \	POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie;	\	if(pObj->MLMEThr_pid>0)		    \        up(&(pAd->mlme_semaphore)); \}#define RTUSBCMDUp(pAd)	                \{									    \	POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie;	\	if(pObj->RTUSBCmdThr_pid>0)		    \	    up(&(pAd->RTUSBCmd_semaphore)); \}static inline NDIS_STATUS RTMPAllocateMemory(	OUT PVOID *ptr,	IN size_t size){	*ptr = kmalloc(size, GFP_ATOMIC);	if(*ptr)		return NDIS_STATUS_SUCCESS;	else		return NDIS_STATUS_RESOURCES;}/* rtmp.h */#define	BEACON_RING_SIZE                2#define DEVICE_VENDOR_REQUEST_OUT       0x40#define DEVICE_VENDOR_REQUEST_IN        0xc0#define INTERFACE_VENDOR_REQUEST_OUT    0x41#define INTERFACE_VENDOR_REQUEST_IN     0xc1#define MGMTPIPEIDX						0	// EP6 is highest priority#define BULKOUT_MGMT_RESET_FLAG				0x80#define RTUSB_SET_BULK_FLAG(_M, _F)				((_M)->BulkFlags |= (_F))#define RTUSB_CLEAR_BULK_FLAG(_M, _F)			((_M)->BulkFlags &= ~(_F))#define RTUSB_TEST_BULK_FLAG(_M, _F)			(((_M)->BulkFlags & (_F)) != 0)#define EnqueueCmd(cmdq, cmdqelmt)		\{										\	if (cmdq->size == 0)				\		cmdq->head = cmdqelmt;			\	else								\		cmdq->tail->next = cmdqelmt;	\	cmdq->tail = cmdqelmt;				\	cmdqelmt->next = NULL;				\	cmdq->size++;						\}typedef struct   _RT_SET_ASIC_WCID {	ULONG WCID;          // mechanism for rekeying: 0:disable, 1: time-based, 2: packet-based	ULONG SetTid;        // time-based: seconds, packet-based: kilo-packets	ULONG DeleteTid;        // time-based: seconds, packet-based: kilo-packets} RT_SET_ASIC_WCID,*PRT_SET_ASIC_WCID;typedef struct   _RT_SET_ASIC_WCID_ATTRI {	ULONG	WCID;          // mechanism for rekeying: 0:disable, 1: time-based, 2: packet-based	ULONG	Cipher;        // ASIC Cipher definition	UCHAR	Addr[ETH_LENGTH_OF_ADDRESS];	} RT_SET_ASIC_WCID_ATTRI,*PRT_SET_ASIC_WCID_ATTRI;typedef struct _MLME_MEMORY_STRUCT {	PVOID                           AllocVa;    //Pointer to the base virtual address of the allocated memory	struct _MLME_MEMORY_STRUCT      *Next;      //Pointer to the next virtual address of the allocated memory}   MLME_MEMORY_STRUCT, *PMLME_MEMORY_STRUCT;typedef struct  _MLME_MEMORY_HANDLER {	BOOLEAN                 MemRunning;         //The flag of the Mlme memory handler's status	UINT                    MemoryCount;        //Total nonpaged system-space memory not size	UINT                    InUseCount;         //Nonpaged system-space memory in used counts	UINT                    UnUseCount;         //Nonpaged system-space memory available counts	INT                    PendingCount;       //Nonpaged system-space memory for free counts	PMLME_MEMORY_STRUCT     pInUseHead;         //Pointer to the first nonpaed memory not used	PMLME_MEMORY_STRUCT     pInUseTail;         //Pointer to the last nonpaged memory not used	PMLME_MEMORY_STRUCT     pUnUseHead;         //Pointer to the first nonpaged memory in used	PMLME_MEMORY_STRUCT     pUnUseTail;         //Pointer to the last nonpaged memory in used	PULONG                  MemFreePending[MAX_MLME_HANDLER_MEMORY];   //an array to keep pending free-memory's pointer (32bits)}   MLME_MEMORY_HANDLER, *PMLME_MEMORY_HANDLER;typedef	struct _CmdQElmt	{	UINT				command;	PVOID				buffer;	ULONG				bufferlength;	BOOLEAN				CmdFromNdis;	BOOLEAN				SetOperation;	struct _CmdQElmt	*next;}	CmdQElmt, *PCmdQElmt;typedef	struct	_CmdQ	{	UINT		size;	CmdQElmt	*head;	CmdQElmt	*tail;	UINT32		CmdQState;}CmdQ, *PCmdQ;// // For WPA SUPPLICANT: WIRELESS EXT support wireless events: v14 or newer//#if WIRELESS_EXT >= 14//#define WPA_SUPPLICANT_SUPPORT  1#endif/* oid.h */// Cipher suite type for mixed mode group cipher, P802.11i-2004typedef enum _RT_802_11_CIPHER_SUITE_TYPE {	Cipher_Type_NONE,	Cipher_Type_WEP40,	Cipher_Type_TKIP,	Cipher_Type_RSVD,	Cipher_Type_CCMP,	Cipher_Type_WEP104} RT_802_11_CIPHER_SUITE_TYPE, *PRT_802_11_CIPHER_SUITE_TYPE;//CMDTHREAD_MULTI_READ_MAC//CMDTHREAD_MULTI_WRITE_MAC//CMDTHREAD_VENDOR_EEPROM_READ//CMDTHREAD_VENDOR_EEPROM_WRITEtypedef	struct	_CMDHandler_TLV	{	USHORT		Offset;	USHORT		Length;	UCHAR		DataFirst;}	CMDHandler_TLV, *PCMDHandler_TLV;// New for MeetingHouse Api support#define CMDTHREAD_VENDOR_RESET                      0x0D730101	// cmd#define CMDTHREAD_VENDOR_UNPLUG                     0x0D730102	// cmd#define CMDTHREAD_VENDOR_SWITCH_FUNCTION            0x0D730103	// cmd#define CMDTHREAD_MULTI_WRITE_MAC                   0x0D730107	// cmd#define CMDTHREAD_MULTI_READ_MAC                    0x0D730108	// cmd#define CMDTHREAD_VENDOR_EEPROM_WRITE               0x0D73010A	// cmd#define CMDTHREAD_VENDOR_EEPROM_READ                0x0D73010B	// cmd#define CMDTHREAD_VENDOR_ENTER_TESTMODE             0x0D73010C	// cmd#define CMDTHREAD_VENDOR_EXIT_TESTMODE              0x0D73010D	// cmd#define CMDTHREAD_VENDOR_WRITE_BBP                  0x0D730119	// cmd#define CMDTHREAD_VENDOR_READ_BBP                   0x0D730118	// cmd#define CMDTHREAD_VENDOR_WRITE_RF                   0x0D73011A	// cmd#define CMDTHREAD_VENDOR_FLIP_IQ                    0x0D73011D	// cmd#define CMDTHREAD_RESET_BULK_OUT                    0x0D730210	// cmd#define CMDTHREAD_RESET_BULK_IN                     0x0D730211	// cmd#define CMDTHREAD_SET_PSM_BIT_SAVE                  0x0D730212	// cmd#define CMDTHREAD_SET_RADIO                         0x0D730214	// cmd#define CMDTHREAD_UPDATE_TX_RATE                    0x0D730216	// cmd#define CMDTHREAD_802_11_ADD_KEY_WEP                0x0D730218	// cmd#define CMDTHREAD_RESET_FROM_ERROR                  0x0D73021A	// cmd#define CMDTHREAD_LINK_DOWN                         0x0D73021B	// cmd#define CMDTHREAD_RESET_FROM_NDIS                   0x0D73021C	// cmd#define CMDTHREAD_CHECK_GPIO                        0x0D730215	// cmd#define CMDTHREAD_FORCE_WAKE_UP                     0x0D730222	// cmd#define CMDTHREAD_SET_BW                            0x0D730225	// cmd#define CMDTHREAD_SET_ASIC_WCID                     0x0D730226	// cmd#define CMDTHREAD_SET_ASIC_WCID_CIPHER              0x0D730227	// cmd#define CMDTHREAD_QKERIODIC_EXECUT                  0x0D73023D	// cmd#define RT_CMD_SET_KEY_TABLE                        0x0D730228  // cmd#define RT_CMD_SET_RX_WCID_TABLE                    0x0D730229  // cmd#define CMDTHREAD_SET_CLIENT_MAC_ENTRY              0x0D73023E	// cmd#define CMDTHREAD_802_11_QUERY_HARDWARE_REGISTER    0x0D710105	// cmd#define CMDTHREAD_802_11_SET_PHY_MODE               0x0D79010C	// cmd#define CMDTHREAD_802_11_SET_STA_CONFIG             0x0D790111	// cmd#define CMDTHREAD_802_11_SET_PREAMBLE               0x0D790101	// cmd#define CMDTHREAD_802_11_COUNTER_MEASURE			0x0D790102	// cmd// add by johnli, fix "in_interrupt" error when call "MacTableDeleteEntry" in Rx tasklet#define CMDTHREAD_UPDATE_PROTECT					0x0D790103	// cmd// end johnli#define WPA1AKMBIT	    0x01#define WPA2AKMBIT	    0x02#define WPA1PSKAKMBIT   0x04#define WPA2PSKAKMBIT   0x08#define TKIPBIT         0x01#define CCMPBIT         0x02#define RT28XX_STA_FORCE_WAKEUP(pAd, bFromTx) \    RT28xxUsbStaAsicForceWakeup(pAd, bFromTx);#define RT28XX_STA_SLEEP_THEN_AUTO_WAKEUP(pAd, TbttNumToNextWakeUp) \    RT28xxUsbStaAsicSleepThenAutoWakeup(pAd, TbttNumToNextWakeUp);#define RT28XX_MLME_RADIO_ON(pAd) \    RT28xxUsbMlmeRadioOn(pAd);#define RT28XX_MLME_RADIO_OFF(pAd) \    RT28xxUsbMlmeRadioOFF(pAd);#endif //__RT2870_H__

⌨️ 快捷键说明

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