[RFC PATCH-for-8.1] accel: Remove HAX accelerator
by Philippe Mathieu-Daudé
HAX is deprecated since commits 73741fda6c ("MAINTAINERS: Abort
HAXM maintenance") and 90c167a1da ("docs/about/deprecated: Mark
HAXM in QEMU as deprecated"), released in v8.0.0.
Per the QEMU deprecation policy, we shouldn't remove it before
QEMU release v8.2.0. However per the latest HAXM release (v7.8),
the latest QEMU supported is v7.2:
Note: Up to this release, HAXM supports QEMU from 2.9.0 to 7.2.0.
(https://github.com/intel/haxm/releases/tag/v7.8.0)
The next commit (https://github.com/intel/haxm/commit/da1b8ec072)
added:
HAXM v7.8.0 is our last release and we will not accept
pull requests or respond to issues after this.
As of commit b455ce4c2f, it became very hard to build and test
HAXM. Its previous maintainers made it clear they won't help.
It doesn't seem to be a very good use of QEMU maintainers to
spend their time in a dead project. Save our time by removing
this orphan zombie code before the QEMU v8.2 release.
Signed-off-by: Philippe Mathieu-Daudé <philmd(a)linaro.org>
---
MAINTAINERS | 8 -
docs/about/build-platforms.rst | 2 +-
docs/about/deprecated.rst | 6 -
docs/about/removed-features.rst | 9 +-
docs/system/introduction.rst | 3 -
meson.build | 7 -
include/exec/poison.h | 1 -
include/hw/core/cpu.h | 2 +-
include/sysemu/hax.h | 49 -
include/sysemu/hw_accel.h | 1 -
target/i386/hax/hax-accel-ops.h | 31 -
target/i386/hax/hax-i386.h | 98 --
target/i386/hax/hax-interface.h | 369 ------
target/i386/hax/hax-posix.h | 61 -
target/i386/hax/hax-windows.h | 88 --
accel/stubs/hax-stub.c | 24 -
hw/intc/apic_common.c | 3 +-
softmmu/cpus.c | 6 -
softmmu/vl.c | 6 -
target/i386/hax/hax-accel-ops.c | 105 --
target/i386/hax/hax-all.c | 1141 -----------------
target/i386/hax/hax-mem.c | 323 -----
target/i386/hax/hax-posix.c | 305 -----
target/i386/hax/hax-windows.c | 485 -------
accel/stubs/meson.build | 1 -
meson_options.txt | 2 -
qemu-options.hx | 8 +-
.../ci/org.centos/stream/8/x86_64/configure | 1 -
scripts/meson-buildoptions.sh | 3 -
target/i386/hax/meson.build | 7 -
target/i386/meson.build | 1 -
31 files changed, 13 insertions(+), 3143 deletions(-)
delete mode 100644 include/sysemu/hax.h
delete mode 100644 target/i386/hax/hax-accel-ops.h
delete mode 100644 target/i386/hax/hax-i386.h
delete mode 100644 target/i386/hax/hax-interface.h
delete mode 100644 target/i386/hax/hax-posix.h
delete mode 100644 target/i386/hax/hax-windows.h
delete mode 100644 accel/stubs/hax-stub.c
delete mode 100644 target/i386/hax/hax-accel-ops.c
delete mode 100644 target/i386/hax/hax-all.c
delete mode 100644 target/i386/hax/hax-mem.c
delete mode 100644 target/i386/hax/hax-posix.c
delete mode 100644 target/i386/hax/hax-windows.c
delete mode 100644 target/i386/hax/meson.build
diff --git a/MAINTAINERS b/MAINTAINERS
index 1da135b0c8..aa30640670 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -544,14 +544,6 @@ F: include/sysemu/xen.h
F: include/sysemu/xen-mapcache.h
F: stubs/xen-hw-stub.c
-Guest CPU Cores (HAXM)
----------------------
-X86 HAXM CPUs
-S: Orphan
-F: accel/stubs/hax-stub.c
-F: include/sysemu/hax.h
-F: target/i386/hax/
-
Guest CPU Cores (NVMM)
----------------------
NetBSD Virtual Machine Monitor (NVMM) CPU support
diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index 0e2cb9e770..f2a7aec56f 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -52,7 +52,7 @@ Those hosts are officially supported, with various accelerators:
* - SPARC
- tcg
* - x86
- - hax, hvf (64 bit only), kvm, nvmm, tcg, whpx (64 bit only), xen
+ - hvf (64 bit only), kvm, nvmm, tcg, whpx (64 bit only), xen
Other host architectures are not supported. It is possible to build QEMU system
emulation on an unsupported host architecture using the configure
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 0743459862..c1d6dde8f7 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -105,12 +105,6 @@ Use ``-machine hpet=off`` instead.
The ``-no-acpi`` setting has been turned into a machine property.
Use ``-machine acpi=off`` instead.
-``-accel hax`` (since 8.0)
-''''''''''''''''''''''''''
-
-The HAXM project has been retired (see https://github.com/intel/haxm#status).
-Use "whpx" (on Windows) or "hvf" (on macOS) instead.
-
``-async-teardown`` (since 8.1)
'''''''''''''''''''''''''''''''
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 5b258b446b..cc8a1e38a9 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -659,15 +659,18 @@ Use ``Icelake-Server`` instead.
System accelerators
-------------------
-Userspace local APIC with KVM (x86, removed 8.0)
+Userspace local APIC with KVM (x86, removed in 8.0)
''''''''''''''''''''''''''''''''''''''''''''''''
``-M kernel-irqchip=off`` cannot be used on KVM if the CPU model includes
a local APIC. The ``split`` setting is supported, as is using ``-M
kernel-irqchip=off`` when the CPU does not have a local APIC.
-System accelerators
--------------------
+HAXM (``-accel hax``) (removed in 8.1)
+''''''''''''''''''''''''''''''''''''''
+
+The HAXM project has been retired (see https://github.com/intel/haxm#status).
+Use "whpx" (on Windows) or "hvf" (on macOS) instead.
MIPS "Trap-and-Emulate" KVM support (removed in 8.0)
''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/docs/system/introduction.rst b/docs/system/introduction.rst
index 3e256f8326..51ac132d6c 100644
--- a/docs/system/introduction.rst
+++ b/docs/system/introduction.rst
@@ -21,9 +21,6 @@ Tiny Code Generator (TCG) capable of emulating many CPUs.
* - Xen
- Linux (as dom0)
- Arm, x86
- * - Intel HAXM (hax)
- - Linux, Windows
- - x86
* - Hypervisor Framework (hvf)
- MacOS
- x86 (64 bit only), Arm (64 bit only)
diff --git a/meson.build b/meson.build
index 6ef78ea278..5c4c62b41a 100644
--- a/meson.build
+++ b/meson.build
@@ -141,7 +141,6 @@ if cpu in ['x86', 'x86_64', 'arm', 'aarch64']
endif
if cpu in ['x86', 'x86_64']
accelerator_targets += {
- 'CONFIG_HAX': ['i386-softmmu', 'x86_64-softmmu'],
'CONFIG_HVF': ['x86_64-softmmu'],
'CONFIG_NVMM': ['i386-softmmu', 'x86_64-softmmu'],
'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'],
@@ -673,11 +672,6 @@ if get_option('hvf').allowed()
accelerators += 'CONFIG_HVF'
endif
endif
-if get_option('hax').allowed()
- if get_option('hax').enabled() or targetos in ['windows', 'darwin', 'netbsd']
- accelerators += 'CONFIG_HAX'
- endif
-endif
if targetos == 'netbsd'
nvmm = cc.find_library('nvmm', required: get_option('nvmm'))
if nvmm.found()
@@ -4136,7 +4130,6 @@ endif
summary_info = {}
if have_system
summary_info += {'KVM support': config_all.has_key('CONFIG_KVM')}
- summary_info += {'HAX support': config_all.has_key('CONFIG_HAX')}
summary_info += {'HVF support': config_all.has_key('CONFIG_HVF')}
summary_info += {'WHPX support': config_all.has_key('CONFIG_WHPX')}
summary_info += {'NVMM support': config_all.has_key('CONFIG_NVMM')}
diff --git a/include/exec/poison.h b/include/exec/poison.h
index e94ee8dfef..1ea5633eb3 100644
--- a/include/exec/poison.h
+++ b/include/exec/poison.h
@@ -81,7 +81,6 @@
#pragma GCC poison CONFIG_SPARC_DIS
#pragma GCC poison CONFIG_XTENSA_DIS
-#pragma GCC poison CONFIG_HAX
#pragma GCC poison CONFIG_HVF
#pragma GCC poison CONFIG_LINUX_USER
#pragma GCC poison CONFIG_KVM
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index 44c91240f2..1b3ae0aabf 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -420,7 +420,7 @@ struct CPUState {
int32_t exception_index;
AccelCPUState *accel;
- /* shared by kvm, hax and hvf */
+ /* shared by kvm and hvf */
bool vcpu_dirty;
/* Used to keep track of an outstanding cpu throttle thread for migration
diff --git a/include/sysemu/hax.h b/include/sysemu/hax.h
deleted file mode 100644
index 80fc716f80..0000000000
--- a/include/sysemu/hax.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * QEMU HAXM support
- *
- * Copyright IBM, Corp. 2008
- *
- * Authors:
- * Anthony Liguori <aliguori(a)us.ibm.com>
- *
- * Copyright (c) 2011 Intel Corporation
- * Written by:
- * Jiang Yunhong<yunhong.jiang(a)intel.com>
- * Xin Xiaohui<xiaohui.xin(a)intel.com>
- * Zhang Xiantao<xiantao.zhang(a)intel.com>
- *
- * Copyright 2016 Google, Inc.
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- *
- */
-
-/* header to be included in non-HAX-specific code */
-
-#ifndef QEMU_HAX_H
-#define QEMU_HAX_H
-
-int hax_sync_vcpus(void);
-
-#ifdef NEED_CPU_H
-# ifdef CONFIG_HAX
-# define CONFIG_HAX_IS_POSSIBLE
-# endif
-#else /* !NEED_CPU_H */
-# define CONFIG_HAX_IS_POSSIBLE
-#endif
-
-#ifdef CONFIG_HAX_IS_POSSIBLE
-
-extern bool hax_allowed;
-
-#define hax_enabled() (hax_allowed)
-
-#else /* !CONFIG_HAX_IS_POSSIBLE */
-
-#define hax_enabled() (0)
-
-#endif /* CONFIG_HAX_IS_POSSIBLE */
-
-#endif /* QEMU_HAX_H */
diff --git a/include/sysemu/hw_accel.h b/include/sysemu/hw_accel.h
index 22903a55f7..c71b77e71f 100644
--- a/include/sysemu/hw_accel.h
+++ b/include/sysemu/hw_accel.h
@@ -12,7 +12,6 @@
#define QEMU_HW_ACCEL_H
#include "hw/core/cpu.h"
-#include "sysemu/hax.h"
#include "sysemu/kvm.h"
#include "sysemu/hvf.h"
#include "sysemu/whpx.h"
diff --git a/target/i386/hax/hax-accel-ops.h b/target/i386/hax/hax-accel-ops.h
deleted file mode 100644
index 9e357e7b40..0000000000
--- a/target/i386/hax/hax-accel-ops.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Accelerator CPUS Interface
- *
- * Copyright 2020 SUSE LLC
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- */
-
-#ifndef TARGET_I386_HAX_ACCEL_OPS_H
-#define TARGET_I386_HAX_ACCEL_OPS_H
-
-#include "sysemu/cpus.h"
-
-#include "hax-interface.h"
-#include "hax-i386.h"
-
-int hax_init_vcpu(CPUState *cpu);
-int hax_smp_cpu_exec(CPUState *cpu);
-int hax_populate_ram(uint64_t va, uint64_t size);
-
-void hax_cpu_synchronize_state(CPUState *cpu);
-void hax_cpu_synchronize_post_reset(CPUState *cpu);
-void hax_cpu_synchronize_post_init(CPUState *cpu);
-void hax_cpu_synchronize_pre_loadvm(CPUState *cpu);
-
-int hax_vcpu_destroy(CPUState *cpu);
-void hax_raise_event(CPUState *cpu);
-void hax_reset_vcpu_state(void *opaque);
-
-#endif /* TARGET_I386_HAX_ACCEL_OPS_H */
diff --git a/target/i386/hax/hax-i386.h b/target/i386/hax/hax-i386.h
deleted file mode 100644
index 87153f40ab..0000000000
--- a/target/i386/hax/hax-i386.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * QEMU HAXM support
- *
- * Copyright (c) 2011 Intel Corporation
- * Written by:
- * Jiang Yunhong<yunhong.jiang(a)intel.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- *
- */
-
-#ifndef HAX_I386_H
-#define HAX_I386_H
-
-#include "cpu.h"
-#include "sysemu/hax.h"
-
-#ifdef CONFIG_POSIX
-typedef int hax_fd;
-#endif
-
-#ifdef CONFIG_WIN32
-typedef HANDLE hax_fd;
-#endif
-
-extern struct hax_state hax_global;
-
-struct AccelCPUState {
-#ifdef _WIN32
- HANDLE hThread;
-#endif
- hax_fd fd;
- int vcpu_id;
- struct hax_tunnel *tunnel;
- unsigned char *iobuf;
-};
-
-struct hax_state {
- hax_fd fd; /* the global hax device interface */
- uint32_t version;
- struct hax_vm *vm;
- uint64_t mem_quota;
- bool supports_64bit_ramblock;
-};
-
-#define HAX_MAX_VCPU 0x10
-
-struct hax_vm {
- hax_fd fd;
- int id;
- int numvcpus;
- AccelCPUState **vcpus;
-};
-
-/* Functions exported to host specific mode */
-hax_fd hax_vcpu_get_fd(CPUArchState *env);
-int valid_hax_tunnel_size(uint16_t size);
-
-/* Host specific functions */
-int hax_mod_version(struct hax_state *hax, struct hax_module_version *version);
-int hax_inject_interrupt(CPUArchState *env, int vector);
-struct hax_vm *hax_vm_create(struct hax_state *hax, int max_cpus);
-int hax_vcpu_run(AccelCPUState *vcpu);
-int hax_vcpu_create(int id);
-void hax_kick_vcpu_thread(CPUState *cpu);
-
-int hax_sync_vcpu_state(CPUArchState *env, struct vcpu_state_t *state,
- int set);
-int hax_sync_msr(CPUArchState *env, struct hax_msr_data *msrs, int set);
-int hax_sync_fpu(CPUArchState *env, struct fx_layout *fl, int set);
-
-int hax_vm_destroy(struct hax_vm *vm);
-int hax_capability(struct hax_state *hax, struct hax_capabilityinfo *cap);
-int hax_notify_qemu_version(hax_fd vm_fd, struct hax_qemu_version *qversion);
-int hax_set_ram(uint64_t start_pa, uint32_t size, uint64_t host_va, int flags);
-
-/* Common host function */
-int hax_host_create_vm(struct hax_state *hax, int *vm_id);
-hax_fd hax_host_open_vm(struct hax_state *hax, int vm_id);
-int hax_host_create_vcpu(hax_fd vm_fd, int vcpuid);
-hax_fd hax_host_open_vcpu(int vmid, int vcpuid);
-int hax_host_setup_vcpu_channel(AccelCPUState *vcpu);
-hax_fd hax_mod_open(void);
-void hax_memory_init(void);
-
-
-#ifdef CONFIG_POSIX
-#include "hax-posix.h"
-#endif
-
-#ifdef CONFIG_WIN32
-#include "hax-windows.h"
-#endif
-
-#include "hax-interface.h"
-
-#endif
diff --git a/target/i386/hax/hax-interface.h b/target/i386/hax/hax-interface.h
deleted file mode 100644
index 537ae084e9..0000000000
--- a/target/i386/hax/hax-interface.h
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- * QEMU HAXM support
- *
- * Copyright (c) 2011 Intel Corporation
- * Written by:
- * Jiang Yunhong<yunhong.jiang(a)intel.com>
- * Xin Xiaohui<xiaohui.xin(a)intel.com>
- * Zhang Xiantao<xiantao.zhang(a)intel.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- *
- */
-
-/* Interface with HAX kernel module */
-
-#ifndef HAX_INTERFACE_H
-#define HAX_INTERFACE_H
-
-/* fx_layout has 3 formats table 3-56, 512bytes */
-struct fx_layout {
- uint16_t fcw;
- uint16_t fsw;
- uint8_t ftw;
- uint8_t res1;
- uint16_t fop;
- union {
- struct {
- uint32_t fip;
- uint16_t fcs;
- uint16_t res2;
- };
- uint64_t fpu_ip;
- };
- union {
- struct {
- uint32_t fdp;
- uint16_t fds;
- uint16_t res3;
- };
- uint64_t fpu_dp;
- };
- uint32_t mxcsr;
- uint32_t mxcsr_mask;
- uint8_t st_mm[8][16];
- uint8_t mmx_1[8][16];
- uint8_t mmx_2[8][16];
- uint8_t pad[96];
-} __attribute__ ((aligned(8)));
-
-struct vmx_msr {
- uint64_t entry;
- uint64_t value;
-} __attribute__ ((__packed__));
-
-/*
- * Fixed array is not good, but it makes Mac support a bit easier by avoiding
- * memory map or copyin staff.
- */
-#define HAX_MAX_MSR_ARRAY 0x20
-struct hax_msr_data {
- uint16_t nr_msr;
- uint16_t done;
- uint16_t pad[2];
- struct vmx_msr entries[HAX_MAX_MSR_ARRAY];
-} __attribute__ ((__packed__));
-
-union interruptibility_state_t {
- uint32_t raw;
- struct {
- uint32_t sti_blocking:1;
- uint32_t movss_blocking:1;
- uint32_t smi_blocking:1;
- uint32_t nmi_blocking:1;
- uint32_t reserved:28;
- };
- uint64_t pad;
-};
-
-typedef union interruptibility_state_t interruptibility_state_t;
-
-/* Segment descriptor */
-struct segment_desc_t {
- uint16_t selector;
- uint16_t _dummy;
- uint32_t limit;
- uint64_t base;
- union {
- struct {
- uint32_t type:4;
- uint32_t desc:1;
- uint32_t dpl:2;
- uint32_t present:1;
- uint32_t:4;
- uint32_t available:1;
- uint32_t long_mode:1;
- uint32_t operand_size:1;
- uint32_t granularity:1;
- uint32_t null:1;
- uint32_t:15;
- };
- uint32_t ar;
- };
- uint32_t ipad;
-};
-
-typedef struct segment_desc_t segment_desc_t;
-
-struct vcpu_state_t {
- union {
- uint64_t _regs[16];
- struct {
- union {
- struct {
- uint8_t _al, _ah;
- };
- uint16_t _ax;
- uint32_t _eax;
- uint64_t _rax;
- };
- union {
- struct {
- uint8_t _cl, _ch;
- };
- uint16_t _cx;
- uint32_t _ecx;
- uint64_t _rcx;
- };
- union {
- struct {
- uint8_t _dl, _dh;
- };
- uint16_t _dx;
- uint32_t _edx;
- uint64_t _rdx;
- };
- union {
- struct {
- uint8_t _bl, _bh;
- };
- uint16_t _bx;
- uint32_t _ebx;
- uint64_t _rbx;
- };
- union {
- uint16_t _sp;
- uint32_t _esp;
- uint64_t _rsp;
- };
- union {
- uint16_t _bp;
- uint32_t _ebp;
- uint64_t _rbp;
- };
- union {
- uint16_t _si;
- uint32_t _esi;
- uint64_t _rsi;
- };
- union {
- uint16_t _di;
- uint32_t _edi;
- uint64_t _rdi;
- };
-
- uint64_t _r8;
- uint64_t _r9;
- uint64_t _r10;
- uint64_t _r11;
- uint64_t _r12;
- uint64_t _r13;
- uint64_t _r14;
- uint64_t _r15;
- };
- };
-
- union {
- uint32_t _eip;
- uint64_t _rip;
- };
-
- union {
- uint32_t _eflags;
- uint64_t _rflags;
- };
-
- segment_desc_t _cs;
- segment_desc_t _ss;
- segment_desc_t _ds;
- segment_desc_t _es;
- segment_desc_t _fs;
- segment_desc_t _gs;
- segment_desc_t _ldt;
- segment_desc_t _tr;
-
- segment_desc_t _gdt;
- segment_desc_t _idt;
-
- uint64_t _cr0;
- uint64_t _cr2;
- uint64_t _cr3;
- uint64_t _cr4;
-
- uint64_t _dr0;
- uint64_t _dr1;
- uint64_t _dr2;
- uint64_t _dr3;
- uint64_t _dr6;
- uint64_t _dr7;
- uint64_t _pde;
-
- uint32_t _efer;
-
- uint32_t _sysenter_cs;
- uint64_t _sysenter_eip;
- uint64_t _sysenter_esp;
-
- uint32_t _activity_state;
- uint32_t pad;
- interruptibility_state_t _interruptibility_state;
-};
-
-/* HAX exit status */
-enum exit_status {
- /* IO port request */
- HAX_EXIT_IO = 1,
- /* MMIO instruction emulation */
- HAX_EXIT_MMIO,
- /* QEMU emulation mode request, currently means guest enter non-PG mode */
- HAX_EXIT_REAL,
- /*
- * Interrupt window open, qemu can inject interrupt now
- * Also used when signal pending since at that time qemu usually need
- * check interrupt
- */
- HAX_EXIT_INTERRUPT,
- /* Unknown vmexit, mostly trigger reboot */
- HAX_EXIT_UNKNOWN_VMEXIT,
- /* HALT from guest */
- HAX_EXIT_HLT,
- /* Reboot request, like because of tripple fault in guest */
- HAX_EXIT_STATECHANGE,
- /* the vcpu is now only paused when destroy, so simply return to hax */
- HAX_EXIT_PAUSED,
- HAX_EXIT_FAST_MMIO,
-};
-
-/*
- * The interface definition:
- * 1. vcpu_run execute will return 0 on success, otherwise mean failed
- * 2. exit_status return the exit reason, as stated in enum exit_status
- * 3. exit_reason is the vmx exit reason
- */
-struct hax_tunnel {
- uint32_t _exit_reason;
- uint32_t _exit_flag;
- uint32_t _exit_status;
- uint32_t user_event_pending;
- int ready_for_interrupt_injection;
- int request_interrupt_window;
- union {
- struct {
- /* 0: read, 1: write */
-#define HAX_EXIT_IO_IN 1
-#define HAX_EXIT_IO_OUT 0
- uint8_t _direction;
- uint8_t _df;
- uint16_t _size;
- uint16_t _port;
- uint16_t _count;
- uint8_t _flags;
- uint8_t _pad0;
- uint16_t _pad1;
- uint32_t _pad2;
- uint64_t _vaddr;
- } pio;
- struct {
- uint64_t gla;
- } mmio;
- struct {
- } state;
- };
-} __attribute__ ((__packed__));
-
-struct hax_module_version {
- uint32_t compat_version;
- uint32_t cur_version;
-} __attribute__ ((__packed__));
-
-/* This interface is support only after API version 2 */
-struct hax_qemu_version {
- /* Current API version in QEMU */
- uint32_t cur_version;
- /* The minimum API version supported by QEMU */
- uint32_t min_version;
-} __attribute__ ((__packed__));
-
-/* The mac specfic interface to qemu, mostly is ioctl related */
-struct hax_tunnel_info {
- uint64_t va;
- uint64_t io_va;
- uint16_t size;
- uint16_t pad[3];
-} __attribute__ ((__packed__));
-
-struct hax_alloc_ram_info {
- uint32_t size;
- uint32_t pad;
- uint64_t va;
-} __attribute__ ((__packed__));
-
-struct hax_ramblock_info {
- uint64_t start_va;
- uint64_t size;
- uint64_t reserved;
-} __attribute__ ((__packed__));
-
-#define HAX_RAM_INFO_ROM 0x01 /* Read-Only */
-#define HAX_RAM_INFO_INVALID 0x80 /* Unmapped, usually used for MMIO */
-struct hax_set_ram_info {
- uint64_t pa_start;
- uint32_t size;
- uint8_t flags;
- uint8_t pad[3];
- uint64_t va;
-} __attribute__ ((__packed__));
-
-#define HAX_CAP_STATUS_WORKING 0x1
-#define HAX_CAP_STATUS_NOTWORKING 0x0
-#define HAX_CAP_WORKSTATUS_MASK 0x1
-
-#define HAX_CAP_FAILREASON_VT 0x1
-#define HAX_CAP_FAILREASON_NX 0x2
-
-#define HAX_CAP_MEMQUOTA 0x2
-#define HAX_CAP_UG 0x4
-#define HAX_CAP_64BIT_RAMBLOCK 0x8
-
-struct hax_capabilityinfo {
- /* bit 0: 1 - working
- * 0 - not working, possibly because NT/NX disabled
- * bit 1: 1 - memory limitation working
- * 0 - no memory limitation
- */
- uint16_t wstatus;
- /* valid when not working
- * bit 0: VT not enabeld
- * bit 1: NX not enabled*/
- uint16_t winfo;
- uint32_t pad;
- uint64_t mem_quota;
-} __attribute__ ((__packed__));
-
-struct hax_fastmmio {
- uint64_t gpa;
- union {
- uint64_t value;
- uint64_t gpa2; /* since HAX API v4 */
- };
- uint8_t size;
- uint8_t direction;
- uint16_t reg_index;
- uint32_t pad0;
- uint64_t _cr0;
- uint64_t _cr2;
- uint64_t _cr3;
- uint64_t _cr4;
-} __attribute__ ((__packed__));
-#endif
diff --git a/target/i386/hax/hax-posix.h b/target/i386/hax/hax-posix.h
deleted file mode 100644
index fb7c64426d..0000000000
--- a/target/i386/hax/hax-posix.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * QEMU HAXM support
- *
- * Copyright (c) 2011 Intel Corporation
- * Written by:
- * Jiang Yunhong<yunhong.jiang(a)intel.com>
- * Xin Xiaohui<xiaohui.xin(a)intel.com>
- * Zhang Xiantao<xiantao.zhang(a)intel.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- *
- */
-
-#ifndef TARGET_I386_HAX_POSIX_H
-#define TARGET_I386_HAX_POSIX_H
-
-#include <sys/ioctl.h>
-
-#define HAX_INVALID_FD (-1)
-static inline int hax_invalid_fd(hax_fd fd)
-{
- return fd <= 0;
-}
-
-static inline void hax_mod_close(struct hax_state *hax)
-{
- close(hax->fd);
-}
-
-static inline void hax_close_fd(hax_fd fd)
-{
- close(fd);
-}
-
-/* HAX model level ioctl */
-#define HAX_IOCTL_VERSION _IOWR(0, 0x20, struct hax_module_version)
-#define HAX_IOCTL_CREATE_VM _IOWR(0, 0x21, uint32_t)
-#define HAX_IOCTL_DESTROY_VM _IOW(0, 0x22, uint32_t)
-#define HAX_IOCTL_CAPABILITY _IOR(0, 0x23, struct hax_capabilityinfo)
-
-#define HAX_VM_IOCTL_VCPU_CREATE _IOWR(0, 0x80, uint32_t)
-#define HAX_VM_IOCTL_ALLOC_RAM _IOWR(0, 0x81, struct hax_alloc_ram_info)
-#define HAX_VM_IOCTL_SET_RAM _IOWR(0, 0x82, struct hax_set_ram_info)
-#define HAX_VM_IOCTL_VCPU_DESTROY _IOW(0, 0x83, uint32_t)
-#define HAX_VM_IOCTL_NOTIFY_QEMU_VERSION _IOW(0, 0x84, struct hax_qemu_version)
-#define HAX_VM_IOCTL_ADD_RAMBLOCK _IOW(0, 0x85, struct hax_ramblock_info)
-
-#define HAX_VCPU_IOCTL_RUN _IO(0, 0xc0)
-#define HAX_VCPU_IOCTL_SET_MSRS _IOWR(0, 0xc1, struct hax_msr_data)
-#define HAX_VCPU_IOCTL_GET_MSRS _IOWR(0, 0xc2, struct hax_msr_data)
-
-#define HAX_VCPU_IOCTL_SET_FPU _IOW(0, 0xc3, struct fx_layout)
-#define HAX_VCPU_IOCTL_GET_FPU _IOR(0, 0xc4, struct fx_layout)
-
-#define HAX_VCPU_IOCTL_SETUP_TUNNEL _IOWR(0, 0xc5, struct hax_tunnel_info)
-#define HAX_VCPU_IOCTL_INTERRUPT _IOWR(0, 0xc6, uint32_t)
-#define HAX_VCPU_SET_REGS _IOWR(0, 0xc7, struct vcpu_state_t)
-#define HAX_VCPU_GET_REGS _IOWR(0, 0xc8, struct vcpu_state_t)
-
-#endif /* TARGET_I386_HAX_POSIX_H */
diff --git a/target/i386/hax/hax-windows.h b/target/i386/hax/hax-windows.h
deleted file mode 100644
index b1f5d4f32f..0000000000
--- a/target/i386/hax/hax-windows.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * QEMU HAXM support
- *
- * Copyright IBM, Corp. 2008
- *
- * Authors:
- * Anthony Liguori <aliguori(a)us.ibm.com>
- *
- * Copyright (c) 2011 Intel Corporation
- * Written by:
- * Jiang Yunhong<yunhong.jiang(a)intel.com>
- * Xin Xiaohui<xiaohui.xin(a)intel.com>
- * Zhang Xiantao<xiantao.zhang(a)intel.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- *
- */
-
-#ifndef TARGET_I386_HAX_WINDOWS_H
-#define TARGET_I386_HAX_WINDOWS_H
-
-#include <winioctl.h>
-#include <windef.h>
-
-#include "hax-accel-ops.h"
-
-#define HAX_INVALID_FD INVALID_HANDLE_VALUE
-
-static inline void hax_mod_close(struct hax_state *hax)
-{
- CloseHandle(hax->fd);
-}
-
-static inline void hax_close_fd(hax_fd fd)
-{
- CloseHandle(fd);
-}
-
-static inline int hax_invalid_fd(hax_fd fd)
-{
- return (fd == INVALID_HANDLE_VALUE);
-}
-
-#define HAX_DEVICE_TYPE 0x4000
-
-#define HAX_IOCTL_VERSION CTL_CODE(HAX_DEVICE_TYPE, 0x900, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_IOCTL_CREATE_VM CTL_CODE(HAX_DEVICE_TYPE, 0x901, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_IOCTL_CAPABILITY CTL_CODE(HAX_DEVICE_TYPE, 0x910, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define HAX_VM_IOCTL_VCPU_CREATE CTL_CODE(HAX_DEVICE_TYPE, 0x902, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VM_IOCTL_ALLOC_RAM CTL_CODE(HAX_DEVICE_TYPE, 0x903, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VM_IOCTL_SET_RAM CTL_CODE(HAX_DEVICE_TYPE, 0x904, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VM_IOCTL_VCPU_DESTROY CTL_CODE(HAX_DEVICE_TYPE, 0x905, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VM_IOCTL_ADD_RAMBLOCK CTL_CODE(HAX_DEVICE_TYPE, 0x913, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define HAX_VCPU_IOCTL_RUN CTL_CODE(HAX_DEVICE_TYPE, 0x906, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VCPU_IOCTL_SET_MSRS CTL_CODE(HAX_DEVICE_TYPE, 0x907, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VCPU_IOCTL_GET_MSRS CTL_CODE(HAX_DEVICE_TYPE, 0x908, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VCPU_IOCTL_SET_FPU CTL_CODE(HAX_DEVICE_TYPE, 0x909, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VCPU_IOCTL_GET_FPU CTL_CODE(HAX_DEVICE_TYPE, 0x90a, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define HAX_VCPU_IOCTL_SETUP_TUNNEL CTL_CODE(HAX_DEVICE_TYPE, 0x90b, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VCPU_IOCTL_INTERRUPT CTL_CODE(HAX_DEVICE_TYPE, 0x90c, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VCPU_SET_REGS CTL_CODE(HAX_DEVICE_TYPE, 0x90d, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define HAX_VCPU_GET_REGS CTL_CODE(HAX_DEVICE_TYPE, 0x90e, \
- METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-#define HAX_VM_IOCTL_NOTIFY_QEMU_VERSION CTL_CODE(HAX_DEVICE_TYPE, 0x910, \
- METHOD_BUFFERED, \
- FILE_ANY_ACCESS)
-#endif /* TARGET_I386_HAX_WINDOWS_H */
diff --git a/accel/stubs/hax-stub.c b/accel/stubs/hax-stub.c
deleted file mode 100644
index 2fe31aaa9a..0000000000
--- a/accel/stubs/hax-stub.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * QEMU HAXM support
- *
- * Copyright (c) 2015, Intel Corporation
- *
- * Copyright 2016 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * See the COPYING file in the top-level directory.
- *
- */
-
-#include "qemu/osdep.h"
-#include "sysemu/hax.h"
-
-bool hax_allowed;
-
-int hax_sync_vcpus(void)
-{
- return 0;
-}
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
index 4a34f03047..68ad30e2f5 100644
--- a/hw/intc/apic_common.c
+++ b/hw/intc/apic_common.c
@@ -28,7 +28,6 @@
#include "hw/intc/kvm_irqcount.h"
#include "trace.h"
#include "hw/boards.h"
-#include "sysemu/hax.h"
#include "sysemu/kvm.h"
#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
@@ -271,7 +270,7 @@ static void apic_common_realize(DeviceState *dev, Error **errp)
/* Note: We need at least 1M to map the VAPIC option ROM */
if (!vapic && s->vapic_control & VAPIC_ENABLE_MASK &&
- !hax_enabled() && current_machine->ram_size >= 1024 * 1024) {
+ current_machine->ram_size >= 1024 * 1024) {
vapic = sysbus_create_simple("kvmvapic", -1, NULL);
}
s->vapic = vapic;
diff --git a/softmmu/cpus.c b/softmmu/cpus.c
index fed20ffb5d..0848e0dbdb 100644
--- a/softmmu/cpus.c
+++ b/softmmu/cpus.c
@@ -427,12 +427,6 @@ void qemu_wait_io_event(CPUState *cpu)
qemu_plugin_vcpu_resume_cb(cpu);
}
-#ifdef _WIN32
- /* Eat dummy APC queued by cpus_kick_thread. */
- if (hax_enabled()) {
- SleepEx(0, TRUE);
- }
-#endif
qemu_wait_io_event_common(cpu);
}
diff --git a/softmmu/vl.c b/softmmu/vl.c
index b0b96f67fa..5a10b3c309 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -86,7 +86,6 @@
#include "migration/colo.h"
#include "migration/postcopy-ram.h"
#include "sysemu/kvm.h"
-#include "sysemu/hax.h"
#include "qapi/qobject-input-visitor.h"
#include "qemu/option.h"
#include "qemu/config-file.h"
@@ -2546,11 +2545,6 @@ static void qemu_init_board(void)
drive_check_orphaned();
realtime_init();
-
- if (hax_enabled()) {
- /* FIXME: why isn't cpu_synchronize_all_post_init enough? */
- hax_sync_vcpus();
- }
}
static void qemu_create_cli_devices(void)
diff --git a/target/i386/hax/hax-accel-ops.c b/target/i386/hax/hax-accel-ops.c
deleted file mode 100644
index 5031096760..0000000000
--- a/target/i386/hax/hax-accel-ops.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * QEMU HAX support
- *
- * Copyright IBM, Corp. 2008
- * Red Hat, Inc. 2008
- *
- * Authors:
- * Anthony Liguori <aliguori(a)us.ibm.com>
- * Glauber Costa <gcosta(a)redhat.com>
- *
- * Copyright (c) 2011 Intel Corporation
- * Written by:
- * Jiang Yunhong<yunhong.jiang(a)intel.com>
- * Xin Xiaohui<xiaohui.xin(a)intel.com>
- * Zhang Xiantao<xiantao.zhang(a)intel.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- *
- */
-
-#include "qemu/osdep.h"
-#include "qemu/error-report.h"
-#include "qemu/main-loop.h"
-#include "sysemu/runstate.h"
-#include "sysemu/cpus.h"
-#include "qemu/guest-random.h"
-
-#include "hax-accel-ops.h"
-
-static void *hax_cpu_thread_fn(void *arg)
-{
- CPUState *cpu = arg;
- int r;
-
- rcu_register_thread();
- qemu_mutex_lock_iothread();
- qemu_thread_get_self(cpu->thread);
-
- cpu->thread_id = qemu_get_thread_id();
- current_cpu = cpu;
- hax_init_vcpu(cpu);
- cpu_thread_signal_created(cpu);
- qemu_guest_random_seed_thread_part2(cpu->random_seed);
-
- do {
- if (cpu_can_run(cpu)) {
- r = hax_smp_cpu_exec(cpu);
- if (r == EXCP_DEBUG) {
- cpu_handle_guest_debug(cpu);
- }
- }
-
- qemu_wait_io_event(cpu);
- } while (!cpu->unplug || cpu_can_run(cpu));
- hax_vcpu_destroy(cpu);
- cpu_thread_signal_destroyed(cpu);
- rcu_unregister_thread();
- return NULL;
-}
-
-static void hax_start_vcpu_thread(CPUState *cpu)
-{
- char thread_name[VCPU_THREAD_NAME_SIZE];
-
- cpu->thread = g_new0(QemuThread, 1);
- cpu->halt_cond = g_new0(QemuCond, 1);
- qemu_cond_init(cpu->halt_cond);
-
- snprintf(thread_name, VCPU_THREAD_NAME_SIZE, "CPU %d/HAX",
- cpu->cpu_index);
- qemu_thread_create(cpu->thread, thread_name, hax_cpu_thread_fn,
- cpu, QEMU_THREAD_JOINABLE);
- assert(cpu->accel);
-#ifdef _WIN32
- cpu->accel->hThread = qemu_thread_get_handle(cpu->thread);
-#endif
-}
-
-static void hax_accel_ops_class_init(ObjectClass *oc, void *data)
-{
- AccelOpsClass *ops = ACCEL_OPS_CLASS(oc);
-
- ops->create_vcpu_thread = hax_start_vcpu_thread;
- ops->kick_vcpu_thread = hax_kick_vcpu_thread;
-
- ops->synchronize_post_reset = hax_cpu_synchronize_post_reset;
- ops->synchronize_post_init = hax_cpu_synchronize_post_init;
- ops->synchronize_state = hax_cpu_synchronize_state;
- ops->synchronize_pre_loadvm = hax_cpu_synchronize_pre_loadvm;
-}
-
-static const TypeInfo hax_accel_ops_type = {
- .name = ACCEL_OPS_NAME("hax"),
-
- .parent = TYPE_ACCEL_OPS,
- .class_init = hax_accel_ops_class_init,
- .abstract = true,
-};
-
-static void hax_accel_ops_register_types(void)
-{
- type_register_static(&hax_accel_ops_type);
-}
-type_init(hax_accel_ops_register_types);
diff --git a/target/i386/hax/hax-all.c b/target/i386/hax/hax-all.c
deleted file mode 100644
index 18d78e5b6b..0000000000
--- a/target/i386/hax/hax-all.c
+++ /dev/null
@@ -1,1141 +0,0 @@
-/*
- * QEMU HAX support
- *
- * Copyright IBM, Corp. 2008
- * Red Hat, Inc. 2008
- *
- * Authors:
- * Anthony Liguori <aliguori(a)us.ibm.com>
- * Glauber Costa <gcosta(a)redhat.com>
- *
- * Copyright (c) 2011 Intel Corporation
- * Written by:
- * Jiang Yunhong<yunhong.jiang(a)intel.com>
- * Xin Xiaohui<xiaohui.xin(a)intel.com>
- * Zhang Xiantao<xiantao.zhang(a)intel.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- *
- */
-
-/*
- * HAX common code for both windows and darwin
- */
-
-#include "qemu/osdep.h"
-#include "cpu.h"
-#include "exec/address-spaces.h"
-
-#include "qemu/accel.h"
-#include "sysemu/reset.h"
-#include "sysemu/runstate.h"
-#include "hw/boards.h"
-
-#include "hax-accel-ops.h"
-
-#define DEBUG_HAX 0
-
-#define DPRINTF(fmt, ...) \
- do { \
- if (DEBUG_HAX) { \
- fprintf(stdout, fmt, ## __VA_ARGS__); \
- } \
- } while (0)
-
-/* Current version */
-const uint32_t hax_cur_version = 0x4; /* API v4: unmapping and MMIO moves */
-/* Minimum HAX kernel version */
-const uint32_t hax_min_version = 0x4; /* API v4: supports unmapping */
-
-bool hax_allowed;
-
-struct hax_state hax_global;
-
-static void hax_vcpu_sync_state(CPUArchState *env, int modified);
-static int hax_arch_get_registers(CPUArchState *env);
-
-int valid_hax_tunnel_size(uint16_t size)
-{
- return size >= sizeof(struct hax_tunnel);
-}
-
-hax_fd hax_vcpu_get_fd(CPUArchState *env)
-{
- AccelCPUState *vcpu = env_cpu(env)->accel;
- if (!vcpu) {
- return HAX_INVALID_FD;
- }
- return vcpu->fd;
-}
-
-static int hax_get_capability(struct hax_state *hax)
-{
- int ret;
- struct hax_capabilityinfo capinfo, *cap = &capinfo;
-
- ret = hax_capability(hax, cap);
- if (ret) {
- return ret;
- }
-
- if ((cap->wstatus & HAX_CAP_WORKSTATUS_MASK) == HAX_CAP_STATUS_NOTWORKING) {
- if (cap->winfo & HAX_CAP_FAILREASON_VT) {
- DPRINTF
- ("VTX feature is not enabled, HAX driver will not work.\n");
- } else if (cap->winfo & HAX_CAP_FAILREASON_NX) {
- DPRINTF
- ("NX feature is not enabled, HAX driver will not work.\n");
- }
- return -ENXIO;
-
- }
-
- if (!(cap->winfo & HAX_CAP_UG)) {
- fprintf(stderr, "UG mode is not supported by the hardware.\n");
- return -ENOTSUP;
- }
-
- hax->supports_64bit_ramblock = !!(cap->winfo & HAX_CAP_64BIT_RAMBLOCK);
-
- if (cap->wstatus & HAX_CAP_MEMQUOTA) {
- if (cap->mem_quota < hax->mem_quota) {
- fprintf(stderr, "The VM memory needed exceeds the driver limit.\n");
- return -ENOSPC;
- }
- }
- return 0;
-}
-
-static int hax_version_support(struct hax_state *hax)
-{
- int ret;
- struct hax_module_version version;
-
- ret = hax_mod_version(hax, &version);
- if (ret < 0) {
- return 0;
- }
-
- if (hax_min_version > version.cur_version) {
- fprintf(stderr, "Incompatible HAX module version %d,",
- version.cur_version);
- fprintf(stderr, "requires minimum version %d\n", hax_min_version);
- return 0;
- }
- if (hax_cur_version < version.compat_version) {
- fprintf(stderr, "Incompatible QEMU HAX API version %x,",
- hax_cur_version);
- fprintf(stderr, "requires minimum HAX API version %x\n",
- version.compat_version);
- return 0;
- }
-
- return 1;
-}
-
-int hax_vcpu_create(int id)
-{
- AccelCPUState *vcpu = NULL;
- int ret;
-
- if (!hax_global.vm) {
- fprintf(stderr, "vcpu %x created failed, vm is null\n", id);
- return -1;
- }
-
- if (hax_global.vm->vcpus[id]) {
- fprintf(stderr, "vcpu %x allocated already\n", id);
- return 0;
- }
-
- vcpu = g_new0(AccelCPUState, 1);
-
- ret = hax_host_create_vcpu(hax_global.vm->fd, id);
- if (ret) {
- fprintf(stderr, "Failed to create vcpu %x\n", id);
- goto error;
- }
-
- vcpu->vcpu_id = id;
- vcpu->fd = hax_host_open_vcpu(hax_global.vm->id, id);
- if (hax_invalid_fd(vcpu->fd)) {
- fprintf(stderr, "Failed to open the vcpu\n");
- ret = -ENODEV;
- goto error;
- }
-
- hax_global.vm->vcpus[id] = vcpu;
-
- ret = hax_host_setup_vcpu_channel(vcpu);
- if (ret) {
- fprintf(stderr, "Invalid hax tunnel size\n");
- ret = -EINVAL;
- goto error;
- }
- return 0;
-
- error:
- /* vcpu and tunnel will be closed automatically */
- if (vcpu && !hax_invalid_fd(vcpu->fd)) {
- hax_close_fd(vcpu->fd);
- }
-
- hax_global.vm->vcpus[id] = NULL;
- g_free(vcpu);
- return -1;
-}
-
-int hax_vcpu_destroy(CPUState *cpu)
-{
- AccelCPUState *vcpu = cpu->accel;
-
- if (!hax_global.vm) {
- fprintf(stderr, "vcpu %x destroy failed, vm is null\n", vcpu->vcpu_id);
- return -1;
- }
-
- if (!vcpu) {
- return 0;
- }
-
- /*
- * 1. The hax_tunnel is also destroyed when vcpu is destroyed
- * 2. close fd will cause hax module vcpu be cleaned
- */
- hax_close_fd(vcpu->fd);
- hax_global.vm->vcpus[vcpu->vcpu_id] = NULL;
-#ifdef _WIN32
- CloseHandle(vcpu->hThread);
-#endif
- g_free(vcpu);
- cpu->accel = NULL;
- return 0;
-}
-
-int hax_init_vcpu(CPUState *cpu)
-{
- int ret;
-
- ret = hax_vcpu_create(cpu->cpu_index);
- if (ret < 0) {
- fprintf(stderr, "Failed to create HAX vcpu\n");
- exit(-1);
- }
-
- cpu->accel = hax_global.vm->vcpus[cpu->cpu_index];
- cpu->vcpu_dirty = true;
- qemu_register_reset(hax_reset_vcpu_state, cpu->env_ptr);
-
- return ret;
-}
-
-struct hax_vm *hax_vm_create(struct hax_state *hax, int max_cpus)
-{
- struct hax_vm *vm;
- int vm_id = 0, ret, i;
-
- if (hax_invalid_fd(hax->fd)) {
- return NULL;
- }
-
- if (hax->vm) {
- return hax->vm;
- }
-
- if (max_cpus > HAX_MAX_VCPU) {
- fprintf(stderr, "Maximum VCPU number QEMU supported is %d\n", HAX_MAX_VCPU);
- return NULL;
- }
-
- vm = g_new0(struct hax_vm, 1);
-
- ret = hax_host_create_vm(hax, &vm_id);
- if (ret) {
- fprintf(stderr, "Failed to create vm %x\n", ret);
- goto error;
- }
- vm->id = vm_id;
- vm->fd = hax_host_open_vm(hax, vm_id);
- if (hax_invalid_fd(vm->fd)) {
- fprintf(stderr, "Failed to open vm %d\n", vm_id);
- goto error;
- }
-
- vm->numvcpus = max_cpus;
- vm->vcpus = g_new0(AccelCPUState *, vm->numvcpus);
- for (i = 0; i < vm->numvcpus; i++) {
- vm->vcpus[i] = NULL;
- }
-
- hax->vm = vm;
- return vm;
-
- error:
- g_free(vm);
- hax->vm = NULL;
- return NULL;
-}
-
-int hax_vm_destroy(struct hax_vm *vm)
-{
- int i;
-
- for (i = 0; i < vm->numvcpus; i++)
- if (vm->vcpus[i]) {
- fprintf(stderr, "VCPU should be cleaned before vm clean\n");
- return -1;
- }
- hax_close_fd(vm->fd);
- vm->numvcpus = 0;
- g_free(vm->vcpus);
- g_free(vm);
- hax_global.vm = NULL;
- return 0;
-}
-
-static int hax_init(ram_addr_t ram_size, int max_cpus)
-{
- struct hax_state *hax = NULL;
- struct hax_qemu_version qversion;
- int ret;
-
- hax = &hax_global;
-
- memset(hax, 0, sizeof(struct hax_state));
- hax->mem_quota = ram_size;
-
- hax->fd = hax_mod_open();
- if (hax_invalid_fd(hax->fd)) {
- hax->fd = 0;
- ret = -ENODEV;
- goto error;
- }
-
- ret = hax_get_capability(hax);
-
- if (ret) {
- if (ret != -ENOSPC) {
- ret = -EINVAL;
- }
- goto error;
- }
-
- if (!hax_version_support(hax)) {
- ret = -EINVAL;
- goto error;
- }
-
- hax->vm = hax_vm_create(hax, max_cpus);
- if (!hax->vm) {
- fprintf(stderr, "Failed to create HAX VM\n");
- ret = -EINVAL;
- goto error;
- }
-
- hax_memory_init();
-
- qversion.cur_version = hax_cur_version;
- qversion.min_version = hax_min_version;
- hax_notify_qemu_version(hax->vm->fd, &qversion);
-
- return ret;
- error:
- if (hax->vm) {
- hax_vm_destroy(hax->vm);
- }
- if (hax->fd) {
- hax_mod_close(hax);
- }
-
- return ret;
-}
-
-static int hax_accel_init(MachineState *ms)
-{
- int ret = hax_init(ms->ram_size, (int)ms->smp.max_cpus);
-
- if (ret && (ret != -ENOSPC)) {
- fprintf(stderr, "No accelerator found.\n");
- } else {
- fprintf(stdout, "HAX is %s and emulator runs in %s mode.\n",
- !ret ? "working" : "not working",
- !ret ? "fast virt" : "emulation");
- fprintf(stdout,
- "NOTE: HAX is deprecated and will be removed in a future release.\n"
- " Use 'whpx' (on Windows) or 'hvf' (on macOS) instead.\n");
- }
- return ret;
-}
-
-static int hax_handle_fastmmio(CPUArchState *env, struct hax_fastmmio *hft)
-{
- if (hft->direction < 2) {
- cpu_physical_memory_rw(hft->gpa, &hft->value, hft->size,
- hft->direction);
- } else {
- /*
- * HAX API v4 supports transferring data between two MMIO addresses,
- * hft->gpa and hft->gpa2 (instructions such as MOVS require this):
- * hft->direction == 2: gpa ==> gpa2
- */
- uint64_t value;
- cpu_physical_memory_read(hft->gpa, &value, hft->size);
- cpu_physical_memory_write(hft->gpa2, &value, hft->size);
- }
-
- return 0;
-}
-
-static int hax_handle_io(CPUArchState *env, uint32_t df, uint16_t port,
- int direction, int size, int count, void *buffer)
-{
- uint8_t *ptr;
- int i;
- MemTxAttrs attrs = { 0 };
-
- if (!df) {
- ptr = buffer;
- } else {
- ptr = buffer + size * count - size;
- }
- for (i = 0; i < count; i++) {
- address_space_rw(&address_space_io, port, attrs,
- ptr, size, direction == HAX_EXIT_IO_OUT);
- if (!df) {
- ptr += size;
- } else {
- ptr -= size;
- }
- }
-
- return 0;
-}
-
-static int hax_vcpu_interrupt(CPUArchState *env)
-{
- CPUState *cpu = env_cpu(env);
- AccelCPUState *vcpu = cpu->accel;
- struct hax_tunnel *ht = vcpu->tunnel;
-
- /*
- * Try to inject an interrupt if the guest can accept it
- * Unlike KVM, HAX kernel check for the eflags, instead of qemu
- */
- if (ht->ready_for_interrupt_injection &&
- (cpu->interrupt_request & CPU_INTERRUPT_HARD)) {
- int irq;
-
- irq = cpu_get_pic_interrupt(env);
- if (irq >= 0) {
- hax_inject_interrupt(env, irq);
- cpu->interrupt_request &= ~CPU_INTERRUPT_HARD;
- }
- }
-
- /* If we have an interrupt but the guest is not ready to receive an
- * interrupt, request an interrupt window exit. This will
- * cause a return to userspace as soon as the guest is ready to
- * receive interrupts. */
- if ((cpu->interrupt_request & CPU_INTERRUPT_HARD)) {
- ht->request_interrupt_window = 1;
- } else {
- ht->request_interrupt_window = 0;
- }
- return 0;
-}
-
-void hax_raise_event(CPUState *cpu)
-{
- AccelCPUState *vcpu = cpu->accel;
-
- if (!vcpu) {
- return;
- }
- vcpu->tunnel->user_event_pending = 1;
-}
-
-/*
- * Ask hax kernel module to run the CPU for us till:
- * 1. Guest crash or shutdown
- * 2. Need QEMU's emulation like guest execute MMIO instruction
- * 3. Guest execute HLT
- * 4. QEMU have Signal/event pending
- * 5. An unknown VMX exit happens
- */
-static int hax_vcpu_hax_exec(CPUArchState *env)
-{
- int ret = 0;
- CPUState *cpu = env_cpu(env);
- X86CPU *x86_cpu = X86_CPU(cpu);
- AccelCPUState *vcpu = cpu->accel;
- struct hax_tunnel *ht = vcpu->tunnel;
-
- if (!hax_enabled()) {
- DPRINTF("Trying to vcpu execute at eip:" TARGET_FMT_lx "\n", env->eip);
- return 0;
- }
-
- if (cpu->interrupt_request & CPU_INTERRUPT_POLL) {
- cpu->interrupt_request &= ~CPU_INTERRUPT_POLL;
- apic_poll_irq(x86_cpu->apic_state);
- }
-
- /* After a vcpu is halted (either because it is an AP and has just been
- * reset, or because it has executed the HLT instruction), it will not be
- * run (hax_vcpu_run()) until it is unhalted. The next few if blocks check
- * for events that may change the halted state of this vcpu:
- * a) Maskable interrupt, when RFLAGS.IF is 1;
- * Note: env->eflags may not reflect the current RFLAGS state, because
- * it is not updated after each hax_vcpu_run(). We cannot afford
- * to fail to recognize any unhalt-by-maskable-interrupt event
- * (in which case the vcpu will halt forever), and yet we cannot
- * afford the overhead of hax_vcpu_sync_state(). The current
- * solution is to err on the side of caution and have the HLT
- * handler (see case HAX_EXIT_HLT below) unconditionally set the
- * IF_MASK bit in env->eflags, which, in effect, disables the
- * RFLAGS.IF check.
- * b) NMI;
- * c) INIT signal;
- * d) SIPI signal.
- */
- if (((cpu->interrupt_request & CPU_INTERRUPT_HARD) &&
- (env->eflags & IF_MASK)) ||
- (cpu->interrupt_request & CPU_INTERRUPT_NMI)) {
- cpu->halted = 0;
- }
-
- if (cpu->interrupt_request & CPU_INTERRUPT_INIT) {
- DPRINTF("\nhax_vcpu_hax_exec: handling INIT for %d\n",
- cpu->cpu_index);
- do_cpu_init(x86_cpu);
- hax_vcpu_sync_state(env, 1);
- }
-
- if (cpu->interrupt_request & CPU_INTERRUPT_SIPI) {
- DPRINTF("hax_vcpu_hax_exec: handling SIPI for %d\n",
- cpu->cpu_index);
- hax_vcpu_sync_state(env, 0);
- do_cpu_sipi(x86_cpu);
- hax_vcpu_sync_state(env, 1);
- }
-
- if (cpu->halted) {
- /* If this vcpu is halted, we must not ask HAXM to run it. Instead, we
- * break out of hax_smp_cpu_exec() as if this vcpu had executed HLT.
- * That way, this vcpu thread will be trapped in qemu_wait_io_event(),
- * until the vcpu is unhalted.
- */
- cpu->exception_index = EXCP_HLT;
- return 0;
- }
-
- do {
- int hax_ret;
-
- if (cpu->exit_request) {
- ret = 1;
- break;
- }
-
- hax_vcpu_interrupt(env);
-
- qemu_mutex_unlock_iothread();
- cpu_exec_start(cpu);
- hax_ret = hax_vcpu_run(vcpu);
- cpu_exec_end(cpu);
- qemu_mutex_lock_iothread();
-
- /* Simply continue the vcpu_run if system call interrupted */
- if (hax_ret == -EINTR || hax_ret == -EAGAIN) {
- DPRINTF("io window interrupted\n");
- continue;
- }
-
- if (hax_ret < 0) {
- fprintf(stderr, "vcpu run failed for vcpu %x\n", vcpu->vcpu_id);
- abort();
- }
- switch (ht->_exit_status) {
- case HAX_EXIT_IO:
- ret = hax_handle_io(env, ht->pio._df, ht->pio._port,
- ht->pio._direction,
- ht->pio._size, ht->pio._count, vcpu->iobuf);
- break;
- case HAX_EXIT_FAST_MMIO:
- ret = hax_handle_fastmmio(env, (struct hax_fastmmio *) vcpu->iobuf);
- break;
- /* Guest state changed, currently only for shutdown */
- case HAX_EXIT_STATECHANGE:
- fprintf(stdout, "VCPU shutdown request\n");
- qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN);
- hax_vcpu_sync_state(env, 0);
- ret = 1;
- break;
- case HAX_EXIT_UNKNOWN_VMEXIT:
- fprintf(stderr, "Unknown VMX exit %x from guest\n",
- ht->_exit_reason);
- qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
- hax_vcpu_sync_state(env, 0);
- cpu_dump_state(cpu, stderr, 0);
- ret = -1;
- break;
- case HAX_EXIT_HLT:
- if (!(cpu->interrupt_request & CPU_INTERRUPT_HARD) &&
- !(cpu->interrupt_request & CPU_INTERRUPT_NMI)) {
- /* hlt instruction with interrupt disabled is shutdown */
- env->eflags |= IF_MASK;
- cpu->halted = 1;
- cpu->exception_index = EXCP_HLT;
- ret = 1;
- }
- break;
- /* these situations will continue to hax module */
- case HAX_EXIT_INTERRUPT:
- case HAX_EXIT_PAUSED:
- break;
- case HAX_EXIT_MMIO:
- /* Should not happen on UG system */
- fprintf(stderr, "HAX: unsupported MMIO emulation\n");
- ret = -1;
- break;
- case HAX_EXIT_REAL:
- /* Should not happen on UG system */
- fprintf(stderr, "HAX: unimplemented real mode emulation\n");
- ret = -1;
- break;
- default:
- fprintf(stderr, "Unknown exit %x from HAX\n", ht->_exit_status);
- qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
- hax_vcpu_sync_state(env, 0);
- cpu_dump_state(cpu, stderr, 0);
- ret = 1;
- break;
- }
- } while (!ret);
-
- if (cpu->exit_request) {
- cpu->exit_request = 0;
- cpu->exception_index = EXCP_INTERRUPT;
- }
- return ret < 0;
-}
-
-static void do_hax_cpu_synchronize_state(CPUState *cpu, run_on_cpu_data arg)
-{
- CPUArchState *env = cpu->env_ptr;
-
- hax_arch_get_registers(env);
- cpu->vcpu_dirty = true;
-}
-
-void hax_cpu_synchronize_state(CPUState *cpu)
-{
- if (!cpu->vcpu_dirty) {
- run_on_cpu(cpu, do_hax_cpu_synchronize_state, RUN_ON_CPU_NULL);
- }
-}
-
-static void do_hax_cpu_synchronize_post_reset(CPUState *cpu,
- run_on_cpu_data arg)
-{
- CPUArchState *env = cpu->env_ptr;
-
- hax_vcpu_sync_state(env, 1);
- cpu->vcpu_dirty = false;
-}
-
-void hax_cpu_synchronize_post_reset(CPUState *cpu)
-{
- run_on_cpu(cpu, do_hax_cpu_synchronize_post_reset, RUN_ON_CPU_NULL);
-}
-
-static void do_hax_cpu_synchronize_post_init(CPUState *cpu, run_on_cpu_data arg)
-{
- CPUArchState *env = cpu->env_ptr;
-
- hax_vcpu_sync_state(env, 1);
- cpu->vcpu_dirty = false;
-}
-
-void hax_cpu_synchronize_post_init(CPUState *cpu)
-{
- run_on_cpu(cpu, do_hax_cpu_synchronize_post_init, RUN_ON_CPU_NULL);
-}
-
-static void do_hax_cpu_synchronize_pre_loadvm(CPUState *cpu, run_on_cpu_data arg)
-{
- cpu->vcpu_dirty = true;
-}
-
-void hax_cpu_synchronize_pre_loadvm(CPUState *cpu)
-{
- run_on_cpu(cpu, do_hax_cpu_synchronize_pre_loadvm, RUN_ON_CPU_NULL);
-}
-
-int hax_smp_cpu_exec(CPUState *cpu)
-{
- CPUArchState *env = cpu->env_ptr;
- int fatal;
- int ret;
-
- while (1) {
- if (cpu->exception_index >= EXCP_INTERRUPT) {
- ret = cpu->exception_index;
- cpu->exception_index = -1;
- break;
- }
-
- fatal = hax_vcpu_hax_exec(env);
-
- if (fatal) {
- fprintf(stderr, "Unsupported HAX vcpu return\n");
- abort();
- }
- }
-
- return ret;
-}
-
-static void set_v8086_seg(struct segment_desc_t *lhs, const SegmentCache *rhs)
-{
- memset(lhs, 0, sizeof(struct segment_desc_t));
- lhs->selector = rhs->selector;
- lhs->base = rhs->base;
- lhs->limit = rhs->limit;
- lhs->type = 3;
- lhs->present = 1;
- lhs->dpl = 3;
- lhs->operand_size = 0;
- lhs->desc = 1;
- lhs->long_mode = 0;
- lhs->granularity = 0;
- lhs->available = 0;
-}
-
-static void get_seg(SegmentCache *lhs, const struct segment_desc_t *rhs)
-{
- lhs->selector = rhs->selector;
- lhs->base = rhs->base;
- lhs->limit = rhs->limit;
- lhs->flags = (rhs->type << DESC_TYPE_SHIFT)
- | (rhs->present * DESC_P_MASK)
- | (rhs->dpl << DESC_DPL_SHIFT)
- | (rhs->operand_size << DESC_B_SHIFT)
- | (rhs->desc * DESC_S_MASK)
- | (rhs->long_mode << DESC_L_SHIFT)
- | (rhs->granularity * DESC_G_MASK) | (rhs->available * DESC_AVL_MASK);
-}
-
-static void set_seg(struct segment_desc_t *lhs, const SegmentCache *rhs)
-{
- unsigned flags = rhs->flags;
-
- memset(lhs, 0, sizeof(struct segment_desc_t));
- lhs->selector = rhs->selector;
- lhs->base = rhs->base;
- lhs->limit = rhs->limit;
- lhs->type = (flags >> DESC_TYPE_SHIFT) & 15;
- lhs->present = (flags & DESC_P_MASK) != 0;
- lhs->dpl = rhs->selector & 3;
- lhs->operand_size = (flags >> DESC_B_SHIFT) & 1;
- lhs->desc = (flags & DESC_S_MASK) != 0;
- lhs->long_mode = (flags >> DESC_L_SHIFT) & 1;
- lhs->granularity = (flags & DESC_G_MASK) != 0;
- lhs->available = (flags & DESC_AVL_MASK) != 0;
-}
-
-static void hax_getput_reg(uint64_t *hax_reg, target_ulong *qemu_reg, int set)
-{
- target_ulong reg = *hax_reg;
-
- if (set) {
- *hax_reg = *qemu_reg;
- } else {
- *qemu_reg = reg;
- }
-}
-
-/* The sregs has been synced with HAX kernel already before this call */
-static int hax_get_segments(CPUArchState *env, struct vcpu_state_t *sregs)
-{
- get_seg(&env->segs[R_CS], &sregs->_cs);
- get_seg(&env->segs[R_DS], &sregs->_ds);
- get_seg(&env->segs[R_ES], &sregs->_es);
- get_seg(&env->segs[R_FS], &sregs->_fs);
- get_seg(&env->segs[R_GS], &sregs->_gs);
- get_seg(&env->segs[R_SS], &sregs->_ss);
-
- get_seg(&env->tr, &sregs->_tr);
- get_seg(&env->ldt, &sregs->_ldt);
- env->idt.limit = sregs->_idt.limit;
- env->idt.base = sregs->_idt.base;
- env->gdt.limit = sregs->_gdt.limit;
- env->gdt.base = sregs->_gdt.base;
- return 0;
-}
-
-static int hax_set_segments(CPUArchState *env, struct vcpu_state_t *sregs)
-{
- if ((env->eflags & VM_MASK)) {
- set_v8086_seg(&sregs->_cs, &env->segs[R_CS]);
- set_v8086_seg(&sregs->_ds, &env->segs[R_DS]);
- set_v8086_seg(&sregs->_es, &env->segs[R_ES]);
- set_v8086_seg(&sregs->_fs, &env->segs[R_FS]);
- set_v8086_seg(&sregs->_gs, &env->segs[R_GS]);
- set_v8086_seg(&sregs->_ss, &env->segs[R_SS]);
- } else {
- set_seg(&sregs->_cs, &env->segs[R_CS]);
- set_seg(&sregs->_ds, &env->segs[R_DS]);
- set_seg(&sregs->_es, &env->segs[R_ES]);
- set_seg(&sregs->_fs, &env->segs[R_FS]);
- set_seg(&sregs->_gs, &env->segs[R_GS]);
- set_seg(&sregs->_ss, &env->segs[R_SS]);
-
- if (env->cr[0] & CR0_PE_MASK) {
- /* force ss cpl to cs cpl */
- sregs->_ss.selector = (sregs->_ss.selector & ~3) |
- (sregs->_cs.selector & 3);
- sregs->_ss.dpl = sregs->_ss.selector & 3;
- }
- }
-
- set_seg(&sregs->_tr, &env->tr);
- set_seg(&sregs->_ldt, &env->ldt);
- sregs->_idt.limit = env->idt.limit;
- sregs->_idt.base = env->idt.base;
- sregs->_gdt.limit = env->gdt.limit;
- sregs->_gdt.base = env->gdt.base;
- return 0;
-}
-
-static int hax_sync_vcpu_register(CPUArchState *env, int set)
-{
- struct vcpu_state_t regs;
- int ret;
- memset(®s, 0, sizeof(struct vcpu_state_t));
-
- if (!set) {
- ret = hax_sync_vcpu_state(env, ®s, 0);
- if (ret < 0) {
- return -1;
- }
- }
-
- /* generic register */
- hax_getput_reg(®s._rax, &env->regs[R_EAX], set);
- hax_getput_reg(®s._rbx, &env->regs[R_EBX], set);
- hax_getput_reg(®s._rcx, &env->regs[R_ECX], set);
- hax_getput_reg(®s._rdx, &env->regs[R_EDX], set);
- hax_getput_reg(®s._rsi, &env->regs[R_ESI], set);
- hax_getput_reg(®s._rdi, &env->regs[R_EDI], set);
- hax_getput_reg(®s._rsp, &env->regs[R_ESP], set);
- hax_getput_reg(®s._rbp, &env->regs[R_EBP], set);
-#ifdef TARGET_X86_64
- hax_getput_reg(®s._r8, &env->regs[8], set);
- hax_getput_reg(®s._r9, &env->regs[9], set);
- hax_getput_reg(®s._r10, &env->regs[10], set);
- hax_getput_reg(®s._r11, &env->regs[11], set);
- hax_getput_reg(®s._r12, &env->regs[12], set);
- hax_getput_reg(®s._r13, &env->regs[13], set);
- hax_getput_reg(®s._r14, &env->regs[14], set);
- hax_getput_reg(®s._r15, &env->regs[15], set);
-#endif
- hax_getput_reg(®s._rflags, &env->eflags, set);
- hax_getput_reg(®s._rip, &env->eip, set);
-
- if (set) {
- regs._cr0 = env->cr[0];
- regs._cr2 = env->cr[2];
- regs._cr3 = env->cr[3];
- regs._cr4 = env->cr[4];
- hax_set_segments(env, ®s);
- } else {
- env->cr[0] = regs._cr0;
- env->cr[2] = regs._cr2;
- env->cr[3] = regs._cr3;
- env->cr[4] = regs._cr4;
- hax_get_segments(env, ®s);
- }
-
- if (set) {
- ret = hax_sync_vcpu_state(env, ®s, 1);
- if (ret < 0) {
- return -1;
- }
- }
- return 0;
-}
-
-static void hax_msr_entry_set(struct vmx_msr *item, uint32_t index,
- uint64_t value)
-{
- item->entry = index;
- item->value = value;
-}
-
-static int hax_get_msrs(CPUArchState *env)
-{
- struct hax_msr_data md;
- struct vmx_msr *msrs = md.entries;
- int ret, i, n;
-
- n = 0;
- msrs[n++].entry = MSR_IA32_SYSENTER_CS;
- msrs[n++].entry = MSR_IA32_SYSENTER_ESP;
- msrs[n++].entry = MSR_IA32_SYSENTER_EIP;
- msrs[n++].entry = MSR_IA32_TSC;
-#ifdef TARGET_X86_64
- msrs[n++].entry = MSR_EFER;
- msrs[n++].entry = MSR_STAR;
- msrs[n++].entry = MSR_LSTAR;
- msrs[n++].entry = MSR_CSTAR;
- msrs[n++].entry = MSR_FMASK;
- msrs[n++].entry = MSR_KERNELGSBASE;
-#endif
- md.nr_msr = n;
- ret = hax_sync_msr(env, &md, 0);
- if (ret < 0) {
- return ret;
- }
-
- for (i = 0; i < md.done; i++) {
- switch (msrs[i].entry) {
- case MSR_IA32_SYSENTER_CS:
- env->sysenter_cs = msrs[i].value;
- break;
- case MSR_IA32_SYSENTER_ESP:
- env->sysenter_esp = msrs[i].value;
- break;
- case MSR_IA32_SYSENTER_EIP:
- env->sysenter_eip = msrs[i].value;
- break;
- case MSR_IA32_TSC:
- env->tsc = msrs[i].value;
- break;
-#ifdef TARGET_X86_64
- case MSR_EFER:
- env->efer = msrs[i].value;
- break;
- case MSR_STAR:
- env->star = msrs[i].value;
- break;
- case MSR_LSTAR:
- env->lstar = msrs[i].value;
- break;
- case MSR_CSTAR:
- env->cstar = msrs[i].value;
- break;
- case MSR_FMASK:
- env->fmask = msrs[i].value;
- break;
- case MSR_KERNELGSBASE:
- env->kernelgsbase = msrs[i].value;
- break;
-#endif
- }
- }
-
- return 0;
-}
-
-static int hax_set_msrs(CPUArchState *env)
-{
- struct hax_msr_data md;
- struct vmx_msr *msrs;
- msrs = md.entries;
- int n = 0;
-
- memset(&md, 0, sizeof(struct hax_msr_data));
- hax_msr_entry_set(&msrs[n++], MSR_IA32_SYSENTER_CS, env->sysenter_cs);
- hax_msr_entry_set(&msrs[n++], MSR_IA32_SYSENTER_ESP, env->sysenter_esp);
- hax_msr_entry_set(&msrs[n++], MSR_IA32_SYSENTER_EIP, env->sysenter_eip);
- hax_msr_entry_set(&msrs[n++], MSR_IA32_TSC, env->tsc);
-#ifdef TARGET_X86_64
- hax_msr_entry_set(&msrs[n++], MSR_EFER, env->efer);
- hax_msr_entry_set(&msrs[n++], MSR_STAR, env->star);
- hax_msr_entry_set(&msrs[n++], MSR_LSTAR, env->lstar);
- hax_msr_entry_set(&msrs[n++], MSR_CSTAR, env->cstar);
- hax_msr_entry_set(&msrs[n++], MSR_FMASK, env->fmask);
- hax_msr_entry_set(&msrs[n++], MSR_KERNELGSBASE, env->kernelgsbase);
-#endif
- md.nr_msr = n;
- md.done = 0;
-
- return hax_sync_msr(env, &md, 1);
-}
-
-static int hax_get_fpu(CPUArchState *env)
-{
- struct fx_layout fpu;
- int i, ret;
-
- ret = hax_sync_fpu(env, &fpu, 0);
- if (ret < 0) {
- return ret;
- }
-
- env->fpstt = (fpu.fsw >> 11) & 7;
- env->fpus = fpu.fsw;
- env->fpuc = fpu.fcw;
- for (i = 0; i < 8; ++i) {
- env->fptags[i] = !((fpu.ftw >> i) & 1);
- }
- memcpy(env->fpregs, fpu.st_mm, sizeof(env->fpregs));
-
- for (i = 0; i < 8; i++) {
- env->xmm_regs[i].ZMM_Q(0) = ldq_p(&fpu.mmx_1[i][0]);
- env->xmm_regs[i].ZMM_Q(1) = ldq_p(&fpu.mmx_1[i][8]);
- if (CPU_NB_REGS > 8) {
- env->xmm_regs[i + 8].ZMM_Q(0) = ldq_p(&fpu.mmx_2[i][0]);
- env->xmm_regs[i + 8].ZMM_Q(1) = ldq_p(&fpu.mmx_2[i][8]);
- }
- }
- env->mxcsr = fpu.mxcsr;
-
- return 0;
-}
-
-static int hax_set_fpu(CPUArchState *env)
-{
- struct fx_layout fpu;
- int i;
-
- memset(&fpu, 0, sizeof(fpu));
- fpu.fsw = env->fpus & ~(7 << 11);
- fpu.fsw |= (env->fpstt & 7) << 11;
- fpu.fcw = env->fpuc;
-
- for (i = 0; i < 8; ++i) {
- fpu.ftw |= (!env->fptags[i]) << i;
- }
-
- memcpy(fpu.st_mm, env->fpregs, sizeof(env->fpregs));
- for (i = 0; i < 8; i++) {
- stq_p(&fpu.mmx_1[i][0], env->xmm_regs[i].ZMM_Q(0));
- stq_p(&fpu.mmx_1[i][8], env->xmm_regs[i].ZMM_Q(1));
- if (CPU_NB_REGS > 8) {
- stq_p(&fpu.mmx_2[i][0], env->xmm_regs[i + 8].ZMM_Q(0));
- stq_p(&fpu.mmx_2[i][8], env->xmm_regs[i + 8].ZMM_Q(1));
- }
- }
-
- fpu.mxcsr = env->mxcsr;
-
- return hax_sync_fpu(env, &fpu, 1);
-}
-
-static int hax_arch_get_registers(CPUArchState *env)
-{
- int ret;
-
- ret = hax_sync_vcpu_register(env, 0);
- if (ret < 0) {
- return ret;
- }
-
- ret = hax_get_fpu(env);
- if (ret < 0) {
- return ret;
- }
-
- ret = hax_get_msrs(env);
- if (ret < 0) {
- return ret;
- }
-
- x86_update_hflags(env);
- return 0;
-}
-
-static int hax_arch_set_registers(CPUArchState *env)
-{
- int ret;
- ret = hax_sync_vcpu_register(env, 1);
-
- if (ret < 0) {
- fprintf(stderr, "Failed to sync vcpu reg\n");
- return ret;
- }
- ret = hax_set_fpu(env);
- if (ret < 0) {
- fprintf(stderr, "FPU failed\n");
- return ret;
- }
- ret = hax_set_msrs(env);
- if (ret < 0) {
- fprintf(stderr, "MSR failed\n");
- return ret;
- }
-
- return 0;
-}
-
-static void hax_vcpu_sync_state(CPUArchState *env, int modified)
-{
- if (hax_enabled()) {
- if (modified) {
- hax_arch_set_registers(env);
- } else {
- hax_arch_get_registers(env);
- }
- }
-}
-
-/*
- * much simpler than kvm, at least in first stage because:
- * We don't need consider the device pass-through, we don't need
- * consider the framebuffer, and we may even remove the bios at all
- */
-int hax_sync_vcpus(void)
-{
- if (hax_enabled()) {
- CPUState *cpu;
-
- cpu = first_cpu;
- if (!cpu) {
- return 0;
- }
-
- for (; cpu != NULL; cpu = CPU_NEXT(cpu)) {
- int ret;
-
- ret = hax_arch_set_registers(cpu->env_ptr);
- if (ret < 0) {
- return ret;
- }
- }
- }
-
- return 0;
-}
-
-void hax_reset_vcpu_state(void *opaque)
-{
- CPUState *cpu;
- for (cpu = first_cpu; cpu != NULL; cpu = CPU_NEXT(cpu)) {
- cpu->accel->tunnel->user_event_pending = 0;
- cpu->accel->tunnel->ready_for_interrupt_injection = 0;
- }
-}
-
-static void hax_accel_class_init(ObjectClass *oc, void *data)
-{
- AccelClass *ac = ACCEL_CLASS(oc);
- ac->name = "HAX";
- ac->init_machine = hax_accel_init;
- ac->allowed = &hax_allowed;
-}
-
-static const TypeInfo hax_accel_type = {
- .name = ACCEL_CLASS_NAME("hax"),
- .parent = TYPE_ACCEL,
- .class_init = hax_accel_class_init,
-};
-
-static void hax_type_init(void)
-{
- type_register_static(&hax_accel_type);
-}
-
-type_init(hax_type_init);
diff --git a/target/i386/hax/hax-mem.c b/target/i386/hax/hax-mem.c
deleted file mode 100644
index 05dbe8cce3..0000000000
--- a/target/i386/hax/hax-mem.c
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * HAX memory mapping operations
- *
- * Copyright (c) 2015-16 Intel Corporation
- * Copyright 2016 Google, Inc.
- *
- * This work is licensed under the terms of the GNU GPL, version 2. See
- * the COPYING file in the top-level directory.
- */
-
-#include "qemu/osdep.h"
-#include "cpu.h"
-#include "exec/address-spaces.h"
-#include "qemu/error-report.h"
-
-#include "hax-accel-ops.h"
-#include "qemu/queue.h"
-
-#define DEBUG_HAX_MEM 0
-
-#define DPRINTF(fmt, ...) \
- do { \
- if (DEBUG_HAX_MEM) { \
- fprintf(stdout, fmt, ## __VA_ARGS__); \
- } \
- } while (0)
-
-/**
- * HAXMapping: describes a pending guest physical memory mapping
- *
- * @start_pa: a guest physical address marking the start of the region; must be
- * page-aligned
- * @size: a guest physical address marking the end of the region; must be
- * page-aligned
- * @host_va: the host virtual address of the start of the mapping
- * @flags: mapping parameters e.g. HAX_RAM_INFO_ROM or HAX_RAM_INFO_INVALID
- * @entry: additional fields for linking #HAXMapping instances together
- */
-typedef struct HAXMapping {
- uint64_t start_pa;
- uint32_t size;
- uint64_t host_va;
- int flags;
- QTAILQ_ENTRY(HAXMapping) entry;
-} HAXMapping;
-
-/*
- * A doubly-linked list (actually a tail queue) of the pending page mappings
- * for the ongoing memory transaction.
- *
- * It is used to optimize the number of page mapping updates done through the
- * kernel module. For example, it's effective when a driver is digging an MMIO
- * hole inside an existing memory mapping. It will get a deletion of the whole
- * region, then the addition of the 2 remaining RAM areas around the hole and
- * finally the memory transaction commit. During the commit, it will effectively
- * send to the kernel only the removal of the pages from the MMIO hole after
- * having computed locally the result of the deletion and additions.
- */
-static QTAILQ_HEAD(, HAXMapping) mappings =
- QTAILQ_HEAD_INITIALIZER(mappings);
-
-/**
- * hax_mapping_dump_list: dumps @mappings to stdout (for debugging)
- */
-static void hax_mapping_dump_list(void)
-{
- HAXMapping *entry;
-
- DPRINTF("%s updates:\n", __func__);
- QTAILQ_FOREACH(entry, &mappings, entry) {
- DPRINTF("\t%c 0x%016" PRIx64 "->0x%016" PRIx64 " VA 0x%016" PRIx64
- "%s\n", entry->flags & HAX_RAM_INFO_INVALID ? '-' : '+',
- entry->start_pa, entry->start_pa + entry->size, entry->host_va,
- entry->flags & HAX_RAM_INFO_ROM ? " ROM" : "");
- }
-}
-
-static void hax_insert_mapping_before(HAXMapping *next, uint64_t start_pa,
- uint32_t size, uint64_t host_va,
- uint8_t flags)
-{
- HAXMapping *entry;
-
- entry = g_malloc0(sizeof(*entry));
- entry->start_pa = start_pa;
- entry->size = size;
- entry->host_va = host_va;
- entry->flags = flags;
- if (!next) {
- QTAILQ_INSERT_TAIL(&mappings, entry, entry);
- } else {
- QTAILQ_INSERT_BEFORE(next, entry, entry);
- }
-}
-
-static bool hax_mapping_is_opposite(HAXMapping *entry, uint64_t host_va,
- uint8_t flags)
-{
- /* removed then added without change for the read-only flag */
- bool nop_flags = (entry->flags ^ flags) == HAX_RAM_INFO_INVALID;
-
- return (entry->host_va == host_va) && nop_flags;
-}
-
-static void hax_update_mapping(uint64_t start_pa, uint32_t size,
- uint64_t host_va, uint8_t flags)
-{
- uint64_t end_pa = start_pa + size;
- HAXMapping *entry, *next;
-
- QTAILQ_FOREACH_SAFE(entry, &mappings, entry, next) {
- uint32_t chunk_sz;
- if (start_pa >= entry->start_pa + entry->size) {
- continue;
- }
- if (start_pa < entry->start_pa) {
- chunk_sz = end_pa <= entry->start_pa ? size
- : entry->start_pa - start_pa;
- hax_insert_mapping_before(entry, start_pa, chunk_sz,
- host_va, flags);
- start_pa += chunk_sz;
- host_va += chunk_sz;
- size -= chunk_sz;
- } else if (start_pa > entry->start_pa) {
- /* split the existing chunk at start_pa */
- chunk_sz = start_pa - entry->start_pa;
- hax_insert_mapping_before(entry, entry->start_pa, chunk_sz,
- entry->host_va, entry->flags);
- entry->start_pa += chunk_sz;
- entry->host_va += chunk_sz;
- entry->size -= chunk_sz;
- }
- /* now start_pa == entry->start_pa */
- chunk_sz = MIN(size, entry->size);
- if (chunk_sz) {
- bool nop = hax_mapping_is_opposite(entry, host_va, flags);
- bool partial = chunk_sz < entry->size;
- if (partial) {
- /* remove the beginning of the existing chunk */
- entry->start_pa += chunk_sz;
- entry->host_va += chunk_sz;
- entry->size -= chunk_sz;
- if (!nop) {
- hax_insert_mapping_before(entry, start_pa, chunk_sz,
- host_va, flags);
- }
- } else { /* affects the full mapping entry */
- if (nop) { /* no change to this mapping, remove it */
- QTAILQ_REMOVE(&mappings, entry, entry);
- g_free(entry);
- } else { /* update mapping properties */
- entry->host_va = host_va;
- entry->flags = flags;
- }
- }
- start_pa += chunk_sz;
- host_va += chunk_sz;
- size -= chunk_sz;
- }
- if (!size) { /* we are done */
- break;
- }
- }
- if (size) { /* add the leftover */
- hax_insert_mapping_before(NULL, start_pa, size, host_va, flags);
- }
-}
-
-static void hax_process_section(MemoryRegionSection *section, uint8_t flags)
-{
- MemoryRegion *mr = section->mr;
- hwaddr start_pa = section->offset_within_address_space;
- ram_addr_t size = int128_get64(section->size);
- unsigned int delta;
- uint64_t host_va;
- uint32_t max_mapping_size;
-
- /* We only care about RAM and ROM regions */
- if (!memory_region_is_ram(mr)) {
- if (memory_region_is_romd(mr)) {
- /* HAXM kernel module does not support ROMD yet */
- warn_report("Ignoring ROMD region 0x%016" PRIx64 "->0x%016" PRIx64,
- start_pa, start_pa + size);
- }
- return;
- }
-
- /* Adjust start_pa and size so that they are page-aligned. (Cf
- * kvm_set_phys_mem() in kvm-all.c).
- */
- delta = qemu_real_host_page_size() - (start_pa & ~qemu_real_host_page_mask());
- delta &= ~qemu_real_host_page_mask();
- if (delta > size) {
- return;
- }
- start_pa += delta;
- size -= delta;
- size &= qemu_real_host_page_mask();
- if (!size || (start_pa & ~qemu_real_host_page_mask())) {
- return;
- }
-
- host_va = (uintptr_t)memory_region_get_ram_ptr(mr)
- + section->offset_within_region + delta;
- if (memory_region_is_rom(section->mr)) {
- flags |= HAX_RAM_INFO_ROM;
- }
-
- /*
- * The kernel module interface uses 32-bit sizes:
- * https://github.com/intel/haxm/blob/master/API.md#hax_vm_ioctl_set_ram
- *
- * If the mapping size is longer than 32 bits, we can't process it in one
- * call into the kernel. Instead, we split the mapping into smaller ones,
- * and call hax_update_mapping() on each.
- */
- max_mapping_size = UINT32_MAX & qemu_real_host_page_mask();
- while (size > max_mapping_size) {
- hax_update_mapping(start_pa, max_mapping_size, host_va, flags);
- start_pa += max_mapping_size;
- size -= max_mapping_size;
- host_va += max_mapping_size;
- }
- /* Now size <= max_mapping_size */
- hax_update_mapping(start_pa, (uint32_t)size, host_va, flags);
-}
-
-static void hax_region_add(MemoryListener *listener,
- MemoryRegionSection *section)
-{
- memory_region_ref(section->mr);
- hax_process_section(section, 0);
-}
-
-static void hax_region_del(MemoryListener *listener,
- MemoryRegionSection *section)
-{
- hax_process_section(section, HAX_RAM_INFO_INVALID);
- memory_region_unref(section->mr);
-}
-
-static void hax_transaction_begin(MemoryListener *listener)
-{
- g_assert(QTAILQ_EMPTY(&mappings));
-}
-
-static void hax_transaction_commit(MemoryListener *listener)
-{
- if (!QTAILQ_EMPTY(&mappings)) {
- HAXMapping *entry, *next;
-
- if (DEBUG_HAX_MEM) {
- hax_mapping_dump_list();
- }
- QTAILQ_FOREACH_SAFE(entry, &mappings, entry, next) {
- if (entry->flags & HAX_RAM_INFO_INVALID) {
- /* for unmapping, put the values expected by the kernel */
- entry->flags = HAX_RAM_INFO_INVALID;
- entry->host_va = 0;
- }
- if (hax_set_ram(entry->start_pa, entry->size,
- entry->host_va, entry->flags)) {
- fprintf(stderr, "%s: Failed mapping @0x%016" PRIx64 "+0x%"
- PRIx32 " flags %02x\n", __func__, entry->start_pa,
- entry->size, entry->flags);
- }
- QTAILQ_REMOVE(&mappings, entry, entry);
- g_free(entry);
- }
- }
-}
-
-/* currently we fake the dirty bitmap sync, always dirty */
-static void hax_log_sync(MemoryListener *listener,
- MemoryRegionSection *section)
-{
- MemoryRegion *mr = section->mr;
-
- if (!memory_region_is_ram(mr)) {
- /* Skip MMIO regions */
- return;
- }
-
- memory_region_set_dirty(mr, 0, int128_get64(section->size));
-}
-
-static MemoryListener hax_memory_listener = {
- .name = "hax",
- .begin = hax_transaction_begin,
- .commit = hax_transaction_commit,
- .region_add = hax_region_add,
- .region_del = hax_region_del,
- .log_sync = hax_log_sync,
- .priority = 10,
-};
-
-static void hax_ram_block_added(RAMBlockNotifier *n, void *host, size_t size,
- size_t max_size)
-{
- /*
- * We must register each RAM block with the HAXM kernel module, or
- * hax_set_ram() will fail for any mapping into the RAM block:
- * https://github.com/intel/haxm/blob/master/API.md#hax_vm_ioctl_alloc_ram
- *
- * Old versions of the HAXM kernel module (< 6.2.0) used to preallocate all
- * host physical pages for the RAM block as part of this registration
- * process, hence the name hax_populate_ram().
- */
- if (hax_populate_ram((uint64_t)(uintptr_t)host, max_size) < 0) {
- fprintf(stderr, "HAX failed to populate RAM\n");
- abort();
- }
-}
-
-static struct RAMBlockNotifier hax_ram_notifier = {
- .ram_block_added = hax_ram_block_added,
-};
-
-void hax_memory_init(void)
-{
- ram_block_notifier_add(&hax_ram_notifier);
- memory_listener_register(&hax_memory_listener, &address_space_memory);
-}
diff --git a/target/i386/hax/hax-posix.c b/target/i386/hax/hax-posix.c
deleted file mode 100644
index a057a5bd94..0000000000
--- a/target/i386/hax/hax-posix.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * QEMU HAXM support
- *
- * Copyright (c) 2011 Intel Corporation
- * Written by:
- * Jiang Yunhong<yunhong.jiang(a)intel.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- *
- */
-
-/* HAX module interface - darwin version */
-#include "qemu/osdep.h"
-#include <sys/ioctl.h>
-
-#include "sysemu/cpus.h"
-#include "hax-accel-ops.h"
-
-hax_fd hax_mod_open(void)
-{
- int fd = open("/dev/HAX", O_RDWR);
- if (fd == -1) {
- fprintf(stderr, "Failed to open the hax module\n");
- }
-
- qemu_set_cloexec(fd);
-
- return fd;
-}
-
-int hax_populate_ram(uint64_t va, uint64_t size)
-{
- int ret;
-
- if (!hax_global.vm || !hax_global.vm->fd) {
- fprintf(stderr, "Allocate memory before vm create?\n");
- return -EINVAL;
- }
-
- if (hax_global.supports_64bit_ramblock) {
- struct hax_ramblock_info ramblock = {
- .start_va = va,
- .size = size,
- .reserved = 0
- };
-
- ret = ioctl(hax_global.vm->fd, HAX_VM_IOCTL_ADD_RAMBLOCK, &ramblock);
- } else {
- struct hax_alloc_ram_info info = {
- .size = (uint32_t)size,
- .pad = 0,
- .va = va
- };
-
- ret = ioctl(hax_global.vm->fd, HAX_VM_IOCTL_ALLOC_RAM, &info);
- }
- if (ret < 0) {
- fprintf(stderr, "Failed to register RAM block: ret=%d, va=0x%" PRIx64
- ", size=0x%" PRIx64 ", method=%s\n", ret, va, size,
- hax_global.supports_64bit_ramblock ? "new" : "legacy");
- return ret;
- }
- return 0;
-}
-
-int hax_set_ram(uint64_t start_pa, uint32_t size, uint64_t host_va, int flags)
-{
- struct hax_set_ram_info info;
- int ret;
-
- info.pa_start = start_pa;
- info.size = size;
- info.va = host_va;
- info.flags = (uint8_t) flags;
-
- ret = ioctl(hax_global.vm->fd, HAX_VM_IOCTL_SET_RAM, &info);
- if (ret < 0) {
- return -errno;
- }
- return 0;
-}
-
-int hax_capability(struct hax_state *hax, struct hax_capabilityinfo *cap)
-{
- int ret;
-
- ret = ioctl(hax->fd, HAX_IOCTL_CAPABILITY, cap);
- if (ret == -1) {
- fprintf(stderr, "Failed to get HAX capability\n");
- return -errno;
- }
-
- return 0;
-}
-
-int hax_mod_version(struct hax_state *hax, struct hax_module_version *version)
-{
- int ret;
-
- ret = ioctl(hax->fd, HAX_IOCTL_VERSION, version);
- if (ret == -1) {
- fprintf(stderr, "Failed to get HAX version\n");
- return -errno;
- }
-
- return 0;
-}
-
-static char *hax_vm_devfs_string(int vm_id)
-{
- return g_strdup_printf("/dev/hax_vm/vm%02d", vm_id);
-}
-
-static char *hax_vcpu_devfs_string(int vm_id, int vcpu_id)
-{
- return g_strdup_printf("/dev/hax_vm%02d/vcpu%02d", vm_id, vcpu_id);
-}
-
-int hax_host_create_vm(struct hax_state *hax, int *vmid)
-{
- int ret;
- int vm_id = 0;
-
- if (hax_invalid_fd(hax->fd)) {
- return -EINVAL;
- }
-
- if (hax->vm) {
- return 0;
- }
-
- ret = ioctl(hax->fd, HAX_IOCTL_CREATE_VM, &vm_id);
- *vmid = vm_id;
- return ret;
-}
-
-hax_fd hax_host_open_vm(struct hax_state *hax, int vm_id)
-{
- hax_fd fd;
- char *vm_name = NULL;
-
- vm_name = hax_vm_devfs_string(vm_id);
- if (!vm_name) {
- return -1;
- }
-
- fd = open(vm_name, O_RDWR);
- g_free(vm_name);
-
- qemu_set_cloexec(fd);
-
- return fd;
-}
-
-int hax_notify_qemu_version(hax_fd vm_fd, struct hax_qemu_version *qversion)
-{
- int ret;
-
- if (hax_invalid_fd(vm_fd)) {
- return -EINVAL;
- }
-
- ret = ioctl(vm_fd, HAX_VM_IOCTL_NOTIFY_QEMU_VERSION, qversion);
-
- if (ret < 0) {
- fprintf(stderr, "Failed to notify qemu API version\n");
- return ret;
- }
- return 0;
-}
-
-/* Simply assume the size should be bigger than the hax_tunnel,
- * since the hax_tunnel can be extended later with compatibility considered
- */
-int hax_host_create_vcpu(hax_fd vm_fd, int vcpuid)
-{
- int ret;
-
- ret = ioctl(vm_fd, HAX_VM_IOCTL_VCPU_CREATE, &vcpuid);
- if (ret < 0) {
- fprintf(stderr, "Failed to create vcpu %x\n", vcpuid);
- }
-
- return ret;
-}
-
-hax_fd hax_host_open_vcpu(int vmid, int vcpuid)
-{
- char *devfs_path = NULL;
- hax_fd fd;
-
- devfs_path = hax_vcpu_devfs_string(vmid, vcpuid);
- if (!devfs_path) {
- fprintf(stderr, "Failed to get the devfs\n");
- return -EINVAL;
- }
-
- fd = open(devfs_path, O_RDWR);
- g_free(devfs_path);
- if (fd < 0) {
- fprintf(stderr, "Failed to open the vcpu devfs\n");
- }
- qemu_set_cloexec(fd);
- return fd;
-}
-
-int hax_host_setup_vcpu_channel(AccelCPUState *vcpu)
-{
- int ret;
- struct hax_tunnel_info info;
-
- ret = ioctl(vcpu->fd, HAX_VCPU_IOCTL_SETUP_TUNNEL, &info);
- if (ret) {
- fprintf(stderr, "Failed to setup the hax tunnel\n");
- return ret;
- }
-
- if (!valid_hax_tunnel_size(info.size)) {
- fprintf(stderr, "Invalid hax tunnel size %x\n", info.size);
- ret = -EINVAL;
- return ret;
- }
-
- vcpu->tunnel = (struct hax_tunnel *) (intptr_t) (info.va);
- vcpu->iobuf = (unsigned char *) (intptr_t) (info.io_va);
- return 0;
-}
-
-int hax_vcpu_run(AccelCPUState *vcpu)
-{
- return ioctl(vcpu->fd, HAX_VCPU_IOCTL_RUN, NULL);
-}
-
-int hax_sync_fpu(CPUArchState *env, struct fx_layout *fl, int set)
-{
- int ret, fd;
-
- fd = hax_vcpu_get_fd(env);
- if (fd <= 0) {
- return -1;
- }
-
- if (set) {
- ret = ioctl(fd, HAX_VCPU_IOCTL_SET_FPU, fl);
- } else {
- ret = ioctl(fd, HAX_VCPU_IOCTL_GET_FPU, fl);
- }
- return ret;
-}
-
-int hax_sync_msr(CPUArchState *env, struct hax_msr_data *msrs, int set)
-{
- int ret, fd;
-
- fd = hax_vcpu_get_fd(env);
- if (fd <= 0) {
- return -1;
- }
- if (set) {
- ret = ioctl(fd, HAX_VCPU_IOCTL_SET_MSRS, msrs);
- } else {
- ret = ioctl(fd, HAX_VCPU_IOCTL_GET_MSRS, msrs);
- }
- return ret;
-}
-
-int hax_sync_vcpu_state(CPUArchState *env, struct vcpu_state_t *state, int set)
-{
- int ret, fd;
-
- fd = hax_vcpu_get_fd(env);
- if (fd <= 0) {
- return -1;
- }
-
- if (set) {
- ret = ioctl(fd, HAX_VCPU_SET_REGS, state);
- } else {
- ret = ioctl(fd, HAX_VCPU_GET_REGS, state);
- }
- return ret;
-}
-
-int hax_inject_interrupt(CPUArchState *env, int vector)
-{
- int fd;
-
- fd = hax_vcpu_get_fd(env);
- if (fd <= 0) {
- return -1;
- }
-
- return ioctl(fd, HAX_VCPU_IOCTL_INTERRUPT, &vector);
-}
-
-void hax_kick_vcpu_thread(CPUState *cpu)
-{
- /*
- * FIXME: race condition with the exit_request check in
- * hax_vcpu_hax_exec
- */
- cpu->exit_request = 1;
- cpus_kick_thread(cpu);
-}
diff --git a/target/i386/hax/hax-windows.c b/target/i386/hax/hax-windows.c
deleted file mode 100644
index 4bf6cc08d2..0000000000
--- a/target/i386/hax/hax-windows.c
+++ /dev/null
@@ -1,485 +0,0 @@
-/*
- * QEMU HAXM support
- *
- * Copyright (c) 2011 Intel Corporation
- * Written by:
- * Jiang Yunhong<yunhong.jiang(a)intel.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- *
- */
-
-#include "qemu/osdep.h"
-#include "cpu.h"
-#include "hax-accel-ops.h"
-
-/*
- * return 0 when success, -1 when driver not loaded,
- * other negative value for other failure
- */
-static int hax_open_device(hax_fd *fd)
-{
- uint32_t errNum = 0;
- HANDLE hDevice;
-
- if (!fd) {
- return -2;
- }
-
- hDevice = CreateFile("\\\\.\\HAX",
- GENERIC_READ | GENERIC_WRITE,
- 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
-
- if (hDevice == INVALID_HANDLE_VALUE) {
- fprintf(stderr, "Failed to open the HAX device!\n");
- errNum = GetLastError();
- if (errNum == ERROR_FILE_NOT_FOUND) {
- return -1;
- }
- return -2;
- }
- *fd = hDevice;
- return 0;
-}
-
-/* hax_fd hax_mod_open */
- hax_fd hax_mod_open(void)
-{
- int ret;
- hax_fd fd = NULL;
-
- ret = hax_open_device(&fd);
- if (ret != 0) {
- fprintf(stderr, "Open HAX device failed\n");
- }
-
- return fd;
-}
-
-int hax_populate_ram(uint64_t va, uint64_t size)
-{
- int ret;
- HANDLE hDeviceVM;
- DWORD dSize = 0;
-
- if (!hax_global.vm || !hax_global.vm->fd) {
- fprintf(stderr, "Allocate memory before vm create?\n");
- return -EINVAL;
- }
-
- hDeviceVM = hax_global.vm->fd;
- if (hax_global.supports_64bit_ramblock) {
- struct hax_ramblock_info ramblock = {
- .start_va = va,
- .size = size,
- .reserved = 0
- };
-
- ret = DeviceIoControl(hDeviceVM,
- HAX_VM_IOCTL_ADD_RAMBLOCK,
- &ramblock, sizeof(ramblock), NULL, 0, &dSize,
- (LPOVERLAPPED) NULL);
- } else {
- struct hax_alloc_ram_info info = {
- .size = (uint32_t) size,
- .pad = 0,
- .va = va
- };
-
- ret = DeviceIoControl(hDeviceVM,
- HAX_VM_IOCTL_ALLOC_RAM,
- &info, sizeof(info), NULL, 0, &dSize,
- (LPOVERLAPPED) NULL);
- }
-
- if (!ret) {
- fprintf(stderr, "Failed to register RAM block: va=0x%" PRIx64
- ", size=0x%" PRIx64 ", method=%s\n", va, size,
- hax_global.supports_64bit_ramblock ? "new" : "legacy");
- return ret;
- }
-
- return 0;
-}
-
-int hax_set_ram(uint64_t start_pa, uint32_t size, uint64_t host_va, int flags)
-{
- struct hax_set_ram_info info;
- HANDLE hDeviceVM = hax_global.vm->fd;
- DWORD dSize = 0;
- int ret;
-
- info.pa_start = start_pa;
- info.size = size;
- info.va = host_va;
- info.flags = (uint8_t) flags;
-
- ret = DeviceIoControl(hDeviceVM, HAX_VM_IOCTL_SET_RAM,
- &info, sizeof(info), NULL, 0, &dSize,
- (LPOVERLAPPED) NULL);
-
- if (!ret) {
- return -EFAULT;
- } else {
- return 0;
- }
-}
-
-int hax_capability(struct hax_state *hax, struct hax_capabilityinfo *cap)
-{
- int ret;
- HANDLE hDevice = hax->fd; /* handle to hax module */
- DWORD dSize = 0;
- DWORD err = 0;
-
- if (hax_invalid_fd(hDevice)) {
- fprintf(stderr, "Invalid fd for hax device!\n");
- return -ENODEV;
- }
-
- ret = DeviceIoControl(hDevice, HAX_IOCTL_CAPABILITY, NULL, 0, cap,
- sizeof(*cap), &dSize, (LPOVERLAPPED) NULL);
-
- if (!ret) {
- err = GetLastError();
- if (err == ERROR_INSUFFICIENT_BUFFER || err == ERROR_MORE_DATA) {
- fprintf(stderr, "hax capability is too long to hold.\n");
- }
- fprintf(stderr, "Failed to get Hax capability:%luu\n", err);
- return -EFAULT;
- } else {
- return 0;
- }
-}
-
-int hax_mod_version(struct hax_state *hax, struct hax_module_version *version)
-{
- int ret;
- HANDLE hDevice = hax->fd; /* handle to hax module */
- DWORD dSize = 0;
- DWORD err = 0;
-
- if (hax_invalid_fd(hDevice)) {
- fprintf(stderr, "Invalid fd for hax device!\n");
- return -ENODEV;
- }
-
- ret = DeviceIoControl(hDevice,
- HAX_IOCTL_VERSION,
- NULL, 0,
- version, sizeof(*version), &dSize,
- (LPOVERLAPPED) NULL);
-
- if (!ret) {
- err = GetLastError();
- if (err == ERROR_INSUFFICIENT_BUFFER || err == ERROR_MORE_DATA) {
- fprintf(stderr, "hax module verion is too long to hold.\n");
- }
- fprintf(stderr, "Failed to get Hax module version:%lu\n", err);
- return -EFAULT;
- } else {
- return 0;
- }
-}
-
-static char *hax_vm_devfs_string(int vm_id)
-{
- return g_strdup_printf("\\\\.\\hax_vm%02d", vm_id);
-}
-
-static char *hax_vcpu_devfs_string(int vm_id, int vcpu_id)
-{
- return g_strdup_printf("\\\\.\\hax_vm%02d_vcpu%02d", vm_id, vcpu_id);
-}
-
-int hax_host_create_vm(struct hax_state *hax, int *vmid)
-{
- int ret;
- int vm_id = 0;
- DWORD dSize = 0;
-
- if (hax_invalid_fd(hax->fd)) {
- return -EINVAL;
- }
-
- if (hax->vm) {
- return 0;
- }
-
- ret = DeviceIoControl(hax->fd,
- HAX_IOCTL_CREATE_VM,
- NULL, 0, &vm_id, sizeof(vm_id), &dSize,
- (LPOVERLAPPED) NULL);
- if (!ret) {
- fprintf(stderr, "Failed to create VM. Error code: %lu\n",
- GetLastError());
- return -1;
- }
- *vmid = vm_id;
- return 0;
-}
-
-hax_fd hax_host_open_vm(struct hax_state *hax, int vm_id)
-{
- char *vm_name = NULL;
- hax_fd hDeviceVM;
-
- vm_name = hax_vm_devfs_string(vm_id);
- if (!vm_name) {
- fprintf(stderr, "Failed to open VM. VM name is null\n");
- return INVALID_HANDLE_VALUE;
- }
-
- hDeviceVM = CreateFile(vm_name,
- GENERIC_READ | GENERIC_WRITE,
- 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
- if (hDeviceVM == INVALID_HANDLE_VALUE) {
- fprintf(stderr, "Open the vm device error:%s, ec:%lu\n",
- vm_name, GetLastError());
- }
-
- g_free(vm_name);
- return hDeviceVM;
-}
-
-int hax_notify_qemu_version(hax_fd vm_fd, struct hax_qemu_version *qversion)
-{
- int ret;
- DWORD dSize = 0;
- if (hax_invalid_fd(vm_fd)) {
- return -EINVAL;
- }
- ret = DeviceIoControl(vm_fd,
- HAX_VM_IOCTL_NOTIFY_QEMU_VERSION,
- qversion, sizeof(struct hax_qemu_version),
- NULL, 0, &dSize, (LPOVERLAPPED) NULL);
- if (!ret) {
- fprintf(stderr, "Failed to notify qemu API version\n");
- return -1;
- }
- return 0;
-}
-
-int hax_host_create_vcpu(hax_fd vm_fd, int vcpuid)
-{
- int ret;
- DWORD dSize = 0;
-
- ret = DeviceIoControl(vm_fd,
- HAX_VM_IOCTL_VCPU_CREATE,
- &vcpuid, sizeof(vcpuid), NULL, 0, &dSize,
- (LPOVERLAPPED) NULL);
- if (!ret) {
- fprintf(stderr, "Failed to create vcpu %x\n", vcpuid);
- return -1;
- }
-
- return 0;
-}
-
-hax_fd hax_host_open_vcpu(int vmid, int vcpuid)
-{
- char *devfs_path = NULL;
- hax_fd hDeviceVCPU;
-
- devfs_path = hax_vcpu_devfs_string(vmid, vcpuid);
- if (!devfs_path) {
- fprintf(stderr, "Failed to get the devfs\n");
- return INVALID_HANDLE_VALUE;
- }
-
- hDeviceVCPU = CreateFile(devfs_path,
- GENERIC_READ | GENERIC_WRITE,
- 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,
- NULL);
-
- if (hDeviceVCPU == INVALID_HANDLE_VALUE) {
- fprintf(stderr, "Failed to open the vcpu devfs\n");
- }
- g_free(devfs_path);
- return hDeviceVCPU;
-}
-
-int hax_host_setup_vcpu_channel(AccelCPUState *vcpu)
-{
- hax_fd hDeviceVCPU = vcpu->fd;
- int ret;
- struct hax_tunnel_info info;
- DWORD dSize = 0;
-
- ret = DeviceIoControl(hDeviceVCPU,
- HAX_VCPU_IOCTL_SETUP_TUNNEL,
- NULL, 0, &info, sizeof(info), &dSize,
- (LPOVERLAPPED) NULL);
- if (!ret) {
- fprintf(stderr, "Failed to setup the hax tunnel\n");
- return -1;
- }
-
- if (!valid_hax_tunnel_size(info.size)) {
- fprintf(stderr, "Invalid hax tunnel size %x\n", info.size);
- ret = -EINVAL;
- return ret;
- }
- vcpu->tunnel = (struct hax_tunnel *) (intptr_t) (info.va);
- vcpu->iobuf = (unsigned char *) (intptr_t) (info.io_va);
- return 0;
-}
-
-int hax_vcpu_run(AccelCPUState *vcpu)
-{
- int ret;
- HANDLE hDeviceVCPU = vcpu->fd;
- DWORD dSize = 0;
-
- ret = DeviceIoControl(hDeviceVCPU,
- HAX_VCPU_IOCTL_RUN,
- NULL, 0, NULL, 0, &dSize, (LPOVERLAPPED) NULL);
- if (!ret) {
- return -EFAULT;
- } else {
- return 0;
- }
-}
-
-int hax_sync_fpu(CPUArchState *env, struct fx_layout *fl, int set)
-{
- int ret;
- hax_fd fd;
- HANDLE hDeviceVCPU;
- DWORD dSize = 0;
-
- fd = hax_vcpu_get_fd(env);
- if (hax_invalid_fd(fd)) {
- return -1;
- }
-
- hDeviceVCPU = fd;
-
- if (set) {
- ret = DeviceIoControl(hDeviceVCPU,
- HAX_VCPU_IOCTL_SET_FPU,
- fl, sizeof(*fl), NULL, 0, &dSize,
- (LPOVERLAPPED) NULL);
- } else {
- ret = DeviceIoControl(hDeviceVCPU,
- HAX_VCPU_IOCTL_GET_FPU,
- NULL, 0, fl, sizeof(*fl), &dSize,
- (LPOVERLAPPED) NULL);
- }
- if (!ret) {
- return -EFAULT;
- } else {
- return 0;
- }
-}
-
-int hax_sync_msr(CPUArchState *env, struct hax_msr_data *msrs, int set)
-{
- int ret;
- hax_fd fd;
- HANDLE hDeviceVCPU;
- DWORD dSize = 0;
-
- fd = hax_vcpu_get_fd(env);
- if (hax_invalid_fd(fd)) {
- return -1;
- }
- hDeviceVCPU = fd;
-
- if (set) {
- ret = DeviceIoControl(hDeviceVCPU,
- HAX_VCPU_IOCTL_SET_MSRS,
- msrs, sizeof(*msrs),
- msrs, sizeof(*msrs), &dSize, (LPOVERLAPPED) NULL);
- } else {
- ret = DeviceIoControl(hDeviceVCPU,
- HAX_VCPU_IOCTL_GET_MSRS,
- msrs, sizeof(*msrs),
- msrs, sizeof(*msrs), &dSize, (LPOVERLAPPED) NULL);
- }
- if (!ret) {
- return -EFAULT;
- } else {
- return 0;
- }
-}
-
-int hax_sync_vcpu_state(CPUArchState *env, struct vcpu_state_t *state, int set)
-{
- int ret;
- hax_fd fd;
- HANDLE hDeviceVCPU;
- DWORD dSize;
-
- fd = hax_vcpu_get_fd(env);
- if (hax_invalid_fd(fd)) {
- return -1;
- }
-
- hDeviceVCPU = fd;
-
- if (set) {
- ret = DeviceIoControl(hDeviceVCPU,
- HAX_VCPU_SET_REGS,
- state, sizeof(*state),
- NULL, 0, &dSize, (LPOVERLAPPED) NULL);
- } else {
- ret = DeviceIoControl(hDeviceVCPU,
- HAX_VCPU_GET_REGS,
- NULL, 0,
- state, sizeof(*state), &dSize,
- (LPOVERLAPPED) NULL);
- }
- if (!ret) {
- return -EFAULT;
- } else {
- return 0;
- }
-}
-
-int hax_inject_interrupt(CPUArchState *env, int vector)
-{
- int ret;
- hax_fd fd;
- HANDLE hDeviceVCPU;
- DWORD dSize;
-
- fd = hax_vcpu_get_fd(env);
- if (hax_invalid_fd(fd)) {
- return -1;
- }
-
- hDeviceVCPU = fd;
-
- ret = DeviceIoControl(hDeviceVCPU,
- HAX_VCPU_IOCTL_INTERRUPT,
- &vector, sizeof(vector), NULL, 0, &dSize,
- (LPOVERLAPPED) NULL);
- if (!ret) {
- return -EFAULT;
- } else {
- return 0;
- }
-}
-
-static void CALLBACK dummy_apc_func(ULONG_PTR unused)
-{
-}
-
-void hax_kick_vcpu_thread(CPUState *cpu)
-{
- /*
- * FIXME: race condition with the exit_request check in
- * hax_vcpu_hax_exec
- */
- cpu->exit_request = 1;
- if (!qemu_cpu_is_self(cpu)) {
- if (!QueueUserAPC(dummy_apc_func, cpu->accel->hThread, 0)) {
- fprintf(stderr, "%s: QueueUserAPC failed with error %lu\n",
- __func__, GetLastError());
- exit(1);
- }
- }
-}
diff --git a/accel/stubs/meson.build b/accel/stubs/meson.build
index f7a9486e06..6b0f200efe 100644
--- a/accel/stubs/meson.build
+++ b/accel/stubs/meson.build
@@ -1,5 +1,4 @@
sysemu_stubs_ss = ss.source_set()
-sysemu_stubs_ss.add(when: 'CONFIG_HAX', if_false: files('hax-stub.c'))
sysemu_stubs_ss.add(when: 'CONFIG_XEN', if_false: files('xen-stub.c'))
sysemu_stubs_ss.add(when: 'CONFIG_KVM', if_false: files('kvm-stub.c'))
sysemu_stubs_ss.add(when: 'CONFIG_TCG', if_false: files('tcg-stub.c'))
diff --git a/meson_options.txt b/meson_options.txt
index 90237389e2..8139ef1534 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -69,8 +69,6 @@ option('malloc', type : 'combo', choices : ['system', 'tcmalloc', 'jemalloc'],
option('kvm', type: 'feature', value: 'auto',
description: 'KVM acceleration support')
-option('hax', type: 'feature', value: 'auto',
- description: 'HAX acceleration support')
option('whpx', type: 'feature', value: 'auto',
description: 'WHPX acceleration support')
option('hvf', type: 'feature', value: 'auto',
diff --git a/qemu-options.hx b/qemu-options.hx
index b57489d7ca..f8fd147e42 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -26,7 +26,7 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
"-machine [type=]name[,prop[=value][,...]]\n"
" selects emulated machine ('-machine help' for list)\n"
" property accel=accel1[:accel2[:...]] selects accelerator\n"
- " supported accelerators are kvm, xen, hax, hvf, nvmm, whpx or tcg (default: tcg)\n"
+ " supported accelerators are kvm, xen, hvf, nvmm, whpx or tcg (default: tcg)\n"
" vmport=on|off|auto controls emulation of vmport (default: auto)\n"
" dump-guest-core=on|off include guest memory in a core dump (default=on)\n"
" mem-merge=on|off controls memory merge support (default: on)\n"
@@ -59,7 +59,7 @@ SRST
``accel=accels1[:accels2[:...]]``
This is used to enable an accelerator. Depending on the target
- architecture, kvm, xen, hax, hvf, nvmm, whpx or tcg can be available.
+ architecture, kvm, xen, hvf, nvmm, whpx or tcg can be available.
By default, tcg is used. If there is more than one accelerator
specified, the next one is used if the previous one fails to
initialize.
@@ -178,7 +178,7 @@ ERST
DEF("accel", HAS_ARG, QEMU_OPTION_accel,
"-accel [accel=]accelerator[,prop[=value][,...]]\n"
- " select accelerator (kvm, xen, hax, hvf, nvmm, whpx or tcg; use 'help' for a list)\n"
+ " select accelerator (kvm, xen, hvf, nvmm, whpx or tcg; use 'help' for a list)\n"
" igd-passthru=on|off (enable Xen integrated Intel graphics passthrough, default=off)\n"
" kernel-irqchip=on|off|split controls accelerated irqchip support (default=on)\n"
" kvm-shadow-mem=size of KVM shadow MMU in bytes\n"
@@ -191,7 +191,7 @@ DEF("accel", HAS_ARG, QEMU_OPTION_accel,
SRST
``-accel name[,prop=value[,...]]``
This is used to enable an accelerator. Depending on the target
- architecture, kvm, xen, hax, hvf, nvmm, whpx or tcg can be available. By
+ architecture, kvm, xen, hvf, nvmm, whpx or tcg can be available. By
default, tcg is used. If there is more than one accelerator
specified, the next one is used if the previous one fails to
initialize.
diff --git a/scripts/ci/org.centos/stream/8/x86_64/configure b/scripts/ci/org.centos/stream/8/x86_64/configure
index d02b09a4b9..131f8ee5f3 100755
--- a/scripts/ci/org.centos/stream/8/x86_64/configure
+++ b/scripts/ci/org.centos/stream/8/x86_64/configure
@@ -68,7 +68,6 @@
--disable-gtk \
--disable-guest-agent \
--disable-guest-agent-msi \
---disable-hax \
--disable-hvf \
--disable-iconv \
--disable-kvm \
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index 5714fd93d9..449d05928f 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -111,7 +111,6 @@ meson_options_help() {
printf "%s\n" ' gtk-clipboard clipboard support for the gtk UI (EXPERIMENTAL, MAY HANG)'
printf "%s\n" ' guest-agent Build QEMU Guest Agent'
printf "%s\n" ' guest-agent-msi Build MSI package for the QEMU Guest Agent'
- printf "%s\n" ' hax HAX acceleration support'
printf "%s\n" ' hvf HVF acceleration support'
printf "%s\n" ' iconv Font glyph conversion support'
printf "%s\n" ' jack JACK sound support'
@@ -313,8 +312,6 @@ _meson_option_parse() {
--disable-guest-agent) printf "%s" -Dguest_agent=disabled ;;
--enable-guest-agent-msi) printf "%s" -Dguest_agent_msi=enabled ;;
--disable-guest-agent-msi) printf "%s" -Dguest_agent_msi=disabled ;;
- --enable-hax) printf "%s" -Dhax=enabled ;;
- --disable-hax) printf "%s" -Dhax=disabled ;;
--enable-hexagon-idef-parser) printf "%s" -Dhexagon_idef_parser=true ;;
--disable-hexagon-idef-parser) printf "%s" -Dhexagon_idef_parser=false ;;
--enable-hvf) printf "%s" -Dhvf=enabled ;;
diff --git a/target/i386/hax/meson.build b/target/i386/hax/meson.build
deleted file mode 100644
index 6ac314aa35..0000000000
--- a/target/i386/hax/meson.build
+++ /dev/null
@@ -1,7 +0,0 @@
-i386_system_ss.add(when: 'CONFIG_HAX', if_true: files(
- 'hax-all.c',
- 'hax-mem.c',
- 'hax-accel-ops.c',
-))
-i386_system_ss.add(when: ['CONFIG_HAX', 'CONFIG_POSIX'], if_true: files('hax-posix.c'))
-i386_system_ss.add(when: ['CONFIG_HAX', 'CONFIG_WIN32'], if_true: files('hax-windows.c'))
diff --git a/target/i386/meson.build b/target/i386/meson.build
index 1effe1ed9a..6f1036d469 100644
--- a/target/i386/meson.build
+++ b/target/i386/meson.build
@@ -25,7 +25,6 @@ i386_system_ss.add(when: 'CONFIG_SEV', if_true: files('sev.c'), if_false: files(
i386_user_ss = ss.source_set()
subdir('kvm')
-subdir('hax')
subdir('whpx')
subdir('nvmm')
subdir('hvf')
--
2.38.1
1 year, 3 months
[RFC] Adding timestamp to guest's serial console log
by Shaleen Bathla
Hi,
Need some comments regarding the following feature :
Addition of timestamp support for serial console logs of a guest.
We can implement it as a configurable attribute in xml.
For example :
<serial type='pty'>
<log file='$PATH/$GUESTNAME-serial0.log' append='on' timestamp="on/off"/>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
We can add a timestamp after every '\n' character received from qemu.
Can I have some comments regarding this change like what I should keep
in mind while implementing, whether it is a welcome addition or not,
issues I might face, any qemu changes required.
Thanks and Regards,
Shaleen Bathla
1 year, 3 months
[libvirt PATCH 00/20] ci: Move GitLab build recipes to a standalone script
by Erik Skultety
This is a follow up to:
https://listman.redhat.com/archives/libvir-list/2023-January/237201.html
The effort here is to unify the way builds/tests are executed in GitLab CI vs
local container executions and make another step forward in terms of
reproducibility of (specifically) GitLab environments.
Even though code to run all but one (coverity) jobs from GitLab via the
build.sh script is added with this series, local behavior remains the same as
before this series. The reason for that is that that will require more patches
ridding of the Makefile which is currently used and instead integrate usage of
lcitool with the ci/helper Python script which is currently the entry point for
local container executions.
Pipeline: https://gitlab.com/eskultety/libvirt/-/pipelines/768645158
Ubuntu is having some repo connection issues today, so the one failed ^job
can be ignored
Erik Skultety (20):
gitlab-ci.yml: Replace all explicit calls to ninja with meson commands
gitlab-ci.yml: potfile: Consolidate the meson compile calls
gitlab-ci.yml: Use $HOME for rpmbuild's topdir instead of PWD
ci: build.sh: Drop the commentary about CI_BUILD_SCRIPT
ci: build.sh: Use 'meson setup' explicitly
ci: build.sh: Always assume -Dsystem=true
ci: build.sh: Drop the CI prefix from the CI_{MESON,NINJA}_ARGS vars
ci: build.sh: Move off of ninja command to directly calling meson
ci: build.sh: Join MESON_ARGS and MESON_OPTS
ci: build.sh: Break the script functionality into helper functions
ci: build.sh: Move the necessary env variables to build.sh
ci: build.sh: Add support for individual GitLab jobs
ci: build.sh: Wire up the individual job functions to the CLI
ci: build.sh: Document CI_CONT_SRCDIR
ci: build.sh: Make the build script fail ASAP with 'set -e'
ci: build.sh: Update git index in local container environments on
'dist'
ci: build.sh: Make the script executable
gitlab-ci.yml: Add 'after_script' stage to prep for artifact
collection
gitlab-ci.yml: Adopt job execution via a Bash script
gitlab-ci.yml: Drop the usage of script variables reference
.gitlab-ci.yml | 56 ++++++++++-------------
ci/Makefile | 16 ++++---
ci/build.sh | 121 +++++++++++++++++++++++++++++++++++++++++++------
ci/helper | 21 ++++++---
4 files changed, 155 insertions(+), 59 deletions(-)
mode change 100644 => 100755 ci/build.sh
--
2.39.1
1 year, 3 months
[libvirt PATCH v2 00/24] introduce external snapshot revert support
by Pavel Hrdina
This implements virDomainRevertToSnapshot to work with external
snapshots. In addition it modifies virDomainSnapshotDelete to work
correctly when we revert to non-leaf snapshot or when there is
non-linear snapshot tree with multiple branches.
Gitlab repo with the patches:
https://gitlab.com/phrdina/libvirt/-/tree/snapshot-revert-external
Pavel Hrdina (24):
libvirt_private: list virDomainMomentDefPostParse
snapshot_conf: export virDomainSnapshotDiskDefClear
snapshot_conf: use alternate domain definition in
virDomainSnapshotDefAssignExternalNames
snapshot_conf: introduce <revertDisks> metadata element
snapshot_conf: add new argument to virDomainSnapshotAlignDisks
qemu_snapshot: introduce qemuSnapshotDomainDefUpdateDisk
qemu_snapshot: use virDomainDiskByName while updating domain def
qemu_snapshot: introduce qemuSnapshotCreateQcow2Files
qemu_snapshot: allow using alternate domain definition when creating
qcow2 files
qemu_snapshot: move external disk prepare to single function
qemu_snapshot: use VIR_ASYNC_JOB_SNAPSHOT when reverting snapshot
qemu_snapshot: introduce external snapshot revert support
qemu_snapshot: rename qemuSnapshotDeleteExternalPrepare
qemu_snapshot: extract external snapshot delete prepare to function
qemu_snapshot: add merge to external snapshot delete prepare data
qemu_snapshot: prepare data for non-active leaf external snapshot
deletion
qemu_snapshot: add support to delete external snapshot without block
commit
qemu_snapshot: delete: properly update parent snapshot with revert
data
qemu_snapshot: remove revertdisks when creating new snapshot
virdomainmomentobjlist: introduce virDomainMomentIsAncestor
qemu_snapshot: update backing store after deleting external snapshot
qemu_snapshot: check only once if snapshot is external
qemu_snapshot: add checks for external snapshot deletion
qemu_snapshot: allow snapshot revert for external snapshots
src/conf/schemas/domainsnapshot.rng | 7 +
src/conf/snapshot_conf.c | 52 +-
src/conf/snapshot_conf.h | 11 +-
src/conf/virdomainmomentobjlist.c | 17 +
src/conf/virdomainmomentobjlist.h | 4 +
src/libvirt_private.syms | 6 +
src/qemu/qemu_snapshot.c | 874 ++++++++++++++++++++++------
src/test/test_driver.c | 2 +-
8 files changed, 780 insertions(+), 193 deletions(-)
--
2.41.0
1 year, 3 months
[PATCH RFC 0/3] Reflect MAC change in live domain XML
by Michal Privoznik
These are RFC patches. I'd like to start a discussion on the following
problem:
A mgmt application has info tied to an <interface/> (stored elsewhere,
not important right now). And they use basically the only piece of
information that's visible in both host and guest: MAC address. No, user
aliases are not visible in the guest. Therefore, when they query the
guest-agent (e.g. via 'virsh domifaddr --source agent') they can
reconstruct their knowledge on NICs.
But there's a catch - if user decides to change MAC address form inside
of the VM. Then the only link between host and guest is broken.
Now, we could make the guest-agent report both current and permanent MAC
address. But unfortunately, libvirt's virDomainInterfaceAddresses() is
not prepared for that.
Now, I don't recall why we decided to not update MAC address in the live
XML on change, but maybe somebody else does. Or we can pass the event
from QEMU to the mgmt application so that it can update its state.
Michal Prívozník (3):
qemu: Reflect MAC address change in live domain XML
Introduce NIC_MAC_CHANGE event
qemu: Emit NIC_MAC_CHANGE event
examples/c/misc/event-test.c | 14 +++++
include/libvirt/libvirt-domain.h | 28 +++++++++
src/conf/domain_event.c | 93 +++++++++++++++++++++++++++++
src/conf/domain_event.h | 12 ++++
src/libvirt_private.syms | 2 +
src/qemu/qemu_domain.c | 34 ++++++++++-
src/qemu/qemu_domain.h | 3 +-
src/qemu/qemu_driver.c | 11 ++--
src/qemu/qemu_process.c | 2 +-
src/remote/remote_daemon_dispatch.c | 32 ++++++++++
src/remote/remote_driver.c | 34 +++++++++++
src/remote/remote_protocol.x | 17 +++++-
tools/virsh-domain-event.c | 20 +++++++
13 files changed, 294 insertions(+), 8 deletions(-)
--
2.39.3
1 year, 4 months
[libvirt PATCH 0/9] src: some improvements to systemd unit files
by Daniel P. Berrangé
These were suggested by Lennart in
https://gitlab.com/libvirt/libvirt/-/issues/489
Daniel P. Berrangé (9):
src: remove After=local-fs.target from systemd units
src: remote deps on ip[6]tables/firewalld.service from systemd units
util: remove pointless wrappers for setrlimit/getrlimit
util: add helper for raising the max files limit
rpc: automatically raise max file limit in all daemons
src: set max open file limit to match systemd >= 240 defaults
util: relax requirement for logind to be running
src: remove dep on systemd-logind.service from unit files
util: add logging about node suspend availability
src/ch/virtchd.service.in | 11 ++---
src/interface/virtinterfaced.service.in | 1 -
src/libvirt_private.syms | 1 +
src/libxl/virtxend.service.in | 1 -
src/locking/virtlockd.service.in | 8 ++--
src/logging/virtlogd.service.in | 11 ++---
src/lxc/virtlxcd.service.in | 11 ++---
src/network/virtnetworkd.service.in | 4 --
src/node_device/virtnodedevd.service.in | 1 -
src/nwfilter/virtnwfilterd.service.in | 1 -
src/qemu/virtqemud.service.in | 11 ++---
src/remote/libvirtd.service.in | 14 ++-----
src/remote/virtproxyd.service.in | 1 -
src/rpc/virnetdaemon.c | 3 ++
src/secret/virtsecretd.service.in | 1 -
src/storage/virtstoraged.service.in | 1 -
src/util/virnodesuspend.c | 3 ++
src/util/virprocess.c | 56 ++++++++++++++++---------
src/util/virprocess.h | 1 +
src/util/virstring.c | 6 +++
src/util/virsystemd.c | 12 ++++++
src/vbox/virtvboxd.service.in | 1 -
src/vz/virtvzd.service.in | 1 -
tests/virshtest.c | 1 +
tools/virsh.c | 2 +-
25 files changed, 88 insertions(+), 76 deletions(-)
--
2.40.1
1 year, 4 months
[libvirt PATCH v2] run: add ability to set selinux context
by Jonathon Jongsma
When running libvirt from the build directory with the 'run' script, it
will run as unconfined_t. This can result in unexpected behavior when
selinux is enforcing due to the fact that the selinux policies are
written assuming that libvirt is running with the
system_u:system_r:virtd_t context. This patch adds a new --selinux
option to the run script. When this option is specified, it will launch
the specified binary using the 'runcon' utility to set its selinux
context to the one mentioned above. Since this may require root
privileges, setting the selinux context is not the default behavior and
must be enabled with the command line switch.
Note that this uses argparse to parse the new option, but it does so in
a very limited way in order to avoid interfering with any arguments that
the user might want to pass on to libvirt. For example, we do not
provide a `--help` option for the run script.
Signed-off-by: Jonathon Jongsma <jjongsma(a)redhat.com>
---
I sent a version of this a couple months ago and Erik made a few
comments and then I kind of forgot about it for a little while.
Re-sending now with a couple minor changes
changes in v2:
- rebased to master
- fixed to properly restore context of binary after execution if the
systemd unit file is not currently running.
- disabled abbreviated versions of options
run.in | 100 +++++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 80 insertions(+), 20 deletions(-)
diff --git a/run.in b/run.in
index c6d3411082..869f074d71 100644
--- a/run.in
+++ b/run.in
@@ -40,9 +40,11 @@
#
# ----------------------------------------------------------------------
+import argparse
import os
import os.path
import random
+import shutil
import signal
import sys
import subprocess
@@ -59,15 +61,20 @@ def prepend(env, varname, extradir):
here = "@abs_builddir@"
-if len(sys.argv) < 2:
- print("syntax: %s BINARY [ARGS...]" % sys.argv[0], file=sys.stderr)
+parser = argparse.ArgumentParser(add_help=False, allow_abbrev=False)
+parser.add_argument('--selinux',
+ action='store_true',
+ help='Run in the appropriate selinux context')
+
+opts, args = parser.parse_known_args()
+
+if len(args) < 1:
+ print("syntax: %s [--selinux] BINARY [ARGS...]" % sys.argv[0], file=sys.stderr)
sys.exit(1)
-prog = sys.argv[1]
-args = sys.argv[1:]
+prog = args[0]
env = os.environ
-
prepend(env, "LD_LIBRARY_PATH", os.path.join(here, "src"))
prepend(env, "PKG_CONFIG_PATH", os.path.join(here, "src"))
prepend(env, "PATH", os.path.join(here, "tools"))
@@ -130,10 +137,25 @@ def change_unit(name, action):
return ret == 0
+def chcon(path, user, role, type):
+ print("Setting file context of {} to u={}, r={}, t={}...".format(progpath,
+ user,
+ role,
+ type))
+ ret = subprocess.call(["chcon", "-u", user, "-r", role, "-t", type, path])
+ return ret == 0
+
+
+def restorecon(path):
+ print("Restoring selinux context for {}...".format(path))
+ ret = subprocess.call(["restorecon", path])
+ return ret == 0
+
+
try_stop_units = []
if is_systemd_host():
maybe_stopped_units = []
- for arg in sys.argv:
+ for arg in args:
name = os.path.basename(arg)
if is_modular_daemon(name):
# Only need to stop libvirtd or this specific modular unit
@@ -149,11 +171,10 @@ if is_systemd_host():
if is_unit_active(unit):
try_stop_units.append(unit)
-if len(try_stop_units) == 0:
+if len(try_stop_units) == 0 and not opts.selinux:
# Run the program directly, replacing ourselves
os.execvpe(prog, args, env)
else:
- print("Temporarily stopping systemd units...")
stopped_units = []
def sighandler(signum, frame):
@@ -164,12 +185,48 @@ else:
signal.signal(signal.SIGQUIT, sighandler)
try:
- for unit in try_stop_units:
- print(" > %s" % unit)
- if not change_unit(unit, "stop"):
- raise Exception("Unable to stop '%s'" % unit)
-
- stopped_units.append(unit)
+ dorestorecon = False
+ progpath = shutil.which(prog)
+ if len(try_stop_units):
+ print("Temporarily stopping systemd units...")
+
+ for unit in try_stop_units:
+ print(" > %s" % unit)
+ if not change_unit(unit, "stop"):
+ raise Exception("Unable to stop '%s'" % unit)
+
+ stopped_units.append(unit)
+
+ if opts.selinux:
+ # if using a wrapper command like 'gdb', setting the selinux
+ # context won't work because the wrapper command will not be a
+ # valid entrypoint for the virtd_t context
+ if os.path.basename(prog) not in ["libvirtd", *modular_daemons]:
+ raise Exception("'{}' is not recognized as a valid daemon. "
+ "Selinux process context can only be set when "
+ "executing a daemon directly without wrapper "
+ "commands".format(prog))
+
+ if not progpath:
+ raise Exception("Can't find executable {} for selinux labeling"
+ .format(prog))
+
+ if not progpath.startswith(os.path.abspath(here)):
+ raise Exception("Refusing to change selinux context of file "
+ "'{}' outside build directory"
+ .format(progpath))
+
+ # selinux won't allow us to transition to the virtd_t context from
+ # e.g. the user_home_t context (the likely label of the local
+ # executable file)
+ if not chcon(progpath, "system_u", "object_r", "virtd_exec_t"):
+ raise Exception("Failed to change selinux context of binary")
+ dorestorecon = True
+
+ args = ['runcon',
+ '-u', 'system_u',
+ '-r', 'system_r',
+ '-t', 'virtd_t', *args]
print("Running '%s'..." % str(" ".join(args)))
ret = subprocess.call(args, env=env)
@@ -178,9 +235,12 @@ else:
except Exception as e:
print("%s" % e, file=sys.stderr)
finally:
- print("Re-starting original systemd units...")
- stopped_units.reverse()
- for unit in stopped_units:
- print(" > %s" % unit)
- if not change_unit(unit, "start"):
- print(" ! unable to restart %s" % unit, file=sys.stderr)
+ if len(stopped_units):
+ print("Re-starting original systemd units...")
+ stopped_units.reverse()
+ for unit in stopped_units:
+ print(" > %s" % unit)
+ if not change_unit(unit, "start"):
+ print(" ! unable to restart %s" % unit, file=sys.stderr)
+ if dorestorecon:
+ restorecon(progpath)
--
2.40.1
1 year, 4 months
[PATCH] qemu: Adapt to new way of specifying PC speaker
by Michal Privoznik
Historically, the way to set PC speaker for a guest was to pass:
-soundhw pcspk
but as of QEMU commit v5.1.0-rc0~28^2~3 this is deprecated and we
should use:
-machine pcspk-audiodev=$id
instead. The old way was then removed in commit v7.1.0-rc0~99^2~3.
Now, ideally we would have a capability selecting whether we talk
to a QEMU that understands the new way or not. But it's not that
simple - the machine attribute is just an alias to the .audiodev=
attribute of 'isa-pcspk' object and both are created in
pc_machine_initfn() function, i.e. not then the PC_MACHINE() class
is initialized, but when it's instantiated. IOW, it's not possible
for us to query whether we're dealing with older or newer QEMU.
But given that the newer version is supported since v5.1.0 and the
minimal version we require is v4.2.0 (i.e. there are two releases
which don't understand the newer cmd line) and how frequently this
feature is (un-)used (the issue was reported after ~1 year since it
stopped working), I believe we can live without any capability and
just use the newer cmd line unconditionally.
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/490
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_command.c | 57 ++++++++++++-------
.../sound-device.x86_64-4.2.0.args | 3 +-
.../sound-device.x86_64-latest.args | 3 +-
3 files changed, 38 insertions(+), 25 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index a19902988c..3b0b162b8b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4477,31 +4477,30 @@ qemuBuildSoundCommandLine(virCommand *cmd,
for (i = 0; i < def->nsounds; i++) {
virDomainSoundDef *sound = def->sounds[i];
- /* Sadly pcspk device doesn't use -device syntax. Fortunately
- * we don't need to set any PCI address on it, so we don't
- * mind too much */
- if (sound->model == VIR_DOMAIN_SOUND_MODEL_PCSPK) {
- virCommandAddArgList(cmd, "-soundhw", "pcspk", NULL);
- } else {
- if (qemuCommandAddExtDevice(cmd, &sound->info, def, qemuCaps) < 0)
- return -1;
+ /* Sadly pcspk device doesn't use -device syntax. And it
+ * was handled already in qemuBuildMachineCommandLine().
+ */
+ if (sound->model == VIR_DOMAIN_SOUND_MODEL_PCSPK)
+ continue;
- if (qemuBuildSoundDevCmd(cmd, def, sound, qemuCaps) < 0)
- return -1;
+ if (qemuCommandAddExtDevice(cmd, &sound->info, def, qemuCaps) < 0)
+ return -1;
- if (virDomainSoundModelSupportsCodecs(sound)) {
- for (j = 0; j < sound->ncodecs; j++) {
- if (qemuBuildSoundCodecCmd(cmd, def, sound, sound->codecs[j],
- qemuCaps) < 0)
- return -1;
- }
+ if (qemuBuildSoundDevCmd(cmd, def, sound, qemuCaps) < 0)
+ return -1;
- if (j == 0) {
- virDomainSoundCodecDef codec = { VIR_DOMAIN_SOUND_CODEC_TYPE_DUPLEX, 0 };
+ if (virDomainSoundModelSupportsCodecs(sound)) {
+ for (j = 0; j < sound->ncodecs; j++) {
+ if (qemuBuildSoundCodecCmd(cmd, def, sound, sound->codecs[j],
+ qemuCaps) < 0)
+ return -1;
+ }
- if (qemuBuildSoundCodecCmd(cmd, def, sound, &codec, qemuCaps) < 0)
- return -1;
- }
+ if (j == 0) {
+ virDomainSoundCodecDef codec = { VIR_DOMAIN_SOUND_CODEC_TYPE_DUPLEX, 0 };
+
+ if (qemuBuildSoundCodecCmd(cmd, def, sound, &codec, qemuCaps) < 0)
+ return -1;
}
}
}
@@ -7029,6 +7028,22 @@ qemuBuildMachineCommandLine(virCommand *cmd,
}
}
+ /* PC speaker is a bit different than the rest of sound cards
+ * which is handled in qemuBuildSoundCommandLine(). */
+ for (i = 0; i < def->nsounds; i++) {
+ const virDomainSoundDef *sound = def->sounds[i];
+ g_autofree char *audioid = NULL;
+
+ if (sound->model != VIR_DOMAIN_SOUND_MODEL_PCSPK)
+ continue;
+
+ if (!(audioid = qemuGetAudioIDString(def, sound->audioId)))
+ return -1;
+
+ virBufferAsprintf(&buf, ",pcspk-audiodev=%s", audioid);
+ break;
+ }
+
qemuBuildMachineACPI(&buf, def, qemuCaps);
virCommandAddArgBuffer(cmd, &buf);
diff --git a/tests/qemuxml2argvdata/sound-device.x86_64-4.2.0.args b/tests/qemuxml2argvdata/sound-device.x86_64-4.2.0.args
index b2a5afd8c8..1e3cc9eaa2 100644
--- a/tests/qemuxml2argvdata/sound-device.x86_64-4.2.0.args
+++ b/tests/qemuxml2argvdata/sound-device.x86_64-4.2.0.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-name guest=QEMUGuest1,debug-threads=on \
-S \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \
--machine pc-i440fx-4.2,usb=off,dump-guest-core=off \
+-machine pc-i440fx-4.2,usb=off,dump-guest-core=off,pcspk-audiodev=audio1 \
-accel tcg \
-cpu qemu64 \
-m 214 \
@@ -28,7 +28,6 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-boot strict=on \
-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
-audiodev '{"id":"audio1","driver":"none"}' \
--soundhw pcspk \
-device ES1370,id=sound1,audiodev=audio1,bus=pci.0,addr=0x2 \
-device sb16,id=sound2,audiodev=audio1 \
-device AC97,id=sound3,audiodev=audio1,bus=pci.0,addr=0x3 \
diff --git a/tests/qemuxml2argvdata/sound-device.x86_64-latest.args b/tests/qemuxml2argvdata/sound-device.x86_64-latest.args
index e0a2f21b31..7c90c1271c 100644
--- a/tests/qemuxml2argvdata/sound-device.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/sound-device.x86_64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-name guest=QEMUGuest1,debug-threads=on \
-S \
-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
--machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,pcspk-audiodev=audio1,acpi=off \
-accel tcg \
-cpu qemu64 \
-m 214 \
@@ -28,7 +28,6 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-boot strict=on \
-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
-audiodev '{"id":"audio1","driver":"none"}' \
--soundhw pcspk \
-device '{"driver":"ES1370","id":"sound1","audiodev":"audio1","bus":"pci.0","addr":"0x2"}' \
-device '{"driver":"sb16","id":"sound2","audiodev":"audio1"}' \
-device '{"driver":"AC97","id":"sound3","audiodev":"audio1","bus":"pci.0","addr":"0x3"}' \
--
2.39.3
1 year, 4 months
[PATCH] qemu: Retire QEMU_CAPS_USB_STORAGE_REMOVABLE
by Michal Privoznik
Introduced in QEMU commit of v0.14.0-rc0~83^2~1 and not being
able to compile the .removable attribute of the "usb-storage"
object out, renders our corresponding capability
QEMU_CAPS_USB_STORAGE_REMOVABLE useless. Retire it.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 9 +-
src/qemu/qemu_capabilities.h | 2 +-
src/qemu/qemu_command.c | 10 +-
src/qemu/qemu_validate.c | 8 -
.../caps_4.2.0_aarch64.replies | 195 ++++----------
.../caps_4.2.0_aarch64.xml | 1 -
.../caps_4.2.0_ppc64.replies | 179 +++---------
.../qemucapabilitiesdata/caps_4.2.0_ppc64.xml | 1 -
.../caps_4.2.0_x86_64.replies | 211 +++++----------
.../caps_4.2.0_x86_64.xml | 1 -
.../caps_5.0.0_aarch64.replies | 211 ++++-----------
.../caps_5.0.0_aarch64.xml | 1 -
.../caps_5.0.0_ppc64.replies | 203 ++++----------
.../qemucapabilitiesdata/caps_5.0.0_ppc64.xml | 1 -
.../caps_5.0.0_riscv64.replies | 191 +++----------
.../caps_5.0.0_riscv64.xml | 1 -
.../caps_5.0.0_x86_64.replies | 227 +++++-----------
.../caps_5.0.0_x86_64.xml | 1 -
.../caps_5.1.0_x86_64.replies | 231 +++++-----------
.../caps_5.1.0_x86_64.xml | 1 -
.../caps_5.2.0_aarch64.replies | 219 ++++-----------
.../caps_5.2.0_aarch64.xml | 1 -
.../caps_5.2.0_ppc64.replies | 207 ++++----------
.../qemucapabilitiesdata/caps_5.2.0_ppc64.xml | 1 -
.../caps_5.2.0_riscv64.replies | 195 +++-----------
.../caps_5.2.0_riscv64.xml | 1 -
.../caps_5.2.0_x86_64.replies | 235 +++++-----------
.../caps_5.2.0_x86_64.xml | 1 -
.../caps_6.0.0_aarch64.replies | 217 ++++-----------
.../caps_6.0.0_aarch64.xml | 1 -
.../caps_6.0.0_x86_64.replies | 233 +++++-----------
.../caps_6.0.0_x86_64.xml | 1 -
.../caps_6.1.0_x86_64.replies | 239 +++++-----------
.../caps_6.1.0_x86_64.xml | 1 -
.../caps_6.2.0_aarch64.replies | 223 ++++-----------
.../caps_6.2.0_aarch64.xml | 1 -
.../caps_6.2.0_ppc64.replies | 211 ++++-----------
.../qemucapabilitiesdata/caps_6.2.0_ppc64.xml | 1 -
.../caps_6.2.0_x86_64.replies | 243 +++++------------
.../caps_6.2.0_x86_64.xml | 1 -
.../caps_7.0.0_aarch64+hvf.replies | 227 ++++------------
.../caps_7.0.0_aarch64+hvf.xml | 1 -
.../caps_7.0.0_aarch64.replies | 227 ++++------------
.../caps_7.0.0_aarch64.xml | 1 -
.../caps_7.0.0_ppc64.replies | 211 ++++-----------
.../qemucapabilitiesdata/caps_7.0.0_ppc64.xml | 1 -
.../caps_7.0.0_x86_64.replies | 243 +++++------------
.../caps_7.0.0_x86_64.xml | 1 -
.../caps_7.1.0_ppc64.replies | 211 ++++-----------
.../qemucapabilitiesdata/caps_7.1.0_ppc64.xml | 1 -
.../caps_7.1.0_x86_64.replies | 243 +++++------------
.../caps_7.1.0_x86_64.xml | 1 -
.../caps_7.2.0_ppc.replies | 211 +++------------
tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml | 1 -
.../caps_7.2.0_x86_64+hvf.replies | 255 +++++-------------
.../caps_7.2.0_x86_64+hvf.xml | 1 -
.../caps_7.2.0_x86_64.replies | 255 +++++-------------
.../caps_7.2.0_x86_64.xml | 1 -
.../caps_8.0.0_riscv64.replies | 207 +++-----------
.../caps_8.0.0_riscv64.xml | 1 -
.../caps_8.0.0_x86_64.replies | 255 +++++-------------
.../caps_8.0.0_x86_64.xml | 1 -
.../caps_8.1.0_x86_64.replies | 255 +++++-------------
.../caps_8.1.0_x86_64.xml | 1 -
64 files changed, 1704 insertions(+), 5025 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 7dad7231ee..26adb38844 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -280,7 +280,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
"i440fx-pci-hole64-size", /* X_QEMU_CAPS_I440FX_PCI_HOLE64_SIZE */
"q35-pci-hole64-size", /* X_QEMU_CAPS_Q35_PCI_HOLE64_SIZE */
"usb-storage", /* QEMU_CAPS_DEVICE_USB_STORAGE */
- "usb-storage.removable", /* QEMU_CAPS_USB_STORAGE_REMOVABLE */
+ "usb-storage.removable", /* X_QEMU_CAPS_USB_STORAGE_REMOVABLE */
/* 155 */
"virtio-mmio", /* QEMU_CAPS_DEVICE_VIRTIO_MMIO */
@@ -1467,10 +1467,6 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsUSBRedir[] = {
{ "filter", QEMU_CAPS_USB_REDIR_FILTER, NULL },
};
-static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsUSBStorage[] = {
- { "removable", QEMU_CAPS_USB_STORAGE_REMOVABLE, NULL },
-};
-
static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsKVMPit[] = {
{ "lost_tick_policy", QEMU_CAPS_KVM_PIT_TICK_POLICY, NULL },
};
@@ -1618,9 +1614,6 @@ static virQEMUCapsDeviceTypeProps virQEMUCapsDeviceProps[] = {
{ "usb-redir", virQEMUCapsDevicePropsUSBRedir,
G_N_ELEMENTS(virQEMUCapsDevicePropsUSBRedir),
QEMU_CAPS_USB_REDIR },
- { "usb-storage", virQEMUCapsDevicePropsUSBStorage,
- G_N_ELEMENTS(virQEMUCapsDevicePropsUSBStorage),
- QEMU_CAPS_DEVICE_USB_STORAGE },
{ "kvm-pit", virQEMUCapsDevicePropsKVMPit,
G_N_ELEMENTS(virQEMUCapsDevicePropsKVMPit),
-1 },
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index ce545cb2cc..a90988405b 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -258,7 +258,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
X_QEMU_CAPS_I440FX_PCI_HOLE64_SIZE, /* i440FX-pcihost.pci-hole64-size */
X_QEMU_CAPS_Q35_PCI_HOLE64_SIZE, /* q35-pcihost.pci-hole64-size */
QEMU_CAPS_DEVICE_USB_STORAGE, /* -device usb-storage */
- QEMU_CAPS_USB_STORAGE_REMOVABLE, /* usb-storage.removable */
+ X_QEMU_CAPS_USB_STORAGE_REMOVABLE, /* usb-storage.removable */
/* 155 */
QEMU_CAPS_DEVICE_VIRTIO_MMIO, /* -device virtio-mmio */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index cde6ab4dde..550cb0aebf 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1840,12 +1840,10 @@ qemuBuildDiskDeviceProps(const virDomainDef *def,
case VIR_DOMAIN_DISK_BUS_USB:
driver = "usb-storage";
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_STORAGE_REMOVABLE)) {
- if (disk->removable == VIR_TRISTATE_SWITCH_ABSENT)
- removable = VIR_TRISTATE_SWITCH_OFF;
- else
- removable = disk->removable;
- }
+ if (disk->removable == VIR_TRISTATE_SWITCH_ABSENT)
+ removable = VIR_TRISTATE_SWITCH_OFF;
+ else
+ removable = disk->removable;
break;
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index a53729d349..e1939322ea 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -2997,14 +2997,6 @@ qemuValidateDomainDeviceDefDiskFrontend(const virDomainDiskDef *disk,
return -1;
}
- if (disk->removable != VIR_TRISTATE_SWITCH_ABSENT &&
- !virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_STORAGE_REMOVABLE)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("This QEMU doesn't support setting the "
- "removable flag of USB storage devices"));
- return -1;
- }
-
break;
case VIR_DOMAIN_DISK_BUS_XEN:
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0_aarch64.replies b/tests/qemucapabilitiesdata/caps_4.2.0_aarch64.replies
index f8619d8843..896ff981d2 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0_aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.2.0_aarch64.replies
@@ -17727,107 +17727,16 @@
}
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-17"
-}
-
-{
- "return": [
- {
- "name": "serial",
- "type": "str"
- },
- {
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "logical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "name": "share-rw",
- "type": "bool"
- },
- {
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "attached",
- "type": "bool"
- },
- {
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "removable",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "physical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- }
- ],
- "id": "libvirt-17"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-18"
+ "id": "libvirt-17"
}
{
- "id": "libvirt-18",
+ "id": "libvirt-17",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -17839,7 +17748,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -17925,7 +17834,7 @@
"type": "str"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -17933,7 +17842,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -17984,7 +17893,7 @@
"type": "str"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -17992,7 +17901,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -18166,7 +18075,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -18174,7 +18083,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -18235,7 +18144,7 @@
"type": "uint32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -18243,11 +18152,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
- "id": "libvirt-23",
+ "id": "libvirt-22",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -18259,7 +18168,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -18433,7 +18342,7 @@
"type": "str"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -18441,11 +18350,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
- "id": "libvirt-25",
+ "id": "libvirt-24",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -18457,7 +18366,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -18523,7 +18432,7 @@
"type": "bool"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -18531,7 +18440,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -18633,7 +18542,7 @@
"type": "size"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -18641,7 +18550,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -18730,7 +18639,7 @@
"type": "bool"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -18738,7 +18647,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -18809,7 +18718,7 @@
"type": "uint16"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -18817,7 +18726,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -18882,7 +18791,7 @@
"type": "bool"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -18890,7 +18799,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -18954,7 +18863,7 @@
"type": "bool"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -18962,7 +18871,7 @@
"arguments": {
"typename": "max-arm-cpu"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -19149,12 +19058,12 @@
"type": "bool"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
"execute": "query-machines",
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -19712,7 +19621,7 @@
"deprecated": false
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -19720,7 +19629,7 @@
"arguments": {
"typename": "virt-4.2-machine"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -19873,7 +19782,7 @@
"type": "child<cfi.pflash01>"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -19881,7 +19790,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -19986,12 +19895,12 @@
"type": "bool"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -20182,34 +20091,34 @@
"static": false
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"return": [
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"return": [
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -21377,12 +21286,12 @@
"option": "drive"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -21460,12 +21369,12 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-gic-capabilities",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -21481,7 +21390,7 @@
"kernel": false
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -21492,7 +21401,7 @@
"name": "host"
}
},
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -21522,7 +21431,7 @@
}
}
},
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -21537,7 +21446,7 @@
}
}
},
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -21567,7 +21476,7 @@
}
}
},
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_4.2.0_aarch64.xml
index 6a7f33e3c6..0c5e917658 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0_aarch64.xml
@@ -37,7 +37,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='enable-fips'/>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0_ppc64.replies b/tests/qemucapabilitiesdata/caps_4.2.0_ppc64.replies
index e31c49f24d..cbaa9a02a1 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0_ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.2.0_ppc64.replies
@@ -17156,107 +17156,16 @@
}
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-17"
-}
-
-{
- "return": [
- {
- "name": "serial",
- "type": "str"
- },
- {
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "logical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "name": "share-rw",
- "type": "bool"
- },
- {
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "attached",
- "type": "bool"
- },
- {
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "removable",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "physical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- }
- ],
- "id": "libvirt-17"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-18"
+ "id": "libvirt-17"
}
{
- "id": "libvirt-18",
+ "id": "libvirt-17",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -17268,7 +17177,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -17350,7 +17259,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -17358,7 +17267,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -17405,7 +17314,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -17413,7 +17322,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -17578,7 +17487,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -17586,7 +17495,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -17642,7 +17551,7 @@
"type": "uint32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -17650,11 +17559,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
- "id": "libvirt-23",
+ "id": "libvirt-22",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -17666,7 +17575,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -17831,7 +17740,7 @@
"type": "str"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -17839,11 +17748,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
- "id": "libvirt-25",
+ "id": "libvirt-24",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -17855,7 +17764,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -17916,7 +17825,7 @@
"type": "bool"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -17924,7 +17833,7 @@
"arguments": {
"typename": "spapr-pci-host-bridge"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -17990,7 +17899,7 @@
"type": "uint32"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -17998,7 +17907,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -18100,7 +18009,7 @@
"type": "size"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -18108,7 +18017,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -18197,7 +18106,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -18205,7 +18114,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -18270,7 +18179,7 @@
"type": "bool"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -18278,7 +18187,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -18342,12 +18251,12 @@
"type": "bool"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
"execute": "query-machines",
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -18609,7 +18518,7 @@
"deprecated": false
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -18617,7 +18526,7 @@
"arguments": {
"typename": "pseries-4.2-machine"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -18816,7 +18725,7 @@
"type": "string"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -18824,7 +18733,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -18929,12 +18838,12 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -21130,34 +21039,34 @@
"static": false
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"return": [
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"return": [
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -22296,12 +22205,12 @@
"option": "drive"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -22379,7 +22288,7 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_4.2.0_ppc64.xml
index 2064f07c9c..c7b35dd1d6 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0_ppc64.xml
@@ -38,7 +38,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='ich9-intel-hda'/>
<flag name='enable-fips'/>
<flag name='usb-kbd'/>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_4.2.0_x86_64.replies
index a45fd2f669..cf33d049af 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.2.0_x86_64.replies
@@ -17071,103 +17071,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "name": "logical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "name": "share-rw",
- "type": "bool"
- },
- {
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "name": "removable",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "attached",
- "type": "bool"
- },
- {
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "name": "physical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -17181,7 +17090,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -17189,7 +17098,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -17275,7 +17184,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -17283,7 +17192,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -17334,7 +17243,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -17342,7 +17251,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -17445,7 +17354,7 @@
"type": "uint32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -17453,7 +17362,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -17637,7 +17546,7 @@
"type": "bool"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -17645,7 +17554,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -17716,7 +17625,7 @@
"type": "uint32"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -17724,7 +17633,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -17824,7 +17733,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -17832,7 +17741,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -18006,7 +17915,7 @@
"type": "bool"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -18014,11 +17923,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -18030,7 +17939,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -18096,7 +18005,7 @@
"type": "bool"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -18104,7 +18013,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -18152,7 +18061,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -18160,7 +18069,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -18207,7 +18116,7 @@
"type": "bool"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -18215,7 +18124,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -18249,7 +18158,7 @@
"type": "int32"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -18257,7 +18166,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -18359,7 +18268,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -18367,7 +18276,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -18456,7 +18365,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -18464,7 +18373,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -18535,7 +18444,7 @@
"type": "uint16"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -18543,7 +18452,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -18608,7 +18517,7 @@
"type": "bool"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -18616,7 +18525,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -18680,7 +18589,7 @@
"type": "int"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -18688,7 +18597,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -20242,12 +20151,12 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-machines",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -20639,7 +20548,7 @@
"deprecated": false
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -20647,7 +20556,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -20752,12 +20661,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -22140,12 +22049,12 @@
"migration-safe": true
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -22153,12 +22062,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -22166,12 +22075,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -23457,12 +23366,12 @@
"option": "drive"
}
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -23540,16 +23449,16 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
- "id": "libvirt-45",
+ "id": "libvirt-44",
"error": {
"class": "GenericError",
"desc": "SEV feature is not available"
@@ -23564,7 +23473,7 @@
"name": "host"
}
},
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -23866,7 +23775,7 @@
}
}
},
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -23880,7 +23789,7 @@
}
}
},
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
@@ -24182,7 +24091,7 @@
}
}
},
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
@@ -24197,7 +24106,7 @@
}
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -24499,7 +24408,7 @@
}
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_4.2.0_x86_64.xml
index b45d4a6293..c2f9dd8add 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0_x86_64.xml
@@ -47,7 +47,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0_aarch64.replies b/tests/qemucapabilitiesdata/caps_5.0.0_aarch64.replies
index e63c9d5f0a..b5a087f449 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0_aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.0.0_aarch64.replies
@@ -18881,119 +18881,16 @@
}
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-17"
-}
-
-{
- "return": [
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": false,
- "name": "removable",
- "description": "on/off",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-17"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-18"
+ "id": "libvirt-17"
}
{
- "id": "libvirt-18",
+ "id": "libvirt-17",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -19005,7 +18902,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -19100,7 +18997,7 @@
"type": "bool"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -19108,7 +19005,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -19161,7 +19058,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -19169,7 +19066,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -19375,7 +19272,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -19383,7 +19280,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -19461,7 +19358,7 @@
"type": "uint32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -19469,11 +19366,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
- "id": "libvirt-23",
+ "id": "libvirt-22",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -19485,7 +19382,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -19688,7 +19585,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -19696,11 +19593,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
- "id": "libvirt-25",
+ "id": "libvirt-24",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -19712,7 +19609,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -19793,7 +19690,7 @@
"type": "int"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -19801,7 +19698,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -19922,7 +19819,7 @@
"type": "PCIELinkSpeed"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -19930,7 +19827,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -20024,7 +19921,7 @@
"type": "bool"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -20032,7 +19929,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -20108,7 +20005,7 @@
"type": "uint16"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -20116,7 +20013,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -20127,7 +20024,7 @@
"type": "str"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -20135,7 +20032,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -20205,7 +20102,7 @@
"type": "bool"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -20213,7 +20110,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -20282,7 +20179,7 @@
"type": "bool"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -20290,7 +20187,7 @@
"arguments": {
"typename": "max-arm-cpu"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -20494,12 +20391,12 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
"execute": "query-machines",
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -21087,7 +20984,7 @@
"deprecated": false
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -21095,7 +20992,7 @@
"arguments": {
"typename": "virt-5.0-machine"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -21243,7 +21140,7 @@
"type": "child<cfi.pflash01>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -21251,7 +21148,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -21341,12 +21238,12 @@
"type": "string"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -21542,24 +21439,24 @@
"static": false
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"return": [
"tpm-tis"
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -21567,12 +21464,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -22730,12 +22627,12 @@
"option": "drive"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -22813,12 +22710,12 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-gic-capabilities",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -22834,7 +22731,7 @@
"kernel": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -22845,7 +22742,7 @@
"name": "host"
}
},
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -22876,7 +22773,7 @@
}
}
},
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -22891,7 +22788,7 @@
}
}
},
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -22922,7 +22819,7 @@
}
}
},
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0_aarch64.xml
index a2b7214b8a..8e26b07d23 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0_aarch64.xml
@@ -39,7 +39,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='enable-fips'/>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0_ppc64.replies b/tests/qemucapabilitiesdata/caps_5.0.0_ppc64.replies
index aaf69cab46..f449a21b0b 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0_ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.0.0_ppc64.replies
@@ -18680,119 +18680,16 @@
}
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-17"
-}
-
-{
- "return": [
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": false,
- "name": "removable",
- "description": "on/off",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-17"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-18"
+ "id": "libvirt-17"
}
{
- "id": "libvirt-18",
+ "id": "libvirt-17",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -18804,7 +18701,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -18899,7 +18796,7 @@
"type": "bool"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -18907,7 +18804,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -18960,7 +18857,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -18968,7 +18865,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -19174,7 +19071,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -19182,7 +19079,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -19260,7 +19157,7 @@
"type": "uint32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -19268,11 +19165,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
- "id": "libvirt-23",
+ "id": "libvirt-22",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -19284,7 +19181,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -19487,7 +19384,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -19495,11 +19392,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
- "id": "libvirt-25",
+ "id": "libvirt-24",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -19511,7 +19408,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -19592,7 +19489,7 @@
"type": "int"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -19600,7 +19497,7 @@
"arguments": {
"typename": "spapr-pci-host-bridge"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -19681,7 +19578,7 @@
"type": "uint32"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -19689,7 +19586,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -19731,7 +19628,7 @@
"type": "uint64"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -19739,7 +19636,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -19860,7 +19757,7 @@
"type": "PCIELinkSpeed"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -19868,7 +19765,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -19962,7 +19859,7 @@
"type": "bool"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -19970,7 +19867,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -20046,7 +19943,7 @@
"type": "uint16"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -20054,7 +19951,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -20065,7 +19962,7 @@
"type": "str"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -20073,7 +19970,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -20143,7 +20040,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -20151,7 +20048,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -20220,12 +20117,12 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
"execute": "query-machines",
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -20495,7 +20392,7 @@
"deprecated": false
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -20503,7 +20400,7 @@
"arguments": {
"typename": "pseries-5.0-machine"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -20712,7 +20609,7 @@
"type": "string"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -20720,7 +20617,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -20810,12 +20707,12 @@
"type": "string"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -23021,24 +22918,24 @@
"static": false
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"return": [
"tpm-spapr"
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -23046,12 +22943,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -24188,12 +24085,12 @@
"option": "drive"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -24271,7 +24168,7 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0_ppc64.xml
index 16333ba499..03a47bf713 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0_ppc64.xml
@@ -39,7 +39,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='ich9-intel-hda'/>
<flag name='enable-fips'/>
<flag name='usb-kbd'/>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0_riscv64.replies b/tests/qemucapabilitiesdata/caps_5.0.0_riscv64.replies
index 929b2179ae..10e075c9a6 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0_riscv64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.0.0_riscv64.replies
@@ -16992,119 +16992,16 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "default-value": true,
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "default-value": false,
- "name": "removable",
- "description": "on/off",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
- "id": "libvirt-19",
+ "id": "libvirt-18",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -17116,7 +17013,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -17211,7 +17108,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -17219,7 +17116,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -17272,7 +17169,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -17280,7 +17177,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -17498,7 +17395,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -17506,7 +17403,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -17596,7 +17493,7 @@
"type": "bool"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -17604,11 +17501,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
- "id": "libvirt-24",
+ "id": "libvirt-23",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -17620,7 +17517,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -17823,7 +17720,7 @@
"type": "bool"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -17831,11 +17728,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
- "id": "libvirt-26",
+ "id": "libvirt-25",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -17847,7 +17744,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -17928,7 +17825,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -17936,7 +17833,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -18057,7 +17954,7 @@
"type": "size"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -18065,7 +17962,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -18159,7 +18056,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -18167,7 +18064,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -18243,7 +18140,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -18251,7 +18148,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -18262,7 +18159,7 @@
"type": "str"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -18270,7 +18167,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -18340,7 +18237,7 @@
"type": "bool"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -18348,7 +18245,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -18417,12 +18314,12 @@
"type": "int"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
"execute": "query-machines",
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -18480,7 +18377,7 @@
"deprecated": false
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -18488,7 +18385,7 @@
"arguments": {
"typename": "virt-machine"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -18578,7 +18475,7 @@
"type": "string"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -18586,7 +18483,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -18676,34 +18573,34 @@
"type": "string"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"return": [
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"return": [
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -19969,12 +19866,12 @@
"option": "drive"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -20052,5 +19949,5 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0_riscv64.xml b/tests/qemucapabilitiesdata/caps_5.0.0_riscv64.xml
index 09a71875ef..a9f81c0180 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0_riscv64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0_riscv64.xml
@@ -41,7 +41,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='enable-fips'/>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_5.0.0_x86_64.replies
index 13b9b02e4c..6b026771dc 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.0.0_x86_64.replies
@@ -18169,115 +18169,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "default-value": true,
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "default-value": false,
- "name": "removable",
- "description": "on/off",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 and 32768",
- "type": "uint16"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -18293,7 +18190,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -18301,7 +18198,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -18396,7 +18293,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -18404,7 +18301,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -18457,7 +18354,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -18465,7 +18362,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -18583,7 +18480,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -18591,7 +18488,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -18809,7 +18706,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -18817,7 +18714,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -18907,7 +18804,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -18915,7 +18812,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -19017,7 +18914,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -19025,7 +18922,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -19228,7 +19125,7 @@
"type": "bool"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -19236,11 +19133,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -19252,7 +19149,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -19333,7 +19230,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -19341,7 +19238,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -19399,7 +19296,7 @@
"type": "uint32"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -19407,7 +19304,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -19460,7 +19357,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -19468,7 +19365,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -19510,7 +19407,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -19518,7 +19415,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -19639,7 +19536,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -19647,7 +19544,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -19741,7 +19638,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -19749,7 +19646,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -19825,7 +19722,7 @@
"type": "uint16"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -19833,7 +19730,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -19844,7 +19741,7 @@
"type": "str"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -19852,7 +19749,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -19922,7 +19819,7 @@
"type": "bool"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -19930,7 +19827,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -19999,7 +19896,7 @@
"type": "int"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -20007,7 +19904,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -21573,12 +21470,12 @@
"type": "bool"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-machines",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -21954,7 +21851,7 @@
"deprecated": false
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -21962,7 +21859,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -22052,12 +21949,12 @@
"type": "string"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -23602,12 +23499,12 @@
"migration-safe": true
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -23615,12 +23512,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -23628,12 +23525,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -24909,12 +24806,12 @@
"option": "drive"
}
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -24992,16 +24889,16 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
- "id": "libvirt-46",
+ "id": "libvirt-45",
"error": {
"class": "GenericError",
"desc": "SEV feature is not available"
@@ -25016,7 +24913,7 @@
"name": "host"
}
},
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
@@ -25319,7 +25216,7 @@
}
}
},
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
@@ -25333,7 +25230,7 @@
}
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -25636,7 +25533,7 @@
}
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -25651,7 +25548,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -25954,7 +25851,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0_x86_64.xml
index 5331cf0113..c84821dd4b 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0_x86_64.xml
@@ -47,7 +47,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_5.1.0_x86_64.replies
index d66583fa92..2c815c713f 100644
--- a/tests/qemucapabilitiesdata/caps_5.1.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.1.0_x86_64.replies
@@ -18678,115 +18678,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "default-value": true,
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "removable",
- "description": "on/off",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -18802,7 +18699,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -18810,7 +18707,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -18905,7 +18802,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -18913,7 +18810,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -18966,7 +18863,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -18974,7 +18871,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -19092,7 +18989,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -19100,7 +18997,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -19318,7 +19215,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -19326,7 +19223,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -19416,7 +19313,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -19424,7 +19321,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -19526,7 +19423,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -19534,7 +19431,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -19749,7 +19646,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -19757,11 +19654,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -19773,7 +19670,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -19866,7 +19763,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -19874,7 +19771,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -19932,7 +19829,7 @@
"type": "uint32"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -19940,7 +19837,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -19993,7 +19890,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -20001,7 +19898,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -20043,7 +19940,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -20051,7 +19948,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -20172,7 +20069,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -20180,7 +20077,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -20278,7 +20175,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -20286,7 +20183,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -20362,7 +20259,7 @@
"type": "uint16"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -20370,7 +20267,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -20565,7 +20462,7 @@
"type": "bool"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -20573,7 +20470,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -20584,7 +20481,7 @@
"type": "str"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -20592,7 +20489,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -20662,7 +20559,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -20670,7 +20567,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -20739,7 +20636,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -20747,7 +20644,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -22333,12 +22230,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -22730,7 +22627,7 @@
"deprecated": false
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -22738,7 +22635,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -22828,12 +22725,12 @@
"type": "string"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -24535,12 +24432,12 @@
"migration-safe": true
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -24548,12 +24445,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -24561,12 +24458,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -25861,12 +25758,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -25944,16 +25841,16 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "SEV is not enabled in KVM"
@@ -25968,7 +25865,7 @@
"name": "host"
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -26276,7 +26173,7 @@
}
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -26290,7 +26187,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -26598,7 +26495,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -26613,7 +26510,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -26921,7 +26818,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0_x86_64.xml
index 1c3d3ea2a9..c8ee593131 100644
--- a/tests/qemucapabilitiesdata/caps_5.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.1.0_x86_64.xml
@@ -47,7 +47,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_aarch64.replies b/tests/qemucapabilitiesdata/caps_5.2.0_aarch64.replies
index 8c78533719..60e0887a9e 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_aarch64.replies
@@ -20044,123 +20044,16 @@
}
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-17"
-}
-
-{
- "return": [
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-17"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-18"
+ "id": "libvirt-17"
}
{
- "id": "libvirt-18",
+ "id": "libvirt-17",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -20172,7 +20065,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -20267,7 +20160,7 @@
"type": "bool"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -20275,7 +20168,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -20328,7 +20221,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -20336,7 +20229,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -20547,7 +20440,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -20555,7 +20448,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -20638,7 +20531,7 @@
"type": "uint32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -20646,11 +20539,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
- "id": "libvirt-23",
+ "id": "libvirt-22",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -20662,7 +20555,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -20882,7 +20775,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -20890,11 +20783,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
- "id": "libvirt-25",
+ "id": "libvirt-24",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -20906,7 +20799,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -21004,7 +20897,7 @@
"type": "int"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -21012,7 +20905,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -21054,7 +20947,7 @@
"type": "uint64"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -21062,7 +20955,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -21183,7 +21076,7 @@
"type": "PCIELinkSpeed"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -21191,7 +21084,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -21289,7 +21182,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -21297,7 +21190,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -21373,7 +21266,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -21381,7 +21274,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -21392,7 +21285,7 @@
"type": "str"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -21400,7 +21293,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -21470,7 +21363,7 @@
"type": "bool"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -21478,7 +21371,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -21547,7 +21440,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -21555,7 +21448,7 @@
"arguments": {
"typename": "max-arm-cpu"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -21764,12 +21657,12 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
"execute": "query-machines",
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -22506,7 +22399,7 @@
"deprecated": false
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -22514,7 +22407,7 @@
"arguments": {
"typename": "virt-5.2-machine"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -22677,7 +22570,7 @@
"type": "child<cfi.pflash01>"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -22685,7 +22578,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -22770,12 +22663,12 @@
"type": "string"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -23009,24 +22902,24 @@
"deprecated": false
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"return": [
"tpm-tis"
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -23034,12 +22927,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -24216,12 +24109,12 @@
"option": "drive"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -24299,12 +24192,12 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-gic-capabilities",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -24320,7 +24213,7 @@
"kernel": false
}
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -24331,7 +24224,7 @@
"name": "host"
}
},
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -24363,7 +24256,7 @@
}
}
},
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -24378,7 +24271,7 @@
}
}
},
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -24410,7 +24303,7 @@
}
}
},
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_5.2.0_aarch64.xml
index b1c5c21abb..131f31b597 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_aarch64.xml
@@ -39,7 +39,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_ppc64.replies b/tests/qemucapabilitiesdata/caps_5.2.0_ppc64.replies
index 9a0e5622d9..f012a8c93a 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_ppc64.replies
@@ -19691,123 +19691,16 @@
}
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-17"
-}
-
-{
- "return": [
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-17"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-18"
+ "id": "libvirt-17"
}
{
- "id": "libvirt-18",
+ "id": "libvirt-17",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -19819,7 +19712,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -19914,7 +19807,7 @@
"type": "bool"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -19922,7 +19815,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -19975,7 +19868,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -19983,7 +19876,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -20194,7 +20087,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -20202,7 +20095,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -20285,7 +20178,7 @@
"type": "uint32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -20293,11 +20186,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
- "id": "libvirt-23",
+ "id": "libvirt-22",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -20309,7 +20202,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -20529,7 +20422,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -20537,11 +20430,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
- "id": "libvirt-25",
+ "id": "libvirt-24",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -20553,7 +20446,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -20651,7 +20544,7 @@
"type": "int"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -20659,7 +20552,7 @@
"arguments": {
"typename": "spapr-pci-host-bridge"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -20750,7 +20643,7 @@
"type": "uint32"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -20758,7 +20651,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -20800,7 +20693,7 @@
"type": "uint64"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -20808,7 +20701,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -20929,7 +20822,7 @@
"type": "PCIELinkSpeed"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -20937,7 +20830,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -21035,7 +20928,7 @@
"type": "bool"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -21043,7 +20936,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -21119,7 +21012,7 @@
"type": "uint16"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -21127,7 +21020,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -21138,7 +21031,7 @@
"type": "str"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -21146,7 +21039,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -21216,7 +21109,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -21224,7 +21117,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -21293,12 +21186,12 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
"execute": "query-machines",
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -21618,7 +21511,7 @@
"default-ram-id": "mpc8544ds.ram"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -21626,7 +21519,7 @@
"arguments": {
"typename": "pseries-5.2-machine"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -21830,7 +21723,7 @@
"type": "string"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -21838,7 +21731,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -21923,12 +21816,12 @@
"type": "string"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -24574,24 +24467,24 @@
"deprecated": false
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"return": [
"tpm-spapr"
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -24599,12 +24492,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -25760,12 +25653,12 @@
"option": "drive"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -25843,7 +25736,7 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_5.2.0_ppc64.xml
index 9db85dafef..c719334258 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_ppc64.xml
@@ -39,7 +39,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
<flag name='usb-audio'/>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_riscv64.replies b/tests/qemucapabilitiesdata/caps_5.2.0_riscv64.replies
index 19fa83490c..afc22224c0 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_riscv64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_riscv64.replies
@@ -17988,123 +17988,16 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "default-value": true,
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
- "id": "libvirt-19",
+ "id": "libvirt-18",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -18116,7 +18009,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -18211,7 +18104,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -18219,7 +18112,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -18272,7 +18165,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -18280,7 +18173,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -18503,7 +18396,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -18511,7 +18404,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -18606,7 +18499,7 @@
"type": "bool"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -18614,11 +18507,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
- "id": "libvirt-24",
+ "id": "libvirt-23",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -18630,7 +18523,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -18850,7 +18743,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -18858,11 +18751,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
- "id": "libvirt-26",
+ "id": "libvirt-25",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -18874,7 +18767,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -18972,7 +18865,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -18980,7 +18873,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -19101,7 +18994,7 @@
"type": "size"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -19109,7 +19002,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -19207,7 +19100,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -19215,7 +19108,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -19291,7 +19184,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -19299,7 +19192,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -19310,7 +19203,7 @@
"type": "str"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -19318,7 +19211,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -19388,7 +19281,7 @@
"type": "bool"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -19396,7 +19289,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -19465,12 +19358,12 @@
"type": "int"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
"execute": "query-machines",
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -19524,7 +19417,7 @@
"deprecated": false
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -19532,7 +19425,7 @@
"arguments": {
"typename": "virt-machine"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -19622,7 +19515,7 @@
"type": "bool"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -19630,7 +19523,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -19715,34 +19608,34 @@
"type": "string"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"return": [
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"return": [
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -21027,12 +20920,12 @@
"option": "drive"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -21110,5 +21003,5 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_riscv64.xml b/tests/qemucapabilitiesdata/caps_5.2.0_riscv64.xml
index 4d03004fa1..fecbf3ef69 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_riscv64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_riscv64.xml
@@ -41,7 +41,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.replies
index f224bd2fee..68e59b073e 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.replies
@@ -19225,119 +19225,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "default-value": true,
- "name": "full-path",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -19353,7 +19246,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -19361,7 +19254,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -19456,7 +19349,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -19464,7 +19357,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -19517,7 +19410,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -19525,7 +19418,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -19643,7 +19536,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -19651,7 +19544,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -19874,7 +19767,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -19882,7 +19775,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -19977,7 +19870,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -19985,7 +19878,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -20103,7 +19996,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -20111,7 +20004,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -20331,7 +20224,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -20339,11 +20232,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -20355,7 +20248,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -20453,7 +20346,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -20461,7 +20354,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -20519,7 +20412,7 @@
"type": "uint32"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -20527,7 +20420,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -20580,7 +20473,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -20588,7 +20481,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -20630,7 +20523,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -20638,7 +20531,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -20759,7 +20652,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -20767,7 +20660,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -20865,7 +20758,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -20873,7 +20766,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -20949,7 +20842,7 @@
"type": "uint16"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -20957,7 +20850,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -21157,7 +21050,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -21165,7 +21058,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -21176,7 +21069,7 @@
"type": "str"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -21184,7 +21077,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -21254,7 +21147,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -21262,7 +21155,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -21331,7 +21224,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -21339,7 +21232,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -22937,12 +22830,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -23400,7 +23293,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -23408,7 +23301,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -23493,12 +23386,12 @@
"type": "string"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -25323,12 +25216,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -25336,12 +25229,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -25349,12 +25242,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -26649,12 +26542,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -26732,16 +26625,16 @@
"capability": "validate-uuid"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "SEV is not enabled in KVM"
@@ -26756,7 +26649,7 @@
"name": "host"
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -27065,7 +26958,7 @@
}
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -27079,7 +26972,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -27388,7 +27281,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -27403,7 +27296,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -27712,7 +27605,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml
index 654fec58fe..86123439c4 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml
@@ -47,7 +47,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.replies b/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.replies
index ed04553f29..b7ed0ce448 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.replies
@@ -21824,121 +21824,16 @@
}
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-17"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-17"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-18"
+ "id": "libvirt-17"
}
{
- "id": "libvirt-18",
+ "id": "libvirt-17",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -21950,7 +21845,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -22055,7 +21950,7 @@
"type": "bool"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -22063,7 +21958,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -22126,7 +22021,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -22134,7 +22029,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -22367,7 +22262,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -22375,7 +22270,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -22458,7 +22353,7 @@
"type": "uint32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -22466,11 +22361,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
- "id": "libvirt-23",
+ "id": "libvirt-22",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -22482,7 +22377,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -22719,7 +22614,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -22727,11 +22622,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
- "id": "libvirt-25",
+ "id": "libvirt-24",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -22743,7 +22638,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -22841,7 +22736,7 @@
"type": "int"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -22849,7 +22744,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -22891,7 +22786,7 @@
"type": "uint64"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -22899,7 +22794,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -23030,7 +22925,7 @@
"type": "PCIELinkSpeed"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -23038,7 +22933,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -23134,7 +23029,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -23142,7 +23037,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -23222,7 +23117,7 @@
"type": "int32"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -23230,7 +23125,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -23241,7 +23136,7 @@
"type": "str"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -23249,7 +23144,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -23319,7 +23214,7 @@
"type": "bool"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -23327,7 +23222,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -23396,7 +23291,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -23404,7 +23299,7 @@
"arguments": {
"typename": "max-arm-cpu"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -23613,12 +23508,12 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
"execute": "query-machines",
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -24397,7 +24292,7 @@
"deprecated": false
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -24405,7 +24300,7 @@
"arguments": {
"typename": "virt-6.0-machine"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -24591,7 +24486,7 @@
"type": "child<cfi.pflash01>"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -24599,7 +24494,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -24697,12 +24592,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -24942,24 +24837,24 @@
"deprecated": false
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"return": [
"tpm-tis"
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -24967,12 +24862,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -26169,12 +26064,12 @@
"option": "drive"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -26256,12 +26151,12 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-gic-capabilities",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -26277,7 +26172,7 @@
"kernel": false
}
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -26288,7 +26183,7 @@
"name": "host"
}
},
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -26320,7 +26215,7 @@
}
}
},
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -26335,7 +26230,7 @@
}
}
},
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -26367,7 +26262,7 @@
}
}
},
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml
index 6faf407a97..ca69f1b45e 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml
@@ -38,7 +38,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.replies
index d815a91f4c..aac31cca53 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.replies
@@ -20873,117 +20873,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -20999,7 +20894,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -21007,7 +20902,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -21112,7 +21007,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -21120,7 +21015,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -21183,7 +21078,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -21191,7 +21086,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -21319,7 +21214,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -21327,7 +21222,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -21572,7 +21467,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -21580,7 +21475,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -21675,7 +21570,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -21683,7 +21578,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -21816,7 +21711,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -21824,7 +21719,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -22061,7 +21956,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -22069,11 +21964,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -22085,7 +21980,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -22183,7 +22078,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -22191,7 +22086,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -22249,7 +22144,7 @@
"type": "uint32"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -22257,7 +22152,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -22320,7 +22215,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -22328,7 +22223,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -22370,7 +22265,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -22378,7 +22273,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -22509,7 +22404,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -22517,7 +22412,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -22613,7 +22508,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -22621,7 +22516,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -22701,7 +22596,7 @@
"type": "int32"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -22709,7 +22604,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -22931,7 +22826,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -22939,7 +22834,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -22950,7 +22845,7 @@
"type": "str"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -22958,7 +22853,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -23032,7 +22927,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -23040,7 +22935,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -23109,7 +23004,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -23117,7 +23012,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -24763,12 +24658,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -25215,7 +25110,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -25223,7 +25118,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -25321,12 +25216,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -27194,12 +27089,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -27207,12 +27102,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -27220,12 +27115,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -28544,12 +28439,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -28631,12 +28526,12 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
@@ -28646,7 +28541,7 @@
"cert-chain": "AQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAA",
"pdh": "AQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAA"
},
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
@@ -28657,7 +28552,7 @@
"name": "host"
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -28978,7 +28873,7 @@
}
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -28992,7 +28887,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -29313,7 +29208,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -29328,7 +29223,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -29649,7 +29544,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml
index b1bf3caecf..53876effa8 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml
@@ -46,7 +46,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.replies
index e55adfbe66..dd8042dafb 100644
--- a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.replies
@@ -21097,123 +21097,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -21229,7 +21118,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -21237,7 +21126,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -21347,7 +21236,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -21355,7 +21244,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -21418,7 +21307,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -21426,7 +21315,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -21554,7 +21443,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -21562,7 +21451,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -21801,7 +21690,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -21809,7 +21698,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -21898,7 +21787,7 @@
"type": "size"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -21906,7 +21795,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -22043,7 +21932,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -22051,7 +21940,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -22288,7 +22177,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -22296,11 +22185,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -22312,7 +22201,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -22410,7 +22299,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -22418,7 +22307,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -22476,7 +22365,7 @@
"type": "uint32"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -22484,7 +22373,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -22547,7 +22436,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -22555,7 +22444,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -22597,7 +22486,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -22605,7 +22494,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -22741,7 +22630,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -22749,7 +22638,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -22845,7 +22734,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -22853,7 +22742,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -22933,7 +22822,7 @@
"type": "int32"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -22941,7 +22830,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -23163,7 +23052,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -23171,7 +23060,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -23182,7 +23071,7 @@
"type": "str"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -23190,7 +23079,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -23269,7 +23158,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -23277,7 +23166,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -23351,7 +23240,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -23359,7 +23248,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -25017,12 +24906,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -25487,7 +25376,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -25495,7 +25384,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -25598,12 +25487,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -27660,12 +27549,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -27673,12 +27562,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -27686,12 +27575,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -29023,12 +28912,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -29110,16 +28999,16 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "Failed to open /dev/sev: No such file or directory"
@@ -29134,7 +29023,7 @@
"name": "host"
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -29457,7 +29346,7 @@
}
}
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -29471,7 +29360,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -29794,7 +29683,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -29809,7 +29698,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -30132,7 +30021,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml
index 13d909e382..667e60b087 100644
--- a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml
@@ -46,7 +46,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.replies b/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.replies
index 20d176e4b7..0baab2ad15 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.replies
@@ -22637,127 +22637,16 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
- "id": "libvirt-19",
+ "id": "libvirt-18",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -22769,7 +22658,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -22879,7 +22768,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -22887,7 +22776,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -22950,7 +22839,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -22958,7 +22847,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -23197,7 +23086,7 @@
"type": "bool"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -23205,7 +23094,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -23294,7 +23183,7 @@
"type": "uint32"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -23302,11 +23191,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
- "id": "libvirt-24",
+ "id": "libvirt-23",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -23318,7 +23207,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -23555,7 +23444,7 @@
"type": "bool"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -23563,11 +23452,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
- "id": "libvirt-26",
+ "id": "libvirt-25",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -23579,7 +23468,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -23677,7 +23566,7 @@
"type": "int"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -23685,7 +23574,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -23727,7 +23616,7 @@
"type": "uint64"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -23735,7 +23624,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -23871,7 +23760,7 @@
"type": "PCIELinkSpeed"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -23879,7 +23768,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -23975,7 +23864,7 @@
"type": "bool"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -23983,7 +23872,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -24063,7 +23952,7 @@
"type": "int32"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -24071,7 +23960,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -24082,7 +23971,7 @@
"type": "str"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -24090,7 +23979,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -24165,7 +24054,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -24173,7 +24062,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -24247,7 +24136,7 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -24255,7 +24144,7 @@
"arguments": {
"typename": "max-arm-cpu"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -24464,12 +24353,12 @@
"type": "bool"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
"execute": "query-machines",
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -25313,7 +25202,7 @@
"deprecated": false
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -25321,7 +25210,7 @@
"arguments": {
"typename": "virt-6.2-machine"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -25517,7 +25406,7 @@
"type": "child<cfi.pflash01>"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -25525,7 +25414,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -25628,12 +25517,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -25879,24 +25768,24 @@
"deprecated": false
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"return": [
"tpm-tis"
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -25904,12 +25793,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -27257,12 +27146,12 @@
"option": "drive"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -27344,12 +27233,12 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-gic-capabilities",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -27365,7 +27254,7 @@
"kernel": false
}
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -27376,7 +27265,7 @@
"name": "host"
}
},
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -27408,7 +27297,7 @@
}
}
},
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -27423,7 +27312,7 @@
}
}
},
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -27455,7 +27344,7 @@
}
}
},
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml
index e312801b89..16d8a21081 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml
@@ -43,7 +43,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.replies b/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.replies
index 0ac9b2cfe2..e58fab36f6 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.replies
@@ -24557,127 +24557,16 @@
"id": "libvirt-16"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-17"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-17"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-18"
+ "id": "libvirt-17"
}
{
- "id": "libvirt-18",
+ "id": "libvirt-17",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -24689,7 +24578,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -24799,7 +24688,7 @@
"type": "bool"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -24807,7 +24696,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -24870,7 +24759,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -24878,7 +24767,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25117,7 +25006,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25125,7 +25014,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -25214,7 +25103,7 @@
"type": "uint32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -25222,11 +25111,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
- "id": "libvirt-23",
+ "id": "libvirt-22",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -25238,7 +25127,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -25475,7 +25364,7 @@
"type": "bool"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -25483,11 +25372,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
- "id": "libvirt-25",
+ "id": "libvirt-24",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -25499,7 +25388,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -25597,7 +25486,7 @@
"type": "int"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -25605,7 +25494,7 @@
"arguments": {
"typename": "spapr-pci-host-bridge"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -25701,7 +25590,7 @@
"type": "uint32"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -25709,7 +25598,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -25751,7 +25640,7 @@
"type": "uint64"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -25759,7 +25648,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -25895,7 +25784,7 @@
"type": "PCIELinkSpeed"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -25903,11 +25792,11 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
- "id": "libvirt-30",
+ "id": "libvirt-29",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'usb-host' not found"
@@ -25919,7 +25808,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -25999,7 +25888,7 @@
"type": "int32"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -26007,7 +25896,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26018,7 +25907,7 @@
"type": "str"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26026,7 +25915,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26101,7 +25990,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26109,7 +25998,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -26183,12 +26072,12 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
"execute": "query-machines",
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -26551,7 +26440,7 @@
"default-ram-id": "mpc8544ds.ram"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -26559,7 +26448,7 @@
"arguments": {
"typename": "pseries-6.2-machine"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -26791,7 +26680,7 @@
"type": "string"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -26799,7 +26688,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -26902,12 +26791,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -29559,24 +29448,24 @@
"deprecated": false
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"return": [
"tpm-spapr"
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -29584,12 +29473,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -30723,12 +30612,12 @@
"option": "drive"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -30810,7 +30699,7 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml
index e6b0bc03f4..f25eacd8fb 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml
@@ -39,7 +39,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
<flag name='usb-audio'/>
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.replies
index d7da5068b0..d725cba4ed 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.replies
@@ -24274,123 +24274,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -24406,7 +24295,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -24414,7 +24303,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -24524,7 +24413,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -24532,7 +24421,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -24595,7 +24484,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -24603,7 +24492,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -24731,7 +24620,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -24739,7 +24628,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -24978,7 +24867,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -24986,7 +24875,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -25075,7 +24964,7 @@
"type": "size"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -25083,7 +24972,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -25224,7 +25113,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -25232,7 +25121,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -25469,7 +25358,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -25477,11 +25366,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -25493,7 +25382,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -25591,7 +25480,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -25599,7 +25488,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -25657,7 +25546,7 @@
"type": "uint32"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -25665,7 +25554,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -25728,7 +25617,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -25736,7 +25625,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -25778,7 +25667,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -25786,7 +25675,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -25922,7 +25811,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -25930,7 +25819,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26026,7 +25915,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26034,7 +25923,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -26114,7 +26003,7 @@
"type": "int32"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -26122,7 +26011,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -26344,7 +26233,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -26352,7 +26241,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -26363,7 +26252,7 @@
"type": "str"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -26371,7 +26260,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -26450,7 +26339,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -26458,7 +26347,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -26532,7 +26421,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -26540,7 +26429,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -28280,12 +28169,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -28768,7 +28657,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -28776,7 +28665,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -28879,12 +28768,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -30953,12 +30842,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -30966,12 +30855,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -30979,12 +30868,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -32316,12 +32205,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -32403,16 +32292,16 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "SEV: Failed to open /dev/sev: No such file or directory"
@@ -32421,11 +32310,11 @@
{
"execute": "query-sgx-capabilities",
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
- "id": "libvirt-48",
+ "id": "libvirt-47",
"error": {
"class": "GenericError",
"desc": "SGX is not enabled in KVM"
@@ -32440,7 +32329,7 @@
"name": "host"
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -32773,7 +32662,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -32787,7 +32676,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -33120,7 +33009,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -33135,7 +33024,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
@@ -33468,7 +33357,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
index e1758396b0..8a3c0192b5 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
@@ -46,7 +46,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.replies b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.replies
index f2854f9fa6..465bdb890b 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.replies
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.replies
@@ -25915,127 +25915,16 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
- "id": "libvirt-19",
+ "id": "libvirt-18",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -26047,7 +25936,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26157,7 +26046,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26165,7 +26054,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26228,7 +26117,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26236,7 +26125,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26475,7 +26364,7 @@
"type": "bool"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26483,7 +26372,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26572,7 +26461,7 @@
"type": "uint32"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26580,11 +26469,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
- "id": "libvirt-24",
+ "id": "libvirt-23",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -26596,7 +26485,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26833,7 +26722,7 @@
"type": "bool"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26841,11 +26730,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
- "id": "libvirt-26",
+ "id": "libvirt-25",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -26857,7 +26746,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -26955,7 +26844,7 @@
"type": "int"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -26963,7 +26852,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27005,7 +26894,7 @@
"type": "uint64"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27013,7 +26902,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27149,7 +27038,7 @@
"type": "PCIELinkSpeed"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27157,7 +27046,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27253,7 +27142,7 @@
"type": "bool"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27261,7 +27150,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27341,7 +27230,7 @@
"type": "int32"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27349,7 +27238,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27576,7 +27465,7 @@
"type": "uint64"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27584,7 +27473,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -27799,7 +27688,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -27807,7 +27696,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -27882,7 +27771,7 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -27890,7 +27779,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -27964,7 +27853,7 @@
"type": "bool"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -27972,7 +27861,7 @@
"arguments": {
"typename": "max-arm-cpu"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -28181,12 +28070,12 @@
"type": "bool"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"execute": "query-machines",
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -29056,7 +28945,7 @@
"deprecated": false
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -29064,7 +28953,7 @@
"arguments": {
"typename": "virt-7.0-machine"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -29265,7 +29154,7 @@
"type": "child<cfi.pflash01>"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -29273,7 +29162,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -29376,12 +29265,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -29627,24 +29516,24 @@
"deprecated": false
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"return": [
"tpm-tis"
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -29652,12 +29541,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -31009,12 +30898,12 @@
"option": "drive"
}
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -31096,12 +30985,12 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-gic-capabilities",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -31117,7 +31006,7 @@
"kernel": false
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -31128,7 +31017,7 @@
"name": "host"
}
},
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -31161,7 +31050,7 @@
}
}
},
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -31176,7 +31065,7 @@
}
}
},
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
@@ -31209,7 +31098,7 @@
}
}
},
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml
index 3517e81d15..13259cce79 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64+hvf.xml
@@ -42,7 +42,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.replies b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.replies
index b330e842c2..8ff01e05a4 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.replies
@@ -25915,127 +25915,16 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
- "id": "libvirt-19",
+ "id": "libvirt-18",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -26047,7 +25936,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26157,7 +26046,7 @@
"type": "bool"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26165,7 +26054,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26228,7 +26117,7 @@
"type": "bool"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26236,7 +26125,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26475,7 +26364,7 @@
"type": "bool"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26483,7 +26372,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26572,7 +26461,7 @@
"type": "uint32"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26580,11 +26469,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
- "id": "libvirt-24",
+ "id": "libvirt-23",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -26596,7 +26485,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26833,7 +26722,7 @@
"type": "bool"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26841,11 +26730,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
- "id": "libvirt-26",
+ "id": "libvirt-25",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -26857,7 +26746,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -26955,7 +26844,7 @@
"type": "int"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -26963,7 +26852,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27005,7 +26894,7 @@
"type": "uint64"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27013,7 +26902,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27149,7 +27038,7 @@
"type": "PCIELinkSpeed"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27157,7 +27046,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27253,7 +27142,7 @@
"type": "bool"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27261,7 +27150,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27341,7 +27230,7 @@
"type": "int32"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27349,7 +27238,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27576,7 +27465,7 @@
"type": "uint64"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27584,7 +27473,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -27799,7 +27688,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -27807,7 +27696,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -27882,7 +27771,7 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -27890,7 +27779,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -27964,7 +27853,7 @@
"type": "bool"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -27972,7 +27861,7 @@
"arguments": {
"typename": "max-arm-cpu"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -28181,12 +28070,12 @@
"type": "bool"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"execute": "query-machines",
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -29056,7 +28945,7 @@
"deprecated": false
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -29064,7 +28953,7 @@
"arguments": {
"typename": "virt-7.0-machine"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -29265,7 +29154,7 @@
"type": "child<cfi.pflash01>"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -29273,7 +29162,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -29376,12 +29265,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -29627,24 +29516,24 @@
"deprecated": false
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"return": [
"tpm-tis"
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -29652,12 +29541,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -31009,12 +30898,12 @@
"option": "drive"
}
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -31096,12 +30985,12 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-gic-capabilities",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -31117,7 +31006,7 @@
"kernel": false
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -31128,7 +31017,7 @@
"name": "host"
}
},
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -31161,7 +31050,7 @@
}
}
},
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -31176,7 +31065,7 @@
}
}
},
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
@@ -31209,7 +31098,7 @@
}
}
},
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml
index 58db75d1d7..1f08d3d696 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml
@@ -43,7 +43,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.replies b/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.replies
index 84d993a581..d2e23d84f8 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.replies
@@ -24970,127 +24970,16 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
- "id": "libvirt-19",
+ "id": "libvirt-18",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -25102,7 +24991,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -25212,7 +25101,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -25220,7 +25109,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25283,7 +25172,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25291,7 +25180,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -25530,7 +25419,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -25538,7 +25427,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -25627,7 +25516,7 @@
"type": "size"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -25635,11 +25524,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
- "id": "libvirt-24",
+ "id": "libvirt-23",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -25651,7 +25540,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -25888,7 +25777,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -25896,11 +25785,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
- "id": "libvirt-26",
+ "id": "libvirt-25",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -25912,7 +25801,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -26010,7 +25899,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -26018,7 +25907,7 @@
"arguments": {
"typename": "spapr-pci-host-bridge"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -26114,7 +26003,7 @@
"type": "uint64"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -26122,7 +26011,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -26164,7 +26053,7 @@
"type": "uint64"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -26172,7 +26061,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -26308,7 +26197,7 @@
"type": "size"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -26316,7 +26205,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -26412,7 +26301,7 @@
"type": "bool"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -26420,7 +26309,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26500,7 +26389,7 @@
"type": "int32"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26508,7 +26397,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26723,7 +26612,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26731,7 +26620,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -26810,7 +26699,7 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -26818,7 +26707,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -26892,12 +26781,12 @@
"type": "int"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
"execute": "query-machines",
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -27269,7 +27158,7 @@
"default-ram-id": "ppc_spapr.ram"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -27277,7 +27166,7 @@
"arguments": {
"typename": "pseries-7.0-machine"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -27509,7 +27398,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -27517,7 +27406,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -27620,12 +27509,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -30151,24 +30040,24 @@
"deprecated": false
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"return": [
"tpm-spapr"
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -30176,12 +30065,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -31379,12 +31268,12 @@
"option": "drive"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -31466,7 +31355,7 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml
index 40130f180f..49efb98040 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml
@@ -45,7 +45,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
<flag name='usb-audio'/>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.replies
index a4b1a8490f..58b589dcfa 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.replies
@@ -24590,123 +24590,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -24722,7 +24611,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -24730,7 +24619,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -24840,7 +24729,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -24848,7 +24737,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -24911,7 +24800,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -24919,7 +24808,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -25047,7 +24936,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -25055,7 +24944,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -25294,7 +25183,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -25302,7 +25191,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -25391,7 +25280,7 @@
"type": "size"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -25399,7 +25288,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -25540,7 +25429,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -25548,7 +25437,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -25785,7 +25674,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -25793,11 +25682,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -25809,7 +25698,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -25907,7 +25796,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -25915,7 +25804,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -25978,7 +25867,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -25986,7 +25875,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -26049,7 +25938,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -26057,7 +25946,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -26099,7 +25988,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -26107,7 +25996,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26243,7 +26132,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26251,7 +26140,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26347,7 +26236,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26355,7 +26244,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -26435,7 +26324,7 @@
"type": "int32"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -26443,7 +26332,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -26676,7 +26565,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -26684,7 +26573,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -26899,7 +26788,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -26907,7 +26796,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -26986,7 +26875,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -26994,7 +26883,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -27068,7 +26957,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -27076,7 +26965,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -28832,12 +28721,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -29338,7 +29227,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -29346,7 +29235,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -29449,12 +29338,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -31559,12 +31448,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -31572,12 +31461,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -31585,12 +31474,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -32926,12 +32815,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -33013,16 +32902,16 @@
"capability": "background-snapshot"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "SEV: Failed to open /dev/sev: No such file or directory"
@@ -33031,7 +32920,7 @@
{
"execute": "query-sgx-capabilities",
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -33052,7 +32941,7 @@
}
]
},
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
@@ -33063,7 +32952,7 @@
"name": "host"
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -33400,7 +33289,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -33414,7 +33303,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -33751,7 +33640,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -33766,7 +33655,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
@@ -34103,7 +33992,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
index b7446435a6..00bf47f46a 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
@@ -46,7 +46,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.replies b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.replies
index cf23680766..12ace92630 100644
--- a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.replies
@@ -25678,127 +25678,16 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
- "id": "libvirt-19",
+ "id": "libvirt-18",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -25810,7 +25699,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -25920,7 +25809,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -25928,7 +25817,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25991,7 +25880,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25999,7 +25888,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26238,7 +26127,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26246,7 +26135,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26335,7 +26224,7 @@
"type": "size"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26343,11 +26232,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
- "id": "libvirt-24",
+ "id": "libvirt-23",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -26359,7 +26248,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26596,7 +26485,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26604,11 +26493,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
- "id": "libvirt-26",
+ "id": "libvirt-25",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -26620,7 +26509,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -26718,7 +26607,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -26726,7 +26615,7 @@
"arguments": {
"typename": "spapr-pci-host-bridge"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -26822,7 +26711,7 @@
"type": "uint64"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -26830,7 +26719,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -26872,7 +26761,7 @@
"type": "uint64"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -26880,7 +26769,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27016,7 +26905,7 @@
"type": "size"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27024,7 +26913,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27120,7 +27009,7 @@
"type": "bool"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27128,7 +27017,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27208,7 +27097,7 @@
"type": "int32"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27216,7 +27105,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -27431,7 +27320,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -27439,7 +27328,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -27518,7 +27407,7 @@
"type": "bool"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -27526,7 +27415,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -27600,12 +27489,12 @@
"type": "int"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
"execute": "query-machines",
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -27986,7 +27875,7 @@
"default-ram-id": "ppc_spapr.ram"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -27994,7 +27883,7 @@
"arguments": {
"typename": "pseries-7.1-machine"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -28236,7 +28125,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -28244,7 +28133,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -28357,12 +28246,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -30876,24 +30765,24 @@
"deprecated": false
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"return": [
"tpm-spapr"
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -30901,12 +30790,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -32104,12 +31993,12 @@
"option": "drive"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -32199,7 +32088,7 @@
"capability": "postcopy-preempt"
}
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml
index 6bc39b85f7..2306703402 100644
--- a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml
@@ -44,7 +44,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
<flag name='usb-audio'/>
diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.replies
index 1726cbc5f3..2248247849 100644
--- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.replies
@@ -25326,123 +25326,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -25458,7 +25347,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -25466,7 +25355,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -25576,7 +25465,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -25584,7 +25473,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25647,7 +25536,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25655,7 +25544,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -25783,7 +25672,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -25791,7 +25680,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26030,7 +25919,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26038,7 +25927,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -26127,7 +26016,7 @@
"type": "size"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -26135,7 +26024,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26276,7 +26165,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26284,7 +26173,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -26521,7 +26410,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -26529,11 +26418,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -26545,7 +26434,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -26643,7 +26532,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -26651,7 +26540,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -26719,7 +26608,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -26727,7 +26616,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -26790,7 +26679,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -26798,7 +26687,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -26840,7 +26729,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -26848,7 +26737,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26984,7 +26873,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26992,7 +26881,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -27088,7 +26977,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -27096,7 +26985,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -27176,7 +27065,7 @@
"type": "int32"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -27184,7 +27073,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -27417,7 +27306,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -27425,7 +27314,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -27640,7 +27529,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -27648,7 +27537,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -27727,7 +27616,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -27735,7 +27624,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -27809,7 +27698,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -27817,7 +27706,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -29610,12 +29499,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -30134,7 +30023,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -30142,7 +30031,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -30255,12 +30144,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -32244,12 +32133,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -32257,12 +32146,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -32270,12 +32159,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -33611,12 +33500,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -33706,16 +33595,16 @@
"capability": "postcopy-preempt"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "SEV: Failed to open /dev/sev: No such file or directory"
@@ -33724,11 +33613,11 @@
{
"execute": "query-sgx-capabilities",
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
- "id": "libvirt-48",
+ "id": "libvirt-47",
"error": {
"class": "GenericError",
"desc": "SGX is not enabled in KVM"
@@ -33743,7 +33632,7 @@
"name": "host"
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -34081,7 +33970,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -34095,7 +33984,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -34433,7 +34322,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -34448,7 +34337,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
@@ -34786,7 +34675,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
index 6492695705..9edf6a9733 100644
--- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
@@ -46,7 +46,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.replies b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.replies
index 2df79da5a5..079c9f3d49 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.replies
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.replies
@@ -26411,139 +26411,16 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "account-failed",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "account-invalid",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
- "id": "libvirt-19",
+ "id": "libvirt-18",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -26555,7 +26432,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26665,7 +26542,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26673,7 +26550,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26736,7 +26613,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26744,7 +26621,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26989,7 +26866,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26997,7 +26874,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -27092,7 +26969,7 @@
"type": "size"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -27100,11 +26977,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
- "id": "libvirt-24",
+ "id": "libvirt-23",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -27116,7 +26993,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -27359,7 +27236,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -27367,11 +27244,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
- "id": "libvirt-26",
+ "id": "libvirt-25",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -27383,7 +27260,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -27487,7 +27364,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
@@ -27495,7 +27372,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27631,7 +27508,7 @@
"type": "size"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27639,7 +27516,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27735,7 +27612,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27743,7 +27620,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27829,7 +27706,7 @@
"type": "int32"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27837,7 +27714,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -28058,7 +27935,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -28066,7 +27943,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -28150,7 +28027,7 @@
"type": "bool"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -28158,7 +28035,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -28237,12 +28114,12 @@
"type": "int"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
"execute": "query-machines",
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -28345,7 +28222,7 @@
"default-ram-id": "mpc8544ds.ram"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -28353,7 +28230,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -28466,12 +28343,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -30781,34 +30658,34 @@
"deprecated": false
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"return": [
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"return": [
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -32134,12 +32011,12 @@
"option": "drive"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -32229,5 +32106,5 @@
"capability": "postcopy-preempt"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml
index f190be552a..e80fd7cc25 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml
@@ -43,7 +43,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
<flag name='usb-audio'/>
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.replies b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.replies
index 1883926667..d4200b280f 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.replies
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.replies
@@ -26254,135 +26254,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "account-failed",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "account-invalid",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -26398,7 +26275,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -26406,7 +26283,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26516,7 +26393,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26524,7 +26401,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26587,7 +26464,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26595,7 +26472,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26723,7 +26600,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26731,7 +26608,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26976,7 +26853,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26984,7 +26861,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -27079,7 +26956,7 @@
"type": "size"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -27087,7 +26964,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -27228,7 +27105,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -27236,7 +27113,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -27479,7 +27356,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -27487,11 +27364,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -27503,7 +27380,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27607,7 +27484,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27615,7 +27492,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27688,7 +27565,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27696,7 +27573,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27759,7 +27636,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27767,7 +27644,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27809,7 +27686,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27817,7 +27694,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27953,7 +27830,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27961,7 +27838,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -28057,7 +27934,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -28065,7 +27942,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -28151,7 +28028,7 @@
"type": "int32"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -28159,7 +28036,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -28398,7 +28275,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -28406,7 +28283,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -28627,7 +28504,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -28635,7 +28512,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -28719,7 +28596,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -28727,7 +28604,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -28806,7 +28683,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -28814,7 +28691,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -30607,12 +30484,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -31149,7 +31026,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -31157,7 +31034,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -31270,12 +31147,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -33259,12 +33136,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -33272,12 +33149,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -33285,12 +33162,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -34626,12 +34503,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -34721,16 +34598,16 @@
"capability": "postcopy-preempt"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "SEV: Failed to open /dev/sev: No such file or directory"
@@ -34739,11 +34616,11 @@
{
"execute": "query-sgx-capabilities",
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
- "id": "libvirt-48",
+ "id": "libvirt-47",
"error": {
"class": "GenericError",
"desc": "SGX is not enabled in KVM"
@@ -34758,7 +34635,7 @@
"name": "host"
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -35096,7 +34973,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -35110,7 +34987,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -35448,7 +35325,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -35463,7 +35340,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
@@ -35801,7 +35678,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
index c08a99e734..06ba71e1dd 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
@@ -45,7 +45,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.replies
index 6a465f6856..875ecd2c2c 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.replies
@@ -26254,135 +26254,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "account-failed",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "account-invalid",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -26398,7 +26275,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -26406,7 +26283,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26516,7 +26393,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -26524,7 +26401,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26587,7 +26464,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -26595,7 +26472,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26723,7 +26600,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -26731,7 +26608,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26976,7 +26853,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -26984,7 +26861,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -27079,7 +26956,7 @@
"type": "size"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -27087,7 +26964,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -27228,7 +27105,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -27236,7 +27113,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -27479,7 +27356,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -27487,11 +27364,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -27503,7 +27380,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27607,7 +27484,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -27615,7 +27492,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27688,7 +27565,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -27696,7 +27573,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27759,7 +27636,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -27767,7 +27644,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27809,7 +27686,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -27817,7 +27694,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27953,7 +27830,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -27961,7 +27838,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -28057,7 +27934,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -28065,7 +27942,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -28151,7 +28028,7 @@
"type": "int32"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -28159,7 +28036,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -28398,7 +28275,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -28406,7 +28283,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -28627,7 +28504,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -28635,7 +28512,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -28719,7 +28596,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -28727,7 +28604,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -28806,7 +28683,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -28814,7 +28691,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -30607,12 +30484,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -31149,7 +31026,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -31157,7 +31034,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -31270,12 +31147,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -33259,12 +33136,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -33272,12 +33149,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -33285,12 +33162,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -34626,12 +34503,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -34721,16 +34598,16 @@
"capability": "postcopy-preempt"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "SEV: Failed to open /dev/sev: No such file or directory"
@@ -34739,11 +34616,11 @@
{
"execute": "query-sgx-capabilities",
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
- "id": "libvirt-48",
+ "id": "libvirt-47",
"error": {
"class": "GenericError",
"desc": "SGX is not enabled in KVM"
@@ -34758,7 +34635,7 @@
"name": "host"
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -35096,7 +34973,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -35110,7 +34987,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -35448,7 +35325,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -35463,7 +35340,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
@@ -35801,7 +35678,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
index 37933c0848..e726c5ca97 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
@@ -46,7 +46,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.replies b/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.replies
index f6bebee386..7dbbd90427 100644
--- a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.replies
+++ b/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.replies
@@ -25045,139 +25045,16 @@
}
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-17"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "account-failed",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "account-invalid",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-17"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-18"
+ "id": "libvirt-17"
}
{
- "id": "libvirt-18",
+ "id": "libvirt-17",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'kvm-pit' not found"
@@ -25189,7 +25066,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -25299,7 +25176,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -25307,7 +25184,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -25552,7 +25429,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -25560,7 +25437,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25655,7 +25532,7 @@
"type": "size"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -25663,11 +25540,11 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
- "id": "libvirt-22",
+ "id": "libvirt-21",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'ICH9-LPC' not found"
@@ -25679,7 +25556,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -25922,7 +25799,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -25930,11 +25807,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
- "id": "libvirt-24",
+ "id": "libvirt-23",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -25946,7 +25823,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26050,7 +25927,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -26058,7 +25935,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -26194,7 +26071,7 @@
"type": "size"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -26202,11 +26079,11 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'usb-host' not found"
@@ -26218,7 +26095,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -26304,7 +26181,7 @@
"type": "int32"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -26312,7 +26189,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -26533,7 +26410,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -26541,7 +26418,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -26625,7 +26502,7 @@
"type": "bool"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -26633,7 +26510,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -26712,12 +26589,12 @@
"type": "int"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
"execute": "query-machines",
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26792,7 +26669,7 @@
"default-ram-id": "riscv_virt_board.ram"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -26800,7 +26677,7 @@
"arguments": {
"typename": "virt-machine"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26933,7 +26810,7 @@
"type": "child<container>"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -26941,7 +26818,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -27054,24 +26931,24 @@
"type": "child<container>"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
"return": [
"tpm-tis"
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -27079,12 +26956,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -28455,12 +28332,12 @@
"option": "drive"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -28550,5 +28427,5 @@
"capability": "postcopy-preempt"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml b/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml
index 4c5e72ba56..8286806239 100644
--- a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml
+++ b/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml
@@ -36,7 +36,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='usb-kbd'/>
diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.replies
index 94a36dbbc2..c94a80b7b5 100644
--- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.replies
@@ -27636,135 +27636,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "account-failed",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "account-invalid",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -27780,7 +27657,7 @@
"type": "uint32"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -27788,7 +27665,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -27898,7 +27775,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -27906,7 +27783,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -27969,7 +27846,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -27977,7 +27854,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -28105,7 +27982,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -28113,7 +27990,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -28358,7 +28235,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -28366,7 +28243,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -28461,7 +28338,7 @@
"type": "size"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -28469,7 +28346,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -28615,7 +28492,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -28623,7 +28500,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -28866,7 +28743,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -28874,11 +28751,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -28890,7 +28767,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -28994,7 +28871,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -29002,7 +28879,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -29075,7 +28952,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -29083,7 +28960,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -29146,7 +29023,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -29154,7 +29031,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -29196,7 +29073,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -29204,7 +29081,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -29340,7 +29217,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -29348,7 +29225,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -29444,7 +29321,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -29452,7 +29329,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -29538,7 +29415,7 @@
"type": "int32"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -29546,7 +29423,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -29790,7 +29667,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -29798,7 +29675,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -30019,7 +29896,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -30027,7 +29904,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -30111,7 +29988,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -30119,7 +29996,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -30198,7 +30075,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -30206,7 +30083,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -32023,12 +31900,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -32644,7 +32521,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -32652,7 +32529,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -32765,12 +32642,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -34861,12 +34738,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -34874,12 +34751,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -34887,12 +34764,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -36345,12 +36222,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -36440,16 +36317,16 @@
"capability": "postcopy-preempt"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "SEV: Failed to open /dev/sev: No such file or directory"
@@ -36458,11 +36335,11 @@
{
"execute": "query-sgx-capabilities",
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
- "id": "libvirt-48",
+ "id": "libvirt-47",
"error": {
"class": "GenericError",
"desc": "SGX is not enabled in KVM"
@@ -36477,7 +36354,7 @@
"name": "host"
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -36820,7 +36697,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -36834,7 +36711,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -37177,7 +37054,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -37192,7 +37069,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
@@ -37641,7 +37518,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
index cd5341f4fa..e6174532aa 100644
--- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
@@ -46,7 +46,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.replies
index 21ce2566d3..a8afa88c45 100644
--- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.replies
@@ -27930,135 +27930,12 @@
"id": "libvirt-17"
}
-{
- "execute": "device-list-properties",
- "arguments": {
- "typename": "usb-storage"
- },
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "pcap",
- "type": "str"
- },
- {
- "name": "port",
- "type": "str"
- },
- {
- "default-value": true,
- "name": "msos-desc",
- "description": "on/off",
- "type": "bool"
- },
- {
- "name": "serial",
- "type": "str"
- },
- {
- "default-value": false,
- "name": "commandlog",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "rerror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "default-value": 0,
- "name": "min_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "backend_defaults",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": false,
- "name": "removable",
- "type": "bool"
- },
- {
- "default-value": false,
- "name": "share-rw",
- "type": "bool"
- },
- {
- "default-value": "auto",
- "name": "account-failed",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "logical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "write-cache",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "default-value": 0,
- "name": "opt_io_size",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "account-invalid",
- "description": "on/off/auto",
- "type": "OnOffAuto"
- },
- {
- "name": "drive",
- "description": "Node name or ID of a block device to use as a backend",
- "type": "str"
- },
- {
- "default-value": 4294967295,
- "name": "discard_granularity",
- "type": "size"
- },
- {
- "default-value": 0,
- "name": "physical_block_size",
- "description": "A power of two between 512 B and 2 MiB",
- "type": "size"
- },
- {
- "default-value": "auto",
- "name": "werror",
- "description": "Error handling policy, report/ignore/enospc/stop/auto",
- "type": "BlockdevOnError"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "attached",
- "type": "bool"
- }
- ],
- "id": "libvirt-18"
-}
-
{
"execute": "device-list-properties",
"arguments": {
"typename": "kvm-pit"
},
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -28074,7 +27951,7 @@
"type": "LostTickPolicy"
}
],
- "id": "libvirt-19"
+ "id": "libvirt-18"
}
{
@@ -28082,7 +27959,7 @@
"arguments": {
"typename": "VGA"
},
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -28198,7 +28075,7 @@
"type": "uint32"
}
],
- "id": "libvirt-20"
+ "id": "libvirt-19"
}
{
@@ -28206,7 +28083,7 @@
"arguments": {
"typename": "vmware-svga"
},
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -28275,7 +28152,7 @@
"type": "uint32"
}
],
- "id": "libvirt-21"
+ "id": "libvirt-20"
}
{
@@ -28283,7 +28160,7 @@
"arguments": {
"typename": "qxl"
},
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -28417,7 +28294,7 @@
"type": "int32"
}
],
- "id": "libvirt-22"
+ "id": "libvirt-21"
}
{
@@ -28425,7 +28302,7 @@
"arguments": {
"typename": "virtio-gpu-pci"
},
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -28676,7 +28553,7 @@
"type": "child<virtio-gpu-device>"
}
],
- "id": "libvirt-23"
+ "id": "libvirt-22"
}
{
@@ -28684,7 +28561,7 @@
"arguments": {
"typename": "virtio-gpu-device"
},
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -28779,7 +28656,7 @@
"type": "size"
}
],
- "id": "libvirt-24"
+ "id": "libvirt-23"
}
{
@@ -28787,7 +28664,7 @@
"arguments": {
"typename": "ICH9-LPC"
},
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -28943,7 +28820,7 @@
"type": "uint32"
}
],
- "id": "libvirt-25"
+ "id": "libvirt-24"
}
{
@@ -28951,7 +28828,7 @@
"arguments": {
"typename": "virtio-balloon-pci"
},
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -29200,7 +29077,7 @@
"type": "child<virtio-balloon-device>"
}
],
- "id": "libvirt-26"
+ "id": "libvirt-25"
}
{
@@ -29208,11 +29085,11 @@
"arguments": {
"typename": "virtio-balloon-ccw"
},
- "id": "libvirt-27"
+ "id": "libvirt-26"
}
{
- "id": "libvirt-27",
+ "id": "libvirt-26",
"error": {
"class": "DeviceNotFound",
"desc": "Device 'virtio-balloon-ccw' not found"
@@ -29224,7 +29101,7 @@
"arguments": {
"typename": "virtio-balloon-device"
},
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -29328,7 +29205,7 @@
"type": "guest statistics"
}
],
- "id": "libvirt-28"
+ "id": "libvirt-27"
}
{
@@ -29336,7 +29213,7 @@
"arguments": {
"typename": "intel-iommu"
},
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -29409,7 +29286,7 @@
"type": "bool"
}
],
- "id": "libvirt-29"
+ "id": "libvirt-28"
}
{
@@ -29417,7 +29294,7 @@
"arguments": {
"typename": "mch"
},
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -29486,7 +29363,7 @@
"type": "uint16"
}
],
- "id": "libvirt-30"
+ "id": "libvirt-29"
}
{
@@ -29494,7 +29371,7 @@
"arguments": {
"typename": "nvdimm"
},
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -29536,7 +29413,7 @@
"type": "uint64"
}
],
- "id": "libvirt-31"
+ "id": "libvirt-30"
}
{
@@ -29544,7 +29421,7 @@
"arguments": {
"typename": "pcie-root-port"
},
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -29686,7 +29563,7 @@
"type": "size"
}
],
- "id": "libvirt-32"
+ "id": "libvirt-31"
}
{
@@ -29694,7 +29571,7 @@
"arguments": {
"typename": "usb-host"
},
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -29790,7 +29667,7 @@
"type": "bool"
}
],
- "id": "libvirt-33"
+ "id": "libvirt-32"
}
{
@@ -29798,7 +29675,7 @@
"arguments": {
"typename": "vhost-user-fs-device"
},
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -29884,7 +29761,7 @@
"type": "int32"
}
],
- "id": "libvirt-34"
+ "id": "libvirt-33"
}
{
@@ -29892,7 +29769,7 @@
"arguments": {
"typename": "virtio-mem-pci"
},
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -30142,7 +30019,7 @@
"type": "child<virtio-mem>"
}
],
- "id": "libvirt-35"
+ "id": "libvirt-34"
}
{
@@ -30150,7 +30027,7 @@
"arguments": {
"typename": "virtio-iommu-pci"
},
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -30377,7 +30254,7 @@
"type": "link<PCI>"
}
],
- "id": "libvirt-36"
+ "id": "libvirt-35"
}
{
@@ -30385,7 +30262,7 @@
"arguments": {
"typename": "memory-backend-file"
},
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -30474,7 +30351,7 @@
"type": "bool"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-36"
}
{
@@ -30482,7 +30359,7 @@
"arguments": {
"typename": "memory-backend-memfd"
},
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -30561,7 +30438,7 @@
"type": "int"
}
],
- "id": "libvirt-38"
+ "id": "libvirt-37"
}
{
@@ -30569,7 +30446,7 @@
"arguments": {
"typename": "max-x86_64-cpu"
},
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
@@ -32446,12 +32323,12 @@
"type": "bool"
}
],
- "id": "libvirt-39"
+ "id": "libvirt-38"
}
{
"execute": "query-machines",
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -33087,7 +32964,7 @@
"default-ram-id": "pc.ram"
}
],
- "id": "libvirt-40"
+ "id": "libvirt-39"
}
{
@@ -33095,7 +32972,7 @@
"arguments": {
"typename": "none-machine"
},
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
@@ -33208,12 +33085,12 @@
"type": "child<container>"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-40"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
@@ -35456,12 +35333,12 @@
"deprecated": false
}
],
- "id": "libvirt-42"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
@@ -35469,12 +35346,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-43"
+ "id": "libvirt-42"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
@@ -35482,12 +35359,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-44"
+ "id": "libvirt-43"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
@@ -36953,12 +36830,12 @@
"option": "drive"
}
],
- "id": "libvirt-45"
+ "id": "libvirt-44"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
@@ -37048,16 +36925,16 @@
"capability": "postcopy-preempt"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-45"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-47",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "SEV: Failed to open /dev/sev: No such file or directory"
@@ -37066,11 +36943,11 @@
{
"execute": "query-sgx-capabilities",
- "id": "libvirt-48"
+ "id": "libvirt-47"
}
{
- "id": "libvirt-48",
+ "id": "libvirt-47",
"error": {
"class": "GenericError",
"desc": "SGX is not enabled in KVM"
@@ -37085,7 +36962,7 @@
"name": "host"
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -37443,7 +37320,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-48"
}
{
@@ -37457,7 +37334,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -37815,7 +37692,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-49"
}
{
@@ -37830,7 +37707,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
@@ -38294,7 +38171,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-50"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
index f717c83fec..98a5b2590b 100644
--- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
@@ -46,7 +46,6 @@
<flag name='vfio-pci'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='ich9-intel-hda'/>
<flag name='kvm-pit-lost-tick-policy'/>
--
2.39.3
1 year, 4 months
[PATCH v2] nodedev: transient mdev update on nodeDeviceCreateXML
by Boris Fiuczynski
Update the optional mdev attributes by running an mdevctl update on a
new created nodedev object representing an mdev.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2143158
Signed-off-by: Boris Fiuczynski <fiuczy(a)linux.ibm.com>
---
src/node_device/node_device_udev.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index 4c37ec3189..fce4212728 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -1757,12 +1757,20 @@ nodeStateCleanup(void)
static int
udevHandleOneDevice(struct udev_device *device)
{
+ virNodeDevCapType dev_cap_type;
const char *action = udev_device_get_action(device);
VIR_DEBUG("udev action: '%s': %s", action, udev_device_get_syspath(device));
- if (STREQ(action, "add") || STREQ(action, "change"))
- return udevAddOneDevice(device);
+ if (STREQ(action, "add") || STREQ(action, "change")) {
+ int ret = udevAddOneDevice(device);
+ if (ret == 0 &&
+ udevGetDeviceType(device, &dev_cap_type) == 0 &&
+ dev_cap_type == VIR_NODE_DEV_CAP_MDEV)
+ if (nodeDeviceUpdateMediatedDevices() < 0)
+ VIR_WARN("mdevctl failed to update mediated devices");
+ return ret;
+ }
if (STREQ(action, "remove"))
return udevRemoveOneDevice(device);
--
2.41.0
1 year, 4 months