conf: Make tri-state feature options more universal

The apic-eoi feature enum and implementation can be made more universal
to allow re-use of the enum for other features.
This commit is contained in:
Peter Krempa 2012-10-16 16:28:22 +02:00
parent 998dc17da3
commit 88cac66d92
4 changed files with 15 additions and 15 deletions

View File

@ -115,7 +115,7 @@ VIR_ENUM_IMPL(virDomainFeature, VIR_DOMAIN_FEATURE_LAST,
"viridian", "viridian",
"privnet") "privnet")
VIR_ENUM_IMPL(virDomainApicEoi, VIR_DOMAIN_APIC_EOI_LAST, VIR_ENUM_IMPL(virDomainFeatureState, VIR_DOMAIN_FEATURE_STATE_LAST,
"default", "default",
"on", "on",
"off") "off")
@ -9060,7 +9060,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
tmp = virXPathString("string(./features/apic/@eoi)", ctxt); tmp = virXPathString("string(./features/apic/@eoi)", ctxt);
if (tmp) { if (tmp) {
int eoi; int eoi;
if ((eoi = virDomainApicEoiTypeFromString(tmp)) <= 0) { if ((eoi = virDomainFeatureStateTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown value for attribute eoi: %s"), _("unknown value for attribute eoi: %s"),
tmp); tmp);
@ -13828,7 +13828,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
if (i == VIR_DOMAIN_FEATURE_APIC && def->apic_eoi) { if (i == VIR_DOMAIN_FEATURE_APIC && def->apic_eoi) {
virBufferAsprintf(buf, virBufferAsprintf(buf,
" eoi='%s'", " eoi='%s'",
virDomainApicEoiTypeToString(def->apic_eoi)); virDomainFeatureStateTypeToString(def->apic_eoi));
} }
virBufferAddLit(buf, "/>\n"); virBufferAddLit(buf, "/>\n");
} }

View File

@ -1389,12 +1389,12 @@ enum virDomainFeature {
VIR_DOMAIN_FEATURE_LAST VIR_DOMAIN_FEATURE_LAST
}; };
enum virDomainApicEoi { enum virDomainFeatureState {
VIR_DOMAIN_APIC_EOI_DEFAULT = 0, VIR_DOMAIN_FEATURE_STATE_DEFAULT = 0,
VIR_DOMAIN_APIC_EOI_ON, VIR_DOMAIN_FEATURE_STATE_ON,
VIR_DOMAIN_APIC_EOI_OFF, VIR_DOMAIN_FEATURE_STATE_OFF,
VIR_DOMAIN_APIC_EOI_LAST VIR_DOMAIN_FEATURE_STATE_LAST
}; };
enum virDomainLifecycleAction { enum virDomainLifecycleAction {
@ -1708,7 +1708,7 @@ struct _virDomainDef {
virDomainOSDef os; virDomainOSDef os;
char *emulator; char *emulator;
int features; int features;
/* enum virDomainApicEoi */ /* enum virDomainFeatureState */
int apic_eoi; int apic_eoi;
virDomainClockDef clock; virDomainClockDef clock;
@ -2173,7 +2173,7 @@ VIR_ENUM_DECL(virDomainVirt)
VIR_ENUM_DECL(virDomainBoot) VIR_ENUM_DECL(virDomainBoot)
VIR_ENUM_DECL(virDomainBootMenu) VIR_ENUM_DECL(virDomainBootMenu)
VIR_ENUM_DECL(virDomainFeature) VIR_ENUM_DECL(virDomainFeature)
VIR_ENUM_DECL(virDomainApicEoi) VIR_ENUM_DECL(virDomainFeatureState)
VIR_ENUM_DECL(virDomainLifecycle) VIR_ENUM_DECL(virDomainLifecycle)
VIR_ENUM_DECL(virDomainLifecycleCrash) VIR_ENUM_DECL(virDomainLifecycleCrash)
VIR_ENUM_DECL(virDomainPMState) VIR_ENUM_DECL(virDomainPMState)

View File

@ -272,8 +272,6 @@ virBlkioDeviceWeightArrayClear;
virDiskNameToBusDeviceIndex; virDiskNameToBusDeviceIndex;
virDiskNameToIndex; virDiskNameToIndex;
virDomainActualNetDefFree; virDomainActualNetDefFree;
virDomainApicEoiTypeFromString;
virDomainApicEoiTypeToString;
virDomainAssignDef; virDomainAssignDef;
virDomainBlockedReasonTypeFromString; virDomainBlockedReasonTypeFromString;
virDomainBlockedReasonTypeToString; virDomainBlockedReasonTypeToString;
@ -363,6 +361,8 @@ virDomainFSTypeFromString;
virDomainFSTypeToString; virDomainFSTypeToString;
virDomainFSWrpolicyTypeFromString; virDomainFSWrpolicyTypeFromString;
virDomainFSWrpolicyTypeToString; virDomainFSWrpolicyTypeToString;
virDomainFeatureStateTypeFromString;
virDomainFeatureStateTypeToString;
virDomainFindByID; virDomainFindByID;
virDomainFindByName; virDomainFindByName;
virDomainFindByUUID; virDomainFindByUUID;

View File

@ -4227,7 +4227,7 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver,
if (def->apic_eoi) { if (def->apic_eoi) {
char sign; char sign;
if (def->apic_eoi == VIR_DOMAIN_APIC_EOI_ON) if (def->apic_eoi == VIR_DOMAIN_FEATURE_STATE_ON)
sign = '+'; sign = '+';
else else
sign = '-'; sign = '-';
@ -7761,9 +7761,9 @@ qemuParseCommandLineCPU(virDomainDefPtr dom,
dom->clock.timers[i]->present = present; dom->clock.timers[i]->present = present;
} else if (STREQ(feature, "kvm_pv_eoi")) { } else if (STREQ(feature, "kvm_pv_eoi")) {
if (policy == VIR_CPU_FEATURE_REQUIRE) if (policy == VIR_CPU_FEATURE_REQUIRE)
dom->apic_eoi = VIR_DOMAIN_APIC_EOI_ON; dom->apic_eoi = VIR_DOMAIN_FEATURE_STATE_ON;
else else
dom->apic_eoi = VIR_DOMAIN_APIC_EOI_OFF; dom->apic_eoi = VIR_DOMAIN_FEATURE_STATE_OFF;
} else { } else {
if (!cpu) { if (!cpu) {
if (!(cpu = qemuInitGuestCPU(dom))) if (!(cpu = qemuInitGuestCPU(dom)))