/** @file
IPMI Command - NetFnChassis.
Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#include
#include
#include
EFI_STATUS
EFIAPI
IpmiGetChassisCapabilities (
OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE *GetChassisCapabilitiesResponse
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*GetChassisCapabilitiesResponse);
Status = IpmiSubmitCommand (
IPMI_NETFN_CHASSIS,
IPMI_CHASSIS_GET_CAPABILITIES,
NULL,
0,
(VOID *)GetChassisCapabilitiesResponse,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiGetChassisStatus (
OUT IPMI_GET_CHASSIS_STATUS_RESPONSE *GetChassisStatusResponse
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*GetChassisStatusResponse);
Status = IpmiSubmitCommand (
IPMI_NETFN_CHASSIS,
IPMI_CHASSIS_GET_STATUS,
NULL,
0,
(VOID *)GetChassisStatusResponse,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiChassisControl (
IN IPMI_CHASSIS_CONTROL_REQUEST *ChassisControlRequest,
OUT UINT8 *CompletionCode
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*CompletionCode);
Status = IpmiSubmitCommand (
IPMI_NETFN_CHASSIS,
IPMI_CHASSIS_CONTROL,
(VOID *)ChassisControlRequest,
sizeof(*ChassisControlRequest),
(VOID *)CompletionCode,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiSetPowerRestorePolicy (
IN IPMI_SET_POWER_RESTORE_POLICY_REQUEST *ChassisControlRequest,
OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE *ChassisControlResponse
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*ChassisControlResponse);
Status = IpmiSubmitCommand (
IPMI_NETFN_CHASSIS,
IPMI_CHASSIS_SET_POWER_RESTORE_POLICY,
(VOID *)ChassisControlRequest,
sizeof(*ChassisControlRequest),
(VOID *)ChassisControlResponse,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiSetSystemBootOptions (
IN IPMI_SET_BOOT_OPTIONS_REQUEST *BootOptionsRequest,
OUT IPMI_SET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*BootOptionsResponse);
Status = IpmiSubmitCommand (
IPMI_NETFN_CHASSIS,
IPMI_CHASSIS_SET_SYSTEM_BOOT_OPTIONS,
(VOID *)BootOptionsRequest,
sizeof(*BootOptionsRequest),
(VOID *)BootOptionsResponse,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiGetSystemBootOptions (
IN IPMI_GET_BOOT_OPTIONS_REQUEST *BootOptionsRequest,
OUT IPMI_GET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*BootOptionsResponse);
Status = IpmiSubmitCommand (
IPMI_NETFN_CHASSIS,
IPMI_CHASSIS_GET_SYSTEM_BOOT_OPTIONS,
(VOID *)BootOptionsRequest,
sizeof(*BootOptionsRequest),
(VOID *)BootOptionsResponse,
&DataSize
);
return Status;
}