mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06: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_HAP:
|
||||||
case VIR_DOMAIN_FEATURE_PMU:
|
case VIR_DOMAIN_FEATURE_PMU:
|
||||||
case VIR_DOMAIN_FEATURE_PVSPINLOCK:
|
case VIR_DOMAIN_FEATURE_PVSPINLOCK:
|
||||||
case VIR_DOMAIN_FEATURE_VMPORT:
|
case VIR_DOMAIN_FEATURE_VMPORT: {
|
||||||
case VIR_DOMAIN_FEATURE_SMM: {
|
|
||||||
virTristateSwitch state;
|
virTristateSwitch state;
|
||||||
|
|
||||||
if (virXMLPropTristateSwitch(nodes[i], "state",
|
if (virXMLPropTristateSwitch(nodes[i], "state",
|
||||||
@ -17569,6 +17568,31 @@ virDomainFeaturesDefParse(virDomainDef *def,
|
|||||||
break;
|
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:
|
case VIR_DOMAIN_FEATURE_GIC:
|
||||||
if (virXMLPropEnum(nodes[i], "version", virGICVersionTypeFromString,
|
if (virXMLPropEnum(nodes[i], "version", virGICVersionTypeFromString,
|
||||||
VIR_XML_PROP_NONZERO, &def->gic_version) < 0)
|
VIR_XML_PROP_NONZERO, &def->gic_version) < 0)
|
||||||
@ -17670,19 +17694,6 @@ virDomainFeaturesDefParse(virDomainDef *def,
|
|||||||
}
|
}
|
||||||
VIR_FREE(nodes);
|
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) {
|
if (def->features[VIR_DOMAIN_FEATURE_MSRS] == VIR_TRISTATE_SWITCH_ON) {
|
||||||
virDomainMsrsUnknown unknown;
|
virDomainMsrsUnknown unknown;
|
||||||
xmlNodePtr node = NULL;
|
xmlNodePtr node = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user