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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __IIOCFGUPDATEDXELIGHTNINGRIDGEEXECB4_H__
#define __IIOCFGUPDATEDXELIGHTNINGRIDGEEXECB4_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
DebugLogPrint(
  VOID
);

EFI_STATUS
EFIAPI
DebugAssertHandler(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
CompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
RegisterIioConfigPlatformData(
  VOID
);

EFI_STATUS
EFIAPI
_ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
data: IIO configuration platform data header(
  VOID
);

EFI_STATUS
EFIAPI
48-byte structure is the Platform IIO config descriptor dispatched to(
  VOID
);

EFI_STATUS
EFIAPI
UBA protocol instance. The bifurcation mapping table follows at the(
  VOID
);

EFI_STATUS
EFIAPI
offset indicated by BifurMapEntryCount acting as the offset (0x3C).(
  VOID
);

EFI_STATUS
EFIAPI
CONST IIO_CFG_PLATFORM_DATA_HEADER  mIioCfgPlatformData = {(
  VOID
);

EFI_STATUS
EFIAPI
.Revision           = 1(
  VOID
);

EFI_STATUS
EFIAPI
bytes total config(
  VOID
);

EFI_STATUS
EFIAPI
bifurcation entries (offset 0x3C)(
  VOID
);

EFI_STATUS
EFIAPI
slot config entries(
  VOID
);

EFI_STATUS
EFIAPI
SMBUS config entries(
  VOID
);

EFI_STATUS
EFIAPI
reserved(
  VOID
);

EFI_STATUS
EFIAPI
variables(
  VOID
);

EFI_STATUS
EFIAPI
definitions used by this driver(
  VOID
);

EFI_STATUS
EFIAPI
HOB list is identified by gEfiHobListGuid, but the specific HOB(
  VOID
);

EFI_STATUS
EFIAPI
this driver looks for matches the GUID at 0xC18.(
  VOID
);

EFI_STATUS
EFIAPI
CONST EFI_GUID  mIioCfgHobTargetGuid       = IIO_CFG_HOB_GUID;(
  VOID
);

EFI_STATUS
EFIAPI
protocol lookup (cached)(
  VOID
);

EFI_STATUS
EFIAPI
debug output(
  VOID
);

EFI_STATUS
EFIAPI
CMOS debug routing register(
  VOID
);

EFI_STATUS
EFIAPI
(0x70, (IoRead8 (0x70) & 0x80) | 0x4B);(
  VOID
);

EFI_STATUS
EFIAPI
value == 0, check MMIO-based debug enable(
  VOID
);

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

EFI_STATUS
EFIAPI
to UBA protocol debug output if available(
  VOID
);

EFI_STATUS
EFIAPI
= GetUbaConfigProtocol ();(
  VOID
);

EFI_STATUS
EFIAPI
interface at offset +8 is the DebugPrint function(
  VOID
);

EFI_STATUS
EFIAPI
handler(
  VOID
);

EFI_STATUS
EFIAPI
here we call it in ASSERT mode (no VA_LIST needed)(
  VOID
);

EFI_STATUS
EFIAPI
memory access(
  VOID
);

EFI_STATUS
EFIAPI
comparison (as two UINT64 values)(
  VOID
);

EFI_STATUS
EFIAPI
list retrieval(
  VOID
);

EFI_STATUS
EFIAPI
cached result(
  VOID
);

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

EFI_STATUS
EFIAPI
HOB fields:(
  VOID
);

EFI_STATUS
EFIAPI
= *(UINTN *)((UINT8 *)gST + 0x68);(
  VOID
);

EFI_STATUS
EFIAPI
scan through HOB array (each entry 24 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
(Index = 0; Index < HobCount; Index++) {(
  VOID
);

EFI_STATUS
EFIAPI
GUID at HOB entry offset 0(
  VOID
);

EFI_STATUS
EFIAPI
(ReadUnaligned64 ((UINT8 *)HobArray + Index * 24) == TargetGuid0 &&(
  VOID
);

EFI_STATUS
EFIAPI
-- data pointer at HOB entry offset 0x10(
  VOID
);

EFI_STATUS
EFIAPI
= *(VOID **)((UINT8 *)HobArray + Index * 24 + 0x10);(
  VOID
);

/// trigger assertion
EFI_STATUS
EFIAPI
not found(
  VOID
);

EFI_STATUS
EFIAPI
(0x80000000, L"\nASSERT_EFI_ERROR (Status = %r)\n");(
  VOID
);

EFI_STATUS
EFIAPI
configuration platform data registration(
  VOID
);

EFI_STATUS
EFIAPI
the UBA IIO configuration protocol(
  VOID
);

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

EFI_STATUS
EFIAPI
config data for each IIO stack GUID(
  VOID
);

EFI_STATUS
EFIAPI
function at offset +0x10 = SetPlatformData(This, RegisterGuid, DataBuffer, DataSize)(
  VOID
);

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

EFI_STATUS
EFIAPI
EFI_GUID *,       // Register GUID(
  VOID
);

EFI_STATUS
EFIAPI
buffer(
  VOID
);

EFI_STATUS
EFIAPI
size(
  VOID
);

EFI_STATUS
EFIAPI
bytes(
  VOID
);

EFI_STATUS
EFIAPI
stack registration(
  VOID
);

EFI_STATUS
EFIAPI
entry point(
  VOID
);

EFI_STATUS
EFIAPI
global UEFI service pointer cache(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
the IIO configuration HOB list (locates HOBs in SystemTable)(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
platform identification string(
  VOID
);

EFI_STATUS
EFIAPI
(0x80000000, "UBA:IioCfgUpdate-TypeLightningRidgeEXECB4\n");(
  VOID
);

EFI_STATUS
EFIAPI
IIO configuration platform data(
  VOID
);

EFI_STATUS
EFIAPI
RegisterIioConfigPlatformData ();(
  VOID
);

#endif /* __IIOCFGUPDATEDXELIGHTNINGRIDGEEXECB4_H__ */