diff options
Diffstat (limited to 'app-emulation/qemu/files')
7 files changed, 0 insertions, 471 deletions
diff --git a/app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch b/app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch deleted file mode 100644 index d79570ebb8aa..000000000000 --- a/app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- qemu-2.11.1/include/disas/capstone.h 2018-02-14 22:53:22.000000000 +0100 -+++ qemu-2.11.1/include/disas/capstone.h 2018-02-17 20:12:12.754703951 +0100 -@@ -3,7 +3,7 @@ - - #ifdef CONFIG_CAPSTONE - --#include <capstone.h> -+#include <capstone/capstone.h> - - #else - diff --git a/app-emulation/qemu/files/qemu-6.1.0-strings.patch b/app-emulation/qemu/files/qemu-6.1.0-strings.patch deleted file mode 100644 index 2efe7b29330a..000000000000 --- a/app-emulation/qemu/files/qemu-6.1.0-strings.patch +++ /dev/null @@ -1,26 +0,0 @@ -Forward-ported from original patch for 5.2.0. - -diff --git a/configure b/configure -index da2501489f..4660ee3ee5 100755 ---- a/configure -+++ b/configure -@@ -516,6 +516,7 @@ ld="${LD-${cross_prefix}ld}" - ranlib="${RANLIB-${cross_prefix}ranlib}" - nm="${NM-${cross_prefix}nm}" - strip="${STRIP-${cross_prefix}strip}" -+strings="${STRINGS-${cross_prefix}strings}" - windres="${WINDRES-${cross_prefix}windres}" - pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}" - query_pkg_config() { -@@ -2380,9 +2381,9 @@ int main(int argc, char *argv[]) - EOF - - if compile_prog ; then -- if strings -a $TMPE | grep -q BiGeNdIaN ; then -+ if $strings -a $TMPE | grep -q BiGeNdIaN ; then - bigendian="yes" -- elif strings -a $TMPE | grep -q LiTtLeEnDiAn ; then -+ elif $strings -a $TMPE | grep -q LiTtLeEnDiAn ; then - bigendian="no" - else - echo big/little test failed diff --git a/app-emulation/qemu/files/qemu-7.0.0-also-build-virtfs-proxy-helper.patch b/app-emulation/qemu/files/qemu-7.0.0-also-build-virtfs-proxy-helper.patch deleted file mode 100644 index ca2e9433792c..000000000000 --- a/app-emulation/qemu/files/qemu-7.0.0-also-build-virtfs-proxy-helper.patch +++ /dev/null @@ -1,32 +0,0 @@ -From c1093041466772f4b62961bcc5a354801d41355d Mon Sep 17 00:00:00 2001 -From: Matthias Maier <tamiko@43-1.org> -Date: Mon, 4 Apr 2022 12:56:59 +0200 -Subject: [PATCH] also build virtfs-proxy-helper - -The Gentoo ebuild splits the qemu build into a softmmu, user and tool -phase in order to be able to build and link some of the qemu emulators -statically. This unfortunately has the consequence that we never -configure with "have_virtfs" and "have_tools" at the same time. - -As a workaround, simply build the virtfs userland unconditionally. After -all, it is a tiny executable ---- - meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 861de93c4f..a8d29be3aa 100644 ---- a/meson.build -+++ b/meson.build -@@ -1474,7 +1474,7 @@ have_virtfs = get_option('virtfs') \ - .disable_auto_if(not have_tools and not have_system) \ - .allowed() - --have_virtfs_proxy_helper = targetos != 'darwin' and have_virtfs and have_tools -+have_virtfs_proxy_helper = have_tools and libattr.found() and libcap_ng.found() - - foreach k : get_option('trace_backends') - config_host_data.set('CONFIG_TRACE_' + k.to_upper(), true) --- -2.35.1 - diff --git a/app-emulation/qemu/files/qemu-7.0.0-glibc-2.36.patch b/app-emulation/qemu/files/qemu-7.0.0-glibc-2.36.patch deleted file mode 100644 index 85343c4d00e7..000000000000 --- a/app-emulation/qemu/files/qemu-7.0.0-glibc-2.36.patch +++ /dev/null @@ -1,90 +0,0 @@ -https://lore.kernel.org/all/20220802183409.GB2040@redhat.com/T/ -https://bugs.gentoo.org/863443 - -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> -To: qemu-devel@nongnu.org -Cc: Laurent Vivier <laurent@vivier.eu>, - =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> -Subject: [PATCH for 7.1] linux-user: fix compat with glibc >= 2.36 sys/mount.h -Date: Tue, 2 Aug 2022 12:41:34 -0400 - -The latest glibc 2.36 has extended sys/mount.h so that it -defines the FSCONFIG_* enum constants. These are historically -defined in linux/mount.h, and thus if you include both headers -the compiler complains: - -In file included from /usr/include/linux/fs.h:19, - from ../linux-user/syscall.c:98: -/usr/include/linux/mount.h:95:6: error: redeclaration of 'enum fsconfig_command' - 95 | enum fsconfig_command { - | ^~~~~~~~~~~~~~~~ -In file included from ../linux-user/syscall.c:31: -/usr/include/sys/mount.h:189:6: note: originally defined here - 189 | enum fsconfig_command - | ^~~~~~~~~~~~~~~~ -/usr/include/linux/mount.h:96:9: error: redeclaration of enumerator 'FSCONFIG_SET_FLAG' - 96 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */ - | ^~~~~~~~~~~~~~~~~ -/usr/include/sys/mount.h:191:3: note: previous definition of 'FSCONFIG_SET_FLAG' with type 'enum fsconfig_command' - 191 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */ - | ^~~~~~~~~~~~~~~~~ -...snip... - -QEMU doesn't include linux/mount.h, but it does use -linux/fs.h and thus gets linux/mount.h indirectly. - -glibc acknowledges this problem but does not appear to -be intending to fix it in the forseeable future, simply -documenting it as a known incompatibility with no -workaround: - - https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E - https://sourceware.org/glibc/wiki/Synchronizing_Headers - -To address this requires either removing use of sys/mount.h -or linux/fs.h, despite QEMU needing declarations from -both. - -This patch removes linux/fs.h, meaning we have to define -various FS_IOC constants that are now unavailable. - -Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -95,7 +95,25 @@ - #include <linux/soundcard.h> - #include <linux/kd.h> - #include <linux/mtio.h> -+ -+#ifdef HAVE_SYS_MOUNT_FSCONFIG -+/* -+ * glibc >= 2.36 linux/mount.h conflicts with sys/mount.h, -+ * which in turn prevents use of linux/fs.h. So we have to -+ * define the constants ourselves for now. -+ */ -+#define FS_IOC_GETFLAGS _IOR('f', 1, long) -+#define FS_IOC_SETFLAGS _IOW('f', 2, long) -+#define FS_IOC_GETVERSION _IOR('v', 1, long) -+#define FS_IOC_SETVERSION _IOW('v', 2, long) -+#define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) -+#define FS_IOC32_GETFLAGS _IOR('f', 1, int) -+#define FS_IOC32_SETFLAGS _IOW('f', 2, int) -+#define FS_IOC32_GETVERSION _IOR('v', 1, int) -+#define FS_IOC32_SETVERSION _IOW('v', 2, int) -+#else - #include <linux/fs.h> -+#endif - #include <linux/fd.h> - #if defined(CONFIG_FIEMAP) - #include <linux/fiemap.h> ---- a/meson.build -+++ b/meson.build -@@ -1963,6 +1963,8 @@ config_host_data.set('HAVE_OPTRESET', - cc.has_header_symbol('getopt.h', 'optreset')) - config_host_data.set('HAVE_IPPROTO_MPTCP', - cc.has_header_symbol('netinet/in.h', 'IPPROTO_MPTCP')) -+config_host_data.set('HAVE_SYS_MOUNT_FSCONFIG', -+ cc.has_header_symbol('sys/mount.h', 'FSCONFIG_SET_FLAG')) - - # has_member - config_host_data.set('HAVE_SIGEV_NOTIFY_THREAD_ID', diff --git a/app-emulation/qemu/files/qemu-7.0.0-have-user-meson.patch b/app-emulation/qemu/files/qemu-7.0.0-have-user-meson.patch deleted file mode 100644 index 2acf73cff86e..000000000000 --- a/app-emulation/qemu/files/qemu-7.0.0-have-user-meson.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 2296b4655694744f7c8dcdc9440c21d86e19968e Mon Sep 17 00:00:00 2001 -From: Thomas Huth <thuth@redhat.com> -Date: Wed, 22 Jun 2022 16:03:28 +0200 -Subject: [PATCH] common-user: Only compile the common user code if have_user - is set - -There is no need to waste cycles here if we only compile the system -binaries or tools. Additionally, this change is even a hard requirement -for building the tools on systems that do not have an entry in the -common-user/host/ folder (since common-user/meson.build is trying -to add such a path via the include_directories() command). - -Reported-by: Michael Tokarev <mjt@tls.msk.ru> -Signed-off-by: Thomas Huth <thuth@redhat.com> -Reviewed-by: Zhang Chen <chen.zhang@intel.com> -Message-Id: <20220622140328.383961-1-thuth@redhat.com> -Signed-off-by: Laurent Vivier <laurent@vivier.eu> ---- - common-user/meson.build | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/common-user/meson.build b/common-user/meson.build -index 26212dda5c..ac9de5b9e3 100644 ---- a/common-user/meson.build -+++ b/common-user/meson.build -@@ -1,3 +1,7 @@ -+if not have_user -+ subdir_done() -+endif -+ - common_user_inc += include_directories('host/' / host_arch) - - user_ss.add(files( --- -GitLab - diff --git a/app-emulation/qemu/files/qemu-7.0.0-pci-overflow-fortify-source-3.patch b/app-emulation/qemu/files/qemu-7.0.0-pci-overflow-fortify-source-3.patch deleted file mode 100644 index 767f66243fcc..000000000000 --- a/app-emulation/qemu/files/qemu-7.0.0-pci-overflow-fortify-source-3.patch +++ /dev/null @@ -1,94 +0,0 @@ -https://bugs.gentoo.org/849587 -https://bugzilla.opensuse.org/show_bug.cgi?id=1199924 -https://lists.gnu.org/archive/html/qemu-devel/2022-05/msg06183.html - -From qemu-devel Tue May 31 11:47:07 2022 -From: Claudio Fontana <cfontana () suse ! de> -Date: Tue, 31 May 2022 11:47:07 +0000 -To: qemu-devel -Subject: [PATCH] pci: fix overflow in snprintf string formatting -Message-Id: <20220531114707.18830-1-cfontana () suse ! de> -X-MARC-Message: https://marc.info/?l=qemu-devel&m=165399772310578 - -the code in pcibus_get_fw_dev_path contained the potential for a -stack buffer overflow of 1 byte, potentially writing to the stack an -extra NUL byte. - -This overflow could happen if the PCI slot is >= 0x10000000, -and the PCI function is >= 0x10000000, due to the size parameter -of snprintf being incorrectly calculated in the call: - - if (PCI_FUNC(d->devfn)) - snprintf(path + off, sizeof(path) + off, ",%x", PCI_FUNC(d->devfn)); - -since the off obtained from a previous call to snprintf is added -instead of subtracted from the total available size of the buffer. - -Without the accurate size guard from snprintf, we end up writing in the -worst case: - -name (32) + "@" (1) + SLOT (8) + "," (1) + FUNC (8) + term NUL (1) = 51 bytes - -In order to provide something more robust, replace all of the code in -pcibus_get_fw_dev_path with a single call to g_strdup_printf, -so there is no need to rely on manual calculations. - -Found by compiling QEMU with FORTIFY_SOURCE=3 as the error: - -*** buffer overflow detected ***: terminated - -Thread 1 "qemu-system-x86" received signal SIGABRT, Aborted. -[Switching to Thread 0x7ffff642c380 (LWP 121307)] -0x00007ffff71ff55c in __pthread_kill_implementation () from /lib64/libc.so.6 -(gdb) bt - #0 0x00007ffff71ff55c in __pthread_kill_implementation () at /lib64/libc.so.6 - #1 0x00007ffff71ac6f6 in raise () at /lib64/libc.so.6 - #2 0x00007ffff7195814 in abort () at /lib64/libc.so.6 - #3 0x00007ffff71f279e in __libc_message () at /lib64/libc.so.6 - #4 0x00007ffff729767a in __fortify_fail () at /lib64/libc.so.6 - #5 0x00007ffff7295c36 in () at /lib64/libc.so.6 - #6 0x00007ffff72957f5 in __snprintf_chk () at /lib64/libc.so.6 - #7 0x0000555555b1c1fd in pcibus_get_fw_dev_path () - #8 0x0000555555f2bde4 in qdev_get_fw_dev_path_helper.constprop () - #9 0x0000555555f2bd86 in qdev_get_fw_dev_path_helper.constprop () - #10 0x00005555559a6e5d in get_boot_device_path () - #11 0x00005555559a712c in get_boot_devices_list () - #12 0x0000555555b1a3d0 in fw_cfg_machine_reset () - #13 0x0000555555bf4c2d in pc_machine_reset () - #14 0x0000555555c66988 in qemu_system_reset () - #15 0x0000555555a6dff6 in qdev_machine_creation_done () - #16 0x0000555555c79186 in qmp_x_exit_preconfig.part () - #17 0x0000555555c7b459 in qemu_init () - #18 0x0000555555960a29 in main () - -Found-by: Dario Faggioli <Dario Faggioli <dfaggioli@suse.com> -Found-by: Martin LiÅ¡ka <martin.liska@suse.com> -Cc: qemu-stable@nongnu.org -Signed-off-by: Claudio Fontana <cfontana@suse.de> ---- a/hw/pci/pci.c -+++ b/hw/pci/pci.c -@@ -2640,15 +2640,15 @@ static char *pci_dev_fw_name(DeviceState *dev, char *buf, int len) - static char *pcibus_get_fw_dev_path(DeviceState *dev) - { - PCIDevice *d = (PCIDevice *)dev; -- char path[50], name[33]; -- int off; -- -- off = snprintf(path, sizeof(path), "%s@%x", -- pci_dev_fw_name(dev, name, sizeof name), -- PCI_SLOT(d->devfn)); -- if (PCI_FUNC(d->devfn)) -- snprintf(path + off, sizeof(path) + off, ",%x", PCI_FUNC(d->devfn)); -- return g_strdup(path); -+ char name[33]; -+ int has_func = !!PCI_FUNC(d->devfn); -+ -+ return g_strdup_printf("%s@%x%s%.*x", -+ pci_dev_fw_name(dev, name, sizeof(name)), -+ PCI_SLOT(d->devfn), -+ has_func ? "," : "", -+ has_func, -+ PCI_FUNC(d->devfn)); - } - - static char *pcibus_get_dev_path(DeviceState *dev) diff --git a/app-emulation/qemu/files/qemu-7.0.0-virtio-scsi-fixes.patch b/app-emulation/qemu/files/qemu-7.0.0-virtio-scsi-fixes.patch deleted file mode 100644 index 9ec6ede80896..000000000000 --- a/app-emulation/qemu/files/qemu-7.0.0-virtio-scsi-fixes.patch +++ /dev/null @@ -1,182 +0,0 @@ -https://bugs.gentoo.org/849500 -https://gitlab.com/qemu-project/qemu/-/commit/2f743ef6366c2df4ef51ef3ae318138cdc0125ab.patch -https://gitlab.com/qemu-project/qemu/-/commit/38738f7dbbda90fbc161757b7f4be35b52205552.patch - -From: Stefan Hajnoczi <stefanha@redhat.com> -Date: Wed, 27 Apr 2022 15:35:36 +0100 -Subject: [PATCH] virtio-scsi: fix ctrl and event handler functions in - dataplane mode - -Commit f34e8d8b8d48d73f36a67b6d5e492ef9784b5012 ("virtio-scsi: prepare -virtio_scsi_handle_cmd for dataplane") prepared the virtio-scsi cmd -virtqueue handler function to be used in both the dataplane and -non-datpalane code paths. - -It failed to convert the ctrl and event virtqueue handler functions, -which are not designed to be called from the dataplane code path but -will be since the ioeventfd is set up for those virtqueues when -dataplane starts. - -Convert the ctrl and event virtqueue handler functions now so they -operate correctly when called from the dataplane code path. Avoid code -duplication by extracting this code into a helper function. - -Fixes: f34e8d8b8d48d73f36a67b6d5e492ef9784b5012 ("virtio-scsi: prepare virtio_scsi_handle_cmd for dataplane") -Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> -Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> -Message-id: 20220427143541.119567-2-stefanha@redhat.com -[Fixed s/by used/be used/ typo pointed out by Michael Tokarev -<mjt@tls.msk.ru>. ---Stefan] -Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> ---- a/hw/scsi/virtio-scsi.c -+++ b/hw/scsi/virtio-scsi.c -@@ -472,16 +472,32 @@ bool virtio_scsi_handle_ctrl_vq(VirtIOSCSI *s, VirtQueue *vq) - return progress; - } - -+/* -+ * If dataplane is configured but not yet started, do so now and return true on -+ * success. -+ * -+ * Dataplane is started by the core virtio code but virtqueue handler functions -+ * can also be invoked when a guest kicks before DRIVER_OK, so this helper -+ * function helps us deal with manually starting ioeventfd in that case. -+ */ -+static bool virtio_scsi_defer_to_dataplane(VirtIOSCSI *s) -+{ -+ if (!s->ctx || s->dataplane_started) { -+ return false; -+ } -+ -+ virtio_device_start_ioeventfd(&s->parent_obj.parent_obj); -+ return !s->dataplane_fenced; -+} -+ - static void virtio_scsi_handle_ctrl(VirtIODevice *vdev, VirtQueue *vq) - { - VirtIOSCSI *s = (VirtIOSCSI *)vdev; - -- if (s->ctx) { -- virtio_device_start_ioeventfd(vdev); -- if (!s->dataplane_fenced) { -- return; -- } -+ if (virtio_scsi_defer_to_dataplane(s)) { -+ return; - } -+ - virtio_scsi_acquire(s); - virtio_scsi_handle_ctrl_vq(s, vq); - virtio_scsi_release(s); -@@ -720,12 +736,10 @@ static void virtio_scsi_handle_cmd(VirtIODevice *vdev, VirtQueue *vq) - /* use non-QOM casts in the data path */ - VirtIOSCSI *s = (VirtIOSCSI *)vdev; - -- if (s->ctx && !s->dataplane_started) { -- virtio_device_start_ioeventfd(vdev); -- if (!s->dataplane_fenced) { -- return; -- } -+ if (virtio_scsi_defer_to_dataplane(s)) { -+ return; - } -+ - virtio_scsi_acquire(s); - virtio_scsi_handle_cmd_vq(s, vq); - virtio_scsi_release(s); -@@ -855,12 +869,10 @@ static void virtio_scsi_handle_event(VirtIODevice *vdev, VirtQueue *vq) - { - VirtIOSCSI *s = VIRTIO_SCSI(vdev); - -- if (s->ctx) { -- virtio_device_start_ioeventfd(vdev); -- if (!s->dataplane_fenced) { -- return; -- } -+ if (virtio_scsi_defer_to_dataplane(s)) { -+ return; - } -+ - virtio_scsi_acquire(s); - virtio_scsi_handle_event_vq(s, vq); - virtio_scsi_release(s); -GitLab - -From: Stefan Hajnoczi <stefanha@redhat.com> -Date: Wed, 27 Apr 2022 15:35:37 +0100 -Subject: [PATCH] virtio-scsi: don't waste CPU polling the event virtqueue - -The virtio-scsi event virtqueue is not emptied by its handler function. -This is typical for rx virtqueues where the device uses buffers when -some event occurs (e.g. a packet is received, an error condition -happens, etc). - -Polling non-empty virtqueues wastes CPU cycles. We are not waiting for -new buffers to become available, we are waiting for an event to occur, -so it's a misuse of CPU resources to poll for buffers. - -Introduce the new virtio_queue_aio_attach_host_notifier_no_poll() API, -which is identical to virtio_queue_aio_attach_host_notifier() except -that it does not poll the virtqueue. - -Before this patch the following command-line consumed 100% CPU in the -IOThread polling and calling virtio_scsi_handle_event(): - - $ qemu-system-x86_64 -M accel=kvm -m 1G -cpu host \ - --object iothread,id=iothread0 \ - --device virtio-scsi-pci,iothread=iothread0 \ - --blockdev file,filename=test.img,aio=native,cache.direct=on,node-name=drive0 \ - --device scsi-hd,drive=drive0 - -After this patch CPU is no longer wasted. - -Reported-by: Nir Soffer <nsoffer@redhat.com> -Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> -Tested-by: Nir Soffer <nsoffer@redhat.com> -Message-id: 20220427143541.119567-3-stefanha@redhat.com -Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> ---- a/hw/scsi/virtio-scsi-dataplane.c -+++ b/hw/scsi/virtio-scsi-dataplane.c -@@ -138,7 +138,7 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev) - - aio_context_acquire(s->ctx); - virtio_queue_aio_attach_host_notifier(vs->ctrl_vq, s->ctx); -- virtio_queue_aio_attach_host_notifier(vs->event_vq, s->ctx); -+ virtio_queue_aio_attach_host_notifier_no_poll(vs->event_vq, s->ctx); - - for (i = 0; i < vs->conf.num_queues; i++) { - virtio_queue_aio_attach_host_notifier(vs->cmd_vqs[i], s->ctx); ---- a/hw/virtio/virtio.c -+++ b/hw/virtio/virtio.c -@@ -3534,6 +3534,19 @@ void virtio_queue_aio_attach_host_notifier(VirtQueue *vq, AioContext *ctx) - virtio_queue_host_notifier_aio_poll_end); - } - -+/* -+ * Same as virtio_queue_aio_attach_host_notifier() but without polling. Use -+ * this for rx virtqueues and similar cases where the virtqueue handler -+ * function does not pop all elements. When the virtqueue is left non-empty -+ * polling consumes CPU cycles and should not be used. -+ */ -+void virtio_queue_aio_attach_host_notifier_no_poll(VirtQueue *vq, AioContext *ctx) -+{ -+ aio_set_event_notifier(ctx, &vq->host_notifier, true, -+ virtio_queue_host_notifier_read, -+ NULL, NULL); -+} -+ - void virtio_queue_aio_detach_host_notifier(VirtQueue *vq, AioContext *ctx) - { - aio_set_event_notifier(ctx, &vq->host_notifier, true, NULL, NULL, NULL); ---- a/include/hw/virtio/virtio.h -+++ b/include/hw/virtio/virtio.h -@@ -317,6 +317,7 @@ EventNotifier *virtio_queue_get_host_notifier(VirtQueue *vq); - void virtio_queue_set_host_notifier_enabled(VirtQueue *vq, bool enabled); - void virtio_queue_host_notifier_read(EventNotifier *n); - void virtio_queue_aio_attach_host_notifier(VirtQueue *vq, AioContext *ctx); -+void virtio_queue_aio_attach_host_notifier_no_poll(VirtQueue *vq, AioContext *ctx); - void virtio_queue_aio_detach_host_notifier(VirtQueue *vq, AioContext *ctx); - VirtQueue *virtio_vector_first_queue(VirtIODevice *vdev, uint16_t vector); - VirtQueue *virtio_vector_next_queue(VirtQueue *vq); -GitLab |