📄 skgemib.c
字号:
/***************************************************************************** * * Name: skgemib.c * Project: GEnesis, PCI Gigabit Ethernet Adapter * Version: $Revision: 1.1.1.1 $ * Date: $Date: 2005/06/27 17:05:12 $ * Purpose: Private Network Management Interface Management Database * ****************************************************************************//****************************************************************************** * * (C)Copyright 2002 SysKonnect GmbH. * * 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.1.1.1 2005/06/27 17:05:12 linuxpark * Initial import. * * 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. * ****************************************************************************/#include <config.h>#ifdef CONFIG_SK98/* * 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/* 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 */ {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, 0, SK_PNMI_MAI_OFF(DeviceType), SK_PNMI_RO, General, 0}, {OID_SKGE_DRIVER_DESCR, 1, 0, SK_PNMI_MAI_OFF(DriverDescr), SK_PNMI_RO, General, 0}, {OID_SKGE_DRIVER_VERSION, 1, 0, SK_PNMI_MAI_OFF(DriverVersion), SK_PNMI_RO, General, 0}, {OID_SKGE_HW_DESCR, 1, 0, SK_PNMI_MAI_OFF(HwDescr), SK_PNMI_RO, General, 0}, {OID_SKGE_HW_VERSION, 1, 0, SK_PNMI_MAI_OFF(HwVersion), SK_PNMI_RO, General, 0}, {OID_SKGE_CHIPSET, 1, 0, SK_PNMI_MAI_OFF(Chipset), SK_PNMI_RO, General, 0}, {OID_SKGE_ACTION, 1, 0, SK_PNMI_MAI_OFF(Action), SK_PNMI_RW, Perform, 0}, {OID_SKGE_RESULT, 1, 0, SK_PNMI_MAI_OFF(TestResult), SK_PNMI_RO, General, 0}, {OID_SKGE_BUS_TYPE, 1, 0, SK_PNMI_MAI_OFF(BusType), SK_PNMI_RO, General, 0}, {OID_SKGE_BUS_SPEED, 1, 0, SK_PNMI_MAI_OFF(BusSpeed), SK_PNMI_RO, General, 0}, {OID_SKGE_BUS_WIDTH, 1, 0, SK_PNMI_MAI_OFF(BusWidth), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_SW_QUEUE_LEN, 1, 0, SK_PNMI_MAI_OFF(TxSwQueueLen), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_SW_QUEUE_MAX, 1, 0, SK_PNMI_MAI_OFF(TxSwQueueMax), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_RETRY, 1, 0, SK_PNMI_MAI_OFF(TxRetryCts), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_INTR_CTS, 1, 0, SK_PNMI_MAI_OFF(RxIntrCts), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_INTR_CTS, 1, 0, SK_PNMI_MAI_OFF(TxIntrCts), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_NO_BUF_CTS, 1, 0, SK_PNMI_MAI_OFF(RxNoBufCts), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_NO_BUF_CTS, 1, 0, SK_PNMI_MAI_OFF(TxNoBufCts), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_USED_DESCR_NO, 1, 0, SK_PNMI_MAI_OFF(TxUsedDescrNo), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_DELIVERED_CTS, 1, 0, SK_PNMI_MAI_OFF(RxDeliveredCts), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_OCTETS_DELIV_CTS, 1, 0, SK_PNMI_MAI_OFF(RxOctetsDeliveredCts), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_HW_ERROR_CTS, 1, 0, SK_PNMI_MAI_OFF(RxHwErrorsCts), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_HW_ERROR_CTS, 1, 0, SK_PNMI_MAI_OFF(TxHwErrorsCts), SK_PNMI_RO, General, 0}, {OID_SKGE_IN_ERRORS_CTS, 1, 0, SK_PNMI_MAI_OFF(InErrorsCts), SK_PNMI_RO, General, 0}, {OID_SKGE_OUT_ERROR_CTS, 1, 0, SK_PNMI_MAI_OFF(OutErrorsCts), SK_PNMI_RO, General, 0}, {OID_SKGE_ERR_RECOVERY_CTS, 1, 0, SK_PNMI_MAI_OFF(ErrRecoveryCts), SK_PNMI_RO, General, 0}, {OID_SKGE_SYSUPTIME, 1, 0, SK_PNMI_MAI_OFF(SysUpTime), SK_PNMI_RO, General, 0}, {OID_SKGE_SENSOR_NUMBER, 1, 0, SK_PNMI_MAI_OFF(SensorNumber), SK_PNMI_RO, General, 0}, {OID_SKGE_SENSOR_INDEX, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorIndex), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_DESCR, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorDescr), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_TYPE, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorType), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_VALUE, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorValue), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_WAR_THRES_LOW, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorWarningThresholdLow), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_WAR_THRES_UPP, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorWarningThresholdHigh), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_ERR_THRES_LOW, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorErrorThresholdLow), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_ERR_THRES_UPP, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorErrorThresholdHigh), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_STATUS, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorStatus), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_WAR_CTS, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorWarningCts), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_ERR_CTS, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorErrorCts), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_WAR_TIME, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorWarningTimestamp), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_ERR_TIME, SK_PNMI_SENSOR_ENTRIES,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -