35#define FLAG_THUNK_ENTRY_POINT 0x01
36#define FLAG_THUNK_PROTOCOL 0x00
41#define VM_STACK_KEY_VALUE 0xDEADBEEF
63 IN VOID *EbcEntryPoint,
92#define EFI_TIMER_UNIT_1MS (1000 * 10)
93#define EBC_VM_PERIODIC_CALLBACK_RATE (1000 * EFI_TIMER_UNIT_1MS)
94#define STACK_POOL_SIZE (1024 * 1020)
95#define MAX_STACK_NUM 4
179 OUT VOID **StackBuffer,
239#define EBC_PROTOCOL_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('e', 'b', 'c', 'p')
241#define EBC_PROTOCOL_PRIVATE_DATA_FROM_THIS(a) \
242 CR(a, EBC_PROTOCOL_PRIVATE_DATA, EbcProtocol, EBC_PROTOCOL_PRIVATE_DATA_SIGNATURE)
EFI_STATUS EbcAddImageThunk(IN EFI_HANDLE ImageHandle, IN VOID *ThunkBuffer, IN UINT32 ThunkSize)
VOID *EFIAPI EbcAllocatePoolForThunk(IN UINTN AllocationSize)
EFI_STATUS ReturnEBCStackByHandle(IN EFI_HANDLE Handle)
EFI_STATUS FreeEBCStack(VOID)
UINTN EFIAPI EbcLLGetEbcEntryPoint(VOID)
INT64 EFIAPI EbcLLCALLEXNative(IN UINTN CallAddr, IN UINTN EbcSp, IN VOID *FramePtr)
VOID EbcLLCALLEX(IN VM_CONTEXT *VmPtr, IN UINTN FuncAddr, IN UINTN NewStackPointer, IN VOID *FramePtr, IN UINT8 Size)
EFI_STATUS InitEBCStack(VOID)
EFI_STATUS ReturnEBCStack(IN UINTN Index)
EFI_STATUS EbcCreateThunks(IN EFI_HANDLE ImageHandle, IN VOID *EbcEntryPoint, OUT VOID **Thunk, IN UINT32 Flags)
EFI_STATUS GetEBCStack(IN EFI_HANDLE Handle, OUT VOID **StackBuffer, OUT UINTN *BufferIndex)