?? skgepnmi.c
字號:
* Revision 1.19 1998/10/19 10:51:30 mhaveman * -Made Bug fixes after simulation run * -Renamed RlmtMAC... to RlmtPort... * -Marked workarounds with Errata comments * * Revision 1.18 1998/10/14 07:50:08 mhaveman * -For OID_SKGE_LINK_STATUS the link down detection has moved from RLMT * to HWACCESS. * -Provided all MEMCPY/MEMSET macros with (char *) pointers, because * Solaris throwed warnings when mapping to bcopy/bset. * * Revision 1.17 1998/10/13 07:42:01 mhaveman * -Added OIDs OID_SKGE_TRAP_NUMBER and OID_SKGE_ALL_DATA * -Removed old cvs history entries * -Renamed MacNumber to PortNumber * * Revision 1.16 1998/10/07 10:52:49 mhaveman * -Inserted handling of some OID_GEN_ Ids for windows * -Fixed problem with 803.2 statistic. * * Revision 1.15 1998/10/01 09:16:29 mhaveman * Added Debug messages for function call and UpdateFlag tracing. * * Revision 1.14 1998/09/30 13:39:09 mhaveman * -Reduced namings of 'MAC' by replacing them with 'PORT'. * -Completed counting of OID_SKGE_RX_HW_ERROR_CTS, * OID_SKGE_TX_HW_ERROR_CTS, * OID_SKGE_IN_ERRORS_CTS, and OID_SKGE_OUT_ERROR_CTS. * -SET check for RlmtMode * * Revision 1.13 1998/09/28 13:13:08 mhaveman * Hide strcmp, strlen, and strncpy behind macros SK_STRCMP, SK_STRLEN, * and SK_STRNCPY. (Same reasons as for mem.. and MEM..) * * Revision 1.12 1998/09/16 08:18:36 cgoos * Fix: XM_INxx and XM_OUTxx called with different parameter order: * sometimes IoC,Mac,... sometimes Mac,IoC,... Now always first variant. * Fix: inserted "Pnmi." into some pAC->pDriverDescription / Version. * Change: memset, memcpy to makros SK_MEMSET, SK_MEMCPY * * Revision 1.11 1998/09/04 17:01:45 mhaveman * Added SyncCounter as macro and OID_SKGE_.._NO_DESCR_CTS to * OID_SKGE_RX_NO_BUF_CTS. * * Revision 1.10 1998/09/04 14:35:35 mhaveman * Added macro counters, that are counted by driver. * ****************************************************************************/#include <config.h>#ifdef CONFIG_SK98static const char SysKonnectFileId[] = "@(#) $Id: skgepnmi.c,v 1.102 2002/12/16 14:03:24 tschilli Exp $" " (C) SysKonnect.";#include "h/skdrv1st.h"#include "h/sktypes.h"#include "h/xmac_ii.h"#include "h/skdebug.h"#include "h/skqueue.h"#include "h/skgepnmi.h"#include "h/skgesirq.h"#include "h/skcsum.h"#include "h/skvpd.h"#include "h/skgehw.h"#include "h/skgeinit.h"#include "h/skdrv2nd.h"#include "h/skgepnm2.h"#ifdef SK_POWER_MGMT#include "h/skgepmgt.h"#endif/* defines *******************************************************************/#ifndef DEBUG#define PNMI_STATIC static#else /* DEBUG */#define PNMI_STATIC#endif /* DEBUG *//* * Public Function prototypes */int SkPnmiInit(SK_AC *pAC, SK_IOC IoC, int level);int SkPnmiGetVar(SK_AC *pAC, SK_IOC IoC, SK_U32 Id, void *pBuf, unsigned int *pLen, SK_U32 Instance, SK_U32 NetIndex);int SkPnmiPreSetVar(SK_AC *pAC, SK_IOC IoC, SK_U32 Id, void *pBuf, unsigned int *pLen, SK_U32 Instance, SK_U32 NetIndex);int SkPnmiSetVar(SK_AC *pAC, SK_IOC IoC, SK_U32 Id, void *pBuf, unsigned int *pLen, SK_U32 Instance, SK_U32 NetIndex);int SkPnmiGetStruct(SK_AC *pAC, SK_IOC IoC, void *pBuf, unsigned int *pLen, SK_U32 NetIndex);int SkPnmiPreSetStruct(SK_AC *pAC, SK_IOC IoC, void *pBuf, unsigned int *pLen, SK_U32 NetIndex);int SkPnmiSetStruct(SK_AC *pAC, SK_IOC IoC, void *pBuf, unsigned int *pLen, SK_U32 NetIndex);int SkPnmiEvent(SK_AC *pAC, SK_IOC IoC, SK_U32 Event, SK_EVPARA Param);/* * Private Function prototypes */PNMI_STATIC SK_U8 CalculateLinkModeStatus(SK_AC *pAC, SK_IOC IoC, unsigned int PhysPortIndex);PNMI_STATIC SK_U8 CalculateLinkStatus(SK_AC *pAC, SK_IOC IoC, unsigned int PhysPortIndex);PNMI_STATIC void CopyMac(char *pDst, SK_MAC_ADDR *pMac);PNMI_STATIC void CopyTrapQueue(SK_AC *pAC, char *pDstBuf);PNMI_STATIC SK_U64 GetPhysStatVal(SK_AC *pAC, SK_IOC IoC, unsigned int PhysPortIndex, unsigned int StatIndex);PNMI_STATIC SK_U64 GetStatVal(SK_AC *pAC, SK_IOC IoC, unsigned int LogPortIndex, unsigned int StatIndex, SK_U32 NetIndex);PNMI_STATIC char* GetTrapEntry(SK_AC *pAC, SK_U32 TrapId, unsigned int Size);PNMI_STATIC void GetTrapQueueLen(SK_AC *pAC, unsigned int *pLen, unsigned int *pEntries);PNMI_STATIC int GetVpdKeyArr(SK_AC *pAC, SK_IOC IoC, char *pKeyArr, unsigned int KeyArrLen, unsigned int *pKeyNo);PNMI_STATIC int LookupId(SK_U32 Id);PNMI_STATIC int MacUpdate(SK_AC *pAC, SK_IOC IoC, unsigned int FirstMac, unsigned int LastMac);PNMI_STATIC int PnmiStruct(SK_AC *pAC, SK_IOC IoC, int Action, char *pBuf, unsigned int *pLen, SK_U32 NetIndex);PNMI_STATIC int PnmiVar(SK_AC *pAC, SK_IOC IoC, int Action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, SK_U32 NetIndex);PNMI_STATIC void QueueRlmtNewMacTrap(SK_AC *pAC, unsigned int ActiveMac);PNMI_STATIC void QueueRlmtPortTrap(SK_AC *pAC, SK_U32 TrapId, unsigned int PortIndex);PNMI_STATIC void QueueSensorTrap(SK_AC *pAC, SK_U32 TrapId, unsigned int SensorIndex);PNMI_STATIC void QueueSimpleTrap(SK_AC *pAC, SK_U32 TrapId);PNMI_STATIC void ResetCounter(SK_AC *pAC, SK_IOC IoC, SK_U32 NetIndex);PNMI_STATIC int RlmtUpdate(SK_AC *pAC, SK_IOC IoC, SK_U32 NetIndex);PNMI_STATIC int SirqUpdate(SK_AC *pAC, SK_IOC IoC);PNMI_STATIC void VirtualConf(SK_AC *pAC, SK_IOC IoC, SK_U32 Id, char *pBuf);PNMI_STATIC int Vct(SK_AC *pAC, SK_IOC IoC, int Action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);PNMI_STATIC void CheckVctStatus(SK_AC *, SK_IOC, char *, SK_U32, SK_U32);/* * Table to correlate OID with handler function and index to * hardware register stored in StatAddress if applicable. */#include "skgemib.c"/* global variables **********************************************************//* * Overflow status register bit table and corresponding counter * dependent on MAC type - the number relates to the size of overflow * mask returned by the pFnMacOverflow function */PNMI_STATIC const SK_U16 StatOvrflwBit[][SK_PNMI_MAC_TYPES] = {/* Bit0 */ { SK_PNMI_HTX, SK_PNMI_HTX_UNICAST},/* Bit1 */ { SK_PNMI_HTX_OCTETHIGH, SK_PNMI_HTX_BROADCAST},/* Bit2 */ { SK_PNMI_HTX_OCTETLOW, SK_PNMI_HTX_PMACC},/* Bit3 */ { SK_PNMI_HTX_BROADCAST, SK_PNMI_HTX_MULTICAST},/* Bit4 */ { SK_PNMI_HTX_MULTICAST, SK_PNMI_HTX_OCTETLOW},/* Bit5 */ { SK_PNMI_HTX_UNICAST, SK_PNMI_HTX_OCTETHIGH},/* Bit6 */ { SK_PNMI_HTX_LONGFRAMES, SK_PNMI_HTX_64},/* Bit7 */ { SK_PNMI_HTX_BURST, SK_PNMI_HTX_127},/* Bit8 */ { SK_PNMI_HTX_PMACC, SK_PNMI_HTX_255},/* Bit9 */ { SK_PNMI_HTX_MACC, SK_PNMI_HTX_511},/* Bit10 */ { SK_PNMI_HTX_SINGLE_COL, SK_PNMI_HTX_1023},/* Bit11 */ { SK_PNMI_HTX_MULTI_COL, SK_PNMI_HTX_MAX},/* Bit12 */ { SK_PNMI_HTX_EXCESS_COL, SK_PNMI_HTX_LONGFRAMES},/* Bit13 */ { SK_PNMI_HTX_LATE_COL, SK_PNMI_HTX_RESERVED},/* Bit14 */ { SK_PNMI_HTX_DEFFERAL, SK_PNMI_HTX_COL},/* Bit15 */ { SK_PNMI_HTX_EXCESS_DEF, SK_PNMI_HTX_LATE_COL},/* Bit16 */ { SK_PNMI_HTX_UNDERRUN, SK_PNMI_HTX_EXCESS_COL},/* Bit17 */ { SK_PNMI_HTX_CARRIER, SK_PNMI_HTX_MULTI_COL},/* Bit18 */ { SK_PNMI_HTX_UTILUNDER, SK_PNMI_HTX_SINGLE_COL},/* Bit19 */ { SK_PNMI_HTX_UTILOVER, SK_PNMI_HTX_UNDERRUN},/* Bit20 */ { SK_PNMI_HTX_64, SK_PNMI_HTX_RESERVED},/* Bit21 */ { SK_PNMI_HTX_127, SK_PNMI_HTX_RESERVED},/* Bit22 */ { SK_PNMI_HTX_255, SK_PNMI_HTX_RESERVED},/* Bit23 */ { SK_PNMI_HTX_511, SK_PNMI_HTX_RESERVED},/* Bit24 */ { SK_PNMI_HTX_1023, SK_PNMI_HTX_RESERVED},/* Bit25 */ { SK_PNMI_HTX_MAX, SK_PNMI_HTX_RESERVED},/* Bit26 */ { SK_PNMI_HTX_RESERVED, SK_PNMI_HTX_RESERVED},/* Bit27 */ { SK_PNMI_HTX_RESERVED, SK_PNMI_HTX_RESERVED},/* Bit28 */ { SK_PNMI_HTX_RESERVED, SK_PNMI_HTX_RESERVED},/* Bit29 */ { SK_PNMI_HTX_RESERVED, SK_PNMI_HTX_RESERVED},/* Bit30 */ { SK_PNMI_HTX_RESERVED, SK_PNMI_HTX_RESERVED},/* Bit31 */ { SK_PNMI_HTX_RESERVED, SK_PNMI_HTX_RESERVED},/* Bit32 */ { SK_PNMI_HRX, SK_PNMI_HRX_UNICAST},/* Bit33 */ { SK_PNMI_HRX_OCTETHIGH, SK_PNMI_HRX_BROADCAST},/* Bit34 */ { SK_PNMI_HRX_OCTETLOW, SK_PNMI_HRX_PMACC},/* Bit35 */ { SK_PNMI_HRX_BROADCAST, SK_PNMI_HRX_MULTICAST},/* Bit36 */ { SK_PNMI_HRX_MULTICAST, SK_PNMI_HRX_FCS},/* Bit37 */ { SK_PNMI_HRX_UNICAST, SK_PNMI_HRX_RESERVED},/* Bit38 */ { SK_PNMI_HRX_PMACC, SK_PNMI_HRX_OCTETLOW},/* Bit39 */ { SK_PNMI_HRX_MACC, SK_PNMI_HRX_OCTETHIGH},/* Bit40 */ { SK_PNMI_HRX_PMACC_ERR, SK_PNMI_HRX_BADOCTETLOW},/* Bit41 */ { SK_PNMI_HRX_MACC_UNKWN, SK_PNMI_HRX_BADOCTETHIGH},/* Bit42 */ { SK_PNMI_HRX_BURST, SK_PNMI_HRX_UNDERSIZE},/* Bit43 */ { SK_PNMI_HRX_MISSED, SK_PNMI_HRX_RUNT},/* Bit44 */ { SK_PNMI_HRX_FRAMING, SK_PNMI_HRX_64},/* Bit45 */ { SK_PNMI_HRX_OVERFLOW, SK_PNMI_HRX_127},/* Bit46 */ { SK_PNMI_HRX_JABBER, SK_PNMI_HRX_255},/* Bit47 */ { SK_PNMI_HRX_CARRIER, SK_PNMI_HRX_511},/* Bit48 */ { SK_PNMI_HRX_IRLENGTH, SK_PNMI_HRX_1023},/* Bit49 */ { SK_PNMI_HRX_SYMBOL, SK_PNMI_HRX_MAX},/* Bit50 */ { SK_PNMI_HRX_SHORTS, SK_PNMI_HRX_LONGFRAMES},/* Bit51 */ { SK_PNMI_HRX_RUNT, SK_PNMI_HRX_TOO_LONG},/* Bit52 */ { SK_PNMI_HRX_TOO_LONG, SK_PNMI_HRX_JABBER},/* Bit53 */ { SK_PNMI_HRX_FCS, SK_PNMI_HRX_RESERVED},/* Bit54 */ { SK_PNMI_HRX_RESERVED, SK_PNMI_HRX_OVERFLOW},/* Bit55 */ { SK_PNMI_HRX_CEXT, SK_PNMI_HRX_RESERVED},/* Bit56 */ { SK_PNMI_HRX_UTILUNDER, SK_PNMI_HRX_RESERVED},/* Bit57 */ { SK_PNMI_HRX_UTILOVER, SK_PNMI_HRX_RESERVED},/* Bit58 */ { SK_PNMI_HRX_64, SK_PNMI_HRX_RESERVED},/* Bit59 */ { SK_PNMI_HRX_127, SK_PNMI_HRX_RESERVED},/* Bit60 */ { SK_PNMI_HRX_255, SK_PNMI_HRX_RESERVED},/* Bit61 */ { SK_PNMI_HRX_511, SK_PNMI_HRX_RESERVED},/* Bit62 */ { SK_PNMI_HRX_1023, SK_PNMI_HRX_RESERVED},/* Bit63 */ { SK_PNMI_HRX_MAX, SK_PNMI_HRX_RESERVED}};/* * Table for hardware register saving on resets and port switches */PNMI_STATIC const SK_PNMI_STATADDR StatAddr[SK_PNMI_MAX_IDX][SK_PNMI_MAC_TYPES] = { /* SK_PNMI_HTX */ {{XM_TXF_OK, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_OCTETHIGH */ {{XM_TXO_OK_HI, SK_TRUE}, {GM_TXO_OK_HI, SK_TRUE}}, /* SK_PNMI_HTX_OCTETLOW */ {{XM_TXO_OK_LO, SK_FALSE}, {GM_TXO_OK_LO, SK_FALSE}}, /* SK_PNMI_HTX_BROADCAST */ {{XM_TXF_BC_OK, SK_TRUE}, {GM_TXF_BC_OK, SK_TRUE}}, /* SK_PNMI_HTX_MULTICAST */ {{XM_TXF_MC_OK, SK_TRUE}, {GM_TXF_MC_OK, SK_TRUE}}, /* SK_PNMI_HTX_UNICAST */ {{XM_TXF_UC_OK, SK_TRUE}, {GM_TXF_UC_OK, SK_TRUE}}, /* SK_PNMI_HTX_BURST */ {{XM_TXE_BURST, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_PMACC */ {{XM_TXF_MPAUSE, SK_TRUE}, {GM_TXF_MPAUSE, SK_TRUE}}, /* SK_PNMI_HTX_MACC */ {{XM_TXF_MCTRL, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_COL */ {{0, SK_FALSE}, {GM_TXF_COL, SK_TRUE}}, /* SK_PNMI_HTX_SINGLE_COL */ {{XM_TXF_SNG_COL, SK_TRUE}, {GM_TXF_SNG_COL, SK_TRUE}}, /* SK_PNMI_HTX_MULTI_COL */ {{XM_TXF_MUL_COL, SK_TRUE}, {GM_TXF_MUL_COL, SK_TRUE}}, /* SK_PNMI_HTX_EXCESS_COL */ {{XM_TXF_ABO_COL, SK_TRUE}, {GM_TXF_ABO_COL, SK_TRUE}}, /* SK_PNMI_HTX_LATE_COL */ {{XM_TXF_LAT_COL, SK_TRUE}, {GM_TXF_LAT_COL, SK_TRUE}}, /* SK_PNMI_HTX_DEFFERAL */ {{XM_TXF_DEF, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_EXCESS_DEF */ {{XM_TXF_EX_DEF, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_UNDERRUN */ {{XM_TXE_FIFO_UR, SK_TRUE}, {GM_TXE_FIFO_UR, SK_TRUE}}, /* SK_PNMI_HTX_CARRIER */ {{XM_TXE_CS_ERR, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_UTILUNDER */ {{0, SK_FALSE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_UTILOVER */ {{0, SK_FALSE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_64 */ {{XM_TXF_64B, SK_TRUE}, {GM_TXF_64B, SK_TRUE}}, /* SK_PNMI_HTX_127 */ {{XM_TXF_127B, SK_TRUE}, {GM_TXF_127B, SK_TRUE}}, /* SK_PNMI_HTX_255 */ {{XM_TXF_255B, SK_TRUE}, {GM_TXF_255B, SK_TRUE}}, /* SK_PNMI_HTX_511 */ {{XM_TXF_511B, SK_TRUE}, {GM_TXF_511B, SK_TRUE}}, /* SK_PNMI_HTX_1023 */ {{XM_TXF_1023B, SK_TRUE}, {GM_TXF_1023B, SK_TRUE}}, /* SK_PNMI_HTX_MAX */ {{XM_TXF_MAX_SZ, SK_TRUE}, {GM_TXF_1518B, SK_TRUE}}, /* SK_PNMI_HTX_LONGFRAMES */ {{XM_TXF_LONG, SK_TRUE}, {GM_TXF_MAX_SZ, SK_TRUE}}, /* SK_PNMI_HTX_SYNC */ {{0, SK_FALSE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_SYNC_OCTET */ {{0, SK_FALSE}, {0, SK_FALSE}}, /* SK_PNMI_HTX_RESERVED */ {{0, SK_FALSE}, {0, SK_FALSE}}, /* SK_PNMI_HRX */ {{XM_RXF_OK, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_OCTETHIGH */ {{XM_RXO_OK_HI, SK_TRUE}, {GM_RXO_OK_HI, SK_TRUE}}, /* SK_PNMI_HRX_OCTETLOW */ {{XM_RXO_OK_LO, SK_FALSE}, {GM_RXO_OK_LO, SK_FALSE}}, /* SK_PNMI_HRX_BADOCTETHIGH */ {{0, SK_FALSE}, {GM_RXO_ERR_HI, SK_TRUE}}, /* SK_PNMI_HRX_BADOCTETLOW */ {{0, SK_FALSE}, {GM_RXO_ERR_LO, SK_TRUE}}, /* SK_PNMI_HRX_BROADCAST */ {{XM_RXF_BC_OK, SK_TRUE}, {GM_RXF_BC_OK, SK_TRUE}}, /* SK_PNMI_HRX_MULTICAST */ {{XM_RXF_MC_OK, SK_TRUE}, {GM_RXF_MC_OK, SK_TRUE}}, /* SK_PNMI_HRX_UNICAST */ {{XM_RXF_UC_OK, SK_TRUE}, {GM_RXF_UC_OK, SK_TRUE}}, /* SK_PNMI_HRX_PMACC */ {{XM_RXF_MPAUSE, SK_TRUE}, {GM_RXF_MPAUSE, SK_TRUE}}, /* SK_PNMI_HRX_MACC */ {{XM_RXF_MCTRL, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_PMACC_ERR */ {{XM_RXF_INV_MP, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_MACC_UNKWN */ {{XM_RXF_INV_MOC, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_BURST */ {{XM_RXE_BURST, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_MISSED */ {{XM_RXE_FMISS, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_FRAMING */ {{XM_RXF_FRA_ERR, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_UNDERSIZE */ {{0, SK_FALSE},{GM_RXF_SHT, SK_TRUE}}, /* SK_PNMI_HRX_OVERFLOW */ {{XM_RXE_FIFO_OV, SK_TRUE}, {GM_RXE_FIFO_OV, SK_TRUE}}, /* SK_PNMI_HRX_JABBER */ {{XM_RXF_JAB_PKT, SK_TRUE}, {GM_RXF_JAB_PKT, SK_TRUE}}, /* SK_PNMI_HRX_CARRIER */ {{XM_RXE_CAR_ERR, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_IRLENGTH */ {{XM_RXF_LEN_ERR, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_SYMBOL */ {{XM_RXE_SYM_ERR, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_SHORTS */ {{XM_RXE_SHT_ERR, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_RUNT */ {{XM_RXE_RUNT, SK_TRUE}, {GM_RXE_FRAG, SK_TRUE}}, /* SK_PNMI_HRX_TOO_LONG */ {{XM_RXF_LNG_ERR, SK_TRUE}, {GM_RXF_LNG_ERR, SK_TRUE}}, /* SK_PNMI_HRX_FCS */ {{XM_RXF_FCS_ERR, SK_TRUE}, {GM_RXF_FCS_ERR, SK_TRUE}}, /* SK_PNMI_HRX_CEXT */ {{XM_RXF_CEX_ERR, SK_TRUE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_UTILUNDER */ {{0, SK_FALSE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_UTILOVER */ {{0, SK_FALSE}, {0, SK_FALSE}}, /* SK_PNMI_HRX_64 */ {{XM_RXF_64B, SK_TRUE}, {GM_RXF_64B, SK_TRUE}}, /* SK_PNMI_HRX_127 */ {{XM_RXF_127B, SK_TRUE}, {GM_RXF_127B, SK_TRUE}}, /* SK_PNMI_HRX_255 */ {{XM_RXF_255B, SK_TRUE}, {GM_RXF_255B, SK_TRUE}}, /* SK_PNMI_HRX_511 */ {{XM_RXF_511B, SK_TRUE}, {GM_RXF_511B, SK_TRUE}}, /* SK_PNMI_HRX_1023 */ {{XM_RXF_1023B, SK_TRUE}, {GM_RXF_1023B, SK_TRUE}}, /* SK_PNMI_HRX_MAX */ {{XM_RXF_MAX_SZ, SK_TRUE}, {GM_RXF_1518B, SK_TRUE}}, /* SK_PNMI_HRX_LONGFRAMES */ {{0, SK_FALSE}, {GM_RXF_MAX_SZ, SK_TRUE}}, /* SK_PNMI_HRX_RESERVED */ {{0, SK_FALSE}, {0, SK_FALSE}}};/***************************************************************************** * * Public functions * *//***************************************************************************** * * SkPnmiInit - Init function of PNMI * * Description: * SK_INIT_DATA: Initialises the data structures * SK_INIT_IO: Resets the XMAC statistics, determines the device and * connector type. * SK_INIT_RUN: Starts a timer event for port switch per hour * calculation. * * Returns: * Always 0 */int SkPnmiInit(SK_AC *pAC, /* Pointer to adapter context */SK_IOC IoC, /* IO context handle */int Level) /* Initialization level */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -