/** @file
  SmbiosDataUpdateDxeLightningRidgeEXECB4.h -- Header for SmbiosDataUpdateDxeLightningRidgeEXECB4

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __SMBIOSDATAUPDATEDXELIGHTNINGRIDGEEXECB4_H__
#define __SMBIOSDATAUPDATEDXELIGHTNINGRIDGEEXECB4_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
DebugAssert(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
CompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
SmbiosDataUpdateEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
OnAcpiProcessorIdNotify(
  VOID
);

EFI_STATUS
EFIAPI
OnSmbiosDataNotify(
  VOID
);

EFI_STATUS
EFIAPI
UEFI system table pointers(
  VOID
);

EFI_STATUS
EFIAPI
gImageHandle   = NULL;  ///< Pointer to 0xF550(
  VOID
);

EFI_STATUS
EFIAPI
list pointer - cached after first retrieval(
  VOID
);

EFI_STATUS
EFIAPI
mHobList       = 0;     ///< Pointer to 0xF568(
  VOID
);

EFI_STATUS
EFIAPI
protocol interface - cached after first retrieval(
  VOID
);

EFI_STATUS
EFIAPI
*mDebugProtocol = NULL;  ///< Pointer to 0xF560(
  VOID
);

EFI_STATUS
EFIAPI
platform type register(
  VOID
);

EFI_STATUS
EFIAPI
UINT8            mCmosPlatformType = 0;   ///< Pointer to 0xF570(
  VOID
);

EFI_STATUS
EFIAPI
(ACPI Processor ID Mapping) table(
  VOID
);

EFI_STATUS
EFIAPI
table maps physical processor packages/cores to ACPI processor IDs.(
  VOID
);

EFI_STATUS
EFIAPI
CONST ACPF_TABLE_HEADER  mAcpfTable = {(
  VOID
);

EFI_STATUS
EFIAPI
update context table for ACPI processor ID mapping.(
  VOID
);

EFI_STATUS
EFIAPI
the list of data regions to update in SMBIOS.(
  VOID
);

EFI_STATUS
EFIAPI
CONST SMBIOS_UPDATE_CONTEXT_TABLE  mProcIdContextTable = {(
  VOID
);

EFI_STATUS
EFIAPI
at runtime-relative addresses 0x9040 and 0x90C8 respectively.(
  VOID
);

EFI_STATUS
EFIAPI
structures are installed via protocol notifications in the(
  VOID
);

EFI_STATUS
EFIAPI
point.(
  VOID
);

EFI_STATUS
EFIAPI
cached protocol if already located(
  VOID
);

EFI_STATUS
EFIAPI
(mDebugProtocol != NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
available pool size; require at least 0x10 bytes(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->GetMemoryMap (&gBS->Hdr.Size, NULL, NULL, NULL, NULL);(
  VOID
);

EFI_STATUS
EFIAPI
the debug protocol by its GUID(
  VOID
);

EFI_STATUS
EFIAPI
= NULL;(
  VOID
);

EFI_STATUS
EFIAPI
the platform type from CMOS register 0x4B(
  VOID
);

EFI_STATUS
EFIAPI
= IoRead8 (CMOS_INDEX_REGISTER);(
  VOID
);

EFI_STATUS
EFIAPI
messages based on platform type(
  VOID
);

EFI_STATUS
EFIAPI
= PlatformType;(
  VOID
);

EFI_STATUS
EFIAPI
platform type from alternate location(
  VOID
);

EFI_STATUS
EFIAPI
(PlatformType == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
the message mask matches the allowed output, display the message(
  VOID
);

EFI_STATUS
EFIAPI
((AllowedMask & Mask) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
the assertion handler at protocol offset +8(
  VOID
);

EFI_STATUS
EFIAPI
each GUID as two 64-bit halves for comparison(
  VOID
);

EFI_STATUS
EFIAPI
= ReadUnaligned64 (Guid1);(
  VOID
);

EFI_STATUS
EFIAPI
cached HOB list if already retrieved(
  VOID
);

EFI_STATUS
EFIAPI
(mHobList != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
the HOB list pointer from the System Table(
  VOID
);

EFI_STATUS
EFIAPI
= 0;(
  VOID
);

EFI_STATUS
EFIAPI
through HOB entries to find the SMBIOS table HOB(
  VOID
);

EFI_STATUS
EFIAPI
HOB not found - trigger assertion(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_ERROR, "\nASSERT_EFI_ERROR (Status = %r)\n", EFI_NOT_FOUND));(
  VOID
);

EFI_STATUS
EFIAPI
the SMBIOS data from the found HOB entry(
  VOID
);

EFI_STATUS
EFIAPI
= *(EFI_PHYSICAL_ADDRESS *)((
  VOID
);

EFI_STATUS
EFIAPI
HOB entries present(
  VOID
);

EFI_STATUS
EFIAPI
the result(
  VOID
);

EFI_STATUS
EFIAPI
(mHobList == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
and validate ImageHandle(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
and validate SystemTable(
  VOID
);

EFI_STATUS
EFIAPI
= SystemTable;(
  VOID
);

EFI_STATUS
EFIAPI
and validate BootServices(
  VOID
);

EFI_STATUS
EFIAPI
= SystemTable->BootServices;(
  VOID
);

EFI_STATUS
EFIAPI
and validate RuntimeServices(
  VOID
);

EFI_STATUS
EFIAPI
= SystemTable->RuntimeServices;(
  VOID
);

EFI_STATUS
EFIAPI
the SMBIOS HOB list(
  VOID
);

EFI_STATUS
EFIAPI
= GetSmbiosHobList (ImageHandle);(
  VOID
);

EFI_STATUS
EFIAPI
protocol notification for ACPI processor ID mapping(
  VOID
);

EFI_STATUS
EFIAPI
a notify function to be called when the ACPI processor ID(
  VOID
);

EFI_STATUS
EFIAPI
protocol becomes available.(
  VOID
);

EFI_STATUS
EFIAPI
protocol notification for SMBIOS data update(
  VOID
);

EFI_STATUS
EFIAPI
a notify function for the second SMBIOS data update channel.(
  VOID
);

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

EFI_STATUS
EFIAPI
protocol notification for the third data channel(
  VOID
);

EFI_STATUS
EFIAPI
a notify function for the PIRQ routing data.(
  VOID
);

EFI_STATUS
EFIAPI
the ACPF table and update SMBIOS processor ID data.(
  VOID
);

EFI_STATUS
EFIAPI
callback handles the UMPT (Uncore Memory Protocol Table)(
  VOID
);

EFI_STATUS
EFIAPI
installation event.(
  VOID
);

EFI_STATUS
EFIAPI
SMBIOS data at table offset 0x9040 contains the processor(
  VOID
);

EFI_STATUS
EFIAPI
entries that map ACPI processor IDs to physical(
  VOID
);

EFI_STATUS
EFIAPI
the PIRQ routing data and update SMBIOS interrupt tables.(
  VOID
);

EFI_STATUS
EFIAPI
callback handles the PIRQ protocol installation event.(
  VOID
);

EFI_STATUS
EFIAPI
PIRQ routing data at table offset 0x90C8 contains the(
  VOID
);

EFI_STATUS
EFIAPI
routing entries for the LightningRidge platform.(
  VOID
);

#endif /* __SMBIOSDATAUPDATEDXELIGHTNINGRIDGEEXECB4_H__ */