📄 skgemib.c
字号:
/******************************************************************************* ** Copyright 2005 University of Cambridge Computer Laboratory. ** ** This file is part of Nprobe. ** ** Nprobe is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** Nprobe is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with Nprobe; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ** *******************************************************************************//***************************************************************************** * * Name: skgemib.c * Project: GEnesis, PCI Gigabit Ethernet Adapter * Version: $Revision: 1.9 $ * Date: $Date: 2003/05/23 12:55:20 $ * Purpose: Private Network Management Interface Management Database * ****************************************************************************//****************************************************************************** * * (C)Copyright 1998-2002 SysKonnect GmbH. * (C)Copyright 2002-2003 Marvell. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * The information in this file is provided "AS IS" without warranty. * ******************************************************************************//***************************************************************************** * * History: * * $Log: skgemib.c,v $ * Revision 1.9 2003/05/23 12:55:20 tschilli * OID_SKGE_BOARDLEVEL added. * * Revision 1.8 2003/03/27 11:19:15 tschilli * Copyright messages changed. * * Revision 1.7 2002/12/16 09:04:34 tschilli * Code for VCT handling added. * * Revision 1.6 2002/08/09 15:40:21 rwahl * Editorial change (renamed ConfSpeedCap). * * Revision 1.5 2002/08/09 11:05:34 rwahl * Added oid handling for link speed cap. * * Revision 1.4 2002/08/09 09:40:27 rwahl * Added support for NDIS OID_PNP_xxx. * * Revision 1.3 2002/07/17 19:39:54 rwahl * Added handler for OID_SKGE_SPEED_MODE & OID_SKGE_SPEED_STATUS. * * Revision 1.2 2002/05/22 08:59:00 rwahl * - static functions only for release build. * - Source file must be included. * * Revision 1.1 2002/05/22 08:12:42 rwahl * Initial version. * ****************************************************************************//* * PRIVATE OID handler function prototypes */PNMI_STATIC int Addr(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 int CsumStat(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 int General(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 int Mac8023Stat(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 int MacPrivateConf(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 int MacPrivateStat(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 int Monitor(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 int OidStruct(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 int Perform(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 int Rlmt(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 int RlmtStat(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 int SensorStat(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 int Vpd(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 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);#ifdef SK_POWER_MGMTPNMI_STATIC int PowerManagement(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);#endif /* SK_POWER_MGMT */#ifdef SK_DIAG_SUPPORTPNMI_STATIC int DiagActions(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);#endif /* SK_DIAG_SUPPORT *//* defines *******************************************************************/#define ID_TABLE_SIZE (sizeof(IdTable)/sizeof(IdTable[0]))/* global variables **********************************************************//* * Table to correlate OID with handler function and index to * hardware register stored in StatAddress if applicable. */PNMI_STATIC const SK_PNMI_TAB_ENTRY IdTable[] = { {OID_GEN_XMIT_OK, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX}, {OID_GEN_RCV_OK, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX}, {OID_GEN_XMIT_ERROR, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_GEN_RCV_ERROR, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_GEN_RCV_NO_BUFFER, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_GEN_DIRECTED_FRAMES_XMIT, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_UNICAST}, {OID_GEN_MULTICAST_FRAMES_XMIT, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_MULTICAST}, {OID_GEN_BROADCAST_FRAMES_XMIT, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_BROADCAST}, {OID_GEN_DIRECTED_FRAMES_RCV, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_UNICAST}, {OID_GEN_MULTICAST_FRAMES_RCV, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_MULTICAST}, {OID_GEN_BROADCAST_FRAMES_RCV, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_BROADCAST}, {OID_GEN_RCV_CRC_ERROR, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_FCS}, {OID_GEN_TRANSMIT_QUEUE_LENGTH, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_802_3_PERMANENT_ADDRESS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, 0}, {OID_802_3_CURRENT_ADDRESS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, 0}, {OID_802_3_RCV_ERROR_ALIGNMENT, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_FRAMING}, {OID_802_3_XMIT_ONE_COLLISION, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_SINGLE_COL}, {OID_802_3_XMIT_MORE_COLLISIONS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_MULTI_COL}, {OID_802_3_XMIT_DEFERRED, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_DEFFERAL}, {OID_802_3_XMIT_MAX_COLLISIONS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_EXCESS_COL}, {OID_802_3_RCV_OVERRUN, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_OVERFLOW}, {OID_802_3_XMIT_UNDERRUN, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_UNDERRUN}, {OID_802_3_XMIT_TIMES_CRS_LOST, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_CARRIER}, {OID_802_3_XMIT_LATE_COLLISIONS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_LATE_COL},#ifdef SK_POWER_MGMT {OID_PNP_CAPABILITIES, 0, 0, 0, SK_PNMI_RO, PowerManagement, 0}, {OID_PNP_SET_POWER, 0, 0, 0, SK_PNMI_WO, PowerManagement, 0}, {OID_PNP_QUERY_POWER, 0, 0, 0, SK_PNMI_RO, PowerManagement, 0}, {OID_PNP_ADD_WAKE_UP_PATTERN, 0, 0, 0, SK_PNMI_WO, PowerManagement, 0}, {OID_PNP_REMOVE_WAKE_UP_PATTERN, 0, 0, 0, SK_PNMI_WO, PowerManagement, 0}, {OID_PNP_ENABLE_WAKE_UP, 0, 0, 0, SK_PNMI_RW, PowerManagement, 0},#endif /* SK_POWER_MGMT */#ifdef SK_DIAG_SUPPORT {OID_SKGE_DIAG_MODE, 0, 0, 0, SK_PNMI_RW, DiagActions, 0},#endif /* SK_DIAG_SUPPORT */ {OID_SKGE_MDB_VERSION, 1, 0, SK_PNMI_MAI_OFF(MgmtDBVersion), SK_PNMI_RO, General, 0}, {OID_SKGE_SUPPORTED_LIST, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_SKGE_ALL_DATA, 0, 0, 0, SK_PNMI_RW, OidStruct, 0}, {OID_SKGE_VPD_FREE_BYTES, 1, 0, SK_PNMI_MAI_OFF(VpdFreeBytes), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_ENTRIES_LIST, 1, 0, SK_PNMI_MAI_OFF(VpdEntriesList), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_ENTRIES_NUMBER, 1, 0, SK_PNMI_MAI_OFF(VpdEntriesNumber), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_KEY, SK_PNMI_VPD_ENTRIES, sizeof(SK_PNMI_VPD), SK_PNMI_OFF(Vpd) + SK_PNMI_VPD_OFF(VpdKey), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_VALUE, SK_PNMI_VPD_ENTRIES, sizeof(SK_PNMI_VPD), SK_PNMI_OFF(Vpd) + SK_PNMI_VPD_OFF(VpdValue), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_ACCESS, SK_PNMI_VPD_ENTRIES, sizeof(SK_PNMI_VPD), SK_PNMI_OFF(Vpd) + SK_PNMI_VPD_OFF(VpdAccess), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_ACTION, SK_PNMI_VPD_ENTRIES, sizeof(SK_PNMI_VPD), SK_PNMI_OFF(Vpd) + SK_PNMI_VPD_OFF(VpdAction), SK_PNMI_RW, Vpd, 0}, {OID_SKGE_PORT_NUMBER, 1, 0, SK_PNMI_MAI_OFF(PortNumber), SK_PNMI_RO, General, 0}, {OID_SKGE_DEVICE_TYPE, 1,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -