/* * Copyright (C) 2013 Realtek Semiconductor Corp. * All Rights Reserved. * * Unless you and Realtek execute a separate written software license * agreement governing use of this software, this software is licensed * to you under the terms of the GNU General Public License version 2, * available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt * * $Revision: 76306 $ * $Date: 2017-03-08 15:13:58 +0800 (¶g¤T, 08 ¤T¤ë 2017) $ * * Purpose : RTL8367C switch high-level API for RTL8367C * Feature : * */ #ifndef _RTL8367C_ASICDRV_H_ #define _RTL8367C_ASICDRV_H_ #include #include #include #include #define RTL8367C_REGBITLENGTH 16 #define RTL8367C_REGDATAMAX 0xFFFF #define RTL8367C_VIDMAX 0xFFF #define RTL8367C_EVIDMAX 0x1FFF #define RTL8367C_CVIDXNO 32 #define RTL8367C_CVIDXMAX (RTL8367C_CVIDXNO-1) #define RTL8367C_PRIMAX 7 #define RTL8367C_DSCPMAX 63 #define RTL8367C_PORTNO 11 #define RTL8367C_PORTIDMAX (RTL8367C_PORTNO-1) #define RTL8367C_PMSKMAX ((1<<(RTL8367C_PORTNO))-1) #define RTL8367C_PORTMASK 0x7FF #define RTL8367C_PHYNO 5 #define RTL8367C_PHYIDMAX (RTL8367C_PHYNO-1) #define RTL8367C_SVIDXNO 64 #define RTL8367C_SVIDXMAX (RTL8367C_SVIDXNO-1) #define RTL8367C_MSTIMAX 15 #define RTL8367C_METERNO 64 #define RTL8367C_METERMAX (RTL8367C_METERNO-1) #define RTL8367C_METERBUCKETSIZEMAX 0xFFFF #define RTL8367C_QUEUENO 8 #define RTL8367C_QIDMAX (RTL8367C_QUEUENO-1) #define RTL8367C_PHY_BUSY_CHECK_COUNTER 1000 #define RTL8367C_QOS_GRANULARTY_MAX 0x7FFFF #define RTL8367C_QOS_GRANULARTY_LSB_MASK 0xFFFF #define RTL8367C_QOS_GRANULARTY_LSB_OFFSET 0 #define RTL8367C_QOS_GRANULARTY_MSB_MASK 0x70000 #define RTL8367C_QOS_GRANULARTY_MSB_OFFSET 16 #define RTL8367C_QOS_GRANULARTY_UNIT_KBPS 8 #define RTL8367C_QOS_RATE_INPUT_MAX (0x1FFFF * 8) #define RTL8367C_QOS_RATE_INPUT_MAX_HSG (0x7FFFF * 8) #define RTL8367C_QOS_RATE_INPUT_MIN 8 #define RTL8367C_QOS_PPS_INPUT_MAX (0x7FFFF) #define RTL8367C_QOS_PPS_INPUT_MIN 1 #define RTL8367C_QUEUE_MASK 0xFF #define RTL8367C_EFIDMAX 0x7 #define RTL8367C_FIDMAX 0xF #define RTL8367C_EAV_SECONDMAX 0xFFFFFFFF #define RTL8367C_EAV_NANOSECONDMAX 0x3B9AC9FF /* the above macro is generated by genDotH */ #define RTL8367C_VALID_REG_NO 3869 /*======================================================================= * Enum *========================================================================*/ enum RTL8367C_TABLE_ACCESS_OP { TB_OP_READ = 0, TB_OP_WRITE }; enum RTL8367C_TABLE_ACCESS_TARGET { TB_TARGET_ACLRULE = 1, TB_TARGET_ACLACT, TB_TARGET_CVLAN, TB_TARGET_L2, TB_TARGET_IGMP_GROUP }; #define RTL8367C_TABLE_ACCESS_REG_DATA(op, target) ((op << 3) | target) /*======================================================================= * Structures *========================================================================*/ #ifdef __cplusplus extern "C" { #endif extern ret_t rtl8367c_setAsicRegBit(rtk_uint32 reg, rtk_uint32 bit, rtk_uint32 value); extern ret_t rtl8367c_getAsicRegBit(rtk_uint32 reg, rtk_uint32 bit, rtk_uint32 *pValue); extern ret_t rtl8367c_setAsicRegBits(rtk_uint32 reg, rtk_uint32 bits, rtk_uint32 value); extern ret_t rtl8367c_getAsicRegBits(rtk_uint32 reg, rtk_uint32 bits, rtk_uint32 *pValue); extern ret_t rtl8367c_setAsicReg(rtk_uint32 reg, rtk_uint32 value); extern ret_t rtl8367c_getAsicReg(rtk_uint32 reg, rtk_uint32 *pValue); #ifdef __cplusplus } #endif #endif /*#ifndef _RTL8367C_ASICDRV_H_*/