1 #pragma once 2 3 #include <stdint.h> 4 5 #include <cstddef> 6 7 // IPMI commands for Chassis net functions. 8 enum ipmi_netfn_chassis_cmds 9 { 10 IPMI_CMD_GET_CHASSIS_CAP = 0x00, 11 // Chassis Status 12 IPMI_CMD_CHASSIS_STATUS = 0x01, 13 // Chassis Control 14 IPMI_CMD_CHASSIS_CONTROL = 0x02, 15 IPMI_CMD_CHASSIS_IDENTIFY = 0x04, 16 IPMI_CMD_SET_CHASSIS_CAP = 0x05, 17 // Get capability bits 18 IPMI_CMD_SET_SYS_BOOT_OPTIONS = 0x08, 19 IPMI_CMD_GET_SYS_BOOT_OPTIONS = 0x09, 20 IPMI_CMD_GET_POH_COUNTER = 0x0F, 21 }; 22 23 // Command specific completion codes 24 enum ipmi_chassis_return_codes 25 { 26 IPMI_OK = 0x0, 27 IPMI_CC_PARM_NOT_SUPPORTED = 0x80, 28 }; 29 30 // Generic completion codes, 31 // see IPMI doc section 5.2 32 enum ipmi_generic_return_codes 33 { 34 IPMI_OUT_OF_SPACE = 0xC4, 35 }; 36 37 // Various Chassis operations under a single command. 38 enum ipmi_chassis_control_cmds : uint8_t 39 { 40 CMD_POWER_OFF = 0x00, 41 CMD_POWER_ON = 0x01, 42 CMD_POWER_CYCLE = 0x02, 43 CMD_HARD_RESET = 0x03, 44 CMD_PULSE_DIAGNOSTIC_INTR = 0x04, 45 CMD_SOFT_OFF_VIA_OVER_TEMP = 0x05, 46 }; 47 enum class BootOptionParameter : size_t 48 { 49 BOOT_INFO = 0x4, 50 BOOT_FLAGS = 0x5, 51 OPAL_NETWORK_SETTINGS = 0x61 52 }; 53 54 enum class BootOptionResponseSize : size_t 55 { 56 BOOT_FLAGS = 5, 57 OPAL_NETWORK_SETTINGS = 50 58 }; 59 60 enum class ChassisIDState : uint8_t 61 { 62 off = 0x0, 63 temporaryOn = 0x1, 64 indefiniteOn = 0x2, 65 reserved = 0x3 66 }; 67