]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: Use virTristateXXX in virDomainDeviceInfo
authorTim Wiederhake <twiederh@redhat.com>
Wed, 7 Apr 2021 11:48:30 +0000 (13:48 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 16 Apr 2021 07:48:41 +0000 (09:48 +0200)
Note that the wrong "VIR_TRISTATE_*_ABSENT" was used in qemuDomainChangeNet.

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/conf/device_conf.h
src/conf/domain_conf.c
src/qemu/qemu_command.c
src/qemu/qemu_hotplug.c

index cec34ededd27a3d61a89fc3db77bebe145896574..09ef5dda923958c75bfa4096275b66321e09cf23 100644 (file)
@@ -143,8 +143,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 */
index 410d37238203634ba4d08c961d14808247d8a9c5..b9cfa2b827727b0ded26864ef24871873e913a98 100644 (file)
@@ -6691,17 +6691,23 @@ virDomainDeviceInfoParseXML(virDomainXMLOption *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");
 
index 489b15a2839d55b9adc16cd440a1b1d6cc80af07..77d8e3f38cca51e7e2c869c8dd344cf4ebe4f20a 100644 (file)
@@ -713,7 +713,8 @@ qemuBuildRomStr(virBuffer *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) {
index 4ac67971ffbff0ce873c751f137db79e98865ad3..20c34ef1045a6d9a45fd58408b33f5b0fa2337b5 100644 (file)
@@ -3653,7 +3653,7 @@ qemuDomainChangeNet(virQEMUDriver *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",