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

📄 msapiinternal.h

📁 88E6095f的驱动代码及相应例子源码下载
💻 H
📖 第 1 页 / 共 3 页
字号:
#include <Copyright.h>

/********************************************************************************
* msApiPrototype.h
*
* DESCRIPTION:
*       API Prototypes for QuarterDeck Device
*
* DEPENDENCIES:
*
* FILE REVISION NUMBER:
*
*******************************************************************************/

#ifndef __msApiInternal_h
#define __msApiInternal_h

#ifdef __cplusplus
extern "C" {
#endif
#ifdef GT_USE_SIMPLE_PORT_MAPPING
#define GT_LPORT_2_PORT(_lport)      (GT_U8)((_lport) & 0xff)
#define GT_PORT_2_LPORT(_port)       (GT_32)((_port) & 0xff)
#define GT_LPORTVEC_2_PORTVEC(_lvec)      (GT_U8)((_lvec) & 0xffff)
#define GT_PORTVEC_2_LPORTVEC(_pvec)       (GT_32)((_pvec) & 0xffff)
#else#define GT_LPORT_2_PORT(_lport)      lport2port(dev->validPortVec, _lport)
#define GT_PORT_2_LPORT(_port)       port2lport(dev->validPortVec, _port)
#define GT_LPORTVEC_2_PORTVEC(_lvec)	lportvec2portvec(dev->validPortVec, _lvec)#define GT_PORTVEC_2_LPORTVEC(_pvec)	portvec2lportvec(dev->validPortVec, _pvec)
#endif#define GT_IS_PORT_SET(_portVec, _port)	\			((_portVec) & (0x1 << (_port)))#define GT_IS_IRLUNIT_VALID(_dev,_unit)		\		(((_dev)->deviceId == GT_88E6065)?(_unit < 12):	\		(((_dev)->deviceId == GT_88E6055)?(_unit < 12):	\		(((_dev)->deviceId == GT_88E6061)?(_unit < 6):	\		(((_dev)->deviceId == GT_88E6035)?(_unit < 6):	\										 (_unit < 3)))))
/* The following macro converts a binary    */
/* value (of 1 bit) to a boolean one.       */
/* 0 --> GT_FALSE                           */
/* 1 --> GT_TRUE                            */
#define BIT_2_BOOL(binVal,boolVal)                                  \
            (boolVal) = (((binVal) == 0) ? GT_FALSE : GT_TRUE)

/* The following macro converts a boolean   */
/* value to a binary one (of 1 bit).        */
/* GT_FALSE --> 0                           */
/* GT_TRUE --> 1                            */
#define BOOL_2_BIT(boolVal,binVal)                                  \
            (binVal) = (((boolVal) == GT_TRUE) ? 1 : 0)

/* The following macro converts a binary    */
/* value (of 1 bit) to a boolean one.       */
/* 0 --> GT_TRUE                            */
/* 1 --> GT_FALSE                           */
#define BIT_2_BOOL_R(binVal,boolVal)                                  \
            (boolVal) = (((binVal) == 0) ? GT_TRUE : GT_FALSE)

/* The following macro converts a boolean   */
/* value to a binary one (of 1 bit).        */
/* GT_FALSE --> 1                           */
/* GT_TRUE --> 0                            */
#define BOOL_2_BIT_R(boolVal,binVal)                                  \
            (binVal) = (((boolVal) == GT_TRUE) ? 0 : 1)
/* Bit definition for devStorage *//* Ingress/Egress Rate type (grcSetPri0Rate,	grcSetEgressRate) */#define GT_RATE_ENUM_NOT_USED		0x10000#define GT_RATE_ENUM_USED			0x00000
/* device name - devName */
#define DEV_88E6051                      0x0001    /* quarterdeck 6051      */
#define DEV_88E6052                      0x0002    /* quarterdeck 6052      */
#define DEV_88E6021                      0x0004    /* fullsail              */
#define DEV_88E6060                      0x0008    /* Gondola               */
#define DEV_88E6063                      0x0010    /* clippership 6063      */
#define DEV_FF_EG                        0x0020    /* FireFox-EG            */
#define DEV_FF_HG                        0x0040    /* FireFox-HG            */
#define DEV_FH_VPN                       0x0080    /* FireHawk-VPN          */
#define DEV_88E6083                      0x0100    /* Octane 6083           */
#define DEV_88E6181                      0x0200    /* Sapphire 88E6181      */
#define DEV_88E6183                      0x0400    /* Sapphire 88E6153,88E6183 */
#define DEV_88E6093	 	                 0x0800   /* 88E6093                  */
#define DEV_88E6092	 	                 0x1000   /* 88E6092                  */#define DEV_88E6095	 	                 0x2000   /* 88E6095                  */#define DEV_88E6182                      0x4000   /* Jade 88E6152, 88E6182 */
#define DEV_88E6185                      0x8000   /* Jade 88E6155, 88E6185 */
#define DEV_88E6108                      0x10000   /* 88E6108 */
#define DEV_88E6061                      0x20000   /* 88E6031, 88E6061 */
#define DEV_88E6065                      0x40000   /* 88E6035, 88E6055, 88E6065 */
#define DEV_88E6096                      0x80000   /* 88E6096, 88E6046 */
#define DEV_88E6097                      0x100000   /* 88E6097, 88E6047 */
#define DEV_88E6161                      0x200000   /* 88E6161 */
#define DEV_88E6165                      0x400000   /* 88E6165 */
#define DEV_88E6097_FAMILY	( DEV_88E6096 | DEV_88E6097 )#define DEV_88E6165_FAMILY	( DEV_88E6161 | DEV_88E6165 )

#define DEV_88E6095_FAMILY	( DEV_88E6092 | DEV_88E6095 )
#define DEV_88E6185_FAMILY	( DEV_88E6182 | DEV_88E6185 | DEV_88E6108)

#define DEV_88E6065_FAMILY	( DEV_88E6061 | DEV_88E6065 )
#define DEV_NEW_FEATURE_IN_REV (DEV_88E6095_FAMILY | DEV_88E6182 | DEV_88E6185)#define DEV_BURST_RATE		( DEV_88E6108 )#define DEV_DROP_BCAST		( DEV_88E6108 )#define DEV_ARP_PRI	        ( DEV_88E6108 )#define DEV_SNOOP_PRI	    ( DEV_88E6108 )#define DEV_SERDES_CORE	    ( DEV_88E6108 )#define DEV_AGE_INTERRUPT	( DEV_88E6108 | DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_AGE_INT_GLOBAL2	( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_AGE_OUT_INT		( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_AGE_HOLD		( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_DEVICE_INTERRUPT	( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_DEVICE_INT_TYPE1	( DEV_88E6097_FAMILY )	/* Serdes Int bit[10:8] */
#define DEV_DEVICE_INT_TYPE2	( DEV_88E6165_FAMILY )	/* Serdes Int bit[12:11], Phy Int bit[4:0] */
#define DEV_WATCHDOG_EVENT		( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_PORT_BASED_AGE_INT	( DEV_88E6065_FAMILY )#define DEV_DEV_PHY_INTERRUPT	( DEV_88E6165_FAMILY )	/* device interrupt includes phy int */
#define DEV_AVB_INTERRUPT		( DEV_88E6165_FAMILY )
#define DEV_AUTO_REFRESH_LOCKED	( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )

#define DEV_PPU_PHY_ACCESS		( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_PPU_PHY_ACCESS_RES	( DEV_88E6097_FAMILY )
#define DEV_PPU_READ_ONLY		( DEV_88E6165_FAMILY )

#define DEV_NO_EGRESS_POLICY	( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )

/* DEV_8PORT_SWITCH is used to access the given device's Register Map */#define DEV_8PORT_SWITCH	( DEV_88E6083 | DEV_88E6181 | DEV_88E6183 | 	\							  DEV_88E6093 | DEV_88E6097_FAMILY |			\							  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY |		\
							  DEV_88E6165_FAMILY )
