!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/drivers/net/sk98lin/h/   drwxr-xr-x
Free 318.35 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     skgepnmi.h (34.25 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*****************************************************************************
 *
 * Name:    skgepnmi.h
 * Project:    GEnesis, PCI Gigabit Ethernet Adapter
 * Version:    $Revision: 1.48 $
 * Date:    $Date: 2001/02/23 14:34:24 $
 * Purpose:    Defines for Private Network Management Interface
 *
 ****************************************************************************/

/******************************************************************************
 *
 *    (C)Copyright 1998-2001 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: skgepnmi.h,v $
 *    Revision 1.48  2001/02/23 14:34:24  mkunz
 *    Changed macro PHYS2INST. Added pAC to Interface
 *    
 *    Revision 1.47  2001/02/07 08:28:23  mkunz
 *    - Added Oids:     OID_SKGE_DIAG_ACTION
 *                    OID_SKGE_DIAG_RESULT
 *                    OID_SKGE_MULTICAST_LIST
 *                    OID_SKGE_CURRENT_PACKET_FILTER
 *                    OID_SKGE_INTERMEDIATE_SUPPORT
 *    - Changed value of OID_SKGE_MTU
 *    
 *    Revision 1.46  2001/02/06 10:01:41  mkunz
 *    - Pnmi V4 dual net support added. Interface functions and macros extended
 *    - Vpd bug fixed
 *    - OID_SKGE_MTU added
 *    
 *    Revision 1.45  2001/01/22 13:41:37  rassmann
 *    Supporting two nets on dual-port adapters.
 *    
 *    Revision 1.44  2000/09/07 07:35:27  rwahl
 *    - removed NDIS counter specific data type.
 *    - fixed spelling for OID_SKGE_RLMT_PORT_PREFERRED.
 *    
 *    Revision 1.43  2000/08/04 11:41:08  rwahl
 *    - Fixed compiler warning (port is always >= 0) for macros
 *      SK_PNMI_CNT_RX_LONGFRAMES & SK_PNMI_CNT_SYNC_OCTETS
 *    
 *    Revision 1.42  2000/08/03 15:14:07  rwahl
 *    - Corrected error in driver macros addressing a physical port.
 *    
 *    Revision 1.41  2000/08/01 16:22:29  rwahl
 *    - Changed MDB version to 3.1.
 *    - Added definitions for StatRxLongFrames counter.
 *    - Added macro to be used by driver to count long frames received.
 *    - Added directive to control width (default = 32bit) of NDIS statistic
 *      counters (SK_NDIS_64BIT_CTR).
 *    
 *    Revision 1.40  2000/03/31 13:51:34  rwahl
 *    Added SK_UPTR cast to offset calculation for PNMI struct fields;
 *    missing cast caused compiler warnings by Win64 compiler.
 *
 *    Revision 1.39  1999/12/06 10:09:47  rwahl
 *    Added new error log message.
 *    
 *    Revision 1.38  1999/11/22 13:57:55  cgoos
 *    Changed license header to GPL.
 *
 *    Revision 1.37  1999/09/14 14:25:32  rwahl
 *    Set MDB version for 1000Base-T (sensors, Master/Slave) changes.
 *    
 *    Revision 1.36  1999/05/20 09:24:56  cgoos
 *    Changes for 1000Base-T (sensors, Master/Slave).
 *    
 *    Revision 1.35  1999/04/13 15:10:51  mhaveman
 *    Replaced RLMT macros SK_RLMT_CHECK_xxx again by those of PNMI to
 *    grant unified interface. But PNMI macros will store the same
 *    value as RLMT macros.
 *    
 *    Revision 1.34  1999/04/13 15:03:49  mhaveman
 *    -Changed copyright
 *    -Removed SK_PNMI_RLMT_MODE_CHK_xxx macros. Those of RLMT should be
 *     used.
 *    
 *    Revision 1.33  1999/03/23 10:41:02  mhaveman
 *    Changed comments.
 *    
 *    Revision 1.32  1999/01/25 15:01:33  mhaveman
 *    Added support for multiple simultaniously active ports.
 *    
 *    Revision 1.31  1999/01/19 10:06:26  mhaveman
 *    Added new error log message.
 *    
 *    Revision 1.30  1999/01/05 10:34:49  mhaveman
 *    Fixed little error in RlmtChangeEstimate calculation.
 *    
 *    Revision 1.29  1999/01/05 09:59:41  mhaveman
 *    Redesigned port switch average calculation to avoid 64bit
 *    arithmetic.
 *    
 *    Revision 1.28  1998/12/08 10:05:48  mhaveman
 *    Defined macro SK_PNMI_MIN_STRUCT_SIZE.
 *    
 *    Revision 1.27  1998/12/03 14:39:35  mhaveman
 *    Fixed problem that LSTAT was enumerated wrong.
 *    
 *    Revision 1.26  1998/12/03 11:19:51  mhaveman
 *    Changed contents of errlog message SK_PNMI_ERR016MSG
 *    
 *    Revision 1.25  1998/12/01 10:40:04  mhaveman
 *    Changed size of SensorNumber, ChecksumNumber and RlmtPortNumber in
 *    SK_PNMI_STRUCT_DATA to be conform with OID definition.
 *    
 *    Revision 1.24  1998/11/20 08:09:27  mhaveman
 *    Added macros to convert between logical, physical port indexes and
 *    instances.
 *    
 *    Revision 1.23  1998/11/10 13:41:13  mhaveman
 *    Needed to change interface, because NT driver needs a return value
 *    of needed buffer space on TOO_SHORT errors. Therefore all
 *    SkPnmiGet/Preset/Set functions now have a pointer to the length
 *    parameter, where the needed space on error is returned.
 *    
 *    Revision 1.22  1998/11/03 12:05:51  mhaveman
 *    Added pAC parameter to counter macors.
 *
 *    Revision 1.21  1998/11/02 10:47:36  mhaveman
 *    Added syslog messages for internal errors.
 *    
 *    Revision 1.20  1998/10/30 15:49:36  mhaveman
 *    -Removed unused SK_PNMI_UTILIZATION_BASE and EstOldCnt.
 *    -Redefined SK_PNMI_CHG_EST_BASE to hundreds of seconds.
 *    
 *    Revision 1.19  1998/10/29 15:38:44  mhaveman
 *    Changed string lengths of PNMI_STRUCT_DATA structure because
 *    string OIDs are now encoded with leading length ocetet.
 *    
 *    Revision 1.18  1998/10/29 08:52:27  mhaveman
 *    -Added byte to strings in PNMI_STRUCT_DATA structure.
 *    -Shortened SK_PNMI_RLMT structure to SK_MAX_MACS elements.
 *    
 *    Revision 1.17  1998/10/28 08:49:50  mhaveman
 *    -Changed type of Instance back to SK_U32 because of VPD
 *    -Changed type from SK_U8 to char of PciBusSpeed, PciBusWidth, PMD,
 *     and Connector.
 *    
 *    Revision 1.16  1998/10/22 10:42:31  mhaveman
 *    -Removed (SK_U32) casts for OIDs
 *    -excluded NDIS OIDs when they are already defined with ifndef _NDIS_
 *    
 *    Revision 1.15  1998/10/20 13:56:28  mhaveman
 *    Headerfile includes now directly other header files to comile correctly.
 *    
 *    Revision 1.14  1998/10/20 07:31:09  mhaveman
 *    Made type changes to unsigned int where possible.
 *    
 *    Revision 1.13  1998/10/19 10:53:13  mhaveman
 *    -Casted OID definitions to SK_U32
 *    -Renamed RlmtMAC... to RlmtPort...
 *    -Changed wrong type of VpdEntriesList from SK_U32 to char *
 *    
 *    Revision 1.12  1998/10/13 07:42:27  mhaveman
 *    -Added OIDs OID_SKGE_TRAP_NUMBER and OID_SKGE_ALL_DATA
 *    -Removed old cvs history entries
 *    -Renamed MacNumber to PortNumber
 *    
 *    Revision 1.11  1998/10/07 10:55:24  mhaveman
 *    -Added OID_MDB_VERSION. Therefore was a renumbering of the VPD OIDs
 *     necessary.
 *    -Added OID_GEN_ Ids to support the windows driver.
 *    
 *    Revision 1.10  1998/09/30 13:41:10  mhaveman
 *    Renamed some OIDs to reduce usage of 'MAC' which is replaced by 'PORT'.
 *    
 *    Revision 1.9  1998/09/04 17:06:17  mhaveman
 *    -Added SyncCounter as macro.
 *    -Renamed OID_SKGE_.._NO_DESCR_CTS to OID_SKGE_.._NO_BUF_CTS.
 *    -Added macros for driver description and version strings.
 *    
 *    Revision 1.8  1998/09/04 14:36:52  mhaveman
 *    Added OIDs and Structure to access value of macro counters which are
 *    counted by the driver.
 *    
 *    Revision 1.7  1998/09/04 11:59:36  mhaveman
 *    Everything compiles now. Driver Macros for counting still missing.
 *    
 ****************************************************************************/

#ifndef _SKGEPNMI_H_
#define _SKGEPNMI_H_

/*
 * Include dependencies
 */
#include "h/sktypes.h"
#include "h/skerror.h"
#include "h/sktimer.h"
#include "h/ski2c.h"
#include "h/skaddr.h"
#include "h/skrlmt.h"
#include "h/skvpd.h"

/*
 * Management Database Version
 */
#define SK_PNMI_MDB_VERSION        0x00030001    /* 3.1 */


/*
 * Event definitions
 */
#define SK_PNMI_EVT_SIRQ_OVERFLOW        1    /* Counter overflow */
#define SK_PNMI_EVT_SEN_WAR_LOW            2    /* Lower war thres exceeded */
#define SK_PNMI_EVT_SEN_WAR_UPP            3    /* Upper war thres exceeded */
#define SK_PNMI_EVT_SEN_ERR_LOW            4    /* Lower err thres exceeded */
#define SK_PNMI_EVT_SEN_ERR_UPP            5    /* Upper err thres exceeded */
#define SK_PNMI_EVT_CHG_EST_TIMER        6    /* Timer event for RLMT Chg */
#define SK_PNMI_EVT_UTILIZATION_TIMER    7    /* Timer event for Utiliza. */
#define SK_PNMI_EVT_CLEAR_COUNTER        8    /* Clear statistic counters */
#define SK_PNMI_EVT_XMAC_RESET            9    /* XMAC will be reset */

#define SK_PNMI_EVT_RLMT_PORT_UP        10    /* Port came logically up */
#define SK_PNMI_EVT_RLMT_PORT_DOWN        11    /* Port went logically down */
#define SK_PNMI_EVT_RLMT_SEGMENTATION    13    /* Two SP root bridges found */
#define SK_PNMI_EVT_RLMT_ACTIVE_DOWN    14    /* Port went logically down */
#define SK_PNMI_EVT_RLMT_ACTIVE_UP        15    /* Port came logically up */
#define SK_PNMI_EVT_RLMT_SET_NETS        16    /* 1. Parameter is number of nets
                                                1 = single net; 2 = dual net */

/*
 * Return values
 */
#define SK_PNMI_ERR_OK            0
#define SK_PNMI_ERR_GENERAL        1
#define SK_PNMI_ERR_TOO_SHORT        2
#define SK_PNMI_ERR_BAD_VALUE        3
#define SK_PNMI_ERR_READ_ONLY        4
#define SK_PNMI_ERR_UNKNOWN_OID        5
#define SK_PNMI_ERR_UNKNOWN_INST    6
#define SK_PNMI_ERR_UNKNOWN_NET     7


/*
 * Return values of driver reset function SK_DRIVER_RESET() and
 * driver event function SK_DRIVER_EVENT()
 */
#define SK_PNMI_ERR_OK            0
#define SK_PNMI_ERR_FAIL        1


/*
 * Return values of driver test function SK_DRIVER_SELFTEST()
 */
#define SK_PNMI_TST_UNKNOWN        (1 << 0)
#define SK_PNMI_TST_TRANCEIVER        (1 << 1)
#define SK_PNMI_TST_ASIC        (1 << 2)
#define SK_PNMI_TST_SENSOR        (1 << 3)
#define SK_PNMI_TST_POWERMGMT        (1 << 4)
#define SK_PNMI_TST_PCI            (1 << 5)
#define SK_PNMI_TST_MAC            (1 << 6)


/*
 * RLMT specific definitions
 */
#define SK_PNMI_RLMT_STATUS_STANDBY    1
#define SK_PNMI_RLMT_STATUS_ACTIVE    2
#define SK_PNMI_RLMT_STATUS_ERROR    3

#define SK_PNMI_RLMT_LSTAT_PHY_DOWN    1
#define SK_PNMI_RLMT_LSTAT_AUTONEG    2
#define SK_PNMI_RLMT_LSTAT_LOG_DOWN    3
#define SK_PNMI_RLMT_LSTAT_LOG_UP    4
#define SK_PNMI_RLMT_LSTAT_INDETERMINATED 5

#define SK_PNMI_RLMT_MODE_CHK_LINK    (SK_RLMT_CHECK_LINK)
#define SK_PNMI_RLMT_MODE_CHK_RX    (SK_RLMT_CHECK_LOC_LINK)
#define SK_PNMI_RLMT_MODE_CHK_SPT    (SK_RLMT_CHECK_SEG)
/* #define SK_PNMI_RLMT_MODE_CHK_EX */

/*
 * OID definition
 */
#ifndef _NDIS_    /* Check, whether NDIS already included OIDs */

#define OID_GEN_XMIT_OK            0x00020101
#define OID_GEN_RCV_OK            0x00020102
#define OID_GEN_XMIT_ERROR        0x00020103
#define OID_GEN_RCV_ERROR        0x00020104
#define OID_GEN_RCV_NO_BUFFER        0x00020105

/* #define OID_GEN_DIRECTED_BYTES_XMIT    0x00020201 */
#define OID_GEN_DIRECTED_FRAMES_XMIT    0x00020202
/* #define OID_GEN_MULTICAST_BYTES_XMIT    0x00020203 */
#define OID_GEN_MULTICAST_FRAMES_XMIT    0x00020204
/* #define OID_GEN_BROADCAST_BYTES_XMIT    0x00020205 */
#define OID_GEN_BROADCAST_FRAMES_XMIT    0x00020206
/* #define OID_GEN_DIRECTED_BYTES_RCV    0x00020207 */
#define OID_GEN_DIRECTED_FRAMES_RCV    0x00020208
/* #define OID_GEN_MULTICAST_BYTES_RCV    0x00020209 */
#define OID_GEN_MULTICAST_FRAMES_RCV    0x0002020A
/* #define OID_GEN_BROADCAST_BYTES_RCV    0x0002020B */
#define OID_GEN_BROADCAST_FRAMES_RCV    0x0002020C
#define OID_GEN_RCV_CRC_ERROR        0x0002020D
#define OID_GEN_TRANSMIT_QUEUE_LENGTH    0x0002020E

#define OID_802_3_PERMANENT_ADDRESS    0x01010101
#define OID_802_3_CURRENT_ADDRESS    0x01010102
/* #define OID_802_3_MULTICAST_LIST    0x01010103 */
/* #define OID_802_3_MAXIMUM_LIST_SIZE    0x01010104 */
/* #define OID_802_3_MAC_OPTIONS    0x01010105 */
            
#define OID_802_3_RCV_ERROR_ALIGNMENT    0x01020101
#define OID_802_3_XMIT_ONE_COLLISION    0x01020102
#define OID_802_3_XMIT_MORE_COLLISIONS    0x01020103
#define OID_802_3_XMIT_DEFERRED        0x01020201
#define OID_802_3_XMIT_MAX_COLLISIONS    0x01020202
#define OID_802_3_RCV_OVERRUN        0x01020203
#define OID_802_3_XMIT_UNDERRUN        0x01020204
#define OID_802_3_XMIT_TIMES_CRS_LOST    0x01020206
#define OID_802_3_XMIT_LATE_COLLISIONS    0x01020207

#endif /* _NDIS_ */

#define OID_SKGE_MDB_VERSION        0xFF010100
#define OID_SKGE_SUPPORTED_LIST        0xFF010101
#define OID_SKGE_VPD_FREE_BYTES        0xFF010102
#define OID_SKGE_VPD_ENTRIES_LIST    0xFF010103
#define OID_SKGE_VPD_ENTRIES_NUMBER    0xFF010104
#define OID_SKGE_VPD_KEY        0xFF010105
#define OID_SKGE_VPD_VALUE        0xFF010106
#define OID_SKGE_VPD_ACCESS        0xFF010107
#define OID_SKGE_VPD_ACTION        0xFF010108
            
#define OID_SKGE_PORT_NUMBER        0xFF010110
#define OID_SKGE_DEVICE_TYPE        0xFF010111
#define OID_SKGE_DRIVER_DESCR        0xFF010112
#define OID_SKGE_DRIVER_VERSION        0xFF010113
#define OID_SKGE_HW_DESCR        0xFF010114
#define OID_SKGE_HW_VERSION        0xFF010115
#define OID_SKGE_CHIPSET        0xFF010116
#define OID_SKGE_ACTION            0xFF010117
#define OID_SKGE_RESULT            0xFF010118
#define OID_SKGE_BUS_TYPE        0xFF010119
#define OID_SKGE_BUS_SPEED        0xFF01011A
#define OID_SKGE_BUS_WIDTH        0xFF01011B

/*#define OID_SKGE_MULTICAST_LIST        0xFF01011C*/

#define OID_SKGE_SENSOR_NUMBER        0xFF020100            
#define OID_SKGE_SENSOR_INDEX        0xFF020101
#define OID_SKGE_SENSOR_DESCR        0xFF020102
#define OID_SKGE_SENSOR_TYPE        0xFF020103
#define OID_SKGE_SENSOR_VALUE        0xFF020104
#define OID_SKGE_SENSOR_WAR_THRES_LOW    0xFF020105
#define OID_SKGE_SENSOR_WAR_THRES_UPP    0xFF020106
#define OID_SKGE_SENSOR_ERR_THRES_LOW    0xFF020107
#define OID_SKGE_SENSOR_ERR_THRES_UPP    0xFF020108
#define OID_SKGE_SENSOR_STATUS        0xFF020109
#define OID_SKGE_SENSOR_WAR_CTS        0xFF02010A
#define OID_SKGE_SENSOR_ERR_CTS        0xFF02010B
#define OID_SKGE_SENSOR_WAR_TIME    0xFF02010C
#define OID_SKGE_SENSOR_ERR_TIME    0xFF02010D

#define OID_SKGE_CHKSM_NUMBER        0xFF020110
#define OID_SKGE_CHKSM_RX_OK_CTS    0xFF020111
#define OID_SKGE_CHKSM_RX_UNABLE_CTS    0xFF020112
#define OID_SKGE_CHKSM_RX_ERR_CTS    0xFF020113
#define OID_SKGE_CHKSM_TX_OK_CTS    0xFF020114
#define OID_SKGE_CHKSM_TX_UNABLE_CTS    0xFF020115

#define OID_SKGE_STAT_TX        0xFF020120
#define OID_SKGE_STAT_TX_OCTETS        0xFF020121
#define OID_SKGE_STAT_TX_BROADCAST    0xFF020122
#define OID_SKGE_STAT_TX_MULTICAST    0xFF020123
#define OID_SKGE_STAT_TX_UNICAST    0xFF020124
#define OID_SKGE_STAT_TX_LONGFRAMES    0xFF020125
#define OID_SKGE_STAT_TX_BURST        0xFF020126
#define OID_SKGE_STAT_TX_PFLOWC        0xFF020127
#define OID_SKGE_STAT_TX_FLOWC        0xFF020128
#define OID_SKGE_STAT_TX_SINGLE_COL    0xFF020129
#define OID_SKGE_STAT_TX_MULTI_COL    0xFF02012A
#define OID_SKGE_STAT_TX_EXCESS_COL    0xFF02012B
#define OID_SKGE_STAT_TX_LATE_COL    0xFF02012C
#define OID_SKGE_STAT_TX_DEFFERAL    0xFF02012D
#define OID_SKGE_STAT_TX_EXCESS_DEF    0xFF02012E
#define OID_SKGE_STAT_TX_UNDERRUN    0xFF02012F
#define OID_SKGE_STAT_TX_CARRIER    0xFF020130
/* #define OID_SKGE_STAT_TX_UTIL        0xFF020131 */
#define OID_SKGE_STAT_TX_64        0xFF020132
#define OID_SKGE_STAT_TX_127        0xFF020133
#define OID_SKGE_STAT_TX_255        0xFF020134
#define OID_SKGE_STAT_TX_511        0xFF020135
#define OID_SKGE_STAT_TX_1023        0xFF020136
#define OID_SKGE_STAT_TX_MAX        0xFF020137
#define OID_SKGE_STAT_TX_SYNC        0xFF020138
#define OID_SKGE_STAT_TX_SYNC_OCTETS    0xFF020139
#define OID_SKGE_STAT_RX        0xFF02013A
#define OID_SKGE_STAT_RX_OCTETS        0xFF02013B
#define OID_SKGE_STAT_RX_BROADCAST    0xFF02013C
#define OID_SKGE_STAT_RX_MULTICAST    0xFF02013D
#define OID_SKGE_STAT_RX_UNICAST    0xFF02013E
#define OID_SKGE_STAT_RX_PFLOWC        0xFF02013F
#define OID_SKGE_STAT_RX_FLOWC        0xFF020140
#define OID_SKGE_STAT_RX_PFLOWC_ERR    0xFF020141
#define OID_SKGE_STAT_RX_FLOWC_UNKWN    0xFF020142
#define OID_SKGE_STAT_RX_BURST        0xFF020143
#define OID_SKGE_STAT_RX_MISSED        0xFF020144
#define OID_SKGE_STAT_RX_FRAMING    0xFF020145
#define OID_SKGE_STAT_RX_OVERFLOW    0xFF020146
#define OID_SKGE_STAT_RX_JABBER        0xFF020147
#define OID_SKGE_STAT_RX_CARRIER    0xFF020148
#define OID_SKGE_STAT_RX_IR_LENGTH    0xFF020149
#define OID_SKGE_STAT_RX_SYMBOL        0xFF02014A
#define OID_SKGE_STAT_RX_SHORTS        0xFF02014B
#define OID_SKGE_STAT_RX_RUNT        0xFF02014C
#define OID_SKGE_STAT_RX_CEXT        0xFF02014D
#define OID_SKGE_STAT_RX_TOO_LONG    0xFF02014E
#define OID_SKGE_STAT_RX_FCS        0xFF02014F
/* #define OID_SKGE_STAT_RX_UTIL        0xFF020150 */
#define OID_SKGE_STAT_RX_64        0xFF020151
#define OID_SKGE_STAT_RX_127        0xFF020152
#define OID_SKGE_STAT_RX_255        0xFF020153
#define OID_SKGE_STAT_RX_511        0xFF020154
#define OID_SKGE_STAT_RX_1023        0xFF020155
#define OID_SKGE_STAT_RX_MAX        0xFF020156
#define OID_SKGE_STAT_RX_LONGFRAMES    0xFF020157

#define OID_SKGE_DIAG_ACTION        0xFF01011D
#define OID_SKGE_DIAG_RESULT        0xFF01011E
#define OID_SKGE_MTU        0xFF01011F
#define OID_SKGE_PHYS_CUR_ADDR        0xFF010120
#define OID_SKGE_PHYS_FAC_ADDR        0xFF010121
#define OID_SKGE_PMD            0xFF010122
#define OID_SKGE_CONNECTOR        0xFF010123
#define OID_SKGE_LINK_CAP        0xFF010124
#define OID_SKGE_LINK_MODE        0xFF010125
#define OID_SKGE_LINK_MODE_STATUS    0xFF010126
#define OID_SKGE_LINK_STATUS        0xFF010127
#define OID_SKGE_FLOWCTRL_CAP        0xFF010128
#define OID_SKGE_FLOWCTRL_MODE        0xFF010129
#define OID_SKGE_FLOWCTRL_STATUS    0xFF01012A
#define OID_SKGE_PHY_OPERATION_CAP    0xFF01012B
#define OID_SKGE_PHY_OPERATION_MODE    0xFF01012C
#define OID_SKGE_PHY_OPERATION_STATUS    0xFF01012D
#define OID_SKGE_MULTICAST_LIST        0xFF01012E
#define OID_SKGE_CURRENT_PACKET_FILTER        0xFF01012F

#define OID_SKGE_TRAP            0xFF010130
#define OID_SKGE_TRAP_NUMBER        0xFF010131

#define OID_SKGE_RLMT_MODE        0xFF010140
#define OID_SKGE_RLMT_PORT_NUMBER    0xFF010141
#define OID_SKGE_RLMT_PORT_ACTIVE    0xFF010142
#define OID_SKGE_RLMT_PORT_PREFERRED    0xFF010143
#define OID_SKGE_INTERMEDIATE_SUPPORT        0xFF010160
#define OID_SKGE_RLMT_CHANGE_CTS    0xFF020160
#define OID_SKGE_RLMT_CHANGE_TIME    0xFF020161
#define OID_SKGE_RLMT_CHANGE_ESTIM    0xFF020162
#define OID_SKGE_RLMT_CHANGE_THRES    0xFF020163

#define OID_SKGE_RLMT_PORT_INDEX    0xFF020164
#define OID_SKGE_RLMT_STATUS        0xFF020165
#define OID_SKGE_RLMT_TX_HELLO_CTS    0xFF020166
#define OID_SKGE_RLMT_RX_HELLO_CTS    0xFF020167
#define OID_SKGE_RLMT_TX_SP_REQ_CTS    0xFF020168
#define OID_SKGE_RLMT_RX_SP_CTS        0xFF020169

#define OID_SKGE_RLMT_MONITOR_NUMBER    0xFF010150
#define OID_SKGE_RLMT_MONITOR_INDEX    0xFF010151
#define OID_SKGE_RLMT_MONITOR_ADDR    0xFF010152
#define OID_SKGE_RLMT_MONITOR_ERRS    0xFF010153
#define OID_SKGE_RLMT_MONITOR_TIMESTAMP    0xFF010154
#define OID_SKGE_RLMT_MONITOR_ADMIN    0xFF010155

#define OID_SKGE_TX_SW_QUEUE_LEN    0xFF020170
#define OID_SKGE_TX_SW_QUEUE_MAX    0xFF020171
#define OID_SKGE_TX_RETRY        0xFF020172
#define OID_SKGE_RX_INTR_CTS        0xFF020173
#define OID_SKGE_TX_INTR_CTS        0xFF020174
#define OID_SKGE_RX_NO_BUF_CTS        0xFF020175
#define OID_SKGE_TX_NO_BUF_CTS        0xFF020176
#define OID_SKGE_TX_USED_DESCR_NO    0xFF020177
#define OID_SKGE_RX_DELIVERED_CTS    0xFF020178
#define OID_SKGE_RX_OCTETS_DELIV_CTS    0xFF020179
#define OID_SKGE_RX_HW_ERROR_CTS    0xFF02017A
#define OID_SKGE_TX_HW_ERROR_CTS    0xFF02017B
#define OID_SKGE_IN_ERRORS_CTS        0xFF02017C
#define OID_SKGE_OUT_ERROR_CTS        0xFF02017D
#define OID_SKGE_ERR_RECOVERY_CTS    0xFF02017E
#define OID_SKGE_SYSUPTIME        0xFF02017F

#define OID_SKGE_ALL_DATA        0xFF020190


#define    OID_SKGE_TRAP_SEN_WAR_LOW    500
#define OID_SKGE_TRAP_SEN_WAR_UPP    501
#define    OID_SKGE_TRAP_SEN_ERR_LOW    502
#define OID_SKGE_TRAP_SEN_ERR_UPP    503
#define OID_SKGE_TRAP_RLMT_CHANGE_THRES    520
#define OID_SKGE_TRAP_RLMT_CHANGE_PORT    521
#define OID_SKGE_TRAP_RLMT_PORT_DOWN    522
#define OID_SKGE_TRAP_RLMT_PORT_UP    523
#define OID_SKGE_TRAP_RLMT_SEGMENTATION    524


/*
 * Define error numbers and messages for syslog
 */
#define SK_PNMI_ERR001        (SK_ERRBASE_PNMI + 1)
#define SK_PNMI_ERR001MSG    "SkPnmiGetStruct: Unknown OID"
#define SK_PNMI_ERR002        (SK_ERRBASE_PNMI + 2)
#define SK_PNMI_ERR002MSG    "SkPnmiGetStruct: Cannot read VPD keys"
#define SK_PNMI_ERR003        (SK_ERRBASE_PNMI + 3)
#define SK_PNMI_ERR003MSG    "OidStruct: Called with wrong OID"
#define SK_PNMI_ERR004        (SK_ERRBASE_PNMI + 4)
#define SK_PNMI_ERR004MSG    "OidStruct: Called with wrong action"
#define SK_PNMI_ERR005        (SK_ERRBASE_PNMI + 5)
#define SK_PNMI_ERR005MSG    "Perform: Cannot reset driver"
#define SK_PNMI_ERR006        (SK_ERRBASE_PNMI + 6)
#define SK_PNMI_ERR006MSG    "Perform: Unknown OID action command"
#define SK_PNMI_ERR007        (SK_ERRBASE_PNMI + 7)
#define SK_PNMI_ERR007MSG    "General: Driver description not initialized"
#define SK_PNMI_ERR008        (SK_ERRBASE_PNMI + 8)
#define SK_PNMI_ERR008MSG    "Addr: Tried to get unknown OID"
#define SK_PNMI_ERR009        (SK_ERRBASE_PNMI + 9)
#define SK_PNMI_ERR009MSG    "Addr: Unknown OID"
#define SK_PNMI_ERR010        (SK_ERRBASE_PNMI + 10)
#define SK_PNMI_ERR010MSG    "CsumStat: Unknown OID"
#define SK_PNMI_ERR011        (SK_ERRBASE_PNMI + 11)
#define SK_PNMI_ERR011MSG    "SensorStat: Sensor descr string too long"
#define SK_PNMI_ERR012        (SK_ERRBASE_PNMI + 12)
#define SK_PNMI_ERR012MSG    "SensorStat: Unknown OID"
#define SK_PNMI_ERR013        (SK_ERRBASE_PNMI + 13)
#define SK_PNMI_ERR013MSG    "SensorStat: Unknown OID should be errored before"
#define SK_PNMI_ERR014        (SK_ERRBASE_PNMI + 14)
#define SK_PNMI_ERR014MSG    "Vpd: Cannot read VPD keys"
#define SK_PNMI_ERR015        (SK_ERRBASE_PNMI + 15)
#define SK_PNMI_ERR015MSG    "Vpd: Internal array for VPD keys to small"
#define SK_PNMI_ERR016        (SK_ERRBASE_PNMI + 16)
#define SK_PNMI_ERR016MSG    "Vpd: Key string too long"
#define SK_PNMI_ERR017        (SK_ERRBASE_PNMI + 17)
#define SK_PNMI_ERR017MSG    "Vpd: Invalid VPD status pointer"
#define SK_PNMI_ERR018        (SK_ERRBASE_PNMI + 18)
#define SK_PNMI_ERR018MSG    "Vpd: VPD data not valid"
#define SK_PNMI_ERR019        (SK_ERRBASE_PNMI + 19)
#define SK_PNMI_ERR019MSG    "Vpd: VPD entries list string too long"
#define SK_PNMI_ERR021        (SK_ERRBASE_PNMI + 21)
#define SK_PNMI_ERR021MSG    "Vpd: VPD data string too long"
#define SK_PNMI_ERR022        (SK_ERRBASE_PNMI + 22)
#define SK_PNMI_ERR022MSG    "Vpd: VPD data string too long should be errored before"
#define SK_PNMI_ERR023        (SK_ERRBASE_PNMI + 23)
#define SK_PNMI_ERR023MSG    "Vpd: Unknown OID in get action"
#define SK_PNMI_ERR024        (SK_ERRBASE_PNMI + 24)
#define SK_PNMI_ERR024MSG    "Vpd: Unknown OID in preset/set action"
#define SK_PNMI_ERR025        (SK_ERRBASE_PNMI + 25)
#define SK_PNMI_ERR025MSG    "Vpd: Cannot write VPD after modify entry"
#define SK_PNMI_ERR026        (SK_ERRBASE_PNMI + 26)
#define SK_PNMI_ERR026MSG    "Vpd: Cannot update VPD"
#define SK_PNMI_ERR027        (SK_ERRBASE_PNMI + 27)
#define SK_PNMI_ERR027MSG    "Vpd: Cannot delete VPD entry"
#define SK_PNMI_ERR028        (SK_ERRBASE_PNMI + 28)
#define SK_PNMI_ERR028MSG    "Vpd: Cannot update VPD after delete entry"
#define SK_PNMI_ERR029        (SK_ERRBASE_PNMI + 29)
#define SK_PNMI_ERR029MSG    "General: Driver description string too long"
#define SK_PNMI_ERR030        (SK_ERRBASE_PNMI + 30)
#define SK_PNMI_ERR030MSG    "General: Driver version not initialized"
#define SK_PNMI_ERR031        (SK_ERRBASE_PNMI + 31)
#define SK_PNMI_ERR031MSG    "General: Driver version string too long"
#define SK_PNMI_ERR032        (SK_ERRBASE_PNMI + 32)
#define SK_PNMI_ERR032MSG    "General: Cannot read VPD Name for HW descr"
#define SK_PNMI_ERR033        (SK_ERRBASE_PNMI + 33)
#define SK_PNMI_ERR033MSG    "General: HW description string too long"
#define SK_PNMI_ERR034        (SK_ERRBASE_PNMI + 34)
#define SK_PNMI_ERR034MSG    "General: Unknown OID"
#define SK_PNMI_ERR035        (SK_ERRBASE_PNMI + 35)
#define SK_PNMI_ERR035MSG    "Rlmt: Unknown OID"
#define SK_PNMI_ERR036        (SK_ERRBASE_PNMI + 36)
#define SK_PNMI_ERR036MSG    "Rlmt: Unknown OID should be errored before"
#define SK_PNMI_ERR037        (SK_ERRBASE_PNMI + 37)
#define SK_PNMI_ERR037MSG    "Rlmt: SK_RLMT_MODE_CHANGE event return not 0"
#define SK_PNMI_ERR038        (SK_ERRBASE_PNMI + 38)
#define SK_PNMI_ERR038MSG    "Rlmt: SK_RLMT_PREFPORT_CHANGE event return not 0"
#define SK_PNMI_ERR039        (SK_ERRBASE_PNMI + 39)
#define SK_PNMI_ERR039MSG    "RlmtStat: Unknown OID"
#define SK_PNMI_ERR040        (SK_ERRBASE_PNMI + 40)
#define SK_PNMI_ERR040MSG    "RlmtStat: Unknown OID should be errored before"
#define SK_PNMI_ERR041        (SK_ERRBASE_PNMI + 41)
#define SK_PNMI_ERR041MSG    "MacPrivateConf: Unknown OID"
#define SK_PNMI_ERR042        (SK_ERRBASE_PNMI + 42)
#define SK_PNMI_ERR042MSG    "MacPrivateConf: Unknown OID should be errored before"
#define SK_PNMI_ERR043        (SK_ERRBASE_PNMI + 43)
#define SK_PNMI_ERR043MSG    "MacPrivateConf: SK_HWEV_SET_LMODE returned not 0"
#define SK_PNMI_ERR044        (SK_ERRBASE_PNMI + 44)
#define SK_PNMI_ERR044MSG    "MacPrivateConf: SK_HWEV_SET_FLOWMODE returned not 0"
#define SK_PNMI_ERR045        (SK_ERRBASE_PNMI + 45)
#define SK_PNMI_ERR045MSG    "MacPrivateConf: Unknown OID in set action"
#define SK_PNMI_ERR046        (SK_ERRBASE_PNMI + 46)
#define SK_PNMI_ERR046MSG    "Monitor: Unknown OID"
#define SK_PNMI_ERR047        (SK_ERRBASE_PNMI + 47)
#define SK_PNMI_ERR047MSG    "SirqUpdate: Event function returns not 0"
#define SK_PNMI_ERR048        (SK_ERRBASE_PNMI + 48)
#define SK_PNMI_ERR048MSG    "RlmtUpdate: Event function returns not 0"
#define SK_PNMI_ERR049        (SK_ERRBASE_PNMI + 49)
#define SK_PNMI_ERR049MSG    ""
#define SK_PNMI_ERR050        (SK_ERRBASE_PNMI + 50)
#define SK_PNMI_ERR050MSG    "MacUpdate: Cannot update statistic counter"
#define SK_PNMI_ERR051        (SK_ERRBASE_PNMI + 51)
#define SK_PNMI_ERR051MSG    "SkPnmiEvent: Port switch suspicious"
#define SK_PNMI_ERR052        (SK_ERRBASE_PNMI + 52)
#define SK_PNMI_ERR052MSG    "MacPrivateConf: SK_HWEV_SET_ROLE returned not 0"

/*
 * Management counter macros called by the driver
 */
#define SK_PNMI_SET_DRIVER_DESCR(pAC,v)    ((pAC)->Pnmi.pDriverDescription = \
    (char *)(v))

