/** @file
PciOutOfResourceSetupPage.h -- Header for PciOutOfResourceSetupPage
Copyright (c) HR650X BIOS Decompilation Project
**/
#ifndef __PCIOUTOFRESOURCESETUPPAGE_H__
#define __PCIOUTOFRESOURCESETUPPAGE_H__
#include "../uefi_headers/Uefi.h"
//
// Function Prototypes
//
EFI_STATUS
EFIAPI
StrLen(
VOID
);
EFI_STATUS
EFIAPI
ReadUnaligned64(
VOID
);
EFI_STATUS
EFIAPI
CompareHobGuid(
VOID
);
EFI_STATUS
EFIAPI
GetIfrBinaryLength(
VOID
);
EFI_STATUS
EFIAPI
ReadDebugLevelFromCmos(
VOID
);
EFI_STATUS
EFIAPI
data from .data section(
VOID
);
EFI_STATUS
EFIAPI
Data Blob (from .data)(
VOID
);
EFI_STATUS
EFIAPI
the HII package list (formset GUID, IFR binary, strings, etc.)(
VOID
);
EFI_STATUS
EFIAPI
function wrappers (library-level)(
VOID
);
EFI_STATUS
EFIAPI
< _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength(
VOID
);
EFI_STATUS
EFIAPI
Source and Destination overlap with Source > Destination(
VOID
);
EFI_STATUS
EFIAPI
forward. If Destination > Source and they overlap, copy(
VOID
);
EFI_STATUS
EFIAPI
to avoid clobbering.(
VOID
);
EFI_STATUS
EFIAPI
= (UINT8 *)Destination;(
VOID
);
/// copy backward from end
EFI_STATUS
EFIAPI
with Dst > Src(
VOID
);
EFI_STATUS
EFIAPI
+= Length;(
VOID
);
EFI_STATUS
EFIAPI
to 8-byte boundary for backward copy(
VOID
);
EFI_STATUS
EFIAPI
((UINTN)Src & 7) {(
VOID
);
EFI_STATUS
EFIAPI
remaining bytes backward(
VOID
);
EFI_STATUS
EFIAPI
(Length > 0) {(
VOID
);
EFI_STATUS
EFIAPI
copy (no overlap, or safe to copy forward)(
VOID
);
EFI_STATUS
EFIAPI
= (UINTN)Src & 7;(
VOID
);
EFI_STATUS
EFIAPI
both pointers(
VOID
);
EFI_STATUS
EFIAPI
(AlignmentDelta != 0) {(
VOID
);
EFI_STATUS
EFIAPI
8 bytes at a time(
VOID
);
EFI_STATUS
EFIAPI
(Length >= 8) {(
VOID
);
EFI_STATUS
EFIAPI
remaining bytes(
VOID
);
EFI_STATUS
EFIAPI
+ Zero 8 bytes at a time(
VOID
);
EFI_STATUS
EFIAPI
AlignedSize = Length & ~7;(
VOID
);
EFI_STATUS
EFIAPI
Form Installation(
VOID
);
EFI_STATUS
EFIAPI
for end-of-IFR marker: opcode 0x7F followed by 0xFF(
VOID
);
EFI_STATUS
EFIAPI
(Cursor[0] == 0x7F && Cursor[1] == 0xFF) {(
VOID
);
EFI_STATUS
EFIAPI
the 4-byte EFI_IFR_END_FORM opcode(
VOID
);
EFI_STATUS
EFIAPI
opcode length from bytes [2] (lo) and [3] (hi)(
VOID
);
EFI_STATUS
EFIAPI
+= 4; // Skip ahead to the content(
VOID
);
EFI_STATUS
EFIAPI
as unsigned(
VOID
);
EFI_STATUS
EFIAPI
pointer to last non-null character(
VOID
);
EFI_STATUS
EFIAPI
current CMOS index, then read index 0x4B(
VOID
);
EFI_STATUS
EFIAPI
= IoRead8 (0x70);(
VOID
);
EFI_STATUS
EFIAPI
(DebugByte == 0) {(
VOID
);
EFI_STATUS
EFIAPI
ACPI/FADT bit to determine behavior(
VOID
);
EFI_STATUS
EFIAPI
= MmioRead8 (0xFEDAF0490) & 2 | 1;(
VOID
);
EFI_STATUS
EFIAPI
disabled(
VOID
);
EFI_STATUS
EFIAPI
}(
VOID
);
EFI_STATUS
EFIAPI
debug(
VOID
);
EFI_STATUS
EFIAPI
UEFI protocol interfaces and library functions, the remaining(
VOID
);
EFI_STATUS
EFIAPI
(sub_EB4 ExtractConfig, sub_1178 RouteConfig, sub_13F0(
VOID
);
EFI_STATUS
EFIAPI
described in the companion PciOutOfResourceSetupPage.md(
VOID
);
EFI_STATUS
EFIAPI
HII Config Access protocol registration flow:(
VOID
);
#endif /* __PCIOUTOFRESOURCESETUPPAGE_H__ */