mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
virDomainFeaturesDefParse: Inline SMM parsing
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
6e872ab3f4
commit
eeb94215b0
@ -17554,8 +17554,7 @@ virDomainFeaturesDefParse(virDomainDef *def,
|
||||
case VIR_DOMAIN_FEATURE_HAP:
|
||||
case VIR_DOMAIN_FEATURE_PMU:
|
||||
case VIR_DOMAIN_FEATURE_PVSPINLOCK:
|
||||
case VIR_DOMAIN_FEATURE_VMPORT:
|
||||
case VIR_DOMAIN_FEATURE_SMM: {
|
||||
case VIR_DOMAIN_FEATURE_VMPORT: {
|
||||
virTristateSwitch state;
|
||||
|
||||
if (virXMLPropTristateSwitch(nodes[i], "state",
|
||||
@ -17569,6 +17568,31 @@ virDomainFeaturesDefParse(virDomainDef *def,
|
||||
break;
|
||||
}
|
||||
|
||||
case VIR_DOMAIN_FEATURE_SMM: {
|
||||
virTristateSwitch state;
|
||||
|
||||
if (virXMLPropTristateSwitch(nodes[i], "state",
|
||||
VIR_XML_PROP_NONE, &state) < 0)
|
||||
return -1;
|
||||
|
||||
if ((state == VIR_TRISTATE_SWITCH_ABSENT) ||
|
||||
(state == VIR_TRISTATE_SWITCH_ON)) {
|
||||
int rv = virParseScaledValue("string(./features/smm/tseg)",
|
||||
"string(./features/smm/tseg/@unit)",
|
||||
ctxt,
|
||||
&def->tseg_size,
|
||||
1024 * 1024, /* Defaults to mebibytes */
|
||||
ULLONG_MAX,
|
||||
false);
|
||||
if (rv < 0)
|
||||
return -1;
|
||||
|
||||
def->features[val] = VIR_TRISTATE_SWITCH_ON;
|
||||
def->tseg_specified = rv != 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case VIR_DOMAIN_FEATURE_GIC:
|
||||
if (virXMLPropEnum(nodes[i], "version", virGICVersionTypeFromString,
|
||||
VIR_XML_PROP_NONZERO, &def->gic_version) < 0)
|
||||
@ -17670,19 +17694,6 @@ virDomainFeaturesDefParse(virDomainDef *def,
|
||||
}
|
||||
VIR_FREE(nodes);
|
||||
|
||||
if (def->features[VIR_DOMAIN_FEATURE_SMM] == VIR_TRISTATE_SWITCH_ON) {
|
||||
int rv = virParseScaledValue("string(./features/smm/tseg)",
|
||||
"string(./features/smm/tseg/@unit)",
|
||||
ctxt,
|
||||
&def->tseg_size,
|
||||
1024 * 1024, /* Defaults to mebibytes */
|
||||
ULLONG_MAX,
|
||||
false);
|
||||
if (rv < 0)
|
||||
return -1;
|
||||
def->tseg_specified = rv;
|
||||
}
|
||||
|
||||
if (def->features[VIR_DOMAIN_FEATURE_MSRS] == VIR_TRISTATE_SWITCH_ON) {
|
||||
virDomainMsrsUnknown unknown;
|
||||
xmlNodePtr node = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user