Newer
Older
AMI-Aptio-BIOS-Reversed / CpPlatPkg / Whea / WheaSupport / WheaSupport.h
@Ajax Dong Ajax Dong 2 days ago 7 KB Restructure the repo
/** @file
  WheaSupport.h -- Header for WheaSupport

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __WHEASUPPORT_H__
#define __WHEASUPPORT_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
_ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
WheaSupportEntry(
  VOID
);

EFI_STATUS
EFIAPI
WheaCreateHestErrorSrcDescriptor(
  VOID
);

EFI_STATUS
EFIAPI
WheaGetErstRecordCount(
  VOID
);

EFI_STATUS
EFIAPI
WheaSetEinjConfig(
  VOID
);

EFI_STATUS
EFIAPI
WheaGetEinjContext(
  VOID
);

EFI_STATUS
EFIAPI
WheaGetBertContext(
  VOID
);

EFI_STATUS
EFIAPI
WheaSetErstConfig(
  VOID
);

EFI_STATUS
EFIAPI
WheaInstallTables(
  VOID
);

EFI_STATUS
EFIAPI
WheaReadyToBootNotify(
  VOID
);

EFI_STATUS
EFIAPI
WheaDriverInit(
  VOID
);

EFI_STATUS
EFIAPI
DebugLibConstructor(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
DebugAssert(
  VOID
);

EFI_STATUS
EFIAPI
EfiGetSystemConfigurationTable(
  VOID
);

EFI_STATUS
EFIAPI
RegisterWheaReadyToBoot(
  VOID
);

EFI_STATUS
EFIAPI
InitAcpiTableHeader(
  VOID
);

EFI_STATUS
EFIAPI
CompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
file: 0309_WheaSupport_95b18380d0d5 (from HR650X_3647_AJAX_BIOS)(
  VOID
);

EFI_STATUS
EFIAPI
info:(
  VOID
);

EFI_STATUS
EFIAPI
DXE driver implements Windows Hardware Error Architecture (WHEA)(
  VOID
);

EFI_STATUS
EFIAPI
SMM communication at ReadyToBoot:(
  VOID
);

EFI_STATUS
EFIAPI
driver also allocates a shared communication buffer (0xE000 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
0x4000 offset for HEST+ERST data, 0x6000 offset for BERT.(
  VOID
);

EFI_STATUS
EFIAPI
Variables (from IDA - .data section, imagebase 0x0)(
  VOID
);

EFI_STATUS
EFIAPI
globals (set during WheaSupportEntry)(
  VOID
);

EFI_STATUS
EFIAPI
EFI_SYSTEM_TABLE         *gSystemTable      = NULL;    // 0x1FE0(
  VOID
);

EFI_STATUS
EFIAPI
EFI_RUNTIME_SERVICES     *gRuntimeServices  = NULL;    // 0x1FF8(
  VOID
);

EFI_STATUS
EFIAPI
instance allocations (from WheaDriverInit)(
  VOID
);

EFI_STATUS
EFIAPI
SMM communication buffer(
  VOID
);

EFI_STATUS
EFIAPI
into comm buffer(
  VOID
);

EFI_STATUS
EFIAPI
VOID                     *gHestErstData     = NULL;    // 0x1F78: at +0x4000(
  VOID
);

EFI_STATUS
EFIAPI
UINT32                   gSize0x2000        = 0x2000;  // 0x1F70(
  VOID
);

EFI_STATUS
EFIAPI
CHAR8                    gWheaStr[]         = "WHEA";  // 0x1F30(
  VOID
);

EFI_STATUS
EFIAPI
handles(
  VOID
);

EFI_STATUS
EFIAPI
VOID                     *gDebugPort        = NULL;    // 0x2000(
  VOID
);

EFI_STATUS
EFIAPI
VOID                     *gDS               = NULL;    // 0x2008(
  VOID
);

EFI_STATUS
EFIAPI
VOID                     *gHobList          = NULL;    // 0x2018(
  VOID
);

EFI_STATUS
EFIAPI
table for WHEA protocol(
  VOID
);

EFI_STATUS
EFIAPI
VOID                     *gFnGetErst        = NULL;    // 0x1FA8(
  VOID
);

EFI_STATUS
EFIAPI
VOID                     *gFnGetEinjCtx     = NULL;    // 0x1FB8(
  VOID
);

EFI_STATUS
EFIAPI
VOID                     *gFnSetErst        = NULL;    // 0x1FC8(
  VOID
);

EFI_STATUS
EFIAPI
(CONTAINING_RECORD) macros(
  VOID
);

EFI_STATUS
EFIAPI
WHEA instance uses signature 0x41424344 ("ABCD") at offset -112 bytes(
  VOID
);

EFI_STATUS
EFIAPI
the checked field pointer.(
  VOID
);

EFI_STATUS
EFIAPI
(0x2A0)(
  VOID
);

EFI_STATUS
EFIAPI
with overlap handling.(
  VOID
);

EFI_STATUS
EFIAPI
copy for overlapping regions(
  VOID
);

EFI_STATUS
EFIAPI
copy in 8-byte chunks(
  VOID
);

EFI_STATUS
EFIAPI
(0x2F0)(
  VOID
);

EFI_STATUS
EFIAPI
/ WheaSupportEntry / WheaDriverInit(
  VOID
);

EFI_STATUS
EFIAPI
(0x358)(
  VOID
);

EFI_STATUS
EFIAPI
UEFI boot services / runtime services globals(
  VOID
);

EFI_STATUS
EFIAPI
DxeServicesTable, PCI USRA protocol, HOB list, PCD protocol.(
  VOID
);

EFI_STATUS
EFIAPI
globals(
  VOID
);

EFI_STATUS
EFIAPI
DxeServicesTable(
  VOID
);

EFI_STATUS
EFIAPI
PCI USRA protocol (for MM PCI config access)(
  VOID
);

EFI_STATUS
EFIAPI
(0x524)(
  VOID
);

EFI_STATUS
EFIAPI
a HEST error source descriptor in the HEST table area.(
  VOID
);

/// 656 bytes
EFI_STATUS
EFIAPI
= IA-32 Machine Check (standard)(
  VOID
);

/// 664 bytes
EFI_STATUS
EFIAPI
= IPMI(
  VOID
);

/// 48 bytes (16+32)
EFI_STATUS
EFIAPI
= PCIe Root Port AER(
  VOID
);

/// 44 bytes (16+28)
EFI_STATUS
EFIAPI
= PCIe Device AER(
  VOID
);

/// 56 bytes (16+40)
EFI_STATUS
EFIAPI
= PCIe Bridge AER(
  VOID
);

/// variable
EFI_STATUS
EFIAPI
= Generic Hardware Error Source(
  VOID
);

EFI_STATUS
EFIAPI
table ptr(
  VOID
);

EFI_STATUS
EFIAPI
end offset(
  VOID
);

EFI_STATUS
EFIAPI
9: Generic Hardware Error Source(
  VOID
);

EFI_STATUS
EFIAPI
6, 7, 8 (PCIe AER)(
  VOID
);

EFI_STATUS
EFIAPI
(0x7DC)(
  VOID
);

EFI_STATUS
EFIAPI
(0x7E0)(
  VOID
);

EFI_STATUS
EFIAPI
EINJ table error injection entries.(
  VOID
);

EFI_STATUS
EFIAPI
offset: -0x70 (112 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
EinjContext at Instance+0x68, EinjEntryCount in table(
  VOID
);

EFI_STATUS
EFIAPI
table length based on entries(
  VOID
);

EFI_STATUS
EFIAPI
(0x8BC)(
  VOID
);

EFI_STATUS
EFIAPI
(0x91C)(
  VOID
);

EFI_STATUS
EFIAPI
(0x9A8)(
  VOID
);

EFI_STATUS
EFIAPI
(0xA5C)(
  VOID
);

EFI_STATUS
EFIAPI
HEST, ERST, BERT, EINJ tables via SMM communication protocol.(
  VOID
);

EFI_STATUS
EFIAPI
->Communicate() for each table, then frees buffers.(
  VOID
);

EFI_STATUS
EFIAPI
installed(
  VOID
);

EFI_STATUS
EFIAPI
v15 = 0;(
  VOID
);

EFI_STATUS
EFIAPI
installed and free tables(
  VOID
);

EFI_STATUS
EFIAPI
(0xBBC)(
  VOID
);

EFI_STATUS
EFIAPI
callback: calls WheaInstallTables.(
  VOID
);

EFI_STATUS
EFIAPI
EFI_ALREADY_STARTED (0x8000000000000014).(
  VOID
);

EFI_STATUS
EFIAPI
(0xC10) - Main init function(
  VOID
);

EFI_STATUS
EFIAPI
capture(
  VOID
);

EFI_STATUS
EFIAPI
WHEA protocol - if found, skip init (already registered)(
  VOID
);

EFI_STATUS
EFIAPI
tables(
  VOID
);

EFI_STATUS
EFIAPI
header(
  VOID
);

EFI_STATUS
EFIAPI
header (determine entries from HW-reduced flag)(
  VOID
);

EFI_STATUS
EFIAPI
SMM communication buffer (0xE000)(
  VOID
);

EFI_STATUS
EFIAPI
gHestErstData = (UINT8 *)gCommBuffer + 0x4000;(
  VOID
);

EFI_STATUS
EFIAPI
error region(
  VOID
);

EFI_STATUS
EFIAPI
table for protocol(
  VOID
);

EFI_STATUS
EFIAPI
SMM Communication protocol(
  VOID
);

EFI_STATUS
EFIAPI
ReadyToBoot event(
  VOID
);

EFI_STATUS
EFIAPI
(0x1068)(
  VOID
);

EFI_STATUS
EFIAPI
(0x10E8)(
  VOID
);

EFI_STATUS
EFIAPI
(0x1170)(
  VOID
);

EFI_STATUS
EFIAPI
UEFI debug library functions used by MDE modules.(
  VOID
);

EFI_STATUS
EFIAPI
edk2/MdePkg/Library/UefiDebugLibStdErr/(
  VOID
);

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

EFI_STATUS
EFIAPI
allocation helpers(
  VOID
);

EFI_STATUS
EFIAPI
(0x1208)(
  VOID
);

EFI_STATUS
EFIAPI
(0x12CC)(
  VOID
);

EFI_STATUS
EFIAPI
(0x1354)(
  VOID
);

EFI_STATUS
EFIAPI
(0x15D0)(
  VOID
);

EFI_STATUS
EFIAPI
(0x13D8)(
  VOID
);

EFI_STATUS
EFIAPI
(0x1458)(
  VOID
);

EFI_STATUS
EFIAPI
(0x14F8)(
  VOID
);

EFI_STATUS
EFIAPI
(0x1568)(
  VOID
);

EFI_STATUS
EFIAPI
(0x165C)(
  VOID
);

EFI_STATUS
EFIAPI
initial OEM placeholder(
  VOID
);

EFI_STATUS
EFIAPI
OEM values from PCD protocol(
  VOID
);

EFI_STATUS
EFIAPI
ID(
  VOID
);

EFI_STATUS
EFIAPI
Rev(
  VOID
);

EFI_STATUS
EFIAPI
Revision(
  VOID
);

#endif /* __WHEASUPPORT_H__ */