\r
#include <IndustryStandard/SmBios.h> // SMBIOS_TABLE_TYPE0\r
#include <Library/DebugLib.h> // ASSERT_EFI_ERROR()\r
-#include <Library/MemoryAllocationLib.h> // FreePool()\r
#include <Library/UefiBootServicesTableLib.h> // gBS\r
#include <Protocol/Smbios.h> // EFI_SMBIOS_PROTOCOL\r
\r
//\r
#pragma pack(1)\r
typedef struct {\r
- SMBIOS_TABLE_TYPE0 Base;\r
- UINT8 Strings[sizeof(TYPE0_STRINGS)];\r
+ SMBIOS_TABLE_TYPE0 Base;\r
+ UINT8 Strings[sizeof (TYPE0_STRINGS)];\r
} OVMF_TYPE0;\r
#pragma pack()\r
\r
-STATIC CONST OVMF_TYPE0 mOvmfDefaultType0 = {\r
+STATIC CONST OVMF_TYPE0 mOvmfDefaultType0 = {\r
{\r
// SMBIOS_STRUCTURE Hdr\r
{\r
EFI_SMBIOS_TYPE_BIOS_INFORMATION, // UINT8 Type\r
sizeof (SMBIOS_TABLE_TYPE0), // UINT8 Length\r
},\r
- 1, // SMBIOS_TABLE_STRING Vendor\r
- 2, // SMBIOS_TABLE_STRING BiosVersion\r
- 0xE800,// UINT16 BiosSegment\r
- 3, // SMBIOS_TABLE_STRING BiosReleaseDate\r
- 0, // UINT8 BiosSize\r
+ 1, // SMBIOS_TABLE_STRING Vendor\r
+ 2, // SMBIOS_TABLE_STRING BiosVersion\r
+ 0xE800, // UINT16 BiosSegment\r
+ 3, // SMBIOS_TABLE_STRING BiosReleaseDate\r
+ 0, // UINT8 BiosSize\r
{ // MISC_BIOS_CHARACTERISTICS BiosCharacteristics\r
- 0, // Reserved :2\r
- 0, // Unknown :1\r
- 1, // BiosCharacteristicsNotSupported :1\r
- // Remaining BiosCharacteristics bits left unset :60\r
+ 0, // Reserved :2\r
+ 0, // Unknown :1\r
+ 1, // BiosCharacteristicsNotSupported :1\r
+ // Remaining BiosCharacteristics bits left unset :60\r
},\r
{ // BIOSCharacteristicsExtensionBytes[2]\r
- 0, // BiosReserved\r
- 0x1C // SystemReserved = VirtualMachineSupported |\r
- // UefiSpecificationSupported |\r
- // TargetContentDistributionEnabled\r
+ 0, // BiosReserved\r
+ 0x1C // SystemReserved = VirtualMachineSupported |\r
+ // UefiSpecificationSupported |\r
+ // TargetContentDistributionEnabled\r
},\r
0, // UINT8 SystemBiosMajorRelease\r
0, // UINT8 SystemBiosMinorRelease\r
TYPE0_STRINGS\r
};\r
\r
-\r
/**\r
Get SMBIOS record length.\r
\r
**/\r
UINTN\r
SmbiosTableLength (\r
- IN SMBIOS_STRUCTURE_POINTER SmbiosTable\r
+ IN SMBIOS_STRUCTURE_POINTER SmbiosTable\r
)\r
{\r
CHAR8 *AChar;\r
// Each structure shall be terminated by a double-null (SMBIOS spec.7.1)\r
//\r
while ((*AChar != 0) || (*(AChar + 1) != 0)) {\r
- AChar ++;\r
+ AChar++;\r
}\r
+\r
Length = ((UINTN)AChar - (UINTN)SmbiosTable.Raw + 2);\r
\r
return Length;\r
}\r
\r
-\r
/**\r
Install all structures from the given SMBIOS structures block\r
\r
**/\r
EFI_STATUS\r
InstallAllStructures (\r
- IN UINT8 *TableAddress\r
+ IN UINT8 *TableAddress\r
)\r
{\r
EFI_SMBIOS_PROTOCOL *Smbios;\r
Status = gBS->LocateProtocol (\r
&gEfiSmbiosProtocolGuid,\r
NULL,\r
- (VOID**)&Smbios\r
+ (VOID **)&Smbios\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
// Log the SMBIOS data for this structure\r
//\r
SmbiosHandle = SmbiosTable.Hdr->Handle;\r
- Status = Smbios->Add (\r
- Smbios,\r
- NULL,\r
- &SmbiosHandle,\r
- (EFI_SMBIOS_TABLE_HEADER*) SmbiosTable.Raw\r
- );\r
+ Status = Smbios->Add (\r
+ Smbios,\r
+ NULL,\r
+ &SmbiosHandle,\r
+ (EFI_SMBIOS_TABLE_HEADER *)SmbiosTable.Raw\r
+ );\r
ASSERT_EFI_ERROR (Status);\r
\r
if (SmbiosTable.Hdr->Type == 0) {\r
// Add OVMF default Type 0 (BIOS Information) table\r
//\r
SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;\r
- Status = Smbios->Add (\r
- Smbios,\r
- NULL,\r
- &SmbiosHandle,\r
- (EFI_SMBIOS_TABLE_HEADER*) &mOvmfDefaultType0\r
- );\r
+ Status = Smbios->Add (\r
+ Smbios,\r
+ NULL,\r
+ &SmbiosHandle,\r
+ (EFI_SMBIOS_TABLE_HEADER *)&mOvmfDefaultType0\r
+ );\r
ASSERT_EFI_ERROR (Status);\r
}\r
\r
return EFI_SUCCESS;\r
}\r
-\r
-\r
-/**\r
- Installs SMBIOS information for OVMF\r
-\r
- @param ImageHandle Module's image handle\r
- @param SystemTable Pointer of EFI_SYSTEM_TABLE\r
-\r
- @retval EFI_SUCCESS Smbios data successfully installed\r
- @retval Other Smbios data was not installed\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SmbiosTablePublishEntry (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-{\r
- EFI_STATUS Status;\r
- SMBIOS_TABLE_ENTRY_POINT *EntryPointStructure;\r
- UINT8 *SmbiosTables;\r
-\r
- Status = EFI_NOT_FOUND;\r
- //\r
- // Add Xen or QEMU SMBIOS data if found\r
- //\r
- EntryPointStructure = GetXenSmbiosTables ();\r
- if (EntryPointStructure != NULL) {\r
- SmbiosTables = (UINT8*)(UINTN)EntryPointStructure->TableAddress;\r
- } else {\r
- SmbiosTables = GetQemuSmbiosTables ();\r
- }\r
-\r
- if (SmbiosTables != NULL) {\r
- Status = InstallAllStructures (SmbiosTables);\r
-\r
- //\r
- // Free SmbiosTables if allocated by Qemu (i.e., NOT by Xen):\r
- //\r
- if (EntryPointStructure == NULL) {\r
- FreePool (SmbiosTables);\r
- }\r
- }\r
-\r
- return Status;\r
-}\r