aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2019-08-16 14:53:43 +0100
committerPeter Maydell <peter.maydell@linaro.org>2019-08-16 14:53:43 +0100
commit95a9457fd44ad97c518858a4e1586a5498f9773c (patch)
tree48b3918361cd6a59208d8479a4ce5c681e499665 /include
parent1f3a51f3feabb5235c073a9ec9211156a519d058 (diff)
parent54d31236b906c8f03eb011717de7bc47000720c3 (diff)
downloadqemu-95a9457fd44ad97c518858a4e1586a5498f9773c.zip
qemu-95a9457fd44ad97c518858a4e1586a5498f9773c.tar.gz
qemu-95a9457fd44ad97c518858a4e1586a5498f9773c.tar.bz2
Merge remote-tracking branch 'remotes/armbru/tags/pull-include-2019-08-13-v2' into staging
Header cleanup patches for 2019-08-13 # gpg: Signature made Fri 16 Aug 2019 12:39:12 BST # gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653 # gpg: issuer "armbru@redhat.com" # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full] # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-include-2019-08-13-v2: (29 commits) sysemu: Split sysemu/runstate.h off sysemu/sysemu.h sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h Include sysemu/sysemu.h a lot less Clean up inclusion of sysemu/sysemu.h numa: Move remaining NUMA declarations from sysemu.h to numa.h Include sysemu/hostmem.h less numa: Don't include hw/boards.h into sysemu/numa.h Include hw/boards.h a bit less Include hw/qdev-properties.h less Include qemu/main-loop.h less Include qemu/queue.h slightly less Include hw/hw.h exactly where needed Include qom/object.h slightly less Include exec/memory.h slightly less Include migration/vmstate.h less migration: Move the VMStateDescription typedef to typedefs.h Clean up inclusion of exec/cpu-common.h Include hw/irq.h a lot less typedefs: Separate incomplete types and function types ide: Include hw/ide/internal a bit less outside hw/ide/ ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/authz/listfile.h1
-rw-r--r--include/block/block.h1
-rw-r--r--include/block/block_int.h1
-rw-r--r--include/block/raw-aio.h2
-rw-r--r--include/block/write-threshold.h2
-rw-r--r--include/chardev/char-fe.h1
-rw-r--r--include/chardev/char-io.h1
-rw-r--r--include/chardev/char.h2
-rw-r--r--include/disas/disas.h1
-rw-r--r--include/exec/cpu-defs.h1
-rw-r--r--include/exec/cputlb.h3
-rw-r--r--include/exec/exec-all.h1
-rw-r--r--include/exec/ioport.h2
-rw-r--r--include/exec/memory-internal.h2
-rw-r--r--include/exec/memory.h10
-rw-r--r--include/exec/ram_addr.h1
-rw-r--r--include/exec/softmmu-semi.h2
-rw-r--r--include/exec/tb-hash.h2
-rw-r--r--include/exec/user/thunk.h2
-rw-r--r--include/fpu/softfloat-macros.h2
-rw-r--r--include/hw/acpi/acpi.h1
-rw-r--r--include/hw/acpi/acpi_dev_interface.h2
-rw-r--r--include/hw/acpi/pci.h3
-rw-r--r--include/hw/acpi/tco.h2
-rw-r--r--include/hw/acpi/vmgenid.h2
-rw-r--r--include/hw/adc/stm32f2xx_adc.h2
-rw-r--r--include/hw/arm/allwinner-a10.h3
-rw-r--r--include/hw/arm/aspeed_soc.h1
-rw-r--r--include/hw/arm/bcm2836.h1
-rw-r--r--include/hw/arm/boot.h2
-rw-r--r--include/hw/arm/exynos4210.h3
-rw-r--r--include/hw/arm/fsl-imx25.h1
-rw-r--r--include/hw/arm/fsl-imx31.h1
-rw-r--r--include/hw/arm/fsl-imx7.h1
-rw-r--r--include/hw/arm/omap.h1
-rw-r--r--include/hw/arm/sharpsl.h3
-rw-r--r--include/hw/arm/soc_dma.h3
-rw-r--r--include/hw/arm/xlnx-zynqmp.h2
-rw-r--r--include/hw/audio/pcspk.h2
-rw-r--r--include/hw/audio/wm8750.h1
-rw-r--r--include/hw/block/fdc.h1
-rw-r--r--include/hw/block/flash.h2
-rw-r--r--include/hw/boards.h4
-rw-r--r--include/hw/bt.h1
-rw-r--r--include/hw/char/cadence_uart.h1
-rw-r--r--include/hw/char/cmsdk-apb-uart.h1
-rw-r--r--include/hw/char/escc.h1
-rw-r--r--include/hw/char/lm32_juart.h2
-rw-r--r--include/hw/char/parallel.h1
-rw-r--r--include/hw/char/pl011.h1
-rw-r--r--include/hw/char/serial.h2
-rw-r--r--include/hw/char/stm32f2xx_usart.h1
-rw-r--r--include/hw/char/xilinx_uartlite.h3
-rw-r--r--include/hw/core/generic-loader.h1
-rw-r--r--include/hw/core/split-irq.h1
-rw-r--r--include/hw/cpu/cluster.h2
-rw-r--r--include/hw/cpu/core.h2
-rw-r--r--include/hw/cris/etraxfs.h2
-rw-r--r--include/hw/cris/etraxfs_dma.h2
-rw-r--r--include/hw/display/blizzard.h1
-rw-r--r--include/hw/display/edid.h2
-rw-r--r--include/hw/display/i2c-ddc.h1
-rw-r--r--include/hw/display/milkymist_tmu2.h3
-rw-r--r--include/hw/display/tc6393xb.h3
-rw-r--r--include/hw/display/vga.h2
-rw-r--r--include/hw/dma/i8257.h1
-rw-r--r--include/hw/empty_slot.h2
-rw-r--r--include/hw/gpio/bcm2835_gpio.h1
-rw-r--r--include/hw/hw.h9
-rw-r--r--include/hw/i2c/aspeed_i2c.h2
-rw-r--r--include/hw/i2c/i2c.h2
-rw-r--r--include/hw/i2c/pm_smbus.h1
-rw-r--r--include/hw/i2c/smbus_eeprom.h1
-rw-r--r--include/hw/i386/apic_internal.h1
-rw-r--r--include/hw/i386/ich9.h1
-rw-r--r--include/hw/i386/intel_iommu.h2
-rw-r--r--include/hw/i386/ioapic_internal.h2
-rw-r--r--include/hw/i386/pc.h1
-rw-r--r--include/hw/ide/internal.h4
-rw-r--r--include/hw/input/adb.h2
-rw-r--r--include/hw/input/gamepad.h1
-rw-r--r--include/hw/input/hid.h1
-rw-r--r--include/hw/input/i8042.h1
-rw-r--r--include/hw/input/tsc2xxx.h1
-rw-r--r--include/hw/intc/allwinner-a10-pic.h2
-rw-r--r--include/hw/intc/heathrow_pic.h2
-rw-r--r--include/hw/intc/mips_gic.h1
-rw-r--r--include/hw/ipack/ipack.h2
-rw-r--r--include/hw/ipmi/ipmi.h2
-rw-r--r--include/hw/irq.h4
-rw-r--r--include/hw/isa/apm.h1
-rw-r--r--include/hw/isa/i8259_internal.h1
-rw-r--r--include/hw/isa/isa.h2
-rw-r--r--include/hw/isa/vt82c686.h1
-rw-r--r--include/hw/mem/memory-device.h3
-rw-r--r--include/hw/mem/pc-dimm.h4
-rw-r--r--include/hw/mips/cps.h1
-rw-r--r--include/hw/mips/mips.h1
-rw-r--r--include/hw/misc/auxbus.h3
-rw-r--r--include/hw/misc/cbus.h1
-rw-r--r--include/hw/misc/macio/cuda.h2
-rw-r--r--include/hw/misc/macio/gpio.h3
-rw-r--r--include/hw/misc/macio/macio.h2
-rw-r--r--include/hw/misc/macio/pmu.h3
-rw-r--r--include/hw/misc/mips_cmgcr.h2
-rw-r--r--include/hw/misc/mips_cpc.h2
-rw-r--r--include/hw/misc/mos6522.h1
-rw-r--r--include/hw/misc/pvpanic.h3
-rw-r--r--include/hw/misc/stm32f2xx_syscfg.h1
-rw-r--r--include/hw/misc/unimp.h1
-rw-r--r--include/hw/misc/vmcoreinfo.h2
-rw-r--r--include/hw/net/allwinner_emac.h1
-rw-r--r--include/hw/net/lan9118.h1
-rw-r--r--include/hw/net/lance.h1
-rw-r--r--include/hw/net/ne2000-isa.h3
-rw-r--r--include/hw/net/smc91c111.h1
-rw-r--r--include/hw/nvram/chrp_nvram.h2
-rw-r--r--include/hw/or-irq.h1
-rw-r--r--include/hw/pci-host/designware.h1
-rw-r--r--include/hw/pci-host/gpex.h1
-rw-r--r--include/hw/pci-host/q35.h1
-rw-r--r--include/hw/pci-host/sabre.h2
-rw-r--r--include/hw/pci-host/uninorth.h3
-rw-r--r--include/hw/pci-host/xilinx-pcie.h1
-rw-r--r--include/hw/pci/pci.h1
-rw-r--r--include/hw/pci/pcie.h1
-rw-r--r--include/hw/pci/pcie_aer.h2
-rw-r--r--include/hw/pci/shpc.h1
-rw-r--r--include/hw/pcmcia.h2
-rw-r--r--include/hw/ppc/openpic.h1
-rw-r--r--include/hw/ppc/pnv_core.h1
-rw-r--r--include/hw/ppc/ppc4xx.h3
-rw-r--r--include/hw/ppc/spapr_cpu_core.h2
-rw-r--r--include/hw/ppc/spapr_drc.h5
-rw-r--r--include/hw/ppc/spapr_irq.h2
-rw-r--r--include/hw/ppc/spapr_ovec.h1
-rw-r--r--include/hw/ppc/spapr_vio.h1
-rw-r--r--include/hw/ppc/spapr_xive.h1
-rw-r--r--include/hw/ppc/xics.h3
-rw-r--r--include/hw/ppc/xive.h1
-rw-r--r--include/hw/ppc/xive_regs.h3
-rw-r--r--include/hw/ptimer.h1
-rw-r--r--include/hw/qdev-core.h12
-rw-r--r--include/hw/qdev-properties.h2
-rw-r--r--include/hw/qdev.h8
-rw-r--r--include/hw/riscv/boot.h2
-rw-r--r--include/hw/riscv/riscv_hart.h3
-rw-r--r--include/hw/riscv/riscv_htif.h2
-rw-r--r--include/hw/riscv/sifive_clint.h2
-rw-r--r--include/hw/riscv/sifive_e.h1
-rw-r--r--include/hw/riscv/sifive_plic.h2
-rw-r--r--include/hw/riscv/sifive_prci.h2
-rw-r--r--include/hw/riscv/sifive_test.h2
-rw-r--r--include/hw/riscv/sifive_u.h1
-rw-r--r--include/hw/riscv/sifive_uart.h3
-rw-r--r--include/hw/riscv/spike.h3
-rw-r--r--include/hw/riscv/virt.h3
-rw-r--r--include/hw/s390x/ap-device.h3
-rw-r--r--include/hw/s390x/css-bridge.h3
-rw-r--r--include/hw/s390x/css.h1
-rw-r--r--include/hw/s390x/event-facility.h2
-rw-r--r--include/hw/s390x/sclp.h1
-rw-r--r--include/hw/s390x/storage-attributes.h2
-rw-r--r--include/hw/s390x/storage-keys.h2
-rw-r--r--include/hw/s390x/tod.h4
-rw-r--r--include/hw/scsi/scsi.h4
-rw-r--r--include/hw/sd/sd.h2
-rw-r--r--include/hw/semihosting/console.h2
-rw-r--r--include/hw/sh4/sh_intc.h2
-rw-r--r--include/hw/sparc/grlib.h1
-rw-r--r--include/hw/sparc/sparc64.h2
-rw-r--r--include/hw/ssi/aspeed_smc.h1
-rw-r--r--include/hw/ssi/ssi.h2
-rw-r--r--include/hw/ssi/stm32f2xx_spi.h1
-rw-r--r--include/hw/ssi/xilinx_spips.h1
-rw-r--r--include/hw/sysbus.h2
-rw-r--r--include/hw/timer/allwinner-a10-pit.h1
-rw-r--r--include/hw/timer/aspeed_rtc.h1
-rw-r--r--include/hw/timer/cmsdk-apb-timer.h1
-rw-r--r--include/hw/timer/i8254.h3
-rw-r--r--include/hw/timer/i8254_internal.h2
-rw-r--r--include/hw/timer/m48t59.h1
-rw-r--r--include/hw/timer/mc146818rtc_regs.h2
-rw-r--r--include/hw/timer/stm32f2xx_timer.h1
-rw-r--r--include/hw/timer/xlnx-zynqmp-rtc.h1
-rw-r--r--include/hw/tricore/tricore.h1
-rw-r--r--include/hw/usb.h3
-rw-r--r--include/hw/vfio/vfio-platform.h1
-rw-r--r--include/hw/virtio/vhost-scsi-common.h1
-rw-r--r--include/hw/virtio/vhost-scsi.h1
-rw-r--r--include/hw/virtio/vhost-user-blk.h1
-rw-r--r--include/hw/virtio/vhost-user-scsi.h1
-rw-r--r--include/hw/virtio/vhost.h1
-rw-r--r--include/hw/virtio/virtio-access.h1
-rw-r--r--include/hw/virtio/virtio-bus.h3
-rw-r--r--include/hw/virtio/virtio-gpu-bswap.h1
-rw-r--r--include/hw/virtio/virtio-pmem.h2
-rw-r--r--include/hw/virtio/virtio-rng.h1
-rw-r--r--include/hw/virtio/virtio-serial.h1
-rw-r--r--include/hw/virtio/virtio.h6
-rw-r--r--include/hw/watchdog/wdt_aspeed.h1
-rw-r--r--include/hw/watchdog/wdt_diag288.h2
-rw-r--r--include/hw/xen/xen-legacy-backend.h1
-rw-r--r--include/hw/xen/xen.h1
-rw-r--r--include/hw/xen/xen_common.h2
-rw-r--r--include/hw/xtensa/mx_pic.h1
-rw-r--r--include/libdecnumber/decNumberLocal.h1
-rw-r--r--include/migration/cpu.h5
-rw-r--r--include/migration/global_state.h1
-rw-r--r--include/migration/misc.h1
-rw-r--r--include/migration/vmstate.h1
-rw-r--r--include/monitor/hmp-target.h2
-rw-r--r--include/monitor/qdev.h2
-rw-r--r--include/net/can_emu.h1
-rw-r--r--include/net/filter.h1
-rw-r--r--include/net/net.h1
-rw-r--r--include/qapi/error.h2
-rw-r--r--include/qemu/atomic128.h2
-rw-r--r--include/qemu/fifo8.h1
-rw-r--r--include/qemu/job.h2
-rw-r--r--include/qemu/queue.h2
-rw-r--r--include/qemu/range.h2
-rw-r--r--include/qemu/ratelimit.h2
-rw-r--r--include/qemu/thread-win32.h2
-rw-r--r--include/qemu/typedefs.h38
-rw-r--r--include/qom/cpu.h4
-rw-r--r--include/qom/object.h1
-rw-r--r--include/sysemu/accel.h1
-rw-r--r--include/sysemu/arch_init.h1
-rw-r--r--include/sysemu/balloon.h1
-rw-r--r--include/sysemu/cryptodev-vhost-user.h3
-rw-r--r--include/sysemu/cryptodev.h1
-rw-r--r--include/sysemu/dma.h1
-rw-r--r--include/sysemu/hax.h1
-rw-r--r--include/sysemu/hostmem.h3
-rw-r--r--include/sysemu/hvf.h2
-rw-r--r--include/sysemu/iothread.h1
-rw-r--r--include/sysemu/kvm.h1
-rw-r--r--include/sysemu/kvm_int.h2
-rw-r--r--include/sysemu/memory_mapping.h1
-rw-r--r--include/sysemu/numa.h18
-rw-r--r--include/sysemu/replay.h2
-rw-r--r--include/sysemu/rng.h1
-rw-r--r--include/sysemu/runstate.h68
-rw-r--r--include/sysemu/sysemu.h68
-rw-r--r--include/sysemu/xen-mapcache.h2
-rw-r--r--include/ui/egl-helpers.h2
-rw-r--r--include/ui/input.h1
-rw-r--r--include/ui/spice-display.h2
249 files changed, 377 insertions, 272 deletions
diff --git a/include/authz/listfile.h b/include/authz/listfile.h
index 33b728d..24ae2e6 100644
--- a/include/authz/listfile.h
+++ b/include/authz/listfile.h
@@ -22,7 +22,6 @@
#define QAUTHZ_LISTFILE_H
#include "authz/list.h"
-#include "qapi/qapi-types-authz.h"
#include "qemu/filemonitor.h"
#define TYPE_QAUTHZ_LIST_FILE "authz-list-file"
diff --git a/include/block/block.h b/include/block/block.h
index 50a07c1..ae79b70 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -2,7 +2,6 @@
#define BLOCK_H
#include "block/aio.h"
-#include "qapi/qapi-types-block-core.h"
#include "block/aio-wait.h"
#include "qemu/iov.h"
#include "qemu/coroutine.h"
diff --git a/include/block/block_int.h b/include/block/block_int.h
index 3aa1e83..6207a10 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -33,7 +33,6 @@
#include "qemu/timer.h"
#include "qemu/hbitmap.h"
#include "block/snapshot.h"
-#include "qemu/main-loop.h"
#include "qemu/throttle.h"
#define BLOCK_FLAG_LAZY_REFCOUNTS 8
diff --git a/include/block/raw-aio.h b/include/block/raw-aio.h
index 0cb7cc7..4629f24 100644
--- a/include/block/raw-aio.h
+++ b/include/block/raw-aio.h
@@ -12,9 +12,11 @@
* Contributions after 2012-01-13 are licensed under the terms of the
* GNU GPL, version 2 or (at your option) any later version.
*/
+
#ifndef QEMU_RAW_AIO_H
#define QEMU_RAW_AIO_H
+#include "block/aio.h"
#include "qemu/coroutine.h"
#include "qemu/iov.h"
diff --git a/include/block/write-threshold.h b/include/block/write-threshold.h
index 80d8aab..c646f26 100644
--- a/include/block/write-threshold.h
+++ b/include/block/write-threshold.h
@@ -9,9 +9,11 @@
* This work is licensed under the terms of the GNU LGPL, version 2 or later.
* See the COPYING.LIB file in the top-level directory.
*/
+
#ifndef BLOCK_WRITE_THRESHOLD_H
#define BLOCK_WRITE_THRESHOLD_H
+#include "block/block_int.h"
/*
* bdrv_write_threshold_set:
diff --git a/include/chardev/char-fe.h b/include/chardev/char-fe.h
index aa1b864..67601dc 100644
--- a/include/chardev/char-fe.h
+++ b/include/chardev/char-fe.h
@@ -2,6 +2,7 @@
#define QEMU_CHAR_FE_H
#include "chardev/char.h"
+#include "qemu/main-loop.h"
typedef void IOEventHandler(void *opaque, int event);
typedef int BackendChangeHandler(void *opaque);
diff --git a/include/chardev/char-io.h b/include/chardev/char-io.h
index 1709b59..ac379ea 100644
--- a/include/chardev/char-io.h
+++ b/include/chardev/char-io.h
@@ -26,6 +26,7 @@
#include "io/channel.h"
#include "chardev/char.h"
+#include "qemu/main-loop.h"
/* Can only be used for read */
GSource *io_add_watch_poll(Chardev *chr,
diff --git a/include/chardev/char.h b/include/chardev/char.h
index c0b57f7..087b202 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -2,8 +2,8 @@
#define QEMU_CHAR_H
#include "qapi/qapi-types-char.h"
-#include "qemu/main-loop.h"
#include "qemu/bitmap.h"
+#include "qemu/thread.h"
#include "qom/object.h"
#define IAC_EOR 239
diff --git a/include/disas/disas.h b/include/disas/disas.h
index 15da511..ba47e91 100644
--- a/include/disas/disas.h
+++ b/include/disas/disas.h
@@ -1,6 +1,7 @@
#ifndef QEMU_DISAS_H
#define QEMU_DISAS_H
+#include "exec/hwaddr.h"
#ifdef NEED_CPU_H
#include "cpu.h"
diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
index 9bc713a..57a9a4f 100644
--- a/include/exec/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -25,7 +25,6 @@
#include "qemu/host-utils.h"
#include "qemu/thread.h"
-#include "qemu/queue.h"
#ifdef CONFIG_TCG
#include "tcg-target.h"
#endif
diff --git a/include/exec/cputlb.h b/include/exec/cputlb.h
index 5373188..a62cfb2 100644
--- a/include/exec/cputlb.h
+++ b/include/exec/cputlb.h
@@ -16,9 +16,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+
#ifndef CPUTLB_H
#define CPUTLB_H
+#include "exec/cpu-common.h"
+
#if !defined(CONFIG_USER_ONLY)
/* cputlb.c */
void tlb_protect_code(ram_addr_t ram_addr);
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index 16034ee..135aeaa 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -20,6 +20,7 @@
#ifndef EXEC_ALL_H
#define EXEC_ALL_H
+#include "cpu.h"
#include "exec/tb-context.h"
#include "sysemu/cpus.h"
diff --git a/include/exec/ioport.h b/include/exec/ioport.h
index a298b89..97feb29 100644
--- a/include/exec/ioport.h
+++ b/include/exec/ioport.h
@@ -24,6 +24,8 @@
#ifndef IOPORT_H
#define IOPORT_H
+#include "exec/memory.h"
+
#define MAX_IOPORTS (64 * 1024)
#define IOPORTS_MASK (MAX_IOPORTS - 1)
diff --git a/include/exec/memory-internal.h b/include/exec/memory-internal.h
index d1a9dd1..ef4fb92 100644
--- a/include/exec/memory-internal.h
+++ b/include/exec/memory-internal.h
@@ -20,6 +20,8 @@
#ifndef MEMORY_INTERNAL_H
#define MEMORY_INTERNAL_H
+#include "cpu.h"
+
#ifndef CONFIG_USER_ONLY
static inline AddressSpaceDispatch *flatview_to_dispatch(FlatView *fv)
{
diff --git a/include/exec/memory.h b/include/exec/memory.h
index bb0961d..d99eb25 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -20,12 +20,12 @@
#include "exec/hwaddr.h"
#include "exec/memattrs.h"
#include "exec/ramlist.h"
+#include "qemu/bswap.h"
#include "qemu/queue.h"
#include "qemu/int128.h"
#include "qemu/notify.h"
#include "qom/object.h"
#include "qemu/rcu.h"
-#include "hw/qdev-core.h"
#define RAM_ADDR_INVALID (~(ram_addr_t)0)
@@ -205,6 +205,12 @@ struct MemoryRegionOps {
} impl;
};
+typedef struct MemoryRegionClass {
+ /* private */
+ ObjectClass parent_class;
+} MemoryRegionClass;
+
+
enum IOMMUMemoryRegionAttr {
IOMMU_ATTR_SPAPR_TCE_FD
};
@@ -237,7 +243,7 @@ enum IOMMUMemoryRegionAttr {
*/
typedef struct IOMMUMemoryRegionClass {
/* private */
- struct DeviceClass parent_class;
+ MemoryRegionClass parent_class;
/*
* Return a TLB entry that contains a given address.
diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
index b7b2e60..a327a80 100644
--- a/include/exec/ram_addr.h
+++ b/include/exec/ram_addr.h
@@ -20,6 +20,7 @@
#define RAM_ADDR_H
#ifndef CONFIG_USER_ONLY
+#include "cpu.h"
#include "hw/xen/xen.h"
#include "sysemu/tcg.h"
#include "exec/ramlist.h"
diff --git a/include/exec/softmmu-semi.h b/include/exec/softmmu-semi.h
index 9708379..fbcae88 100644
--- a/include/exec/softmmu-semi.h
+++ b/include/exec/softmmu-semi.h
@@ -10,6 +10,8 @@
#ifndef SOFTMMU_SEMI_H
#define SOFTMMU_SEMI_H
+#include "cpu.h"
+
static inline uint64_t softmmu_tget64(CPUArchState *env, target_ulong addr)
{
uint64_t val;
diff --git a/include/exec/tb-hash.h b/include/exec/tb-hash.h
index 4f3a37d..805235d 100644
--- a/include/exec/tb-hash.h
+++ b/include/exec/tb-hash.h
@@ -20,6 +20,8 @@
#ifndef EXEC_TB_HASH_H
#define EXEC_TB_HASH_H
+#include "exec/cpu-defs.h"
+#include "exec/exec-all.h"
#include "qemu/xxhash.h"
#ifdef CONFIG_SOFTMMU
diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h
index 8d3af5a..eae2c27 100644
--- a/include/exec/user/thunk.h
+++ b/include/exec/user/thunk.h
@@ -16,10 +16,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+
#ifndef THUNK_H
#define THUNK_H
#include "cpu.h"
+#include "exec/user/abitypes.h"
/* types enums definitions */
diff --git a/include/fpu/softfloat-macros.h b/include/fpu/softfloat-macros.h
index c55aa6d..be83a83 100644
--- a/include/fpu/softfloat-macros.h
+++ b/include/fpu/softfloat-macros.h
@@ -82,6 +82,8 @@ this code that are retained.
#ifndef FPU_SOFTFLOAT_MACROS_H
#define FPU_SOFTFLOAT_MACROS_H
+#include "fpu/softfloat.h"
+
/*----------------------------------------------------------------------------
| Shifts `a' right by the number of bits given in `count'. If any nonzero
| bits are shifted off, they are ``jammed'' into the least significant bit of
diff --git a/include/hw/acpi/acpi.h b/include/hw/acpi/acpi.h
index c91e2b9..1f2dafb 100644
--- a/include/hw/acpi/acpi.h
+++ b/include/hw/acpi/acpi.h
@@ -22,7 +22,6 @@
#include "qemu/notify.h"
#include "exec/memory.h"
-#include "hw/irq.h"
#include "hw/acpi/acpi_dev_interface.h"
/*
diff --git a/include/hw/acpi/acpi_dev_interface.h b/include/hw/acpi/acpi_dev_interface.h
index 43ff119..0ba90ef 100644
--- a/include/hw/acpi/acpi_dev_interface.h
+++ b/include/hw/acpi/acpi_dev_interface.h
@@ -1,8 +1,10 @@
#ifndef ACPI_DEV_INTERFACE_H
#define ACPI_DEV_INTERFACE_H
+#include "qapi/qapi-types-misc.h"
#include "qom/object.h"
#include "hw/boards.h"
+#include "hw/qdev-core.h"
/* These values are part of guest ABI, and can not be changed */
typedef enum {
diff --git a/include/hw/acpi/pci.h b/include/hw/acpi/pci.h
index 8bbd32c..bf2a3ed 100644
--- a/include/hw/acpi/pci.h
+++ b/include/hw/acpi/pci.h
@@ -22,9 +22,12 @@
* You should have received a copy of the GNU General Public License along
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+
#ifndef HW_ACPI_PCI_H
#define HW_ACPI_PCI_H
+#include "hw/acpi/bios-linker-loader.h"
+
typedef struct AcpiMcfgInfo {
uint64_t base;
uint32_t size;
diff --git a/include/hw/acpi/tco.h b/include/hw/acpi/tco.h
index d19dd59..a1e0da8 100644
--- a/include/hw/acpi/tco.h
+++ b/include/hw/acpi/tco.h
@@ -6,9 +6,11 @@
* 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 HW_ACPI_TCO_H
#define HW_ACPI_TCO_H
+#include "exec/memory.h"
/* As per ICH9 spec, the internal timer has an error of ~0.6s on every tick */
#define TCO_TICK_NSEC 600000000LL
diff --git a/include/hw/acpi/vmgenid.h b/include/hw/acpi/vmgenid.h
index 38586ec..c49d913 100644
--- a/include/hw/acpi/vmgenid.h
+++ b/include/hw/acpi/vmgenid.h
@@ -2,7 +2,7 @@
#define ACPI_VMGENID_H
#include "hw/acpi/bios-linker-loader.h"
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#include "qemu/uuid.h"
#define VMGENID_DEVICE "vmgenid"
diff --git a/include/hw/adc/stm32f2xx_adc.h b/include/hw/adc/stm32f2xx_adc.h
index a72f734..663b79f 100644
--- a/include/hw/adc/stm32f2xx_adc.h
+++ b/include/hw/adc/stm32f2xx_adc.h
@@ -25,6 +25,8 @@
#ifndef HW_STM32F2XX_ADC_H
#define HW_STM32F2XX_ADC_H
+#include "hw/sysbus.h"
+
#define ADC_SR 0x00
#define ADC_CR1 0x04
#define ADC_CR2 0x08
diff --git a/include/hw/arm/allwinner-a10.h b/include/hw/arm/allwinner-a10.h
index e99fe2e..7d2d215 100644
--- a/include/hw/arm/allwinner-a10.h
+++ b/include/hw/arm/allwinner-a10.h
@@ -7,10 +7,9 @@
#include "hw/timer/allwinner-a10-pit.h"
#include "hw/intc/allwinner-a10-pic.h"
#include "hw/net/allwinner_emac.h"
-#include "hw/ide/pci.h"
#include "hw/ide/ahci.h"
-#include "sysemu/sysemu.h"
+#include "target/arm/cpu.h"
#define AW_A10_PIC_REG_BASE 0x01c20400
diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
index cef605a..976fd6b 100644
--- a/include/hw/arm/aspeed_soc.h
+++ b/include/hw/arm/aspeed_soc.h
@@ -22,6 +22,7 @@
#include "hw/ssi/aspeed_smc.h"
#include "hw/watchdog/wdt_aspeed.h"
#include "hw/net/ftgmac100.h"
+#include "target/arm/cpu.h"
#define ASPEED_SPIS_NUM 2
#define ASPEED_WDTS_NUM 3
diff --git a/include/hw/arm/bcm2836.h b/include/hw/arm/bcm2836.h
index a2cb845..97187f7 100644
--- a/include/hw/arm/bcm2836.h
+++ b/include/hw/arm/bcm2836.h
@@ -13,6 +13,7 @@
#include "hw/arm/bcm2835_peripherals.h"
#include "hw/intc/bcm2836_control.h"
+#include "target/arm/cpu.h"
#define TYPE_BCM283X "bcm283x"
#define BCM283X(obj) OBJECT_CHECK(BCM283XState, (obj), TYPE_BCM283X)
diff --git a/include/hw/arm/boot.h b/include/hw/arm/boot.h
index c48cc4c..5714dea 100644
--- a/include/hw/arm/boot.h
+++ b/include/hw/arm/boot.h
@@ -11,9 +11,7 @@
#ifndef HW_ARM_BOOT_H
#define HW_ARM_BOOT_H
-#include "exec/memory.h"
#include "target/arm/cpu-qom.h"
-#include "hw/irq.h"
#include "qemu/notify.h"
typedef enum {
diff --git a/include/hw/arm/exynos4210.h b/include/hw/arm/exynos4210.h
index aa13727..f0f23b0 100644
--- a/include/hw/arm/exynos4210.h
+++ b/include/hw/arm/exynos4210.h
@@ -19,13 +19,12 @@
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, see <http://www.gnu.org/licenses/>.
- *
*/
#ifndef EXYNOS4210_H
#define EXYNOS4210_H
-#include "exec/memory.h"
+#include "hw/sysbus.h"
#include "target/arm/cpu-qom.h"
#define EXYNOS4210_NCPUS 2
diff --git a/include/hw/arm/fsl-imx25.h b/include/hw/arm/fsl-imx25.h
index 3280ab1..241efb5 100644
--- a/include/hw/arm/fsl-imx25.h
+++ b/include/hw/arm/fsl-imx25.h
@@ -27,6 +27,7 @@
#include "hw/i2c/imx_i2c.h"
#include "hw/gpio/imx_gpio.h"
#include "exec/memory.h"
+#include "target/arm/cpu.h"
#define TYPE_FSL_IMX25 "fsl,imx25"
#define FSL_IMX25(obj) OBJECT_CHECK(FslIMX25State, (obj), TYPE_FSL_IMX25)
diff --git a/include/hw/arm/fsl-imx31.h b/include/hw/arm/fsl-imx31.h
index e68a81e..ac5ca98 100644
--- a/include/hw/arm/fsl-imx31.h
+++ b/include/hw/arm/fsl-imx31.h
@@ -26,6 +26,7 @@
#include "hw/i2c/imx_i2c.h"
#include "hw/gpio/imx_gpio.h"
#include "exec/memory.h"
+#include "target/arm/cpu.h"
#define TYPE_FSL_IMX31 "fsl,imx31"
#define FSL_IMX31(obj) OBJECT_CHECK(FslIMX31State, (obj), TYPE_FSL_IMX31)
diff --git a/include/hw/arm/fsl-imx7.h b/include/hw/arm/fsl-imx7.h
index 8003d45..706aef2 100644
--- a/include/hw/arm/fsl-imx7.h
+++ b/include/hw/arm/fsl-imx7.h
@@ -38,7 +38,6 @@
#include "hw/net/imx_fec.h"
#include "hw/pci-host/designware.h"
#include "hw/usb/chipidea.h"
-#include "exec/memory.h"
#include "cpu.h"
#define TYPE_FSL_IMX7 "fsl,imx7"
diff --git a/include/hw/arm/omap.h b/include/hw/arm/omap.h
index d21e418..2fda996 100644
--- a/include/hw/arm/omap.h
+++ b/include/hw/arm/omap.h
@@ -21,7 +21,6 @@
#define HW_ARM_OMAP_H
#include "exec/memory.h"
-#include "hw/irq.h"
#include "hw/input/tsc2xxx.h"
#include "target/arm/cpu-qom.h"
#include "qemu/log.h"
diff --git a/include/hw/arm/sharpsl.h b/include/hw/arm/sharpsl.h
index 5bf6db1..89e168f 100644
--- a/include/hw/arm/sharpsl.h
+++ b/include/hw/arm/sharpsl.h
@@ -3,9 +3,12 @@
*
* This file is licensed under the GNU GPL.
*/
+
#ifndef QEMU_SHARPSL_H
#define QEMU_SHARPSL_H
+#include "exec/hwaddr.h"
+
#define zaurus_printf(format, ...) \
fprintf(stderr, "%s: " format, __func__, ##__VA_ARGS__)
diff --git a/include/hw/arm/soc_dma.h b/include/hw/arm/soc_dma.h
index fae3229..e93a749 100644
--- a/include/hw/arm/soc_dma.h
+++ b/include/hw/arm/soc_dma.h
@@ -21,8 +21,7 @@
#ifndef HW_SOC_DMA_H
#define HW_SOC_DMA_H
-#include "exec/memory.h"
-#include "hw/irq.h"
+#include "exec/hwaddr.h"
struct soc_dma_s;
struct soc_dma_ch_s;
diff --git a/include/hw/arm/xlnx-zynqmp.h b/include/hw/arm/xlnx-zynqmp.h
index 35804ea..d7483c3 100644
--- a/include/hw/arm/xlnx-zynqmp.h
+++ b/include/hw/arm/xlnx-zynqmp.h
@@ -22,7 +22,6 @@
#include "hw/intc/arm_gic.h"
#include "hw/net/cadence_gem.h"
#include "hw/char/cadence_uart.h"
-#include "hw/ide/pci.h"
#include "hw/ide/ahci.h"
#include "hw/sd/sdhci.h"
#include "hw/ssi/xilinx_spips.h"
@@ -32,6 +31,7 @@
#include "hw/intc/xlnx-zynqmp-ipi.h"
#include "hw/timer/xlnx-zynqmp-rtc.h"
#include "hw/cpu/cluster.h"
+#include "target/arm/cpu.h"
#define TYPE_XLNX_ZYNQMP "xlnx,zynqmp"
#define XLNX_ZYNQMP(obj) OBJECT_CHECK(XlnxZynqMPState, (obj), \
diff --git a/include/hw/audio/pcspk.h b/include/hw/audio/pcspk.h
index 172afbf..632cce9 100644
--- a/include/hw/audio/pcspk.h
+++ b/include/hw/audio/pcspk.h
@@ -25,8 +25,8 @@
#ifndef HW_PCSPK_H
#define HW_PCSPK_H
-#include "hw/hw.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
#define TYPE_PC_SPEAKER "isa-pcspk"
diff --git a/include/hw/audio/wm8750.h b/include/hw/audio/wm8750.h
index e12cb88..f7bafd5 100644
--- a/include/hw/audio/wm8750.h
+++ b/include/hw/audio/wm8750.h
@@ -14,7 +14,6 @@
#ifndef HW_DAC_WM8750_H
#define HW_DAC_WM8750_H
-#include "hw/hw.h"
#define TYPE_WM8750 "wm8750"
#define TYPE_MV88W8618_AUDIO "mv88w8618_audio"
diff --git a/include/hw/block/fdc.h b/include/hw/block/fdc.h
index 8cece84..c15ff4c 100644
--- a/include/hw/block/fdc.h
+++ b/include/hw/block/fdc.h
@@ -1,6 +1,7 @@
#ifndef HW_FDC_H
#define HW_FDC_H
+#include "exec/hwaddr.h"
#include "qapi/qapi-types-block.h"
/* fdc.c */
diff --git a/include/hw/block/flash.h b/include/hw/block/flash.h
index 1acaf7d..2136a2d 100644
--- a/include/hw/block/flash.h
+++ b/include/hw/block/flash.h
@@ -3,7 +3,7 @@
/* NOR flash devices */
-#include "exec/memory.h"
+#include "exec/hwaddr.h"
/* pflash_cfi01.c */
diff --git a/include/hw/boards.h b/include/hw/boards.h
index a71d1a5..739d109 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -3,9 +3,9 @@
#ifndef HW_BOARDS_H
#define HW_BOARDS_H
+#include "exec/memory.h"
#include "sysemu/blockdev.h"
#include "sysemu/accel.h"
-#include "hw/qdev.h"
#include "qapi/qapi-types-machine.h"
#include "qemu/module.h"
#include "qom/object.h"
@@ -86,7 +86,7 @@ void machine_class_allow_dynamic_sysbus_dev(MachineClass *mc, const char *type);
* @props - CPU object properties, initialized by board
* #vcpus_count - number of threads provided by @cpu object
*/
-typedef struct {
+typedef struct CPUArchId {
uint64_t arch_id;
int64_t vcpus_count;
CpuInstanceProperties props;
diff --git a/include/hw/bt.h b/include/hw/bt.h
index b5e11d4..d9ee2fc 100644
--- a/include/hw/bt.h
+++ b/include/hw/bt.h
@@ -26,7 +26,6 @@
#ifndef HW_BT_H
#define HW_BT_H
-#include "hw/irq.h"
/* BD Address */
typedef struct {
diff --git a/include/hw/char/cadence_uart.h b/include/hw/char/cadence_uart.h
index e1cf33e..47cec95 100644
--- a/include/hw/char/cadence_uart.h
+++ b/include/hw/char/cadence_uart.h
@@ -19,6 +19,7 @@
#ifndef CADENCE_UART_H
#define CADENCE_UART_H
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "chardev/char-fe.h"
#include "qemu/timer.h"
diff --git a/include/hw/char/cmsdk-apb-uart.h b/include/hw/char/cmsdk-apb-uart.h
index c41fba9..3c1b53d 100644
--- a/include/hw/char/cmsdk-apb-uart.h
+++ b/include/hw/char/cmsdk-apb-uart.h
@@ -12,6 +12,7 @@
#ifndef CMSDK_APB_UART_H
#define CMSDK_APB_UART_H
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "chardev/char-fe.h"
diff --git a/include/hw/char/escc.h b/include/hw/char/escc.h
index 42aca83..d5196c5 100644
--- a/include/hw/char/escc.h
+++ b/include/hw/char/escc.h
@@ -3,6 +3,7 @@
#include "chardev/char-fe.h"
#include "chardev/char-serial.h"
+#include "hw/sysbus.h"
#include "ui/input.h"
/* escc.c */
diff --git a/include/hw/char/lm32_juart.h b/include/hw/char/lm32_juart.h
index e7c6fb5..6fce278 100644
--- a/include/hw/char/lm32_juart.h
+++ b/include/hw/char/lm32_juart.h
@@ -1,7 +1,7 @@
#ifndef QEMU_HW_CHAR_LM32_JUART_H
#define QEMU_HW_CHAR_LM32_JUART_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#define TYPE_LM32_JUART "lm32-juart"
diff --git a/include/hw/char/parallel.h b/include/hw/char/parallel.h
index d6dd62f..0a23c0f 100644
--- a/include/hw/char/parallel.h
+++ b/include/hw/char/parallel.h
@@ -1,7 +1,6 @@
#ifndef HW_PARALLEL_H
#define HW_PARALLEL_H
-#include "exec/memory.h"
#include "hw/isa/isa.h"
#include "chardev/char.h"
diff --git a/include/hw/char/pl011.h b/include/hw/char/pl011.h
index dad3cf2..1418716 100644
--- a/include/hw/char/pl011.h
+++ b/include/hw/char/pl011.h
@@ -15,6 +15,7 @@
#ifndef HW_PL011_H
#define HW_PL011_H
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "chardev/char-fe.h"
diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h
index abd5cf7..8be3d8a 100644
--- a/include/hw/char/serial.h
+++ b/include/hw/char/serial.h
@@ -26,8 +26,6 @@
#ifndef HW_SERIAL_H
#define HW_SERIAL_H
-#include "hw/hw.h"
-#include "sysemu/sysemu.h"
#include "chardev/char-fe.h"
#include "exec/memory.h"
#include "qemu/fifo8.h"
diff --git a/include/hw/char/stm32f2xx_usart.h b/include/hw/char/stm32f2xx_usart.h
index 84c4029..8e11267 100644
--- a/include/hw/char/stm32f2xx_usart.h
+++ b/include/hw/char/stm32f2xx_usart.h
@@ -27,7 +27,6 @@
#include "hw/sysbus.h"
#include "chardev/char-fe.h"
-#include "hw/hw.h"
#define USART_SR 0x00
#define USART_DR 0x04
diff --git a/include/hw/char/xilinx_uartlite.h b/include/hw/char/xilinx_uartlite.h
index 634086b..194e2fe 100644
--- a/include/hw/char/xilinx_uartlite.h
+++ b/include/hw/char/xilinx_uartlite.h
@@ -15,6 +15,9 @@
#ifndef XILINX_UARTLITE_H
#define XILINX_UARTLITE_H
+#include "hw/qdev-properties.h"
+#include "hw/sysbus.h"
+
static inline DeviceState *xilinx_uartlite_create(hwaddr addr,
qemu_irq irq,
Chardev *chr)
diff --git a/include/hw/core/generic-loader.h b/include/hw/core/generic-loader.h
index dd27c42..9ffce1c 100644
--- a/include/hw/core/generic-loader.h
+++ b/include/hw/core/generic-loader.h
@@ -19,6 +19,7 @@
#define GENERIC_LOADER_H
#include "elf.h"
+#include "hw/qdev-core.h"
typedef struct GenericLoaderState {
/* <private> */
diff --git a/include/hw/core/split-irq.h b/include/hw/core/split-irq.h
index bb87157..872a39a 100644
--- a/include/hw/core/split-irq.h
+++ b/include/hw/core/split-irq.h
@@ -35,7 +35,6 @@
#ifndef HW_SPLIT_IRQ_H
#define HW_SPLIT_IRQ_H
-#include "hw/irq.h"
#include "hw/sysbus.h"
#include "qom/object.h"
diff --git a/include/hw/cpu/cluster.h b/include/hw/cpu/cluster.h
index 01c1e50..a616501 100644
--- a/include/hw/cpu/cluster.h
+++ b/include/hw/cpu/cluster.h
@@ -20,7 +20,7 @@
#ifndef HW_CPU_CLUSTER_H
#define HW_CPU_CLUSTER_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
/*
* CPU Cluster type
diff --git a/include/hw/cpu/core.h b/include/hw/cpu/core.h
index b747064..555ad83 100644
--- a/include/hw/cpu/core.h
+++ b/include/hw/cpu/core.h
@@ -9,7 +9,7 @@
#ifndef HW_CPU_CORE_H
#define HW_CPU_CORE_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#define TYPE_CPU_CORE "cpu-core"
diff --git a/include/hw/cris/etraxfs.h b/include/hw/cris/etraxfs.h
index 8da965a..aa146a2 100644
--- a/include/hw/cris/etraxfs.h
+++ b/include/hw/cris/etraxfs.h
@@ -27,6 +27,8 @@
#include "net/net.h"
#include "hw/cris/etraxfs_dma.h"
+#include "hw/qdev-properties.h"
+#include "hw/sysbus.h"
/* Instantiate an ETRAXFS Ethernet MAC. */
static inline DeviceState *
diff --git a/include/hw/cris/etraxfs_dma.h b/include/hw/cris/etraxfs_dma.h
index f6f33e0..095d76b 100644
--- a/include/hw/cris/etraxfs_dma.h
+++ b/include/hw/cris/etraxfs_dma.h
@@ -1,6 +1,8 @@
#ifndef HW_ETRAXFS_DMA_H
#define HW_ETRAXFS_DMA_H
+#include "exec/hwaddr.h"
+
struct dma_context_metadata {
/* data descriptor md */
uint16_t metadata;
diff --git a/include/hw/display/blizzard.h b/include/hw/display/blizzard.h
index ef72bbc..5b33018 100644
--- a/include/hw/display/blizzard.h
+++ b/include/hw/display/blizzard.h
@@ -11,7 +11,6 @@
#ifndef HW_DISPLAY_BLIZZARD_H
#define HW_DISPLAY_BLIZZARD_H
-#include "hw/irq.h"
void *s1d13745_init(qemu_irq gpio_int);
void s1d13745_write(void *opaque, int dc, uint16_t value);
diff --git a/include/hw/display/edid.h b/include/hw/display/edid.h
index 7948bd2..ff99dc0 100644
--- a/include/hw/display/edid.h
+++ b/include/hw/display/edid.h
@@ -1,7 +1,7 @@
#ifndef EDID_H
#define EDID_H
-#include "hw/hw.h"
+#include "qom/object.h"
typedef struct qemu_edid_info {
const char *vendor; /* http://www.uefi.org/pnp_id_list */
diff --git a/include/hw/display/i2c-ddc.h b/include/hw/display/i2c-ddc.h
index c29443c..1cf53a0 100644
--- a/include/hw/display/i2c-ddc.h
+++ b/include/hw/display/i2c-ddc.h
@@ -20,6 +20,7 @@
#define I2C_DDC_H
#include "hw/display/edid.h"
+#include "hw/i2c/i2c.h"
/* A simple I2C slave which just returns the contents of its EDID blob. */
struct I2CDDCState {
diff --git a/include/hw/display/milkymist_tmu2.h b/include/hw/display/milkymist_tmu2.h
index 148a119..e3394ff 100644
--- a/include/hw/display/milkymist_tmu2.h
+++ b/include/hw/display/milkymist_tmu2.h
@@ -27,7 +27,8 @@
#ifndef HW_DISPLAY_MILKYMIST_TMU2_H
#define HW_DISPLAY_MILKYMIST_TMU2_H
-#include "hw/qdev.h"
+#include "exec/hwaddr.h"
+#include "hw/qdev-core.h"
#if defined(CONFIG_X11) && defined(CONFIG_OPENGL)
DeviceState *milkymist_tmu2_create(hwaddr base, qemu_irq irq);
diff --git a/include/hw/display/tc6393xb.h b/include/hw/display/tc6393xb.h
index 5c4da91..f9263bf 100644
--- a/include/hw/display/tc6393xb.h
+++ b/include/hw/display/tc6393xb.h
@@ -12,9 +12,6 @@
#ifndef HW_DISPLAY_TC6393XB_H
#define HW_DISPLAY_TC6393XB_H
-#include "exec/memory.h"
-#include "hw/irq.h"
-
typedef struct TC6393xbState TC6393xbState;
TC6393xbState *tc6393xb_init(struct MemoryRegion *sysmem,
diff --git a/include/hw/display/vga.h b/include/hw/display/vga.h
index 0401a3a..ca0003d 100644
--- a/include/hw/display/vga.h
+++ b/include/hw/display/vga.h
@@ -9,7 +9,7 @@
#ifndef QEMU_HW_DISPLAY_VGA_H
#define QEMU_HW_DISPLAY_VGA_H
-#include "exec/memory.h"
+#include "exec/hwaddr.h"
enum vga_retrace_method {
VGA_RETRACE_DUMB,
diff --git a/include/hw/dma/i8257.h b/include/hw/dma/i8257.h
index 2cab50b..03e2c16 100644
--- a/include/hw/dma/i8257.h
+++ b/include/hw/dma/i8257.h
@@ -1,7 +1,6 @@
#ifndef HW_I8257_H
#define HW_I8257_H
-#include "hw/hw.h"
#include "hw/isa/isa.h"
#include "exec/ioport.h"
diff --git a/include/hw/empty_slot.h b/include/hw/empty_slot.h
index 123a9f8..cb9a221 100644
--- a/include/hw/empty_slot.h
+++ b/include/hw/empty_slot.h
@@ -1,6 +1,8 @@
#ifndef HW_EMPTY_SLOT_H
#define HW_EMPTY_SLOT_H
+#include "exec/hwaddr.h"
+
/* empty_slot.c */
void empty_slot_init(hwaddr addr, uint64_t slot_size);
diff --git a/include/hw/gpio/bcm2835_gpio.h b/include/hw/gpio/bcm2835_gpio.h
index 9f8e0c7..b0de0a3 100644
--- a/include/hw/gpio/bcm2835_gpio.h
+++ b/include/hw/gpio/bcm2835_gpio.h
@@ -15,6 +15,7 @@
#define BCM2835_GPIO_H
#include "hw/sd/sd.h"
+#include "hw/sysbus.h"
typedef struct BCM2835GpioState {
SysBusDevice parent_obj;
diff --git a/include/hw/hw.h b/include/hw/hw.h
index b1b7996..fc5301f 100644
--- a/include/hw/hw.h
+++ b/include/hw/hw.h
@@ -1,4 +1,3 @@
-/* Declarations for use by hardware emulation. */
#ifndef QEMU_HW_H
#define QEMU_HW_H
@@ -6,14 +5,6 @@
#error Cannot include hw/hw.h from user emulation
#endif
-#include "exec/cpu-common.h"
-#include "qom/object.h"
-#include "exec/memory.h"
-#include "hw/irq.h"
-#include "migration/vmstate.h"
-#include "migration/qemu-file-types.h"
-#include "sysemu/reset.h"
-
void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
#endif
diff --git a/include/hw/i2c/aspeed_i2c.h b/include/hw/i2c/aspeed_i2c.h
index f9020ac..a2753f0 100644
--- a/include/hw/i2c/aspeed_i2c.h
+++ b/include/hw/i2c/aspeed_i2c.h
@@ -17,10 +17,12 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+
#ifndef ASPEED_I2C_H
#define ASPEED_I2C_H
#include "hw/i2c/i2c.h"
+#include "hw/sysbus.h"
#define TYPE_ASPEED_I2C "aspeed.i2c"
#define ASPEED_I2C(obj) \
diff --git a/include/hw/i2c/i2c.h b/include/hw/i2c/i2c.h
index 75c5bd6..4117211 100644
--- a/include/hw/i2c/i2c.h
+++ b/include/hw/i2c/i2c.h
@@ -1,7 +1,7 @@
#ifndef QEMU_I2C_H
#define QEMU_I2C_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
/* The QEMU I2C implementation only supports simple transfers that complete
immediately. It does not support slave devices that need to be able to
diff --git a/include/hw/i2c/pm_smbus.h b/include/hw/i2c/pm_smbus.h
index fb55c44..0d74207 100644
--- a/include/hw/i2c/pm_smbus.h
+++ b/include/hw/i2c/pm_smbus.h
@@ -1,6 +1,7 @@
#ifndef PM_SMBUS_H
#define PM_SMBUS_H
+#include "exec/memory.h"
#include "hw/i2c/smbus_master.h"
#define PM_SMBUS_MAX_MSG_SIZE 32
diff --git a/include/hw/i2c/smbus_eeprom.h b/include/hw/i2c/smbus_eeprom.h
index 0f96836..15e2151 100644
--- a/include/hw/i2c/smbus_eeprom.h
+++ b/include/hw/i2c/smbus_eeprom.h
@@ -23,6 +23,7 @@
#ifndef HW_SMBUS_EEPROM_H
#define HW_SMBUS_EEPROM_H
+#include "exec/cpu-common.h"
#include "hw/i2c/i2c.h"
void smbus_eeprom_init_one(I2CBus *bus, uint8_t address, uint8_t *eeprom_buf);
diff --git a/include/hw/i386/apic_internal.h b/include/hw/i386/apic_internal.h
index 1209eb4..b04bdd9 100644
--- a/include/hw/i386/apic_internal.h
+++ b/include/hw/i386/apic_internal.h
@@ -24,6 +24,7 @@
#include "cpu.h"
#include "exec/memory.h"
#include "qemu/timer.h"
+#include "target/i386/cpu-qom.h"
/* APIC Local Vector Table */
#define APIC_LVT_TIMER 0
diff --git a/include/hw/i386/ich9.h b/include/hw/i386/ich9.h
index 046bcf3..72e803f 100644
--- a/include/hw/i386/ich9.h
+++ b/include/hw/i386/ich9.h
@@ -1,7 +1,6 @@
#ifndef HW_ICH9_H
#define HW_ICH9_H
-#include "hw/hw.h"
#include "hw/isa/isa.h"
#include "hw/sysbus.h"
#include "hw/i386/pc.h"
diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h
index 12f3d26..66b931e 100644
--- a/include/hw/i386/intel_iommu.h
+++ b/include/hw/i386/intel_iommu.h
@@ -21,7 +21,7 @@
#ifndef INTEL_IOMMU_H
#define INTEL_IOMMU_H
-#include "hw/qdev.h"
+
#include "sysemu/dma.h"
#include "hw/i386/x86-iommu.h"
#include "hw/i386/ioapic.h"
diff --git a/include/hw/i386/ioapic_internal.h b/include/hw/i386/ioapic_internal.h
index 07002f9..d46c87c 100644
--- a/include/hw/i386/ioapic_internal.h
+++ b/include/hw/i386/ioapic_internal.h
@@ -22,8 +22,8 @@
#ifndef QEMU_IOAPIC_INTERNAL_H
#define QEMU_IOAPIC_INTERNAL_H
-#include "hw/hw.h"
#include "exec/memory.h"
+#include "hw/i386/ioapic.h"
#include "hw/sysbus.h"
#include "qemu/notify.h"
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 859b64c..4bb9e29 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -12,7 +12,6 @@
#include "qemu/range.h"
#include "qemu/bitmap.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
#include "hw/pci/pci.h"
#include "hw/mem/pc-dimm.h"
#include "hw/mem/nvdimm.h"
diff --git a/include/hw/ide/internal.h b/include/hw/ide/internal.h
index 8efd031..52ec197 100644
--- a/include/hw/ide/internal.h
+++ b/include/hw/ide/internal.h
@@ -6,10 +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/input/adb.h b/include/hw/input/adb.h
index f99d478..b7b32e2 100644
--- a/include/hw/input/adb.h
+++ b/include/hw/input/adb.h
@@ -26,7 +26,7 @@
#ifndef ADB_H
#define ADB_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#define MAX_ADB_DEVICES 16
diff --git a/include/hw/input/gamepad.h b/include/hw/input/gamepad.h
index e20211b..6f6aa24 100644
--- a/include/hw/input/gamepad.h
+++ b/include/hw/input/gamepad.h
@@ -11,7 +11,6 @@
#ifndef HW_INPUT_GAMEPAD_H
#define HW_INPUT_GAMEPAD_H
-#include "hw/irq.h"
/* stellaris_input.c */
void stellaris_gamepad_init(int n, qemu_irq *irq, const int *keycode);
diff --git a/include/hw/input/hid.h b/include/hw/input/hid.h
index 2127c7c..6a9d7bf 100644
--- a/include/hw/input/hid.h
+++ b/include/hw/input/hid.h
@@ -1,7 +1,6 @@
#ifndef QEMU_HID_H
#define QEMU_HID_H
-#include "migration/vmstate.h"
#include "ui/input.h"
#define HID_MOUSE 1
diff --git a/include/hw/input/i8042.h b/include/hw/input/i8042.h
index f6ff146..246e6f3 100644
--- a/include/hw/input/i8042.h
+++ b/include/hw/input/i8042.h
@@ -8,7 +8,6 @@
#ifndef HW_INPUT_I8042_H
#define HW_INPUT_I8042_H
-#include "hw/hw.h"
#include "hw/isa/isa.h"
#define TYPE_I8042 "i8042"
diff --git a/include/hw/input/tsc2xxx.h b/include/hw/input/tsc2xxx.h
index dbfe5c5..3cd8f1b 100644
--- a/include/hw/input/tsc2xxx.h
+++ b/include/hw/input/tsc2xxx.h
@@ -11,7 +11,6 @@
#ifndef HW_INPUT_TSC2XXX_H
#define HW_INPUT_TSC2XXX_H
-#include "hw/irq.h"
#include "ui/console.h"
typedef struct uWireSlave {
diff --git a/include/hw/intc/allwinner-a10-pic.h b/include/hw/intc/allwinner-a10-pic.h
index 1d314a7..a589540 100644
--- a/include/hw/intc/allwinner-a10-pic.h
+++ b/include/hw/intc/allwinner-a10-pic.h
@@ -1,6 +1,8 @@
#ifndef ALLWINNER_A10_PIC_H
#define ALLWINNER_A10_PIC_H
+#include "hw/sysbus.h"
+
#define TYPE_AW_A10_PIC "allwinner-a10-pic"
#define AW_A10_PIC(obj) OBJECT_CHECK(AwA10PICState, (obj), TYPE_AW_A10_PIC)
diff --git a/include/hw/intc/heathrow_pic.h b/include/hw/intc/heathrow_pic.h
index 6c91ec9..b163e27 100644
--- a/include/hw/intc/heathrow_pic.h
+++ b/include/hw/intc/heathrow_pic.h
@@ -26,6 +26,8 @@
#ifndef HW_INTC_HEATHROW_PIC_H
#define HW_INTC_HEATHROW_PIC_H
+#include "hw/sysbus.h"
+
#define TYPE_HEATHROW "heathrow"
#define HEATHROW(obj) OBJECT_CHECK(HeathrowState, (obj), TYPE_HEATHROW)
diff --git a/include/hw/intc/mips_gic.h b/include/hw/intc/mips_gic.h
index 902a12b..8428287 100644
--- a/include/hw/intc/mips_gic.h
+++ b/include/hw/intc/mips_gic.h
@@ -13,6 +13,7 @@
#include "qemu/units.h"
#include "hw/timer/mips_gictimer.h"
+#include "hw/sysbus.h"
#include "cpu.h"
/*
* GIC Specific definitions
diff --git a/include/hw/ipack/ipack.h b/include/hw/ipack/ipack.h
index e33e032..1c07969 100644
--- a/include/hw/ipack/ipack.h
+++ b/include/hw/ipack/ipack.h
@@ -11,7 +11,7 @@
#ifndef QEMU_IPACK_H
#define QEMU_IPACK_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
typedef struct IPackBus IPackBus;
diff --git a/include/hw/ipmi/ipmi.h b/include/hw/ipmi/ipmi.h
index 011faf2..70871da 100644
--- a/include/hw/ipmi/ipmi.h
+++ b/include/hw/ipmi/ipmi.h
@@ -26,7 +26,7 @@
#define HW_IPMI_H
#include "exec/memory.h"
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#define MAX_IPMI_MSG_SIZE 300
diff --git a/include/hw/irq.h b/include/hw/irq.h
index 7a40e3e..fe527f6 100644
--- a/include/hw/irq.h
+++ b/include/hw/irq.h
@@ -5,10 +5,6 @@
#define TYPE_IRQ "irq"
-typedef struct IRQState *qemu_irq;
-
-typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
-
void qemu_set_irq(qemu_irq irq, int level);
static inline void qemu_irq_raise(qemu_irq irq)
diff --git a/include/hw/isa/apm.h b/include/hw/isa/apm.h
index 0f93602..b6e070c 100644
--- a/include/hw/isa/apm.h
+++ b/include/hw/isa/apm.h
@@ -1,7 +1,6 @@
#ifndef APM_H
#define APM_H
-#include "hw/hw.h"
#include "exec/memory.h"
#define APM_CNT_IOPORT 0xb2
diff --git a/include/hw/isa/i8259_internal.h b/include/hw/isa/i8259_internal.h
index f742c2a..ee189e4 100644
--- a/include/hw/isa/i8259_internal.h
+++ b/include/hw/isa/i8259_internal.h
@@ -25,7 +25,6 @@
#ifndef QEMU_I8259_INTERNAL_H
#define QEMU_I8259_INTERNAL_H
-#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "hw/isa/isa.h"
#include "hw/intc/intc.h"
diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
index e62ac91..018ada4 100644
--- a/include/hw/isa/isa.h
+++ b/include/hw/isa/isa.h
@@ -5,7 +5,7 @@
#include "exec/memory.h"
#include "exec/ioport.h"
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#define ISA_NUM_IRQS 16
diff --git a/include/hw/isa/vt82c686.h b/include/hw/isa/vt82c686.h
index c3c2b6e..f23f45d 100644
--- a/include/hw/isa/vt82c686.h
+++ b/include/hw/isa/vt82c686.h
@@ -1,6 +1,7 @@
#ifndef HW_VT82C686_H
#define HW_VT82C686_H
+
#define TYPE_VT82C686B_SUPERIO "vt82c686b-superio"
/* vt82c686.c */
diff --git a/include/hw/mem/memory-device.h b/include/hw/mem/memory-device.h
index 0293a96..04476ac 100644
--- a/include/hw/mem/memory-device.h
+++ b/include/hw/mem/memory-device.h
@@ -13,8 +13,9 @@
#ifndef MEMORY_DEVICE_H
#define MEMORY_DEVICE_H
+#include "hw/qdev-core.h"
+#include "qapi/qapi-types-misc.h"
#include "qom/object.h"
-#include "hw/qdev.h"
#define TYPE_MEMORY_DEVICE "memory-device"
diff --git a/include/hw/mem/pc-dimm.h b/include/hw/mem/pc-dimm.h
index 01436b9..289edc0 100644
--- a/include/hw/mem/pc-dimm.h
+++ b/include/hw/mem/pc-dimm.h
@@ -17,9 +17,7 @@
#define QEMU_PC_DIMM_H
#include "exec/memory.h"
-#include "sysemu/hostmem.h"
-#include "hw/qdev.h"
-#include "hw/boards.h"
+#include "hw/qdev-core.h"
#define TYPE_PC_DIMM "pc-dimm"
#define PC_DIMM(obj) \
diff --git a/include/hw/mips/cps.h b/include/hw/mips/cps.h
index aab1af9..a941c55 100644
--- a/include/hw/mips/cps.h
+++ b/include/hw/mips/cps.h
@@ -25,6 +25,7 @@
#include "hw/intc/mips_gic.h"
#include "hw/misc/mips_cpc.h"
#include "hw/misc/mips_itu.h"
+#include "target/mips/cpu.h"
#define TYPE_MIPS_CPS "mips-cps"
#define MIPS_CPS(obj) OBJECT_CHECK(MIPSCPSState, (obj), TYPE_MIPS_CPS)
diff --git a/include/hw/mips/mips.h b/include/hw/mips/mips.h
index 2f6774d..0af4c3d 100644
--- a/include/hw/mips/mips.h
+++ b/include/hw/mips/mips.h
@@ -6,7 +6,6 @@
#define INITRD_PAGE_MASK (~((1 << 16) - 1))
#include "exec/memory.h"
-#include "hw/irq.h"
/* gt64xxx.c */
PCIBus *gt64120_register(qemu_irq *pic);
diff --git a/include/hw/misc/auxbus.h b/include/hw/misc/auxbus.h
index c15b444..a539a98 100644
--- a/include/hw/misc/auxbus.h
+++ b/include/hw/misc/auxbus.h
@@ -25,7 +25,8 @@
#ifndef HW_MISC_AUXBUS_H
#define HW_MISC_AUXBUS_H
-#include "hw/qdev.h"
+#include "exec/memory.h"
+#include "hw/qdev-core.h"
typedef struct AUXBus AUXBus;
typedef struct AUXSlave AUXSlave;
diff --git a/include/hw/misc/cbus.h b/include/hw/misc/cbus.h
index c899943..5334984 100644
--- a/include/hw/misc/cbus.h
+++ b/include/hw/misc/cbus.h
@@ -13,7 +13,6 @@
#ifndef HW_MISC_CBUS_H
#define HW_MISC_CBUS_H
-#include "hw/irq.h"
typedef struct {
qemu_irq clk;
diff --git a/include/hw/misc/macio/cuda.h b/include/hw/misc/macio/cuda.h
index 7dad469..5768075 100644
--- a/include/hw/misc/macio/cuda.h
+++ b/include/hw/misc/macio/cuda.h
@@ -26,6 +26,8 @@
#ifndef CUDA_H
#define CUDA_H
+#include "hw/misc/mos6522.h"
+
/* CUDA commands (2nd byte) */
#define CUDA_WARM_START 0x0
#define CUDA_AUTOPOLL 0x1
diff --git a/include/hw/misc/macio/gpio.h b/include/hw/misc/macio/gpio.h
index 2838ae5..24a4364 100644
--- a/include/hw/misc/macio/gpio.h
+++ b/include/hw/misc/macio/gpio.h
@@ -26,6 +26,9 @@
#ifndef MACIO_GPIO_H
#define MACIO_GPIO_H
+#include "hw/ppc/openpic.h"
+#include "hw/sysbus.h"
+
#define TYPE_MACIO_GPIO "macio-gpio"
#define MACIO_GPIO(obj) OBJECT_CHECK(MacIOGPIOState, (obj), TYPE_MACIO_GPIO)
diff --git a/include/hw/misc/macio/macio.h b/include/hw/misc/macio/macio.h
index 970058b..070a694 100644
--- a/include/hw/misc/macio/macio.h
+++ b/include/hw/misc/macio/macio.h
@@ -27,10 +27,12 @@
#define MACIO_H
#include "hw/char/escc.h"
+#include "hw/ide/internal.h"
#include "hw/intc/heathrow_pic.h"
#include "hw/misc/macio/cuda.h"
#include "hw/misc/macio/gpio.h"
#include "hw/misc/macio/pmu.h"
+#include "hw/ppc/mac.h"
#include "hw/ppc/mac_dbdma.h"
#include "hw/ppc/openpic.h"
diff --git a/include/hw/misc/macio/pmu.h b/include/hw/misc/macio/pmu.h
index d10895b..7ef83de 100644
--- a/include/hw/misc/macio/pmu.h
+++ b/include/hw/misc/macio/pmu.h
@@ -10,6 +10,9 @@
#ifndef PMU_H
#define PMU_H
+#include "hw/misc/mos6522.h"
+#include "hw/misc/macio/gpio.h"
+
/*
* PMU commands
*/
diff --git a/include/hw/misc/mips_cmgcr.h b/include/hw/misc/mips_cmgcr.h
index c9dfcb4..3e6e223 100644
--- a/include/hw/misc/mips_cmgcr.h
+++ b/include/hw/misc/mips_cmgcr.h
@@ -10,6 +10,8 @@
#ifndef MIPS_CMGCR_H
#define MIPS_CMGCR_H
+#include "hw/sysbus.h"
+
#define TYPE_MIPS_GCR "mips-gcr"
#define MIPS_GCR(obj) OBJECT_CHECK(MIPSGCRState, (obj), TYPE_MIPS_GCR)
diff --git a/include/hw/misc/mips_cpc.h b/include/hw/misc/mips_cpc.h
index 72c834e..3f67057 100644
--- a/include/hw/misc/mips_cpc.h
+++ b/include/hw/misc/mips_cpc.h
@@ -20,6 +20,8 @@
#ifndef MIPS_CPC_H
#define MIPS_CPC_H
+#include "hw/sysbus.h"
+
#define CPC_ADDRSPACE_SZ 0x6000
/* CPC blocks offsets relative to base address */
diff --git a/include/hw/misc/mos6522.h b/include/hw/misc/mos6522.h
index 03d9f0c..493c907 100644
--- a/include/hw/misc/mos6522.h
+++ b/include/hw/misc/mos6522.h
@@ -29,7 +29,6 @@
#include "exec/memory.h"
#include "hw/sysbus.h"
-#include "hw/ide/internal.h"
#include "hw/input/adb.h"
/* Bits in ACR */
diff --git a/include/hw/misc/pvpanic.h b/include/hw/misc/pvpanic.h
index 1ee071a..ae0c818 100644
--- a/include/hw/misc/pvpanic.h
+++ b/include/hw/misc/pvpanic.h
@@ -11,9 +11,12 @@
* See the COPYING file in the top-level directory.
*
*/
+
#ifndef HW_MISC_PVPANIC_H
#define HW_MISC_PVPANIC_H
+#include "qom/object.h"
+
#define TYPE_PVPANIC "pvpanic"
#define PVPANIC_IOPORT_PROP "ioport"
diff --git a/include/hw/misc/stm32f2xx_syscfg.h b/include/hw/misc/stm32f2xx_syscfg.h
index 69e6a30..84e06fd 100644
--- a/include/hw/misc/stm32f2xx_syscfg.h
+++ b/include/hw/misc/stm32f2xx_syscfg.h
@@ -26,7 +26,6 @@
#define HW_STM32F2XX_SYSCFG_H
#include "hw/sysbus.h"
-#include "hw/hw.h"
#define SYSCFG_MEMRMP 0x00
#define SYSCFG_PMC 0x04
diff --git a/include/hw/misc/unimp.h b/include/hw/misc/unimp.h
index 2a291ca..44d87be 100644
--- a/include/hw/misc/unimp.h
+++ b/include/hw/misc/unimp.h
@@ -8,6 +8,7 @@
#ifndef HW_MISC_UNIMP_H
#define HW_MISC_UNIMP_H
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#define TYPE_UNIMPLEMENTED_DEVICE "unimplemented-device"
diff --git a/include/hw/misc/vmcoreinfo.h b/include/hw/misc/vmcoreinfo.h
index 0d11578..d4f3d3a 100644
--- a/include/hw/misc/vmcoreinfo.h
+++ b/include/hw/misc/vmcoreinfo.h
@@ -12,7 +12,7 @@
#ifndef VMCOREINFO_H
#define VMCOREINFO_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#include "standard-headers/linux/qemu_fw_cfg.h"
#define VMCOREINFO_DEVICE "vmcoreinfo"
diff --git a/include/hw/net/allwinner_emac.h b/include/hw/net/allwinner_emac.h
index 905a43d..5013207 100644
--- a/include/hw/net/allwinner_emac.h
+++ b/include/hw/net/allwinner_emac.h
@@ -27,6 +27,7 @@
#include "net/net.h"
#include "qemu/fifo8.h"
#include "hw/net/mii.h"
+#include "hw/sysbus.h"
#define TYPE_AW_EMAC "allwinner-emac"
#define AW_EMAC(obj) OBJECT_CHECK(AwEmacState, (obj), TYPE_AW_EMAC)
diff --git a/include/hw/net/lan9118.h b/include/hw/net/lan9118.h
index 500acb4..3d0c67f 100644
--- a/include/hw/net/lan9118.h
+++ b/include/hw/net/lan9118.h
@@ -11,7 +11,6 @@
#ifndef HW_NET_LAN9118_H
#define HW_NET_LAN9118_H
-#include "hw/irq.h"
#include "net/net.h"
#define TYPE_LAN9118 "lan9118"
diff --git a/include/hw/net/lance.h b/include/hw/net/lance.h
index ffdd35c..0357f5f 100644
--- a/include/hw/net/lance.h
+++ b/include/hw/net/lance.h
@@ -31,6 +31,7 @@
#include "net/net.h"
#include "hw/net/pcnet.h"
+#include "hw/sysbus.h"
#define TYPE_LANCE "lance"
#define SYSBUS_PCNET(obj) \
diff --git a/include/hw/net/ne2000-isa.h b/include/hw/net/ne2000-isa.h
index 5acf4a4..eef17a6 100644
--- a/include/hw/net/ne2000-isa.h
+++ b/include/hw/net/ne2000-isa.h
@@ -10,9 +10,8 @@
#ifndef HW_NET_NE2000_ISA_H
#define HW_NET_NE2000_ISA_H
-#include "hw/hw.h"
-#include "hw/qdev.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
#include "net/net.h"
#define TYPE_ISA_NE2000 "ne2k_isa"
diff --git a/include/hw/net/smc91c111.h b/include/hw/net/smc91c111.h
index a66ba41..df5b11d 100644
--- a/include/hw/net/smc91c111.h
+++ b/include/hw/net/smc91c111.h
@@ -11,7 +11,6 @@
#ifndef HW_NET_SMC91C111_H
#define HW_NET_SMC91C111_H
-#include "hw/irq.h"
#include "net/net.h"
void smc91c111_init(NICInfo *, uint32_t, qemu_irq);
diff --git a/include/hw/nvram/chrp_nvram.h b/include/hw/nvram/chrp_nvram.h
index b4f5b2b..09941a9 100644
--- a/include/hw/nvram/chrp_nvram.h
+++ b/include/hw/nvram/chrp_nvram.h
@@ -18,6 +18,8 @@
#ifndef CHRP_NVRAM_H
#define CHRP_NVRAM_H
+#include "qemu/bswap.h"
+
/* OpenBIOS NVRAM partition */
typedef struct {
uint8_t signature;
diff --git a/include/hw/or-irq.h b/include/hw/or-irq.h
index 5a31e5a..3a3230d 100644
--- a/include/hw/or-irq.h
+++ b/include/hw/or-irq.h
@@ -25,7 +25,6 @@
#ifndef HW_OR_IRQ_H
#define HW_OR_IRQ_H
-#include "hw/irq.h"
#include "hw/sysbus.h"
#include "qom/object.h"
diff --git a/include/hw/pci-host/designware.h b/include/hw/pci-host/designware.h
index 186bb36..31c4123 100644
--- a/include/hw/pci-host/designware.h
+++ b/include/hw/pci-host/designware.h
@@ -21,7 +21,6 @@
#ifndef DESIGNWARE_H
#define DESIGNWARE_H
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bus.h"
diff --git a/include/hw/pci-host/gpex.h b/include/hw/pci-host/gpex.h
index 2af1c4a..faea040 100644
--- a/include/hw/pci-host/gpex.h
+++ b/include/hw/pci-host/gpex.h
@@ -20,7 +20,6 @@
#ifndef HW_GPEX_H
#define HW_GPEX_H
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "hw/pci/pci.h"
#include "hw/pci/pcie_host.h"
diff --git a/include/hw/pci-host/q35.h b/include/hw/pci-host/q35.h
index 5ed77fa..b3bcf2e 100644
--- a/include/hw/pci-host/q35.h
+++ b/include/hw/pci-host/q35.h
@@ -22,7 +22,6 @@
#ifndef HW_Q35_H
#define HW_Q35_H
-#include "hw/hw.h"
#include "hw/isa/isa.h"
#include "hw/sysbus.h"
#include "hw/i386/pc.h"
diff --git a/include/hw/pci-host/sabre.h b/include/hw/pci-host/sabre.h
index 9afa493..99b5aef 100644
--- a/include/hw/pci-host/sabre.h
+++ b/include/hw/pci-host/sabre.h
@@ -1,6 +1,8 @@
#ifndef HW_PCI_HOST_SABRE_H
#define HW_PCI_HOST_SABRE_H
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
#include "hw/sparc/sun4u_iommu.h"
#define MAX_IVEC 0x40
diff --git a/include/hw/pci-host/uninorth.h b/include/hw/pci-host/uninorth.h
index 0603245..72d2a97 100644
--- a/include/hw/pci-host/uninorth.h
+++ b/include/hw/pci-host/uninorth.h
@@ -25,8 +25,7 @@
#ifndef UNINORTH_H
#define UNINORTH_H
-#include "hw/hw.h"
-
+#include "hw/pci/pci_host.h"
#include "hw/ppc/openpic.h"
/* UniNorth version */
diff --git a/include/hw/pci-host/xilinx-pcie.h b/include/hw/pci-host/xilinx-pcie.h
index 74c04dc..c0f1531 100644
--- a/include/hw/pci-host/xilinx-pcie.h
+++ b/include/hw/pci-host/xilinx-pcie.h
@@ -20,7 +20,6 @@
#ifndef HW_XILINX_PCIE_H
#define HW_XILINX_PCIE_H
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bridge.h"
diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
index aaf1b9f..1b840e6 100644
--- a/include/hw/pci/pci.h
+++ b/include/hw/pci/pci.h
@@ -1,7 +1,6 @@
#ifndef QEMU_PCI_H
#define QEMU_PCI_H
-#include "hw/qdev.h"
#include "exec/memory.h"
#include "sysemu/dma.h"
diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h
index 8cf3361..7064875 100644
--- a/include/hw/pci/pcie.h
+++ b/include/hw/pci/pcie.h
@@ -21,7 +21,6 @@
#ifndef QEMU_PCIE_H
#define QEMU_PCIE_H
-#include "hw/hw.h"
#include "hw/pci/pci_regs.h"
#include "hw/pci/pcie_regs.h"
#include "hw/pci/pcie_aer.h"
diff --git a/include/hw/pci/pcie_aer.h b/include/hw/pci/pcie_aer.h
index 729a943..65e71d9 100644
--- a/include/hw/pci/pcie_aer.h
+++ b/include/hw/pci/pcie_aer.h
@@ -21,7 +21,7 @@
#ifndef QEMU_PCIE_AER_H
#define QEMU_PCIE_AER_H
-#include "hw/hw.h"
+#include "hw/pci/pci_regs.h"
/* definitions which PCIExpressDevice uses */
diff --git a/include/hw/pci/shpc.h b/include/hw/pci/shpc.h
index bd8204f..d5683b7 100644
--- a/include/hw/pci/shpc.h
+++ b/include/hw/pci/shpc.h
@@ -4,6 +4,7 @@
#include "exec/memory.h"
#include "hw/hotplug.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
struct SHPCDevice {
/* Capability offset in device's config space */
diff --git a/include/hw/pcmcia.h b/include/hw/pcmcia.h
index 1b40807..ebad7bc 100644
--- a/include/hw/pcmcia.h
+++ b/include/hw/pcmcia.h
@@ -3,7 +3,7 @@
/* PCMCIA/Cardbus */
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
typedef struct PCMCIASocket {
qemu_irq irq;
diff --git a/include/hw/ppc/openpic.h b/include/hw/ppc/openpic.h
index 7642a8e..ec16897 100644
--- a/include/hw/ppc/openpic.h
+++ b/include/hw/ppc/openpic.h
@@ -2,7 +2,6 @@
#define OPENPIC_H
#include "hw/sysbus.h"
-#include "hw/qdev-core.h"
#include "qom/cpu.h"
#define MAX_CPU 32
diff --git a/include/hw/ppc/pnv_core.h b/include/hw/ppc/pnv_core.h
index d092645..bfbd2ec 100644
--- a/include/hw/ppc/pnv_core.h
+++ b/include/hw/ppc/pnv_core.h
@@ -21,6 +21,7 @@
#define PPC_PNV_CORE_H
#include "hw/cpu/core.h"
+#include "target/ppc/cpu.h"
#define TYPE_PNV_CORE "powernv-cpu-core"
#define PNV_CORE(obj) \
diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h
index 39a7ba1..7d82259 100644
--- a/include/hw/ppc/ppc4xx.h
+++ b/include/hw/ppc/ppc4xx.h
@@ -25,6 +25,9 @@
#ifndef PPC4XX_H
#define PPC4XX_H
+#include "hw/ppc/ppc.h"
+#include "exec/memory.h"
+
/* PowerPC 4xx core initialization */
PowerPCCPU *ppc4xx_init(const char *cpu_model,
clk_setup_t *cpu_clk, clk_setup_t *tb_clk,
diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_core.h
index f9645a7..35e0a7e 100644
--- a/include/hw/ppc/spapr_cpu_core.h
+++ b/include/hw/ppc/spapr_cpu_core.h
@@ -9,8 +9,8 @@
#ifndef HW_SPAPR_CPU_CORE_H
#define HW_SPAPR_CPU_CORE_H
-#include "hw/qdev.h"
#include "hw/cpu/core.h"
+#include "hw/qdev-core.h"
#include "target/ppc/cpu-qom.h"
#include "target/ppc/cpu.h"
diff --git a/include/hw/ppc/spapr_drc.h b/include/hw/ppc/spapr_drc.h
index c2c543a..83f03cc 100644
--- a/include/hw/ppc/spapr_drc.h
+++ b/include/hw/ppc/spapr_drc.h
@@ -14,10 +14,9 @@
#define HW_SPAPR_DRC_H
#include <libfdt.h>
-#include "qapi/qapi-types-run-state.h"
#include "qom/object.h"
-#include "sysemu/sysemu.h"
-#include "hw/qdev.h"
+#include "sysemu/runstate.h"
+#include "hw/qdev-core.h"
#include "qapi/error.h"
#define TYPE_SPAPR_DR_CONNECTOR "spapr-dr-connector"
diff --git a/include/hw/ppc/spapr_irq.h b/include/hw/ppc/spapr_irq.h
index f965a58..8132e00 100644
--- a/include/hw/ppc/spapr_irq.h
+++ b/include/hw/ppc/spapr_irq.h
@@ -10,6 +10,8 @@
#ifndef HW_SPAPR_IRQ_H
#define HW_SPAPR_IRQ_H
+#include "target/ppc/cpu-qom.h"
+
/*
* IRQ range offsets per device type
*/
diff --git a/include/hw/ppc/spapr_ovec.h b/include/hw/ppc/spapr_ovec.h
index 5de5ecf..7891e9c 100644
--- a/include/hw/ppc/spapr_ovec.h
+++ b/include/hw/ppc/spapr_ovec.h
@@ -38,7 +38,6 @@
#define SPAPR_OVEC_H
#include "cpu.h"
-#include "migration/vmstate.h"
typedef struct SpaprOptionVector SpaprOptionVector;
diff --git a/include/hw/ppc/spapr_vio.h b/include/hw/ppc/spapr_vio.h
index 04609f2..875be28c 100644
--- a/include/hw/ppc/spapr_vio.h
+++ b/include/hw/ppc/spapr_vio.h
@@ -22,6 +22,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+#include "hw/ppc/spapr.h"
#include "sysemu/dma.h"
#define TYPE_VIO_SPAPR_DEVICE "vio-spapr-device"
diff --git a/include/hw/ppc/spapr_xive.h b/include/hw/ppc/spapr_xive.h
index 7197144..bfd40f0 100644
--- a/include/hw/ppc/spapr_xive.h
+++ b/include/hw/ppc/spapr_xive.h
@@ -10,6 +10,7 @@
#ifndef PPC_SPAPR_XIVE_H
#define PPC_SPAPR_XIVE_H
+#include "hw/ppc/spapr_irq.h"
#include "hw/ppc/xive.h"
#define TYPE_SPAPR_XIVE "spapr-xive"
diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
index 1eb7b5c..f2a8d6a 100644
--- a/include/hw/ppc/xics.h
+++ b/include/hw/ppc/xics.h
@@ -28,7 +28,8 @@
#ifndef XICS_H
#define XICS_H
-#include "hw/qdev.h"
+#include "exec/memory.h"
+#include "hw/qdev-core.h"
#define XICS_IPI 0x2
#define XICS_BUID 0x1
diff --git a/include/hw/ppc/xive.h b/include/hw/ppc/xive.h
index 7363351..9399c77 100644
--- a/include/hw/ppc/xive.h
+++ b/include/hw/ppc/xive.h
@@ -141,7 +141,6 @@
#define PPC_XIVE_H
#include "sysemu/kvm.h"
-#include "hw/qdev-core.h"
#include "hw/sysbus.h"
#include "hw/ppc/xive_regs.h"
diff --git a/include/hw/ppc/xive_regs.h b/include/hw/ppc/xive_regs.h
index 1a8c5b5..b0c68ab 100644
--- a/include/hw/ppc/xive_regs.h
+++ b/include/hw/ppc/xive_regs.h
@@ -16,6 +16,9 @@
#ifndef PPC_XIVE_REGS_H
#define PPC_XIVE_REGS_H
+#include "qemu/bswap.h"
+#include "qemu/host-utils.h"
+
/*
* Interrupt source number encoding on PowerBUS
*/
diff --git a/include/hw/ptimer.h b/include/hw/ptimer.h
index 2b86690..9c77055 100644
--- a/include/hw/ptimer.h
+++ b/include/hw/ptimer.h
@@ -9,7 +9,6 @@
#define PTIMER_H
#include "qemu/timer.h"
-#include "migration/vmstate.h"
/* The ptimer API implements a simple periodic countdown timer.
* The countdown timer has a value (which can be read and written via
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index 136df77..de70b7a 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -4,9 +4,7 @@
#include "qemu/queue.h"
#include "qemu/bitmap.h"
#include "qom/object.h"
-#include "hw/irq.h"
#include "hw/hotplug.h"
-#include "sysemu/sysemu.h"
enum {
DEV_NVECTORS_UNSPECIFIED = -1,
@@ -36,8 +34,6 @@ typedef void (*DeviceReset)(DeviceState *dev);
typedef void (*BusRealize)(BusState *bus, Error **errp);
typedef void (*BusUnrealize)(BusState *bus, Error **errp);
-struct VMStateDescription;
-
/**
* DeviceClass:
* @props: Properties accessing state fields.
@@ -113,7 +109,7 @@ typedef struct DeviceClass {
DeviceUnrealize unrealize;
/* device state */
- const struct VMStateDescription *vmsd;
+ const VMStateDescription *vmsd;
/* Private to qdev / bus. */
const char *bus_type;
@@ -426,7 +422,7 @@ void device_class_set_parent_unrealize(DeviceClass *dc,
DeviceUnrealize dev_unrealize,
DeviceUnrealize *parent_unrealize);
-const struct VMStateDescription *qdev_get_vmsd(DeviceState *dev);
+const VMStateDescription *qdev_get_vmsd(DeviceState *dev);
const char *qdev_fw_name(DeviceState *dev);
@@ -454,8 +450,4 @@ static inline bool qbus_is_hotpluggable(BusState *bus)
void device_listener_register(DeviceListener *listener);
void device_listener_unregister(DeviceListener *listener);
-VMChangeStateEntry *qdev_add_vm_change_state_handler(DeviceState *dev,
- VMChangeStateHandler *cb,
- void *opaque);
-
#endif
diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h
index 1eae5ab..bb34a61 100644
--- a/include/hw/qdev-properties.h
+++ b/include/hw/qdev-properties.h
@@ -1,8 +1,6 @@
#ifndef QEMU_QDEV_PROPERTIES_H
#define QEMU_QDEV_PROPERTIES_H
-#include "qapi/qapi-types-block.h"
-#include "qapi/qapi-types-misc.h"
#include "hw/qdev-core.h"
/*** qdev-properties.c ***/
diff --git a/include/hw/qdev.h b/include/hw/qdev.h
deleted file mode 100644
index 5cb8b08..0000000
--- a/include/hw/qdev.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef QDEV_H
-#define QDEV_H
-
-#include "hw/hw.h"
-#include "hw/qdev-core.h"
-#include "hw/qdev-properties.h"
-
-#endif
diff --git a/include/hw/riscv/boot.h b/include/hw/riscv/boot.h
index d56f2ae..1f21c2b 100644
--- a/include/hw/riscv/boot.h
+++ b/include/hw/riscv/boot.h
@@ -20,6 +20,8 @@
#ifndef RISCV_BOOT_H
#define RISCV_BOOT_H
+#include "exec/cpu-defs.h"
+
void riscv_find_and_load_firmware(MachineState *machine,
const char *default_machine_firmware,
hwaddr firmware_load_addr);
diff --git a/include/hw/riscv/riscv_hart.h b/include/hw/riscv/riscv_hart.h
index 0671d88..3b52b50 100644
--- a/include/hw/riscv/riscv_hart.h
+++ b/include/hw/riscv/riscv_hart.h
@@ -21,6 +21,9 @@
#ifndef HW_RISCV_HART_H
#define HW_RISCV_HART_H
+#include "hw/sysbus.h"
+#include "target/riscv/cpu.h"
+
#define TYPE_RISCV_HART_ARRAY "riscv.hart_array"
#define RISCV_HART_ARRAY(obj) \
diff --git a/include/hw/riscv/riscv_htif.h b/include/hw/riscv/riscv_htif.h
index fb5f881..fb9452c 100644
--- a/include/hw/riscv/riscv_htif.h
+++ b/include/hw/riscv/riscv_htif.h
@@ -20,10 +20,8 @@
#ifndef HW_RISCV_HTIF_H
#define HW_RISCV_HTIF_H
-#include "hw/hw.h"
#include "chardev/char.h"
#include "chardev/char-fe.h"
-#include "sysemu/sysemu.h"
#include "exec/memory.h"
#include "target/riscv/cpu.h"
diff --git a/include/hw/riscv/sifive_clint.h b/include/hw/riscv/sifive_clint.h
index e2865be..ae8286c 100644
--- a/include/hw/riscv/sifive_clint.h
+++ b/include/hw/riscv/sifive_clint.h
@@ -20,6 +20,8 @@
#ifndef HW_SIFIVE_CLINT_H
#define HW_SIFIVE_CLINT_H
+#include "hw/sysbus.h"
+
#define TYPE_SIFIVE_CLINT "riscv.sifive.clint"
#define SIFIVE_CLINT(obj) \
diff --git a/include/hw/riscv/sifive_e.h b/include/hw/riscv/sifive_e.h
index d175b24..9c868dd 100644
--- a/include/hw/riscv/sifive_e.h
+++ b/include/hw/riscv/sifive_e.h
@@ -19,6 +19,7 @@
#ifndef HW_SIFIVE_E_H
#define HW_SIFIVE_E_H
+#include "hw/riscv/riscv_hart.h"
#include "hw/riscv/sifive_gpio.h"
#define TYPE_RISCV_E_SOC "riscv.sifive.e.soc"
diff --git a/include/hw/riscv/sifive_plic.h b/include/hw/riscv/sifive_plic.h
index ce8907f..b0edba2 100644
--- a/include/hw/riscv/sifive_plic.h
+++ b/include/hw/riscv/sifive_plic.h
@@ -21,7 +21,7 @@
#ifndef HW_SIFIVE_PLIC_H
#define HW_SIFIVE_PLIC_H
-#include "hw/irq.h"
+#include "hw/sysbus.h"
#define TYPE_SIFIVE_PLIC "riscv.sifive.plic"
diff --git a/include/hw/riscv/sifive_prci.h b/include/hw/riscv/sifive_prci.h
index bd51c4a..8b7de13 100644
--- a/include/hw/riscv/sifive_prci.h
+++ b/include/hw/riscv/sifive_prci.h
@@ -19,6 +19,8 @@
#ifndef HW_SIFIVE_PRCI_H
#define HW_SIFIVE_PRCI_H
+#include "hw/sysbus.h"
+
enum {
SIFIVE_PRCI_HFROSCCFG = 0x0,
SIFIVE_PRCI_HFXOSCCFG = 0x4,
diff --git a/include/hw/riscv/sifive_test.h b/include/hw/riscv/sifive_test.h
index 71d4c9f..3a603a6 100644
--- a/include/hw/riscv/sifive_test.h
+++ b/include/hw/riscv/sifive_test.h
@@ -19,6 +19,8 @@
#ifndef HW_SIFIVE_TEST_H
#define HW_SIFIVE_TEST_H
+#include "hw/sysbus.h"
+
#define TYPE_SIFIVE_TEST "riscv.sifive.test"
#define SIFIVE_TEST(obj) \
diff --git a/include/hw/riscv/sifive_u.h b/include/hw/riscv/sifive_u.h
index 892f0ee..be021ce 100644
--- a/include/hw/riscv/sifive_u.h
+++ b/include/hw/riscv/sifive_u.h
@@ -20,6 +20,7 @@
#define HW_SIFIVE_U_H
#include "hw/net/cadence_gem.h"
+#include "hw/riscv/riscv_hart.h"
#define TYPE_RISCV_U_SOC "riscv.sifive.u.soc"
#define RISCV_U_SOC(obj) \
diff --git a/include/hw/riscv/sifive_uart.h b/include/hw/riscv/sifive_uart.h
index c8dc1c5..6566882 100644
--- a/include/hw/riscv/sifive_uart.h
+++ b/include/hw/riscv/sifive_uart.h
@@ -20,6 +20,9 @@
#ifndef HW_SIFIVE_UART_H
#define HW_SIFIVE_UART_H
+#include "chardev/char-fe.h"
+#include "hw/sysbus.h"
+
enum {
SIFIVE_UART_TXFIFO = 0,
SIFIVE_UART_RXFIFO = 4,
diff --git a/include/hw/riscv/spike.h b/include/hw/riscv/spike.h
index 641b70d..03d8703 100644
--- a/include/hw/riscv/spike.h
+++ b/include/hw/riscv/spike.h
@@ -19,6 +19,9 @@
#ifndef HW_RISCV_SPIKE_H
#define HW_RISCV_SPIKE_H
+#include "hw/riscv/riscv_hart.h"
+#include "hw/sysbus.h"
+
typedef struct {
/*< private >*/
SysBusDevice parent_obj;
diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h
index d01a1a8..6e5fbe5 100644
--- a/include/hw/riscv/virt.h
+++ b/include/hw/riscv/virt.h
@@ -19,6 +19,9 @@
#ifndef HW_RISCV_VIRT_H
#define HW_RISCV_VIRT_H
+#include "hw/riscv/riscv_hart.h"
+#include "hw/sysbus.h"
+
typedef struct {
/*< private >*/
SysBusDevice parent_obj;
diff --git a/include/hw/s390x/ap-device.h b/include/hw/s390x/ap-device.h
index 765e908..8df9cd2 100644
--- a/include/hw/s390x/ap-device.h
+++ b/include/hw/s390x/ap-device.h
@@ -7,9 +7,12 @@
* your option) any later version. See the COPYING file in the top-level
* directory.
*/
+
#ifndef HW_S390X_AP_DEVICE_H
#define HW_S390X_AP_DEVICE_H
+#include "hw/qdev-core.h"
+
#define AP_DEVICE_TYPE "ap-device"
typedef struct APDevice {
diff --git a/include/hw/s390x/css-bridge.h b/include/hw/s390x/css-bridge.h
index 5a0203b..f7ed2d9 100644
--- a/include/hw/s390x/css-bridge.h
+++ b/include/hw/s390x/css-bridge.h
@@ -12,8 +12,9 @@
#ifndef HW_S390X_CSS_BRIDGE_H
#define HW_S390X_CSS_BRIDGE_H
+
#include "qom/object.h"
-#include "hw/qdev-core.h"
+#include "hw/sysbus.h"
/* virtual css bridge */
typedef struct VirtualCssBridge {
diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h
index d033387..f46bcaf 100644
--- a/include/hw/s390x/css.h
+++ b/include/hw/s390x/css.h
@@ -17,6 +17,7 @@
#include "hw/s390x/s390_flic.h"
#include "hw/s390x/ioinst.h"
#include "sysemu/kvm.h"
+#include "target/s390x/cpu-qom.h"
/* Channel subsystem constants. */
#define MAX_DEVNO 65535
diff --git a/include/hw/s390x/event-facility.h b/include/hw/s390x/event-facility.h
index 6cf71ce..bdc32a3 100644
--- a/include/hw/s390x/event-facility.h
+++ b/include/hw/s390x/event-facility.h
@@ -15,8 +15,8 @@
#ifndef HW_S390_SCLP_EVENT_FACILITY_H
#define HW_S390_SCLP_EVENT_FACILITY_H
-#include "hw/qdev.h"
#include "qemu/thread.h"
+#include "hw/qdev-core.h"
#include "hw/s390x/sclp.h"
/* SCLP event types */
diff --git a/include/hw/s390x/sclp.h b/include/hw/s390x/sclp.h
index f9db243..c54413b 100644
--- a/include/hw/s390x/sclp.h
+++ b/include/hw/s390x/sclp.h
@@ -15,7 +15,6 @@
#define HW_S390_SCLP_H
#include "hw/sysbus.h"
-#include "hw/qdev.h"
#include "target/s390x/cpu-qom.h"
#define SCLP_CMD_CODE_MASK 0xffff00ff
diff --git a/include/hw/s390x/storage-attributes.h b/include/hw/s390x/storage-attributes.h
index d6403a0..4f7c6c0 100644
--- a/include/hw/s390x/storage-attributes.h
+++ b/include/hw/s390x/storage-attributes.h
@@ -12,7 +12,7 @@
#ifndef S390_STORAGE_ATTRIBUTES_H
#define S390_STORAGE_ATTRIBUTES_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#include "monitor/monitor.h"
#define TYPE_S390_STATTRIB "s390-storage_attributes"
diff --git a/include/hw/s390x/storage-keys.h b/include/hw/s390x/storage-keys.h
index 62df48e..3f1ae7e 100644
--- a/include/hw/s390x/storage-keys.h
+++ b/include/hw/s390x/storage-keys.h
@@ -12,7 +12,7 @@
#ifndef S390_STORAGE_KEYS_H
#define S390_STORAGE_KEYS_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#include "monitor/monitor.h"
#define TYPE_S390_SKEYS "s390-skeys"
diff --git a/include/hw/s390x/tod.h b/include/hw/s390x/tod.h
index 9c4a600..4251623 100644
--- a/include/hw/s390x/tod.h
+++ b/include/hw/s390x/tod.h
@@ -11,8 +11,8 @@
#ifndef HW_S390_TOD_H
#define HW_S390_TOD_H
-#include "hw/qdev.h"
-#include "s390-tod.h"
+#include "hw/qdev-core.h"
+#include "target/s390x/s390-tod.h"
typedef struct S390TOD {
uint8_t high;
diff --git a/include/hw/scsi/scsi.h b/include/hw/scsi/scsi.h
index 426566a..d77a923 100644
--- a/include/hw/scsi/scsi.h
+++ b/include/hw/scsi/scsi.h
@@ -1,9 +1,9 @@
#ifndef QEMU_HW_SCSI_H
#define QEMU_HW_SCSI_H
-#include "hw/qdev.h"
+#include "block/aio.h"
#include "hw/block/block.h"
-#include "sysemu/sysemu.h"
+#include "hw/qdev-core.h"
#include "scsi/utils.h"
#include "qemu/notify.h"
diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h
index b865aaf..a84b8e2 100644
--- a/include/hw/sd/sd.h
+++ b/include/hw/sd/sd.h
@@ -30,7 +30,7 @@
#ifndef HW_SD_H
#define HW_SD_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#define OUT_OF_RANGE (1 << 31)
#define ADDRESS_ERROR (1 << 30)
diff --git a/include/hw/semihosting/console.h b/include/hw/semihosting/console.h
index cfab572..9be9754 100644
--- a/include/hw/semihosting/console.h
+++ b/include/hw/semihosting/console.h
@@ -9,6 +9,8 @@
#ifndef SEMIHOST_CONSOLE_H
#define SEMIHOST_CONSOLE_H
+#include "cpu.h"
+
/**
* qemu_semihosting_console_outs:
* @env: CPUArchState
diff --git a/include/hw/sh4/sh_intc.h b/include/hw/sh4/sh_intc.h
index b7c2404..65f3425 100644
--- a/include/hw/sh4/sh_intc.h
+++ b/include/hw/sh4/sh_intc.h
@@ -1,7 +1,7 @@
#ifndef SH_INTC_H
#define SH_INTC_H
-#include "hw/irq.h"
+#include "exec/memory.h"
typedef unsigned char intc_enum;
diff --git a/include/hw/sparc/grlib.h b/include/hw/sparc/grlib.h
index 5606ff0..78b6178 100644
--- a/include/hw/sparc/grlib.h
+++ b/include/hw/sparc/grlib.h
@@ -25,7 +25,6 @@
#ifndef GRLIB_H
#define GRLIB_H
-#include "hw/qdev.h"
#include "hw/sysbus.h"
/* Emulation of GrLib device is base on the GRLIB IP Core User's Manual:
diff --git a/include/hw/sparc/sparc64.h b/include/hw/sparc/sparc64.h
index 21ab79e..4ced36f 100644
--- a/include/hw/sparc/sparc64.h
+++ b/include/hw/sparc/sparc64.h
@@ -1,6 +1,8 @@
#ifndef HW_SPARC_SPARC64_H
#define HW_SPARC_SPARC64_H
+#include "target/sparc/cpu-qom.h"
+
#define IVEC_MAX 0x40
SPARCCPU *sparc64_cpu_devinit(const char *cpu_type, uint64_t prom_addr);
diff --git a/include/hw/ssi/aspeed_smc.h b/include/hw/ssi/aspeed_smc.h
index 591279b..aa07dac 100644
--- a/include/hw/ssi/aspeed_smc.h
+++ b/include/hw/ssi/aspeed_smc.h
@@ -26,6 +26,7 @@
#define ASPEED_SMC_H
#include "hw/ssi/ssi.h"
+#include "hw/sysbus.h"
typedef struct AspeedSegments {
hwaddr addr;
diff --git a/include/hw/ssi/ssi.h b/include/hw/ssi/ssi.h
index 6a0c3c3..1107cb8 100644
--- a/include/hw/ssi/ssi.h
+++ b/include/hw/ssi/ssi.h
@@ -11,7 +11,7 @@
#ifndef QEMU_SSI_H
#define QEMU_SSI_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
typedef struct SSISlave SSISlave;
typedef struct SSISlaveClass SSISlaveClass;
diff --git a/include/hw/ssi/stm32f2xx_spi.h b/include/hw/ssi/stm32f2xx_spi.h
index 1cd73e4..e24b007 100644
--- a/include/hw/ssi/stm32f2xx_spi.h
+++ b/include/hw/ssi/stm32f2xx_spi.h
@@ -26,7 +26,6 @@
#define HW_STM32F2XX_SPI_H
#include "hw/sysbus.h"
-#include "hw/hw.h"
#include "hw/ssi/ssi.h"
#define STM_SPI_CR1 0x00
diff --git a/include/hw/ssi/xilinx_spips.h b/include/hw/ssi/xilinx_spips.h
index a0a0ae7..6a39b55 100644
--- a/include/hw/ssi/xilinx_spips.h
+++ b/include/hw/ssi/xilinx_spips.h
@@ -28,6 +28,7 @@
#include "hw/ssi/ssi.h"
#include "qemu/fifo32.h"
#include "hw/stream.h"
+#include "hw/sysbus.h"
typedef struct XilinxSPIPS XilinxSPIPS;
diff --git a/include/hw/sysbus.h b/include/hw/sysbus.h
index 4c668fb..27e8088 100644
--- a/include/hw/sysbus.h
+++ b/include/hw/sysbus.h
@@ -3,7 +3,7 @@
/* Devices attached directly to the main system bus. */
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#include "exec/memory.h"
#define QDEV_MAX_MMIO 32
diff --git a/include/hw/timer/allwinner-a10-pit.h b/include/hw/timer/allwinner-a10-pit.h
index c0cc3e2..871c95b 100644
--- a/include/hw/timer/allwinner-a10-pit.h
+++ b/include/hw/timer/allwinner-a10-pit.h
@@ -2,6 +2,7 @@
#define ALLWINNER_A10_PIT_H
#include "hw/ptimer.h"
+#include "hw/sysbus.h"
#define TYPE_AW_A10_PIT "allwinner-A10-timer"
#define AW_A10_PIT(obj) OBJECT_CHECK(AwA10PITState, (obj), TYPE_AW_A10_PIT)
diff --git a/include/hw/timer/aspeed_rtc.h b/include/hw/timer/aspeed_rtc.h
index 1f1155a..15ba429 100644
--- a/include/hw/timer/aspeed_rtc.h
+++ b/include/hw/timer/aspeed_rtc.h
@@ -10,7 +10,6 @@
#include <stdint.h>
-#include "hw/hw.h"
#include "hw/irq.h"
#include "hw/sysbus.h"
diff --git a/include/hw/timer/cmsdk-apb-timer.h b/include/hw/timer/cmsdk-apb-timer.h
index f21686d..e93cacc 100644
--- a/include/hw/timer/cmsdk-apb-timer.h
+++ b/include/hw/timer/cmsdk-apb-timer.h
@@ -12,6 +12,7 @@
#ifndef CMSDK_APB_TIMER_H
#define CMSDK_APB_TIMER_H
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "hw/ptimer.h"
diff --git a/include/hw/timer/i8254.h b/include/hw/timer/i8254.h
index 5b12eb9..45cb425 100644
--- a/include/hw/timer/i8254.h
+++ b/include/hw/timer/i8254.h
@@ -25,8 +25,7 @@
#ifndef HW_I8254_H
#define HW_I8254_H
-#include "hw/hw.h"
-#include "hw/qdev.h"
+#include "hw/qdev-properties.h"
#include "hw/isa/isa.h"
#define PIT_FREQ 1193182
diff --git a/include/hw/timer/i8254_internal.h b/include/hw/timer/i8254_internal.h
index c37a438..3db462a 100644
--- a/include/hw/timer/i8254_internal.h
+++ b/include/hw/timer/i8254_internal.h
@@ -25,8 +25,8 @@
#ifndef QEMU_I8254_INTERNAL_H
#define QEMU_I8254_INTERNAL_H
-#include "hw/hw.h"
#include "hw/isa/isa.h"
+#include "hw/timer/i8254.h"
#include "qemu/timer.h"
typedef struct PITChannelState {
diff --git a/include/hw/timer/m48t59.h b/include/hw/timer/m48t59.h
index 43efc91..f74854c 100644
--- a/include/hw/timer/m48t59.h
+++ b/include/hw/timer/m48t59.h
@@ -1,6 +1,7 @@
#ifndef HW_M48T59_H
#define HW_M48T59_H
+#include "exec/hwaddr.h"
#include "qom/object.h"
#define TYPE_NVRAM "nvram"
diff --git a/include/hw/timer/mc146818rtc_regs.h b/include/hw/timer/mc146818rtc_regs.h
index c62f17b..bfbb57e 100644
--- a/include/hw/timer/mc146818rtc_regs.h
+++ b/include/hw/timer/mc146818rtc_regs.h
@@ -25,6 +25,8 @@
#ifndef MC146818RTC_REGS_H
#define MC146818RTC_REGS_H
+#include "qemu/timer.h"
+
#define RTC_ISA_IRQ 8
#define RTC_SECONDS 0
diff --git a/include/hw/timer/stm32f2xx_timer.h b/include/hw/timer/stm32f2xx_timer.h
index e6a8323..a96bc08 100644
--- a/include/hw/timer/stm32f2xx_timer.h
+++ b/include/hw/timer/stm32f2xx_timer.h
@@ -27,7 +27,6 @@
#include "hw/sysbus.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
#define TIM_CR1 0x00
#define TIM_CR2 0x04
diff --git a/include/hw/timer/xlnx-zynqmp-rtc.h b/include/hw/timer/xlnx-zynqmp-rtc.h
index 6e9134e..97e3232 100644
--- a/include/hw/timer/xlnx-zynqmp-rtc.h
+++ b/include/hw/timer/xlnx-zynqmp-rtc.h
@@ -28,6 +28,7 @@
#define HW_TIMER_XLNX_ZYNQMP_RTC_H
#include "hw/register.h"
+#include "hw/sysbus.h"
#define TYPE_XLNX_ZYNQMP_RTC "xlnx-zynmp.rtc"
diff --git a/include/hw/tricore/tricore.h b/include/hw/tricore/tricore.h
index 89ef922..c19ed3f 100644
--- a/include/hw/tricore/tricore.h
+++ b/include/hw/tricore/tricore.h
@@ -2,7 +2,6 @@
#define HW_TRICORE_H
#include "exec/memory.h"
-#include "hw/irq.h"
struct tricore_boot_info {
uint64_t ram_size;
diff --git a/include/hw/usb.h b/include/hw/usb.h
index c21f41c..c24d968 100644
--- a/include/hw/usb.h
+++ b/include/hw/usb.h
@@ -25,7 +25,8 @@
* THE SOFTWARE.
*/
-#include "hw/qdev.h"
+#include "exec/memory.h"
+#include "hw/qdev-core.h"
#include "qemu/iov.h"
#include "qemu/queue.h"
diff --git a/include/hw/vfio/vfio-platform.h b/include/hw/vfio/vfio-platform.h
index 30d3c28..4ec70c8 100644
--- a/include/hw/vfio/vfio-platform.h
+++ b/include/hw/vfio/vfio-platform.h
@@ -20,7 +20,6 @@
#include "hw/vfio/vfio-common.h"
#include "qemu/event_notifier.h"
#include "qemu/queue.h"
-#include "hw/irq.h"
#define TYPE_VFIO_PLATFORM "vfio-platform"
diff --git a/include/hw/virtio/vhost-scsi-common.h b/include/hw/virtio/vhost-scsi-common.h
index 5435716..16bf1a7 100644
--- a/include/hw/virtio/vhost-scsi-common.h
+++ b/include/hw/virtio/vhost-scsi-common.h
@@ -14,7 +14,6 @@
#ifndef VHOST_SCSI_COMMON_H
#define VHOST_SCSI_COMMON_H
-#include "hw/qdev.h"
#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/vhost.h"
#include "hw/fw-path-provider.h"
diff --git a/include/hw/virtio/vhost-scsi.h b/include/hw/virtio/vhost-scsi.h
index df5bfdb..2325215 100644
--- a/include/hw/virtio/vhost-scsi.h
+++ b/include/hw/virtio/vhost-scsi.h
@@ -14,7 +14,6 @@
#ifndef VHOST_SCSI_H
#define VHOST_SCSI_H
-#include "hw/qdev.h"
#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/vhost.h"
#include "hw/virtio/vhost-scsi-common.h"
diff --git a/include/hw/virtio/vhost-user-blk.h b/include/hw/virtio/vhost-user-blk.h
index 8dbf11c..108bfad 100644
--- a/include/hw/virtio/vhost-user-blk.h
+++ b/include/hw/virtio/vhost-user-blk.h
@@ -16,7 +16,6 @@
#define VHOST_USER_BLK_H
#include "standard-headers/linux/virtio_blk.h"
-#include "hw/qdev.h"
#include "hw/block/block.h"
#include "chardev/char-fe.h"
#include "hw/virtio/vhost.h"
diff --git a/include/hw/virtio/vhost-user-scsi.h b/include/hw/virtio/vhost-user-scsi.h
index 1b332ea..99ab2f2 100644
--- a/include/hw/virtio/vhost-user-scsi.h
+++ b/include/hw/virtio/vhost-user-scsi.h
@@ -17,7 +17,6 @@
#ifndef VHOST_USER_SCSI_H
#define VHOST_USER_SCSI_H
-#include "hw/qdev.h"
#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/vhost.h"
#include "hw/virtio/vhost-user.h"
diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h
index 619498c..085450c 100644
--- a/include/hw/virtio/vhost.h
+++ b/include/hw/virtio/vhost.h
@@ -1,7 +1,6 @@
#ifndef VHOST_H
#define VHOST_H
-#include "hw/hw.h"
#include "hw/virtio/vhost-backend.h"
#include "hw/virtio/virtio.h"
#include "exec/memory.h"
diff --git a/include/hw/virtio/virtio-access.h b/include/hw/virtio/virtio-access.h
index bdf58f3..6818a23 100644
--- a/include/hw/virtio/virtio-access.h
+++ b/include/hw/virtio/virtio-access.h
@@ -16,6 +16,7 @@
#ifndef QEMU_VIRTIO_ACCESS_H
#define QEMU_VIRTIO_ACCESS_H
+#include "exec/hwaddr.h"
#include "hw/virtio/virtio.h"
#include "hw/virtio/virtio-bus.h"
diff --git a/include/hw/virtio/virtio-bus.h b/include/hw/virtio/virtio-bus.h
index 7fec9dc..38c9399 100644
--- a/include/hw/virtio/virtio-bus.h
+++ b/include/hw/virtio/virtio-bus.h
@@ -25,8 +25,7 @@
#ifndef VIRTIO_BUS_H
#define VIRTIO_BUS_H
-#include "hw/qdev.h"
-#include "sysemu/sysemu.h"
+#include "hw/qdev-core.h"
#include "hw/virtio/virtio.h"
#define TYPE_VIRTIO_BUS "virtio-bus"
diff --git a/include/hw/virtio/virtio-gpu-bswap.h b/include/hw/virtio/virtio-gpu-bswap.h
index 38d1216..203f9e1 100644
--- a/include/hw/virtio/virtio-gpu-bswap.h
+++ b/include/hw/virtio/virtio-gpu-bswap.h
@@ -15,6 +15,7 @@
#define HW_VIRTIO_GPU_BSWAP_H
#include "qemu/bswap.h"
+#include "standard-headers/linux/virtio_gpu.h"
static inline void
virtio_gpu_ctrl_hdr_bswap(struct virtio_gpu_ctrl_hdr *hdr)
diff --git a/include/hw/virtio/virtio-pmem.h b/include/hw/virtio/virtio-pmem.h
index 19b6ee6..33f1999 100644
--- a/include/hw/virtio/virtio-pmem.h
+++ b/include/hw/virtio/virtio-pmem.h
@@ -15,7 +15,7 @@
#define HW_VIRTIO_PMEM_H
#include "hw/virtio/virtio.h"
-#include "sysemu/hostmem.h"
+#include "qapi/qapi-types-misc.h"
#define TYPE_VIRTIO_PMEM "virtio-pmem"
diff --git a/include/hw/virtio/virtio-rng.h b/include/hw/virtio/virtio-rng.h
index 922dce7..ff69933 100644
--- a/include/hw/virtio/virtio-rng.h
+++ b/include/hw/virtio/virtio-rng.h
@@ -12,6 +12,7 @@
#ifndef QEMU_VIRTIO_RNG_H
#define QEMU_VIRTIO_RNG_H
+#include "hw/virtio/virtio.h"
#include "sysemu/rng.h"
#include "sysemu/rng-random.h"
#include "standard-headers/linux/virtio_rng.h"
diff --git a/include/hw/virtio/virtio-serial.h b/include/hw/virtio/virtio-serial.h
index 12657a9..ed3e916 100644
--- a/include/hw/virtio/virtio-serial.h
+++ b/include/hw/virtio/virtio-serial.h
@@ -17,7 +17,6 @@
#define QEMU_VIRTIO_SERIAL_H
#include "standard-headers/linux/virtio_console.h"
-#include "hw/qdev.h"
#include "hw/virtio/virtio.h"
struct virtio_serial_conf {
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index b189788..48e8d04 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -14,10 +14,10 @@
#ifndef QEMU_VIRTIO_H
#define QEMU_VIRTIO_H
-#include "hw/hw.h"
+#include "exec/memory.h"
+#include "hw/qdev-core.h"
#include "net/net.h"
-#include "hw/qdev.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "qemu/event_notifier.h"
#include "standard-headers/linux/virtio_config.h"
#include "standard-headers/linux/virtio_ring.h"
diff --git a/include/hw/watchdog/wdt_aspeed.h b/include/hw/watchdog/wdt_aspeed.h
index daef0c0..8c5691c 100644
--- a/include/hw/watchdog/wdt_aspeed.h
+++ b/include/hw/watchdog/wdt_aspeed.h
@@ -10,6 +10,7 @@
#ifndef WDT_ASPEED_H
#define WDT_ASPEED_H
+#include "hw/misc/aspeed_scu.h"
#include "hw/sysbus.h"
#define TYPE_ASPEED_WDT "aspeed.wdt"
diff --git a/include/hw/watchdog/wdt_diag288.h b/include/hw/watchdog/wdt_diag288.h
index 706d96b..19d83a0 100644
--- a/include/hw/watchdog/wdt_diag288.h
+++ b/include/hw/watchdog/wdt_diag288.h
@@ -1,7 +1,7 @@
#ifndef WDT_DIAG288_H
#define WDT_DIAG288_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#define TYPE_WDT_DIAG288 "diag288"
#define DIAG288(obj) \
diff --git a/include/hw/xen/xen-legacy-backend.h b/include/hw/xen/xen-legacy-backend.h
index 07d4176..5e6c56c 100644
--- a/include/hw/xen/xen-legacy-backend.h
+++ b/include/hw/xen/xen-legacy-backend.h
@@ -3,7 +3,6 @@
#include "hw/xen/xen_common.h"
#include "hw/xen/xen_pvdev.h"
-#include "sysemu/sysemu.h"
#include "net/net.h"
#define TYPE_XENSYSDEV "xen-sysdev"
diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h
index 9c7b5f7..5ac1c6d 100644
--- a/include/hw/xen/xen.h
+++ b/include/hw/xen/xen.h
@@ -9,7 +9,6 @@
*/
#include "exec/cpu-common.h"
-#include "hw/irq.h"
/* xen-machine.c */
enum xen_mode {
diff --git a/include/hw/xen/xen_common.h b/include/hw/xen/xen_common.h
index 0504b43..82e5633 100644
--- a/include/hw/xen/xen_common.h
+++ b/include/hw/xen/xen_common.h
@@ -14,10 +14,8 @@
#include <xenstore.h>
#include "hw/xen/interface/io/xenbus.h"
-#include "hw/hw.h"
#include "hw/xen/xen.h"
#include "hw/pci/pci.h"
-#include "qemu/queue.h"
#include "hw/xen/trace.h"
extern xc_interface *xen_xc;
diff --git a/include/hw/xtensa/mx_pic.h b/include/hw/xtensa/mx_pic.h
index c9ea9e7..500424c 100644
--- a/include/hw/xtensa/mx_pic.h
+++ b/include/hw/xtensa/mx_pic.h
@@ -29,7 +29,6 @@
#define XTENSA_MX_PIC_H
#include "exec/memory.h"
-#include "hw/irq.h"
struct XtensaMxPic;
typedef struct XtensaMxPic XtensaMxPic;
diff --git a/include/libdecnumber/decNumberLocal.h b/include/libdecnumber/decNumberLocal.h
index 12cf1d8..4d53c07 100644
--- a/include/libdecnumber/decNumberLocal.h
+++ b/include/libdecnumber/decNumberLocal.h
@@ -44,6 +44,7 @@
#define DECNLAUTHOR "Mike Cowlishaw" /* Who to blame */
#include "libdecnumber/dconfig.h"
+ #include "libdecnumber/decContext.h"
/* Conditional code flag -- set this to match hardware platform */
/* 1=little-endian, 0=big-endian */
diff --git a/include/migration/cpu.h b/include/migration/cpu.h
index a40bd35..65abe3c 100644
--- a/include/migration/cpu.h
+++ b/include/migration/cpu.h
@@ -1,7 +1,12 @@
/* Declarations for use for CPU state serialization. */
+
#ifndef MIGRATION_CPU_H
#define MIGRATION_CPU_H
+#include "exec/cpu-defs.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
+
#if TARGET_LONG_BITS == 64
#define qemu_put_betl qemu_put_be64
#define qemu_get_betl qemu_get_be64
diff --git a/include/migration/global_state.h b/include/migration/global_state.h
index fd22dd3..945eb35 100644
--- a/include/migration/global_state.h
+++ b/include/migration/global_state.h
@@ -14,7 +14,6 @@
#define QEMU_MIGRATION_GLOBAL_STATE_H
#include "qapi/qapi-types-run-state.h"
-#include "sysemu/sysemu.h"
void register_global_state(void);
int global_state_store(void);
diff --git a/include/migration/misc.h b/include/migration/misc.h
index 5cdbabd..b9d8e78 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -14,7 +14,6 @@
#ifndef MIGRATION_MISC_H
#define MIGRATION_MISC_H
-#include "exec/cpu-common.h"
#include "qemu/notify.h"
#include "qapi/qapi-types-net.h"
diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index c2bfa7a..1fbfd09 100644
--- a/include/migration/vmstate.h
+++ b/include/migration/vmstate.h
@@ -28,7 +28,6 @@
#define QEMU_VMSTATE_H
typedef struct VMStateInfo VMStateInfo;
-typedef struct VMStateDescription VMStateDescription;
typedef struct VMStateField VMStateField;
/* VMStateInfo allows customized migration of objects that don't fit in
diff --git a/include/monitor/hmp-target.h b/include/monitor/hmp-target.h
index 454e8ed..8b7820a 100644
--- a/include/monitor/hmp-target.h
+++ b/include/monitor/hmp-target.h
@@ -25,6 +25,8 @@
#ifndef MONITOR_HMP_TARGET_H
#define MONITOR_HMP_TARGET_H
+#include "cpu.h"
+
#define MD_TLONG 0
#define MD_I32 1
diff --git a/include/monitor/qdev.h b/include/monitor/qdev.h
index 084799e..eaa947d 100644
--- a/include/monitor/qdev.h
+++ b/include/monitor/qdev.h
@@ -1,8 +1,6 @@
#ifndef MONITOR_QDEV_H
#define MONITOR_QDEV_H
-#include "hw/qdev-core.h"
-
/*** monitor commands ***/
void hmp_info_qtree(Monitor *mon, const QDict *qdict);
diff --git a/include/net/can_emu.h b/include/net/can_emu.h
index 1da4d01..d4fc51b 100644
--- a/include/net/can_emu.h
+++ b/include/net/can_emu.h
@@ -28,6 +28,7 @@
#ifndef NET_CAN_EMU_H
#define NET_CAN_EMU_H
+#include "qemu/queue.h"
#include "qom/object.h"
/* NOTE: the following two structures is copied from <linux/can.h>. */
diff --git a/include/net/filter.h b/include/net/filter.h
index 9bc6fa3..e8fb625 100644
--- a/include/net/filter.h
+++ b/include/net/filter.h
@@ -10,6 +10,7 @@
#define QEMU_NET_FILTER_H
#include "qapi/qapi-types-net.h"
+#include "qemu/queue.h"
#include "qom/object.h"
#include "net/queue.h"
diff --git a/include/net/net.h b/include/net/net.h
index acf0451..e175ba9 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -4,7 +4,6 @@
#include "qemu/queue.h"
#include "qapi/qapi-types-net.h"
#include "net/queue.h"
-#include "migration/vmstate.h"
#define MAC_FMT "%02X:%02X:%02X:%02X:%02X:%02X"
#define MAC_ARG(x) ((uint8_t *)(x))[0], ((uint8_t *)(x))[1], \
diff --git a/include/qapi/error.h b/include/qapi/error.h
index 51b63dd..3f95141 100644
--- a/include/qapi/error.h
+++ b/include/qapi/error.h
@@ -119,7 +119,7 @@
#ifndef ERROR_H
#define ERROR_H
-#include "qapi/qapi-types-common.h"
+#include "qapi/qapi-types-error.h"
/*
* Overall category of an error.
diff --git a/include/qemu/atomic128.h b/include/qemu/atomic128.h
index ddd0d55..6b34484 100644
--- a/include/qemu/atomic128.h
+++ b/include/qemu/atomic128.h
@@ -13,6 +13,8 @@
#ifndef QEMU_ATOMIC128_H
#define QEMU_ATOMIC128_H
+#include "qemu/int128.h"
+
/*
* GCC is a house divided about supporting large atomic operations.
*
diff --git a/include/qemu/fifo8.h b/include/qemu/fifo8.h
index 24b3644..489c354 100644
--- a/include/qemu/fifo8.h
+++ b/include/qemu/fifo8.h
@@ -1,7 +1,6 @@
#ifndef QEMU_FIFO8_H
#define QEMU_FIFO8_H
-#include "migration/vmstate.h"
typedef struct {
/* All fields are private */
diff --git a/include/qemu/job.h b/include/qemu/job.h
index 9e7cd1e..73c67d3 100644
--- a/include/qemu/job.h
+++ b/include/qemu/job.h
@@ -26,7 +26,7 @@
#ifndef JOB_H
#define JOB_H
-#include "qapi/qapi-types-block-core.h"
+#include "qapi/qapi-types-job.h"
#include "qemu/queue.h"
#include "qemu/coroutine.h"
#include "block/aio.h"
diff --git a/include/qemu/queue.h b/include/qemu/queue.h
index 0379bd8..73bf4a9 100644
--- a/include/qemu/queue.h
+++ b/include/qemu/queue.h
@@ -78,8 +78,6 @@
* For details on the use of these macros, see the queue(3) manual page.
*/
-#include "qemu/atomic.h" /* for smp_wmb() */
-
/*
* List definitions.
*/
diff --git a/include/qemu/range.h b/include/qemu/range.h
index 71b8b21..f62b363 100644
--- a/include/qemu/range.h
+++ b/include/qemu/range.h
@@ -20,8 +20,6 @@
#ifndef QEMU_RANGE_H
#define QEMU_RANGE_H
-#include "qemu/queue.h"
-
/*
* Operations on 64 bit address ranges.
* Notes:
diff --git a/include/qemu/ratelimit.h b/include/qemu/ratelimit.h
index 1b38291..01da8d6 100644
--- a/include/qemu/ratelimit.h
+++ b/include/qemu/ratelimit.h
@@ -14,6 +14,8 @@
#ifndef QEMU_RATELIMIT_H
#define QEMU_RATELIMIT_H
+#include "qemu/timer.h"
+
typedef struct {
int64_t slice_start_time;
int64_t slice_end_time;
diff --git a/include/qemu/thread-win32.h b/include/qemu/thread-win32.h
index 50af5dd..d0a1a95 100644
--- a/include/qemu/thread-win32.h
+++ b/include/qemu/thread-win32.h
@@ -47,6 +47,6 @@ struct QemuThread {
};
/* Only valid for joinable threads. */
-HANDLE qemu_thread_get_handle(QemuThread *thread);
+HANDLE qemu_thread_get_handle(struct QemuThread *thread);
#endif
diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h
index fcdaae5..375770a 100644
--- a/include/qemu/typedefs.h
+++ b/include/qemu/typedefs.h
@@ -1,10 +1,26 @@
#ifndef QEMU_TYPEDEFS_H
#define QEMU_TYPEDEFS_H
-/* A load of opaque types so that device init declarations don't have to
- pull in all the real definitions. */
+/*
+ * This header is for selectively avoiding #include just to get a
+ * typedef name.
+ *
+ * Declaring a typedef name in its "obvious" place can result in
+ * inclusion cycles, in particular for complete struct and union
+ * types that need more types for their members. It can also result
+ * in headers pulling in many more headers, slowing down builds.
+ *
+ * You can break such cycles and unwanted dependencies by declaring
+ * the typedef name here.
+ *
+ * For struct types used in only a few headers, judicious use of the
+ * struct tag instead of the typedef name is commonly preferable.
+ */
-/* Please keep this list in case-insensitive alphabetical order */
+/*
+ * Incomplete struct types
+ * Please keep this list in case-insensitive alphabetical order.
+ */
typedef struct AdapterInfo AdapterInfo;
typedef struct AddressSpace AddressSpace;
typedef struct AioContext AioContext;
@@ -33,6 +49,7 @@ typedef struct FWCfgEntry FWCfgEntry;
typedef struct FWCfgIoState FWCfgIoState;
typedef struct FWCfgMemState FWCfgMemState;
typedef struct FWCfgState FWCfgState;
+typedef struct HostMemoryBackend HostMemoryBackend;
typedef struct HVFX86EmulatorState HVFX86EmulatorState;
typedef struct I2CBus I2CBus;
typedef struct I2SCodec I2SCodec;
@@ -101,7 +118,22 @@ typedef struct SHPCDevice SHPCDevice;
typedef struct SSIBus SSIBus;
typedef struct VirtIODevice VirtIODevice;
typedef struct Visitor Visitor;
+typedef struct VMChangeStateEntry VMChangeStateEntry;
+typedef struct VMStateDescription VMStateDescription;
+
+/*
+ * Pointer types
+ * Such typedefs should be limited to cases where the typedef's users
+ * are oblivious of its "pointer-ness".
+ * Please keep this list in case-insensitive alphabetical order.
+ */
+typedef struct IRQState *qemu_irq;
+
+/*
+ * Function types
+ */
typedef void SaveStateHandler(QEMUFile *f, void *opaque);
typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
+typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
#endif /* QEMU_TYPEDEFS_H */
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index 5ee0046..ddb91bb 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -215,7 +215,7 @@ typedef struct CPUClass {
int (*write_elf32_qemunote)(WriteCoreDumpFunction f, CPUState *cpu,
void *opaque);
- const struct VMStateDescription *vmsd;
+ const VMStateDescription *vmsd;
const char *gdb_core_xml_file;
gchar * (*gdb_arch_name)(CPUState *cpu);
const char * (*gdb_get_dynamic_xml)(CPUState *cpu, const char *xmlname);
@@ -1108,7 +1108,7 @@ bool target_words_bigendian(void);
#ifdef NEED_CPU_H
#ifdef CONFIG_SOFTMMU
-extern const struct VMStateDescription vmstate_cpu_common;
+extern const VMStateDescription vmstate_cpu_common;
#else
#define vmstate_cpu_common vmstate_dummy
#endif
diff --git a/include/qom/object.h b/include/qom/object.h
index 7bb82a7..128d00c 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -15,7 +15,6 @@
#define QEMU_OBJECT_H
#include "qapi/qapi-builtin-types.h"
-#include "qemu/queue.h"
#include "qemu/module.h"
struct TypeImpl;
diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h
index 89ce57e..8eb60b8 100644
--- a/include/sysemu/accel.h
+++ b/include/sysemu/accel.h
@@ -24,7 +24,6 @@
#define HW_ACCEL_H
#include "qom/object.h"
-#include "hw/qdev-properties.h"
#include "exec/hwaddr.h"
typedef struct AccelState {
diff --git a/include/sysemu/arch_init.h b/include/sysemu/arch_init.h
index 10cbafe..62c6fe4 100644
--- a/include/sysemu/arch_init.h
+++ b/include/sysemu/arch_init.h
@@ -1,7 +1,6 @@
#ifndef QEMU_ARCH_INIT_H
#define QEMU_ARCH_INIT_H
-#include "qapi/qapi-types-misc.h"
enum {
QEMU_ARCH_ALL = -1,
diff --git a/include/sysemu/balloon.h b/include/sysemu/balloon.h
index c8f6145..aea0c44 100644
--- a/include/sysemu/balloon.h
+++ b/include/sysemu/balloon.h
@@ -14,6 +14,7 @@
#ifndef QEMU_BALLOON_H
#define QEMU_BALLOON_H
+#include "exec/cpu-common.h"
#include "qapi/qapi-types-misc.h"
typedef void (QEMUBalloonEvent)(void *opaque, ram_addr_t target);
diff --git a/include/sysemu/cryptodev-vhost-user.h b/include/sysemu/cryptodev-vhost-user.h
index 6debf53..0d3421e 100644
--- a/include/sysemu/cryptodev-vhost-user.h
+++ b/include/sysemu/cryptodev-vhost-user.h
@@ -20,9 +20,12 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
*/
+
#ifndef CRYPTODEV_VHOST_USER_H
#define CRYPTODEV_VHOST_USER_H
+#include "sysemu/cryptodev-vhost.h"
+
#define VHOST_USER_MAX_AUTH_KEY_LEN 512
#define VHOST_USER_MAX_CIPHER_KEY_LEN 64
diff --git a/include/sysemu/cryptodev.h b/include/sysemu/cryptodev.h
index 92bbb79..a9afb7e 100644
--- a/include/sysemu/cryptodev.h
+++ b/include/sysemu/cryptodev.h
@@ -23,6 +23,7 @@
#ifndef CRYPTODEV_H
#define CRYPTODEV_H
+#include "qemu/queue.h"
#include "qom/object.h"
/**
diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h
index 5da3c4e..80c5bc3 100644
--- a/include/sysemu/dma.h
+++ b/include/sysemu/dma.h
@@ -12,7 +12,6 @@
#include "exec/memory.h"
#include "exec/address-spaces.h"
-#include "hw/hw.h"
#include "block/block.h"
#include "block/accounting.h"
diff --git a/include/sysemu/hax.h b/include/sysemu/hax.h
index f005995..9b27e65 100644
--- a/include/sysemu/hax.h
+++ b/include/sysemu/hax.h
@@ -37,7 +37,6 @@ void hax_cpu_synchronize_pre_loadvm(CPUState *cpu);
int hax_enabled(void);
-#include "hw/hw.h"
#include "qemu/bitops.h"
#include "exec/memory.h"
int hax_vcpu_destroy(CPUState *cpu);
diff --git a/include/sysemu/hostmem.h b/include/sysemu/hostmem.h
index 92fa0e4..4dbdadd 100644
--- a/include/sysemu/hostmem.h
+++ b/include/sysemu/hostmem.h
@@ -13,7 +13,7 @@
#ifndef SYSEMU_HOSTMEM_H
#define SYSEMU_HOSTMEM_H
-#include "sysemu/sysemu.h" /* for MAX_NODES */
+#include "sysemu/numa.h"
#include "qapi/qapi-types-machine.h"
#include "qom/object.h"
#include "exec/memory.h"
@@ -27,7 +27,6 @@
#define MEMORY_BACKEND_CLASS(klass) \
OBJECT_CLASS_CHECK(HostMemoryBackendClass, (klass), TYPE_MEMORY_BACKEND)
-typedef struct HostMemoryBackend HostMemoryBackend;
typedef struct HostMemoryBackendClass HostMemoryBackendClass;
/**
diff --git a/include/sysemu/hvf.h b/include/sysemu/hvf.h
index d275b5a..d211e80 100644
--- a/include/sysemu/hvf.h
+++ b/include/sysemu/hvf.h
@@ -13,6 +13,7 @@
#ifndef HVF_H
#define HVF_H
+#include "cpu.h"
#include "qemu/bitops.h"
#include "exec/memory.h"
#include "sysemu/accel.h"
@@ -23,7 +24,6 @@ extern bool hvf_allowed;
#include <Hypervisor/hv_vmx.h>
#include <Hypervisor/hv_error.h>
#include "target/i386/cpu.h"
-#include "hw/hw.h"
uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t idx,
int reg);
#define hvf_enabled() (hvf_allowed)
diff --git a/include/sysemu/iothread.h b/include/sysemu/iothread.h
index 5f6240d..6181486 100644
--- a/include/sysemu/iothread.h
+++ b/include/sysemu/iothread.h
@@ -16,6 +16,7 @@
#include "block/aio.h"
#include "qemu/thread.h"
+#include "qom/object.h"
#define TYPE_IOTHREAD "iothread"
diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
index acd90ae..c8ea412 100644
--- a/include/sysemu/kvm.h
+++ b/include/sysemu/kvm.h
@@ -17,7 +17,6 @@
#include "qemu/queue.h"
#include "qom/cpu.h"
#include "exec/memattrs.h"
-#include "hw/irq.h"
#ifdef NEED_CPU_H
# ifdef CONFIG_KVM
diff --git a/include/sysemu/kvm_int.h b/include/sysemu/kvm_int.h
index 31df465..72b2d1b 100644
--- a/include/sysemu/kvm_int.h
+++ b/include/sysemu/kvm_int.h
@@ -9,7 +9,7 @@
#ifndef QEMU_KVM_INT_H
#define QEMU_KVM_INT_H
-#include "sysemu/sysemu.h"
+#include "exec/memory.h"
#include "sysemu/accel.h"
#include "sysemu/kvm.h"
diff --git a/include/sysemu/memory_mapping.h b/include/sysemu/memory_mapping.h
index 5845245..4b20f1a 100644
--- a/include/sysemu/memory_mapping.h
+++ b/include/sysemu/memory_mapping.h
@@ -15,6 +15,7 @@
#define MEMORY_MAPPING_H
#include "qemu/queue.h"
+#include "exec/cpu-defs.h"
#include "exec/memory.h"
typedef struct GuestPhysBlock {
diff --git a/include/sysemu/numa.h b/include/sysemu/numa.h
index 01a263e..7a4ce89 100644
--- a/include/sysemu/numa.h
+++ b/include/sysemu/numa.h
@@ -2,9 +2,17 @@
#define SYSEMU_NUMA_H
#include "qemu/bitmap.h"
-#include "sysemu/sysemu.h"
-#include "sysemu/hostmem.h"
-#include "hw/boards.h"
+#include "qapi/qapi-types-machine.h"
+#include "exec/cpu-common.h"
+
+struct CPUArchId;
+
+#define MAX_NODES 128
+#define NUMA_NODE_UNASSIGNED MAX_NODES
+#define NUMA_DISTANCE_MIN 10
+#define NUMA_DISTANCE_DEFAULT 20
+#define NUMA_DISTANCE_MAX 254
+#define NUMA_DISTANCE_UNREACHABLE 255
extern int nb_numa_nodes; /* Number of NUMA nodes */
extern bool have_numa_distance;
@@ -32,5 +40,7 @@ void numa_legacy_auto_assign_ram(MachineClass *mc, NodeInfo *nodes,
int nb_nodes, ram_addr_t size);
void numa_default_auto_assign_ram(MachineClass *mc, NodeInfo *nodes,
int nb_nodes, ram_addr_t size);
-void numa_cpu_pre_plug(const CPUArchId *slot, DeviceState *dev, Error **errp);
+void numa_cpu_pre_plug(const struct CPUArchId *slot, DeviceState *dev,
+ Error **errp);
+
#endif
diff --git a/include/sysemu/replay.h b/include/sysemu/replay.h
index 3a7c58e..2f2ccdb 100644
--- a/include/sysemu/replay.h
+++ b/include/sysemu/replay.h
@@ -12,8 +12,8 @@
*
*/
-#include "sysemu.h"
#include "qapi/qapi-types-misc.h"
+#include "qapi/qapi-types-run-state.h"
#include "qapi/qapi-types-ui.h"
/* replay clock kinds */
diff --git a/include/sysemu/rng.h b/include/sysemu/rng.h
index 2a02f47..9b22c15 100644
--- a/include/sysemu/rng.h
+++ b/include/sysemu/rng.h
@@ -13,6 +13,7 @@
#ifndef QEMU_RNG_H
#define QEMU_RNG_H
+#include "qemu/queue.h"
#include "qom/object.h"
#define TYPE_RNG_BACKEND "rng-backend"
diff --git a/include/sysemu/runstate.h b/include/sysemu/runstate.h
new file mode 100644
index 0000000..0b41555
--- /dev/null
+++ b/include/sysemu/runstate.h
@@ -0,0 +1,68 @@
+#ifndef SYSEMU_RUNSTATE_H
+#define SYSEMU_RUNSTATE_H
+
+#include "qapi/qapi-types-run-state.h"
+#include "qemu/notify.h"
+
+bool runstate_check(RunState state);
+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 void VMChangeStateHandler(void *opaque, int running, RunState state);
+
+VMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb,
+ void *opaque);
+VMChangeStateEntry *qemu_add_vm_change_state_handler_prio(
+ VMChangeStateHandler *cb, void *opaque, int priority);
+VMChangeStateEntry *qdev_add_vm_change_state_handler(DeviceState *dev,
+ VMChangeStateHandler *cb,
+ void *opaque);
+void qemu_del_vm_change_state_handler(VMChangeStateEntry *e);
+void vm_state_notify(int running, RunState state);
+
+static inline bool shutdown_caused_by_guest(ShutdownCause cause)
+{
+ return cause >= SHUTDOWN_CAUSE_GUEST_SHUTDOWN;
+}
+
+void vm_start(void);
+int vm_prepare_start(void);
+int vm_stop(RunState state);
+int vm_stop_force_state(RunState state);
+int vm_shutdown(void);
+
+typedef enum WakeupReason {
+ /* Always keep QEMU_WAKEUP_REASON_NONE = 0 */
+ QEMU_WAKEUP_REASON_NONE = 0,
+ QEMU_WAKEUP_REASON_RTC,
+ QEMU_WAKEUP_REASON_PMTIMER,
+ QEMU_WAKEUP_REASON_OTHER,
+} WakeupReason;
+
+void qemu_exit_preconfig_request(void);
+void qemu_system_reset_request(ShutdownCause reason);
+void qemu_system_suspend_request(void);
+void qemu_register_suspend_notifier(Notifier *notifier);
+bool qemu_wakeup_suspend_enabled(void);
+void qemu_system_wakeup_request(WakeupReason reason, Error **errp);
+void qemu_system_wakeup_enable(WakeupReason reason, bool enabled);
+void qemu_register_wakeup_notifier(Notifier *notifier);
+void qemu_register_wakeup_support(void);
+void qemu_system_shutdown_request(ShutdownCause reason);
+void qemu_system_powerdown_request(void);
+void qemu_register_powerdown_notifier(Notifier *notifier);
+void qemu_register_shutdown_notifier(Notifier *notifier);
+void qemu_system_debug_request(void);
+void qemu_system_vmstop_request(RunState reason);
+void qemu_system_vmstop_request_prepare(void);
+bool qemu_vmstop_requested(RunState *r);
+ShutdownCause qemu_shutdown_requested_get(void);
+ShutdownCause qemu_reset_requested_get(void);
+void qemu_system_killed(int signal, pid_t pid);
+void qemu_system_reset(ShutdownCause reason);
+void qemu_system_guest_panicked(GuestPanicInformation *info);
+
+#endif
+
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 984c439..d2c38f6 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -2,12 +2,8 @@
#define SYSEMU_H
/* Misc. things related to the system emulator. */
-#include "qapi/qapi-types-run-state.h"
-#include "qemu/queue.h"
#include "qemu/timer.h"
#include "qemu/notify.h"
-#include "qemu/main-loop.h"
-#include "qemu/bitmap.h"
#include "qemu/uuid.h"
#include "qom/object.h"
@@ -19,63 +15,6 @@ extern const char *qemu_name;
extern QemuUUID qemu_uuid;
extern bool qemu_uuid_set;
-bool runstate_check(RunState state);
-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,
- void *opaque);
-VMChangeStateEntry *qemu_add_vm_change_state_handler_prio(
- VMChangeStateHandler *cb, void *opaque, int priority);
-void qemu_del_vm_change_state_handler(VMChangeStateEntry *e);
-void vm_state_notify(int running, RunState state);
-
-static inline bool shutdown_caused_by_guest(ShutdownCause cause)
-{
- return cause >= SHUTDOWN_CAUSE_GUEST_SHUTDOWN;
-}
-
-void vm_start(void);
-int vm_prepare_start(void);
-int vm_stop(RunState state);
-int vm_stop_force_state(RunState state);
-int vm_shutdown(void);
-
-typedef enum WakeupReason {
- /* Always keep QEMU_WAKEUP_REASON_NONE = 0 */
- QEMU_WAKEUP_REASON_NONE = 0,
- QEMU_WAKEUP_REASON_RTC,
- QEMU_WAKEUP_REASON_PMTIMER,
- QEMU_WAKEUP_REASON_OTHER,
-} WakeupReason;
-
-void qemu_exit_preconfig_request(void);
-void qemu_system_reset_request(ShutdownCause reason);
-void qemu_system_suspend_request(void);
-void qemu_register_suspend_notifier(Notifier *notifier);
-bool qemu_wakeup_suspend_enabled(void);
-void qemu_system_wakeup_request(WakeupReason reason, Error **errp);
-void qemu_system_wakeup_enable(WakeupReason reason, bool enabled);
-void qemu_register_wakeup_notifier(Notifier *notifier);
-void qemu_register_wakeup_support(void);
-void qemu_system_shutdown_request(ShutdownCause reason);
-void qemu_system_powerdown_request(void);
-void qemu_register_powerdown_notifier(Notifier *notifier);
-void qemu_register_shutdown_notifier(Notifier *notifier);
-void qemu_system_debug_request(void);
-void qemu_system_vmstop_request(RunState reason);
-void qemu_system_vmstop_request_prepare(void);
-bool qemu_vmstop_requested(RunState *r);
-ShutdownCause qemu_shutdown_requested_get(void);
-ShutdownCause qemu_reset_requested_get(void);
-void qemu_system_killed(int signal, pid_t pid);
-void qemu_system_reset(ShutdownCause reason);
-void qemu_system_guest_panicked(GuestPanicInformation *info);
-
void qemu_add_exit_notifier(Notifier *notify);
void qemu_remove_exit_notifier(Notifier *notify);
@@ -119,13 +58,6 @@ extern QEMUClockType rtc_clock;
extern const char *mem_path;
extern int mem_prealloc;
-#define MAX_NODES 128
-#define NUMA_NODE_UNASSIGNED MAX_NODES
-#define NUMA_DISTANCE_MIN 10
-#define NUMA_DISTANCE_DEFAULT 20
-#define NUMA_DISTANCE_MAX 254
-#define NUMA_DISTANCE_UNREACHABLE 255
-
#define MAX_OPTION_ROMS 16
typedef struct QEMUOptionRom {
const char *name;
diff --git a/include/sysemu/xen-mapcache.h b/include/sysemu/xen-mapcache.h
index a03e2f1..c8e7c2f 100644
--- a/include/sysemu/xen-mapcache.h
+++ b/include/sysemu/xen-mapcache.h
@@ -9,6 +9,8 @@
#ifndef XEN_MAPCACHE_H
#define XEN_MAPCACHE_H
+#include "exec/cpu-common.h"
+
typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset,
ram_addr_t size);
#ifdef CONFIG_XEN
diff --git a/include/ui/egl-helpers.h b/include/ui/egl-helpers.h
index d714127..dad19e9 100644
--- a/include/ui/egl-helpers.h
+++ b/include/ui/egl-helpers.h
@@ -4,6 +4,8 @@
#include <epoxy/gl.h>
#include <epoxy/egl.h>
#include <gbm.h>
+#include "ui/console.h"
+#include "ui/shader.h"
extern EGLDisplay *qemu_egl_display;
extern EGLConfig qemu_egl_config;
diff --git a/include/ui/input.h b/include/ui/input.h
index 8c8ccb9..c86219a 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -2,6 +2,7 @@
#define INPUT_H
#include "qapi/qapi-types-ui.h"
+#include "qemu/notify.h"
#define INPUT_EVENT_MASK_KEY (1<<INPUT_EVENT_KIND_KEY)
#define INPUT_EVENT_MASK_BTN (1<<INPUT_EVENT_KIND_BTN)
diff --git a/include/ui/spice-display.h b/include/ui/spice-display.h
index eed60e4..4a47ffd 100644
--- a/include/ui/spice-display.h
+++ b/include/ui/spice-display.h
@@ -18,6 +18,7 @@
#ifndef UI_SPICE_DISPLAY_H
#define UI_SPICE_DISPLAY_H
+#include <spice.h>
#include <spice/ipc_ring.h>
#include <spice/enums.h>
#include <spice/qxl_dev.h>
@@ -25,7 +26,6 @@
#include "qemu/thread.h"
#include "ui/qemu-pixman.h"
#include "ui/console.h"
-#include "sysemu/sysemu.h"
#if defined(CONFIG_OPENGL_DMABUF)
# if SPICE_SERVER_VERSION >= 0x000d01 /* release 0.13.1 */