In my "build everything" tree, changing sysemu/sysemu.h triggers a recompile of some 1800 out of 6600 objects (not counting tests and objects that don't depend on qemu/osdep.h, down from 5400 due to the previous commit).
Several headers include sysemu/sysemu.h just to get typedef VMChangeStateEntry. Move it from sysemu/sysemu.h to qemu/typedefs.h. Spell its structure tag the same while there. Drop the now superfluous includes of sysemu/sysemu.h from headers. Touching sysemu/sysemu.h now recompiles some 1100 objects. qemu/uuid.h also drops from 1800 to 1100, and qapi/qapi-types-run-state.h from 5000 to 4400. Signed-off-by: Markus Armbruster <arm...@redhat.com> Message-Id: <20190812052359.30071-29-arm...@redhat.com> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Tested-by: Philippe Mathieu-Daudé <phi...@redhat.com> --- hw/usb/hcd-ehci.h | 1 - include/hw/ide/internal.h | 3 ++- include/hw/ppc/spapr_xive.h | 1 - include/hw/scsi/scsi.h | 1 - include/hw/virtio/virtio.h | 1 - include/qemu/typedefs.h | 1 + include/sysemu/sysemu.h | 1 - hw/block/vhost-user-blk.c | 1 + hw/block/virtio-blk.c | 1 + hw/display/virtio-gpu.c | 1 + hw/misc/macio/macio.c | 1 + hw/net/virtio-net.c | 1 + hw/s390x/s390-ccw.c | 1 + hw/s390x/s390-virtio-ccw.c | 1 + hw/scsi/scsi-bus.c | 1 + hw/scsi/vhost-scsi.c | 1 + hw/scsi/vhost-user-scsi.c | 1 + hw/usb/hcd-ehci.c | 1 + hw/virtio/virtio-rng.c | 1 + hw/virtio/virtio.c | 1 + vl.c | 6 +++--- 21 files changed, 19 insertions(+), 9 deletions(-) diff --git a/hw/usb/hcd-ehci.h b/hw/usb/hcd-ehci.h index fdbcfdcbeb..0298238f0b 100644 --- a/hw/usb/hcd-ehci.h +++ b/hw/usb/hcd-ehci.h @@ -21,7 +21,6 @@ #include "qemu/timer.h" #include "hw/usb.h" #include "sysemu/dma.h" -#include "sysemu/sysemu.h" #include "hw/pci/pci.h" #include "hw/sysbus.h" diff --git a/include/hw/ide/internal.h b/include/hw/ide/internal.h index c6954c1d56..52ec197da0 100644 --- a/include/hw/ide/internal.h +++ b/include/hw/ide/internal.h @@ -6,11 +6,12 @@ * only files in hw/ide/ are supposed to include this file. * non-internal declarations are in hw/ide.h */ + +#include "qapi/qapi-types-run-state.h" #include "hw/ide.h" #include "hw/irq.h" #include "hw/isa/isa.h" #include "sysemu/dma.h" -#include "sysemu/sysemu.h" #include "hw/block/block.h" #include "scsi/constants.h" diff --git a/include/hw/ppc/spapr_xive.h b/include/hw/ppc/spapr_xive.h index a39e672f27..bfd40f01d8 100644 --- a/include/hw/ppc/spapr_xive.h +++ b/include/hw/ppc/spapr_xive.h @@ -12,7 +12,6 @@ #include "hw/ppc/spapr_irq.h" #include "hw/ppc/xive.h" -#include "sysemu/sysemu.h" #define TYPE_SPAPR_XIVE "spapr-xive" #define SPAPR_XIVE(obj) OBJECT_CHECK(SpaprXive, (obj), TYPE_SPAPR_XIVE) diff --git a/include/hw/scsi/scsi.h b/include/hw/scsi/scsi.h index 2bfaad0fe9..d77a92361b 100644 --- a/include/hw/scsi/scsi.h +++ b/include/hw/scsi/scsi.h @@ -4,7 +4,6 @@ #include "block/aio.h" #include "hw/block/block.h" #include "hw/qdev-core.h" -#include "sysemu/sysemu.h" #include "scsi/utils.h" #include "qemu/notify.h" diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index df40a46d60..48e8d04ff6 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -17,7 +17,6 @@ #include "exec/memory.h" #include "hw/qdev-core.h" #include "net/net.h" -#include "sysemu/sysemu.h" #include "migration/vmstate.h" #include "qemu/event_notifier.h" #include "standard-headers/linux/virtio_config.h" diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h index f569f5f270..3fcdde8bfc 100644 --- a/include/qemu/typedefs.h +++ b/include/qemu/typedefs.h @@ -102,6 +102,7 @@ typedef struct SHPCDevice SHPCDevice; typedef struct SSIBus SSIBus; typedef struct VirtIODevice VirtIODevice; typedef struct Visitor Visitor; +typedef struct VMChangeStateEntry VMChangeStateEntry; typedef struct VMStateDescription VMStateDescription; /* diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 908f158677..7606eaaf2a 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -22,7 +22,6 @@ void runstate_set(RunState new_state); int runstate_is_running(void); bool runstate_needs_reset(void); bool runstate_store(char *str, size_t size); -typedef struct vm_change_state_entry VMChangeStateEntry; typedef void VMChangeStateHandler(void *opaque, int running, RunState state); VMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb, diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index 7b44cca6d9..6b6cd07362 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -28,6 +28,7 @@ #include "hw/virtio/virtio.h" #include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-access.h" +#include "sysemu/sysemu.h" static const int user_feature_bits[] = { VIRTIO_BLK_F_SIZE_MAX, diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index 8cc2a232e0..78ac371eba 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -20,6 +20,7 @@ #include "hw/block/block.h" #include "hw/qdev-properties.h" #include "sysemu/blockdev.h" +#include "sysemu/sysemu.h" #include "hw/virtio/virtio-blk.h" #include "dataplane/virtio-blk.h" #include "scsi/constants.h" diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 6de9689a30..28e868c021 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -17,6 +17,7 @@ #include "ui/console.h" #include "trace.h" #include "sysemu/dma.h" +#include "sysemu/sysemu.h" #include "hw/virtio/virtio.h" #include "migration/qemu-file-types.h" #include "hw/virtio/virtio-gpu.h" diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c index b59df4e3b8..50f20d8206 100644 --- a/hw/misc/macio/macio.c +++ b/hw/misc/macio/macio.c @@ -35,6 +35,7 @@ #include "hw/char/escc.h" #include "hw/misc/macio/macio.h" #include "hw/intc/heathrow_pic.h" +#include "sysemu/sysemu.h" #include "trace.h" /* Note: this code is strongly inspirated from the corresponding code diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 4113729fcf..9f11422337 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -31,6 +31,7 @@ #include "hw/virtio/virtio-access.h" #include "migration/misc.h" #include "standard-headers/linux/ethtool.h" +#include "sysemu/sysemu.h" #include "trace.h" #define VIRTIO_NET_VM_VERSION 11 diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c index 22c6878b84..0c5a5b60bd 100644 --- a/hw/s390x/s390-ccw.c +++ b/hw/s390x/s390-ccw.c @@ -19,6 +19,7 @@ #include "hw/s390x/css.h" #include "hw/s390x/css-bridge.h" #include "hw/s390x/s390-ccw.h" +#include "sysemu/sysemu.h" IOInstEnding s390_ccw_cmd_request(SubchDev *sch) { diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index a543b64e56..434d933ec9 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -40,6 +40,7 @@ #include "hw/nmi.h" #include "hw/qdev-properties.h" #include "hw/s390x/tod.h" +#include "sysemu/sysemu.h" S390CPU *s390_cpu_addr2state(uint16_t cpu_addr) { diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index db785e6001..cb8e8d1f36 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -10,6 +10,7 @@ #include "scsi/constants.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" +#include "sysemu/sysemu.h" #include "trace.h" #include "sysemu/dma.h" #include "qemu/cutils.h" diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c index cd5cf1679d..c693fc748a 100644 --- a/hw/scsi/vhost-scsi.c +++ b/hw/scsi/vhost-scsi.c @@ -30,6 +30,7 @@ #include "hw/fw-path-provider.h" #include "hw/qdev-properties.h" #include "qemu/cutils.h" +#include "sysemu/sysemu.h" /* Features supported by host kernel. */ static const int kernel_feature_bits[] = { diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c index a5be128b54..31c9d34637 100644 --- a/hw/scsi/vhost-user-scsi.c +++ b/hw/scsi/vhost-user-scsi.c @@ -28,6 +28,7 @@ #include "hw/virtio/virtio.h" #include "hw/virtio/virtio-access.h" #include "chardev/char-fe.h" +#include "sysemu/sysemu.h" /* Features supported by the host application */ static const int user_feature_bits[] = { diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index d7d1ecd45d..e76c939751 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -35,6 +35,7 @@ #include "trace.h" #include "qemu/error-report.h" #include "qemu/main-loop.h" +#include "sysemu/sysemu.h" #define FRAME_TIMER_FREQ 1000 #define FRAME_TIMER_NS (NANOSECONDS_PER_SECOND / FRAME_TIMER_FREQ) diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c index 34b4619fd3..c9c2414b7b 100644 --- a/hw/virtio/virtio-rng.c +++ b/hw/virtio/virtio-rng.c @@ -17,6 +17,7 @@ #include "hw/qdev-properties.h" #include "hw/virtio/virtio-rng.h" #include "sysemu/rng.h" +#include "sysemu/sysemu.h" #include "qom/object_interfaces.h" #include "trace.h" diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 721dcccc96..0ce142bc04 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -26,6 +26,7 @@ #include "hw/qdev-properties.h" #include "hw/virtio/virtio-access.h" #include "sysemu/dma.h" +#include "sysemu/sysemu.h" /* * The alignment to use between consumer and producer parts of vring. diff --git a/vl.c b/vl.c index 08ef28f100..9dbbce4ce3 100644 --- a/vl.c +++ b/vl.c @@ -1362,14 +1362,14 @@ static int machine_help_func(QemuOpts *opts, MachineState *machine) return 1; } -struct vm_change_state_entry { +struct VMChangeStateEntry { VMChangeStateHandler *cb; void *opaque; - QTAILQ_ENTRY(vm_change_state_entry) entries; + QTAILQ_ENTRY(VMChangeStateEntry) entries; int priority; }; -static QTAILQ_HEAD(, vm_change_state_entry) vm_change_state_head; +static QTAILQ_HEAD(, VMChangeStateEntry) vm_change_state_head; /** * qemu_add_vm_change_state_handler_prio: -- 2.21.0