#define SK_PNMI_SET_DRIVER_VER(pAC,v)    ((pAC)->Pnmi.pDriverVersion = \
    (char *)(v))


#define SK_PNMI_CNT_TX_QUEUE_LEN(pAC,v,p) \
    { \
        (pAC)->Pnmi.Port[p].TxSwQueueLen = (SK_U64)(v); \
        if ((pAC)->Pnmi.Port[p].TxSwQueueLen > (pAC)->Pnmi.Port[p].TxSwQueueMax) { \
            (pAC)->Pnmi.Port[p].TxSwQueueMax = (pAC)->Pnmi.Port[p].TxSwQueueLen; \
        } \
    }
#define SK_PNMI_CNT_TX_RETRY(pAC,p)    (((pAC)->Pnmi.Port[p].TxRetryCts)++)
#define SK_PNMI_CNT_RX_INTR(pAC,p)    (((pAC)->Pnmi.Port[p].RxIntrCts)++)
#define SK_PNMI_CNT_TX_INTR(pAC,p)    (((pAC)->Pnmi.Port[p].TxIntrCts)++)
#define SK_PNMI_CNT_NO_RX_BUF(pAC,p)    (((pAC)->Pnmi.Port[p].RxNoBufCts)++)
#define SK_PNMI_CNT_NO_TX_BUF(pAC,p)    (((pAC)->Pnmi.Port[p].TxNoBufCts)++)
#define SK_PNMI_CNT_USED_TX_DESCR(pAC,v,p) \
    ((pAC)->Pnmi.Port[p].TxUsedDescrNo=(SK_U64)(v));