#define DEV_PORT_SECURITY	( DEV_88E6083 | DEV_88E6183 | DEV_88E6093 | 	\							  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY )#define DEV_BROADCAST_INVALID	( DEV_88E6051 | DEV_88E6052 | DEV_FF_EG | DEV_FF_HG)

/* Configurable ATU Size */
#define DEV_ATU_256_2048 		( DEV_88E6021 | DEV_88E6060 | DEV_88E6065_FAMILY )
#define DEV_ATU_562_2048 		\
						( DEV_88E6052 | DEV_88E6063 | DEV_FF_HG | 	\						  DEV_FH_VPN | DEV_88E6083 )
#define DEV_ATU_SIZE_FIXED	DEV_GIGABIT_SWITCH
#define DEV_ATU_1024	(DEV_88E6108)	/* Not used */
#define DEV_ATU_8192	(DEV_88E6095_FAMILY | DEV_88E6182 | DEV_88E6185)	/* Not used */
#define DEV_ATU_LIMIT	( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )

#define DEV_DBNUM_FULL 	\
						( DEV_88E6021 | DEV_88E6060 | DEV_88E6063 | 	\
						  DEV_FH_VPN |  DEV_88E6083 |					\						  DEV_88E6183 | DEV_88E6093 | DEV_88E6061 )
#define DEV_DBNUM_64 	( DEV_88E6065 )#define DEV_DBNUM_256 	( DEV_88E6095_FAMILY | DEV_88E6185_FAMILY )#define DEV_DBNUM_4096 	( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )

#define DEV_STATIC_ADDR	\
						( DEV_88E6021 | DEV_FF_EG | DEV_FF_HG |			\
						  DEV_88E6052 | DEV_88E6063 | DEV_FH_VPN |		\
						  DEV_88E6083 |	DEV_88E6183 | DEV_88E6093 | 	\						  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY |		\
						  DEV_88E6065_FAMILY | DEV_88E6097_FAMILY |		\
						  DEV_88E6165_FAMILY )

#define DEV_TRAILER		\
						( DEV_88E6021 | DEV_FF_HG | DEV_88E6052 |  		\
						  DEV_88E6063 | DEV_FH_VPN | DEV_88E6083 )

#define DEV_TRAILER_P5		( DEV_FF_EG )
#define DEV_TRAILER_P4P5	( DEV_88E6060 )

#define DEV_HEADER		\
						( DEV_FF_HG | DEV_88E6063 | DEV_FH_VPN |	\						  DEV_88E6083 |	DEV_88E6183 | DEV_88E6093 | \						  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY |	\						  DEV_88E6065_FAMILY | DEV_88E6097_FAMILY |	\
						  DEV_88E6165_FAMILY )

#define DEV_HEADER_P5		( DEV_FF_EG )
#define DEV_HEADER_P4P5		( DEV_88E6060 )

/* DEV_QoS : Devices with multiple Queues for QoS Priority Support */#define DEV_QoS			\
						( DEV_88E6021 | DEV_FF_HG |	DEV_88E6051 | 		\						  DEV_88E6052 | DEV_88E6063 | DEV_FH_VPN |		\
						  DEV_88E6083 | DEV_88E6181 | DEV_88E6183 | 	\						  DEV_88E6093 | DEV_88E6095_FAMILY |			\						  DEV_88E6185_FAMILY | DEV_88E6065_FAMILY | 	\						  DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_QoS_FPRI_QPRI	( DEV_88E6065_FAMILY )#define DEV_QoS_WEIGHT		( DEV_88E6097 | DEV_88E6165 )

#define DEV_TAGGING			DEV_QoS
#define DEV_EGRESS_DOUBLE_TAGGING	\						( DEV_QoS & ~(DEV_88E6051 | DEV_88E6092 | DEV_88E6182 | \									  DEV_88E6061 ) )#define DEV_INGRESS_DOUBLE_TAGGING	\						( DEV_88E6181 | DEV_88E6183 | DEV_88E6093 | 	\						  DEV_88E6095 | DEV_88E6185 | DEV_88E6108 )#define DEV_PRIORITY_REMAPPING		\						( DEV_88E6181 | DEV_88E6183 | DEV_88E6093 | 	\						  DEV_88E6095 | DEV_88E6185 | DEV_88E6108 |		\						  DEV_88E6065 | DEV_88E6097_FAMILY | 			\
						  DEV_88E6165_FAMILY )
#define DEV_802_1Q		( DEV_88E6021 | DEV_88E6063 | DEV_FH_VPN | 			\						  DEV_88E6083 | DEV_88E6183 | DEV_88E6093 | 		\						  DEV_88E6095 | DEV_88E6092 | DEV_88E6185_FAMILY |	\
						  DEV_88E6065_FAMILY | DEV_88E6097_FAMILY |			\
						  DEV_88E6165_FAMILY )

#define DEV_802_1S		( DEV_88E6095 | DEV_88E6185 | DEV_88E6108 | DEV_88E6065 )#define DEV_802_1S_STU	( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_802_1W		( DEV_88E6183 | DEV_88E6093 | DEV_88E6095 | 	\						  DEV_88E6185 | DEV_88E6108 | DEV_88E6065 |		\						  DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )

