/** @file
SlotDataUpdateDxeNeonCityEPECB.h -- Header for SlotDataUpdateDxeNeonCityEPECB
Copyright (c) HR650X BIOS Decompilation Project
**/
#ifndef __SLOTDATAUPDATEDXENEONCITYEPECB_H__
#define __SLOTDATAUPDATEDXENEONCITYEPECB_H__
#include "../uefi_headers/Uefi.h"
//
// Function Prototypes
//
EFI_STATUS
EFIAPI
ReadUnaligned64(
VOID
);
EFI_STATUS
EFIAPI
CompareGuidValue(
VOID
);
EFI_STATUS
EFIAPI
PlatformSlotDataInit(
VOID
);
EFI_STATUS
EFIAPI
UbaDebugAssert(
VOID
);
EFI_STATUS
EFIAPI
SlotDataAccessor1(
VOID
);
EFI_STATUS
EFIAPI
SlotDataAccessor2(
VOID
);
EFI_STATUS
EFIAPI
SlotDataUpdateEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
GUIDs(
VOID
);
EFI_STATUS
EFIAPI
Debug Protocol GUID used by assertion handler.(
VOID
);
EFI_STATUS
EFIAPI
gUbaDebugProtocolGuid =(
VOID
);
EFI_STATUS
EFIAPI
Slot Data Update Protocol GUID.(
VOID
);
EFI_STATUS
EFIAPI
gUbaSlotDataUpdateProtocolGuid =(
VOID
);
EFI_STATUS
EFIAPI
Slot Config GUID 1 (maps to 40-byte PSLT).(
VOID
);
EFI_STATUS
EFIAPI
gSlotConfigGuid40 =(
VOID
);
EFI_STATUS
EFIAPI
Slot Config GUID 2 (maps to 32-byte PSLT).(
VOID
);
EFI_STATUS
EFIAPI
gSlotConfigGuid32 =(
VOID
);
EFI_STATUS
EFIAPI
List GUID (defined in MdePkg).(
VOID
);
EFI_STATUS
EFIAPI
= {0x7739F24C, 0x93D7, 0x11D4, {0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D}}(
VOID
);
EFI_STATUS
EFIAPI
gEfiHobListGuid =(
VOID
);
EFI_STATUS
EFIAPI
Variables(
VOID
);
EFI_STATUS
EFIAPI
*gSystemTable = NULL;(
VOID
);
EFI_STATUS
EFIAPI
UBA debug protocol pointer (for ASSERT output).(
VOID
);
EFI_STATUS
EFIAPI
*gUbaDebugProtocol = NULL;(
VOID
);
EFI_STATUS
EFIAPI
HOB list pointer.(
VOID
);
EFI_STATUS
EFIAPI
*gHobList = NULL;(
VOID
);
EFI_STATUS
EFIAPI
data: Platform Slot Table (PSLT) entries(
VOID
);
EFI_STATUS
EFIAPI
entry 1 (40 bytes): Dual-slot configuration.(
VOID
);
EFI_STATUS
EFIAPI
= 0x4B0 -> SlotDataAccessor1(
VOID
);
EFI_STATUS
EFIAPI
= 0x4B4 -> SlotDataAccessor2(
VOID
);
EFI_STATUS
EFIAPI
UINT64 mSlotConfig40[] = {(
VOID
);
EFI_STATUS
EFIAPI
entry 2 (32 bytes): Single-slot configuration.(
VOID
);
EFI_STATUS
EFIAPI
UINT64 mSlotConfig32[] = {(
VOID
);
EFI_STATUS
EFIAPI
Prototypes (forward declarations)(
VOID
);
EFI_STATUS
EFIAPI
*LocateDebugProtocol (VOID);(
VOID
);
EFI_STATUS
EFIAPI
Data Accessor Functions (referenced by PSLT entries)(
VOID
);
EFI_STATUS
EFIAPI
Functions(
VOID
);
EFI_STATUS
EFIAPI
Debug Protocol Support(
VOID
);
EFI_STATUS
EFIAPI
TPL to HIGH_LEVEL to serialize access during protocol lookup.(
VOID
);
EFI_STATUS
EFIAPI
= gBootServices->RaiseTPL (TPL_HIGH_LEVEL);(
VOID
);
EFI_STATUS
EFIAPI
the UBA debug protocol for assertion output.(
VOID
);
EFI_STATUS
EFIAPI
= gBootServices->LocateProtocol ((
VOID
);
EFI_STATUS
EFIAPI
the assertion function at protocol + 0x08 (index 1).(
VOID
);
EFI_STATUS
EFIAPI
List Support(
VOID
);
EFI_STATUS
EFIAPI
early if there are no configuration table entries.(
VOID
);
EFI_STATUS
EFIAPI
(gSystemTable->NumberOfTableEntries == 0) {(
VOID
);
EFI_STATUS
EFIAPI
through configuration table entries to find gEfiHobListGuid.(
VOID
);
EFI_STATUS
EFIAPI
(Index = 0; Index < gSystemTable->NumberOfTableEntries; Index++) {(
VOID
);
EFI_STATUS
EFIAPI
the HOB list - cache and return the pointer.(
VOID
);
EFI_STATUS
EFIAPI
= Entry->VendorTable;(
VOID
);
EFI_STATUS
EFIAPI
list not found - report error and assert.(
VOID
);
EFI_STATUS
EFIAPI
((DEBUG_ERROR, "\nASSERT_EFI_ERROR (Status = %r)\n", EFI_NOT_FOUND));(
VOID
);
EFI_STATUS
EFIAPI
Detection & Slot Data Initialization(
VOID
);
EFI_STATUS
EFIAPI
current NMI state and select CMOS register 0x4B.(
VOID
);
EFI_STATUS
EFIAPI
0x4B holds platform configuration data.(
VOID
);
EFI_STATUS
EFIAPI
= IoRead8 (0x70);(
VOID
);
EFI_STATUS
EFIAPI
special CMOS values:(
VOID
);
EFI_STATUS
EFIAPI
(CmosValue > 3) {(
VOID
);
EFI_STATUS
EFIAPI
hardware strap from fixed MMIO address.(
VOID
);
EFI_STATUS
EFIAPI
1 selects platform type; OR with 1 for default.(
VOID
);
EFI_STATUS
EFIAPI
= (MmioRead32 (0xFDAF0490) & 2) | 1;(
VOID
);
EFI_STATUS
EFIAPI
CMOS value to platform type flags:(
VOID
);
EFI_STATUS
EFIAPI
1 -> Flag | 0x00000004(
VOID
);
EFI_STATUS
EFIAPI
-> Flag | 0x00000006(
VOID
);
EFI_STATUS
EFIAPI
((CmosValue - 1) <= 0xFD) {(
VOID
);
EFI_STATUS
EFIAPI
to UBA protocol slot data init handler (index 0 = first function pointer).(
VOID
);
EFI_STATUS
EFIAPI
protocol's first function handles platform-specific init dispatch:(
VOID
);
EFI_STATUS
EFIAPI
= ((UINTN (EFIAPI *)(UINTN, CHAR8 *, UINTN))((
VOID
);
EFI_STATUS
EFIAPI
Point(
VOID
);
EFI_STATUS
EFIAPI
global EFI handles.(
VOID
);
EFI_STATUS
EFIAPI
= ImageHandle;(
VOID
);
EFI_STATUS
EFIAPI
input parameters (uses UBA assert for output).(
VOID
);
EFI_STATUS
EFIAPI
(ImageHandle != NULL);(
VOID
);
EFI_STATUS
EFIAPI
the HOB list from the system table configuration table.(
VOID
);
EFI_STATUS
EFIAPI
();(
VOID
);
EFI_STATUS
EFIAPI
platform detection and slot data initialization(
VOID
);
EFI_STATUS
EFIAPI
the UBA framework. This checks CMOS register 0x4B(
VOID
);
EFI_STATUS
EFIAPI
dispatches to the appropriate platform type handler.(
VOID
);
EFI_STATUS
EFIAPI
(0x80000000, "UBA:SlotDataUpdate-TypeNeonCityEPECB\n");(
VOID
);
EFI_STATUS
EFIAPI
the UBA slot data update protocol.(
VOID
);
EFI_STATUS
EFIAPI
= 0;(
VOID
);
EFI_STATUS
EFIAPI
32-byte slot configuration (single slot, referenced by gSlotConfigGuid32).(
VOID
);
EFI_STATUS
EFIAPI
= ((EFI_STATUS (EFIAPI *)(VOID *, EFI_GUID *, VOID *, UINTN))((
VOID
);
EFI_STATUS
EFIAPI
40-byte slot configuration (dual slot, referenced by gSlotConfigGuid40).(
VOID
);
#endif /* __SLOTDATAUPDATEDXENEONCITYEPECB_H__ */