#define SK_PNMI_CNT_RX_OCTETS_DELIVERED(pAC,v,p) \
    { \
        ((pAC)->Pnmi.Port[p].RxDeliveredCts)++; \
        (pAC)->Pnmi.Port[p].RxOctetsDeliveredCts += (SK_U64)(v); \
    }
#define SK_PNMI_CNT_ERR_RECOVERY(pAC,p)    (((pAC)->Pnmi.Port[p].ErrRecoveryCts)++);

#define SK_PNMI_CNT_SYNC_OCTETS(pAC,p,v) \
    { \
        if ((p) < SK_MAX_MACS) { \
            ((pAC)->Pnmi.Port[p].StatSyncCts)++; \
            (pAC)->Pnmi.Port[p].StatSyncOctetsCts += (SK_U64)(v); \
        } \
    }

#define SK_PNMI_CNT_RX_LONGFRAMES(pAC,p) \
    { \
        if ((p) < SK_MAX_MACS) { \
            ((pAC)->Pnmi.Port[p].StatRxLongFrameCts)++; \
        } \
    }

/*
 * Conversion Macros
 */
#define SK_PNMI_PORT_INST2LOG(i)    ((unsigned int)(i) - 1)
#define SK_PNMI_PORT_LOG2INST(l)    ((unsigned int)(l) + 1)
#define SK_PNMI_PORT_PHYS2LOG(p)    ((unsigned int)(p) + 1)
#define SK_PNMI_PORT_LOG2PHYS(pAC,l)    ((unsigned int)(l) - 1)
#define SK_PNMI_PORT_PHYS2INST(pAC,p)    \
    (pAC->Pnmi.DualNetActiveFlag ? 2 : ((unsigned int)(p) + 2))
