/** @file PlatformReset.h -- Header for PlatformReset Copyright (c) HR650X BIOS Decompilation Project **/ #ifndef __PLATFORMRESET_H__ #define __PLATFORMRESET_H__ #include "../uefi_headers/Uefi.h" // // Function Prototypes // EFI_STATUS EFIAPI ModuleEntryPoint( VOID ); EFI_STATUS EFIAPI PlatformResetDriverEntryPoint( VOID ); EFI_STATUS EFIAPI PlatformResetUnload( VOID ); EFI_STATUS EFIAPI PlatformResetEntryPoint( VOID ); EFI_STATUS EFIAPI PlatformResetSystem( VOID ); EFI_STATUS EFIAPI nullsub_1( VOID ); EFI_STATUS EFIAPI global variables( VOID ); EFI_STATUS EFIAPI ImageHandle = NULL; // 0x40C8( VOID ); EFI_STATUS EFIAPI EFI_BOOT_SERVICES *gBS = NULL; // 0x40C0( VOID ); EFI_STATUS EFIAPI STATIC EFI_BOOT_SERVICES *mBS = NULL; // 0x40F0( VOID ); EFI_STATUS EFIAPI STATIC EFI_DS *gDS = NULL; // 0x4100( VOID ); EFI_STATUS EFIAPI STATIC EFI_EVENT mEfiExitBootServiceEvent = NULL; // 0x40E8( VOID ); EFI_STATUS EFIAPI STATIC VOID *mHobList = NULL; // 0x4110( VOID ); EFI_STATUS EFIAPI STATIC EFI_EVENT mEfiEventReadyToBoot = NULL; // 0x4148( VOID ); EFI_STATUS EFIAPI STATIC EFI_RUNTIME_SERVICES *mRuntimeServices = NULL; // 0x4160( VOID ); EFI_STATUS EFIAPI STATIC EFI_RESET_SYSTEM mOriginalResetSystem = NULL; // 0x4170( VOID ); EFI_STATUS EFIAPI STATIC UINTN mPciExpressMmBaseCount = 0; // 0x4128( VOID ); EFI_STATUS EFIAPI STATIC VOID *mPciExpressMmBaseRegBase = NULL; // 0x4130( VOID ); EFI_STATUS EFIAPI STATIC BOOLEAN mRuntimeVirtualAddrMapDone = FALSE; // 0x4118( VOID ); EFI_STATUS EFIAPI //( VOID ); EFI_STATUS EFIAPI *( VOID ); EFI_STATUS EFIAPI - UEFI DXE driver entry point( VOID ); EFI_STATUS EFIAPI EFIAPI( VOID ); EFI_STATUS EFIAPI - Initialize driver globals( VOID ); EFI_STATUS EFIAPI BS protocol notification events, configure( VOID ); EFI_STATUS EFIAPI Express MMIO access and runtime services.( VOID ); EFI_STATUS EFIAPI __int64 v4; // rax( VOID ); EFI_STATUS EFIAPI __int64 v6; // rax( VOID ); EFI_STATUS EFIAPI __int64 v8; // rax( VOID ); EFI_STATUS EFIAPI __int64 v10; // rbx( VOID ); EFI_STATUS EFIAPI __int64 v12; // rax( VOID ); EFI_STATUS EFIAPI __int64 v14; // rax( VOID ); EFI_STATUS EFIAPI __int16 v16; // bx( VOID ); EFI_STATUS EFIAPI __int64 v18; // rdi( VOID ); EFI_STATUS EFIAPI ::ImageHandle = ImageHandle; /*0x1159*/( VOID ); EFI_STATUS EFIAPI - Driver unload handler( VOID ); EFI_STATUS EFIAPI runtime PCI Express mappings, frees events.( VOID ); EFI_STATUS EFIAPI PlatformResetUnload()( VOID ); EFI_STATUS EFIAPI __int64 v1; // rbx( VOID ); EFI_STATUS EFIAPI __int64 v3; // rax( VOID ); EFI_STATUS EFIAPI __int64 v5; // rbx( VOID ); EFI_STATUS EFIAPI - Main entry point for PlatformReset driver.( VOID ); EFI_STATUS EFIAPI the EFI Reset Architecture Protocol and registers( VOID ); EFI_STATUS EFIAPI PlatformResetSystem() as the runtime ResetSystem handler.( VOID ); EFI_STATUS EFIAPI PlatformResetEntryPoint (( VOID ); EFI_STATUS EFIAPI __int64 v7; // [rsp+40h] [rbp+8h] BYREF( VOID ); EFI_STATUS EFIAPI - Runtime ResetSystem service handler.( VOID ); EFI_STATUS EFIAPI cold reset (0), warm reset (1), shutdown (3)( VOID ); EFI_STATUS EFIAPI platform-specific reset (4, 5).( VOID ); EFI_STATUS EFIAPI through PCH SMBus controller or via PCH reset register.( VOID ); EFI_STATUS EFIAPI int n3; // ecx( VOID ); EFI_STATUS EFIAPI - Null notification function( VOID ); EFI_STATUS EFIAPI nullsub_1 (VOID)( VOID ); EFI_STATUS EFIAPI - Save the original ResetSystem pointer to mOriginalResetSystem( VOID ); EFI_STATUS EFIAPI - ZeroMem with validation (BaseMemoryLib wrapper)( VOID ); EFI_STATUS EFIAPI __fastcall sub_1A48(__int64 a1, unsigned __int64 a2)( VOID ); EFI_STATUS EFIAPI - Get the Debug Output protocol for ASSERT/DEBUG output( VOID ); EFI_STATUS EFIAPI unsigned __int64 n0x10; // rbx( VOID ); EFI_STATUS EFIAPI __int64 v3; // rcx( VOID ); EFI_STATUS EFIAPI - Debug print wrapper (supports NMI lock via CMOS 0x4B)( VOID ); EFI_STATUS EFIAPI __int64 v4; // r8( VOID ); EFI_STATUS EFIAPI unsigned __int8 v6; // al( VOID ); EFI_STATUS EFIAPI int n113; // edx( VOID ); EFI_STATUS EFIAPI - Debug assert (via Debug Output protocol)( VOID ); EFI_STATUS EFIAPI __fastcall sub_1BB4(__int64 a1, __int64 a2, __int64 a3)( VOID ); EFI_STATUS EFIAPI result = sub_1AAC(); /*0x1bcc*/( VOID ); EFI_STATUS EFIAPI - BS event notification: clear gBS pointer( VOID ); EFI_STATUS EFIAPI - ExitBootServices notification handler( VOID ); EFI_STATUS EFIAPI - Get system configuration table by GUID (UefiLib wrapper)( VOID ); EFI_STATUS EFIAPI __int64 __fastcall sub_1C28(__int64 a1, _QWORD *a2)( VOID ); EFI_STATUS EFIAPI if ( !a1 ) /*0x1c4a*/( VOID ); EFI_STATUS EFIAPI - Get HOB list pointer (HobLib wrapper)( VOID ); EFI_STATUS EFIAPI signed __int64 v1; // rax( VOID ); EFI_STATUS EFIAPI - SetVirtualAddressMap notification: mark VA map done( VOID ); EFI_STATUS EFIAPI - Runtime event: convert RT pointers for virtual address mode( VOID ); EFI_STATUS EFIAPI - Runtime PCI Express address map cleanup( VOID ); EFI_STATUS EFIAPI unsigned __int64 v1; // rbx( VOID ); EFI_STATUS EFIAPI result = qword_4120; /*0x1da6*/( VOID ); EFI_STATUS EFIAPI - Get PCI Express MMIO config space address( VOID ); EFI_STATUS EFIAPI a PCI Express address to its MMIO base + offset.( VOID ); EFI_STATUS EFIAPI __fastcall sub_1E0C(__int64 n1024064)( VOID ); EFI_STATUS EFIAPI unsigned __int64 v3; // rax( VOID ); EFI_STATUS EFIAPI if ( (n1024064 & 0xFFFFFFFFF0000000uLL) != 0 ) /*0x1e1c*/( VOID ); EFI_STATUS EFIAPI - Compare two GUIDs for equality (ReadUnaligned64 wrapper)( VOID ); EFI_STATUS EFIAPI __fastcall sub_1ED0(__int64 a1, __int64 a2)( VOID ); EFI_STATUS EFIAPI __int64 v7; // rax( VOID ); EFI_STATUS EFIAPI - Read unaligned 64-bit value (BaseLib wrapper)( VOID ); EFI_STATUS EFIAPI __fastcall sub_1F38(__int64 a1)( VOID ); EFI_STATUS EFIAPI - Get the PCD protocol pointer( VOID ); EFI_STATUS EFIAPI __int64 v1; // rax( VOID ); EFI_STATUS EFIAPI - Write 16-bit I/O port (IoLib wrapper)( VOID ); EFI_STATUS EFIAPI __fastcall sub_1FF4(_WORD *a1)( VOID ); EFI_STATUS EFIAPI - Read 32-bit I/O port (IoLib wrapper)( VOID ); EFI_STATUS EFIAPI __int32 __fastcall sub_2028(unsigned __int16 n1288)( VOID ); EFI_STATUS EFIAPI - Free pool memory (MemoryAllocationLib wrapper)( VOID ); EFI_STATUS EFIAPI result = (*(__int64 (__fastcall **)(__int64))(qword_40C0 + 72))(qword_4120); /*0x206a*/( VOID ); #endif /* __PLATFORMRESET_H__ */