| Address | Name | Description |
|---|---|---|
| ReadUnaligned64 | ||
| CompareGuidPair | ||
| DebugAssert | ||
| SetupConfigUpdateEntry | ||
| Globals | // --------------------------------------------------------------------------- | |
| UefiBootServicesTableLib | / UefiRuntimeServicesTableLib backing | |
| EFI_HANDLE | gImageHandle = NULL; | |
| Module | globals | |
| EFI_HANDLE | mImageHandle = NULL; ///< Saved image handle | |
| GUID | instances | |
| EFI_GUID | gSetupConfigUpdateProtocolGuid = SETUP_CONFIG_UPDATE_PROTOCOL_GUID; | |
| Embedded | HOB list GUID, split across two QWORD-aligned storage locations | |
| for | efficient comparison in CompareGuidPair(). | |
| gHobListGuid | = {7739F24C-93D7-11D4-9A3A-0090273FC14D} | |
| Stored | as two UINT64 values at gHobListGuidLo (0xB40) and | |
| gHobListGuidHi | (0xB48) for the inline comparison function to access | |
| without | loading the full GUID from .rdata. | |
| STATIC | CONST UINT64 gHobListGuidLo = 0x11D493D77739F24CULL; ///< First 8 bytes | |
| Static | PSET configuration data header for the CLX64L platform. | |
| The | full configuration block (header + payload) occupies 0x48C bytes. | |
| STATIC | CONST SETUP_CONFIG_DATA_HEADER mSetupConfigDataHeader = { | |
| Helper | functions | |
| Locate | the debug assert protocol from Boot Services. | |
| STATIC | VOID *mAssertProtocol = NULL; | |
| Call | the assert function at the protocol's standard offset. | |
| HOB | list locator | |
| Return | cached value if already resolved. | |
| if | (mHobList != NULL) { | |
| if | (gST->NumberOfTableEntries == 0) { | |
| No | configuration table entries | emit diagnostic and assert. |
| DEBUG | ((DEBUG_SETUP_CONFIG | |
| Fall | through to the NULL check below. | |
| Walk | the configuration table looking for the HOB list GUID. | |
| Each | entry is an EFI_CONFIGURATION_TULE (16-byte GUID + pointer). | |
| ConfigTable | = gST->ConfigurationTable; | |
| Compare | as two QWORDs (first 8 bytes, then second 8 bytes). | |
| if | ((GuidEntry[0] == HobGuidLo) && (GuidEntry[1] == HobGuidHi)) { | |
| VendorTable | follows the GUID in the configuration table entry. | |
| Cast | through byte pointer arithmetic to avoid strict aliasing. | |
| mHobList | = *(VOID )((UINT8 )GuidEntry + 16);* | |
| If | the HOB list was not found, emit a diagnostic. | |
| if | (mHobList == NULL) { | |
| The | HOB list must be non-NULL at this point. | |
| Module | entry point | |
| gImageHandle | = ImageHandle; | |
| mHobList | = GetHobList (); | |
| Locate | the configuration receiver protocol. | |
| Status | = gBS->LocateProtocol ( | |
| Registration | (optional) | |
| Protocol | not found | return the error status. |
| return | Status; | |
| Install | the setup config via the receiver protocol. | |
| Function | at offset 0x10 in the protocol interface. | |
| VOID | *ConfigData, UINTN ConfigDataSize) | |
| Status | = ((EFI_STATUS (EFIAPI *)( | |
| offset | 0x10 = index 2 |
Generated by HR650X BIOS Decompilation Project