#define SK_PNMI_PORT_INST2PHYS(pAC,i)    ((unsigned int)(i) - 2)

/*
 * Structure definition for SkPnmiGetStruct and SkPnmiSetStruct
 */
#define SK_PNMI_VPD_KEY_SIZE    5
#define SK_PNMI_VPD_BUFSIZE        (VPD_SIZE)
#define SK_PNMI_VPD_ENTRIES        (VPD_SIZE / 4)
#define SK_PNMI_VPD_DATALEN        128 /*  Number of data bytes */

#define SK_PNMI_MULTICAST_LISTLEN    64
#define SK_PNMI_SENSOR_ENTRIES        (SK_MAX_SENSORS)
#define SK_PNMI_CHECKSUM_ENTRIES    3
#define SK_PNMI_MAC_ENTRIES        (SK_MAX_MACS + 1)
#define SK_PNMI_MONITOR_ENTRIES        20
#define SK_PNMI_TRAP_ENTRIES        10
#define SK_PNMI_TRAPLEN            128
#define SK_PNMI_STRINGLEN1        80
#define SK_PNMI_STRINGLEN2        25
#define SK_PNMI_TRAP_QUEUE_LEN        512

typedef struct s_PnmiVpd {
    char            VpdKey[SK_PNMI_VPD_KEY_SIZE];
    char            VpdValue[SK_PNMI_VPD_DATALEN];
    SK_U8            VpdAccess;
    SK_U8            VpdAction;
} SK_PNMI_VPD;

typedef struct s_PnmiSensor {
    SK_U8            SensorIndex;
    char            SensorDescr[SK_PNMI_STRINGLEN2];
    SK_U8            SensorType;
    SK_U32            SensorValue;
    SK_U32            SensorWarningThresholdLow;
    SK_U32            SensorWarningThresholdHigh;
    SK_U32            SensorErrorThresholdLow;
    SK_U32            SensorErrorThresholdHigh;
    SK_U8            SensorStatus;
    SK_U64            SensorWarningCts;
    SK_U64            SensorErrorCts;
    SK_U64            SensorWarningTimestamp;
    SK_U64            SensorErrorTimestamp;
} SK_PNMI_SENSOR;

typedef struct s_PnmiChecksum {
    SK_U64            ChecksumRxOkCts;
    SK_U64            ChecksumRxUnableCts;
    SK_U64            ChecksumRxErrCts;
    SK_U64            ChecksumTxOkCts;
    SK_U64            ChecksumTxUnableCts;
} SK_PNMI_CHECKSUM;

typedef struct s_PnmiStat {
    SK_U64            StatTxOkCts;
    SK_U64            StatTxOctetsOkCts;
    SK_U64            StatTxBroadcastOkCts;
    SK_U64            StatTxMulticastOkCts;
    SK_U64            StatTxUnicastOkCts;
    SK_U64            StatTxLongFramesCts;
    SK_U64            StatTxBurstCts;
    SK_U64            StatTxPauseMacCtrlCts;
    SK_U64            StatTxMacCtrlCts;
    SK_U64            StatTxSingleCollisionCts;
    SK_U64            StatTxMultipleCollisionCts;
    SK_U64            StatTxExcessiveCollisionCts;
    SK_U64            StatTxLateCollisionCts;
    SK_U64            StatTxDeferralCts;
    SK_U64            StatTxExcessiveDeferralCts;
    SK_U64            StatTxFifoUnderrunCts;
    SK_U64            StatTxCarrierCts;
    SK_U64            Dummy1; /* StatTxUtilization */
    SK_U64            StatTx64Cts;
    SK_U64            StatTx127Cts;
    SK_U64            StatTx255Cts;
    SK_U64            StatTx511Cts;
    SK_U64            StatTx1023Cts;
    SK_U64            StatTxMaxCts;
    SK_U64            StatTxSyncCts;
    SK_U64            StatTxSyncOctetsCts;
    SK_U64            StatRxOkCts;
    SK_U64            StatRxOctetsOkCts;
    SK_U64            StatRxBroadcastOkCts;
    SK_U64            StatRxMulticastOkCts;
    SK_U64            StatRxUnicastOkCts;
    SK_U64            StatRxLongFramesCts;
    SK_U64            StatRxPauseMacCtrlCts;
    SK_U64            StatRxMacCtrlCts;
    SK_U64            StatRxPauseMacCtrlErrorCts;
    SK_U64            StatRxMacCtrlUnknownCts;
    SK_U64            StatRxBurstCts;
    SK_U64            StatRxMissedCts;
    SK_U64            StatRxFramingCts;
    SK_U64            StatRxFifoOverflowCts;
    SK_U64            StatRxJabberCts;
    SK_U64            StatRxCarrierCts;
    SK_U64            StatRxIRLengthCts;
    SK_U64            StatRxSymbolCts;
    SK_U64            StatRxShortsCts;
    SK_U64            StatRxRuntCts;
    SK_U64            StatRxCextCts;
    SK_U64            StatRxTooLongCts;
    SK_U64            StatRxFcsCts;
    SK_U64            Dummy2; /* StatRxUtilization */
    SK_U64            StatRx64Cts;
    SK_U64            StatRx127Cts;
    SK_U64            StatRx255Cts;
    SK_U64            StatRx511Cts;
    SK_U64            StatRx1023Cts;
    SK_U64            StatRxMaxCts;
} SK_PNMI_STAT;

typedef struct s_PnmiConf {
    char            ConfMacCurrentAddr[6];
    char            ConfMacFactoryAddr[6];
    SK_U8            ConfPMD;
    SK_U8            ConfConnector;
    SK_U8            ConfLinkCapability;
    SK_U8            ConfLinkMode;
    SK_U8            ConfLinkModeStatus;
    SK_U8            ConfLinkStatus;
    SK_U8            ConfFlowCtrlCapability;
    SK_U8            ConfFlowCtrlMode;
    SK_U8            ConfFlowCtrlStatus;
    SK_U8            ConfPhyOperationCapability;
    SK_U8            ConfPhyOperationMode;
    SK_U8            ConfPhyOperationStatus;
} SK_PNMI_CONF;

typedef struct s_PnmiRlmt {
    SK_U32            RlmtIndex;
    SK_U32            RlmtStatus;
    SK_U64            RlmtTxHelloCts;
    SK_U64            RlmtRxHelloCts;
    SK_U64            RlmtTxSpHelloReqCts;
    SK_U64            RlmtRxSpHelloCts;
} SK_PNMI_RLMT;

typedef struct s_PnmiRlmtMonitor {
    SK_U32            RlmtMonitorIndex;
    char            RlmtMonitorAddr[6];
    SK_U64            RlmtMonitorErrorCts;
    SK_U64            RlmtMonitorTimestamp;
    SK_U8            RlmtMonitorAdmin;
} SK_PNMI_RLMT_MONITOR;

