\r
typedef union {\r
SMBIOS_TABLE_ENTRY_POINT V2;\r
+ SMBIOS_TABLE_3_0_ENTRY_POINT V3;\r
} QEMU_SMBIOS_ANCHOR;\r
\r
RETURN_STATUS\r
QemuAnchor.V2.MinorVersion);\r
break;\r
\r
+ case sizeof QemuAnchor.V3:\r
+ QemuFwCfgReadBytes (AnchorSize, &QemuAnchor);\r
+\r
+ if (QemuAnchor.V3.MajorVersion != 3 ||\r
+ QemuAnchor.V3.TableMaximumSize != TablesSize ||\r
+ CompareMem (QemuAnchor.V3.AnchorString, "_SM3_", 5) != 0) {\r
+ return RETURN_SUCCESS;\r
+ }\r
+ SmbiosVersion = (UINT16)(QemuAnchor.V3.MajorVersion << 8 |\r
+ QemuAnchor.V3.MinorVersion);\r
+\r
+ DEBUG ((EFI_D_INFO, "%a: SMBIOS 3.x DocRev from QEMU: 0x%02x\n",\r
+ __FUNCTION__, QemuAnchor.V3.DocRev));\r
+ PcdSet8 (PcdSmbiosDocRev, QemuAnchor.V3.DocRev);\r
+ break;\r
+\r
default:\r
return RETURN_SUCCESS;\r
}\r