1 /** @file 2 This library abstract how to send/receive IPMI command. 3 4 Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> 5 SPDX-License-Identifier: BSD-2-Clause-Patent 6 7 **/ 8 9 #ifndef _IPMI_COMMAND_LIB_H_ 10 #define _IPMI_COMMAND_LIB_H_ 11 12 #include <Uefi.h> 13 #include <IndustryStandard/Ipmi.h> 14 15 // 16 // NetFnApp 17 // 18 EFI_STATUS 19 EFIAPI 20 IpmiGetDeviceId ( 21 OUT IPMI_GET_DEVICE_ID_RESPONSE *DeviceId 22 ); 23 24 EFI_STATUS 25 EFIAPI 26 IpmiGetSelfTestResult ( 27 OUT IPMI_SELF_TEST_RESULT_RESPONSE *SelfTestResult 28 ); 29 30 EFI_STATUS 31 EFIAPI 32 IpmiResetWatchdogTimer ( 33 OUT UINT8 *CompletionCode 34 ); 35 36 EFI_STATUS 37 EFIAPI 38 IpmiSetWatchdogTimer ( 39 IN IPMI_SET_WATCHDOG_TIMER_REQUEST *SetWatchdogTimer, 40 OUT UINT8 *CompletionCode 41 ); 42 43 EFI_STATUS 44 EFIAPI 45 IpmiGetWatchdogTimer ( 46 OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE *GetWatchdogTimer 47 ); 48 49 EFI_STATUS 50 EFIAPI 51 IpmiSetBmcGlobalEnables ( 52 IN IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST *SetBmcGlobalEnables, 53 OUT UINT8 *CompletionCode 54 ); 55 56 EFI_STATUS 57 EFIAPI 58 IpmiGetBmcGlobalEnables ( 59 OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE *GetBmcGlobalEnables 60 ); 61 62 EFI_STATUS 63 EFIAPI 64 IpmiClearMessageFlags ( 65 IN IPMI_CLEAR_MESSAGE_FLAGS_REQUEST *ClearMessageFlagsRequest, 66 OUT UINT8 *CompletionCode 67 ); 68 69 EFI_STATUS 70 EFIAPI 71 IpmiGetMessageFlags ( 72 OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE *GetMessageFlagsResponse 73 ); 74 75 EFI_STATUS 76 EFIAPI 77 IpmiGetMessage ( 78 OUT IPMI_GET_MESSAGE_RESPONSE *GetMessageResponse, 79 IN OUT UINT32 *GetMessageResponseSize 80 ); 81 82 EFI_STATUS 83 EFIAPI 84 IpmiSendMessage ( 85 IN IPMI_SEND_MESSAGE_REQUEST *SendMessageRequest, 86 IN UINT32 SendMessageRequestSize, 87 OUT IPMI_SEND_MESSAGE_RESPONSE *SendMessageResponse, 88 IN OUT UINT32 *SendMessageResponseSize 89 ); 90 91 // 92 // NetFnTransport 93 // 94 EFI_STATUS 95 EFIAPI 96 IpmiSolActivating ( 97 IN IPMI_SOL_ACTIVATING_REQUEST *SolActivatingRequest, 98 OUT UINT8 *CompletionCode 99 ); 100 101 EFI_STATUS 102 EFIAPI 103 IpmiSetSolConfigurationParameters ( 104 IN IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST *SetConfigurationParametersRequest, 105 IN UINT32 SetConfigurationParametersRequestSize, 106 OUT UINT8 *CompletionCode 107 ); 108 109 EFI_STATUS 110 EFIAPI 111 IpmiGetSolConfigurationParameters ( 112 IN IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST *GetConfigurationParametersRequest, 113 OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE *GetConfigurationParametersResponse, 114 IN OUT UINT32 *GetConfigurationParametersResponseSize 115 ); 116 117 // 118 // NetFnChasis 119 // 120 EFI_STATUS 121 EFIAPI 122 IpmiGetChassisCapabilities ( 123 OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE *GetChassisCapabilitiesResponse 124 ); 125 126 EFI_STATUS 127 EFIAPI 128 IpmiGetChassisStatus ( 129 OUT IPMI_GET_CHASSIS_STATUS_RESPONSE *GetChassisStatusResponse 130 ); 131 132 EFI_STATUS 133 EFIAPI 134 IpmiChassisControl ( 135 IN IPMI_CHASSIS_CONTROL_REQUEST *ChassisControlRequest, 136 OUT UINT8 *CompletionCode 137 ); 138 139 EFI_STATUS 140 EFIAPI 141 IpmiSetPowerRestorePolicy ( 142 IN IPMI_SET_POWER_RESTORE_POLICY_REQUEST *ChassisControlRequest, 143 OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE *ChassisControlResponse 144 ); 145 146 // 147 // NetFnStorage 148 // 149 EFI_STATUS 150 EFIAPI 151 IpmiGetFruInventoryAreaInfo ( 152 IN IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST *GetFruInventoryAreaInfoRequest, 153 OUT IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE *GetFruInventoryAreaInfoResponse 154 ); 155 156 EFI_STATUS 157 EFIAPI 158 IpmiReadFruData ( 159 IN IPMI_READ_FRU_DATA_REQUEST *ReadFruDataRequest, 160 OUT IPMI_READ_FRU_DATA_RESPONSE *ReadFruDataResponse, 161 IN OUT UINT32 *ReadFruDataResponseSize 162 ); 163 164 EFI_STATUS 165 EFIAPI 166 IpmiWriteFruData ( 167 IN IPMI_WRITE_FRU_DATA_REQUEST *WriteFruDataRequest, 168 IN UINT32 WriteFruDataRequestSize, 169 OUT IPMI_WRITE_FRU_DATA_RESPONSE *WriteFruDataResponse 170 ); 171 172 EFI_STATUS 173 EFIAPI 174 IpmiGetSelInfo ( 175 OUT IPMI_GET_SEL_INFO_RESPONSE *GetSelInfoResponse 176 ); 177 178 EFI_STATUS 179 EFIAPI 180 IpmiGetSelEntry ( 181 IN IPMI_GET_SEL_ENTRY_REQUEST *GetSelEntryRequest, 182 OUT IPMI_GET_SEL_ENTRY_RESPONSE *GetSelEntryResponse, 183 IN OUT UINT32 *GetSelEntryResponseSize 184 ); 185 186 EFI_STATUS 187 EFIAPI 188 IpmiAddSelEntry ( 189 IN IPMI_ADD_SEL_ENTRY_REQUEST *AddSelEntryRequest, 190 OUT IPMI_ADD_SEL_ENTRY_RESPONSE *AddSelEntryResponse 191 ); 192 193 EFI_STATUS 194 EFIAPI 195 IpmiPartialAddSelEntry ( 196 IN IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST *PartialAddSelEntryRequest, 197 IN UINT32 PartialAddSelEntryRequestSize, 198 OUT IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE *PartialAddSelEntryResponse 199 ); 200 201 EFI_STATUS 202 EFIAPI 203 IpmiClearSel ( 204 IN IPMI_CLEAR_SEL_REQUEST *ClearSelRequest, 205 OUT IPMI_CLEAR_SEL_RESPONSE *ClearSelResponse 206 ); 207 208 EFI_STATUS 209 EFIAPI 210 IpmiGetSelTime ( 211 OUT IPMI_GET_SEL_TIME_RESPONSE *GetSelTimeResponse 212 ); 213 214 EFI_STATUS 215 EFIAPI 216 IpmiSetSelTime ( 217 IN IPMI_SET_SEL_TIME_REQUEST *SetSelTimeRequest, 218 OUT UINT8 *CompletionCode 219 ); 220 221 EFI_STATUS 222 EFIAPI 223 IpmiGetSdrRepositoryInfo ( 224 OUT IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE *GetSdrRepositoryInfoResp 225 ); 226 227 EFI_STATUS 228 EFIAPI 229 IpmiGetSdr ( 230 IN IPMI_GET_SDR_REQUEST *GetSdrRequest, 231 OUT IPMI_GET_SDR_RESPONSE *GetSdrResponse, 232 IN OUT UINT32 *GetSdrResponseSize 233 ); 234 235 #endif 236