typedef struct s_PnmiRequestStatus {
    SK_U32            ErrorStatus;
    SK_U32            ErrorOffset;
} SK_PNMI_REQUEST_STATUS;

typedef struct s_PnmiStrucData {
    SK_U32            MgmtDBVersion;
    SK_PNMI_REQUEST_STATUS    ReturnStatus;
    SK_U32            VpdFreeBytes;
    char            VpdEntriesList[SK_PNMI_VPD_ENTRIES * SK_PNMI_VPD_KEY_SIZE];
    SK_U32            VpdEntriesNumber;
    SK_PNMI_VPD        Vpd[SK_PNMI_VPD_ENTRIES];
    SK_U32            PortNumber;
    SK_U32            DeviceType;
    char            DriverDescr[SK_PNMI_STRINGLEN1];
    char            DriverVersion[SK_PNMI_STRINGLEN2];
    char            HwDescr[SK_PNMI_STRINGLEN1];
    char            HwVersion[SK_PNMI_STRINGLEN2];
    SK_U16            Chipset;
    SK_U32            MtuSize;
    SK_U32            Action;
    SK_U32            TestResult;
    SK_U8            BusType;
    SK_U8            BusSpeed;
    SK_U8            BusWidth;
    SK_U8            SensorNumber;
    SK_PNMI_SENSOR        Sensor[SK_PNMI_SENSOR_ENTRIES];
    SK_U8            ChecksumNumber;
    SK_PNMI_CHECKSUM    Checksum[SK_PNMI_CHECKSUM_ENTRIES];
    SK_PNMI_STAT        Stat[SK_PNMI_MAC_ENTRIES];
    SK_PNMI_CONF        Conf[SK_PNMI_MAC_ENTRIES];
    SK_U8            RlmtMode;
    SK_U32            RlmtPortNumber;
    SK_U8            RlmtPortActive;
    SK_U8            RlmtPortPreferred;
    SK_U64            RlmtChangeCts;
    SK_U64            RlmtChangeTime;
    SK_U64            RlmtChangeEstimate;
    SK_U64            RlmtChangeThreshold;
    SK_PNMI_RLMT        Rlmt[SK_MAX_MACS];
    SK_U32            RlmtMonitorNumber;
    SK_PNMI_RLMT_MONITOR    RlmtMonitor[SK_PNMI_MONITOR_ENTRIES];
    SK_U32            TrapNumber;
    SK_U8            Trap[SK_PNMI_TRAP_QUEUE_LEN];
    SK_U64            TxSwQueueLen;
    SK_U64            TxSwQueueMax;
    SK_U64            TxRetryCts;
    SK_U64            RxIntrCts;
    SK_U64            TxIntrCts;
    SK_U64            RxNoBufCts;
    SK_U64            TxNoBufCts;
    SK_U64            TxUsedDescrNo;
    SK_U64            RxDeliveredCts;
    SK_U64            RxOctetsDeliveredCts;
    SK_U64            RxHwErrorsCts;
    SK_U64            TxHwErrorsCts;
    SK_U64            InErrorsCts;
    SK_U64            OutErrorsCts;
    SK_U64            ErrRecoveryCts;
    SK_U64            SysUpTime;
} SK_PNMI_STRUCT_DATA;

