Newer
Older
AMI-Aptio-BIOS-Reversed / PurleyPlatPkg / Platform / RuntimeDxe / PlatformReset / PlatformReset.h
/** @file
  PlatformReset.h -- Header for PlatformReset

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __PLATFORMRESET_H__
#define __PLATFORMRESET_H__

#include "../uefi_headers/Uefi.h"

extern EFI_HANDLE              ImageHandle;
extern EFI_SYSTEM_TABLE        *gST;
extern EFI_BOOT_SERVICES       *gBS;
extern EFI_RUNTIME_SERVICES    *gRT;
extern EFI_BOOT_SERVICES       *mBS;
extern EFI_RUNTIME_SERVICES    *mRT;
extern EFI_DS                  *gDS;
extern EFI_EVENT               mRuntimePciEvent;
extern EFI_EVENT               mEfiExitBootServiceEvent;
extern EFI_MM_PCI_USRA         *mPciUsra;
extern VOID                    *mHobList;
extern EFI_EVENT               mRuntimeEvent;
extern EFI_EVENT               mEfiEventReadyToBoot;
extern EFI_EVENT               mVirtualAddressChangeEvent;
extern EFI_RUNTIME_SERVICES    *mRuntimeServices;
extern EFI_EVENT               mSetVirtualAddressMapEvent;
extern EFI_RESET_SYSTEM         mOriginalResetSystem;
extern UINTN                    mPciExpressRegBase;
extern UINTN                    mPciExpressMmBaseCount;
extern UINTN                    mPciExpressMmBaseIndex;
extern VOID                    *mPciExpressMmBaseRegBase;
extern PCD_PROTOCOL            *mPcd;
extern BOOLEAN                  mRuntimeVirtualAddrMapDone;
extern BOOLEAN                  mRuntimePciExpressInitialized;
extern VOID                    *mDebugOutputProtocol;

EFI_STATUS EFIAPI ModuleEntryPoint (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  );

EFI_STATUS EFIAPI PlatformResetDriverEntryPoint (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  );

EFI_STATUS EFIAPI PlatformResetUnload (VOID);

EFI_STATUS EFIAPI PlatformResetEntryPoint (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  );

VOID EFIAPI PlatformResetSystem (
  IN EFI_RESET_TYPE  ResetType,
  IN EFI_STATUS      ResetStatus,
  IN UINTN           DataSize,
  IN VOID            *ResetData OPTIONAL
  );

VOID EFIAPI NullNotification (VOID);

EFI_STATUS EFIAPI SaveOriginalResetSystemNotify (VOID);

VOID *EFIAPI ZeroMemWrapper (
  IN VOID  *Buffer,
  IN UINTN  Length
  );

VOID EFIAPI CpuPauseWrapper (VOID);
UINT64 EFIAPI AsmReadTscWrapper (VOID);
VOID EFIAPI EnableInterruptsWrapper (VOID);
VOID EFIAPI DisableInterruptsWrapper (VOID);
UINTN EFIAPI AsmReadEflagsWrapper (VOID);

EFI_STATUS EFIAPI ZeroMemValidated (
  IN VOID  *Buffer,
  IN UINTN  Length
  );

EFI_STATUS EFIAPI GetDebugOutputProtocol (VOID);

EFI_STATUS EFIAPI DebugPrintWrapper (
  IN EFI_STATUS    ErrorLevel,
  IN CONST CHAR8   *Format,
  ...
  );

EFI_STATUS EFIAPI DebugAssertWrapper (
  IN EFI_STATUS  File,
  IN EFI_STATUS  Line,
  IN EFI_STATUS  Description
  );

VOID EFIAPI ClearBootServicesPointerNotify (VOID);
VOID EFIAPI ExitBootServicesNotify (VOID);

UINTN EFIAPI GetSystemConfigurationTableByGuid (
  IN EFI_GUID   *TableGuid,
  OUT VOID      **Table
  );

VOID *EFIAPI GetHobListPointer (VOID);
VOID EFIAPI SetVirtualAddressMapNotify (VOID);
VOID EFIAPI ConvertRuntimePointersNotify (VOID);
EFI_STATUS EFIAPI RuntimePciExpressCleanupNotify (VOID);

UINTN EFIAPI GetPciExpressMmioConfigSpaceAddress (
  IN UINTN  Address
  );

BOOLEAN EFIAPI CompareGuid64 (
  IN EFI_GUID  *Guid1,
  IN EFI_GUID  *Guid2
  );

UINT64 EFIAPI ReadUnaligned64 (
  IN CONST VOID  *Buffer
  );

VOID *EFIAPI GetPcdProtocolPointer (VOID);
VOID EFIAPI IoWrite16Wrapper (
  IN OUT volatile UINT16  *Port
  );
UINT32 EFIAPI IoRead32Wrapper (
  IN UINT16  Port
  );
EFI_STATUS EFIAPI FreeRuntimePciExpressMap (VOID);

#endif /* __PLATFORMRESET_H__ */