/** @file
IPMI Command - NetFnApp.
Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#include
#include
#include
EFI_STATUS
EFIAPI
IpmiGetDeviceId (
OUT IPMI_GET_DEVICE_ID_RESPONSE *DeviceId
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*DeviceId);
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_GET_DEVICE_ID,
NULL,
0,
(VOID *)DeviceId,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiGetSelfTestResult (
OUT IPMI_SELF_TEST_RESULT_RESPONSE *SelfTestResult
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*SelfTestResult);
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_GET_SELFTEST_RESULTS,
NULL,
0,
(VOID *)SelfTestResult,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiResetWatchdogTimer (
OUT UINT8 *CompletionCode
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*CompletionCode);
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_RESET_WATCHDOG_TIMER,
NULL,
0,
(VOID *)CompletionCode,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiSetWatchdogTimer (
IN IPMI_SET_WATCHDOG_TIMER_REQUEST *SetWatchdogTimer,
OUT UINT8 *CompletionCode
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*CompletionCode);
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_SET_WATCHDOG_TIMER,
(VOID *)SetWatchdogTimer,
sizeof(*SetWatchdogTimer),
(VOID *)CompletionCode,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiGetWatchdogTimer (
OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE *GetWatchdogTimer
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*GetWatchdogTimer);
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_GET_WATCHDOG_TIMER,
NULL,
0,
(VOID *)GetWatchdogTimer,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiSetBmcGlobalEnables (
IN IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST *SetBmcGlobalEnables,
OUT UINT8 *CompletionCode
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*CompletionCode);
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_SET_BMC_GLOBAL_ENABLES,
(VOID *)SetBmcGlobalEnables,
sizeof(*SetBmcGlobalEnables),
(VOID *)CompletionCode,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiGetBmcGlobalEnables (
OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE *GetBmcGlobalEnables
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*GetBmcGlobalEnables);
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_GET_BMC_GLOBAL_ENABLES,
NULL,
0,
(VOID *)GetBmcGlobalEnables,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiClearMessageFlags (
IN IPMI_CLEAR_MESSAGE_FLAGS_REQUEST *ClearMessageFlagsRequest,
OUT UINT8 *CompletionCode
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*CompletionCode);
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_CLEAR_MESSAGE_FLAGS,
(VOID *)ClearMessageFlagsRequest,
sizeof(*ClearMessageFlagsRequest),
(VOID *)CompletionCode,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiGetMessageFlags (
OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE *GetMessageFlagsResponse
)
{
EFI_STATUS Status;
UINT32 DataSize;
DataSize = sizeof(*GetMessageFlagsResponse);
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_GET_MESSAGE_FLAGS,
NULL,
0,
(VOID *)GetMessageFlagsResponse,
&DataSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiGetMessage (
OUT IPMI_GET_MESSAGE_RESPONSE *GetMessageResponse,
IN OUT UINT32 *GetMessageResponseSize
)
{
EFI_STATUS Status;
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_GET_MESSAGE,
NULL,
0,
(VOID *)GetMessageResponse,
GetMessageResponseSize
);
return Status;
}
EFI_STATUS
EFIAPI
IpmiSendMessage (
IN IPMI_SEND_MESSAGE_REQUEST *SendMessageRequest,
IN UINT32 SendMessageRequestSize,
OUT IPMI_SEND_MESSAGE_RESPONSE *SendMessageResponse,
IN OUT UINT32 *SendMessageResponseSize
)
{
EFI_STATUS Status;
Status = IpmiSubmitCommand (
IPMI_NETFN_APP,
IPMI_APP_SEND_MESSAGE,
(VOID *)SendMessageRequest,
SendMessageRequestSize,
(VOID *)SendMessageResponse,
SendMessageResponseSize
);
return Status;
}