OvmfPkg: Create global entry point for SMBIOS parsing

Move the generic entry point part out of Qemu.c to anticipate the
addition of new ways of retrieving the SMBIOS table.

Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
This commit is contained in:
Sebastien Boeuf
2021-12-10 22:41:55 +08:00
committed by mergify[bot]
parent 9afcd48a94
commit 2ccefa32a6
4 changed files with 54 additions and 35 deletions

View File

@@ -0,0 +1,42 @@
/** @file
Find and extract SMBIOS data.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <Library/MemoryAllocationLib.h> // FreePool()
#include "SmbiosPlatformDxe.h"
/**
Installs SMBIOS information for OVMF
@param ImageHandle Module's image handle
@param SystemTable Pointer of EFI_SYSTEM_TABLE
@retval EFI_SUCCESS Smbios data successfully installed
@retval Other Smbios data was not installed
**/
EFI_STATUS
EFIAPI
SmbiosTablePublishEntry (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
UINT8 *SmbiosTables;
Status = EFI_NOT_FOUND;
//
// Add QEMU SMBIOS data if found
//
SmbiosTables = GetQemuSmbiosTables ();
if (SmbiosTables != NULL) {
Status = InstallAllStructures (SmbiosTables);
FreePool (SmbiosTables);
}
return Status;
}