]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/IpmiNetFnChassis.h
MdePkg: Apply uncrustify changes
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / IpmiNetFnChassis.h
index 7bf6cf31010ef83dcd501194cf7bfb65e592afeb..e3b8a6210513d604f229bfdf476e64c2f01c29a4 100644 (file)
@@ -7,14 +7,8 @@
   See IPMI specification, Appendix G, Command Assignments\r
   and Appendix H, Sub-function Assignments.\r
 \r
-  Copyright (c) 1999 - 2015, Intel Corporation. All rights reserved.<BR>\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  Copyright (c) 1999 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 **/\r
 \r
 #ifndef _IPMI_NET_FN_CHASSIS_H_\r
 //\r
 //  Constants and Structure definitions for "Get Chassis Capabilities" command to follow here\r
 //\r
+typedef struct {\r
+  UINT8    CompletionCode;\r
+  UINT8    CapabilitiesFlags;\r
+  UINT8    ChassisFruInfoDeviceAddress;\r
+  UINT8    ChassisSDRDeviceAddress;\r
+  UINT8    ChassisSELDeviceAddress;\r
+  UINT8    ChassisSystemManagementDeviceAddress;\r
+  UINT8    ChassisBridgeDeviceAddress;\r
+} IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE;\r
 \r
 //\r
 //  Definitions for Get Chassis Status command\r
 //\r
 //  Constants and Structure definitions for "Get Chassis Status" command to follow here\r
 //\r
+typedef struct {\r
+  UINT8    CompletionCode;\r
+  UINT8    CurrentPowerState;\r
+  UINT8    LastPowerEvent;\r
+  UINT8    MiscChassisState;\r
+  UINT8    FrontPanelButtonCapabilities;\r
+} IPMI_GET_CHASSIS_STATUS_RESPONSE;\r
 \r
 //\r
 //  Definitions for Chassis Control command\r
 //\r
-#define IPMI_CHASSIS_CONTROL 0x02\r
+#define IPMI_CHASSIS_CONTROL  0x02\r
 \r
 //\r
 //  Constants and Structure definitions for "Chassis Control" command to follow here\r
 //\r
