• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
52