Staging: rt28x0: run *.h files through Lindent

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Bartlomiej Zolnierkiewicz
2009-12-11 12:23:14 -08:00
committed by Greg Kroah-Hartman
parent 0f65bec15b
commit 52b81c89e5
37 changed files with 5393 additions and 7078 deletions

View File

@@ -41,40 +41,26 @@
#define __AP_H__ #define __AP_H__
// ap_wpa.c // ap_wpa.c
VOID WpaStateMachineInit( VOID WpaStateMachineInit(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, IN STATE_MACHINE * Sm, OUT STATE_MACHINE_FUNC Trans[]);
IN STATE_MACHINE *Sm,
OUT STATE_MACHINE_FUNC Trans[]);
#ifdef RTMP_MAC_USB #ifdef RTMP_MAC_USB
VOID BeaconUpdateExec( VOID BeaconUpdateExec(IN PVOID SystemSpecific1,
IN PVOID SystemSpecific1, IN PVOID FunctionContext,
IN PVOID FunctionContext, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3);
IN PVOID SystemSpecific2,
IN PVOID SystemSpecific3);
#endif // RTMP_MAC_USB // #endif // RTMP_MAC_USB //
VOID RTMPSetPiggyBack( VOID RTMPSetPiggyBack(IN PRTMP_ADAPTER pAd, IN BOOLEAN bPiggyBack);
IN PRTMP_ADAPTER pAd,
IN BOOLEAN bPiggyBack);
VOID MacTableReset( VOID MacTableReset(IN PRTMP_ADAPTER pAd);
IN PRTMP_ADAPTER pAd);
MAC_TABLE_ENTRY *MacTableInsertEntry( MAC_TABLE_ENTRY *MacTableInsertEntry(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, IN PUCHAR pAddr,
IN PUCHAR pAddr, IN UCHAR apidx, IN BOOLEAN CleanAll);
IN UCHAR apidx,
IN BOOLEAN CleanAll);
BOOLEAN MacTableDeleteEntry( BOOLEAN MacTableDeleteEntry(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, IN USHORT wcid, IN PUCHAR pAddr);
IN USHORT wcid,
IN PUCHAR pAddr);
MAC_TABLE_ENTRY *MacTableLookup( MAC_TABLE_ENTRY *MacTableLookup(IN PRTMP_ADAPTER pAd, IN PUCHAR pAddr);
IN PRTMP_ADAPTER pAd,
IN PUCHAR pAddr);
#endif // __AP_H__
#endif // __AP_H__

View File

