Home | History | Annotate | Download | only in Protocol
      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