#ifndef _RTL8370_ASICDRV_H_ #define _RTL8370_ASICDRV_H_ #include #include #include #include #define RTL8370_REGBITLENGTH 16 #define RTL8370_REGDATAMAX 0xFFFF #define RTL8370_VIDMAX 0xFFF #define RTL8370_EVIDMAX 0x1FFF #define RTL8370_CVLANMCNO 32 #define RTL8370_CVIDXMAX (RTL8370_CVLANMCNO - 1) #define RTL8370_PRIMAX 7 #define RTL8370_PRIDECMAX 0xFF #define RTL8370_PORTNO 16 #define RTL8370_PORTIDMAX (RTL8370_PORTNO - 1) #define RTL8370_PMSKMAX ((1 << (RTL8370_PORTNO)) - 1) #define RTL8370_PORTMASK 0xFFFF #define RTL8370_SVIDXNO 64 #define RTL8370_SVIDXMAX (RTL8370_SVIDXNO - 1) #define RTL8370_MSTIMAX 15 #define RTL8370_METERNO 64 #define RTL8370_METERMAX (RTL8370_METERNO - 1) #define RTL8370_QUEUENO 8 #define RTL8370_QIDMAX (RTL8370_QUEUENO - 1) #define RTL8370_PHY_BUSY_CHECK_COUNTER 1000 #define RTL8370_PHYNO 8 #define RTL8370_PHYIDMAX (RTL8370_PHYNO - 1) #define RTL8370_QOS_GRANULARTY_MAX 0x1FFFF #define RTL8370_QOS_GRANULARTY_LSB_MASK 0xFFFF #define RTL8370_QOS_GRANULARTY_LSB_OFFSET 0 #define RTL8370_QOS_GRANULARTY_MSB_MASK 0x10000 #define RTL8370_QOS_GRANULARTY_MSB_OFFSET 16 #define RTL8370_QOS_GRANULARTY_UNIT_KBPS 8 #define RTL8370_QOS_RATE_INPUT_MAX (0x1FFFF * 8) #define RTL8370_QOS_RATE_INPUT_MIN 8 #define RTL8370_QUEUE_MASK 0xFF #define RTL8370_EFIDMAX 0x7 #define RTL8370_FIDMAX 0xFFF /* the above macro is generated by genDotH */ #define RTL8370_VALID_REG_NO 3236 /*======================================================================= * Enum *========================================================================*/ enum RTL8370_TABLE_ACCESS_OP { TB_OP_READ = 0, TB_OP_WRITE }; enum RTL8370_TABLE_ACCESS_TARGET { TB_TARGET_ACLRULE = 1, TB_TARGET_ACLACT, TB_TARGET_CVLAN, TB_TARGET_L2 }; #define RTL8370_TABLE_ACCESS_REG_DATA(op, target) ((op << 4) | target) /*======================================================================= * Structures *========================================================================*/ typedef struct smi_ether_addr_s { #ifdef _LITTLE_ENDIAN uint16 mac0 : 8; uint16 mac1 : 8; uint16 mac2 : 8; uint16 mac3 : 8; uint16 mac4 : 8; uint16 mac5 : 8; #else uint16 mac1 : 8; uint16 mac0 : 8; uint16 mac3 : 8; uint16 mac2 : 8; uint16 mac5 : 8; uint16 mac4 : 8; #endif } smi_ether_addr_t; #ifdef __cplusplus extern "C" { #endif extern ret_t rtl8370_setAsicRegBit(uint16 reg, int bitNum, uint16 value); extern ret_t rtl8370_getAsicRegBit(uint16 reg, int bitNum, uint16 *value); extern ret_t rtl8370_setAsicRegBits(uint16 reg, int bits, uint16 value); extern ret_t rtl8370_getAsicRegBits(uint16 reg, int bits, uint16 *value); extern ret_t rtl8370_setAsicReg(uint16 reg, uint16 value); extern ret_t rtl8370_getAsicReg(uint16 reg, uint16 *value); #ifdef __cplusplus } #endif #endif /*#ifndef _RTL8370_ASICDRV_H_*/