@@ -43,7 +43,6 @@
#include "../rtmp_iface.h" #include "../rtmp_iface.h"
#include "../rtmp_dot11.h" #include "../rtmp_dot11.h"
// //
// Device ID & Vendor ID related definitions, // Device ID & Vendor ID related definitions,
// NOTE: you should not add the new VendorID/DeviceID here unless you not sure it belongs to what chip. // NOTE: you should not add the new VendorID/DeviceID here unless you not sure it belongs to what chip.
@@ -61,10 +60,6 @@
#define PCI_CLASS_BRIDGE_PCI 0x0604 #define PCI_CLASS_BRIDGE_PCI 0x0604
#endif #endif
#define TXINFO_SIZE 0 #define TXINFO_SIZE 0
#define RTMP_PKT_TAIL_PADDING 0 #define RTMP_PKT_TAIL_PADDING 0
#define fRTMP_ADAPTER_NEED_STOP_TX 0 #define fRTMP_ADAPTER_NEED_STOP_TX 0
@@ -72,86 +67,83 @@
#define AUX_CTRL 0x10c #define AUX_CTRL 0x10c
// //
// TX descriptor format, Tx ring, Mgmt Ring // TX descriptor format, Tx ring, Mgmt Ring
// //
typedef struct PACKED _TXD_STRUC { typedef struct PACKED _TXD_STRUC {
// Word 0 // Word 0
UINT32 SDPtr0; UINT32 SDPtr0;
// Word 1 // Word 1
UINT32 SDLen1:14; UINT32 SDLen1:14;
UINT32 LastSec1:1; UINT32 LastSec1:1;
UINT32 Burst:1; UINT32 Burst:1;
UINT32 SDLen0:14; UINT32 SDLen0:14;
UINT32 LastSec0:1; UINT32 LastSec0:1;
UINT32 DMADONE:1; UINT32 DMADONE:1;
//Word2 //Word2
UINT32 SDPtr1; UINT32 SDPtr1;
//Word3 //Word3
UINT32 rsv2:24; UINT32 rsv2:24;
UINT32 WIV:1; // Wireless Info Valid. 1 if Driver already fill WI, o if DMA needs to copy WI to correctposition UINT32 WIV:1; // Wireless Info Valid. 1 if Driver already fill WI, o if DMA needs to copy WI to correctposition
UINT32 QSEL:2; // select on-chip FIFO ID for 2nd-stage output scheduler.0:MGMT, 1:HCCA 2:EDCA UINT32 QSEL:2; // select on-chip FIFO ID for 2nd-stage output scheduler.0:MGMT, 1:HCCA 2:EDCA
UINT32 rsv:2; UINT32 rsv:2;
UINT32 TCO:1; // UINT32 TCO:1; //
UINT32 UCO:1; // UINT32 UCO:1; //
UINT32 ICO:1; // UINT32 ICO:1; //
} TXD_STRUC, *PTXD_STRUC; } TXD_STRUC, *PTXD_STRUC;
// //
// Rx descriptor format, Rx Ring // Rx descriptor format, Rx Ring
// //
typedef struct PACKED _RXD_STRUC{ typedef struct PACKED _RXD_STRUC {
// Word 0 // Word 0
UINT32 SDP0; UINT32 SDP0;
// Word 1 // Word 1
UINT32 SDL1:14; UINT32 SDL1:14;
UINT32 Rsv:2; UINT32 Rsv:2;
UINT32 SDL0:14; UINT32 SDL0:14;
UINT32 LS0:1; UINT32 LS0:1;
UINT32 DDONE:1; UINT32 DDONE:1;
// Word 2 // Word 2
UINT32 SDP1; UINT32 SDP1;
// Word 3 // Word 3
UINT32 BA:1; UINT32 BA:1;
UINT32 DATA:1; UINT32 DATA:1;
UINT32 NULLDATA:1; UINT32 NULLDATA:1;
UINT32 FRAG:1; UINT32 FRAG:1;
UINT32 U2M:1; // 1: this RX frame is unicast to me UINT32 U2M:1; // 1: this RX frame is unicast to me
UINT32 Mcast:1; // 1: this is a multicast frame UINT32 Mcast:1; // 1: this is a multicast frame
UINT32 Bcast:1; // 1: this is a broadcast frame UINT32 Bcast:1; // 1: this is a broadcast frame
UINT32 MyBss:1; // 1: this frame belongs to the same BSSID UINT32 MyBss:1; // 1: this frame belongs to the same BSSID
UINT32 Crc:1; // 1: CRC error UINT32 Crc:1; // 1: CRC error
UINT32 CipherErr:2; // 0: decryption okay, 1:ICV error, 2:MIC error, 3:KEY not valid UINT32 CipherErr:2; // 0: decryption okay, 1:ICV error, 2:MIC error, 3:KEY not valid
UINT32 AMSDU:1; // rx with 802.3 header, not 802.11 header. UINT32 AMSDU:1; // rx with 802.3 header, not 802.11 header.
UINT32 HTC:1; UINT32 HTC:1;
UINT32 RSSI:1; UINT32 RSSI:1;
UINT32 L2PAD:1; UINT32 L2PAD:1;
UINT32 AMPDU:1; UINT32 AMPDU:1;
UINT32 Decrypted:1; // this frame is being decrypted. UINT32 Decrypted:1; // this frame is being decrypted.
UINT32 PlcpSignal:1; // To be moved UINT32 PlcpSignal:1; // To be moved
UINT32 PlcpRssil:1;// To be moved UINT32 PlcpRssil:1; // To be moved
UINT32 Rsv1:13; UINT32 Rsv1:13;
} RXD_STRUC, *PRXD_STRUC, RT28XX_RXD_STRUC, *PRT28XX_RXD_STRUC; } RXD_STRUC, *PRXD_STRUC, RT28XX_RXD_STRUC, *PRT28XX_RXD_STRUC;
typedef union _TX_ATTENUATION_CTRL_STRUC { typedef union _TX_ATTENUATION_CTRL_STRUC {
struct struct {
{ ULONG RF_ISOLATION_ENABLE:1;
ULONG RF_ISOLATION_ENABLE:1; ULONG Reserve2:7;
ULONG Reserve2:7; ULONG PCIE_PHY_TX_ATTEN_VALUE:3;
ULONG PCIE_PHY_TX_ATTEN_VALUE:3; ULONG PCIE_PHY_TX_ATTEN_EN:1;
ULONG PCIE_PHY_TX_ATTEN_EN:1; ULONG Reserve1:20;
ULONG Reserve1:20;
} field; } field;
ULONG word; ULONG word;
} TX_ATTENUATION_CTRL_STRUC, *PTX_ATTENUATION_CTRL_STRUC; } TX_ATTENUATION_CTRL_STRUC, *PTX_ATTENUATION_CTRL_STRUC;
/* ----------------- EEPROM Related MACRO ----------------- */ /* ----------------- EEPROM Related MACRO ----------------- */
// 8051 firmware image for RT2860 - base address = 0x4000 // 8051 firmware image for RT2860 - base address = 0x4000
#define FIRMWARE_IMAGE_BASE 0x2000 #define FIRMWARE_IMAGE_BASE 0x2000
#define MAX_FIRMWARE_IMAGE_SIZE 0x2000 // 8kbyte #define MAX_FIRMWARE_IMAGE_SIZE 0x2000 // 8kbyte
/* ----------------- Frimware Related MACRO ----------------- */ /* ----------------- Frimware Related MACRO ----------------- */
#define RTMP_WRITE_FIRMWARE(_pAd, _pFwImage, _FwLen) \ #define RTMP_WRITE_FIRMWARE(_pAd, _pFwImage, _FwLen) \
@@ -175,14 +167,12 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
RTMP_IO_WRITE32(_pAd, H2M_MAILBOX_CSR, 0); \ RTMP_IO_WRITE32(_pAd, H2M_MAILBOX_CSR, 0); \
}while(0) }while(0)
/* ----------------- TX Related MACRO ----------------- */ /* ----------------- TX Related MACRO ----------------- */
#define RTMP_START_DEQUEUE(pAd, QueIdx, irqFlags) do{}while(0) #define RTMP_START_DEQUEUE(pAd, QueIdx, irqFlags) do{}while(0)
#define RTMP_STOP_DEQUEUE(pAd, QueIdx, irqFlags) do{}while(0) #define RTMP_STOP_DEQUEUE(pAd, QueIdx, irqFlags) do{}while(0)
#define RTMP_HAS_ENOUGH_FREE_DESC(pAd, pTxBlk, freeNum, pPacket) \ #define RTMP_HAS_ENOUGH_FREE_DESC(pAd, pTxBlk, freeNum, pPacket) \
((freeNum) >= (ULONG)(pTxBlk->TotalFragNum + RTMP_GET_PACKET_FRAGMENTS(pPacket) + 3)) /* rough estimate we will use 3 more descriptor. */ ((freeNum) >= (ULONG)(pTxBlk->TotalFragNum + RTMP_GET_PACKET_FRAGMENTS(pPacket) + 3)) /* rough estimate we will use 3 more descriptor. */
#define RTMP_RELEASE_DESC_RESOURCE(pAd, QueIdx) \ #define RTMP_RELEASE_DESC_RESOURCE(pAd, QueIdx) \
do{}while(0) do{}while(0)
@@ -190,12 +180,11 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
(((freeNum != (TX_RING_SIZE-1)) && (pAd->TxSwQueue[QueIdx].Number == 0)) || (freeNum<3)) (((freeNum != (TX_RING_SIZE-1)) && (pAd->TxSwQueue[QueIdx].Number == 0)) || (freeNum<3))
//(((freeNum) != (TX_RING_SIZE-1)) && (pAd->TxSwQueue[QueIdx].Number == 1 /*0*/)) //(((freeNum) != (TX_RING_SIZE-1)) && (pAd->TxSwQueue[QueIdx].Number == 1 /*0*/))
#define HAL_KickOutMgmtTx(_pAd, _QueIdx, _pPacket, _pSrcBufVA, _SrcBufLen) \ #define HAL_KickOutMgmtTx(_pAd, _QueIdx, _pPacket, _pSrcBufVA, _SrcBufLen) \
RtmpPCIMgmtKickOut(_pAd, _QueIdx, _pPacket, _pSrcBufVA, _SrcBufLen) RtmpPCIMgmtKickOut(_pAd, _QueIdx, _pPacket, _pSrcBufVA, _SrcBufLen)
#define HAL_WriteSubTxResource(pAd, pTxBlk, bIsLast, pFreeNumber) \ #define HAL_WriteSubTxResource(pAd, pTxBlk, bIsLast, pFreeNumber) \
/* RtmpPCI_WriteSubTxResource(pAd, pTxBlk, bIsLast, pFreeNumber)*/ /* RtmpPCI_WriteSubTxResource(pAd, pTxBlk, bIsLast, pFreeNumber) */
#define HAL_WriteTxResource(pAd, pTxBlk,bIsLast, pFreeNumber) \ #define HAL_WriteTxResource(pAd, pTxBlk,bIsLast, pFreeNumber) \
RtmpPCI_WriteSingleTxResource(pAd, pTxBlk, bIsLast, pFreeNumber) RtmpPCI_WriteSingleTxResource(pAd, pTxBlk, bIsLast, pFreeNumber)
@@ -210,7 +199,7 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
RtmpPCI_FinalWriteTxResource(_pAd, _pTxBlk, _TotalMPDUSize, _FirstTxIdx) RtmpPCI_FinalWriteTxResource(_pAd, _pTxBlk, _TotalMPDUSize, _FirstTxIdx)
#define HAL_LastTxIdx(_pAd, _QueIdx,_LastTxIdx) \ #define HAL_LastTxIdx(_pAd, _QueIdx,_LastTxIdx) \
/*RtmpPCIDataLastTxIdx(_pAd, _QueIdx,_LastTxIdx)*/ /*RtmpPCIDataLastTxIdx(_pAd, _QueIdx,_LastTxIdx) */
#define HAL_KickOutTx(_pAd, _pTxBlk, _QueIdx) \ #define HAL_KickOutTx(_pAd, _pTxBlk, _QueIdx) \
RTMP_IO_WRITE32((_pAd), TX_CTX_IDX0+((_QueIdx)*0x10), (_pAd)->TxRing[(_QueIdx)].TxCpuIdx) RTMP_IO_WRITE32((_pAd), TX_CTX_IDX0+((_QueIdx)*0x10), (_pAd)->TxRing[(_QueIdx)].TxCpuIdx)
@@ -225,17 +214,14 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
: \ : \
(_pAd->TxRing[_QueIdx].TxSwFreeIdx + TX_RING_SIZE - _pAd->TxRing[_QueIdx].TxCpuIdx - 1); (_pAd->TxRing[_QueIdx].TxSwFreeIdx + TX_RING_SIZE - _pAd->TxRing[_QueIdx].TxCpuIdx - 1);
#define GET_MGMTRING_FREENO(_pAd) \ #define GET_MGMTRING_FREENO(_pAd) \
(_pAd->MgmtRing.TxSwFreeIdx > _pAd->MgmtRing.TxCpuIdx) ? \ (_pAd->MgmtRing.TxSwFreeIdx > _pAd->MgmtRing.TxCpuIdx) ? \
(_pAd->MgmtRing.TxSwFreeIdx - _pAd->MgmtRing.TxCpuIdx - 1) \ (_pAd->MgmtRing.TxSwFreeIdx - _pAd->MgmtRing.TxCpuIdx - 1) \
: \ : \
(_pAd->MgmtRing.TxSwFreeIdx + MGMT_RING_SIZE - _pAd->MgmtRing.TxCpuIdx - 1); (_pAd->MgmtRing.TxSwFreeIdx + MGMT_RING_SIZE - _pAd->MgmtRing.TxCpuIdx - 1);
/* ----------------- RX Related MACRO ----------------- */ /* ----------------- RX Related MACRO ----------------- */
/* ----------------- ASIC Related MACRO ----------------- */ /* ----------------- ASIC Related MACRO ----------------- */
// reset MAC of a station entry to 0x000000000000 // reset MAC of a station entry to 0x000000000000
#define RTMP_STA_ENTRY_MAC_RESET(pAd, Wcid) \ #define RTMP_STA_ENTRY_MAC_RESET(pAd, Wcid) \
@@ -272,7 +258,6 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
pAd->SharedKey[apidx][KeyID].CipherAlg, \ pAd->SharedKey[apidx][KeyID].CipherAlg, \
pEntry); } pEntry); }
// Insert the BA bitmap to ASIC for the Wcid entry // Insert the BA bitmap to ASIC for the Wcid entry
#define RTMP_ADD_BA_SESSION_TO_ASIC(_pAd, _Aid, _TID) \ #define RTMP_ADD_BA_SESSION_TO_ASIC(_pAd, _Aid, _TID) \
do{ \ do{ \
@@ -283,9 +268,8 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
RTMP_IO_WRITE32((_pAd), _Offset, _Value);\ RTMP_IO_WRITE32((_pAd), _Offset, _Value);\
}while(0) }while(0)
// Remove the BA bitmap from ASIC for the Wcid entry // Remove the BA bitmap from ASIC for the Wcid entry
// bitmap field starts at 0x10000 in ASIC WCID table // bitmap field starts at 0x10000 in ASIC WCID table
#define RTMP_DEL_BA_SESSION_FROM_ASIC(_pAd, _Wcid, _TID) \ #define RTMP_DEL_BA_SESSION_FROM_ASIC(_pAd, _Wcid, _TID) \
do{ \ do{ \
UINT32 _Value = 0, _Offset; \ UINT32 _Value = 0, _Offset; \
@@ -295,7 +279,6 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
RTMP_IO_WRITE32((_pAd), _Offset, _Value); \ RTMP_IO_WRITE32((_pAd), _Offset, _Value); \
}while(0) }while(0)
/* ----------------- Interface Related MACRO ----------------- */ /* ----------------- Interface Related MACRO ----------------- */
// //
@@ -314,7 +297,6 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
RTMP_SET_FLAG((_pAd), fRTMP_ADAPTER_INTERRUPT_ACTIVE); \ RTMP_SET_FLAG((_pAd), fRTMP_ADAPTER_INTERRUPT_ACTIVE); \
}while(0) }while(0)
#define RTMP_IRQ_INIT(pAd) \ #define RTMP_IRQ_INIT(pAd) \
{ pAd->int_enable_reg = ((DELAYINTMASK) | \ { pAd->int_enable_reg = ((DELAYINTMASK) | \
(RxINT|TxDataInt|TxMgmtInt)) & ~(0x03); \ (RxINT|TxDataInt|TxMgmtInt)) & ~(0x03); \
@@ -326,7 +308,6 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
RTMP_IO_WRITE32(pAd, INT_SOURCE_CSR, 0xffffffff);\ RTMP_IO_WRITE32(pAd, INT_SOURCE_CSR, 0xffffffff);\
RTMP_ASIC_INTERRUPT_ENABLE(pAd); } RTMP_ASIC_INTERRUPT_ENABLE(pAd); }
/* ----------------- MLME Related MACRO ----------------- */ /* ----------------- MLME Related MACRO ----------------- */
#define RTMP_MLME_HANDLER(pAd) MlmeHandler(pAd) #define RTMP_MLME_HANDLER(pAd) MlmeHandler(pAd)
@@ -344,7 +325,6 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
/* ----------------- Power Save Related MACRO ----------------- */ /* ----------------- Power Save Related MACRO ----------------- */
#define RTMP_PS_POLL_ENQUEUE(pAd) EnqueuePsPoll(pAd) #define RTMP_PS_POLL_ENQUEUE(pAd) EnqueuePsPoll(pAd)
// For RTMPPCIePowerLinkCtrlRestore () function // For RTMPPCIePowerLinkCtrlRestore () function
#define RESTORE_HALT 1 #define RESTORE_HALT 1
#define RESTORE_WAKEUP 2 #define RESTORE_WAKEUP 2
@@ -358,7 +338,6 @@ typedef union _TX_ATTENUATION_CTRL_STRUC {
#define CID2MASK 0x00ff0000 #define CID2MASK 0x00ff0000
#define CID3MASK 0xff000000 #define CID3MASK 0xff000000
#define RTMP_STA_FORCE_WAKEUP(pAd, bFromTx) \ #define RTMP_STA_FORCE_WAKEUP(pAd, bFromTx) \
RT28xxPciStaAsicForceWakeup(pAd, bFromTx); RT28xxPciStaAsicForceWakeup(pAd, bFromTx);

View File

@@ -43,13 +43,12 @@
#include "../rtmp_iface.h" #include "../rtmp_iface.h"
#include "../rtmp_dot11.h" #include "../rtmp_dot11.h"
#define USB_CYC_CFG 0x02a4 #define USB_CYC_CFG 0x02a4
#define BEACON_RING_SIZE 2 #define BEACON_RING_SIZE 2
#define MGMTPIPEIDX 0 // EP6 is highest priority #define MGMTPIPEIDX 0 // EP6 is highest priority
#define RTMP_PKT_TAIL_PADDING 11 // 3(max 4 byte padding) + 4 (last packet padding) + 4 (MaxBulkOutsize align padding) #define RTMP_PKT_TAIL_PADDING 11 // 3(max 4 byte padding) + 4 (last packet padding) + 4 (MaxBulkOutsize align padding)
#define fRTMP_ADAPTER_NEED_STOP_TX \ #define fRTMP_ADAPTER_NEED_STOP_TX \
(fRTMP_ADAPTER_NIC_NOT_EXIST | fRTMP_ADAPTER_HALT_IN_PROGRESS | \ (fRTMP_ADAPTER_NIC_NOT_EXIST | fRTMP_ADAPTER_HALT_IN_PROGRESS | \
@@ -62,157 +61,146 @@
#define RXINFO_SIZE 4 #define RXINFO_SIZE 4
#define RT2870_RXDMALEN_FIELD_SIZE 4 #define RT2870_RXDMALEN_FIELD_SIZE 4
typedef struct PACKED _RXINFO_STRUC { typedef struct PACKED _RXINFO_STRUC {
UINT32 BA:1; UINT32 BA:1;
UINT32 DATA:1; UINT32 DATA:1;
UINT32 NULLDATA:1; UINT32 NULLDATA:1;
UINT32 FRAG:1; UINT32 FRAG:1;
UINT32 U2M:1; // 1: this RX frame is unicast to me UINT32 U2M:1; // 1: this RX frame is unicast to me
UINT32 Mcast:1; // 1: this is a multicast frame UINT32 Mcast:1; // 1: this is a multicast frame
UINT32 Bcast:1; // 1: this is a broadcast frame UINT32 Bcast:1; // 1: this is a broadcast frame
UINT32 MyBss:1; // 1: this frame belongs to the same BSSID UINT32 MyBss:1; // 1: this frame belongs to the same BSSID
UINT32 Crc:1; // 1: CRC error UINT32 Crc:1; // 1: CRC error
UINT32 CipherErr:2; // 0: decryption okay, 1:ICV error, 2:MIC error, 3:KEY not valid UINT32 CipherErr:2; // 0: decryption okay, 1:ICV error, 2:MIC error, 3:KEY not valid
UINT32 AMSDU:1; // rx with 802.3 header, not 802.11 header. UINT32 AMSDU:1; // rx with 802.3 header, not 802.11 header.
UINT32 HTC:1; UINT32 HTC:1;
UINT32 RSSI:1; UINT32 RSSI:1;
UINT32 L2PAD:1; UINT32 L2PAD:1;
UINT32 AMPDU:1; // To be moved UINT32 AMPDU:1; // To be moved
UINT32 Decrypted:1; UINT32 Decrypted:1;
UINT32 PlcpRssil:1; UINT32 PlcpRssil:1;
UINT32 CipherAlg:1; UINT32 CipherAlg:1;
UINT32 LastAMSDU:1; UINT32 LastAMSDU:1;
UINT32 PlcpSignal:12; UINT32 PlcpSignal:12;
} RXINFO_STRUC, *PRXINFO_STRUC, RT28XX_RXD_STRUC, *PRT28XX_RXD_STRUC; } RXINFO_STRUC, *PRXINFO_STRUC, RT28XX_RXD_STRUC, *PRT28XX_RXD_STRUC;
// //
// TXINFO // TXINFO
// //
#define TXINFO_SIZE 4 #define TXINFO_SIZE 4
typedef struct _TXINFO_STRUC { typedef struct _TXINFO_STRUC {
// Word 0 // Word 0
UINT32 USBDMATxPktLen:16; //used ONLY in USB bulk Aggregation, Total byte counts of all sub-frame. UINT32 USBDMATxPktLen:16; //used ONLY in USB bulk Aggregation, Total byte counts of all sub-frame.
UINT32 rsv:8; UINT32 rsv:8;
UINT32 WIV:1; // Wireless Info Valid. 1 if Driver already fill WI, o if DMA needs to copy WI to correctposition UINT32 WIV:1; // Wireless Info Valid. 1 if Driver already fill WI, o if DMA needs to copy WI to correctposition
UINT32 QSEL:2; // select on-chip FIFO ID for 2nd-stage output scheduler.0:MGMT, 1:HCCA 2:EDCA UINT32 QSEL:2; // select on-chip FIFO ID for 2nd-stage output scheduler.0:MGMT, 1:HCCA 2:EDCA
UINT32 SwUseLastRound:1; // Software use. UINT32 SwUseLastRound:1; // Software use.
UINT32 rsv2:2; // Software use. UINT32 rsv2:2; // Software use.
UINT32 USBDMANextVLD:1; //used ONLY in USB bulk Aggregation, NextValid UINT32 USBDMANextVLD:1; //used ONLY in USB bulk Aggregation, NextValid
UINT32 USBDMATxburst:1;//used ONLY in USB bulk Aggre. Force USB DMA transmit frame from current selected endpoint UINT32 USBDMATxburst:1; //used ONLY in USB bulk Aggre. Force USB DMA transmit frame from current selected endpoint
} TXINFO_STRUC, *PTXINFO_STRUC; } TXINFO_STRUC, *PTXINFO_STRUC;
// //
// Management ring buffer format // Management ring buffer format
// //
typedef struct _MGMT_STRUC { typedef struct _MGMT_STRUC {
BOOLEAN Valid; BOOLEAN Valid;
PUCHAR pBuffer; PUCHAR pBuffer;
ULONG Length; ULONG Length;
} MGMT_STRUC, *PMGMT_STRUC; } MGMT_STRUC, *PMGMT_STRUC;
//////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////
// The TX_BUFFER structure forms the transmitted USB packet to the device // The TX_BUFFER structure forms the transmitted USB packet to the device
//////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////
typedef struct __TX_BUFFER{ typedef struct __TX_BUFFER {
union{ union {
UCHAR WirelessPacket[TX_BUFFER_NORMSIZE]; UCHAR WirelessPacket[TX_BUFFER_NORMSIZE];
HEADER_802_11 NullFrame; HEADER_802_11 NullFrame;
PSPOLL_FRAME PsPollPacket; PSPOLL_FRAME PsPollPacket;
RTS_FRAME RTSFrame; RTS_FRAME RTSFrame;
}field; } field;
UCHAR Aggregation[4]; //Buffer for save Aggregation size. UCHAR Aggregation[4]; //Buffer for save Aggregation size.
} TX_BUFFER, *PTX_BUFFER; } TX_BUFFER, *PTX_BUFFER;
typedef struct __HTTX_BUFFER{ typedef struct __HTTX_BUFFER {
union{ union {
UCHAR WirelessPacket[MAX_TXBULK_SIZE]; UCHAR WirelessPacket[MAX_TXBULK_SIZE];
HEADER_802_11 NullFrame; HEADER_802_11 NullFrame;
PSPOLL_FRAME PsPollPacket; PSPOLL_FRAME PsPollPacket;
RTS_FRAME RTSFrame; RTS_FRAME RTSFrame;
}field; } field;
UCHAR Aggregation[4]; //Buffer for save Aggregation size. UCHAR Aggregation[4]; //Buffer for save Aggregation size.
} HTTX_BUFFER, *PHTTX_BUFFER; } HTTX_BUFFER, *PHTTX_BUFFER;
// used to track driver-generated write irps
typedef struct _TX_CONTEXT {
PVOID pAd; //Initialized in MiniportInitialize
PURB pUrb; //Initialized in MiniportInitialize
PIRP pIrp; //used to cancel pending bulk out.
//Initialized in MiniportInitialize
PTX_BUFFER TransferBuffer; //Initialized in MiniportInitialize
ULONG BulkOutSize;
UCHAR BulkOutPipeId;
UCHAR SelfIdx;
BOOLEAN InUse;
BOOLEAN bWaitingBulkOut; // at least one packet is in this TxContext, ready for making IRP anytime.
BOOLEAN bFullForBulkOut; // all tx buffer are full , so waiting for tx bulkout.
BOOLEAN IRPPending;
BOOLEAN LastOne;
BOOLEAN bAggregatible;
UCHAR Header_802_3[LENGTH_802_3];
UCHAR Rsv[2];
ULONG DataOffset;
UINT TxRate;
dma_addr_t data_dma; // urb dma on linux
} TX_CONTEXT, *PTX_CONTEXT, **PPTX_CONTEXT;
// used to track driver-generated write irps // used to track driver-generated write irps
typedef struct _TX_CONTEXT typedef struct _HT_TX_CONTEXT {
{ PVOID pAd; //Initialized in MiniportInitialize
PVOID pAd; //Initialized in MiniportInitialize PURB pUrb; //Initialized in MiniportInitialize
PURB pUrb; //Initialized in MiniportInitialize PIRP pIrp; //used to cancel pending bulk out.
PIRP pIrp; //used to cancel pending bulk out. //Initialized in MiniportInitialize
//Initialized in MiniportInitialize PHTTX_BUFFER TransferBuffer; //Initialized in MiniportInitialize
PTX_BUFFER TransferBuffer; //Initialized in MiniportInitialize ULONG BulkOutSize; // Indicate the total bulk-out size in bytes in one bulk-transmission
ULONG BulkOutSize; UCHAR BulkOutPipeId;
UCHAR BulkOutPipeId; BOOLEAN IRPPending;
UCHAR SelfIdx; BOOLEAN LastOne;
BOOLEAN InUse; BOOLEAN bCurWriting;
BOOLEAN bWaitingBulkOut; // at least one packet is in this TxContext, ready for making IRP anytime. BOOLEAN bRingEmpty;
BOOLEAN bFullForBulkOut; // all tx buffer are full , so waiting for tx bulkout. BOOLEAN bCopySavePad;
BOOLEAN IRPPending; UCHAR SavedPad[8];
BOOLEAN LastOne; UCHAR Header_802_3[LENGTH_802_3];
BOOLEAN bAggregatible; ULONG CurWritePosition; // Indicate the buffer offset which packet will be inserted start from.
UCHAR Header_802_3[LENGTH_802_3]; ULONG CurWriteRealPos; // Indicate the buffer offset which packet now are writing to.
UCHAR Rsv[2]; ULONG NextBulkOutPosition; // Indicate the buffer start offset of a bulk-transmission
ULONG DataOffset; ULONG ENextBulkOutPosition; // Indicate the buffer end offset of a bulk-transmission
UINT TxRate; UINT TxRate;
dma_addr_t data_dma; // urb dma on linux dma_addr_t data_dma; // urb dma on linux
} HT_TX_CONTEXT, *PHT_TX_CONTEXT, **PPHT_TX_CONTEXT;
} TX_CONTEXT, *PTX_CONTEXT, **PPTX_CONTEXT;
// used to track driver-generated write irps
typedef struct _HT_TX_CONTEXT
{
PVOID pAd; //Initialized in MiniportInitialize
PURB pUrb; //Initialized in MiniportInitialize
PIRP pIrp; //used to cancel pending bulk out.
//Initialized in MiniportInitialize
PHTTX_BUFFER TransferBuffer; //Initialized in MiniportInitialize
ULONG BulkOutSize; // Indicate the total bulk-out size in bytes in one bulk-transmission
UCHAR BulkOutPipeId;
BOOLEAN IRPPending;
BOOLEAN LastOne;
BOOLEAN bCurWriting;
BOOLEAN bRingEmpty;
BOOLEAN bCopySavePad;
UCHAR SavedPad[8];
UCHAR Header_802_3[LENGTH_802_3];
ULONG CurWritePosition; // Indicate the buffer offset which packet will be inserted start from.
ULONG CurWriteRealPos; // Indicate the buffer offset which packet now are writing to.
ULONG NextBulkOutPosition; // Indicate the buffer start offset of a bulk-transmission
ULONG ENextBulkOutPosition; // Indicate the buffer end offset of a bulk-transmission
UINT TxRate;
dma_addr_t data_dma; // urb dma on linux
} HT_TX_CONTEXT, *PHT_TX_CONTEXT, **PPHT_TX_CONTEXT;
// //
// Structure to keep track of receive packets and buffers to indicate // Structure to keep track of receive packets and buffers to indicate
// receive data to the protocol. // receive data to the protocol.
// //
typedef struct _RX_CONTEXT typedef struct _RX_CONTEXT {
{ PUCHAR TransferBuffer;
PUCHAR TransferBuffer; PVOID pAd;
PVOID pAd; PIRP pIrp; //used to cancel pending bulk in.
PIRP pIrp;//used to cancel pending bulk in. PURB pUrb;
PURB pUrb;
//These 2 Boolean shouldn't both be 1 at the same time. //These 2 Boolean shouldn't both be 1 at the same time.
ULONG BulkInOffset; // number of packets waiting for reordering . ULONG BulkInOffset; // number of packets waiting for reordering .
// BOOLEAN ReorderInUse; // At least one packet in this buffer are in reordering buffer and wait for receive indication // BOOLEAN ReorderInUse; // At least one packet in this buffer are in reordering buffer and wait for receive indication
BOOLEAN bRxHandling; // Notify this packet is being process now. BOOLEAN bRxHandling; // Notify this packet is being process now.
BOOLEAN InUse; // USB Hardware Occupied. Wait for USB HW to put packet. BOOLEAN InUse; // USB Hardware Occupied. Wait for USB HW to put packet.
BOOLEAN Readable; // Receive Complete back. OK for driver to indicate receiving packet. BOOLEAN Readable; // Receive Complete back. OK for driver to indicate receiving packet.
BOOLEAN IRPPending; // TODO: To be removed BOOLEAN IRPPending; // TODO: To be removed
atomic_t IrpLock; atomic_t IrpLock;
NDIS_SPIN_LOCK RxContextLock; NDIS_SPIN_LOCK RxContextLock;
dma_addr_t data_dma; // urb dma on linux dma_addr_t data_dma; // urb dma on linux
} RX_CONTEXT, *PRX_CONTEXT; } RX_CONTEXT, *PRX_CONTEXT;
/****************************************************************************** /******************************************************************************
@@ -221,13 +209,11 @@ typedef struct _RX_CONTEXT
******************************************************************************/ ******************************************************************************/
// 8051 firmware image for usb - use last-half base address = 0x3000 // 8051 firmware image for usb - use last-half base address = 0x3000
#define FIRMWARE_IMAGE_BASE 0x3000 #define FIRMWARE_IMAGE_BASE 0x3000
#define MAX_FIRMWARE_IMAGE_SIZE 0x1000 // 4kbyte #define MAX_FIRMWARE_IMAGE_SIZE 0x1000 // 4kbyte
#define RTMP_WRITE_FIRMWARE(_pAd, _pFwImage, _FwLen) \ #define RTMP_WRITE_FIRMWARE(_pAd, _pFwImage, _FwLen) \
RTUSBFirmwareWrite(_pAd, _pFwImage, _FwLen) RTUSBFirmwareWrite(_pAd, _pFwImage, _FwLen)
/****************************************************************************** /******************************************************************************
USB TX Related MACRO USB TX Related MACRO
@@ -281,7 +267,7 @@ typedef struct _RX_CONTEXT
RtmpUSB_FinalWriteTxResource(pAd, pTxBlk, totalMPDUSize, TxIdx) RtmpUSB_FinalWriteTxResource(pAd, pTxBlk, totalMPDUSize, TxIdx)
#define HAL_LastTxIdx(pAd, QueIdx,TxIdx) \ #define HAL_LastTxIdx(pAd, QueIdx,TxIdx) \
/*RtmpUSBDataLastTxIdx(pAd, QueIdx,TxIdx)*/ /*RtmpUSBDataLastTxIdx(pAd, QueIdx,TxIdx) */
#define HAL_KickOutTx(pAd, pTxBlk, QueIdx) \ #define HAL_KickOutTx(pAd, pTxBlk, QueIdx) \
RtmpUSBDataKickOut(pAd, pTxBlk, QueIdx) RtmpUSBDataKickOut(pAd, pTxBlk, QueIdx)
@@ -292,20 +278,17 @@ typedef struct _RX_CONTEXT
#define HAL_KickOutNullFrameTx(_pAd, _QueIdx, _pNullFrame, _frameLen) \ #define HAL_KickOutNullFrameTx(_pAd, _QueIdx, _pNullFrame, _frameLen) \
RtmpUSBNullFrameKickOut(_pAd, _QueIdx, _pNullFrame, _frameLen) RtmpUSBNullFrameKickOut(_pAd, _QueIdx, _pNullFrame, _frameLen)
#define GET_TXRING_FREENO(_pAd, _QueIdx) (_QueIdx) //(_pAd->TxRing[_QueIdx].TxSwFreeIdx) #define GET_TXRING_FREENO(_pAd, _QueIdx) (_QueIdx) //(_pAd->TxRing[_QueIdx].TxSwFreeIdx)
#define GET_MGMTRING_FREENO(_pAd) (_pAd->MgmtRing.TxSwFreeIdx) #define GET_MGMTRING_FREENO(_pAd) (_pAd->MgmtRing.TxSwFreeIdx)
/* ----------------- RX Related MACRO ----------------- */ /* ----------------- RX Related MACRO ----------------- */
/* /*
* Device Hardware Interface Related MACRO * Device Hardware Interface Related MACRO
*/ */
#define RTMP_IRQ_INIT(pAd) do{}while(0) #define RTMP_IRQ_INIT(pAd) do{}while(0)
#define RTMP_IRQ_ENABLE(pAd) do{}while(0) #define RTMP_IRQ_ENABLE(pAd) do{}while(0)
/* /*
* MLME Related MACRO * MLME Related MACRO
*/ */
@@ -330,7 +313,6 @@ typedef struct _RX_CONTEXT
RTUSBMlmeUp(_pAd); \ RTUSBMlmeUp(_pAd); \
} }
/* /*
* Power Save Related MACRO * Power Save Related MACRO
*/ */

View File

@@ -43,14 +43,12 @@
// //
#define NIC2860_PCI_DEVICE_ID 0x0601 #define NIC2860_PCI_DEVICE_ID 0x0601
#define NIC2860_PCIe_DEVICE_ID 0x0681 #define NIC2860_PCIe_DEVICE_ID 0x0681
#define NIC2760_PCI_DEVICE_ID 0x0701 // 1T/2R Cardbus ??? #define NIC2760_PCI_DEVICE_ID 0x0701 // 1T/2R Cardbus ???
#define NIC2790_PCIe_DEVICE_ID 0x0781 // 1T/2R miniCard #define NIC2790_PCIe_DEVICE_ID 0x0781 // 1T/2R miniCard
#define VEN_AWT_PCIe_DEVICE_ID 0x1059 #define VEN_AWT_PCIe_DEVICE_ID 0x1059
#define VEN_AWT_PCI_VENDOR_ID 0x1A3B #define VEN_AWT_PCI_VENDOR_ID 0x1A3B
#define EDIMAX_PCI_VENDOR_ID 0x1432 #define EDIMAX_PCI_VENDOR_ID 0x1432
#endif //__RT2860_H__ // #endif //__RT2860_H__ //

View File

@@ -40,8 +40,7 @@
#include "../rtmp_type.h" #include "../rtmp_type.h"
#include "mac_usb.h" #include "mac_usb.h"
//#define RTMP_CHIP_NAME "RT2870"
//#define RTMP_CHIP_NAME "RT2870"
#endif // RT2870 // #endif // RT2870 //
#endif //__RT2870_H__ // #endif //__RT2870_H__ //

View File

@@ -39,7 +39,6 @@
#ifdef RT3070 #ifdef RT3070
#ifndef RTMP_USB_SUPPORT #ifndef RTMP_USB_SUPPORT
#error "For RT3070, you should define the compile flag -DRTMP_USB_SUPPORT" #error "For RT3070, you should define the compile flag -DRTMP_USB_SUPPORT"
#endif #endif

View File

@@ -63,9 +63,9 @@
// //
// Device ID & Vendor ID, these values should match EEPROM value // Device ID & Vendor ID, these values should match EEPROM value
// //
#define NIC3090_PCIe_DEVICE_ID 0x3090 // 1T/1R miniCard #define NIC3090_PCIe_DEVICE_ID 0x3090 // 1T/1R miniCard
#define NIC3091_PCIe_DEVICE_ID 0x3091 // 1T/2R miniCard #define NIC3091_PCIe_DEVICE_ID 0x3091 // 1T/2R miniCard
#define NIC3092_PCIe_DEVICE_ID 0x3092 // 2T/2R miniCard #define NIC3092_PCIe_DEVICE_ID 0x3092 // 2T/2R miniCard
#endif // RT3090 // #endif // RT3090 //

View File

@@ -39,7 +39,6 @@
#ifdef RT30xx #ifdef RT30xx
extern REG_PAIR RT30xx_RFRegTable[]; extern REG_PAIR RT30xx_RFRegTable[];
extern UCHAR NUM_RF_REG_PARMS; extern UCHAR NUM_RF_REG_PARMS;

File diff suppressed because it is too large Load Diff

View File

@@ -38,7 +38,6 @@
#ifndef __RTMP_PHY_H__ #ifndef __RTMP_PHY_H__
#define __RTMP_PHY_H__ #define __RTMP_PHY_H__
/* /*
RF sections RF sections
*/ */
@@ -75,31 +74,30 @@
#define RF_R30 30 #define RF_R30 30
#define RF_R31 31 #define RF_R31 31
// value domain of pAd->RfIcType // value domain of pAd->RfIcType
#define RFIC_2820 1 // 2.4G 2T3R #define RFIC_2820 1 // 2.4G 2T3R
#define RFIC_2850 2 // 2.4G/5G 2T3R #define RFIC_2850 2 // 2.4G/5G 2T3R
#define RFIC_2720 3 // 2.4G 1T2R #define RFIC_2720 3 // 2.4G 1T2R
#define RFIC_2750 4 // 2.4G/5G 1T2R #define RFIC_2750 4 // 2.4G/5G 1T2R
#define RFIC_3020 5 // 2.4G 1T1R #define RFIC_3020 5 // 2.4G 1T1R
#define RFIC_2020 6 // 2.4G B/G #define RFIC_2020 6 // 2.4G B/G
#define RFIC_3021 7 // 2.4G 1T2R #define RFIC_3021 7 // 2.4G 1T2R
#define RFIC_3022 8 // 2.4G 2T2R #define RFIC_3022 8 // 2.4G 2T2R
#define RFIC_3052 9 // 2.4G/5G 2T2R #define RFIC_3052 9 // 2.4G/5G 2T2R
/* /*
BBP sections BBP sections
*/ */
#define BBP_R0 0 // version #define BBP_R0 0 // version
#define BBP_R1 1 // TSSI #define BBP_R1 1 // TSSI
#define BBP_R2 2 // TX configure #define BBP_R2 2 // TX configure
#define BBP_R3 3 #define BBP_R3 3
#define BBP_R4 4 #define BBP_R4 4
#define BBP_R5 5 #define BBP_R5 5
#define BBP_R6 6 #define BBP_R6 6
#define BBP_R14 14 // RX configure #define BBP_R14 14 // RX configure
#define BBP_R16 16 #define BBP_R16 16
#define BBP_R17 17 // RX sensibility #define BBP_R17 17 // RX sensibility
#define BBP_R18 18 #define BBP_R18 18
#define BBP_R21 21 #define BBP_R21 21
#define BBP_R22 22 #define BBP_R22 22
@@ -108,12 +106,12 @@
#define BBP_R26 26 #define BBP_R26 26
#define BBP_R27 27 #define BBP_R27 27
#define BBP_R31 31 #define BBP_R31 31
#define BBP_R49 49 //TSSI #define BBP_R49 49 //TSSI
#define BBP_R50 50 #define BBP_R50 50
#define BBP_R51 51 #define BBP_R51 51
#define BBP_R52 52 #define BBP_R52 52
#define BBP_R55 55 #define BBP_R55 55
#define BBP_R62 62 // Rx SQ0 Threshold HIGH #define BBP_R62 62 // Rx SQ0 Threshold HIGH
#define BBP_R63 63 #define BBP_R63 63
#define BBP_R64 64 #define BBP_R64 64
#define BBP_R65 65 #define BBP_R65 65
@@ -121,7 +119,7 @@
#define BBP_R67 67 #define BBP_R67 67
#define BBP_R68 68 #define BBP_R68 68
#define BBP_R69 69 #define BBP_R69 69
#define BBP_R70 70 // Rx AGC SQ CCK Xcorr threshold #define BBP_R70 70 // Rx AGC SQ CCK Xcorr threshold
#define BBP_R73 73 #define BBP_R73 73
#define BBP_R75 75 #define BBP_R75 75
#define BBP_R77 77 #define BBP_R77 77
@@ -135,7 +133,7 @@
#define BBP_R86 86 #define BBP_R86 86
#define BBP_R91 91 #define BBP_R91 91
#define BBP_R92 92 #define BBP_R92 92
#define BBP_R94 94 // Tx Gain Control #define BBP_R94 94 // Tx Gain Control
#define BBP_R103 103 #define BBP_R103 103
#define BBP_R105 105 #define BBP_R105 105
#define BBP_R106 106 #define BBP_R106 106
@@ -151,16 +149,16 @@
#define BBP_R122 122 #define BBP_R122 122
#define BBP_R123 123 #define BBP_R123 123
#ifdef RT30xx #ifdef RT30xx
#define BBP_R138 138 // add by johnli, RF power sequence setup, ADC dynamic on/off control #define BBP_R138 138 // add by johnli, RF power sequence setup, ADC dynamic on/off control
#endif // RT30xx // #endif // RT30xx //
#define BBPR94_DEFAULT 0x06 // Add 1 value will gain 1db #define BBPR94_DEFAULT 0x06 // Add 1 value will gain 1db
// //
// BBP & RF are using indirect access. Before write any value into it. // BBP & RF are using indirect access. Before write any value into it.
// We have to make sure there is no outstanding command pending via checking busy bit. // We have to make sure there is no outstanding command pending via checking busy bit.
// //
#define MAX_BUSY_COUNT 100 // Number of retry before failing access BBP & RF indirect register #define MAX_BUSY_COUNT 100 // Number of retry before failing access BBP & RF indirect register
//#define PHY_TR_SWITCH_TIME 5 // usec //#define PHY_TR_SWITCH_TIME 5 // usec
@@ -416,7 +414,6 @@
} \ } \
}while(0) }while(0)
/* /*
This marco used for the BBP write operation which didn't need via MCU. This marco used for the BBP write operation which didn't need via MCU.
*/ */
@@ -539,7 +536,6 @@
RTMP_IO_WRITE32(_pAd, 0x1210, _macData); \ RTMP_IO_WRITE32(_pAd, 0x1210, _macData); \
}while(0) }while(0)
#define RTMP_ASIC_MMPS_ENABLE(_pAd) \ #define RTMP_ASIC_MMPS_ENABLE(_pAd) \
do{ \ do{ \
UINT32 _macData; \ UINT32 _macData; \

View File

@@ -41,7 +41,6 @@
#include "rtmp_type.h" #include "rtmp_type.h"
#include "rtmp_def.h" #include "rtmp_def.h"
#define ODOR 0 #define ODOR 0
#define IDOR 1 #define IDOR 1
#define BOTH 2 #define BOTH 2
@@ -53,28 +52,27 @@
typedef struct _CH_DESP { typedef struct _CH_DESP {
UCHAR FirstChannel; UCHAR FirstChannel;
UCHAR NumOfCh; UCHAR NumOfCh;
CHAR MaxTxPwr; // dBm CHAR MaxTxPwr; // dBm
UCHAR Geography; // 0:out door, 1:in door, 2:both UCHAR Geography; // 0:out door, 1:in door, 2:both
BOOLEAN DfsReq; // Dfs require, 0: No, 1: yes. BOOLEAN DfsReq; // Dfs require, 0: No, 1: yes.
} CH_DESP, *PCH_DESP; } CH_DESP, *PCH_DESP;
typedef struct _CH_REGION { typedef struct _CH_REGION {
UCHAR CountReg[3]; UCHAR CountReg[3];
UCHAR DfsType; // 0: CE, 1: FCC, 2: JAP, 3:JAP_W53, JAP_W56 UCHAR DfsType; // 0: CE, 1: FCC, 2: JAP, 3:JAP_W53, JAP_W56
CH_DESP ChDesp[10]; CH_DESP ChDesp[10];
} CH_REGION, *PCH_REGION; } CH_REGION, *PCH_REGION;
extern CH_REGION ChRegion[]; extern CH_REGION ChRegion[];
typedef struct _CH_FREQ_MAP_{ typedef struct _CH_FREQ_MAP_ {
UINT16 channel; UINT16 channel;
UINT16 freqKHz; UINT16 freqKHz;
}CH_FREQ_MAP; } CH_FREQ_MAP;
extern CH_FREQ_MAP CH_HZ_ID_MAP[]; extern CH_FREQ_MAP CH_HZ_ID_MAP[];
extern int CH_HZ_ID_MAP_NUM; extern int CH_HZ_ID_MAP_NUM;
#define MAP_CHANNEL_ID_TO_KHZ(_ch, _khz) \ #define MAP_CHANNEL_ID_TO_KHZ(_ch, _khz) \
do{ \ do{ \
int _chIdx; \ int _chIdx; \
@@ -105,24 +103,15 @@ extern int CH_HZ_ID_MAP_NUM;
(_ch) = 1; \ (_ch) = 1; \
}while(0) }while(0)
VOID BuildChannelListEx(IN PRTMP_ADAPTER pAd);
VOID BuildChannelListEx( VOID BuildBeaconChList(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd); OUT PUCHAR pBuf, OUT PULONG pBufLen);
VOID BuildBeaconChList( VOID N_ChannelCheck(IN PRTMP_ADAPTER pAd);
IN PRTMP_ADAPTER pAd,
OUT PUCHAR pBuf,
OUT PULONG pBufLen);
VOID N_ChannelCheck( VOID N_SetCenCh(IN PRTMP_ADAPTER pAd);
IN PRTMP_ADAPTER pAd);
VOID N_SetCenCh( UINT8 GetCuntryMaxTxPwr(IN PRTMP_ADAPTER pAd, IN UINT8 channel);
IN PRTMP_ADAPTER pAd);
UINT8 GetCuntryMaxTxPwr(
IN PRTMP_ADAPTER pAd,
IN UINT8 channel);
#endif // __CHLIST_H__ #endif // __CHLIST_H__

View File

@@ -39,23 +39,18 @@
#ifndef __ACTION_H__ #ifndef __ACTION_H__
#define __ACTION_H__ #define __ACTION_H__
typedef struct PACKED __HT_INFO_OCTET typedef struct PACKED __HT_INFO_OCTET {
{ UCHAR Request:1;
UCHAR Request:1; UCHAR Forty_MHz_Intolerant:1;
UCHAR Forty_MHz_Intolerant:1; UCHAR STA_Channel_Width:1;
UCHAR STA_Channel_Width:1; UCHAR Reserved:5;
UCHAR Reserved:5;
} HT_INFORMATION_OCTET; } HT_INFORMATION_OCTET;
typedef struct PACKED __FRAME_HT_INFO {
typedef struct PACKED __FRAME_HT_INFO HEADER_802_11 Hdr;
{ UCHAR Category;
HEADER_802_11 Hdr; UCHAR Action;
UCHAR Category; HT_INFORMATION_OCTET HT_Info;
UCHAR Action; } FRAME_HT_INFO, *PFRAME_HT_INFO;
HT_INFORMATION_OCTET HT_Info;
} FRAME_HT_INFO, *PFRAME_HT_INFO;
#endif /* __ACTION_H__ */ #endif /* __ACTION_H__ */

View File

@@ -48,24 +48,18 @@
#ifdef SHA1_SUPPORT #ifdef SHA1_SUPPORT
#define HMAC_SHA1_SUPPORT #define HMAC_SHA1_SUPPORT
VOID HMAC_SHA1 ( VOID HMAC_SHA1(IN const UINT8 Key[],
IN const UINT8 Key[], IN UINT KeyLen,
IN UINT KeyLen, IN const UINT8 Message[],
IN const UINT8 Message[], IN UINT MessageLen, OUT UINT8 MAC[], IN UINT MACLen);
IN UINT MessageLen,
OUT UINT8 MAC[],
IN UINT MACLen);
#endif /* SHA1_SUPPORT */ #endif /* SHA1_SUPPORT */
#ifdef MD5_SUPPORT #ifdef MD5_SUPPORT
#define HMAC_MD5_SUPPORT #define HMAC_MD5_SUPPORT
VOID HMAC_MD5 ( VOID HMAC_MD5(IN const UINT8 Key[],
IN const UINT8 Key[], IN UINT KeyLen,
IN UINT KeyLen, IN const UINT8 Message[],
IN const UINT8 Message[], IN UINT MessageLen, OUT UINT8 MAC[], IN UINT MACLen);
IN UINT MessageLen,
OUT UINT8 MAC[],
IN UINT MACLen);
#endif /* MD5_SUPPORT */ #endif /* MD5_SUPPORT */
#endif /* __CRYPT_HMAC_H__ */ #endif /* __CRYPT_HMAC_H__ */

View File

@@ -51,30 +51,22 @@
#define MD5_SUPPORT #define MD5_SUPPORT
#ifdef MD5_SUPPORT #ifdef MD5_SUPPORT
#define MD5_BLOCK_SIZE 64 /* 512 bits = 64 bytes */ #define MD5_BLOCK_SIZE 64 /* 512 bits = 64 bytes */
#define MD5_DIGEST_SIZE 16 /* 128 bits = 16 bytes */ #define MD5_DIGEST_SIZE 16 /* 128 bits = 16 bytes */
typedef struct { typedef struct {
UINT32 HashValue[4]; UINT32 HashValue[4];
UINT64 MessageLen; UINT64 MessageLen;
UINT8 Block[MD5_BLOCK_SIZE]; UINT8 Block[MD5_BLOCK_SIZE];
UINT BlockLen; UINT BlockLen;
} MD5_CTX_STRUC, *PMD5_CTX_STRUC; } MD5_CTX_STRUC, *PMD5_CTX_STRUC;
VOID MD5_Init ( VOID MD5_Init(IN MD5_CTX_STRUC * pMD5_CTX);
IN MD5_CTX_STRUC *pMD5_CTX); VOID MD5_Hash(IN MD5_CTX_STRUC * pMD5_CTX);
VOID MD5_Hash ( VOID MD5_Append(IN MD5_CTX_STRUC * pMD5_CTX,
IN MD5_CTX_STRUC *pMD5_CTX); IN const UINT8 Message[], IN UINT MessageLen);
VOID MD5_Append ( VOID MD5_End(IN MD5_CTX_STRUC * pMD5_CTX, OUT UINT8 DigestMessage[]);
IN MD5_CTX_STRUC *pMD5_CTX, VOID RT_MD5(IN const UINT8 Message[],
IN const UINT8 Message[], IN UINT MessageLen, OUT UINT8 DigestMessage[]);
IN UINT MessageLen);
VOID MD5_End (
IN MD5_CTX_STRUC *pMD5_CTX,
OUT UINT8 DigestMessage[]);
VOID RT_MD5 (
IN const UINT8 Message[],
IN UINT MessageLen,
OUT UINT8 DigestMessage[]);
#endif /* MD5_SUPPORT */ #endif /* MD5_SUPPORT */
#endif /* __CRYPT_MD5_H__ */ #endif /* __CRYPT_MD5_H__ */

View File

@@ -52,30 +52,22 @@
#define SHA1_SUPPORT #define SHA1_SUPPORT
#ifdef SHA1_SUPPORT #ifdef SHA1_SUPPORT
#define SHA1_BLOCK_SIZE 64 /* 512 bits = 64 bytes */ #define SHA1_BLOCK_SIZE 64 /* 512 bits = 64 bytes */
#define SHA1_DIGEST_SIZE 20 /* 160 bits = 20 bytes */ #define SHA1_DIGEST_SIZE 20 /* 160 bits = 20 bytes */
typedef struct _SHA1_CTX_STRUC { typedef struct _SHA1_CTX_STRUC {
UINT32 HashValue[5]; /* 5 = (SHA1_DIGEST_SIZE / 32) */ UINT32 HashValue[5]; /* 5 = (SHA1_DIGEST_SIZE / 32) */
UINT64 MessageLen; /* total size */ UINT64 MessageLen; /* total size */
UINT8 Block[SHA1_BLOCK_SIZE]; UINT8 Block[SHA1_BLOCK_SIZE];
UINT BlockLen; UINT BlockLen;
} SHA1_CTX_STRUC, *PSHA1_CTX_STRUC; } SHA1_CTX_STRUC, *PSHA1_CTX_STRUC;
VOID RT_SHA1_Init ( VOID RT_SHA1_Init(IN SHA1_CTX_STRUC * pSHA_CTX);
IN SHA1_CTX_STRUC *pSHA_CTX); VOID SHA1_Hash(IN SHA1_CTX_STRUC * pSHA_CTX);
VOID SHA1_Hash ( VOID SHA1_Append(IN SHA1_CTX_STRUC * pSHA_CTX,
IN SHA1_CTX_STRUC *pSHA_CTX); IN const UINT8 Message[], IN UINT MessageLen);
VOID SHA1_Append ( VOID SHA1_End(IN SHA1_CTX_STRUC * pSHA_CTX, OUT UINT8 DigestMessage[]);
IN SHA1_CTX_STRUC *pSHA_CTX, VOID RT_SHA1(IN const UINT8 Message[],
IN const UINT8 Message[], IN UINT MessageLen, OUT UINT8 DigestMessage[]);
IN UINT MessageLen);
VOID SHA1_End (
IN SHA1_CTX_STRUC *pSHA_CTX,
OUT UINT8 DigestMessage[]);
VOID RT_SHA1 (
IN const UINT8 Message[],
IN UINT MessageLen,
OUT UINT8 DigestMessage[]);
#endif /* SHA1_SUPPORT */ #endif /* SHA1_SUPPORT */
#endif /* __CRYPT_SHA2_H__ */ #endif /* __CRYPT_SHA2_H__ */

View File

@@ -36,6 +36,4 @@
Fonchi 03-12-2007 created Fonchi 03-12-2007 created
*/ */
BOOLEAN RadarChannelCheck( BOOLEAN RadarChannelCheck(IN PRTMP_ADAPTER pAd, IN UCHAR Ch);
IN PRTMP_ADAPTER pAd,
IN UCHAR Ch);

View File

@@ -24,7 +24,6 @@
* * * *
************************************************************************* *************************************************************************
Module Name: Module Name:
eeprom.h eeprom.h
@@ -38,41 +37,31 @@
#ifndef __EEPROM_H__ #ifndef __EEPROM_H__
#define __EEPROM_H__ #define __EEPROM_H__
#ifdef RTMP_PCI_SUPPORT #ifdef RTMP_PCI_SUPPORT
/************************************************************************* /*************************************************************************
* Public function declarations for prom-based chipset * Public function declarations for prom-based chipset
************************************************************************/ ************************************************************************/
int rtmp_ee_prom_read16( int rtmp_ee_prom_read16(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, IN USHORT Offset, OUT USHORT * pValue);
IN USHORT Offset,
OUT USHORT *pValue);
#endif // RTMP_PCI_SUPPORT // #endif // RTMP_PCI_SUPPORT //
#ifdef RTMP_USB_SUPPORT #ifdef RTMP_USB_SUPPORT
/************************************************************************* /*************************************************************************
* Public function declarations for usb-based prom chipset * Public function declarations for usb-based prom chipset
************************************************************************/ ************************************************************************/
NTSTATUS RTUSBReadEEPROM16( NTSTATUS RTUSBReadEEPROM16(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, IN USHORT offset, OUT PUSHORT pData);
IN USHORT offset,
OUT PUSHORT pData);
#endif // RTMP_USB_SUPPORT // #endif // RTMP_USB_SUPPORT //
#ifdef RT30xx #ifdef RT30xx
#ifdef RTMP_EFUSE_SUPPORT #ifdef RTMP_EFUSE_SUPPORT
int rtmp_ee_efuse_read16( int rtmp_ee_efuse_read16(IN RTMP_ADAPTER * pAd,
IN RTMP_ADAPTER *pAd, IN USHORT Offset, OUT USHORT * pValue);
IN USHORT Offset,
OUT USHORT *pValue);
#endif // RTMP_EFUSE_SUPPORT // #endif // RTMP_EFUSE_SUPPORT //
#endif // RT30xx // #endif // RT30xx //
/************************************************************************* /*************************************************************************
* Public function declarations for prom operation callback functions setting * Public function declarations for prom operation callback functions setting
************************************************************************/ ************************************************************************/
INT RtmpChipOpsEepromHook( INT RtmpChipOpsEepromHook(IN RTMP_ADAPTER * pAd, IN INT infType);
IN RTMP_ADAPTER *pAd,
IN INT infType);
#endif // __EEPROM_H__ // #endif // __EEPROM_H__ //

View File

@@ -31,7 +31,6 @@
#define RT28XX_HANDLE_DEV_ASSIGN(handle, dev_p) \ #define RT28XX_HANDLE_DEV_ASSIGN(handle, dev_p) \
((POS_COOKIE)handle)->pci_dev = dev_p; ((POS_COOKIE)handle)->pci_dev = dev_p;
#ifdef LINUX #ifdef LINUX
// set driver data // set driver data
#define RT28XX_DRVDATA_SET(_a) pci_set_drvdata(_a, net_dev); #define RT28XX_DRVDATA_SET(_a) pci_set_drvdata(_a, net_dev);
@@ -64,7 +63,6 @@
pci_resource_len(dev_p, 0)); } \ pci_resource_len(dev_p, 0)); } \
if (net_dev->irq) pci_release_regions(dev_p); } if (net_dev->irq) pci_release_regions(dev_p); }
#define PCI_REG_READ_WORD(pci_dev, offset, Configuration) \ #define PCI_REG_READ_WORD(pci_dev, offset, Configuration) \
if (pci_read_config_word(pci_dev, offset, &reg16) == 0) \ if (pci_read_config_word(pci_dev, offset, &reg16) == 0) \
Configuration = le2cpu16(reg16); \ Configuration = le2cpu16(reg16); \
@@ -77,5 +75,4 @@
#endif // LINUX // #endif // LINUX //
#endif // __RTMP_PCI_H__ // #endif // __RTMP_PCI_H__ //