#define SK_PNMI_STRUCT_SIZE    (sizeof(SK_PNMI_STRUCT_DATA))
#define SK_PNMI_MIN_STRUCT_SIZE    ((unsigned int)(SK_UPTR)\
                 &(((SK_PNMI_STRUCT_DATA *)0)->VpdFreeBytes))
                            /*
                             * ReturnStatus field
                             * must be located
                             * before VpdFreeBytes
                             */

/*
 * Various definitions
 */
#define SK_PNMI_MAX_PROTOS        3

#define SK_PNMI_SCNT_NOT        64
#define SK_PNMI_CNT_NO            67

/*
 * Estimate data structure
 */
typedef struct s_PnmiEstimate {
    unsigned int        EstValueIndex;
    SK_U64            EstValue[7];
    SK_U64            Estimate;
    SK_TIMER        EstTimer;
} SK_PNMI_ESTIMATE;


/*
 * PNMI specific adatper context structure
 */
typedef struct s_PnmiPort {
    SK_U32            CounterHigh[SK_PNMI_SCNT_NOT];
    SK_U64            CounterOffset[SK_PNMI_CNT_NO];
    SK_U64            StatSyncCts;
    SK_U64            StatSyncOctetsCts;
    SK_U64            StatRxLongFrameCts;
    SK_BOOL            ActiveFlag;
    SK_U64            TxSwQueueLen;
    SK_U64            TxSwQueueMax;
    SK_U64            TxRetryCts;
    SK_U64            RxIntrCts;
    SK_U64            TxIntrCts;
    SK_U64            RxNoBufCts;
    SK_U64            TxNoBufCts;
    SK_U64            TxUsedDescrNo;
    SK_U64            RxDeliveredCts;
    SK_U64            RxOctetsDeliveredCts;
    SK_U64            RxHwErrorsCts;
    SK_U64            TxHwErrorsCts;
    SK_U64            InErrorsCts;
    SK_U64            OutErrorsCts;
    SK_U64            ErrRecoveryCts;
} SK_PNMI_PORT;


typedef struct s_PnmiData {
    SK_PNMI_PORT        Port[SK_MAX_MACS];
    SK_U64            VirtualCounterOffset[SK_PNMI_CNT_NO];
    SK_U32            TestResult;
    char            HwVersion[10];

    char            *pDriverDescription;
    char            *pDriverVersion;

    char            TrapBuf[SK_PNMI_TRAP_QUEUE_LEN];
    unsigned int        TrapBufFree;
    unsigned int        TrapQueueBeg;
    unsigned int        TrapQueueEnd;
    unsigned int        TrapBufPad;
    unsigned int        TrapUnique;

    int            MacUpdatedFlag;
    int            RlmtUpdatedFlag;
    int            SirqUpdatedFlag;

    SK_U64            RlmtChangeCts;
    SK_U64            RlmtChangeTime;
    SK_PNMI_ESTIMATE    RlmtChangeEstimate;
    SK_U64            RlmtChangeThreshold;

    SK_U32            DeviceType;
    char            PciBusSpeed;
    char            PciBusWidth;
    char            PMD;
    char            Connector;
    SK_U64            StartUpTime;
    SK_BOOL            DualNetActiveFlag;
} SK_PNMI;


/*
 * Function prototypes
 */
extern int SkPnmiInit(SK_AC *pAc, SK_IOC IoC, int level);
extern int SkPnmiGetVar(SK_AC *pAc, SK_IOC IoC, SK_U32 Id, void* pBuf,
    unsigned int* pLen, SK_U32 Instance, SK_U32 NetIndex);
extern int SkPnmiPreSetVar(SK_AC *pAc, SK_IOC IoC, SK_U32 Id,
    void* pBuf, unsigned int *pLen, SK_U32 Instance, SK_U32 NetIndex);
extern int SkPnmiSetVar(SK_AC *pAc, SK_IOC IoC, SK_U32 Id, void* pBuf,
    unsigned int *pLen, SK_U32 Instance, SK_U32 NetIndex);
extern int SkPnmiGetStruct(SK_AC *pAc, SK_IOC IoC, void* pBuf,
    unsigned int *pLen, SK_U32 NetIndex);
extern int SkPnmiPreSetStruct(SK_AC *pAc, SK_IOC IoC, void* pBuf,
    unsigned int *pLen, SK_U32 NetIndex);
extern int SkPnmiSetStruct(SK_AC *pAc, SK_IOC IoC, void* pBuf,
    unsigned int *pLen, SK_U32 NetIndex);
extern int SkPnmiEvent(SK_AC *pAc, SK_IOC IoC, SK_U32 Event,
    SK_EVPARA Param);

#endif

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.011 ]--