X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EmulatorPkg%2FInclude%2FProtocol%2FEmuThunk.h;h=eccf0f47d92fd9104565a06bc58c056017ef1346;hp=27921b123cbe60c8db4ca921b02747d490bfbe1d;hb=d18d8a1d0e370f8ce6ccc2725f4170586d457e53;hpb=bb89ec1a7ec2f8d35033df9e47b3604925da3bd3 diff --git a/EmulatorPkg/Include/Protocol/EmuThunk.h b/EmulatorPkg/Include/Protocol/EmuThunk.h index 27921b123c..eccf0f47d9 100644 --- a/EmulatorPkg/Include/Protocol/EmuThunk.h +++ b/EmulatorPkg/Include/Protocol/EmuThunk.h @@ -2,7 +2,7 @@ Emulator Thunk to abstract OS services from pure EFI code Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.
- + This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -44,34 +44,34 @@ typedef struct _EMU_THUNK_PROTOCOL EMU_THUNK_PROTOCOL; -typedef +typedef UINTN (EFIAPI *EMU_WRITE_STD_ERROR) ( IN UINT8 *Buffer, IN UINTN NumberOfBytes - ); - -typedef + ); + +typedef EFI_STATUS (EFIAPI *EMU_CONFIG_STD_IN) ( VOID ); - -typedef + +typedef UINTN (EFIAPI *EMU_WRITE_STD_OUT) ( IN UINT8 *Buffer, IN UINTN NumberOfBytes ); - -typedef + +typedef UINTN (EFIAPI *EMU_READ_STD_IN) ( OUT UINT8 *Buffer, IN UINTN NumberOfBytes ); -typedef +typedef BOOLEAN (EFIAPI *EMU_POLL_STD_IN) ( VOID @@ -89,28 +89,28 @@ VOID * (EFIAPI *EMU_OS_VMALLOC) ( IN UINTN Size ); - -typedef + +typedef BOOLEAN (EFIAPI *EMU_OS_FREE) ( IN VOID *Ptr ); -typedef +typedef EFI_STATUS (EFIAPI *EMU_PE_COFF_GET_ENTRY_POINT) ( IN VOID *Pe32Data, IN OUT VOID **EntryPoint ); -typedef +typedef VOID (EFIAPI *EMU_PE_COFF_RELOCATE_EXTRA_ACTION) ( IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext ); -typedef +typedef VOID (EFIAPI *EMU_PE_COFF_UNLOAD_EXTRA_ACTION) ( IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext @@ -121,7 +121,7 @@ VOID (EFIAPI *EMU_ENABLE_INERRUPTS) ( VOID ); - + typedef VOID (EFIAPI *EMU_DISABLE_INERRUPTS) ( @@ -157,14 +157,14 @@ VOID (EFIAPI *EMU_EXIT) ( IN UINTN Status ); - + typedef VOID (EFIAPI *EMU_GET_TIME) ( OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL ); - + typedef VOID (EFIAPI *EMU_SET_TIME) ( @@ -184,23 +184,23 @@ VOID IN UINT64 PeriodMs, IN EMU_SET_TIMER_CALLBACK CallBack ); - + /** 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. + 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. + Thus each instance has a unique ConfigString. @param EmuBusDriver TRUE means only return protocol instances that need to be produced by the EmuBusDriver. FALSE means return all possible protocols - @param Instance On input the protocol to search for, or NULL to start a search - of all the supported protocol instances. - @param NextProtocol On output it represents the next value to be passed into Protocol. - @param Interface A pointer to the EMU_IO_THUNK_PROTOCOL_CLOSE interface. + @param Instance On input the protocol to search for, or NULL to start a search + of all the supported protocol instances. + @param NextProtocol On output it represents the next value to be passed into Protocol. + @param Interface A pointer to the EMU_IO_THUNK_PROTOCOL_CLOSE interface. @retval EFI_SUCCESS The function completed successfully. @retval EFI_NOT_FOUND The next protocol instance was not found. @@ -213,7 +213,7 @@ EFI_STATUS IN BOOLEAN EmuBusDriver, OUT EMU_IO_THUNK_PROTOCOL **Instance OPTIONAL ); - + struct _EMU_THUNK_PROTOCOL { // Used for early debug printing @@ -222,22 +222,22 @@ struct _EMU_THUNK_PROTOCOL { EMU_WRITE_STD_OUT WriteStdOut; EMU_READ_STD_IN ReadStdIn; EMU_POLL_STD_IN PollStdIn; - + // // Map OS malloc/free so we can use OS based guard malloc // EMU_OS_MALLOC Malloc; EMU_OS_VMALLOC Valloc; EMU_OS_FREE Free; - - + + /// /// PE/COFF loader hooks to get symbols loaded /// EMU_PE_COFF_GET_ENTRY_POINT PeCoffGetEntryPoint; EMU_PE_COFF_RELOCATE_EXTRA_ACTION PeCoffRelocateImageExtraAction; EMU_PE_COFF_UNLOAD_EXTRA_ACTION PeCoffUnloadImageExtraAction; - + /// /// DXE Architecture Protocol Services /// @@ -249,10 +249,10 @@ struct _EMU_THUNK_PROTOCOL { EMU_SLEEP Sleep; EMU_CPU_SLEEP CpuSleep; EMU_EXIT Exit; - EMU_GET_TIME GetTime; + EMU_GET_TIME GetTime; EMU_SET_TIME SetTime; - EMU_SET_TIMER SetTimer; - + EMU_SET_TIMER SetTimer; + /// /// Generic System Services ///