From: "Chang, Abner" <abner.chang@amd.com>
To: "Oram, Isaac W" <isaac.w.oram@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Wang, Jian J" <jian.j.wang@intel.com>,
"Gao, Liming" <gaoliming@byosoft.com.cn>,
Nickle Wang <nicklew@nvidia.com>,
Igor Kulchytskyy <igork@ami.com>,
"Desimone, Nathaniel L" <nathaniel.l.desimone@intel.com>
Subject: Re: [edk2-devel] [PATCH 1/3] MdeModulePkg/Include: Add IpmiCommandLib header file
Date: Fri, 13 Jan 2023 06:04:53 +0000 [thread overview]
Message-ID: <MN2PR12MB3966D419BD66AA5E9884CAC6EAC29@MN2PR12MB3966.namprd12.prod.outlook.com> (raw)
In-Reply-To: <SA1PR11MB5801A144DB0B1A4C28F2FA66D0C29@SA1PR11MB5801.namprd11.prod.outlook.com>
[AMD Official Use Only - General]
Thanks for catching these typos in patches. V2 is sent to address them.
Abner
> -----Original Message-----
> From: Oram, Isaac W <isaac.w.oram@intel.com>
> Sent: Friday, January 13, 2023 8:11 AM
> To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@amd.com>
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Gao, Liming
> <gaoliming@byosoft.com.cn>; Nickle Wang <nicklew@nvidia.com>; Igor
> Kulchytskyy <igork@ami.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>
> Subject: RE: [edk2-devel] [PATCH 1/3] MdeModulePkg/Include: Add
> IpmiCommandLib header file
>
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
>
>
> Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
>
> Typos in SetPowerRestireRequest and SetPowerRestireResponse in function
> comment block and parameters.
> 35 instances of successly should perhaps be successfully.
> 344: NetFnChasis should perhaps be NetFnChassis.
>
> Regards,
> Isaac
>
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang,
> Abner via groups.io
> Sent: Tuesday, December 27, 2022 8:59 PM
> To: devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Gao, Liming
> <gaoliming@byosoft.com.cn>; Nickle Wang <nicklew@nvidia.com>; Igor
> Kulchytskyy <igork@ami.com>; Oram, Isaac W <isaac.w.oram@intel.com>;
> Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>
> Subject: [edk2-devel] [PATCH 1/3] MdeModulePkg/Include: Add
> IpmiCommandLib header file
>
> From: Abner Chang <abner.chang@amd.com>
>
> 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>
> ---
> MdeModulePkg/Include/Library/IpmiCommandLib.h | 683
> ++++++++++++++++++
> 1 file changed, 683 insertions(+)
> create mode 100644 MdeModulePkg/Include/Library/IpmiCommandLib.h
>
> diff --git a/MdeModulePkg/Include/Library/IpmiCommandLib.h
> b/MdeModulePkg/Include/Library/IpmiCommandLib.h
> new file mode 100644
> index 00000000000..cac8123411f
> --- /dev/null
> +++ b/MdeModulePkg/Include/Library/IpmiCommandLib.h
> @@ -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) 2022 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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 NetFnChasis
> +//
> +
> +/**
> + This function gets chassis capability.
> +
> + @param[out] GetChassisCapabilitiesResponse Gets chassis capability
> command response.
> +
> + @retval EFI_SUCCESS Command is sent successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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 successly.
> + @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
> --
> 2.37.1.windows.1
>
>
>
>
>
next prev parent reply other threads:[~2023-01-13 6:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-28 4:59 [PATCH 0/3] Add NULL IpmiCommandLib instance Chang, Abner
2022-12-28 4:59 ` [PATCH 1/3] MdeModulePkg/Include: Add IpmiCommandLib header file Chang, Abner
2023-01-13 0:11 ` [edk2-devel] " Isaac Oram
2023-01-13 6:04 ` Chang, Abner [this message]
2022-12-28 4:59 ` [PATCH 2/3] MdeModulePkg/IpmiCommandLib: Add NULL instance library Chang, Abner
2023-01-13 0:29 ` Isaac Oram
2022-12-28 4:59 ` [PATCH 3/3] MdeModulePkg: Add IpmiCommandLib Chang, Abner
2023-01-13 0:30 ` Isaac Oram
2022-12-29 17:31 ` [edk2-devel] [PATCH 0/3] Add NULL IpmiCommandLib instance Michael D Kinney
2022-12-30 4:09 ` Chang, Abner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=MN2PR12MB3966D419BD66AA5E9884CAC6EAC29@MN2PR12MB3966.namprd12.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox