Remove the SmbiosTablePublishEntry() function from "SmbiosPlatformDxe.c". "SmbiosPlatformDxe.c" becomes hypervisor-agnostic. Add SmbiosTablePublishEntry() back, simplified for QEMU, to the existent file "Qemu.c". The GetQemuSmbiosTables() function no longer needs to be declared in "SmbiosPlatformDxe.h"; "SmbiosPlatformDxe.h" becomes hypervisor-agnostic. Add SmbiosTablePublishEntry() back, renamed and simplified for Xen, to the new, arch-independent file "Xen.c". (The existent Xen-specific C files are arch-dependent.) Update both INF files; remove the dependencies that are now superfluous in each. Cc: Anthony Perard <anthony.perard@citrix.com> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Julien Grall <julien@xen.org> Cc: Philippe Mathieu-Daudé <philmd@redhat.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2122 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20210526201446.12554-43-lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   This driver installs SMBIOS information for OVMF on Xen
 | |
| 
 | |
|   Copyright (C) 2021, Red Hat, Inc.
 | |
|   Copyright (c) 2011, Bei Guan <gbtju85@gmail.com>
 | |
|   Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include "SmbiosPlatformDxe.h"
 | |
| #include "XenSmbiosPlatformDxe.h"
 | |
| 
 | |
| /**
 | |
|   Installs SMBIOS information for OVMF on Xen
 | |
| 
 | |
|   @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
 | |
| XenSmbiosTablePublishEntry (
 | |
|   IN EFI_HANDLE           ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE     *SystemTable
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS                Status;
 | |
|   SMBIOS_TABLE_ENTRY_POINT  *EntryPointStructure;
 | |
|   UINT8                     *SmbiosTables;
 | |
| 
 | |
|   Status = EFI_NOT_FOUND;
 | |
|   //
 | |
|   // Add Xen SMBIOS data if found
 | |
|   //
 | |
|   EntryPointStructure = GetXenSmbiosTables ();
 | |
|   if (EntryPointStructure != NULL) {
 | |
|     SmbiosTables = (UINT8*)(UINTN)EntryPointStructure->TableAddress;
 | |
|     if (SmbiosTables != NULL) {
 | |
|       Status = InstallAllStructures (SmbiosTables);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   return Status;
 | |
| }
 |