Add EBC (EFI Byte Code) protocol support.

Signed-off-by: Pete Batard <pete@akeo.ie>
Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
This commit is contained in:
Nigel Croxon 2016-09-15 14:34:56 -04:00
parent c108e118da
commit 447ad9aa3a
3 changed files with 51 additions and 1 deletions

View File

@ -111,6 +111,7 @@ extern EFI_GUID gEfiBusSpecificDriverOverrideProtocolGuid;
#define BusSpecificDriverOverrideProtocol gEfiBusSpecificDriverOverrideProtocolGuid
extern EFI_GUID gEfiDriverFamilyOverrideProtocolGuid;
#define DriverFamilyOverrideProtocol gEfiDriverFamilyOverrideProtocolGuid
extern EFI_GUID gEfiEbcProtocolGuid;
extern EFI_GUID gEfiGlobalVariableGuid;
#define EfiGlobalVariable gEfiGlobalVariableGuid

View File

@ -1372,6 +1372,54 @@ typedef struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL {
EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION GetVersion;
} EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL;
//
// EFI_EBC_PROTOCOL
//
#define EFI_EBC_INTERPRETER_PROTOCOL_GUID \
{0x13ac6dd1, 0x73d0, 0x11d4, {0xb0, 0x6b, 0x00, 0xaa, 0x00, 0xbd, 0x6d, 0xe7} }
#define EFI_EBC_PROTOCOL_GUID EFI_EBC_INTERPRETER_PROTOCOL_GUID
INTERFACE_DECL(_EFI_EBC_PROTOCOL);
typedef
EFI_STATUS
(EFIAPI *EFI_EBC_CREATE_THUNK)(
IN struct _EFI_EBC_PROTOCOL *This,
IN EFI_HANDLE ImageHandle,
IN VOID *EbcEntryPoint,
OUT VOID **Thunk);
typedef
EFI_STATUS
(EFIAPI *EFI_EBC_UNLOAD_IMAGE)(
IN struct _EFI_EBC_PROTOCOL *This,
IN EFI_HANDLE ImageHandle);
typedef
EFI_STATUS
(EFIAPI *EBC_ICACHE_FLUSH)(
IN EFI_PHYSICAL_ADDRESS Start,
IN UINT64 Length);
typedef
EFI_STATUS
(EFIAPI *EFI_EBC_REGISTER_ICACHE_FLUSH)(
IN struct _EFI_EBC_PROTOCOL *This,
IN EBC_ICACHE_FLUSH Flush);
typedef
EFI_STATUS
(EFIAPI *EFI_EBC_GET_VERSION)(
IN struct _EFI_EBC_PROTOCOL *This,
IN OUT UINT64 *Version);
typedef struct _EFI_EBC_PROTOCOL {
EFI_EBC_CREATE_THUNK CreateThunk;
EFI_EBC_UNLOAD_IMAGE UnloadImage;
EFI_EBC_REGISTER_ICACHE_FLUSH RegisterICacheFlush;
EFI_EBC_GET_VERSION GetVersion;
} EFI_EBC_PROTOCOL;
#endif

View File

@ -116,6 +116,7 @@ EFI_GUID gEfiHashProtocolGuid = EFI_HASH_PROTOCOL_GUID;
EFI_GUID gEfiPlatformDriverOverrideProtocolGuid = EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL_GUID;
EFI_GUID gEfiBusSpecificDriverOverrideProtocolGuid = EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL_GUID;
EFI_GUID gEfiDriverFamilyOverrideProtocolGuid = EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL_GUID;
EFI_GUID gEfiEbcProtocolGuid = EFI_EBC_PROTOCOL_GUID;
//
// File system information IDs