View File

@@ -28,28 +28,24 @@
#ifndef __RTMP_USB_H__ #ifndef __RTMP_USB_H__
#define __RTMP_USB_H__ #define __RTMP_USB_H__
#include "../rtusb_io.h" #include "../rtusb_io.h"
#ifdef LINUX #ifdef LINUX
#include <linux/usb.h> #include <linux/usb.h>
typedef struct usb_device * PUSB_DEV; typedef struct usb_device *PUSB_DEV;
typedef struct urb *purbb_t; typedef struct urb *purbb_t;
typedef struct usb_ctrlrequest devctrlrequest; typedef struct usb_ctrlrequest devctrlrequest;
#endif // LINUX // #endif // LINUX //
extern UCHAR EpToQueue[6]; extern UCHAR EpToQueue[6];
#define RXBULKAGGRE_ZISE 12 #define RXBULKAGGRE_ZISE 12
#define MAX_TXBULK_LIMIT (LOCAL_TXBUF_SIZE*(BULKAGGRE_ZISE-1)) #define MAX_TXBULK_LIMIT (LOCAL_TXBUF_SIZE*(BULKAGGRE_ZISE-1))
#define MAX_TXBULK_SIZE (LOCAL_TXBUF_SIZE*BULKAGGRE_ZISE) #define MAX_TXBULK_SIZE (LOCAL_TXBUF_SIZE*BULKAGGRE_ZISE)
#define MAX_RXBULK_SIZE (LOCAL_TXBUF_SIZE*RXBULKAGGRE_ZISE) #define MAX_RXBULK_SIZE (LOCAL_TXBUF_SIZE*RXBULKAGGRE_ZISE)
#define MAX_MLME_HANDLER_MEMORY 20 #define MAX_MLME_HANDLER_MEMORY 20
// Flags for Bulkflags control for bulk out data // Flags for Bulkflags control for bulk out data
// //
#define fRTUSB_BULK_OUT_DATA_NULL 0x00000001 #define fRTUSB_BULK_OUT_DATA_NULL 0x00000001
@@ -69,7 +65,6 @@ extern UCHAR EpToQueue[6];
// TODO:move to ./ate/include/iface/ate_usb.h // TODO:move to ./ate/include/iface/ate_usb.h
#define FREE_HTTX_RING(_pCookie, _pipeId, _txContext) \ #define FREE_HTTX_RING(_pCookie, _pipeId, _txContext) \
{ \ { \
if ((_txContext)->ENextBulkOutPosition == (_txContext)->CurWritePosition) \ if ((_txContext)->ENextBulkOutPosition == (_txContext)->CurWritePosition) \
@@ -79,8 +74,6 @@ extern UCHAR EpToQueue[6];
/*NdisInterlockedDecrement(&(_p)->TxCount); */\ /*NdisInterlockedDecrement(&(_p)->TxCount); */\
} }
/****************************************************************************** /******************************************************************************
USB Bulk operation related definitions USB Bulk operation related definitions
@@ -100,7 +93,7 @@ extern UCHAR EpToQueue[6];
// unlink urb // unlink urb
#define RTUSB_UNLINK_URB(pUrb) usb_kill_urb(pUrb) #define RTUSB_UNLINK_URB(pUrb) usb_kill_urb(pUrb)
extern void dump_urb(struct urb* purb); extern void dump_urb(struct urb *purb);
#define InterlockedIncrement atomic_inc #define InterlockedIncrement atomic_inc
#define NdisInterlockedIncrement atomic_inc #define NdisInterlockedIncrement atomic_inc
@@ -110,12 +103,8 @@ extern void dump_urb(struct urb* purb);
#endif // LINUX // #endif // LINUX //
#define NT_SUCCESS(status) (((status) >=0) ? (TRUE):(FALSE)) #define NT_SUCCESS(status) (((status) >=0) ? (TRUE):(FALSE))
#define USBD_TRANSFER_DIRECTION_OUT 0 #define USBD_TRANSFER_DIRECTION_OUT 0
#define USBD_TRANSFER_DIRECTION_IN 0 #define USBD_TRANSFER_DIRECTION_IN 0
#define USBD_SHORT_TRANSFER_OK 0 #define USBD_SHORT_TRANSFER_OK 0
@@ -131,7 +120,6 @@ extern void dump_urb(struct urb* purb);
#define CONTROL_TIMEOUT_JIFFIES ( (100 * OS_HZ) / 1000) #define CONTROL_TIMEOUT_JIFFIES ( (100 * OS_HZ) / 1000)
#define UNLINK_TIMEOUT_MS 3 #define UNLINK_TIMEOUT_MS 3
VOID RTUSBBulkOutDataPacketComplete(purbb_t purb, struct pt_regs *pt_regs); VOID RTUSBBulkOutDataPacketComplete(purbb_t purb, struct pt_regs *pt_regs);
VOID RTUSBBulkOutMLMEPacketComplete(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 RTUSBBulkOutNullFrameComplete(purbb_t pUrb, struct pt_regs *pt_regs);
@@ -139,7 +127,6 @@ VOID RTUSBBulkOutRTSFrameComplete(purbb_t pUrb, struct pt_regs *pt_regs);
VOID RTUSBBulkOutPsPollComplete(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); VOID RTUSBBulkRxComplete(purbb_t pUrb, struct pt_regs *pt_regs);
#ifdef KTHREAD_SUPPORT #ifdef KTHREAD_SUPPORT
#define RTUSBMlmeUp(pAd) \ #define RTUSBMlmeUp(pAd) \
do{ \ do{ \
@@ -196,5 +183,4 @@ VOID RTUSBBulkRxComplete(purbb_t pUrb, struct pt_regs *pt_regs);
#define RTMP_IRQ_REQUEST(net_dev) do{}while(0) #define RTMP_IRQ_REQUEST(net_dev) do{}while(0)
#define RTMP_IRQ_RELEASE(net_dev) do{}while(0) #define RTMP_IRQ_RELEASE(net_dev) do{}while(0)
#endif // __RTMP_USB_H__ // #endif // __RTMP_USB_H__ //

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -68,5 +68,4 @@
#include "igmp_snoop.h" #include "igmp_snoop.h"
#endif // IGMP_SNOOP_SUPPORT // #endif // IGMP_SNOOP_SUPPORT //
#endif // __RT_CONFIG_H__ #endif // __RT_CONFIG_H__

View File

@@ -79,7 +79,6 @@
* Profile related sections * Profile related sections
***********************************************************************************/ ***********************************************************************************/
#ifdef RTMP_MAC_PCI #ifdef RTMP_MAC_PCI
#define STA_PROFILE_PATH "/etc/Wireless/RT2860STA/RT2860STA.dat" #define STA_PROFILE_PATH "/etc/Wireless/RT2860STA/RT2860STA.dat"
#define STA_DRIVER_VERSION "2.1.0.0" #define STA_DRIVER_VERSION "2.1.0.0"
@@ -90,8 +89,7 @@
// RT3070 version: 2.1.1.0 // RT3070 version: 2.1.1.0
#endif // RTMP_MAC_USB // #endif // RTMP_MAC_USB //
extern const struct iw_handler_def rt28xx_iw_handler_def; extern const struct iw_handler_def rt28xx_iw_handler_def;
/*********************************************************************************** /***********************************************************************************
* Compiler related definitions * Compiler related definitions
@@ -103,23 +101,23 @@ extern const struct iw_handler_def rt28xx_iw_handler_def;
#define INOUT #define INOUT
#define NDIS_STATUS INT #define NDIS_STATUS INT
/*********************************************************************************** /***********************************************************************************
* OS Specific definitions and data structures * OS Specific definitions and data structures
***********************************************************************************/ ***********************************************************************************/
typedef struct pci_dev * PPCI_DEV; typedef struct pci_dev *PPCI_DEV;
typedef struct net_device * PNET_DEV; typedef struct net_device *PNET_DEV;
typedef void * PNDIS_PACKET; typedef void *PNDIS_PACKET;
typedef char NDIS_PACKET; typedef char NDIS_PACKET;
typedef PNDIS_PACKET * PPNDIS_PACKET; typedef PNDIS_PACKET *PPNDIS_PACKET;
typedef dma_addr_t NDIS_PHYSICAL_ADDRESS; typedef dma_addr_t NDIS_PHYSICAL_ADDRESS;
typedef dma_addr_t * PNDIS_PHYSICAL_ADDRESS; typedef dma_addr_t *PNDIS_PHYSICAL_ADDRESS;
typedef void * NDIS_HANDLE; typedef void *NDIS_HANDLE;
typedef char * PNDIS_BUFFER; typedef char *PNDIS_BUFFER;
typedef struct pid * RTMP_OS_PID; typedef struct pid *RTMP_OS_PID;
typedef struct semaphore RTMP_OS_SEM; typedef struct semaphore RTMP_OS_SEM;
typedef int (*HARD_START_XMIT_FUNC)(struct sk_buff *skb, struct net_device *net_dev); typedef int (*HARD_START_XMIT_FUNC) (struct sk_buff * skb,
struct net_device * net_dev);
#ifdef RTMP_MAC_PCI #ifdef RTMP_MAC_PCI
#ifndef PCI_DEVICE #ifndef PCI_DEVICE
@@ -142,11 +140,8 @@ typedef int (*HARD_START_XMIT_FUNC)(struct sk_buff *skb, struct net_device *net_
#define RTMP_DEC_REF(_A) 0 #define RTMP_DEC_REF(_A) 0
#define RTMP_GET_REF(_A) 0 #define RTMP_GET_REF(_A) 0
// This function will be called when query /proc // This function will be called when query /proc
struct iw_statistics *rt28xx_get_wireless_stats( struct iw_statistics *rt28xx_get_wireless_stats(IN struct net_device *net_dev);
IN struct net_device *net_dev);
/*********************************************************************************** /***********************************************************************************
* Network related constant definitions * Network related constant definitions
@@ -178,18 +173,16 @@ struct iw_statistics *rt28xx_get_wireless_stats(
#define STATS_INC_RX_DROPPED(_pAd, _dev) #define STATS_INC_RX_DROPPED(_pAd, _dev)
#define STATS_INC_TX_DROPPED(_pAd, _dev) #define STATS_INC_TX_DROPPED(_pAd, _dev)
/*********************************************************************************** /***********************************************************************************
* Ralink Specific network related constant definitions * Ralink Specific network related constant definitions
***********************************************************************************/ ***********************************************************************************/
#define MIN_NET_DEVICE_FOR_AID 0x00 //0x00~0x3f #define MIN_NET_DEVICE_FOR_AID 0x00 //0x00~0x3f
#define MIN_NET_DEVICE_FOR_MBSSID 0x00 //0x00,0x10,0x20,0x30 #define MIN_NET_DEVICE_FOR_MBSSID 0x00 //0x00,0x10,0x20,0x30
#define MIN_NET_DEVICE_FOR_WDS 0x10 //0x40,0x50,0x60,0x70 #define MIN_NET_DEVICE_FOR_WDS 0x10 //0x40,0x50,0x60,0x70
#define MIN_NET_DEVICE_FOR_APCLI 0x20 #define MIN_NET_DEVICE_FOR_APCLI 0x20
#define MIN_NET_DEVICE_FOR_MESH 0x30 #define MIN_NET_DEVICE_FOR_MESH 0x30
#define MIN_NET_DEVICE_FOR_DLS 0x40 #define MIN_NET_DEVICE_FOR_DLS 0x40
#define NET_DEVICE_REAL_IDX_MASK 0x0f // for each operation mode, we maximum support 15 entities. #define NET_DEVICE_REAL_IDX_MASK 0x0f // for each operation mode, we maximum support 15 entities.
#define NDIS_PACKET_TYPE_DIRECTED 0 #define NDIS_PACKET_TYPE_DIRECTED 0
#define NDIS_PACKET_TYPE_MULTICAST 1 #define NDIS_PACKET_TYPE_MULTICAST 1
@@ -197,36 +190,32 @@ struct iw_statistics *rt28xx_get_wireless_stats(
#define NDIS_PACKET_TYPE_ALL_MULTICAST 3 #define NDIS_PACKET_TYPE_ALL_MULTICAST 3
#define NDIS_PACKET_TYPE_PROMISCUOUS 4 #define NDIS_PACKET_TYPE_PROMISCUOUS 4
/*********************************************************************************** /***********************************************************************************
* OS signaling related constant definitions * OS signaling related constant definitions
***********************************************************************************/ ***********************************************************************************/
/*********************************************************************************** /***********************************************************************************
* OS file operation related data structure definitions * OS file operation related data structure definitions
***********************************************************************************/ ***********************************************************************************/
typedef struct file* RTMP_OS_FD; typedef struct file *RTMP_OS_FD;
typedef struct _RTMP_OS_FS_INFO_ typedef struct _RTMP_OS_FS_INFO_ {
{ int fsuid;
int fsuid; int fsgid;
int fsgid; mm_segment_t fs;
mm_segment_t fs; } RTMP_OS_FS_INFO;
}RTMP_OS_FS_INFO;
#define IS_FILE_OPEN_ERR(_fd) IS_ERR((_fd)) #define IS_FILE_OPEN_ERR(_fd) IS_ERR((_fd))
/*********************************************************************************** /***********************************************************************************
* OS semaphore related data structure and definitions * OS semaphore related data structure and definitions
***********************************************************************************/ ***********************************************************************************/
struct os_lock { struct os_lock {
spinlock_t lock; spinlock_t lock;
unsigned long flags; unsigned long flags;
}; };
typedef spinlock_t NDIS_SPIN_LOCK; typedef spinlock_t NDIS_SPIN_LOCK;
// //
// spin_lock enhanced for Nested spin lock // spin_lock enhanced for Nested spin lock
@@ -239,7 +228,6 @@ typedef spinlock_t NDIS_SPIN_LOCK;
#define NdisFreeSpinLock(lock) \ #define NdisFreeSpinLock(lock) \
do{}while(0) do{}while(0)
#define RTMP_SEM_LOCK(__lock) \ #define RTMP_SEM_LOCK(__lock) \
{ \ { \
spin_lock_bh((spinlock_t *)(__lock)); \ spin_lock_bh((spinlock_t *)(__lock)); \
@@ -250,7 +238,6 @@ typedef spinlock_t NDIS_SPIN_LOCK;
spin_unlock_bh((spinlock_t *)(__lock)); \ spin_unlock_bh((spinlock_t *)(__lock)); \
} }
// sample, use semaphore lock to replace IRQ lock, 2007/11/15 // sample, use semaphore lock to replace IRQ lock, 2007/11/15
#define RTMP_IRQ_LOCK(__lock, __irqflags) \ #define RTMP_IRQ_LOCK(__lock, __irqflags) \
{ \ { \
@@ -343,7 +330,7 @@ do { \
/*********************************************************************************** /***********************************************************************************
* OS Memory Access related data structure and definitions * OS Memory Access related data structure and definitions
***********************************************************************************/ ***********************************************************************************/
#define MEM_ALLOC_FLAG (GFP_ATOMIC) //(GFP_DMA | GFP_ATOMIC) #define MEM_ALLOC_FLAG (GFP_ATOMIC) //(GFP_DMA | GFP_ATOMIC)
#define NdisMoveMemory(Destination, Source, Length) memmove(Destination, Source, Length) #define NdisMoveMemory(Destination, Source, Length) memmove(Destination, Source, Length)
#define NdisCopyMemory(Destination, Source, Length) memcpy(Destination, Source, Length) #define NdisCopyMemory(Destination, Source, Length) memcpy(Destination, Source, Length)
@@ -358,32 +345,29 @@ do { \
#define COPY_MAC_ADDR(Addr1, Addr2) memcpy((Addr1), (Addr2), MAC_ADDR_LEN) #define COPY_MAC_ADDR(Addr1, Addr2) memcpy((Addr1), (Addr2), MAC_ADDR_LEN)
/*********************************************************************************** /***********************************************************************************
* OS task related data structure and definitions * OS task related data structure and definitions
***********************************************************************************/ ***********************************************************************************/
#define RTMP_OS_MGMT_TASK_FLAGS CLONE_VM #define RTMP_OS_MGMT_TASK_FLAGS CLONE_VM
typedef struct pid * THREAD_PID; typedef struct pid *THREAD_PID;
#define THREAD_PID_INIT_VALUE NULL #define THREAD_PID_INIT_VALUE NULL
#define GET_PID(_v) find_get_pid((_v)) #define GET_PID(_v) find_get_pid((_v))
#define GET_PID_NUMBER(_v) pid_nr((_v)) #define GET_PID_NUMBER(_v) pid_nr((_v))
#define CHECK_PID_LEGALITY(_pid) if (pid_nr((_pid)) > 0) #define CHECK_PID_LEGALITY(_pid) if (pid_nr((_pid)) > 0)
#define KILL_THREAD_PID(_A, _B, _C) kill_pid((_A), (_B), (_C)) #define KILL_THREAD_PID(_A, _B, _C) kill_pid((_A), (_B), (_C))
typedef struct tasklet_struct RTMP_NET_TASK_STRUCT; typedef struct tasklet_struct RTMP_NET_TASK_STRUCT;
typedef struct tasklet_struct *PRTMP_NET_TASK_STRUCT; typedef struct tasklet_struct *PRTMP_NET_TASK_STRUCT;
/*********************************************************************************** /***********************************************************************************
* Timer related definitions and data structures. * Timer related definitions and data structures.
**********************************************************************************/ **********************************************************************************/
#define OS_HZ HZ #define OS_HZ HZ
typedef struct timer_list NDIS_MINIPORT_TIMER; typedef struct timer_list NDIS_MINIPORT_TIMER;
typedef struct timer_list RTMP_OS_TIMER; typedef struct timer_list RTMP_OS_TIMER;
typedef void (*TIMER_FUNCTION)(unsigned long); typedef void (*TIMER_FUNCTION) (unsigned long);
#define OS_WAIT(_time) \ #define OS_WAIT(_time) \
{ int _i; \ { int _i; \
@@ -406,26 +390,25 @@ typedef void (*TIMER_FUNCTION)(unsigned long);
#define ONE_TICK 1 #define ONE_TICK 1
static inline void NdisGetSystemUpTime(ULONG *time) static inline void NdisGetSystemUpTime(ULONG * time)
{ {
*time = jiffies; *time = jiffies;
} }
/*********************************************************************************** /***********************************************************************************
* OS specific cookie data structure binding to RTMP_ADAPTER * OS specific cookie data structure binding to RTMP_ADAPTER
***********************************************************************************/ ***********************************************************************************/
struct os_cookie { struct os_cookie {
#ifdef RTMP_MAC_PCI #ifdef RTMP_MAC_PCI
struct pci_dev *pci_dev; struct pci_dev *pci_dev;
struct pci_dev *parent_pci_dev; struct pci_dev *parent_pci_dev;
USHORT DeviceID; USHORT DeviceID;
dma_addr_t pAd_pa; dma_addr_t pAd_pa;
#endif // RTMP_MAC_PCI // #endif // RTMP_MAC_PCI //
#ifdef RTMP_MAC_USB #ifdef RTMP_MAC_USB
struct usb_device *pUsb_Dev; struct usb_device *pUsb_Dev;
#endif // RTMP_MAC_USB // #endif // RTMP_MAC_USB //
RTMP_NET_TASK_STRUCT rx_done_task; RTMP_NET_TASK_STRUCT rx_done_task;
RTMP_NET_TASK_STRUCT mgmt_dma_done_task; RTMP_NET_TASK_STRUCT mgmt_dma_done_task;
@@ -436,21 +419,19 @@ struct os_cookie {
RTMP_NET_TASK_STRUCT tbtt_task; RTMP_NET_TASK_STRUCT tbtt_task;
#ifdef RTMP_MAC_PCI #ifdef RTMP_MAC_PCI
RTMP_NET_TASK_STRUCT fifo_statistic_full_task; RTMP_NET_TASK_STRUCT fifo_statistic_full_task;
#endif // RTMP_MAC_PCI // #endif // RTMP_MAC_PCI //
#ifdef RTMP_MAC_USB #ifdef RTMP_MAC_USB
RTMP_NET_TASK_STRUCT null_frame_complete_task; RTMP_NET_TASK_STRUCT null_frame_complete_task;
RTMP_NET_TASK_STRUCT rts_frame_complete_task; RTMP_NET_TASK_STRUCT rts_frame_complete_task;
RTMP_NET_TASK_STRUCT pspoll_frame_complete_task; RTMP_NET_TASK_STRUCT pspoll_frame_complete_task;
#endif // RTMP_MAC_USB // #endif // RTMP_MAC_USB //
unsigned long apd_pid; //802.1x daemon pid unsigned long apd_pid; //802.1x daemon pid
INT ioctl_if_type; INT ioctl_if_type;
INT ioctl_if; INT ioctl_if;
}; };
typedef struct os_cookie * POS_COOKIE; typedef struct os_cookie *POS_COOKIE;
/*********************************************************************************** /***********************************************************************************
* OS debugging and printing related definitions and data structure * OS debugging and printing related definitions and data structure
@@ -459,7 +440,7 @@ typedef struct os_cookie * POS_COOKIE;
addr[0], addr[1], addr[2], addr[3], addr[4], addr[5] addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]
#ifdef DBG #ifdef DBG
extern ULONG RTDebugLevel; extern ULONG RTDebugLevel;
#define DBGPRINT_RAW(Level, Fmt) \ #define DBGPRINT_RAW(Level, Fmt) \
do{ \ do{ \
@@ -471,7 +452,6 @@ do{ \
#define DBGPRINT(Level, Fmt) DBGPRINT_RAW(Level, Fmt) #define DBGPRINT(Level, Fmt) DBGPRINT_RAW(Level, Fmt)
#define DBGPRINT_ERR(Fmt) \ #define DBGPRINT_ERR(Fmt) \
{ \ { \
printk("ERROR!!! "); \ printk("ERROR!!! "); \
@@ -483,7 +463,6 @@ do{ \
printk Fmt; \ printk Fmt; \
} }
#else #else
#define DBGPRINT(Level, Fmt) #define DBGPRINT(Level, Fmt)
#define DBGPRINT_RAW(Level, Fmt) #define DBGPRINT_RAW(Level, Fmt)
@@ -495,18 +474,18 @@ do{ \
void hex_dump(char *str, unsigned char *pSrcBufVA, unsigned int SrcBufLen); void hex_dump(char *str, unsigned char *pSrcBufVA, unsigned int SrcBufLen);
/********************************************************************************************************* /*********************************************************************************************************
The following code are not revised, temporary put it here. The following code are not revised, temporary put it here.
*********************************************************************************************************/ *********************************************************************************************************/
/*********************************************************************************** /***********************************************************************************
* Device DMA Access related definitions and data structures. * Device DMA Access related definitions and data structures.
**********************************************************************************/ **********************************************************************************/
#ifdef RTMP_MAC_PCI #ifdef RTMP_MAC_PCI
dma_addr_t linux_pci_map_single(void *handle, void *ptr, size_t size, int sd_idx, int direction); dma_addr_t linux_pci_map_single(void *handle, void *ptr, size_t size,
void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size, int direction); int sd_idx, int direction);
void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size,
int direction);
#define PCI_MAP_SINGLE(_handle, _ptr, _size, _sd_idx, _dir) \ #define PCI_MAP_SINGLE(_handle, _ptr, _size, _sd_idx, _dir) \
linux_pci_map_single(_handle, _ptr, _size, _sd_idx, _dir) linux_pci_map_single(_handle, _ptr, _size, _sd_idx, _dir)
@@ -562,8 +541,6 @@ void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size, int
#define NdisMIndicateStatus(_w, _x, _y, _z) #define NdisMIndicateStatus(_w, _x, _y, _z)
/*********************************************************************************** /***********************************************************************************
* Device Register I/O Access related definitions and data structures. * Device Register I/O Access related definitions and data structures.
**********************************************************************************/ **********************************************************************************/
@@ -729,7 +706,6 @@ void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size, int
#define GET_OS_PKT_NEXT(_pkt) \ #define GET_OS_PKT_NEXT(_pkt) \
(RTPKT_TO_OSPKT(_pkt)->next) (RTPKT_TO_OSPKT(_pkt)->next)
#define OS_PKT_CLONED(_pkt) skb_cloned(RTPKT_TO_OSPKT(_pkt)) #define OS_PKT_CLONED(_pkt) skb_cloned(RTPKT_TO_OSPKT(_pkt))
#define OS_NTOHS(_Val) \ #define OS_NTOHS(_Val) \
@@ -783,9 +759,8 @@ void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size, int
#define RTMP_SET_PACKET_MOREDATA(_p, _morebit) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+7] = _morebit) #define RTMP_SET_PACKET_MOREDATA(_p, _morebit) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+7] = _morebit)
#define RTMP_GET_PACKET_MOREDATA(_p) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+7]) #define RTMP_GET_PACKET_MOREDATA(_p) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+7])
// //
// Sepcific Pakcet Type definition // Sepcific Pakcet Type definition
// //
#define RTMP_PACKET_SPECIFIC_CB_OFFSET 11 #define RTMP_PACKET_SPECIFIC_CB_OFFSET 11
@@ -863,13 +838,10 @@ void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size, int
#define RTMP_GET_PACKET_IPV4(_p) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+11] & RTMP_PACKET_SPECIFIC_IPV4) #define RTMP_GET_PACKET_IPV4(_p) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+11] & RTMP_PACKET_SPECIFIC_IPV4)
// If this flag is set, it indicates that this EAPoL frame MUST be clear. // If this flag is set, it indicates that this EAPoL frame MUST be clear.
#define RTMP_SET_PACKET_CLEAR_EAP_FRAME(_p, _flg) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+12] = _flg) #define RTMP_SET_PACKET_CLEAR_EAP_FRAME(_p, _flg) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+12] = _flg)
#define RTMP_GET_PACKET_CLEAR_EAP_FRAME(_p) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+12]) #define RTMP_GET_PACKET_CLEAR_EAP_FRAME(_p) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+12])
/* use bit3 of cb[CB_OFF+16] */ /* use bit3 of cb[CB_OFF+16] */
#define RTMP_SET_PACKET_5VT(_p, _flg) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+22] = _flg) #define RTMP_SET_PACKET_5VT(_p, _flg) (RTPKT_TO_OSPKT(_p)->cb[CB_OFF+22] = _flg)
@@ -877,12 +849,10 @@ void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size, int
/* Max skb->cb = 48B = [CB_OFF+38] */ /* Max skb->cb = 48B = [CB_OFF+38] */
/*********************************************************************************** /***********************************************************************************
* Other function prototypes definitions * Other function prototypes definitions
***********************************************************************************/ ***********************************************************************************/
void RTMP_GetCurrentSystemTime(LARGE_INTEGER *time); void RTMP_GetCurrentSystemTime(LARGE_INTEGER * time);
int rt28xx_packet_xmit(struct sk_buff *skb); int rt28xx_packet_xmit(struct sk_buff *skb);
#ifdef RTMP_MAC_PCI #ifdef RTMP_MAC_PCI
@@ -892,13 +862,10 @@ int rt28xx_packet_xmit(struct sk_buff *skb);
IRQ_HANDLE_TYPE rt2860_interrupt(int irq, void *dev_instance); IRQ_HANDLE_TYPE rt2860_interrupt(int irq, void *dev_instance);
#endif // RTMP_MAC_PCI // #endif // RTMP_MAC_PCI //
INT rt28xx_sta_ioctl( INT rt28xx_sta_ioctl(IN PNET_DEV net_dev, IN OUT struct ifreq *rq, IN INT cmd);
IN PNET_DEV net_dev,
IN OUT struct ifreq *rq,
IN INT cmd);
extern int ra_mtd_write(int num, loff_t to, size_t len, const u_char *buf); extern int ra_mtd_write(int num, loff_t to, size_t len, const u_char * buf);
extern int ra_mtd_read(int num, loff_t from, size_t len, u_char *buf); extern int ra_mtd_read(int num, loff_t from, size_t len, u_char * buf);
#define GET_PAD_FROM_NET_DEV(_pAd, _net_dev) (_pAd) = (PRTMP_ADAPTER)(_net_dev)->ml_priv; #define GET_PAD_FROM_NET_DEV(_pAd, _net_dev) (_pAd) = (PRTMP_ADAPTER)(_net_dev)->ml_priv;

File diff suppressed because it is too large Load Diff

View File

@@ -73,7 +73,7 @@
#define IS_RT2070(_pAd) (((_pAd)->RfIcType == RFIC_2020) || ((_pAd)->EFuseTag == 0x27)) #define IS_RT2070(_pAd) (((_pAd)->RfIcType == RFIC_2020) || ((_pAd)->EFuseTag == 0x27))
#define IS_RT30xx(_pAd) (((_pAd)->MACVersion & 0xfff00000) == 0x30700000||IS_RT3090A(_pAd)) #define IS_RT30xx(_pAd) (((_pAd)->MACVersion & 0xfff00000) == 0x30700000||IS_RT3090A(_pAd))
//#define IS_RT305X(_pAd) ((_pAd)->MACVersion == 0x28720200) //#define IS_RT305X(_pAd) ((_pAd)->MACVersion == 0x28720200)
/* RT3572, 3592, 3562, 3062 share the same MAC version */ /* RT3572, 3592, 3562, 3062 share the same MAC version */
#define IS_RT3572(_pAd) (((_pAd)->MACVersion & 0xffff0000) == 0x35720000) #define IS_RT3572(_pAd) (((_pAd)->MACVersion & 0xffff0000) == 0x35720000)
@@ -103,15 +103,12 @@
#define RETRY_LIMIT 10 #define RETRY_LIMIT 10
// ------------------------------------------------------ // ------------------------------------------------------
// BBP & RF definition // BBP & RF definition
// ------------------------------------------------------ // ------------------------------------------------------
#define BUSY 1 #define BUSY 1
#define IDLE 0 #define IDLE 0
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// EEPROM definition // EEPROM definition
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
@@ -126,11 +123,11 @@
#define EEPROM_EWDS_OPCODE 0x10 #define EEPROM_EWDS_OPCODE 0x10
#define EEPROM_EWEN_OPCODE 0x13 #define EEPROM_EWEN_OPCODE 0x13
#define NUM_EEPROM_BBP_PARMS 19 // Include NIC Config 0, 1, CR, TX ALC step, BBPs #define NUM_EEPROM_BBP_PARMS 19 // Include NIC Config 0, 1, CR, TX ALC step, BBPs
#define NUM_EEPROM_TX_G_PARMS 7 #define NUM_EEPROM_TX_G_PARMS 7
#define EEPROM_NIC1_OFFSET 0x34 // The address is from NIC config 0, not BBP register ID #define EEPROM_NIC1_OFFSET 0x34 // The address is from NIC config 0, not BBP register ID
#define EEPROM_NIC2_OFFSET 0x36 // The address is from NIC config 0, not BBP register ID #define EEPROM_NIC2_OFFSET 0x36 // The address is from NIC config 0, not BBP register ID
#define EEPROM_BBP_BASE_OFFSET 0xf0 // The address is from NIC config 0, not BBP register ID #define EEPROM_BBP_BASE_OFFSET 0xf0 // The address is from NIC config 0, not BBP register ID
#define EEPROM_G_TX_PWR_OFFSET 0x52 #define EEPROM_G_TX_PWR_OFFSET 0x52
#define EEPROM_G_TX2_PWR_OFFSET 0x60 #define EEPROM_G_TX2_PWR_OFFSET 0x60
#define EEPROM_LED1_OFFSET 0x3c #define EEPROM_LED1_OFFSET 0x3c
@@ -150,24 +147,22 @@
#define EEPROM_A_TX2_PWR_OFFSET 0xa6 #define EEPROM_A_TX2_PWR_OFFSET 0xa6
//#define EEPROM_Japan_TX_PWR_OFFSET 0x90 // 802.11j //#define EEPROM_Japan_TX_PWR_OFFSET 0x90 // 802.11j
//#define EEPROM_Japan_TX2_PWR_OFFSET 0xbe //#define EEPROM_Japan_TX2_PWR_OFFSET 0xbe
//#define EEPROM_TSSI_REF_OFFSET 0x54 //#define EEPROM_TSSI_REF_OFFSET 0x54
//#define EEPROM_TSSI_DELTA_OFFSET 0x24 //#define EEPROM_TSSI_DELTA_OFFSET 0x24
//#define EEPROM_CCK_TX_PWR_OFFSET 0x62 //#define EEPROM_CCK_TX_PWR_OFFSET 0x62
//#define EEPROM_CALIBRATE_OFFSET 0x7c //#define EEPROM_CALIBRATE_OFFSET 0x7c
#define EEPROM_VERSION_OFFSET 0x02 #define EEPROM_VERSION_OFFSET 0x02
#define EEPROM_FREQ_OFFSET 0x3a #define EEPROM_FREQ_OFFSET 0x3a
#define EEPROM_TXPOWER_BYRATE 0xde // 20MHZ power. #define EEPROM_TXPOWER_BYRATE 0xde // 20MHZ power.
#define EEPROM_TXPOWER_DELTA 0x50 // 20MHZ AND 40 MHZ use different power. This is delta in 40MHZ. #define EEPROM_TXPOWER_DELTA 0x50 // 20MHZ AND 40 MHZ use different power. This is delta in 40MHZ.
#define VALID_EEPROM_VERSION 1 #define VALID_EEPROM_VERSION 1
/* /*
* EEPROM operation related marcos * EEPROM operation related marcos
*/ */
#define RT28xx_EEPROM_READ16(_pAd, _offset, _value) \ #define RT28xx_EEPROM_READ16(_pAd, _offset, _value) \
(_pAd)->chipOps.eeread((RTMP_ADAPTER *)(_pAd), (USHORT)(_offset), (PUSHORT)&(_value)) (_pAd)->chipOps.eeread((RTMP_ADAPTER *)(_pAd), (USHORT)(_offset), (PUSHORT)&(_value))
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// E2PROM data layout // E2PROM data layout
// ------------------------------------------------------------------- // -------------------------------------------------------------------
@@ -175,90 +170,89 @@
// //
// MCU_LEDCS: MCU LED Control Setting. // MCU_LEDCS: MCU LED Control Setting.
// //
typedef union _MCU_LEDCS_STRUC { typedef union _MCU_LEDCS_STRUC {
struct { struct {
UCHAR LedMode:7; UCHAR LedMode:7;
UCHAR Polarity:1; UCHAR Polarity:1;
} field; } field;
UCHAR word; UCHAR word;
} MCU_LEDCS_STRUC, *PMCU_LEDCS_STRUC; } MCU_LEDCS_STRUC, *PMCU_LEDCS_STRUC;
// //
// EEPROM antenna select format // EEPROM antenna select format
// //
typedef union _EEPROM_ANTENNA_STRUC { typedef union _EEPROM_ANTENNA_STRUC {
struct {
USHORT RxPath:4; // 1: 1R, 2: 2R, 3: 3R
USHORT TxPath:4; // 1: 1T, 2: 2T
USHORT RfIcType:4; // see E2PROM document
USHORT Rsv:4;
} field;
USHORT word;
} EEPROM_ANTENNA_STRUC, *PEEPROM_ANTENNA_STRUC;
typedef union _EEPROM_NIC_CINFIG2_STRUC {
struct { struct {
USHORT HardwareRadioControl:1; // 1:enable, 0:disable USHORT RxPath:4; // 1: 1R, 2: 2R, 3: 3R
USHORT DynamicTxAgcControl:1; // USHORT TxPath:4; // 1: 1T, 2: 2T
USHORT ExternalLNAForG:1; // USHORT RfIcType:4; // see E2PROM document
USHORT ExternalLNAForA:1; // external LNA enable for 2.4G USHORT Rsv:4;
USHORT CardbusAcceleration:1; // !!! NOTE: 0 - enable, 1 - disable } field;
USHORT BW40MSidebandForG:1; USHORT word;
USHORT BW40MSidebandForA:1; } EEPROM_ANTENNA_STRUC, *PEEPROM_ANTENNA_STRUC;
USHORT EnableWPSPBC:1; // WPS PBC Control bit
USHORT BW40MAvailForG:1; // 0:enable, 1:disable typedef union _EEPROM_NIC_CINFIG2_STRUC {
USHORT BW40MAvailForA:1; // 0:enable, 1:disable struct {
USHORT Rsv1:1; // must be 0 USHORT HardwareRadioControl:1; // 1:enable, 0:disable
USHORT AntDiversity:1; // Antenna diversity USHORT DynamicTxAgcControl:1; //
USHORT Rsv2:3; // must be 0 USHORT ExternalLNAForG:1; //
USHORT DACTestBit:1; // control if driver should patch the DAC issue USHORT ExternalLNAForA:1; // external LNA enable for 2.4G
} field; USHORT CardbusAcceleration:1; // !!! NOTE: 0 - enable, 1 - disable
USHORT word; USHORT BW40MSidebandForG:1;
} EEPROM_NIC_CONFIG2_STRUC, *PEEPROM_NIC_CONFIG2_STRUC; USHORT BW40MSidebandForA:1;
USHORT EnableWPSPBC:1; // WPS PBC Control bit
USHORT BW40MAvailForG:1; // 0:enable, 1:disable
USHORT BW40MAvailForA:1; // 0:enable, 1:disable
USHORT Rsv1:1; // must be 0
USHORT AntDiversity:1; // Antenna diversity
USHORT Rsv2:3; // must be 0
USHORT DACTestBit:1; // control if driver should patch the DAC issue
} field;
USHORT word;
} EEPROM_NIC_CONFIG2_STRUC, *PEEPROM_NIC_CONFIG2_STRUC;
// //
// TX_PWR Value valid range 0xFA(-6) ~ 0x24(36) // TX_PWR Value valid range 0xFA(-6) ~ 0x24(36)
// //
typedef union _EEPROM_TX_PWR_STRUC { typedef union _EEPROM_TX_PWR_STRUC {
struct { struct {
CHAR Byte0; // Low Byte CHAR Byte0; // Low Byte
CHAR Byte1; // High Byte CHAR Byte1; // High Byte
} field; } field;
USHORT word; USHORT word;
} EEPROM_TX_PWR_STRUC, *PEEPROM_TX_PWR_STRUC; } EEPROM_TX_PWR_STRUC, *PEEPROM_TX_PWR_STRUC;
typedef union _EEPROM_VERSION_STRUC { typedef union _EEPROM_VERSION_STRUC {
struct { struct {
UCHAR FaeReleaseNumber; // Low Byte UCHAR FaeReleaseNumber; // Low Byte
UCHAR Version; // High Byte UCHAR Version; // High Byte
} field; } field;
USHORT word; USHORT word;
} EEPROM_VERSION_STRUC, *PEEPROM_VERSION_STRUC; } EEPROM_VERSION_STRUC, *PEEPROM_VERSION_STRUC;
typedef union _EEPROM_LED_STRUC { typedef union _EEPROM_LED_STRUC {
struct { struct {
USHORT PolarityRDY_G:1; // Polarity RDY_G setting. USHORT PolarityRDY_G:1; // Polarity RDY_G setting.
USHORT PolarityRDY_A:1; // Polarity RDY_A setting. USHORT PolarityRDY_A:1; // Polarity RDY_A setting.
USHORT PolarityACT:1; // Polarity ACT setting. USHORT PolarityACT:1; // Polarity ACT setting.
USHORT PolarityGPIO_0:1; // Polarity GPIO#0 setting. USHORT PolarityGPIO_0:1; // Polarity GPIO#0 setting.
USHORT PolarityGPIO_1:1; // Polarity GPIO#1 setting. USHORT PolarityGPIO_1:1; // Polarity GPIO#1 setting.
USHORT PolarityGPIO_2:1; // Polarity GPIO#2 setting. USHORT PolarityGPIO_2:1; // Polarity GPIO#2 setting.
USHORT PolarityGPIO_3:1; // Polarity GPIO#3 setting. USHORT PolarityGPIO_3:1; // Polarity GPIO#3 setting.
USHORT PolarityGPIO_4:1; // Polarity GPIO#4 setting. USHORT PolarityGPIO_4:1; // Polarity GPIO#4 setting.
USHORT LedMode:5; // Led mode. USHORT LedMode:5; // Led mode.
USHORT Rsvd:3; // Reserved USHORT Rsvd:3; // Reserved
} field; } field;
USHORT word; USHORT word;
} EEPROM_LED_STRUC, *PEEPROM_LED_STRUC; } EEPROM_LED_STRUC, *PEEPROM_LED_STRUC;
typedef union _EEPROM_TXPOWER_DELTA_STRUC { typedef union _EEPROM_TXPOWER_DELTA_STRUC {
struct { struct {
UCHAR DeltaValue:6; // Tx Power dalta value (MAX=4) UCHAR DeltaValue:6; // Tx Power dalta value (MAX=4)
UCHAR Type:1; // 1: plus the delta value, 0: minus the delta value UCHAR Type:1; // 1: plus the delta value, 0: minus the delta value
UCHAR TxPowerEnable:1;// Enable UCHAR TxPowerEnable:1; // Enable
} field; } field;
UCHAR value; UCHAR value;
} EEPROM_TXPOWER_DELTA_STRUC, *PEEPROM_TXPOWER_DELTA_STRUC; } EEPROM_TXPOWER_DELTA_STRUC, *PEEPROM_TXPOWER_DELTA_STRUC;
#endif // __RTMP_CHIP_H__ // #endif // __RTMP_CHIP_H__ //

View File

@@ -37,42 +37,27 @@
#ifndef __RTMP_CKIPMIC_H__ #ifndef __RTMP_CKIPMIC_H__
#define __RTMP_CKIPMIC_H__ #define __RTMP_CKIPMIC_H__
typedef struct _MIC_CONTEXT { typedef struct _MIC_CONTEXT {
/* --- MMH context */ /* --- MMH context */
UCHAR CK[16]; /* the key */ UCHAR CK[16]; /* the key */
UCHAR coefficient[16]; /* current aes counter mode coefficients */ UCHAR coefficient[16]; /* current aes counter mode coefficients */
ULONGLONG accum; /* accumulated mic, reduced to u32 in final() */ ULONGLONG accum; /* accumulated mic, reduced to u32 in final() */
UINT position; /* current position (byte offset) in message */ UINT position; /* current position (byte offset) in message */
UCHAR part[4]; /* for conversion of message to u32 for mmh */ UCHAR part[4]; /* for conversion of message to u32 for mmh */
} MIC_CONTEXT, *PMIC_CONTEXT; } MIC_CONTEXT, *PMIC_CONTEXT;
VOID xor_128( VOID xor_128(IN PUCHAR a, IN PUCHAR b, OUT PUCHAR out);
IN PUCHAR a,
IN PUCHAR b,
OUT PUCHAR out);
UCHAR RTMPCkipSbox( UCHAR RTMPCkipSbox(IN UCHAR a);
IN UCHAR a);
VOID xor_32( VOID xor_32(IN PUCHAR a, IN PUCHAR b, OUT PUCHAR out);
IN PUCHAR a,
IN PUCHAR b,
OUT PUCHAR out);
VOID next_key( VOID next_key(IN PUCHAR key, IN INT round);
IN PUCHAR key,
IN INT round);
VOID byte_sub( VOID byte_sub(IN PUCHAR in, OUT PUCHAR out);
IN PUCHAR in,
OUT PUCHAR out);
VOID shift_row( VOID shift_row(IN PUCHAR in, OUT PUCHAR out);
IN PUCHAR in,
OUT PUCHAR out);
VOID mix_column( VOID mix_column(IN PUCHAR in, OUT PUCHAR out);
IN PUCHAR in,
OUT PUCHAR out);
#endif //__RTMP_CKIPMIC_H__ #endif //__RTMP_CKIPMIC_H__

View File

@@ -55,9 +55,9 @@
#define NIC_DBG_STRING ("**RT28xx**") #define NIC_DBG_STRING ("**RT28xx**")
#ifdef RTMP_MAC_USB #ifdef RTMP_MAC_USB
#define TX_RING_SIZE 8 // 1 #define TX_RING_SIZE 8 // 1
#define PRIO_RING_SIZE 8 #define PRIO_RING_SIZE 8
#define MGMT_RING_SIZE 32 // PRIO_RING_SIZE #define MGMT_RING_SIZE 32 // PRIO_RING_SIZE
#define RX_RING_SIZE 8 #define RX_RING_SIZE 8
#define MAX_TX_PROCESS 4 #define MAX_TX_PROCESS 4
#define LOCAL_TXBUF_SIZE 2048 #define LOCAL_TXBUF_SIZE 2048
@@ -76,29 +76,29 @@
// //
#ifdef RTMP_MAC_PCI #ifdef RTMP_MAC_PCI
#define TX_RING_SIZE 64 //64 #define TX_RING_SIZE 64 //64
#define MGMT_RING_SIZE 128 #define MGMT_RING_SIZE 128
#define RX_RING_SIZE 128 //64 #define RX_RING_SIZE 128 //64
#define MAX_TX_PROCESS TX_RING_SIZE //8 #define MAX_TX_PROCESS TX_RING_SIZE //8
#define MAX_DMA_DONE_PROCESS TX_RING_SIZE #define MAX_DMA_DONE_PROCESS TX_RING_SIZE
#define MAX_TX_DONE_PROCESS TX_RING_SIZE //8 #define MAX_TX_DONE_PROCESS TX_RING_SIZE //8
#define LOCAL_TXBUF_SIZE 2 #define LOCAL_TXBUF_SIZE 2
#endif // RTMP_MAC_PCI // #endif // RTMP_MAC_PCI //
#define MAX_RX_PROCESS 128 //64 //32 #define MAX_RX_PROCESS 128 //64 //32
#define NUM_OF_LOCAL_TXBUF 2 #define NUM_OF_LOCAL_TXBUF 2
#define TXD_SIZE 16 #define TXD_SIZE 16
#define TXWI_SIZE 16 #define TXWI_SIZE 16
#define RXD_SIZE 16 #define RXD_SIZE 16
#define RXWI_SIZE 16 #define RXWI_SIZE 16
// TXINFO_SIZE + TXWI_SIZE + 802.11 Header Size + AMSDU sub frame header // TXINFO_SIZE + TXWI_SIZE + 802.11 Header Size + AMSDU sub frame header
#define TX_DMA_1ST_BUFFER_SIZE 96 // only the 1st physical buffer is pre-allocated #define TX_DMA_1ST_BUFFER_SIZE 96 // only the 1st physical buffer is pre-allocated
#define MGMT_DMA_BUFFER_SIZE 1536 //2048 #define MGMT_DMA_BUFFER_SIZE 1536 //2048
#define RX_BUFFER_AGGRESIZE 3840 //3904 //3968 //4096 //2048 //4096 #define RX_BUFFER_AGGRESIZE 3840 //3904 //3968 //4096 //2048 //4096
#define RX_BUFFER_NORMSIZE 3840 //3904 //3968 //4096 //2048 //4096 #define RX_BUFFER_NORMSIZE 3840 //3904 //3968 //4096 //2048 //4096
#define TX_BUFFER_NORMSIZE RX_BUFFER_NORMSIZE #define TX_BUFFER_NORMSIZE RX_BUFFER_NORMSIZE
#define MAX_FRAME_SIZE 2346 // Maximum 802.11 frame size #define MAX_FRAME_SIZE 2346 // Maximum 802.11 frame size
#define MAX_AGGREGATION_SIZE 3840 //3904 //3968 //4096 #define MAX_AGGREGATION_SIZE 3840 //3904 //3968 //4096
#define MAX_NUM_OF_TUPLE_CACHE 2 #define MAX_NUM_OF_TUPLE_CACHE 2
#define MAX_MCAST_LIST_SIZE 32 #define MAX_MCAST_LIST_SIZE 32
#define MAX_LEN_OF_VENDOR_DESC 64 #define MAX_LEN_OF_VENDOR_DESC 64
@@ -107,7 +107,6 @@
#define MAX_RX_PROCESS_CNT (RX_RING_SIZE) #define MAX_RX_PROCESS_CNT (RX_RING_SIZE)
/* /*
WMM Note: If memory of your system is not much, please reduce the definition; WMM Note: If memory of your system is not much, please reduce the definition;
or when you do WMM test, the queue for low priority AC will be full, i.e. or when you do WMM test, the queue for low priority AC will be full, i.e.
@@ -127,12 +126,11 @@
clConfig.clNum = RX_RING_SIZE * 4; clConfig.clNum = RX_RING_SIZE * 4;
*/ */
// TODO: For VxWorks the size is 256. Shall we cahnge the value as 256 for all OS????? // TODO: For VxWorks the size is 256. Shall we cahnge the value as 256 for all OS?????
#define MAX_PACKETS_IN_QUEUE (512) //(512) // to pass WMM A5-WPAPSK #define MAX_PACKETS_IN_QUEUE (512) //(512) // to pass WMM A5-WPAPSK
#define MAX_PACKETS_IN_MCAST_PS_QUEUE 32 #define MAX_PACKETS_IN_MCAST_PS_QUEUE 32
#define MAX_PACKETS_IN_PS_QUEUE 128 //32 #define MAX_PACKETS_IN_PS_QUEUE 128 //32
#define WMM_NUM_OF_AC 4 /* AC0, AC1, AC2, and AC3 */ #define WMM_NUM_OF_AC 4 /* AC0, AC1, AC2, and AC3 */
#ifdef RTMP_EFUSE_SUPPORT #ifdef RTMP_EFUSE_SUPPORT
//2008/09/11:KH add to support efuse<-- //2008/09/11:KH add to support efuse<--
@@ -189,8 +187,8 @@
#define fOP_STATUS_MEDIA_STATE_CONNECTED 0x00000080 #define fOP_STATUS_MEDIA_STATE_CONNECTED 0x00000080
#define fOP_STATUS_WMM_INUSED 0x00000100 #define fOP_STATUS_WMM_INUSED 0x00000100
#define fOP_STATUS_AGGREGATION_INUSED 0x00000200 #define fOP_STATUS_AGGREGATION_INUSED 0x00000200
#define fOP_STATUS_DOZE 0x00000400 // debug purpose #define fOP_STATUS_DOZE 0x00000400 // debug purpose
#define fOP_STATUS_PIGGYBACK_INUSED 0x00000800 // piggy-back, and aggregation #define fOP_STATUS_PIGGYBACK_INUSED 0x00000800 // piggy-back, and aggregation
#define fOP_STATUS_APSD_INUSED 0x00001000 #define fOP_STATUS_APSD_INUSED 0x00001000
#define fOP_STATUS_TX_AMSDU_INUSED 0x00002000 #define fOP_STATUS_TX_AMSDU_INUSED 0x00002000
#define fOP_STATUS_MAX_RETRY_ENABLED 0x00004000 #define fOP_STATUS_MAX_RETRY_ENABLED 0x00004000
@@ -229,9 +227,9 @@
// //
// AP's client table operation status flags // AP's client table operation status flags
// //
#define fCLIENT_STATUS_WMM_CAPABLE 0x00000001 // CLIENT can parse QOS DATA frame #define fCLIENT_STATUS_WMM_CAPABLE 0x00000001 // CLIENT can parse QOS DATA frame
#define fCLIENT_STATUS_AGGREGATION_CAPABLE 0x00000002 // CLIENT can receive Ralink's proprietary TX aggregation frame #define fCLIENT_STATUS_AGGREGATION_CAPABLE 0x00000002 // CLIENT can receive Ralink's proprietary TX aggregation frame
#define fCLIENT_STATUS_PIGGYBACK_CAPABLE 0x00000004 // CLIENT support piggy-back #define fCLIENT_STATUS_PIGGYBACK_CAPABLE 0x00000004 // CLIENT support piggy-back
#define fCLIENT_STATUS_AMSDU_INUSED 0x00000008 #define fCLIENT_STATUS_AMSDU_INUSED 0x00000008
#define fCLIENT_STATUS_SGI20_CAPABLE 0x00000010 #define fCLIENT_STATUS_SGI20_CAPABLE 0x00000010
#define fCLIENT_STATUS_SGI40_CAPABLE 0x00000020 #define fCLIENT_STATUS_SGI40_CAPABLE 0x00000020
@@ -240,7 +238,7 @@
#define fCLIENT_STATUS_HTC_CAPABLE 0x00000100 #define fCLIENT_STATUS_HTC_CAPABLE 0x00000100
#define fCLIENT_STATUS_RDG_CAPABLE 0x00000200 #define fCLIENT_STATUS_RDG_CAPABLE 0x00000200
#define fCLIENT_STATUS_MCSFEEDBACK_CAPABLE 0x00000400 #define fCLIENT_STATUS_MCSFEEDBACK_CAPABLE 0x00000400
#define fCLIENT_STATUS_APSD_CAPABLE 0x00000800 /* UAPSD STATION */ #define fCLIENT_STATUS_APSD_CAPABLE 0x00000800 /* UAPSD STATION */
#define fCLIENT_STATUS_RALINK_CHIPSET 0x00100000 #define fCLIENT_STATUS_RALINK_CHIPSET 0x00100000
// //
@@ -303,10 +301,9 @@
#define ERRLOG_NO_INTERRUPT_RESOURCE 0x00000604L #define ERRLOG_NO_INTERRUPT_RESOURCE 0x00000604L
#define ERRLOG_NO_MEMORY_RESOURCE 0x00000605L #define ERRLOG_NO_MEMORY_RESOURCE 0x00000605L
// WDS definition // WDS definition
#define MAX_WDS_ENTRY 4 #define MAX_WDS_ENTRY 4
#define WDS_PAIRWISE_KEY_OFFSET 60 // WDS links uses pairwise key#60 ~ 63 in ASIC pairwise key table #define WDS_PAIRWISE_KEY_OFFSET 60 // WDS links uses pairwise key#60 ~ 63 in ASIC pairwise key table
#define WDS_DISABLE_MODE 0 #define WDS_DISABLE_MODE 0
#define WDS_RESTRICT_MODE 1 #define WDS_RESTRICT_MODE 1
@@ -314,7 +311,6 @@
#define WDS_REPEATER_MODE 3 #define WDS_REPEATER_MODE 3
#define WDS_LAZY_MODE 4 #define WDS_LAZY_MODE 4
#define MAX_MESH_NUM 0 #define MAX_MESH_NUM 0
#define MAX_APCLI_NUM 0 #define MAX_APCLI_NUM 0
@@ -336,12 +332,11 @@
#define MAIN_MBSSID 0 #define MAIN_MBSSID 0
#define FIRST_MBSSID 1 #define FIRST_MBSSID 1
#define MAX_BEACON_SIZE 512 #define MAX_BEACON_SIZE 512
// If the MAX_MBSSID_NUM is larger than 6, // If the MAX_MBSSID_NUM is larger than 6,
// it shall reserve some WCID space(wcid 222~253) for beacon frames. // it shall reserve some WCID space(wcid 222~253) for beacon frames.
// - these wcid 238~253 are reserved for beacon#6(ra6). // - these wcid 238~253 are reserved for beacon#6(ra6).
// - these wcid 222~237 are reserved for beacon#7(ra7). // - these wcid 222~237 are reserved for beacon#7(ra7).
#if defined(MAX_MBSSID_NUM) && (MAX_MBSSID_NUM == 8) #if defined(MAX_MBSSID_NUM) && (MAX_MBSSID_NUM == 8)
#define HW_RESERVED_WCID 222 #define HW_RESERVED_WCID 222
#elif defined(MAX_MBSSID_NUM) && (MAX_MBSSID_NUM == 7) #elif defined(MAX_MBSSID_NUM) && (MAX_MBSSID_NUM == 7)
@@ -368,7 +363,6 @@
#define IsGroupKeyWCID(__wcid) (((__wcid) < LAST_SPECIFIC_WCID) && ((__wcid) >= (LAST_SPECIFIC_WCID - (MAX_MBSSID_NUM)))) #define IsGroupKeyWCID(__wcid) (((__wcid) < LAST_SPECIFIC_WCID) && ((__wcid) >= (LAST_SPECIFIC_WCID - (MAX_MBSSID_NUM))))
// definition to support multiple BSSID // definition to support multiple BSSID
#define BSS0 0 #define BSS0 0
#define BSS1 1 #define BSS1 1
@@ -379,20 +373,19 @@
#define BSS6 6 #define BSS6 6
#define BSS7 7 #define BSS7 7
//============================================================ //============================================================
// Length definitions // Length definitions
#define PEER_KEY_NO 2 #define PEER_KEY_NO 2
#define MAC_ADDR_LEN 6 #define MAC_ADDR_LEN 6
#define TIMESTAMP_LEN 8 #define TIMESTAMP_LEN 8
#define MAX_LEN_OF_SUPPORTED_RATES MAX_LENGTH_OF_SUPPORT_RATES // 1, 2, 5.5, 11, 6, 9, 12, 18, 24, 36, 48, 54 #define MAX_LEN_OF_SUPPORTED_RATES MAX_LENGTH_OF_SUPPORT_RATES // 1, 2, 5.5, 11, 6, 9, 12, 18, 24, 36, 48, 54
#define MAX_LEN_OF_KEY 32 // 32 octets == 256 bits, Redefine for WPA #define MAX_LEN_OF_KEY 32 // 32 octets == 256 bits, Redefine for WPA
#define MAX_NUM_OF_CHANNELS MAX_NUM_OF_CHS // 14 channels @2.4G + 12@UNII + 4 @MMAC + 11 @HiperLAN2 + 7 @Japan + 1 as NULL termination #define MAX_NUM_OF_CHANNELS MAX_NUM_OF_CHS // 14 channels @2.4G + 12@UNII + 4 @MMAC + 11 @HiperLAN2 + 7 @Japan + 1 as NULL termination
#define MAX_NUM_OF_11JCHANNELS 20 // 14 channels @2.4G + 12@UNII + 4 @MMAC + 11 @HiperLAN2 + 7 @Japan + 1 as NULL termination #define MAX_NUM_OF_11JCHANNELS 20 // 14 channels @2.4G + 12@UNII + 4 @MMAC + 11 @HiperLAN2 + 7 @Japan + 1 as NULL termination
#define MAX_LEN_OF_SSID 32 #define MAX_LEN_OF_SSID 32
#define CIPHER_TEXT_LEN 128 #define CIPHER_TEXT_LEN 128
#define HASH_TABLE_SIZE 256 #define HASH_TABLE_SIZE 256
#define MAX_VIE_LEN 1024 // New for WPA cipher suite variable IE sizes. #define MAX_VIE_LEN 1024 // New for WPA cipher suite variable IE sizes.
#define MAX_SUPPORT_MCS 32 #define MAX_SUPPORT_MCS 32
#define MAX_NUM_OF_BBP_LATCH 140 #define MAX_NUM_OF_BBP_LATCH 140
@@ -413,7 +406,7 @@
#define MAX_NUM_OF_ACL_LIST MAX_NUMBER_OF_ACL #define MAX_NUM_OF_ACL_LIST MAX_NUMBER_OF_ACL
#define MAX_LEN_OF_MAC_TABLE MAX_NUMBER_OF_MAC // if MAX_MBSSID_NUM is 8, this value can't be larger than 211 #define MAX_LEN_OF_MAC_TABLE MAX_NUMBER_OF_MAC // if MAX_MBSSID_NUM is 8, this value can't be larger than 211
#if MAX_LEN_OF_MAC_TABLE>MAX_AVAILABLE_CLIENT_WCID #if MAX_LEN_OF_MAC_TABLE>MAX_AVAILABLE_CLIENT_WCID
#error MAX_LEN_OF_MAC_TABLE can not be larger than MAX_AVAILABLE_CLIENT_WCID!!!! #error MAX_LEN_OF_MAC_TABLE can not be larger than MAX_AVAILABLE_CLIENT_WCID!!!!
@@ -426,37 +419,36 @@
#define NUM_OF_TID 8 #define NUM_OF_TID 8
#define MAX_AID_BA 4 #define MAX_AID_BA 4
#define MAX_LEN_OF_BA_REC_TABLE ((NUM_OF_TID * MAX_LEN_OF_MAC_TABLE)/2)// (NUM_OF_TID*MAX_AID_BA + 32) //Block ACK recipient #define MAX_LEN_OF_BA_REC_TABLE ((NUM_OF_TID * MAX_LEN_OF_MAC_TABLE)/2) // (NUM_OF_TID*MAX_AID_BA + 32) //Block ACK recipient
#define MAX_LEN_OF_BA_ORI_TABLE ((NUM_OF_TID * MAX_LEN_OF_MAC_TABLE)/2)// (NUM_OF_TID*MAX_AID_BA + 32) // Block ACK originator #define MAX_LEN_OF_BA_ORI_TABLE ((NUM_OF_TID * MAX_LEN_OF_MAC_TABLE)/2) // (NUM_OF_TID*MAX_AID_BA + 32) // Block ACK originator
#define MAX_LEN_OF_BSS_TABLE 64 #define MAX_LEN_OF_BSS_TABLE 64
#define MAX_REORDERING_MPDU_NUM 512 #define MAX_REORDERING_MPDU_NUM 512
// key related definitions // key related definitions
#define SHARE_KEY_NUM 4 #define SHARE_KEY_NUM 4
#define MAX_LEN_OF_SHARE_KEY 16 // byte count #define MAX_LEN_OF_SHARE_KEY 16 // byte count
#define MAX_LEN_OF_PEER_KEY 16 // byte count #define MAX_LEN_OF_PEER_KEY 16 // byte count
#define PAIRWISE_KEY_NUM 64 // in MAC ASIC pairwise key table #define PAIRWISE_KEY_NUM 64 // in MAC ASIC pairwise key table
#define GROUP_KEY_NUM 4 #define GROUP_KEY_NUM 4
#define PMK_LEN 32 #define PMK_LEN 32
#define WDS_PAIRWISE_KEY_OFFSET 60 // WDS links uses pairwise key#60 ~ 63 in ASIC pairwise key table #define WDS_PAIRWISE_KEY_OFFSET 60 // WDS links uses pairwise key#60 ~ 63 in ASIC pairwise key table
#define PMKID_NO 4 // Number of PMKID saved supported #define PMKID_NO 4 // Number of PMKID saved supported
#define MAX_LEN_OF_MLME_BUFFER 2048 #define MAX_LEN_OF_MLME_BUFFER 2048
// power status related definitions // power status related definitions
#define PWR_ACTIVE 0 #define PWR_ACTIVE 0
#define PWR_SAVE 1 #define PWR_SAVE 1
#define PWR_MMPS 2 //MIMO power save #define PWR_MMPS 2 //MIMO power save
// Auth and Assoc mode related definitions // Auth and Assoc mode related definitions
#define AUTH_MODE_OPEN 0x00 #define AUTH_MODE_OPEN 0x00
#define AUTH_MODE_KEY 0x01 #define AUTH_MODE_KEY 0x01
// BSS Type definitions // BSS Type definitions
#define BSS_ADHOC 0 // = Ndis802_11IBSS #define BSS_ADHOC 0 // = Ndis802_11IBSS
#define BSS_INFRA 1 // = Ndis802_11Infrastructure #define BSS_INFRA 1 // = Ndis802_11Infrastructure
#define BSS_ANY 2 // = Ndis802_11AutoUnknown #define BSS_ANY 2 // = Ndis802_11AutoUnknown
#define BSS_MONITOR 3 // = Ndis802_11Monitor #define BSS_MONITOR 3 // = Ndis802_11Monitor
// Reason code definitions // Reason code definitions
#define REASON_RESERVED 0 #define REASON_RESERVED 0
@@ -533,65 +525,63 @@
#define IE_CF_PARM 4 #define IE_CF_PARM 4
#define IE_TIM 5 #define IE_TIM 5
#define IE_IBSS_PARM 6 #define IE_IBSS_PARM 6
#define IE_COUNTRY 7 // 802.11d #define IE_COUNTRY 7 // 802.11d
#define IE_802_11D_REQUEST 10 // 802.11d #define IE_802_11D_REQUEST 10 // 802.11d
#define IE_QBSS_LOAD 11 // 802.11e d9 #define IE_QBSS_LOAD 11 // 802.11e d9
#define IE_EDCA_PARAMETER 12 // 802.11e d9 #define IE_EDCA_PARAMETER 12 // 802.11e d9
#define IE_TSPEC 13 // 802.11e d9 #define IE_TSPEC 13 // 802.11e d9
#define IE_TCLAS 14 // 802.11e d9 #define IE_TCLAS 14 // 802.11e d9
#define IE_SCHEDULE 15 // 802.11e d9 #define IE_SCHEDULE 15 // 802.11e d9
#define IE_CHALLENGE_TEXT 16 #define IE_CHALLENGE_TEXT 16
#define IE_POWER_CONSTRAINT 32 // 802.11h d3.3 #define IE_POWER_CONSTRAINT 32 // 802.11h d3.3
#define IE_POWER_CAPABILITY 33 // 802.11h d3.3 #define IE_POWER_CAPABILITY 33 // 802.11h d3.3
#define IE_TPC_REQUEST 34 // 802.11h d3.3 #define IE_TPC_REQUEST 34 // 802.11h d3.3
#define IE_TPC_REPORT 35 // 802.11h d3.3 #define IE_TPC_REPORT 35 // 802.11h d3.3
#define IE_SUPP_CHANNELS 36 // 802.11h d3.3 #define IE_SUPP_CHANNELS 36 // 802.11h d3.3
#define IE_CHANNEL_SWITCH_ANNOUNCEMENT 37 // 802.11h d3.3 #define IE_CHANNEL_SWITCH_ANNOUNCEMENT 37 // 802.11h d3.3
#define IE_MEASUREMENT_REQUEST 38 // 802.11h d3.3 #define IE_MEASUREMENT_REQUEST 38 // 802.11h d3.3
#define IE_MEASUREMENT_REPORT 39 // 802.11h d3.3 #define IE_MEASUREMENT_REPORT 39 // 802.11h d3.3
#define IE_QUIET 40 // 802.11h d3.3 #define IE_QUIET 40 // 802.11h d3.3
#define IE_IBSS_DFS 41 // 802.11h d3.3 #define IE_IBSS_DFS 41 // 802.11h d3.3
#define IE_ERP 42 // 802.11g #define IE_ERP 42 // 802.11g
#define IE_TS_DELAY 43 // 802.11e d9 #define IE_TS_DELAY 43 // 802.11e d9
#define IE_TCLAS_PROCESSING 44 // 802.11e d9 #define IE_TCLAS_PROCESSING 44 // 802.11e d9
#define IE_QOS_CAPABILITY 46 // 802.11e d6 #define IE_QOS_CAPABILITY 46 // 802.11e d6
#define IE_HT_CAP 45 // 802.11n d1. HT CAPABILITY. ELEMENT ID TBD #define IE_HT_CAP 45 // 802.11n d1. HT CAPABILITY. ELEMENT ID TBD
#define IE_AP_CHANNEL_REPORT 51 // 802.11k d6 #define IE_AP_CHANNEL_REPORT 51 // 802.11k d6
#define IE_HT_CAP2 52 // 802.11n d1. HT CAPABILITY. ELEMENT ID TBD #define IE_HT_CAP2 52 // 802.11n d1. HT CAPABILITY. ELEMENT ID TBD
#define IE_RSN 48 // 802.11i d3.0 #define IE_RSN 48 // 802.11i d3.0
#define IE_WPA2 48 // WPA2 #define IE_WPA2 48 // WPA2
#define IE_EXT_SUPP_RATES 50 // 802.11g #define IE_EXT_SUPP_RATES 50 // 802.11g
#define IE_SUPP_REG_CLASS 59 // 802.11y. Supported regulatory classes. #define IE_SUPP_REG_CLASS 59 // 802.11y. Supported regulatory classes.
#define IE_EXT_CHANNEL_SWITCH_ANNOUNCEMENT 60 // 802.11n #define IE_EXT_CHANNEL_SWITCH_ANNOUNCEMENT 60 // 802.11n
#define IE_ADD_HT 61 // 802.11n d1. ADDITIONAL HT CAPABILITY. ELEMENT ID TBD #define IE_ADD_HT 61 // 802.11n d1. ADDITIONAL HT CAPABILITY. ELEMENT ID TBD
#define IE_ADD_HT2 53 // 802.11n d1. ADDITIONAL HT CAPABILITY. ELEMENT ID TBD #define IE_ADD_HT2 53 // 802.11n d1. ADDITIONAL HT CAPABILITY. ELEMENT ID TBD
// For 802.11n D3.03 // For 802.11n D3.03
//#define IE_NEW_EXT_CHA_OFFSET 62 // 802.11n d1. New extension channel offset elemet //#define IE_NEW_EXT_CHA_OFFSET 62 // 802.11n d1. New extension channel offset elemet
#define IE_SECONDARY_CH_OFFSET 62 // 802.11n D3.03 Secondary Channel Offset element #define IE_SECONDARY_CH_OFFSET 62 // 802.11n D3.03 Secondary Channel Offset element
#define IE_WAPI 68 // WAPI information element #define IE_WAPI 68 // WAPI information element
#define IE_2040_BSS_COEXIST 72 // 802.11n D3.0.3 #define IE_2040_BSS_COEXIST 72 // 802.11n D3.0.3
#define IE_2040_BSS_INTOLERANT_REPORT 73 // 802.11n D3.03 #define IE_2040_BSS_INTOLERANT_REPORT 73 // 802.11n D3.03
#define IE_OVERLAPBSS_SCAN_PARM 74 // 802.11n D3.03 #define IE_OVERLAPBSS_SCAN_PARM 74 // 802.11n D3.03
#define IE_EXT_CAPABILITY 127 // 802.11n D3.03 #define IE_EXT_CAPABILITY 127 // 802.11n D3.03
#define IE_WPA 221 // WPA
#define IE_VENDOR_SPECIFIC 221 // Wifi WMM (WME)
#define IE_WPA 221 // WPA #define OUI_BROADCOM_HT 51 //
#define IE_VENDOR_SPECIFIC 221 // Wifi WMM (WME) #define OUI_BROADCOM_HTADD 52 //
#define OUI_PREN_HT_CAP 51 //
#define OUI_BROADCOM_HT 51 // #define OUI_PREN_ADD_HT 52 //
#define OUI_BROADCOM_HTADD 52 //
#define OUI_PREN_HT_CAP 51 //
#define OUI_PREN_ADD_HT 52 //
// CCX information // CCX information
#define IE_AIRONET_CKIP 133 // CCX1.0 ID 85H for CKIP #define IE_AIRONET_CKIP 133 // CCX1.0 ID 85H for CKIP
#define IE_AP_TX_POWER 150 // CCX 2.0 for AP transmit power #define IE_AP_TX_POWER 150 // CCX 2.0 for AP transmit power
#define IE_MEASUREMENT_CAPABILITY 221 // CCX 2.0 #define IE_MEASUREMENT_CAPABILITY 221 // CCX 2.0
#define IE_CCX_V2 221 #define IE_CCX_V2 221
#define IE_AIRONET_IPADDRESS 149 // CCX ID 95H for IP Address #define IE_AIRONET_IPADDRESS 149 // CCX ID 95H for IP Address
#define IE_AIRONET_CCKMREASSOC 156 // CCX ID 9CH for CCKM Reassociation Request element #define IE_AIRONET_CCKMREASSOC 156 // CCX ID 9CH for CCKM Reassociation Request element
#define CKIP_NEGOTIATION_LENGTH 30 #define CKIP_NEGOTIATION_LENGTH 30
#define AIRONET_IPADDRESS_LENGTH 10 #define AIRONET_IPADDRESS_LENGTH 10
#define AIRONET_CCKMREASSOC_LENGTH 24 #define AIRONET_CCKMREASSOC_LENGTH 24
@@ -619,11 +609,8 @@
#define WSC_STATE_MACHINE 17 #define WSC_STATE_MACHINE 17
#define WSC_UPNP_STATE_MACHINE 18 #define WSC_UPNP_STATE_MACHINE 18
#define WPA_STATE_MACHINE 23 #define WPA_STATE_MACHINE 23
// //
// STA's CONTROL/CONNECT state machine: states, events, total function # // STA's CONTROL/CONNECT state machine: states, events, total function #
// //
@@ -700,10 +687,9 @@
#define MT2_PEER_PUBLIC_CATE 4 #define MT2_PEER_PUBLIC_CATE 4
#define MT2_PEER_RM_CATE 5 #define MT2_PEER_RM_CATE 5
/* "FT_CATEGORY_BSS_TRANSITION equal to 6" is defined file of "dot11r_ft.h" */ /* "FT_CATEGORY_BSS_TRANSITION equal to 6" is defined file of "dot11r_ft.h" */
#define MT2_PEER_HT_CATE 7 // 7.4.7 #define MT2_PEER_HT_CATE 7 // 7.4.7
#define MAX_PEER_CATE_MSG 7 #define MAX_PEER_CATE_MSG 7
#define MT2_MLME_ADD_BA_CATE 8 #define MT2_MLME_ADD_BA_CATE 8
#define MT2_MLME_ORI_DELBA_CATE 9 #define MT2_MLME_ORI_DELBA_CATE 9
#define MT2_MLME_REC_DELBA_CATE 10 #define MT2_MLME_REC_DELBA_CATE 10
@@ -721,7 +707,6 @@
#define CATEGORY_RM 5 #define CATEGORY_RM 5
#define CATEGORY_HT 7 #define CATEGORY_HT 7
// DLS Action frame definition // DLS Action frame definition
#define ACTION_DLS_REQUEST 0 #define ACTION_DLS_REQUEST 0
#define ACTION_DLS_RESPONSE 1 #define ACTION_DLS_RESPONSE 1
@@ -734,7 +719,6 @@
#define SPEC_TPCRP 3 #define SPEC_TPCRP 3
#define SPEC_CHANNEL_SWITCH 4 #define SPEC_CHANNEL_SWITCH 4
//BA Action field value //BA Action field value
#define ADDBA_REQ 0 #define ADDBA_REQ 0
#define ADDBA_RESP 1 #define ADDBA_RESP 1
@@ -748,10 +732,9 @@
#define ACTION_EXT_CH_SWITCH_ANNOUNCE 4 // 11y D9.0 #define ACTION_EXT_CH_SWITCH_ANNOUNCE 4 // 11y D9.0
#define ACTION_DSE_MEASUREMENT_REQ 5 // 11y D9.0 #define ACTION_DSE_MEASUREMENT_REQ 5 // 11y D9.0
#define ACTION_DSE_MEASUREMENT_REPORT 6 // 11y D9.0 #define ACTION_DSE_MEASUREMENT_REPORT 6 // 11y D9.0
#define ACTION_MEASUREMENT_PILOT_ACTION 7 // 11y D9.0 #define ACTION_MEASUREMENT_PILOT_ACTION 7 // 11y D9.0
#define ACTION_DSE_POWER_CONSTRAINT 8 // 11y D9.0 #define ACTION_DSE_POWER_CONSTRAINT 8 // 11y D9.0
//HT Action field value //HT Action field value
#define NOTIFY_BW_ACTION 0 #define NOTIFY_BW_ACTION 0
#define SMPS_ACTION 1 #define SMPS_ACTION 1
@@ -798,7 +781,7 @@
// //
// STA's SYNC state machine: states, events, total function # // STA's SYNC state machine: states, events, total function #
// //
#define SYNC_IDLE 0 // merge NO_BSS,IBSS_IDLE,IBSS_ACTIVE and BSS in to 1 state #define SYNC_IDLE 0 // merge NO_BSS,IBSS_IDLE,IBSS_ACTIVE and BSS in to 1 state
#define JOIN_WAIT_BEACON 1 #define JOIN_WAIT_BEACON 1
#define SCAN_LISTEN 2 #define SCAN_LISTEN 2
#define MAX_SYNC_STATE 3 #define MAX_SYNC_STATE 3
@@ -907,8 +890,6 @@
#define WPA_FUNC_SIZE (MAX_WPA_PTK_STATE * MAX_WPA_MSG) #define WPA_FUNC_SIZE (MAX_WPA_PTK_STATE * MAX_WPA_MSG)
// ============================================================================= // =============================================================================
// value domain of 802.11 header FC.Tyte, which is b3..b2 of the 1st-byte of MAC header // value domain of 802.11 header FC.Tyte, which is b3..b2 of the 1st-byte of MAC header
@@ -961,10 +942,10 @@
#define SUBTYPE_QOS_CFACK_CFPOLL 15 #define SUBTYPE_QOS_CFACK_CFPOLL 15
// ACK policy of QOS Control field bit 6:5 // ACK policy of QOS Control field bit 6:5
#define NORMAL_ACK 0x00 // b6:5 = 00 #define NORMAL_ACK 0x00 // b6:5 = 00
#define NO_ACK 0x20 // b6:5 = 01 #define NO_ACK 0x20 // b6:5 = 01
#define NO_EXPLICIT_ACK 0x40 // b6:5 = 10 #define NO_EXPLICIT_ACK 0x40 // b6:5 = 10
#define BLOCK_ACK 0x60 // b6:5 = 11 #define BLOCK_ACK 0x60 // b6:5 = 11
// //
// rtmp_data.c use these definition // rtmp_data.c use these definition
@@ -982,7 +963,7 @@
#define LENGTH_CRC 4 #define LENGTH_CRC 4
#define MAX_SEQ_NUMBER 0x0fff #define MAX_SEQ_NUMBER 0x0fff
#define LENGTH_802_3_NO_TYPE 12 #define LENGTH_802_3_NO_TYPE 12
#define LENGTH_802_1Q 4 /* VLAN related */ #define LENGTH_802_1Q 4 /* VLAN related */
// STA_CSR4.field.TxResult // STA_CSR4.field.TxResult
#define TX_RESULT_SUCCESS 0 #define TX_RESULT_SUCCESS 0
@@ -999,23 +980,23 @@
#define MODE_HTGREENFIELD 3 #define MODE_HTGREENFIELD 3
// MCS for CCK. BW.SGI.STBC are reserved // MCS for CCK. BW.SGI.STBC are reserved
#define MCS_LONGP_RATE_1 0 // long preamble CCK 1Mbps #define MCS_LONGP_RATE_1 0 // long preamble CCK 1Mbps
#define MCS_LONGP_RATE_2 1 // long preamble CCK 1Mbps #define MCS_LONGP_RATE_2 1 // long preamble CCK 1Mbps
#define MCS_LONGP_RATE_5_5 2 #define MCS_LONGP_RATE_5_5 2
#define MCS_LONGP_RATE_11 3 #define MCS_LONGP_RATE_11 3
#define MCS_SHORTP_RATE_1 4 // long preamble CCK 1Mbps. short is forbidden in 1Mbps #define MCS_SHORTP_RATE_1 4 // long preamble CCK 1Mbps. short is forbidden in 1Mbps
#define MCS_SHORTP_RATE_2 5 // short preamble CCK 2Mbps #define MCS_SHORTP_RATE_2 5 // short preamble CCK 2Mbps
#define MCS_SHORTP_RATE_5_5 6 #define MCS_SHORTP_RATE_5_5 6
#define MCS_SHORTP_RATE_11 7 #define MCS_SHORTP_RATE_11 7
// To send duplicate legacy OFDM. set BW=BW_40. SGI.STBC are reserved // To send duplicate legacy OFDM. set BW=BW_40. SGI.STBC are reserved
#define MCS_RATE_6 0 // legacy OFDM #define MCS_RATE_6 0 // legacy OFDM
#define MCS_RATE_9 1 // OFDM #define MCS_RATE_9 1 // OFDM
#define MCS_RATE_12 2 // OFDM #define MCS_RATE_12 2 // OFDM
#define MCS_RATE_18 3 // OFDM #define MCS_RATE_18 3 // OFDM
#define MCS_RATE_24 4 // OFDM #define MCS_RATE_24 4 // OFDM
#define MCS_RATE_36 5 // OFDM #define MCS_RATE_36 5 // OFDM
#define MCS_RATE_48 6 // OFDM #define MCS_RATE_48 6 // OFDM
#define MCS_RATE_54 7 // OFDM #define MCS_RATE_54 7 // OFDM
// HT // HT
#define MCS_0 0 // 1S #define MCS_0 0 // 1S
#define MCS_1 1 #define MCS_1 1
@@ -1070,7 +1051,7 @@
#define RXSTBC_TWO 2 // rx support of 1 and 2 spatial stream #define RXSTBC_TWO 2 // rx support of 1 and 2 spatial stream
#define RXSTBC_THR 3 // rx support of 1~3 spatial stream #define RXSTBC_THR 3 // rx support of 1~3 spatial stream
// MCS FEEDBACK // MCS FEEDBACK
#define MCSFBK_NONE 0 // not support mcs feedback / #define MCSFBK_NONE 0 // not support mcs feedback /
#define MCSFBK_RSV 1 // reserved #define MCSFBK_RSV 1 // reserved
#define MCSFBK_UNSOLICIT 2 // only support unsolict mcs feedback #define MCSFBK_UNSOLICIT 2 // only support unsolict mcs feedback
#define MCSFBK_MRQ 3 // response to both MRQ and unsolict mcs feedback #define MCSFBK_MRQ 3 // response to both MRQ and unsolict mcs feedback
@@ -1081,7 +1062,6 @@
#define MMPS_RSV 2 #define MMPS_RSV 2
#define MMPS_ENABLE 3 #define MMPS_ENABLE 3
// A-MSDU size // A-MSDU size
#define AMSDU_0 0 #define AMSDU_0 0
#define AMSDU_1 1 #define AMSDU_1 1
@@ -1094,28 +1074,28 @@
#define RATE_2 1 #define RATE_2 1
#define RATE_5_5 2 #define RATE_5_5 2
#define RATE_11 3 #define RATE_11 3
#define RATE_6 4 // OFDM #define RATE_6 4 // OFDM
#define RATE_9 5 // OFDM #define RATE_9 5 // OFDM
#define RATE_12 6 // OFDM #define RATE_12 6 // OFDM
#define RATE_18 7 // OFDM #define RATE_18 7 // OFDM
#define RATE_24 8 // OFDM #define RATE_24 8 // OFDM
#define RATE_36 9 // OFDM #define RATE_36 9 // OFDM
#define RATE_48 10 // OFDM #define RATE_48 10 // OFDM
#define RATE_54 11 // OFDM #define RATE_54 11 // OFDM
#define RATE_FIRST_OFDM_RATE RATE_6 #define RATE_FIRST_OFDM_RATE RATE_6
#define RATE_LAST_OFDM_RATE RATE_54 #define RATE_LAST_OFDM_RATE RATE_54
#define RATE_6_5 12 // HT mix #define RATE_6_5 12 // HT mix
#define RATE_13 13 // HT mix #define RATE_13 13 // HT mix
#define RATE_19_5 14 // HT mix #define RATE_19_5 14 // HT mix
#define RATE_26 15 // HT mix #define RATE_26 15 // HT mix
#define RATE_39 16 // HT mix #define RATE_39 16 // HT mix
#define RATE_52 17 // HT mix #define RATE_52 17 // HT mix
#define RATE_58_5 18 // HT mix #define RATE_58_5 18 // HT mix
#define RATE_65 19 // HT mix #define RATE_65 19 // HT mix
#define RATE_78 20 // HT mix #define RATE_78 20 // HT mix
#define RATE_104 21 // HT mix #define RATE_104 21 // HT mix
#define RATE_117 22 // HT mix #define RATE_117 22 // HT mix
#define RATE_130 23 // HT mix #define RATE_130 23 // HT mix
//#define RATE_AUTO_SWITCH 255 // for StaCfg.FixedTxRate only //#define RATE_AUTO_SWITCH 255 // for StaCfg.FixedTxRate only
#define HTRATE_0 12 #define HTRATE_0 12
#define RATE_FIRST_MM_RATE HTRATE_0 #define RATE_FIRST_MM_RATE HTRATE_0
@@ -1134,34 +1114,34 @@
// Country Region definition // Country Region definition
#define REGION_MINIMUM_BG_BAND 0 #define REGION_MINIMUM_BG_BAND 0
#define REGION_0_BG_BAND 0 // 1-11 #define REGION_0_BG_BAND 0 // 1-11
#define REGION_1_BG_BAND 1 // 1-13 #define REGION_1_BG_BAND 1 // 1-13
#define REGION_2_BG_BAND 2 // 10-11 #define REGION_2_BG_BAND 2 // 10-11
#define REGION_3_BG_BAND 3 // 10-13 #define REGION_3_BG_BAND 3 // 10-13
#define REGION_4_BG_BAND 4 // 14 #define REGION_4_BG_BAND 4 // 14
#define REGION_5_BG_BAND 5 // 1-14 #define REGION_5_BG_BAND 5 // 1-14
#define REGION_6_BG_BAND 6 // 3-9 #define REGION_6_BG_BAND 6 // 3-9
#define REGION_7_BG_BAND 7 // 5-13 #define REGION_7_BG_BAND 7 // 5-13
#define REGION_31_BG_BAND 31 // 5-13 #define REGION_31_BG_BAND 31 // 5-13
#define REGION_MAXIMUM_BG_BAND 7 #define REGION_MAXIMUM_BG_BAND 7
#define REGION_MINIMUM_A_BAND 0 #define REGION_MINIMUM_A_BAND 0
#define REGION_0_A_BAND 0 // 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165 #define REGION_0_A_BAND 0 // 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165
#define REGION_1_A_BAND 1 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140 #define REGION_1_A_BAND 1 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140
#define REGION_2_A_BAND 2 // 36, 40, 44, 48, 52, 56, 60, 64 #define REGION_2_A_BAND 2 // 36, 40, 44, 48, 52, 56, 60, 64
#define REGION_3_A_BAND 3 // 52, 56, 60, 64, 149, 153, 157, 161 #define REGION_3_A_BAND 3 // 52, 56, 60, 64, 149, 153, 157, 161
#define REGION_4_A_BAND 4 // 149, 153, 157, 161, 165 #define REGION_4_A_BAND 4 // 149, 153, 157, 161, 165
#define REGION_5_A_BAND 5 // 149, 153, 157, 161 #define REGION_5_A_BAND 5 // 149, 153, 157, 161
#define REGION_6_A_BAND 6 // 36, 40, 44, 48 #define REGION_6_A_BAND 6 // 36, 40, 44, 48
#define REGION_7_A_BAND 7 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165, 169, 173 #define REGION_7_A_BAND 7 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165, 169, 173
#define REGION_8_A_BAND 8 // 52, 56, 60, 64 #define REGION_8_A_BAND 8 // 52, 56, 60, 64
#define REGION_9_A_BAND 9 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 132, 136, 140, 149, 153, 157, 161, 165 #define REGION_9_A_BAND 9 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 132, 136, 140, 149, 153, 157, 161, 165
#define REGION_10_A_BAND 10 // 36, 40, 44, 48, 149, 153, 157, 161, 165 #define REGION_10_A_BAND 10 // 36, 40, 44, 48, 149, 153, 157, 161, 165
#define REGION_11_A_BAND 11 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 149, 153, 157, 161 #define REGION_11_A_BAND 11 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 149, 153, 157, 161
#define REGION_12_A_BAND 12 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140 #define REGION_12_A_BAND 12 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140
#define REGION_13_A_BAND 13 // 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161 #define REGION_13_A_BAND 13 // 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161
#define REGION_14_A_BAND 14 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165 #define REGION_14_A_BAND 14 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165
#define REGION_15_A_BAND 15 // 149, 153, 157, 161, 165, 169, 173 #define REGION_15_A_BAND 15 // 149, 153, 157, 161, 165, 169, 173
#define REGION_MAXIMUM_A_BAND 15 #define REGION_MAXIMUM_A_BAND 15
// pTxD->CipherAlg // pTxD->CipherAlg
@@ -1172,10 +1152,9 @@
#define CIPHER_AES 4 #define CIPHER_AES 4
#define CIPHER_CKIP64 5 #define CIPHER_CKIP64 5
#define CIPHER_CKIP128 6 #define CIPHER_CKIP128 6
#define CIPHER_TKIP_NO_MIC 7 // MIC appended by driver: not a valid value in hardware key table #define CIPHER_TKIP_NO_MIC 7 // MIC appended by driver: not a valid value in hardware key table
#define CIPHER_SMS4 8 #define CIPHER_SMS4 8
// LED Status. // LED Status.
#define LED_LINK_DOWN 0 #define LED_LINK_DOWN 0
#define LED_LINK_UP 1 #define LED_LINK_UP 1
@@ -1189,11 +1168,11 @@
// value domain of pAd->LedCntl.LedMode and E2PROM // value domain of pAd->LedCntl.LedMode and E2PROM
#define LED_MODE_DEFAULT 0 #define LED_MODE_DEFAULT 0
#define LED_MODE_TWO_LED 1 #define LED_MODE_TWO_LED 1
//#define LED_MODE_SIGNAL_STREGTH 8 // EEPROM define =8 //#define LED_MODE_SIGNAL_STREGTH 8 // EEPROM define =8
#define LED_MODE_SIGNAL_STREGTH 0x40 // EEPROM define = 64 #define LED_MODE_SIGNAL_STREGTH 0x40 // EEPROM define = 64
// RC4 init value, used fro WEP & TKIP // RC4 init value, used fro WEP & TKIP
#define PPPINITFCS32 0xffffffff /* Initial FCS value */ #define PPPINITFCS32 0xffffffff /* Initial FCS value */
// value domain of pAd->StaCfg.PortSecured. 802.1X controlled port definition // value domain of pAd->StaCfg.PortSecured. 802.1X controlled port definition
#define WPA_802_1X_PORT_SECURED 1 #define WPA_802_1X_PORT_SECURED 1
@@ -1205,7 +1184,6 @@
//definition of DRS //definition of DRS
#define MAX_STEP_OF_TX_RATE_SWITCH 32 #define MAX_STEP_OF_TX_RATE_SWITCH 32
// pre-allocated free NDIS PACKET/BUFFER poll for internal usage // pre-allocated free NDIS PACKET/BUFFER poll for internal usage
#define MAX_NUM_OF_FREE_NDIS_PACKET 128 #define MAX_NUM_OF_FREE_NDIS_PACKET 128
@@ -1223,7 +1201,7 @@
#define DEFAULT_RF_TX_POWER 5 #define DEFAULT_RF_TX_POWER 5
#define MAX_INI_BUFFER_SIZE 4096 #define MAX_INI_BUFFER_SIZE 4096
#define MAX_PARAM_BUFFER_SIZE (2048) // enough for ACL (18*64) #define MAX_PARAM_BUFFER_SIZE (2048) // enough for ACL (18*64)
//18 : the length of Mac address acceptable format "01:02:03:04:05:06;") //18 : the length of Mac address acceptable format "01:02:03:04:05:06;")
//64 : MAX_NUM_OF_ACL_LIST //64 : MAX_NUM_OF_ACL_LIST
// definition of pAd->OpMode // definition of pAd->OpMode
@@ -1233,10 +1211,10 @@
// ========================= AP rtmp_def.h =========================== // ========================= AP rtmp_def.h ===========================
// value domain for pAd->EventTab.Log[].Event // value domain for pAd->EventTab.Log[].Event
#define EVENT_RESET_ACCESS_POINT 0 // Log = "hh:mm:ss Restart Access Point" #define EVENT_RESET_ACCESS_POINT 0 // Log = "hh:mm:ss Restart Access Point"
#define EVENT_ASSOCIATED 1 // Log = "hh:mm:ss STA 00:01:02:03:04:05 associated" #define EVENT_ASSOCIATED 1 // Log = "hh:mm:ss STA 00:01:02:03:04:05 associated"
#define EVENT_DISASSOCIATED 2 // Log = "hh:mm:ss STA 00:01:02:03:04:05 left this BSS" #define EVENT_DISASSOCIATED 2 // Log = "hh:mm:ss STA 00:01:02:03:04:05 left this BSS"
#define EVENT_AGED_OUT 3 // Log = "hh:mm:ss STA 00:01:02:03:04:05 was aged-out and removed from this BSS" #define EVENT_AGED_OUT 3 // Log = "hh:mm:ss STA 00:01:02:03:04:05 was aged-out and removed from this BSS"
#define EVENT_COUNTER_M 4 #define EVENT_COUNTER_M 4
#define EVENT_INVALID_PSK 5 #define EVENT_INVALID_PSK 5
#define EVENT_MAX_EVENT_TYPE 6 #define EVENT_MAX_EVENT_TYPE 6
@@ -1262,7 +1240,6 @@
// MBSSID definition // MBSSID definition
#define ENTRY_NOT_FOUND 0xFF #define ENTRY_NOT_FOUND 0xFF
/* After Linux 2.6.9, /* After Linux 2.6.9,
* VLAN module use Private (from user) interface flags (netdevice->priv_flags). * VLAN module use Private (from user) interface flags (netdevice->priv_flags).
* #define IFF_802_1Q_VLAN 0x1 -- 802.1Q VLAN device. in if.h * #define IFF_802_1Q_VLAN 0x1 -- 802.1Q VLAN device. in if.h
@@ -1282,13 +1259,10 @@
#define INF_APCLI_DEV_NAME "apcli" #define INF_APCLI_DEV_NAME "apcli"
#define INF_MESH_DEV_NAME "mesh" #define INF_MESH_DEV_NAME "mesh"
// WEP Key TYPE // WEP Key TYPE
#define WEP_HEXADECIMAL_TYPE 0 #define WEP_HEXADECIMAL_TYPE 0
#define WEP_ASCII_TYPE 1 #define WEP_ASCII_TYPE 1
// WIRELESS EVENTS definition // WIRELESS EVENTS definition
/* Max number of char in custom event, refer to wireless_tools.28/wireless.20.h */ /* Max number of char in custom event, refer to wireless_tools.28/wireless.20.h */
#define IW_CUSTOM_MAX_LEN 255 /* In bytes */ #define IW_CUSTOM_MAX_LEN 255 /* In bytes */
@@ -1375,7 +1349,6 @@
#define GUI_IDLE_POWER_SAVE 3 #define GUI_IDLE_POWER_SAVE 3
// -- // --
// definition for WpaSupport flag // definition for WpaSupport flag
#define WPA_SUPPLICANT_DISABLE 0 #define WPA_SUPPLICANT_DISABLE 0
#define WPA_SUPPLICANT_ENABLE 1 #define WPA_SUPPLICANT_ENABLE 1
@@ -1418,10 +1391,8 @@
#define cpu2be16(x) SWAP16((x)) #define cpu2be16(x) SWAP16((x))
#define be2cpu16(x) SWAP16((x)) #define be2cpu16(x) SWAP16((x))
#define ABS(_x, _y) ((_x) > (_y)) ? ((_x) -(_y)) : ((_y) -(_x)) #define ABS(_x, _y) ((_x) > (_y)) ? ((_x) -(_y)) : ((_y) -(_x))
#define A2Dec(_X, _p) \ #define A2Dec(_X, _p) \
{ \ { \
UCHAR *p; \ UCHAR *p; \
@@ -1435,7 +1406,6 @@
} \ } \
} }
#define A2Hex(_X, _p) \ #define A2Hex(_X, _p) \
do{ \ do{ \
char *__p; \ char *__p; \
@@ -1453,6 +1423,4 @@ do{ \
} \ } \
}while(0) }while(0)
#endif // __RTMP_DEF_H__ #endif // __RTMP_DEF_H__

View File

@@ -30,73 +30,71 @@
#include "rtmp_type.h" #include "rtmp_type.h"
// 4-byte HTC field. maybe included in any frame except non-QOS data frame. The Order bit must set 1. // 4-byte HTC field. maybe included in any frame except non-QOS data frame. The Order bit must set 1.
typedef struct PACKED { typedef struct PACKED {
UINT32 MA:1; //management action payload exist in (QoS Null+HTC) UINT32 MA:1; //management action payload exist in (QoS Null+HTC)
UINT32 TRQ:1; //sounding request UINT32 TRQ:1; //sounding request
UINT32 MRQ:1; //MCS feedback. Request for a MCS feedback UINT32 MRQ:1; //MCS feedback. Request for a MCS feedback
UINT32 MRSorASI:3; // MRQ Sequence identifier. unchanged during entire procedure. 0x000-0x110. UINT32 MRSorASI:3; // MRQ Sequence identifier. unchanged during entire procedure. 0x000-0x110.
UINT32 MFS:3; //SET to the received value of MRS. 0x111 for unsolicited MFB. UINT32 MFS:3; //SET to the received value of MRS. 0x111 for unsolicited MFB.
UINT32 MFBorASC:7; //Link adaptation feedback containing recommended MCS. 0x7f for no feedback or not available UINT32 MFBorASC:7; //Link adaptation feedback containing recommended MCS. 0x7f for no feedback or not available
UINT32 CalPos:2; // calibration position UINT32 CalPos:2; // calibration position
UINT32 CalSeq:2; //calibration sequence UINT32 CalSeq:2; //calibration sequence
UINT32 FBKReq:2; //feedback request UINT32 FBKReq:2; //feedback request
UINT32 CSISTEERING:2; //CSI/ STEERING UINT32 CSISTEERING:2; //CSI/ STEERING
UINT32 ZLFAnnouce:1; // ZLF announcement UINT32 ZLFAnnouce:1; // ZLF announcement
UINT32 rsv:5; //calibration sequence UINT32 rsv:5; //calibration sequence
UINT32 ACConstraint:1; //feedback request UINT32 ACConstraint:1; //feedback request
UINT32 RDG:1; //RDG / More PPDU UINT32 RDG:1; //RDG / More PPDU
} HT_CONTROL, *PHT_CONTROL; } HT_CONTROL, *PHT_CONTROL;
// 2-byte QOS CONTROL field // 2-byte QOS CONTROL field
typedef struct PACKED { typedef struct PACKED {
USHORT TID:4; USHORT TID:4;
USHORT EOSP:1; USHORT EOSP:1;
USHORT AckPolicy:2; //0: normal ACK 1:No ACK 2:scheduled under MTBA/PSMP 3: BA USHORT AckPolicy:2; //0: normal ACK 1:No ACK 2:scheduled under MTBA/PSMP 3: BA
USHORT AMsduPresent:1; USHORT AMsduPresent:1;
USHORT Txop_QueueSize:8; USHORT Txop_QueueSize:8;
} QOS_CONTROL, *PQOS_CONTROL; } QOS_CONTROL, *PQOS_CONTROL;
// 2-byte Frame control field // 2-byte Frame control field
typedef struct PACKED { typedef struct PACKED {
USHORT Ver:2; // Protocol version USHORT Ver:2; // Protocol version
USHORT Type:2; // MSDU type USHORT Type:2; // MSDU type
USHORT SubType:4; // MSDU subtype USHORT SubType:4; // MSDU subtype
USHORT ToDs:1; // To DS indication USHORT ToDs:1; // To DS indication
USHORT FrDs:1; // From DS indication USHORT FrDs:1; // From DS indication
USHORT MoreFrag:1; // More fragment bit USHORT MoreFrag:1; // More fragment bit
USHORT Retry:1; // Retry status bit USHORT Retry:1; // Retry status bit
USHORT PwrMgmt:1; // Power management bit USHORT PwrMgmt:1; // Power management bit
USHORT MoreData:1; // More data bit USHORT MoreData:1; // More data bit
USHORT Wep:1; // Wep data USHORT Wep:1; // Wep data
USHORT Order:1; // Strict order expected USHORT Order:1; // Strict order expected
} FRAME_CONTROL, *PFRAME_CONTROL; } FRAME_CONTROL, *PFRAME_CONTROL;
typedef struct PACKED _HEADER_802_11 { typedef struct PACKED _HEADER_802_11 {
FRAME_CONTROL FC; FRAME_CONTROL FC;
USHORT Duration; USHORT Duration;
UCHAR Addr1[MAC_ADDR_LEN]; UCHAR Addr1[MAC_ADDR_LEN];
UCHAR Addr2[MAC_ADDR_LEN]; UCHAR Addr2[MAC_ADDR_LEN];
UCHAR Addr3[MAC_ADDR_LEN]; UCHAR Addr3[MAC_ADDR_LEN];
USHORT Frag:4; USHORT Frag:4;
USHORT Sequence:12; USHORT Sequence:12;
UCHAR Octet[0]; UCHAR Octet[0];
} HEADER_802_11, *PHEADER_802_11; } HEADER_802_11, *PHEADER_802_11;
typedef struct PACKED _PSPOLL_FRAME { typedef struct PACKED _PSPOLL_FRAME {
FRAME_CONTROL FC; FRAME_CONTROL FC;
USHORT Aid; USHORT Aid;
UCHAR Bssid[MAC_ADDR_LEN]; UCHAR Bssid[MAC_ADDR_LEN];
UCHAR Ta[MAC_ADDR_LEN]; UCHAR Ta[MAC_ADDR_LEN];
} PSPOLL_FRAME, *PPSPOLL_FRAME; } PSPOLL_FRAME, *PPSPOLL_FRAME;
typedef struct PACKED _RTS_FRAME { typedef struct PACKED _RTS_FRAME {
FRAME_CONTROL FC; FRAME_CONTROL FC;
USHORT Duration; USHORT Duration;
UCHAR Addr1[MAC_ADDR_LEN]; UCHAR Addr1[MAC_ADDR_LEN];
UCHAR Addr2[MAC_ADDR_LEN]; UCHAR Addr2[MAC_ADDR_LEN];
}RTS_FRAME, *PRTS_FRAME; } RTS_FRAME, *PRTS_FRAME;
#endif // __DOT11_BASE_H__ // #endif // __DOT11_BASE_H__ //

View File

@@ -37,7 +37,6 @@
#ifndef __RTMP_IFACE_H__ #ifndef __RTMP_IFACE_H__
#define __RTMP_IFACE_H__ #define __RTMP_IFACE_H__
#ifdef RTMP_PCI_SUPPORT #ifdef RTMP_PCI_SUPPORT
#include "iface/rtmp_pci.h" #include "iface/rtmp_pci.h"
#endif // RTMP_PCI_SUPPORT // #endif // RTMP_PCI_SUPPORT //
@@ -45,40 +44,32 @@
#include "iface/rtmp_usb.h" #include "iface/rtmp_usb.h"
#endif // RTMP_USB_SUPPORT // #endif // RTMP_USB_SUPPORT //
typedef struct _INF_PCI_CONFIG_ typedef struct _INF_PCI_CONFIG_ {
{ unsigned long CSRBaseAddress; // PCI MMIO Base Address, all access will use
unsigned long CSRBaseAddress; // PCI MMIO Base Address, all access will use unsigned int irq_num;
unsigned int irq_num; } INF_PCI_CONFIG;
}INF_PCI_CONFIG;
typedef struct _INF_USB_CONFIG_ {
UINT8 BulkInEpAddr; // bulk-in endpoint address
UINT8 BulkOutEpAddr[6]; // bulk-out endpoint address
} INF_USB_CONFIG;
typedef struct _INF_USB_CONFIG_ typedef struct _INF_RBUS_CONFIG_ {
{ unsigned long csr_addr;
UINT8 BulkInEpAddr; // bulk-in endpoint address unsigned int irq;
UINT8 BulkOutEpAddr[6]; // bulk-out endpoint address } INF_RBUS_CONFIG;
}INF_USB_CONFIG;
typedef enum _RTMP_INF_TYPE_ {
typedef struct _INF_RBUS_CONFIG_
{
unsigned long csr_addr;
unsigned int irq;
}INF_RBUS_CONFIG;
typedef enum _RTMP_INF_TYPE_
{
RTMP_DEV_INF_UNKNOWN = 0, RTMP_DEV_INF_UNKNOWN = 0,
RTMP_DEV_INF_PCI = 1, RTMP_DEV_INF_PCI = 1,
RTMP_DEV_INF_USB = 2, RTMP_DEV_INF_USB = 2,
RTMP_DEV_INF_RBUS = 4, RTMP_DEV_INF_RBUS = 4,
}RTMP_INF_TYPE; } RTMP_INF_TYPE;
typedef union _RTMP_INF_CONFIG_ {
typedef union _RTMP_INF_CONFIG_{ struct _INF_PCI_CONFIG_ pciConfig;
struct _INF_PCI_CONFIG_ pciConfig; struct _INF_USB_CONFIG_ usbConfig;
struct _INF_USB_CONFIG_ usbConfig; struct _INF_RBUS_CONFIG_ rbusConfig;
struct _INF_RBUS_CONFIG_ rbusConfig; } RTMP_INF_CONFIG;
}RTMP_INF_CONFIG;
#endif // __RTMP_IFACE_H__ // #endif // __RTMP_IFACE_H__ //

View File

@@ -38,18 +38,12 @@
#ifndef __RTMP_MCU_H__ #ifndef __RTMP_MCU_H__
#define __RTMP_MCU_H__ #define __RTMP_MCU_H__
INT RtmpAsicEraseFirmware(IN PRTMP_ADAPTER pAd);
INT RtmpAsicEraseFirmware( NDIS_STATUS RtmpAsicLoadFirmware(IN PRTMP_ADAPTER pAd);
IN PRTMP_ADAPTER pAd);
NDIS_STATUS RtmpAsicLoadFirmware( INT RtmpAsicSendCommandToMcu(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd); IN UCHAR Command,
IN UCHAR Token, IN UCHAR Arg0, IN UCHAR Arg1);
INT RtmpAsicSendCommandToMcu(
IN PRTMP_ADAPTER pAd,
IN UCHAR Command,
IN UCHAR Token,
IN UCHAR Arg0,
IN UCHAR Arg1);
#endif // __RTMP_MCU_H__ // #endif // __RTMP_MCU_H__ //

View File

@@ -34,7 +34,6 @@
--------- ---------- ---------------------------------------------- --------- ---------- ----------------------------------------------
*/ */
#ifndef __RTMP_OS_H__ #ifndef __RTMP_OS_H__
#define __RTMP_OS_H__ #define __RTMP_OS_H__
@@ -42,8 +41,6 @@
#include "rt_linux.h" #include "rt_linux.h"
#endif // LINUX // #endif // LINUX //
/* /*
This data structure mainly strip some callback function defined in This data structure mainly strip some callback function defined in
"struct net_device" in kernel source "include/linux/netdevice.h". "struct net_device" in kernel source "include/linux/netdevice.h".
@@ -51,46 +48,41 @@
The definition of this data structure may various depends on different The definition of this data structure may various depends on different
OS. Use it carefully. OS. Use it carefully.
*/ */
typedef struct _RTMP_OS_NETDEV_OP_HOOK_ typedef struct _RTMP_OS_NETDEV_OP_HOOK_ {
{
const struct net_device_ops *netdev_ops; const struct net_device_ops *netdev_ops;
void *priv; void *priv;
int priv_flags; int priv_flags;
unsigned char devAddr[6]; unsigned char devAddr[6];
unsigned char devName[16]; unsigned char devName[16];
unsigned char needProtcted; unsigned char needProtcted;
}RTMP_OS_NETDEV_OP_HOOK, *PRTMP_OS_NETDEV_OP_HOOK; } RTMP_OS_NETDEV_OP_HOOK, *PRTMP_OS_NETDEV_OP_HOOK;
typedef enum _RTMP_TASK_STATUS_ {
typedef enum _RTMP_TASK_STATUS_
{
RTMP_TASK_STAT_UNKNOWN = 0, RTMP_TASK_STAT_UNKNOWN = 0,
RTMP_TASK_STAT_INITED = 1, RTMP_TASK_STAT_INITED = 1,
RTMP_TASK_STAT_RUNNING = 2, RTMP_TASK_STAT_RUNNING = 2,
RTMP_TASK_STAT_STOPED = 4, RTMP_TASK_STAT_STOPED = 4,
}RTMP_TASK_STATUS; } RTMP_TASK_STATUS;
#define RTMP_TASK_CAN_DO_INSERT (RTMP_TASK_STAT_INITED |RTMP_TASK_STAT_RUNNING) #define RTMP_TASK_CAN_DO_INSERT (RTMP_TASK_STAT_INITED |RTMP_TASK_STAT_RUNNING)
#define RTMP_OS_TASK_NAME_LEN 16 #define RTMP_OS_TASK_NAME_LEN 16
typedef struct _RTMP_OS_TASK_ typedef struct _RTMP_OS_TASK_ {
{ char taskName[RTMP_OS_TASK_NAME_LEN];
char taskName[RTMP_OS_TASK_NAME_LEN]; void *priv;
void *priv; //unsigned long taskFlags;
//unsigned long taskFlags; RTMP_TASK_STATUS taskStatus;
RTMP_TASK_STATUS taskStatus;
#ifndef KTHREAD_SUPPORT #ifndef KTHREAD_SUPPORT
RTMP_OS_SEM taskSema; RTMP_OS_SEM taskSema;
RTMP_OS_PID taskPID; RTMP_OS_PID taskPID;
struct completion taskComplete; struct completion taskComplete;
#endif #endif
unsigned char task_killed; unsigned char task_killed;
#ifdef KTHREAD_SUPPORT #ifdef KTHREAD_SUPPORT
struct task_struct *kthread_task; struct task_struct *kthread_task;
wait_queue_head_t kthread_q; wait_queue_head_t kthread_q;
BOOLEAN kthread_running; BOOLEAN kthread_running;
#endif #endif
}RTMP_OS_TASK; } RTMP_OS_TASK;
int RtmpOSIRQRequest(IN PNET_DEV pNetDev); int RtmpOSIRQRequest(IN PNET_DEV pNetDev);
int RtmpOSIRQRelease(IN PNET_DEV pNetDev); int RtmpOSIRQRelease(IN PNET_DEV pNetDev);

View File

@@ -43,59 +43,52 @@
#include "rtmp_os.h" #include "rtmp_os.h"
#define DECLARE_TIMER_FUNCTION(_func) \ #define DECLARE_TIMER_FUNCTION(_func) \
void rtmp_timer_##_func(unsigned long data) void rtmp_timer_##_func(unsigned long data)
#define GET_TIMER_FUNCTION(_func) \ #define GET_TIMER_FUNCTION(_func) \
rtmp_timer_##_func rtmp_timer_##_func
/* ----------------- Timer Related MARCO ---------------*/ /* ----------------- Timer Related MARCO ---------------*/
// In some os or chipset, we have a lot of timer functions and will read/write register, // In some os or chipset, we have a lot of timer functions and will read/write register,
// it's not allowed in Linux USB sub-system to do it ( because of sleep issue when // it's not allowed in Linux USB sub-system to do it ( because of sleep issue when
// submit to ctrl pipe). So we need a wrapper function to take care it. // submit to ctrl pipe). So we need a wrapper function to take care it.
#ifdef RTMP_TIMER_TASK_SUPPORT #ifdef RTMP_TIMER_TASK_SUPPORT
typedef VOID (*RTMP_TIMER_TASK_HANDLE)( typedef VOID(*RTMP_TIMER_TASK_HANDLE) (IN PVOID SystemSpecific1,
IN PVOID SystemSpecific1, IN PVOID FunctionContext,
IN PVOID FunctionContext, IN PVOID SystemSpecific2,
IN PVOID SystemSpecific2, IN PVOID SystemSpecific3);
IN PVOID SystemSpecific3);
#endif // RTMP_TIMER_TASK_SUPPORT // #endif // RTMP_TIMER_TASK_SUPPORT //
typedef struct _RALINK_TIMER_STRUCT { typedef struct _RALINK_TIMER_STRUCT {
RTMP_OS_TIMER TimerObj; // Ndis Timer object RTMP_OS_TIMER TimerObj; // Ndis Timer object
BOOLEAN Valid; // Set to True when call RTMPInitTimer BOOLEAN Valid; // Set to True when call RTMPInitTimer
BOOLEAN State; // True if timer cancelled BOOLEAN State; // True if timer cancelled
BOOLEAN PeriodicType; // True if timer is periodic timer BOOLEAN PeriodicType; // True if timer is periodic timer
BOOLEAN Repeat; // True if periodic timer BOOLEAN Repeat; // True if periodic timer
ULONG TimerValue; // Timer value in milliseconds ULONG TimerValue; // Timer value in milliseconds
ULONG cookie; // os specific object ULONG cookie; // os specific object
#ifdef RTMP_TIMER_TASK_SUPPORT #ifdef RTMP_TIMER_TASK_SUPPORT
RTMP_TIMER_TASK_HANDLE handle; RTMP_TIMER_TASK_HANDLE handle;
void *pAd; void *pAd;
#endif // RTMP_TIMER_TASK_SUPPORT // #endif // RTMP_TIMER_TASK_SUPPORT //
}RALINK_TIMER_STRUCT, *PRALINK_TIMER_STRUCT; } RALINK_TIMER_STRUCT, *PRALINK_TIMER_STRUCT;
#ifdef RTMP_TIMER_TASK_SUPPORT #ifdef RTMP_TIMER_TASK_SUPPORT
typedef struct _RTMP_TIMER_TASK_ENTRY_ typedef struct _RTMP_TIMER_TASK_ENTRY_ {
{ RALINK_TIMER_STRUCT *pRaTimer;
RALINK_TIMER_STRUCT *pRaTimer; struct _RTMP_TIMER_TASK_ENTRY_ *pNext;
struct _RTMP_TIMER_TASK_ENTRY_ *pNext; } RTMP_TIMER_TASK_ENTRY;
}RTMP_TIMER_TASK_ENTRY;
#define TIMER_QUEUE_SIZE_MAX 128 #define TIMER_QUEUE_SIZE_MAX 128
typedef struct _RTMP_TIMER_TASK_QUEUE_ typedef struct _RTMP_TIMER_TASK_QUEUE_ {
{ unsigned int status;
unsigned int status; unsigned char *pTimerQPoll;
unsigned char *pTimerQPoll; RTMP_TIMER_TASK_ENTRY *pQPollFreeList;
RTMP_TIMER_TASK_ENTRY *pQPollFreeList; RTMP_TIMER_TASK_ENTRY *pQHead;
RTMP_TIMER_TASK_ENTRY *pQHead; RTMP_TIMER_TASK_ENTRY *pQTail;
RTMP_TIMER_TASK_ENTRY *pQTail; } RTMP_TIMER_TASK_QUEUE;
}RTMP_TIMER_TASK_QUEUE;
#define BUILD_TIMER_FUNCTION(_func) \ #define BUILD_TIMER_FUNCTION(_func) \
void rtmp_timer_##_func(unsigned long data) \ void rtmp_timer_##_func(unsigned long data) \
@@ -122,7 +115,6 @@ void rtmp_timer_##_func(unsigned long data) \
} }
#endif // RTMP_TIMER_TASK_SUPPORT // #endif // RTMP_TIMER_TASK_SUPPORT //
DECLARE_TIMER_FUNCTION(MlmePeriodicExec); DECLARE_TIMER_FUNCTION(MlmePeriodicExec);
DECLARE_TIMER_FUNCTION(MlmeRssiReportExec); DECLARE_TIMER_FUNCTION(MlmeRssiReportExec);
DECLARE_TIMER_FUNCTION(AsicRxAntEvalTimeout); DECLARE_TIMER_FUNCTION(AsicRxAntEvalTimeout);
@@ -152,5 +144,4 @@ DECLARE_TIMER_FUNCTION(RtmpUsbStaAsicForceWakeupTimeout);
DECLARE_TIMER_FUNCTION(LedCtrlMain); DECLARE_TIMER_FUNCTION(LedCtrlMain);
#endif #endif
#endif // __RTMP_TIMER_H__ // #endif // __RTMP_TIMER_H__ //

View File

@@ -38,110 +38,101 @@
#ifndef __RTMP_TYPE_H__ #ifndef __RTMP_TYPE_H__
#define __RTMP_TYPE_H__ #define __RTMP_TYPE_H__
#define PACKED __attribute__ ((packed)) #define PACKED __attribute__ ((packed))
#ifdef LINUX #ifdef LINUX
// Put platform dependent declaration here // Put platform dependent declaration here
// For example, linux type definition // For example, linux type definition
typedef unsigned char UINT8; typedef unsigned char UINT8;
typedef unsigned short UINT16; typedef unsigned short UINT16;
typedef unsigned int UINT32; typedef unsigned int UINT32;
typedef unsigned long long UINT64; typedef unsigned long long UINT64;
typedef int INT32; typedef int INT32;
typedef long long INT64; typedef long long INT64;
#endif // LINUX // #endif // LINUX //
typedef unsigned char * PUINT8; typedef unsigned char *PUINT8;
typedef unsigned short * PUINT16; typedef unsigned short *PUINT16;
typedef unsigned int * PUINT32; typedef unsigned int *PUINT32;
typedef unsigned long long * PUINT64; typedef unsigned long long *PUINT64;
typedef int * PINT32; typedef int *PINT32;
typedef long long * PINT64; typedef long long *PINT64;
// modified for fixing compile warning on Sigma 8634 platform // modified for fixing compile warning on Sigma 8634 platform
typedef char STRING; typedef char STRING;
typedef signed char CHAR; typedef signed char CHAR;
typedef signed short SHORT;
typedef signed int INT;
typedef signed long LONG;
typedef signed long long LONGLONG;
typedef signed short SHORT;
typedef signed int INT;
typedef signed long LONG;
typedef signed long long LONGLONG;
#ifdef LINUX #ifdef LINUX
typedef unsigned char UCHAR; typedef unsigned char UCHAR;
typedef unsigned short USHORT; typedef unsigned short USHORT;
typedef unsigned int UINT; typedef unsigned int UINT;
typedef unsigned long ULONG; typedef unsigned long ULONG;
#endif // LINUX // #endif // LINUX //
typedef unsigned long long ULONGLONG; typedef unsigned long long ULONGLONG;
typedef unsigned char BOOLEAN; typedef unsigned char BOOLEAN;
#ifdef LINUX #ifdef LINUX
typedef void VOID; typedef void VOID;
#endif // LINUX // #endif // LINUX //
typedef char * PSTRING; typedef char *PSTRING;
typedef VOID * PVOID; typedef VOID *PVOID;
typedef CHAR * PCHAR; typedef CHAR *PCHAR;
typedef UCHAR * PUCHAR; typedef UCHAR *PUCHAR;
typedef USHORT * PUSHORT; typedef USHORT *PUSHORT;
typedef LONG * PLONG; typedef LONG *PLONG;
typedef ULONG * PULONG; typedef ULONG *PULONG;
typedef UINT * PUINT; typedef UINT *PUINT;
typedef unsigned int NDIS_MEDIA_STATE; typedef unsigned int NDIS_MEDIA_STATE;
typedef union _LARGE_INTEGER { typedef union _LARGE_INTEGER {
struct { struct {
UINT LowPart; UINT LowPart;
INT32 HighPart; INT32 HighPart;
} u; } u;
INT64 QuadPart; INT64 QuadPart;
} LARGE_INTEGER; } LARGE_INTEGER;
// //
// Register set pair for initialzation register set definition // Register set pair for initialzation register set definition
// //
typedef struct _RTMP_REG_PAIR typedef struct _RTMP_REG_PAIR {
{ ULONG Register;
ULONG Register; ULONG Value;
ULONG Value;
} RTMP_REG_PAIR, *PRTMP_REG_PAIR; } RTMP_REG_PAIR, *PRTMP_REG_PAIR;
typedef struct _REG_PAIR typedef struct _REG_PAIR {
{ UCHAR Register;
UCHAR Register; UCHAR Value;
UCHAR Value;
} REG_PAIR, *PREG_PAIR; } REG_PAIR, *PREG_PAIR;
// //
// Register set pair for initialzation register set definition // Register set pair for initialzation register set definition
// //
typedef struct _RTMP_RF_REGS typedef struct _RTMP_RF_REGS {
{ UCHAR Channel;
UCHAR Channel; ULONG R1;
ULONG R1; ULONG R2;
ULONG R2; ULONG R3;
ULONG R3; ULONG R4;
ULONG R4;
} RTMP_RF_REGS, *PRTMP_RF_REGS; } RTMP_RF_REGS, *PRTMP_RF_REGS;
typedef struct _FREQUENCY_ITEM { typedef struct _FREQUENCY_ITEM {
UCHAR Channel; UCHAR Channel;
UCHAR N; UCHAR N;
UCHAR R; UCHAR R;
UCHAR K; UCHAR K;
} FREQUENCY_ITEM, *PFREQUENCY_ITEM; } FREQUENCY_ITEM, *PFREQUENCY_ITEM;
typedef int NTSTATUS;
typedef int NTSTATUS;
#define STATUS_SUCCESS 0x00 #define STATUS_SUCCESS 0x00
#define STATUS_UNSUCCESSFUL 0x01 #define STATUS_UNSUCCESSFUL 0x01
#endif // __RTMP_TYPE_H__ // #endif // __RTMP_TYPE_H__ //

View File

@@ -25,7 +25,6 @@
************************************************************************* *************************************************************************
*/ */
#ifndef __RTUSB_IO_H__ #ifndef __RTUSB_IO_H__
#define __RTUSB_IO_H__ #define __RTUSB_IO_H__
@@ -60,8 +59,8 @@
#define CMDTHREAD_SET_ASIC_WCID 0x0D730226 // cmd #define CMDTHREAD_SET_ASIC_WCID 0x0D730226 // cmd
#define CMDTHREAD_SET_ASIC_WCID_CIPHER 0x0D730227 // cmd #define CMDTHREAD_SET_ASIC_WCID_CIPHER 0x0D730227 // cmd
#define CMDTHREAD_QKERIODIC_EXECUT 0x0D73023D // cmd #define CMDTHREAD_QKERIODIC_EXECUT 0x0D73023D // cmd
#define RT_CMD_SET_KEY_TABLE 0x0D730228 // cmd #define RT_CMD_SET_KEY_TABLE 0x0D730228 // cmd
#define RT_CMD_SET_RX_WCID_TABLE 0x0D730229 // cmd #define RT_CMD_SET_RX_WCID_TABLE 0x0D730229 // cmd
#define CMDTHREAD_SET_CLIENT_MAC_ENTRY 0x0D73023E // cmd #define CMDTHREAD_SET_CLIENT_MAC_ENTRY 0x0D73023E // cmd
#define CMDTHREAD_SET_GROUP_KEY 0x0D73023F // cmd #define CMDTHREAD_SET_GROUP_KEY 0x0D73023F // cmd
#define CMDTHREAD_SET_PAIRWISE_KEY 0x0D730240 // cmd #define CMDTHREAD_SET_PAIRWISE_KEY 0x0D730240 // cmd
@@ -75,34 +74,31 @@
#define CMDTHREAD_UPDATE_PROTECT 0x0D790103 // cmd #define CMDTHREAD_UPDATE_PROTECT 0x0D790103 // cmd
// end johnli // end johnli
//CMDTHREAD_MULTI_READ_MAC //CMDTHREAD_MULTI_READ_MAC
//CMDTHREAD_MULTI_WRITE_MAC //CMDTHREAD_MULTI_WRITE_MAC
//CMDTHREAD_VENDOR_EEPROM_READ //CMDTHREAD_VENDOR_EEPROM_READ
//CMDTHREAD_VENDOR_EEPROM_WRITE //CMDTHREAD_VENDOR_EEPROM_WRITE
typedef struct _CMDHandler_TLV { typedef struct _CMDHandler_TLV {
USHORT Offset; USHORT Offset;
USHORT Length; USHORT Length;
UCHAR DataFirst; UCHAR DataFirst;
} CMDHandler_TLV, *PCMDHandler_TLV; } CMDHandler_TLV, *PCMDHandler_TLV;
typedef struct _CmdQElmt {
UINT command;
PVOID buffer;
ULONG bufferlength;
BOOLEAN CmdFromNdis;
BOOLEAN SetOperation;
struct _CmdQElmt *next;
} CmdQElmt, *PCmdQElmt;
typedef struct _CmdQElmt { typedef struct _CmdQ {
UINT command; UINT size;
PVOID buffer; CmdQElmt *head;
ULONG bufferlength; CmdQElmt *tail;
BOOLEAN CmdFromNdis; UINT32 CmdQState;
BOOLEAN SetOperation; } CmdQ, *PCmdQ;
struct _CmdQElmt *next;
} CmdQElmt, *PCmdQElmt;
typedef struct _CmdQ {
UINT size;
CmdQElmt *head;
CmdQElmt *tail;
UINT32 CmdQState;
}CmdQ, *PCmdQ;
#define EnqueueCmd(cmdq, cmdqelmt) \ #define EnqueueCmd(cmdq, cmdqelmt) \
{ \ { \
@@ -115,7 +111,6 @@ typedef struct _CmdQ {
cmdq->size++; \ cmdq->size++; \
} }
/****************************************************************************** /******************************************************************************
USB Cmd to ASIC Related MACRO USB Cmd to ASIC Related MACRO
@@ -185,5 +180,4 @@ typedef struct _CmdQ {
RTUSBEnqueueInternalCmd((_pAd), CMDTHREAD_SET_ASIC_WCID, &SetAsicWcid, sizeof(RT_SET_ASIC_WCID)); \ RTUSBEnqueueInternalCmd((_pAd), CMDTHREAD_SET_ASIC_WCID, &SetAsicWcid, sizeof(RT_SET_ASIC_WCID)); \
}while(0) }while(0)
#endif // __RTUSB_IO_H__ // #endif // __RTUSB_IO_H__ //

View File

@@ -31,10 +31,7 @@
#include "rtmp_type.h" #include "rtmp_type.h"
#include "spectrum_def.h" #include "spectrum_def.h"
CHAR RTMP_GetTxPwr(IN PRTMP_ADAPTER pAd, IN HTTRANSMIT_SETTING HTTxMode);
CHAR RTMP_GetTxPwr(
IN PRTMP_ADAPTER pAd,
IN HTTRANSMIT_SETTING HTTxMode);
/* /*
========================================================================== ==========================================================================
@@ -48,17 +45,16 @@ CHAR RTMP_GetTxPwr(
Return : None. Return : None.
========================================================================== ==========================================================================
*/ */
VOID MakeMeasurementReqFrame( VOID MakeMeasurementReqFrame(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, OUT PUCHAR pOutBuffer,
OUT PUCHAR pOutBuffer, OUT PULONG pFrameLen,
OUT PULONG pFrameLen, IN UINT8 TotalLen,
IN UINT8 TotalLen, IN UINT8 Category,
IN UINT8 Category, IN UINT8 Action,
IN UINT8 Action, IN UINT8 MeasureToken,
IN UINT8 MeasureToken, IN UINT8 MeasureReqMode,
IN UINT8 MeasureReqMode, IN UINT8 MeasureReqType,
IN UINT8 MeasureReqType, IN UINT8 NumOfRepetitions);
IN UINT8 NumOfRepetitions);
/* /*
========================================================================== ==========================================================================
@@ -72,15 +68,13 @@ VOID MakeMeasurementReqFrame(
Return : None. Return : None.
========================================================================== ==========================================================================
*/ */
VOID EnqueueMeasurementRep( VOID EnqueueMeasurementRep(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, IN PUCHAR pDA,
IN PUCHAR pDA, IN UINT8 DialogToken,
IN UINT8 DialogToken, IN UINT8 MeasureToken,
IN UINT8 MeasureToken, IN UINT8 MeasureReqMode,
IN UINT8 MeasureReqMode, IN UINT8 MeasureReqType,
IN UINT8 MeasureReqType, IN UINT8 ReportInfoLen, IN PUINT8 pReportInfo);
IN UINT8 ReportInfoLen,
IN PUINT8 pReportInfo);
/* /*
========================================================================== ==========================================================================
@@ -94,10 +88,7 @@ VOID EnqueueMeasurementRep(
Return : None. Return : None.
========================================================================== ==========================================================================
*/ */
VOID EnqueueTPCReq( VOID EnqueueTPCReq(IN PRTMP_ADAPTER pAd, IN PUCHAR pDA, IN UCHAR DialogToken);
IN PRTMP_ADAPTER pAd,
IN PUCHAR pDA,
IN UCHAR DialogToken);
/* /*
========================================================================== ==========================================================================
@@ -111,12 +102,9 @@ VOID EnqueueTPCReq(
Return : None. Return : None.
========================================================================== ==========================================================================
*/ */
VOID EnqueueTPCRep( VOID EnqueueTPCRep(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, IN PUCHAR pDA,
IN PUCHAR pDA, IN UINT8 DialogToken, IN UINT8 TxPwr, IN UINT8 LinkMargin);
IN UINT8 DialogToken,
IN UINT8 TxPwr,
IN UINT8 LinkMargin);
/* /*
========================================================================== ==========================================================================
@@ -132,11 +120,8 @@ VOID EnqueueTPCRep(
Return : None. Return : None.
========================================================================== ==========================================================================
*/ */
VOID EnqueueChSwAnn( VOID EnqueueChSwAnn(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, IN PUCHAR pDA, IN UINT8 ChSwMode, IN UINT8 NewCh);
IN PUCHAR pDA,
IN UINT8 ChSwMode,
IN UINT8 NewCh);
/* /*
========================================================================== ==========================================================================
@@ -150,9 +135,7 @@ VOID EnqueueChSwAnn(
Return : None. Return : None.
========================================================================== ==========================================================================
*/ */
VOID PeerSpectrumAction( VOID PeerSpectrumAction(IN PRTMP_ADAPTER pAd, IN MLME_QUEUE_ELEM * Elem);
IN PRTMP_ADAPTER pAd,
IN MLME_QUEUE_ELEM *Elem);
/* /*
========================================================================== ==========================================================================
@@ -163,73 +146,44 @@ VOID PeerSpectrumAction(
Return : None. Return : None.
========================================================================== ==========================================================================
*/ */
INT Set_MeasureReq_Proc( INT Set_MeasureReq_Proc(IN PRTMP_ADAPTER pAd, IN PSTRING arg);
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_TpcReq_Proc( INT Set_TpcReq_Proc(IN PRTMP_ADAPTER pAd, IN PSTRING arg);
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
INT Set_PwrConstraint( INT Set_PwrConstraint(IN PRTMP_ADAPTER pAd, IN PSTRING arg);
IN PRTMP_ADAPTER pAd,
IN PSTRING arg);
VOID MeasureReqTabInit(IN PRTMP_ADAPTER pAd);
VOID MeasureReqTabInit( VOID MeasureReqTabExit(IN PRTMP_ADAPTER pAd);
IN PRTMP_ADAPTER pAd);
VOID MeasureReqTabExit( PMEASURE_REQ_ENTRY MeasureReqLookUp(IN PRTMP_ADAPTER pAd, IN UINT8 DialogToken);
IN PRTMP_ADAPTER pAd);
PMEASURE_REQ_ENTRY MeasureReqLookUp( PMEASURE_REQ_ENTRY MeasureReqInsert(IN PRTMP_ADAPTER pAd, IN UINT8 DialogToken);
IN PRTMP_ADAPTER pAd,
IN UINT8 DialogToken);
PMEASURE_REQ_ENTRY MeasureReqInsert( VOID MeasureReqDelete(IN PRTMP_ADAPTER pAd, IN UINT8 DialogToken);
IN PRTMP_ADAPTER pAd,
IN UINT8 DialogToken);
VOID MeasureReqDelete( VOID InsertChannelRepIE(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, OUT PUCHAR pFrameBuf,
IN UINT8 DialogToken); OUT PULONG pFrameLen,
IN PSTRING pCountry, IN UINT8 RegulatoryClass);
VOID InsertChannelRepIE( VOID InsertTpcReportIE(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, OUT PUCHAR pFrameBuf,
OUT PUCHAR pFrameBuf, OUT PULONG pFrameLen,
OUT PULONG pFrameLen, IN UINT8 TxPwr, IN UINT8 LinkMargin);
IN PSTRING pCountry,
IN UINT8 RegulatoryClass);
VOID InsertTpcReportIE( VOID InsertDialogToken(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, OUT PUCHAR pFrameBuf,
OUT PUCHAR pFrameBuf, OUT PULONG pFrameLen, IN UINT8 DialogToken);
OUT PULONG pFrameLen,
IN UINT8 TxPwr,
IN UINT8 LinkMargin);
VOID InsertDialogToken( VOID TpcReqTabInit(IN PRTMP_ADAPTER pAd);
IN PRTMP_ADAPTER pAd,
OUT PUCHAR pFrameBuf,
OUT PULONG pFrameLen,
IN UINT8 DialogToken);
VOID TpcReqTabInit( VOID TpcReqTabExit(IN PRTMP_ADAPTER pAd);
IN PRTMP_ADAPTER pAd);
VOID TpcReqTabExit( VOID NotifyChSwAnnToPeerAPs(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd); IN PUCHAR pRA,
IN PUCHAR pTA, IN UINT8 ChSwMode, IN UINT8 Channel);
VOID NotifyChSwAnnToPeerAPs( VOID RguClass_BuildBcnChList(IN PRTMP_ADAPTER pAd,
IN PRTMP_ADAPTER pAd, OUT PUCHAR pBuf, OUT PULONG pBufLen);
IN PUCHAR pRA,
IN PUCHAR pTA,
IN UINT8 ChSwMode,
IN UINT8 Channel);
VOID RguClass_BuildBcnChList(
IN PRTMP_ADAPTER pAd,
OUT PUCHAR pBuf,
OUT PULONG pBufLen);
#endif // __SPECTRUM_H__ // #endif // __SPECTRUM_H__ //

View File

@@ -39,69 +39,59 @@
#ifndef __SPECTRUM_DEF_H__ #ifndef __SPECTRUM_DEF_H__
#define __SPECTRUM_DEF_H__ #define __SPECTRUM_DEF_H__
#define MAX_MEASURE_REQ_TAB_SIZE 32 #define MAX_MEASURE_REQ_TAB_SIZE 32
#define MAX_HASH_MEASURE_REQ_TAB_SIZE MAX_MEASURE_REQ_TAB_SIZE #define MAX_HASH_MEASURE_REQ_TAB_SIZE MAX_MEASURE_REQ_TAB_SIZE
#define MAX_TPC_REQ_TAB_SIZE 32 #define MAX_TPC_REQ_TAB_SIZE 32
#define MAX_HASH_TPC_REQ_TAB_SIZE MAX_TPC_REQ_TAB_SIZE #define MAX_HASH_TPC_REQ_TAB_SIZE MAX_TPC_REQ_TAB_SIZE
#define MIN_RCV_PWR 100 /* Negative value ((dBm) */ #define MIN_RCV_PWR 100 /* Negative value ((dBm) */
#define TPC_REQ_AGE_OUT 500 /* ms */ #define TPC_REQ_AGE_OUT 500 /* ms */
#define MQ_REQ_AGE_OUT 500 /* ms */ #define MQ_REQ_AGE_OUT 500 /* ms */
#define TPC_DIALOGTOKEN_HASH_INDEX(_DialogToken) ((_DialogToken) % MAX_HASH_TPC_REQ_TAB_SIZE) #define TPC_DIALOGTOKEN_HASH_INDEX(_DialogToken) ((_DialogToken) % MAX_HASH_TPC_REQ_TAB_SIZE)
#define MQ_DIALOGTOKEN_HASH_INDEX(_DialogToken) ((_DialogToken) % MAX_MEASURE_REQ_TAB_SIZE) #define MQ_DIALOGTOKEN_HASH_INDEX(_DialogToken) ((_DialogToken) % MAX_MEASURE_REQ_TAB_SIZE)
typedef struct _MEASURE_REQ_ENTRY typedef struct _MEASURE_REQ_ENTRY {
{
struct _MEASURE_REQ_ENTRY *pNext; struct _MEASURE_REQ_ENTRY *pNext;
ULONG lastTime; ULONG lastTime;
BOOLEAN Valid; BOOLEAN Valid;
UINT8 DialogToken; UINT8 DialogToken;
UINT8 MeasureDialogToken[3]; // 0:basic measure, 1: CCA measure, 2: RPI_Histogram measure. UINT8 MeasureDialogToken[3]; // 0:basic measure, 1: CCA measure, 2: RPI_Histogram measure.
} MEASURE_REQ_ENTRY, *PMEASURE_REQ_ENTRY; } MEASURE_REQ_ENTRY, *PMEASURE_REQ_ENTRY;
typedef struct _MEASURE_REQ_TAB typedef struct _MEASURE_REQ_TAB {
{
UCHAR Size; UCHAR Size;
PMEASURE_REQ_ENTRY Hash[MAX_HASH_MEASURE_REQ_TAB_SIZE]; PMEASURE_REQ_ENTRY Hash[MAX_HASH_MEASURE_REQ_TAB_SIZE];
MEASURE_REQ_ENTRY Content[MAX_MEASURE_REQ_TAB_SIZE]; MEASURE_REQ_ENTRY Content[MAX_MEASURE_REQ_TAB_SIZE];
} MEASURE_REQ_TAB, *PMEASURE_REQ_TAB; } MEASURE_REQ_TAB, *PMEASURE_REQ_TAB;
typedef struct _TPC_REQ_ENTRY typedef struct _TPC_REQ_ENTRY {
{
struct _TPC_REQ_ENTRY *pNext; struct _TPC_REQ_ENTRY *pNext;
ULONG lastTime; ULONG lastTime;
BOOLEAN Valid; BOOLEAN Valid;
UINT8 DialogToken; UINT8 DialogToken;
} TPC_REQ_ENTRY, *PTPC_REQ_ENTRY; } TPC_REQ_ENTRY, *PTPC_REQ_ENTRY;
typedef struct _TPC_REQ_TAB typedef struct _TPC_REQ_TAB {
{
UCHAR Size; UCHAR Size;
PTPC_REQ_ENTRY Hash[MAX_HASH_TPC_REQ_TAB_SIZE]; PTPC_REQ_ENTRY Hash[MAX_HASH_TPC_REQ_TAB_SIZE];
TPC_REQ_ENTRY Content[MAX_TPC_REQ_TAB_SIZE]; TPC_REQ_ENTRY Content[MAX_TPC_REQ_TAB_SIZE];
} TPC_REQ_TAB, *PTPC_REQ_TAB; } TPC_REQ_TAB, *PTPC_REQ_TAB;
/* The regulatory information */ /* The regulatory information */
typedef struct _DOT11_CHANNEL_SET typedef struct _DOT11_CHANNEL_SET {
{
UCHAR NumberOfChannels; UCHAR NumberOfChannels;
UINT8 MaxTxPwr; UINT8 MaxTxPwr;
UCHAR ChannelList[16]; UCHAR ChannelList[16];
} DOT11_CHANNEL_SET, *PDOT11_CHANNEL_SET; } DOT11_CHANNEL_SET, *PDOT11_CHANNEL_SET;
typedef struct _DOT11_REGULATORY_INFORMATION typedef struct _DOT11_REGULATORY_INFORMATION {
{
UCHAR RegulatoryClass; UCHAR RegulatoryClass;
DOT11_CHANNEL_SET ChannelSet; DOT11_CHANNEL_SET ChannelSet;
} DOT11_REGULATORY_INFORMATION, *PDOT11_REGULATORY_INFORMATION; } DOT11_REGULATORY_INFORMATION, *PDOT11_REGULATORY_INFORMATION;
#define RM_TPC_REQ 0 #define RM_TPC_REQ 0
#define RM_MEASURE_REQ 1 #define RM_MEASURE_REQ 1
@@ -111,53 +101,44 @@ typedef struct _DOT11_REGULATORY_INFORMATION
#define RM_CH_LOAD 3 #define RM_CH_LOAD 3
#define RM_NOISE_HISTOGRAM 4 #define RM_NOISE_HISTOGRAM 4
typedef struct PACKED _TPC_REPORT_INFO {
typedef struct PACKED _TPC_REPORT_INFO
{
UINT8 TxPwr; UINT8 TxPwr;
UINT8 LinkMargin; UINT8 LinkMargin;
} TPC_REPORT_INFO, *PTPC_REPORT_INFO; } TPC_REPORT_INFO, *PTPC_REPORT_INFO;
typedef struct PACKED _CH_SW_ANN_INFO typedef struct PACKED _CH_SW_ANN_INFO {
{
UINT8 ChSwMode; UINT8 ChSwMode;
UINT8 Channel; UINT8 Channel;
UINT8 ChSwCnt; UINT8 ChSwCnt;
} CH_SW_ANN_INFO, *PCH_SW_ANN_INFO; } CH_SW_ANN_INFO, *PCH_SW_ANN_INFO;
typedef union PACKED _MEASURE_REQ_MODE typedef union PACKED _MEASURE_REQ_MODE {
{ struct PACKED {
struct PACKED
{
UINT8 Parallel:1; UINT8 Parallel:1;
UINT8 Enable:1; UINT8 Enable:1;
UINT8 Request:1; UINT8 Request:1;
UINT8 Report:1; UINT8 Report:1;
UINT8 DurationMandatory:1; UINT8 DurationMandatory:1;
UINT8 :3; UINT8:3;
} field; } field;
UINT8 word; UINT8 word;
} MEASURE_REQ_MODE, *PMEASURE_REQ_MODE; } MEASURE_REQ_MODE, *PMEASURE_REQ_MODE;
typedef struct PACKED _MEASURE_REQ typedef struct PACKED _MEASURE_REQ {
{
UINT8 ChNum; UINT8 ChNum;
UINT64 MeasureStartTime; UINT64 MeasureStartTime;
UINT16 MeasureDuration; UINT16 MeasureDuration;
} MEASURE_REQ, *PMEASURE_REQ; } MEASURE_REQ, *PMEASURE_REQ;
typedef struct PACKED _MEASURE_REQ_INFO typedef struct PACKED _MEASURE_REQ_INFO {
{
UINT8 Token; UINT8 Token;
MEASURE_REQ_MODE ReqMode; MEASURE_REQ_MODE ReqMode;
UINT8 ReqType; UINT8 ReqType;
UINT8 Oct[0]; UINT8 Oct[0];
} MEASURE_REQ_INFO, *PMEASURE_REQ_INFO; } MEASURE_REQ_INFO, *PMEASURE_REQ_INFO;
typedef union PACKED _MEASURE_BASIC_REPORT_MAP typedef union PACKED _MEASURE_BASIC_REPORT_MAP {
{ struct PACKED {
struct PACKED
{
UINT8 BSS:1; UINT8 BSS:1;
UINT8 OfdmPreamble:1; UINT8 OfdmPreamble:1;
@@ -169,34 +150,29 @@ typedef union PACKED _MEASURE_BASIC_REPORT_MAP
UINT8 word; UINT8 word;
} MEASURE_BASIC_REPORT_MAP, *PMEASURE_BASIC_REPORT_MAP; } MEASURE_BASIC_REPORT_MAP, *PMEASURE_BASIC_REPORT_MAP;
typedef struct PACKED _MEASURE_BASIC_REPORT typedef struct PACKED _MEASURE_BASIC_REPORT {
{
UINT8 ChNum; UINT8 ChNum;
UINT64 MeasureStartTime; UINT64 MeasureStartTime;
UINT16 MeasureDuration; UINT16 MeasureDuration;
MEASURE_BASIC_REPORT_MAP Map; MEASURE_BASIC_REPORT_MAP Map;
} MEASURE_BASIC_REPORT, *PMEASURE_BASIC_REPORT; } MEASURE_BASIC_REPORT, *PMEASURE_BASIC_REPORT;
typedef struct PACKED _MEASURE_CCA_REPORT typedef struct PACKED _MEASURE_CCA_REPORT {
{
UINT8 ChNum; UINT8 ChNum;
UINT64 MeasureStartTime; UINT64 MeasureStartTime;
UINT16 MeasureDuration; UINT16 MeasureDuration;
UINT8 CCA_Busy_Fraction; UINT8 CCA_Busy_Fraction;
} MEASURE_CCA_REPORT, *PMEASURE_CCA_REPORT; } MEASURE_CCA_REPORT, *PMEASURE_CCA_REPORT;
typedef struct PACKED _MEASURE_RPI_REPORT typedef struct PACKED _MEASURE_RPI_REPORT {
{
UINT8 ChNum; UINT8 ChNum;
UINT64 MeasureStartTime; UINT64 MeasureStartTime;
UINT16 MeasureDuration; UINT16 MeasureDuration;
UINT8 RPI_Density[8]; UINT8 RPI_Density[8];
} MEASURE_RPI_REPORT, *PMEASURE_RPI_REPORT; } MEASURE_RPI_REPORT, *PMEASURE_RPI_REPORT;
typedef union PACKED _MEASURE_REPORT_MODE typedef union PACKED _MEASURE_REPORT_MODE {
{ struct PACKED {
struct PACKED
{
UINT8 Late:1; UINT8 Late:1;
UINT8 Incapable:1; UINT8 Incapable:1;
UINT8 Refused:1; UINT8 Refused:1;
@@ -205,16 +181,14 @@ typedef union PACKED _MEASURE_REPORT_MODE
UINT8 word; UINT8 word;
} MEASURE_REPORT_MODE, *PMEASURE_REPORT_MODE; } MEASURE_REPORT_MODE, *PMEASURE_REPORT_MODE;
typedef struct PACKED _MEASURE_REPORT_INFO typedef struct PACKED _MEASURE_REPORT_INFO {
{
UINT8 Token; UINT8 Token;
UINT8 ReportMode; UINT8 ReportMode;
UINT8 ReportType; UINT8 ReportType;
UINT8 Octect[0]; UINT8 Octect[0];
} MEASURE_REPORT_INFO, *PMEASURE_REPORT_INFO; } MEASURE_REPORT_INFO, *PMEASURE_REPORT_INFO;
typedef struct PACKED _QUIET_INFO typedef struct PACKED _QUIET_INFO {
{
UINT8 QuietCnt; UINT8 QuietCnt;
UINT8 QuietPeriod; UINT8 QuietPeriod;
UINT16 QuietDuration; UINT16 QuietDuration;
@@ -222,4 +196,3 @@ typedef struct PACKED _QUIET_INFO
} QUIET_INFO, *PQUIET_INFO; } QUIET_INFO, *PQUIET_INFO;
#endif // __SPECTRUM_DEF_H__ // #endif // __SPECTRUM_DEF_H__ //

View File

@@ -126,12 +126,12 @@
//#ifdef CONFIG_AP_SUPPORT //#ifdef CONFIG_AP_SUPPORT
// WPA mechanism retry timer interval // WPA mechanism retry timer interval
#define PEER_MSG1_RETRY_EXEC_INTV 1000 // 1 sec #define PEER_MSG1_RETRY_EXEC_INTV 1000 // 1 sec
#define PEER_MSG3_RETRY_EXEC_INTV 3000 // 3 sec #define PEER_MSG3_RETRY_EXEC_INTV 3000 // 3 sec
#define GROUP_KEY_UPDATE_EXEC_INTV 1000 // 1 sec #define GROUP_KEY_UPDATE_EXEC_INTV 1000 // 1 sec
#define PEER_GROUP_KEY_UPDATE_INIV 2000 // 2 sec #define PEER_GROUP_KEY_UPDATE_INIV 2000 // 2 sec
#define ENQUEUE_EAPOL_START_TIMER 200 // 200 ms #define ENQUEUE_EAPOL_START_TIMER 200 // 200 ms
// group rekey interval // group rekey interval
#define TIME_REKEY 0 #define TIME_REKEY 0
@@ -147,7 +147,6 @@
#define AKM_SUITE 2 #define AKM_SUITE 2
#define PMKID_LIST 3 #define PMKID_LIST 3
#define EAPOL_START_DISABLE 0 #define EAPOL_START_DISABLE 0
#define EAPOL_START_PSK 1 #define EAPOL_START_PSK 1
#define EAPOL_START_1X 2 #define EAPOL_START_1X 2
@@ -181,7 +180,6 @@
#define CONV_ARRARY_TO_UINT16(_V) ((_V[0]<<8) | (_V[1])) #define CONV_ARRARY_TO_UINT16(_V) ((_V[0]<<8) | (_V[1]))
#define ADD_ONE_To_64BIT_VAR(_V) \ #define ADD_ONE_To_64BIT_VAR(_V) \
{ \ { \
UCHAR cnt = LEN_KEY_DESC_REPLAY; \ UCHAR cnt = LEN_KEY_DESC_REPLAY; \
@@ -197,224 +195,199 @@
#define IS_WPA_CAPABILITY(a) (((a) >= Ndis802_11AuthModeWPA) && ((a) <= Ndis802_11AuthModeWPA1PSKWPA2PSK)) #define IS_WPA_CAPABILITY(a) (((a) >= Ndis802_11AuthModeWPA) && ((a) <= Ndis802_11AuthModeWPA1PSKWPA2PSK))
// EAPOL Key Information definition within Key descriptor format // EAPOL Key Information definition within Key descriptor format
typedef struct PACKED _KEY_INFO typedef struct PACKED _KEY_INFO {
{ UCHAR KeyMic:1;
UCHAR KeyMic:1; UCHAR Secure:1;
UCHAR Secure:1; UCHAR Error:1;
UCHAR Error:1; UCHAR Request:1;
UCHAR Request:1; UCHAR EKD_DL:1; // EKD for AP; DL for STA
UCHAR EKD_DL:1; // EKD for AP; DL for STA UCHAR Rsvd:3;
UCHAR Rsvd:3; UCHAR KeyDescVer:3;
UCHAR KeyDescVer:3; UCHAR KeyType:1;
UCHAR KeyType:1; UCHAR KeyIndex:2;
UCHAR KeyIndex:2; UCHAR Install:1;
UCHAR Install:1; UCHAR KeyAck:1;
UCHAR KeyAck:1; } KEY_INFO, *PKEY_INFO;
} KEY_INFO, *PKEY_INFO;
// EAPOL Key descriptor format // EAPOL Key descriptor format
typedef struct PACKED _KEY_DESCRIPTER typedef struct PACKED _KEY_DESCRIPTER {
{ UCHAR Type;
UCHAR Type; KEY_INFO KeyInfo;
KEY_INFO KeyInfo; UCHAR KeyLength[2];
UCHAR KeyLength[2]; UCHAR ReplayCounter[LEN_KEY_DESC_REPLAY];
UCHAR ReplayCounter[LEN_KEY_DESC_REPLAY]; UCHAR KeyNonce[LEN_KEY_DESC_NONCE];
UCHAR KeyNonce[LEN_KEY_DESC_NONCE]; UCHAR KeyIv[LEN_KEY_DESC_IV];
UCHAR KeyIv[LEN_KEY_DESC_IV]; UCHAR KeyRsc[LEN_KEY_DESC_RSC];
UCHAR KeyRsc[LEN_KEY_DESC_RSC]; UCHAR KeyId[LEN_KEY_DESC_ID];
UCHAR KeyId[LEN_KEY_DESC_ID]; UCHAR KeyMic[LEN_KEY_DESC_MIC];
UCHAR KeyMic[LEN_KEY_DESC_MIC]; UCHAR KeyDataLen[2];
UCHAR KeyDataLen[2]; UCHAR KeyData[MAX_LEN_OF_RSNIE];
UCHAR KeyData[MAX_LEN_OF_RSNIE]; } KEY_DESCRIPTER, *PKEY_DESCRIPTER;
} KEY_DESCRIPTER, *PKEY_DESCRIPTER;
typedef struct PACKED _EAPOL_PACKET typedef struct PACKED _EAPOL_PACKET {
{ UCHAR ProVer;
UCHAR ProVer; UCHAR ProType;
UCHAR ProType; UCHAR Body_Len[2];
UCHAR Body_Len[2]; KEY_DESCRIPTER KeyDesc;
KEY_DESCRIPTER KeyDesc; } EAPOL_PACKET, *PEAPOL_PACKET;
} EAPOL_PACKET, *PEAPOL_PACKET;
//802.11i D10 page 83 //802.11i D10 page 83
typedef struct PACKED _GTK_ENCAP typedef struct PACKED _GTK_ENCAP {
{ UCHAR Kid:2;
UCHAR Kid:2; UCHAR tx:1;
UCHAR tx:1; UCHAR rsv:5;
UCHAR rsv:5; UCHAR rsv1;
UCHAR rsv1; UCHAR GTK[TKIP_GTK_LENGTH];
UCHAR GTK[TKIP_GTK_LENGTH]; } GTK_ENCAP, *PGTK_ENCAP;
} GTK_ENCAP, *PGTK_ENCAP;
typedef struct PACKED _KDE_ENCAP typedef struct PACKED _KDE_ENCAP {
{ UCHAR Type;
UCHAR Type; UCHAR Len;
UCHAR Len; UCHAR OUI[3];
UCHAR OUI[3]; UCHAR DataType;
UCHAR DataType; GTK_ENCAP GTKEncap;
GTK_ENCAP GTKEncap; } KDE_ENCAP, *PKDE_ENCAP;
} KDE_ENCAP, *PKDE_ENCAP;
// For WPA1 // For WPA1
typedef struct PACKED _RSNIE { typedef struct PACKED _RSNIE {
UCHAR oui[4]; UCHAR oui[4];
USHORT version; USHORT version;
UCHAR mcast[4]; UCHAR mcast[4];
USHORT ucount; USHORT ucount;
struct PACKED { struct PACKED {
UCHAR oui[4]; UCHAR oui[4];
}ucast[1]; } ucast[1];
} RSNIE, *PRSNIE; } RSNIE, *PRSNIE;
// For WPA2 // For WPA2
typedef struct PACKED _RSNIE2 { typedef struct PACKED _RSNIE2 {
USHORT version; USHORT version;
UCHAR mcast[4]; UCHAR mcast[4];
USHORT ucount; USHORT ucount;
struct PACKED { struct PACKED {
UCHAR oui[4]; UCHAR oui[4];
}ucast[1]; } ucast[1];
} RSNIE2, *PRSNIE2; } RSNIE2, *PRSNIE2;
// AKM Suite // AKM Suite
typedef struct PACKED _RSNIE_AUTH { typedef struct PACKED _RSNIE_AUTH {
USHORT acount; USHORT acount;
struct PACKED { struct PACKED {
UCHAR oui[4]; UCHAR oui[4];
}auth[1]; } auth[1];
} RSNIE_AUTH,*PRSNIE_AUTH; } RSNIE_AUTH, *PRSNIE_AUTH;
typedef union PACKED _RSN_CAPABILITIES { typedef union PACKED _RSN_CAPABILITIES {
struct PACKED { struct PACKED {
USHORT PreAuth:1; USHORT PreAuth:1;
USHORT No_Pairwise:1; USHORT No_Pairwise:1;
USHORT PTKSA_R_Counter:2; USHORT PTKSA_R_Counter:2;
USHORT GTKSA_R_Counter:2; USHORT GTKSA_R_Counter:2;
USHORT Rsvd:10; USHORT Rsvd:10;
} field; } field;
USHORT word; USHORT word;
} RSN_CAPABILITIES, *PRSN_CAPABILITIES; } RSN_CAPABILITIES, *PRSN_CAPABILITIES;
typedef struct PACKED _EAP_HDR { typedef struct PACKED _EAP_HDR {
UCHAR ProVer; UCHAR ProVer;
UCHAR ProType; UCHAR ProType;
UCHAR Body_Len[2]; UCHAR Body_Len[2];
UCHAR code; UCHAR code;
UCHAR identifier; UCHAR identifier;
UCHAR length[2]; // including code and identifier, followed by length-2 octets of data UCHAR length[2]; // including code and identifier, followed by length-2 octets of data
} EAP_HDR, *PEAP_HDR; } EAP_HDR, *PEAP_HDR;
// For supplicant state machine states. 802.11i Draft 4.1, p. 97 // For supplicant state machine states. 802.11i Draft 4.1, p. 97
// We simplified it // We simplified it
typedef enum _WpaState typedef enum _WpaState {
{ SS_NOTUSE, // 0
SS_NOTUSE, // 0 SS_START, // 1
SS_START, // 1 SS_WAIT_MSG_3, // 2
SS_WAIT_MSG_3, // 2 SS_WAIT_GROUP, // 3
SS_WAIT_GROUP, // 3 SS_FINISH, // 4
SS_FINISH, // 4 SS_KEYUPDATE, // 5
SS_KEYUPDATE, // 5 } WPA_STATE;
} WPA_STATE;
// //
// The definition of the cipher combination // The definition of the cipher combination
// //
// bit3 bit2 bit1 bit0 // bit3 bit2 bit1 bit0
// +------------+------------+ // +------------+------------+
// | WPA | WPA2 | // | WPA | WPA2 |
// +------+-----+------+-----+ // +------+-----+------+-----+
// | TKIP | AES | TKIP | AES | // | TKIP | AES | TKIP | AES |
// | 0 | 1 | 1 | 0 | -> 0x06 // | 0 | 1 | 1 | 0 | -> 0x06
// | 0 | 1 | 1 | 1 | -> 0x07 // | 0 | 1 | 1 | 1 | -> 0x07
// | 1 | 0 | 0 | 1 | -> 0x09 // | 1 | 0 | 0 | 1 | -> 0x09
// | 1 | 0 | 1 | 1 | -> 0x0B // | 1 | 0 | 1 | 1 | -> 0x0B
// | 1 | 1 | 0 | 1 | -> 0x0D // | 1 | 1 | 0 | 1 | -> 0x0D
// | 1 | 1 | 1 | 0 | -> 0x0E // | 1 | 1 | 1 | 0 | -> 0x0E
// | 1 | 1 | 1 | 1 | -> 0x0F // | 1 | 1 | 1 | 1 | -> 0x0F
// +------+-----+------+-----+ // +------+-----+------+-----+
// //
typedef enum _WpaMixPairCipher typedef enum _WpaMixPairCipher {
{ MIX_CIPHER_NOTUSE = 0x00,
MIX_CIPHER_NOTUSE = 0x00, WPA_NONE_WPA2_TKIPAES = 0x03, // WPA2-TKIPAES
WPA_NONE_WPA2_TKIPAES = 0x03, // WPA2-TKIPAES WPA_AES_WPA2_TKIP = 0x06,
WPA_AES_WPA2_TKIP = 0x06, WPA_AES_WPA2_TKIPAES = 0x07,
WPA_AES_WPA2_TKIPAES = 0x07, WPA_TKIP_WPA2_AES = 0x09,
WPA_TKIP_WPA2_AES = 0x09, WPA_TKIP_WPA2_TKIPAES = 0x0B,
WPA_TKIP_WPA2_TKIPAES = 0x0B, WPA_TKIPAES_WPA2_NONE = 0x0C, // WPA-TKIPAES
WPA_TKIPAES_WPA2_NONE = 0x0C, // WPA-TKIPAES WPA_TKIPAES_WPA2_AES = 0x0D,
WPA_TKIPAES_WPA2_AES = 0x0D, WPA_TKIPAES_WPA2_TKIP = 0x0E,
WPA_TKIPAES_WPA2_TKIP = 0x0E, WPA_TKIPAES_WPA2_TKIPAES = 0x0F,
WPA_TKIPAES_WPA2_TKIPAES = 0x0F, } WPA_MIX_PAIR_CIPHER;
} WPA_MIX_PAIR_CIPHER;
typedef struct PACKED _RSN_IE_HEADER_STRUCT { typedef struct PACKED _RSN_IE_HEADER_STRUCT {
UCHAR Eid; UCHAR Eid;
UCHAR Length; UCHAR Length;
USHORT Version; // Little endian format USHORT Version; // Little endian format
} RSN_IE_HEADER_STRUCT, *PRSN_IE_HEADER_STRUCT; } RSN_IE_HEADER_STRUCT, *PRSN_IE_HEADER_STRUCT;
// Cipher suite selector types // Cipher suite selector types
typedef struct PACKED _CIPHER_SUITE_STRUCT { typedef struct PACKED _CIPHER_SUITE_STRUCT {
UCHAR Oui[3]; UCHAR Oui[3];
UCHAR Type; UCHAR Type;
} CIPHER_SUITE_STRUCT, *PCIPHER_SUITE_STRUCT; } CIPHER_SUITE_STRUCT, *PCIPHER_SUITE_STRUCT;
// Authentication and Key Management suite selector // Authentication and Key Management suite selector
typedef struct PACKED _AKM_SUITE_STRUCT { typedef struct PACKED _AKM_SUITE_STRUCT {
UCHAR Oui[3]; UCHAR Oui[3];
UCHAR Type; UCHAR Type;
} AKM_SUITE_STRUCT, *PAKM_SUITE_STRUCT; } AKM_SUITE_STRUCT, *PAKM_SUITE_STRUCT;
// RSN capability // RSN capability
typedef struct PACKED _RSN_CAPABILITY { typedef struct PACKED _RSN_CAPABILITY {
USHORT Rsv:10; USHORT Rsv:10;
USHORT GTKSAReplayCnt:2; USHORT GTKSAReplayCnt:2;
USHORT PTKSAReplayCnt:2; USHORT PTKSAReplayCnt:2;
USHORT NoPairwise:1; USHORT NoPairwise:1;
USHORT PreAuth:1; USHORT PreAuth:1;
} RSN_CAPABILITY, *PRSN_CAPABILITY; } RSN_CAPABILITY, *PRSN_CAPABILITY;
/*======================================== /*========================================
The prototype is defined in cmm_wpa.c The prototype is defined in cmm_wpa.c
========================================*/ ========================================*/
BOOLEAN WpaMsgTypeSubst( BOOLEAN WpaMsgTypeSubst(IN UCHAR EAPType, OUT INT * MsgType);
IN UCHAR EAPType,
OUT INT *MsgType);
VOID PRF( VOID PRF(IN UCHAR * key,
IN UCHAR *key, IN INT key_len,
IN INT key_len, IN UCHAR * prefix,
IN UCHAR *prefix, IN INT prefix_len,
IN INT prefix_len, IN UCHAR * data, IN INT data_len, OUT UCHAR * output, IN INT len);
IN UCHAR *data,
IN INT data_len,
OUT UCHAR *output,
IN INT len);
int PasswordHash( int PasswordHash(char *password,
char *password, unsigned char *ssid, int ssidlength, unsigned char *output);
unsigned char *ssid,
int ssidlength,
unsigned char *output);
PUINT8 GetSuiteFromRSNIE( PUINT8 GetSuiteFromRSNIE(IN PUINT8 rsnie,
IN PUINT8 rsnie, IN UINT rsnie_len, IN UINT8 type, OUT UINT8 * count);
IN UINT rsnie_len,
IN UINT8 type,
OUT UINT8 *count);
VOID WpaShowAllsuite( VOID WpaShowAllsuite(IN PUINT8 rsnie, IN UINT rsnie_len);
IN PUINT8 rsnie,
IN UINT rsnie_len);
VOID RTMPInsertRSNIE(
IN PUCHAR pFrameBuf,
OUT PULONG pFrameLen,
IN PUINT8 rsnie_ptr,
IN UINT8 rsnie_len,
IN PUINT8 pmkid_ptr,
IN UINT8 pmkid_len);
VOID RTMPInsertRSNIE(IN PUCHAR pFrameBuf,
OUT PULONG pFrameLen,
IN PUINT8 rsnie_ptr,
IN UINT8 rsnie_len,
IN PUINT8 pmkid_ptr, IN UINT8 pmkid_len);
#endif #endif