#define DEV_ATU_15SEC_AGING	( DEV_GIGABIT_SWITCH | DEV_88E6065_FAMILY )
#define DEV_ATU_RM_PORTS	( DEV_88E6093_FAMILY | DEV_88E6065 )
#define DEV_ATU_EXT_PRI		( DEV_88E6065_FAMILY )

#define DEV_VTU_EXT_INFO	( DEV_88E6065_FAMILY )
#define DEV_RMON		( DEV_88E6021 | DEV_88E6063 | DEV_FH_VPN | 			\						  DEV_88E6083 | DEV_88E6183 | DEV_88E6093 | 		\						  DEV_88E6092 | DEV_88E6095 | DEV_88E6185_FAMILY |	\						  DEV_88E6065 | DEV_88E6097_FAMILY |				\
						  DEV_88E6165_FAMILY ) 

#define DEV_RMON_TYPE_1	( DEV_88E6021 | DEV_88E6063 | DEV_FH_VPN | DEV_88E6083 ) #define DEV_RMON_TYPE_2 ( DEV_88E6183 )#define DEV_RMON_TYPE_3 ( DEV_88E6093 | DEV_88E6095 | DEV_88E6092 | 	\						  DEV_88E6185_FAMILY | DEV_88E6065 | 			\						  DEV_88E6097_FAMILY |		\
						  DEV_88E6165_FAMILY )
#define DEV_RMON_REALTIME_SUPPORT	( DEV_88E6065 | DEV_88E6065_FAMILY |	\									  DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_RMON_PORT_BITS	( DEV_88E6065 | DEV_88E6065_FAMILY )#define DEV_IGMP_SNOOPING	\
						( DEV_88E6021 | DEV_88E6063 | DEV_FH_VPN |			\
						  DEV_88E6083 | DEV_88E6183 | DEV_88E6093 | 		\						  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY |			\						  DEV_88E6065_FAMILY | DEV_88E6097_FAMILY |			\
						  DEV_88E6165_FAMILY )

#define DEV_PORT_MONITORING	\
						( DEV_88E6060 | DEV_88E6063 | DEV_FH_VPN |			\
						  DEV_88E6083 | DEV_88E6183 | DEV_88E6093 | 		\						  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY |			\						  DEV_88E6065_FAMILY | DEV_88E6097_FAMILY |			\
						  DEV_88E6165_FAMILY )

#define DEV_ENABLE_MONITORING	\
						( DEV_88E6060 | DEV_88E6063 | DEV_FH_VPN |			\
						  DEV_88E6083 | DEV_88E6183 | DEV_88E6093 |			\						  DEV_88E6065_FAMILY )

#define DEV_MC_RATE_PERCENT	\
						( DEV_88E6021 | DEV_88E6051 | DEV_88E6052 )

#define DEV_MC_RATE_KBPS	\
						( DEV_FF_HG | DEV_88E6063 | DEV_FH_VPN |			\
						  DEV_88E6083 )

#define DEV_INGRESS_RATE_KBPS	\
						( DEV_FF_HG | DEV_88E6063 | DEV_FH_VPN |			\
						  DEV_88E6083 | DEV_88E6181 | DEV_88E6183 | 		\						  DEV_88E6093 | DEV_88E6095_FAMILY | DEV_88E6185_FAMILY)

