]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Introduce qemuBuildParallelsCommandLine
authorJohn Ferlan <jferlan@redhat.com>
Thu, 18 Feb 2016 15:58:06 +0000 (10:58 -0500)
committerJohn Ferlan <jferlan@redhat.com>
Sat, 12 Mar 2016 00:23:46 +0000 (19:23 -0500)
Add new function to manage adding the parallels device options to the
command line removing that task from the mainline qemuBuildCommandLine.
Alter logic slight to reduce indention level.

Signed-off-by: John Ferlan <jferlan@redhat.com>
src/qemu/qemu_command.c

index 1659e7155535afd174dea2adf90d5ff9bab5cb92..a86cbb306de3f1a2f5f79b7481644d484933293f 100644 (file)
@@ -7813,6 +7813,50 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManager,
 }
 
 
+static int
+qemuBuildParallelsCommandLine(virLogManagerPtr logManager,
+                              virCommandPtr cmd,
+                              const virDomainDef *def,
+                              virQEMUCapsPtr qemuCaps)
+{
+    size_t i;
+
+    /* If we have -device, then we set -nodefaults already */
+    if (!def->nparallels && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE))
+        virCommandAddArgList(cmd, "-parallel", "none", NULL);
+
+    for (i = 0; i < def->nparallels; i++) {
+        virDomainChrDefPtr parallel = def->parallels[i];
+        char *devstr;
+
+        /* Use -chardev with -device if they are available */
+        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV) &&
+            virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) {
+            virCommandAddArg(cmd, "-chardev");
+            if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, def,
+                                                  &parallel->source,
+                                                  parallel->info.alias,
+                                                  qemuCaps)))
+                return -1;
+            virCommandAddArg(cmd, devstr);
+            VIR_FREE(devstr);
+
+            if (qemuBuildChrDeviceCommandLine(cmd, def, parallel,
+                                              qemuCaps) < 0)
+                return -1;
+        } else {
+            virCommandAddArg(cmd, "-parallel");
+            if (!(devstr = qemuBuildChrArgStr(&parallel->source, NULL)))
+                return -1;
+            virCommandAddArg(cmd, devstr);
+            VIR_FREE(devstr);
+        }
+    }
+
+    return 0;
+}
+
+
 static int
 qemuBuildDomainLoaderCommandLine(virCommandPtr cmd,
                                  virDomainDefPtr def,
@@ -8312,38 +8356,8 @@ qemuBuildCommandLine(virConnectPtr conn,
     if (qemuBuildSerialCommandLine(logManager, cmd, def, qemuCaps) < 0)
         goto error;
 
-    if (!def->nparallels) {
-        /* If we have -device, then we set -nodefault already */
-        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE))
-            virCommandAddArgList(cmd, "-parallel", "none", NULL);
-    } else {
-        for (i = 0; i < def->nparallels; i++) {
-            virDomainChrDefPtr parallel = def->parallels[i];
-            char *devstr;
-
-            /* Use -chardev with -device if they are available */
-            if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV) &&
-                virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) {
-                if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, def,
-                                                      &parallel->source,
-                                                      parallel->info.alias,
-                                                      qemuCaps)))
-                    goto error;
-                virCommandAddArg(cmd, "-chardev");
-                virCommandAddArg(cmd, devstr);
-                VIR_FREE(devstr);
-
-                if (qemuBuildChrDeviceCommandLine(cmd, def, parallel, qemuCaps) < 0)
-                    goto error;
-            } else {
-                virCommandAddArg(cmd, "-parallel");
-                if (!(devstr = qemuBuildChrArgStr(&parallel->source, NULL)))
-                    goto error;
-                virCommandAddArg(cmd, devstr);
-                VIR_FREE(devstr);
-            }
-        }
-    }
+    if (qemuBuildParallelsCommandLine(logManager, cmd, def, qemuCaps) < 0)
+        goto error;
 
     for (i = 0; i < def->nchannels; i++) {
         virDomainChrDefPtr channel = def->channels[i];