* Bump minimum Clang version to 10.0
* Improve the handling of the libdw library * Deprecate --enable-gprof builds and remove them from CI * Remove the deprecated "sga" device * Some header #include clean-ups * Make qtests more flexible with regards to missing devices * Some small s390x-related fixes/improvements -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmPra8ARHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbW5zQ/+LRyPlCB9/Zz+40QUNIl9M9pcpjwCno9w pWIeOXMftBu8vCa/+o58Y22NzmWq7cFypfsIvjrlCqCIZQx1shez5+bvE/ZSyECd vy3I+ybKRSaXgE/ighAifwOR7eOhqLBHyXJkAN5grMx0kuu3oKqXBpyJNqTHjq6o VgKTu8+o7Ddb+CuzwGahKzyzTqD7gY+9+Y5Gnlq0DvbNEq9k6tcjQZ8P3MqOmjWJ WnBZH9Rrq9itnlcZXMl8xY6w572GLTq+aJbtc/iS3cvNV2WMwTFMj4lJZjuSkzX0 af2Aw/4e23uKpjnD44cI17XkRSQbUcT756b3KtdHlKHRvKSL+zwjsraimEN6sleO Y5ibaFamqvoR7IuOqJ7/cbpBN+P46JU1ryQ17BvAN/HnNSEmkn6FLGtDhyvabIHq C69TBb1IX0GApo0txeg0d0nFrSvVACpX+/D1bRedmI5SD3EukTcBr6UELiBqXqLH O75tWQydMwxuP8ay7/zU4g4PApif/RBbR41pw+oVsQNIx1p5QilNy069m/V2nT3k gMciT2+U8bIu3GUULuW0zPuD/o88XJk+ocjFHIE8BbwCx41iL6jKhM+xHwUeIkv4 dZT+8BlbBzNZlSAgpMu9wt0T2hyHrKYtmLxvrVi/qq6ZyO7ZUVBfOGfqAd3QtvQX hIERpFunzFY= =GNLD -----END PGP SIGNATURE----- Merge tag 'pull-request-2023-02-14' of https://gitlab.com/thuth/qemu into staging * Bump minimum Clang version to 10.0 * Improve the handling of the libdw library * Deprecate --enable-gprof builds and remove them from CI * Remove the deprecated "sga" device * Some header #include clean-ups * Make qtests more flexible with regards to missing devices * Some small s390x-related fixes/improvements # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmPra8ARHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbW5zQ/+LRyPlCB9/Zz+40QUNIl9M9pcpjwCno9w # pWIeOXMftBu8vCa/+o58Y22NzmWq7cFypfsIvjrlCqCIZQx1shez5+bvE/ZSyECd # vy3I+ybKRSaXgE/ighAifwOR7eOhqLBHyXJkAN5grMx0kuu3oKqXBpyJNqTHjq6o # VgKTu8+o7Ddb+CuzwGahKzyzTqD7gY+9+Y5Gnlq0DvbNEq9k6tcjQZ8P3MqOmjWJ # WnBZH9Rrq9itnlcZXMl8xY6w572GLTq+aJbtc/iS3cvNV2WMwTFMj4lJZjuSkzX0 # af2Aw/4e23uKpjnD44cI17XkRSQbUcT756b3KtdHlKHRvKSL+zwjsraimEN6sleO # Y5ibaFamqvoR7IuOqJ7/cbpBN+P46JU1ryQ17BvAN/HnNSEmkn6FLGtDhyvabIHq # C69TBb1IX0GApo0txeg0d0nFrSvVACpX+/D1bRedmI5SD3EukTcBr6UELiBqXqLH # O75tWQydMwxuP8ay7/zU4g4PApif/RBbR41pw+oVsQNIx1p5QilNy069m/V2nT3k # gMciT2+U8bIu3GUULuW0zPuD/o88XJk+ocjFHIE8BbwCx41iL6jKhM+xHwUeIkv4 # dZT+8BlbBzNZlSAgpMu9wt0T2hyHrKYtmLxvrVi/qq6ZyO7ZUVBfOGfqAd3QtvQX # hIERpFunzFY= # =GNLD # -----END PGP SIGNATURE----- # gpg: Signature made Tue 14 Feb 2023 11:08:48 GMT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2023-02-14' of https://gitlab.com/thuth/qemu: (22 commits) hw/s390x/event-facility: Replace DO_UPCAST(SCLPEvent) by SCLP_EVENT() tests/tcg/s390x: Use -nostdlib for softmmu tests tests/qtest: Don't build virtio-serial-test.c if device not present tests/qtest: bios-tables-test: Skip if missing configs tests/qemu-iotests: Require virtio-scsi-pci tests/qtest: Do not include hexloader-test if loader device is not present tests/qtest: Check for devices in bios-tables-test tests/qtest: drive_del-test: Skip tests that require missing devices tests/qtest: Skip unplug tests that use missing devices test/qtest: Fix coding style in device-plug-test.c tests/qtest: hd-geo-test: Check for missing devices tests/qtest: Add dependence on PCIE_PORT for virtio-net-failover.c tests/qtest: Do not run lsi53c895a test if device is not present tests/qtest: Skip PXE tests for missing devices Do not include "qemu/error-report.h" in headers that do not need it include/hw: Do not include "hw/registerfields.h" in headers that don't need it hw/misc/sga: Remove the deprecated "sga" device tests/qtest/npcm7xx_pwm-test: Be less verbose unless V=2 build: deprecate --enable-gprof builds and remove from CI meson: Disable libdw for static builds by default ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
6a50f64ca0
.gitlab-ci.d
.gitmodulesMAINTAINERSconfiguredocs/about
hw
char
display
i386
misc
s390x
ssi
include
meson.buildmeson_options.txtpc-bios
roms
scripts
tests
migration/guestperf
qemu-iotests
qtest
bios-tables-test.cdevice-plug-test.cdrive_del-test.cfuzz-lsi53c895a-test.chd-geo-test.cmeson.buildnpcm7xx_pwm-test.cpxe-test.c
tcg/s390x
ui
console.cdbus-clipboard.cdbus-console.cdbus-listener.cdbus.cegl-headless.cgtk.cspice-app.cspice-display.cudmabuf.cvdagent.c
util
@ -467,27 +467,16 @@ tsan-build:
|
||||
TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
|
||||
MAKE_CHECK_ARGS: bench V=1
|
||||
|
||||
# gprof/gcov are GCC features
|
||||
build-gprof-gcov:
|
||||
# gcov is a GCC features
|
||||
gcov:
|
||||
extends: .native_build_job_template
|
||||
needs:
|
||||
job: amd64-ubuntu2004-container
|
||||
timeout: 80m
|
||||
variables:
|
||||
IMAGE: ubuntu2004
|
||||
CONFIGURE_ARGS: --enable-gprof --enable-gcov
|
||||
CONFIGURE_ARGS: --enable-gcov
|
||||
TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
|
||||
artifacts:
|
||||
expire_in: 1 days
|
||||
paths:
|
||||
- build
|
||||
|
||||
check-gprof-gcov:
|
||||
extends: .native_test_job_template
|
||||
needs:
|
||||
- job: build-gprof-gcov
|
||||
artifacts: true
|
||||
variables:
|
||||
IMAGE: ubuntu2004
|
||||
MAKE_CHECK_ARGS: check
|
||||
after_script:
|
||||
- cd build
|
||||
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -13,9 +13,6 @@
|
||||
[submodule "roms/qemu-palcode"]
|
||||
path = roms/qemu-palcode
|
||||
url = https://gitlab.com/qemu-project/qemu-palcode.git
|
||||
[submodule "roms/sgabios"]
|
||||
path = roms/sgabios
|
||||
url = https://gitlab.com/qemu-project/sgabios.git
|
||||
[submodule "dtc"]
|
||||
path = dtc
|
||||
url = https://gitlab.com/qemu-project/dtc.git
|
||||
|
@ -1676,7 +1676,6 @@ F: hw/acpi/piix4.c
|
||||
F: hw/acpi/ich9*.c
|
||||
F: include/hw/acpi/ich9*.h
|
||||
F: include/hw/southbridge/piix.h
|
||||
F: hw/misc/sga.c
|
||||
F: hw/isa/apm.c
|
||||
F: include/hw/isa/apm.h
|
||||
F: tests/unit/test-x86-cpuid.c
|
||||
|
25
configure
vendored
25
configure
vendored
@ -1018,7 +1018,7 @@ cat << EOF
|
||||
debug-tcg TCG debugging (default is disabled)
|
||||
debug-info debugging information
|
||||
safe-stack SafeStack Stack Smash Protection. Depends on
|
||||
clang/llvm >= 3.7 and requires coroutine backend ucontext.
|
||||
clang/llvm and requires coroutine backend ucontext.
|
||||
|
||||
NOTE: The object files are built at the place where configure is launched
|
||||
EOF
|
||||
@ -1138,12 +1138,12 @@ fi
|
||||
cat > $TMPC << EOF
|
||||
#if defined(__clang_major__) && defined(__clang_minor__)
|
||||
# ifdef __apple_build_version__
|
||||
# if __clang_major__ < 10 || (__clang_major__ == 10 && __clang_minor__ < 0)
|
||||
# error You need at least XCode Clang v10.0 to compile QEMU
|
||||
# if __clang_major__ < 12 || (__clang_major__ == 12 && __clang_minor__ < 0)
|
||||
# error You need at least XCode Clang v12.0 to compile QEMU
|
||||
# endif
|
||||
# else
|
||||
# if __clang_major__ < 6 || (__clang_major__ == 6 && __clang_minor__ < 0)
|
||||
# error You need at least Clang v6.0 to compile QEMU
|
||||
# if __clang_major__ < 10 || (__clang_major__ == 10 && __clang_minor__ < 0)
|
||||
# error You need at least Clang v10.0 to compile QEMU
|
||||
# endif
|
||||
# endif
|
||||
#elif defined(__GNUC__) && defined(__GNUC_MINOR__)
|
||||
@ -1156,7 +1156,7 @@ cat > $TMPC << EOF
|
||||
int main (void) { return 0; }
|
||||
EOF
|
||||
if ! compile_prog "" "" ; then
|
||||
error_exit "You need at least GCC v7.4 or Clang v6.0 (or XCode Clang v10.0)"
|
||||
error_exit "You need at least GCC v7.4 or Clang v10.0 (or XCode Clang v12.0)"
|
||||
fi
|
||||
|
||||
# Accumulate -Wfoo and -Wno-bar separately.
|
||||
@ -1261,19 +1261,6 @@ EOF
|
||||
fi
|
||||
fi
|
||||
|
||||
# Disable -Wmissing-braces on older compilers that warn even for
|
||||
# the "universal" C zero initializer {0}.
|
||||
cat > $TMPC << EOF
|
||||
struct {
|
||||
int a[2];
|
||||
} x = {0};
|
||||
EOF
|
||||
if compile_object "-Werror" "" ; then
|
||||
:
|
||||
else
|
||||
QEMU_CFLAGS="$QEMU_CFLAGS -Wno-missing-braces"
|
||||
fi
|
||||
|
||||
# Our module code doesn't support Windows
|
||||
if test "$modules" = "yes" && test "$mingw32" = "yes" ; then
|
||||
error_exit "Modules are not available for Windows"
|
||||
|
@ -20,6 +20,20 @@ they were first deprecated in the 2.10.0 release.
|
||||
What follows is a list of all features currently marked as
|
||||
deprecated.
|
||||
|
||||
Build options
|
||||
-------------
|
||||
|
||||
``gprof`` builds (since 8.0)
|
||||
''''''''''''''''''''''''''''
|
||||
|
||||
The ``--enable-gprof`` configure setting relies on compiler
|
||||
instrumentation to gather its data which can distort the generated
|
||||
profile. As other non-instrumenting tools are available that give a
|
||||
more holistic view of the system with non-instrumented binaries we are
|
||||
deprecating the build option and no longer defend it in CI. The
|
||||
``--enable-gcov`` build option remains for analysis test case
|
||||
coverage.
|
||||
|
||||
System emulator command line arguments
|
||||
--------------------------------------
|
||||
|
||||
@ -246,15 +260,6 @@ full SCSI support. Use virtio-scsi instead when SCSI passthrough is required.
|
||||
Note this also applies to ``-device virtio-blk-pci,scsi=on|off``, which is an
|
||||
alias.
|
||||
|
||||
``-device sga`` (since 6.2)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The ``sga`` device loads an option ROM for x86 targets which enables
|
||||
SeaBIOS to send messages to the serial console. SeaBIOS 1.11.0 onwards
|
||||
contains native support for this feature and thus use of the option
|
||||
ROM approach is obsolete. The native SeaBIOS support can be activated
|
||||
by using ``-machine graphics=off``.
|
||||
|
||||
``-device nvme-ns,eui64-default=on|off`` (since 7.1)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
@ -789,6 +789,16 @@ The 'ide-drive' device has been removed. Users should use 'ide-hd' or
|
||||
The 'scsi-disk' device has been removed. Users should use 'scsi-hd' or
|
||||
'scsi-cd' as appropriate to get a SCSI hard disk or CD-ROM as needed.
|
||||
|
||||
``sga`` (removed in 8.0)
|
||||
''''''''''''''''''''''''
|
||||
|
||||
The ``sga`` device loaded an option ROM for x86 targets which enabled
|
||||
SeaBIOS to send messages to the serial console. SeaBIOS 1.11.0 onwards
|
||||
contains native support for this feature and thus use of the option
|
||||
ROM approach was obsolete. The native SeaBIOS support can be activated
|
||||
by using ``-machine graphics=off``.
|
||||
|
||||
|
||||
Related binaries
|
||||
----------------
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "hw/qdev-clock.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "hw/qdev-properties-system.h"
|
||||
#include "hw/registerfields.h"
|
||||
#include "migration/vmstate.h"
|
||||
#include "qemu/log.h"
|
||||
#include "qemu/module.h"
|
||||
|
@ -11,6 +11,7 @@
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/sockets.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "hw/virtio/virtio-gpu.h"
|
||||
|
@ -12,6 +12,7 @@
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/units.h"
|
||||
#include "qemu/iov.h"
|
||||
#include "ui/console.h"
|
||||
|
@ -12,6 +12,7 @@
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/iov.h"
|
||||
#include "trace.h"
|
||||
#include "hw/virtio/virtio.h"
|
||||
|
@ -26,7 +26,6 @@ config PC
|
||||
imply QXL
|
||||
imply SEV
|
||||
imply SGX
|
||||
imply SGA
|
||||
imply TEST_DEVICES
|
||||
imply TPM_CRB
|
||||
imply TPM_TIS_ISA
|
||||
|
@ -15,10 +15,6 @@ config ISA_DEBUG
|
||||
bool
|
||||
depends on ISA_BUS
|
||||
|
||||
config SGA
|
||||
bool
|
||||
depends on ISA_BUS
|
||||
|
||||
config ISA_TESTDEV
|
||||
bool
|
||||
default y if TEST_DEVICES
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "hw/isa/isa.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "ui/console.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/module.h"
|
||||
#include "qemu/timer.h"
|
||||
#include "qom/object.h"
|
||||
|
@ -5,7 +5,6 @@ softmmu_ss.add(when: 'CONFIG_ISA_DEBUG', if_true: files('debugexit.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_ISA_TESTDEV', if_true: files('pc-testdev.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_PCA9552', if_true: files('pca9552.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_PCI_TESTDEV', if_true: files('pci-testdev.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_SGA', if_true: files('sga.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_UNIMP', if_true: files('unimp.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_EMPTY_SLOT', if_true: files('empty_slot.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_LED', if_true: files('led.c'))
|
||||
|
@ -1,71 +0,0 @@
|
||||
/*
|
||||
* QEMU dummy ISA device for loading sgabios option rom.
|
||||
*
|
||||
* Copyright (c) 2011 Glauber Costa, Red Hat Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*
|
||||
* sgabios code originally available at code.google.com/p/sgabios
|
||||
*
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "hw/isa/isa.h"
|
||||
#include "hw/loader.h"
|
||||
#include "qemu/module.h"
|
||||
#include "qom/object.h"
|
||||
#include "qemu/error-report.h"
|
||||
|
||||
#define SGABIOS_FILENAME "sgabios.bin"
|
||||
|
||||
#define TYPE_SGA "sga"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(ISASGAState, SGA)
|
||||
|
||||
struct ISASGAState {
|
||||
ISADevice parent_obj;
|
||||
};
|
||||
|
||||
static void sga_realizefn(DeviceState *dev, Error **errp)
|
||||
{
|
||||
warn_report("-device sga is deprecated, use -machine graphics=off");
|
||||
rom_add_vga(SGABIOS_FILENAME);
|
||||
}
|
||||
|
||||
static void sga_class_initfn(ObjectClass *klass, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories);
|
||||
dc->realize = sga_realizefn;
|
||||
dc->desc = "Serial Graphics Adapter";
|
||||
}
|
||||
|
||||
static const TypeInfo sga_info = {
|
||||
.name = TYPE_SGA,
|
||||
.parent = TYPE_ISA_DEVICE,
|
||||
.instance_size = sizeof(ISASGAState),
|
||||
.class_init = sga_class_initfn,
|
||||
};
|
||||
|
||||
static void sga_register_types(void)
|
||||
{
|
||||
type_register_static(&sga_info);
|
||||
}
|
||||
|
||||
type_init(sga_register_types)
|
@ -64,8 +64,7 @@ static bool event_pending(SCLPEventFacility *ef)
|
||||
SCLPEventClass *event_class;
|
||||
|
||||
QTAILQ_FOREACH(kid, &ef->sbus.qbus.children, sibling) {
|
||||
DeviceState *qdev = kid->child;
|
||||
event = DO_UPCAST(SCLPEvent, qdev, qdev);
|
||||
event = SCLP_EVENT(kid->child);
|
||||
event_class = SCLP_EVENT_GET_CLASS(event);
|
||||
if (event->event_pending &&
|
||||
event_class->get_send_mask() & ef->receive_mask) {
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/log.h"
|
||||
#include "qemu/module.h"
|
||||
#include "hw/registerfields.h"
|
||||
#include "hw/ssi/ibex_spi_host.h"
|
||||
#include "hw/irq.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
|
@ -1,7 +1,6 @@
|
||||
#ifndef HW_ARM_ALLWINNER_A10_H
|
||||
#define HW_ARM_ALLWINNER_A10_H
|
||||
|
||||
#include "qemu/error-report.h"
|
||||
#include "hw/char/serial.h"
|
||||
#include "hw/arm/boot.h"
|
||||
#include "hw/pci/pci_device.h"
|
||||
|
@ -20,7 +20,6 @@
|
||||
#define HW_ARM_SMMUV3_H
|
||||
|
||||
#include "hw/arm/smmu-common.h"
|
||||
#include "hw/registerfields.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
#define TYPE_SMMUV3_IOMMU_MEMORY_REGION "smmuv3-iommu-memory-region"
|
||||
|
@ -26,7 +26,6 @@
|
||||
#define HW_IBEX_UART_H
|
||||
|
||||
#include "hw/sysbus.h"
|
||||
#include "hw/registerfields.h"
|
||||
#include "chardev/char-fe.h"
|
||||
#include "qemu/timer.h"
|
||||
#include "qom/object.h"
|
||||
|
@ -32,7 +32,6 @@
|
||||
#include "hw/ssi/ssi.h"
|
||||
#include "qemu/fifo8.h"
|
||||
#include "qom/object.h"
|
||||
#include "hw/registerfields.h"
|
||||
#include "qemu/timer.h"
|
||||
|
||||
#define TYPE_IBEX_SPI_HOST "ibex-spi"
|
||||
|
@ -15,7 +15,6 @@
|
||||
#include "io/channel-socket.h"
|
||||
#include "io/channel-file.h"
|
||||
#include "io/net-listener.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qapi/error.h"
|
||||
#include "standard-headers/linux/virtio_blk.h"
|
||||
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include "ui/qemu-pixman.h"
|
||||
#include "qom/object.h"
|
||||
#include "qemu/notify.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qapi/qapi-types-ui.h"
|
||||
|
||||
#ifdef CONFIG_OPENGL
|
||||
|
19
meson.build
19
meson.build
@ -1649,10 +1649,14 @@ if libbpf.found() and not cc.links('''
|
||||
endif
|
||||
|
||||
# libdw
|
||||
libdw = dependency('libdw',
|
||||
method: 'pkg-config',
|
||||
kwargs: static_kwargs,
|
||||
required: false)
|
||||
libdw = not_found
|
||||
if not get_option('libdw').auto() or \
|
||||
(not enable_static and (have_system or have_user))
|
||||
libdw = dependency('libdw',
|
||||
method: 'pkg-config',
|
||||
kwargs: static_kwargs,
|
||||
required: get_option('libdw'))
|
||||
endif
|
||||
|
||||
#################
|
||||
# config-host.h #
|
||||
@ -3801,7 +3805,12 @@ summary_info += {'memory allocator': get_option('malloc')}
|
||||
summary_info += {'avx2 optimization': config_host_data.get('CONFIG_AVX2_OPT')}
|
||||
summary_info += {'avx512bw optimization': config_host_data.get('CONFIG_AVX512BW_OPT')}
|
||||
summary_info += {'avx512f optimization': config_host_data.get('CONFIG_AVX512F_OPT')}
|
||||
summary_info += {'gprof enabled': get_option('gprof')}
|
||||
if get_option('gprof')
|
||||
gprof_info = 'YES (deprecated)'
|
||||
else
|
||||
gprof_info = get_option('gprof')
|
||||
endif
|
||||
summary_info += {'gprof': gprof_info}
|
||||
summary_info += {'gcov': get_option('b_coverage')}
|
||||
summary_info += {'thread sanitizer': config_host.has_key('CONFIG_TSAN')}
|
||||
summary_info += {'CFI support': get_option('cfi')}
|
||||
|
@ -131,6 +131,8 @@ option('gio', type : 'feature', value : 'auto',
|
||||
description: 'use libgio for D-Bus support')
|
||||
option('glusterfs', type : 'feature', value : 'auto',
|
||||
description: 'Glusterfs block device driver')
|
||||
option('libdw', type : 'feature', value : 'auto',
|
||||
description: 'debuginfo support')
|
||||
option('libiscsi', type : 'feature', value : 'auto',
|
||||
description: 'libiscsi userspace initiator')
|
||||
option('libnfs', type : 'feature', value : 'auto',
|
||||
@ -318,7 +320,8 @@ option('debug_stack_usage', type: 'boolean', value: false,
|
||||
option('qom_cast_debug', type: 'boolean', value: false,
|
||||
description: 'cast debugging support')
|
||||
option('gprof', type: 'boolean', value: false,
|
||||
description: 'QEMU profiling with gprof')
|
||||
description: 'QEMU profiling with gprof',
|
||||
deprecated: true)
|
||||
option('profiler', type: 'boolean', value: false,
|
||||
description: 'profiler support')
|
||||
option('slirp_smbd', type : 'feature', value : 'auto',
|
||||
|
@ -20,12 +20,6 @@
|
||||
-machine pseries,x-vof=on. When enabled, the firmware acts as a slim shim and
|
||||
QEMU implements parts of the IEEE 1275 Open Firmware interface.
|
||||
|
||||
- sgabios (the Serial Graphics Adapter option ROM) provides a means for
|
||||
legacy x86 software to communicate with an attached serial console as
|
||||
if a video card were attached. The master sources reside in a subversion
|
||||
repository at http://sgabios.googlecode.com/svn/trunk. A git mirror is
|
||||
available at https://gitlab.com/qemu-project/sgabios.git.
|
||||
|
||||
- The PXE roms come from the iPXE project. Built with BANNER_TIME 0.
|
||||
Sources available at http://ipxe.org. Vendor:Device ID -> ROM mapping:
|
||||
|
||||
|
@ -28,7 +28,6 @@ blobs = [
|
||||
'bios-256k.bin',
|
||||
'bios-microvm.bin',
|
||||
'qboot.rom',
|
||||
'sgabios.bin',
|
||||
'vgabios.bin',
|
||||
'vgabios-cirrus.bin',
|
||||
'vgabios-stdvga.bin',
|
||||
|
Binary file not shown.
@ -57,7 +57,6 @@ default help:
|
||||
@echo "available build targets:"
|
||||
@echo " bios -- update bios.bin (seabios)"
|
||||
@echo " vgabios -- update vgabios binaries (seabios)"
|
||||
@echo " sgabios -- update sgabios binaries"
|
||||
@echo " pxerom -- update nic roms (bios only)"
|
||||
@echo " efirom -- update nic roms (bios+efi)"
|
||||
@echo " slof -- update slof.bin"
|
||||
@ -102,11 +101,7 @@ build-seabios-config-%: config.%
|
||||
OUT=$(CURDIR)/seabios/builds/$*/ all
|
||||
|
||||
|
||||
.PHONY: sgabios skiboot qboot
|
||||
sgabios:
|
||||
$(MAKE) -C sgabios
|
||||
cp sgabios/sgabios.bin ../pc-bios
|
||||
|
||||
.PHONY: skiboot qboot
|
||||
|
||||
pxerom: $(patsubst %,pxe-rom-%,$(pxerom_variants))
|
||||
|
||||
@ -199,8 +194,6 @@ npcm7xx_bootrom:
|
||||
|
||||
clean:
|
||||
rm -rf seabios/.config seabios/out seabios/builds
|
||||
$(MAKE) -C sgabios clean
|
||||
rm -f sgabios/.depend
|
||||
$(MAKE) -C ipxe/src veryclean
|
||||
$(MAKE) -C edk2/BaseTools clean
|
||||
$(MAKE) -C SLOF clean
|
||||
|
@ -1 +0,0 @@
|
||||
Subproject commit cbaee52287e5f32373181cff50a00b6c4ac9015a
|
@ -109,6 +109,7 @@ meson_options_help() {
|
||||
printf "%s\n" ' kvm KVM acceleration support'
|
||||
printf "%s\n" ' l2tpv3 l2tpv3 network backend support'
|
||||
printf "%s\n" ' libdaxctl libdaxctl support'
|
||||
printf "%s\n" ' libdw debuginfo support'
|
||||
printf "%s\n" ' libiscsi libiscsi userspace initiator'
|
||||
printf "%s\n" ' libnfs libnfs block device driver'
|
||||
printf "%s\n" ' libpmem libpmem support'
|
||||
@ -312,6 +313,8 @@ _meson_option_parse() {
|
||||
--enable-libdaxctl) printf "%s" -Dlibdaxctl=enabled ;;
|
||||
--disable-libdaxctl) printf "%s" -Dlibdaxctl=disabled ;;
|
||||
--libdir=*) quote_sh "-Dlibdir=$2" ;;
|
||||
--enable-libdw) printf "%s" -Dlibdw=enabled ;;
|
||||
--disable-libdw) printf "%s" -Dlibdw=disabled ;;
|
||||
--libexecdir=*) quote_sh "-Dlibexecdir=$2" ;;
|
||||
--enable-libiscsi) printf "%s" -Dlibiscsi=enabled ;;
|
||||
--disable-libiscsi) printf "%s" -Dlibiscsi=disabled ;;
|
||||
|
@ -337,7 +337,7 @@ class Engine(object):
|
||||
argv.extend(self._get_qemu_serial_args())
|
||||
|
||||
if self._debug:
|
||||
argv.extend(["-device", "sga"])
|
||||
argv.extend(["-machine", "graphics=off"])
|
||||
|
||||
if hardware._prealloc_pages:
|
||||
argv_source += ["-mem-path", "/dev/shm",
|
||||
|
@ -40,6 +40,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
|
||||
_supported_fmt qcow2
|
||||
_supported_proto file fuse
|
||||
_require_drivers null-co
|
||||
_require_devices virtio-scsi-pci
|
||||
|
||||
if [ "$QEMU_DEFAULT_MACHINE" != "pc" ]; then
|
||||
_notrun "Requires a PC machine"
|
||||
|
@ -1008,6 +1008,12 @@ static void test_acpi_q35_multif_bridge(void)
|
||||
.machine = MACHINE_Q35,
|
||||
.variant = ".multi-bridge",
|
||||
};
|
||||
|
||||
if (!qtest_has_device("pcie-root-port")) {
|
||||
g_test_skip("Device pcie-root-port is not available");
|
||||
goto out;
|
||||
}
|
||||
|
||||
test_vm_prepare("-S"
|
||||
" -device virtio-balloon,id=balloon0,addr=0x4.0x2"
|
||||
" -device pcie-root-port,id=rp0,multifunction=on,"
|
||||
@ -1043,6 +1049,7 @@ static void test_acpi_q35_multif_bridge(void)
|
||||
/* check that reboot/reset doesn't change any ACPI tables */
|
||||
qtest_qmp_send(data.qts, "{'execute':'system_reset' }");
|
||||
process_acpi_tables(&data);
|
||||
out:
|
||||
free_test_data(&data);
|
||||
}
|
||||
|
||||
@ -1396,6 +1403,11 @@ static void test_acpi_tcg_dimm_pxm(const char *machine)
|
||||
{
|
||||
test_data data;
|
||||
|
||||
if (!qtest_has_device("nvdimm")) {
|
||||
g_test_skip("Device nvdimm is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
memset(&data, 0, sizeof(data));
|
||||
data.machine = machine;
|
||||
data.variant = ".dimmpxm";
|
||||
@ -1444,6 +1456,11 @@ static void test_acpi_virt_tcg_memhp(void)
|
||||
.scan_len = 256ULL * 1024 * 1024,
|
||||
};
|
||||
|
||||
if (!qtest_has_device("nvdimm")) {
|
||||
g_test_skip("Device nvdimm is not available");
|
||||
goto out;
|
||||
}
|
||||
|
||||
data.variant = ".memhp";
|
||||
test_acpi_one(" -machine nvdimm=on"
|
||||
" -cpu cortex-a57"
|
||||
@ -1457,7 +1474,7 @@ static void test_acpi_virt_tcg_memhp(void)
|
||||
" -device pc-dimm,id=dimm0,memdev=ram2,node=0"
|
||||
" -device nvdimm,id=dimm1,memdev=nvm0,node=1",
|
||||
&data);
|
||||
|
||||
out:
|
||||
free_test_data(&data);
|
||||
|
||||
}
|
||||
@ -1475,6 +1492,11 @@ static void test_acpi_microvm_tcg(void)
|
||||
{
|
||||
test_data data;
|
||||
|
||||
if (!qtest_has_device("virtio-blk-device")) {
|
||||
g_test_skip("Device virtio-blk-device is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
test_acpi_microvm_prepare(&data);
|
||||
test_acpi_one(" -machine microvm,acpi=on,ioapic2=off,rtc=off",
|
||||
&data);
|
||||
@ -1485,6 +1507,11 @@ static void test_acpi_microvm_usb_tcg(void)
|
||||
{
|
||||
test_data data;
|
||||
|
||||
if (!qtest_has_device("virtio-blk-device")) {
|
||||
g_test_skip("Device virtio-blk-device is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
test_acpi_microvm_prepare(&data);
|
||||
data.variant = ".usb";
|
||||
test_acpi_one(" -machine microvm,acpi=on,ioapic2=off,usb=on,rtc=off",
|
||||
@ -1496,6 +1523,11 @@ static void test_acpi_microvm_rtc_tcg(void)
|
||||
{
|
||||
test_data data;
|
||||
|
||||
if (!qtest_has_device("virtio-blk-device")) {
|
||||
g_test_skip("Device virtio-blk-device is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
test_acpi_microvm_prepare(&data);
|
||||
data.variant = ".rtc";
|
||||
test_acpi_one(" -machine microvm,acpi=on,ioapic2=off,rtc=on",
|
||||
@ -1507,6 +1539,11 @@ static void test_acpi_microvm_pcie_tcg(void)
|
||||
{
|
||||
test_data data;
|
||||
|
||||
if (!qtest_has_device("virtio-blk-device")) {
|
||||
g_test_skip("Device virtio-blk-device is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
test_acpi_microvm_prepare(&data);
|
||||
data.variant = ".pcie";
|
||||
data.tcg_only = true; /* need constant host-phys-bits */
|
||||
@ -1519,6 +1556,11 @@ static void test_acpi_microvm_ioapic2_tcg(void)
|
||||
{
|
||||
test_data data;
|
||||
|
||||
if (!qtest_has_device("virtio-blk-device")) {
|
||||
g_test_skip("Device virtio-blk-device is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
test_acpi_microvm_prepare(&data);
|
||||
data.variant = ".ioapic2";
|
||||
test_acpi_one(" -machine microvm,acpi=on,ioapic2=on,rtc=off",
|
||||
@ -1558,6 +1600,12 @@ static void test_acpi_virt_tcg_pxb(void)
|
||||
.ram_start = 0x40000000ULL,
|
||||
.scan_len = 128ULL * 1024 * 1024,
|
||||
};
|
||||
|
||||
if (!qtest_has_device("pcie-root-port")) {
|
||||
g_test_skip("Device pcie-root-port is not available");
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* While using -cdrom, the cdrom would auto plugged into pxb-pcie,
|
||||
* the reason is the bus of pxb-pcie is also root bus, it would lead
|
||||
@ -1576,7 +1624,7 @@ static void test_acpi_virt_tcg_pxb(void)
|
||||
" -cpu cortex-a57"
|
||||
" -device pxb-pcie,bus_nr=128",
|
||||
&data);
|
||||
|
||||
out:
|
||||
free_test_data(&data);
|
||||
}
|
||||
|
||||
@ -1764,6 +1812,12 @@ static void test_acpi_microvm_acpi_erst(void)
|
||||
gchar *params;
|
||||
test_data data;
|
||||
|
||||
if (!qtest_has_device("virtio-blk-device")) {
|
||||
g_test_skip("Device virtio-blk-device is not available");
|
||||
g_free(tmp_path);
|
||||
return;
|
||||
}
|
||||
|
||||
test_acpi_microvm_prepare(&data);
|
||||
data.variant = ".pcie";
|
||||
data.tcg_only = true; /* need constant host-phys-bits */
|
||||
@ -1824,6 +1878,11 @@ static void test_acpi_q35_viot(void)
|
||||
.variant = ".viot",
|
||||
};
|
||||
|
||||
if (!qtest_has_device("virtio-iommu")) {
|
||||
g_test_skip("Device virtio-iommu is not available");
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* To keep things interesting, two buses bypass the IOMMU.
|
||||
* VIOT should only describes the other two buses.
|
||||
@ -1834,6 +1893,7 @@ static void test_acpi_q35_viot(void)
|
||||
"-device pxb-pcie,bus_nr=0x20,id=pcie.200,bus=pcie.0,bypass_iommu=on "
|
||||
"-device pxb-pcie,bus_nr=0x30,id=pcie.300,bus=pcie.0",
|
||||
&data);
|
||||
out:
|
||||
free_test_data(&data);
|
||||
}
|
||||
|
||||
@ -1894,8 +1954,10 @@ static void test_acpi_virt_viot(void)
|
||||
.scan_len = 128ULL * 1024 * 1024,
|
||||
};
|
||||
|
||||
test_acpi_one("-cpu cortex-a57 "
|
||||
"-device virtio-iommu-pci", &data);
|
||||
if (qtest_has_device("virtio-iommu")) {
|
||||
test_acpi_one("-cpu cortex-a57 "
|
||||
"-device virtio-iommu-pci", &data);
|
||||
}
|
||||
free_test_data(&data);
|
||||
}
|
||||
|
||||
@ -2004,6 +2066,11 @@ static void test_acpi_microvm_oem_fields(void)
|
||||
test_data data;
|
||||
char *args;
|
||||
|
||||
if (!qtest_has_device("virtio-blk-device")) {
|
||||
g_test_skip("Device virtio-blk-device is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
test_acpi_microvm_prepare(&data);
|
||||
|
||||
args = test_acpi_create_args(&data,
|
||||
|
@ -64,15 +64,21 @@ static void process_device_remove(QTestState *qtest, const char *id)
|
||||
|
||||
static void test_pci_unplug_request(void)
|
||||
{
|
||||
QTestState *qtest;
|
||||
const char *arch = qtest_get_arch();
|
||||
const char *machine_addition = "";
|
||||
|
||||
if (!qtest_has_device("virtio-mouse-pci")) {
|
||||
g_test_skip("Device virtio-mouse-pci not available");
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
|
||||
machine_addition = "-machine pc";
|
||||
}
|
||||
|
||||
QTestState *qtest = qtest_initf("%s -device virtio-mouse-pci,id=dev0",
|
||||
machine_addition);
|
||||
qtest = qtest_initf("%s -device virtio-mouse-pci,id=dev0",
|
||||
machine_addition);
|
||||
|
||||
process_device_remove(qtest, "dev0");
|
||||
|
||||
@ -81,11 +87,17 @@ static void test_pci_unplug_request(void)
|
||||
|
||||
static void test_q35_pci_unplug_request(void)
|
||||
{
|
||||
QTestState *qtest;
|
||||
|
||||
QTestState *qtest = qtest_initf("-machine q35 "
|
||||
"-device pcie-root-port,id=p1 "
|
||||
"-device pcie-pci-bridge,bus=p1,id=b1 "
|
||||
"-device virtio-mouse-pci,bus=b1,id=dev0");
|
||||
if (!qtest_has_device("virtio-mouse-pci")) {
|
||||
g_test_skip("Device virtio-mouse-pci not available");
|
||||
return;
|
||||
}
|
||||
|
||||
qtest = qtest_initf("-machine q35 "
|
||||
"-device pcie-root-port,id=p1 "
|
||||
"-device pcie-pci-bridge,bus=p1,id=b1 "
|
||||
"-device virtio-mouse-pci,bus=b1,id=dev0");
|
||||
|
||||
process_device_remove(qtest, "dev0");
|
||||
|
||||
@ -94,14 +106,20 @@ static void test_q35_pci_unplug_request(void)
|
||||
|
||||
static void test_pci_unplug_json_request(void)
|
||||
{
|
||||
QTestState *qtest;
|
||||
const char *arch = qtest_get_arch();
|
||||
const char *machine_addition = "";
|
||||
|
||||
if (!qtest_has_device("virtio-mouse-pci")) {
|
||||
g_test_skip("Device virtio-mouse-pci not available");
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
|
||||
machine_addition = "-machine pc";
|
||||
}
|
||||
|
||||
QTestState *qtest = qtest_initf(
|
||||
qtest = qtest_initf(
|
||||
"%s -device \"{'driver': 'virtio-mouse-pci', 'id': 'dev0'}\"",
|
||||
machine_addition);
|
||||
|
||||
@ -112,6 +130,7 @@ static void test_pci_unplug_json_request(void)
|
||||
|
||||
static void test_q35_pci_unplug_json_request(void)
|
||||
{
|
||||
QTestState *qtest;
|
||||
const char *port = "-device \"{'driver': 'pcie-root-port', "
|
||||
"'id': 'p1'}\"";
|
||||
|
||||
@ -123,8 +142,12 @@ static void test_q35_pci_unplug_json_request(void)
|
||||
"'bus': 'b1', "
|
||||
"'id': 'dev0'}\"";
|
||||
|
||||
QTestState *qtest = qtest_initf("-machine q35 %s %s %s",
|
||||
port, bridge, device);
|
||||
if (!qtest_has_device("virtio-mouse-pci")) {
|
||||
g_test_skip("Device virtio-mouse-pci not available");
|
||||
return;
|
||||
}
|
||||
|
||||
qtest = qtest_initf("-machine q35 %s %s %s", port, bridge, device);
|
||||
|
||||
process_device_remove(qtest, "dev0");
|
||||
|
||||
|
@ -16,6 +16,8 @@
|
||||
#include "qapi/qmp/qdict.h"
|
||||
#include "qapi/qmp/qlist.h"
|
||||
|
||||
static const char *qvirtio_get_dev_type(void);
|
||||
|
||||
static bool look_for_drive0(QTestState *qts, const char *command, const char *key)
|
||||
{
|
||||
QDict *response;
|
||||
@ -40,6 +42,19 @@ static bool look_for_drive0(QTestState *qts, const char *command, const char *ke
|
||||
return found;
|
||||
}
|
||||
|
||||
/*
|
||||
* This covers the possible absence of a device due to QEMU build
|
||||
* options.
|
||||
*/
|
||||
static bool has_device_builtin(const char *dev)
|
||||
{
|
||||
gchar *device = g_strdup_printf("%s-%s", dev, qvirtio_get_dev_type());
|
||||
bool rc = qtest_has_device(device);
|
||||
|
||||
g_free(device);
|
||||
return rc;
|
||||
}
|
||||
|
||||
static bool has_drive(QTestState *qts)
|
||||
{
|
||||
return look_for_drive0(qts, "query-block", "device");
|
||||
@ -208,6 +223,11 @@ static void test_drive_del_device_del(void)
|
||||
{
|
||||
QTestState *qts;
|
||||
|
||||
if (!has_device_builtin("virtio-scsi")) {
|
||||
g_test_skip("Device virtio-scsi is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
/* Start with a drive used by a device that unplugs instantaneously */
|
||||
qts = qtest_initf("-drive if=none,id=drive0,file=null-co://,"
|
||||
"file.read-zeroes=on,format=raw"
|
||||
@ -232,6 +252,11 @@ static void test_cli_device_del(void)
|
||||
const char *arch = qtest_get_arch();
|
||||
const char *machine_addition = "";
|
||||
|
||||
if (!has_device_builtin("virtio-blk")) {
|
||||
g_test_skip("Device virtio-blk is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
|
||||
machine_addition = "-machine pc";
|
||||
}
|
||||
@ -256,6 +281,11 @@ static void test_cli_device_del_q35(void)
|
||||
{
|
||||
QTestState *qts;
|
||||
|
||||
if (!has_device_builtin("virtio-blk")) {
|
||||
g_test_skip("Device virtio-blk is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* -drive/-device and device_del. Start with a drive used by a
|
||||
* device that unplugs after reset.
|
||||
@ -277,6 +307,11 @@ static void test_empty_device_del(void)
|
||||
{
|
||||
QTestState *qts;
|
||||
|
||||
if (!has_device_builtin("virtio-scsi")) {
|
||||
g_test_skip("Device virtio-scsi is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
/* device_del with no drive plugged. */
|
||||
qts = qtest_initf("-device virtio-scsi-%s -device scsi-cd,id=dev0",
|
||||
qvirtio_get_dev_type());
|
||||
@ -291,6 +326,11 @@ static void test_device_add_and_del(void)
|
||||
const char *arch = qtest_get_arch();
|
||||
const char *machine_addition = "";
|
||||
|
||||
if (!has_device_builtin("virtio-blk")) {
|
||||
g_test_skip("Device virtio-blk is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
|
||||
machine_addition = "-machine pc";
|
||||
}
|
||||
@ -330,6 +370,11 @@ static void test_device_add_and_del_q35(void)
|
||||
{
|
||||
QTestState *qts;
|
||||
|
||||
if (!has_device_builtin("virtio-blk")) {
|
||||
g_test_skip("Device virtio-blk is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* -drive/device_add and device_del. Start with a drive used by a
|
||||
* device that unplugs after reset.
|
||||
@ -352,6 +397,11 @@ static void test_drive_add_device_add_and_del(void)
|
||||
const char *arch = qtest_get_arch();
|
||||
const char *machine_addition = "";
|
||||
|
||||
if (!has_device_builtin("virtio-blk")) {
|
||||
g_test_skip("Device virtio-blk is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
|
||||
machine_addition = "-machine pc";
|
||||
}
|
||||
@ -374,6 +424,11 @@ static void test_drive_add_device_add_and_del_q35(void)
|
||||
{
|
||||
QTestState *qts;
|
||||
|
||||
if (!has_device_builtin("virtio-blk")) {
|
||||
g_test_skip("Device virtio-blk is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
qts = qtest_init("-machine q35 -device pcie-root-port,id=p1 "
|
||||
"-device pcie-pci-bridge,bus=p1,id=b1");
|
||||
|
||||
@ -395,6 +450,11 @@ static void test_blockdev_add_device_add_and_del(void)
|
||||
const char *arch = qtest_get_arch();
|
||||
const char *machine_addition = "";
|
||||
|
||||
if (!has_device_builtin("virtio-blk")) {
|
||||
g_test_skip("Device virtio-blk is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
|
||||
machine_addition = "-machine pc";
|
||||
}
|
||||
@ -417,6 +477,11 @@ static void test_blockdev_add_device_add_and_del_q35(void)
|
||||
{
|
||||
QTestState *qts;
|
||||
|
||||
if (!has_device_builtin("virtio-blk")) {
|
||||
g_test_skip("Device virtio-blk is not available");
|
||||
return;
|
||||
}
|
||||
|
||||
qts = qtest_init("-machine q35 -device pcie-root-port,id=p1 "
|
||||
"-device pcie-pci-bridge,bus=p1,id=b1");
|
||||
|
||||
|
@ -112,6 +112,10 @@ static void test_lsi_do_dma_empty_queue(void)
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
if (!qtest_has_device("lsi53c895a")) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
g_test_init(&argc, &argv, NULL);
|
||||
|
||||
qtest_add_func("fuzz/lsi53c895a/lsi_do_dma_empty_queue",
|
||||
|
@ -1090,30 +1090,42 @@ int main(int argc, char **argv)
|
||||
qtest_add_func("hd-geo/override/ide", test_override_ide);
|
||||
if (qtest_has_device("lsi53c895a")) {
|
||||
qtest_add_func("hd-geo/override/scsi", test_override_scsi);
|
||||
qtest_add_func("hd-geo/override/scsi_2_controllers",
|
||||
test_override_scsi_2_controllers);
|
||||
if (qtest_has_device("virtio-scsi-pci")) {
|
||||
qtest_add_func("hd-geo/override/scsi_2_controllers",
|
||||
test_override_scsi_2_controllers);
|
||||
}
|
||||
}
|
||||
qtest_add_func("hd-geo/override/virtio_blk", test_override_virtio_blk);
|
||||
qtest_add_func("hd-geo/override/zero_chs", test_override_zero_chs);
|
||||
qtest_add_func("hd-geo/override/scsi_hot_unplug",
|
||||
test_override_scsi_hot_unplug);
|
||||
qtest_add_func("hd-geo/override/virtio_hot_unplug",
|
||||
test_override_virtio_hot_unplug);
|
||||
if (qtest_has_device("virtio-scsi-pci")) {
|
||||
qtest_add_func("hd-geo/override/scsi_hot_unplug",
|
||||
test_override_scsi_hot_unplug);
|
||||
}
|
||||
if (qtest_has_device("virtio-blk-pci")) {
|
||||
qtest_add_func("hd-geo/override/virtio_hot_unplug",
|
||||
test_override_virtio_hot_unplug);
|
||||
qtest_add_func("hd-geo/override/virtio_blk",
|
||||
test_override_virtio_blk);
|
||||
}
|
||||
|
||||
if (qtest_has_machine("q35")) {
|
||||
qtest_add_func("hd-geo/override/sata", test_override_sata);
|
||||
qtest_add_func("hd-geo/override/virtio_blk_q35",
|
||||
test_override_virtio_blk_q35);
|
||||
qtest_add_func("hd-geo/override/zero_chs_q35",
|
||||
test_override_zero_chs_q35);
|
||||
if (qtest_has_device("lsi53c895a")) {
|
||||
qtest_add_func("hd-geo/override/scsi_q35",
|
||||
test_override_scsi_q35);
|
||||
}
|
||||
qtest_add_func("hd-geo/override/scsi_hot_unplug_q35",
|
||||
test_override_scsi_hot_unplug_q35);
|
||||
qtest_add_func("hd-geo/override/virtio_hot_unplug_q35",
|
||||
test_override_virtio_hot_unplug_q35);
|
||||
if (qtest_has_device("virtio-scsi-pci")) {
|
||||
qtest_add_func("hd-geo/override/scsi_hot_unplug_q35",
|
||||
test_override_scsi_hot_unplug_q35);
|
||||
}
|
||||
if (qtest_has_device("virtio-blk-pci")) {
|
||||
qtest_add_func("hd-geo/override/virtio_hot_unplug_q35",
|
||||
test_override_virtio_hot_unplug_q35);
|
||||
qtest_add_func("hd-geo/override/virtio_blk_q35",
|
||||
test_override_virtio_blk_q35);
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
g_test_message("QTEST_QEMU_IMG not set or qemu-img missing; "
|
||||
|
@ -73,11 +73,14 @@ qtests_i386 = \
|
||||
(config_all_devices.has_key('CONFIG_ESP_PCI') ? ['am53c974-test'] : []) + \
|
||||
(config_host.has_key('CONFIG_POSIX') and \
|
||||
config_all_devices.has_key('CONFIG_ACPI_ERST') ? ['erst-test'] : []) + \
|
||||
(config_all_devices.has_key('CONFIG_VIRTIO_NET') and \
|
||||
(config_all_devices.has_key('CONFIG_PCIE_PORT') and \
|
||||
config_all_devices.has_key('CONFIG_VIRTIO_NET') and \
|
||||
config_all_devices.has_key('CONFIG_Q35') and \
|
||||
config_all_devices.has_key('CONFIG_VIRTIO_PCI') and \
|
||||
slirp.found() ? ['virtio-net-failover'] : []) + \
|
||||
(unpack_edk2_blobs ? ['bios-tables-test'] : []) + \
|
||||
(unpack_edk2_blobs and \
|
||||
config_all_devices.has_key('CONFIG_HPET') and \
|
||||
config_all_devices.has_key('CONFIG_PARALLEL') ? ['bios-tables-test'] : []) + \
|
||||
qtests_pci + \
|
||||
qtests_cxl + \
|
||||
['fdc-test',
|
||||
@ -196,11 +199,11 @@ qtests_arm = \
|
||||
(config_all_devices.has_key('CONFIG_PFLASH_CFI02') ? ['pflash-cfi02-test'] : []) + \
|
||||
(config_all_devices.has_key('CONFIG_ASPEED_SOC') ? qtests_aspeed : []) + \
|
||||
(config_all_devices.has_key('CONFIG_NPCM7XX') ? qtests_npcm7xx : []) + \
|
||||
(config_all_devices.has_key('CONFIG_GENERIC_LOADER') ? ['hexloader-test'] : []) + \
|
||||
['arm-cpu-features',
|
||||
'microbit-test',
|
||||
'test-arm-mptimer',
|
||||
'boot-serial-test',
|
||||
'hexloader-test']
|
||||
'boot-serial-test']
|
||||
|
||||
# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make bios-tables-test unconditional
|
||||
qtests_aarch64 = \
|
||||
@ -254,10 +257,14 @@ qos_test_ss.add(
|
||||
'virtio-net-test.c',
|
||||
'virtio-rng-test.c',
|
||||
'virtio-scsi-test.c',
|
||||
'virtio-serial-test.c',
|
||||
'virtio-iommu-test.c',
|
||||
'vmxnet3-test.c',
|
||||
)
|
||||
|
||||
if config_all_devices.has_key('CONFIG_VIRTIO_SERIAL')
|
||||
qos_test_ss.add(files('virtio-serial-test.c'))
|
||||
endif
|
||||
|
||||
if config_host.has_key('CONFIG_POSIX')
|
||||
qos_test_ss.add(files('e1000e-test.c'))
|
||||
endif
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include "qapi/qmp/qdict.h"
|
||||
#include "qapi/qmp/qnum.h"
|
||||
|
||||
static int verbosity_level;
|
||||
|
||||
#define REF_HZ 25000000
|
||||
|
||||
/* Register field definitions. */
|
||||
@ -221,7 +223,9 @@ static uint64_t pwm_qom_get(QTestState *qts, const char *path, const char *name)
|
||||
QDict *response;
|
||||
uint64_t val;
|
||||
|
||||
g_test_message("Getting properties %s from %s", name, path);
|
||||
if (verbosity_level >= 2) {
|
||||
g_test_message("Getting properties %s from %s", name, path);
|
||||
}
|
||||
response = qtest_qmp(qts, "{ 'execute': 'qom-get',"
|
||||
" 'arguments': { 'path': %s, 'property': %s}}",
|
||||
path, name);
|
||||
@ -260,8 +264,10 @@ static void mft_qom_set(QTestState *qts, int index, const char *name,
|
||||
QDict *response;
|
||||
char *path = g_strdup_printf("/machine/soc/mft[%d]", index);
|
||||
|
||||
g_test_message("Setting properties %s of mft[%d] with value %u",
|
||||
name, index, value);
|
||||
if (verbosity_level >= 2) {
|
||||
g_test_message("Setting properties %s of mft[%d] with value %u",
|
||||
name, index, value);
|
||||
}
|
||||
response = qtest_qmp(qts, "{ 'execute': 'qom-set',"
|
||||
" 'arguments': { 'path': %s, "
|
||||
" 'property': %s, 'value': %u}}",
|
||||
@ -506,9 +512,12 @@ static void mft_verify_rpm(QTestState *qts, const TestData *td, uint64_t duty)
|
||||
int32_t expected_cnt = mft_compute_cnt(rpm, clk);
|
||||
|
||||
qtest_irq_intercept_in(qts, "/machine/soc/a9mpcore/gic");
|
||||
g_test_message(
|
||||
"verifying rpm for mft[%d]: clk: %" PRIu64 ", duty: %" PRIu64 ", rpm: %u, cnt: %d",
|
||||
index, clk, duty, rpm, expected_cnt);
|
||||
if (verbosity_level >= 2) {
|
||||
g_test_message(
|
||||
"verifying rpm for mft[%d]: clk: %" PRIu64 ", duty: %" PRIu64
|
||||
", rpm: %u, cnt: %d",
|
||||
index, clk, duty, rpm, expected_cnt);
|
||||
}
|
||||
|
||||
/* Verify rpm for fan A */
|
||||
/* Stop capture */
|
||||
@ -670,6 +679,12 @@ int main(int argc, char **argv)
|
||||
{
|
||||
TestData test_data_list[ARRAY_SIZE(pwm_module_list) * ARRAY_SIZE(pwm_list)];
|
||||
|
||||
char *v_env = getenv("V");
|
||||
|
||||
if (v_env) {
|
||||
verbosity_level = atoi(v_env);
|
||||
}
|
||||
|
||||
g_test_init(&argc, &argv, NULL);
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE(pwm_module_list); ++i) {
|
||||
|
@ -108,6 +108,10 @@ static void test_batch(const testdef_t *tests, bool ipv6)
|
||||
const testdef_t *test = &tests[i];
|
||||
char *testname;
|
||||
|
||||
if (!qtest_has_device(test->model)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
testname = g_strdup_printf("pxe/ipv4/%s/%s",
|
||||
test->machine, test->model);
|
||||
qtest_add_data_func(testname, test, test_pxe_ipv4);
|
||||
|
@ -3,7 +3,7 @@ VPATH+=$(S390X_SRC)
|
||||
QEMU_OPTS=-action panic=exit-failure -kernel
|
||||
|
||||
%: %.S
|
||||
$(CC) -march=z13 -m64 -nostartfiles -static -Wl,-Ttext=0 \
|
||||
$(CC) -march=z13 -m64 -nostdlib -static -Wl,-Ttext=0 \
|
||||
-Wl,--build-id=none $< -o $@
|
||||
|
||||
TESTS += unaligned-lowcore
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "qapi/error.h"
|
||||
#include "qapi/qapi-commands-ui.h"
|
||||
#include "qemu/coroutine.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/fifo8.h"
|
||||
#include "qemu/main-loop.h"
|
||||
#include "qemu/module.h"
|
||||
|
@ -23,6 +23,7 @@
|
||||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/dbus.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/main-loop.h"
|
||||
#include "qom/object_interfaces.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
|
@ -22,6 +22,7 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qapi/error.h"
|
||||
#include "ui/input.h"
|
||||
#include "ui/kbd-state.h"
|
||||
|
@ -22,6 +22,7 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "dbus.h"
|
||||
#include <gio/gunixfdlist.h>
|
||||
|
@ -23,6 +23,7 @@
|
||||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/cutils.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/dbus.h"
|
||||
#include "qemu/main-loop.h"
|
||||
#include "qemu/option.h"
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/module.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "ui/console.h"
|
||||
|
1
ui/gtk.c
1
ui/gtk.c
@ -36,6 +36,7 @@
|
||||
#include "qapi/qapi-commands-machine.h"
|
||||
#include "qapi/qapi-commands-misc.h"
|
||||
#include "qemu/cutils.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/main-loop.h"
|
||||
|
||||
#include "ui/console.h"
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "ui/console.h"
|
||||
#include "ui/spice-display.h"
|
||||
#include "qemu/config-file.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/option.h"
|
||||
#include "qemu/cutils.h"
|
||||
#include "qemu/module.h"
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "ui/qemu-spice.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/timer.h"
|
||||
#include "qemu/lockable.h"
|
||||
#include "qemu/main-loop.h"
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include "qapi/error.h"
|
||||
#include "ui/console.h"
|
||||
#include "qemu/error-report.h"
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include "qapi/error.h"
|
||||
#include "chardev/char.h"
|
||||
#include "qemu/buffer.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/option.h"
|
||||
#include "qemu/units.h"
|
||||
#include "hw/qdev-core.h"
|
||||
|
@ -8,6 +8,7 @@
|
||||
* later. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/main-loop.h"
|
||||
#include "qemu/vhost-user-server.h"
|
||||
#include "block/aio-wait.h"
|
||||
|
Loading…
Reference in New Issue
Block a user