📄 rtmp.h
字号:
/* ************************************************************************* * Ralink Tech Inc. * 4F, No. 2 Technology 5th Rd. * Science-based Industrial Park * Hsin-chu, Taiwan, R.O.C. * * (c) Copyright 2002-2007, Ralink Technology, Inc. * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * ************************************************************************* Module Name: rtmp.h Abstract: Miniport generic portion header file Revision History: Who When What -------- ---------- ---------------------------------------------- Paul Lin 2002-08-01 created James Tan 2002-09-06 modified (Revise NTCRegTable) John Chang 2004-09-06 modified for RT2600 */#ifndef __RTMP_H__#define __RTMP_H__#include "link_list.h"#ifdef CONFIG_STA_SUPPORT#include <aironet.h>#endif // CONFIG_STA_SUPPORT ////#define DBG 1extern char NIC_VENDOR_DESC[];extern int NIC_VENDOR_DESC_LEN;extern unsigned long NIC_VENDOR_DRIVER_VERSION;//extern unsigned short NIC_PCI_DEVICE_ID;extern unsigned short NIC2860_PCI_DEVICE_ID;extern unsigned short NIC2860_PCIe_DEVICE_ID;extern unsigned short NIC2561_PCI_DEVICE_ID;extern unsigned short NIC2561Turbo_PCI_DEVICE_ID;extern unsigned short NIC_PCI_VENDOR_ID;extern unsigned char SNAP_AIRONET[];extern unsigned char CipherSuiteCiscoCCKM[];extern unsigned char CipherSuiteCiscoCCKMLen;extern unsigned char CipherSuiteCiscoCCKM24[];extern unsigned char CipherSuiteCiscoCCKM24Len;extern unsigned char CipherSuiteCCXTkip[];extern unsigned char CipherSuiteCCXTkipLen;extern unsigned char CISCO_OUI[];extern UCHAR BaSizeArray[4];extern UCHAR BROADCAST_ADDR[MAC_ADDR_LEN];extern UCHAR MULTICAST_ADDR[MAC_ADDR_LEN];extern UCHAR ZERO_MAC_ADDR[MAC_ADDR_LEN];extern ULONG BIT32[32];extern UCHAR BIT8[8];extern char* CipherName[];extern char* MCSToMbps[];extern UCHAR RxwiMCSToOfdmRate[12];extern UCHAR SNAP_802_1H[6];extern UCHAR SNAP_BRIDGE_TUNNEL[6];extern UCHAR SNAP_AIRONET[8];extern UCHAR CKIP_LLC_SNAP[8];extern UCHAR EAPOL_LLC_SNAP[8];extern UCHAR EAPOL[2];extern UCHAR IPX[2];extern UCHAR APPLE_TALK[2];extern UCHAR RateIdToPlcpSignal[12]; // see IEEE802.11a-1999 p.14extern UCHAR OfdmRateToRxwiMCS[];extern UCHAR OfdmSignalToRateId[16] ;extern UCHAR default_cwmin[4];extern UCHAR default_cwmax[4];extern UCHAR default_sta_aifsn[4];extern UCHAR MapUserPriorityToAccessCategory[8];extern USHORT RateUpPER[];extern USHORT RateDownPER[];extern UCHAR Phy11BNextRateDownward[];extern UCHAR Phy11BNextRateUpward[];extern UCHAR Phy11BGNextRateDownward[];extern UCHAR Phy11BGNextRateUpward[];extern UCHAR Phy11ANextRateDownward[];extern UCHAR Phy11ANextRateUpward[];extern CHAR RssiSafeLevelForTxRate[];extern UCHAR RateIdToMbps[];extern USHORT RateIdTo500Kbps[];extern UCHAR CipherSuiteWpaNoneTkip[];extern UCHAR CipherSuiteWpaNoneTkipLen;extern UCHAR CipherSuiteWpaNoneAes[];extern UCHAR CipherSuiteWpaNoneAesLen;extern UCHAR SsidIe;extern UCHAR SupRateIe;extern UCHAR ExtRateIe;extern UCHAR HtCapIe;extern UCHAR AddHtInfoIe;extern UCHAR NewExtChanIe;extern UCHAR ErpIe;extern UCHAR DsIe;extern UCHAR TimIe;extern UCHAR WpaIe;extern UCHAR Wpa2Ie;extern UCHAR IbssIe;extern UCHAR Ccx2Ie;extern UCHAR WPA_OUI[];extern UCHAR RSN_OUI[];extern UCHAR WME_INFO_ELEM[];extern UCHAR WME_PARM_ELEM[];extern UCHAR Ccx2QosInfo[];extern UCHAR Ccx2IeInfo[];extern UCHAR RALINK_OUI[];extern UCHAR PowerConstraintIE[];extern UCHAR RateSwitchTable[];extern UCHAR RateSwitchTable11B[];extern UCHAR RateSwitchTable11G[];extern UCHAR RateSwitchTable11BG[];extern UCHAR RateSwitchTable11BGN1S[];extern UCHAR RateSwitchTable11BGN2S[];extern UCHAR RateSwitchTable11N1S[];extern UCHAR RateSwitchTable11N2S[];#ifdef CONFIG_STA_SUPPORTextern UCHAR PRE_N_HT_OUI[];#endif // CONFIG_STA_SUPPORT //#define MAXSEQ (0xFFF)#ifdef RALINK_ATEtypedef struct _ATE_INFO { UCHAR Mode; CHAR TxPower0; CHAR TxPower1; CHAR TxAntennaSel; CHAR RxAntennaSel; TXWI_STRUC TxWI; // TXWI USHORT QID; UCHAR Addr1[MAC_ADDR_LEN]; UCHAR Addr2[MAC_ADDR_LEN]; UCHAR Addr3[MAC_ADDR_LEN]; UCHAR Channel; ULONG TxLength; ULONG TxCount; ULONG TxDoneCount; // Tx DMA Done ULONG RFFreqOffset; BOOLEAN bRxFer; BOOLEAN bQATxStart; // Have compiled QA in and use it to ATE tx. BOOLEAN bQARxStart; // Have compiled QA in and use it to ATE rx. ULONG RxTotalCnt; ULONG RxCntPerSec; CHAR LastRssi0; // last received BEACON's RSSI CHAR LastRssi1; // last received BEACON's RSSI CHAR LastRssi2; // last received BEACON's RSSI CHAR AvgRssi0; CHAR AvgRssi1; CHAR AvgRssi2; SHORT AvgRssi0X8; SHORT AvgRssi1X8; SHORT AvgRssi2X8; ULONG NumOfAvgRssiSample;#ifdef RALINK_2860_QA // Tx frame ULONG TxInfo; // TxInfo USHORT HLen; // Header Length USHORT PLen; // Pattern Length UCHAR Header[32]; // Header buffer UCHAR Pattern[32]; // Pattern buffer USHORT DLen; // Data Length USHORT seq; ULONG CID; pid_t AtePid; // counters ULONG U2M; ULONG OtherData; ULONG Beacon; ULONG OtherCount; ULONG TxAc0; ULONG TxAc1; ULONG TxAc2; ULONG TxAc3; ULONG TxHCCA; ULONG TxMgmt; ULONG RSSI0; ULONG RSSI1; ULONG RSSI2; ULONG SNR0; ULONG SNR1; // control //ULONG Repeat; // Tx Cpu count UCHAR TxStatus; // task Tx status // 0 --> task is idle, 1 --> task is running#endif // RALINK_2860_QA //} ATE_INFO, *PATE_INFO;#endif // RALINK_ATE //struct reordering_mpdu{ struct reordering_mpdu *next; PNDIS_PACKET pPacket; /* coverted to 802.3 frame */ int Sequence; /* sequence number of MPDU */ BOOLEAN bAMSDU;};struct reordering_list{ struct reordering_mpdu *next; int qlen;};struct reordering_mpdu_pool{ PVOID mem; NDIS_SPIN_LOCK lock; struct reordering_list freelist;};typedef struct _RSSI_SAMPLE { CHAR LastRssi0; // last received RSSI CHAR LastRssi1; // last received RSSI CHAR LastRssi2; // last received RSSI CHAR AvgRssi0; CHAR AvgRssi1; CHAR AvgRssi2; SHORT AvgRssi0X8; SHORT AvgRssi1X8; SHORT AvgRssi2X8;} RSSI_SAMPLE;//// Queue structure and macros//typedef struct _QUEUE_ENTRY { struct _QUEUE_ENTRY *Next;} QUEUE_ENTRY, *PQUEUE_ENTRY;// Queue structuretypedef struct _QUEUE_HEADER { PQUEUE_ENTRY Head; PQUEUE_ENTRY Tail; ULONG Number;} QUEUE_HEADER, *PQUEUE_HEADER;#define InitializeQueueHeader(QueueHeader) \{ \ (QueueHeader)->Head = (QueueHeader)->Tail = NULL; \ (QueueHeader)->Number = 0; \}#define RemoveHeadQueue(QueueHeader) \(QueueHeader)->Head; \{ \ PQUEUE_ENTRY pNext; \ if ((QueueHeader)->Head != NULL) \ { \ pNext = (QueueHeader)->Head->Next; \ (QueueHeader)->Head = pNext; \ if (pNext == NULL) \ (QueueHeader)->Tail = NULL; \ (QueueHeader)->Number--; \ } \}#define InsertHeadQueue(QueueHeader, QueueEntry) \{ \ ((PQUEUE_ENTRY)QueueEntry)->Next = (QueueHeader)->Head; \ (QueueHeader)->Head = (PQUEUE_ENTRY)(QueueEntry); \ if ((QueueHeader)->Tail == NULL) \ (QueueHeader)->Tail = (PQUEUE_ENTRY)(QueueEntry); \ (QueueHeader)->Number++; \}#define InsertTailQueue(QueueHeader, QueueEntry) \{ \ ((PQUEUE_ENTRY)QueueEntry)->Next = NULL; \ if ((QueueHeader)->Tail) \ (QueueHeader)->Tail->Next = (PQUEUE_ENTRY)(QueueEntry); \ else \ (QueueHeader)->Head = (PQUEUE_ENTRY)(QueueEntry); \ (QueueHeader)->Tail = (PQUEUE_ENTRY)(QueueEntry); \ (QueueHeader)->Number++; \}//// Macros for flag and ref count operations//#define RTMP_SET_FLAG(_M, _F) ((_M)->Flags |= (_F))#define RTMP_CLEAR_FLAG(_M, _F) ((_M)->Flags &= ~(_F))#define RTMP_CLEAR_FLAGS(_M) ((_M)->Flags = 0)#define RTMP_TEST_FLAG(_M, _F) (((_M)->Flags & (_F)) != 0)#define RTMP_TEST_FLAGS(_M, _F) (((_M)->Flags & (_F)) == (_F))#define OPSTATUS_SET_FLAG(_pAd, _F) ((_pAd)->CommonCfg.OpStatusFlags |= (_F))#define OPSTATUS_CLEAR_FLAG(_pAd, _F) ((_pAd)->CommonCfg.OpStatusFlags &= ~(_F))#define OPSTATUS_TEST_FLAG(_pAd, _F) (((_pAd)->CommonCfg.OpStatusFlags & (_F)) != 0)#define CLIENT_STATUS_SET_FLAG(_pEntry,_F) ((_pEntry)->ClientStatusFlags |= (_F))#define CLIENT_STATUS_CLEAR_FLAG(_pEntry,_F) ((_pEntry)->ClientStatusFlags &= ~(_F))#define CLIENT_STATUS_TEST_FLAG(_pEntry,_F) (((_pEntry)->ClientStatusFlags & (_F)) != 0)//#define STACFG_SET_FLAG(_pAd, _F) ((_pAd)->StaCfg.StaCfgFlags |= (_F))//#define STACFG_CLEAR_FLAG(_pAd, _F) ((_pAd)->StaCfg.StaCfgFlags &= ~(_F))//#define STACFG_TEST_FLAG(_pAd, _F) (((_pAd)->StaCfg.StaCfgFlags & (_F)) != 0)#define RX_FILTER_SET_FLAG(_pAd, _F) ((_pAd)->CommonCfg.PacketFilter |= (_F))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -