| Address | Name | Description |
|---|---|---|
| SmbiosFreePool | ||
| SmbiosDataUpdateDxeEntryPoint | ||
| SmbiosDataUpdateEntry | ||
| SmbiosUpdateBoardTables | ||
| SmbiosConstructType9Slot | ||
| SmbiosConstructType17Memory | ||
| SmbiosConstructType41Device | ||
| SmbiosInstallTable | ||
| SmbiosGetPlatformLang | ||
| SmbiosNotifyEndOfType | ||
| SmbiosAssert | ||
| Module | Globals | |
| Standard | UEFI globals (from UefiBootServicesTableLib | |
| EFI_HANDLE | gImageHandle = NULL; | |
| UBA | platform SMBIOS configuration protocol | |
| VOID | *gUbaPlatformSmbiosProtocol = NULL; | |
| HII | handle for SMBIOS string packages | |
| EFI_HII_HANDLE | gSmbiosStringPackHandle = NULL; | |
| HII | protocol interfaces | |
| VOID | *gHiiDatabaseProtocol = NULL; | |
| SMBIOS | protocol instance (locate on demand) | |
| EFI_SMBIOS_PROTOCOL | *gSmbiosProtocol = NULL; | |
| VOID | *gMmPciBase = NULL; | |
| HOB | list (HobLib) | |
| VOID | *mHobList = NULL; | |
| EFI | Component Name and Driver Binding - AutoGen | |
| AutoGen | header: SmbiosDataUpdateDxeStrDefs.h | |
| These | are populated by the build system (AutoGen.c). | |
| Source | path from build: | |
| Library | Function Wrappers | |
| Entry | Point | |
| Save | UEFI globals for library compatibility | |
| gImageHandle | = ImageHandle; | |
| Locate | HII Database Protocol | |
| Status | = gBS->LocateProtocol ( | |
| Locate | HII String Protocol | |
| Retrieve | HOB list pointer for HobLib | |
| Status | = EfiGetSystemConfigurationTable ( | |
| Locate | DxeServicesTable (gDS) | |
| Locate | PciUsra protocol (Memory Mapped PCI config access) | |
| if | (mPciUsra == NULL) { | |
| Register | SMBIOS data update protocol with UBA | |
| Status | = SmbiosDataUpdateEntry (ImageHandle, SystemTable); | |
| SMBIOS | Data Update Entry | |
| Locate | UBA platform SMBIOS configuration protocol from the | |
| platform | PEIM or DXE driver | |
| Copy | platform GUID into the SMBIOS configuration table | |
| CopyGuid | ( | |
| Register | HII string packages for SMBIOS string references | |
| gSmbiosStringPackHandle | = HiiAddPackages ( | |
| Initialize | SMBIOS table install parameters | |
| ZeroMem | (TableInstallParams, sizeof (TableInstallParams)); | |
| Locate | SMBIOS protocol if not already found | |
| if | (gSmbiosProtocol == NULL) { | |
| Call | UBA board update function to install platform-specific SMBIOS tables | |
| Max | SMBIOS table size | |
| Allocate | a reusable work buffer for SMBIOS structure construction | |
| SmbiosTableBuffer | = SmbiosAllocateZeroPool (SmbiosTableBufferSize); | |
| Phase | 1: Install SMBIOS Type 9 (System Slots) - up to 30 entries | |
| for | (Index = 0; Index < 30; Index++) { | |
| Notify | end of type 9 table enumeration | |
| SmbiosNotifyEndOfType | (9); | |
| Phase | 2: Install SMBIOS Type 17 (Memory Devices) - up to 8 entries | |
| for | (Index = 0; Index < 8; Index++) { | |
| Notify | end of type 17 table enumeration | |
| SmbiosNotifyEndOfType | (41); | |
| Phase | 3: Install SMBIOS Type 41 (Onboard Devices) - up to 4 entries | |
| for | (Index = 0; Index < 4; Index++) { | |
| Clean | up work buffer | |
| SmbiosFreePool | (SmbiosTableBuffer); | |
| SMBIOS | Type 9 (System Slots) Construction | |
| Slot | 0: StringId=0x0002, Type=0x0B(x16), Width=0x04(x16) | |
| Slot | 1: | |
| Slot | 2: | |
| Slot | 3: | |
| Slot | 4: | |
| Slot | 5: | |
| Slot | 6: | |
| Slot | 7: | |
| Slot | 8: | |
| Slot | 9: | |
| Slot | 10: | |
| Slot | 11: | |
| Slot | 12: | |
| Slot | 13: | |
| Slot | 14: | |
| Slot | 15: | |
| Slot | 16: | |
| Slot | 17: | |
| Slot | 18: | |
| Slot | 19: | |
| Slot | 20: | |
| Slot | 21: | |
| Slot | 22: | |
| Slot | 23: | |
| Slot | 24: | |
| Slot | 25: | |
| Slot | 26: | |
| Slot | 27: | |
| Slot | 28: | |
| Slot | 29: | |
| Initialize | SMBIOS header | |
| SmbiosHeader | = (SMBIOS_STRUCT_HEADER *)Buffer; | |
| SMBIOS | 3.1 type 9 with segment/bus/devfunc | |
| Extract | slot data from lookup table | |
| StringId | = (UINT16 )&mSlotData[10 * Index]; | |
| Populate | type 9 fields | |
| First | string | |
| Look | up slot designation string from HII | |
| StringBuffer | = SmbiosGetHiiString ( | |
| Append | the slot designation string | |
| SMBIOS | Type 17 (Memory Device) Construction | |
| Initialize | SMBIOS header: type 17 (Memory Device) | |
| CPU0 | Channel 0 Slot 0: DIMM_A1 | |
| x8 | MemoryDevice->DataWidth = 3; // x72 | |
| 4GB | MemoryDevice->FormFactor = 9; // DIMM | |
| DDR4 | MemoryDevice->Speed = 2133; | |
| Use | platform data | |
| CPU0 | Channel 0 Slot 1: DIMM_A2 | |
| CPU0 | Channel 1 Slot 0: DIMM_B1 | |
| CPU0 | Channel 1 Slot 1: DIMM_B2 | |
| CPU1 | Channel 0 Slot 0: DIMM_C1 | |
| CPU1 | Channel 0 Slot 1: DIMM_C2 | |
| CPU1 | Channel 1 Slot 0: DIMM_D1 | |
| CPU1 | Channel 1 Slot 1: DIMM_D2 | |
| Look | up the device locator string from HII | |
| String | IDs: 28-35 for DIMM labels | |
| Append | string to SMBIOS structure | |
| Add | the bank locator string (second string) | |
| SMBIOS | Type 41 (Onboard Devices Extended Information) Construction | |
| Onboard | VGA controller | |
| Onboard | Network Controller 1 | |
| Onboard | Network Controller 2 | |
| Onboard | SATA Controller | |
| SMBIOS | Table Installation | |
| Locate | SMBIOS protocol if not already loaded | |
| Add | the SMBIOS table via the protocol's Add() function | |
| Status | = gSmbiosProtocol->Add ( | |
| HII | String Retrieval | |
| Locate | HII string protocol if needed | |
| if | (gHiiStringProtocol == NULL) { | |
| First | call to get required buffer size (returns BUFFER_TOO_SMALL) | |
| StringSize | = 0; | |
| Allocate | string buffer | |
| StringBuffer | = (EFI_STRING)AllocatePool (StringSize); | |
| Retrieve | the string | |
| Status | = HiiString->GetString ( | |
| Convert | from UCS-2 to ASCII | |
| AsciiSize | = StringSize / sizeof (CHAR16) + 1; | |
| Platform | Language Retrieval | |
| Query | required size for PlatformLang variable | |
| Status | = gRT->GetVariable ( | |
| Allocate | and retrieve the value | |
| SMBIOS | Notify End-of-Type | |
| The | SMBIOS protocol notification interface allows drivers to | |
| signal | completion of table enumeration per type. | |
| This | is typically a no-op on most firmware. | |
| Debug | message display function (conditional on build flags). | |
| Writes | formatted output to the UEFI debug console. | |
| are | compiled out in RELEASE builds. | |
| Legacy | ASSERT support wrappers | |
| Calls | into UEFI's DebugAssert via DebugLib | |
| DEBUG | ((EFI_D_ERROR, "ASSERT [%a]:%d: %a\n", FileName, LineNumber, Description)); |
Generated by HR650X BIOS Decompilation Project