Replace all three-state (default/yes/no) enums with it: virDomainBootMenu virDomainPMState virDomainGraphicsSpiceClipboardCopypaste virDomainGraphicsSpiceAgentFileTransfer virNetworkDNSForwardPlainNames --- src/conf/domain_conf.c | 57 ++++++++++++--------------------------------- src/conf/domain_conf.h | 43 ---------------------------------- src/conf/network_conf.c | 11 ++------- src/conf/network_conf.h | 15 +----------- src/libvirt_private.syms | 10 ++------ src/network/bridge_driver.c | 3 +-- src/qemu/qemu_command.c | 22 ++++++++--------- src/qemu/qemu_driver.c | 4 ++-- src/util/virutil.c | 5 ++++ src/util/virutil.h | 11 +++++++++ 10 files changed, 50 insertions(+), 131 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 1d83f13..e374604 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -134,11 +134,6 @@ VIR_ENUM_IMPL(virDomainBoot, VIR_DOMAIN_BOOT_LAST, "hd", "network") -VIR_ENUM_IMPL(virDomainBootMenu, VIR_DOMAIN_BOOT_MENU_LAST, - "default", - "yes", - "no") - VIR_ENUM_IMPL(virDomainFeature, VIR_DOMAIN_FEATURE_LAST, "acpi", "apic", @@ -180,11 +175,6 @@ VIR_ENUM_IMPL(virDomainLockFailure, VIR_DOMAIN_LOCK_FAILURE_LAST, "pause", "ignore") -VIR_ENUM_IMPL(virDomainPMState, VIR_DOMAIN_PM_STATE_LAST, - "default", - "yes", - "no") - VIR_ENUM_IMPL(virDomainDevice, VIR_DOMAIN_DEVICE_LAST, "none", "disk", @@ -576,18 +566,6 @@ VIR_ENUM_IMPL(virDomainGraphicsSpiceStreamingMode, "all", "off"); -VIR_ENUM_IMPL(virDomainGraphicsSpiceClipboardCopypaste, - VIR_DOMAIN_GRAPHICS_SPICE_CLIPBOARD_COPYPASTE_LAST, - "default", - "yes", - "no"); - -VIR_ENUM_IMPL(virDomainGraphicsSpiceAgentFileTransfer, - VIR_DOMAIN_GRAPHICS_SPICE_AGENT_FILE_TRANSFER_LAST, - "default", - "yes", - "no"); - VIR_ENUM_IMPL(virDomainHostdevMode, VIR_DOMAIN_HOSTDEV_MODE_LAST, "subsystem", "capabilities") @@ -8789,7 +8767,7 @@ virDomainGraphicsDefParseXML(xmlNodePtr node, } if ((copypasteVal = - virDomainGraphicsSpiceClipboardCopypasteTypeFromString(copypaste)) <= 0) { + virTristateBoolTypeFromString(copypaste)) <= 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown copypaste value '%s'"), copypaste); VIR_FREE(copypaste); @@ -8809,7 +8787,7 @@ virDomainGraphicsDefParseXML(xmlNodePtr node, } if ((enableVal = - virDomainGraphicsSpiceAgentFileTransferTypeFromString(enable)) <= 0) { + virTristateBoolTypeFromString(enable)) <= 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown enable value '%s'"), enable); VIR_FREE(enable); @@ -9916,7 +9894,7 @@ virDomainPMStateParseXML(xmlXPathContextPtr ctxt, int ret = -1; char *tmp = virXPathString(xpath, ctxt); if (tmp) { - *val = virDomainPMStateTypeFromString(tmp); + *val = virTristateBoolTypeFromString(tmp); if (*val < 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown PM state value %s"), tmp); @@ -10879,14 +10857,14 @@ virDomainDefParseBootXML(xmlXPathContextPtr ctxt, tmp = virXPathString("string(./os/bootmenu[1]/@enable)", ctxt); if (tmp) { - def->os.bootmenu = virDomainBootMenuTypeFromString(tmp); + def->os.bootmenu = virTristateBoolTypeFromString(tmp); if (def->os.bootmenu <= 0) { /* In order not to break misconfigured machines, this * should not emit an error, but rather set the bootmenu * to disabled */ VIR_WARN("disabling bootmenu due to unknown option '%s'", tmp); - def->os.bootmenu = VIR_DOMAIN_BOOT_MENU_DISABLED; + def->os.bootmenu = VIR_TRISTATE_BOOL_NO; } VIR_FREE(tmp); } @@ -10901,9 +10879,9 @@ virDomainDefParseBootXML(xmlXPathContextPtr ctxt, "for useserial")); goto cleanup; } - def->os.bios.useserial = VIR_DOMAIN_BIOS_USESERIAL_YES; + def->os.bios.useserial = VIR_TRISTATE_BOOL_YES; } else { - def->os.bios.useserial = VIR_DOMAIN_BIOS_USESERIAL_NO; + def->os.bios.useserial = VIR_TRISTATE_BOOL_NO; } VIR_FREE(tmp); } @@ -16943,10 +16921,10 @@ virDomainGraphicsDefFormat(virBufferPtr buf, virDomainGraphicsSpiceMouseModeTypeToString(def->data.spice.mousemode)); if (def->data.spice.copypaste) virBufferAsprintf(buf, "<clipboard copypaste='%s'/>\n", - virDomainGraphicsSpiceClipboardCopypasteTypeToString(def->data.spice.copypaste)); + virTristateBoolTypeToString(def->data.spice.copypaste)); if (def->data.spice.filetransfer) virBufferAsprintf(buf, "<filetransfer enable='%s'/>\n", - virDomainGraphicsSpiceAgentFileTransferTypeToString(def->data.spice.filetransfer)); + virTristateBoolTypeToString(def->data.spice.filetransfer)); } if (children) { @@ -17528,20 +17506,15 @@ virDomainDefFormatInternal(virDomainDefPtr def, virBufferAsprintf(buf, "<boot dev='%s'/>\n", boottype); } - if (def->os.bootmenu != VIR_DOMAIN_BOOT_MENU_DEFAULT) { - const char *enabled = (def->os.bootmenu == - VIR_DOMAIN_BOOT_MENU_ENABLED ? "yes" - : "no"); - virBufferAsprintf(buf, "<bootmenu enable='%s'/>\n", enabled); - } + if (def->os.bootmenu) + virBufferAsprintf(buf, "<bootmenu enable='%s'/>\n", + virTristateBoolTypeToString(def->os.bootmenu)); if (def->os.bios.useserial || def->os.bios.rt_set) { virBufferAddLit(buf, "<bios"); if (def->os.bios.useserial) virBufferAsprintf(buf, " useserial='%s'", - (def->os.bios.useserial == - VIR_DOMAIN_BIOS_USESERIAL_YES ? "yes" - : "no")); + virTristateBoolTypeToString(def->os.bios.useserial)); if (def->os.bios.rt_set) virBufferAsprintf(buf, " rebootTimeout='%d'", def->os.bios.rt_delay); @@ -17766,11 +17739,11 @@ virDomainDefFormatInternal(virDomainDefPtr def, virBufferAdjustIndent(buf, 2); if (def->pm.s3) { virBufferAsprintf(buf, "<suspend-to-mem enabled='%s'/>\n", - virDomainPMStateTypeToString(def->pm.s3)); + virTristateBoolTypeToString(def->pm.s3)); } if (def->pm.s4) { virBufferAsprintf(buf, "<suspend-to-disk enabled='%s'/>\n", - virDomainPMStateTypeToString(def->pm.s4)); + virTristateBoolTypeToString(def->pm.s4)); } virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "</pm>\n"); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 32674e0..8d2c546 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1337,22 +1337,6 @@ typedef enum { } virDomainGraphicsSpiceStreamingMode; typedef enum { - VIR_DOMAIN_GRAPHICS_SPICE_CLIPBOARD_COPYPASTE_DEFAULT = 0, - VIR_DOMAIN_GRAPHICS_SPICE_CLIPBOARD_COPYPASTE_YES, - VIR_DOMAIN_GRAPHICS_SPICE_CLIPBOARD_COPYPASTE_NO, - - VIR_DOMAIN_GRAPHICS_SPICE_CLIPBOARD_COPYPASTE_LAST -} virDomainGraphicsSpiceClipboardCopypaste; - -typedef enum { - VIR_DOMAIN_GRAPHICS_SPICE_AGENT_FILE_TRANSFER_DEFAULT = 0, - VIR_DOMAIN_GRAPHICS_SPICE_AGENT_FILE_TRANSFER_YES, - VIR_DOMAIN_GRAPHICS_SPICE_AGENT_FILE_TRANSFER_NO, - - VIR_DOMAIN_GRAPHICS_SPICE_AGENT_FILE_TRANSFER_LAST -} virDomainGraphicsSpiceAgentFileTransfer; - -typedef enum { VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE = 0, VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS, VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NETWORK, @@ -1512,14 +1496,6 @@ typedef enum { } virDomainBootOrder; typedef enum { - VIR_DOMAIN_BOOT_MENU_DEFAULT = 0, - VIR_DOMAIN_BOOT_MENU_ENABLED, - VIR_DOMAIN_BOOT_MENU_DISABLED, - - VIR_DOMAIN_BOOT_MENU_LAST -} virDomainBootMenu; - -typedef enum { VIR_DOMAIN_FEATURE_ACPI, VIR_DOMAIN_FEATURE_APIC, VIR_DOMAIN_FEATURE_PAE, @@ -1580,20 +1556,6 @@ typedef enum { VIR_ENUM_DECL(virDomainLockFailure) -typedef enum { - VIR_DOMAIN_PM_STATE_DEFAULT = 0, - VIR_DOMAIN_PM_STATE_ENABLED, - VIR_DOMAIN_PM_STATE_DISABLED, - - VIR_DOMAIN_PM_STATE_LAST -} virDomainPMState; - -typedef enum { - VIR_DOMAIN_BIOS_USESERIAL_DEFAULT = 0, - VIR_DOMAIN_BIOS_USESERIAL_YES, - VIR_DOMAIN_BIOS_USESERIAL_NO -} virDomainBIOSUseserial; - typedef struct _virDomainBIOSDef virDomainBIOSDef; typedef virDomainBIOSDef *virDomainBIOSDefPtr; struct _virDomainBIOSDef { @@ -2528,15 +2490,12 @@ typedef const char* (*virEventActionToStringFunc)(int type); typedef int (*virEventActionFromStringFunc)(const char *type); VIR_ENUM_DECL(virDomainTaint) - VIR_ENUM_DECL(virDomainVirt) VIR_ENUM_DECL(virDomainBoot) -VIR_ENUM_DECL(virDomainBootMenu) VIR_ENUM_DECL(virDomainFeature) VIR_ENUM_DECL(virDomainFeatureState) VIR_ENUM_DECL(virDomainLifecycle) VIR_ENUM_DECL(virDomainLifecycleCrash) -VIR_ENUM_DECL(virDomainPMState) VIR_ENUM_DECL(virDomainDevice) VIR_ENUM_DECL(virDomainDeviceAddress) VIR_ENUM_DECL(virDomainDiskDevice) @@ -2590,7 +2549,6 @@ VIR_ENUM_DECL(virDomainInputBus) VIR_ENUM_DECL(virDomainGraphics) VIR_ENUM_DECL(virDomainGraphicsListen) VIR_ENUM_DECL(virDomainGraphicsAuthConnected) -VIR_ENUM_DECL(virDomainGraphicsSpiceAgentFileTransfer) VIR_ENUM_DECL(virDomainGraphicsSpiceChannelName) VIR_ENUM_DECL(virDomainGraphicsSpiceChannelMode) VIR_ENUM_DECL(virDomainGraphicsSpiceImageCompression) @@ -2598,7 +2556,6 @@ VIR_ENUM_DECL(virDomainGraphicsSpiceJpegCompression) VIR_ENUM_DECL(virDomainGraphicsSpiceZlibCompression) VIR_ENUM_DECL(virDomainGraphicsSpicePlaybackCompression) VIR_ENUM_DECL(virDomainGraphicsSpiceStreamingMode) -VIR_ENUM_DECL(virDomainGraphicsSpiceClipboardCopypaste) VIR_ENUM_DECL(virDomainGraphicsSpiceMouseMode) VIR_ENUM_DECL(virDomainGraphicsVNCSharePolicy) VIR_ENUM_DECL(virDomainHyperv) diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index ce4d4d8..43d2f60 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -66,12 +66,6 @@ VIR_ENUM_IMPL(virNetworkForwardDriverName, "kvm", "vfio") -VIR_ENUM_IMPL(virNetworkDNSForwardPlainNames, - VIR_NETWORK_DNS_FORWARD_PLAIN_NAMES_LAST, - "default", - "yes", - "no") - VIR_ENUM_IMPL(virNetworkTaint, VIR_NETWORK_TAINT_LAST, "hook-script"); @@ -1123,8 +1117,7 @@ virNetworkDNSDefParseXML(const char *networkName, forwardPlainNames = virXPathString("string(./@forwardPlainNames)", ctxt); if (forwardPlainNames) { - def->forwardPlainNames - = virNetworkDNSForwardPlainNamesTypeFromString(forwardPlainNames); + def->forwardPlainNames = virTristateBoolTypeFromString(forwardPlainNames); if (def->forwardPlainNames <= 0) { virReportError(VIR_ERR_XML_ERROR, _("Invalid dns forwardPlainNames setting '%s' " @@ -2373,7 +2366,7 @@ virNetworkDNSDefFormat(virBufferPtr buf, virBufferAddLit(buf, "<dns"); if (def->forwardPlainNames) { - const char *fwd = virNetworkDNSForwardPlainNamesTypeToString(def->forwardPlainNames); + const char *fwd = virTristateBoolTypeToString(def->forwardPlainNames); if (!fwd) { virReportError(VIR_ERR_INTERNAL_ERROR, diff --git a/src/conf/network_conf.h b/src/conf/network_conf.h index c4e9d92..7ed58cd 100644 --- a/src/conf/network_conf.h +++ b/src/conf/network_conf.h @@ -112,23 +112,10 @@ struct _virNetworkDNSHostDef { char **names; }; -/* If forwardPlainNames is 0 (default), that is equivalent to "yes", - * but won't be encoded in newly formatted XML. - */ -typedef enum { - VIR_NETWORK_DNS_FORWARD_PLAIN_NAMES_DEFAULT = 0, /* silent "yes" */ - VIR_NETWORK_DNS_FORWARD_PLAIN_NAMES_YES, - VIR_NETWORK_DNS_FORWARD_PLAIN_NAMES_NO, - - VIR_NETWORK_DNS_FORWARD_PLAIN_NAMES_LAST, -} virNetworkDNSForwardPlainNamesType; - -VIR_ENUM_DECL(virNetworkDNSForwardPlainNames) - typedef struct _virNetworkDNSDef virNetworkDNSDef; typedef virNetworkDNSDef *virNetworkDNSDefPtr; struct _virNetworkDNSDef { - int forwardPlainNames; /* enum virNetworkDNSForwardPlainNamesType */ + int forwardPlainNames; /* enum virTristateBool */ size_t ntxts; virNetworkDNSTxtDefPtr txts; size_t nhosts; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index a184268..5e73f51 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -145,8 +145,6 @@ virDiskNameToIndex; virDomainActualNetDefFree; virDomainBlockedReasonTypeFromString; virDomainBlockedReasonTypeToString; -virDomainBootMenuTypeFromString; -virDomainBootMenuTypeToString; virDomainChrConsoleTargetTypeFromString; virDomainChrConsoleTargetTypeToString; virDomainChrDefForeach; @@ -271,14 +269,10 @@ virDomainGraphicsListenGetType; virDomainGraphicsListenSetAddress; virDomainGraphicsListenSetNetwork; virDomainGraphicsListenSetType; -virDomainGraphicsSpiceAgentFileTransferTypeFromString; -virDomainGraphicsSpiceAgentFileTransferTypeToString; virDomainGraphicsSpiceChannelModeTypeFromString; virDomainGraphicsSpiceChannelModeTypeToString; virDomainGraphicsSpiceChannelNameTypeFromString; virDomainGraphicsSpiceChannelNameTypeToString; -virDomainGraphicsSpiceClipboardCopypasteTypeFromString; -virDomainGraphicsSpiceClipboardCopypasteTypeToString; virDomainGraphicsSpiceImageCompressionTypeFromString; virDomainGraphicsSpiceImageCompressionTypeToString; virDomainGraphicsSpiceJpegCompressionTypeFromString; @@ -377,8 +371,6 @@ virDomainPausedReasonTypeFromString; virDomainPausedReasonTypeToString; virDomainPCIRombarModeTypeFromString; virDomainPCIRombarModeTypeToString; -virDomainPMStateTypeFromString; -virDomainPMStateTypeToString; virDomainPMSuspendedReasonTypeFromString; virDomainPMSuspendedReasonTypeToString; virDomainRedirdevBusTypeFromString; @@ -2138,6 +2130,8 @@ virSetSockReuseAddr; virSetUIDGID; virSetUIDGIDWithCaps; virStrIsPrint; +virTristateBoolTypeFromString; +virTristateBoolTypeToString; virUpdateSelfLastChanged; virValidateWWN; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 6a2e760..6ccc6e2 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -927,8 +927,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, network->def->domain); } - if (network->def->dns.forwardPlainNames - == VIR_NETWORK_DNS_FORWARD_PLAIN_NAMES_NO) { + if (network->def->dns.forwardPlainNames == VIR_TRISTATE_BOOL_NO) { virBufferAddLit(&configbuf, "domain-needed\n"); /* need to specify local=// whether or not a domain is * specified, unless the config says we should forward "plain" diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 2185ef4..bde3af1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6754,9 +6754,9 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, if (graphics->data.spice.streaming) virBufferAsprintf(&opt, ",streaming-video=%s", virDomainGraphicsSpiceStreamingModeTypeToString(graphics->data.spice.streaming)); - if (graphics->data.spice.copypaste == VIR_DOMAIN_GRAPHICS_SPICE_CLIPBOARD_COPYPASTE_NO) + if (graphics->data.spice.copypaste == VIR_TRISTATE_BOOL_NO) virBufferAddLit(&opt, ",disable-copy-paste"); - if (graphics->data.spice.filetransfer == VIR_DOMAIN_GRAPHICS_SPICE_AGENT_FILE_TRANSFER_NO) { + if (graphics->data.spice.filetransfer == VIR_TRISTATE_BOOL_NO) { if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_FILE_XFER_DISABLE)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("This QEMU can't disable file transfers through spice")); @@ -7336,7 +7336,7 @@ qemuBuildCommandLine(virConnectPtr conn, } /* Serial graphics adapter */ - if (def->os.bios.useserial == VIR_DOMAIN_BIOS_USESERIAL_YES) { + if (def->os.bios.useserial == VIR_TRISTATE_BOOL_YES) { if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("qemu does not support -device")); @@ -7555,7 +7555,7 @@ qemuBuildCommandLine(virConnectPtr conn, } virCommandAddArg(cmd, "-global"); virCommandAddArgFormat(cmd, "PIIX4_PM.disable_s3=%d", - def->pm.s3 == VIR_DOMAIN_PM_STATE_DISABLED); + def->pm.s3 == VIR_TRISTATE_BOOL_NO); } if (def->pm.s4) { @@ -7566,7 +7566,7 @@ qemuBuildCommandLine(virConnectPtr conn, } virCommandAddArg(cmd, "-global"); virCommandAddArgFormat(cmd, "PIIX4_PM.disable_s4=%d", - def->pm.s4 == VIR_DOMAIN_PM_STATE_DISABLED); + def->pm.s4 == VIR_TRISTATE_BOOL_NO); } if (!def->os.bootloader) { @@ -7588,7 +7588,7 @@ qemuBuildCommandLine(virConnectPtr conn, } emitBootindex = true; } else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BOOTINDEX) && - (def->os.bootmenu != VIR_DOMAIN_BOOT_MENU_ENABLED || + (def->os.bootmenu != VIR_TRISTATE_BOOL_YES || !virQEMUCapsGet(qemuCaps, QEMU_CAPS_BOOT_MENU))) { emitBootindex = true; } @@ -7626,7 +7626,7 @@ qemuBuildCommandLine(virConnectPtr conn, if (boot_nparams++) virBufferAddChar(&boot_buf, ','); - if (def->os.bootmenu == VIR_DOMAIN_BOOT_MENU_ENABLED) + if (def->os.bootmenu == VIR_TRISTATE_BOOL_YES) virBufferAddLit(&boot_buf, "menu=on"); else virBufferAddLit(&boot_buf, "menu=off"); @@ -11307,9 +11307,9 @@ qemuParseCommandLine(virCapsPtr qemuCaps, val += strlen("PIIX4_PM.disable_s3="); if (STREQ(val, "0")) - def->pm.s3 = VIR_DOMAIN_PM_STATE_ENABLED; + def->pm.s3 = VIR_TRISTATE_BOOL_YES; else if (STREQ(val, "1")) - def->pm.s3 = VIR_DOMAIN_PM_STATE_DISABLED; + def->pm.s3 = VIR_TRISTATE_BOOL_NO; else { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("invalid value for disable_s3 parameter: " @@ -11324,9 +11324,9 @@ qemuParseCommandLine(virCapsPtr qemuCaps, val += strlen("PIIX4_PM.disable_s4="); if (STREQ(val, "0")) - def->pm.s4 = VIR_DOMAIN_PM_STATE_ENABLED; + def->pm.s4 = VIR_TRISTATE_BOOL_YES; else if (STREQ(val, "1")) - def->pm.s4 = VIR_DOMAIN_PM_STATE_DISABLED; + def->pm.s4 = VIR_TRISTATE_BOOL_NO; else { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("invalid value for disable_s4 parameter: " diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 62b7f07..46ab766 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -16225,7 +16225,7 @@ qemuDomainPMSuspendForDuration(virDomainPtr dom, } if (vm->def->pm.s3 || vm->def->pm.s4) { - if (vm->def->pm.s3 == VIR_DOMAIN_PM_STATE_DISABLED && + if (vm->def->pm.s3 == VIR_TRISTATE_BOOL_NO && (target == VIR_NODE_SUSPEND_TARGET_MEM || target == VIR_NODE_SUSPEND_TARGET_HYBRID)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -16233,7 +16233,7 @@ qemuDomainPMSuspendForDuration(virDomainPtr dom, goto cleanup; } - if (vm->def->pm.s4 == VIR_DOMAIN_PM_STATE_DISABLED && + if (vm->def->pm.s4 == VIR_TRISTATE_BOOL_NO && target == VIR_NODE_SUSPEND_TARGET_DISK) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("S4 state is disabled for this domain")); diff --git a/src/util/virutil.c b/src/util/virutil.c index 95d1ff9..305c40c 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -92,6 +92,11 @@ verify(sizeof(gid_t) <= sizeof(unsigned int) && VIR_LOG_INIT("util.util"); +VIR_ENUM_IMPL(virTristateBool, VIR_TRISTATE_BOOL_LAST, + "default", + "yes", + "no") + #ifndef WIN32 int virSetInherit(int fd, bool inherit) diff --git a/src/util/virutil.h b/src/util/virutil.h index 2bb74e2..a06b9a5 100644 --- a/src/util/virutil.h +++ b/src/util/virutil.h @@ -38,6 +38,7 @@ # define MAX(a, b) ((a) > (b) ? (a) : (b)) # endif + int virSetBlocking(int fd, bool blocking) ATTRIBUTE_RETURN_CHECK; int virSetNonBlock(int fd) ATTRIBUTE_RETURN_CHECK; int virSetInherit(int fd, bool inherit) ATTRIBUTE_RETURN_CHECK; @@ -203,4 +204,14 @@ bool virIsSUID(void); time_t virGetSelfLastChanged(void); void virUpdateSelfLastChanged(const char *path); +typedef enum { + VIR_TRISTATE_BOOL_ABSENT = 0, + VIR_TRISTATE_BOOL_YES, + VIR_TRISTATE_BOOL_NO, + + VIR_TRISTATE_BOOL_LAST +} virTristateBool; + +VIR_ENUM_DECL(virTristateBool) + #endif /* __VIR_UTIL_H__ */ -- 1.8.5.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list