/** @file This library abstract how to send/receive IPMI command. Copyright (c) 2018-2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _IPMI_COMMAND_LIB_H_ #define _IPMI_COMMAND_LIB_H_ #include #include // // NetFnApp // EFI_STATUS EFIAPI IpmiGetDeviceId ( OUT IPMI_GET_DEVICE_ID_RESPONSE *DeviceId ); EFI_STATUS EFIAPI IpmiGetSelfTestResult ( OUT IPMI_SELF_TEST_RESULT_RESPONSE *SelfTestResult ); EFI_STATUS EFIAPI IpmiResetWatchdogTimer ( OUT UINT8 *CompletionCode ); EFI_STATUS EFIAPI IpmiSetWatchdogTimer ( IN IPMI_SET_WATCHDOG_TIMER_REQUEST *SetWatchdogTimer, OUT UINT8 *CompletionCode ); EFI_STATUS EFIAPI IpmiGetWatchdogTimer ( OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE *GetWatchdogTimer ); EFI_STATUS EFIAPI IpmiSetBmcGlobalEnables ( IN IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST *SetBmcGlobalEnables, OUT UINT8 *CompletionCode ); EFI_STATUS EFIAPI IpmiGetBmcGlobalEnables ( OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE *GetBmcGlobalEnables ); EFI_STATUS EFIAPI IpmiClearMessageFlags ( IN IPMI_CLEAR_MESSAGE_FLAGS_REQUEST *ClearMessageFlagsRequest, OUT UINT8 *CompletionCode ); EFI_STATUS EFIAPI IpmiGetMessageFlags ( OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE *GetMessageFlagsResponse ); EFI_STATUS EFIAPI IpmiGetMessage ( OUT IPMI_GET_MESSAGE_RESPONSE *GetMessageResponse, IN OUT UINT32 *GetMessageResponseSize ); EFI_STATUS EFIAPI IpmiSendMessage ( IN IPMI_SEND_MESSAGE_REQUEST *SendMessageRequest, IN UINT32 SendMessageRequestSize, OUT IPMI_SEND_MESSAGE_RESPONSE *SendMessageResponse, IN OUT UINT32 *SendMessageResponseSize ); // // NetFnTransport // EFI_STATUS EFIAPI IpmiSolActivating ( IN IPMI_SOL_ACTIVATING_REQUEST *SolActivatingRequest, OUT UINT8 *CompletionCode ); EFI_STATUS EFIAPI IpmiSetSolConfigurationParameters ( IN IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST *SetConfigurationParametersRequest, IN UINT32 SetConfigurationParametersRequestSize, OUT UINT8 *CompletionCode ); EFI_STATUS EFIAPI IpmiGetSolConfigurationParameters ( IN IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST *GetConfigurationParametersRequest, OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE *GetConfigurationParametersResponse, IN OUT UINT32 *GetConfigurationParametersResponseSize ); // // NetFnChasis // EFI_STATUS EFIAPI IpmiGetChassisCapabilities ( OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE *GetChassisCapabilitiesResponse ); EFI_STATUS EFIAPI IpmiGetChassisStatus ( OUT IPMI_GET_CHASSIS_STATUS_RESPONSE *GetChassisStatusResponse ); EFI_STATUS EFIAPI IpmiChassisControl ( IN IPMI_CHASSIS_CONTROL_REQUEST *ChassisControlRequest, OUT UINT8 *CompletionCode ); EFI_STATUS EFIAPI IpmiSetPowerRestorePolicy ( IN IPMI_SET_POWER_RESTORE_POLICY_REQUEST *ChassisControlRequest, OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE *ChassisControlResponse ); // // NetFnStorage // EFI_STATUS EFIAPI IpmiSetSystemBootOptions ( IN IPMI_SET_BOOT_OPTIONS_REQUEST *BootOptionsRequest, OUT IPMI_SET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse ); EFI_STATUS EFIAPI IpmiGetSystemBootOptions ( IN IPMI_GET_BOOT_OPTIONS_REQUEST *BootOptionsRequest, OUT IPMI_GET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse ); // // NetFnStorage // EFI_STATUS EFIAPI IpmiGetFruInventoryAreaInfo ( IN IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST *GetFruInventoryAreaInfoRequest, OUT IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE *GetFruInventoryAreaInfoResponse ); EFI_STATUS EFIAPI IpmiReadFruData ( IN IPMI_READ_FRU_DATA_REQUEST *ReadFruDataRequest, OUT IPMI_READ_FRU_DATA_RESPONSE *ReadFruDataResponse, IN OUT UINT32 *ReadFruDataResponseSize ); EFI_STATUS EFIAPI IpmiWriteFruData ( IN IPMI_WRITE_FRU_DATA_REQUEST *WriteFruDataRequest, IN UINT32 WriteFruDataRequestSize, OUT IPMI_WRITE_FRU_DATA_RESPONSE *WriteFruDataResponse ); EFI_STATUS EFIAPI IpmiGetSelInfo ( OUT IPMI_GET_SEL_INFO_RESPONSE *GetSelInfoResponse ); EFI_STATUS EFIAPI IpmiGetSelEntry ( IN IPMI_GET_SEL_ENTRY_REQUEST *GetSelEntryRequest, OUT IPMI_GET_SEL_ENTRY_RESPONSE *GetSelEntryResponse, IN OUT UINT32 *GetSelEntryResponseSize ); EFI_STATUS EFIAPI IpmiAddSelEntry ( IN IPMI_ADD_SEL_ENTRY_REQUEST *AddSelEntryRequest, OUT IPMI_ADD_SEL_ENTRY_RESPONSE *AddSelEntryResponse ); EFI_STATUS EFIAPI IpmiPartialAddSelEntry ( IN IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST *PartialAddSelEntryRequest, IN UINT32 PartialAddSelEntryRequestSize, OUT IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE *PartialAddSelEntryResponse ); EFI_STATUS EFIAPI IpmiClearSel ( IN IPMI_CLEAR_SEL_REQUEST *ClearSelRequest, OUT IPMI_CLEAR_SEL_RESPONSE *ClearSelResponse ); EFI_STATUS EFIAPI IpmiGetSelTime ( OUT IPMI_GET_SEL_TIME_RESPONSE *GetSelTimeResponse ); EFI_STATUS EFIAPI IpmiSetSelTime ( IN IPMI_SET_SEL_TIME_REQUEST *SetSelTimeRequest, OUT UINT8 *CompletionCode ); EFI_STATUS EFIAPI IpmiGetSdrRepositoryInfo ( OUT IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE *GetSdrRepositoryInfoResp ); EFI_STATUS EFIAPI IpmiGetSdr ( IN IPMI_GET_SDR_REQUEST *GetSdrRequest, OUT IPMI_GET_SDR_RESPONSE *GetSdrResponse, IN OUT UINT32 *GetSdrResponseSize ); #endif