#define DEV_EGRESS_RATE_KBPS	\
						( DEV_FF_HG | DEV_88E6063 | DEV_FH_VPN |			\
						  DEV_88E6083 | DEV_88E6181 | DEV_88E6183 | 		\						  DEV_88E6093 | DEV_88E6095 | DEV_88E6185 | 		\						  DEV_88E6108 | DEV_88E6065_FAMILY | 				\
						  DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_ELIMIT_FRAME_BASED	\						( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_PIRL_RESOURCE	\						( DEV_88E6065_FAMILY )#define DEV_PIRL2_RESOURCE	\						( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_RESTRICTED_PIRL_RESOURCE	\						( DEV_88E6061 )#define DEV_RESTRICTED_PIRL2_RESOURCE	\						( DEV_88E6096 | DEV_88E6161 )

#define DEV_NONE_RATE_LIMIT		\						( DEV_88E6065 )
#define DEV_MII_DUPLEX_CONFIG	\
						( DEV_88E6021 | DEV_88E6063 | DEV_FH_VPN |			\
						  DEV_88E6083 )

#define DEV_QD_PLUS 	\
					( DEV_88E6021 | DEV_FF_EG | DEV_FF_HG |					\
					  DEV_88E6060 | DEV_88E6063 | DEV_FH_VPN |				\
					  DEV_88E6083 | DEV_88E6181 | DEV_88E6183 | 			\					  DEV_88E6093 | 										\					  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY |				\					  DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )

#define DEV_FASTETH_SWITCH	\					( DEV_88E6051 | DEV_88E6052 | DEV_88E6021 | 		\					  DEV_FF_EG | DEV_FF_HG | DEV_88E6060 | 			\
					  DEV_88E6063 | DEV_FH_VPN | DEV_88E6083 |			\					  DEV_88E6065_FAMILY )
#define DEV_ENHANCED_FE_SWITCH		( DEV_88E6065_FAMILY )#define DEV_EXTERNAL_PHY	\					( DEV_88E6181 | DEV_88E6183 | DEV_88E6093 |			\					  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY |			\					  DEV_88E6097_FAMILY )
#define DEV_EXTERNAL_PHY_ONLY	( DEV_88E6181 | DEV_88E6183 | DEV_88E6182 | DEV_88E6185 )

#define DEV_INTERNAL_GPHY   ( DEV_88E6108 )#define DEV_FC_WITH_VALUE			\					( DEV_88E6093 | DEV_88E6095_FAMILY | DEV_88E6185_FAMILY |	\					  DEV_88E6065_FAMILY | DEV_88E6097_FAMILY |					\
					  DEV_88E6165_FAMILY )
#define DEV_FC_STATUS				\					( DEV_88E6181 | DEV_88E6183 | DEV_88E6093 | 	\					  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY | 	\					  DEV_88E6065_FAMILY | DEV_88E6097_FAMILY |		\
					  DEV_88E6165_FAMILY )
#define DEV_FC_DIS_STATUS	( DEV_88E6065_FAMILY )#define DEV_CORE_TAG		( DEV_88E6093 | DEV_88E6095_FAMILY | DEV_88E6185_FAMILY )#define DEV_PCS_LINK		( DEV_88E6093 | DEV_88E6095_FAMILY | 	\							  DEV_88E6185_FAMILY | DEV_88E6097_FAMILY |	\
							  DEV_88E6165_FAMILY )
#define DEV_MGMII_STATUS	( DEV_88E6093 | DEV_88E6095_FAMILY | 	\							  DEV_88E6185_FAMILY | DEV_88E6097_FAMILY |	\
							  DEV_88E6165_FAMILY )
#define DEV_MGMII_REVERSE_STATUS	( DEV_88E6165_FAMILY )#define DEV_88E6183_FAMILY		( DEV_88E6183 | DEV_88E6185_FAMILY )#define DEV_88E6093_FAMILY		( DEV_88E6093 | DEV_88E6095_FAMILY | 		\								  DEV_88E6185_FAMILY | DEV_88E6097_FAMILY |	\
								  DEV_88E6165_FAMILY )
#define DEV_UNMANAGED_SWITCH	( DEV_88E6181 )#define DEV_PCS					\
					( DEV_88E6181 | DEV_88E6183 | DEV_88E6093 | 	\
					  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY | 	\
					  DEV_88E6097_FAMILY )
#define DEV_GIGABIT_SWITCH		\					( DEV_88E6181 | DEV_88E6183 | DEV_88E6093 | 	\					  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY | 	\
					  DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_GIGABIT_MANAGED_SWITCH	\					( DEV_88E6183 | DEV_88E6093 | \					  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY | 	\
					  DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_CASCADE_PORT	\					( DEV_88E6183 | DEV_88E6093 | \					  DEV_88E6095_FAMILY | DEV_88E6185_FAMILY )#define DEV_CROSS_CHIP_VLAN		\					( DEV_88E6095_FAMILY | DEV_88E6185_FAMILY )#define DEV_CROSS_CHIP_PORT_VLAN	( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_TRUNK	( DEV_88E6095_FAMILY | DEV_88E6185_FAMILY |		\					  DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_8_TRUNKING	( DEV_88E6092 | DEV_88E6182 )#define DEV_TRUNK_NEW_ID_LOCATION	( DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )
#define DEV_REDUCED_TRUNK	( DEV_88E6065_FAMILY )#define DEV_STACKING	\					( DEV_88E6095 | DEV_88E6185 | DEV_88E6108 |		\					  DEV_88E6097_FAMILY | DEV_88E6165_FAMILY )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -