Define the API for IPMI Get System Interface Capabilities command (0x57) Signed-off-by: Abner Chang <abner.chang@amd.com> Cc: Abdul Lateef Attar <AbdulLateef.Attar@amd.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Reviewed-by: Nickle Wang <nicklew@nvidia.com>
		
			
				
	
	
		
			701 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			701 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @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
 |