/** @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