/** @file
RuntimeDxe.h -- Header for RuntimeDxe
Copyright (c) HR650X BIOS Decompilation Project
**/
#ifndef __RUNTIMEDXE_H__
#define __RUNTIMEDXE_H__
#include "../uefi_headers/Uefi.h"
//
// Function Prototypes
//
EFI_STATUS
EFIAPI
ModuleEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
UefiBootServicesTableLibConstructor(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverInitialize(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverConvertPointer(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverSetVirtualAddressMap(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverCalculateCrc32(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverDebugProtocol(
VOID
);
EFI_STATUS
EFIAPI
DebugPrint(
VOID
);
EFI_STATUS
EFIAPI
DebugAssert(
VOID
);
EFI_STATUS
EFIAPI
VirtualAddressChangeNotify(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverExitBootServicesNotify(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverInitializeEndOfDxe(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverInitializeEndOfDxeCallback(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverPeCoffRelocateImage(
VOID
);
EFI_STATUS
EFIAPI
ReportStatusCodeConstructor(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverSetVirtualAddressMapHandler(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverSetVirtualAddressMapNotify(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverCalculateCrc32Event(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverCompareGuid(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverReadUnaligned64(
VOID
);
EFI_STATUS
EFIAPI
RuntimeDriverSetWatchdogTimerHandler(
VOID
);
EFI_STATUS
EFIAPI
registered during initialization(
VOID
);
EFI_STATUS
EFIAPI
mRuntimeDriverExitBootServicesEvent = NULL;(
VOID
);
EFI_STATUS
EFIAPI
code protocol table pointer(
VOID
);
EFI_STATUS
EFIAPI
*mRuntimeStatusCodeTable = NULL;(
VOID
);
EFI_STATUS
EFIAPI
TRUE after SetVirtualAddressMap has been called(
VOID
);
EFI_STATUS
EFIAPI
mEfiGoneVirtual = FALSE;(
VOID
);
EFI_STATUS
EFIAPI
list head for registered images(
VOID
);
EFI_STATUS
EFIAPI
mRuntimeDriverImageList;(
VOID
);
EFI_STATUS
EFIAPI
UEFI boot/runtime service table pointers(
VOID
);
EFI_STATUS
EFIAPI
(ImageHandle, SystemTable);(
VOID
);
EFI_STATUS
EFIAPI
runtime driver initialization(
VOID
);
EFI_STATUS
EFIAPI
= RuntimeDriverInitialize (ImageHandle);(
VOID
);
EFI_STATUS
EFIAPI
VirtualAddressChange notification (TPL_CALLBACK, notify function)(
VOID
);
EFI_STATUS
EFIAPI
= BootServices->CreateEvent ((
VOID
);
EFI_STATUS
EFIAPI
event to disable watchdog timer on ExitBootServices(
VOID
);
EFI_STATUS
EFIAPI
EndOfDxe notification(
VOID
);
EFI_STATUS
EFIAPI
= gBootServices->CreateEvent ((
VOID
);
EFI_STATUS
EFIAPI
SetVirtualAddressMap notification(
VOID
);
EFI_STATUS
EFIAPI
the status code reporting interface(
VOID
);
EFI_STATUS
EFIAPI
();(
VOID
);
EFI_STATUS
EFIAPI
ExitBootServices notification via status code protocol(
VOID
);
EFI_STATUS
EFIAPI
SetVirtualAddressMap notification via status code protocol(
VOID
);
EFI_STATUS
EFIAPI
the Runtime Image protocol(
VOID
);
EFI_STATUS
EFIAPI
= gBootServices->LocateProtocol ((
VOID
);
EFI_STATUS
EFIAPI
the SetWatchdogTimer runtime service(
VOID
);
EFI_STATUS
EFIAPI
the Runtime Driver protocol(
VOID
);
EFI_STATUS
EFIAPI
the virtual address map to find the descriptor covering(
VOID
);
EFI_STATUS
EFIAPI
input address(
VOID
);
EFI_STATUS
EFIAPI
= (EFI_MEMORY_DESCRIPTOR *)mRuntimeDriverImageList.ForwardLink;(
VOID
);
EFI_STATUS
EFIAPI
the virtual address offset(
VOID
);
EFI_STATUS
EFIAPI
data and instruction caches for the memory map(
VOID
);
EFI_STATUS
EFIAPI
((VOID *)(UINTN)MemoryMapSize, 51449860);(
VOID
);
EFI_STATUS
EFIAPI
all registered virtual address change callbacks(
VOID
);
EFI_STATUS
EFIAPI
= mRuntimeDriverImageList.ForwardLink;(
VOID
);
EFI_STATUS
EFIAPI
the callback address(
VOID
);
EFI_STATUS
EFIAPI
= (UINTN)ImageEntry->PhysicalStart;(
VOID
);
EFI_STATUS
EFIAPI
the callback (OriginalImageBase, SizeOfImage, ImageEntry)(
VOID
);
EFI_STATUS
EFIAPI
the image list and convert each image's base address(
VOID
);
EFI_STATUS
EFIAPI
(ImageEntry = mRuntimeDriverImageList.ForwardLink;(
VOID
);
EFI_STATUS
EFIAPI
instruction cache(
VOID
);
EFI_STATUS
EFIAPI
(ImageEntry->ImageSize != NULL &&(
VOID
);
EFI_STATUS
EFIAPI
all Runtime Services pointers(
VOID
);
EFI_STATUS
EFIAPI
(0, (VOID **)&gRuntime->GetTime);(
VOID
);
EFI_STATUS
EFIAPI
CRC32 for Runtime Services table(
VOID
);
EFI_STATUS
EFIAPI
= 0;(
VOID
);
EFI_STATUS
EFIAPI
CRC32 for System Table(
VOID
);
EFI_STATUS
EFIAPI
POST card of successful virtual address switch(
VOID
);
EFI_STATUS
EFIAPI
(0x80, 0xB1);(
VOID
);
EFI_STATUS
EFIAPI
for overflow(
VOID
);
EFI_STATUS
EFIAPI
(DataSize > (MAX_ADDRESS - (UINTN)Data + 1)) {(
VOID
);
EFI_STATUS
EFIAPI
if this is boot-time and allocate protocol(
VOID
);
EFI_STATUS
EFIAPI
(gBootServices != NULL &&(
VOID
);
EFI_STATUS
EFIAPI
if the debug protocol is available(
VOID
);
EFI_STATUS
EFIAPI
(mRuntimeStatusCodeTable != NULL) {(
VOID
);
EFI_STATUS
EFIAPI
the current debug level from CMOS(
VOID
);
EFI_STATUS
EFIAPI
= IoRead8 (0x70);(
VOID
);
EFI_STATUS
EFIAPI
if HOB list is already cached(
VOID
);
EFI_STATUS
EFIAPI
(mRuntimeDriverBootServicesEvent == NULL) {(
VOID
);
EFI_STATUS
EFIAPI
configuration table entries looking for HobList(
VOID
);
EFI_STATUS
EFIAPI
(Index = 0; Index < (UINTN)gSystemTable->NumberOfTableEntries; Index++) {(
VOID
);
EFI_STATUS
EFIAPI
for DOS header magic(
VOID
);
EFI_STATUS
EFIAPI
(*(UINT16 *)OldBase == IMAGE_DOS_SIGNATURE) {(
VOID
);
EFI_STATUS
EFIAPI
} else {(
VOID
);
EFI_STATUS
EFIAPI
for PE signature(
VOID
);
EFI_STATUS
EFIAPI
(*(UINT32 *)ImageBase != IMAGE_PE_SIGNATURE) {(
VOID
);
EFI_STATUS
EFIAPI
relocation directory RVA and size(
VOID
);
EFI_STATUS
EFIAPI
(*(UINT16 *)(ImageBase + 4) == 0x200 &&(
VOID
);
EFI_STATUS
EFIAPI
= *(UINT32 *)(ImageBase + 0x84);(
VOID
);
EFI_STATUS
EFIAPI
(32-bit)(
VOID
);
EFI_STATUS
EFIAPI
= *(UINT32 *)(ImageBase + 0x74);(
VOID
);
EFI_STATUS
EFIAPI
relocation directory size(
VOID
);
EFI_STATUS
EFIAPI
(RelocDirEntrySize <= sizeof(UINT32) * 2) {(
VOID
);
EFI_STATUS
EFIAPI
relocation base and end pointers(
VOID
);
EFI_STATUS
EFIAPI
= OldBase + RelocDirEntryRva;(
VOID
);
EFI_STATUS
EFIAPI
each base relocation block(
VOID
);
EFI_STATUS
EFIAPI
= (UINT32 *)RelocBase;(
VOID
);
EFI_STATUS
EFIAPI
empty (no-op)(
VOID
);
#endif /* __RUNTIMEDXE_H__ */