1#ifndef _RTL8367C_ASICDRV_FC_H_ 2#define _RTL8367C_ASICDRV_FC_H_ 3 4#include <rtl8367c_asicdrv.h> 5 6#define RTL8367C_PAGE_NUMBER 0x400 7 8 9enum FLOW_CONTROL_TYPE 10{ 11 FC_EGRESS = 0, 12 FC_INGRESS, 13}; 14 15enum FC_JUMBO_SIZE 16{ 17 FC_JUMBO_SIZE_3K = 0, 18 FC_JUMBO_SIZE_4K, 19 FC_JUMBO_SIZE_6K, 20 FC_JUMBO_SIZE_9K, 21 FC_JUMBO_SIZE_END, 22 23}; 24 25 26extern ret_t rtl8367c_setAsicFlowControlSelect(rtk_uint32 select); 27extern ret_t rtl8367c_getAsicFlowControlSelect(rtk_uint32 *pSelect); 28extern ret_t rtl8367c_setAsicFlowControlJumboMode(rtk_uint32 enabled); 29extern ret_t rtl8367c_getAsicFlowControlJumboMode(rtk_uint32* pEnabled); 30extern ret_t rtl8367c_setAsicFlowControlJumboModeSize(rtk_uint32 size); 31extern ret_t rtl8367c_getAsicFlowControlJumboModeSize(rtk_uint32* pSize); 32extern ret_t rtl8367c_setAsicFlowControlQueueEgressEnable(rtk_uint32 port, rtk_uint32 qid, rtk_uint32 enabled); 33extern ret_t rtl8367c_getAsicFlowControlQueueEgressEnable(rtk_uint32 port, rtk_uint32 qid, rtk_uint32* pEnabled); 34extern ret_t rtl8367c_setAsicFlowControlDropAll(rtk_uint32 dropall); 35extern ret_t rtl8367c_getAsicFlowControlDropAll(rtk_uint32* pDropall); 36extern ret_t rtl8367c_setAsicFlowControlPauseAllThreshold(rtk_uint32 threshold); 37extern ret_t rtl8367c_getAsicFlowControlPauseAllThreshold(rtk_uint32 *pThreshold); 38extern ret_t rtl8367c_setAsicFlowControlSystemThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 39extern ret_t rtl8367c_getAsicFlowControlSystemThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 40extern ret_t rtl8367c_setAsicFlowControlSharedThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 41extern ret_t rtl8367c_getAsicFlowControlSharedThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 42extern ret_t rtl8367c_setAsicFlowControlPortThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 43extern ret_t rtl8367c_getAsicFlowControlPortThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 44extern ret_t rtl8367c_setAsicFlowControlPortPrivateThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 45extern ret_t rtl8367c_getAsicFlowControlPortPrivateThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 46extern ret_t rtl8367c_setAsicFlowControlSystemDropThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 47extern ret_t rtl8367c_getAsicFlowControlSystemDropThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 48extern ret_t rtl8367c_setAsicFlowControlSharedDropThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 49extern ret_t rtl8367c_getAsicFlowControlSharedDropThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 50extern ret_t rtl8367c_setAsicFlowControlPortDropThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 51extern ret_t rtl8367c_getAsicFlowControlPortDropThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 52extern ret_t rtl8367c_setAsicFlowControlPortPrivateDropThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 53extern ret_t rtl8367c_getAsicFlowControlPortPrivateDropThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 54extern ret_t rtl8367c_setAsicFlowControlSystemJumboThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 55extern ret_t rtl8367c_getAsicFlowControlSystemJumboThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 56extern ret_t rtl8367c_setAsicFlowControlSharedJumboThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 57extern ret_t rtl8367c_getAsicFlowControlSharedJumboThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 58extern ret_t rtl8367c_setAsicFlowControlPortJumboThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 59extern ret_t rtl8367c_getAsicFlowControlPortJumboThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 60extern ret_t rtl8367c_setAsicFlowControlPortPrivateJumboThreshold(rtk_uint32 onThreshold, rtk_uint32 offThreshold); 61extern ret_t rtl8367c_getAsicFlowControlPortPrivateJumboThreshold(rtk_uint32 *pOnThreshold, rtk_uint32 *pOffThreshold); 62 63extern ret_t rtl8367c_setAsicEgressFlowControlPortDropGap(rtk_uint32 gap); 64extern ret_t rtl8367c_getAsicEgressFlowControlPortDropGap(rtk_uint32 *pGap); 65extern ret_t rtl8367c_setAsicEgressFlowControlQueueDropGap(rtk_uint32 gap); 66extern ret_t rtl8367c_getAsicEgressFlowControlQueueDropGap(rtk_uint32 *pGap); 67extern ret_t rtl8367c_setAsicEgressFlowControlPortDropThreshold(rtk_uint32 port, rtk_uint32 threshold); 68extern ret_t rtl8367c_getAsicEgressFlowControlPortDropThreshold(rtk_uint32 port, rtk_uint32 *pThreshold); 69extern ret_t rtl8367c_setAsicEgressFlowControlQueueDropThreshold(rtk_uint32 qid, rtk_uint32 threshold); 70extern ret_t rtl8367c_getAsicEgressFlowControlQueueDropThreshold(rtk_uint32 qid, rtk_uint32 *pThreshold); 71extern ret_t rtl8367c_getAsicEgressQueueEmptyPortMask(rtk_uint32 *pPortmask); 72extern ret_t rtl8367c_getAsicTotalPage(rtk_uint32 *pPageCount); 73extern ret_t rtl8367c_getAsicPulbicPage(rtk_uint32 *pPageCount); 74extern ret_t rtl8367c_getAsicMaxTotalPage(rtk_uint32 *pPageCount); 75extern ret_t rtl8367c_getAsicMaxPulbicPage(rtk_uint32 *pPageCount); 76extern ret_t rtl8367c_getAsicPortPage(rtk_uint32 port, rtk_uint32 *pPageCount); 77extern ret_t rtl8367c_getAsicPortPageMax(rtk_uint32 port, rtk_uint32 *pPageCount); 78extern ret_t rtl8367c_setAsicFlowControlEgressPortIndep(rtk_uint32 port, rtk_uint32 enable); 79extern ret_t rtl8367c_getAsicFlowControlEgressPortIndep(rtk_uint32 port, rtk_uint32 *pEnable); 80 81#endif /*_RTL8367C_ASICDRV_FC_H_*/ 82 83