+typedef union {\r
+  struct {\r
+    UINT8    ChassisControl : 4;\r
+    UINT8    Reserved       : 4;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL;\r
+\r
+typedef struct {\r
+  IPMI_CHASSIS_CONTROL_CHASSIS_CONTROL    ChassisControl;\r
+} IPMI_CHASSIS_CONTROL_REQUEST;\r
 \r
 //\r
 //  Definitions for Chassis Reset command\r
 //\r
-#define IPMI_CHASSIS_RESET 0x03\r
+#define IPMI_CHASSIS_RESET  0x03\r
 \r
 //\r
 //  Constants and Structure definitions for "Chassis Reset" command to follow here\r
 //\r
 //  Constants and Structure definitions for "Set Power Restore Policy" command to follow here\r
 //\r
+typedef union {\r
+  struct {\r
+    UINT8    PowerRestorePolicy : 3;\r
+    UINT8    Reserved           : 5;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_POWER_RESTORE_POLICY;\r
+\r
+typedef struct {\r
+  IPMI_POWER_RESTORE_POLICY    PowerRestorePolicy;\r
+} IPMI_SET_POWER_RESTORE_POLICY_REQUEST;\r
+\r
+typedef struct {\r
+  UINT8    CompletionCode;\r
+  UINT8    PowerRestorePolicySupport;\r
+} IPMI_SET_POWER_RESTORE_POLICY_RESPONSE;\r
 \r
 //\r
 //  Definitions for Get System Restart Cause command\r
 //\r
 //  Constants and Structure definitions for "Get System Restart Cause" command to follow here\r
 //\r
-typedef enum {\r
-  Unknown,\r
-  ChassisControlCommand,\r
-  ResetViaPushButton,\r
-  PowerupViaPowerButton,\r
-  WatchdogExpiration,\r
-  Oem,\r
-  AutoPowerOnAlwaysRestore,\r
-  AutoPowerOnRestorePrevious,\r
-  ResetViaPef,\r
-  PowerCycleViaPef,\r
-  SoftReset,\r
-  PowerUpViaRtc\r
+#define IPMI_SYSTEM_RESTART_CAUSE_UNKNOWN                    0x0\r
+#define IPMI_SYSTEM_RESTART_CAUSE_CHASSIS_CONTROL_COMMAND    0x1\r
+#define IPMI_SYSTEM_RESTART_CAUSE_PUSHBUTTON_RESET           0x2\r
+#define IPMI_SYSTEM_RESTART_CAUSE_PUSHBUTTON_POWERUP         0x3\r
+#define IPMI_SYSTEM_RESTART_CAUSE_WATCHDOG_EXPIRE            0x4\r
+#define IPMI_SYSTEM_RESTART_CAUSE_OEM                        0x5\r
+#define IPMI_SYSTEM_RESTART_CAUSE_AUTO_POWER_ALWAYS_RESTORE  0x6\r
+#define IPMI_SYSTEM_RESTART_CAUSE_AUTO_POWER_RESTORE_PREV    0x7\r
+#define IPMI_SYSTEM_RESTART_CAUSE_PEF_RESET                  0x8\r
+#define IPMI_SYSTEM_RESTART_CAUSE_PEF_POWERCYCLE             0x9\r
+#define IPMI_SYSTEM_RESTART_CAUSE_SOFT_RESET                 0xA\r
+#define IPMI_SYSTEM_RESTART_CAUSE_RTC_POWERUP                0xB\r
+\r
+typedef union {\r
+  struct {\r
+    UINT8    Cause    : 4;\r
+    UINT8    Reserved : 4;\r
+  } Bits;\r
+  UINT8    Uint8;\r
 } IPMI_SYSTEM_RESTART_CAUSE;\r
 \r
 typedef struct {\r
-  UINT8   Cause:4;\r
-  UINT8   Reserved:4;\r
-  UINT8   ChannelNumber;\r
-} GET_SYSTEM_RESTART_CAUSE_RESPONSE;\r
+  UINT8                        CompletionCode;\r
+  IPMI_SYSTEM_RESTART_CAUSE    RestartCause;\r
+  UINT8                        ChannelNumber;\r
+} IPMI_GET_SYSTEM_RESTART_CAUSE_RESPONSE;\r
 \r
 //\r
 //  Definitions for Set System BOOT options command\r
 //\r
-#define IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONS 0x08\r
+#define IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONS  0x08\r
 \r
 //\r
 //  Constants and Structure definitions for "Set System boot options" command to follow here\r
 //\r
+typedef union {\r
+  struct {\r
+    UINT8    ParameterSelector    : 7;\r
+    UINT8    MarkParameterInvalid : 1;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID;\r
+\r
 typedef struct {\r
-  UINT8    ParameterSelector:7;\r
-  UINT8    MarkParameterInvalid:1;\r
-  UINT8    ParameterData[1];\r
+  IPMI_SET_BOOT_OPTIONS_PARAMETER_VALID    ParameterValid;\r
+  UINT8                                    ParameterData[0];\r
 } IPMI_SET_BOOT_OPTIONS_REQUEST;\r
 \r
 typedef struct {\r
-  UINT8   CompletionCode:8;\r
+  UINT8    CompletionCode : 8;\r
 } IPMI_SET_BOOT_OPTIONS_RESPONSE;\r
 \r
 //\r
-//  Definitions for Get System BOOT options command\r
+//  Definitions for Get System Boot options command\r
 //\r
-#define IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONS 0x09\r
+#define IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONS  0x09\r
 \r
 //\r
 //  Constants and Structure definitions for "Get System boot options" command to follow here\r
 //\r
+typedef union {\r
+  struct {\r
+    UINT8    ParameterSelector : 7;\r
+    UINT8    Reserved          : 1;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR;\r
+\r
+typedef struct {\r
+  IPMI_GET_BOOT_OPTIONS_PARAMETER_SELECTOR    ParameterSelector;\r
+  UINT8                                       SetSelector;\r
+  UINT8                                       BlockSelector;\r
+} IPMI_GET_BOOT_OPTIONS_REQUEST;\r
+\r
 typedef struct {\r
-  UINT8 Parameter;\r
-  UINT8 Valid;\r
-  UINT8 Data1;\r
-  UINT8 Data2;\r
-  UINT8 Data3;\r
-  UINT8 Data4;\r
-  UINT8 Data5;\r
+  UINT8    Parameter;\r
+  UINT8    Valid;\r
+  UINT8    Data1;\r
+  UINT8    Data2;\r
+  UINT8    Data3;\r
+  UINT8    Data4;\r
+  UINT8    Data5;\r
 } IPMI_GET_THE_SYSTEM_BOOT_OPTIONS;\r
 \r
 typedef struct {\r
-  UINT8   ParameterVersion;\r
-  UINT8   ParameterValid;\r
-  UINT8   ChannelNumber;\r
-  UINT32  SessionId;\r
-  UINT32  TimeStamp;\r
-  UINT8   Reserved[3];\r
+  UINT8     ParameterVersion;\r
+  UINT8     ParameterValid;\r
+  UINT8     ChannelNumber;\r
+  UINT32    SessionId;\r
+  UINT32    TimeStamp;\r
+  UINT8     Reserved[3];\r
 } IPMI_BOOT_INITIATOR;\r
 \r
-typedef struct {\r
-  UINT8    ParameterSelector;\r
-  UINT8    SetSelector;\r
-  UINT8    BlockSelector;\r
-} IPMI_GET_BOOT_OPTIONS_REQUEST;\r
+//\r
+// Definitions for boot option parameter selector\r
+//\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SET_IN_PROGRESS             0x0\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SERVICE_PARTITION_SELECTOR  0x1\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_SERVICE_PARTITION_SCAN      0x2\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_SELECTOR_BMC_BOOT_FLAG               0x3\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INFO_ACK                        0x4\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_FLAGS                           0x5\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INITIATOR_INFO                  0x6\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_BOOT_INITIATOR_MAILBOX               0x7\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_OEM_BEGIN                            0x60\r
+#define IPMI_BOOT_OPTIONS_PARAMETER_OEM_END                              0x7F\r
 \r
 //\r
 // Response Parameters for IPMI Get Boot Options\r
 //\r
-typedef struct {\r
-  UINT8   SetInProgress: 2;\r
-  UINT8   Reserved: 6;\r
+typedef union {\r
+  struct {\r
+    UINT8    SetInProgress : 2;\r
+    UINT8    Reserved      : 6;\r
+  } Bits;\r
+  UINT8    Uint8;\r
 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0;\r
 \r
 typedef struct {\r
-  UINT8   ServicePartitionSelector;\r
+  UINT8    ServicePartitionSelector;\r
 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1;\r
 \r
-typedef struct {\r
-  UINT8   ServicePartitionDiscovered:1;\r
-  UINT8   ServicePartitionScanRequest:1;\r
-  UINT8   Reserved: 5;\r
+typedef union {\r
+  struct {\r
+    UINT8    ServicePartitionDiscovered  : 1;\r
+    UINT8    ServicePartitionScanRequest : 1;\r
+    UINT8    Reserved                    : 6;\r
+  } Bits;\r
+  UINT8    Uint8;\r
 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2;\r
 \r
-typedef struct {\r
-  UINT8   BmcBootFlagValid: 5;\r
-  UINT8   Reserved: 3;\r
+typedef union {\r
+  struct {\r
+    UINT8    BmcBootFlagValid : 5;\r
+    UINT8    Reserved         : 3;\r
+  } Bits;\r
+  UINT8    Uint8;\r
 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3;\r
 \r
 typedef struct {\r
-  UINT8   WriteMask;\r
-  UINT8   BootInitiatorAcknowledgeData;\r
+  UINT8    WriteMask;\r
+  UINT8    BootInitiatorAcknowledgeData;\r
 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4;\r
 \r
-#define BOOT_OPTION_HANDLED_BY_BIOS 0x01\r
+//\r
+//  Definitions for the 'Boot device selector' field of Boot Option Parameters #5\r
+//\r
+#define IPMI_BOOT_DEVICE_SELECTOR_NO_OVERRIDE           0x0\r
+#define IPMI_BOOT_DEVICE_SELECTOR_PXE                   0x1\r
+#define IPMI_BOOT_DEVICE_SELECTOR_HARDDRIVE             0x2\r
+#define IPMI_BOOT_DEVICE_SELECTOR_HARDDRIVE_SAFE_MODE   0x3\r
+#define IPMI_BOOT_DEVICE_SELECTOR_DIAGNOSTIC_PARTITION  0x4\r
+#define IPMI_BOOT_DEVICE_SELECTOR_CD_DVD                0x5\r
+#define IPMI_BOOT_DEVICE_SELECTOR_BIOS_SETUP            0x6\r
+#define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_FLOPPY         0x7\r
+#define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_CD_DVD         0x8\r
+#define IPMI_BOOT_DEVICE_SELECTOR_PRIMARY_REMOTE_MEDIA  0x9\r
+#define IPMI_BOOT_DEVICE_SELECTOR_REMOTE_HARDDRIVE      0xB\r
+#define IPMI_BOOT_DEVICE_SELECTOR_FLOPPY                0xF\r
+\r
+#define BOOT_OPTION_HANDLED_BY_BIOS  0x01\r
+\r
+//\r
+//  Constant definitions for the 'BIOS Mux Control Override' field of Boot Option Parameters #5\r
+//\r
+#define BIOS_MUX_CONTROL_OVERRIDE_RECOMMEND_SETTING  0x00\r
+#define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_BMC       0x01\r
+#define BIOS_MUX_CONTROL_OVERRIDE_FORCE_TO_SYSTEM    0x02\r
+\r
+typedef union {\r
+  struct {\r
+    UINT8    Reserved          : 5;\r
+    UINT8    BiosBootType      : 1;\r
+    UINT8    PersistentOptions : 1;\r
+    UINT8    BootFlagValid     : 1;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1;\r
+\r
+typedef union {\r
+  struct {\r
+    UINT8    LockReset          : 1;\r
+    UINT8    ScreenBlank        : 1;\r
+    UINT8    BootDeviceSelector : 4;\r
+    UINT8    LockKeyboard       : 1;\r
+    UINT8    CmosClear          : 1;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2;\r
+\r
+typedef union {\r
+  struct {\r
+    UINT8    ConsoleRedirection     : 2;\r
+    UINT8    LockSleep              : 1;\r
+    UINT8    UserPasswordBypass     : 1;\r
+    UINT8    ForceProgressEventTrap : 1;\r
+    UINT8    BiosVerbosity          : 2;\r
+    UINT8    LockPower              : 1;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3;\r
+\r
+typedef union {\r
+  struct {\r
+    UINT8    BiosMuxControlOverride : 3;\r
+    UINT8    BiosSharedModeOverride : 1;\r
+    UINT8    Reserved               : 4;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4;\r
+\r
+typedef union {\r
+  struct {\r
+    UINT8    DeviceInstanceSelector : 5;\r
+    UINT8    Reserved               : 3;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5;\r
 \r
 typedef struct {\r
-  //\r
-  // Data 1\r
-  //\r
-  UINT8   Reserved0:6;\r
-  UINT8   PersistentOptions:1;\r
-  UINT8   BootFlagValid:1;\r
-  //\r
-  // Data 2\r
-  //\r
-  UINT8   LockReset:1;\r
-  UINT8   ScreenBlank:1;\r
-  UINT8   BootDeviceSelector:4;\r
-  UINT8   LockKeyboard:1;\r
-  UINT8   CmosClear:1;\r
-  //\r
-  //\r
-  // Data 3\r
-  UINT8   ConsoleRedirection:2;\r
-  UINT8   LockSleep:1;\r
-  UINT8   UserPasswordBypass:1;\r
-  UINT8   ForceProgressEventTrap:1;\r
-  UINT8   BiosVerbosity:2;\r
-  UINT8   LockPower:1;\r
-  //\r
-  // Data 4\r
-  //\r
-  UINT8   BiosMuxControlOverride:2;\r
-  UINT8   BiosSharedModeOverride:1;\r
-  UINT8   Reserved1:4;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_1    Data1;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_2    Data2;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_3    Data3;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_4    Data4;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5_DATA_5    Data5;\r
 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5;\r
 \r
+typedef union {\r
+  struct {\r
+    UINT8    ChannelNumber : 4;\r
+    UINT8    Reserved      : 4;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_BOOT_OPTIONS_CHANNEL_NUMBER;\r
+\r
 typedef struct {\r
-  UINT8   ChannelNumber:4;\r
-  UINT8   Reserved:4;\r
-  UINT8   SessionId[4];\r
-  UINT8   BootInfoTimeStamp[4];\r
+  IPMI_BOOT_OPTIONS_CHANNEL_NUMBER    ChannelNumber;\r
+  UINT8                               SessionId[4];\r
+  UINT8                               BootInfoTimeStamp[4];\r
 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6;\r
 \r
 typedef struct {\r
-  UINT8   SetSelector;\r
-  UINT8   BlockData[16];\r
+  UINT8    SetSelector;\r
+  UINT8    BlockData[16];\r
 } IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7;\r
 \r
 typedef union {\r
-  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0   Parm0;\r
-  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1   Parm1;\r
-  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2   Parm2;\r
-  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3   Parm3;\r
-  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4   Parm4;\r
-  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5   Parm5;\r
-  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6   Parm6;\r
-  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7   Parm7;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_0    Parm0;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_1    Parm1;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_2    Parm2;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_3    Parm3;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_4    Parm4;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_5    Parm5;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_6    Parm6;\r
+  IPMI_BOOT_OPTIONS_RESPONSE_PARAMETER_7    Parm7;\r
 } IPMI_BOOT_OPTIONS_PARAMETERS;\r
 \r
+typedef union {\r
+  struct {\r
+    UINT8    ParameterVersion : 4;\r
+    UINT8    Reserved         : 4;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION;\r
+\r
+typedef union {\r
+  struct {\r
+    UINT8    ParameterSelector : 7;\r
+    UINT8    ParameterValid    : 1;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID;\r
+\r
 typedef struct {\r
-  UINT8    ParameterVersion:4;\r
-  UINT8    Reserved:4;\r
-  UINT8    ParameterSelector:7;\r
-  UINT8    ParameterValid:1;\r
-  UINT8    ParameterData[1];\r
+  UINT8                                      CompletionCode;\r
+  IPMI_GET_BOOT_OPTIONS_PARAMETER_VERSION    ParameterVersion;\r
+  IPMI_GET_BOOT_OPTIONS_PARAMETER_VALID      ParameterValid;\r
+  UINT8                                      ParameterData[0];\r
 } IPMI_GET_BOOT_OPTIONS_RESPONSE;\r
 \r
 //\r
 //  Definitions for Set front panel button enables command\r
 //\r
-#define IPMI_CHASSIS_SET_FP_BUTTON_ENABLES 0x0A\r
-\r
-typedef struct {\r
-  UINT8    DisablePoweroffButton:1;\r
-  UINT8    DisableResetButton:1;\r
-  UINT8    DisableDiagnosticInterruptButton:1;\r
-  UINT8    DisableStandbyButton:1;\r
-  UINT8    Reserved:4;\r
-} IPMI_SET_FRONT_PANEL_BUTTON_ENABLES_REQUEST;\r
+#define IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES  0x0A\r
 \r
 //\r
 //  Constants and Structure definitions for "Set front panel button enables" command to follow here\r
 //\r
+typedef union {\r
+  struct {\r
+    UINT8    DisablePoweroffButton            : 1;\r
+    UINT8    DisableResetButton               : 1;\r
+    UINT8    DisableDiagnosticInterruptButton : 1;\r
+    UINT8    DisableStandbyButton             : 1;\r
+    UINT8    Reserved                         : 4;\r
+  } Bits;\r
+  UINT8    Uint8;\r
+} IPMI_FRONT_PANEL_BUTTON_ENABLES;\r
+\r
+typedef struct {\r
+  IPMI_FRONT_PANEL_BUTTON_ENABLES    FrontPanelButtonEnables;\r
+} IPMI_CHASSIS_SET_FRONT_PANEL_BUTTON_ENABLES_REQUEST;\r
 \r
 //\r
 //  Definitions for Set Power Cycle Interval command\r
 //\r
-#define IPMI_CHASSIS_SET_POWER_CYCLE_INTERVALS 0x0B\r
+#define IPMI_CHASSIS_SET_POWER_CYCLE_INTERVALS  0x0B\r
 \r
 //\r
 //  Constants and Structure definitions for "Set Power Cycle Interval" command to follow here\r
@@ -295,7 +453,7 @@ typedef struct {
 //\r
 //  Definitions for Get POH Counter command\r
 //\r
-#define IPMI_CHASSIS_GET_POH_COUNTER 0x0F\r
+#define IPMI_CHASSIS_GET_POH_COUNTER  0x0F\r
 \r
 //\r
 //  Constants and Structure definitions for "Get POH Counter" command to follow here\r