📄 rt2661.h
字号:
//
// SEC_CSR1: shared key table security mode register
//
#ifdef BIG_ENDIAN
typedef union _SEC_CSR1_STRUC {
struct {
ULONG :1;
ULONG Bss1Key3CipherAlg:3;
ULONG :1;
ULONG Bss1Key2CipherAlg:3;
ULONG :1;
ULONG Bss1Key1CipherAlg:3;
ULONG :1;
ULONG Bss1Key0CipherAlg:3;
ULONG :1;
ULONG Bss0Key3CipherAlg:3;
ULONG :1;
ULONG Bss0Key2CipherAlg:3;
ULONG :1;
ULONG Bss0Key1CipherAlg:3;
ULONG :1;
ULONG Bss0Key0CipherAlg:3;
} field;
ULONG word;
} SEC_CSR1_STRUC, *PSEC_CSR1_STRUC;
#else
typedef union _SEC_CSR1_STRUC {
struct {
ULONG Bss0Key0CipherAlg:3;
ULONG :1;
ULONG Bss0Key1CipherAlg:3;
ULONG :1;
ULONG Bss0Key2CipherAlg:3;
ULONG :1;
ULONG Bss0Key3CipherAlg:3;
ULONG :1;
ULONG Bss1Key0CipherAlg:3;
ULONG :1;
ULONG Bss1Key1CipherAlg:3;
ULONG :1;
ULONG Bss1Key2CipherAlg:3;
ULONG :1;
ULONG Bss1Key3CipherAlg:3;
ULONG :1;
} field;
ULONG word;
} SEC_CSR1_STRUC, *PSEC_CSR1_STRUC;
#endif
//
// SEC_CSR5: shared key table security mode register
//
#ifdef BIG_ENDIAN
typedef union _SEC_CSR5_STRUC {
struct {
ULONG :1;
ULONG Bss3Key3CipherAlg:3;
ULONG :1;
ULONG Bss3Key2CipherAlg:3;
ULONG :1;
ULONG Bss3Key1CipherAlg:3;
ULONG :1;
ULONG Bss3Key0CipherAlg:3;
ULONG :1;
ULONG Bss2Key3CipherAlg:3;
ULONG :1;
ULONG Bss2Key2CipherAlg:3;
ULONG :1;
ULONG Bss2Key1CipherAlg:3;
ULONG :1;
ULONG Bss2Key0CipherAlg:3;
} field;
ULONG word;
} SEC_CSR5_STRUC, *PSEC_CSR5_STRUC;
#else
typedef union _SEC_CSR5_STRUC {
struct {
ULONG Bss2Key0CipherAlg:3;
ULONG :1;
ULONG Bss2Key1CipherAlg:3;
ULONG :1;
ULONG Bss2Key2CipherAlg:3;
ULONG :1;
ULONG Bss2Key3CipherAlg:3;
ULONG :1;
ULONG Bss3Key0CipherAlg:3;
ULONG :1;
ULONG Bss3Key1CipherAlg:3;
ULONG :1;
ULONG Bss3Key2CipherAlg:3;
ULONG :1;
ULONG Bss3Key3CipherAlg:3;
ULONG :1;
} field;
ULONG word;
} SEC_CSR5_STRUC, *PSEC_CSR5_STRUC;
#endif
//
// STA_CSR0: RX PLCP error count & RX CRC error count
//
#ifdef BIG_ENDIAN
typedef union _STA_CSR0_STRUC {
struct {
USHORT PlcpErr;
USHORT CrcErr;
} field;
ULONG word;
} STA_CSR0_STRUC, *PSTA_CSR0_STRUC;
#else
typedef union _STA_CSR0_STRUC {
struct {
USHORT CrcErr;
USHORT PlcpErr;
} field;
ULONG word;
} STA_CSR0_STRUC, *PSTA_CSR0_STRUC;
#endif
//
// STA_CSR1: RX False CCA count & RX LONG frame count
//
#ifdef BIG_ENDIAN
typedef union _STA_CSR1_STRUC {
struct {
USHORT FalseCca;
USHORT PhyErr;
} field;
ULONG word;
} STA_CSR1_STRUC, *PSTA_CSR1_STRUC;
#else
typedef union _STA_CSR1_STRUC {
struct {
USHORT PhyErr;
USHORT FalseCca;
} field;
ULONG word;
} STA_CSR1_STRUC, *PSTA_CSR1_STRUC;
#endif
//
// STA_CSR2: TX Beacon count and RX FIFO overflow count
//
#ifdef BIG_ENDIAN
typedef union _STA_CSR2_STRUC {
struct {
USHORT RxOverflowCount;
USHORT RxFifoOverflowCount;
} field;
ULONG word;
} STA_CSR2_STRUC, *PSTA_CSR2_STRUC;
#else
typedef union _STA_CSR2_STRUC {
struct {
USHORT RxFifoOverflowCount;
USHORT RxOverflowCount;
} field;
ULONG word;
} STA_CSR2_STRUC, *PSTA_CSR2_STRUC;
#endif
//
// STA_CSR3: TX Beacon count
//
#ifdef BIG_ENDIAN
typedef union _STA_CSR3_STRUC {
struct {
USHORT Rsv;
USHORT TxBeaconCount;
} field;
ULONG word;
} STA_CSR3_STRUC, *PSTA_CSR3_STRUC;
#else
typedef union _STA_CSR3_STRUC {
struct {
USHORT TxBeaconCount;
USHORT Rsv;
} field;
ULONG word;
} STA_CSR3_STRUC, *PSTA_CSR3_STRUC;
#endif
//
// STA_CSR4: TX Result status register
//
#ifdef BIG_ENDIAN
typedef union _STA_CSR4_STRUC {
struct {
ULONG Rsv:12;
ULONG TxRate:4;
// ULONG Pid:8; // packet id as a TX statistics categorization tool
ULONG PidType:2;
ULONG PidSubtype:6;
ULONG RetryCount:4;
ULONG TxResult:3;
ULONG bValid:1; // 1:This register contains a valid TX result
} field;
ULONG word;
} STA_CSR4_STRUC, *PSTA_CSR4_STRUC;
#else
typedef union _STA_CSR4_STRUC {
struct {
ULONG bValid:1; // 1:This register contains a valid TX result
ULONG TxResult:3;
ULONG RetryCount:4;
// ULONG Pid:8; // packet id as a TX statistics categorization tool
ULONG PidSubtype:6;
ULONG PidType:2;
ULONG TxRate:4;
ULONG Rsv:12;
} field;
ULONG word;
} STA_CSR4_STRUC, *PSTA_CSR4_STRUC;
#endif
//
// HOST_CMD_CSR: For HOST to interrupt embedded processor
//
#ifdef BIG_ENDIAN
typedef union _HOST_CMD_CSR_STRUC {
struct {
ULONG Rsv:24;
ULONG InterruptMcu:1;
ULONG HostCommand:7;
} field;
ULONG word;
} HOST_CMD_CSR_STRUC, *PHOST_CMD_CSR_STRUC;
#else
typedef union _HOST_CMD_CSR_STRUC {
struct {
ULONG HostCommand:7;
ULONG InterruptMcu:1;
ULONG Rsv:24;
} field;
ULONG word;
} HOST_CMD_CSR_STRUC, *PHOST_CMD_CSR_STRUC;
#endif
//
// TX_RING_CSR0: TX Ring size for AC_BK, AC_BE, AC_VI, AC_VO
//
#ifdef BIG_ENDIAN
typedef union _TX_RING_CSR0_STRUC {
struct {
UCHAR Ac3Total;
UCHAR Ac2Total;
UCHAR Ac1Total;
UCHAR Ac0Total;
} field;
ULONG word;
} TX_RING_CSR0_STRUC, *PTX_RING_CSR0_STRUC;
#else
typedef union _TX_RING_CSR0_STRUC {
struct {
UCHAR Ac0Total;
UCHAR Ac1Total;
UCHAR Ac2Total;
UCHAR Ac3Total;
} field;
ULONG word;
} TX_RING_CSR0_STRUC, *PTX_RING_CSR0_STRUC;
#endif
//
// TX_RING_CSR1: TX Ring size for MGMT Ring, HCCA Ring
//
#ifdef BIG_ENDIAN
typedef union _TX_RING_CSR1_STRUC {
struct {
ULONG Rsv:10;
ULONG TxdSize:6; // in unit of 32-bit
ULONG HccaTotal:8;
ULONG MgmtTotal:8;
} field;
ULONG word;
} TX_RING_CSR1_STRUC, *PTX_RING_CSR1_STRUC;
#else
typedef union _TX_RING_CSR1_STRUC {
struct {
ULONG MgmtTotal:8;
ULONG HccaTotal:8;
ULONG TxdSize:6; // in unit of 32-bit
ULONG Rsv:10;
} field;
ULONG word;
} TX_RING_CSR1_STRUC, *PTX_RING_CSR1_STRUC;
#endif
//
// AIFSN_CSR: AIFSN for each EDCA AC
//
#ifdef BIG_ENDIAN
typedef union _AIFSN_CSR_STRUC {
struct {
ULONG Rsv:16;
ULONG Aifsn3:4; // for AC_VO
ULONG Aifsn2:4; // for AC_VI
ULONG Aifsn1:4; // for AC_BK
ULONG Aifsn0:4; // for AC_BE
} field;
ULONG word;
} AIFSN_CSR_STRUC, *PAIFSN_CSR_STRUC;
#else
typedef union _AIFSN_CSR_STRUC {
struct {
ULONG Aifsn0:4; // for AC_BE
ULONG Aifsn1:4; // for AC_BK
ULONG Aifsn2:4; // for AC_VI
ULONG Aifsn3:4; // for AC_VO
ULONG Rsv:16;
} field;
ULONG word;
} AIFSN_CSR_STRUC, *PAIFSN_CSR_STRUC;
#endif
//
// CWMIN_CSR: CWmin for each EDCA AC
//
#ifdef BIG_ENDIAN
typedef union _CWMIN_CSR_STRUC {
struct {
ULONG Rsv:16;
ULONG Cwmin3:4; // for AC_VO
ULONG Cwmin2:4; // for AC_VI
ULONG Cwmin1:4; // for AC_BK
ULONG Cwmin0:4; // for AC_BE
} field;
ULONG word;
} CWMIN_CSR_STRUC, *PCWMIN_CSR_STRUC;
#else
typedef union _CWMIN_CSR_STRUC {
struct {
ULONG Cwmin0:4; // for AC_BE
ULONG Cwmin1:4; // for AC_BK
ULONG Cwmin2:4; // for AC_VI
ULONG Cwmin3:4; // for AC_VO
ULONG Rsv:16;
} field;
ULONG word;
} CWMIN_CSR_STRUC, *PCWMIN_CSR_STRUC;
#endif
//
// CWMAX_CSR: CWmin for each EDCA AC
//
#ifdef BIG_ENDIAN
typedef union _CWMAX_CSR_STRUC {
struct {
ULONG Rsv:16;
ULONG Cwmax3:4; // for AC_VO
ULONG Cwmax2:4; // for AC_VI
ULONG Cwmax1:4; // for AC_BK
ULONG Cwmax0:4; // for AC_BE
} field;
ULONG word;
} CWMAX_CSR_STRUC, *PCWMAX_CSR_STRUC;
#else
typedef union _CWMAX_CSR_STRUC {
struct {
ULONG Cwmax0:4; // for AC_BE
ULONG Cwmax1:4; // for AC_BK
ULONG Cwmax2:4; // for AC_VI
ULONG Cwmax3:4; // for AC_VO
ULONG Rsv:16;
} field;
ULONG word;
} CWMAX_CSR_STRUC, *PCWMAX_CSR_STRUC;
#endif
//
// TX_CNTL_CSR: KICK/Abort TX
//
#ifdef BIG_ENDIAN
typedef union _TX_CNTL_CSR_STRUC {
struct {
ULONG Rsv1:11;
ULONG AbortTxMgmt:1;
ULONG AbortTxAc3:1; // for AC_VO
ULONG AbortTxAc2:1; // for AC_VI
ULONG AbortTxAc1:1; // for AC_BE
ULONG AbortTxAc0:1; // for AC_BK
ULONG Rsv2:11;
ULONG KickTxMgmt:1;
ULONG KickTxAc3:1; // for AC_VO
ULONG KickTxAc2:1; // for AC_VI
ULONG KickTxAc1:1; // for AC_BE
ULONG KickTxAc0:1; // for AC_BK
} field;
ULONG word;
} TX_CNTL_CSR_STRUC, *PTX_CNTL_CSR_STRUC;
#else
typedef union _TX_CNTL_CSR_STRUC {
struct {
ULONG KickTxAc0:1; // for AC_BK
ULONG KickTxAc1:1; // for AC_BE
ULONG KickTxAc2:1; // for AC_VI
ULONG KickTxAc3:1; // for AC_VO
ULONG KickTxMgmt:1;
ULONG Rsv2:11;
ULONG AbortTxAc0:1; // for AC_BK
ULONG AbortTxAc1:1; // for AC_BE
ULONG AbortTxAc2:1; // for AC_VI
ULONG AbortTxAc3:1; // for AC_VO
ULONG AbortTxMgmt:1;
ULONG Rsv1:11;
} field;
ULONG word;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -