# SlotDataUpdateDxeCLX64L

## Function Table

| Address | Name | Description |
|---------|------|-------------|
|  | **ReadUnaligned64** |  |
|  | **LogUbaMessage** |  |
|  | **UbaAssert** |  |
|  | **MatchHobGuid** |  |
|  | **GetHobList** |  |
|  | **_ModuleEntryPoint** |  |
| Global | **UEFI table pointers (set by _ModuleEntryPoint)** |  |
| EFI_HANDLE | **gImageHandle   = NULL;** |  |
| Cached | **UBA debug protocol pointer** |  |
| VOID | ***gUbaDebugProtocol = NULL;** |  |
| Cached | **HOB list pointer** |  |
| VOID | ***gHobList = NULL;** |  |
| UBA | **Slot Data Update Protocol GUID** |  |
| STATIC | **CONST EFI_GUID mSlotDataUpdateProtocolGuid = SLOT_DATA_UPDATE_PROTOCOL_GUID;** |  |
| Slot | **Data Entry Protocol GUID** |  |
| STATIC | **CONST EFI_GUID mSlotDataEntryGuid = SLOT_DATA_ENTRY_PROTOCOL_GUID;** |  |
| HOB | **List GUID** |  |
| STATIC | **CONST EFI_GUID mGetHobListGuid = GET_HOB_LIST_PROTOCOL_GUID;** |  |
| First | **PSLT entry: physical slot configuration for CLX64L platform** |  |
| STATIC | **CONST PSLT_HEADER mSlotTableEntry1 = {** |  |
| Signature | **= "PSLT"** |  |
| Version | **0xBA0,              // TableOffset** |  |
| TableLength | **{                   // SlotData[24]:** |  |
| Slot | **0: B0:D2:F0 -> Port 1** |  |
| Slot | **1: B1:D2:F1 -> Port 0** |  |
| Slot | **mapping attribute** |  |
| Reserved | **0x00, 0x00, 0x00, 0x00,   // Reserved** |  |
| Reserved | **}** |  |
| Second | **PSLT entry: extended slot configuration** |  |
| Contains | **null table offset (placeholder/reserved entry)** |  |
| STATIC | **CONST PSLT_HEADER mSlotTableEntry2 = {** |  |
| No | **slot mapping** |  |
| Reserved | **0xB4, 0x04, 0x00, 0x00,   // Secondary table reference** |  |
| UBA | **debug protocol GUID (internal UBA protocol for debug services)** |  |
| This | **GUID varies by platform; located via gBS->LocateProtocol** |  |
| STATIC | **CONST EFI_GUID mUbaDebugProtocolGuid = {** |  |
| Return | **cached protocol if already located** |  |
| if | **(gUbaDebugProtocol != NULL) {** |  |
| Allocate | **pool for the protocol instance** |  |
| Status | **= gBootServices->AllocatePool (** |  |
| Zero | **the allocated pool** |  |
| Locate | **the UBA debug protocol** |  |
| Status | **= gBootServices->LocateProtocol (** |  |
| Read | **CMOS debug level** |  |
| CmosIndex | **= __inbyte (RTC_INDEX_PORT);** |  |
| Determine | **if debug is enabled for this severity** |  |
| if | **(DebugLevel > 3) {** |  |
| if | **(DebugLevel == 0) {** |  |
| Map | **debug level to UBA severity mask** |  |
| SeverityLevel | **= (DebugLevel == 1) ?** |  |
| If | **severity matches, forward to UBA debug print** |  |
| if | **((SeverityLevel & Severity) != 0) {** |  |
| Read | **the first 8 bytes of the HOB header** |  |
| Guid1 | **= ReadUnaligned64 (HobEntry);** |  |
| Return | **cached HOB list if already located** |  |
| if | **(gHobList != NULL) {** |  |
| Initialize | **//** |  |
| Iterate | **through HOB entries from the system table** |  |
| if | **(gSystemTable->NumberOfTableEntries != 0) {** |  |
| Found | **matching HOB; return the data field at offset 16** |  |
| Result | **= *(UINT64 *)((UINTN)gSystemTable->ConfigurationTable +** |  |
| No | **matching HOB found - assert** |  |
| LogUbaMessage | **(** |  |
| Verify | **HOB list was found** |  |
| if | **(gHobList == NULL) {** |  |
| Save | **global UEFI table pointers** |  |
| gImageHandle | **= ImageHandle;** |  |
| Cache | **boot services pointer from system table (offset 0x60)** |  |
| gBootServices | **= SystemTable->BootServices;** |  |
| Cache | **runtime services pointer from system table (offset 0x58)** |  |
| gRuntimeServices | **= SystemTable->RuntimeServices;** |  |
| Initialize | **HOB list cache** |  |
| GetHobList | **(0);** |  |
| Log | **initialization message** |  |
| LogUbaMessage | **(UBA_DEBUG_ERROR, "UBA:SlotDataUpdate-TypeClx64L\n");** |  |
| Locate | **the UBA Slot Data Update protocol (BootServices->LocateProtocol)** |  |
| Install | **first PSLT entry: physical slot table (40 bytes)** |  |
| Status | **= SlotProtocol->GetSlotData (** |  |
| Install | **second PSLT entry: extended slot config (40 bytes)** |  |
| return | **SlotProtocol->GetSlotData (** |  |

---
*Generated by HR650X BIOS Decompilation Project*