* [PULL 00/23] Misc patches
@ 2022-05-03 13:12 marcandre.lureau
2022-05-03 13:12 ` [PULL 01/23] Use QEMU_SANITIZE_THREAD marcandre.lureau
` (23 more replies)
0 siblings, 24 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The following changes since commit f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65:
Merge tag 'pull-9p-20220501' of https://github.com/cschoenebeck/qemu into staging (2022-05-01 07:48:11 -0700)
are available in the Git repository at:
git@gitlab.com:marcandre.lureau/qemu.git tags/misc-pull-request
for you to fetch changes up to ff5927baa7ffb9c97873a071f6a8d85a3584182b:
util: rename qemu_*block() socket functions (2022-05-03 15:53:20 +0400)
----------------------------------------------------------------
Misc cleanups
----------------------------------------------------------------
Marc-André Lureau (23):
Use QEMU_SANITIZE_THREAD
Use QEMU_SANITIZE_ADDRESS
tests: move libqtest.h back under qtest/
libqtest: split QMP part in libqmp
Use g_unix_set_fd_nonblocking()
block: move fcntl_setfl()
Replace qemu_pipe() with g_unix_open_pipe()
util: replace pipe()+cloexec with g_unix_open_pipe()
qga: replace pipe() with g_unix_open_pipe(CLOEXEC)
tests: replace pipe() with g_unix_open_pipe(CLOEXEC)
os-posix: replace pipe()+cloexec with g_unix_open_pipe(CLOEXEC)
virtiofsd: replace pipe() with g_unix_open_pipe(CLOEXEC)
io: replace pipe() with g_unix_open_pipe(CLOEXEC)
Replace fcntl(O_NONBLOCK) with g_unix_set_fd_nonblocking()
io: make qio_channel_command_new_pid() static
chardev: replace qemu_set_nonblock()
io: replace qemu_set{_non}block()
qga: replace qemu_set_nonblock()
hw: replace qemu_set_nonblock()
ui: replace qemu_set_nonblock()
net: replace qemu_set_nonblock()
tests: replace qemu_set_nonblock()
util: rename qemu_*block() socket functions
docs/devel/qtest.rst | 2 +-
include/io/channel-command.h | 25 --
include/qemu/atomic.h | 8 +-
include/qemu/osdep.h | 4 -
include/qemu/sockets.h | 6 +-
include/sysemu/os-posix.h | 2 -
subprojects/libvhost-user/include/compiler.h | 1 +
tests/qtest/acpi-utils.h | 2 +-
tests/qtest/boot-sector.h | 2 +-
tests/qtest/fuzz/fuzz.h | 2 +-
tests/qtest/libqmp.h | 50 ++++
tests/qtest/libqos/fw_cfg.h | 2 +-
tests/qtest/libqos/i2c.h | 2 +-
tests/qtest/libqos/libqos.h | 2 +-
tests/qtest/libqos/malloc.h | 2 +-
tests/qtest/libqos/pci.h | 2 +-
tests/qtest/libqos/sdhci-cmd.h | 2 +-
tests/qtest/libqtest-single.h | 2 +-
tests/qtest/{libqos => }/libqtest.h | 29 +--
tests/qtest/migration-helpers.h | 2 +-
tests/qtest/tpm-emu.h | 2 +-
block/file-posix.c | 15 ++
chardev/char-fd.c | 4 +-
chardev/char-pty.c | 5 +-
chardev/char-serial.c | 5 +-
chardev/char-socket.c | 2 +-
chardev/char-stdio.c | 5 +-
contrib/ivshmem-server/ivshmem-server.c | 2 +-
hw/hyperv/syndbg.c | 2 +-
hw/input/virtio-input-host.c | 5 +-
hw/misc/ivshmem.c | 2 +-
hw/virtio/vhost-user.c | 2 +-
hw/virtio/vhost-vsock.c | 11 +-
io/channel-command.c | 46 +++-
io/channel-file.c | 13 +-
io/channel-socket.c | 6 +-
net/l2tpv3.c | 2 +-
net/socket.c | 10 +-
net/tap-bsd.c | 4 +-
net/tap-linux.c | 2 +-
net/tap-solaris.c | 2 +-
net/tap.c | 33 +--
os-posix.c | 3 +-
qemu-nbd.c | 5 +-
qga/channel-posix.c | 2 +-
qga/commands-posix.c | 8 +-
tests/qtest/ac97-test.c | 2 +-
tests/qtest/ahci-test.c | 2 +-
tests/qtest/am53c974-test.c | 2 +-
tests/qtest/arm-cpu-features.c | 2 +-
tests/qtest/aspeed_hace-test.c | 2 +-
tests/qtest/boot-order-test.c | 2 +-
tests/qtest/boot-sector.c | 2 +-
tests/qtest/boot-serial-test.c | 2 +-
tests/qtest/cdrom-test.c | 2 +-
tests/qtest/dbus-display-test.c | 2 +-
tests/qtest/dbus-vmstate-test.c | 2 +-
tests/qtest/device-introspect-test.c | 2 +-
tests/qtest/device-plug-test.c | 2 +-
tests/qtest/drive_del-test.c | 2 +-
tests/qtest/ds1338-test.c | 2 +-
tests/qtest/e1000-test.c | 2 +-
tests/qtest/eepro100-test.c | 2 +-
tests/qtest/endianness-test.c | 2 +-
tests/qtest/erst-test.c | 2 +-
tests/qtest/es1370-test.c | 2 +-
tests/qtest/fdc-test.c | 2 +-
tests/qtest/fuzz-e1000e-test.c | 2 +-
tests/qtest/fuzz-lsi53c895a-test.c | 2 +-
tests/qtest/fuzz-megasas-test.c | 2 +-
tests/qtest/fuzz-sb16-test.c | 2 +-
tests/qtest/fuzz-sdcard-test.c | 2 +-
tests/qtest/fuzz-virtio-scsi-test.c | 2 +-
tests/qtest/fuzz-xlnx-dp-test.c | 2 +-
tests/qtest/fuzz/fuzz.c | 2 +-
tests/qtest/fuzz/generic_fuzz.c | 2 +-
tests/qtest/fuzz/i440fx_fuzz.c | 2 +-
tests/qtest/fuzz/qos_fuzz.c | 2 +-
tests/qtest/fuzz/virtio_blk_fuzz.c | 2 +-
tests/qtest/fuzz/virtio_net_fuzz.c | 4 +-
tests/qtest/fuzz/virtio_scsi_fuzz.c | 2 +-
tests/qtest/fw_cfg-test.c | 2 +-
tests/qtest/hd-geo-test.c | 2 +-
tests/qtest/hexloader-test.c | 2 +-
tests/qtest/ide-test.c | 2 +-
tests/qtest/ipoctal232-test.c | 2 +-
tests/qtest/ivshmem-test.c | 7 +-
tests/qtest/libqmp.c | 233 ++++++++++++++++++
.../libqos/aarch64-xlnx-zcu102-machine.c | 2 +-
tests/qtest/libqos/ahci.c | 2 +-
tests/qtest/libqos/arm-imx25-pdk-machine.c | 2 +-
tests/qtest/libqos/arm-n800-machine.c | 2 +-
tests/qtest/libqos/arm-raspi2-machine.c | 2 +-
tests/qtest/libqos/arm-sabrelite-machine.c | 2 +-
tests/qtest/libqos/arm-smdkc210-machine.c | 2 +-
tests/qtest/libqos/arm-virt-machine.c | 2 +-
.../qtest/libqos/arm-xilinx-zynq-a9-machine.c | 2 +-
tests/qtest/libqos/e1000e.c | 2 +-
tests/qtest/libqos/fw_cfg.c | 2 +-
tests/qtest/libqos/i2c-imx.c | 2 +-
tests/qtest/libqos/i2c-omap.c | 2 +-
tests/qtest/libqos/i2c.c | 2 +-
tests/qtest/libqos/libqos.c | 2 +-
tests/qtest/libqos/pci-pc.c | 2 +-
tests/qtest/libqos/pci-spapr.c | 2 +-
tests/qtest/libqos/ppc64_pseries-machine.c | 2 +-
tests/qtest/libqos/qgraph.c | 2 +-
tests/qtest/libqos/qos_external.c | 2 +-
tests/qtest/libqos/rtas.c | 2 +-
tests/qtest/libqos/sdhci-cmd.c | 2 +-
tests/qtest/libqos/sdhci.c | 2 +-
tests/qtest/libqos/tpci200.c | 2 +-
tests/qtest/libqos/usb.c | 2 +-
tests/qtest/libqos/vhost-user-blk.c | 2 +-
tests/qtest/libqos/virtio-9p.c | 2 +-
tests/qtest/libqos/virtio-balloon.c | 2 +-
tests/qtest/libqos/virtio-blk.c | 2 +-
tests/qtest/libqos/virtio-iommu.c | 2 +-
tests/qtest/libqos/virtio-mmio.c | 2 +-
tests/qtest/libqos/virtio-net.c | 2 +-
tests/qtest/libqos/virtio-pci.c | 2 +-
tests/qtest/libqos/virtio-rng.c | 2 +-
tests/qtest/libqos/virtio-scsi.c | 2 +-
tests/qtest/libqos/virtio-serial.c | 2 +-
tests/qtest/libqos/virtio.c | 2 +-
tests/qtest/libqos/x86_64_pc-machine.c | 2 +-
tests/qtest/libqtest.c | 207 +---------------
tests/qtest/lpc-ich9-test.c | 2 +-
tests/qtest/m48t59-test.c | 2 +-
tests/qtest/machine-none-test.c | 2 +-
tests/qtest/megasas-test.c | 2 +-
tests/qtest/microbit-test.c | 2 +-
tests/qtest/migration-test.c | 2 +-
tests/qtest/modules-test.c | 2 +-
tests/qtest/ne2000-test.c | 2 +-
tests/qtest/npcm7xx_adc-test.c | 2 +-
tests/qtest/npcm7xx_pwm-test.c | 2 +-
tests/qtest/npcm7xx_sdhci-test.c | 2 +-
tests/qtest/npcm7xx_smbus-test.c | 2 +-
tests/qtest/npcm7xx_watchdog_timer-test.c | 2 +-
tests/qtest/numa-test.c | 2 +-
tests/qtest/nvme-test.c | 2 +-
tests/qtest/pca9552-test.c | 2 +-
tests/qtest/pci-test.c | 2 +-
tests/qtest/pcnet-test.c | 2 +-
tests/qtest/pflash-cfi02-test.c | 2 +-
tests/qtest/pnv-xscom-test.c | 2 +-
tests/qtest/prom-env-test.c | 2 +-
tests/qtest/pvpanic-pci-test.c | 2 +-
tests/qtest/pvpanic-test.c | 2 +-
tests/qtest/pxe-test.c | 2 +-
tests/qtest/q35-test.c | 2 +-
tests/qtest/qmp-cmd-test.c | 2 +-
tests/qtest/qmp-test.c | 2 +-
tests/qtest/qom-test.c | 2 +-
tests/qtest/rtas-test.c | 2 +-
tests/qtest/sdhci-test.c | 2 +-
tests/qtest/spapr-phb-test.c | 2 +-
tests/qtest/tco-test.c | 2 +-
tests/qtest/test-filter-mirror.c | 2 +-
tests/qtest/test-filter-redirector.c | 2 +-
tests/qtest/test-hmp.c | 2 +-
tests/qtest/tpm-crb-swtpm-test.c | 2 +-
tests/qtest/tpm-tis-device-swtpm-test.c | 2 +-
tests/qtest/tpm-tis-swtpm-test.c | 2 +-
tests/qtest/tpm-util.c | 2 +-
tests/qtest/tulip-test.c | 2 +-
tests/qtest/vhost-user-test.c | 4 +-
tests/qtest/virtio-net-failover.c | 2 +-
tests/qtest/virtio-rng-test.c | 2 +-
tests/qtest/virtio-test.c | 2 +-
tests/qtest/vmgenid-test.c | 2 +-
tests/qtest/vmxnet3-test.c | 2 +-
tests/qtest/wdt_ib700-test.c | 2 +-
tests/qtest/xlnx-can-test.c | 2 +-
tests/unit/socket-helpers.c | 2 +-
tests/unit/test-crypto-tlssession.c | 8 +-
tests/unit/test-io-channel-file.c | 2 +-
tests/unit/test-iov.c | 4 +-
tests/unit/test-qga.c | 2 +-
tools/virtiofsd/helper.c | 2 +-
ui/input-linux.c | 5 +-
util/compatfd.c | 5 +-
util/coroutine-ucontext.c | 2 +-
util/event_notifier-posix.c | 8 +-
util/main-loop.c | 2 +-
util/oslib-posix.c | 61 +----
util/oslib-win32.c | 8 +-
util/vhost-user-server.c | 4 +-
scripts/oss-fuzz/output_reproducer.py | 2 +-
tests/qtest/libqos/meson.build | 5 +-
tests/unit/meson.build | 2 +-
192 files changed, 609 insertions(+), 565 deletions(-)
create mode 120000 subprojects/libvhost-user/include/compiler.h
create mode 100644 tests/qtest/libqmp.h
rename tests/qtest/{libqos => }/libqtest.h (95%)
create mode 100644 tests/qtest/libqmp.c
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PULL 01/23] Use QEMU_SANITIZE_THREAD
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 02/23] Use QEMU_SANITIZE_ADDRESS marcandre.lureau
` (22 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
include/qemu/atomic.h | 8 +++++---
subprojects/libvhost-user/include/compiler.h | 1 +
2 files changed, 6 insertions(+), 3 deletions(-)
create mode 120000 subprojects/libvhost-user/include/compiler.h
diff --git a/include/qemu/atomic.h b/include/qemu/atomic.h
index 112a29910bea..7e8fc8e7cde2 100644
--- a/include/qemu/atomic.h
+++ b/include/qemu/atomic.h
@@ -15,6 +15,8 @@
#ifndef QEMU_ATOMIC_H
#define QEMU_ATOMIC_H
+#include "compiler.h"
+
/* Compiler barrier */
#define barrier() ({ asm volatile("" ::: "memory"); (void)0; })
@@ -81,7 +83,7 @@
* no processors except Alpha need a barrier here. Leave it in if
* using Thread Sanitizer to avoid warnings, otherwise optimize it away.
*/
-#if defined(__SANITIZE_THREAD__)
+#ifdef QEMU_SANITIZE_THREAD
#define smp_read_barrier_depends() ({ barrier(); __atomic_thread_fence(__ATOMIC_CONSUME); })
#elif defined(__alpha__)
#define smp_read_barrier_depends() asm volatile("mb":::"memory")
@@ -146,7 +148,7 @@
/* See above: most compilers currently treat consume and acquire the
* same, but this slows down qatomic_rcu_read unnecessarily.
*/
-#ifdef __SANITIZE_THREAD__
+#ifdef QEMU_SANITIZE_THREAD
#define qatomic_rcu_read__nocheck(ptr, valptr) \
__atomic_load(ptr, valptr, __ATOMIC_CONSUME);
#else
@@ -254,7 +256,7 @@
#define qatomic_mb_read(ptr) \
qatomic_load_acquire(ptr)
-#if !defined(__SANITIZE_THREAD__) && \
+#if !defined(QEMU_SANITIZE_THREAD) && \
(defined(__i386__) || defined(__x86_64__) || defined(__s390x__))
/* This is more efficient than a store plus a fence. */
# define qatomic_mb_set(ptr, i) ((void)qatomic_xchg(ptr, i))
diff --git a/subprojects/libvhost-user/include/compiler.h b/subprojects/libvhost-user/include/compiler.h
new file mode 120000
index 000000000000..de7b70697cd2
--- /dev/null
+++ b/subprojects/libvhost-user/include/compiler.h
@@ -0,0 +1 @@
+../../../include/qemu/compiler.h
\ No newline at end of file
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 02/23] Use QEMU_SANITIZE_ADDRESS
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
2022-05-03 13:12 ` [PULL 01/23] Use QEMU_SANITIZE_THREAD marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 03/23] tests: move libqtest.h back under qtest/ marcandre.lureau
` (21 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/fdc-test.c | 2 +-
util/coroutine-ucontext.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/qtest/fdc-test.c b/tests/qtest/fdc-test.c
index 4aa72f36431f..0b3c2c0d523f 100644
--- a/tests/qtest/fdc-test.c
+++ b/tests/qtest/fdc-test.c
@@ -550,7 +550,7 @@ static void fuzz_registers(void)
static bool qtest_check_clang_sanitizer(void)
{
-#if defined(__SANITIZE_ADDRESS__) || __has_feature(address_sanitizer)
+#ifdef QEMU_SANITIZE_ADDRESS
return true;
#else
g_test_skip("QEMU not configured using --enable-sanitizers");
diff --git a/util/coroutine-ucontext.c b/util/coroutine-ucontext.c
index 904b375192ca..ed368e1a3ec3 100644
--- a/util/coroutine-ucontext.c
+++ b/util/coroutine-ucontext.c
@@ -30,7 +30,7 @@
#include <valgrind/valgrind.h>
#endif
-#if defined(__SANITIZE_ADDRESS__) || __has_feature(address_sanitizer)
+#ifdef QEMU_SANITIZE_ADDRESS
#ifdef CONFIG_ASAN_IFACE_FIBER
#define CONFIG_ASAN 1
#include <sanitizer/asan_interface.h>
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 03/23] tests: move libqtest.h back under qtest/
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
2022-05-03 13:12 ` [PULL 01/23] Use QEMU_SANITIZE_THREAD marcandre.lureau
2022-05-03 13:12 ` [PULL 02/23] Use QEMU_SANITIZE_ADDRESS marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 04/23] libqtest: split QMP part in libqmp marcandre.lureau
` (20 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Since commit a2ce7dbd917 ("meson: convert tests/qtest to meson"),
libqtest.h is under libqos/ directory, while libqtest.c is still in
qtest/. Move back to its original location to avoid mixing with libqos/.
Suggested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
---
docs/devel/qtest.rst | 2 +-
tests/qtest/acpi-utils.h | 2 +-
tests/qtest/boot-sector.h | 2 +-
tests/qtest/fuzz/fuzz.h | 2 +-
tests/qtest/libqos/fw_cfg.h | 2 +-
tests/qtest/libqos/i2c.h | 2 +-
tests/qtest/libqos/libqos.h | 2 +-
tests/qtest/libqos/malloc.h | 2 +-
tests/qtest/libqos/pci.h | 2 +-
tests/qtest/libqos/sdhci-cmd.h | 2 +-
tests/qtest/libqtest-single.h | 2 +-
tests/qtest/{libqos => }/libqtest.h | 0
tests/qtest/migration-helpers.h | 2 +-
tests/qtest/tpm-emu.h | 2 +-
tests/qtest/ac97-test.c | 2 +-
tests/qtest/ahci-test.c | 2 +-
tests/qtest/am53c974-test.c | 2 +-
tests/qtest/arm-cpu-features.c | 2 +-
tests/qtest/aspeed_hace-test.c | 2 +-
tests/qtest/boot-order-test.c | 2 +-
tests/qtest/boot-sector.c | 2 +-
tests/qtest/boot-serial-test.c | 2 +-
tests/qtest/cdrom-test.c | 2 +-
tests/qtest/dbus-display-test.c | 2 +-
tests/qtest/dbus-vmstate-test.c | 2 +-
tests/qtest/device-introspect-test.c | 2 +-
tests/qtest/device-plug-test.c | 2 +-
tests/qtest/drive_del-test.c | 2 +-
tests/qtest/ds1338-test.c | 2 +-
tests/qtest/e1000-test.c | 2 +-
tests/qtest/eepro100-test.c | 2 +-
tests/qtest/endianness-test.c | 2 +-
tests/qtest/erst-test.c | 2 +-
tests/qtest/es1370-test.c | 2 +-
tests/qtest/fuzz-e1000e-test.c | 2 +-
tests/qtest/fuzz-lsi53c895a-test.c | 2 +-
tests/qtest/fuzz-megasas-test.c | 2 +-
tests/qtest/fuzz-sb16-test.c | 2 +-
tests/qtest/fuzz-sdcard-test.c | 2 +-
tests/qtest/fuzz-virtio-scsi-test.c | 2 +-
tests/qtest/fuzz-xlnx-dp-test.c | 2 +-
tests/qtest/fuzz/fuzz.c | 2 +-
tests/qtest/fuzz/generic_fuzz.c | 2 +-
tests/qtest/fuzz/i440fx_fuzz.c | 2 +-
tests/qtest/fuzz/qos_fuzz.c | 2 +-
tests/qtest/fuzz/virtio_blk_fuzz.c | 2 +-
tests/qtest/fuzz/virtio_net_fuzz.c | 2 +-
tests/qtest/fuzz/virtio_scsi_fuzz.c | 2 +-
tests/qtest/fw_cfg-test.c | 2 +-
tests/qtest/hd-geo-test.c | 2 +-
tests/qtest/hexloader-test.c | 2 +-
tests/qtest/ide-test.c | 2 +-
tests/qtest/ipoctal232-test.c | 2 +-
tests/qtest/ivshmem-test.c | 2 +-
tests/qtest/libqos/aarch64-xlnx-zcu102-machine.c | 2 +-
tests/qtest/libqos/ahci.c | 2 +-
tests/qtest/libqos/arm-imx25-pdk-machine.c | 2 +-
tests/qtest/libqos/arm-n800-machine.c | 2 +-
tests/qtest/libqos/arm-raspi2-machine.c | 2 +-
tests/qtest/libqos/arm-sabrelite-machine.c | 2 +-
tests/qtest/libqos/arm-smdkc210-machine.c | 2 +-
tests/qtest/libqos/arm-virt-machine.c | 2 +-
tests/qtest/libqos/arm-xilinx-zynq-a9-machine.c | 2 +-
tests/qtest/libqos/e1000e.c | 2 +-
tests/qtest/libqos/fw_cfg.c | 2 +-
tests/qtest/libqos/i2c-imx.c | 2 +-
tests/qtest/libqos/i2c-omap.c | 2 +-
tests/qtest/libqos/i2c.c | 2 +-
tests/qtest/libqos/libqos.c | 2 +-
tests/qtest/libqos/pci-pc.c | 2 +-
tests/qtest/libqos/pci-spapr.c | 2 +-
tests/qtest/libqos/ppc64_pseries-machine.c | 2 +-
tests/qtest/libqos/qgraph.c | 2 +-
tests/qtest/libqos/qos_external.c | 2 +-
tests/qtest/libqos/rtas.c | 2 +-
tests/qtest/libqos/sdhci-cmd.c | 2 +-
tests/qtest/libqos/sdhci.c | 2 +-
tests/qtest/libqos/tpci200.c | 2 +-
tests/qtest/libqos/usb.c | 2 +-
tests/qtest/libqos/vhost-user-blk.c | 2 +-
tests/qtest/libqos/virtio-9p.c | 2 +-
tests/qtest/libqos/virtio-balloon.c | 2 +-
tests/qtest/libqos/virtio-blk.c | 2 +-
tests/qtest/libqos/virtio-iommu.c | 2 +-
tests/qtest/libqos/virtio-mmio.c | 2 +-
tests/qtest/libqos/virtio-net.c | 2 +-
tests/qtest/libqos/virtio-pci.c | 2 +-
tests/qtest/libqos/virtio-rng.c | 2 +-
tests/qtest/libqos/virtio-scsi.c | 2 +-
tests/qtest/libqos/virtio-serial.c | 2 +-
tests/qtest/libqos/virtio.c | 2 +-
tests/qtest/libqos/x86_64_pc-machine.c | 2 +-
tests/qtest/libqtest.c | 2 +-
tests/qtest/lpc-ich9-test.c | 2 +-
tests/qtest/m48t59-test.c | 2 +-
tests/qtest/machine-none-test.c | 2 +-
tests/qtest/megasas-test.c | 2 +-
tests/qtest/microbit-test.c | 2 +-
tests/qtest/migration-test.c | 2 +-
tests/qtest/modules-test.c | 2 +-
tests/qtest/ne2000-test.c | 2 +-
tests/qtest/npcm7xx_adc-test.c | 2 +-
tests/qtest/npcm7xx_pwm-test.c | 2 +-
tests/qtest/npcm7xx_sdhci-test.c | 2 +-
tests/qtest/npcm7xx_smbus-test.c | 2 +-
tests/qtest/npcm7xx_watchdog_timer-test.c | 2 +-
tests/qtest/numa-test.c | 2 +-
tests/qtest/nvme-test.c | 2 +-
tests/qtest/pca9552-test.c | 2 +-
tests/qtest/pci-test.c | 2 +-
tests/qtest/pcnet-test.c | 2 +-
tests/qtest/pflash-cfi02-test.c | 2 +-
tests/qtest/pnv-xscom-test.c | 2 +-
tests/qtest/prom-env-test.c | 2 +-
tests/qtest/pvpanic-pci-test.c | 2 +-
tests/qtest/pvpanic-test.c | 2 +-
tests/qtest/pxe-test.c | 2 +-
tests/qtest/q35-test.c | 2 +-
tests/qtest/qmp-cmd-test.c | 2 +-
tests/qtest/qmp-test.c | 2 +-
tests/qtest/qom-test.c | 2 +-
tests/qtest/rtas-test.c | 2 +-
tests/qtest/sdhci-test.c | 2 +-
tests/qtest/spapr-phb-test.c | 2 +-
tests/qtest/tco-test.c | 2 +-
tests/qtest/test-filter-mirror.c | 2 +-
tests/qtest/test-filter-redirector.c | 2 +-
tests/qtest/test-hmp.c | 2 +-
tests/qtest/tpm-crb-swtpm-test.c | 2 +-
tests/qtest/tpm-tis-device-swtpm-test.c | 2 +-
tests/qtest/tpm-tis-swtpm-test.c | 2 +-
tests/qtest/tpm-util.c | 2 +-
tests/qtest/tulip-test.c | 2 +-
tests/qtest/virtio-net-failover.c | 2 +-
tests/qtest/virtio-rng-test.c | 2 +-
tests/qtest/virtio-test.c | 2 +-
tests/qtest/vmgenid-test.c | 2 +-
tests/qtest/vmxnet3-test.c | 2 +-
tests/qtest/wdt_ib700-test.c | 2 +-
tests/qtest/xlnx-can-test.c | 2 +-
tests/unit/test-qga.c | 2 +-
scripts/oss-fuzz/output_reproducer.py | 2 +-
142 files changed, 141 insertions(+), 141 deletions(-)
rename tests/qtest/{libqos => }/libqtest.h (100%)
diff --git a/docs/devel/qtest.rst b/docs/devel/qtest.rst
index add293d39700..0455aa06ab28 100644
--- a/docs/devel/qtest.rst
+++ b/docs/devel/qtest.rst
@@ -88,4 +88,4 @@ QTest Protocol
libqtest API reference
----------------------
-.. kernel-doc:: tests/qtest/libqos/libqtest.h
+.. kernel-doc:: tests/qtest/libqtest.h
diff --git a/tests/qtest/acpi-utils.h b/tests/qtest/acpi-utils.h
index 261784d25189..0c8678068931 100644
--- a/tests/qtest/acpi-utils.h
+++ b/tests/qtest/acpi-utils.h
@@ -13,7 +13,7 @@
#ifndef TEST_ACPI_UTILS_H
#define TEST_ACPI_UTILS_H
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/* DSDT and SSDTs format */
typedef struct {
diff --git a/tests/qtest/boot-sector.h b/tests/qtest/boot-sector.h
index b339fdee4c84..6ee6bb4d97f4 100644
--- a/tests/qtest/boot-sector.h
+++ b/tests/qtest/boot-sector.h
@@ -14,7 +14,7 @@
#ifndef TEST_BOOT_SECTOR_H
#define TEST_BOOT_SECTOR_H
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/* Create boot disk file. fname must be a suitable string for mkstemp() */
int boot_sector_init(char *fname);
diff --git a/tests/qtest/fuzz/fuzz.h b/tests/qtest/fuzz/fuzz.h
index 3a8570e84c79..c5f0b7227a10 100644
--- a/tests/qtest/fuzz/fuzz.h
+++ b/tests/qtest/fuzz/fuzz.h
@@ -17,7 +17,7 @@
#include "qemu/units.h"
#include "qapi/error.h"
-#include "tests/qtest/libqos/libqtest.h"
+#include "tests/qtest/libqtest.h"
/**
* A libfuzzer fuzzing target
diff --git a/tests/qtest/libqos/fw_cfg.h b/tests/qtest/libqos/fw_cfg.h
index c6a7cf8cf053..b0456a15df19 100644
--- a/tests/qtest/libqos/fw_cfg.h
+++ b/tests/qtest/libqos/fw_cfg.h
@@ -13,7 +13,7 @@
#ifndef LIBQOS_FW_CFG_H
#define LIBQOS_FW_CFG_H
-#include "libqtest.h"
+#include "../libqtest.h"
typedef struct QFWCFG QFWCFG;
diff --git a/tests/qtest/libqos/i2c.h b/tests/qtest/libqos/i2c.h
index 1341bac1c599..d0322409227c 100644
--- a/tests/qtest/libqos/i2c.h
+++ b/tests/qtest/libqos/i2c.h
@@ -9,7 +9,7 @@
#ifndef LIBQOS_I2C_H
#define LIBQOS_I2C_H
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qgraph.h"
typedef struct I2CAdapter I2CAdapter;
diff --git a/tests/qtest/libqos/libqos.h b/tests/qtest/libqos/libqos.h
index e0b2bfe7caf9..ba7df448cad7 100644
--- a/tests/qtest/libqos/libqos.h
+++ b/tests/qtest/libqos/libqos.h
@@ -1,7 +1,7 @@
#ifndef LIBQOS_H
#define LIBQOS_H
-#include "libqtest.h"
+#include "../libqtest.h"
#include "pci.h"
#include "malloc.h"
diff --git a/tests/qtest/libqos/malloc.h b/tests/qtest/libqos/malloc.h
index 4d1a2e2bef4a..bbb8c743cc5a 100644
--- a/tests/qtest/libqos/malloc.h
+++ b/tests/qtest/libqos/malloc.h
@@ -14,7 +14,7 @@
#define LIBQOS_MALLOC_H
#include "qemu/queue.h"
-#include "libqtest.h"
+#include "../libqtest.h"
typedef enum {
ALLOC_NO_FLAGS = 0x00,
diff --git a/tests/qtest/libqos/pci.h b/tests/qtest/libqos/pci.h
index becb800f9e6a..e705e06598c2 100644
--- a/tests/qtest/libqos/pci.h
+++ b/tests/qtest/libqos/pci.h
@@ -13,7 +13,7 @@
#ifndef LIBQOS_PCI_H
#define LIBQOS_PCI_H
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qgraph.h"
#define QPCI_PIO_LIMIT 0x10000
diff --git a/tests/qtest/libqos/sdhci-cmd.h b/tests/qtest/libqos/sdhci-cmd.h
index 64763c5a2ace..9e61dd494464 100644
--- a/tests/qtest/libqos/sdhci-cmd.h
+++ b/tests/qtest/libqos/sdhci-cmd.h
@@ -14,7 +14,7 @@
* for more details.
*/
-#include "libqtest.h"
+#include "../libqtest.h"
/* more details at hw/sd/sdhci-internal.h */
#define SDHC_BLKSIZE 0x04
diff --git a/tests/qtest/libqtest-single.h b/tests/qtest/libqtest-single.h
index b0838b9e0e71..4e7d0ae1dcd3 100644
--- a/tests/qtest/libqtest-single.h
+++ b/tests/qtest/libqtest-single.h
@@ -11,7 +11,7 @@
#ifndef LIBQTEST_SINGLE_H
#define LIBQTEST_SINGLE_H
-#include "libqos/libqtest.h"
+#include "libqtest.h"
QTestState *global_qtest __attribute__((common, weak));
diff --git a/tests/qtest/libqos/libqtest.h b/tests/qtest/libqtest.h
similarity index 100%
rename from tests/qtest/libqos/libqtest.h
rename to tests/qtest/libqtest.h
diff --git a/tests/qtest/migration-helpers.h b/tests/qtest/migration-helpers.h
index 555adafce129..c7872e84421f 100644
--- a/tests/qtest/migration-helpers.h
+++ b/tests/qtest/migration-helpers.h
@@ -12,7 +12,7 @@
#ifndef MIGRATION_HELPERS_H_
#define MIGRATION_HELPERS_H_
-#include "libqos/libqtest.h"
+#include "libqtest.h"
extern bool got_stop;
diff --git a/tests/qtest/tpm-emu.h b/tests/qtest/tpm-emu.h
index c33d99af3743..712cee9b7a54 100644
--- a/tests/qtest/tpm-emu.h
+++ b/tests/qtest/tpm-emu.h
@@ -22,7 +22,7 @@
#include "qemu/sockets.h"
#include "io/channel.h"
#include "sysemu/tpm.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
struct tpm_hdr {
uint16_t tag;
diff --git a/tests/qtest/ac97-test.c b/tests/qtest/ac97-test.c
index e09f2495d24d..b084e31bff5f 100644
--- a/tests/qtest/ac97-test.c
+++ b/tests/qtest/ac97-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/ahci-test.c b/tests/qtest/ahci-test.c
index aff5f3f79776..f1e510b0ac00 100644
--- a/tests/qtest/ahci-test.c
+++ b/tests/qtest/ahci-test.c
@@ -25,7 +25,7 @@
#include "qemu/osdep.h"
#include <getopt.h>
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/libqos-pc.h"
#include "libqos/ahci.h"
#include "libqos/pci-pc.h"
diff --git a/tests/qtest/am53c974-test.c b/tests/qtest/am53c974-test.c
index d214a912b3b4..ed3ac7db20de 100644
--- a/tests/qtest/am53c974-test.c
+++ b/tests/qtest/am53c974-test.c
@@ -9,7 +9,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
static void test_cmdfifo_underflow_ok(void)
diff --git a/tests/qtest/arm-cpu-features.c b/tests/qtest/arm-cpu-features.c
index f76652143acc..5a145273860c 100644
--- a/tests/qtest/arm-cpu-features.c
+++ b/tests/qtest/arm-cpu-features.c
@@ -10,7 +10,7 @@
*/
#include "qemu/osdep.h"
#include "qemu/bitops.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qjson.h"
diff --git a/tests/qtest/aspeed_hace-test.c b/tests/qtest/aspeed_hace-test.c
index 58aa22014d04..be0dd71df9bd 100644
--- a/tests/qtest/aspeed_hace-test.c
+++ b/tests/qtest/aspeed_hace-test.c
@@ -7,7 +7,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/bitops.h"
#define HACE_CMD 0x10
diff --git a/tests/qtest/boot-order-test.c b/tests/qtest/boot-order-test.c
index f1f59b1261fe..0680d79d6da3 100644
--- a/tests/qtest/boot-order-test.c
+++ b/tests/qtest/boot-order-test.c
@@ -12,7 +12,7 @@
#include "qemu/osdep.h"
#include "libqos/fw_cfg.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#include "standard-headers/linux/qemu_fw_cfg.h"
diff --git a/tests/qtest/boot-sector.c b/tests/qtest/boot-sector.c
index 9d9825bc8145..44a109abd8f0 100644
--- a/tests/qtest/boot-sector.c
+++ b/tests/qtest/boot-sector.c
@@ -12,7 +12,7 @@
*/
#include "qemu/osdep.h"
#include "boot-sector.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#define LOW(x) ((x) & 0xff)
#define HIGH(x) ((x) >> 8)
diff --git a/tests/qtest/boot-serial-test.c b/tests/qtest/boot-serial-test.c
index d72a82d6292e..2f99d71cab35 100644
--- a/tests/qtest/boot-serial-test.c
+++ b/tests/qtest/boot-serial-test.c
@@ -14,7 +14,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/libqos-spapr.h"
static const uint8_t bios_avr[] = {
diff --git a/tests/qtest/cdrom-test.c b/tests/qtest/cdrom-test.c
index fdd889a487db..a7766a9e6571 100644
--- a/tests/qtest/cdrom-test.c
+++ b/tests/qtest/cdrom-test.c
@@ -11,7 +11,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "boot-sector.h"
#include "qapi/qmp/qdict.h"
diff --git a/tests/qtest/dbus-display-test.c b/tests/qtest/dbus-display-test.c
index 81043162dfdd..8be597476315 100644
--- a/tests/qtest/dbus-display-test.c
+++ b/tests/qtest/dbus-display-test.c
@@ -2,7 +2,7 @@
#include "qemu/dbus.h"
#include <gio/gio.h>
#include <gio/gunixfdlist.h>
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "dbus-display1.h"
static GDBusConnection*
diff --git a/tests/qtest/dbus-vmstate-test.c b/tests/qtest/dbus-vmstate-test.c
index a8acab763f5d..74ede651f63d 100644
--- a/tests/qtest/dbus-vmstate-test.c
+++ b/tests/qtest/dbus-vmstate-test.c
@@ -1,7 +1,7 @@
#include "qemu/osdep.h"
#include <glib/gstdio.h>
#include <gio/gio.h>
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "dbus-vmstate1.h"
#include "migration-helpers.h"
diff --git a/tests/qtest/device-introspect-test.c b/tests/qtest/device-introspect-test.c
index adf39b2518e8..5b0ffe43f5f4 100644
--- a/tests/qtest/device-introspect-test.c
+++ b/tests/qtest/device-introspect-test.c
@@ -21,7 +21,7 @@
#include "qapi/qmp/qstring.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qlist.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
const char common_args[] = "-nodefaults -machine none";
diff --git a/tests/qtest/device-plug-test.c b/tests/qtest/device-plug-test.c
index 404a92e1328a..2e3137843e37 100644
--- a/tests/qtest/device-plug-test.c
+++ b/tests/qtest/device-plug-test.c
@@ -11,7 +11,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qstring.h"
diff --git a/tests/qtest/drive_del-test.c b/tests/qtest/drive_del-test.c
index 0cc18dfa4aae..5e6d58b4dd26 100644
--- a/tests/qtest/drive_del-test.c
+++ b/tests/qtest/drive_del-test.c
@@ -11,7 +11,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/virtio.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qlist.h"
diff --git a/tests/qtest/ds1338-test.c b/tests/qtest/ds1338-test.c
index c5d46bcc643d..f6ade9a050fb 100644
--- a/tests/qtest/ds1338-test.c
+++ b/tests/qtest/ds1338-test.c
@@ -18,7 +18,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/i2c.h"
#define DS1338_ADDR 0x68
diff --git a/tests/qtest/e1000-test.c b/tests/qtest/e1000-test.c
index ea286d179304..c387984ef6d6 100644
--- a/tests/qtest/e1000-test.c
+++ b/tests/qtest/e1000-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/eepro100-test.c b/tests/qtest/eepro100-test.c
index d72ad099f1eb..8dbffff0b81b 100644
--- a/tests/qtest/eepro100-test.c
+++ b/tests/qtest/eepro100-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/endianness-test.c b/tests/qtest/endianness-test.c
index 2f5a88bf4ce5..222d116fae2d 100644
--- a/tests/qtest/endianness-test.c
+++ b/tests/qtest/endianness-test.c
@@ -13,7 +13,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/bswap.h"
typedef struct TestCase TestCase;
diff --git a/tests/qtest/erst-test.c b/tests/qtest/erst-test.c
index a0adc35bef7f..4e768a126f6a 100644
--- a/tests/qtest/erst-test.c
+++ b/tests/qtest/erst-test.c
@@ -10,7 +10,7 @@
#include "qemu/osdep.h"
#include <glib/gstdio.h>
#include "libqos/libqos-pc.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "hw/pci/pci.h"
diff --git a/tests/qtest/es1370-test.c b/tests/qtest/es1370-test.c
index 2fd7fd2d3d30..adccdac1be57 100644
--- a/tests/qtest/es1370-test.c
+++ b/tests/qtest/es1370-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/fuzz-e1000e-test.c b/tests/qtest/fuzz-e1000e-test.c
index 66229e60964a..5052883fb6a8 100644
--- a/tests/qtest/fuzz-e1000e-test.c
+++ b/tests/qtest/fuzz-e1000e-test.c
@@ -8,7 +8,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/*
* https://bugs.launchpad.net/qemu/+bug/1879531
diff --git a/tests/qtest/fuzz-lsi53c895a-test.c b/tests/qtest/fuzz-lsi53c895a-test.c
index 031d9de2419b..2e8e67859efb 100644
--- a/tests/qtest/fuzz-lsi53c895a-test.c
+++ b/tests/qtest/fuzz-lsi53c895a-test.c
@@ -6,7 +6,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/*
* This used to trigger the assert in lsi_do_dma()
diff --git a/tests/qtest/fuzz-megasas-test.c b/tests/qtest/fuzz-megasas-test.c
index 129b182f830c..287fe19fc764 100644
--- a/tests/qtest/fuzz-megasas-test.c
+++ b/tests/qtest/fuzz-megasas-test.c
@@ -9,7 +9,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/*
* This used to trigger the assert in scsi_dma_complete
diff --git a/tests/qtest/fuzz-sb16-test.c b/tests/qtest/fuzz-sb16-test.c
index 91fdcd1e8a0f..a65826b94378 100644
--- a/tests/qtest/fuzz-sb16-test.c
+++ b/tests/qtest/fuzz-sb16-test.c
@@ -7,7 +7,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/*
* This used to trigger the assert in audio_calloc
diff --git a/tests/qtest/fuzz-sdcard-test.c b/tests/qtest/fuzz-sdcard-test.c
index d0f4e0e93c0b..e7fd818148e8 100644
--- a/tests/qtest/fuzz-sdcard-test.c
+++ b/tests/qtest/fuzz-sdcard-test.c
@@ -7,7 +7,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/*
* https://gitlab.com/qemu-project/qemu/-/issues/450
diff --git a/tests/qtest/fuzz-virtio-scsi-test.c b/tests/qtest/fuzz-virtio-scsi-test.c
index c9b6fe21231d..71c91b03568d 100644
--- a/tests/qtest/fuzz-virtio-scsi-test.c
+++ b/tests/qtest/fuzz-virtio-scsi-test.c
@@ -9,7 +9,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/*
* Here a MemoryRegionCache pointed to an MMIO region but had a
diff --git a/tests/qtest/fuzz-xlnx-dp-test.c b/tests/qtest/fuzz-xlnx-dp-test.c
index 69eb6c0eb104..51e9a373002c 100644
--- a/tests/qtest/fuzz-xlnx-dp-test.c
+++ b/tests/qtest/fuzz-xlnx-dp-test.c
@@ -7,7 +7,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/*
* This used to trigger the out-of-bounds read in xlnx_dp_read
diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c
index 5f77c849837f..a7a5e14fa3bc 100644
--- a/tests/qtest/fuzz/fuzz.c
+++ b/tests/qtest/fuzz/fuzz.c
@@ -21,7 +21,7 @@
#include "sysemu/runstate.h"
#include "qemu/main-loop.h"
#include "qemu/rcu.h"
-#include "tests/qtest/libqos/libqtest.h"
+#include "tests/qtest/libqtest.h"
#include "tests/qtest/libqos/qgraph.h"
#include "fuzz.h"
diff --git a/tests/qtest/fuzz/generic_fuzz.c b/tests/qtest/fuzz/generic_fuzz.c
index bce83604825e..25df19fd5af3 100644
--- a/tests/qtest/fuzz/generic_fuzz.c
+++ b/tests/qtest/fuzz/generic_fuzz.c
@@ -15,7 +15,7 @@
#include <wordexp.h>
#include "hw/core/cpu.h"
-#include "tests/qtest/libqos/libqtest.h"
+#include "tests/qtest/libqtest.h"
#include "tests/qtest/libqos/pci-pc.h"
#include "fuzz.h"
#include "fork_fuzz.h"
diff --git a/tests/qtest/fuzz/i440fx_fuzz.c b/tests/qtest/fuzz/i440fx_fuzz.c
index 86796bff2bca..b17fc725dfd6 100644
--- a/tests/qtest/fuzz/i440fx_fuzz.c
+++ b/tests/qtest/fuzz/i440fx_fuzz.c
@@ -13,7 +13,7 @@
#include "qemu/osdep.h"
#include "qemu/main-loop.h"
-#include "tests/qtest/libqos/libqtest.h"
+#include "tests/qtest/libqtest.h"
#include "tests/qtest/libqos/pci.h"
#include "tests/qtest/libqos/pci-pc.h"
#include "fuzz.h"
diff --git a/tests/qtest/fuzz/qos_fuzz.c b/tests/qtest/fuzz/qos_fuzz.c
index dc891d838b6a..c856d3d500e8 100644
--- a/tests/qtest/fuzz/qos_fuzz.c
+++ b/tests/qtest/fuzz/qos_fuzz.c
@@ -22,7 +22,7 @@
#include "exec/memory.h"
#include "qemu/main-loop.h"
-#include "tests/qtest/libqos/libqtest.h"
+#include "tests/qtest/libqtest.h"
#include "tests/qtest/libqos/malloc.h"
#include "tests/qtest/libqos/qgraph.h"
#include "tests/qtest/libqos/qgraph_internal.h"
diff --git a/tests/qtest/fuzz/virtio_blk_fuzz.c b/tests/qtest/fuzz/virtio_blk_fuzz.c
index 623a756fd472..236d078cc862 100644
--- a/tests/qtest/fuzz/virtio_blk_fuzz.c
+++ b/tests/qtest/fuzz/virtio_blk_fuzz.c
@@ -11,7 +11,7 @@
#include "qemu/osdep.h"
-#include "tests/qtest/libqos/libqtest.h"
+#include "tests/qtest/libqtest.h"
#include "tests/qtest/libqos/virtio-blk.h"
#include "tests/qtest/libqos/virtio.h"
#include "tests/qtest/libqos/virtio-pci.h"
diff --git a/tests/qtest/fuzz/virtio_net_fuzz.c b/tests/qtest/fuzz/virtio_net_fuzz.c
index 0e873ab8e25f..3df78d9c1c2a 100644
--- a/tests/qtest/fuzz/virtio_net_fuzz.c
+++ b/tests/qtest/fuzz/virtio_net_fuzz.c
@@ -13,7 +13,7 @@
#include "qemu/osdep.h"
#include "standard-headers/linux/virtio_config.h"
-#include "tests/qtest/libqos/libqtest.h"
+#include "tests/qtest/libqtest.h"
#include "tests/qtest/libqos/virtio-net.h"
#include "fuzz.h"
#include "fork_fuzz.h"
diff --git a/tests/qtest/fuzz/virtio_scsi_fuzz.c b/tests/qtest/fuzz/virtio_scsi_fuzz.c
index 6ff6fabe4ad3..b3220ef6cb20 100644
--- a/tests/qtest/fuzz/virtio_scsi_fuzz.c
+++ b/tests/qtest/fuzz/virtio_scsi_fuzz.c
@@ -12,7 +12,7 @@
#include "qemu/osdep.h"
-#include "tests/qtest/libqos/libqtest.h"
+#include "tests/qtest/libqtest.h"
#include "tests/qtest/libqos/virtio-scsi.h"
#include "tests/qtest/libqos/virtio.h"
#include "tests/qtest/libqos/virtio-pci.h"
diff --git a/tests/qtest/fw_cfg-test.c b/tests/qtest/fw_cfg-test.c
index 95b3907c18c4..5dc807ba2385 100644
--- a/tests/qtest/fw_cfg-test.c
+++ b/tests/qtest/fw_cfg-test.c
@@ -12,7 +12,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "standard-headers/linux/qemu_fw_cfg.h"
#include "libqos/fw_cfg.h"
#include "qemu/bswap.h"
diff --git a/tests/qtest/hd-geo-test.c b/tests/qtest/hd-geo-test.c
index da9c4c2792de..413cf964c05b 100644
--- a/tests/qtest/hd-geo-test.c
+++ b/tests/qtest/hd-geo-test.c
@@ -18,7 +18,7 @@
#include "qemu/osdep.h"
#include "qemu/bswap.h"
#include "qapi/qmp/qlist.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/fw_cfg.h"
#include "libqos/libqos.h"
#include "standard-headers/linux/qemu_fw_cfg.h"
diff --git a/tests/qtest/hexloader-test.c b/tests/qtest/hexloader-test.c
index 561502052a67..8b7aa2d72d0d 100644
--- a/tests/qtest/hexloader-test.c
+++ b/tests/qtest/hexloader-test.c
@@ -10,7 +10,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/* Load 'test.hex' and verify that the in-memory contents are as expected.
* 'test.hex' is a memory test pattern stored in Hexadecimal Object
diff --git a/tests/qtest/ide-test.c b/tests/qtest/ide-test.c
index b7243a17b11d..5bcb75a7e53d 100644
--- a/tests/qtest/ide-test.c
+++ b/tests/qtest/ide-test.c
@@ -25,7 +25,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/libqos.h"
#include "libqos/pci-pc.h"
#include "libqos/malloc-pc.h"
diff --git a/tests/qtest/ipoctal232-test.c b/tests/qtest/ipoctal232-test.c
index 65ce10b81bef..53a8c9b13ce5 100644
--- a/tests/qtest/ipoctal232-test.c
+++ b/tests/qtest/ipoctal232-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
diff --git a/tests/qtest/ivshmem-test.c b/tests/qtest/ivshmem-test.c
index 95628a418579..bfc91d1719d2 100644
--- a/tests/qtest/ivshmem-test.c
+++ b/tests/qtest/ivshmem-test.c
@@ -13,7 +13,7 @@
#include "contrib/ivshmem-server/ivshmem-server.h"
#include "libqos/libqos-pc.h"
#include "libqos/libqos-spapr.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#define TMPSHMSIZE (1 << 20)
static char *tmpshm;
diff --git a/tests/qtest/libqos/aarch64-xlnx-zcu102-machine.c b/tests/qtest/libqos/aarch64-xlnx-zcu102-machine.c
index 79631cc7a9ad..c8a3ea11eb40 100644
--- a/tests/qtest/libqos/aarch64-xlnx-zcu102-machine.c
+++ b/tests/qtest/libqos/aarch64-xlnx-zcu102-machine.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "malloc.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/ahci.c b/tests/qtest/libqos/ahci.c
index 41c4be5efa93..f53f12aa9965 100644
--- a/tests/qtest/libqos/ahci.c
+++ b/tests/qtest/libqos/ahci.c
@@ -24,7 +24,7 @@
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "ahci.h"
#include "pci-pc.h"
diff --git a/tests/qtest/libqos/arm-imx25-pdk-machine.c b/tests/qtest/libqos/arm-imx25-pdk-machine.c
index 6692adfa4fcb..54d0c9533044 100644
--- a/tests/qtest/libqos/arm-imx25-pdk-machine.c
+++ b/tests/qtest/libqos/arm-imx25-pdk-machine.c
@@ -19,7 +19,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "malloc.h"
#include "qgraph.h"
#include "i2c.h"
diff --git a/tests/qtest/libqos/arm-n800-machine.c b/tests/qtest/libqos/arm-n800-machine.c
index ff2049c3a7eb..ecd46b1dafa0 100644
--- a/tests/qtest/libqos/arm-n800-machine.c
+++ b/tests/qtest/libqos/arm-n800-machine.c
@@ -19,7 +19,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "malloc.h"
#include "qgraph.h"
#include "i2c.h"
diff --git a/tests/qtest/libqos/arm-raspi2-machine.c b/tests/qtest/libqos/arm-raspi2-machine.c
index 09ca863c1030..0a2943440b28 100644
--- a/tests/qtest/libqos/arm-raspi2-machine.c
+++ b/tests/qtest/libqos/arm-raspi2-machine.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "malloc.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/arm-sabrelite-machine.c b/tests/qtest/libqos/arm-sabrelite-machine.c
index 72425f0ad404..ec19a01660c0 100644
--- a/tests/qtest/libqos/arm-sabrelite-machine.c
+++ b/tests/qtest/libqos/arm-sabrelite-machine.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "malloc.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/arm-smdkc210-machine.c b/tests/qtest/libqos/arm-smdkc210-machine.c
index 321b8826d4a2..4bff249ee89a 100644
--- a/tests/qtest/libqos/arm-smdkc210-machine.c
+++ b/tests/qtest/libqos/arm-smdkc210-machine.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "malloc.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/arm-virt-machine.c b/tests/qtest/libqos/arm-virt-machine.c
index e0f59322845a..2e0beaefb8d7 100644
--- a/tests/qtest/libqos/arm-virt-machine.c
+++ b/tests/qtest/libqos/arm-virt-machine.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "malloc.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/arm-xilinx-zynq-a9-machine.c b/tests/qtest/libqos/arm-xilinx-zynq-a9-machine.c
index 56e53c745bff..3be80020a6bc 100644
--- a/tests/qtest/libqos/arm-xilinx-zynq-a9-machine.c
+++ b/tests/qtest/libqos/arm-xilinx-zynq-a9-machine.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "malloc.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/e1000e.c b/tests/qtest/libqos/e1000e.c
index a451f6168f63..f87e0e84b2aa 100644
--- a/tests/qtest/libqos/e1000e.c
+++ b/tests/qtest/libqos/e1000e.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "pci-pc.h"
#include "qemu/sockets.h"
#include "qemu/iov.h"
diff --git a/tests/qtest/libqos/fw_cfg.c b/tests/qtest/libqos/fw_cfg.c
index 6b8e1babe51e..89f053ccacbd 100644
--- a/tests/qtest/libqos/fw_cfg.c
+++ b/tests/qtest/libqos/fw_cfg.c
@@ -14,7 +14,7 @@
#include "qemu/osdep.h"
#include "fw_cfg.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/bswap.h"
#include "hw/nvram/fw_cfg.h"
diff --git a/tests/qtest/libqos/i2c-imx.c b/tests/qtest/libqos/i2c-imx.c
index 8f9a7e383146..710cb926d62b 100644
--- a/tests/qtest/libqos/i2c-imx.c
+++ b/tests/qtest/libqos/i2c-imx.c
@@ -21,7 +21,7 @@
#include "i2c.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "hw/i2c/imx_i2c.h"
diff --git a/tests/qtest/libqos/i2c-omap.c b/tests/qtest/libqos/i2c-omap.c
index eb4e453485db..6f98f54820be 100644
--- a/tests/qtest/libqos/i2c-omap.c
+++ b/tests/qtest/libqos/i2c-omap.c
@@ -11,7 +11,7 @@
#include "qemu/bswap.h"
-#include "libqtest.h"
+#include "../libqtest.h"
enum OMAPI2CRegisters {
OMAP_I2C_REV = 0x00,
diff --git a/tests/qtest/libqos/i2c.c b/tests/qtest/libqos/i2c.c
index ade1bdb40e05..1a54c004eb41 100644
--- a/tests/qtest/libqos/i2c.c
+++ b/tests/qtest/libqos/i2c.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
#include "i2c.h"
-#include "libqtest.h"
+#include "../libqtest.h"
void qi2c_send(QI2CDevice *i2cdev, const uint8_t *buf, uint16_t len)
{
diff --git a/tests/qtest/libqos/libqos.c b/tests/qtest/libqos/libqos.c
index 2251e864efe1..85c7641add1b 100644
--- a/tests/qtest/libqos/libqos.c
+++ b/tests/qtest/libqos/libqos.c
@@ -1,7 +1,7 @@
#include "qemu/osdep.h"
#include <sys/wait.h>
-#include "libqtest.h"
+#include "../libqtest.h"
#include "libqos.h"
#include "pci.h"
#include "qapi/qmp/qdict.h"
diff --git a/tests/qtest/libqos/pci-pc.c b/tests/qtest/libqos/pci-pc.c
index f97844289f13..e9dd5a57ec55 100644
--- a/tests/qtest/libqos/pci-pc.c
+++ b/tests/qtest/libqos/pci-pc.c
@@ -11,7 +11,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "pci-pc.h"
#include "qapi/qmp/qdict.h"
#include "hw/pci/pci_regs.h"
diff --git a/tests/qtest/libqos/pci-spapr.c b/tests/qtest/libqos/pci-spapr.c
index 262226985f37..76bf9a855d5c 100644
--- a/tests/qtest/libqos/pci-spapr.c
+++ b/tests/qtest/libqos/pci-spapr.c
@@ -6,7 +6,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "pci-spapr.h"
#include "rtas.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/ppc64_pseries-machine.c b/tests/qtest/libqos/ppc64_pseries-machine.c
index 24ca1799765f..364e9c689bb9 100644
--- a/tests/qtest/libqos/ppc64_pseries-machine.c
+++ b/tests/qtest/libqos/ppc64_pseries-machine.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qgraph.h"
#include "pci-spapr.h"
#include "qemu/module.h"
diff --git a/tests/qtest/libqos/qgraph.c b/tests/qtest/libqos/qgraph.c
index 109ff04e1e8f..0a2dddfafa4f 100644
--- a/tests/qtest/libqos/qgraph.c
+++ b/tests/qtest/libqos/qgraph.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/queue.h"
#include "qgraph_internal.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/qos_external.c b/tests/qtest/libqos/qos_external.c
index 10ee0f75b288..b7a0b873a362 100644
--- a/tests/qtest/libqos/qos_external.c
+++ b/tests/qtest/libqos/qos_external.c
@@ -18,7 +18,7 @@
#include "qemu/osdep.h"
#include <getopt.h>
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qbool.h"
#include "qapi/qmp/qstring.h"
diff --git a/tests/qtest/libqos/rtas.c b/tests/qtest/libqos/rtas.c
index db29d5554dcb..dedbfb4cb3a6 100644
--- a/tests/qtest/libqos/rtas.c
+++ b/tests/qtest/libqos/rtas.c
@@ -4,7 +4,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "rtas.h"
static void qrtas_copy_args(QTestState *qts, uint64_t target_args,
diff --git a/tests/qtest/libqos/sdhci-cmd.c b/tests/qtest/libqos/sdhci-cmd.c
index 2d9e51834114..a6f073ac1ac9 100644
--- a/tests/qtest/libqos/sdhci-cmd.c
+++ b/tests/qtest/libqos/sdhci-cmd.c
@@ -16,7 +16,7 @@
#include "qemu/osdep.h"
#include "sdhci-cmd.h"
-#include "libqtest.h"
+#include "../libqtest.h"
static ssize_t read_fifo(QTestState *qts, uint64_t reg, char *msg, size_t count)
{
diff --git a/tests/qtest/libqos/sdhci.c b/tests/qtest/libqos/sdhci.c
index 65f0d07fc5ac..71696980f83e 100644
--- a/tests/qtest/libqos/sdhci.c
+++ b/tests/qtest/libqos/sdhci.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qgraph.h"
#include "pci.h"
#include "qemu/module.h"
diff --git a/tests/qtest/libqos/tpci200.c b/tests/qtest/libqos/tpci200.c
index 1787b1f188d3..8b0060324728 100644
--- a/tests/qtest/libqos/tpci200.c
+++ b/tests/qtest/libqos/tpci200.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "qgraph.h"
#include "pci.h"
diff --git a/tests/qtest/libqos/usb.c b/tests/qtest/libqos/usb.c
index 8b45b0298446..446fdb5796c4 100644
--- a/tests/qtest/libqos/usb.c
+++ b/tests/qtest/libqos/usb.c
@@ -12,7 +12,7 @@
* See the COPYING file in the top-level directory.
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "hw/usb/uhci-regs.h"
#include "usb.h"
diff --git a/tests/qtest/libqos/vhost-user-blk.c b/tests/qtest/libqos/vhost-user-blk.c
index 568c3426ed3a..2f3c9cb5336d 100644
--- a/tests/qtest/libqos/vhost-user-blk.c
+++ b/tests/qtest/libqos/vhost-user-blk.c
@@ -21,7 +21,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "standard-headers/linux/virtio_blk.h"
#include "vhost-user-blk.h"
diff --git a/tests/qtest/libqos/virtio-9p.c b/tests/qtest/libqos/virtio-9p.c
index f51f0635cc0c..70aea8bf6287 100644
--- a/tests/qtest/libqos/virtio-9p.c
+++ b/tests/qtest/libqos/virtio-9p.c
@@ -22,7 +22,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "standard-headers/linux/virtio_ids.h"
#include "virtio-9p.h"
diff --git a/tests/qtest/libqos/virtio-balloon.c b/tests/qtest/libqos/virtio-balloon.c
index a3da5c234d49..29b5d175845a 100644
--- a/tests/qtest/libqos/virtio-balloon.c
+++ b/tests/qtest/libqos/virtio-balloon.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "qgraph.h"
#include "virtio-balloon.h"
diff --git a/tests/qtest/libqos/virtio-blk.c b/tests/qtest/libqos/virtio-blk.c
index 5da02591bcc2..ee4943f32b99 100644
--- a/tests/qtest/libqos/virtio-blk.c
+++ b/tests/qtest/libqos/virtio-blk.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "standard-headers/linux/virtio_blk.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/virtio-iommu.c b/tests/qtest/libqos/virtio-iommu.c
index 18cba4ca36b6..afc7d14e9a60 100644
--- a/tests/qtest/libqos/virtio-iommu.c
+++ b/tests/qtest/libqos/virtio-iommu.c
@@ -12,7 +12,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "qgraph.h"
#include "virtio-iommu.h"
diff --git a/tests/qtest/libqos/virtio-mmio.c b/tests/qtest/libqos/virtio-mmio.c
index 75efda30299a..a6cca8613b2c 100644
--- a/tests/qtest/libqos/virtio-mmio.c
+++ b/tests/qtest/libqos/virtio-mmio.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "virtio.h"
#include "virtio-mmio.h"
diff --git a/tests/qtest/libqos/virtio-net.c b/tests/qtest/libqos/virtio-net.c
index 1cae07f60d6c..2ac73ac0b416 100644
--- a/tests/qtest/libqos/virtio-net.c
+++ b/tests/qtest/libqos/virtio-net.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "qgraph.h"
#include "virtio-net.h"
diff --git a/tests/qtest/libqos/virtio-pci.c b/tests/qtest/libqos/virtio-pci.c
index cd3c0f5bf335..67c2498c84af 100644
--- a/tests/qtest/libqos/virtio-pci.c
+++ b/tests/qtest/libqos/virtio-pci.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "virtio.h"
#include "virtio-pci.h"
#include "pci.h"
diff --git a/tests/qtest/libqos/virtio-rng.c b/tests/qtest/libqos/virtio-rng.c
index 2e09dd7c48cb..078e3abaa72a 100644
--- a/tests/qtest/libqos/virtio-rng.c
+++ b/tests/qtest/libqos/virtio-rng.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "qgraph.h"
#include "virtio-rng.h"
diff --git a/tests/qtest/libqos/virtio-scsi.c b/tests/qtest/libqos/virtio-scsi.c
index 5644e32fc319..c4d046142012 100644
--- a/tests/qtest/libqos/virtio-scsi.c
+++ b/tests/qtest/libqos/virtio-scsi.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "standard-headers/linux/virtio_ids.h"
#include "qgraph.h"
diff --git a/tests/qtest/libqos/virtio-serial.c b/tests/qtest/libqos/virtio-serial.c
index ee34afd95ad8..1d689c3e38fc 100644
--- a/tests/qtest/libqos/virtio-serial.c
+++ b/tests/qtest/libqos/virtio-serial.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qemu/module.h"
#include "qgraph.h"
#include "virtio-serial.h"
diff --git a/tests/qtest/libqos/virtio.c b/tests/qtest/libqos/virtio.c
index fba918665951..09ec09b655cd 100644
--- a/tests/qtest/libqos/virtio.c
+++ b/tests/qtest/libqos/virtio.c
@@ -9,7 +9,7 @@
#include "qemu/osdep.h"
#include "qemu/bswap.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "virtio.h"
#include "standard-headers/linux/virtio_config.h"
#include "standard-headers/linux/virtio_ring.h"
diff --git a/tests/qtest/libqos/x86_64_pc-machine.c b/tests/qtest/libqos/x86_64_pc-machine.c
index ad96742a92d6..dce0c9463a47 100644
--- a/tests/qtest/libqos/x86_64_pc-machine.c
+++ b/tests/qtest/libqos/x86_64_pc-machine.c
@@ -17,7 +17,7 @@
*/
#include "qemu/osdep.h"
-#include "libqtest.h"
+#include "../libqtest.h"
#include "qgraph.h"
#include "pci-pc.h"
#include "qemu/module.h"
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index 5098d71485cc..aaf5ab0ca533 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -20,7 +20,7 @@
#include <sys/wait.h>
#include <sys/un.h>
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/ctype.h"
#include "qemu/cutils.h"
#include "qapi/error.h"
diff --git a/tests/qtest/lpc-ich9-test.c b/tests/qtest/lpc-ich9-test.c
index fe0bef998075..8ac95b89f729 100644
--- a/tests/qtest/lpc-ich9-test.c
+++ b/tests/qtest/lpc-ich9-test.c
@@ -9,7 +9,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
static void test_lp1878642_pci_bus_get_irq_level_assert(void)
{
diff --git a/tests/qtest/m48t59-test.c b/tests/qtest/m48t59-test.c
index 6db3234100a3..b94a1230f7fd 100644
--- a/tests/qtest/m48t59-test.c
+++ b/tests/qtest/m48t59-test.c
@@ -14,7 +14,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#define RTC_SECONDS 0x9
#define RTC_MINUTES 0xa
diff --git a/tests/qtest/machine-none-test.c b/tests/qtest/machine-none-test.c
index 8ca18074b9f9..d0f8cd990245 100644
--- a/tests/qtest/machine-none-test.c
+++ b/tests/qtest/machine-none-test.c
@@ -13,7 +13,7 @@
#include "qemu/osdep.h"
#include "qemu/cutils.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
diff --git a/tests/qtest/megasas-test.c b/tests/qtest/megasas-test.c
index eae70ff95f9c..d6796b9bd74d 100644
--- a/tests/qtest/megasas-test.c
+++ b/tests/qtest/megasas-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/bswap.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
diff --git a/tests/qtest/microbit-test.c b/tests/qtest/microbit-test.c
index 2b255579dfdd..04e199ec33f4 100644
--- a/tests/qtest/microbit-test.c
+++ b/tests/qtest/microbit-test.c
@@ -16,7 +16,7 @@
#include "qemu/osdep.h"
#include "exec/hwaddr.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "hw/arm/nrf51.h"
#include "hw/char/nrf51_uart.h"
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 2af36c16a371..cba6023eb500 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -12,7 +12,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/error.h"
#include "qapi/qmp/qdict.h"
#include "qemu/module.h"
diff --git a/tests/qtest/modules-test.c b/tests/qtest/modules-test.c
index c238b3f42216..88217686e14e 100644
--- a/tests/qtest/modules-test.c
+++ b/tests/qtest/modules-test.c
@@ -1,5 +1,5 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
const char common_args[] = "-nodefaults -machine none";
diff --git a/tests/qtest/ne2000-test.c b/tests/qtest/ne2000-test.c
index 43cfc4535aab..3fc0e555d5e2 100644
--- a/tests/qtest/ne2000-test.c
+++ b/tests/qtest/ne2000-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/npcm7xx_adc-test.c b/tests/qtest/npcm7xx_adc-test.c
index 5ce8ce13b3d7..3fa6d9ece0bd 100644
--- a/tests/qtest/npcm7xx_adc-test.c
+++ b/tests/qtest/npcm7xx_adc-test.c
@@ -17,7 +17,7 @@
#include "qemu/osdep.h"
#include "qemu/bitops.h"
#include "qemu/timer.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#define REF_HZ (25000000)
diff --git a/tests/qtest/npcm7xx_pwm-test.c b/tests/qtest/npcm7xx_pwm-test.c
index a54fd70d273b..c4a5fdcacd79 100644
--- a/tests/qtest/npcm7xx_pwm-test.c
+++ b/tests/qtest/npcm7xx_pwm-test.c
@@ -16,7 +16,7 @@
#include "qemu/osdep.h"
#include "qemu/bitops.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qnum.h"
diff --git a/tests/qtest/npcm7xx_sdhci-test.c b/tests/qtest/npcm7xx_sdhci-test.c
index c1f496fb29bb..aa35a77e8d37 100644
--- a/tests/qtest/npcm7xx_sdhci-test.c
+++ b/tests/qtest/npcm7xx_sdhci-test.c
@@ -17,7 +17,7 @@
#include "qemu/osdep.h"
#include "hw/sd/npcm7xx_sdhci.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqtest-single.h"
#include "libqos/sdhci-cmd.h"
diff --git a/tests/qtest/npcm7xx_smbus-test.c b/tests/qtest/npcm7xx_smbus-test.c
index 6b3038ac596f..a878cdc00142 100644
--- a/tests/qtest/npcm7xx_smbus-test.c
+++ b/tests/qtest/npcm7xx_smbus-test.c
@@ -17,7 +17,7 @@
#include "qemu/osdep.h"
#include "qemu/bitops.h"
#include "libqos/i2c.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "hw/sensor/tmp105_regs.h"
#define NR_SMBUS_DEVICES 16
diff --git a/tests/qtest/npcm7xx_watchdog_timer-test.c b/tests/qtest/npcm7xx_watchdog_timer-test.c
index 3aae5a043813..4773a673b207 100644
--- a/tests/qtest/npcm7xx_watchdog_timer-test.c
+++ b/tests/qtest/npcm7xx_watchdog_timer-test.c
@@ -17,7 +17,7 @@
#include "qemu/osdep.h"
#include "qemu/timer.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#define WTCR_OFFSET 0x1c
diff --git a/tests/qtest/numa-test.c b/tests/qtest/numa-test.c
index 90bf68a5b33c..749429dd27e6 100644
--- a/tests/qtest/numa-test.c
+++ b/tests/qtest/numa-test.c
@@ -10,7 +10,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qlist.h"
diff --git a/tests/qtest/nvme-test.c b/tests/qtest/nvme-test.c
index f8bafb5d70fb..008d189b0faf 100644
--- a/tests/qtest/nvme-test.c
+++ b/tests/qtest/nvme-test.c
@@ -10,7 +10,7 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
#include "qemu/units.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
#include "include/block/nvme.h"
diff --git a/tests/qtest/pca9552-test.c b/tests/qtest/pca9552-test.c
index 42a131266512..d80ed93cd3a5 100644
--- a/tests/qtest/pca9552-test.c
+++ b/tests/qtest/pca9552-test.c
@@ -9,7 +9,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/qgraph.h"
#include "libqos/i2c.h"
#include "hw/misc/pca9552_regs.h"
diff --git a/tests/qtest/pci-test.c b/tests/qtest/pci-test.c
index e15d4d94d1d0..4b2092b94973 100644
--- a/tests/qtest/pci-test.c
+++ b/tests/qtest/pci-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/pcnet-test.c b/tests/qtest/pcnet-test.c
index 7583aeb3c38f..900944fa7e34 100644
--- a/tests/qtest/pcnet-test.c
+++ b/tests/qtest/pcnet-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/pflash-cfi02-test.c b/tests/qtest/pflash-cfi02-test.c
index 6168edc821a8..7fce614b6412 100644
--- a/tests/qtest/pflash-cfi02-test.c
+++ b/tests/qtest/pflash-cfi02-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/*
* To test the pflash_cfi02 device, we run QEMU with the musicpal machine with
diff --git a/tests/qtest/pnv-xscom-test.c b/tests/qtest/pnv-xscom-test.c
index c8d40433620a..2c46d5cf6de3 100644
--- a/tests/qtest/pnv-xscom-test.c
+++ b/tests/qtest/pnv-xscom-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
typedef enum PnvChipType {
PNV_CHIP_POWER8E, /* AKA Murano (default) */
diff --git a/tests/qtest/prom-env-test.c b/tests/qtest/prom-env-test.c
index bdbb01d8e584..c2b0448e551d 100644
--- a/tests/qtest/prom-env-test.c
+++ b/tests/qtest/prom-env-test.c
@@ -20,7 +20,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/libqos-spapr.h"
#define MAGIC 0xcafec0de
diff --git a/tests/qtest/pvpanic-pci-test.c b/tests/qtest/pvpanic-pci-test.c
index 2358852d356f..c82c365c267d 100644
--- a/tests/qtest/pvpanic-pci-test.c
+++ b/tests/qtest/pvpanic-pci-test.c
@@ -12,7 +12,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#include "libqos/pci.h"
#include "libqos/pci-pc.h"
diff --git a/tests/qtest/pvpanic-test.c b/tests/qtest/pvpanic-test.c
index 6dcad2db4984..bc7b7dfc39e2 100644
--- a/tests/qtest/pvpanic-test.c
+++ b/tests/qtest/pvpanic-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
static void test_panic_nopause(void)
diff --git a/tests/qtest/pxe-test.c b/tests/qtest/pxe-test.c
index 3cb47d2c5496..52f0b5c67c03 100644
--- a/tests/qtest/pxe-test.c
+++ b/tests/qtest/pxe-test.c
@@ -14,7 +14,7 @@
#include "qemu/osdep.h"
#include <glib/gstdio.h>
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "boot-sector.h"
#include "libqos/libqos-spapr.h"
diff --git a/tests/qtest/q35-test.c b/tests/qtest/q35-test.c
index b7cf1449906f..c922d81bc020 100644
--- a/tests/qtest/q35-test.c
+++ b/tests/qtest/q35-test.c
@@ -10,7 +10,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/pci.h"
#include "libqos/pci-pc.h"
#include "hw/pci-host/q35.h"
diff --git a/tests/qtest/qmp-cmd-test.c b/tests/qtest/qmp-cmd-test.c
index 7f103ea3fd2a..056b40e67f60 100644
--- a/tests/qtest/qmp-cmd-test.c
+++ b/tests/qtest/qmp-cmd-test.c
@@ -11,7 +11,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/error.h"
#include "qapi/qapi-visit-introspect.h"
#include "qapi/qmp/qdict.h"
diff --git a/tests/qtest/qmp-test.c b/tests/qtest/qmp-test.c
index cd27fae3deb2..9a42480cef0a 100644
--- a/tests/qtest/qmp-test.c
+++ b/tests/qtest/qmp-test.c
@@ -11,7 +11,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/error.h"
#include "qapi/qapi-visit-control.h"
#include "qapi/qmp/qdict.h"
diff --git a/tests/qtest/qom-test.c b/tests/qtest/qom-test.c
index 6b162e12b5aa..7b871b2a3107 100644
--- a/tests/qtest/qom-test.c
+++ b/tests/qtest/qom-test.c
@@ -12,7 +12,7 @@
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qlist.h"
#include "qemu/cutils.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
static void test_properties(QTestState *qts, const char *path, bool recurse)
{
diff --git a/tests/qtest/rtas-test.c b/tests/qtest/rtas-test.c
index 5f1194a6eb53..50df60e5b20e 100644
--- a/tests/qtest/rtas-test.c
+++ b/tests/qtest/rtas-test.c
@@ -1,6 +1,6 @@
#include "qemu/osdep.h"
#include "qemu/cutils.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/libqos-spapr.h"
#include "libqos/rtas.h"
diff --git a/tests/qtest/sdhci-test.c b/tests/qtest/sdhci-test.c
index a110cfe3219c..6275e7626c21 100644
--- a/tests/qtest/sdhci-test.c
+++ b/tests/qtest/sdhci-test.c
@@ -10,7 +10,7 @@
#include "qemu/osdep.h"
#include "hw/registerfields.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/pci-pc.h"
#include "hw/pci/pci.h"
diff --git a/tests/qtest/spapr-phb-test.c b/tests/qtest/spapr-phb-test.c
index ea8d59650721..093dc22f2f41 100644
--- a/tests/qtest/spapr-phb-test.c
+++ b/tests/qtest/spapr-phb-test.c
@@ -9,7 +9,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
diff --git a/tests/qtest/tco-test.c b/tests/qtest/tco-test.c
index 47bc7ad3019d..254f7353701c 100644
--- a/tests/qtest/tco-test.c
+++ b/tests/qtest/tco-test.c
@@ -9,7 +9,7 @@
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/pci.h"
#include "libqos/pci-pc.h"
#include "qapi/qmp/qdict.h"
diff --git a/tests/qtest/test-filter-mirror.c b/tests/qtest/test-filter-mirror.c
index fdf66cebd62f..c8b0a92b53b7 100644
--- a/tests/qtest/test-filter-mirror.c
+++ b/tests/qtest/test-filter-mirror.c
@@ -9,7 +9,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#include "qemu/iov.h"
#include "qemu/sockets.h"
diff --git a/tests/qtest/test-filter-redirector.c b/tests/qtest/test-filter-redirector.c
index 339d3c04cedc..24ca9280f814 100644
--- a/tests/qtest/test-filter-redirector.c
+++ b/tests/qtest/test-filter-redirector.c
@@ -51,7 +51,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#include "qemu/iov.h"
#include "qemu/sockets.h"
diff --git a/tests/qtest/test-hmp.c b/tests/qtest/test-hmp.c
index 413eb95d2a0c..f8b22abe4cac 100644
--- a/tests/qtest/test-hmp.c
+++ b/tests/qtest/test-hmp.c
@@ -15,7 +15,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
static int verbose;
diff --git a/tests/qtest/tpm-crb-swtpm-test.c b/tests/qtest/tpm-crb-swtpm-test.c
index 1d82a48c04be..55fdb5657d91 100644
--- a/tests/qtest/tpm-crb-swtpm-test.c
+++ b/tests/qtest/tpm-crb-swtpm-test.c
@@ -15,7 +15,7 @@
#include "qemu/osdep.h"
#include <glib/gstdio.h>
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "tpm-tests.h"
#include "hw/acpi/tpm.h"
diff --git a/tests/qtest/tpm-tis-device-swtpm-test.c b/tests/qtest/tpm-tis-device-swtpm-test.c
index f7126eff9e74..7b200351426a 100644
--- a/tests/qtest/tpm-tis-device-swtpm-test.c
+++ b/tests/qtest/tpm-tis-device-swtpm-test.c
@@ -16,7 +16,7 @@
#include "qemu/osdep.h"
#include <glib/gstdio.h>
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "tpm-tests.h"
#include "hw/acpi/tpm.h"
diff --git a/tests/qtest/tpm-tis-swtpm-test.c b/tests/qtest/tpm-tis-swtpm-test.c
index fa590e68f115..90131cb3c487 100644
--- a/tests/qtest/tpm-tis-swtpm-test.c
+++ b/tests/qtest/tpm-tis-swtpm-test.c
@@ -15,7 +15,7 @@
#include "qemu/osdep.h"
#include <glib/gstdio.h>
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "tpm-tests.h"
#include "hw/acpi/tpm.h"
diff --git a/tests/qtest/tpm-util.c b/tests/qtest/tpm-util.c
index 3a40ff3f96c2..e0dc5da0af1e 100644
--- a/tests/qtest/tpm-util.c
+++ b/tests/qtest/tpm-util.c
@@ -15,7 +15,7 @@
#include "qemu/osdep.h"
#include "hw/acpi/tpm.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "tpm-util.h"
#include "qapi/qmp/qdict.h"
diff --git a/tests/qtest/tulip-test.c b/tests/qtest/tulip-test.c
index da16cbfafcc2..2fb6c4d5a781 100644
--- a/tests/qtest/tulip-test.c
+++ b/tests/qtest/tulip-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/virtio-net-failover.c b/tests/qtest/virtio-net-failover.c
index 78811f1c9216..443ee56de966 100644
--- a/tests/qtest/virtio-net-failover.c
+++ b/tests/qtest/virtio-net-failover.c
@@ -8,7 +8,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "libqos/pci.h"
#include "libqos/pci-pc.h"
#include "qapi/qmp/qdict.h"
diff --git a/tests/qtest/virtio-rng-test.c b/tests/qtest/virtio-rng-test.c
index e6b8cd8e0cfa..092ba130684d 100644
--- a/tests/qtest/virtio-rng-test.c
+++ b/tests/qtest/virtio-rng-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/virtio-rng.h"
diff --git a/tests/qtest/virtio-test.c b/tests/qtest/virtio-test.c
index 63134176303a..f7c6afdcf111 100644
--- a/tests/qtest/virtio-test.c
+++ b/tests/qtest/virtio-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/vmgenid-test.c b/tests/qtest/vmgenid-test.c
index 6781a514479b..efba76e7164e 100644
--- a/tests/qtest/vmgenid-test.c
+++ b/tests/qtest/vmgenid-test.c
@@ -14,7 +14,7 @@
#include "hw/acpi/acpi-defs.h"
#include "boot-sector.h"
#include "acpi-utils.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#define VGID_GUID "324e6eaf-d1d1-4bf6-bf41-b9bb6c91fb87"
diff --git a/tests/qtest/vmxnet3-test.c b/tests/qtest/vmxnet3-test.c
index 97c23fd3a8f6..a81025252c87 100644
--- a/tests/qtest/vmxnet3-test.c
+++ b/tests/qtest/vmxnet3-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qemu/module.h"
#include "libqos/qgraph.h"
#include "libqos/pci.h"
diff --git a/tests/qtest/wdt_ib700-test.c b/tests/qtest/wdt_ib700-test.c
index 6c36e43fb835..797288d939fa 100644
--- a/tests/qtest/wdt_ib700-test.c
+++ b/tests/qtest/wdt_ib700-test.c
@@ -8,7 +8,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
#include "qapi/qmp/qdict.h"
#include "qemu/timer.h"
diff --git a/tests/qtest/xlnx-can-test.c b/tests/qtest/xlnx-can-test.c
index 54de71a68643..89610fc499b6 100644
--- a/tests/qtest/xlnx-can-test.c
+++ b/tests/qtest/xlnx-can-test.c
@@ -25,7 +25,7 @@
*/
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
/* Base address. */
#define CAN0_BASE_ADDR 0xFF060000
diff --git a/tests/unit/test-qga.c b/tests/unit/test-qga.c
index e17a288034bc..d6df1ee92ea1 100644
--- a/tests/unit/test-qga.c
+++ b/tests/unit/test-qga.c
@@ -4,7 +4,7 @@
#include <sys/socket.h>
#include <sys/un.h>
-#include "../qtest/libqos/libqtest.h"
+#include "../qtest/libqtest.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qlist.h"
diff --git a/scripts/oss-fuzz/output_reproducer.py b/scripts/oss-fuzz/output_reproducer.py
index 3608b0600e00..e8ef76b34138 100755
--- a/scripts/oss-fuzz/output_reproducer.py
+++ b/scripts/oss-fuzz/output_reproducer.py
@@ -36,7 +36,7 @@ def c_header(owner):
#include "qemu/osdep.h"
-#include "libqos/libqtest.h"
+#include "libqtest.h"
""".format(date=date.today().year, owner=owner)
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 04/23] libqtest: split QMP part in libqmp
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (2 preceding siblings ...)
2022-05-03 13:12 ` [PULL 03/23] tests: move libqtest.h back under qtest/ marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 05/23] Use g_unix_set_fd_nonblocking() marcandre.lureau
` (19 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
This will help moving QAPI/QMP in a common subproject.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/libqmp.h | 50 +++++++
tests/qtest/libqtest.h | 29 +---
tests/qtest/libqmp.c | 233 +++++++++++++++++++++++++++++++++
tests/qtest/libqtest.c | 205 +----------------------------
tests/qtest/libqos/meson.build | 5 +-
tests/unit/meson.build | 2 +-
6 files changed, 290 insertions(+), 234 deletions(-)
create mode 100644 tests/qtest/libqmp.h
create mode 100644 tests/qtest/libqmp.c
diff --git a/tests/qtest/libqmp.h b/tests/qtest/libqmp.h
new file mode 100644
index 000000000000..94aa97328a17
--- /dev/null
+++ b/tests/qtest/libqmp.h
@@ -0,0 +1,50 @@
+/*
+ * libqmp test unit
+ *
+ * Copyright IBM, Corp. 2012
+ * Copyright Red Hat, Inc. 2012
+ * Copyright SUSE LINUX Products GmbH 2013
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paolo Bonzini <pbonzini@redhat.com>
+ * Andreas Färber <afaerber@suse.de>
+ *
+ * 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 LIBQMP_H_
+#define LIBQMP_H_
+
+#include "qapi/qmp/qdict.h"
+
+QDict *qmp_fd_receive(int fd);
+void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
+ const char *fmt, va_list ap) G_GNUC_PRINTF(4, 0);
+void qmp_fd_vsend(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
+void qmp_fd_send(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
+void qmp_fd_send_raw(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
+void qmp_fd_vsend_raw(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
+QDict *qmp_fdv(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
+QDict *qmp_fd(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
+
+/**
+ * qmp_rsp_is_err:
+ * @rsp: QMP response to check for error
+ *
+ * Test @rsp for error and discard @rsp.
+ * Returns 'true' if there is error in @rsp and 'false' otherwise.
+ */
+bool qmp_rsp_is_err(QDict *rsp);
+
+/**
+ * qmp_expect_error_and_unref:
+ * @rsp: QMP response to check for error
+ * @class: an error class
+ *
+ * Assert the response has the given error class and discard @rsp.
+ */
+void qmp_expect_error_and_unref(QDict *rsp, const char *class);
+
+#endif /* LIBQMP_H_ */
diff --git a/tests/qtest/libqtest.h b/tests/qtest/libqtest.h
index 552667f17e37..4ab0cad3266d 100644
--- a/tests/qtest/libqtest.h
+++ b/tests/qtest/libqtest.h
@@ -19,6 +19,7 @@
#include "qapi/qmp/qobject.h"
#include "qapi/qmp/qdict.h"
+#include "libqmp.h"
typedef struct QTestState QTestState;
@@ -690,16 +691,6 @@ void qtest_remove_abrt_handler(void *data);
void qtest_qmp_assert_success(QTestState *qts, const char *fmt, ...)
G_GNUC_PRINTF(2, 3);
-QDict *qmp_fd_receive(int fd);
-void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
- const char *fmt, va_list ap) G_GNUC_PRINTF(4, 0);
-void qmp_fd_vsend(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
-void qmp_fd_send(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
-void qmp_fd_send_raw(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
-void qmp_fd_vsend_raw(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
-QDict *qmp_fdv(int fd, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0);
-QDict *qmp_fd(int fd, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
-
/**
* qtest_cb_for_every_machine:
* @cb: Pointer to the callback function
@@ -771,24 +762,6 @@ void qtest_qmp_add_client(QTestState *qts, const char *protocol, int fd);
*/
void qtest_qmp_device_del(QTestState *qts, const char *id);
-/**
- * qmp_rsp_is_err:
- * @rsp: QMP response to check for error
- *
- * Test @rsp for error and discard @rsp.
- * Returns 'true' if there is error in @rsp and 'false' otherwise.
- */
-bool qmp_rsp_is_err(QDict *rsp);
-
-/**
- * qmp_expect_error_and_unref:
- * @rsp: QMP response to check for error
- * @class: an error class
- *
- * Assert the response has the given error class and discard @rsp.
- */
-void qmp_expect_error_and_unref(QDict *rsp, const char *class);
-
/**
* qtest_probe_child:
* @s: QTestState instance to operate on.
diff --git a/tests/qtest/libqmp.c b/tests/qtest/libqmp.c
new file mode 100644
index 000000000000..0358b8313dc4
--- /dev/null
+++ b/tests/qtest/libqmp.c
@@ -0,0 +1,233 @@
+/*
+ * QTest
+ *
+ * Copyright IBM, Corp. 2012
+ * Copyright Red Hat, Inc. 2012
+ * Copyright SUSE LINUX Products GmbH 2013
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paolo Bonzini <pbonzini@redhat.com>
+ * Andreas Färber <afaerber@suse.de>
+ *
+ * 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 "libqmp.h"
+
+#include "qapi/error.h"
+#include "qapi/qmp/json-parser.h"
+#include "qapi/qmp/qjson.h"
+
+#define SOCKET_MAX_FDS 16
+
+typedef struct {
+ JSONMessageParser parser;
+ QDict *response;
+} QMPResponseParser;
+
+static void socket_send(int fd, const char *buf, size_t size)
+{
+ size_t res = qemu_write_full(fd, buf, size);
+
+ assert(res == size);
+}
+
+static void qmp_response(void *opaque, QObject *obj, Error *err)
+{
+ QMPResponseParser *qmp = opaque;
+
+ assert(!obj != !err);
+
+ if (err) {
+ error_prepend(&err, "QMP JSON response parsing failed: ");
+ error_report_err(err);
+ abort();
+ }
+
+ g_assert(!qmp->response);
+ qmp->response = qobject_to(QDict, obj);
+ g_assert(qmp->response);
+}
+
+QDict *qmp_fd_receive(int fd)
+{
+ QMPResponseParser qmp;
+ bool log = getenv("QTEST_LOG") != NULL;
+
+ qmp.response = NULL;
+ json_message_parser_init(&qmp.parser, qmp_response, &qmp, NULL);
+ while (!qmp.response) {
+ ssize_t len;
+ char c;
+
+ len = read(fd, &c, 1);
+ if (len == -1 && errno == EINTR) {
+ continue;
+ }
+
+ if (len == -1 || len == 0) {
+ fprintf(stderr, "Broken pipe\n");
+ abort();
+ }
+
+ if (log) {
+ g_assert(write(2, &c, 1) == 1);
+ }
+ json_message_parser_feed(&qmp.parser, &c, 1);
+ }
+ if (log) {
+ g_assert(write(2, "\n", 1) == 1);
+ }
+ json_message_parser_destroy(&qmp.parser);
+
+ return qmp.response;
+}
+
+/* Sends a message and file descriptors to the socket.
+ * It's needed for qmp-commands like getfd/add-fd */
+static void socket_send_fds(int socket_fd, int *fds, size_t fds_num,
+ const char *buf, size_t buf_size)
+{
+ ssize_t ret;
+ struct msghdr msg = { 0 };
+ char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)] = { 0 };
+ size_t fdsize = sizeof(int) * fds_num;
+ struct cmsghdr *cmsg;
+ struct iovec iov = { .iov_base = (char *)buf, .iov_len = buf_size };
+
+ msg.msg_iov = &iov;
+ msg.msg_iovlen = 1;
+
+ if (fds && fds_num > 0) {
+ g_assert_cmpuint(fds_num, <, SOCKET_MAX_FDS);
+
+ msg.msg_control = control;
+ msg.msg_controllen = CMSG_SPACE(fdsize);
+
+ cmsg = CMSG_FIRSTHDR(&msg);
+ cmsg->cmsg_len = CMSG_LEN(fdsize);
+ cmsg->cmsg_level = SOL_SOCKET;
+ cmsg->cmsg_type = SCM_RIGHTS;
+ memcpy(CMSG_DATA(cmsg), fds, fdsize);
+ }
+
+ do {
+ ret = sendmsg(socket_fd, &msg, 0);
+ } while (ret < 0 && errno == EINTR);
+ g_assert_cmpint(ret, >, 0);
+}
+
+/**
+ * Allow users to send a message without waiting for the reply,
+ * in the case that they choose to discard all replies up until
+ * a particular EVENT is received.
+ */
+void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
+ const char *fmt, va_list ap)
+{
+ QObject *qobj;
+
+ /* Going through qobject ensures we escape strings properly */
+ qobj = qobject_from_vjsonf_nofail(fmt, ap);
+
+ /* No need to send anything for an empty QObject. */
+ if (qobj) {
+ int log = getenv("QTEST_LOG") != NULL;
+ GString *str = qobject_to_json(qobj);
+
+ /*
+ * BUG: QMP doesn't react to input until it sees a newline, an
+ * object, or an array. Work-around: give it a newline.
+ */
+ g_string_append_c(str, '\n');
+
+ if (log) {
+ fprintf(stderr, "%s", str->str);
+ }
+ /* Send QMP request */
+ if (fds && fds_num > 0) {
+ socket_send_fds(fd, fds, fds_num, str->str, str->len);
+ } else {
+ socket_send(fd, str->str, str->len);
+ }
+
+ g_string_free(str, true);
+ qobject_unref(qobj);
+ }
+}
+
+void qmp_fd_vsend(int fd, const char *fmt, va_list ap)
+{
+ qmp_fd_vsend_fds(fd, NULL, 0, fmt, ap);
+}
+
+
+QDict *qmp_fdv(int fd, const char *fmt, va_list ap)
+{
+ qmp_fd_vsend_fds(fd, NULL, 0, fmt, ap);
+
+ return qmp_fd_receive(fd);
+}
+
+QDict *qmp_fd(int fd, const char *fmt, ...)
+{
+ va_list ap;
+ QDict *response;
+
+ va_start(ap, fmt);
+ response = qmp_fdv(fd, fmt, ap);
+ va_end(ap);
+ return response;
+}
+
+void qmp_fd_send(int fd, const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ qmp_fd_vsend(fd, fmt, ap);
+ va_end(ap);
+}
+
+void qmp_fd_vsend_raw(int fd, const char *fmt, va_list ap)
+{
+ bool log = getenv("QTEST_LOG") != NULL;
+ char *str = g_strdup_vprintf(fmt, ap);
+
+ if (log) {
+ fprintf(stderr, "%s", str);
+ }
+ socket_send(fd, str, strlen(str));
+ g_free(str);
+}
+
+void qmp_fd_send_raw(int fd, const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ qmp_fd_vsend_raw(fd, fmt, ap);
+ va_end(ap);
+}
+
+bool qmp_rsp_is_err(QDict *rsp)
+{
+ QDict *error = qdict_get_qdict(rsp, "error");
+ qobject_unref(rsp);
+ return !!error;
+}
+
+void qmp_expect_error_and_unref(QDict *rsp, const char *class)
+{
+ QDict *error = qdict_get_qdict(rsp, "error");
+
+ g_assert_cmpstr(qdict_get_try_str(error, "class"), ==, class);
+ g_assert_nonnull(qdict_get_try_str(error, "desc"));
+ g_assert(!qdict_haskey(rsp, "return"));
+
+ qobject_unref(rsp);
+}
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index aaf5ab0ca533..228357f1eade 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -21,10 +21,9 @@
#include <sys/un.h>
#include "libqtest.h"
+#include "libqmp.h"
#include "qemu/ctype.h"
#include "qemu/cutils.h"
-#include "qapi/error.h"
-#include "qapi/qmp/json-parser.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qjson.h"
#include "qapi/qmp/qlist.h"
@@ -32,8 +31,6 @@
#define MAX_IRQ 256
#define SOCKET_TIMEOUT 50
-#define SOCKET_MAX_FDS 16
-
typedef void (*QTestSendFn)(QTestState *s, const char *buf);
typedef void (*ExternalSendFn)(void *s, const char *buf);
@@ -440,40 +437,6 @@ static void G_GNUC_PRINTF(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...)
g_free(str);
}
-/* Sends a message and file descriptors to the socket.
- * It's needed for qmp-commands like getfd/add-fd */
-static void socket_send_fds(int socket_fd, int *fds, size_t fds_num,
- const char *buf, size_t buf_size)
-{
- ssize_t ret;
- struct msghdr msg = { 0 };
- char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)] = { 0 };
- size_t fdsize = sizeof(int) * fds_num;
- struct cmsghdr *cmsg;
- struct iovec iov = { .iov_base = (char *)buf, .iov_len = buf_size };
-
- msg.msg_iov = &iov;
- msg.msg_iovlen = 1;
-
- if (fds && fds_num > 0) {
- g_assert_cmpuint(fds_num, <, SOCKET_MAX_FDS);
-
- msg.msg_control = control;
- msg.msg_controllen = CMSG_SPACE(fdsize);
-
- cmsg = CMSG_FIRSTHDR(&msg);
- cmsg->cmsg_len = CMSG_LEN(fdsize);
- cmsg->cmsg_level = SOL_SOCKET;
- cmsg->cmsg_type = SCM_RIGHTS;
- memcpy(CMSG_DATA(cmsg), fds, fdsize);
- }
-
- do {
- ret = sendmsg(socket_fd, &msg, 0);
- } while (ret < 0 && errno == EINTR);
- g_assert_cmpint(ret, >, 0);
-}
-
static GString *qtest_client_socket_recv_line(QTestState *s)
{
GString *line;
@@ -568,62 +531,6 @@ static int qtest_query_target_endianness(QTestState *s)
return big_endian;
}
-typedef struct {
- JSONMessageParser parser;
- QDict *response;
-} QMPResponseParser;
-
-static void qmp_response(void *opaque, QObject *obj, Error *err)
-{
- QMPResponseParser *qmp = opaque;
-
- assert(!obj != !err);
-
- if (err) {
- error_prepend(&err, "QMP JSON response parsing failed: ");
- error_report_err(err);
- abort();
- }
-
- g_assert(!qmp->response);
- qmp->response = qobject_to(QDict, obj);
- g_assert(qmp->response);
-}
-
-QDict *qmp_fd_receive(int fd)
-{
- QMPResponseParser qmp;
- bool log = getenv("QTEST_LOG") != NULL;
-
- qmp.response = NULL;
- json_message_parser_init(&qmp.parser, qmp_response, &qmp, NULL);
- while (!qmp.response) {
- ssize_t len;
- char c;
-
- len = read(fd, &c, 1);
- if (len == -1 && errno == EINTR) {
- continue;
- }
-
- if (len == -1 || len == 0) {
- fprintf(stderr, "Broken pipe\n");
- abort();
- }
-
- if (log) {
- g_assert(write(2, &c, 1) == 1);
- }
- json_message_parser_feed(&qmp.parser, &c, 1);
- }
- if (log) {
- g_assert(write(2, "\n", 1) == 1);
- }
- json_message_parser_destroy(&qmp.parser);
-
- return qmp.response;
-}
-
QDict *qtest_qmp_receive(QTestState *s)
{
while (true) {
@@ -664,50 +571,6 @@ int qtest_socket_server(const char *socket_path)
return sock;
}
-/**
- * Allow users to send a message without waiting for the reply,
- * in the case that they choose to discard all replies up until
- * a particular EVENT is received.
- */
-void qmp_fd_vsend_fds(int fd, int *fds, size_t fds_num,
- const char *fmt, va_list ap)
-{
- QObject *qobj;
-
- /* Going through qobject ensures we escape strings properly */
- qobj = qobject_from_vjsonf_nofail(fmt, ap);
-
- /* No need to send anything for an empty QObject. */
- if (qobj) {
- int log = getenv("QTEST_LOG") != NULL;
- GString *str = qobject_to_json(qobj);
-
- /*
- * BUG: QMP doesn't react to input until it sees a newline, an
- * object, or an array. Work-around: give it a newline.
- */
- g_string_append_c(str, '\n');
-
- if (log) {
- fprintf(stderr, "%s", str->str);
- }
- /* Send QMP request */
- if (fds && fds_num > 0) {
- socket_send_fds(fd, fds, fds_num, str->str, str->len);
- } else {
- socket_send(fd, str->str, str->len);
- }
-
- g_string_free(str, true);
- qobject_unref(qobj);
- }
-}
-
-void qmp_fd_vsend(int fd, const char *fmt, va_list ap)
-{
- qmp_fd_vsend_fds(fd, NULL, 0, fmt, ap);
-}
-
void qtest_qmp_vsend_fds(QTestState *s, int *fds, size_t fds_num,
const char *fmt, va_list ap)
{
@@ -719,13 +582,6 @@ void qtest_qmp_vsend(QTestState *s, const char *fmt, va_list ap)
qmp_fd_vsend_fds(s->qmp_fd, NULL, 0, fmt, ap);
}
-QDict *qmp_fdv(int fd, const char *fmt, va_list ap)
-{
- qmp_fd_vsend_fds(fd, NULL, 0, fmt, ap);
-
- return qmp_fd_receive(fd);
-}
-
QDict *qtest_vqmp_fds(QTestState *s, int *fds, size_t fds_num,
const char *fmt, va_list ap)
{
@@ -743,26 +599,6 @@ QDict *qtest_vqmp(QTestState *s, const char *fmt, va_list ap)
return qtest_qmp_receive(s);
}
-QDict *qmp_fd(int fd, const char *fmt, ...)
-{
- va_list ap;
- QDict *response;
-
- va_start(ap, fmt);
- response = qmp_fdv(fd, fmt, ap);
- va_end(ap);
- return response;
-}
-
-void qmp_fd_send(int fd, const char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- qmp_fd_vsend(fd, fmt, ap);
- va_end(ap);
-}
-
QDict *qtest_qmp_fds(QTestState *s, int *fds, size_t fds_num,
const char *fmt, ...)
{
@@ -795,27 +631,6 @@ void qtest_qmp_send(QTestState *s, const char *fmt, ...)
va_end(ap);
}
-void qmp_fd_vsend_raw(int fd, const char *fmt, va_list ap)
-{
- bool log = getenv("QTEST_LOG") != NULL;
- char *str = g_strdup_vprintf(fmt, ap);
-
- if (log) {
- fprintf(stderr, "%s", str);
- }
- socket_send(fd, str, strlen(str));
- g_free(str);
-}
-
-void qmp_fd_send_raw(int fd, const char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- qmp_fd_vsend_raw(fd, fmt, ap);
- va_end(ap);
-}
-
void qtest_qmp_send_raw(QTestState *s, const char *fmt, ...)
{
va_list ap;
@@ -1539,24 +1354,6 @@ void qtest_qmp_device_del(QTestState *qts, const char *id)
qtest_qmp_eventwait(qts, "DEVICE_DELETED");
}
-bool qmp_rsp_is_err(QDict *rsp)
-{
- QDict *error = qdict_get_qdict(rsp, "error");
- qobject_unref(rsp);
- return !!error;
-}
-
-void qmp_expect_error_and_unref(QDict *rsp, const char *class)
-{
- QDict *error = qdict_get_qdict(rsp, "error");
-
- g_assert_cmpstr(qdict_get_try_str(error, "class"), ==, class);
- g_assert_nonnull(qdict_get_try_str(error, "desc"));
- g_assert(!qdict_haskey(rsp, "return"));
-
- qobject_unref(rsp);
-}
-
static void qtest_client_set_tx_handler(QTestState *s,
QTestSendFn send)
{
diff --git a/tests/qtest/libqos/meson.build b/tests/qtest/libqos/meson.build
index e988d1579172..9f292339f9cf 100644
--- a/tests/qtest/libqos/meson.build
+++ b/tests/qtest/libqos/meson.build
@@ -1,4 +1,7 @@
-libqos_srcs = files('../libqtest.c',
+libqos_srcs = files(
+ '../libqtest.c',
+ '../libqmp.c',
+
'qgraph.c',
'qos_external.c',
'pci.c',
diff --git a/tests/unit/meson.build b/tests/unit/meson.build
index ab01e00f12cf..264f2bc0c81d 100644
--- a/tests/unit/meson.build
+++ b/tests/unit/meson.build
@@ -154,7 +154,7 @@ if have_system
endif
if have_ga and targetos == 'linux'
- tests += {'test-qga': ['../qtest/libqtest.c']}
+ tests += {'test-qga': ['../qtest/libqmp.c']}
test_deps += {'test-qga': qga}
endif
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 05/23] Use g_unix_set_fd_nonblocking()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (3 preceding siblings ...)
2022-05-03 13:12 ` [PULL 04/23] libqtest: split QMP part in libqmp marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 06/23] block: move fcntl_setfl() marcandre.lureau
` (18 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
API available since glib 2.30. It also preserves errno.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
hw/misc/ivshmem.c | 2 +-
util/event_notifier-posix.c | 6 ++----
util/main-loop.c | 2 +-
3 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index e7c0099bdaf6..8270db53cda7 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -537,7 +537,7 @@ static void process_msg_connect(IVShmemState *s, uint16_t posn, int fd,
IVSHMEM_DPRINTF("eventfds[%d][%d] = %d\n", posn, vector, fd);
event_notifier_init_fd(&peer->eventfds[vector], fd);
- fcntl_setfl(fd, O_NONBLOCK); /* msix/irqfd poll non block */
+ g_unix_set_fd_nonblocking(fd, true, NULL); /* msix/irqfd poll non block */
if (posn == s->vm_id) {
setup_interrupt(s, vector, errp);
diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c
index 8dc30c51414d..2aa14eabb38e 100644
--- a/util/event_notifier-posix.c
+++ b/util/event_notifier-posix.c
@@ -52,13 +52,11 @@ int event_notifier_init(EventNotifier *e, int active)
if (qemu_pipe(fds) < 0) {
return -errno;
}
- ret = fcntl_setfl(fds[0], O_NONBLOCK);
- if (ret < 0) {
+ if (!g_unix_set_fd_nonblocking(fds[0], true, NULL)) {
ret = -errno;
goto fail;
}
- ret = fcntl_setfl(fds[1], O_NONBLOCK);
- if (ret < 0) {
+ if (!g_unix_set_fd_nonblocking(fds[1], true, NULL)) {
ret = -errno;
goto fail;
}
diff --git a/util/main-loop.c b/util/main-loop.c
index b7b0ce4ca087..9afac10dff0f 100644
--- a/util/main-loop.c
+++ b/util/main-loop.c
@@ -114,7 +114,7 @@ static int qemu_signal_init(Error **errp)
return -errno;
}
- fcntl_setfl(sigfd, O_NONBLOCK);
+ g_unix_set_fd_nonblocking(sigfd, true, NULL);
qemu_set_fd_handler(sigfd, sigfd_handler, NULL, (void *)(intptr_t)sigfd);
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 06/23] block: move fcntl_setfl()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (4 preceding siblings ...)
2022-05-03 13:12 ` [PULL 05/23] Use g_unix_set_fd_nonblocking() marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 07/23] Replace qemu_pipe() with g_unix_open_pipe() marcandre.lureau
` (17 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
It is only used by block/file-posix.c, move it there.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
include/sysemu/os-posix.h | 2 --
block/file-posix.c | 15 +++++++++++++++
util/oslib-posix.c | 15 ---------------
3 files changed, 15 insertions(+), 17 deletions(-)
diff --git a/include/sysemu/os-posix.h b/include/sysemu/os-posix.h
index adbe19d3e468..58de7c994d85 100644
--- a/include/sysemu/os-posix.h
+++ b/include/sysemu/os-posix.h
@@ -96,8 +96,6 @@ static inline void qemu_funlockfile(FILE *f)
funlockfile(f);
}
-int fcntl_setfl(int fd, int flag);
-
#ifdef __cplusplus
}
#endif
diff --git a/block/file-posix.c b/block/file-posix.c
index bfd9b2111143..48cd0966249d 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -1022,6 +1022,21 @@ static int raw_handle_perm_lock(BlockDriverState *bs,
return ret;
}
+/* Sets a specific flag */
+static int fcntl_setfl(int fd, int flag)
+{
+ int flags;
+
+ flags = fcntl(fd, F_GETFL);
+ if (flags == -1) {
+ return -errno;
+ }
+ if (fcntl(fd, F_SETFL, flags | flag) == -1) {
+ return -errno;
+ }
+ return 0;
+}
+
static int raw_reconfigure_getfd(BlockDriverState *bs, int flags,
int *open_flags, uint64_t perm, bool force_dup,
Error **errp)
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index b8bf7d4070ce..289efca3fae1 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -897,21 +897,6 @@ size_t qemu_get_host_physmem(void)
return 0;
}
-/* Sets a specific flag */
-int fcntl_setfl(int fd, int flag)
-{
- int flags;
-
- flags = fcntl(fd, F_GETFL);
- if (flags == -1) {
- return -errno;
- }
- if (fcntl(fd, F_SETFL, flags | flag) == -1) {
- return -errno;
- }
- return 0;
-}
-
int qemu_msync(void *addr, size_t length, int fd)
{
size_t align_mask = ~(qemu_real_host_page_size() - 1);
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 07/23] Replace qemu_pipe() with g_unix_open_pipe()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (5 preceding siblings ...)
2022-05-03 13:12 ` [PULL 06/23] block: move fcntl_setfl() marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 08/23] util: replace pipe()+cloexec " marcandre.lureau
` (16 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
GLib g_unix_open_pipe() is essentially like qemu_pipe(), available since
2.30.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
include/qemu/osdep.h | 4 ----
qemu-nbd.c | 5 +++--
util/event_notifier-posix.c | 2 +-
util/oslib-posix.c | 22 ----------------------
4 files changed, 4 insertions(+), 29 deletions(-)
diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index 52d81c027ba0..1c1e7eca9898 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -547,10 +547,6 @@ static inline void qemu_timersub(const struct timeval *val1,
ssize_t qemu_write_full(int fd, const void *buf, size_t count)
G_GNUC_WARN_UNUSED_RESULT;
-#ifndef _WIN32
-int qemu_pipe(int pipefd[2]);
-#endif
-
void qemu_set_cloexec(int fd);
/* Return a dynamically allocated directory path that is appropriate for storing
diff --git a/qemu-nbd.c b/qemu-nbd.c
index db63980df1e4..2382b5042adf 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -909,13 +909,14 @@ int main(int argc, char **argv)
if ((device && !verbose) || fork_process) {
#ifndef WIN32
+ g_autoptr(GError) err = NULL;
int stderr_fd[2];
pid_t pid;
int ret;
- if (qemu_pipe(stderr_fd) < 0) {
+ if (!g_unix_open_pipe(stderr_fd, FD_CLOEXEC, &err)) {
error_report("Error setting up communication pipe: %s",
- strerror(errno));
+ err->message);
exit(EXIT_FAILURE);
}
diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c
index 2aa14eabb38e..76420c5b560c 100644
--- a/util/event_notifier-posix.c
+++ b/util/event_notifier-posix.c
@@ -49,7 +49,7 @@ int event_notifier_init(EventNotifier *e, int active)
if (errno != ENOSYS) {
return -errno;
}
- if (qemu_pipe(fds) < 0) {
+ if (!g_unix_open_pipe(fds, FD_CLOEXEC, NULL)) {
return -errno;
}
if (!g_unix_set_fd_nonblocking(fds[0], true, NULL)) {
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index 289efca3fae1..2a6f6248ad03 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -274,28 +274,6 @@ void qemu_set_cloexec(int fd)
assert(f != -1);
}
-/*
- * Creates a pipe with FD_CLOEXEC set on both file descriptors
- */
-int qemu_pipe(int pipefd[2])
-{
- int ret;
-
-#ifdef CONFIG_PIPE2
- ret = pipe2(pipefd, O_CLOEXEC);
- if (ret != -1 || errno != ENOSYS) {
- return ret;
- }
-#endif
- ret = pipe(pipefd);
- if (ret == 0) {
- qemu_set_cloexec(pipefd[0]);
- qemu_set_cloexec(pipefd[1]);
- }
-
- return ret;
-}
-
char *
qemu_get_local_state_dir(void)
{
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 08/23] util: replace pipe()+cloexec with g_unix_open_pipe()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (6 preceding siblings ...)
2022-05-03 13:12 ` [PULL 07/23] Replace qemu_pipe() with g_unix_open_pipe() marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 09/23] qga: replace pipe() with g_unix_open_pipe(CLOEXEC) marcandre.lureau
` (15 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
util/compatfd.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/util/compatfd.c b/util/compatfd.c
index 55b6e0b7fb27..147e39e2c62b 100644
--- a/util/compatfd.c
+++ b/util/compatfd.c
@@ -60,14 +60,11 @@ static int qemu_signalfd_compat(const sigset_t *mask)
info = g_malloc(sizeof(*info));
- if (pipe(fds) == -1) {
+ if (!g_unix_open_pipe(fds, FD_CLOEXEC, NULL)) {
g_free(info);
return -1;
}
- qemu_set_cloexec(fds[0]);
- qemu_set_cloexec(fds[1]);
-
memcpy(&info->mask, mask, sizeof(*mask));
info->fd = fds[1];
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 09/23] qga: replace pipe() with g_unix_open_pipe(CLOEXEC)
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (7 preceding siblings ...)
2022-05-03 13:12 ` [PULL 08/23] util: replace pipe()+cloexec " marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 10/23] tests: " marcandre.lureau
` (14 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
qga/commands-posix.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 77f4672ca2c9..094487c2c395 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -2529,7 +2529,7 @@ void qmp_guest_set_user_password(const char *username,
goto out;
}
- if (pipe(datafd) < 0) {
+ if (!g_unix_open_pipe(datafd, FD_CLOEXEC, NULL)) {
error_setg(errp, "cannot create pipe FDs");
goto out;
}
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 10/23] tests: replace pipe() with g_unix_open_pipe(CLOEXEC)
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (8 preceding siblings ...)
2022-05-03 13:12 ` [PULL 09/23] qga: replace pipe() with g_unix_open_pipe(CLOEXEC) marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 11/23] os-posix: replace pipe()+cloexec " marcandre.lureau
` (13 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
tests/qtest/ivshmem-test.c | 5 +++--
tests/unit/test-io-channel-file.c | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/tests/qtest/ivshmem-test.c b/tests/qtest/ivshmem-test.c
index bfc91d1719d2..e23a97fa8ef4 100644
--- a/tests/qtest/ivshmem-test.c
+++ b/tests/qtest/ivshmem-test.c
@@ -304,6 +304,7 @@ static void setup_vm_with_server(IVState *s, int nvectors)
static void test_ivshmem_server(void)
{
+ g_autoptr(GError) err = NULL;
IVState state1, state2, *s1, *s2;
ServerThread thread;
IvshmemServer server;
@@ -320,8 +321,8 @@ static void test_ivshmem_server(void)
g_assert_cmpint(ret, ==, 0);
thread.server = &server;
- ret = pipe(thread.pipe);
- g_assert_cmpint(ret, ==, 0);
+ g_unix_open_pipe(thread.pipe, FD_CLOEXEC, &err);
+ g_assert_no_error(err);
thread.thread = g_thread_new("ivshmem-server", server_thread, &thread);
g_assert(thread.thread != NULL);
diff --git a/tests/unit/test-io-channel-file.c b/tests/unit/test-io-channel-file.c
index 29038e67b64d..1977006ce922 100644
--- a/tests/unit/test-io-channel-file.c
+++ b/tests/unit/test-io-channel-file.c
@@ -109,7 +109,7 @@ static void test_io_channel_pipe(bool async)
QIOChannelTest *test;
int fd[2];
- if (pipe(fd) < 0) {
+ if (!g_unix_open_pipe(fd, FD_CLOEXEC, NULL)) {
perror("pipe");
abort();
}
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 11/23] os-posix: replace pipe()+cloexec with g_unix_open_pipe(CLOEXEC)
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (9 preceding siblings ...)
2022-05-03 13:12 ` [PULL 10/23] tests: " marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 12/23] virtiofsd: replace pipe() " marcandre.lureau
` (12 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
os-posix.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/os-posix.c b/os-posix.c
index 1b746dba97a7..321fc4bd13b8 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -215,7 +215,7 @@ void os_daemonize(void)
pid_t pid;
int fds[2];
- if (pipe(fds) == -1) {
+ if (!g_unix_open_pipe(fds, FD_CLOEXEC, NULL)) {
exit(1);
}
@@ -240,7 +240,6 @@ void os_daemonize(void)
close(fds[0]);
daemon_pipe = fds[1];
- qemu_set_cloexec(daemon_pipe);
setsid();
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 12/23] virtiofsd: replace pipe() with g_unix_open_pipe(CLOEXEC)
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (10 preceding siblings ...)
2022-05-03 13:12 ` [PULL 11/23] os-posix: replace pipe()+cloexec " marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 13/23] io: " marcandre.lureau
` (11 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
tools/virtiofsd/helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c
index f8981e5bdf1a..f5f66f292c70 100644
--- a/tools/virtiofsd/helper.c
+++ b/tools/virtiofsd/helper.c
@@ -275,7 +275,7 @@ int fuse_daemonize(int foreground)
int waiter[2];
char completed;
- if (pipe(waiter)) {
+ if (!g_unix_open_pipe(waiter, FD_CLOEXEC, NULL)) {
fuse_log(FUSE_LOG_ERR, "fuse_daemonize: pipe: %s\n",
strerror(errno));
return -1;
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 13/23] io: replace pipe() with g_unix_open_pipe(CLOEXEC)
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (11 preceding siblings ...)
2022-05-03 13:12 ` [PULL 12/23] virtiofsd: replace pipe() " marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 14/23] Replace fcntl(O_NONBLOCK) with g_unix_set_fd_nonblocking() marcandre.lureau
` (10 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
io/channel-command.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/io/channel-command.c b/io/channel-command.c
index 338da73ade56..539685ea8340 100644
--- a/io/channel-command.c
+++ b/io/channel-command.c
@@ -76,8 +76,8 @@ qio_channel_command_new_spawn(const char *const argv[],
}
}
- if ((!stdinnull && pipe(stdinfd) < 0) ||
- (!stdoutnull && pipe(stdoutfd) < 0)) {
+ if ((!stdinnull && !g_unix_open_pipe(stdinfd, FD_CLOEXEC, NULL)) ||
+ (!stdoutnull && !g_unix_open_pipe(stdoutfd, FD_CLOEXEC, NULL))) {
error_setg_errno(errp, errno,
"Unable to open pipe");
goto error;
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 14/23] Replace fcntl(O_NONBLOCK) with g_unix_set_fd_nonblocking()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (12 preceding siblings ...)
2022-05-03 13:12 ` [PULL 13/23] io: " marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 15/23] io: make qio_channel_command_new_pid() static marcandre.lureau
` (9 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
net/tap-bsd.c | 4 ++--
net/tap-linux.c | 2 +-
net/tap-solaris.c | 2 +-
tests/qtest/fuzz/virtio_net_fuzz.c | 2 +-
tests/unit/test-iov.c | 4 ++--
util/oslib-posix.c | 16 ++--------------
6 files changed, 9 insertions(+), 21 deletions(-)
diff --git a/net/tap-bsd.c b/net/tap-bsd.c
index 7e65bd391f0b..005ce05c6e07 100644
--- a/net/tap-bsd.c
+++ b/net/tap-bsd.c
@@ -98,7 +98,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
return -1;
}
}
- fcntl(fd, F_SETFL, O_NONBLOCK);
+ g_unix_set_fd_nonblocking(fd, true, NULL);
return fd;
}
@@ -189,7 +189,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
goto error;
}
- fcntl(fd, F_SETFL, O_NONBLOCK);
+ g_unix_set_fd_nonblocking(fd, true, NULL);
return fd;
error:
diff --git a/net/tap-linux.c b/net/tap-linux.c
index 3e24d232e782..304ff45071dd 100644
--- a/net/tap-linux.c
+++ b/net/tap-linux.c
@@ -113,7 +113,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
return -1;
}
pstrcpy(ifname, ifname_size, ifr.ifr_name);
- fcntl(fd, F_SETFL, O_NONBLOCK);
+ g_unix_set_fd_nonblocking(fd, true, NULL);
return fd;
}
diff --git a/net/tap-solaris.c b/net/tap-solaris.c
index 79919785c9f6..a44f8805c23e 100644
--- a/net/tap-solaris.c
+++ b/net/tap-solaris.c
@@ -198,7 +198,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
return -1;
}
}
- fcntl(fd, F_SETFL, O_NONBLOCK);
+ g_unix_set_fd_nonblocking(fd, true, NULL);
return fd;
}
diff --git a/tests/qtest/fuzz/virtio_net_fuzz.c b/tests/qtest/fuzz/virtio_net_fuzz.c
index 3df78d9c1c2a..c2c15f07f062 100644
--- a/tests/qtest/fuzz/virtio_net_fuzz.c
+++ b/tests/qtest/fuzz/virtio_net_fuzz.c
@@ -151,7 +151,7 @@ static void *virtio_net_test_setup_socket(GString *cmd_line, void *arg)
{
int ret = socketpair(PF_UNIX, SOCK_STREAM, 0, sockfds);
g_assert_cmpint(ret, !=, -1);
- fcntl(sockfds[0], F_SETFL, O_NONBLOCK);
+ g_unix_set_fd_nonblocking(sockfds[0], true, NULL);
sockfds_initialized = true;
g_string_append_printf(cmd_line, " -netdev socket,fd=%d,id=hs0 ",
sockfds[1]);
diff --git a/tests/unit/test-iov.c b/tests/unit/test-iov.c
index 0d2ba9ba87d9..93bda00f0e10 100644
--- a/tests/unit/test-iov.c
+++ b/tests/unit/test-iov.c
@@ -186,7 +186,7 @@ static void test_io(void)
close(sv[0]);
FD_SET(sv[1], &fds);
- fcntl(sv[1], F_SETFL, O_RDWR|O_NONBLOCK);
+ g_unix_set_fd_nonblocking(sv[1], true, NULL);
r = g_test_rand_int_range(sz / 2, sz);
setsockopt(sv[1], SOL_SOCKET, SO_SNDBUF, &r, sizeof(r));
@@ -220,7 +220,7 @@ static void test_io(void)
close(sv[1]);
FD_SET(sv[0], &fds);
- fcntl(sv[0], F_SETFL, O_RDWR|O_NONBLOCK);
+ g_unix_set_fd_nonblocking(sv[0], true, NULL);
r = g_test_rand_int_range(sz / 2, sz);
setsockopt(sv[0], SOL_SOCKET, SO_RCVBUF, &r, sizeof(r));
usleep(500000);
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index 2a6f6248ad03..72f25e599dba 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -226,24 +226,12 @@ void qemu_anon_ram_free(void *ptr, size_t size)
void qemu_set_block(int fd)
{
- int f;
- f = fcntl(fd, F_GETFL);
- assert(f != -1);
- f = fcntl(fd, F_SETFL, f & ~O_NONBLOCK);
- assert(f != -1);
+ g_unix_set_fd_nonblocking(fd, false, NULL);
}
int qemu_try_set_nonblock(int fd)
{
- int f;
- f = fcntl(fd, F_GETFL);
- if (f == -1) {
- return -errno;
- }
- if (fcntl(fd, F_SETFL, f | O_NONBLOCK) == -1) {
- return -errno;
- }
- return 0;
+ return g_unix_set_fd_nonblocking(fd, true, NULL) ? 0 : -errno;
}
void qemu_set_nonblock(int fd)
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 15/23] io: make qio_channel_command_new_pid() static
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (13 preceding siblings ...)
2022-05-03 13:12 ` [PULL 14/23] Replace fcntl(O_NONBLOCK) with g_unix_set_fd_nonblocking() marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 16/23] chardev: replace qemu_set_nonblock() marcandre.lureau
` (8 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The function isn't used outside of qio_channel_command_new_spawn(),
which is !win32-specific.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
include/io/channel-command.h | 25 -------------------------
io/channel-command.c | 26 ++++++++++++++++++++++----
2 files changed, 22 insertions(+), 29 deletions(-)
diff --git a/include/io/channel-command.h b/include/io/channel-command.h
index 27e42bdadc71..305ac1d28066 100644
--- a/include/io/channel-command.h
+++ b/include/io/channel-command.h
@@ -45,31 +45,6 @@ struct QIOChannelCommand {
};
-/**
- * qio_channel_command_new_pid:
- * @writefd: the FD connected to the command's stdin
- * @readfd: the FD connected to the command's stdout
- * @pid: the PID of the running child command
- * @errp: pointer to a NULL-initialized error object
- *
- * Create a channel for performing I/O with the
- * previously spawned command identified by @pid.
- * The two file descriptors provide the connection
- * to command's stdio streams, either one or which
- * may be -1 to indicate that stream is not open.
- *
- * The channel will take ownership of the process
- * @pid and will kill it when closing the channel.
- * Similarly it will take responsibility for
- * closing the file descriptors @writefd and @readfd.
- *
- * Returns: the command channel object, or NULL on error
- */
-QIOChannelCommand *
-qio_channel_command_new_pid(int writefd,
- int readfd,
- pid_t pid);
-
/**
* qio_channel_command_new_spawn:
* @argv: the NULL terminated list of command arguments
diff --git a/io/channel-command.c b/io/channel-command.c
index 539685ea8340..0790ac7895c0 100644
--- a/io/channel-command.c
+++ b/io/channel-command.c
@@ -26,8 +26,28 @@
#include "qemu/sockets.h"
#include "trace.h"
-
-QIOChannelCommand *
+#ifndef WIN32
+/**
+ * qio_channel_command_new_pid:
+ * @writefd: the FD connected to the command's stdin
+ * @readfd: the FD connected to the command's stdout
+ * @pid: the PID of the running child command
+ * @errp: pointer to a NULL-initialized error object
+ *
+ * Create a channel for performing I/O with the
+ * previously spawned command identified by @pid.
+ * The two file descriptors provide the connection
+ * to command's stdio streams, either one or which
+ * may be -1 to indicate that stream is not open.
+ *
+ * The channel will take ownership of the process
+ * @pid and will kill it when closing the channel.
+ * Similarly it will take responsibility for
+ * closing the file descriptors @writefd and @readfd.
+ *
+ * Returns: the command channel object, or NULL on error
+ */
+static QIOChannelCommand *
qio_channel_command_new_pid(int writefd,
int readfd,
pid_t pid)
@@ -44,8 +64,6 @@ qio_channel_command_new_pid(int writefd,
return ioc;
}
-
-#ifndef WIN32
QIOChannelCommand *
qio_channel_command_new_spawn(const char *const argv[],
int flags,
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 16/23] chardev: replace qemu_set_nonblock()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (14 preceding siblings ...)
2022-05-03 13:12 ` [PULL 15/23] io: make qio_channel_command_new_pid() static marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 17/23] io: replace qemu_set{_non}block() marcandre.lureau
` (7 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Those calls are either for non-socket fd, or are POSIX-specific. Use the
dedicated GLib API. (qemu_set_nonblock() is for socket-like)
(this is a preliminary patch before renaming qemu_set_nonblock())
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
chardev/char-fd.c | 4 ++--
chardev/char-pty.c | 5 ++++-
chardev/char-serial.c | 5 ++++-
chardev/char-stdio.c | 5 ++++-
4 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/chardev/char-fd.c b/chardev/char-fd.c
index 6ec9682b22f2..cf7845484174 100644
--- a/chardev/char-fd.c
+++ b/chardev/char-fd.c
@@ -212,8 +212,8 @@ void qemu_chr_open_fd(Chardev *chr,
FDChardev *s = FD_CHARDEV(chr);
g_autofree char *name = NULL;
- if (fd_out >= 0) {
- qemu_set_nonblock(fd_out);
+ if (fd_out >= 0 && !g_unix_set_fd_nonblocking(fd_out, true, NULL)) {
+ assert(!"Failed to set FD nonblocking");
}
if (fd_out == fd_in && fd_in >= 0) {
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 1e2863f532a8..53f25c6bbd0c 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -324,7 +324,10 @@ static void char_pty_open(Chardev *chr,
}
close(slave_fd);
- qemu_set_nonblock(master_fd);
+ if (!g_unix_set_fd_nonblocking(master_fd, true, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return;
+ }
chr->filename = g_strdup_printf("pty:%s", pty_name);
qemu_printf("char device redirected to %s (label %s)\n",
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 7c3d84ae243e..4b0b83d5b45e 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -271,7 +271,10 @@ static void qmp_chardev_open_serial(Chardev *chr,
if (fd < 0) {
return;
}
- qemu_set_nonblock(fd);
+ if (!g_unix_set_fd_nonblocking(fd, true, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return;
+ }
tty_serial_init(fd, 115200, 'N', 8, 1);
qemu_chr_open_fd(chr, fd, fd);
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index 403da308c980..3c648678ab14 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -103,7 +103,10 @@ static void qemu_chr_open_stdio(Chardev *chr,
stdio_in_use = true;
old_fd0_flags = fcntl(0, F_GETFL);
tcgetattr(0, &oldtty);
- qemu_set_nonblock(0);
+ if (!g_unix_set_fd_nonblocking(0, true, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return;
+ }
atexit(term_exit);
memset(&act, 0, sizeof(act));
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 17/23] io: replace qemu_set{_non}block()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (15 preceding siblings ...)
2022-05-03 13:12 ` [PULL 16/23] chardev: replace qemu_set_nonblock() marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 18/23] qga: replace qemu_set_nonblock() marcandre.lureau
` (6 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Those calls are non-socket fd, or are POSIX-specific. Use the dedicated
GLib API. (qemu_set_nonblock() is for socket-like)
(this is a preliminary patch before renaming qemu_set_nonblock())
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
io/channel-command.c | 16 +++++++++-------
io/channel-file.c | 13 +++++++++----
2 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/io/channel-command.c b/io/channel-command.c
index 0790ac7895c0..4a1f969aaa8e 100644
--- a/io/channel-command.c
+++ b/io/channel-command.c
@@ -301,16 +301,18 @@ static int qio_channel_command_set_blocking(QIOChannel *ioc,
bool enabled,
Error **errp)
{
+#ifdef WIN32
+ /* command spawn is not supported on win32 */
+ g_assert_not_reached();
+#else
QIOChannelCommand *cioc = QIO_CHANNEL_COMMAND(ioc);
- if (enabled) {
- qemu_set_block(cioc->writefd);
- qemu_set_block(cioc->readfd);
- } else {
- qemu_set_nonblock(cioc->writefd);
- qemu_set_nonblock(cioc->readfd);
+ if (!g_unix_set_fd_nonblocking(cioc->writefd, !enabled, NULL) ||
+ !g_unix_set_fd_nonblocking(cioc->readfd, !enabled, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return -1;
}
-
+#endif
return 0;
}
diff --git a/io/channel-file.c b/io/channel-file.c
index d7cf6d278ff9..d146ace7db9f 100644
--- a/io/channel-file.c
+++ b/io/channel-file.c
@@ -139,14 +139,19 @@ static int qio_channel_file_set_blocking(QIOChannel *ioc,
bool enabled,
Error **errp)
{
+#ifdef WIN32
+ /* not implemented */
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return -1;
+#else
QIOChannelFile *fioc = QIO_CHANNEL_FILE(ioc);
- if (enabled) {
- qemu_set_block(fioc->fd);
- } else {
- qemu_set_nonblock(fioc->fd);
+ if (!g_unix_set_fd_nonblocking(fioc->fd, !enabled, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return -1;
}
return 0;
+#endif
}
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 18/23] qga: replace qemu_set_nonblock()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (16 preceding siblings ...)
2022-05-03 13:12 ` [PULL 17/23] io: replace qemu_set{_non}block() marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 19/23] hw: " marcandre.lureau
` (5 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The call is POSIX-specific. Use the dedicated GLib API.
(this is a preliminary patch before renaming qemu_set_nonblock())
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
qga/commands-posix.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 094487c2c395..78f2f210015d 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -404,7 +404,11 @@ int64_t qmp_guest_file_open(const char *path, bool has_mode, const char *mode,
/* set fd non-blocking to avoid common use cases (like reading from a
* named pipe) from hanging the agent
*/
- qemu_set_nonblock(fileno(fh));
+ if (!g_unix_set_fd_nonblocking(fileno(fh), true, NULL)) {
+ fclose(fh);
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return -1;
+ }
handle = guest_file_handle_add(fh, errp);
if (handle < 0) {
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 19/23] hw: replace qemu_set_nonblock()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (17 preceding siblings ...)
2022-05-03 13:12 ` [PULL 18/23] qga: replace qemu_set_nonblock() marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 20/23] ui: " marcandre.lureau
` (4 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Those calls are non-socket fd, or are POSIX-specific. Use the dedicated
GLib API. (qemu_set_nonblock() is for socket-like)
(this is a preliminary patch before renaming qemu_set_nonblock())
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
hw/input/virtio-input-host.c | 5 ++++-
hw/virtio/vhost-vsock.c | 11 +++++++----
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/hw/input/virtio-input-host.c b/hw/input/virtio-input-host.c
index 137efba57b0f..fea7139382a1 100644
--- a/hw/input/virtio-input-host.c
+++ b/hw/input/virtio-input-host.c
@@ -114,7 +114,10 @@ static void virtio_input_host_realize(DeviceState *dev, Error **errp)
error_setg_file_open(errp, errno, vih->evdev);
return;
}
- qemu_set_nonblock(vih->fd);
+ if (!g_unix_set_fd_nonblocking(vih->fd, true, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ goto err_close;
+ }
rc = ioctl(vih->fd, EVIOCGVERSION, &ver);
if (rc < 0) {
diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c
index 433d42d897df..714046210bd3 100644
--- a/hw/virtio/vhost-vsock.c
+++ b/hw/virtio/vhost-vsock.c
@@ -149,9 +149,8 @@ static void vhost_vsock_device_realize(DeviceState *dev, Error **errp)
return;
}
- ret = qemu_try_set_nonblock(vhostfd);
- if (ret < 0) {
- error_setg_errno(errp, -ret,
+ if (!g_unix_set_fd_nonblocking(vhostfd, true, NULL)) {
+ error_setg_errno(errp, errno,
"vhost-vsock: unable to set non-blocking mode");
return;
}
@@ -163,7 +162,11 @@ static void vhost_vsock_device_realize(DeviceState *dev, Error **errp)
return;
}
- qemu_set_nonblock(vhostfd);
+ if (!g_unix_set_fd_nonblocking(vhostfd, true, NULL)) {
+ error_setg_errno(errp, errno,
+ "Failed to set FD nonblocking");
+ return;
+ }
}
vhost_vsock_common_realize(vdev, "vhost-vsock");
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 20/23] ui: replace qemu_set_nonblock()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (18 preceding siblings ...)
2022-05-03 13:12 ` [PULL 19/23] hw: " marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 21/23] net: " marcandre.lureau
` (3 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The call is POSIX-specific. Use the dedicated GLib API.
(this is a preliminary patch before renaming qemu_set_nonblock())
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
ui/input-linux.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/ui/input-linux.c b/ui/input-linux.c
index 05c0c988199a..e572a2e905b9 100644
--- a/ui/input-linux.c
+++ b/ui/input-linux.c
@@ -316,7 +316,10 @@ static void input_linux_complete(UserCreatable *uc, Error **errp)
error_setg_file_open(errp, errno, il->evdev);
return;
}
- qemu_set_nonblock(il->fd);
+ if (!g_unix_set_fd_nonblocking(il->fd, true, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return;
+ }
rc = ioctl(il->fd, EVIOCGVERSION, &ver);
if (rc < 0) {
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 21/23] net: replace qemu_set_nonblock()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (19 preceding siblings ...)
2022-05-03 13:12 ` [PULL 20/23] ui: " marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 22/23] tests: " marcandre.lureau
` (2 subsequent siblings)
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Those calls are POSIX-specific. Use the dedicated GLib
API. (qemu_set_nonblock() is for socket-like)
(this is a preliminary patch before renaming qemu_set_nonblock())
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
net/tap.c | 33 +++++++++++++++++++--------------
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/net/tap.c b/net/tap.c
index 6190fa699d2f..b3ddfd4a74b1 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -619,7 +619,10 @@ int net_init_bridge(const Netdev *netdev, const char *name,
return -1;
}
- qemu_set_nonblock(fd);
+ if (!g_unix_set_fd_nonblocking(fd, true, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return -1;
+ }
vnet_hdr = tap_probe_vnet_hdr(fd, errp);
if (vnet_hdr < 0) {
close(fd);
@@ -716,8 +719,6 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
}
if (vhostfdname) {
- int ret;
-
vhostfd = monitor_fd_param(monitor_cur(), vhostfdname, &err);
if (vhostfd == -1) {
if (tap->has_vhostforce && tap->vhostforce) {
@@ -727,9 +728,8 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
}
return;
}
- ret = qemu_try_set_nonblock(vhostfd);
- if (ret < 0) {
- error_setg_errno(errp, -ret, "%s: Can't use file descriptor %d",
+ if (!g_unix_set_fd_nonblocking(vhostfd, true, NULL)) {
+ error_setg_errno(errp, errno, "%s: Can't use file descriptor %d",
name, fd);
return;
}
@@ -745,7 +745,10 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
}
return;
}
- qemu_set_nonblock(vhostfd);
+ if (!g_unix_set_fd_nonblocking(vhostfd, true, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return;
+ }
}
options.opaque = (void *)(uintptr_t)vhostfd;
options.nvqs = 2;
@@ -832,9 +835,8 @@ int net_init_tap(const Netdev *netdev, const char *name,
return -1;
}
- ret = qemu_try_set_nonblock(fd);
- if (ret < 0) {
- error_setg_errno(errp, -ret, "%s: Can't use file descriptor %d",
+ if (!g_unix_set_fd_nonblocking(fd, true, NULL)) {
+ error_setg_errno(errp, errno, "%s: Can't use file descriptor %d",
name, fd);
close(fd);
return -1;
@@ -889,9 +891,9 @@ int net_init_tap(const Netdev *netdev, const char *name,
goto free_fail;
}
- ret = qemu_try_set_nonblock(fd);
- if (ret < 0) {
- error_setg_errno(errp, -ret, "%s: Can't use file descriptor %d",
+ ret = g_unix_set_fd_nonblocking(fd, true, NULL);
+ if (!ret) {
+ error_setg_errno(errp, errno, "%s: Can't use file descriptor %d",
name, fd);
goto free_fail;
}
@@ -946,7 +948,10 @@ free_fail:
return -1;
}
- qemu_set_nonblock(fd);
+ if (!g_unix_set_fd_nonblocking(fd, true, NULL)) {
+ error_setg_errno(errp, errno, "Failed to set FD nonblocking");
+ return -1;
+ }
vnet_hdr = tap_probe_vnet_hdr(fd, errp);
if (vnet_hdr < 0) {
close(fd);
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 22/23] tests: replace qemu_set_nonblock()
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (20 preceding siblings ...)
2022-05-03 13:12 ` [PULL 21/23] net: " marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 13:12 ` [PULL 23/23] util: rename qemu_*block() socket functions marcandre.lureau
2022-05-03 19:38 ` [PULL 00/23] Misc patches Richard Henderson
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The call is POSIX-specific. Use the dedicated GLib API.
(this is a preliminary patch before renaming qemu_set_nonblock())
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/vhost-user-test.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c
index ee30f5479648..a2cec8768462 100644
--- a/tests/qtest/vhost-user-test.c
+++ b/tests/qtest/vhost-user-test.c
@@ -302,6 +302,7 @@ static int chr_can_read(void *opaque)
static void chr_read(void *opaque, const uint8_t *buf, int size)
{
+ g_autoptr(GError) err = NULL;
TestServer *s = opaque;
CharBackend *chr = &s->chr;
VhostUserMsg msg;
@@ -394,7 +395,8 @@ static void chr_read(void *opaque, const uint8_t *buf, int size)
* The receive function forces it to be blocking,
* so revert it back to non-blocking.
*/
- qemu_set_nonblock(fd);
+ g_unix_set_fd_nonblocking(fd, true, &err);
+ g_assert_no_error(err);
break;
case VHOST_USER_SET_LOG_BASE:
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PULL 23/23] util: rename qemu_*block() socket functions
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (21 preceding siblings ...)
2022-05-03 13:12 ` [PULL 22/23] tests: " marcandre.lureau
@ 2022-05-03 13:12 ` marcandre.lureau
2022-05-03 19:38 ` [PULL 00/23] Misc patches Richard Henderson
23 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:12 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The qemu_*block() functions are meant to be be used with sockets (the
win32 implementation expects SOCKET)
Over time, those functions where used with Win32 SOCKET or
file-descriptors interchangeably. But for portability, they must only be
used with socket-like file-descriptors. FDs can use
g_unix_set_fd_nonblocking() instead.
Rename the functions with "socket" in the name to prevent bad usages.
This is effectively reverting commit f9e8cacc5557e43 ("oslib-posix:
rename socket_set_nonblock() to qemu_set_nonblock()").
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
include/qemu/sockets.h | 6 +++---
chardev/char-socket.c | 2 +-
contrib/ivshmem-server/ivshmem-server.c | 2 +-
hw/hyperv/syndbg.c | 2 +-
hw/virtio/vhost-user.c | 2 +-
io/channel-socket.c | 6 +++---
net/l2tpv3.c | 2 +-
net/socket.c | 10 +++++-----
qga/channel-posix.c | 2 +-
tests/unit/socket-helpers.c | 2 +-
tests/unit/test-crypto-tlssession.c | 8 ++++----
util/oslib-posix.c | 8 ++++----
util/oslib-win32.c | 8 ++++----
util/vhost-user-server.c | 4 ++--
14 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
index 0c34bf23987e..038faa157f59 100644
--- a/include/qemu/sockets.h
+++ b/include/qemu/sockets.h
@@ -17,9 +17,9 @@ int qemu_socket(int domain, int type, int protocol);
int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
int socket_set_cork(int fd, int v);
int socket_set_nodelay(int fd);
-void qemu_set_block(int fd);
-int qemu_try_set_nonblock(int fd);
-void qemu_set_nonblock(int fd);
+void qemu_socket_set_block(int fd);
+int qemu_socket_try_set_nonblock(int fd);
+void qemu_socket_set_nonblock(int fd);
int socket_set_fast_reuse(int fd);
#ifdef WIN32
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index fab2d791d43d..dc4e218eeb6a 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -311,7 +311,7 @@ static ssize_t tcp_chr_recv(Chardev *chr, char *buf, size_t len)
}
/* O_NONBLOCK is preserved across SCM_RIGHTS so reset it */
- qemu_set_block(fd);
+ qemu_socket_set_block(fd);
#ifndef MSG_CMSG_CLOEXEC
qemu_set_cloexec(fd);
diff --git a/contrib/ivshmem-server/ivshmem-server.c b/contrib/ivshmem-server/ivshmem-server.c
index 39a6ffdb5df9..2f3c7320a678 100644
--- a/contrib/ivshmem-server/ivshmem-server.c
+++ b/contrib/ivshmem-server/ivshmem-server.c
@@ -146,7 +146,7 @@ ivshmem_server_handle_new_conn(IvshmemServer *server)
return -1;
}
- qemu_set_nonblock(newfd);
+ qemu_socket_set_nonblock(newfd);
IVSHMEM_SERVER_DEBUG(server, "accept()=%d\n", newfd);
/* allocate new structure for this peer */
diff --git a/hw/hyperv/syndbg.c b/hw/hyperv/syndbg.c
index ebb8a29f7838..16d04cfdc669 100644
--- a/hw/hyperv/syndbg.c
+++ b/hw/hyperv/syndbg.c
@@ -334,7 +334,7 @@ static void hv_syndbg_realize(DeviceState *dev, Error **errp)
return;
}
- qemu_set_nonblock(syndbg->socket);
+ qemu_socket_set_nonblock(syndbg->socket);
syndbg->servaddr.sin_port = htons(syndbg->host_port);
syndbg->servaddr.sin_family = AF_INET;
diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
index 9c4f84f35f61..a80315ecfc40 100644
--- a/hw/virtio/vhost-user.c
+++ b/hw/virtio/vhost-user.c
@@ -1826,7 +1826,7 @@ static int vhost_user_postcopy_advise(struct vhost_dev *dev, Error **errp)
error_setg(errp, "%s: Failed to get ufd", __func__);
return -EIO;
}
- qemu_set_nonblock(ufd);
+ qemu_socket_set_nonblock(ufd);
/* register ufd with userfault thread */
u->postcopy_fd.fd = ufd;
diff --git a/io/channel-socket.c b/io/channel-socket.c
index 9f5ddf68b687..e531d7bd2af5 100644
--- a/io/channel-socket.c
+++ b/io/channel-socket.c
@@ -460,7 +460,7 @@ static void qio_channel_socket_copy_fds(struct msghdr *msg,
}
/* O_NONBLOCK is preserved across SCM_RIGHTS so reset it */
- qemu_set_block(fd);
+ qemu_socket_set_block(fd);
#ifndef MSG_CMSG_CLOEXEC
qemu_set_cloexec(fd);
@@ -665,9 +665,9 @@ qio_channel_socket_set_blocking(QIOChannel *ioc,
QIOChannelSocket *sioc = QIO_CHANNEL_SOCKET(ioc);
if (enabled) {
- qemu_set_block(sioc->fd);
+ qemu_socket_set_block(sioc->fd);
} else {
- qemu_set_nonblock(sioc->fd);
+ qemu_socket_set_nonblock(sioc->fd);
}
return 0;
}
diff --git a/net/l2tpv3.c b/net/l2tpv3.c
index b8faa8796c8f..af373e5c300c 100644
--- a/net/l2tpv3.c
+++ b/net/l2tpv3.c
@@ -716,7 +716,7 @@ int net_init_l2tpv3(const Netdev *netdev,
s->vec = g_new(struct iovec, MAX_L2TPV3_IOVCNT);
s->header_buf = g_malloc(s->header_size);
- qemu_set_nonblock(fd);
+ qemu_socket_set_nonblock(fd);
s->fd = fd;
s->counter = 0;
diff --git a/net/socket.c b/net/socket.c
index ea5220a2eb51..bfd8596250c4 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -297,7 +297,7 @@ static int net_socket_mcast_create(struct sockaddr_in *mcastaddr,
}
}
- qemu_set_nonblock(fd);
+ qemu_socket_set_nonblock(fd);
return fd;
fail:
if (fd >= 0)
@@ -522,7 +522,7 @@ static int net_socket_listen_init(NetClientState *peer,
error_setg_errno(errp, errno, "can't create stream socket");
return -1;
}
- qemu_set_nonblock(fd);
+ qemu_socket_set_nonblock(fd);
socket_set_fast_reuse(fd);
@@ -570,7 +570,7 @@ static int net_socket_connect_init(NetClientState *peer,
error_setg_errno(errp, errno, "can't create stream socket");
return -1;
}
- qemu_set_nonblock(fd);
+ qemu_socket_set_nonblock(fd);
connected = 0;
for(;;) {
@@ -688,7 +688,7 @@ static int net_socket_udp_init(NetClientState *peer,
closesocket(fd);
return -1;
}
- qemu_set_nonblock(fd);
+ qemu_socket_set_nonblock(fd);
s = net_socket_fd_init(peer, model, name, fd, 0, NULL, errp);
if (!s) {
@@ -730,7 +730,7 @@ int net_init_socket(const Netdev *netdev, const char *name,
if (fd == -1) {
return -1;
}
- ret = qemu_try_set_nonblock(fd);
+ ret = qemu_socket_try_set_nonblock(fd);
if (ret < 0) {
error_setg_errno(errp, -ret, "%s: Can't use file descriptor %d",
name, fd);
diff --git a/qga/channel-posix.c b/qga/channel-posix.c
index 03739753607d..a996858e2492 100644
--- a/qga/channel-posix.c
+++ b/qga/channel-posix.c
@@ -34,7 +34,7 @@ static gboolean ga_channel_listen_accept(GIOChannel *channel,
g_warning("error converting fd to gsocket: %s", strerror(errno));
goto out;
}
- qemu_set_nonblock(client_fd);
+ qemu_socket_set_nonblock(client_fd);
ret = ga_channel_client_add(c, client_fd);
if (ret) {
g_warning("error setting up connection");
diff --git a/tests/unit/socket-helpers.c b/tests/unit/socket-helpers.c
index 0a9e090a68dd..5af4de513bb6 100644
--- a/tests/unit/socket-helpers.c
+++ b/tests/unit/socket-helpers.c
@@ -88,7 +88,7 @@ static int socket_can_bind_connect(const char *hostname, int family)
goto cleanup;
}
- qemu_set_nonblock(cfd);
+ qemu_socket_set_nonblock(cfd);
if (connect(cfd, (struct sockaddr *)&ss, sslen) < 0) {
if (errno == EINPROGRESS) {
check_soerr = true;
diff --git a/tests/unit/test-crypto-tlssession.c b/tests/unit/test-crypto-tlssession.c
index 5f0da9192c53..a266dc32dac9 100644
--- a/tests/unit/test-crypto-tlssession.c
+++ b/tests/unit/test-crypto-tlssession.c
@@ -90,8 +90,8 @@ static void test_crypto_tls_session_psk(void)
* thread, so we need these non-blocking to avoid deadlock
* of ourselves
*/
- qemu_set_nonblock(channel[0]);
- qemu_set_nonblock(channel[1]);
+ qemu_socket_set_nonblock(channel[0]);
+ qemu_socket_set_nonblock(channel[1]);
clientCreds = test_tls_creds_psk_create(
QCRYPTO_TLS_CREDS_ENDPOINT_CLIENT,
@@ -244,8 +244,8 @@ static void test_crypto_tls_session_x509(const void *opaque)
* thread, so we need these non-blocking to avoid deadlock
* of ourselves
*/
- qemu_set_nonblock(channel[0]);
- qemu_set_nonblock(channel[1]);
+ qemu_socket_set_nonblock(channel[0]);
+ qemu_socket_set_nonblock(channel[1]);
#define CLIENT_CERT_DIR "tests/test-crypto-tlssession-client/"
#define SERVER_CERT_DIR "tests/test-crypto-tlssession-server/"
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index 72f25e599dba..477990f39baf 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -224,20 +224,20 @@ void qemu_anon_ram_free(void *ptr, size_t size)
qemu_ram_munmap(-1, ptr, size);
}
-void qemu_set_block(int fd)
+void qemu_socket_set_block(int fd)
{
g_unix_set_fd_nonblocking(fd, false, NULL);
}
-int qemu_try_set_nonblock(int fd)
+int qemu_socket_try_set_nonblock(int fd)
{
return g_unix_set_fd_nonblocking(fd, true, NULL) ? 0 : -errno;
}
-void qemu_set_nonblock(int fd)
+void qemu_socket_set_nonblock(int fd)
{
int f;
- f = qemu_try_set_nonblock(fd);
+ f = qemu_socket_try_set_nonblock(fd);
assert(f == 0);
}
diff --git a/util/oslib-win32.c b/util/oslib-win32.c
index 9c1e8121fd6d..dafef4f15733 100644
--- a/util/oslib-win32.c
+++ b/util/oslib-win32.c
@@ -184,14 +184,14 @@ static int socket_error(void)
}
}
-void qemu_set_block(int fd)
+void qemu_socket_set_block(int fd)
{
unsigned long opt = 0;
WSAEventSelect(fd, NULL, 0);
ioctlsocket(fd, FIONBIO, &opt);
}
-int qemu_try_set_nonblock(int fd)
+int qemu_socket_try_set_nonblock(int fd)
{
unsigned long opt = 1;
if (ioctlsocket(fd, FIONBIO, &opt) != NO_ERROR) {
@@ -200,9 +200,9 @@ int qemu_try_set_nonblock(int fd)
return 0;
}
-void qemu_set_nonblock(int fd)
+void qemu_socket_set_nonblock(int fd)
{
- (void)qemu_try_set_nonblock(fd);
+ (void)qemu_socket_try_set_nonblock(fd);
}
int socket_set_fast_reuse(int fd)
diff --git a/util/vhost-user-server.c b/util/vhost-user-server.c
index f66fbba7108b..232984ace6d7 100644
--- a/util/vhost-user-server.c
+++ b/util/vhost-user-server.c
@@ -65,7 +65,7 @@ static void vmsg_unblock_fds(VhostUserMsg *vmsg)
{
int i;
for (i = 0; i < vmsg->fd_num; i++) {
- qemu_set_nonblock(vmsg->fds[i]);
+ qemu_socket_set_nonblock(vmsg->fds[i]);
}
}
@@ -270,7 +270,7 @@ set_watch(VuDev *vu_dev, int fd, int vu_evt,
vu_fd_watch->fd = fd;
vu_fd_watch->cb = cb;
- qemu_set_nonblock(fd);
+ qemu_socket_set_nonblock(fd);
aio_set_fd_handler(server->ioc->ctx, fd, true, kick_handler,
NULL, NULL, NULL, vu_fd_watch);
vu_fd_watch->vu_dev = vu_dev;
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PULL 00/23] Misc patches
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
` (22 preceding siblings ...)
2022-05-03 13:12 ` [PULL 23/23] util: rename qemu_*block() socket functions marcandre.lureau
@ 2022-05-03 19:38 ` Richard Henderson
23 siblings, 0 replies; 26+ messages in thread
From: Richard Henderson @ 2022-05-03 19:38 UTC (permalink / raw)
To: marcandre.lureau, qemu-devel; +Cc: Peter Maydell
On 5/3/22 06:12, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65:
>
> Merge tag 'pull-9p-20220501' of https://github.com/cschoenebeck/qemu into staging (2022-05-01 07:48:11 -0700)
>
> are available in the Git repository at:
>
> git@gitlab.com:marcandre.lureau/qemu.git tags/misc-pull-request
>
> for you to fetch changes up to ff5927baa7ffb9c97873a071f6a8d85a3584182b:
>
> util: rename qemu_*block() socket functions (2022-05-03 15:53:20 +0400)
>
> ----------------------------------------------------------------
> Misc cleanups
Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/7.1 as appropriate.
r~
>
> ----------------------------------------------------------------
>
> Marc-André Lureau (23):
> Use QEMU_SANITIZE_THREAD
> Use QEMU_SANITIZE_ADDRESS
> tests: move libqtest.h back under qtest/
> libqtest: split QMP part in libqmp
> Use g_unix_set_fd_nonblocking()
> block: move fcntl_setfl()
> Replace qemu_pipe() with g_unix_open_pipe()
> util: replace pipe()+cloexec with g_unix_open_pipe()
> qga: replace pipe() with g_unix_open_pipe(CLOEXEC)
> tests: replace pipe() with g_unix_open_pipe(CLOEXEC)
> os-posix: replace pipe()+cloexec with g_unix_open_pipe(CLOEXEC)
> virtiofsd: replace pipe() with g_unix_open_pipe(CLOEXEC)
> io: replace pipe() with g_unix_open_pipe(CLOEXEC)
> Replace fcntl(O_NONBLOCK) with g_unix_set_fd_nonblocking()
> io: make qio_channel_command_new_pid() static
> chardev: replace qemu_set_nonblock()
> io: replace qemu_set{_non}block()
> qga: replace qemu_set_nonblock()
> hw: replace qemu_set_nonblock()
> ui: replace qemu_set_nonblock()
> net: replace qemu_set_nonblock()
> tests: replace qemu_set_nonblock()
> util: rename qemu_*block() socket functions
>
> docs/devel/qtest.rst | 2 +-
> include/io/channel-command.h | 25 --
> include/qemu/atomic.h | 8 +-
> include/qemu/osdep.h | 4 -
> include/qemu/sockets.h | 6 +-
> include/sysemu/os-posix.h | 2 -
> subprojects/libvhost-user/include/compiler.h | 1 +
> tests/qtest/acpi-utils.h | 2 +-
> tests/qtest/boot-sector.h | 2 +-
> tests/qtest/fuzz/fuzz.h | 2 +-
> tests/qtest/libqmp.h | 50 ++++
> tests/qtest/libqos/fw_cfg.h | 2 +-
> tests/qtest/libqos/i2c.h | 2 +-
> tests/qtest/libqos/libqos.h | 2 +-
> tests/qtest/libqos/malloc.h | 2 +-
> tests/qtest/libqos/pci.h | 2 +-
> tests/qtest/libqos/sdhci-cmd.h | 2 +-
> tests/qtest/libqtest-single.h | 2 +-
> tests/qtest/{libqos => }/libqtest.h | 29 +--
> tests/qtest/migration-helpers.h | 2 +-
> tests/qtest/tpm-emu.h | 2 +-
> block/file-posix.c | 15 ++
> chardev/char-fd.c | 4 +-
> chardev/char-pty.c | 5 +-
> chardev/char-serial.c | 5 +-
> chardev/char-socket.c | 2 +-
> chardev/char-stdio.c | 5 +-
> contrib/ivshmem-server/ivshmem-server.c | 2 +-
> hw/hyperv/syndbg.c | 2 +-
> hw/input/virtio-input-host.c | 5 +-
> hw/misc/ivshmem.c | 2 +-
> hw/virtio/vhost-user.c | 2 +-
> hw/virtio/vhost-vsock.c | 11 +-
> io/channel-command.c | 46 +++-
> io/channel-file.c | 13 +-
> io/channel-socket.c | 6 +-
> net/l2tpv3.c | 2 +-
> net/socket.c | 10 +-
> net/tap-bsd.c | 4 +-
> net/tap-linux.c | 2 +-
> net/tap-solaris.c | 2 +-
> net/tap.c | 33 +--
> os-posix.c | 3 +-
> qemu-nbd.c | 5 +-
> qga/channel-posix.c | 2 +-
> qga/commands-posix.c | 8 +-
> tests/qtest/ac97-test.c | 2 +-
> tests/qtest/ahci-test.c | 2 +-
> tests/qtest/am53c974-test.c | 2 +-
> tests/qtest/arm-cpu-features.c | 2 +-
> tests/qtest/aspeed_hace-test.c | 2 +-
> tests/qtest/boot-order-test.c | 2 +-
> tests/qtest/boot-sector.c | 2 +-
> tests/qtest/boot-serial-test.c | 2 +-
> tests/qtest/cdrom-test.c | 2 +-
> tests/qtest/dbus-display-test.c | 2 +-
> tests/qtest/dbus-vmstate-test.c | 2 +-
> tests/qtest/device-introspect-test.c | 2 +-
> tests/qtest/device-plug-test.c | 2 +-
> tests/qtest/drive_del-test.c | 2 +-
> tests/qtest/ds1338-test.c | 2 +-
> tests/qtest/e1000-test.c | 2 +-
> tests/qtest/eepro100-test.c | 2 +-
> tests/qtest/endianness-test.c | 2 +-
> tests/qtest/erst-test.c | 2 +-
> tests/qtest/es1370-test.c | 2 +-
> tests/qtest/fdc-test.c | 2 +-
> tests/qtest/fuzz-e1000e-test.c | 2 +-
> tests/qtest/fuzz-lsi53c895a-test.c | 2 +-
> tests/qtest/fuzz-megasas-test.c | 2 +-
> tests/qtest/fuzz-sb16-test.c | 2 +-
> tests/qtest/fuzz-sdcard-test.c | 2 +-
> tests/qtest/fuzz-virtio-scsi-test.c | 2 +-
> tests/qtest/fuzz-xlnx-dp-test.c | 2 +-
> tests/qtest/fuzz/fuzz.c | 2 +-
> tests/qtest/fuzz/generic_fuzz.c | 2 +-
> tests/qtest/fuzz/i440fx_fuzz.c | 2 +-
> tests/qtest/fuzz/qos_fuzz.c | 2 +-
> tests/qtest/fuzz/virtio_blk_fuzz.c | 2 +-
> tests/qtest/fuzz/virtio_net_fuzz.c | 4 +-
> tests/qtest/fuzz/virtio_scsi_fuzz.c | 2 +-
> tests/qtest/fw_cfg-test.c | 2 +-
> tests/qtest/hd-geo-test.c | 2 +-
> tests/qtest/hexloader-test.c | 2 +-
> tests/qtest/ide-test.c | 2 +-
> tests/qtest/ipoctal232-test.c | 2 +-
> tests/qtest/ivshmem-test.c | 7 +-
> tests/qtest/libqmp.c | 233 ++++++++++++++++++
> .../libqos/aarch64-xlnx-zcu102-machine.c | 2 +-
> tests/qtest/libqos/ahci.c | 2 +-
> tests/qtest/libqos/arm-imx25-pdk-machine.c | 2 +-
> tests/qtest/libqos/arm-n800-machine.c | 2 +-
> tests/qtest/libqos/arm-raspi2-machine.c | 2 +-
> tests/qtest/libqos/arm-sabrelite-machine.c | 2 +-
> tests/qtest/libqos/arm-smdkc210-machine.c | 2 +-
> tests/qtest/libqos/arm-virt-machine.c | 2 +-
> .../qtest/libqos/arm-xilinx-zynq-a9-machine.c | 2 +-
> tests/qtest/libqos/e1000e.c | 2 +-
> tests/qtest/libqos/fw_cfg.c | 2 +-
> tests/qtest/libqos/i2c-imx.c | 2 +-
> tests/qtest/libqos/i2c-omap.c | 2 +-
> tests/qtest/libqos/i2c.c | 2 +-
> tests/qtest/libqos/libqos.c | 2 +-
> tests/qtest/libqos/pci-pc.c | 2 +-
> tests/qtest/libqos/pci-spapr.c | 2 +-
> tests/qtest/libqos/ppc64_pseries-machine.c | 2 +-
> tests/qtest/libqos/qgraph.c | 2 +-
> tests/qtest/libqos/qos_external.c | 2 +-
> tests/qtest/libqos/rtas.c | 2 +-
> tests/qtest/libqos/sdhci-cmd.c | 2 +-
> tests/qtest/libqos/sdhci.c | 2 +-
> tests/qtest/libqos/tpci200.c | 2 +-
> tests/qtest/libqos/usb.c | 2 +-
> tests/qtest/libqos/vhost-user-blk.c | 2 +-
> tests/qtest/libqos/virtio-9p.c | 2 +-
> tests/qtest/libqos/virtio-balloon.c | 2 +-
> tests/qtest/libqos/virtio-blk.c | 2 +-
> tests/qtest/libqos/virtio-iommu.c | 2 +-
> tests/qtest/libqos/virtio-mmio.c | 2 +-
> tests/qtest/libqos/virtio-net.c | 2 +-
> tests/qtest/libqos/virtio-pci.c | 2 +-
> tests/qtest/libqos/virtio-rng.c | 2 +-
> tests/qtest/libqos/virtio-scsi.c | 2 +-
> tests/qtest/libqos/virtio-serial.c | 2 +-
> tests/qtest/libqos/virtio.c | 2 +-
> tests/qtest/libqos/x86_64_pc-machine.c | 2 +-
> tests/qtest/libqtest.c | 207 +---------------
> tests/qtest/lpc-ich9-test.c | 2 +-
> tests/qtest/m48t59-test.c | 2 +-
> tests/qtest/machine-none-test.c | 2 +-
> tests/qtest/megasas-test.c | 2 +-
> tests/qtest/microbit-test.c | 2 +-
> tests/qtest/migration-test.c | 2 +-
> tests/qtest/modules-test.c | 2 +-
> tests/qtest/ne2000-test.c | 2 +-
> tests/qtest/npcm7xx_adc-test.c | 2 +-
> tests/qtest/npcm7xx_pwm-test.c | 2 +-
> tests/qtest/npcm7xx_sdhci-test.c | 2 +-
> tests/qtest/npcm7xx_smbus-test.c | 2 +-
> tests/qtest/npcm7xx_watchdog_timer-test.c | 2 +-
> tests/qtest/numa-test.c | 2 +-
> tests/qtest/nvme-test.c | 2 +-
> tests/qtest/pca9552-test.c | 2 +-
> tests/qtest/pci-test.c | 2 +-
> tests/qtest/pcnet-test.c | 2 +-
> tests/qtest/pflash-cfi02-test.c | 2 +-
> tests/qtest/pnv-xscom-test.c | 2 +-
> tests/qtest/prom-env-test.c | 2 +-
> tests/qtest/pvpanic-pci-test.c | 2 +-
> tests/qtest/pvpanic-test.c | 2 +-
> tests/qtest/pxe-test.c | 2 +-
> tests/qtest/q35-test.c | 2 +-
> tests/qtest/qmp-cmd-test.c | 2 +-
> tests/qtest/qmp-test.c | 2 +-
> tests/qtest/qom-test.c | 2 +-
> tests/qtest/rtas-test.c | 2 +-
> tests/qtest/sdhci-test.c | 2 +-
> tests/qtest/spapr-phb-test.c | 2 +-
> tests/qtest/tco-test.c | 2 +-
> tests/qtest/test-filter-mirror.c | 2 +-
> tests/qtest/test-filter-redirector.c | 2 +-
> tests/qtest/test-hmp.c | 2 +-
> tests/qtest/tpm-crb-swtpm-test.c | 2 +-
> tests/qtest/tpm-tis-device-swtpm-test.c | 2 +-
> tests/qtest/tpm-tis-swtpm-test.c | 2 +-
> tests/qtest/tpm-util.c | 2 +-
> tests/qtest/tulip-test.c | 2 +-
> tests/qtest/vhost-user-test.c | 4 +-
> tests/qtest/virtio-net-failover.c | 2 +-
> tests/qtest/virtio-rng-test.c | 2 +-
> tests/qtest/virtio-test.c | 2 +-
> tests/qtest/vmgenid-test.c | 2 +-
> tests/qtest/vmxnet3-test.c | 2 +-
> tests/qtest/wdt_ib700-test.c | 2 +-
> tests/qtest/xlnx-can-test.c | 2 +-
> tests/unit/socket-helpers.c | 2 +-
> tests/unit/test-crypto-tlssession.c | 8 +-
> tests/unit/test-io-channel-file.c | 2 +-
> tests/unit/test-iov.c | 4 +-
> tests/unit/test-qga.c | 2 +-
> tools/virtiofsd/helper.c | 2 +-
> ui/input-linux.c | 5 +-
> util/compatfd.c | 5 +-
> util/coroutine-ucontext.c | 2 +-
> util/event_notifier-posix.c | 8 +-
> util/main-loop.c | 2 +-
> util/oslib-posix.c | 61 +----
> util/oslib-win32.c | 8 +-
> util/vhost-user-server.c | 4 +-
> scripts/oss-fuzz/output_reproducer.py | 2 +-
> tests/qtest/libqos/meson.build | 5 +-
> tests/unit/meson.build | 2 +-
> 192 files changed, 609 insertions(+), 565 deletions(-)
> create mode 120000 subprojects/libvhost-user/include/compiler.h
> create mode 100644 tests/qtest/libqmp.h
> rename tests/qtest/{libqos => }/libqtest.h (95%)
> create mode 100644 tests/qtest/libqmp.c
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PULL 11/23] os-posix: replace pipe()+cloexec with g_unix_open_pipe(CLOEXEC)
2022-05-03 13:00 marcandre.lureau
@ 2022-05-03 13:00 ` marcandre.lureau
0 siblings, 0 replies; 26+ messages in thread
From: marcandre.lureau @ 2022-05-03 13:00 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Richard Henderson, Marc-André Lureau
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
os-posix.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/os-posix.c b/os-posix.c
index 1b746dba97a7..321fc4bd13b8 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -215,7 +215,7 @@ void os_daemonize(void)
pid_t pid;
int fds[2];
- if (pipe(fds) == -1) {
+ if (!g_unix_open_pipe(fds, FD_CLOEXEC, NULL)) {
exit(1);
}
@@ -240,7 +240,6 @@ void os_daemonize(void)
close(fds[0]);
daemon_pipe = fds[1];
- qemu_set_cloexec(daemon_pipe);
setsid();
--
2.36.0.44.g0f828332d5ac
^ permalink raw reply related [flat|nested] 26+ messages in thread
end of thread, other threads:[~2022-05-03 23:18 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-03 13:12 [PULL 00/23] Misc patches marcandre.lureau
2022-05-03 13:12 ` [PULL 01/23] Use QEMU_SANITIZE_THREAD marcandre.lureau
2022-05-03 13:12 ` [PULL 02/23] Use QEMU_SANITIZE_ADDRESS marcandre.lureau
2022-05-03 13:12 ` [PULL 03/23] tests: move libqtest.h back under qtest/ marcandre.lureau
2022-05-03 13:12 ` [PULL 04/23] libqtest: split QMP part in libqmp marcandre.lureau
2022-05-03 13:12 ` [PULL 05/23] Use g_unix_set_fd_nonblocking() marcandre.lureau
2022-05-03 13:12 ` [PULL 06/23] block: move fcntl_setfl() marcandre.lureau
2022-05-03 13:12 ` [PULL 07/23] Replace qemu_pipe() with g_unix_open_pipe() marcandre.lureau
2022-05-03 13:12 ` [PULL 08/23] util: replace pipe()+cloexec " marcandre.lureau
2022-05-03 13:12 ` [PULL 09/23] qga: replace pipe() with g_unix_open_pipe(CLOEXEC) marcandre.lureau
2022-05-03 13:12 ` [PULL 10/23] tests: " marcandre.lureau
2022-05-03 13:12 ` [PULL 11/23] os-posix: replace pipe()+cloexec " marcandre.lureau
2022-05-03 13:12 ` [PULL 12/23] virtiofsd: replace pipe() " marcandre.lureau
2022-05-03 13:12 ` [PULL 13/23] io: " marcandre.lureau
2022-05-03 13:12 ` [PULL 14/23] Replace fcntl(O_NONBLOCK) with g_unix_set_fd_nonblocking() marcandre.lureau
2022-05-03 13:12 ` [PULL 15/23] io: make qio_channel_command_new_pid() static marcandre.lureau
2022-05-03 13:12 ` [PULL 16/23] chardev: replace qemu_set_nonblock() marcandre.lureau
2022-05-03 13:12 ` [PULL 17/23] io: replace qemu_set{_non}block() marcandre.lureau
2022-05-03 13:12 ` [PULL 18/23] qga: replace qemu_set_nonblock() marcandre.lureau
2022-05-03 13:12 ` [PULL 19/23] hw: " marcandre.lureau
2022-05-03 13:12 ` [PULL 20/23] ui: " marcandre.lureau
2022-05-03 13:12 ` [PULL 21/23] net: " marcandre.lureau
2022-05-03 13:12 ` [PULL 22/23] tests: " marcandre.lureau
2022-05-03 13:12 ` [PULL 23/23] util: rename qemu_*block() socket functions marcandre.lureau
2022-05-03 19:38 ` [PULL 00/23] Misc patches Richard Henderson
-- strict thread matches above, loose matches on Subject: below --
2022-05-03 13:00 marcandre.lureau
2022-05-03 13:00 ` [PULL 11/23] os-posix: replace pipe()+cloexec with g_unix_open_pipe(CLOEXEC) marcandre.lureau
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.