"vmcoreinfo",
"htm",
"nested-hv",
+ "msrs",
);
VIR_ENUM_IMPL(virDomainCapabilitiesPolicy, VIR_DOMAIN_CAPABILITIES_POLICY_LAST,
"hidden",
);
+VIR_ENUM_IMPL(virDomainMsrsUnknown, VIR_DOMAIN_MSRS_UNKNOWN_LAST,
+ "ignore",
+ "fault",
+);
+
VIR_ENUM_IMPL(virDomainCapsFeature, VIR_DOMAIN_CAPS_FEATURE_LAST,
"audit_control",
"audit_write",
case VIR_DOMAIN_FEATURE_PRIVNET:
case VIR_DOMAIN_FEATURE_HYPERV:
case VIR_DOMAIN_FEATURE_KVM:
+ case VIR_DOMAIN_FEATURE_MSRS:
def->features[val] = VIR_TRISTATE_SWITCH_ON;
break;
def->tseg_specified = rv;
}
+ if (def->features[VIR_DOMAIN_FEATURE_MSRS] == VIR_TRISTATE_SWITCH_ON) {
+ if ((node = virXPathNode("./features/msrs", ctxt)) == NULL)
+ goto error;
+
+ if (!(tmp = virXMLPropString(node, "unknown"))) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("missing 'unknown' attribute for feature '%s'"),
+ virDomainFeatureTypeToString(VIR_DOMAIN_FEATURE_MSRS));
+ goto error;
+ }
+
+ if ((def->msrs_features[VIR_DOMAIN_MSRS_UNKNOWN] = virDomainMsrsUnknownTypeFromString(tmp)) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("unknown 'unknown' value '%s'"),
+ tmp);
+ goto error;
+ }
+ VIR_FREE(tmp);
+ }
+
if ((n = virXPathNodeSet("./features/capabilities/*", ctxt, &nodes)) < 0)
goto error;
}
break;
+ case VIR_DOMAIN_FEATURE_MSRS:
+ break;
+
case VIR_DOMAIN_FEATURE_LAST:
break;
}
}
break;
+ case VIR_DOMAIN_FEATURE_MSRS:
+ if (def->features[i] != VIR_TRISTATE_SWITCH_ON)
+ break;
+
+ virBufferAsprintf(buf, "<msrs unknown='%s'/>\n",
+ virDomainMsrsUnknownTypeToString(def->msrs_features[VIR_DOMAIN_MSRS_UNKNOWN]));
+ break;
+
/* coverity[dead_error_begin] */
case VIR_DOMAIN_FEATURE_LAST:
break;
VIR_DOMAIN_FEATURE_VMCOREINFO,
VIR_DOMAIN_FEATURE_HTM,
VIR_DOMAIN_FEATURE_NESTED_HV,
+ VIR_DOMAIN_FEATURE_MSRS,
VIR_DOMAIN_FEATURE_LAST
} virDomainFeature;
VIR_DOMAIN_KVM_LAST
} virDomainKVM;
+typedef enum {
+ VIR_DOMAIN_MSRS_UNKNOWN = 0,
+
+ VIR_DOMAIN_MSRS_LAST
+} virDomainMsrs;
+
+typedef enum {
+ VIR_DOMAIN_MSRS_UNKNOWN_IGNORE = 0,
+ VIR_DOMAIN_MSRS_UNKNOWN_FAULT,
+
+ VIR_DOMAIN_MSRS_UNKNOWN_LAST
+} virDomainMsrsUnknown;
+
typedef enum {
VIR_DOMAIN_CAPABILITIES_POLICY_DEFAULT = 0,
VIR_DOMAIN_CAPABILITIES_POLICY_ALLOW,
int caps_features[VIR_DOMAIN_CAPS_FEATURE_LAST];
int hyperv_features[VIR_DOMAIN_HYPERV_LAST];
int kvm_features[VIR_DOMAIN_KVM_LAST];
+ int msrs_features[VIR_DOMAIN_MSRS_LAST];
unsigned int hyperv_spinlocks;
virGICVersion gic_version;
virDomainHPTResizing hpt_resizing;
VIR_ENUM_DECL(virDomainGraphicsVNCSharePolicy);
VIR_ENUM_DECL(virDomainHyperv);
VIR_ENUM_DECL(virDomainKVM);
+VIR_ENUM_DECL(virDomainMsrsUnknown);
VIR_ENUM_DECL(virDomainRNGModel);
VIR_ENUM_DECL(virDomainRNGBackend);
VIR_ENUM_DECL(virDomainTPMModel);