diff options
| author | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
|---|---|---|
| committer | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
| commit | 7e2ccccace24636f29ddc210b94606abd4c7e42b (patch) | |
| tree | 545d43ea12671048956cafeb12303e84d601e571 /MdeModulePkg/Include/Library/IpmiCommandLib.h | |
| parent | 27b044605cd5f6b33a3d231576003850b3fe305b (diff) | |
| download | edk2-trunk.tar.xz | |
Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305btrunk
Diffstat (limited to 'MdeModulePkg/Include/Library/IpmiCommandLib.h')
| -rw-r--r-- | MdeModulePkg/Include/Library/IpmiCommandLib.h | 1400 |
1 files changed, 700 insertions, 700 deletions
diff --git a/MdeModulePkg/Include/Library/IpmiCommandLib.h b/MdeModulePkg/Include/Library/IpmiCommandLib.h index 06bea6131a..a872005a6a 100644 --- a/MdeModulePkg/Include/Library/IpmiCommandLib.h +++ b/MdeModulePkg/Include/Library/IpmiCommandLib.h @@ -1,700 +1,700 @@ -/** @file
- This library abstract how to send/receive IPMI command.
-
-Copyright (c) 2018-2021, Intel Corporation. All rights reserved.<BR>
-Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
-
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef IPMI_COMMAND_LIB_H_
-#define IPMI_COMMAND_LIB_H_
-
-#include <Uefi.h>
-#include <IndustryStandard/Ipmi.h>
-
-//
-// IPMI NetFnApp
-//
-
-/**
- This function gets the IPMI Device ID.
-
- @param[out] DeviceId Get device ID response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetDeviceId (
- OUT IPMI_GET_DEVICE_ID_RESPONSE *DeviceId
- );
-
-/**
- This function gets the self-test result.
-
- @param[out] SelfTestResult Self test command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSelfTestResult (
- OUT IPMI_SELF_TEST_RESULT_RESPONSE *SelfTestResult
- );
-
-/**
- This function resets watchdog timer.
-
- @param[out] CompletionCode The command completion code.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiResetWatchdogTimer (
- OUT UINT8 *CompletionCode
- );
-
-/**
- This function sets watchdog timer.
-
- @param[in] SetWatchdogTimer Set watchdog timer request.
- @param[out] CompletionCode The command completion code.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiSetWatchdogTimer (
- IN IPMI_SET_WATCHDOG_TIMER_REQUEST *SetWatchdogTimer,
- OUT UINT8 *CompletionCode
- );
-
-/**
- This function gets watchdog timer.
-
- @param[out] GetWatchdogTimer Get watchdog timer response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetWatchdogTimer (
- OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE *GetWatchdogTimer
- );
-
-/**
- This function sets BMC global enables.
-
- @param[in] SetBmcGlobalEnables Set BMC global enables command request.
- @param[out] CompletionCode The command completion code.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiSetBmcGlobalEnables (
- IN IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST *SetBmcGlobalEnables,
- OUT UINT8 *CompletionCode
- );
-
-/**
- This function gets BMC global enables.
-
- @param[out] GetBmcGlobalEnables Get BMC global enables command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetBmcGlobalEnables (
- OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE *GetBmcGlobalEnables
- );
-
-/**
- This function clears message flag.
-
- @param[in] ClearMessageFlagsRequest Clear message flags command request.
- @param[out] CompletionCode The command completion code.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiClearMessageFlags (
- IN IPMI_CLEAR_MESSAGE_FLAGS_REQUEST *ClearMessageFlagsRequest,
- OUT UINT8 *CompletionCode
- );
-
-/**
- This function gets message flag.
-
- @param[out] GetMessageFlagsResponse Get message flags response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetMessageFlags (
- OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE *GetMessageFlagsResponse
- );
-
-/**
- This function gets message.
-
- @param[out] GetMessageResponse Get message command response.
- @param[in,out] GetMessageResponseSize The size of get message response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetMessage (
- OUT IPMI_GET_MESSAGE_RESPONSE *GetMessageResponse,
- IN OUT UINT32 *GetMessageResponseSize
- );
-
-/**
- This function sends message.
-
- @param[in] SendMessageRequest The send message command request.
- @param[in] SendMessageRequestSize The size of the send message command request.
- @param[out] SendMessageResponse The send message command response.
- @param[in,out] SendMessageResponseSize The size of the send message command response.
- When input, the expected size of response.
- When output, the actual size of response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiSendMessage (
- IN IPMI_SEND_MESSAGE_REQUEST *SendMessageRequest,
- IN UINT32 SendMessageRequestSize,
- OUT IPMI_SEND_MESSAGE_RESPONSE *SendMessageResponse,
- IN OUT UINT32 *SendMessageResponseSize
- );
-
-/**
- This function gets the system UUID.
-
- @param[out] SystemGuid The pointer to retrieve system UUID.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Others Other errors.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSystemUuid (
- OUT EFI_GUID *SystemGuid
- );
-
-/**
- This function gets the channel information.
-
- @param[in] GetChannelInfoRequest The get channel information request.
- @param[in] GetChannelInfoResponse The get channel information response.
- @param[in,out] GetChannelInfoResponseSize When input, the expected size of response.
- When output, the exact size of the returned
- response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetChannelInfo (
- IN IPMI_GET_CHANNEL_INFO_REQUEST *GetChannelInfoRequest,
- OUT IPMI_GET_CHANNEL_INFO_RESPONSE *GetChannelInfoResponse,
- OUT UINT32 *GetChannelInfoResponseSize
- );
-
-/**
- This function gets system interface capability
-
- @param[in] InterfaceCapabilityRequest Get system interface capability request.
- @param[out] InterfaceCapabilityResponse The response of system interface capability.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSystemInterfaceCapability (
- IN IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_REQUEST *InterfaceCapabilityRequest,
- OUT IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_RESPONSE *InterfaceCapabilityResponse
- );
-
-//
-// IPMI NetFnTransport
-//
-
-/**
- This function activates SOL
-
- @param[in] SolActivatingRequest SOL activating request.
- @param[out] CompletionCode The command completion code.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiSolActivating (
- IN IPMI_SOL_ACTIVATING_REQUEST *SolActivatingRequest,
- OUT UINT8 *CompletionCode
- );
-
-/**
- This function sets SOL configuration parameters.
-
- @param[in] SetConfigurationParametersRequest Set SOL configuration parameters
- command request.
- @param[in] SetConfigurationParametersRequestSize Size of the set SOL configuration
- parameters command request.
- @param[out] CompletionCode The command completion code.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiSetSolConfigurationParameters (
- IN IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST *SetConfigurationParametersRequest,
- IN UINT32 SetConfigurationParametersRequestSize,
- OUT UINT8 *CompletionCode
- );
-
-/**
- This function gets SOL configuration parameters.
-
- @param[in] GetConfigurationParametersRequest Get SOL configuration parameters
- command request.
- @param[out] GetConfigurationParametersResponse Get SOL configuration parameters
- response.
- @param[in,out] GetConfigurationParametersResponseSize When input, the size of the expected
- response.
- When output, the exact size of
- expect response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSolConfigurationParameters (
- IN IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST *GetConfigurationParametersRequest,
- OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE *GetConfigurationParametersResponse,
- IN OUT UINT32 *GetConfigurationParametersResponseSize
- );
-
-/**
- This function gets the LAN configuration parameter.
-
- @param[in] GetLanConfigurationParametersRequest Get LAN configuration parameters command request.
- @param[in] GetLanConfigurationParametersResponse The response of the get LAN configuration parameters.
- @param[in,out] GetLanConfigurationParametersSize When input, the expected size of response data.
- When out, the exact size of response data.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-
-EFI_STATUS
-EFIAPI
-IpmiGetLanConfigurationParameters (
- IN IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST *GetLanConfigurationParametersRequest,
- OUT IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE *GetLanConfigurationParametersResponse,
- IN OUT UINT32 *GetLanConfigurationParametersSize
- );
-
-//
-// IPMI NetFnChassis
-//
-
-/**
- This function gets chassis capability.
-
- @param[out] GetChassisCapabilitiesResponse Gets chassis capability command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetChassisCapabilities (
- OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE *GetChassisCapabilitiesResponse
- );
-
-/**
- This function gets chassis status.
-
- @param[out] GetChassisCapabilitiesResponse The get chassis status command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetChassisStatus (
- OUT IPMI_GET_CHASSIS_STATUS_RESPONSE *GetChassisStatusResponse
- );
-
-/**
- This function sends chassis control request.
-
- @param[in] ChassisControlRequest The chassis control request.
- @param[out] CompletionCode The command completion code.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiChassisControl (
- IN IPMI_CHASSIS_CONTROL_REQUEST *ChassisControlRequest,
- OUT UINT8 *CompletionCode
- );
-
-/**
- This function sets power restore policy.
-
- @param[in] SetPowerRestireRequest The set power restore policy control
- command request.
- @param[out] SetPowerRestireResponse The response of power restore policy.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiSetPowerRestorePolicy (
- IN IPMI_SET_POWER_RESTORE_POLICY_REQUEST *SetPowerRestireRequest,
- OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE *SetPowerRestireResponse
- );
-
-//
-// IPMI NetFnStorage
-//
-
-/**
- This function sets system boot option.
-
- @param[in] BootOptionsRequest Set system boot option request.
- @param[out] BootOptionsResponse The response of set system boot
- option request.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiSetSystemBootOptions (
- IN IPMI_SET_BOOT_OPTIONS_REQUEST *BootOptionsRequest,
- OUT IPMI_SET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse
- );
-
-/**
- This function gets system boot option.
-
- @param[in] BootOptionsRequest Get system boot option request.
- @param[out] BootOptionsResponse The response of get system boot
- option request.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSystemBootOptions (
- IN IPMI_GET_BOOT_OPTIONS_REQUEST *BootOptionsRequest,
- OUT IPMI_GET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse
- );
-
-/**
- This function gets FRU inventory area info.
-
- @param[in] GetFruInventoryAreaInfoRequest Get FRU inventory area command request.
- @param[out] GetFruInventoryAreaInfoResponse get FRU inventory area command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetFruInventoryAreaInfo (
- IN IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST *GetFruInventoryAreaInfoRequest,
- OUT IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE *GetFruInventoryAreaInfoResponse
- );
-
-/**
- This function reads FRU data.
-
- @param[in] ReadFruDataRequest Read FRU data command request.
- @param[out] ReadFruDataResponse Read FRU data command response.
- @param[in,out] ReadFruDataResponseSize Size of the read FRU data response.
- When input, the expected size of response data.
- When out, the exact size of response data.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiReadFruData (
- IN IPMI_READ_FRU_DATA_REQUEST *ReadFruDataRequest,
- OUT IPMI_READ_FRU_DATA_RESPONSE *ReadFruDataResponse,
- IN OUT UINT32 *ReadFruDataResponseSize
- );
-
-/**
- This function gets chassis capability.
-
- @param[in] WriteFruDataRequest Write FRU data command request.
- @param[in] WriteFruDataRequestSize Size of the write FRU data command request.
- @param[out] WriteFruDataResponse Write FRU data response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiWriteFruData (
- IN IPMI_WRITE_FRU_DATA_REQUEST *WriteFruDataRequest,
- IN UINT32 WriteFruDataRequestSize,
- OUT IPMI_WRITE_FRU_DATA_RESPONSE *WriteFruDataResponse
- );
-
-/**
- This function gets SEL information.
-
- @param[out] GetSelInfoResponse Get SEL information command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSelInfo (
- OUT IPMI_GET_SEL_INFO_RESPONSE *GetSelInfoResponse
- );
-
-/**
- This function gets SEL entry.
-
- @param[in] GetSelEntryRequest Get SEL entry command request.
- @param[out] GetSelEntryResponse Get SEL entry command response.
- @param[in,out] GetSelEntryResponseSize Size of Get SEL entry request.
- When input, the expected size of response data.
- When out, the exact size of response data.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSelEntry (
- IN IPMI_GET_SEL_ENTRY_REQUEST *GetSelEntryRequest,
- OUT IPMI_GET_SEL_ENTRY_RESPONSE *GetSelEntryResponse,
- IN OUT UINT32 *GetSelEntryResponseSize
- );
-
-/**
- This function adds SEL entry.
-
- @param[in] AddSelEntryRequest Add SEL entry command request.
- @param[out] AddSelEntryResponse Add SEL entry command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiAddSelEntry (
- IN IPMI_ADD_SEL_ENTRY_REQUEST *AddSelEntryRequest,
- OUT IPMI_ADD_SEL_ENTRY_RESPONSE *AddSelEntryResponse
- );
-
-/**
- This function partially adds SEL entry.
-
- @param[in] PartialAddSelEntryRequest Partial add SEL entry command request.
- @param[in] PartialAddSelEntryRequestSize Size of partial add SEL entry command request.
- @param[out] PartialAddSelEntryResponse Partial add SEL entry command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiPartialAddSelEntry (
- IN IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST *PartialAddSelEntryRequest,
- IN UINT32 PartialAddSelEntryRequestSize,
- OUT IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE *PartialAddSelEntryResponse
- );
-
-/**
- This function clears SEL entry.
-
- @param[in] ClearSelRequest Clear SEL command request.
- @param[out] ClearSelResponse Clear SEL command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiClearSel (
- IN IPMI_CLEAR_SEL_REQUEST *ClearSelRequest,
- OUT IPMI_CLEAR_SEL_RESPONSE *ClearSelResponse
- );
-
-/**
- This function gets SEL time.
-
- @param[out] GetSelTimeResponse Get SEL time command response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSelTime (
- OUT IPMI_GET_SEL_TIME_RESPONSE *GetSelTimeResponse
- );
-
-/**
- This function sets SEL time.
-
- @param[in] SetSelTimeRequest Set SEL time command request.
- @param[out] CompletionCode Command completion code.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiSetSelTime (
- IN IPMI_SET_SEL_TIME_REQUEST *SetSelTimeRequest,
- OUT UINT8 *CompletionCode
- );
-
-/**
- This function gets SDR repository information.
-
- @param[out] GetSdrRepositoryInfoResp Get SDR repository response.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSdrRepositoryInfo (
- OUT IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE *GetSdrRepositoryInfoResp
- );
-
-/**
- This function gets SDR
-
- @param[in] GetSdrRequest Get SDR resquest.
- @param[out] GetSdrResponse Get SDR response.
- @param[in,out] GetSdrResponseSize The size of get SDR response.
- When input, the expected size of response data.
- When out, the exact size of response data.
-
- @retval EFI_SUCCESS Command is sent successfully.
- @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet.
- @retval Other Failure.
-
-**/
-EFI_STATUS
-EFIAPI
-IpmiGetSdr (
- IN IPMI_GET_SDR_REQUEST *GetSdrRequest,
- OUT IPMI_GET_SDR_RESPONSE *GetSdrResponse,
- IN OUT UINT32 *GetSdrResponseSize
- );
-
-#endif
+/** @file + This library abstract how to send/receive IPMI command. + +Copyright (c) 2018-2021, Intel Corporation. All rights reserved.<BR> +Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR> + +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef IPMI_COMMAND_LIB_H_ +#define IPMI_COMMAND_LIB_H_ + +#include <Uefi.h> +#include <IndustryStandard/Ipmi.h> + +// +// IPMI NetFnApp +// + +/** + This function gets the IPMI Device ID. + + @param[out] DeviceId Get device ID response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetDeviceId ( + OUT IPMI_GET_DEVICE_ID_RESPONSE *DeviceId + ); + +/** + This function gets the self-test result. + + @param[out] SelfTestResult Self test command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetSelfTestResult ( + OUT IPMI_SELF_TEST_RESULT_RESPONSE *SelfTestResult + ); + +/** + This function resets watchdog timer. + + @param[out] CompletionCode The command completion code. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiResetWatchdogTimer ( + OUT UINT8 *CompletionCode + ); + +/** + This function sets watchdog timer. + + @param[in] SetWatchdogTimer Set watchdog timer request. + @param[out] CompletionCode The command completion code. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + + +**/ +EFI_STATUS +EFIAPI +IpmiSetWatchdogTimer ( + IN IPMI_SET_WATCHDOG_TIMER_REQUEST *SetWatchdogTimer, + OUT UINT8 *CompletionCode + ); + +/** + This function gets watchdog timer. + + @param[out] GetWatchdogTimer Get watchdog timer response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetWatchdogTimer ( + OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE *GetWatchdogTimer + ); + +/** + This function sets BMC global enables. + + @param[in] SetBmcGlobalEnables Set BMC global enables command request. + @param[out] CompletionCode The command completion code. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiSetBmcGlobalEnables ( + IN IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST *SetBmcGlobalEnables, + OUT UINT8 *CompletionCode + ); + +/** + This function gets BMC global enables. + + @param[out] GetBmcGlobalEnables Get BMC global enables command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetBmcGlobalEnables ( + OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE *GetBmcGlobalEnables + ); + +/** + This function clears message flag. + + @param[in] ClearMessageFlagsRequest Clear message flags command request. + @param[out] CompletionCode The command completion code. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiClearMessageFlags ( + IN IPMI_CLEAR_MESSAGE_FLAGS_REQUEST *ClearMessageFlagsRequest, + OUT UINT8 *CompletionCode + ); + +/** + This function gets message flag. + + @param[out] GetMessageFlagsResponse Get message flags response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetMessageFlags ( + OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE *GetMessageFlagsResponse + ); + +/** + This function gets message. + + @param[out] GetMessageResponse Get message command response. + @param[in,out] GetMessageResponseSize The size of get message response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetMessage ( + OUT IPMI_GET_MESSAGE_RESPONSE *GetMessageResponse, + IN OUT UINT32 *GetMessageResponseSize + ); + +/** + This function sends message. + + @param[in] SendMessageRequest The send message command request. + @param[in] SendMessageRequestSize The size of the send message command request. + @param[out] SendMessageResponse The send message command response. + @param[in,out] SendMessageResponseSize The size of the send message command response. + When input, the expected size of response. + When output, the actual size of response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiSendMessage ( + IN IPMI_SEND_MESSAGE_REQUEST *SendMessageRequest, + IN UINT32 SendMessageRequestSize, + OUT IPMI_SEND_MESSAGE_RESPONSE *SendMessageResponse, + IN OUT UINT32 *SendMessageResponseSize + ); + +/** + This function gets the system UUID. + + @param[out] SystemGuid The pointer to retrieve system UUID. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Others Other errors. + +**/ +EFI_STATUS +EFIAPI +IpmiGetSystemUuid ( + OUT EFI_GUID *SystemGuid + ); + +/** + This function gets the channel information. + + @param[in] GetChannelInfoRequest The get channel information request. + @param[in] GetChannelInfoResponse The get channel information response. + @param[in,out] GetChannelInfoResponseSize When input, the expected size of response. + When output, the exact size of the returned + response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetChannelInfo ( + IN IPMI_GET_CHANNEL_INFO_REQUEST *GetChannelInfoRequest, + OUT IPMI_GET_CHANNEL_INFO_RESPONSE *GetChannelInfoResponse, + OUT UINT32 *GetChannelInfoResponseSize + ); + +/** + This function gets system interface capability + + @param[in] InterfaceCapabilityRequest Get system interface capability request. + @param[out] InterfaceCapabilityResponse The response of system interface capability. + + @retval EFI_SUCCESS Command is sent successfully. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetSystemInterfaceCapability ( + IN IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_REQUEST *InterfaceCapabilityRequest, + OUT IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_RESPONSE *InterfaceCapabilityResponse + ); + +// +// IPMI NetFnTransport +// + +/** + This function activates SOL + + @param[in] SolActivatingRequest SOL activating request. + @param[out] CompletionCode The command completion code. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiSolActivating ( + IN IPMI_SOL_ACTIVATING_REQUEST *SolActivatingRequest, + OUT UINT8 *CompletionCode + ); + +/** + This function sets SOL configuration parameters. + + @param[in] SetConfigurationParametersRequest Set SOL configuration parameters + command request. + @param[in] SetConfigurationParametersRequestSize Size of the set SOL configuration + parameters command request. + @param[out] CompletionCode The command completion code. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiSetSolConfigurationParameters ( + IN IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST *SetConfigurationParametersRequest, + IN UINT32 SetConfigurationParametersRequestSize, + OUT UINT8 *CompletionCode + ); + +/** + This function gets SOL configuration parameters. + + @param[in] GetConfigurationParametersRequest Get SOL configuration parameters + command request. + @param[out] GetConfigurationParametersResponse Get SOL configuration parameters + response. + @param[in,out] GetConfigurationParametersResponseSize When input, the size of the expected + response. + When output, the exact size of + expect response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetSolConfigurationParameters ( + IN IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST *GetConfigurationParametersRequest, + OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE *GetConfigurationParametersResponse, + IN OUT UINT32 *GetConfigurationParametersResponseSize + ); + +/** + This function gets the LAN configuration parameter. + + @param[in] GetLanConfigurationParametersRequest Get LAN configuration parameters command request. + @param[in] GetLanConfigurationParametersResponse The response of the get LAN configuration parameters. + @param[in,out] GetLanConfigurationParametersSize When input, the expected size of response data. + When out, the exact size of response data. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ + +EFI_STATUS +EFIAPI +IpmiGetLanConfigurationParameters ( + IN IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST *GetLanConfigurationParametersRequest, + OUT IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE *GetLanConfigurationParametersResponse, + IN OUT UINT32 *GetLanConfigurationParametersSize + ); + +// +// IPMI NetFnChassis +// + +/** + This function gets chassis capability. + + @param[out] GetChassisCapabilitiesResponse Gets chassis capability command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetChassisCapabilities ( + OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE *GetChassisCapabilitiesResponse + ); + +/** + This function gets chassis status. + + @param[out] GetChassisCapabilitiesResponse The get chassis status command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetChassisStatus ( + OUT IPMI_GET_CHASSIS_STATUS_RESPONSE *GetChassisStatusResponse + ); + +/** + This function sends chassis control request. + + @param[in] ChassisControlRequest The chassis control request. + @param[out] CompletionCode The command completion code. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiChassisControl ( + IN IPMI_CHASSIS_CONTROL_REQUEST *ChassisControlRequest, + OUT UINT8 *CompletionCode + ); + +/** + This function sets power restore policy. + + @param[in] SetPowerRestireRequest The set power restore policy control + command request. + @param[out] SetPowerRestireResponse The response of power restore policy. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiSetPowerRestorePolicy ( + IN IPMI_SET_POWER_RESTORE_POLICY_REQUEST *SetPowerRestireRequest, + OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE *SetPowerRestireResponse + ); + +// +// IPMI NetFnStorage +// + +/** + This function sets system boot option. + + @param[in] BootOptionsRequest Set system boot option request. + @param[out] BootOptionsResponse The response of set system boot + option request. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiSetSystemBootOptions ( + IN IPMI_SET_BOOT_OPTIONS_REQUEST *BootOptionsRequest, + OUT IPMI_SET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse + ); + +/** + This function gets system boot option. + + @param[in] BootOptionsRequest Get system boot option request. + @param[out] BootOptionsResponse The response of get system boot + option request. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetSystemBootOptions ( + IN IPMI_GET_BOOT_OPTIONS_REQUEST *BootOptionsRequest, + OUT IPMI_GET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse + ); + +/** + This function gets FRU inventory area info. + + @param[in] GetFruInventoryAreaInfoRequest Get FRU inventory area command request. + @param[out] GetFruInventoryAreaInfoResponse get FRU inventory area command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetFruInventoryAreaInfo ( + IN IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST *GetFruInventoryAreaInfoRequest, + OUT IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE *GetFruInventoryAreaInfoResponse + ); + +/** + This function reads FRU data. + + @param[in] ReadFruDataRequest Read FRU data command request. + @param[out] ReadFruDataResponse Read FRU data command response. + @param[in,out] ReadFruDataResponseSize Size of the read FRU data response. + When input, the expected size of response data. + When out, the exact size of response data. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiReadFruData ( + IN IPMI_READ_FRU_DATA_REQUEST *ReadFruDataRequest, + OUT IPMI_READ_FRU_DATA_RESPONSE *ReadFruDataResponse, + IN OUT UINT32 *ReadFruDataResponseSize + ); + +/** + This function gets chassis capability. + + @param[in] WriteFruDataRequest Write FRU data command request. + @param[in] WriteFruDataRequestSize Size of the write FRU data command request. + @param[out] WriteFruDataResponse Write FRU data response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiWriteFruData ( + IN IPMI_WRITE_FRU_DATA_REQUEST *WriteFruDataRequest, + IN UINT32 WriteFruDataRequestSize, + OUT IPMI_WRITE_FRU_DATA_RESPONSE *WriteFruDataResponse + ); + +/** + This function gets SEL information. + + @param[out] GetSelInfoResponse Get SEL information command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetSelInfo ( + OUT IPMI_GET_SEL_INFO_RESPONSE *GetSelInfoResponse + ); + +/** + This function gets SEL entry. + + @param[in] GetSelEntryRequest Get SEL entry command request. + @param[out] GetSelEntryResponse Get SEL entry command response. + @param[in,out] GetSelEntryResponseSize Size of Get SEL entry request. + When input, the expected size of response data. + When out, the exact size of response data. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetSelEntry ( + IN IPMI_GET_SEL_ENTRY_REQUEST *GetSelEntryRequest, + OUT IPMI_GET_SEL_ENTRY_RESPONSE *GetSelEntryResponse, + IN OUT UINT32 *GetSelEntryResponseSize + ); + +/** + This function adds SEL entry. + + @param[in] AddSelEntryRequest Add SEL entry command request. + @param[out] AddSelEntryResponse Add SEL entry command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiAddSelEntry ( + IN IPMI_ADD_SEL_ENTRY_REQUEST *AddSelEntryRequest, + OUT IPMI_ADD_SEL_ENTRY_RESPONSE *AddSelEntryResponse + ); + +/** + This function partially adds SEL entry. + + @param[in] PartialAddSelEntryRequest Partial add SEL entry command request. + @param[in] PartialAddSelEntryRequestSize Size of partial add SEL entry command request. + @param[out] PartialAddSelEntryResponse Partial add SEL entry command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiPartialAddSelEntry ( + IN IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST *PartialAddSelEntryRequest, + IN UINT32 PartialAddSelEntryRequestSize, + OUT IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE *PartialAddSelEntryResponse + ); + +/** + This function clears SEL entry. + + @param[in] ClearSelRequest Clear SEL command request. + @param[out] ClearSelResponse Clear SEL command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiClearSel ( + IN IPMI_CLEAR_SEL_REQUEST *ClearSelRequest, + OUT IPMI_CLEAR_SEL_RESPONSE *ClearSelResponse + ); + +/** + This function gets SEL time. + + @param[out] GetSelTimeResponse Get SEL time command response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetSelTime ( + OUT IPMI_GET_SEL_TIME_RESPONSE *GetSelTimeResponse + ); + +/** + This function sets SEL time. + + @param[in] SetSelTimeRequest Set SEL time command request. + @param[out] CompletionCode Command completion code. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiSetSelTime ( + IN IPMI_SET_SEL_TIME_REQUEST *SetSelTimeRequest, + OUT UINT8 *CompletionCode + ); + +/** + This function gets SDR repository information. + + @param[out] GetSdrRepositoryInfoResp Get SDR repository response. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. +**/ +EFI_STATUS +EFIAPI +IpmiGetSdrRepositoryInfo ( + OUT IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE *GetSdrRepositoryInfoResp + ); + +/** + This function gets SDR + + @param[in] GetSdrRequest Get SDR resquest. + @param[out] GetSdrResponse Get SDR response. + @param[in,out] GetSdrResponseSize The size of get SDR response. + When input, the expected size of response data. + When out, the exact size of response data. + + @retval EFI_SUCCESS Command is sent successfully. + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. + @retval Other Failure. + +**/ +EFI_STATUS +EFIAPI +IpmiGetSdr ( + IN IPMI_GET_SDR_REQUEST *GetSdrRequest, + OUT IPMI_GET_SDR_RESPONSE *GetSdrResponse, + IN OUT UINT32 *GetSdrResponseSize + ); + +#endif |
