Skip to content

Commit

Permalink
sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h
Browse files Browse the repository at this point in the history
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 <armbru@redhat.com>
Message-Id: <20190812052359.30071-29-armbru@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
  • Loading branch information
Markus Armbruster committed Aug 16, 2019
1 parent 46517dd commit 2f780b6
Show file tree
Hide file tree
Showing 21 changed files with 19 additions and 9 deletions.
1 change: 1 addition & 0 deletions hw/block/vhost-user-blk.c
Expand Up @@ -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,
Expand Down
1 change: 1 addition & 0 deletions hw/block/virtio-blk.c
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions hw/display/virtio-gpu.c
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions hw/misc/macio/macio.c
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions hw/net/virtio-net.c
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions hw/s390x/s390-ccw.c
Expand Up @@ -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)
{
Expand Down
1 change: 1 addition & 0 deletions hw/s390x/s390-virtio-ccw.c
Expand Up @@ -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)
{
Expand Down
1 change: 1 addition & 0 deletions hw/scsi/scsi-bus.c
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions hw/scsi/vhost-scsi.c
Expand Up @@ -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[] = {
Expand Down
1 change: 1 addition & 0 deletions hw/scsi/vhost-user-scsi.c
Expand Up @@ -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[] = {
Expand Down
1 change: 1 addition & 0 deletions hw/usb/hcd-ehci.c
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion hw/usb/hcd-ehci.h
Expand Up @@ -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"

Expand Down
1 change: 1 addition & 0 deletions hw/virtio/virtio-rng.c
Expand Up @@ -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"

Expand Down
1 change: 1 addition & 0 deletions hw/virtio/virtio.c
Expand Up @@ -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.
Expand Down
3 changes: 2 additions & 1 deletion include/hw/ide/internal.h
Expand Up @@ -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"

Expand Down
1 change: 0 additions & 1 deletion include/hw/ppc/spapr_xive.h
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion include/hw/scsi/scsi.h
Expand Up @@ -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"

Expand Down
1 change: 0 additions & 1 deletion include/hw/virtio/virtio.h
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions include/qemu/typedefs.h
Expand Up @@ -118,6 +118,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;

/*
Expand Down
1 change: 0 additions & 1 deletion include/sysemu/sysemu.h
Expand Up @@ -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,
Expand Down
6 changes: 3 additions & 3 deletions vl.c
Expand Up @@ -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:
Expand Down

0 comments on commit 2f780b6

Please sign in to comment.