]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/Dxe/ArchProtocol/Runtime.h
Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing...
[mirror_edk2.git] / OldMdePkg / Include / Dxe / ArchProtocol / Runtime.h
diff --git a/OldMdePkg/Include/Dxe/ArchProtocol/Runtime.h b/OldMdePkg/Include/Dxe/ArchProtocol/Runtime.h
new file mode 100644 (file)
index 0000000..1f7504a
--- /dev/null
@@ -0,0 +1,126 @@
+/** @file\r
+  Runtime Architectural Protocol as defined in DXE CIS\r
+\r
+  This code is used to produce the EFI 1.0 runtime virtual switch over\r
+\r
+  This driver must add SetVirtualAddressMap () and ConvertPointer () to\r
+  the EFI system table. This driver is not responcible for CRCing the \r
+  EFI system table.\r
+\r
+  This driver will add EFI_RUNTIME_ARCH_PROTOCOL_GUID protocol with a \r
+  pointer to the Runtime Arch Protocol instance structure. The protocol\r
+  member functions are used by the DXE core to export information need\r
+  by this driver to produce the runtime transition to virtual mode\r
+  calling.\r
+\r
+  Copyright (c) 2006, Intel Corporation                                                         \r
+  All rights reserved. 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:  Runtime.h\r
+\r
+  @par Revision Reference:\r
+  Version 0.91.\r
+\r
+**/\r
+\r
+#ifndef __ARCH_PROTOCOL_RUNTIME_H__\r
+#define __ARCH_PROTOCOL_RUNTIME_H__\r
+\r
+//\r
+// Global ID for the Runtime Architectural Protocol\r
+//\r
+#define EFI_RUNTIME_ARCH_PROTOCOL_GUID \\r
+  { 0xb7dfb4e1, 0x52f, 0x449f, {0x87, 0xbe, 0x98, 0x18, 0xfc, 0x91, 0xb7, 0x33 } }\r
+\r
+typedef struct _EFI_RUNTIME_ARCH_PROTOCOL  EFI_RUNTIME_ARCH_PROTOCOL;\r
+\r
+//\r
+// LIST_ENTRY from BaseType \r
+//\r
+typedef LIST_ENTRY EFI_LIST_ENTRY;\r
+\r
+typedef struct _EFI_RUNTIME_IMAGE_ENTRY  EFI_RUNTIME_IMAGE_ENTRY;\r
+\r
+struct _EFI_RUNTIME_IMAGE_ENTRY {\r
+  VOID                    *ImageBase;\r
+  UINT64                  ImageSize;\r
+  VOID                    *RelocationData;\r
+  EFI_HANDLE              Handle;\r
+  EFI_LIST_ENTRY          Link;\r
+};\r
+\r
+typedef struct _EFI_RUNTIME_EVENT_ENTRY  EFI_RUNTIME_EVENT_ENTRY;\r
+\r
+struct _EFI_RUNTIME_EVENT_ENTRY {\r
+  UINT32                  Type;\r
+  EFI_TPL                 NotifyTpl;\r
+  EFI_EVENT_NOTIFY        NotifyFunction;\r
+  VOID                    *NotifyContext;\r
+  EFI_EVENT               *Event;\r
+  EFI_LIST_ENTRY          Link;\r
+};\r
+\r
+//\r
+// Interface stucture for the Runtime Architectural Protocol\r
+//\r
+/**\r
+  @par Protocol Description:\r
+  Allows the runtime functionality of the DXE Foundation to be contained in a \r
+  separate driver. It also provides hooks for the DXE Foundation to export \r
+  information that is needed at runtime. As such, this protocol allows the DXE \r
+  Foundation to manage runtime drivers and events. This protocol also implies \r
+  that the runtime services required to transition to virtual mode, \r
+  SetVirtualAddressMap() and ConvertPointer(), have been registered into the \r
+  EFI Runtime Table in the EFI System Partition.  This protocol must be produced \r
+  by a runtime DXE driver and may only be consumed by the DXE Foundation.\r
+\r
+  @param ImageHead\r
+  A list of type EFI_RUNTIME_IMAGE_ENTRY.\r
+\r
+  @param EventHead\r
+  A list of type EFI_RUNTIME_EVENT_ENTRY.\r
+\r
+  @param MemoryDescriptorSize\r
+  Size of a memory descriptor that is return by GetMemoryMap().\r
+\r
+  @param MemoryDescriptorVersion\r
+  Version of a memory descriptor that is return by GetMemoryMap().\r
+\r
+  @param MemoryMapSize \r
+  Size of the memory map in bytes contained in MemoryMapPhysical and MemoryMapVirtual. \r
+\r
+  @param MemoryMapPhysical\r
+  Pointer to a runtime buffer that contains a copy of \r
+  the memory map returned via GetMemoryMap().\r
+\r
+  @param MemoryMapVirtual\r
+  Pointer to MemoryMapPhysical that is updated to virtual mode after SetVirtualAddressMap().\r
+\r
+  @param VirtualMode\r
+  Boolean that is TRUE if SetVirtualAddressMap() has been called.\r
+\r
+  @param AtRuntime\r
+  Boolean that is TRUE if ExitBootServices () has been called.\r
+\r
+**/\r
+struct _EFI_RUNTIME_ARCH_PROTOCOL {\r
+  EFI_LIST_ENTRY          ImageHead;\r
+  EFI_LIST_ENTRY          EventHead;\r
+  UINTN                   MemoryDescriptorSize;\r
+  UINT32                  MemoryDesciptorVersion;\r
+  UINTN                   MemoryMapSize;\r
+  EFI_MEMORY_DESCRIPTOR   *MemoryMapPhysical;\r
+  EFI_MEMORY_DESCRIPTOR   *MemoryMapVirtual;\r
+  BOOLEAN                 VirtualMode;\r
+  BOOLEAN                 AtRuntime;\r
+};\r
+\r
+extern EFI_GUID gEfiRuntimeArchProtocolGuid;\r
+\r
+#endif\r