# SetupConfigUpdateDxeNeonCityEPRP

## Function Table

| Address | Name | Description |
|---------|------|-------------|
|  | **EfiGetLastErrorCode** |  |
|  | **DebugPrint** |  |
|  | **DebugAssert** |  |
|  | **GuidCompare** |  |
|  | **ReadUnalignedQword** |  |
|  | **ModuleEntryPoint** |  |
| Global | **data** |  |
| CMOS | **debug-level storage (data segment at 0xBC8)** |  |
| UINT8 | **gCmosDebugLevel;** |  |
| EfiGetLastErrorCode | **// ---------------------------------------------------------------------------** |  |
| Allocate | **pool header check - verify pool allocation size <= 0x10** |  |
| This | **is a standard UEFI memory allocation guard** |  |
| PoolSize | **= (UINT64)gBS->AllocatePool (EfiBootServicesData, 31);** |  |
| Read | **CMOS diagnostic register at index 0x4B via RTC ports 0x70/0x71** |  |
| IoWrite8 | **(RTC_INDEX_PORT, IoRead8 (RTC_INDEX_PORT) & 0x80 | CMOS_DIAG_ADDR);** |  |
| Validate | **debug level; handle special values** |  |
| if | **(DebugLevel > 3) {** |  |
| Debug | **level 0: read hardware strap from memory-mapped GPIO** |  |
| DebugLevel | **= (*(volatile UINT8 *)(UINTN)0xFDAF0490) & 2 | 1;** |  |
| Determine | **enabled error masks based on debug level** |  |
| if | **((DebugLevel - 1) <= 0xFD) {** |  |
| Debug | **level >= 1: standard masks apply** |  |
| if | **(DebugLevel == 1) {** |  |
| EFI_D_ERROR | **| EFI_D_INIT** |  |
| EFI_D_ERROR | **| EFI_D_INIT | broader** |  |
| Call | **the protocol's DebugPrint function if error level matches** |  |
| if | **((EnabledMask & ErrorLevel) != 0) {** |  |
| Found | **matching HOB GUID** |  |
| Hob | **= *(VOID **)(*(UINT64 *)(SystemTable + 112) + 24 * Index + 16);** |  |
| No | **match found: ASSERT** |  |
| DebugPrint | **(DEBUG_ERROR, L"\nASSERT_EFI_ERROR (Status = %r)\n", EFI_ALREADY_STARTED);** |  |
| Standard | **UEFI driver initialization: save ImageHandle and SystemTable** |  |
| gImageHandle | **= (UINT64)ImageHandle;** |  |
| Initialize | **HOB list** |  |
| GetHobList | **();** |  |
| Register | **debug message for this driver** |  |
| RegistrationHandle | **= 0;** |  |
| Locate | **the SetupConfig protocol** |  |
| Status | **= gBS->LocateProtocol (** |  |
| Register | **notification callback for SetupConfig updates** |  |
| The | **protocol at offset +16 (notify function) is called with:** |  |
| return | **((EFI_STATUS (EFIAPI *)(VOID *, VOID *, VOID *, UINTN))(** |  |

---
*Generated by HR650X BIOS Decompilation Project*