]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Introduce qemuBuildSgaCommandLine
authorJohn Ferlan <jferlan@redhat.com>
Wed, 17 Feb 2016 22:19:00 +0000 (17:19 -0500)
committerJohn Ferlan <jferlan@redhat.com>
Thu, 18 Feb 2016 12:03:30 +0000 (07:03 -0500)
Add new function to manage adding the '-device sga' to the command
line removing that task from the mainline qemuBuildCommandLine

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

index c71c8b01e49b614cb503b30ba80e8fe94aa97772..289023c03150b87eba969fcc47afa4ed8fee3d55 100644 (file)
@@ -4534,6 +4534,35 @@ qemuBuildSmbiosCommandLine(virCommandPtr cmd,
 }
 
 
+static int
+qemuBuildSgaCommandLine(virCommandPtr cmd,
+                        const virDomainDef *def,
+                        virQEMUCapsPtr qemuCaps)
+{
+    /* Serial graphics adapter */
+    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"));
+            return -1;
+        }
+        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SGA)) {
+            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                           _("qemu does not support SGA"));
+            return -1;
+        }
+        if (!def->nserials) {
+            virReportError(VIR_ERR_XML_ERROR, "%s",
+                           _("need at least one serial port to use SGA"));
+            return -1;
+        }
+        virCommandAddArgList(cmd, "-device", "sga", NULL);
+    }
+
+    return 0;
+}
+
+
 static char *
 qemuBuildClockArgStr(virDomainClockDefPtr def)
 {
@@ -7074,25 +7103,8 @@ qemuBuildCommandLine(virConnectPtr conn,
         virCommandAddArg(cmd, "-nodefaults");
     }
 
-    /* Serial graphics adapter */
-    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"));
-            goto error;
-        }
-        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SGA)) {
-            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                           _("qemu does not support SGA"));
-            goto error;
-        }
-        if (!def->nserials) {
-            virReportError(VIR_ERR_XML_ERROR, "%s",
-                           _("need at least one serial port to use SGA"));
-            goto error;
-        }
-        virCommandAddArgList(cmd, "-device", "sga", NULL);
-    }
+    if (qemuBuildSgaCommandLine(cmd, def, qemuCaps) < 0)
+        goto error;
 
     if (monitor_chr) {
         char *chrdev;