EmulatorPkg[all]  0.1
 All Data Structures Files Functions Variables Typedefs Macros Pages
EmuThunk.h File Reference

Data Structures

struct  EMU_VENDOR_DEVICE_PATH_NODE
 
struct  EMU_THUNK_DEVICE_PATH
 
struct  _EMU_THUNK_PROTOCOL
 

Macros

#define EMU_THUNK_PROTOCOL_GUID   { 0x5CF32E0B, 0x8EDF, 0x2E44, { 0x9C, 0xDA, 0x93, 0x20, 0x5E, 0x99, 0xEC, 0x1C } }
 

Typedefs

typedef struct _EMU_THUNK_PROTOCOL EMU_THUNK_PROTOCOL
 
typedef IN UINTN NumberOfBytes
 
typedef VOID *EFIAPI * EMU_OS_MALLOC (IN UINTN Size)
 
typedef VOID *EFIAPI * EMU_OS_VMALLOC (IN UINTN Size)
 
typedef IN OUT VOID ** EntryPoint
 
typedef OUT EFI_TIME_CAPABILITIES * Capabilities
 
typedef IN EMU_SET_TIMER_CALLBACK CallBack
 
typedef OUT
EMU_IO_THUNK_PROTOCOL ** 
Instance
 

Functions

typedef UINTN (EFIAPI *EMU_WRITE_STD_ERROR)(IN UINT8 *Buffer
 
typedef EFI_STATUS (EFIAPI *EMU_CONFIG_STD_IN)(VOID)
 
typedef BOOLEAN (EFIAPI *EMU_POLL_STD_IN)(VOID)
 
typedef VOID (EFIAPI *EMU_PE_COFF_RELOCATE_EXTRA_ACTION)(IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext)
 
typedef UINT64 (EFIAPI *EMU_QUERY_PERFORMANCE_FREQENCY)(VOID)
 
typedef VOID (EFIAPI EMU_SET_TIMER_CALLBACK)(IN UINT64 DeltaMs)
 

Variables

EFI_GUID gEmuThunkProtocolGuid
 

Detailed Description

Emulator Thunk to abstract OS services from pure EFI code

Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define EMU_THUNK_PROTOCOL_GUID   { 0x5CF32E0B, 0x8EDF, 0x2E44, { 0x9C, 0xDA, 0x93, 0x20, 0x5E, 0x99, 0xEC, 0x1C } }

Typedef Documentation

typedef IN EMU_SET_TIMER_CALLBACK CallBack
typedef OUT EFI_TIME_CAPABILITIES* Capabilities
typedef VOID* EFIAPI* EMU_OS_MALLOC(IN UINTN Size)
typedef VOID* EFIAPI* EMU_OS_VMALLOC(IN UINTN Size)
typedef IN OUT VOID** EntryPoint
typedef IN UINTN NumberOfBytes

Function Documentation

typedef BOOLEAN ( EFIAPI *  EMU_POLL_STD_IN)
typedef EFI_STATUS ( EFIAPI *  EMU_GET_NEXT_PROTOCOL)

Enumerates the current set of protocol instances that abstract OS services from EFI.

A given protocol can have multiple instances. Usually a protocol is configured via a single PCD string. The data associated for each instance is seperated via a ! in the string. EMU_IO_THUNK_PROTOCOL_CLOSE.ConfigString will contain the information in the PCD string up to the next !. Thus each instance has a unique ConfigString.

Parameters
EmuBusDriverTRUE means only return protocol instances that need to be produced by the EmuBusDriver. FALSE means return all possible protocols
InstanceOn input the protocol to search for, or NULL to start a search of all the supported protocol instances.
NextProtocolOn output it represents the next value to be passed into Protocol.
InterfaceA pointer to the EMU_IO_THUNK_PROTOCOL_CLOSE interface.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_NOT_FOUNDThe next protocol instance was not found.
EFI_INVALID_PARAMETERInstance is NULL.
typedef UINT64 ( EFIAPI *  EMU_QUERY_PERFORMANCE_FREQENCY)
typedef UINTN ( EFIAPI *  EMU_WRITE_STD_ERROR)
typedef VOID ( EFIAPI *  EMU_PE_COFF_RELOCATE_EXTRA_ACTION)
typedef VOID ( EFIAPI  EMU_SET_TIMER_CALLBACK)

Variable Documentation

EFI_GUID gEmuThunkProtocolGuid