]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Efi/Include/EfiApi.h
EdkCompatibilityPkg: Remove EdkCompatibilityPkg
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Efi / Include / EfiApi.h
diff --git a/EdkCompatibilityPkg/Foundation/Efi/Include/EfiApi.h b/EdkCompatibilityPkg/Foundation/Efi/Include/EfiApi.h
deleted file mode 100644 (file)
index 137359f..0000000
+++ /dev/null
@@ -1,1114 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-\r
-Module Name:\r
-\r
-  EfiApi.h\r
-\r
-Abstract:\r
-\r
-  EFI intrinsic definitions. This includes all EFI 1.0 boot and runtime\r
-  services APIs.\r
-\r
-  Drivers and applications are passed in a pointer to the EFI system table.\r
-  The EFI system table contains pointers to the boot and runtime services\r
-  tables.\r
-\r
---*/\r
-\r
-#ifndef _EFI_API_H_\r
-#define _EFI_API_H_\r
-\r
-#include EFI_PROTOCOL_DEFINITION (DevicePath)\r
-#include EFI_PROTOCOL_DEFINITION (SimpleTextIn)\r
-#include EFI_PROTOCOL_DEFINITION (SimpleTextOut)\r
-\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
-#include "EfiCapsule.h"\r
-#else\r
-#include "EfiStatusCode.h"\r
-#endif\r
-\r
-//\r
-// Declare forward referenced data structures\r
-//\r
-EFI_FORWARD_DECLARATION (EFI_SYSTEM_TABLE);\r
-\r
-//\r
-// EFI Memory\r
-//\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_ALLOCATE_PAGES) (\r
-  IN EFI_ALLOCATE_TYPE            Type,\r
-  IN EFI_MEMORY_TYPE              MemoryType,\r
-  IN UINTN                        NoPages,\r
-  OUT EFI_PHYSICAL_ADDRESS        * Memory\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_FREE_PAGES) (\r
-  IN EFI_PHYSICAL_ADDRESS         Memory,\r
-  IN UINTN                        NoPages\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_MEMORY_MAP) (\r
-  IN OUT UINTN                    *MemoryMapSize,\r
-  IN OUT EFI_MEMORY_DESCRIPTOR    * MemoryMap,\r
-  OUT UINTN                       *MapKey,\r
-  OUT UINTN                       *DescriptorSize,\r
-  OUT UINT32                      *DescriptorVersion\r
-  );\r
-\r
-#define NextMemoryDescriptor(_Ptr, _Size)   ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) (_Ptr)) + (_Size)))\r
-#define NEXT_MEMORY_DESCRIPTOR(_Ptr, _Size) NextMemoryDescriptor (_Ptr, _Size)\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_ALLOCATE_POOL) (\r
-  IN EFI_MEMORY_TYPE              PoolType,\r
-  IN UINTN                        Size,\r
-  OUT VOID                        **Buffer\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_FREE_POOL) (\r
-  IN VOID                         *Buffer\r
-  );\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_SET_VIRTUAL_ADDRESS_MAP) (\r
-  IN UINTN                        MemoryMapSize,\r
-  IN UINTN                        DescriptorSize,\r
-  IN UINT32                       DescriptorVersion,\r
-  IN EFI_MEMORY_DESCRIPTOR        * VirtualMap\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_CONNECT_CONTROLLER) (\r
-  IN  EFI_HANDLE                    ControllerHandle,\r
-  IN  EFI_HANDLE                    * DriverImageHandle OPTIONAL,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL      * RemainingDevicePath OPTIONAL,\r
-  IN  BOOLEAN                       Recursive\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_DISCONNECT_CONTROLLER) (\r
-  IN EFI_HANDLE                              ControllerHandle,\r
-  IN EFI_HANDLE                              DriverImageHandle, OPTIONAL\r
-  IN EFI_HANDLE                              ChildHandle        OPTIONAL\r
-  );\r
-\r
-//\r
-// ConvertPointer DebugDisposition type.\r
-//\r
-#define EFI_OPTIONAL_POINTER  0x00000001\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_CONVERT_POINTER) (\r
-  IN UINTN                        DebugDisposition,\r
-  IN OUT VOID                     **Address\r
-  );\r
-\r
-//\r
-// EFI Event Types\r
-//\r
-#define EFI_EVENT_TIMER                         0x80000000\r
-#define EFI_EVENT_RUNTIME                       0x40000000\r
-#define EFI_EVENT_RUNTIME_CONTEXT               0x20000000\r
-\r
-#define EFI_EVENT_NOTIFY_WAIT                   0x00000100\r
-#define EFI_EVENT_NOTIFY_SIGNAL                 0x00000200\r
-\r
-#define EFI_EVENT_SIGNAL_EXIT_BOOT_SERVICES     0x00000201\r
-#define EFI_EVENT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202\r
-\r
-#define EFI_EVENT_EFI_SIGNAL_MASK               0x000000FF\r
-#define EFI_EVENT_EFI_SIGNAL_MAX                4\r
-\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_EVENT_NOTIFY) (\r
-  IN EFI_EVENT                Event,\r
-  IN VOID                     *Context\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_CREATE_EVENT) (\r
-  IN UINT32                       Type,\r
-  IN EFI_TPL                      NotifyTpl,\r
-  IN EFI_EVENT_NOTIFY             NotifyFunction,\r
-  IN VOID                         *NotifyContext,\r
-  OUT EFI_EVENT                   * Event\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_CREATE_EVENT_EX) (\r
-  IN UINT32                 Type,\r
-  IN EFI_TPL                NotifyTpl      OPTIONAL,\r
-  IN EFI_EVENT_NOTIFY       NotifyFunction OPTIONAL,\r
-  IN CONST VOID             *NotifyContext OPTIONAL,\r
-  IN CONST EFI_GUID         *EventGroup    OPTIONAL,\r
-  OUT EFI_EVENT             *Event\r
-  );\r
-\r
-typedef enum {\r
-  TimerCancel,\r
-  TimerPeriodic,\r
-  TimerRelative,\r
-  TimerTypeMax\r
-} EFI_TIMER_DELAY;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_SET_TIMER) (\r
-  IN EFI_EVENT                Event,\r
-  IN EFI_TIMER_DELAY          Type,\r
-  IN UINT64                   TriggerTime\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIGNAL_EVENT) (\r
-  IN EFI_EVENT                Event\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_WAIT_FOR_EVENT) (\r
-  IN UINTN                    NumberOfEvents,\r
-  IN EFI_EVENT                * Event,\r
-  OUT UINTN                   *Index\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_CLOSE_EVENT) (\r
-  IN EFI_EVENT                Event\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_CHECK_EVENT) (\r
-  IN EFI_EVENT                Event\r
-  );\r
-\r
-//\r
-// Task priority level\r
-//\r
-#define EFI_TPL_APPLICATION 4\r
-#define EFI_TPL_CALLBACK    8\r
-#define EFI_TPL_NOTIFY      16\r
-#define EFI_TPL_HIGH_LEVEL  31\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_TPL\r
-(EFIAPI *EFI_RAISE_TPL) (\r
-  IN EFI_TPL      NewTpl\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-VOID\r
-(EFIAPI *EFI_RESTORE_TPL) (\r
-  IN EFI_TPL      OldTpl\r
-  );\r
-\r
-//\r
-// Variable attributes\r
-//\r
-#define EFI_VARIABLE_NON_VOLATILE       0x00000001\r
-#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002\r
-#define EFI_VARIABLE_RUNTIME_ACCESS     0x00000004\r
-\r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
-#define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x00000008\r
-#endif\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_VARIABLE) (\r
-  IN CHAR16                       *VariableName,\r
-  IN EFI_GUID                     * VendorGuid,\r
-  OUT UINT32                      *Attributes OPTIONAL,\r
-  IN OUT UINTN                    *DataSize,\r
-  OUT VOID                        *Data\r
-  );\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_NEXT_VARIABLE_NAME) (\r
-  IN OUT UINTN                    *VariableNameSize,\r
-  IN OUT CHAR16                   *VariableName,\r
-  IN OUT EFI_GUID                 * VendorGuid\r
-  );\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_SET_VARIABLE) (\r
-  IN CHAR16                       *VariableName,\r
-  IN EFI_GUID                     * VendorGuid,\r
-  IN UINT32                       Attributes,\r
-  IN UINTN                        DataSize,\r
-  IN VOID                         *Data\r
-  );\r
-\r
-//\r
-// EFI Time\r
-//\r
-typedef struct {\r
-  UINT32  Resolution;\r
-  UINT32  Accuracy;\r
-  BOOLEAN SetsToZero;\r
-} EFI_TIME_CAPABILITIES;\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_TIME) (\r
-  OUT EFI_TIME                    * Time,\r
-  OUT EFI_TIME_CAPABILITIES       * Capabilities OPTIONAL\r
-  );\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_SET_TIME) (\r
-  IN EFI_TIME                     * Time\r
-  );\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_WAKEUP_TIME) (\r
-  OUT BOOLEAN                     *Enabled,\r
-  OUT BOOLEAN                     *Pending,\r
-  OUT EFI_TIME                    * Time\r
-  );\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_SET_WAKEUP_TIME) (\r
-  IN BOOLEAN                      Enable,\r
-  IN EFI_TIME                     * Time OPTIONAL\r
-  );\r
-\r
-//\r
-// Image Entry prototype\r
-//\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_IMAGE_ENTRY_POINT) (\r
-  IN EFI_HANDLE                   ImageHandle,\r
-  IN EFI_SYSTEM_TABLE             * SystemTable\r
-  );\r
-\r
-//\r
-// Image functions\r
-//\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_IMAGE_LOAD) (\r
-  IN BOOLEAN                      BootPolicy,\r
-  IN EFI_HANDLE                   ParentImageHandle,\r
-  IN EFI_DEVICE_PATH_PROTOCOL     * FilePath,\r
-  IN VOID                         *SourceBuffer OPTIONAL,\r
-  IN UINTN                        SourceSize,\r
-  OUT EFI_HANDLE                  * ImageHandle\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_IMAGE_START) (\r
-  IN EFI_HANDLE                   ImageHandle,\r
-  OUT UINTN                       *ExitDataSize,\r
-  OUT CHAR16                      **ExitData OPTIONAL\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_EXIT) (\r
-  IN EFI_HANDLE                   ImageHandle,\r
-  IN EFI_STATUS                   ExitStatus,\r
-  IN UINTN                        ExitDataSize,\r
-  IN CHAR16                       *ExitData OPTIONAL\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_IMAGE_UNLOAD) (\r
-  IN EFI_HANDLE                   ImageHandle\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_EXIT_BOOT_SERVICES) (\r
-  IN EFI_HANDLE                   ImageHandle,\r
-  IN UINTN                        MapKey\r
-  );\r
-\r
-//\r
-// Misc\r
-//\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_STALL) (\r
-  IN UINTN                    Microseconds\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_SET_WATCHDOG_TIMER) (\r
-  IN UINTN                    Timeout,\r
-  IN UINT64                   WatchdogCode,\r
-  IN UINTN                    DataSize,\r
-  IN CHAR16                   *WatchdogData OPTIONAL\r
-  );\r
-\r
-typedef enum {\r
-  EfiResetCold,\r
-  EfiResetWarm,\r
-  EfiResetShutdown\r
-\r
-#if ((TIANO_RELEASE_VERSION != 0) && (EFI_SPECIFICATION_VERSION < 0x00020000))\r
-  , EfiResetUpdate\r
-#endif\r
-\r
-} EFI_RESET_TYPE;\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-VOID\r
-(EFIAPI *EFI_RESET_SYSTEM) (\r
-  IN EFI_RESET_TYPE           ResetType,\r
-  IN EFI_STATUS               ResetStatus,\r
-  IN UINTN                    DataSize,\r
-  IN CHAR16                   *ResetData OPTIONAL\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_NEXT_MONOTONIC_COUNT) (\r
-  OUT UINT64                  *Count\r
-  );\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_NEXT_HIGH_MONO_COUNT) (\r
-  OUT UINT32                  *HighCount\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_CALCULATE_CRC32) (\r
-  IN  VOID                              *Data,\r
-  IN  UINTN                             DataSize,\r
-  OUT UINT32                            *Crc32\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-VOID\r
-(EFIAPI *EFI_COPY_MEM) (\r
-  IN VOID     *Destination,\r
-  IN VOID     *Source,\r
-  IN UINTN    Length\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-VOID\r
-(EFIAPI *EFI_SET_MEM) (\r
-  IN VOID     *Buffer,\r
-  IN UINTN    Size,\r
-  IN UINT8    Value\r
-  );\r
-\r
-//\r
-// Protocol handler functions\r
-//\r
-typedef enum {\r
-  EFI_NATIVE_INTERFACE\r
-} EFI_INTERFACE_TYPE;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_INSTALL_PROTOCOL_INTERFACE) (\r
-  IN OUT EFI_HANDLE           * Handle,\r
-  IN EFI_GUID                 * Protocol,\r
-  IN EFI_INTERFACE_TYPE       InterfaceType,\r
-  IN VOID                     *Interface\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES) (\r
-  IN OUT EFI_HANDLE           * Handle,\r
-  ...\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_REINSTALL_PROTOCOL_INTERFACE) (\r
-  IN EFI_HANDLE               Handle,\r
-  IN EFI_GUID                 * Protocol,\r
-  IN VOID                     *OldInterface,\r
-  IN VOID                     *NewInterface\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_UNINSTALL_PROTOCOL_INTERFACE) (\r
-  IN EFI_HANDLE               Handle,\r
-  IN EFI_GUID                 * Protocol,\r
-  IN VOID                     *Interface\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES) (\r
-  IN EFI_HANDLE           Handle,\r
-  ...\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_HANDLE_PROTOCOL) (\r
-  IN EFI_HANDLE               Handle,\r
-  IN EFI_GUID                 * Protocol,\r
-  OUT VOID                    **Interface\r
-  );\r
-\r
-#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL  0x00000001\r
-#define EFI_OPEN_PROTOCOL_GET_PROTOCOL        0x00000002\r
-#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL       0x00000004\r
-#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008\r
-#define EFI_OPEN_PROTOCOL_BY_DRIVER           0x00000010\r
-#define EFI_OPEN_PROTOCOL_EXCLUSIVE           0x00000020\r
-\r
-//\r
-// ///////////////////////////////////////////////////////////////////////////////////////////////\r
-// OpenProtocol() Attribute Values\r
-/////////////////////////////////////////////////////////////////////////////////////////////////\r
-// BY_HANDLE_PROTOCOL    - Used by EFI 1.0 Drivers and Applications\r
-//                         May not actually add an elemnt to the open list in a production build\r
-//\r
-// GET_PROTOCOL          - Used by EFI 1.1 Drivers to get a protocol interface\r
-//                         May not actually add an elemnt to the open list in a production build\r
-//\r
-// TEST_PROTOCOL         - Used by EFI 1.1 Drivers to test for the existence of a protocol interface\r
-//                         The interface is not returned, and it is an optional parameter tham may be NULL.\r
-//                         May not actually add an elemnt to the open list in a production build\r
-//\r
-// BY_DRIVER             - Used by EFI 1.1 Drivers that are able to share a protocol with other\r
-//                         agents other than its children.  A driver is always able to share\r
-//                         a protocol with its children, since the driver is in control of the\r
-//                         parent controller's and the child controller's use of the protocol.\r
-//\r
-// BY_DRIVER | EXCLUSIVE - Used by EFI 1.1 Drivers that will not share a protocol with any other\r
-//                         agents except its children.  A driver is always able to share\r
-//                         a protocol with its children, since the driver is in control of the\r
-//                         parent controller's and the child controller's use of the protocol.\r
-//                         This attribute will force all other drivers to disconnect from the protocol\r
-//                         before this driver attaches.  When this driver closes the handle, the other\r
-//                         drivers will reconnect to the protocol.\r
-//\r
-//\r
-// BY_CHILD_CONTROLLER   - Used by EFI 1.1 Driver to show that a protocol is consumed by a child\r
-//                         of the driver.  This is information used by DisconnectController() to\r
-//                         determine the list of children that a protocol has.  It has\r
-//                         no affect on the OpenProtocol()/ClosePrototocol() behavior.\r
-//\r
-// EXCLUSIVE             - Used by EFI 1.1 Applications to gain exclusive access to a protocol.\r
-//                         All drivers are disconnected from the handle while the application has\r
-//                         the handle open.  These drivers are reconnected when the application\r
-//                         closes the handle.\r
-//\r
-/////////////////////////////////////////////////////////////////////////////////////////////////\r
-// OpenProtocol() behavior based on Attribute values\r
-/////////////////////////////////////////////////////////////////////////////////////////////////\r
-//\r
-// OpenProtocol (Handle, Protocol, Interface, ImageHandle, DeviceHandle, Attributes)\r
-// * EFI_UNSUPPORTED        if Protocol does not exist on Handle\r
-// * EFI_INVALID_PARAMETER  if Handle is not a valid handle.\r
-// * EFI_INVALID_PARAMETER  if Protocol is NULL or not a valid GUID\r
-// * EFI_INVALID_PARAMETER  if Interface is NULL\r
-// * EFI_INVALID_PARAMETER  if Attributes is not one of the following values:\r
-//                            BY_HANDLE_PROTOCOL\r
-//                            GET_PROTOCOL\r
-//                            TEST_PROTOCOL\r
-//                            BY_CHILD_CONTROLLER\r
-//                            BY_DRIVER\r
-//                            BY_DRIVER | EXCLUSIVE\r
-//                            EXCLUSIVE\r
-// * EFI_INVALID_PARAMETER  if Attributes BY_CHILD_CONTROLLER and ImageHandle is not a valid handle\r
-// * EFI_INVALID_PARAMETER  if Attributes BY_CHILD_CONTROLLER and DeviceHandle is not a valid handle\r
-// * EFI_INVALID_PARAMETER  if Attributes BY_CHILD_CONTROLLER and Handle == DeviceHandle\r
-// * EFI_INVALID_PARAMETER  if Attributes BY_DRIVER and ImageHandle is not a valid handle\r
-// * EFI_INVALID_PARAMETER  if Attributes BY_DRIVER and DeviceHandle is not a valid handle\r
-// * EFI_INVALID_PARAMETER  if Attributes BY_DRIVER | EXCLUSIVE and ImageHandle is not a valid handle\r
-// * EFI_INVALID_PARAMETER  if Attributes BY_DRIVER | EXCLUSIVE and DeviceHandle is not a valid handle\r
-// * EFI_INVALID_PARAMETER  if Attributes EXCLUSIVE and ImageHandle is not a valid handle\r
-//\r
-// OpenProtocol() Attributes = BY_HANDLE_PROTOCOL, GET_PROTOCOL, TEST_PROTOCOL, BY_CHILD_CONTROLLER\r
-// * EFI_SUCCESS      if Protocol exists on the Handle\r
-//\r
-// OpenProtocol() Attributes = BY_DRIVER\r
-// * EFI_SUCCESS        if there are no items in the Open List for (Handle, Protocol)\r
-// * EFI_SUCCESS        if there are only items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_HANDLE_PROTOCOL\r
-//                        GET_PROTOCOL\r
-//                        TEST_PROTOCOL\r
-//                        BY_CHILD_CONTROLLER\r
-// * EFI_ACCESS_DENIED  if there are any items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_DRIVER\r
-//                      AND ImageHandle != OpenListItem.IH\r
-// * EFI_ALREADY_STARTED if there are any items in the Open List for (Handle, Protocol)\r
-//                       that have the one of the following Attributes\r
-//                         BY_DRIVER\r
-//                       AND ImageHandle == OpenListItem.IH\r
-// * EFI_ACCESS_DENIED  if there are any items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_DRIVER | EXCLUSIVE\r
-//                        EXCLUSIVE\r
-//\r
-// OpenProtocol() Attributes = BY_DRIVER | EXCLUSIVE\r
-// * EFI_SUCCESS        if there are no items in the Open List for (Handle, Protocol)\r
-// * EFI_SUCCESS        if there are only items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_HANDLE_PROTOCOL\r
-//                        GET_PROTOCOL\r
-//                        TEST_PROTOCOL\r
-//                        BY_CHILD_CONTROLLER\r
-// * EFI_SUCCESS        if there are any items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_DRIVER\r
-//                      AND the driver is removed by DisconnectController(IH,DH)\r
-// * EFI_ALREADY_STARTED if there are any items in the Open List for (Handle, Protocol)\r
-//                       that have the one of the following Attributes\r
-//                         BY_DRIVER | EXCLUSIVE\r
-//                       AND ImageHandle == OpenListItem.IH\r
-// * EFI_ACCESS_DENIED  if there are any items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_DRIVER\r
-//                      AND the driver can not be removed by DisconnectController(IH,DH)\r
-// * EFI_ACCESS_DENIED  if there are any items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_DRIVER | EXCLUSIVE\r
-//                        EXCLUSIVE\r
-//\r
-// OpenProtocol() Attributes = EXCLUSIVE\r
-// * EFI_SUCCESS        if there are no items in the Open List for (Handle, Protocol)\r
-// * EFI_SUCCESS        if there are only items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_HANDLE_PROTOCOL\r
-//                        GET_PROTOCOL\r
-//                        TEST_PROTOCOL\r
-//                        BY_CHILD_CONTROLLER\r
-// * EFI_SUCCESS        if there are any items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_DRIVER\r
-//                      AND the driver is removed by DisconnectController(IH,DH)\r
-// * EFI_ACCESS_DENIED  if there are any items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_DRIVER\r
-//                      AND the driver can not be removed by DisconnectController(IH,DH)\r
-// * EFI_ACCESS_DENIED  if there are any items in the Open List for (Handle, Protocol)\r
-//                      that have the one of the following Attributes\r
-//                        BY_DRIVER | EXCLUSIVE\r
-//                        EXCLUSIVE\r
-//\r
-/////////////////////////////////////////////////////////////////////////////////////////////////\r
-// CloseProtocol() Behavior based on the Attributes of the item being closed and the items\r
-//                 remaining on the Open List\r
-/////////////////////////////////////////////////////////////////////////////////////////////////\r
-// CloseProtocol(Handle, Protocol, ImageHandle, DeviceHandle)\r
-// CloseProtocol() Attributes of item = BY_HANDLE_PROTOCOL,\r
-//                                      GET_PROTOCOL\r
-//                                      TEST_PROTOCOL\r
-//                                      BY_CHILD_CONTROLLER,\r
-//                                      BY_DRIVER\r
-//                                      BY_DRIVER | EXCLUSIVE\r
-//                                      EXCLUSIVE\r
-//   EFI_NOT_FOUND          if Protocol does not exist on Handle\r
-//   EFI_INVALID_PARAMETER  if Handle is not a valid handle.\r
-//   EFI_INVALID_PARAMETER  if Protocol is NULL or not a valid GUID\r
-//   EFI_INVALID_PARAMETER  if ImageHandle is not a valid handle\r
-//   EFI_INVALID_PARAMETER  if DeviceHandle is not a valid handle\r
-//   EFI_NOT_FOUND      if (ImageHandle, DeviceHandle) is not present in the Open List\r
-//                      for (Handle, Protocol)\r
-//   EFI_ACCESS_DENIED  if (ImageHandle, DeviceHandle) is present in the Open List\r
-//                      for (Handle, Protocol), but the item can not be removed.\r
-//   EFI_SUCCESS        if (ImageHandle, DeviceHandle) is present in the Open List\r
-//                      for (Handle, Protocol), and the item can be removed.\r
-//\r
-/////////////////////////////////////////////////////////////////////////////////////////////////\r
-// UninstallProtocolInterface() behavior\r
-/////////////////////////////////////////////////////////////////////////////////////////////////\r
-//\r
-// UninstallProtocolInterface (Handle, Protocol, Interface)\r
-//\r
-//   EFI_INVALID_PARAMETER if Handle is not a valid handle.\r
-//   EFI_INVALID_PARAMETER if Protocol is not a vlaid GUID\r
-//   EFI_NOT_FOUND         if Handle doe not support Protocol\r
-//   EFI_NOT_FOUND         if the interface for (Handle, Protocol) does not match Interface\r
-//   EFI_ACCESS_DENIED     if the list of Open Items for (Handle, Protocol) can not be removed\r
-//   EFI_SUCCESS           if the list of Open Items is empty, and Protocol is removed from Handle\r
-//\r
-// Algorithm to remove Open Item List:\r
-//\r
-// Loop through all Open Item List entries\r
-//   if (OpenItem.Attributes & BY_DRIVER) then\r
-//     DisconnectController (OpenItem.IH, OpenItem.DH)\r
-//   end if\r
-// end loop\r
-// Loop through all Open Item List entries\r
-//   if (OpenItem.Attributes & BY_HANDLE_PROTOCOL or GET_PROTOCOL or TEST_PROTOCOL) then\r
-//     CloseProtocol (Handle, Protocol, OpenItem.IH, OpenItem.DH)\r
-//   end if\r
-// end loop\r
-// if Open Item List is empty then remove Protocol from Handle and return EFI_SUCCESS\r
-// if Open Item List is not empty then return EFI_ACCESS_DENIED\r
-//\r
-/////////////////////////////////////////////////////////////////////////////////////////////////\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_OPEN_PROTOCOL) (\r
-  IN EFI_HANDLE                 Handle,\r
-  IN EFI_GUID                   * Protocol,\r
-  OUT VOID                      **Interface,\r
-  IN  EFI_HANDLE                ImageHandle,\r
-  IN  EFI_HANDLE                ControllerHandle, OPTIONAL\r
-  IN  UINT32                    Attributes\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_CLOSE_PROTOCOL) (\r
-  IN EFI_HANDLE               Handle,\r
-  IN EFI_GUID                 * Protocol,\r
-  IN EFI_HANDLE               ImageHandle,\r
-  IN EFI_HANDLE               DeviceHandle\r
-  );\r
-\r
-typedef struct {\r
-  EFI_HANDLE  AgentHandle;\r
-  EFI_HANDLE  ControllerHandle;\r
-  UINT32      Attributes;\r
-  UINT32      OpenCount;\r
-} EFI_OPEN_PROTOCOL_INFORMATION_ENTRY;\r
-\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_OPEN_PROTOCOL_INFORMATION) (\r
-  IN  EFI_HANDLE                          UserHandle,\r
-  IN  EFI_GUID                            * Protocol,\r
-  IN  EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer,\r
-  OUT UINTN                               *EntryCount\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_PROTOCOLS_PER_HANDLE) (\r
-  IN EFI_HANDLE       UserHandle,\r
-  OUT EFI_GUID        ***ProtocolBuffer,\r
-  OUT UINTN           *ProtocolBufferCount\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_REGISTER_PROTOCOL_NOTIFY) (\r
-  IN EFI_GUID                 * Protocol,\r
-  IN EFI_EVENT                Event,\r
-  OUT VOID                    **Registration\r
-  );\r
-\r
-typedef enum {\r
-  AllHandles,\r
-  ByRegisterNotify,\r
-  ByProtocol\r
-} EFI_LOCATE_SEARCH_TYPE;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_LOCATE_HANDLE) (\r
-  IN EFI_LOCATE_SEARCH_TYPE   SearchType,\r
-  IN EFI_GUID                 * Protocol OPTIONAL,\r
-  IN VOID                     *SearchKey OPTIONAL,\r
-  IN OUT UINTN                *BufferSize,\r
-  OUT EFI_HANDLE              * Buffer\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_LOCATE_DEVICE_PATH) (\r
-  IN EFI_GUID                         * Protocol,\r
-  IN OUT EFI_DEVICE_PATH_PROTOCOL     **DevicePath,\r
-  OUT EFI_HANDLE                      * Device\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_INSTALL_CONFIGURATION_TABLE) (\r
-  IN EFI_GUID                 * Guid,\r
-  IN VOID                     *Table\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_RESERVED_SERVICE) (\r
-  VOID\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_LOCATE_HANDLE_BUFFER) (\r
-  IN EFI_LOCATE_SEARCH_TYPE       SearchType,\r
-  IN EFI_GUID                     * Protocol OPTIONAL,\r
-  IN VOID                         *SearchKey OPTIONAL,\r
-  IN OUT UINTN                    *NumberHandles,\r
-  OUT EFI_HANDLE                  **Buffer\r
-  );\r
-\r
-typedef\r
-EFI_BOOTSERVICE11\r
-EFI_STATUS\r
-(EFIAPI *EFI_LOCATE_PROTOCOL) (\r
-  EFI_GUID  * Protocol,\r
-  VOID      *Registration, OPTIONAL\r
-  VOID      **Interface\r
-  );\r
-\r
-//\r
-// Definition of Status Code extended data header\r
-//\r
-//  HeaderSize    The size of the architecture. This is specified to enable\r
-//                the future expansion\r
-//\r
-//  Size          The size of the data in bytes. This does not include the size\r
-//                of the header structure.\r
-//\r
-//  Type          A GUID defining the type of the data\r
-//\r
-//\r
-#if ((TIANO_RELEASE_VERSION != 0) && (EFI_SPECIFICATION_VERSION < 0x00020000))\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_REPORT_STATUS_CODE) (\r
-  IN EFI_STATUS_CODE_TYPE     Type,\r
-  IN EFI_STATUS_CODE_VALUE    Value,\r
-  IN UINT32                   Instance,\r
-  IN EFI_GUID                 * CallerId OPTIONAL,\r
-  IN EFI_STATUS_CODE_DATA     * Data OPTIONAL\r
-  );\r
-\r
-#endif\r
-\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_UPDATE_CAPSULE) (\r
-  IN EFI_CAPSULE_HEADER     **CapsuleHeaderArray,\r
-  IN UINTN                  CapsuleCount,\r
-  IN EFI_PHYSICAL_ADDRESS   ScatterGatherList OPTIONAL\r
- );\r
-\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_QUERY_CAPSULE_CAPABILITIES) (\r
-  IN  EFI_CAPSULE_HEADER   **CapsuleHeaderArray,\r
-  IN  UINTN                CapsuleCount,\r
-  OUT UINT64               *MaximumCapsuleSize,\r
-  OUT EFI_RESET_TYPE       *ResetType\r
-);\r
-\r
-typedef\r
-EFI_RUNTIMESERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_QUERY_VARIABLE_INFO) (\r
-  IN UINT32           Attributes,\r
-  OUT UINT64          *MaximumVariableStorageSize,\r
-  OUT UINT64          *RemainingVariableStorageSize,\r
-  OUT UINT64          *MaximumVariableSize\r
-  );\r
-\r
-#endif\r
-\r
-//\r
-// EFI Runtime Services Table\r
-//\r
-#define EFI_RUNTIME_SERVICES_SIGNATURE  0x56524553544e5552ULL\r
-#define EFI_RUNTIME_SERVICES_REVISION   EFI_SPECIFICATION_VERSION\r
-\r
-typedef struct {\r
-  EFI_TABLE_HEADER              Hdr;\r
-\r
-  //\r
-  // Time services\r
-  //\r
-  EFI_GET_TIME                  GetTime;\r
-  EFI_SET_TIME                  SetTime;\r
-  EFI_GET_WAKEUP_TIME           GetWakeupTime;\r
-  EFI_SET_WAKEUP_TIME           SetWakeupTime;\r
-\r
-  //\r
-  // Virtual memory services\r
-  //\r
-  EFI_SET_VIRTUAL_ADDRESS_MAP   SetVirtualAddressMap;\r
-  EFI_CONVERT_POINTER           ConvertPointer;\r
-\r
-  //\r
-  // Variable services\r
-  //\r
-  EFI_GET_VARIABLE              GetVariable;\r
-  EFI_GET_NEXT_VARIABLE_NAME    GetNextVariableName;\r
-  EFI_SET_VARIABLE              SetVariable;\r
-\r
-  //\r
-  // Misc\r
-  //\r
-  EFI_GET_NEXT_HIGH_MONO_COUNT  GetNextHighMonotonicCount;\r
-  EFI_RESET_SYSTEM              ResetSystem;\r
-\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
-  //\r
-  // New Boot Service added by UEFI 2.0\r
-  //\r
-  EFI_UPDATE_CAPSULE             UpdateCapsule;\r
-  EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities;\r
-  EFI_QUERY_VARIABLE_INFO        QueryVariableInfo;\r
-#elif (TIANO_RELEASE_VERSION != 0)\r
-  //\r
-  // Tiano extension to EFI 1.10 runtime table\r
-  // It was moved to a protocol to not conflict with UEFI 2.0\r
-  // If Tiano is disabled, this item is not enabled for EFI1.10\r
-  //\r
-  EFI_REPORT_STATUS_CODE        ReportStatusCode;\r
-#endif\r
-\r
-} EFI_RUNTIME_SERVICES;\r
-\r
-//\r
-// EFI Boot Services Table\r
-//\r
-#define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42ULL\r
-#define EFI_BOOT_SERVICES_REVISION  EFI_SPECIFICATION_VERSION\r
-\r
-typedef struct {\r
-  EFI_TABLE_HEADER                            Hdr;\r
-\r
-  //\r
-  // Task priority functions\r
-  //\r
-  EFI_RAISE_TPL                               RaiseTPL;\r
-  EFI_RESTORE_TPL                             RestoreTPL;\r
-\r
-  //\r
-  // Memory functions\r
-  //\r
-  EFI_ALLOCATE_PAGES                          AllocatePages;\r
-  EFI_FREE_PAGES                              FreePages;\r
-  EFI_GET_MEMORY_MAP                          GetMemoryMap;\r
-  EFI_ALLOCATE_POOL                           AllocatePool;\r
-  EFI_FREE_POOL                               FreePool;\r
-\r
-  //\r
-  // Event & timer functions\r
-  //\r
-  EFI_CREATE_EVENT                            CreateEvent;\r
-  EFI_SET_TIMER                               SetTimer;\r
-  EFI_WAIT_FOR_EVENT                          WaitForEvent;\r
-  EFI_SIGNAL_EVENT                            SignalEvent;\r
-  EFI_CLOSE_EVENT                             CloseEvent;\r
-  EFI_CHECK_EVENT                             CheckEvent;\r
-\r
-  //\r
-  // Protocol handler functions\r
-  //\r
-  EFI_INSTALL_PROTOCOL_INTERFACE              InstallProtocolInterface;\r
-  EFI_REINSTALL_PROTOCOL_INTERFACE            ReinstallProtocolInterface;\r
-  EFI_UNINSTALL_PROTOCOL_INTERFACE            UninstallProtocolInterface;\r
-  EFI_HANDLE_PROTOCOL                         HandleProtocol;\r
-  VOID                                        *Reserved;\r
-  EFI_REGISTER_PROTOCOL_NOTIFY                RegisterProtocolNotify;\r
-  EFI_LOCATE_HANDLE                           LocateHandle;\r
-  EFI_LOCATE_DEVICE_PATH                      LocateDevicePath;\r
-  EFI_INSTALL_CONFIGURATION_TABLE             InstallConfigurationTable;\r
-\r
-  //\r
-  // Image functions\r
-  //\r
-  EFI_IMAGE_LOAD                              LoadImage;\r
-  EFI_IMAGE_START                             StartImage;\r
-  EFI_EXIT                                    Exit;\r
-  EFI_IMAGE_UNLOAD                            UnloadImage;\r
-  EFI_EXIT_BOOT_SERVICES                      ExitBootServices;\r
-\r
-  //\r
-  // Misc functions\r
-  //\r
-  EFI_GET_NEXT_MONOTONIC_COUNT                GetNextMonotonicCount;\r
-  EFI_STALL                                   Stall;\r
-  EFI_SET_WATCHDOG_TIMER                      SetWatchdogTimer;\r
-\r
-  //\r
-  // ////////////////////////////////////////////////////\r
-  // EFI 1.1 Services\r
-    //////////////////////////////////////////////////////\r
-  //\r
-  // DriverSupport Services\r
-  //\r
-  EFI_CONNECT_CONTROLLER                      ConnectController;\r
-  EFI_DISCONNECT_CONTROLLER                   DisconnectController;\r
-\r
-  //\r
-  // Added Open and Close protocol for the new driver model\r
-  //\r
-  EFI_OPEN_PROTOCOL                           OpenProtocol;\r
-  EFI_CLOSE_PROTOCOL                          CloseProtocol;\r
-  EFI_OPEN_PROTOCOL_INFORMATION               OpenProtocolInformation;\r
-\r
-  //\r
-  // Added new services to EFI 1.1 as Lib to reduce code size.\r
-  //\r
-  EFI_PROTOCOLS_PER_HANDLE                    ProtocolsPerHandle;\r
-  EFI_LOCATE_HANDLE_BUFFER                    LocateHandleBuffer;\r
-  EFI_LOCATE_PROTOCOL                         LocateProtocol;\r
-\r
-  EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES    InstallMultipleProtocolInterfaces;\r
-  EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES  UninstallMultipleProtocolInterfaces;\r
-\r
-  //\r
-  // CRC32 services\r
-  //\r
-  EFI_CALCULATE_CRC32                         CalculateCrc32;\r
-\r
-  //\r
-  // Memory Utility Services\r
-  //\r
-  EFI_COPY_MEM                                CopyMem;\r
-  EFI_SET_MEM                                 SetMem;\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
-  //\r
-  // UEFI 2.0 Extension to the table\r
-  //\r
-  EFI_CREATE_EVENT_EX                         CreateEventEx;\r
-#endif\r
-\r
-} EFI_BOOT_SERVICES;\r
-\r
-//\r
-// EFI Configuration Table\r
-//\r
-typedef struct {\r
-  EFI_GUID  VendorGuid;\r
-  VOID      *VendorTable;\r
-} EFI_CONFIGURATION_TABLE;\r
-\r
-//\r
-// EFI System Table\r
-//\r
-#define EFI_SYSTEM_TABLE_SIGNATURE      0x5453595320494249ULL\r
-#define EFI_SYSTEM_TABLE_REVISION       EFI_SPECIFICATION_VERSION\r
-#define EFI_1_02_SYSTEM_TABLE_REVISION  ((1 << 16) | 02)\r
-#define EFI_1_10_SYSTEM_TABLE_REVISION  ((1 << 16) | 10)\r
-#define EFI_2_00_SYSTEM_TABLE_REVISION  ((2 << 16) | 00)\r
-#define EFI_2_10_SYSTEM_TABLE_REVISION  ((2 << 16) | 10)\r
-\r
-struct _EFI_SYSTEM_TABLE {\r
-  EFI_TABLE_HEADER              Hdr;\r
-\r
-  CHAR16                        *FirmwareVendor;\r
-  UINT32                        FirmwareRevision;\r
-\r
-  EFI_HANDLE                    ConsoleInHandle;\r
-  EFI_SIMPLE_TEXT_IN_PROTOCOL   *ConIn;\r
-\r
-  EFI_HANDLE                    ConsoleOutHandle;\r
-  EFI_SIMPLE_TEXT_OUT_PROTOCOL  *ConOut;\r
-\r
-  EFI_HANDLE                    StandardErrorHandle;\r
-  EFI_SIMPLE_TEXT_OUT_PROTOCOL  *StdErr;\r
-\r
-  EFI_RUNTIME_SERVICES          *RuntimeServices;\r
-  EFI_BOOT_SERVICES             *BootServices;\r
-\r
-  UINTN                         NumberOfTableEntries;\r
-  EFI_CONFIGURATION_TABLE       *ConfigurationTable;\r
-\r
-};\r
-\r
-#endif\r