# PciOutOfResourceSetupPage

## Function Table

| Address | Name | Description |
|---------|------|-------------|
|  | **StrLen** |  |
|  | **ReadUnaligned64** |  |
|  | **CompareHobGuid** |  |
|  | **GetIfrBinaryLength** |  |
|  | **ReadDebugLevelFromCmos** |  |
| Global | **data from .data section** |  |
| HII | **Data Blob (from .data)** |  |
| Contains | **the HII package list (formset GUID, IFR binary, strings, etc.)** |  |
| Helper | **function wrappers (library-level)** |  |
| Length | **< _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength** |  |
| If | **Source and Destination overlap with Source > Destination** |  |
| copy | **forward. If Destination > Source and they overlap, copy** |  |
| backward | **to avoid clobbering.** |  |
| Dst | **= (UINT8 *)Destination;** |  |
| Overlap | **with Dst > Src** | copy backward from end |
| Src | **+= Length;** |  |
| Align | **to 8-byte boundary for backward copy** |  |
| while | **((UINTN)Src & 7) {** |  |
| Copy | **remaining bytes backward** |  |
| while | **(Length > 0) {** |  |
| Forward | **copy (no overlap, or safe to copy forward)** |  |
| AlignmentDelta | **= (UINTN)Src & 7;** |  |
| Align | **both pointers** |  |
| if | **(AlignmentDelta != 0) {** |  |
| Copy | **8 bytes at a time** |  |
| if | **(Length >= 8) {** |  |
| Copy | **remaining bytes** |  |
| Align | **+ Zero 8 bytes at a time** |  |
| UINTN | **AlignedSize = Length & ~7;** |  |
| HII | **Form Installation** |  |
| Check | **for end-of-IFR marker: opcode 0x7F followed by 0xFF** |  |
| if | **(Cursor[0] == 0x7F && Cursor[1] == 0xFF) {** |  |
| Include | **the 4-byte EFI_IFR_END_FORM opcode** |  |
| Get | **opcode length from bytes [2] (lo) and [3] (hi)** |  |
| Cursor | **+= 4;  // Skip ahead to the content** |  |
| treat | **as unsigned** |  |
| Return | **pointer to last non-null character** |  |
| Save | **current CMOS index, then read index 0x4B** |  |
| CmosIndex | **= IoRead8 (0x70);** |  |
| if | **(DebugByte == 0) {** |  |
| Read | **ACPI/FADT bit to determine behavior** |  |
| DebugByte | **= MmioRead8 (0xFEDAF0490) & 2 | 1;** |  |
| Debug | **disabled** |  |
| 0x80000004 | **}** |  |
| Full | **debug** |  |
| to | **UEFI protocol interfaces and library functions, the remaining** |  |
| functions | **(sub_EB4 ExtractConfig, sub_1178 RouteConfig, sub_13F0** |  |
| fully | **described in the companion PciOutOfResourceSetupPage.md** |  |
| The | **HII Config Access protocol registration flow:** |  |

---
*Generated by HR650X BIOS Decompilation Project*