/*++ Copyright (c) 2006, Intel Corporation All rights reserved. This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. Module Name: Runtime.h Abstract: Runtime Architectural Protocol as defined in the DXE CIS This code is used to produce the EFI runtime virtual switch over --*/ #ifndef _RUNTIME_H_ #define _RUNTIME_H_ // // Data structures // typedef struct { LIST_ENTRY Link; BOOLEAN Valid; EFI_PHYSICAL_ADDRESS ImageBase; UINTN ImageSize; // In no. of pages VOID *RelocationData; } RUNTIME_IMAGE_RELOCATION_DATA; typedef struct { LIST_ENTRY Link; IN UINT32 Type; IN EFI_TPL NotifyTpl; IN EFI_EVENT_NOTIFY NotifyFunction; IN VOID *NotifyContext; IN EFI_EVENT Event; } RUNTIME_NOTIFY_EVENT_DATA; // // Function Prototypes // VOID RelocatePeImageForRuntime ( RUNTIME_IMAGE_RELOCATION_DATA *Image ) ; EFI_STATUS PeHotRelocateImageEx ( IN UINT16 *Reloc, IN OUT CHAR8 *Fixup, IN OUT CHAR8 **FixupData, IN UINT64 Adjust ) ; EFI_STATUS EFIAPI RuntimeDriverCalculateCrc32 ( IN VOID *Data, IN UINTN DataSize, OUT UINT32 *CrcOut ) ; EFI_STATUS EFIAPI RuntimeDriverRegisterImage ( IN EFI_RUNTIME_ARCH_PROTOCOL *This, IN EFI_PHYSICAL_ADDRESS ImageBase, IN UINTN ImageSize, IN VOID *RelocationData ) ; EFI_STATUS EFIAPI RuntimeDriverRegisterEvent ( IN EFI_RUNTIME_ARCH_PROTOCOL *This, IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction, IN VOID *NotifyContext, IN EFI_EVENT *Event ) ; EFI_STATUS EFIAPI RuntimeDriverConvertPointer ( IN UINTN DebugDisposition, IN OUT VOID **ConvertAddress ) ; VOID RuntimeDriverInitializeCrc32Table ( VOID ) ; EFI_STATUS EFIAPI RuntimeDriverInitialize ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) ; // // Cache Flush Routine. // EFI_STATUS FlushCpuCache ( IN EFI_PHYSICAL_ADDRESS Start, IN UINT64 Length ) ; #endif