/** @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__ */