]>
Commit | Line | Data |
---|---|---|
2ccefa32 SB |
1 | /** @file\r |
2 | Find and extract SMBIOS data.\r | |
3 | \r | |
4 | SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
5 | **/\r | |
6 | \r | |
7 | #include <Library/MemoryAllocationLib.h> // FreePool()\r | |
d8ef7743 | 8 | #include <OvmfPlatforms.h> // CLOUDHV_DEVICE_ID\r |
2ccefa32 SB |
9 | \r |
10 | #include "SmbiosPlatformDxe.h"\r | |
11 | \r | |
12 | /**\r | |
13 | Installs SMBIOS information for OVMF\r | |
14 | \r | |
15 | @param ImageHandle Module's image handle\r | |
16 | @param SystemTable Pointer of EFI_SYSTEM_TABLE\r | |
17 | \r | |
18 | @retval EFI_SUCCESS Smbios data successfully installed\r | |
19 | @retval Other Smbios data was not installed\r | |
20 | \r | |
21 | **/\r | |
22 | EFI_STATUS\r | |
23 | EFIAPI\r | |
24 | SmbiosTablePublishEntry (\r | |
25 | IN EFI_HANDLE ImageHandle,\r | |
26 | IN EFI_SYSTEM_TABLE *SystemTable\r | |
27 | )\r | |
28 | {\r | |
29 | EFI_STATUS Status;\r | |
30 | UINT8 *SmbiosTables;\r | |
d8ef7743 | 31 | UINT16 HostBridgeDevId;\r |
2ccefa32 SB |
32 | \r |
33 | Status = EFI_NOT_FOUND;\r | |
34 | //\r | |
d8ef7743 | 35 | // Add SMBIOS data if found\r |
2ccefa32 | 36 | //\r |
d8ef7743 SB |
37 | HostBridgeDevId = PcdGet16 (PcdOvmfHostBridgePciDevId);\r |
38 | if (HostBridgeDevId == CLOUDHV_DEVICE_ID) {\r | |
39 | SmbiosTables = GetCloudHvSmbiosTables ();\r | |
40 | if (SmbiosTables != NULL) {\r | |
41 | Status = InstallAllStructures (SmbiosTables);\r | |
42 | }\r | |
43 | } else {\r | |
44 | SmbiosTables = GetQemuSmbiosTables ();\r | |
45 | if (SmbiosTables != NULL) {\r | |
46 | Status = InstallAllStructures (SmbiosTables);\r | |
47 | FreePool (SmbiosTables);\r | |
48 | }\r | |
2ccefa32 SB |
49 | }\r |
50 | \r | |
51 | return Status;\r | |
52 | }\r |