11#ifndef __EMU_THUNK_PROTOCOL_H__
12#define __EMU_THUNK_PROTOCOL_H__
14#define EMU_THUNK_PROTOCOL_GUID \
15 { 0x5CF32E0B, 0x8EDF, 0x2E44, { 0x9C, 0xDA, 0x93, 0x20, 0x5E, 0x99, 0xEC, 0x1C } }
39(EFIAPI *EMU_WRITE_STD_ERROR)(
46(EFIAPI *EMU_CONFIG_STD_IN)(
52(EFIAPI *EMU_WRITE_STD_OUT)(
59(EFIAPI *EMU_READ_STD_IN)(
66(EFIAPI *EMU_POLL_STD_IN)(
72(EFIAPI *EMU_OS_MALLOC)(
78(EFIAPI *EMU_OS_VMALLOC)(
90(EFIAPI *EMU_PE_COFF_GET_ENTRY_POINT)(
92 IN OUT VOID **EntryPoint
97(EFIAPI *EMU_PE_COFF_RELOCATE_EXTRA_ACTION)(
103(EFIAPI *EMU_PE_COFF_UNLOAD_EXTRA_ACTION)(
109(EFIAPI *EMU_ENABLE_INERRUPTS)(
115(EFIAPI *EMU_DISABLE_INERRUPTS)(
121(EFIAPI *EMU_QUERY_PERFORMANCE_FREQENCY)(
127(EFIAPI *EMU_QUERY_PERFORMANCE_COUNTER)(
134 IN UINT64 Nanoseconds
139(EFIAPI *EMU_CPU_SLEEP)(
151(EFIAPI *EMU_GET_TIME)(
158(EFIAPI *EMU_SET_TIME)(
164(EFIAPI EMU_SET_TIMER_CALLBACK)(
170(EFIAPI *EMU_SET_TIMER)(
172 IN EMU_SET_TIMER_CALLBACK CallBack
198 IN BOOLEAN EmuBusDriver,
204 EMU_WRITE_STD_ERROR WriteStdErr;
205 EMU_CONFIG_STD_IN ConfigStdIn;
206 EMU_WRITE_STD_OUT WriteStdOut;
207 EMU_READ_STD_IN ReadStdIn;
208 EMU_POLL_STD_IN PollStdIn;
213 EMU_OS_MALLOC Malloc;
214 EMU_OS_VMALLOC Valloc;
221 EMU_PE_COFF_RELOCATE_EXTRA_ACTION PeCoffRelocateImageExtraAction;
222 EMU_PE_COFF_UNLOAD_EXTRA_ACTION PeCoffUnloadImageExtraAction;
228 EMU_DISABLE_INERRUPTS DisableInterrupt;
229 EMU_QUERY_PERFORMANCE_FREQENCY QueryPerformanceFrequency;
230 EMU_QUERY_PERFORMANCE_COUNTER QueryPerformanceCounter;
233 EMU_CPU_SLEEP CpuSleep;
235 EMU_GET_TIME GetTime;
236 EMU_SET_TIME SetTime;
237 EMU_SET_TIMER SetTimer;
245extern EFI_GUID gEmuThunkProtocolGuid;
EFI_STATUS(EFIAPI * EMU_GET_NEXT_PROTOCOL)(IN BOOLEAN EmuBusDriver, OUT EMU_IO_THUNK_PROTOCOL **Instance OPTIONAL)
EMU_GET_NEXT_PROTOCOL GetNextProtocol
EMU_ENABLE_INERRUPTS EnableInterrupt
EMU_PE_COFF_GET_ENTRY_POINT PeCoffGetEntryPoint