]> git.proxmox.com Git - mirror_edk2.git/blob - EmulatorPkg/Include/Protocol/EmuIoThunk.h
471c13b882d82fa300db1ad76200b91c941ed964
[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 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef __EMU_IO_THUNK__
17 #define __EMU_IO_THUNK__
18
19
20 #define EMU_IO_THUNK_PROTOCO_GUID \
21 { 0x453368F6, 0x7C85, 0x434A, { 0xA9, 0x8A, 0x72, 0xD1, 0xB7, 0xFF, 0xA9, 0x26 } }
22
23
24 typedef struct _EMU_IO_THUNK_PROTOCOL EMU_IO_THUNK_PROTOCOL;
25
26
27 typedef
28 EFI_STATUS
29 (EFIAPI *EMU_IO_THUNK_PROTOCOL_CLOSE_OPEN) (
30 IN EMU_IO_THUNK_PROTOCOL *This
31 );
32
33 typedef
34 EFI_STATUS
35 (EFIAPI *EMU_IO_THUNK_PROTOCOL_CLOSE_CLOSE) (
36 IN EMU_IO_THUNK_PROTOCOL *This
37 );
38
39 struct _EMU_IO_THUNK_PROTOCOL {
40 EFI_GUID *Protocol;
41 VOID *Interface; /// Only be valid after Open() is called
42 CHAR16 *ConfigString;
43 UINT16 Instance;
44 EMU_IO_THUNK_PROTOCOL_CLOSE_OPEN Open;
45 EMU_IO_THUNK_PROTOCOL_CLOSE_CLOSE Close;
46 VOID *Private; /// Used by implementation
47 };
48
49 extern EFI_GUID gEmuIoThunkProtocolGuid;
50
51 #endif