+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004 - 2006, 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
- Runtime.h\r
-\r
-Abstract:\r
-\r
- Runtime Architectural Protocol as defined in DXE CIS.\r
-\r
-\r
- This code is used to produce the EFI runtime services that are callable\r
- only in physical mode. \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 needed\r
- by this driver to produce the runtime transition of runtime drivers from\r
- physical mode calling to virtual mode calling.\r
-\r
---*/\r
-\r
-#ifndef _ARCH_PROTOCOL_RUNTIME_H_\r
-#define _ARCH_PROTOCOL_RUNTIME_H_\r
-\r
-#include "LinkedList.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
-EFI_FORWARD_DECLARATION (EFI_RUNTIME_ARCH_PROTOCOL);\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
-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
-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
-\r
-Protocol Description:\r
-\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
-Parameters:\r
- \r
- ImageHead - A list of type EFI_RUNTIME_IMAGE_ENTRY.\r
- EventHead - A list of type EFI_RUNTIME_EVENT_ENTRY.\r
- MemoryDescriptorSize - Size of a memory descriptor that is return by \r
- GetMemoryMap().\r
- MemoryDescriptorVersion - Version of a memory descriptor that is return by \r
- GetMemoryMap().\r
- MemoryMapSize - Size of the memory map in bytes contained in \r
- MemoryMapPhysical and MemoryMapVirtual. \r
- MemoryMapPhysical - Pointer to a runtime buffer that contains a copy of the \r
- memory map returned via GetMemoryMap().\r
- MemoryMapVirtual - Pointer to MemoryMapPhysical that is updated to virtual mode \r
- after SetVirtualAddressMap(). \r
- VirtualMode - Boolean that is TRUE if SetVirtualAddressMap() has been called. \r
- AtRuntime - Boolean that is TRUE if ExitBootServices () has been called.\r
- \r
---*/\r
-\r
-extern EFI_GUID gEfiRuntimeArchProtocolGuid;\r
-\r
-#endif\r