Newer
Older
AMI-Aptio-BIOS-Reversed / LenovoServerPkg / POSTStatus / LnvDxeStatusCode / LnvDxeStatusCode.h
@Ajax Dong Ajax Dong 2 days ago 4 KB Restructure the repo
/** @file
  LnvDxeStatusCode.h -- Header for LnvDxeStatusCode

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __LNVDXESTATUSCODE_H__
#define __LNVDXESTATUSCODE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
ReportStatusCodeFiltered(
  VOID
);

EFI_STATUS
EFIAPI
DebugAssertViaProtocol(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
IsHobListGuid(
  VOID
);

EFI_STATUS
EFIAPI
LocateRuntimeStatusCodeProtocol(
  VOID
);

EFI_STATUS
EFIAPI
OnExitBootServicesClearBs(
  VOID
);

EFI_STATUS
EFIAPI
OnExitBootServicesConvertLenovo(
  VOID
);

EFI_STATUS
EFIAPI
RuntimeProtocolNotifyNop(
  VOID
);

EFI_STATUS
EFIAPI
OnExitBootServicesConvertReg(
  VOID
);

EFI_STATUS
EFIAPI
OnExitBootServicesConvertRuntime(
  VOID
);

EFI_STATUS
EFIAPI
OnVirtualAddressChange(
  VOID
);

EFI_STATUS
EFIAPI
DriverSetupInit(
  VOID
);

EFI_STATUS
EFIAPI
LnvDxeStatusCodeEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
Lenovo Status Code Protocol (0x3000):(
  VOID
);

EFI_STATUS
EFIAPI
(0x3010) from MdeModulePkg.(
  VOID
);

EFI_STATUS
EFIAPI
(0x3020) from MdePkg.(
  VOID
);

EFI_STATUS
EFIAPI
(0x3030).(
  VOID
);

EFI_STATUS
EFIAPI
(0x3040).(
  VOID
);

EFI_STATUS
EFIAPI
custom protocol vtable layout(
  VOID
);

EFI_STATUS
EFIAPI
+0x00(
  VOID
);

EFI_STATUS
EFIAPI
+0x08(
  VOID
);

EFI_STATUS
EFIAPI
variables(
  VOID
);

EFI_STATUS
EFIAPI
EFI_SYSTEM_TABLE        *gSystemTable_        = NULL;   // 0x3050(
  VOID
);

EFI_STATUS
EFIAPI
EFI_RUNTIME_SERVICES    *gRuntimeServices_    = NULL;   // 0x3068(
  VOID
);

EFI_STATUS
EFIAPI
VOID                    *gRegClearBs_         = NULL;   // 0x3080(
  VOID
);

EFI_STATUS
EFIAPI
VOID                    *gLenovoProtocol_     = NULL;   // 0x3090(
  VOID
);

EFI_STATUS
EFIAPI
BOOLEAN                  gRuntimeInitDone_    = FALSE;  // 0x30A0(
  VOID
);

EFI_STATUS
EFIAPI
VOID                    *gRegVirtAddrChange_  = NULL;   // 0x30B8(
  VOID
);

EFI_STATUS
EFIAPI
VOID                    *gRuntimeServicesReg_ = NULL;   // 0x30D0(
  VOID
);

EFI_STATUS
EFIAPI
//(
  VOID
);

EFI_STATUS
EFIAPI
constants in .data section(
  VOID
);

EFI_STATUS
EFIAPI
CONST GUID mStatusCodeProtocolGuid       = LENOVO_STATUS_CODE_PROTOCOL_GUID;(
  VOID
);

EFI_STATUS
EFIAPI
debug register definitions(
  VOID
);

EFI_STATUS
EFIAPI
code severity masks(
  VOID
);

EFI_STATUS
EFIAPI
declarations(
  VOID
);

/// read a UINT64 from memory
EFI_STATUS
EFIAPI
(0x179C)(
  VOID
);

/// compare a HOB UUID to gEfiHobListGuid
EFI_STATUS
EFIAPI
(0x172C)(
  VOID
);

/// find the HOB list in the
EFI_STATUS
EFIAPI
(0x159C)(
  VOID
);

EFI_STATUS
EFIAPI
configuration table(
  VOID
);

EFI_STATUS
EFIAPI
table entry: GUID (16 bytes) + VendorTable (8 bytes) = 24 bytes.(
  VOID
);

EFI_STATUS
EFIAPI
(IsHobListGuid ((EFI_GUID *)(&EntryPtr[Index * 3]))) {(
  VOID
);

EFI_STATUS
EFIAPI
((
  VOID
);

/// locate the custom Lenovo protocol
EFI_STATUS
EFIAPI
(0x1420)(
  VOID
);

EFI_STATUS
EFIAPI
= gBootServicesBs_->AllocatePool (EfiBootServicesData, 31, &Pool);(
  VOID
);

/// CMOS-gated status code report
EFI_STATUS
EFIAPI
(0x14A8)(
  VOID
);

EFI_STATUS
EFIAPI
debug level from CMOS register 0x4B.(
  VOID
);

EFI_STATUS
EFIAPI
NMI bit (0x80) in the index byte.(
  VOID
);

EFI_STATUS
EFIAPI
= (UINT8)(IoRead8 (CMOS_PORT_INDEX) & CMOS_NMI_MASK) | CMOS_DEBUG_REG;(
  VOID
);

EFI_STATUS
EFIAPI
severity filter mask from the debug level.(
  VOID
);

EFI_STATUS
EFIAPI
0 -> silent (all filtered)(
  VOID
);

EFI_STATUS
EFIAPI
1 -> errors only  (0xC0000000)(
  VOID
);

EFI_STATUS
EFIAPI
2 -> + warnings   (0x80000000)(
  VOID
);

EFI_STATUS
EFIAPI
3 -> all severities(
  VOID
);

EFI_STATUS
EFIAPI
= REPORT_SEVERITY_ERROR;(
  VOID
);

/// forward ASSERT via the Lenovo protocol
EFI_STATUS
EFIAPI
(0x1528)(
  VOID
);

EFI_STATUS
EFIAPI
(0x168C)(
  VOID
);

EFI_STATUS
EFIAPI
callbacks(
  VOID
);

/// clear the boot-services pointer on ExitBootServices.
EFI_STATUS
EFIAPI
(0x1568)(
  VOID
);

EFI_STATUS
EFIAPI
EFIAPI(
  VOID
);

/// convert the Lenovo protocol pointer on ExitBS.
EFI_STATUS
EFIAPI
(0x1574)(
  VOID
);

/// NOP protocol notification.
EFI_STATUS
EFIAPI
(0x1674)(
  VOID
);

/// convert RuntimeServices notification registration.
EFI_STATUS
EFIAPI
(0x1678)(
  VOID
);

/// convert runtime protocol ptr on ExitBS/VAC.
EFI_STATUS
EFIAPI
(0x16EC)(
  VOID
);

/// re-locate runtime protocol + set init done flag.
EFI_STATUS
EFIAPI
(0x1714)(
  VOID
);

/// main initialisation
EFI_STATUS
EFIAPI
(0x10F4)(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
= gBootServicesBs_->RegisterProtocolNotify ((
  VOID
);

EFI_STATUS
EFIAPI
(0x10D0)(
  VOID
);

#endif /* __LNVDXESTATUSCODE_H__ */