]> git.proxmox.com Git - mirror_edk2.git/blob - EmulatorPkg/Include/Protocol/EmuIoThunk.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / EmulatorPkg / Include / Protocol / EmuIoThunk.h
1 /** @file
2 Emulator Thunk to abstract OS services from pure EFI code
3
4 Copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>
5
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 **/
9
10 #ifndef __EMU_IO_THUNK__
11 #define __EMU_IO_THUNK__
12
13 #define EMU_IO_THUNK_PROTOCO_GUID \
14 { 0x453368F6, 0x7C85, 0x434A, { 0xA9, 0x8A, 0x72, 0xD1, 0xB7, 0xFF, 0xA9, 0x26 } }
15
16 typedef struct _EMU_IO_THUNK_PROTOCOL EMU_IO_THUNK_PROTOCOL;
17
18 typedef
19 EFI_STATUS
20 (EFIAPI *EMU_IO_THUNK_PROTOCOL_CLOSE_OPEN)(
21 IN EMU_IO_THUNK_PROTOCOL *This
22 );
23
24 typedef
25 EFI_STATUS
26 (EFIAPI *EMU_IO_THUNK_PROTOCOL_CLOSE_CLOSE)(
27 IN EMU_IO_THUNK_PROTOCOL *This
28 );
29
30 struct _EMU_IO_THUNK_PROTOCOL {
31 EFI_GUID *Protocol;
32 VOID *Interface; /// Only be valid after Open() is called
33 CHAR16 *ConfigString;
34 UINT16 Instance;
35 EMU_IO_THUNK_PROTOCOL_CLOSE_OPEN Open;
36 EMU_IO_THUNK_PROTOCOL_CLOSE_CLOSE Close;
37 VOID *Private; /// Used by implementation
38 };
39
40 extern EFI_GUID gEmuIoThunkProtocolGuid;
41
42 #endif