#include <Protocol/EmuIoThunk.h>\r
#include <Protocol/DevicePath.h>\r
\r
-\r
typedef struct {\r
- VENDOR_DEVICE_PATH VendorDevicePath;\r
- UINT32 Instance;\r
+ VENDOR_DEVICE_PATH VendorDevicePath;\r
+ UINT32 Instance;\r
} EMU_VENDOR_DEVICE_PATH_NODE;\r
\r
typedef struct {\r
- EMU_VENDOR_DEVICE_PATH_NODE Vendor;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+ EMU_VENDOR_DEVICE_PATH_NODE Vendor;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
} EMU_THUNK_DEVICE_PATH;\r
\r
-\r
-\r
-typedef struct _EMU_THUNK_PROTOCOL EMU_THUNK_PROTOCOL;\r
-\r
-\r
+typedef struct _EMU_THUNK_PROTOCOL EMU_THUNK_PROTOCOL;\r
\r
typedef\r
UINTN\r
-(EFIAPI *EMU_WRITE_STD_ERROR) (\r
+(EFIAPI *EMU_WRITE_STD_ERROR)(\r
IN UINT8 *Buffer,\r
IN UINTN NumberOfBytes\r
);\r
\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EMU_CONFIG_STD_IN) (\r
+(EFIAPI *EMU_CONFIG_STD_IN)(\r
VOID\r
);\r
\r
typedef\r
UINTN\r
-(EFIAPI *EMU_WRITE_STD_OUT) (\r
+(EFIAPI *EMU_WRITE_STD_OUT)(\r
IN UINT8 *Buffer,\r
IN UINTN NumberOfBytes\r
);\r
\r
typedef\r
UINTN\r
-(EFIAPI *EMU_READ_STD_IN) (\r
+(EFIAPI *EMU_READ_STD_IN)(\r
OUT UINT8 *Buffer,\r
IN UINTN NumberOfBytes\r
);\r
\r
typedef\r
BOOLEAN\r
-(EFIAPI *EMU_POLL_STD_IN) (\r
+(EFIAPI *EMU_POLL_STD_IN)(\r
VOID\r
);\r
\r
-\r
typedef\r
VOID *\r
-(EFIAPI *EMU_OS_MALLOC) (\r
+(EFIAPI *EMU_OS_MALLOC)(\r
IN UINTN Size\r
);\r
\r
typedef\r
VOID *\r
-(EFIAPI *EMU_OS_VMALLOC) (\r
+(EFIAPI *EMU_OS_VMALLOC)(\r
IN UINTN Size\r
);\r
\r
typedef\r
BOOLEAN\r
-(EFIAPI *EMU_OS_FREE) (\r
+(EFIAPI *EMU_OS_FREE)(\r
IN VOID *Ptr\r
);\r
\r
-\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EMU_PE_COFF_GET_ENTRY_POINT) (\r
+(EFIAPI *EMU_PE_COFF_GET_ENTRY_POINT)(\r
IN VOID *Pe32Data,\r
IN OUT VOID **EntryPoint\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_PE_COFF_RELOCATE_EXTRA_ACTION) (\r
+(EFIAPI *EMU_PE_COFF_RELOCATE_EXTRA_ACTION)(\r
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_PE_COFF_UNLOAD_EXTRA_ACTION) (\r
+(EFIAPI *EMU_PE_COFF_UNLOAD_EXTRA_ACTION)(\r
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_ENABLE_INERRUPTS) (\r
+(EFIAPI *EMU_ENABLE_INERRUPTS)(\r
VOID\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_DISABLE_INERRUPTS) (\r
+(EFIAPI *EMU_DISABLE_INERRUPTS)(\r
VOID\r
);\r
\r
typedef\r
UINT64\r
-(EFIAPI *EMU_QUERY_PERFORMANCE_FREQENCY) (\r
+(EFIAPI *EMU_QUERY_PERFORMANCE_FREQENCY)(\r
VOID\r
);\r
\r
typedef\r
UINT64\r
-(EFIAPI *EMU_QUERY_PERFORMANCE_COUNTER) (\r
+(EFIAPI *EMU_QUERY_PERFORMANCE_COUNTER)(\r
VOID\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_SLEEP) (\r
+(EFIAPI *EMU_SLEEP)(\r
IN UINT64 Milliseconds\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_CPU_SLEEP) (\r
+(EFIAPI *EMU_CPU_SLEEP)(\r
VOID\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_EXIT) (\r
+(EFIAPI *EMU_EXIT)(\r
IN UINTN Status\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_GET_TIME) (\r
+(EFIAPI *EMU_GET_TIME)(\r
OUT EFI_TIME *Time,\r
OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_SET_TIME) (\r
+(EFIAPI *EMU_SET_TIME)(\r
IN EFI_TIME *Time\r
);\r
\r
-\r
typedef\r
VOID\r
-(EFIAPI EMU_SET_TIMER_CALLBACK) (\r
+(EFIAPI EMU_SET_TIMER_CALLBACK)(\r
IN UINT64 DeltaMs\r
);\r
\r
typedef\r
VOID\r
-(EFIAPI *EMU_SET_TIMER) (\r
+(EFIAPI *EMU_SET_TIMER)(\r
IN UINT64 PeriodMs,\r
IN EMU_SET_TIMER_CALLBACK CallBack\r
);\r
\r
-\r
-\r
/**\r
Enumerates the current set of protocol instances that abstract OS services from EFI.\r
\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EMU_GET_NEXT_PROTOCOL) (\r
+(EFIAPI *EMU_GET_NEXT_PROTOCOL)(\r
IN BOOLEAN EmuBusDriver,\r
OUT EMU_IO_THUNK_PROTOCOL **Instance OPTIONAL\r
);\r
\r
-\r
struct _EMU_THUNK_PROTOCOL {\r
// Used for early debug printing\r
- EMU_WRITE_STD_ERROR WriteStdErr;\r
- EMU_CONFIG_STD_IN ConfigStdIn;\r
- EMU_WRITE_STD_OUT WriteStdOut;\r
- EMU_READ_STD_IN ReadStdIn;\r
- EMU_POLL_STD_IN PollStdIn;\r
+ EMU_WRITE_STD_ERROR WriteStdErr;\r
+ EMU_CONFIG_STD_IN ConfigStdIn;\r
+ EMU_WRITE_STD_OUT WriteStdOut;\r
+ EMU_READ_STD_IN ReadStdIn;\r
+ EMU_POLL_STD_IN PollStdIn;\r
\r
//\r
// Map OS malloc/free so we can use OS based guard malloc\r
//\r
- EMU_OS_MALLOC Malloc;\r
- EMU_OS_VMALLOC Valloc;\r
- EMU_OS_FREE Free;\r
-\r
+ EMU_OS_MALLOC Malloc;\r
+ EMU_OS_VMALLOC Valloc;\r
+ EMU_OS_FREE Free;\r
\r
///\r
/// PE/COFF loader hooks to get symbols loaded\r
///\r
- EMU_PE_COFF_GET_ENTRY_POINT PeCoffGetEntryPoint;\r
- EMU_PE_COFF_RELOCATE_EXTRA_ACTION PeCoffRelocateImageExtraAction;\r
- EMU_PE_COFF_UNLOAD_EXTRA_ACTION PeCoffUnloadImageExtraAction;\r
+ EMU_PE_COFF_GET_ENTRY_POINT PeCoffGetEntryPoint;\r
+ EMU_PE_COFF_RELOCATE_EXTRA_ACTION PeCoffRelocateImageExtraAction;\r
+ EMU_PE_COFF_UNLOAD_EXTRA_ACTION PeCoffUnloadImageExtraAction;\r
\r
///\r
/// DXE Architecture Protocol Services\r
///\r
- EMU_ENABLE_INERRUPTS EnableInterrupt;\r
- EMU_DISABLE_INERRUPTS DisableInterrupt;\r
- EMU_QUERY_PERFORMANCE_FREQENCY QueryPerformanceFrequency;\r
- EMU_QUERY_PERFORMANCE_COUNTER QueryPerformanceCounter;\r
-\r
- EMU_SLEEP Sleep;\r
- EMU_CPU_SLEEP CpuSleep;\r
- EMU_EXIT Exit;\r
- EMU_GET_TIME GetTime;\r
- EMU_SET_TIME SetTime;\r
- EMU_SET_TIMER SetTimer;\r
+ EMU_ENABLE_INERRUPTS EnableInterrupt;\r
+ EMU_DISABLE_INERRUPTS DisableInterrupt;\r
+ EMU_QUERY_PERFORMANCE_FREQENCY QueryPerformanceFrequency;\r
+ EMU_QUERY_PERFORMANCE_COUNTER QueryPerformanceCounter;\r
+\r
+ EMU_SLEEP Sleep;\r
+ EMU_CPU_SLEEP CpuSleep;\r
+ EMU_EXIT Exit;\r
+ EMU_GET_TIME GetTime;\r
+ EMU_SET_TIME SetTime;\r
+ EMU_SET_TIMER SetTimer;\r
\r
///\r
/// Generic System Services\r
///\r
- EMU_GET_NEXT_PROTOCOL GetNextProtocol;\r
+ EMU_GET_NEXT_PROTOCOL GetNextProtocol;\r
};\r
\r
-extern EFI_GUID gEmuThunkProtocolGuid;\r
+extern EFI_GUID gEmuThunkProtocolGuid;\r
\r
#endif\r