From nobody Mon Feb 9 20:11:22 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1562879164; cv=none; d=zoho.com; s=zohoarc; b=QfrzgqJx1lRWipuFvc3EkXQxDxxz8FlhaKe47V+43zJQy+bHHf0OnWIQpL8bTdN8hg27sFAFBKU3hKcN33T8oIJoMJGoRav/ft3MP3/vB0jnB91yVK0CmPzKoOQNcN/2ZpO9mj2ZI14HU8zdFTmMtGxc5on3pJjyP2ZNS+LaNAs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1562879164; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=RLj0za8iwElQwtZ8EhCh1DMUAMgL21p/pL1LHUs6eu4=; b=HEPLlR9zYF/Sa6jma196wTMnhXJY+Fikn1SM6QS6TOA4kErvdykjvt04V4g9aeJWU1Wdykhi1t0sz4VsL+eomzAoEUxR6fidvKQjMoRXI6wph7zXBIJmkUNIgCzSAF60sAkQFC/R6pHQe7/XqBpPv07yHMI6/GPAaWot/lqmJ8M= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1562879164935115.59877240748813; Thu, 11 Jul 2019 14:06:04 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 27413C0467E4; Thu, 11 Jul 2019 21:06:03 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E37FB5DDAC; Thu, 11 Jul 2019 21:06:02 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8CC9D41F63; Thu, 11 Jul 2019 21:06:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x6BL5dfp012458 for ; Thu, 11 Jul 2019 17:05:39 -0400 Received: by smtp.corp.redhat.com (Postfix) id A3B611001B13; Thu, 11 Jul 2019 21:05:39 +0000 (UTC) Received: from aegolius.redhat.com (ovpn-118-68.phx2.redhat.com [10.3.118.68]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 633491001B02 for ; Thu, 11 Jul 2019 21:05:39 +0000 (UTC) From: Jonathon Jongsma To: libvir-list@redhat.com Date: Thu, 11 Jul 2019 16:05:33 -0500 Message-Id: <20190711210533.11479-4-jjongsma@redhat.com> In-Reply-To: <20190711210533.11479-1-jjongsma@redhat.com> References: <20190711210533.11479-1-jjongsma@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 3/3] conf: add 'bochs' video display type X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Thu, 11 Jul 2019 21:06:03 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Update schema and configuration to allow specifying new video type of 'bochs'. Add implementation and tests for qemu. Signed-off-by: Jonathon Jongsma --- docs/formatdomain.html.in | 5 +-- docs/schemas/domaincommon.rng | 1 + src/conf/domain_conf.c | 2 ++ src/conf/domain_conf.h | 1 + src/qemu/qemu_command.c | 6 ++++ src/qemu/qemu_domain.c | 1 + src/qemu/qemu_domain_address.c | 3 ++ .../video-bochs-display-device.args | 32 +++++++++++++++++++ .../video-bochs-display-device.xml | 29 +++++++++++++++++ tests/qemuxml2argvtest.c | 3 ++ 10 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 tests/qemuxml2argvdata/video-bochs-display-device.args create mode 100644 tests/qemuxml2argvdata/video-bochs-display-device.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index a7a6ec32a5..b7db5bbbea 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -6990,8 +6990,9 @@ qemu-kvm -net nic,model=3D? /dev/null attribute which takes the value "vga", "cirrus", "vmvga", "xen", "vbox", "qxl" (since 0.8.6), "virtio" (since 1.3.0), - "gop" (since 3.2.0), or - "none" (since 4.6.0) + "gop" (since 3.2.0), + "none" (since 4.6.0, or "bochs" + (since 5.5.0) depending on the hypervisor features available. The purpose of the type none is to instruct libvirt= not to add a default video device in the guest (see the paragraph ab= ove). diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 31db599ab9..763480440c 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -3584,6 +3584,7 @@ virtio gop none + bochs diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 3323c9a5b1..6e89569d3b 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -738,6 +738,7 @@ VIR_ENUM_IMPL(virDomainVideo, "virtio", "gop", "none", + "bochs", ); =20 VIR_ENUM_IMPL(virDomainVideoVGAConf, @@ -15158,6 +15159,7 @@ virDomainVideoDefaultRAM(const virDomainDef *def, case VIR_DOMAIN_VIDEO_TYPE_VGA: case VIR_DOMAIN_VIDEO_TYPE_CIRRUS: case VIR_DOMAIN_VIDEO_TYPE_VMVGA: + case VIR_DOMAIN_VIDEO_TYPE_BOCHS: if (def->virtType =3D=3D VIR_DOMAIN_VIRT_VBOX) return 8 * 1024; else if (def->virtType =3D=3D VIR_DOMAIN_VIRT_VMWARE) diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index c1b5fc1337..3b248e8091 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1385,6 +1385,7 @@ typedef enum { VIR_DOMAIN_VIDEO_TYPE_VIRTIO, VIR_DOMAIN_VIDEO_TYPE_GOP, VIR_DOMAIN_VIDEO_TYPE_NONE, + VIR_DOMAIN_VIDEO_TYPE_BOCHS, =20 VIR_DOMAIN_VIDEO_TYPE_LAST } virDomainVideoType; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 2f98efd6bf..6b0cd7f36d 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -111,6 +111,7 @@ VIR_ENUM_IMPL(qemuVideo, "", /* no need for virtio */ "" /* don't support gop */, "" /* 'none' doesn't make sense here */, + "bochs-display", ); =20 VIR_ENUM_DECL(qemuDeviceVideo); @@ -128,6 +129,7 @@ VIR_ENUM_IMPL(qemuDeviceVideo, "virtio-vga", "" /* don't support gop */, "" /* 'none' doesn't make sense here */, + "bochs-display", ); =20 VIR_ENUM_DECL(qemuDeviceVideoSecondary); @@ -145,6 +147,7 @@ VIR_ENUM_IMPL(qemuDeviceVideoSecondary, "virtio-gpu", "" /* don't support gop */, "" /* 'none' doesn't make sense here */, + "" /* no secondary device for bochs */, ); =20 VIR_ENUM_DECL(qemuSoundCodec); @@ -4754,6 +4757,9 @@ qemuBuildDeviceVideoStr(const virDomainDef *def, virQEMUCapsGet(qemuCaps, QEMU_CAPS_VMWARE_SVGA_VGAMEM))) { if (video->vram) virBufferAsprintf(&buf, ",vgamem_mb=3D%u", video->vram / 1024); + } else if (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_BOCHS) { + if (video->vram) + virBufferAsprintf(&buf, ",vgamem=3D%uk", video->vram); } =20 if (qemuBuildDeviceAddressStr(&buf, def, &video->info, qemuCaps) < 0) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 0f1fda2384..00ac5e1307 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4960,6 +4960,7 @@ qemuDomainDeviceDefValidateVideo(const virDomainVideo= Def *video) case VIR_DOMAIN_VIDEO_TYPE_VMVGA: case VIR_DOMAIN_VIDEO_TYPE_QXL: case VIR_DOMAIN_VIDEO_TYPE_VIRTIO: + case VIR_DOMAIN_VIDEO_TYPE_BOCHS: case VIR_DOMAIN_VIDEO_TYPE_LAST: break; } diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index 4b99e8ca93..972b810211 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -931,6 +931,9 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDevic= eDefPtr dev, case VIR_DOMAIN_VIDEO_TYPE_PARALLELS: return pciFlags; =20 + case VIR_DOMAIN_VIDEO_TYPE_BOCHS: + return pcieFlags; + case VIR_DOMAIN_VIDEO_TYPE_DEFAULT: case VIR_DOMAIN_VIDEO_TYPE_GOP: case VIR_DOMAIN_VIDEO_TYPE_NONE: diff --git a/tests/qemuxml2argvdata/video-bochs-display-device.args b/tests= /qemuxml2argvdata/video-bochs-display-device.args new file mode 100644 index 0000000000..f88e9ccb04 --- /dev/null +++ b/tests/qemuxml2argvdata/video-bochs-display-device.args @@ -0,0 +1,32 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=3Dnone \ +/usr/bin/qemu-system-i686 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=3Dtcg,usb=3Doff,dump-guest-core=3Doff \ +-m 1024 \ +-realtime mlock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni= tor.sock,\ +server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-drive file=3D/var/lib/libvirt/images/QEMUGuest1,format=3Dqcow2,if=3Dnone,\ +id=3Ddrive-ide0-0-0,cache=3Dnone \ +-device ide-hd,bus=3Dide.0,unit=3D0,drive=3Ddrive-ide0-0-0,id=3Dide0-0-0,b= ootindex=3D1 \ +-device bochs-display,id=3Dvideo0,vgamem=3D16384k,bus=3Dpci.0,addr=3D0x2 \ +-device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x3 diff --git a/tests/qemuxml2argvdata/video-bochs-display-device.xml b/tests/= qemuxml2argvdata/video-bochs-display-device.xml new file mode 100644 index 0000000000..3c59bf7c6a --- /dev/null +++ b/tests/qemuxml2argvdata/video-bochs-display-device.xml @@ -0,0 +1,29 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 1048576 + 1048576 + 1 + + hvm + + + + destroy + restart + destroy + + /usr/bin/qemu-system-i686 + + + + +
+ + + + + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 0ac128be00..92791f61ac 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -2028,6 +2028,9 @@ mymain(void) QEMU_CAPS_DEVICE_VIRTIO_VGA, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS); + DO_TEST("video-bochs-display-device", + QEMU_CAPS_DEVICE_BOCHS_DISPLAY, + QEMU_CAPS_DEVICE_VIDEO_PRIMARY); DO_TEST("video-none-device", QEMU_CAPS_VNC); DO_TEST_PARSE_ERROR("video-invalid-multiple-devices", NONE); --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list