[libvirt PATCH 03/14] conf: Use virTristateXXX in virDomainDeviceInfo

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Note that the wrong "VIR_TRISTATE_*_ABSENT" was used in qemuDomainChangeNet.

Signed-off-by: Tim Wiederhake <twiederh@xxxxxxxxxx>
---
 src/conf/device_conf.h  |  4 ++--
 src/conf/domain_conf.c  | 26 ++++++++++++++++----------
 src/qemu/qemu_command.c |  3 ++-
 src/qemu/qemu_hotplug.c |  2 +-
 4 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h
index a51bdf10ee..289af1153a 100644
--- a/src/conf/device_conf.h
+++ b/src/conf/device_conf.h
@@ -153,8 +153,8 @@ struct _virDomainDeviceInfo {
     } master;
     /* rombar and romfile are only used for pci hostdev and network
      * devices. */
-    int romenabled; /* enum virTristateBool */
-    int rombar;         /* enum virTristateSwitch */
+    virTristateBool romenabled;
+    virTristateSwitch rombar;
     char *romfile;
     /* bootIndex is only used for disk, network interface, hostdev
      * and redirdev devices */
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index dfdca1891a..67954bb42b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -6687,17 +6687,23 @@ virDomainDeviceInfoParseXML(virDomainXMLOptionPtr xmlopt,
 
     if ((flags & VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) &&
         (rom = virXPathNode("./rom", ctxt))) {
-        if ((romenabled = virXPathString("string(./rom/@enabled)", ctxt)) &&
-            ((info->romenabled = virTristateBoolTypeFromString(romenabled)) <= 0)) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                           _("unknown rom enabled value '%s'"), romenabled);
-            goto cleanup;
+        if ((romenabled = virXPathString("string(./rom/@enabled)", ctxt))) {
+            int value;
+            if ((value = virTristateBoolTypeFromString(romenabled)) <= 0) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                               _("unknown rom enabled value '%s'"), romenabled);
+                goto cleanup;
+            }
+            info->romenabled = value;
         }
-        if ((rombar = virXPathString("string(./rom/@bar)", ctxt)) &&
-            ((info->rombar = virTristateSwitchTypeFromString(rombar)) <= 0)) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                           _("unknown rom bar value '%s'"), rombar);
-            goto cleanup;
+        if ((rombar = virXPathString("string(./rom/@bar)", ctxt))) {
+            int value;
+            if ((value = virTristateSwitchTypeFromString(rombar)) <= 0) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                               _("unknown rom bar value '%s'"), rombar);
+                goto cleanup;
+            }
+            info->rombar = value;
         }
         info->romfile = virXMLPropString(rom, "file");
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 7cb07306f3..92ab7eb34a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -685,7 +685,8 @@ qemuBuildRomStr(virBufferPtr buf,
         case VIR_TRISTATE_SWITCH_ON:
             virBufferAddLit(buf, ",rombar=1");
             break;
-        default:
+        case VIR_TRISTATE_SWITCH_ABSENT:
+        case VIR_TRISTATE_SWITCH_LAST:
             break;
         }
         if (info->romfile) {
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 58d2abb862..142a4b18e1 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -3653,7 +3653,7 @@ qemuDomainChangeNet(virQEMUDriverPtr driver,
 
     /* device alias is checked already in virDomainDefCompatibleDevice */
 
-    if (newdev->info.rombar == VIR_TRISTATE_BOOL_ABSENT)
+    if (newdev->info.rombar == VIR_TRISTATE_SWITCH_ABSENT)
         newdev->info.rombar = olddev->info.rombar;
     if (olddev->info.rombar != newdev->info.rombar) {
         virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
-- 
2.26.2




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux