From 9647a95c37b289723141f1122de17814344de0cc Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 24 May 2018 17:01:55 +0200 Subject: [PATCH] qemu: domain: Extract video device def post parse code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_domain.c | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index dbdd94de2f..e9a8b0c332 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5743,6 +5743,28 @@ qemuDomainDeviceNetDefPostParse(virDomainNetDefPtr net, } +static int +qemuDomainDeviceVideoDefPostParse(virDomainVideoDefPtr video, + const virDomainDef *def) +{ + if (video->type == VIR_DOMAIN_VIDEO_TYPE_DEFAULT) { + if (ARCH_IS_PPC64(def->os.arch)) + video->type = VIR_DOMAIN_VIDEO_TYPE_VGA; + else if (qemuDomainIsVirt(def) || ARCH_IS_S390(def->os.arch)) + video->type = VIR_DOMAIN_VIDEO_TYPE_VIRTIO; + else + video->type = VIR_DOMAIN_VIDEO_TYPE_CIRRUS; + } + + if (video->type == VIR_DOMAIN_VIDEO_TYPE_QXL && + !video->vgamem) { + video->vgamem = QEMU_QXL_VGAMEM_DEFAULT; + } + + return 0; +} + + static int qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, const virDomainDef *def, @@ -5767,21 +5789,9 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, qemuDomainDeviceDiskDefPostParse(dev->data.disk, cfg) < 0) goto cleanup; - if (dev->type == VIR_DOMAIN_DEVICE_VIDEO) { - if (dev->data.video->type == VIR_DOMAIN_VIDEO_TYPE_DEFAULT) { - if (ARCH_IS_PPC64(def->os.arch)) - dev->data.video->type = VIR_DOMAIN_VIDEO_TYPE_VGA; - else if (qemuDomainIsVirt(def) || ARCH_IS_S390(def->os.arch)) - dev->data.video->type = VIR_DOMAIN_VIDEO_TYPE_VIRTIO; - else - dev->data.video->type = VIR_DOMAIN_VIDEO_TYPE_CIRRUS; - } - - if (dev->data.video->type == VIR_DOMAIN_VIDEO_TYPE_QXL && - !dev->data.video->vgamem) { - dev->data.video->vgamem = QEMU_QXL_VGAMEM_DEFAULT; - } - } + if (dev->type == VIR_DOMAIN_DEVICE_VIDEO && + qemuDomainDeviceVideoDefPostParse(dev->data.video, def) < 0) + goto cleanup; if (dev->type == VIR_DOMAIN_DEVICE_PANIC && dev->data.panic->model == VIR_DOMAIN_PANIC_MODEL_DEFAULT) { -- GitLab