/** @file\r
Runtime Architectural Protocol as defined in PI Specification VOLUME 2 DXE\r
\r
- This code is used to produce the UEFI 2.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
+ Allows the runtime functionality of the DXE Foundation to be contained \r
+ in a separate driver. It also provides hooks for the DXE Foundation to \r
+ export information that is needed at runtime. As such, this protocol allows \r
+ services to the DXE Foundation to manage runtime drivers and events. \r
+ This protocol also implies that the runtime services required to transition \r
+ to virtual mode, SetVirtualAddressMap() and ConvertPointer(), have been \r
+ registered into the UEFI Runtime Table in the UEFI System Table. This protocol \r
+ must be produced by a runtime DXE driver and may only be consumed by the DXE Foundation.\r
\r
Copyright (c) 2006 - 2008, Intel Corporation \r
All rights reserved. This program and the accompanying materials \r
\r
typedef struct _EFI_RUNTIME_IMAGE_ENTRY EFI_RUNTIME_IMAGE_ENTRY;\r
\r
+///\r
+/// EFI_RUNTIME_IMAGE_ENTRY\r
+///\r
struct _EFI_RUNTIME_IMAGE_ENTRY {\r
+ ///\r
+ /// Start of image that has been loaded in memory. It is a pointer \r
+ /// to either the DOS header or PE header of the image.\r
+ ///\r
VOID *ImageBase;\r
+ ///\r
+ /// Size in bytes of the image represented by ImageBase.\r
+ ///\r
UINT64 ImageSize;\r
+ ///\r
+ /// Information about the fix-ups that were performed on ImageBase when it was\r
+ /// loaded into memory.\r
+ ///\r
VOID *RelocationData;\r
+ ///\r
+ /// The ImageHandle passed into ImageBase when it was loaded.\r
+ ///\r
EFI_HANDLE Handle;\r
+ ///\r
+ /// Entry for this node in the EFI_RUNTIME_ARCHITECTURE_PROTOCOL.ImageHead list.\r
+ ///\r
EFI_LIST_ENTRY Link;\r
};\r
\r
typedef struct _EFI_RUNTIME_EVENT_ENTRY EFI_RUNTIME_EVENT_ENTRY;\r
\r
+///\r
+/// EFI_RUNTIME_EVENT_ENTRY\r
+///\r
struct _EFI_RUNTIME_EVENT_ENTRY {\r
+ ///\r
+ /// The same as Type passed into CreateEvent().\r
+ ///\r
UINT32 Type;\r
+ ///\r
+ /// The same as NotifyTpl passed into CreateEvent().\r
+ ///\r
EFI_TPL NotifyTpl;\r
+ ///\r
+ /// The same as NotifyFunction passed into CreateEvent().\r
+ ///\r
EFI_EVENT_NOTIFY NotifyFunction;\r
+ ///\r
+ /// The same as NotifyContext passed into CreateEvent().\r
+ ///\r
VOID *NotifyContext;\r
+ ///\r
+ /// The EFI_EVENT returned by CreateEvent(). Event must be in runtime memory.\r
+ ///\r
EFI_EVENT *Event;\r
+ ///\r
+ /// Entry for this node in the\r
+ /// EFI_RUNTIME_ARCHITECTURE_PROTOCOL.EventHead list.\r
+ ///\r
EFI_LIST_ENTRY Link;\r
};\r
\r