// Constants and Structure definitions for "Get Fru Inventory Area Info" command to follow here\r
//\r
typedef struct {\r
- UINT8 DeviceId;\r
+ UINT8 DeviceId;\r
} IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST;\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT16 InventoryAreaSize;\r
- UINT8 AccessType;\r
+ UINT8 CompletionCode;\r
+ UINT16 InventoryAreaSize;\r
+ UINT8 AccessType;\r
} IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE;\r
\r
//\r
// Definitions for Read Fru Data command\r
//\r
-#define IPMI_STORAGE_READ_FRU_DATA 0x11\r
+#define IPMI_STORAGE_READ_FRU_DATA 0x11\r
\r
//\r
// Constants and Structure definitions for "Read Fru Data" command to follow here\r
//\r
typedef struct {\r
- UINT8 FruDeviceId;\r
- UINT16 FruOffset;\r
+ UINT8 FruDeviceId;\r
+ UINT16 FruOffset;\r
} IPMI_FRU_COMMON_DATA;\r
\r
typedef struct {\r
- IPMI_FRU_COMMON_DATA Data;\r
- UINT8 Count;\r
+ IPMI_FRU_COMMON_DATA Data;\r
+ UINT8 Count;\r
} IPMI_FRU_READ_COMMAND;\r
\r
typedef struct {\r
- UINT8 DeviceId;\r
- UINT16 InventoryOffset;\r
- UINT8 CountToRead;\r
+ UINT8 DeviceId;\r
+ UINT16 InventoryOffset;\r
+ UINT8 CountToRead;\r
} IPMI_READ_FRU_DATA_REQUEST;\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT8 CountReturned;\r
- UINT8 Data[0];\r
+ UINT8 CompletionCode;\r
+ UINT8 CountReturned;\r
+ UINT8 Data[0];\r
} IPMI_READ_FRU_DATA_RESPONSE;\r
\r
//\r
// Constants and Structure definitions for "Write Fru Data" command to follow here\r
//\r
typedef struct {\r
- IPMI_FRU_COMMON_DATA Data;\r
- UINT8 FruData[16];\r
+ IPMI_FRU_COMMON_DATA Data;\r
+ UINT8 FruData[16];\r
} IPMI_FRU_WRITE_COMMAND;\r
\r
typedef struct {\r
- UINT8 DeviceId;\r
- UINT16 InventoryOffset;\r
- UINT8 Data[0];\r
+ UINT8 DeviceId;\r
+ UINT16 InventoryOffset;\r
+ UINT8 Data[0];\r
} IPMI_WRITE_FRU_DATA_REQUEST;\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT8 CountWritten;\r
+ UINT8 CompletionCode;\r
+ UINT8 CountWritten;\r
} IPMI_WRITE_FRU_DATA_RESPONSE;\r
\r
//\r
//\r
// Definitions for Get SDR Repository Info command\r
//\r
-#define IPMI_STORAGE_GET_SDR_REPOSITORY_INFO 0x20\r
+#define IPMI_STORAGE_GET_SDR_REPOSITORY_INFO 0x20\r
\r
//\r
// Constants and Structure definitions for "Get SDR Repository Info" command to follow here\r
//\r
typedef union {\r
struct {\r
- UINT8 SdrRepAllocInfoCmd : 1;\r
- UINT8 SdrRepReserveCmd : 1;\r
- UINT8 PartialAddSdrCmd : 1;\r
- UINT8 DeleteSdrRepCmd : 1;\r
- UINT8 Reserved : 1;\r
- UINT8 SdrRepUpdateOp : 2;\r
- UINT8 Overflow : 1;\r
+ UINT8 SdrRepAllocInfoCmd : 1;\r
+ UINT8 SdrRepReserveCmd : 1;\r
+ UINT8 PartialAddSdrCmd : 1;\r
+ UINT8 DeleteSdrRepCmd : 1;\r
+ UINT8 Reserved : 1;\r
+ UINT8 SdrRepUpdateOp : 2;\r
+ UINT8 Overflow : 1;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_OPERATION_SUPPORT;\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT8 Version;\r
- UINT16 RecordCount;\r
- UINT16 FreeSpace;\r
- UINT32 RecentAdditionTimeStamp;\r
- UINT32 RecentEraseTimeStamp;\r
- IPMI_SDR_OPERATION_SUPPORT OperationSupport;\r
+ UINT8 CompletionCode;\r
+ UINT8 Version;\r
+ UINT16 RecordCount;\r
+ UINT16 FreeSpace;\r
+ UINT32 RecentAdditionTimeStamp;\r
+ UINT32 RecentEraseTimeStamp;\r
+ IPMI_SDR_OPERATION_SUPPORT OperationSupport;\r
} IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE;\r
\r
//\r
// Constants and Structure definitions for "Reserve SDR Repository" command to follow here\r
//\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT8 ReservationId[2]; // Reservation ID. LS byte first.\r
+ UINT8 CompletionCode;\r
+ UINT8 ReservationId[2]; // Reservation ID. LS byte first.\r
} IPMI_RESERVE_SDR_REPOSITORY_RESPONSE;\r
\r
//\r
// Definitions for Get SDR command\r
//\r
-#define IPMI_STORAGE_GET_SDR 0x23\r
+#define IPMI_STORAGE_GET_SDR 0x23\r
\r
//\r
// Constants and Structure definitions for "Get SDR" command to follow here\r
//\r
typedef union {\r
struct {\r
- UINT8 EventScanningEnabled : 1;\r
- UINT8 EventScanningDisabled : 1;\r
- UINT8 InitSensorType : 1;\r
- UINT8 InitHysteresis : 1;\r
- UINT8 InitThresholds : 1;\r
- UINT8 InitEvent : 1;\r
- UINT8 InitScanning : 1;\r
- UINT8 SettableSensor : 1;\r
+ UINT8 EventScanningEnabled : 1;\r
+ UINT8 EventScanningDisabled : 1;\r
+ UINT8 InitSensorType : 1;\r
+ UINT8 InitHysteresis : 1;\r
+ UINT8 InitThresholds : 1;\r
+ UINT8 InitEvent : 1;\r
+ UINT8 InitScanning : 1;\r
+ UINT8 SettableSensor : 1;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_RECORD_SENSOR_INIT;\r
\r
typedef union {\r
struct {\r
- UINT8 EventMessageControl : 2;\r
- UINT8 ThresholdAccessSupport : 2;\r
- UINT8 HysteresisSupport : 2;\r
- UINT8 ReArmSupport : 1;\r
- UINT8 IgnoreSensor : 1;\r
+ UINT8 EventMessageControl : 2;\r
+ UINT8 ThresholdAccessSupport : 2;\r
+ UINT8 HysteresisSupport : 2;\r
+ UINT8 ReArmSupport : 1;\r
+ UINT8 IgnoreSensor : 1;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_RECORD_SENSOR_CAP;\r
\r
typedef union {\r
struct {\r
- UINT8 Linearization : 7;\r
- UINT8 Reserved : 1;\r
+ UINT8 Linearization : 7;\r
+ UINT8 Reserved : 1;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_RECORD_LINEARIZATION;\r
\r
typedef union {\r
struct {\r
- UINT8 Toleremce : 6;\r
- UINT8 MHi : 2;\r
+ UINT8 Toleremce : 6;\r
+ UINT8 MHi : 2;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_RECORD_M_TOLERANCE;\r
\r
typedef union {\r
struct {\r
- UINT8 AccuracyLow : 6;\r
- UINT8 BHi : 2;\r
+ UINT8 AccuracyLow : 6;\r
+ UINT8 BHi : 2;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_RECORD_B_ACCURACY;\r
\r
typedef union {\r
struct {\r
- UINT8 Reserved : 2;\r
- UINT8 AccuracyExp : 2;\r
- UINT8 AccuracyHi : 4;\r
+ UINT8 Reserved : 2;\r
+ UINT8 AccuracyExp : 2;\r
+ UINT8 AccuracyHi : 4;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_RECORD_ACCURACY_SENSOR_DIR;\r
\r
typedef union {\r
struct {\r
- UINT8 BExp : 4;\r
- UINT8 RExp : 4;\r
+ UINT8 BExp : 4;\r
+ UINT8 RExp : 4;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_RECORD_R_EXP_B_EXP;\r
\r
typedef union {\r
struct {\r
- UINT8 NominalReadingSpscified : 1;\r
- UINT8 NominalMaxSpscified : 1;\r
- UINT8 NominalMinSpscified : 1;\r
- UINT8 Reserved : 5;\r
+ UINT8 NominalReadingSpscified : 1;\r
+ UINT8 NominalMaxSpscified : 1;\r
+ UINT8 NominalMinSpscified : 1;\r
+ UINT8 Reserved : 5;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_RECORD_ANALOG_FLAGS;\r
\r
typedef struct {\r
- UINT16 RecordId; // 1\r
- UINT8 Version; // 3\r
- UINT8 RecordType; // 4\r
- UINT8 RecordLength; // 5\r
- UINT8 OwnerId; // 6\r
- UINT8 OwnerLun; // 7\r
- UINT8 SensorNumber; // 8\r
- UINT8 EntityId; // 9\r
- UINT8 EntityInstance; // 10\r
- IPMI_SDR_RECORD_SENSOR_INIT SensorInitialization; // 11\r
- IPMI_SDR_RECORD_SENSOR_CAP SensorCapabilities; // 12\r
- UINT8 SensorType; // 13\r
- UINT8 EventType; // 14\r
- UINT8 Reserved1[7]; // 15\r
- UINT8 UnitType; // 22\r
- UINT8 Reserved2; // 23\r
- IPMI_SDR_RECORD_LINEARIZATION Linearization; // 24\r
- UINT8 MLo; // 25\r
- IPMI_SDR_RECORD_M_TOLERANCE MHiTolerance; // 26\r
- UINT8 BLo; // 27\r
- IPMI_SDR_RECORD_B_ACCURACY BHiAccuracyLo; // 28\r
- IPMI_SDR_RECORD_ACCURACY_SENSOR_DIR AccuracySensorDirection; // 29\r
- IPMI_SDR_RECORD_R_EXP_B_EXP RExpBExp; // 30\r
- IPMI_SDR_RECORD_ANALOG_FLAGS AnalogFlags; // 31\r
- UINT8 NominalReading; // 32\r
- UINT8 Reserved3[4]; // 33\r
- UINT8 UpperNonRecoverThreshold; // 37\r
- UINT8 UpperCriticalThreshold; // 38\r
- UINT8 UpperNonCriticalThreshold; // 39\r
- UINT8 LowerNonRecoverThreshold; // 40\r
- UINT8 LowerCriticalThreshold; // 41\r
- UINT8 LowerNonCriticalThreshold; // 42\r
- UINT8 Reserved4[5]; // 43\r
- UINT8 IdStringLength; // 48\r
- UINT8 AsciiIdString[16]; // 49 - 64\r
+ UINT16 RecordId; // 1\r
+ UINT8 Version; // 3\r
+ UINT8 RecordType; // 4\r
+ UINT8 RecordLength; // 5\r
+ UINT8 OwnerId; // 6\r
+ UINT8 OwnerLun; // 7\r
+ UINT8 SensorNumber; // 8\r
+ UINT8 EntityId; // 9\r
+ UINT8 EntityInstance; // 10\r
+ IPMI_SDR_RECORD_SENSOR_INIT SensorInitialization; // 11\r
+ IPMI_SDR_RECORD_SENSOR_CAP SensorCapabilities; // 12\r
+ UINT8 SensorType; // 13\r
+ UINT8 EventType; // 14\r
+ UINT8 Reserved1[7]; // 15\r
+ UINT8 UnitType; // 22\r
+ UINT8 Reserved2; // 23\r
+ IPMI_SDR_RECORD_LINEARIZATION Linearization; // 24\r
+ UINT8 MLo; // 25\r
+ IPMI_SDR_RECORD_M_TOLERANCE MHiTolerance; // 26\r
+ UINT8 BLo; // 27\r
+ IPMI_SDR_RECORD_B_ACCURACY BHiAccuracyLo; // 28\r
+ IPMI_SDR_RECORD_ACCURACY_SENSOR_DIR AccuracySensorDirection; // 29\r
+ IPMI_SDR_RECORD_R_EXP_B_EXP RExpBExp; // 30\r
+ IPMI_SDR_RECORD_ANALOG_FLAGS AnalogFlags; // 31\r
+ UINT8 NominalReading; // 32\r
+ UINT8 Reserved3[4]; // 33\r
+ UINT8 UpperNonRecoverThreshold; // 37\r
+ UINT8 UpperCriticalThreshold; // 38\r
+ UINT8 UpperNonCriticalThreshold; // 39\r
+ UINT8 LowerNonRecoverThreshold; // 40\r
+ UINT8 LowerCriticalThreshold; // 41\r
+ UINT8 LowerNonCriticalThreshold; // 42\r
+ UINT8 Reserved4[5]; // 43\r
+ UINT8 IdStringLength; // 48\r
+ UINT8 AsciiIdString[16]; // 49 - 64\r
} IPMI_SDR_RECORD_STRUCT_1;\r
\r
typedef struct {\r
- UINT16 RecordId; // 1\r
- UINT8 Version; // 3\r
- UINT8 RecordType; // 4\r
- UINT8 RecordLength; // 5\r
- UINT8 OwnerId; // 6\r
- UINT8 OwnerLun; // 7\r
- UINT8 SensorNumber; // 8\r
- UINT8 EntityId; // 9\r
- UINT8 EntityInstance; // 10\r
- IPMI_SDR_RECORD_SENSOR_INIT SensorInitialization; // 11\r
- IPMI_SDR_RECORD_SENSOR_CAP SensorCapabilities; // 12\r
- UINT8 SensorType; // 13\r
- UINT8 EventType; // 14\r
- UINT8 Reserved1[7]; // 15\r
- UINT8 UnitType; // 22\r
- UINT8 Reserved2[9]; // 23\r
- UINT8 IdStringLength; // 32\r
- UINT8 AsciiIdString[16]; // 33 - 48\r
+ UINT16 RecordId; // 1\r
+ UINT8 Version; // 3\r
+ UINT8 RecordType; // 4\r
+ UINT8 RecordLength; // 5\r
+ UINT8 OwnerId; // 6\r
+ UINT8 OwnerLun; // 7\r
+ UINT8 SensorNumber; // 8\r
+ UINT8 EntityId; // 9\r
+ UINT8 EntityInstance; // 10\r
+ IPMI_SDR_RECORD_SENSOR_INIT SensorInitialization; // 11\r
+ IPMI_SDR_RECORD_SENSOR_CAP SensorCapabilities; // 12\r
+ UINT8 SensorType; // 13\r
+ UINT8 EventType; // 14\r
+ UINT8 Reserved1[7]; // 15\r
+ UINT8 UnitType; // 22\r
+ UINT8 Reserved2[9]; // 23\r
+ UINT8 IdStringLength; // 32\r
+ UINT8 AsciiIdString[16]; // 33 - 48\r
} IPMI_SDR_RECORD_STRUCT_2;\r
\r
typedef union {\r
struct {\r
- UINT8 Reserved1 : 1;\r
- UINT8 ControllerSlaveAddress : 7;\r
- UINT8 FruDeviceId;\r
- UINT8 BusId : 3;\r
- UINT8 Lun : 2;\r
- UINT8 Reserved2 : 2;\r
- UINT8 LogicalFruDevice : 1;\r
- UINT8 Reserved3 : 4;\r
- UINT8 ChannelNumber : 4;\r
+ UINT8 Reserved1 : 1;\r
+ UINT8 ControllerSlaveAddress : 7;\r
+ UINT8 FruDeviceId;\r
+ UINT8 BusId : 3;\r
+ UINT8 Lun : 2;\r
+ UINT8 Reserved2 : 2;\r
+ UINT8 LogicalFruDevice : 1;\r
+ UINT8 Reserved3 : 4;\r
+ UINT8 ChannelNumber : 4;\r
} Bits;\r
- UINT32 Uint32;\r
+ UINT32 Uint32;\r
} IPMI_FRU_DATA_INFO;\r
\r
typedef union {\r
struct {\r
- UINT8 Length : 4;\r
- UINT8 Reserved : 1;\r
- UINT8 StringType : 3;\r
+ UINT8 Length : 4;\r
+ UINT8 Reserved : 1;\r
+ UINT8 StringType : 3;\r
} Bits;\r
- UINT8 Uint8;\r
+ UINT8 Uint8;\r
} IPMI_SDR_RECORD_DEV_ID_STR_TYPE_LENGTH;\r
\r
typedef struct {\r
- UINT16 RecordId; // 1\r
- UINT8 Version; // 3\r
- UINT8 RecordType; // 4\r
- UINT8 RecordLength; // 5\r
- IPMI_FRU_DATA_INFO FruDeviceData; // 6\r
- UINT8 Reserved; // 10\r
- UINT8 DeviceType; // 11\r
- UINT8 DeviceTypeModifier; // 12\r
- UINT8 FruEntityId; // 13\r
- UINT8 FruEntityInstance; // 14\r
- UINT8 OemReserved; // 15\r
- IPMI_SDR_RECORD_DEV_ID_STR_TYPE_LENGTH StringTypeLength; // 16\r
- UINT8 String[16]; // 17\r
+ UINT16 RecordId; // 1\r
+ UINT8 Version; // 3\r
+ UINT8 RecordType; // 4\r
+ UINT8 RecordLength; // 5\r
+ IPMI_FRU_DATA_INFO FruDeviceData; // 6\r
+ UINT8 Reserved; // 10\r
+ UINT8 DeviceType; // 11\r
+ UINT8 DeviceTypeModifier; // 12\r
+ UINT8 FruEntityId; // 13\r
+ UINT8 FruEntityInstance; // 14\r
+ UINT8 OemReserved; // 15\r
+ IPMI_SDR_RECORD_DEV_ID_STR_TYPE_LENGTH StringTypeLength; // 16\r
+ UINT8 String[16]; // 17\r
} IPMI_SDR_RECORD_STRUCT_11;\r
\r
typedef struct {\r
- UINT16 RecordId; //1\r
- UINT8 Version; //3\r
- UINT8 RecordType; //4\r
- UINT8 RecordLength; //5\r
- UINT8 ManufacturerId[3]; //6\r
- UINT8 StringChars[20];\r
+ UINT16 RecordId; // 1\r
+ UINT8 Version; // 3\r
+ UINT8 RecordType; // 4\r
+ UINT8 RecordLength; // 5\r
+ UINT8 ManufacturerId[3]; // 6\r
+ UINT8 StringChars[20];\r
} IPMI_SDR_RECORD_STRUCT_C0;\r
\r
typedef struct {\r
- UINT16 RecordId; //1\r
- UINT8 Version; //3\r
- UINT8 RecordType; //4\r
- UINT8 RecordLength; //5\r
+ UINT16 RecordId; // 1\r
+ UINT8 Version; // 3\r
+ UINT8 RecordType; // 4\r
+ UINT8 RecordLength; // 5\r
} IPMI_SDR_RECORD_STRUCT_HEADER;\r
\r
typedef union {\r
- IPMI_SDR_RECORD_STRUCT_1 SensorType1;\r
- IPMI_SDR_RECORD_STRUCT_2 SensorType2;\r
- IPMI_SDR_RECORD_STRUCT_11 SensorType11;\r
- IPMI_SDR_RECORD_STRUCT_C0 SensorTypeC0;\r
- IPMI_SDR_RECORD_STRUCT_HEADER SensorHeader;\r
+ IPMI_SDR_RECORD_STRUCT_1 SensorType1;\r
+ IPMI_SDR_RECORD_STRUCT_2 SensorType2;\r
+ IPMI_SDR_RECORD_STRUCT_11 SensorType11;\r
+ IPMI_SDR_RECORD_STRUCT_C0 SensorTypeC0;\r
+ IPMI_SDR_RECORD_STRUCT_HEADER SensorHeader;\r
} IPMI_SENSOR_RECORD_STRUCT;\r
\r
typedef struct {\r
- UINT16 ReservationId;\r
- UINT16 RecordId;\r
- UINT8 RecordOffset;\r
- UINT8 BytesToRead;\r
+ UINT16 ReservationId;\r
+ UINT16 RecordId;\r
+ UINT8 RecordOffset;\r
+ UINT8 BytesToRead;\r
} IPMI_GET_SDR_REQUEST;\r
\r
typedef struct {\r
//\r
// Definitions for Add SDR command\r
//\r
-#define IPMI_STORAGE_ADD_SDR 0x24\r
+#define IPMI_STORAGE_ADD_SDR 0x24\r
\r
//\r
// Constants and Structure definitions for "Add SDR" command to follow here\r
//\r
// Definitions for Partial Add SDR command\r
//\r
-#define IPMI_STORAGE_PARTIAL_ADD_SDR 0x25\r
+#define IPMI_STORAGE_PARTIAL_ADD_SDR 0x25\r
\r
//\r
// Constants and Structure definitions for "Partial Add SDR" command to follow here\r
//\r
// Definitions for Clear SDR Repository command\r
//\r
-#define IPMI_STORAGE_CLEAR_SDR 0x27\r
+#define IPMI_STORAGE_CLEAR_SDR 0x27\r
\r
//\r
// Constants and Structure definitions for "Clear SDR Repository" command to follow here\r
//\r
// Definitions for Get SDR Repository Time command\r
//\r
-#define IPMI_STORAGE_GET_SDR_REPOSITORY_TIME 0x28\r
+#define IPMI_STORAGE_GET_SDR_REPOSITORY_TIME 0x28\r
\r
//\r
// Constants and Structure definitions for "Get SDR Repository Time" command to follow here\r
//\r
// Definitions for Set SDR Repository Time command\r
//\r
-#define IPMI_STORAGE_SET_SDR_REPOSITORY_TIME 0x29\r
+#define IPMI_STORAGE_SET_SDR_REPOSITORY_TIME 0x29\r
\r
//\r
// Constants and Structure definitions for "Set SDR Repository Time" command to follow here\r
//\r
// Definitions for Enter SDR Repository Update Mode command\r
//\r
-#define IPMI_STORAGE_ENTER_SDR_UPDATE_MODE 0x2A\r
+#define IPMI_STORAGE_ENTER_SDR_UPDATE_MODE 0x2A\r
\r
//\r
// Constants and Structure definitions for "Enter SDR Repository Update Mode" command to follow here\r
//\r
// Constants and Structure definitions for "Get SEL Info" command to follow here\r
//\r
-#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_GET_SEL_ALLOCATION_INFO_CMD BIT0\r
-#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_RESERVE_SEL_CMD BIT1\r
-#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_PARTIAL_ADD_SEL_ENTRY_CMD BIT2\r
-#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_DELETE_SEL_CMD BIT3\r
-#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_OVERFLOW_FLAG BIT7\r
+#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_GET_SEL_ALLOCATION_INFO_CMD BIT0\r
+#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_RESERVE_SEL_CMD BIT1\r
+#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_PARTIAL_ADD_SEL_ENTRY_CMD BIT2\r
+#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_DELETE_SEL_CMD BIT3\r
+#define IPMI_GET_SEL_INFO_OPERATION_SUPPORT_OVERFLOW_FLAG BIT7\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT8 Version; // Version of SEL\r
- UINT16 NoOfEntries; // No of Entries in the SEL\r
- UINT16 FreeSpace; // Free space in Bytes\r
- UINT32 RecentAddTimeStamp; // Most Recent Addition of Time Stamp\r
- UINT32 RecentEraseTimeStamp; // Most Recent Erasure of Time Stamp\r
- UINT8 OperationSupport; // Operation Support\r
+ UINT8 CompletionCode;\r
+ UINT8 Version; // Version of SEL\r
+ UINT16 NoOfEntries; // No of Entries in the SEL\r
+ UINT16 FreeSpace; // Free space in Bytes\r
+ UINT32 RecentAddTimeStamp; // Most Recent Addition of Time Stamp\r
+ UINT32 RecentEraseTimeStamp; // Most Recent Erasure of Time Stamp\r
+ UINT8 OperationSupport; // Operation Support\r
} IPMI_GET_SEL_INFO_RESPONSE;\r
\r
//\r
// Definitions for Get SEL Allocation Info command\r
//\r
-#define IPMI_STORAGE_GET_SEL_ALLOCATION_INFO 0x41\r
+#define IPMI_STORAGE_GET_SEL_ALLOCATION_INFO 0x41\r
\r
//\r
// Constants and Structure definitions for "Get SEL Allocation Info" command to follow here\r
//\r
// Definitions for Reserve SEL command\r
//\r
-#define IPMI_STORAGE_RESERVE_SEL 0x42\r
+#define IPMI_STORAGE_RESERVE_SEL 0x42\r
\r
//\r
// Constants and Structure definitions for "Reserve SEL" command to follow here\r
//\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT8 ReservationId[2]; // Reservation ID. LS byte first.\r
+ UINT8 CompletionCode;\r
+ UINT8 ReservationId[2]; // Reservation ID. LS byte first.\r
} IPMI_RESERVE_SEL_RESPONSE;\r
\r
//\r
// Definitions for Get SEL Entry command\r
//\r
-#define IPMI_STORAGE_GET_SEL_ENTRY 0x43\r
+#define IPMI_STORAGE_GET_SEL_ENTRY 0x43\r
\r
//\r
// Constants and Structure definitions for "Get SEL Entry" command to follow here\r
// Below is Definitions for SEL Record Formats (Chapter 32)\r
//\r
typedef struct {\r
- UINT16 RecordId;\r
- UINT8 RecordType;\r
- UINT32 TimeStamp;\r
- UINT16 GeneratorId;\r
- UINT8 EvMRevision;\r
- UINT8 SensorType;\r
- UINT8 SensorNumber;\r
- UINT8 EventDirType;\r
- UINT8 OEMEvData1;\r
- UINT8 OEMEvData2;\r
- UINT8 OEMEvData3;\r
+ UINT16 RecordId;\r
+ UINT8 RecordType;\r
+ UINT32 TimeStamp;\r
+ UINT16 GeneratorId;\r
+ UINT8 EvMRevision;\r
+ UINT8 SensorType;\r
+ UINT8 SensorNumber;\r
+ UINT8 EventDirType;\r
+ UINT8 OEMEvData1;\r
+ UINT8 OEMEvData2;\r
+ UINT8 OEMEvData3;\r
} IPMI_SEL_EVENT_RECORD_DATA;\r
\r
typedef struct {\r
- UINT16 RecordId;\r
- UINT8 RecordType; // C0h-DFh = OEM system event record\r
- UINT32 TimeStamp;\r
- UINT8 ManufacturerId[3];\r
- UINT8 OEMDefined[6];\r
+ UINT16 RecordId;\r
+ UINT8 RecordType; // C0h-DFh = OEM system event record\r
+ UINT32 TimeStamp;\r
+ UINT8 ManufacturerId[3];\r
+ UINT8 OEMDefined[6];\r
} IPMI_TIMESTAMPED_OEM_SEL_RECORD_DATA;\r
\r
typedef struct {\r
- UINT16 RecordId;\r
- UINT8 RecordType; // E0h-FFh = OEM system event record\r
- UINT8 OEMDefined[13];\r
+ UINT16 RecordId;\r
+ UINT8 RecordType; // E0h-FFh = OEM system event record\r
+ UINT8 OEMDefined[13];\r
} IPMI_NON_TIMESTAMPED_OEM_SEL_RECORD_DATA;\r
\r
typedef struct {\r
- UINT8 ReserveId[2]; // Reservation ID, LS Byte First\r
- UINT8 SelRecID[2]; // Sel Record ID, LS Byte First\r
- UINT8 Offset; // Offset Into Record\r
- UINT8 BytesToRead; // Bytes to be Read, 0xFF for entire record\r
+ UINT8 ReserveId[2]; // Reservation ID, LS Byte First\r
+ UINT8 SelRecID[2]; // Sel Record ID, LS Byte First\r
+ UINT8 Offset; // Offset Into Record\r
+ UINT8 BytesToRead; // Bytes to be Read, 0xFF for entire record\r
} IPMI_GET_SEL_ENTRY_REQUEST;\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT16 NextSelRecordId; // Next SEL Record ID, LS Byte first\r
- IPMI_SEL_EVENT_RECORD_DATA RecordData;\r
+ UINT8 CompletionCode;\r
+ UINT16 NextSelRecordId; // Next SEL Record ID, LS Byte first\r
+ IPMI_SEL_EVENT_RECORD_DATA RecordData;\r
} IPMI_GET_SEL_ENTRY_RESPONSE;\r
\r
//\r
// Definitions for Add SEL Entry command\r
//\r
-#define IPMI_STORAGE_ADD_SEL_ENTRY 0x44\r
+#define IPMI_STORAGE_ADD_SEL_ENTRY 0x44\r
\r
//\r
// Constants and Structure definitions for "Add SEL Entry" command to follow here\r
//\r
typedef struct {\r
- IPMI_SEL_EVENT_RECORD_DATA RecordData;\r
+ IPMI_SEL_EVENT_RECORD_DATA RecordData;\r
} IPMI_ADD_SEL_ENTRY_REQUEST;\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT16 RecordId; // Record ID for added record, LS Byte first\r
+ UINT8 CompletionCode;\r
+ UINT16 RecordId; // Record ID for added record, LS Byte first\r
} IPMI_ADD_SEL_ENTRY_RESPONSE;\r
\r
//\r
// Definitions for Partial Add SEL Entry command\r
//\r
-#define IPMI_STORAGE_PARTIAL_ADD_SEL_ENTRY 0x45\r
+#define IPMI_STORAGE_PARTIAL_ADD_SEL_ENTRY 0x45\r
\r
//\r
// Constants and Structure definitions for "Partial Add SEL Entry" command to follow here\r
//\r
typedef struct {\r
- UINT16 ReservationId;\r
- UINT16 RecordId;\r
- UINT8 OffsetIntoRecord;\r
- UINT8 InProgress;\r
- UINT8 RecordData[0];\r
+ UINT16 ReservationId;\r
+ UINT16 RecordId;\r
+ UINT8 OffsetIntoRecord;\r
+ UINT8 InProgress;\r
+ UINT8 RecordData[0];\r
} IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST;\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT16 RecordId;\r
+ UINT8 CompletionCode;\r
+ UINT16 RecordId;\r
} IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE;\r
\r
//\r
// Constants and Structure definitions for "Delete SEL Entry" command to follow here\r
//\r
typedef struct {\r
- UINT8 ReserveId[2]; // Reservation ID, LS byte first\r
- UINT8 RecordToDelete[2]; // Record to Delete, LS Byte First\r
+ UINT8 ReserveId[2]; // Reservation ID, LS byte first\r
+ UINT8 RecordToDelete[2]; // Record to Delete, LS Byte First\r
} IPMI_DELETE_SEL_ENTRY_REQUEST;\r
\r
-#define IPMI_DELETE_SEL_ENTRY_RESPONSE_TYPE_UNSUPPORTED 0x80\r
-#define IPMI_DELETE_SEL_ENTRY_RESPONSE_ERASE_IN_PROGRESS 0x81\r
+#define IPMI_DELETE_SEL_ENTRY_RESPONSE_TYPE_UNSUPPORTED 0x80\r
+#define IPMI_DELETE_SEL_ENTRY_RESPONSE_ERASE_IN_PROGRESS 0x81\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT16 RecordId; // Record ID added. LS byte first\r
+ UINT8 CompletionCode;\r
+ UINT16 RecordId; // Record ID added. LS byte first\r
} IPMI_DELETE_SEL_ENTRY_RESPONSE;\r
\r
//\r
// Definitions for Clear SEL command\r
//\r
-#define IPMI_STORAGE_CLEAR_SEL 0x47\r
+#define IPMI_STORAGE_CLEAR_SEL 0x47\r
\r
//\r
// Constants and Structure definitions for "Clear SEL" command to follow here\r
//\r
-#define IPMI_CLEAR_SEL_REQUEST_C_CHAR_ASCII 0x43\r
-#define IPMI_CLEAR_SEL_REQUEST_L_CHAR_ASCII 0x4C\r
-#define IPMI_CLEAR_SEL_REQUEST_R_CHAR_ASCII 0x52\r
-#define IPMI_CLEAR_SEL_REQUEST_INITIALIZE_ERASE 0xAA\r
-#define IPMI_CLEAR_SEL_REQUEST_GET_ERASE_STATUS 0x00\r
+#define IPMI_CLEAR_SEL_REQUEST_C_CHAR_ASCII 0x43\r
+#define IPMI_CLEAR_SEL_REQUEST_L_CHAR_ASCII 0x4C\r
+#define IPMI_CLEAR_SEL_REQUEST_R_CHAR_ASCII 0x52\r
+#define IPMI_CLEAR_SEL_REQUEST_INITIALIZE_ERASE 0xAA\r
+#define IPMI_CLEAR_SEL_REQUEST_GET_ERASE_STATUS 0x00\r
\r
typedef struct {\r
- UINT8 Reserve[2]; // Reserve ID, LSB first\r
- UINT8 AscC; // Ascii for 'C' (0x43)\r
- UINT8 AscL; // Ascii for 'L' (0x4c)\r
- UINT8 AscR; // Ascii for 'R' (0x52)\r
- UINT8 Erase; // 0xAA, Initiate Erase, 0x00 Get Erase Status\r
+ UINT8 Reserve[2]; // Reserve ID, LSB first\r
+ UINT8 AscC; // Ascii for 'C' (0x43)\r
+ UINT8 AscL; // Ascii for 'L' (0x4c)\r
+ UINT8 AscR; // Ascii for 'R' (0x52)\r
+ UINT8 Erase; // 0xAA, Initiate Erase, 0x00 Get Erase Status\r
} IPMI_CLEAR_SEL_REQUEST;\r
\r
-#define IPMI_CLEAR_SEL_RESPONSE_ERASURE_IN_PROGRESS 0x00\r
-#define IPMI_CLEAR_SEL_RESPONSE_ERASURE_COMPLETED 0x01\r
+#define IPMI_CLEAR_SEL_RESPONSE_ERASURE_IN_PROGRESS 0x00\r
+#define IPMI_CLEAR_SEL_RESPONSE_ERASURE_COMPLETED 0x01\r
\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT8 ErasureProgress;\r
+ UINT8 CompletionCode;\r
+ UINT8 ErasureProgress;\r
} IPMI_CLEAR_SEL_RESPONSE;\r
\r
//\r
// Constants and Structure definitions for "Get SEL Time" command to follow here\r
//\r
typedef struct {\r
- UINT8 CompletionCode;\r
- UINT32 Timestamp; // Present Timestamp clock reading. LS byte first.\r
+ UINT8 CompletionCode;\r
+ UINT32 Timestamp; // Present Timestamp clock reading. LS byte first.\r
} IPMI_GET_SEL_TIME_RESPONSE;\r
\r
//\r
// Constants and Structure definitions for "Set SEL Time" command to follow here\r
//\r
typedef struct {\r
- UINT32 Timestamp;\r
+ UINT32 Timestamp;\r
} IPMI_SET_SEL_TIME_REQUEST;\r
\r
//\r
//\r
// Definitions for Get SEL Time UTC Offset command\r
//\r
-#define IPMI_STORAGE_GET_SEL_TIME_UTC_OFFSET 0x5C\r
+#define IPMI_STORAGE_GET_SEL_TIME_UTC_OFFSET 0x5C\r
\r
//\r
// Constants and Structure definitions for "Get SEL Time UTC Offset" command to follow here\r
//\r
typedef struct {\r
- UINT8 CompletionCode;\r
+ UINT8 CompletionCode;\r
//\r
// 16-bit, 2s-complement signed integer for the offset in minutes from UTC to SEL Time.\r
// LS-byte first. (ranges from -1440 to 1440)\r
//\r
- INT16 UtcOffset;\r
+ INT16 UtcOffset;\r
} IPMI_GET_SEL_TIME_UTC_OFFSET_RESPONSE;\r
\r
//\r
// Definitions for Set SEL Time UTC Offset command\r
//\r
-#define IPMI_STORAGE_SET_SEL_TIME_UTC_OFFSET 0x5D\r
+#define IPMI_STORAGE_SET_SEL_TIME_UTC_OFFSET 0x5D\r
\r
//\r
// Constants and Structure definitions for "Set SEL Time UTC Offset" command to follow here\r
//\r
\r
-#define IPMI_COMPLETE_SEL_RECORD 0xFF\r
+#define IPMI_COMPLETE_SEL_RECORD 0xFF\r
\r
-#define IPMI_SEL_SYSTEM_RECORD 0x02\r
-#define IPMI_SEL_OEM_TIME_STAMP_RECORD_START 0xC0\r
-#define IPMI_SEL_OEM_TIME_STAMP_RECORD_END 0xDF\r
-#define IPMI_SEL_OEM_NO_TIME_STAMP_RECORD_START 0xE0\r
-#define IPMI_SEL_OEM_NO_TIME_STAMP_RECORD_END 0xFF\r
+#define IPMI_SEL_SYSTEM_RECORD 0x02\r
+#define IPMI_SEL_OEM_TIME_STAMP_RECORD_START 0xC0\r
+#define IPMI_SEL_OEM_TIME_STAMP_RECORD_END 0xDF\r
+#define IPMI_SEL_OEM_NO_TIME_STAMP_RECORD_START 0xE0\r
+#define IPMI_SEL_OEM_NO_TIME_STAMP_RECORD_END 0xFF\r
\r
-#define IPMI_SEL_EVENT_DIR(EventDirType) (EventDirType >> 7)\r
-#define IPMI_SEL_EVENT_DIR_ASSERTION_EVENT 0x00\r
-#define IPMI_SEL_EVENT_DIR_DEASSERTION_EVENT 0x01\r
+#define IPMI_SEL_EVENT_DIR(EventDirType) (EventDirType >> 7)\r
+#define IPMI_SEL_EVENT_DIR_ASSERTION_EVENT 0x00\r
+#define IPMI_SEL_EVENT_DIR_DEASSERTION_EVENT 0x01\r
\r
-#define IPMI_SEL_EVENT_TYPE(EventDirType) (EventDirType & 0x7F)\r
+#define IPMI_SEL_EVENT_TYPE(EventDirType) (EventDirType & 0x7F)\r
//\r
// Event/Reading Type Code Ranges (Chapter 42)\r
//\r
-#define IPMI_SEL_EVENT_TYPE_UNSPECIFIED 0x00\r
-#define IPMI_SEL_EVENT_TYPE_THRESHOLD 0x01\r
-#define IPMI_SEL_EVENT_TYPE_GENERIC_START 0x02\r
-#define IPMI_SEL_EVENT_TYPE_GENERIC_END 0x0C\r
-#define IPMI_SEL_EVENT_TYPE_SENSOR_SPECIFIC 0x6F\r
-#define IPMI_SEL_EVENT_TYPE_OEM_START 0x70\r
-#define IPMI_SEL_EVENT_TYPE_OEM_END 0x7F\r
+#define IPMI_SEL_EVENT_TYPE_UNSPECIFIED 0x00\r
+#define IPMI_SEL_EVENT_TYPE_THRESHOLD 0x01\r
+#define IPMI_SEL_EVENT_TYPE_GENERIC_START 0x02\r
+#define IPMI_SEL_EVENT_TYPE_GENERIC_END 0x0C\r
+#define IPMI_SEL_EVENT_TYPE_SENSOR_SPECIFIC 0x6F\r
+#define IPMI_SEL_EVENT_TYPE_OEM_START 0x70\r
+#define IPMI_SEL_EVENT_TYPE_OEM_END 0x7F\r
\r
-#define SOFTWARE_ID_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId & 0xFF) >> 1)\r
+#define SOFTWARE_ID_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId & 0xFF) >> 1)\r
//\r
// System Software IDs definitions (Section 5.5)\r
//\r
-#define IPMI_SWID_BIOS_RANGE_START 0x00\r
-#define IPMI_SWID_BIOS_RANGE_END 0x0F\r
-#define IPMI_SWID_SMI_HANDLER_RANGE_START 0x10\r
-#define IPMI_SWID_SMI_HANDLER_RANGE_END 0x1F\r
-#define IPMI_SWID_SMS_RANGE_START 0x20\r
-#define IPMI_SWID_SMS_RANGE_END 0x2F\r
-#define IPMI_SWID_OEM_RANGE_START 0x30\r
-#define IPMI_SWID_OEM_RANGE_END 0x3F\r
-#define IPMI_SWID_REMOTE_CONSOLE_RANGE_START 0x40\r
-#define IPMI_SWID_REMOTE_CONSOLE_RANGE_END 0x46\r
-#define IPMI_SWID_TERMINAL_REMOTE_CONSOLE_ID 0x47\r
-\r
-#define SLAVE_ADDRESS_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId & 0xFF) >> 1)\r
-#define LUN_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId >> 8) & 0x03)\r
-#define CHANNEL_NUMBER_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId >> 12) & 0x0F)\r
-\r
-#define IPMI_EVM_REVISION 0x04\r
-#define IPMI_BIOS_ID 0x18\r
-#define IPMI_FORMAT_REV 0x00\r
-#define IPMI_FORMAT_REV1 0x01\r
-#define IPMI_SOFTWARE_ID 0x01\r
-#define IPMI_PLATFORM_VAL_ID 0x01\r
-#define IPMI_GENERATOR_ID(i,f) ((i << 1) | (f << 1) | IPMI_SOFTWARE_ID)\r
-\r
-#define IPMI_SENSOR_TYPE_EVENT_CODE_DISCRETE 0x6F\r
-\r
-#define IPMI_OEM_SPECIFIC_DATA 0x02\r
-#define IPMI_SENSOR_SPECIFIC_DATA 0x03\r
+#define IPMI_SWID_BIOS_RANGE_START 0x00\r
+#define IPMI_SWID_BIOS_RANGE_END 0x0F\r
+#define IPMI_SWID_SMI_HANDLER_RANGE_START 0x10\r
+#define IPMI_SWID_SMI_HANDLER_RANGE_END 0x1F\r
+#define IPMI_SWID_SMS_RANGE_START 0x20\r
+#define IPMI_SWID_SMS_RANGE_END 0x2F\r
+#define IPMI_SWID_OEM_RANGE_START 0x30\r
+#define IPMI_SWID_OEM_RANGE_END 0x3F\r
+#define IPMI_SWID_REMOTE_CONSOLE_RANGE_START 0x40\r
+#define IPMI_SWID_REMOTE_CONSOLE_RANGE_END 0x46\r
+#define IPMI_SWID_TERMINAL_REMOTE_CONSOLE_ID 0x47\r
+\r
+#define SLAVE_ADDRESS_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId & 0xFF) >> 1)\r
+#define LUN_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId >> 8) & 0x03)\r
+#define CHANNEL_NUMBER_FROM_GENERATOR_ID(GeneratorId) ((GeneratorId >> 12) & 0x0F)\r
+\r
+#define IPMI_EVM_REVISION 0x04\r
+#define IPMI_BIOS_ID 0x18\r
+#define IPMI_FORMAT_REV 0x00\r
+#define IPMI_FORMAT_REV1 0x01\r
+#define IPMI_SOFTWARE_ID 0x01\r
+#define IPMI_PLATFORM_VAL_ID 0x01\r
+#define IPMI_GENERATOR_ID(i, f) ((i << 1) | (f << 1) | IPMI_SOFTWARE_ID)\r
+\r
+#define IPMI_SENSOR_TYPE_EVENT_CODE_DISCRETE 0x6F\r
+\r
+#define IPMI_OEM_SPECIFIC_DATA 0x02\r
+#define IPMI_SENSOR_SPECIFIC_DATA 0x03\r
\r
#pragma pack()\r
#endif\r