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 // Set Power Restore Policy 18 IPMI_CMD_SET_RESTORE_POLICY = 0x06, 19 // Get capability bits 20 IPMI_CMD_SET_SYS_BOOT_OPTIONS = 0x08, 21 IPMI_CMD_GET_SYS_BOOT_OPTIONS = 0x09, 22 IPMI_CMD_GET_POH_COUNTER = 0x0F, 23 }; 24 25 // Command specific completion codes 26 enum ipmi_chassis_return_codes 27 { 28 IPMI_OK = 0x0, 29 IPMI_CC_PARM_NOT_SUPPORTED = 0x80, 30 }; 31 32 // Generic completion codes, 33 // see IPMI doc section 5.2 34 enum ipmi_generic_return_codes 35 { 36 IPMI_OUT_OF_SPACE = 0xC4, 37 }; 38 39 // Various Chassis operations under a single command. 40 enum ipmi_chassis_control_cmds : uint8_t 41 { 42 CMD_POWER_OFF = 0x00, 43 CMD_POWER_ON = 0x01, 44 CMD_POWER_CYCLE = 0x02, 45 CMD_HARD_RESET = 0x03, 46 CMD_PULSE_DIAGNOSTIC_INTR = 0x04, 47 CMD_SOFT_OFF_VIA_OVER_TEMP = 0x05, 48 }; 49 enum class BootOptionParameter : size_t 50 { 51 BOOT_INFO = 0x4, 52 BOOT_FLAGS = 0x5, 53 OPAL_NETWORK_SETTINGS = 0x61 54 }; 55 56 enum class BootOptionResponseSize : size_t 57 { 58 BOOT_FLAGS = 5, 59 OPAL_NETWORK_SETTINGS = 50 60 }; 61 62 enum class ChassisIDState : uint8_t 63 { 64 off = 0x0, 65 temporaryOn = 0x1, 66 indefiniteOn = 0x2, 67 reserved = 0x3 68 }; 69