MdeModulePkg/Include: Add IpmiCommandLib header file
Add IpmiCommandLib to MdeModulePkg. This header file is copied from edk2-platforms/Features/Intel/OutOfBandManagement/ IpmiFeaturePkg\Include\Library. Having this header file in edk2 to avoid the dependence of edk2 module with edk2-platfrom. The NULL instance of IpmiCommandLib under MdeModulePkg has to be implemented for the same reason. IpmiCommandLib.h in edk2-platforms should be removed once this patch set is merged. Expect no impacts on edk2-platforms because MdeModulePkg is referred in INF file by all edk2 modules under edk2-platforms that use IpmiCommandLib. Signed-off-by: Abner Chang <abner.chang@amd.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Nickle Wang <nicklew@nvidia.com> Cc: Igor Kulchytskyy <igork@ami.com> Cc: Isaac Oram <isaac.w.oram@intel.com> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> Reviewed-by: Isaac Oram <isaac.w.oram@intel.com> Reviewed-by: Igor Kulchytskyy <igork@ami.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
		
				
					committed by
					
						![mergify[bot]](/avatar/e3df20cd7a67969c41a65f03bea54961?size=40) mergify[bot]
						mergify[bot]
					
				
			
			
				
	
			
			
			
						parent
						
							426efcc374
						
					
				
				
					commit
					bde407db51
				
			
							
								
								
									
										683
									
								
								MdeModulePkg/Include/Library/IpmiCommandLib.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										683
									
								
								MdeModulePkg/Include/Library/IpmiCommandLib.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,683 @@ | |||||||
|  | /** @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 | ||||||
|  |   ); | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // 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 | ||||||
		Reference in New Issue
	
	Block a user