/** @file IPMITtransport Protocol Header File. @copyright Copyright 2011 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _IPMI_TRANSPORT_PROTO_H_ #define _IPMI_TRANSPORT_PROTO_H_ #include typedef struct _IPMI_TRANSPORT IPMI_TRANSPORT; #define IPMI_TRANSPORT_PROTOCOL_GUID \ { \ 0x6bb945e8, 0x3743, 0x433e, 0xb9, 0xe, 0x29, 0xb3, 0xd, 0x5d, 0xc6, 0x30 \ } #define SMM_IPMI_TRANSPORT_PROTOCOL_GUID \ { \ 0x8bb070f1, 0xa8f3, 0x471d, 0x86, 0x16, 0x77, 0x4b, 0xa3, 0xf4, 0x30, 0xa0 \ } // // Common Defines // typedef UINT32 BMC_STATUS; #define BMC_OK 0 #define BMC_SOFTFAIL 1 #define BMC_HARDFAIL 2 #define BMC_UPDATE_IN_PROGRESS 3 #define BMC_NOTREADY 4 // // IPMI Function Prototypes // typedef EFI_STATUS (EFIAPI *IPMI_SEND_COMMAND) ( IN IPMI_TRANSPORT *This, IN UINT8 NetFunction, IN UINT8 Lun, IN UINT8 Command, IN UINT8 *CommandData, IN UINT32 CommandDataSize, OUT UINT8 *ResponseData, OUT UINT32 *ResponseDataSize ); typedef EFI_STATUS (EFIAPI *IPMI_GET_CHANNEL_STATUS) ( IN IPMI_TRANSPORT *This, OUT BMC_STATUS *BmcStatus, OUT SM_COM_ADDRESS *ComAddress ); // // IPMI TRANSPORT PROTOCOL // struct _IPMI_TRANSPORT { UINT64 Revision; IPMI_SEND_COMMAND IpmiSubmitCommand; IPMI_GET_CHANNEL_STATUS GetBmcStatus; EFI_HANDLE IpmiHandle; UINT8 CompletionCode; }; extern EFI_GUID gIpmiTransportProtocolGuid; extern EFI_GUID gSmmIpmiTransportProtocolGuid; #endif