From 8204234040574fe1976004d974b72c7e3bc22544 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Wed, 17 Feb 2016 17:19:00 -0500 Subject: [PATCH] qemu: Introduce qemuBuildSgaCommandLine 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 --- src/qemu/qemu_command.c | 50 +++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index c71c8b01e4..289023c031 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -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; -- GitLab