1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-20 07:59:00 +00:00

conf: support MSDM ACPI table type

The MSDM ACPI table is an alternative for the SLIC table type,
sometimes used by Microsoft for Windows Licensing checks:

  https://learn.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653305(v=vs.85)

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2025-02-17 16:58:27 +00:00
parent dac6ecba6f
commit 32765cd14e
7 changed files with 11 additions and 1 deletions

View File

@ -503,6 +503,10 @@ These options apply to any form of booting of the guest OS.
software licensing information. The ACPI table signature in the software licensing information. The ACPI table signature in the
header will be forced to ``SLIC`` (:since:`Since 1.3.5 (QEMU)`, header will be forced to ``SLIC`` (:since:`Since 1.3.5 (QEMU)`,
mis-interpreted as ``rawset`` :since:`Since 5.9.0 (Xen)`). mis-interpreted as ``rawset`` :since:`Since 5.9.0 (Xen)`).
* ``msdm``: a single ACPI table with header and data, providing
Microsoft Data Management information. The ACPI table signature
in the header will be forced to ``MSDM``
(:since:`Since 11.2.0`).
Each type may be used only once, except for ``raw`` which can Each type may be used only once, except for ``raw`` which can
appear multiple times. appear multiple times.

View File

@ -1462,6 +1462,7 @@ VIR_ENUM_IMPL(virDomainOsACPITable,
"raw", "raw",
"rawset", "rawset",
"slic", "slic",
"msdm",
); );
VIR_ENUM_IMPL(virDomainCFPC, VIR_ENUM_IMPL(virDomainCFPC,

View File

@ -2485,6 +2485,7 @@ typedef enum {
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW, VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW,
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET, VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET,
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC, VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC,
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM,
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST
} virDomainOsACPITable; } virDomainOsACPITable;

View File

@ -7184,6 +7184,7 @@
<value>raw</value> <value>raw</value>
<value>rawset</value> <value>rawset</value>
<value>slic</value> <value>slic</value>
<value>msdm</value>
</choice> </choice>
</attribute> </attribute>
<ref name="absFilePath"/> <ref name="absFilePath"/>

View File

@ -337,6 +337,7 @@ libxlDomainDefValidate(const virDomainDef *def,
break; break;
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW: case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW:
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("ACPI table type '%1$s' is not supported"), _("ACPI table type '%1$s' is not supported"),
virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type)); virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));

View File

@ -132,7 +132,8 @@ VIR_ENUM_IMPL(qemuACPITableSIG,
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST, VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST,
"", /* raw */ "", /* raw */
"", /* rawset */ "", /* rawset */
"SLIC"); "SLIC",
"");
const char * const char *

View File

@ -749,6 +749,7 @@ qemuValidateDomainDefBoot(const virDomainDef *def,
break; break;
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET: case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET:
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("ACPI table type '%1$s' is not supported"), _("ACPI table type '%1$s' is not supported"),
virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type)); virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));