]> git.proxmox.com Git - mirror_edk2.git/blob - EmulatorPkg/Include/Protocol/EmuIoThunk.h
EmulatorPkg: Replace BSD License with BSD+Patent License
[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
14 #define EMU_IO_THUNK_PROTOCO_GUID \
15 { 0x453368F6, 0x7C85, 0x434A, { 0xA9, 0x8A, 0x72, 0xD1, 0xB7, 0xFF, 0xA9, 0x26 } }
16
17
18 typedef struct _EMU_IO_THUNK_PROTOCOL EMU_IO_THUNK_PROTOCOL;
19
20
21 typedef
22 EFI_STATUS
23 (EFIAPI *EMU_IO_THUNK_PROTOCOL_CLOSE_OPEN) (
24 IN EMU_IO_THUNK_PROTOCOL *This
25 );
26
27 typedef
28 EFI_STATUS
29 (EFIAPI *EMU_IO_THUNK_PROTOCOL_CLOSE_CLOSE) (
30 IN EMU_IO_THUNK_PROTOCOL *This
31 );
32
33 struct _EMU_IO_THUNK_PROTOCOL {
34 EFI_GUID *Protocol;
35 VOID *Interface; /// Only be valid after Open() is called
36 CHAR16 *ConfigString;
37 UINT16 Instance;
38 EMU_IO_THUNK_PROTOCOL_CLOSE_OPEN Open;
39 EMU_IO_THUNK_PROTOCOL_CLOSE_CLOSE Close;
40 VOID *Private; /// Used by implementation
41 };
42
43 extern EFI_GUID gEmuIoThunkProtocolGuid;
44
45 #endif