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

📄 ipmi_cmd.cpp

📁 HIP 硬件设备管理标准接口
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* * * Copyright (c) 2003 by FORCE Computers. * * This program 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.  This * file and program are licensed under a BSD style license.  See * the Copying file included with the OpenHPI distribution for * full licensing terms. * * Authors: *     Thomas Kanngieser <thomas.kanngieser@fci.com> */#include "ipmi_cmd.h"struct cConvMap{  const char *m_name;  int         m_value;};const char *ConvIntToString( int flags, const cConvMap *map, const char *def ){  for( int i = 0; map->m_name; i++, map++ )       if ( flags == map->m_value )	    return map->m_name;  return def;}static cConvMap netfn_map[] ={  { "Chassis"    , eIpmiNetfnChassis     },  { "Bridge"     , eIpmiNetfnBridge      },  { "SensorEvent", eIpmiNetfnSensorEvent },  { "App"        , eIpmiNetfnApp         },  { "Firmware"   , eIpmiNetfnFirmware    },  { "Storage "   , eIpmiNetfnStorage     },  { "Transport"  , eIpmiNetfnTransport   },  { "Picmg "     , eIpmiNetfnPicmg       },  { 0, 0 }}; const char *IpmiNetfnToString( tIpmiNetfn netfn ){  return ConvIntToString( netfn, netfn_map, "Invalid" );	}static cConvMap completion_code_map[] ={  { "Ok"                         , eIpmiCcOk                          },  { "NodeBusy"                   , eIpmiCcNodeBusy                    },  { "InvalidCmd"                 , eIpmiCcInvalidCmd                  },  { "CommandInvalidForLun"       , eIpmiCcCommandInvalidForLun        },  { "Timeout"                    , eIpmiCcTimeout                     },  { "OutOfSpace"                 , eIpmiCcOutOfSpace                  },  { "InvalidReservation"         , eIpmiCcInvalidReservation          },  { "RequestDataTruncated"       , eIpmiCcRequestDataTruncated        },  { "RequestDataLengthInvalid"   , eIpmiCcRequestDataLengthInvalid    },  { "RequestedDataLengthExceeded", eIpmiCcRequestedDataLengthExceeded },  { "ParameterOutOfRange"        , eIpmiCcParameterOutOfRange         },  { "CannotReturnReqLength"      , eIpmiCcCannotReturnReqLength       },  { "NotPresent"                 , eIpmiCcNotPresent                  },  { "InvalidDataField"           , eIpmiCcInvalidDataField            },  { "CommandIllegalForSensor"    , eIpmiCcCommandIllegalForSensor     },  { "CouldNotProvideResponse"    , eIpmiCcCouldNotProvideResponse     },  { "CannotExecDuplicateRequest" , eIpmiCcCannotExecDuplicateRequest  },  { "RepositoryInUpdateMode"     , eIpmiCcRepositoryInUpdateMode      },  { "DeviceInFirmwareUpdate"     , eIpmiCcDeviceInFirmwareUpdate      },  { "BmcInitInProgress"          , eIpmiCcBmcInitInProgress           },  { "DestinationUnavailable"     , eIpmiCcDestinationUnavailable      },  { "InsufficientPrivilege"      , eIpmiCcInsufficientPrivilege       },  { "NotSupportedInPresentState" , eIpmiCcNotSupportedInPresentState  },  { "UnknownErr"                 , eIpmiCcUnknownErr                  },  { 0, 0 }};const char *IpmiCompletionCodeToString( tIpmiCompletionCode cc ){  return ConvIntToString( cc, completion_code_map, "Invalid" );	}struct cIpmiCmdToClass{  const char *m_name;  tIpmiNetfn  m_netfn;  tIpmiCmd    m_cmd;};static cIpmiCmdToClass cmd_class_map[] ={  // Chassis netfn  { "GetChassisCapabilities"    , eIpmiNetfnChassis    , eIpmiCmdGetChassisCapabilities     },  { "GetChassisStatus"          , eIpmiNetfnChassis    , eIpmiCmdGetChassisStatus           },  { "ChassisControl"            , eIpmiNetfnChassis    , eIpmiCmdChassisControl             },  { "ChassisReset"              , eIpmiNetfnChassis    , eIpmiCmdChassisReset               },  { "ChassisIdentify"           , eIpmiNetfnChassis    , eIpmiCmdChassisIdentify            },  { "SetChassisCapabilities"    , eIpmiNetfnChassis    , eIpmiCmdSetChassisCapabilities     },  { "SetPowerRestorePolicy"     , eIpmiNetfnChassis    , eIpmiCmdSetPowerRestorePolicy      },  { "GetSystemRestartCause"     , eIpmiNetfnChassis    , eIpmiCmdGetSystemRestartCause      },  { "SetSystemBootOptions"      , eIpmiNetfnChassis    , eIpmiCmdSetSystemBootOptions       },  { "GetSystemBootOptions"      , eIpmiNetfnChassis    , eIpmiCmdGetSystemBootOptions       },  { "GetPohCounter"             , eIpmiNetfnChassis    , eIpmiCmdGetPohCounter              },  // Bridge netfn  { "GetBridgeState"            , eIpmiNetfnBridge     , eIpmiCmdGetBridgeState             },  { "SetBridgeState"            , eIpmiNetfnBridge     , eIpmiCmdSetBridgeState             },  { "GetIcmbAddress"            , eIpmiNetfnBridge     , eIpmiCmdGetIcmbAddress             },  { "SetIcmbAddress"            , eIpmiNetfnBridge     , eIpmiCmdSetIcmbAddress             },  { "SetBridgeProxyAddress"     , eIpmiNetfnBridge     , eIpmiCmdSetBridgeProxyAddress      },  { "GetBridgeStatistics"       , eIpmiNetfnBridge     , eIpmiCmdGetBridgeStatistics        },  { "GetIcmbCapabilities"       , eIpmiNetfnBridge     , eIpmiCmdGetIcmbCapabilities        },  { "ClearBridgeStatistics"     , eIpmiNetfnBridge     , eIpmiCmdClearBridgeStatistics      },  { "GetBridgeProxyAddress"     , eIpmiNetfnBridge     , eIpmiCmdGetBridgeProxyAddress      },  { "GetIcmbConnectorInfo"      , eIpmiNetfnBridge     , eIpmiCmdGetIcmbConnectorInfo       },  { "SetIcmbConnectorInfo"      , eIpmiNetfnBridge     , eIpmiCmdSetIcmbConnectorInfo       },  { "SendIcmbConnectionId"      , eIpmiNetfnBridge     , eIpmiCmdSendIcmbConnectionId       },  { "PrepareForDiscovery"       , eIpmiNetfnBridge     , eIpmiCmdPrepareForDiscovery        },  { "GetAddresses"              , eIpmiNetfnBridge     , eIpmiCmdGetAddresses               },  { "SetDiscovered"             , eIpmiNetfnBridge     , eIpmiCmdSetDiscovered              },  { "GetChassisDeviceId"        , eIpmiNetfnBridge     , eIpmiCmdGetChassisDeviceId         },  { "SetChassisDeviceId"        , eIpmiNetfnBridge     , eIpmiCmdSetChassisDeviceId         },  { "BridgeRequest"             , eIpmiNetfnBridge     , eIpmiCmdBridgeRequest              },  { "BridgeMessage"             , eIpmiNetfnBridge     , eIpmiCmdBridgeMessage              },  { "GetEventCount"             , eIpmiNetfnBridge     , eIpmiCmdGetEventCount              },  { "SetEventdestination"       , eIpmiNetfnBridge     , eIpmiCmdSetEventdestination        },  { "SetEventReceptionState"    , eIpmiNetfnBridge     , eIpmiCmdSetEventReceptionState     },  { "SendIcmbEventMessage"      , eIpmiNetfnBridge     , eIpmiCmdSendIcmbEventMessage       },  { "GetEventDestiation"        , eIpmiNetfnBridge     , eIpmiCmdGetEventDestiation         },  { "GetEventReceptionState"    , eIpmiNetfnBridge     , eIpmiCmdGetEventReceptionState     },  { "ErrorReport"               , eIpmiNetfnBridge     , eIpmiCmdErrorReport                },  // Sensor/Event netfn  { "SetEventReceiver"          , eIpmiNetfnSensorEvent, eIpmiCmdSetEventReceiver           },  { "GetEventReceiver"          , eIpmiNetfnSensorEvent, eIpmiCmdGetEventReceiver           },  { "PlatformEvent"             , eIpmiNetfnSensorEvent, eIpmiCmdPlatformEvent              },  { "GetPefCapabilities"        , eIpmiNetfnSensorEvent, eIpmiCmdGetPefCapabilities         },  { "ArmPefPostponeTimer"       , eIpmiNetfnSensorEvent, eIpmiCmdArmPefPostponeTimer        },  { "SetPefConfigParms"         , eIpmiNetfnSensorEvent, eIpmiCmdSetPefConfigParms          },  { "GetPefConfigParms"         , eIpmiNetfnSensorEvent, eIpmiCmdGetPefConfigParms          },

⌨️ 快捷键说明

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