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

📄 rt2661.h

📁 Ralink RT61 SoftAP Driver source code. RT61:MiniPCI
💻 H
📖 第 1 页 / 共 5 页
字号:

//
// 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 + -