aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS4
-rw-r--r--VERSION2
-rw-r--r--accel/kvm/kvm-all.c4
-rw-r--r--accel/stubs/tcg-stub.c1
-rw-r--r--accel/tcg/tcg-all.c1
-rw-r--r--audio/audio.c4
-rw-r--r--audio/spiceaudio.c1
-rw-r--r--audio/wavcapture.c1
-rw-r--r--backends/cryptodev-builtin.c1
-rw-r--r--backends/cryptodev-vhost-user.c1
-rw-r--r--backends/cryptodev.c1
-rw-r--r--backends/hostmem.c1
-rw-r--r--backends/vhost-user.c1
-rw-r--r--balloon.c1
-rw-r--r--block.c1
-rw-r--r--block/block-backend.c4
-rw-r--r--block/create.c1
-rw-r--r--block/io.c19
-rw-r--r--block/nbd.c196
-rw-r--r--block/nfs.c2
-rw-r--r--block/nvme.c1
-rw-r--r--block/qcow2.c1
-rw-r--r--block/qed.c1
-rw-r--r--block/sheepdog.c1
-rw-r--r--block/stream.c24
-rw-r--r--block/throttle-groups.c1
-rw-r--r--blockdev-nbd.c1
-rw-r--r--blockdev.c2
-rw-r--r--blockjob.c1
-rw-r--r--chardev/baum.c1
-rw-r--r--chardev/char-pipe.c1
-rw-r--r--chardev/char-win-stdio.c1
-rw-r--r--chardev/char-win.c1
-rw-r--r--cpus.c3
-rw-r--r--device-hotplug.c1
-rw-r--r--dump/dump.c3
-rw-r--r--dump/win_dump.c1
-rw-r--r--exec.c3
-rw-r--r--fsdev/qemu-fsdev-throttle.c1
-rw-r--r--fsdev/qemu-fsdev-throttle.h1
-rw-r--r--gdbstub.c1
-rw-r--r--hw/9pfs/9p.c1
-rw-r--r--hw/9pfs/codir.c1
-rw-r--r--hw/9pfs/cofile.c1
-rw-r--r--hw/9pfs/cofs.c1
-rw-r--r--hw/9pfs/coth.c1
-rw-r--r--hw/9pfs/coth.h1
-rw-r--r--hw/9pfs/coxattr.c1
-rw-r--r--hw/9pfs/virtio-9p-device.c1
-rw-r--r--hw/9pfs/xen-9p-backend.c2
-rw-r--r--hw/acpi/core.c4
-rw-r--r--hw/acpi/cpu.c1
-rw-r--r--hw/acpi/cpu_hotplug.c1
-rw-r--r--hw/acpi/ich9.c7
-rw-r--r--hw/acpi/memory_hotplug.c1
-rw-r--r--hw/acpi/pcihp.c3
-rw-r--r--hw/acpi/piix4.c8
-rw-r--r--hw/acpi/tco.c2
-rw-r--r--hw/acpi/vmgenid.c4
-rw-r--r--hw/adc/stm32f2xx_adc.c2
-rw-r--r--hw/alpha/alpha_sys.h1
-rw-r--r--hw/alpha/dp264.c2
-rw-r--r--hw/alpha/pci.c1
-rw-r--r--hw/alpha/typhoon.c4
-rw-r--r--hw/arm/allwinner-a10.c2
-rw-r--r--hw/arm/armsse.c2
-rw-r--r--hw/arm/armv7m.c2
-rw-r--r--hw/arm/aspeed.c1
-rw-r--r--hw/arm/aspeed_soc.c1
-rw-r--r--hw/arm/boot.c3
-rw-r--r--hw/arm/collie.c1
-rw-r--r--hw/arm/cubieboard.c1
-rw-r--r--hw/arm/digic.c1
-rw-r--r--hw/arm/exynos4210.c4
-rw-r--r--hw/arm/exynos4_boards.c2
-rw-r--r--hw/arm/fsl-imx25.c2
-rw-r--r--hw/arm/fsl-imx31.c2
-rw-r--r--hw/arm/fsl-imx6.c1
-rw-r--r--hw/arm/gumstix.c1
-rw-r--r--hw/arm/highbank.c2
-rw-r--r--hw/arm/integratorcp.c4
-rw-r--r--hw/arm/kzm.c1
-rw-r--r--hw/arm/mainstone.c1
-rw-r--r--hw/arm/mcimx6ul-evk.c1
-rw-r--r--hw/arm/mcimx7d-sabre.c1
-rw-r--r--hw/arm/microbit.c1
-rw-r--r--hw/arm/msf2-soc.c4
-rw-r--r--hw/arm/msf2-som.c1
-rw-r--r--hw/arm/musicpal.c5
-rw-r--r--hw/arm/netduino2.c1
-rw-r--r--hw/arm/nrf51_soc.c2
-rw-r--r--hw/arm/nseries.c3
-rw-r--r--hw/arm/omap1.c6
-rw-r--r--hw/arm/omap2.c6
-rw-r--r--hw/arm/omap_sx1.c1
-rw-r--r--hw/arm/palm.c3
-rw-r--r--hw/arm/pxa2xx.c3
-rw-r--r--hw/arm/pxa2xx_gpio.c3
-rw-r--r--hw/arm/pxa2xx_pic.c2
-rw-r--r--hw/arm/realview.c1
-rw-r--r--hw/arm/sabrelite.c1
-rw-r--r--hw/arm/sbsa-ref.c2
-rw-r--r--hw/arm/smmu-common.c1
-rw-r--r--hw/arm/smmuv3.c4
-rw-r--r--hw/arm/spitz.c5
-rw-r--r--hw/arm/stellaris.c3
-rw-r--r--hw/arm/stm32f205_soc.c2
-rw-r--r--hw/arm/strongarm.c3
-rw-r--r--hw/arm/sysbus-fdt.c1
-rw-r--r--hw/arm/tosa.c4
-rw-r--r--hw/arm/versatilepb.c2
-rw-r--r--hw/arm/virt-acpi-build.c3
-rw-r--r--hw/arm/virt.c4
-rw-r--r--hw/arm/xlnx-zynqmp.c1
-rw-r--r--hw/arm/z2.c4
-rw-r--r--hw/audio/ac97.c3
-rw-r--r--hw/audio/adlib.c2
-rw-r--r--hw/audio/cs4231.c1
-rw-r--r--hw/audio/cs4231a.c5
-rw-r--r--hw/audio/es1370.c2
-rw-r--r--hw/audio/gus.c4
-rw-r--r--hw/audio/hda-codec.c3
-rw-r--r--hw/audio/intel-hda.c3
-rw-r--r--hw/audio/intel-hda.h2
-rw-r--r--hw/audio/lm4549.c1
-rw-r--r--hw/audio/lm4549.h1
-rw-r--r--hw/audio/marvell_88w8618.c4
-rw-r--r--hw/audio/milkymist-ac97.c3
-rw-r--r--hw/audio/pcspk.c2
-rw-r--r--hw/audio/pl041.c3
-rw-r--r--hw/audio/sb16.c5
-rw-r--r--hw/audio/wm8750.c1
-rw-r--r--hw/block/dataplane/virtio-blk.c1
-rw-r--r--hw/block/dataplane/xen-block.c2
-rw-r--r--hw/block/ecc.c2
-rw-r--r--hw/block/fdc.c5
-rw-r--r--hw/block/m25p80.c3
-rw-r--r--hw/block/nand.c3
-rw-r--r--hw/block/nvme.c3
-rw-r--r--hw/block/onenand.c2
-rw-r--r--hw/block/pflash_cfi01.c5
-rw-r--r--hw/block/pflash_cfi02.c3
-rw-r--r--hw/block/tc58128.c1
-rw-r--r--hw/block/vhost-user-blk.c3
-rw-r--r--hw/block/virtio-blk.c4
-rw-r--r--hw/block/xen-block.c3
-rw-r--r--hw/char/bcm2835_aux.c3
-rw-r--r--hw/char/cadence_uart.c2
-rw-r--r--hw/char/cmsdk-apb-uart.c2
-rw-r--r--hw/char/debugcon.c2
-rw-r--r--hw/char/digic-uart.c3
-rw-r--r--hw/char/escc.c4
-rw-r--r--hw/char/etraxfs_ser.c2
-rw-r--r--hw/char/exynos4210_uart.c4
-rw-r--r--hw/char/grlib_apbuart.c2
-rw-r--r--hw/char/imx_serial.c4
-rw-r--r--hw/char/ipoctal232.c3
-rw-r--r--hw/char/lm32_juart.c3
-rw-r--r--hw/char/lm32_uart.c4
-rw-r--r--hw/char/mcf_uart.c3
-rw-r--r--hw/char/milkymist-uart.c4
-rw-r--r--hw/char/nrf51_uart.c3
-rw-r--r--hw/char/omap_uart.c1
-rw-r--r--hw/char/parallel-isa.c2
-rw-r--r--hw/char/parallel.c5
-rw-r--r--hw/char/pl011.c2
-rw-r--r--hw/char/sclpconsole-lm.c3
-rw-r--r--hw/char/sclpconsole.c3
-rw-r--r--hw/char/serial-isa.c3
-rw-r--r--hw/char/serial-pci-multi.c3
-rw-r--r--hw/char/serial-pci.c3
-rw-r--r--hw/char/serial.c4
-rw-r--r--hw/char/sh_serial.c3
-rw-r--r--hw/char/spapr_vty.c4
-rw-r--r--hw/char/stm32f2xx_usart.c2
-rw-r--r--hw/char/terminal3270.c1
-rw-r--r--hw/char/virtio-console.c1
-rw-r--r--hw/char/virtio-serial-bus.c3
-rw-r--r--hw/char/xen_console.c2
-rw-r--r--hw/char/xilinx_uartlite.c3
-rw-r--r--hw/core/bus.c2
-rw-r--r--hw/core/empty_slot.c1
-rw-r--r--hw/core/generic-loader.c2
-rw-r--r--hw/core/loader-fit.c1
-rw-r--r--hw/core/loader.c2
-rw-r--r--hw/core/machine-qmp-cmds.c2
-rw-r--r--hw/core/null-machine.c1
-rw-r--r--hw/core/numa.c5
-rw-r--r--hw/core/or-irq.c3
-rw-r--r--hw/core/platform-bus.c2
-rw-r--r--hw/core/ptimer.c3
-rw-r--r--hw/core/qdev-fw.c2
-rw-r--r--hw/core/qdev-properties-system.c2
-rw-r--r--hw/core/qdev-properties.c4
-rw-r--r--hw/core/qdev.c5
-rw-r--r--hw/core/register.c1
-rw-r--r--hw/core/split-irq.c2
-rw-r--r--hw/core/vm-change-state-handler.c3
-rw-r--r--hw/cpu/a15mpcore.c2
-rw-r--r--hw/cpu/a9mpcore.c2
-rw-r--r--hw/cpu/arm11mpcore.c2
-rw-r--r--hw/cpu/cluster.c1
-rw-r--r--hw/cpu/realview_mpcore.c2
-rw-r--r--hw/cris/boot.c2
-rw-r--r--hw/display/ads7846.c2
-rw-r--r--hw/display/ati.c2
-rw-r--r--hw/display/bcm2835_fb.c4
-rw-r--r--hw/display/bochs-display.c3
-rw-r--r--hw/display/cg3.c3
-rw-r--r--hw/display/cirrus_vga.c4
-rw-r--r--hw/display/cirrus_vga_isa.c2
-rw-r--r--hw/display/dpcd.c1
-rw-r--r--hw/display/edid-region.c1
-rw-r--r--hw/display/exynos4210_fimd.c3
-rw-r--r--hw/display/framebuffer.c1
-rw-r--r--hw/display/g364fb.c3
-rw-r--r--hw/display/i2c-ddc.c2
-rw-r--r--hw/display/jazz_led.c1
-rw-r--r--hw/display/milkymist-tmu2.c3
-rw-r--r--hw/display/milkymist-vgafb.c2
-rw-r--r--hw/display/omap_dss.c2
-rw-r--r--hw/display/omap_lcdc.c3
-rw-r--r--hw/display/pl110.c2
-rw-r--r--hw/display/pxa2xx_lcd.c2
-rw-r--r--hw/display/qxl-render.c1
-rw-r--r--hw/display/qxl.c5
-rw-r--r--hw/display/qxl.h1
-rw-r--r--hw/display/ramfb-standalone.c2
-rw-r--r--hw/display/ramfb.c3
-rw-r--r--hw/display/sii9022.c1
-rw-r--r--hw/display/sm501.c3
-rw-r--r--hw/display/ssd0303.c1
-rw-r--r--hw/display/ssd0323.c1
-rw-r--r--hw/display/tc6393xb.c4
-rw-r--r--hw/display/tcx.c2
-rw-r--r--hw/display/vga-isa-mm.c4
-rw-r--r--hw/display/vga-isa.c2
-rw-r--r--hw/display/vga-pci.c3
-rw-r--r--hw/display/vga.c4
-rw-r--r--hw/display/vhost-user-gpu.c1
-rw-r--r--hw/display/virtio-gpu-pci.c1
-rw-r--r--hw/display/virtio-gpu.c3
-rw-r--r--hw/display/virtio-vga.c2
-rw-r--r--hw/display/vmware_vga.c3
-rw-r--r--hw/display/xenfb.c1
-rw-r--r--hw/display/xlnx_dp.c2
-rw-r--r--hw/dma/bcm2835_dma.c2
-rw-r--r--hw/dma/etraxfs_dma.c5
-rw-r--r--hw/dma/i82374.c2
-rw-r--r--hw/dma/i8257.c3
-rw-r--r--hw/dma/pl080.c4
-rw-r--r--hw/dma/pl330.c3
-rw-r--r--hw/dma/puv3_dma.c1
-rw-r--r--hw/dma/pxa2xx_dma.c3
-rw-r--r--hw/dma/rc4030.c3
-rw-r--r--hw/dma/sparc32_dma.c4
-rw-r--r--hw/dma/xilinx_axidma.c3
-rw-r--r--hw/dma/xlnx-zdma.c3
-rw-r--r--hw/dma/xlnx-zynq-devcfg.c3
-rw-r--r--hw/dma/xlnx_dpdma.c2
-rw-r--r--hw/gpio/bcm2835_gpio.c2
-rw-r--r--hw/gpio/gpio_key.c2
-rw-r--r--hw/gpio/imx_gpio.c3
-rw-r--r--hw/gpio/max7310.c4
-rw-r--r--hw/gpio/mpc8xxx.c2
-rw-r--r--hw/gpio/nrf51_gpio.c2
-rw-r--r--hw/gpio/omap_gpio.c3
-rw-r--r--hw/gpio/pl061.c2
-rw-r--r--hw/gpio/puv3_gpio.c1
-rw-r--r--hw/gpio/zaurus.c3
-rw-r--r--hw/hppa/dino.c4
-rw-r--r--hw/hppa/hppa_sys.h1
-rw-r--r--hw/hppa/machine.c2
-rw-r--r--hw/hppa/pci.c1
-rw-r--r--hw/hyperv/hyperv_testdev.c1
-rw-r--r--hw/i2c/aspeed_i2c.c2
-rw-r--r--hw/i2c/bitbang_i2c.c2
-rw-r--r--hw/i2c/core.c2
-rw-r--r--hw/i2c/exynos4210_i2c.c2
-rw-r--r--hw/i2c/imx_i2c.c2
-rw-r--r--hw/i2c/microbit_i2c.c1
-rw-r--r--hw/i2c/mpc_i2c.c2
-rw-r--r--hw/i2c/omap_i2c.c3
-rw-r--r--hw/i2c/pm_smbus.c3
-rw-r--r--hw/i2c/ppc4xx_i2c.c2
-rw-r--r--hw/i2c/smbus_eeprom.c3
-rw-r--r--hw/i2c/smbus_ich9.c3
-rw-r--r--hw/i2c/smbus_master.c1
-rw-r--r--hw/i2c/smbus_slave.c2
-rw-r--r--hw/i386/acpi-build.c2
-rw-r--r--hw/i386/amd_iommu.c2
-rw-r--r--hw/i386/amd_iommu.h1
-rw-r--r--hw/i386/intel_iommu.c3
-rw-r--r--hw/i386/kvm/clock.c4
-rw-r--r--hw/i386/kvm/i8254.c3
-rw-r--r--hw/i386/kvm/i8259.c1
-rw-r--r--hw/i386/kvm/ioapic.c2
-rw-r--r--hw/i386/kvmvapic.c2
-rw-r--r--hw/i386/multiboot.c1
-rw-r--r--hw/i386/pc.c5
-rw-r--r--hw/i386/pc_piix.c3
-rw-r--r--hw/i386/pc_q35.c3
-rw-r--r--hw/i386/pc_sysfw.c3
-rw-r--r--hw/i386/vmmouse.c5
-rw-r--r--hw/i386/vmport.c2
-rw-r--r--hw/i386/x86-iommu.c1
-rw-r--r--hw/i386/xen/xen-hvm.c5
-rw-r--r--hw/i386/xen/xen-mapcache.c1
-rw-r--r--hw/i386/xen/xen_platform.c2
-rw-r--r--hw/i386/xen/xen_pvdevice.c3
-rw-r--r--hw/ide/ahci-allwinner.c2
-rw-r--r--hw/ide/ahci.c4
-rw-r--r--hw/ide/ahci_internal.h1
-rw-r--r--hw/ide/cmd646.c5
-rw-r--r--hw/ide/core.c5
-rw-r--r--hw/ide/ich.c2
-rw-r--r--hw/ide/ioport.c2
-rw-r--r--hw/ide/isa.c3
-rw-r--r--hw/ide/macio.c3
-rw-r--r--hw/ide/microdrive.c2
-rw-r--r--hw/ide/mmio.c3
-rw-r--r--hw/ide/pci.c2
-rw-r--r--hw/ide/piix.c4
-rw-r--r--hw/ide/qdev.c5
-rw-r--r--hw/ide/sii3112.c1
-rw-r--r--hw/ide/via.c4
-rw-r--r--hw/input/adb-kbd.c2
-rw-r--r--hw/input/adb-mouse.c1
-rw-r--r--hw/input/adb.c2
-rw-r--r--hw/input/hid.c3
-rw-r--r--hw/input/lm832x.c4
-rw-r--r--hw/input/milkymist-softusb.c4
-rw-r--r--hw/input/pckbd.c7
-rw-r--r--hw/input/pl050.c2
-rw-r--r--hw/input/ps2.c6
-rw-r--r--hw/input/pxa2xx_keypad.c2
-rw-r--r--hw/input/stellaris_input.c4
-rw-r--r--hw/input/tsc2005.c4
-rw-r--r--hw/input/tsc210x.c3
-rw-r--r--hw/input/vhost-user-input.c1
-rw-r--r--hw/input/virtio-input-hid.c2
-rw-r--r--hw/input/virtio-input-host.c2
-rw-r--r--hw/input/virtio-input.c2
-rw-r--r--hw/intc/allwinner-a10-pic.c3
-rw-r--r--hw/intc/apic_common.c4
-rw-r--r--hw/intc/arm_gic.c1
-rw-r--r--hw/intc/arm_gic_common.c2
-rw-r--r--hw/intc/arm_gicv2m.c2
-rw-r--r--hw/intc/arm_gicv3_common.c2
-rw-r--r--hw/intc/arm_gicv3_cpuif.c1
-rw-r--r--hw/intc/arm_gicv3_its_common.c1
-rw-r--r--hw/intc/arm_gicv3_its_kvm.c3
-rw-r--r--hw/intc/arm_gicv3_kvm.c2
-rw-r--r--hw/intc/armv7m_nvic.c3
-rw-r--r--hw/intc/aspeed_vic.c2
-rw-r--r--hw/intc/bcm2835_ic.c2
-rw-r--r--hw/intc/bcm2836_control.c2
-rw-r--r--hw/intc/etraxfs_pic.c3
-rw-r--r--hw/intc/exynos4210_combiner.c4
-rw-r--r--hw/intc/exynos4210_gic.c2
-rw-r--r--hw/intc/grlib_irqmp.c1
-rw-r--r--hw/intc/heathrow_pic.c3
-rw-r--r--hw/intc/i8259.c3
-rw-r--r--hw/intc/i8259_common.c3
-rw-r--r--hw/intc/imx_avic.c2
-rw-r--r--hw/intc/imx_gpcv2.c1
-rw-r--r--hw/intc/ioapic.c3
-rw-r--r--hw/intc/ioapic_common.c1
-rw-r--r--hw/intc/lm32_pic.c3
-rw-r--r--hw/intc/mips_gic.c5
-rw-r--r--hw/intc/nios2_iic.c1
-rw-r--r--hw/intc/omap_intc.c3
-rw-r--r--hw/intc/ompic.c4
-rw-r--r--hw/intc/openpic.c4
-rw-r--r--hw/intc/openpic_kvm.c2
-rw-r--r--hw/intc/pl190.c2
-rw-r--r--hw/intc/pnv_xive.c2
-rw-r--r--hw/intc/puv3_intc.c1
-rw-r--r--hw/intc/realview_gic.c2
-rw-r--r--hw/intc/s390_flic.c3
-rw-r--r--hw/intc/s390_flic_kvm.c1
-rw-r--r--hw/intc/sh_intc.c2
-rw-r--r--hw/intc/slavio_intctl.c2
-rw-r--r--hw/intc/spapr_xive.c3
-rw-r--r--hw/intc/spapr_xive_kvm.c1
-rw-r--r--hw/intc/xics.c5
-rw-r--r--hw/intc/xics_kvm.c1
-rw-r--r--hw/intc/xics_pnv.c1
-rw-r--r--hw/intc/xics_spapr.c1
-rw-r--r--hw/intc/xilinx_intc.c3
-rw-r--r--hw/intc/xive.c3
-rw-r--r--hw/intc/xlnx-pmu-iomod-intc.c3
-rw-r--r--hw/intc/xlnx-zynqmp-ipi.c2
-rw-r--r--hw/ipack/ipack.c3
-rw-r--r--hw/ipack/tpci200.c2
-rw-r--r--hw/ipmi/ipmi.c4
-rw-r--r--hw/ipmi/ipmi_bmc_extern.c3
-rw-r--r--hw/ipmi/ipmi_bmc_sim.c2
-rw-r--r--hw/ipmi/isa_ipmi_bt.c4
-rw-r--r--hw/ipmi/isa_ipmi_kcs.c4
-rw-r--r--hw/isa/apm.c2
-rw-r--r--hw/isa/i82378.c2
-rw-r--r--hw/isa/isa-superio.c1
-rw-r--r--hw/isa/lpc_ich9.c6
-rw-r--r--hw/isa/pc87312.c2
-rw-r--r--hw/isa/piix4.c3
-rw-r--r--hw/isa/vt82c686.c5
-rw-r--r--hw/lm32/lm32.h1
-rw-r--r--hw/lm32/lm32_boards.c3
-rw-r--r--hw/lm32/milkymist-hw.h2
-rw-r--r--hw/lm32/milkymist.c4
-rw-r--r--hw/m68k/an5206.c1
-rw-r--r--hw/m68k/mcf5206.c3
-rw-r--r--hw/m68k/mcf5208.c3
-rw-r--r--hw/m68k/mcf_intc.c1
-rw-r--r--hw/mem/memory-device.c1
-rw-r--r--hw/mem/nvdimm.c2
-rw-r--r--hw/mem/pc-dimm.c4
-rw-r--r--hw/microblaze/boot.c1
-rw-r--r--hw/microblaze/boot.h1
-rw-r--r--hw/microblaze/petalogix_ml605_mmu.c2
-rw-r--r--hw/microblaze/petalogix_s3adsp1800_mmu.c1
-rw-r--r--hw/microblaze/xlnx-zynqmp-pmu.c1
-rw-r--r--hw/mips/addr.c1
-rw-r--r--hw/mips/boston.c3
-rw-r--r--hw/mips/cps.c2
-rw-r--r--hw/mips/gt64xxx_pci.c3
-rw-r--r--hw/mips/mips_fulong2e.c2
-rw-r--r--hw/mips/mips_int.c2
-rw-r--r--hw/mips/mips_jazz.c2
-rw-r--r--hw/mips/mips_malta.c4
-rw-r--r--hw/mips/mips_mipssim.c3
-rw-r--r--hw/mips/mips_r4k.c4
-rw-r--r--hw/misc/a9scu.c2
-rw-r--r--hw/misc/applesmc.c2
-rw-r--r--hw/misc/arm11scu.c1
-rw-r--r--hw/misc/arm_integrator_debug.c1
-rw-r--r--hw/misc/arm_l2x0.c2
-rw-r--r--hw/misc/arm_sysctl.c6
-rw-r--r--hw/misc/armsse-cpuid.c2
-rw-r--r--hw/misc/armsse-mhu.c3
-rw-r--r--hw/misc/aspeed_scu.c1
-rw-r--r--hw/misc/aspeed_sdmc.c1
-rw-r--r--hw/misc/aspeed_xdma.c2
-rw-r--r--hw/misc/bcm2835_mbox.c2
-rw-r--r--hw/misc/bcm2835_property.c3
-rw-r--r--hw/misc/bcm2835_rng.c1
-rw-r--r--hw/misc/cbus.c2
-rw-r--r--hw/misc/debugexit.c2
-rw-r--r--hw/misc/eccmemctl.c3
-rw-r--r--hw/misc/edu.c1
-rw-r--r--hw/misc/exynos4210_clk.c1
-rw-r--r--hw/misc/exynos4210_pmu.c3
-rw-r--r--hw/misc/exynos4210_rng.c1
-rw-r--r--hw/misc/imx25_ccm.c1
-rw-r--r--hw/misc/imx31_ccm.c1
-rw-r--r--hw/misc/imx6_ccm.c1
-rw-r--r--hw/misc/imx6_src.c3
-rw-r--r--hw/misc/imx6ul_ccm.c1
-rw-r--r--hw/misc/imx7_ccm.c1
-rw-r--r--hw/misc/imx7_gpr.c1
-rw-r--r--hw/misc/imx7_snvs.c2
-rw-r--r--hw/misc/iotkit-secctl.c2
-rw-r--r--hw/misc/iotkit-sysctl.c4
-rw-r--r--hw/misc/iotkit-sysinfo.c2
-rw-r--r--hw/misc/ivshmem.c3
-rw-r--r--hw/misc/macio/cuda.c5
-rw-r--r--hw/misc/macio/gpio.c3
-rw-r--r--hw/misc/macio/mac_dbdma.c3
-rw-r--r--hw/misc/macio/macio.c4
-rw-r--r--hw/misc/macio/pmu.c6
-rw-r--r--hw/misc/max111x.c2
-rw-r--r--hw/misc/milkymist-hpdmc.c2
-rw-r--r--hw/misc/milkymist-pfpu.c3
-rw-r--r--hw/misc/mips_cmgcr.c4
-rw-r--r--hw/misc/mips_cpc.c2
-rw-r--r--hw/misc/mips_itu.c1
-rw-r--r--hw/misc/mos6522.c5
-rw-r--r--hw/misc/mps2-fpgaio.c2
-rw-r--r--hw/misc/mps2-scc.c2
-rw-r--r--hw/misc/msf2-sysreg.c2
-rw-r--r--hw/misc/mst_fpga.c3
-rw-r--r--hw/misc/nrf51_rng.c3
-rw-r--r--hw/misc/omap_clk.c2
-rw-r--r--hw/misc/omap_gpmc.c3
-rw-r--r--hw/misc/omap_l4.c1
-rw-r--r--hw/misc/omap_sdrc.c1
-rw-r--r--hw/misc/pc-testdev.c3
-rw-r--r--hw/misc/pca9552.c2
-rw-r--r--hw/misc/pci-testdev.c2
-rw-r--r--hw/misc/puv3_pm.c1
-rw-r--r--hw/misc/pvpanic.c3
-rw-r--r--hw/misc/sga.c1
-rw-r--r--hw/misc/slavio_misc.c4
-rw-r--r--hw/misc/tmp105.c3
-rw-r--r--hw/misc/tmp421.c2
-rw-r--r--hw/misc/tz-mpc.c3
-rw-r--r--hw/misc/tz-msc.c3
-rw-r--r--hw/misc/tz-ppc.c3
-rw-r--r--hw/misc/unimp.c1
-rw-r--r--hw/misc/vmcoreinfo.c2
-rw-r--r--hw/misc/zynq-xadc.c4
-rw-r--r--hw/misc/zynq_slcr.c4
-rw-r--r--hw/moxie/moxiesim.c3
-rw-r--r--hw/net/allwinner_emac.c3
-rw-r--r--hw/net/cadence_gem.c3
-rw-r--r--hw/net/can/can_kvaser_pci.c4
-rw-r--r--hw/net/can/can_mioe3680_pci.c4
-rw-r--r--hw/net/can/can_pcm3680_pci.c4
-rw-r--r--hw/net/can/can_sja1000.c4
-rw-r--r--hw/net/can/can_sja1000.h1
-rw-r--r--hw/net/dp8393x.c3
-rw-r--r--hw/net/e1000.c3
-rw-r--r--hw/net/e1000e.c3
-rw-r--r--hw/net/e1000e_core.c3
-rw-r--r--hw/net/e1000x_common.c1
-rw-r--r--hw/net/eepro100.c4
-rw-r--r--hw/net/fsl_etsec/etsec.c4
-rw-r--r--hw/net/fsl_etsec/etsec.h1
-rw-r--r--hw/net/ftgmac100.c3
-rw-r--r--hw/net/imx_fec.c3
-rw-r--r--hw/net/lan9118.c6
-rw-r--r--hw/net/lance.c2
-rw-r--r--hw/net/mcf_fec.c2
-rw-r--r--hw/net/milkymist-minimac2.c4
-rw-r--r--hw/net/mipsnet.c4
-rw-r--r--hw/net/ne2000-isa.c2
-rw-r--r--hw/net/ne2000-pci.c4
-rw-r--r--hw/net/ne2000.c4
-rw-r--r--hw/net/ne2000.h1
-rw-r--r--hw/net/opencores_eth.c4
-rw-r--r--hw/net/pcnet-pci.c3
-rw-r--r--hw/net/pcnet.c5
-rw-r--r--hw/net/pcnet.h1
-rw-r--r--hw/net/rocker/rocker.c3
-rw-r--r--hw/net/rocker/rocker_desc.c1
-rw-r--r--hw/net/rtl8139.c3
-rw-r--r--hw/net/smc91c111.c3
-rw-r--r--hw/net/spapr_llan.c5
-rw-r--r--hw/net/stellaris_enet.c3
-rw-r--r--hw/net/sungem.c2
-rw-r--r--hw/net/sunhme.c3
-rw-r--r--hw/net/vhost_net.c2
-rw-r--r--hw/net/virtio-net.c3
-rw-r--r--hw/net/vmxnet3.c54
-rw-r--r--hw/net/xen_nic.c1
-rw-r--r--hw/net/xgmac.c3
-rw-r--r--hw/net/xilinx_axienet.c4
-rw-r--r--hw/net/xilinx_ethlite.c3
-rw-r--r--hw/nios2/10m50_devboard.c2
-rw-r--r--hw/nios2/boot.c1
-rw-r--r--hw/nios2/boot.h1
-rw-r--r--hw/nios2/cpu_pic.c1
-rw-r--r--hw/nios2/generic_nommu.c2
-rw-r--r--hw/nvram/chrp_nvram.c1
-rw-r--r--hw/nvram/ds1225y.c2
-rw-r--r--hw/nvram/eeprom93xx.c3
-rw-r--r--hw/nvram/eeprom_at24c.c2
-rw-r--r--hw/nvram/fw_cfg.c5
-rw-r--r--hw/nvram/mac_nvram.c3
-rw-r--r--hw/nvram/nrf51_nvm.c2
-rw-r--r--hw/nvram/spapr_nvram.c4
-rw-r--r--hw/openrisc/cputimer.c2
-rw-r--r--hw/openrisc/openrisc_sim.c4
-rw-r--r--hw/openrisc/pic_cpu.c2
-rw-r--r--hw/pci-bridge/gen_pcie_root_port.c2
-rw-r--r--hw/pci-bridge/i82801b11.c1
-rw-r--r--hw/pci-bridge/ioh3420.c1
-rw-r--r--hw/pci-bridge/pci_bridge_dev.c1
-rw-r--r--hw/pci-bridge/pci_expander_bridge.c1
-rw-r--r--hw/pci-bridge/pcie_pci_bridge.c1
-rw-r--r--hw/pci-bridge/pcie_root_port.c1
-rw-r--r--hw/pci-bridge/xio3130_downstream.c2
-rw-r--r--hw/pci-bridge/xio3130_upstream.c1
-rw-r--r--hw/pci-host/bonito.c6
-rw-r--r--hw/pci-host/designware.c3
-rw-r--r--hw/pci-host/gpex.c4
-rw-r--r--hw/pci-host/grackle.c2
-rw-r--r--hw/pci-host/pam.c1
-rw-r--r--hw/pci-host/piix.c8
-rw-r--r--hw/pci-host/ppce500.c4
-rw-r--r--hw/pci-host/prep.c4
-rw-r--r--hw/pci-host/q35.c3
-rw-r--r--hw/pci-host/sabre.c4
-rw-r--r--hw/pci-host/uninorth.c3
-rw-r--r--hw/pci-host/versatile.c3
-rw-r--r--hw/pci-host/xilinx-pcie.c2
-rw-r--r--hw/pci/msix.c3
-rw-r--r--hw/pci/pci.c6
-rw-r--r--hw/pci/pcie_aer.c1
-rw-r--r--hw/pci/pcie_host.c1
-rw-r--r--hw/pci/pcie_port.c1
-rw-r--r--hw/pci/shpc.c1
-rw-r--r--hw/pcmcia/pcmcia.c1
-rw-r--r--hw/pcmcia/pxa2xx.c2
-rw-r--r--hw/ppc/e500.c5
-rw-r--r--hw/ppc/e500plat.c1
-rw-r--r--hw/ppc/mac.h1
-rw-r--r--hw/ppc/mac_newworld.c3
-rw-r--r--hw/ppc/mac_oldworld.c3
-rw-r--r--hw/ppc/mpc8544_guts.c3
-rw-r--r--hw/ppc/mpc8544ds.c1
-rw-r--r--hw/ppc/pnv.c5
-rw-r--r--hw/ppc/pnv_bmc.c2
-rw-r--r--hw/ppc/pnv_core.c3
-rw-r--r--hw/ppc/pnv_lpc.c2
-rw-r--r--hw/ppc/pnv_occ.c2
-rw-r--r--hw/ppc/pnv_psi.c4
-rw-r--r--hw/ppc/pnv_xscom.c1
-rw-r--r--hw/ppc/ppc.c7
-rw-r--r--hw/ppc/ppc405_boards.c3
-rw-r--r--hw/ppc/ppc405_uc.c5
-rw-r--r--hw/ppc/ppc440_bamboo.c2
-rw-r--r--hw/ppc/ppc440_pcix.c2
-rw-r--r--hw/ppc/ppc440_uc.c5
-rw-r--r--hw/ppc/ppc4xx_devs.c4
-rw-r--r--hw/ppc/ppc4xx_pci.c4
-rw-r--r--hw/ppc/ppc_booke.c5
-rw-r--r--hw/ppc/ppce500_spin.c1
-rw-r--r--hw/ppc/prep.c4
-rw-r--r--hw/ppc/prep_systemio.c5
-rw-r--r--hw/ppc/rs6000_mc.c2
-rw-r--r--hw/ppc/sam460ex.c3
-rw-r--r--hw/ppc/spapr.c6
-rw-r--r--hw/ppc/spapr_caps.c1
-rw-r--r--hw/ppc/spapr_cpu_core.c5
-rw-r--r--hw/ppc/spapr_drc.c3
-rw-r--r--hw/ppc/spapr_events.c5
-rw-r--r--hw/ppc/spapr_hcall.c3
-rw-r--r--hw/ppc/spapr_iommu.c3
-rw-r--r--hw/ppc/spapr_irq.c2
-rw-r--r--hw/ppc/spapr_ovec.c1
-rw-r--r--hw/ppc/spapr_pci.c4
-rw-r--r--hw/ppc/spapr_rng.c3
-rw-r--r--hw/ppc/spapr_rtas.c3
-rw-r--r--hw/ppc/spapr_rtc.c1
-rw-r--r--hw/ppc/spapr_vio.c5
-rw-r--r--hw/ppc/virtex_ml507.c3
-rw-r--r--hw/rdma/vmw/pvrdma_cmd.c1
-rw-r--r--hw/rdma/vmw/pvrdma_main.c4
-rw-r--r--hw/riscv/boot.c2
-rw-r--r--hw/riscv/riscv_hart.c2
-rw-r--r--hw/riscv/sifive_clint.c1
-rw-r--r--hw/riscv/sifive_e.c2
-rw-r--r--hw/riscv/sifive_gpio.c2
-rw-r--r--hw/riscv/sifive_plic.c1
-rw-r--r--hw/riscv/sifive_prci.c2
-rw-r--r--hw/riscv/sifive_test.c2
-rw-r--r--hw/riscv/sifive_u.c2
-rw-r--r--hw/riscv/sifive_uart.c2
-rw-r--r--hw/riscv/spike.c2
-rw-r--r--hw/riscv/virt.c2
-rw-r--r--hw/s390x/3270-ccw.c2
-rw-r--r--hw/s390x/ap-device.c1
-rw-r--r--hw/s390x/ccw-device.c1
-rw-r--r--hw/s390x/css-bridge.c1
-rw-r--r--hw/s390x/css.c2
-rw-r--r--hw/s390x/event-facility.c2
-rw-r--r--hw/s390x/ipl.c3
-rw-r--r--hw/s390x/ipl.h2
-rw-r--r--hw/s390x/s390-ccw.c1
-rw-r--r--hw/s390x/s390-pci-bus.c1
-rw-r--r--hw/s390x/s390-skeys.c1
-rw-r--r--hw/s390x/s390-stattrib.c1
-rw-r--r--hw/s390x/s390-virtio-ccw.c3
-rw-r--r--hw/s390x/sclpcpu.c1
-rw-r--r--hw/s390x/sclpquiesce.c4
-rw-r--r--hw/s390x/tod-kvm.c2
-rw-r--r--hw/s390x/tod.c1
-rw-r--r--hw/s390x/vhost-vsock-ccw.c1
-rw-r--r--hw/s390x/virtio-ccw-9p.c1
-rw-r--r--hw/s390x/virtio-ccw-balloon.c1
-rw-r--r--hw/s390x/virtio-ccw-blk.c1
-rw-r--r--hw/s390x/virtio-ccw-crypto.c1
-rw-r--r--hw/s390x/virtio-ccw-gpu.c1
-rw-r--r--hw/s390x/virtio-ccw-input.c1
-rw-r--r--hw/s390x/virtio-ccw-net.c1
-rw-r--r--hw/s390x/virtio-ccw-rng.c1
-rw-r--r--hw/s390x/virtio-ccw-scsi.c1
-rw-r--r--hw/s390x/virtio-ccw-serial.c1
-rw-r--r--hw/s390x/virtio-ccw.c3
-rw-r--r--hw/scsi/esp-pci.c2
-rw-r--r--hw/scsi/esp.c2
-rw-r--r--hw/scsi/lsi53c895a.c3
-rw-r--r--hw/scsi/megasas.c3
-rw-r--r--hw/scsi/mptconfig.c1
-rw-r--r--hw/scsi/mptendian.c1
-rw-r--r--hw/scsi/mptsas.c5
-rw-r--r--hw/scsi/scsi-bus.c7
-rw-r--r--hw/scsi/scsi-disk.c5
-rw-r--r--hw/scsi/scsi-generic.c2
-rw-r--r--hw/scsi/spapr_vscsi.c4
-rw-r--r--hw/scsi/vhost-scsi.c3
-rw-r--r--hw/scsi/vhost-user-scsi.c2
-rw-r--r--hw/scsi/virtio-scsi.c2
-rw-r--r--hw/scsi/vmw_pvscsi.c3
-rw-r--r--hw/sd/bcm2835_sdhost.c2
-rw-r--r--hw/sd/milkymist-memcard.c4
-rw-r--r--hw/sd/omap_mmc.c3
-rw-r--r--hw/sd/pl181.c2
-rw-r--r--hw/sd/pxa2xx_mmci.c4
-rw-r--r--hw/sd/sd.c4
-rw-r--r--hw/sd/sdhci-pci.c2
-rw-r--r--hw/sd/sdhci.c4
-rw-r--r--hw/sd/ssi-sd.c2
-rw-r--r--hw/semihosting/config.c1
-rw-r--r--hw/sh4/r2d.c5
-rw-r--r--hw/sh4/sh7750.c3
-rw-r--r--hw/sh4/sh7750_regnames.c1
-rw-r--r--hw/sh4/sh_pci.c1
-rw-r--r--hw/sh4/shix.c1
-rw-r--r--hw/smbios/smbios.c1
-rw-r--r--hw/sparc/leon3.c5
-rw-r--r--hw/sparc/sun4m.c6
-rw-r--r--hw/sparc/sun4m_iommu.c3
-rw-r--r--hw/sparc64/niagara.c3
-rw-r--r--hw/sparc64/sparc64.c1
-rw-r--r--hw/sparc64/sun4u.c5
-rw-r--r--hw/ssi/aspeed_smc.c4
-rw-r--r--hw/ssi/imx_spi.c3
-rw-r--r--hw/ssi/mss-spi.c2
-rw-r--r--hw/ssi/omap_spi.c2
-rw-r--r--hw/ssi/pl022.c2
-rw-r--r--hw/ssi/ssi.c1
-rw-r--r--hw/ssi/stm32f2xx_spi.c1
-rw-r--r--hw/ssi/xilinx_spi.c4
-rw-r--r--hw/ssi/xilinx_spips.c4
-rw-r--r--hw/timer/a9gtimer.c4
-rw-r--r--hw/timer/allwinner-a10-pit.c5
-rw-r--r--hw/timer/altera_timer.c4
-rw-r--r--hw/timer/arm_mptimer.c4
-rw-r--r--hw/timer/arm_timer.c4
-rw-r--r--hw/timer/armv7m_systick.c2
-rw-r--r--hw/timer/aspeed_rtc.c1
-rw-r--r--hw/timer/aspeed_timer.c2
-rw-r--r--hw/timer/cadence_ttc.c2
-rw-r--r--hw/timer/cmsdk-apb-dualtimer.c3
-rw-r--r--hw/timer/cmsdk-apb-timer.c2
-rw-r--r--hw/timer/digic-timer.c1
-rw-r--r--hw/timer/ds1338.c1
-rw-r--r--hw/timer/etraxfs_timer.c5
-rw-r--r--hw/timer/exynos4210_mct.c4
-rw-r--r--hw/timer/exynos4210_pwm.c2
-rw-r--r--hw/timer/exynos4210_rtc.c5
-rw-r--r--hw/timer/grlib_gptimer.c2
-rw-r--r--hw/timer/hpet.c3
-rw-r--r--hw/timer/i8254.c2
-rw-r--r--hw/timer/i8254_common.c3
-rw-r--r--hw/timer/imx_epit.c2
-rw-r--r--hw/timer/imx_gpt.c2
-rw-r--r--hw/timer/lm32_timer.c4
-rw-r--r--hw/timer/m48t59-isa.c1
-rw-r--r--hw/timer/m48t59.c5
-rw-r--r--hw/timer/mc146818rtc.c6
-rw-r--r--hw/timer/milkymist-sysctl.c7
-rw-r--r--hw/timer/mips_gictimer.c1
-rw-r--r--hw/timer/mss-timer.c3
-rw-r--r--hw/timer/nrf51_timer.c2
-rw-r--r--hw/timer/omap_gptimer.c3
-rw-r--r--hw/timer/omap_synctimer.c1
-rw-r--r--hw/timer/pl031.c3
-rw-r--r--hw/timer/puv3_ost.c1
-rw-r--r--hw/timer/pxa2xx_timer.c6
-rw-r--r--hw/timer/sh_timer.c1
-rw-r--r--hw/timer/slavio_timer.c3
-rw-r--r--hw/timer/stm32f2xx_timer.c3
-rw-r--r--hw/timer/sun4v-rtc.c1
-rw-r--r--hw/timer/twl92230.c4
-rw-r--r--hw/timer/xilinx_timer.c2
-rw-r--r--hw/timer/xlnx-zynqmp-rtc.c2
-rw-r--r--hw/tpm/tpm_crb.c2
-rw-r--r--hw/tpm/tpm_emulator.c2
-rw-r--r--hw/tpm/tpm_passthrough.c1
-rw-r--r--hw/tpm/tpm_ppi.c1
-rw-r--r--hw/tpm/tpm_tis.c3
-rw-r--r--hw/tpm/tpm_util.c2
-rw-r--r--hw/tpm/trace-events4
-rw-r--r--hw/tricore/tricore_testboard.c2
-rw-r--r--hw/unicore32/puv3.c1
-rw-r--r--hw/usb/bus.c4
-rw-r--r--hw/usb/ccid-card-emulated.c1
-rw-r--r--hw/usb/ccid-card-passthru.c2
-rw-r--r--hw/usb/ccid.h2
-rw-r--r--hw/usb/dev-audio.c3
-rw-r--r--hw/usb/dev-bluetooth.c1
-rw-r--r--hw/usb/dev-hid.c3
-rw-r--r--hw/usb/dev-hub.c2
-rw-r--r--hw/usb/dev-mtp.c2
-rw-r--r--hw/usb/dev-network.c2
-rw-r--r--hw/usb/dev-serial.c2
-rw-r--r--hw/usb/dev-smartcard-reader.c2
-rw-r--r--hw/usb/dev-storage.c2
-rw-r--r--hw/usb/dev-uas.c3
-rw-r--r--hw/usb/dev-wacom.c2
-rw-r--r--hw/usb/hcd-ehci-pci.c2
-rw-r--r--hw/usb/hcd-ehci-sysbus.c2
-rw-r--r--hw/usb/hcd-ehci.c4
-rw-r--r--hw/usb/hcd-ehci.h2
-rw-r--r--hw/usb/hcd-ohci-pci.c3
-rw-r--r--hw/usb/hcd-ohci.c4
-rw-r--r--hw/usb/hcd-uhci.c3
-rw-r--r--hw/usb/hcd-xhci-nec.c2
-rw-r--r--hw/usb/hcd-xhci.c3
-rw-r--r--hw/usb/host-libusb.c4
-rw-r--r--hw/usb/libhw.c1
-rw-r--r--hw/usb/redirect.c4
-rw-r--r--hw/usb/tusb6010.c1
-rw-r--r--hw/usb/xen-usb.c1
-rw-r--r--hw/vfio/amd-xgbe.c1
-rw-r--r--hw/vfio/ap.c4
-rw-r--r--hw/vfio/calxeda-xgmac.c1
-rw-r--r--hw/vfio/ccw.c2
-rw-r--r--hw/vfio/common.c2
-rw-r--r--hw/vfio/pci-quirks.c2
-rw-r--r--hw/vfio/pci.c5
-rw-r--r--hw/vfio/platform.c5
-rw-r--r--hw/virtio/vhost-backend.c1
-rw-r--r--hw/virtio/vhost-scsi-pci.c1
-rw-r--r--hw/virtio/vhost-user-blk-pci.c1
-rw-r--r--hw/virtio/vhost-user-scsi-pci.c1
-rw-r--r--hw/virtio/vhost-user.c1
-rw-r--r--hw/virtio/vhost-vsock-pci.c1
-rw-r--r--hw/virtio/vhost-vsock.c1
-rw-r--r--hw/virtio/vhost.c2
-rw-r--r--hw/virtio/virtio-9p-pci.c1
-rw-r--r--hw/virtio/virtio-balloon-pci.c1
-rw-r--r--hw/virtio/virtio-balloon.c1
-rw-r--r--hw/virtio/virtio-blk-pci.c1
-rw-r--r--hw/virtio/virtio-bus.c2
-rw-r--r--hw/virtio/virtio-crypto-pci.c1
-rw-r--r--hw/virtio/virtio-crypto.c3
-rw-r--r--hw/virtio/virtio-input-pci.c1
-rw-r--r--hw/virtio/virtio-mmio.c3
-rw-r--r--hw/virtio/virtio-net-pci.c1
-rw-r--r--hw/virtio/virtio-pci.c2
-rw-r--r--hw/virtio/virtio-pmem.c3
-rw-r--r--hw/virtio/virtio-rng.c4
-rw-r--r--hw/virtio/virtio-scsi-pci.c1
-rw-r--r--hw/virtio/virtio-serial-pci.c1
-rw-r--r--hw/virtio/virtio.c4
-rw-r--r--hw/watchdog/cmsdk-apb-watchdog.c3
-rw-r--r--hw/watchdog/watchdog.c2
-rw-r--r--hw/watchdog/wdt_aspeed.c2
-rw-r--r--hw/watchdog/wdt_diag288.c2
-rw-r--r--hw/watchdog/wdt_i6300esb.c2
-rw-r--r--hw/watchdog/wdt_ib700.c2
-rw-r--r--hw/xen/xen-bus-helper.c1
-rw-r--r--hw/xen/xen-bus.c2
-rw-r--r--hw/xen/xen-common.c1
-rw-r--r--hw/xen/xen-legacy-backend.c3
-rw-r--r--hw/xen/xen_devconfig.c1
-rw-r--r--hw/xen/xen_pt.c1
-rw-r--r--hw/xen/xen_pt_load_rom.c2
-rw-r--r--hw/xen/xen_pvdev.c1
-rw-r--r--hw/xenpv/xen_machine_pv.c2
-rw-r--r--hw/xtensa/mx_pic.c2
-rw-r--r--hw/xtensa/pic_cpu.c2
-rw-r--r--hw/xtensa/sim.c1
-rw-r--r--hw/xtensa/xtensa_memory.c2
-rw-r--r--hw/xtensa/xtensa_memory.h1
-rw-r--r--hw/xtensa/xtfpga.c4
-rw-r--r--include/authz/listfile.h1
-rw-r--r--include/block/block.h9
-rw-r--r--include/block/block_int.h1
-rw-r--r--include/block/nbd.h3
-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/qemu-file-types.h4
-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/qtest.h2
-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
-rw-r--r--linux-user/elfload.c1
-rw-r--r--linux-user/main.c1
-rw-r--r--linux-user/qemu.h1
-rw-r--r--linux-user/syscall.c1
-rw-r--r--memory.c5
-rw-r--r--migration/block-dirty-bitmap.c2
-rw-r--r--migration/block.c1
-rw-r--r--migration/colo.c3
-rw-r--r--migration/global_state.c1
-rw-r--r--migration/migration.c83
-rw-r--r--migration/migration.h5
-rw-r--r--migration/postcopy-ram.c71
-rw-r--r--migration/postcopy-ram.h13
-rw-r--r--migration/qemu-file-channel.c31
-rw-r--r--migration/qemu-file.c68
-rw-r--r--migration/qemu-file.h21
-rw-r--r--migration/ram.c217
-rw-r--r--migration/rdma.c7
-rw-r--r--migration/savevm.c100
-rw-r--r--migration/trace-events6
-rw-r--r--migration/vmstate-types.c1
-rw-r--r--monitor/hmp-cmds.c16
-rw-r--r--monitor/hmp.c2
-rw-r--r--monitor/misc.c2
-rw-r--r--monitor/monitor-internal.h1
-rw-r--r--monitor/monitor.c1
-rw-r--r--monitor/qmp-cmds.c2
-rw-r--r--nbd/client.c17
-rw-r--r--nbd/nbd-internal.h2
-rw-r--r--nbd/server.c44
-rw-r--r--net/can/can_socketcan.c1
-rw-r--r--net/net.c4
-rw-r--r--net/netmap.c1
-rw-r--r--net/tap-bsd.c1
-rw-r--r--net/tap-linux.c1
-rw-r--r--net/tap-solaris.c1
-rw-r--r--net/tap-win32.c2
-rw-r--r--net/tap.c1
-rw-r--r--os-posix.c2
-rw-r--r--os-win32.c2
-rw-r--r--qapi/Makefile.objs2
-rw-r--r--qapi/block-core.json11
-rw-r--r--qapi/common.json24
-rw-r--r--qapi/error.json29
-rw-r--r--qapi/qapi-dealloc-visitor.c1
-rw-r--r--qapi/qapi-schema.json1
-rw-r--r--qapi/qmp-dispatch.c2
-rw-r--r--qapi/sockets.json6
-rw-r--r--qdev-monitor.c2
-rw-r--r--qemu-img.c2
-rw-r--r--qemu-nbd.c2
-rw-r--r--qom/cpu.c3
-rw-r--r--qom/object.c1
-rw-r--r--qom/qom-qmp-cmds.c2
-rw-r--r--qtest.c6
-rw-r--r--replay/replay-audio.c1
-rw-r--r--replay/replay-char.c1
-rw-r--r--replay/replay-internal.c3
-rw-r--r--replay/replay-net.c1
-rw-r--r--replay/replay-snapshot.c1
-rw-r--r--replay/replay.c2
-rw-r--r--scripts/tracetool/format/c.py1
-rw-r--r--scripts/tracetool/format/h.py7
-rw-r--r--scripts/tracetool/format/log_stap.py3
-rw-r--r--stubs/change-state-handler.c2
-rw-r--r--stubs/replay.c1
-rw-r--r--stubs/runstate-check.c2
-rw-r--r--stubs/semihost.c1
-rw-r--r--stubs/vm-stop.c2
-rw-r--r--target/alpha/cpu.h2
-rw-r--r--target/alpha/machine.c2
-rw-r--r--target/alpha/sys_helper.c1
-rw-r--r--target/arm/cpu.h2
-rw-r--r--target/arm/cpu64.c1
-rw-r--r--target/arm/helper-a64.c2
-rw-r--r--target/arm/helper.c4
-rw-r--r--target/arm/kvm.c2
-rw-r--r--target/arm/kvm32.c1
-rw-r--r--target/arm/kvm64.c2
-rw-r--r--target/arm/m_helper.c3
-rw-r--r--target/arm/machine.c2
-rw-r--r--target/arm/monitor.c1
-rw-r--r--target/arm/psci.c4
-rw-r--r--target/cris/cpu.h2
-rw-r--r--target/cris/machine.c1
-rw-r--r--target/hppa/cpu.h4
-rw-r--r--target/hppa/machine.c2
-rw-r--r--target/hppa/op_helper.c2
-rw-r--r--target/i386/cpu.c2
-rw-r--r--target/i386/cpu.h2
-rw-r--r--target/i386/excp_helper.c2
-rw-r--r--target/i386/hax-all.c3
-rw-r--r--target/i386/helper.c2
-rw-r--r--target/i386/hvf/hvf.c4
-rw-r--r--target/i386/hvf/x86_task.c2
-rw-r--r--target/i386/kvm.c3
-rw-r--r--target/i386/machine.c2
-rw-r--r--target/i386/monitor.c1
-rw-r--r--target/i386/sev.c1
-rw-r--r--target/i386/sev_i386.h2
-rw-r--r--target/i386/whpx-all.c4
-rw-r--r--target/lm32/cpu.h2
-rw-r--r--target/lm32/helper.c1
-rw-r--r--target/lm32/machine.c2
-rw-r--r--target/lm32/op_helper.c3
-rw-r--r--target/m68k/m68k-semi.c1
-rw-r--r--target/mips/cp0_timer.c1
-rw-r--r--target/mips/internal.h2
-rw-r--r--target/mips/kvm.c3
-rw-r--r--target/mips/machine.c1
-rw-r--r--target/moxie/machine.c2
-rw-r--r--target/nios2/nios2-semi.c1
-rw-r--r--target/openrisc/cpu.h2
-rw-r--r--target/openrisc/machine.c2
-rw-r--r--target/ppc/cpu-qom.h2
-rw-r--r--target/ppc/cpu.h2
-rw-r--r--target/ppc/int_helper.c2
-rw-r--r--target/ppc/kvm.c4
-rw-r--r--target/ppc/machine.c3
-rw-r--r--target/ppc/mem_helper.c2
-rw-r--r--target/ppc/misc_helper.c2
-rw-r--r--target/ppc/mmu_helper.c2
-rw-r--r--target/ppc/translate.c1
-rw-r--r--target/s390x/cpu.c2
-rw-r--r--target/s390x/cpu.h2
-rw-r--r--target/s390x/helper.c2
-rw-r--r--target/s390x/kvm.c3
-rw-r--r--target/s390x/machine.c2
-rw-r--r--target/s390x/mmu_helper.c1
-rw-r--r--target/s390x/sigp.c2
-rw-r--r--target/sh4/helper.c3
-rw-r--r--target/sparc/cpu.h2
-rw-r--r--target/sparc/helper.c1
-rw-r--r--target/sparc/int32_helper.c2
-rw-r--r--target/sparc/machine.c2
-rw-r--r--target/tilegx/cpu.c1
-rw-r--r--target/xtensa/translate.c1
-rw-r--r--target/xtensa/xtensa-semi.c1
-rw-r--r--tcg/optimize.c1
-rw-r--r--tcg/tcg-common.c1
-rw-r--r--tcg/tcg-op-gvec.c1
-rw-r--r--tcg/tcg.c1
-rw-r--r--tests/cpu-plug-test.c15
-rw-r--r--tests/drive_del-test.c3
-rw-r--r--tests/e1000e-test.c2
-rw-r--r--tests/ivshmem-test.c2
-rw-r--r--tests/libqos/usb.c6
-rw-r--r--tests/libqos/usb.h2
-rw-r--r--tests/libqos/virtio-net.c1
-rw-r--r--tests/libqos/virtio-net.h2
-rw-r--r--tests/libqos/virtio-pci.c8
-rw-r--r--tests/libqos/virtio-scsi.c3
-rw-r--r--tests/libqos/virtio.c81
-rw-r--r--tests/libqos/virtio.h30
-rw-r--r--tests/libqtest.c37
-rw-r--r--tests/libqtest.h24
-rw-r--r--tests/megasas-test.c3
-rw-r--r--tests/migration-test.c1
-rw-r--r--tests/nvme-test.c3
-rw-r--r--tests/qmp-test.c2
-rw-r--r--tests/test-bdrv-drain.c1
-rw-r--r--tests/test-bdrv-graph-mod.c1
-rw-r--r--tests/test-block-backend.c1
-rw-r--r--tests/test-block-iothread.c1
-rw-r--r--tests/test-blockjob-txn.c5
-rw-r--r--tests/test-blockjob.c5
-rw-r--r--tests/test-image-locking.c1
-rw-r--r--tests/test-qdev-global-props.c2
-rw-r--r--tests/test-replication.c1
-rw-r--r--tests/test-throttle.c1
-rw-r--r--tests/usb-hcd-ohci-test.c2
-rw-r--r--tests/usb-hcd-uhci-test.c11
-rw-r--r--tests/usb-hcd-xhci-test.c25
-rw-r--r--tests/virtio-9p-test.c16
-rw-r--r--tests/virtio-blk-test.c159
-rw-r--r--tests/virtio-ccw-test.c25
-rw-r--r--tests/virtio-net-test.c35
-rw-r--r--tests/virtio-rng-test.c2
-rw-r--r--tests/virtio-scsi-test.c35
-rw-r--r--tests/virtio-serial-test.c4
-rw-r--r--trace/control-internal.h25
-rw-r--r--trace/control-vcpu.h63
-rw-r--r--trace/control.h24
-rw-r--r--trace/qmp.c2
-rw-r--r--ui/cocoa.m2
-rw-r--r--ui/gtk.c1
-rw-r--r--ui/input-keymap.c1
-rw-r--r--ui/input-legacy.c1
-rw-r--r--ui/input-linux.c2
-rw-r--r--ui/input.c1
-rw-r--r--ui/kbd-state.c1
-rw-r--r--ui/keymaps.c1
-rw-r--r--ui/sdl2-2d.c1
-rw-r--r--ui/sdl2-gl.c1
-rw-r--r--ui/sdl2-input.c1
-rw-r--r--ui/sdl2.c1
-rw-r--r--ui/spice-core.c4
-rw-r--r--ui/spice-display.c2
-rw-r--r--ui/vnc-auth-sasl.h1
-rw-r--r--ui/vnc.c2
-rw-r--r--ui/vnc.h1
-rw-r--r--util/fifo8.c1
-rw-r--r--util/oslib-posix.c1
-rw-r--r--util/qemu-sockets.c28
-rw-r--r--util/qemu-timer.c1
-rw-r--r--util/vfio-helpers.c1
-rw-r--r--vl.c13
1320 files changed, 3069 insertions, 1729 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index d6de200453..743a92666a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1874,6 +1874,7 @@ M: Markus Armbruster <armbru@redhat.com>
S: Supported
F: include/qapi/error.h
F: include/qemu/error-report.h
+F: qapi/error.json
F: util/error.c
F: util/qemu-error.c
@@ -1923,6 +1924,8 @@ Main loop
M: Paolo Bonzini <pbonzini@redhat.com>
S: Maintained
F: cpus.c
+F: include/qemu/main-loop.h
+F: include/sysemu/runstate.h
F: util/main-loop.c
F: util/qemu-timer.c
F: vl.c
@@ -2062,6 +2065,7 @@ F: monitor/monitor-internal.h
F: monitor/qmp*
F: monitor/misc.c
F: monitor/monitor.c
+F: qapi/error.json
F: docs/devel/*qmp-*
F: docs/interop/*qmp-*
F: scripts/qmp/
diff --git a/VERSION b/VERSION
index ee74734aa2..5f79df70a0 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.1.0
+4.1.50
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index f450f25295..b09bad0804 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -23,18 +23,20 @@
#include "qemu/config-file.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
#include "hw/s390x/adapter.h"
#include "exec/gdbstub.h"
#include "sysemu/kvm_int.h"
+#include "sysemu/runstate.h"
#include "sysemu/cpus.h"
+#include "sysemu/sysemu.h"
#include "qemu/bswap.h"
#include "exec/memory.h"
#include "exec/ram_addr.h"
#include "exec/address-spaces.h"
#include "qemu/event_notifier.h"
+#include "qemu/main-loop.h"
#include "trace.h"
#include "hw/irq.h"
#include "sysemu/sev.h"
diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
index 76ae461749..e2d23edafe 100644
--- a/accel/stubs/tcg-stub.c
+++ b/accel/stubs/tcg-stub.c
@@ -14,7 +14,6 @@
#include "qemu-common.h"
#include "cpu.h"
#include "tcg/tcg.h"
-#include "exec/cpu-common.h"
#include "exec/exec-all.h"
void tb_flush(CPUState *cpu)
diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c
index c92d4c82ed..c59d5b0024 100644
--- a/accel/tcg/tcg-all.c
+++ b/accel/tcg/tcg-all.c
@@ -25,7 +25,6 @@
#include "qemu/osdep.h"
#include "sysemu/accel.h"
-#include "sysemu/sysemu.h"
#include "sysemu/tcg.h"
#include "qom/object.h"
#include "cpu.h"
diff --git a/audio/audio.c b/audio/audio.c
index 05adf7ffeb..c8b88d892d 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -23,17 +23,17 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "audio.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "qemu/timer.h"
#include "qapi/error.h"
#include "qapi/qobject-input-visitor.h"
#include "qapi/qapi-visit-audio.h"
-#include "sysemu/sysemu.h"
#include "qemu/cutils.h"
#include "qemu/module.h"
#include "sysemu/replay.h"
+#include "sysemu/runstate.h"
#include "trace.h"
#define AUDIO_CAP "audio"
diff --git a/audio/spiceaudio.c b/audio/spiceaudio.c
index 0ead5ae43a..ec1c8fe936 100644
--- a/audio/spiceaudio.c
+++ b/audio/spiceaudio.c
@@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qemu/host-utils.h"
#include "qemu/module.h"
#include "qemu/error-report.h"
diff --git a/audio/wavcapture.c b/audio/wavcapture.c
index 74320dfecc..493edc60e4 100644
--- a/audio/wavcapture.c
+++ b/audio/wavcapture.c
@@ -1,5 +1,4 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "monitor/monitor.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
diff --git a/backends/cryptodev-builtin.c b/backends/cryptodev-builtin.c
index 9fb0bd57a6..c8ae3b9742 100644
--- a/backends/cryptodev-builtin.c
+++ b/backends/cryptodev-builtin.c
@@ -23,7 +23,6 @@
#include "qemu/osdep.h"
#include "sysemu/cryptodev.h"
-#include "hw/boards.h"
#include "qapi/error.h"
#include "standard-headers/linux/virtio_crypto.h"
#include "crypto/cipher.h"
diff --git a/backends/cryptodev-vhost-user.c b/backends/cryptodev-vhost-user.c
index 1052a5d0e9..b344283940 100644
--- a/backends/cryptodev-vhost-user.c
+++ b/backends/cryptodev-vhost-user.c
@@ -22,7 +22,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/boards.h"
#include "qapi/error.h"
#include "qapi/qmp/qerror.h"
#include "qemu/error-report.h"
diff --git a/backends/cryptodev.c b/backends/cryptodev.c
index f35be377ef..3c071eab95 100644
--- a/backends/cryptodev.c
+++ b/backends/cryptodev.c
@@ -23,7 +23,6 @@
#include "qemu/osdep.h"
#include "sysemu/cryptodev.h"
-#include "hw/boards.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "qemu/config-file.h"
diff --git a/backends/hostmem.c b/backends/hostmem.c
index 463102aa15..6d333dc23c 100644
--- a/backends/hostmem.c
+++ b/backends/hostmem.c
@@ -12,6 +12,7 @@
#include "qemu/osdep.h"
#include "sysemu/hostmem.h"
+#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "qapi/error.h"
#include "qapi/qapi-builtin-visit.h"
diff --git a/backends/vhost-user.c b/backends/vhost-user.c
index 2b055544a7..0a13506c98 100644
--- a/backends/vhost-user.c
+++ b/backends/vhost-user.c
@@ -12,7 +12,6 @@
#include "qemu/osdep.h"
-#include "hw/qdev.h"
#include "qapi/error.h"
#include "qapi/qmp/qerror.h"
#include "qemu/error-report.h"
diff --git a/balloon.c b/balloon.c
index 914b3662db..f104b42961 100644
--- a/balloon.c
+++ b/balloon.c
@@ -26,7 +26,6 @@
#include "qemu/osdep.h"
#include "qemu/atomic.h"
-#include "exec/cpu-common.h"
#include "sysemu/kvm.h"
#include "sysemu/balloon.h"
#include "trace-root.h"
diff --git a/block.c b/block.c
index 66e8602e68..2a2d069667 100644
--- a/block.c
+++ b/block.c
@@ -30,6 +30,7 @@
#include "block/qdict.h"
#include "qemu/error-report.h"
#include "module_block.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qapi/error.h"
#include "qapi/qmp/qdict.h"
diff --git a/block/block-backend.c b/block/block-backend.c
index c13c5c83b0..1c605d5444 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -15,11 +15,13 @@
#include "block/block_int.h"
#include "block/blockjob.h"
#include "block/throttle-groups.h"
+#include "hw/qdev-core.h"
#include "sysemu/blockdev.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "qapi/error.h"
#include "qapi/qapi-events-block.h"
#include "qemu/id.h"
+#include "qemu/main-loop.h"
#include "qemu/option.h"
#include "trace.h"
#include "migration/misc.h"
diff --git a/block/create.c b/block/create.c
index 95341219ef..1bd00ed5f8 100644
--- a/block/create.c
+++ b/block/create.c
@@ -25,6 +25,7 @@
#include "qemu/osdep.h"
#include "block/block_int.h"
#include "qemu/job.h"
+#include "qemu/main-loop.h"
#include "qapi/qapi-commands-block-core.h"
#include "qapi/qapi-visit-block-core.h"
#include "qapi/clone-visitor.h"
diff --git a/block/io.c b/block/io.c
index 06305c6ea6..56bbf195bb 100644
--- a/block/io.c
+++ b/block/io.c
@@ -32,6 +32,7 @@
#include "qemu/cutils.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#define NOT_DONE 0x7fffffff /* used while emulated sync operation in progress */
@@ -1167,7 +1168,8 @@ bdrv_driver_pwritev_compressed(BlockDriverState *bs, uint64_t offset,
}
static int coroutine_fn bdrv_co_do_copy_on_readv(BdrvChild *child,
- int64_t offset, unsigned int bytes, QEMUIOVector *qiov)
+ int64_t offset, unsigned int bytes, QEMUIOVector *qiov,
+ int flags)
{
BlockDriverState *bs = child->bs;
@@ -1278,9 +1280,11 @@ static int coroutine_fn bdrv_co_do_copy_on_readv(BdrvChild *child,
goto err;
}
- qemu_iovec_from_buf(qiov, progress, bounce_buffer + skip_bytes,
- pnum - skip_bytes);
- } else {
+ if (!(flags & BDRV_REQ_PREFETCH)) {
+ qemu_iovec_from_buf(qiov, progress, bounce_buffer + skip_bytes,
+ pnum - skip_bytes);
+ }
+ } else if (!(flags & BDRV_REQ_PREFETCH)) {
/* Read directly into the destination */
qemu_iovec_init(&local_qiov, qiov->niov);
qemu_iovec_concat(&local_qiov, qiov, progress, pnum - skip_bytes);
@@ -1331,7 +1335,8 @@ static int coroutine_fn bdrv_aligned_preadv(BdrvChild *child,
* potential fallback support, if we ever implement any read flags
* to pass through to drivers. For now, there aren't any
* passthrough flags. */
- assert(!(flags & ~(BDRV_REQ_NO_SERIALISING | BDRV_REQ_COPY_ON_READ)));
+ assert(!(flags & ~(BDRV_REQ_NO_SERIALISING | BDRV_REQ_COPY_ON_READ |
+ BDRV_REQ_PREFETCH)));
/* Handle Copy on Read and associated serialisation */
if (flags & BDRV_REQ_COPY_ON_READ) {
@@ -1359,7 +1364,9 @@ static int coroutine_fn bdrv_aligned_preadv(BdrvChild *child,
}
if (!ret || pnum != bytes) {
- ret = bdrv_co_do_copy_on_readv(child, offset, bytes, qiov);
+ ret = bdrv_co_do_copy_on_readv(child, offset, bytes, qiov, flags);
+ goto out;
+ } else if (flags & BDRV_REQ_PREFETCH) {
goto out;
}
}
diff --git a/block/nbd.c b/block/nbd.c
index 57c1a20581..beed46fb34 100644
--- a/block/nbd.c
+++ b/block/nbd.c
@@ -33,6 +33,7 @@
#include "qemu/uri.h"
#include "qemu/option.h"
#include "qemu/cutils.h"
+#include "qemu/main-loop.h"
#include "qapi/qapi-visit-sockets.h"
#include "qapi/qmp/qstring.h"
@@ -53,6 +54,11 @@ typedef struct {
bool receiving; /* waiting for connection_co? */
} NBDClientRequest;
+typedef enum NBDClientState {
+ NBD_CLIENT_CONNECTED,
+ NBD_CLIENT_QUIT
+} NBDClientState;
+
typedef struct BDRVNBDState {
QIOChannelSocket *sioc; /* The master data channel */
QIOChannel *ioc; /* The current I/O channel which may differ (eg TLS) */
@@ -62,17 +68,27 @@ typedef struct BDRVNBDState {
CoQueue free_sema;
Coroutine *connection_co;
int in_flight;
+ NBDClientState state;
NBDClientRequest requests[MAX_NBD_REQUESTS];
NBDReply reply;
BlockDriverState *bs;
- bool quit;
- /* For nbd_refresh_filename() */
+ /* Connection parameters */
+ uint32_t reconnect_delay;
SocketAddress *saddr;
char *export, *tlscredsid;
+ QCryptoTLSCreds *tlscreds;
+ const char *hostname;
+ char *x_dirty_bitmap;
} BDRVNBDState;
+/* @ret will be used for reconnect in future */
+static void nbd_channel_error(BDRVNBDState *s, int ret)
+{
+ s->state = NBD_CLIENT_QUIT;
+}
+
static void nbd_recv_coroutines_wake_all(BDRVNBDState *s)
{
int i;
@@ -151,7 +167,7 @@ static coroutine_fn void nbd_connection_entry(void *opaque)
int ret = 0;
Error *local_err = NULL;
- while (!s->quit) {
+ while (s->state != NBD_CLIENT_QUIT) {
/*
* The NBD client can only really be considered idle when it has
* yielded from qio_channel_readv_all_eof(), waiting for data. This is
@@ -169,6 +185,7 @@ static coroutine_fn void nbd_connection_entry(void *opaque)
error_free(local_err);
}
if (ret <= 0) {
+ nbd_channel_error(s, ret ? ret : -EIO);
break;
}
@@ -183,6 +200,7 @@ static coroutine_fn void nbd_connection_entry(void *opaque)
!s->requests[i].receiving ||
(nbd_reply_is_structured(&s->reply) && !s->info.structured_reply))
{
+ nbd_channel_error(s, -EINVAL);
break;
}
@@ -202,7 +220,6 @@ static coroutine_fn void nbd_connection_entry(void *opaque)
qemu_coroutine_yield();
}
- s->quit = true;
nbd_recv_coroutines_wake_all(s);
bdrv_dec_in_flight(s->bs);
@@ -215,12 +232,18 @@ static int nbd_co_send_request(BlockDriverState *bs,
QEMUIOVector *qiov)
{
BDRVNBDState *s = (BDRVNBDState *)bs->opaque;
- int rc, i;
+ int rc, i = -1;
qemu_co_mutex_lock(&s->send_mutex);
while (s->in_flight == MAX_NBD_REQUESTS) {
qemu_co_queue_wait(&s->free_sema, &s->send_mutex);
}
+
+ if (s->state != NBD_CLIENT_CONNECTED) {
+ rc = -EIO;
+ goto err;
+ }
+
s->in_flight++;
for (i = 0; i < MAX_NBD_REQUESTS; i++) {
@@ -238,16 +261,12 @@ static int nbd_co_send_request(BlockDriverState *bs,
request->handle = INDEX_TO_HANDLE(s, i);
- if (s->quit) {
- rc = -EIO;
- goto err;
- }
assert(s->ioc);
if (qiov) {
qio_channel_set_cork(s->ioc, true);
rc = nbd_send_request(s->ioc, request);
- if (rc >= 0 && !s->quit) {
+ if (rc >= 0 && s->state == NBD_CLIENT_CONNECTED) {
if (qio_channel_writev_all(s->ioc, qiov->iov, qiov->niov,
NULL) < 0) {
rc = -EIO;
@@ -262,9 +281,11 @@ static int nbd_co_send_request(BlockDriverState *bs,
err:
if (rc < 0) {
- s->quit = true;
- s->requests[i].coroutine = NULL;
- s->in_flight--;
+ nbd_channel_error(s, rc);
+ if (i != -1) {
+ s->requests[i].coroutine = NULL;
+ s->in_flight--;
+ }
qemu_co_queue_next(&s->free_sema);
}
qemu_co_mutex_unlock(&s->send_mutex);
@@ -556,7 +577,7 @@ static coroutine_fn int nbd_co_do_receive_one_chunk(
s->requests[i].receiving = true;
qemu_coroutine_yield();
s->requests[i].receiving = false;
- if (s->quit) {
+ if (s->state != NBD_CLIENT_CONNECTED) {
error_setg(errp, "Connection closed");
return -EIO;
}
@@ -641,7 +662,7 @@ static coroutine_fn int nbd_co_receive_one_chunk(
if (ret < 0) {
memset(reply, 0, sizeof(*reply));
- s->quit = true;
+ nbd_channel_error(s, ret);
} else {
/* For assert at loop start in nbd_connection_entry */
*reply = s->reply;
@@ -709,7 +730,7 @@ static bool nbd_reply_chunk_iter_receive(BDRVNBDState *s,
NBDReply local_reply;
NBDStructuredReplyChunk *chunk;
Error *local_err = NULL;
- if (s->quit) {
+ if (s->state != NBD_CLIENT_CONNECTED) {
error_setg(&local_err, "Connection closed");
nbd_iter_channel_error(iter, -EIO, &local_err);
goto break_loop;
@@ -734,7 +755,7 @@ static bool nbd_reply_chunk_iter_receive(BDRVNBDState *s,
}
/* Do not execute the body of NBD_FOREACH_REPLY_CHUNK for simple reply. */
- if (nbd_reply_is_simple(reply) || s->quit) {
+ if (nbd_reply_is_simple(reply) || s->state != NBD_CLIENT_CONNECTED) {
goto break_loop;
}
@@ -808,14 +829,14 @@ static int nbd_co_receive_cmdread_reply(BDRVNBDState *s, uint64_t handle,
ret = nbd_parse_offset_hole_payload(s, &reply.structured, payload,
offset, qiov, &local_err);
if (ret < 0) {
- s->quit = true;
+ nbd_channel_error(s, ret);
nbd_iter_channel_error(&iter, ret, &local_err);
}
break;
default:
if (!nbd_reply_type_is_error(chunk->type)) {
/* not allowed reply type */
- s->quit = true;
+ nbd_channel_error(s, -EINVAL);
error_setg(&local_err,
"Unexpected reply type: %d (%s) for CMD_READ",
chunk->type, nbd_reply_type_lookup(chunk->type));
@@ -853,7 +874,7 @@ static int nbd_co_receive_blockstatus_reply(BDRVNBDState *s,
switch (chunk->type) {
case NBD_REPLY_TYPE_BLOCK_STATUS:
if (received) {
- s->quit = true;
+ nbd_channel_error(s, -EINVAL);
error_setg(&local_err, "Several BLOCK_STATUS chunks in reply");
nbd_iter_channel_error(&iter, -EINVAL, &local_err);
}
@@ -863,13 +884,13 @@ static int nbd_co_receive_blockstatus_reply(BDRVNBDState *s,
payload, length, extent,
&local_err);
if (ret < 0) {
- s->quit = true;
+ nbd_channel_error(s, ret);
nbd_iter_channel_error(&iter, ret, &local_err);
}
break;
default:
if (!nbd_reply_type_is_error(chunk->type)) {
- s->quit = true;
+ nbd_channel_error(s, -EINVAL);
error_setg(&local_err,
"Unexpected reply type: %d (%s) "
"for CMD_BLOCK_STATUS",
@@ -1166,47 +1187,43 @@ static QIOChannelSocket *nbd_establish_connection(SocketAddress *saddr,
return sioc;
}
-static int nbd_client_connect(BlockDriverState *bs,
- SocketAddress *saddr,
- const char *export,
- QCryptoTLSCreds *tlscreds,
- const char *hostname,
- const char *x_dirty_bitmap,
- Error **errp)
+static int nbd_client_connect(BlockDriverState *bs, Error **errp)
{
BDRVNBDState *s = (BDRVNBDState *)bs->opaque;
+ AioContext *aio_context = bdrv_get_aio_context(bs);
int ret;
/*
* establish TCP connection, return error if it fails
* TODO: Configurable retry-until-timeout behaviour.
*/
- QIOChannelSocket *sioc = nbd_establish_connection(saddr, errp);
+ QIOChannelSocket *sioc = nbd_establish_connection(s->saddr, errp);
if (!sioc) {
return -ECONNREFUSED;
}
/* NBD handshake */
- trace_nbd_client_connect(export);
- qio_channel_set_blocking(QIO_CHANNEL(sioc), true, NULL);
+ trace_nbd_client_connect(s->export);
+ qio_channel_set_blocking(QIO_CHANNEL(sioc), false, NULL);
+ qio_channel_attach_aio_context(QIO_CHANNEL(sioc), aio_context);
s->info.request_sizes = true;
s->info.structured_reply = true;
s->info.base_allocation = true;
- s->info.x_dirty_bitmap = g_strdup(x_dirty_bitmap);
- s->info.name = g_strdup(export ?: "");
- ret = nbd_receive_negotiate(QIO_CHANNEL(sioc), tlscreds, hostname,
- &s->ioc, &s->info, errp);
+ s->info.x_dirty_bitmap = g_strdup(s->x_dirty_bitmap);
+ s->info.name = g_strdup(s->export ?: "");
+ ret = nbd_receive_negotiate(aio_context, QIO_CHANNEL(sioc), s->tlscreds,
+ s->hostname, &s->ioc, &s->info, errp);
g_free(s->info.x_dirty_bitmap);
g_free(s->info.name);
if (ret < 0) {
object_unref(OBJECT(sioc));
return ret;
}
- if (x_dirty_bitmap && !s->info.base_allocation) {
+ if (s->x_dirty_bitmap && !s->info.base_allocation) {
error_setg(errp, "requested x-dirty-bitmap %s not found",
- x_dirty_bitmap);
+ s->x_dirty_bitmap);
ret = -EINVAL;
goto fail;
}
@@ -1231,24 +1248,14 @@ static int nbd_client_connect(BlockDriverState *bs,
object_ref(OBJECT(s->ioc));
}
- /*
- * Now that we're connected, set the socket to be non-blocking and
- * kick the reply mechanism.
- */
- qio_channel_set_blocking(QIO_CHANNEL(sioc), false, NULL);
- s->connection_co = qemu_coroutine_create(nbd_connection_entry, s);
- bdrv_inc_in_flight(bs);
- nbd_client_attach_aio_context(bs, bdrv_get_aio_context(bs));
-
- trace_nbd_client_connect_success(export);
+ trace_nbd_client_connect_success(s->export);
return 0;
fail:
/*
- * We have connected, but must fail for other reasons. The
- * connection is still blocking; send NBD_CMD_DISC as a courtesy
- * to the server.
+ * We have connected, but must fail for other reasons.
+ * Send NBD_CMD_DISC as a courtesy to the server.
*/
{
NBDRequest request = { .type = NBD_CMD_DISC };
@@ -1261,23 +1268,9 @@ static int nbd_client_connect(BlockDriverState *bs,
}
}
-static int nbd_client_init(BlockDriverState *bs,
- SocketAddress *saddr,
- const char *export,
- QCryptoTLSCreds *tlscreds,
- const char *hostname,
- const char *x_dirty_bitmap,
- Error **errp)
-{
- BDRVNBDState *s = (BDRVNBDState *)bs->opaque;
-
- s->bs = bs;
- qemu_co_mutex_init(&s->send_mutex);
- qemu_co_queue_init(&s->free_sema);
-
- return nbd_client_connect(bs, saddr, export, tlscreds, hostname,
- x_dirty_bitmap, errp);
-}
+/*
+ * Parse nbd_open options
+ */
static int nbd_parse_uri(const char *filename, QDict *options)
{
@@ -1582,18 +1575,27 @@ static QemuOptsList nbd_runtime_opts = {
.help = "experimental: expose named dirty bitmap in place of "
"block status",
},
+ {
+ .name = "reconnect-delay",
+ .type = QEMU_OPT_NUMBER,
+ .help = "On an unexpected disconnect, the nbd client tries to "
+ "connect again until succeeding or encountering a serious "
+ "error. During the first @reconnect-delay seconds, all "
+ "requests are paused and will be rerun on a successful "
+ "reconnect. After that time, any delayed requests and all "
+ "future requests before a successful reconnect will "
+ "immediately fail. Default 0",
+ },
{ /* end of list */ }
},
};
-static int nbd_open(BlockDriverState *bs, QDict *options, int flags,
- Error **errp)
+static int nbd_process_options(BlockDriverState *bs, QDict *options,
+ Error **errp)
{
BDRVNBDState *s = bs->opaque;
- QemuOpts *opts = NULL;
+ QemuOpts *opts;
Error *local_err = NULL;
- QCryptoTLSCreds *tlscreds = NULL;
- const char *hostname = NULL;
int ret = -EINVAL;
opts = qemu_opts_create(&nbd_runtime_opts, NULL, 0, &error_abort);
@@ -1618,8 +1620,8 @@ static int nbd_open(BlockDriverState *bs, QDict *options, int flags,
s->tlscredsid = g_strdup(qemu_opt_get(opts, "tls-creds"));
if (s->tlscredsid) {
- tlscreds = nbd_get_tls_creds(s->tlscredsid, errp);
- if (!tlscreds) {
+ s->tlscreds = nbd_get_tls_creds(s->tlscredsid, errp);
+ if (!s->tlscreds) {
goto error;
}
@@ -1628,18 +1630,17 @@ static int nbd_open(BlockDriverState *bs, QDict *options, int flags,
error_setg(errp, "TLS only supported over IP sockets");
goto error;
}
- hostname = s->saddr->u.inet.host;
+ s->hostname = s->saddr->u.inet.host;
}
- /* NBD handshake */
- ret = nbd_client_init(bs, s->saddr, s->export, tlscreds, hostname,
- qemu_opt_get(opts, "x-dirty-bitmap"), errp);
+ s->x_dirty_bitmap = g_strdup(qemu_opt_get(opts, "x-dirty-bitmap"));
+ s->reconnect_delay = qemu_opt_get_number(opts, "reconnect-delay", 0);
+
+ ret = 0;
error:
- if (tlscreds) {
- object_unref(OBJECT(tlscreds));
- }
if (ret < 0) {
+ object_unref(OBJECT(s->tlscreds));
qapi_free_SocketAddress(s->saddr);
g_free(s->export);
g_free(s->tlscredsid);
@@ -1648,6 +1649,35 @@ static int nbd_open(BlockDriverState *bs, QDict *options, int flags,
return ret;
}
+static int nbd_open(BlockDriverState *bs, QDict *options, int flags,
+ Error **errp)
+{
+ int ret;
+ BDRVNBDState *s = (BDRVNBDState *)bs->opaque;
+
+ ret = nbd_process_options(bs, options, errp);
+ if (ret < 0) {
+ return ret;
+ }
+
+ s->bs = bs;
+ qemu_co_mutex_init(&s->send_mutex);
+ qemu_co_queue_init(&s->free_sema);
+
+ ret = nbd_client_connect(bs, errp);
+ if (ret < 0) {
+ return ret;
+ }
+ /* successfully connected */
+ s->state = NBD_CLIENT_CONNECTED;
+
+ s->connection_co = qemu_coroutine_create(nbd_connection_entry, s);
+ bdrv_inc_in_flight(bs);
+ aio_co_schedule(bdrv_get_aio_context(bs), s->connection_co);
+
+ return 0;
+}
+
static int nbd_co_flush(BlockDriverState *bs)
{
return nbd_client_co_flush(bs);
@@ -1693,9 +1723,11 @@ static void nbd_close(BlockDriverState *bs)
nbd_client_close(bs);
+ object_unref(OBJECT(s->tlscreds));
qapi_free_SocketAddress(s->saddr);
g_free(s->export);
g_free(s->tlscredsid);
+ g_free(s->x_dirty_bitmap);
}
static int64_t nbd_getlength(BlockDriverState *bs)
diff --git a/block/nfs.c b/block/nfs.c
index d93241b3bb..ed0cce63bb 100644
--- a/block/nfs.c
+++ b/block/nfs.c
@@ -32,11 +32,11 @@
#include "block/qdict.h"
#include "trace.h"
#include "qemu/iov.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/option.h"
#include "qemu/uri.h"
#include "qemu/cutils.h"
-#include "sysemu/sysemu.h"
#include "qapi/qapi-visit-block-core.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qstring.h"
diff --git a/block/nvme.c b/block/nvme.c
index 2c85713519..5be3a39b63 100644
--- a/block/nvme.c
+++ b/block/nvme.c
@@ -17,6 +17,7 @@
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qstring.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/cutils.h"
#include "qemu/option.h"
diff --git a/block/qcow2.c b/block/qcow2.c
index 039bdc2f7e..59cff1d4cb 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -26,6 +26,7 @@
#include "block/qdict.h"
#include "sysemu/block-backend.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qcow2.h"
#include "qemu/error-report.h"
diff --git a/block/qed.c b/block/qed.c
index 77c7cef175..d0dcc5f14d 100644
--- a/block/qed.c
+++ b/block/qed.c
@@ -17,6 +17,7 @@
#include "qapi/error.h"
#include "qemu/timer.h"
#include "qemu/bswap.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/option.h"
#include "trace.h"
diff --git a/block/sheepdog.c b/block/sheepdog.c
index 6f402e5d4d..31b0a820c2 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -22,6 +22,7 @@
#include "qapi/qobject-output-visitor.h"
#include "qemu/uri.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/option.h"
#include "qemu/sockets.h"
diff --git a/block/stream.c b/block/stream.c
index 6ac1e7bec4..0d3a6ac7c3 100644
--- a/block/stream.c
+++ b/block/stream.c
@@ -22,11 +22,11 @@
enum {
/*
- * Size of data buffer for populating the image file. This should be large
- * enough to process multiple clusters in a single call, so that populating
- * contiguous regions of the image is efficient.
+ * Maximum chunk size to feed to copy-on-read. This should be
+ * large enough to process multiple clusters in a single call, so
+ * that populating contiguous regions of the image is efficient.
*/
- STREAM_BUFFER_SIZE = 512 * 1024, /* in bytes */
+ STREAM_CHUNK = 512 * 1024, /* in bytes */
};
typedef struct StreamBlockJob {
@@ -39,13 +39,12 @@ typedef struct StreamBlockJob {
} StreamBlockJob;
static int coroutine_fn stream_populate(BlockBackend *blk,
- int64_t offset, uint64_t bytes,
- void *buf)
+ int64_t offset, uint64_t bytes)
{
assert(bytes < SIZE_MAX);
- /* Copy-on-read the unallocated clusters */
- return blk_co_pread(blk, offset, bytes, buf, BDRV_REQ_COPY_ON_READ);
+ return blk_co_preadv(blk, offset, bytes, NULL,
+ BDRV_REQ_COPY_ON_READ | BDRV_REQ_PREFETCH);
}
static void stream_abort(Job *job)
@@ -117,7 +116,6 @@ static int coroutine_fn stream_run(Job *job, Error **errp)
int error = 0;
int ret = 0;
int64_t n = 0; /* bytes */
- void *buf;
if (bs == s->bottom) {
/* Nothing to stream */
@@ -130,8 +128,6 @@ static int coroutine_fn stream_run(Job *job, Error **errp)
}
job_progress_set_remaining(&s->common.job, len);
- buf = qemu_blockalign(bs, STREAM_BUFFER_SIZE);
-
/* Turn on copy-on-read for the whole block device so that guest read
* requests help us make progress. Only do this when copying the entire
* backing chain since the copy-on-read operation does not take base into
@@ -154,7 +150,7 @@ static int coroutine_fn stream_run(Job *job, Error **errp)
copy = false;
- ret = bdrv_is_allocated(bs, offset, STREAM_BUFFER_SIZE, &n);
+ ret = bdrv_is_allocated(bs, offset, STREAM_CHUNK, &n);
if (ret == 1) {
/* Allocated in the top, no need to copy. */
} else if (ret >= 0) {
@@ -171,7 +167,7 @@ static int coroutine_fn stream_run(Job *job, Error **errp)
}
trace_stream_one_iteration(s, offset, n, ret);
if (copy) {
- ret = stream_populate(blk, offset, n, buf);
+ ret = stream_populate(blk, offset, n);
}
if (ret < 0) {
BlockErrorAction action =
@@ -202,8 +198,6 @@ static int coroutine_fn stream_run(Job *job, Error **errp)
bdrv_disable_copy_on_read(bs);
}
- qemu_vfree(buf);
-
/* Do not remove the backing file if an error was there but ignored. */
return error;
}
diff --git a/block/throttle-groups.c b/block/throttle-groups.c
index a5a2037924..77014c741b 100644
--- a/block/throttle-groups.c
+++ b/block/throttle-groups.c
@@ -26,6 +26,7 @@
#include "sysemu/block-backend.h"
#include "block/throttle-groups.h"
#include "qemu/throttle-options.h"
+#include "qemu/main-loop.h"
#include "qemu/queue.h"
#include "qemu/thread.h"
#include "sysemu/qtest.h"
diff --git a/blockdev-nbd.c b/blockdev-nbd.c
index 66eebab318..7a71da447f 100644
--- a/blockdev-nbd.c
+++ b/blockdev-nbd.c
@@ -15,7 +15,6 @@
#include "hw/block/block.h"
#include "qapi/error.h"
#include "qapi/qapi-commands-block.h"
-#include "sysemu/sysemu.h"
#include "block/nbd.h"
#include "io/channel-socket.h"
#include "io/net-listener.h"
diff --git a/blockdev.c b/blockdev.c
index 4d141e9a1f..95cdd5a5cb 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -58,8 +58,10 @@
#include "block/trace.h"
#include "sysemu/arch_init.h"
#include "sysemu/qtest.h"
+#include "sysemu/runstate.h"
#include "qemu/cutils.h"
#include "qemu/help_option.h"
+#include "qemu/main-loop.h"
#include "qemu/throttle-options.h"
static QTAILQ_HEAD(, BlockDriverState) monitor_bdrv_states =
diff --git a/blockjob.c b/blockjob.c
index 73d9f1ba2b..6e32d1a0c0 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -33,6 +33,7 @@
#include "qapi/qapi-events-block-core.h"
#include "qapi/qmp/qerror.h"
#include "qemu/coroutine.h"
+#include "qemu/main-loop.h"
#include "qemu/timer.h"
/*
diff --git a/chardev/baum.c b/chardev/baum.c
index 3dc81d5c6c..9c95e7bc79 100644
--- a/chardev/baum.c
+++ b/chardev/baum.c
@@ -25,6 +25,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "chardev/char.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/timer.h"
#include "hw/usb.h"
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index b200f9365c..94d714ffcd 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -25,6 +25,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qapi/error.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/option.h"
#include "chardev/char.h"
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index 92d34e85aa..99afda353c 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -24,6 +24,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "chardev/char-win.h"
#include "chardev/char-win-stdio.h"
diff --git a/chardev/char-win.c b/chardev/char-win.c
index 0b8181339d..34825f683d 100644
--- a/chardev/char-win.c
+++ b/chardev/char-win.c
@@ -23,6 +23,7 @@
*/
#include "qemu/osdep.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qapi/error.h"
#include "chardev/char-win.h"
diff --git a/cpus.c b/cpus.c
index 927a00aa90..f4ad855b77 100644
--- a/cpus.c
+++ b/cpus.c
@@ -25,6 +25,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/config-file.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
@@ -54,7 +55,9 @@
#include "tcg.h"
#include "hw/nmi.h"
#include "sysemu/replay.h"
+#include "sysemu/runstate.h"
#include "hw/boards.h"
+#include "hw/hw.h"
#ifdef CONFIG_LINUX
diff --git a/device-hotplug.c b/device-hotplug.c
index 6153259d71..f01d53774b 100644
--- a/device-hotplug.c
+++ b/device-hotplug.c
@@ -23,7 +23,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "sysemu/block-backend.h"
#include "sysemu/blockdev.h"
diff --git a/dump/dump.c b/dump/dump.c
index c7b2301652..6fb6e1245a 100644
--- a/dump/dump.c
+++ b/dump/dump.c
@@ -20,14 +20,15 @@
#include "monitor/monitor.h"
#include "sysemu/kvm.h"
#include "sysemu/dump.h"
-#include "sysemu/sysemu.h"
#include "sysemu/memory_mapping.h"
+#include "sysemu/runstate.h"
#include "sysemu/cpus.h"
#include "qapi/error.h"
#include "qapi/qapi-commands-dump.h"
#include "qapi/qapi-events-dump.h"
#include "qapi/qmp/qerror.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "hw/misc/vmcoreinfo.h"
#ifdef TARGET_X86_64
diff --git a/dump/win_dump.c b/dump/win_dump.c
index 0142655d3d..eda2a48974 100644
--- a/dump/win_dump.c
+++ b/dump/win_dump.c
@@ -17,7 +17,6 @@
#include "monitor/monitor.h"
#include "sysemu/kvm.h"
#include "sysemu/dump.h"
-#include "sysemu/sysemu.h"
#include "sysemu/memory_mapping.h"
#include "sysemu/cpus.h"
#include "qapi/error.h"
diff --git a/exec.c b/exec.c
index 3e78de3b8f..4aaa14b075 100644
--- a/exec.c
+++ b/exec.c
@@ -42,11 +42,10 @@
#if defined(CONFIG_USER_ONLY)
#include "qemu.h"
#else /* !CONFIG_USER_ONLY */
-#include "hw/hw.h"
#include "exec/memory.h"
#include "exec/ioport.h"
#include "sysemu/dma.h"
-#include "sysemu/numa.h"
+#include "sysemu/hostmem.h"
#include "sysemu/hw_accel.h"
#include "exec/address-spaces.h"
#include "sysemu/xen-mapcache.h"
diff --git a/fsdev/qemu-fsdev-throttle.c b/fsdev/qemu-fsdev-throttle.c
index cfd86418ac..fe1d76dc76 100644
--- a/fsdev/qemu-fsdev-throttle.c
+++ b/fsdev/qemu-fsdev-throttle.c
@@ -16,6 +16,7 @@
#include "qemu/error-report.h"
#include "qemu-fsdev-throttle.h"
#include "qemu/iov.h"
+#include "qemu/main-loop.h"
#include "qemu/option.h"
static void fsdev_throttle_read_timer_cb(void *opaque)
diff --git a/fsdev/qemu-fsdev-throttle.h b/fsdev/qemu-fsdev-throttle.h
index 7d6211d499..c98e2feab5 100644
--- a/fsdev/qemu-fsdev-throttle.h
+++ b/fsdev/qemu-fsdev-throttle.h
@@ -16,7 +16,6 @@
#define QEMU_FSDEV_THROTTLE_H
#include "block/aio.h"
-#include "qemu/main-loop.h"
#include "qemu/coroutine.h"
#include "qemu/throttle.h"
diff --git a/gdbstub.c b/gdbstub.c
index b470aec8ea..b92ba59e4d 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -48,6 +48,7 @@
#include "qemu/sockets.h"
#include "sysemu/hw_accel.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "hw/semihosting/semihost.h"
#include "exec/exec-all.h"
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index 55821343e5..cce2366219 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -17,6 +17,7 @@
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/iov.h"
+#include "qemu/main-loop.h"
#include "qemu/sockets.h"
#include "virtio-9p.h"
#include "fsdev/qemu-fsdev.h"
diff --git a/hw/9pfs/codir.c b/hw/9pfs/codir.c
index 7cd6fce1ad..73f9a751e1 100644
--- a/hw/9pfs/codir.c
+++ b/hw/9pfs/codir.c
@@ -15,6 +15,7 @@
#include "fsdev/qemu-fsdev.h"
#include "qemu/thread.h"
#include "qemu/coroutine.h"
+#include "qemu/main-loop.h"
#include "coth.h"
int coroutine_fn v9fs_co_readdir(V9fsPDU *pdu, V9fsFidState *fidp,
diff --git a/hw/9pfs/cofile.c b/hw/9pfs/cofile.c
index 9c22837cda..83bb6c14e0 100644
--- a/hw/9pfs/cofile.c
+++ b/hw/9pfs/cofile.c
@@ -15,6 +15,7 @@
#include "fsdev/qemu-fsdev.h"
#include "qemu/thread.h"
#include "qemu/coroutine.h"
+#include "qemu/main-loop.h"
#include "coth.h"
int coroutine_fn v9fs_co_st_gen(V9fsPDU *pdu, V9fsPath *path, mode_t st_mode,
diff --git a/hw/9pfs/cofs.c b/hw/9pfs/cofs.c
index c62103221d..55991916ec 100644
--- a/hw/9pfs/cofs.c
+++ b/hw/9pfs/cofs.c
@@ -15,6 +15,7 @@
#include "fsdev/qemu-fsdev.h"
#include "qemu/thread.h"
#include "qemu/coroutine.h"
+#include "qemu/main-loop.h"
#include "coth.h"
static ssize_t __readlink(V9fsState *s, V9fsPath *path, V9fsString *buf)
diff --git a/hw/9pfs/coth.c b/hw/9pfs/coth.c
index c3b43368f8..9778f24b00 100644
--- a/hw/9pfs/coth.c
+++ b/hw/9pfs/coth.c
@@ -15,6 +15,7 @@
#include "qemu/osdep.h"
#include "block/thread-pool.h"
#include "qemu/coroutine.h"
+#include "qemu/main-loop.h"
#include "coth.h"
/* Called from QEMU I/O thread. */
diff --git a/hw/9pfs/coth.h b/hw/9pfs/coth.h
index 19e4d9287e..c2cdc7a9ea 100644
--- a/hw/9pfs/coth.h
+++ b/hw/9pfs/coth.h
@@ -17,7 +17,6 @@
#include "qemu/thread.h"
#include "qemu/coroutine.h"
-#include "qemu/main-loop.h"
#include "9p.h"
/*
diff --git a/hw/9pfs/coxattr.c b/hw/9pfs/coxattr.c
index 154392eade..0e00ffaa0d 100644
--- a/hw/9pfs/coxattr.c
+++ b/hw/9pfs/coxattr.c
@@ -15,6 +15,7 @@
#include "fsdev/qemu-fsdev.h"
#include "qemu/thread.h"
#include "qemu/coroutine.h"
+#include "qemu/main-loop.h"
#include "coth.h"
int coroutine_fn v9fs_co_llistxattr(V9fsPDU *pdu, V9fsPath *path, void *value,
diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c
index a3288cbe56..b5a7c03f26 100644
--- a/hw/9pfs/virtio-9p-device.c
+++ b/hw/9pfs/virtio-9p-device.c
@@ -17,6 +17,7 @@
#include "virtio-9p.h"
#include "fsdev/qemu-fsdev.h"
#include "coth.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-access.h"
#include "qemu/iov.h"
#include "qemu/module.h"
diff --git a/hw/9pfs/xen-9p-backend.c b/hw/9pfs/xen-9p-backend.c
index 25ab04d95a..71eebe12dd 100644
--- a/hw/9pfs/xen-9p-backend.c
+++ b/hw/9pfs/xen-9p-backend.c
@@ -10,12 +10,12 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/9pfs/9p.h"
#include "hw/xen/xen-legacy-backend.h"
#include "hw/9pfs/xen-9pfs.h"
#include "qapi/error.h"
#include "qemu/config-file.h"
+#include "qemu/main-loop.h"
#include "qemu/option.h"
#include "fsdev/qemu-fsdev.h"
diff --git a/hw/acpi/core.c b/hw/acpi/core.c
index 228828a494..45cbed49ab 100644
--- a/hw/acpi/core.c
+++ b/hw/acpi/core.c
@@ -20,8 +20,7 @@
*/
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/acpi/acpi.h"
#include "hw/nvram/fw_cfg.h"
#include "qemu/config-file.h"
@@ -32,6 +31,7 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "qemu/option.h"
+#include "sysemu/runstate.h"
struct acpi_table_header {
uint16_t _length; /* our length, not actual part of the hdr */
diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index 7a90c8f82d..87f30a31d7 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -1,5 +1,6 @@
#include "qemu/osdep.h"
#include "hw/boards.h"
+#include "migration/vmstate.h"
#include "hw/acpi/cpu.h"
#include "qapi/error.h"
#include "qapi/qapi-events-misc.h"
diff --git a/hw/acpi/cpu_hotplug.c b/hw/acpi/cpu_hotplug.c
index 5243918125..a83567e6aa 100644
--- a/hw/acpi/cpu_hotplug.c
+++ b/hw/acpi/cpu_hotplug.c
@@ -10,7 +10,6 @@
* See the COPYING file in the top-level directory.
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/acpi/cpu_hotplug.h"
#include "qapi/error.h"
#include "qom/cpu.h"
diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
index e53dfe1ee3..2ca52bf045 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -23,14 +23,17 @@
* Contributions after 2012-01-13 are licensed under the terms of the
* GNU GPL, version 2 or (at your option) any later version.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "hw/i386/pc.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
+#include "qom/cpu.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "hw/acpi/acpi.h"
#include "hw/acpi/tco.h"
#include "exec/address-spaces.h"
diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
index 297812d5f7..9483d66e86 100644
--- a/hw/acpi/memory_hotplug.c
+++ b/hw/acpi/memory_hotplug.c
@@ -4,6 +4,7 @@
#include "hw/mem/pc-dimm.h"
#include "hw/boards.h"
#include "hw/qdev-core.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qapi/error.h"
#include "qapi/qapi-events-misc.h"
diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c
index 613406d09b..82d295b6e8 100644
--- a/hw/acpi/pcihp.c
+++ b/hw/acpi/pcihp.c
@@ -27,14 +27,13 @@
#include "qemu/osdep.h"
#include "hw/acpi/pcihp.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bridge.h"
#include "hw/acpi/acpi.h"
-#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
#include "hw/pci/pci_bus.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qom/qom-qobject.h"
#include "trace.h"
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index ec4e186cec..1c907d2a7d 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -18,13 +18,17 @@
* Contributions after 2012-01-13 are licensed under the terms of the
* GNU GPL, version 2 or (at your option) any later version.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "hw/isa/apm.h"
#include "hw/i2c/pm_smbus.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/acpi/acpi.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "qapi/error.h"
#include "qemu/range.h"
@@ -38,6 +42,8 @@
#include "hw/acpi/memory_hotplug.h"
#include "hw/acpi/acpi_dev_interface.h"
#include "hw/xen/xen.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
#include "qom/cpu.h"
#include "trace.h"
diff --git a/hw/acpi/tco.c b/hw/acpi/tco.c
index acfb65e8f2..fb9052dbca 100644
--- a/hw/acpi/tco.c
+++ b/hw/acpi/tco.c
@@ -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.
*/
+
#include "qemu/osdep.h"
#include "sysemu/watchdog.h"
#include "hw/i386/ich9.h"
+#include "migration/vmstate.h"
#include "hw/acpi/tco.h"
#include "trace.h"
diff --git a/hw/acpi/vmgenid.c b/hw/acpi/vmgenid.c
index b891df375f..6e11b0fa9b 100644
--- a/hw/acpi/vmgenid.c
+++ b/hw/acpi/vmgenid.c
@@ -18,7 +18,9 @@
#include "hw/acpi/aml-build.h"
#include "hw/acpi/vmgenid.h"
#include "hw/nvram/fw_cfg.h"
-#include "sysemu/sysemu.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
+#include "sysemu/reset.h"
void vmgenid_build_acpi(VmGenIdState *vms, GArray *table_data, GArray *guid,
BIOSLinker *linker)
diff --git a/hw/adc/stm32f2xx_adc.c b/hw/adc/stm32f2xx_adc.c
index c93b60e22e..4f9d485ecf 100644
--- a/hw/adc/stm32f2xx_adc.c
+++ b/hw/adc/stm32f2xx_adc.c
@@ -24,7 +24,7 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/adc/stm32f2xx_adc.h"
diff --git a/hw/alpha/alpha_sys.h b/hw/alpha/alpha_sys.h
index b6d8369ed7..4e127a6de8 100644
--- a/hw/alpha/alpha_sys.h
+++ b/hw/alpha/alpha_sys.h
@@ -8,7 +8,6 @@
#include "hw/pci/pci_host.h"
#include "hw/ide.h"
#include "hw/i386/pc.h"
-#include "hw/irq.h"
PCIBus *typhoon_init(ram_addr_t, ISABus **, qemu_irq *, AlphaCPU *[4],
diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
index 9dfb835013..51feee8558 100644
--- a/hw/alpha/dp264.c
+++ b/hw/alpha/dp264.c
@@ -9,10 +9,8 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "elf.h"
#include "hw/loader.h"
-#include "hw/boards.h"
#include "alpha_sys.h"
#include "qemu/error-report.h"
#include "sysemu/sysemu.h"
diff --git a/hw/alpha/pci.c b/hw/alpha/pci.c
index fb902bb92d..72251fcdf0 100644
--- a/hw/alpha/pci.c
+++ b/hw/alpha/pci.c
@@ -9,7 +9,6 @@
#include "qemu/osdep.h"
#include "alpha_sys.h"
#include "qemu/log.h"
-#include "sysemu/sysemu.h"
#include "trace.h"
diff --git a/hw/alpha/typhoon.c b/hw/alpha/typhoon.c
index 3f34a5153f..179e1f7658 100644
--- a/hw/alpha/typhoon.c
+++ b/hw/alpha/typhoon.c
@@ -11,8 +11,8 @@
#include "qemu/units.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
-#include "sysemu/sysemu.h"
+#include "hw/boards.h"
+#include "hw/irq.h"
#include "alpha_sys.h"
#include "exec/address-spaces.h"
diff --git a/hw/arm/allwinner-a10.c b/hw/arm/allwinner-a10.c
index 35e906ca54..73810a4440 100644
--- a/hw/arm/allwinner-a10.c
+++ b/hw/arm/allwinner-a10.c
@@ -16,12 +16,14 @@
*/
#include "qemu/osdep.h"
+#include "exec/address-spaces.h"
#include "qapi/error.h"
#include "qemu/module.h"
#include "cpu.h"
#include "hw/sysbus.h"
#include "hw/arm/allwinner-a10.h"
#include "hw/misc/unimp.h"
+#include "sysemu/sysemu.h"
static void aw_a10_init(Object *obj)
{
diff --git a/hw/arm/armsse.c b/hw/arm/armsse.c
index b5c614cc3a..e5263aa33d 100644
--- a/hw/arm/armsse.c
+++ b/hw/arm/armsse.c
@@ -16,9 +16,11 @@
#include "qapi/error.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
#include "hw/arm/armsse.h"
#include "hw/arm/boot.h"
+#include "hw/irq.h"
/* Format of the System Information block SYS_CONFIG register */
typedef enum SysConfigFormat {
diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c
index b9efad6bac..7a3c48f002 100644
--- a/hw/arm/armv7m.c
+++ b/hw/arm/armv7m.c
@@ -14,8 +14,10 @@
#include "hw/sysbus.h"
#include "hw/arm/boot.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "elf.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "exec/address-spaces.h"
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index 843b708247..7a2e885e0b 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -20,6 +20,7 @@
#include "hw/i2c/smbus_eeprom.h"
#include "hw/misc/pca9552.h"
#include "hw/misc/tmp105.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "sysemu/block-backend.h"
#include "sysemu/sysemu.h"
diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c
index c6fb3700f2..9ee8104832 100644
--- a/hw/arm/aspeed_soc.c
+++ b/hw/arm/aspeed_soc.c
@@ -22,6 +22,7 @@
#include "qemu/error-report.h"
#include "hw/i2c/aspeed_i2c.h"
#include "net/net.h"
+#include "sysemu/sysemu.h"
#define ASPEED_SOC_IOMEM_SIZE 0x00200000
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index c2b89b3bb9..eff89ab80e 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -12,13 +12,12 @@
#include "qemu/error-report.h"
#include "qapi/error.h"
#include <libfdt.h>
-#include "hw/hw.h"
#include "hw/arm/boot.h"
#include "hw/arm/linux-boot-if.h"
#include "sysemu/kvm.h"
#include "sysemu/sysemu.h"
#include "sysemu/numa.h"
-#include "hw/boards.h"
+#include "sysemu/reset.h"
#include "hw/loader.h"
#include "elf.h"
#include "sysemu/device_tree.h"
diff --git a/hw/arm/collie.c b/hw/arm/collie.c
index 3db3c56004..219643c633 100644
--- a/hw/arm/collie.c
+++ b/hw/arm/collie.c
@@ -10,7 +10,6 @@
*/
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "hw/boards.h"
#include "strongarm.h"
diff --git a/hw/arm/cubieboard.c b/hw/arm/cubieboard.c
index f7c8a5985a..38e0ca0f53 100644
--- a/hw/arm/cubieboard.c
+++ b/hw/arm/cubieboard.c
@@ -16,6 +16,7 @@
*/
#include "qemu/osdep.h"
+#include "exec/address-spaces.h"
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
diff --git a/hw/arm/digic.c b/hw/arm/digic.c
index 9015b60c23..4f52465875 100644
--- a/hw/arm/digic.c
+++ b/hw/arm/digic.c
@@ -24,6 +24,7 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/arm/digic.h"
+#include "hw/qdev-properties.h"
#include "sysemu/sysemu.h"
#define DIGIC4_TIMER_BASE(n) (0xc0210000 + (n) * 0x100)
diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c
index becd864c19..a9f8a5c868 100644
--- a/hw/arm/exynos4210.c
+++ b/hw/arm/exynos4210.c
@@ -26,11 +26,13 @@
#include "qemu/log.h"
#include "cpu.h"
#include "hw/cpu/a9mpcore.h"
-#include "hw/boards.h"
+#include "hw/irq.h"
+#include "sysemu/blockdev.h"
#include "sysemu/sysemu.h"
#include "hw/sysbus.h"
#include "hw/arm/boot.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/exynos4210.h"
#include "hw/sd/sdhci.h"
#include "hw/usb/hcd-ehci.h"
diff --git a/hw/arm/exynos4_boards.c b/hw/arm/exynos4_boards.c
index ac0b0dc2a9..f69358a5ba 100644
--- a/hw/arm/exynos4_boards.c
+++ b/hw/arm/exynos4_boards.c
@@ -33,7 +33,9 @@
#include "exec/address-spaces.h"
#include "hw/arm/exynos4210.h"
#include "hw/net/lan9118.h"
+#include "hw/qdev-properties.h"
#include "hw/boards.h"
+#include "hw/irq.h"
#define SMDK_LAN9118_BASE_ADDR 0x05000000
diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c
index 869ee89b15..532d088298 100644
--- a/hw/arm/fsl-imx25.c
+++ b/hw/arm/fsl-imx25.c
@@ -28,7 +28,7 @@
#include "hw/arm/fsl-imx25.h"
#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
-#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "chardev/char.h"
static void fsl_imx25_init(Object *obj)
diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c
index 662fe78f1b..1a37a7b997 100644
--- a/hw/arm/fsl-imx31.c
+++ b/hw/arm/fsl-imx31.c
@@ -25,7 +25,7 @@
#include "hw/arm/fsl-imx31.h"
#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
-#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "chardev/char.h"
static void fsl_imx31_init(Object *obj)
diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c
index de45833097..8c397ef04b 100644
--- a/hw/arm/fsl-imx6.c
+++ b/hw/arm/fsl-imx6.c
@@ -23,6 +23,7 @@
#include "qapi/error.h"
#include "hw/arm/fsl-imx6.h"
#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "sysemu/sysemu.h"
#include "chardev/char.h"
#include "qemu/error-report.h"
diff --git a/hw/arm/gumstix.c b/hw/arm/gumstix.c
index 343cbfd7da..f26a0e8010 100644
--- a/hw/arm/gumstix.c
+++ b/hw/arm/gumstix.c
@@ -36,7 +36,6 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
-#include "hw/hw.h"
#include "hw/arm/pxa.h"
#include "net/net.h"
#include "hw/block/flash.h"
diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
index def0f1ce6a..362e5ba044 100644
--- a/hw/arm/highbank.c
+++ b/hw/arm/highbank.c
@@ -21,10 +21,12 @@
#include "qemu-common.h"
#include "qapi/error.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/arm/boot.h"
#include "hw/loader.h"
#include "net/net.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "exec/address-spaces.h"
diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c
index 200c0107f0..200568b42a 100644
--- a/hw/arm/integratorcp.c
+++ b/hw/arm/integratorcp.c
@@ -11,15 +11,19 @@
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/boards.h"
#include "hw/arm/boot.h"
#include "hw/misc/arm_integrator_debug.h"
#include "hw/net/smc91c111.h"
#include "net/net.h"
#include "exec/address-spaces.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "qemu/error-report.h"
#include "hw/char/pl011.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
#define TYPE_INTEGRATOR_CM "integrator_core"
#define INTEGRATOR_CM(obj) \
diff --git a/hw/arm/kzm.c b/hw/arm/kzm.c
index 59d2102dc5..2f052e1f8c 100644
--- a/hw/arm/kzm.c
+++ b/hw/arm/kzm.c
@@ -24,6 +24,7 @@
#include "hw/net/lan9118.h"
#include "hw/char/serial.h"
#include "sysemu/qtest.h"
+#include "sysemu/sysemu.h"
/* Memory map for Kzm Emulation Baseboard:
* 0x00000000-0x7fffffff See i.MX31 SOC for support
diff --git a/hw/arm/mainstone.c b/hw/arm/mainstone.c
index cd1f904c6c..1bad1aea76 100644
--- a/hw/arm/mainstone.c
+++ b/hw/arm/mainstone.c
@@ -14,7 +14,6 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/arm/pxa.h"
#include "hw/arm/boot.h"
#include "net/net.h"
diff --git a/hw/arm/mcimx6ul-evk.c b/hw/arm/mcimx6ul-evk.c
index 1f6f4aed97..0276875f02 100644
--- a/hw/arm/mcimx6ul-evk.c
+++ b/hw/arm/mcimx6ul-evk.c
@@ -14,6 +14,7 @@
#include "qapi/error.h"
#include "hw/arm/fsl-imx6ul.h"
#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "sysemu/sysemu.h"
#include "qemu/error-report.h"
#include "sysemu/qtest.h"
diff --git a/hw/arm/mcimx7d-sabre.c b/hw/arm/mcimx7d-sabre.c
index 72eab03a0c..97b8bb788a 100644
--- a/hw/arm/mcimx7d-sabre.c
+++ b/hw/arm/mcimx7d-sabre.c
@@ -16,6 +16,7 @@
#include "qapi/error.h"
#include "hw/arm/fsl-imx7.h"
#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "sysemu/sysemu.h"
#include "qemu/error-report.h"
#include "sysemu/qtest.h"
diff --git a/hw/arm/microbit.c b/hw/arm/microbit.c
index e9a891f7d3..ef213695bd 100644
--- a/hw/arm/microbit.c
+++ b/hw/arm/microbit.c
@@ -17,6 +17,7 @@
#include "hw/arm/nrf51_soc.h"
#include "hw/i2c/microbit_i2c.h"
+#include "hw/qdev-properties.h"
typedef struct {
MachineState parent;
diff --git a/hw/arm/msf2-soc.c b/hw/arm/msf2-soc.c
index 1ccb644df7..008fd9327a 100644
--- a/hw/arm/msf2-soc.c
+++ b/hw/arm/msf2-soc.c
@@ -27,9 +27,11 @@
#include "qapi/error.h"
#include "exec/address-spaces.h"
#include "hw/char/serial.h"
-#include "hw/boards.h"
+#include "hw/irq.h"
#include "hw/arm/msf2-soc.h"
#include "hw/misc/unimp.h"
+#include "sysemu/runstate.h"
+#include "sysemu/sysemu.h"
#define MSF2_TIMER_BASE 0x40004000
#define MSF2_SYSREG_BASE 0x40038000
diff --git a/hw/arm/msf2-som.c b/hw/arm/msf2-som.c
index 2c9984bb3b..dbd35b6def 100644
--- a/hw/arm/msf2-som.c
+++ b/hw/arm/msf2-som.c
@@ -27,6 +27,7 @@
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/boot.h"
#include "exec/address-spaces.h"
#include "hw/arm/msf2-soc.h"
diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c
index 95d56f3208..8ae4751d75 100644
--- a/hw/arm/musicpal.c
+++ b/hw/arm/musicpal.c
@@ -13,18 +13,23 @@
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/arm/boot.h"
#include "net/net.h"
#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "hw/char/serial.h"
+#include "hw/hw.h"
#include "qemu/timer.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "hw/block/flash.h"
#include "ui/console.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
#include "hw/audio/wm8750.h"
#include "sysemu/block-backend.h"
+#include "sysemu/runstate.h"
#include "exec/address-spaces.h"
#include "ui/pixel_ops.h"
diff --git a/hw/arm/netduino2.c b/hw/arm/netduino2.c
index f57fc38f92..e770d9cac8 100644
--- a/hw/arm/netduino2.c
+++ b/hw/arm/netduino2.c
@@ -25,6 +25,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "qemu/error-report.h"
#include "hw/arm/stm32f205_soc.h"
#include "hw/arm/boot.h"
diff --git a/hw/arm/nrf51_soc.c b/hw/arm/nrf51_soc.c
index fc067cd8ee..74029169d0 100644
--- a/hw/arm/nrf51_soc.c
+++ b/hw/arm/nrf51_soc.c
@@ -12,10 +12,8 @@
#include "qapi/error.h"
#include "hw/arm/boot.h"
#include "hw/sysbus.h"
-#include "hw/boards.h"
#include "hw/misc/unimp.h"
#include "exec/address-spaces.h"
-#include "sysemu/sysemu.h"
#include "qemu/log.h"
#include "cpu.h"
diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c
index 4a79f5c88b..a6c4085337 100644
--- a/hw/arm/nseries.c
+++ b/hw/arm/nseries.c
@@ -23,6 +23,8 @@
#include "cpu.h"
#include "qemu/cutils.h"
#include "qemu/bswap.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "hw/arm/omap.h"
#include "hw/arm/boot.h"
@@ -34,6 +36,7 @@
#include "hw/input/tsc2xxx.h"
#include "hw/misc/cbus.h"
#include "hw/misc/tmp105.h"
+#include "hw/qdev-properties.h"
#include "hw/block/flash.h"
#include "hw/hw.h"
#include "hw/bt.h"
diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c
index 28fbe275a8..0400593805 100644
--- a/hw/arm/omap1.c
+++ b/hw/arm/omap1.c
@@ -19,16 +19,22 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qapi/error.h"
#include "qemu-common.h"
#include "cpu.h"
#include "hw/boards.h"
#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/boot.h"
#include "hw/arm/omap.h"
+#include "sysemu/blockdev.h"
#include "sysemu/sysemu.h"
#include "hw/arm/soc_dma.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "qemu/range.h"
#include "hw/sysbus.h"
#include "qemu/cutils.h"
diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c
index 87ced7f3a2..bd7ddff983 100644
--- a/hw/arm/omap2.c
+++ b/hw/arm/omap2.c
@@ -22,9 +22,13 @@
#include "qemu/error-report.h"
#include "qapi/error.h"
#include "cpu.h"
+#include "sysemu/blockdev.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "hw/boards.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/boot.h"
#include "hw/arm/omap.h"
#include "sysemu/sysemu.h"
diff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c
index cae78d0a36..75a05c36b0 100644
--- a/hw/arm/omap_sx1.c
+++ b/hw/arm/omap_sx1.c
@@ -27,7 +27,6 @@
*/
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "ui/console.h"
#include "hw/arm/omap.h"
#include "hw/boards.h"
diff --git a/hw/arm/palm.c b/hw/arm/palm.c
index 9eb9612bce..bea47b917d 100644
--- a/hw/arm/palm.c
+++ b/hw/arm/palm.c
@@ -16,9 +16,9 @@
* You should have received a copy of the GNU General Public License along
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "audio/audio.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
@@ -27,6 +27,7 @@
#include "hw/boards.h"
#include "hw/arm/boot.h"
#include "hw/input/tsc2xxx.h"
+#include "hw/irq.h"
#include "hw/loader.h"
#include "exec/address-spaces.h"
#include "cpu.h"
diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
index e2e43ae6e8..cdafde2f76 100644
--- a/hw/arm/pxa2xx.c
+++ b/hw/arm/pxa2xx.c
@@ -14,10 +14,13 @@
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/arm/pxa.h"
#include "sysemu/sysemu.h"
#include "hw/char/serial.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/ssi/ssi.h"
#include "chardev/char-fe.h"
#include "sysemu/blockdev.h"
diff --git a/hw/arm/pxa2xx_gpio.c b/hw/arm/pxa2xx_gpio.c
index d1fc9cba67..86a0e86c4c 100644
--- a/hw/arm/pxa2xx_gpio.c
+++ b/hw/arm/pxa2xx_gpio.c
@@ -10,7 +10,10 @@
#include "qemu/osdep.h"
#include "cpu.h"
#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/arm/pxa.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/arm/pxa2xx_pic.c b/hw/arm/pxa2xx_pic.c
index 2f4b461562..203d4d28af 100644
--- a/hw/arm/pxa2xx_pic.c
+++ b/hw/arm/pxa2xx_pic.c
@@ -11,9 +11,9 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/arm/pxa.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#define ICIP 0x00 /* Interrupt Controller IRQ Pending register */
#define ICMR 0x04 /* Interrupt Controller Mask register */
diff --git a/hw/arm/realview.c b/hw/arm/realview.c
index 7c56c8d2ed..b108a9ab26 100644
--- a/hw/arm/realview.c
+++ b/hw/arm/realview.c
@@ -25,6 +25,7 @@
#include "hw/char/pl011.h"
#include "hw/cpu/a9mpcore.h"
#include "hw/intc/realview_gic.h"
+#include "hw/irq.h"
#define SMP_BOOT_ADDR 0xe0000000
#define SMP_BOOTREG_ADDR 0x10000030
diff --git a/hw/arm/sabrelite.c b/hw/arm/sabrelite.c
index 934f4c9261..a6185c169e 100644
--- a/hw/arm/sabrelite.c
+++ b/hw/arm/sabrelite.c
@@ -14,6 +14,7 @@
#include "qapi/error.h"
#include "hw/arm/fsl-imx6.h"
#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "sysemu/sysemu.h"
#include "qemu/error-report.h"
#include "sysemu/qtest.h"
diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c
index 9c67d5c6f9..e98e9a5170 100644
--- a/hw/arm/sbsa-ref.c
+++ b/hw/arm/sbsa-ref.c
@@ -24,6 +24,7 @@
#include "qemu/units.h"
#include "sysemu/device_tree.h"
#include "sysemu/numa.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
#include "exec/hwaddr.h"
@@ -36,6 +37,7 @@
#include "hw/intc/arm_gicv3_common.h"
#include "hw/loader.h"
#include "hw/pci-host/gpex.h"
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
#include "net/net.h"
diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c
index 717d22bcbe..956ebe32c8 100644
--- a/hw/arm/smmu-common.c
+++ b/hw/arm/smmu-common.c
@@ -17,7 +17,6 @@
*/
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
#include "trace.h"
#include "exec/target_page.h"
diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c
index e96d5beb9a..2eaf07fb5f 100644
--- a/hw/arm/smmuv3.c
+++ b/hw/arm/smmuv3.c
@@ -17,9 +17,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/boards.h"
-#include "sysemu/sysemu.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/qdev-core.h"
#include "hw/pci/pci.h"
#include "exec/address-spaces.h"
diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c
index 723cf5d592..59348123b5 100644
--- a/hw/arm/spitz.c
+++ b/hw/arm/spitz.c
@@ -12,12 +12,14 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/arm/pxa.h"
#include "hw/arm/boot.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "hw/pcmcia.h"
+#include "hw/qdev-properties.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
#include "hw/ssi/ssi.h"
#include "hw/block/flash.h"
#include "qemu/timer.h"
@@ -27,6 +29,7 @@
#include "audio/audio.h"
#include "hw/boards.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "exec/address-spaces.h"
#include "cpu.h"
diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c
index 499035f5c8..b198066b54 100644
--- a/hw/arm/stellaris.c
+++ b/hw/arm/stellaris.c
@@ -18,11 +18,14 @@
#include "hw/boards.h"
#include "qemu/log.h"
#include "exec/address-spaces.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "hw/arm/armv7m.h"
#include "hw/char/pl011.h"
#include "hw/input/gamepad.h"
+#include "hw/irq.h"
#include "hw/watchdog/cmsdk-apb-watchdog.h"
+#include "migration/vmstate.h"
#include "hw/misc/unimp.h"
#include "cpu.h"
diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c
index c08041a1c5..f5a5c2d80c 100644
--- a/hw/arm/stm32f205_soc.c
+++ b/hw/arm/stm32f205_soc.c
@@ -28,6 +28,8 @@
#include "hw/arm/boot.h"
#include "exec/address-spaces.h"
#include "hw/arm/stm32f205_soc.h"
+#include "hw/qdev-properties.h"
+#include "sysemu/sysemu.h"
/* At the moment only Timer 2 to 5 are modelled */
static const uint32_t timer_addr[STM_NUM_TIMERS] = { 0x40000000, 0x40000400,
diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c
index fed51a8183..dc65d88a65 100644
--- a/hw/arm/strongarm.c
+++ b/hw/arm/strongarm.c
@@ -31,7 +31,10 @@
#include "qemu-common.h"
#include "cpu.h"
#include "hw/boards.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "strongarm.h"
#include "qemu/error-report.h"
#include "hw/arm/boot.h"
diff --git a/hw/arm/sysbus-fdt.c b/hw/arm/sysbus-fdt.c
index 57f94e6581..022fc97ecd 100644
--- a/hw/arm/sysbus-fdt.c
+++ b/hw/arm/sysbus-fdt.c
@@ -31,7 +31,6 @@
#include "qemu/error-report.h"
#include "sysemu/device_tree.h"
#include "hw/platform-bus.h"
-#include "sysemu/sysemu.h"
#include "hw/vfio/vfio-platform.h"
#include "hw/vfio/vfio-calxeda-xgmac.h"
#include "hw/vfio/vfio-amd-xgbe.h"
diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c
index 7843d68d46..e9627e356e 100644
--- a/hw/arm/tosa.c
+++ b/hw/arm/tosa.c
@@ -13,7 +13,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
+#include "sysemu/runstate.h"
#include "hw/arm/pxa.h"
#include "hw/arm/boot.h"
#include "hw/arm/sharpsl.h"
@@ -21,10 +21,10 @@
#include "hw/boards.h"
#include "hw/display/tc6393xb.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
#include "hw/ssi/ssi.h"
#include "hw/sysbus.h"
#include "exec/address-spaces.h"
-#include "sysemu/sysemu.h"
#define TOSA_RAM 0x04000000
#define TOSA_ROM 0x00800000
diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c
index e5857117ac..e25561705f 100644
--- a/hw/arm/versatilepb.c
+++ b/hw/arm/versatilepb.c
@@ -11,12 +11,14 @@
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/arm/boot.h"
#include "hw/net/smc91c111.h"
#include "net/net.h"
#include "sysemu/sysemu.h"
#include "hw/pci/pci.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
#include "hw/boards.h"
#include "exec/address-spaces.h"
#include "hw/block/flash.h"
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index 0afb372769..fa9afd2b7e 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -36,7 +36,6 @@
#include "hw/acpi/acpi.h"
#include "hw/nvram/fw_cfg.h"
#include "hw/acpi/bios-linker-loader.h"
-#include "hw/hw.h"
#include "hw/acpi/aml-build.h"
#include "hw/acpi/utils.h"
#include "hw/acpi/pci.h"
@@ -44,7 +43,9 @@
#include "hw/pci/pci.h"
#include "hw/arm/virt.h"
#include "sysemu/numa.h"
+#include "sysemu/reset.h"
#include "kvm_arm.h"
+#include "migration/vmstate.h"
#define ARM_SPI_BASE 32
#define ACPI_POWER_BUTTON_DEVICE "PWRB"
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index d9496c9363..02510acb81 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -34,6 +34,7 @@
#include "qemu/option.h"
#include "qapi/error.h"
#include "hw/sysbus.h"
+#include "hw/boards.h"
#include "hw/arm/boot.h"
#include "hw/arm/primecell.h"
#include "hw/arm/virt.h"
@@ -44,6 +45,7 @@
#include "net/net.h"
#include "sysemu/device_tree.h"
#include "sysemu/numa.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
#include "hw/loader.h"
@@ -54,9 +56,11 @@
#include "hw/pci-host/gpex.h"
#include "hw/arm/sysbus-fdt.h"
#include "hw/platform-bus.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/fdt.h"
#include "hw/intc/arm_gic.h"
#include "hw/intc/arm_gicv3_common.h"
+#include "hw/irq.h"
#include "kvm_arm.h"
#include "hw/firmware/smbios.h"
#include "qapi/visitor.h"
diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
index a60830d37a..0f587e63d3 100644
--- a/hw/arm/xlnx-zynqmp.c
+++ b/hw/arm/xlnx-zynqmp.c
@@ -24,6 +24,7 @@
#include "hw/boards.h"
#include "exec/address-spaces.h"
#include "sysemu/kvm.h"
+#include "sysemu/sysemu.h"
#include "kvm_arm.h"
#define GIC_NUM_SPI_INTR 160
diff --git a/hw/arm/z2.c b/hw/arm/z2.c
index 44aa748d39..3923b87e4c 100644
--- a/hw/arm/z2.c
+++ b/hw/arm/z2.c
@@ -12,13 +12,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/arm/pxa.h"
#include "hw/arm/boot.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
#include "hw/ssi/ssi.h"
+#include "migration/vmstate.h"
#include "hw/boards.h"
-#include "sysemu/sysemu.h"
#include "hw/block/flash.h"
#include "ui/console.h"
#include "hw/audio/wm8750.h"
diff --git a/hw/audio/ac97.c b/hw/audio/ac97.c
index fb98da2678..115ee51c7c 100644
--- a/hw/audio/ac97.c
+++ b/hw/audio/ac97.c
@@ -18,10 +18,11 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/audio/soundhw.h"
#include "audio/audio.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "sysemu/dma.h"
diff --git a/hw/audio/adlib.c b/hw/audio/adlib.c
index 7dd9a89b89..2f4aacbf43 100644
--- a/hw/audio/adlib.c
+++ b/hw/audio/adlib.c
@@ -25,10 +25,10 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/audio/soundhw.h"
#include "audio/audio.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
//#define DEBUG
diff --git a/hw/audio/cs4231.c b/hw/audio/cs4231.c
index 8372299ebb..b5d3e895ce 100644
--- a/hw/audio/cs4231.c
+++ b/hw/audio/cs4231.c
@@ -24,6 +24,7 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "trace.h"
diff --git a/hw/audio/cs4231a.c b/hw/audio/cs4231a.c
index 7216b41cc1..d77a4e713e 100644
--- a/hw/audio/cs4231a.c
+++ b/hw/audio/cs4231a.c
@@ -23,11 +23,12 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/audio/soundhw.h"
#include "audio/audio.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
-#include "hw/qdev.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "qemu/timer.h"
#include "qapi/error.h"
diff --git a/hw/audio/es1370.c b/hw/audio/es1370.c
index 260c142b70..39deecbbc6 100644
--- a/hw/audio/es1370.c
+++ b/hw/audio/es1370.c
@@ -27,10 +27,10 @@
#define SILENT_ES1370
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/audio/soundhw.h"
#include "audio/audio.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "sysemu/dma.h"
diff --git a/hw/audio/gus.c b/hw/audio/gus.c
index 9ab51631d9..dbfe7cf634 100644
--- a/hw/audio/gus.c
+++ b/hw/audio/gus.c
@@ -25,10 +25,12 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/audio/soundhw.h"
#include "audio/audio.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "gusemu.h"
#include "gustate.h"
diff --git a/hw/audio/hda-codec.c b/hw/audio/hda-codec.c
index 84639b5424..4fee0673d9 100644
--- a/hw/audio/hda-codec.c
+++ b/hw/audio/hda-codec.c
@@ -18,9 +18,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "intel-hda.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "intel-hda-defs.h"
#include "audio/audio.h"
diff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c
index b78baac295..6ecd383540 100644
--- a/hw/audio/intel-hda.c
+++ b/hw/audio/intel-hda.c
@@ -18,8 +18,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/pci/msi.h"
#include "qemu/timer.h"
#include "qemu/bitops.h"
@@ -27,6 +27,7 @@
#include "qemu/module.h"
#include "hw/audio/soundhw.h"
#include "intel-hda.h"
+#include "migration/vmstate.h"
#include "intel-hda-defs.h"
#include "sysemu/dma.h"
#include "qapi/error.h"
diff --git a/hw/audio/intel-hda.h b/hw/audio/intel-hda.h
index 53b78da4df..eee6fee5af 100644
--- a/hw/audio/intel-hda.h
+++ b/hw/audio/intel-hda.h
@@ -1,7 +1,7 @@
#ifndef HW_INTEL_HDA_H
#define HW_INTEL_HDA_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
/* --------------------------------------------------------------------- */
/* hda bus */
diff --git a/hw/audio/lm4549.c b/hw/audio/lm4549.c
index af8b22b541..32b1481b56 100644
--- a/hw/audio/lm4549.c
+++ b/hw/audio/lm4549.c
@@ -17,6 +17,7 @@
#include "hw/hw.h"
#include "audio/audio.h"
#include "lm4549.h"
+#include "migration/vmstate.h"
#if 0
#define LM4549_DEBUG 1
diff --git a/hw/audio/lm4549.h b/hw/audio/lm4549.h
index 74c3ee8934..aba9bb5b07 100644
--- a/hw/audio/lm4549.h
+++ b/hw/audio/lm4549.h
@@ -13,6 +13,7 @@
#define HW_LM4549_H
#include "audio/audio.h"
+#include "exec/hwaddr.h"
typedef void (*lm4549_callback)(void *opaque);
diff --git a/hw/audio/marvell_88w8618.c b/hw/audio/marvell_88w8618.c
index ff1a0d0d8f..883ef74c8b 100644
--- a/hw/audio/marvell_88w8618.c
+++ b/hw/audio/marvell_88w8618.c
@@ -12,7 +12,9 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/audio/wm8750.h"
#include "audio/audio.h"
#include "qapi/error.h"
diff --git a/hw/audio/milkymist-ac97.c b/hw/audio/milkymist-ac97.c
index bf6a5a6b96..481dde10a1 100644
--- a/hw/audio/milkymist-ac97.c
+++ b/hw/audio/milkymist-ac97.c
@@ -22,8 +22,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "audio/audio.h"
#include "qemu/error-report.h"
diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c
index a7b3ab0c2b..016946d4b2 100644
--- a/hw/audio/pcspk.c
+++ b/hw/audio/pcspk.c
@@ -23,13 +23,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
#include "hw/audio/soundhw.h"
#include "audio/audio.h"
#include "qemu/module.h"
#include "qemu/timer.h"
#include "hw/timer/i8254.h"
+#include "migration/vmstate.h"
#include "hw/audio/pcspk.h"
#include "qapi/error.h"
diff --git a/hw/audio/pl041.c b/hw/audio/pl041.c
index 59c6ce1f2e..ca91399078 100644
--- a/hw/audio/pl041.c
+++ b/hw/audio/pl041.c
@@ -21,12 +21,15 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "pl041.h"
#include "lm4549.h"
+#include "migration/vmstate.h"
#if 0
#define PL041_DEBUG_LEVEL 1
diff --git a/hw/audio/sb16.c b/hw/audio/sb16.c
index a2db06a2bb..3ad01f3599 100644
--- a/hw/audio/sb16.c
+++ b/hw/audio/sb16.c
@@ -23,11 +23,12 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/audio/soundhw.h"
#include "audio/audio.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
-#include "hw/qdev.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
#include "qemu/host-utils.h"
#include "qemu/log.h"
diff --git a/hw/audio/wm8750.c b/hw/audio/wm8750.c
index 81f83eea88..9f6df5d59c 100644
--- a/hw/audio/wm8750.c
+++ b/hw/audio/wm8750.c
@@ -9,6 +9,7 @@
#include "qemu/osdep.h"
#include "hw/i2c/i2c.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "hw/audio/wm8750.h"
#include "audio/audio.h"
diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
index 158c78f852..9299a1a7c2 100644
--- a/hw/block/dataplane/virtio-blk.c
+++ b/hw/block/dataplane/virtio-blk.c
@@ -16,6 +16,7 @@
#include "qapi/error.h"
#include "trace.h"
#include "qemu/iov.h"
+#include "qemu/main-loop.h"
#include "qemu/thread.h"
#include "qemu/error-report.h"
#include "hw/virtio/virtio-access.h"
diff --git a/hw/block/dataplane/xen-block.c b/hw/block/dataplane/xen-block.c
index 0f200c5fb0..3b9caeb2fa 100644
--- a/hw/block/dataplane/xen-block.c
+++ b/hw/block/dataplane/xen-block.c
@@ -20,8 +20,8 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/xen/xen_common.h"
#include "hw/block/xen_blkif.h"
#include "sysemu/block-backend.h"
diff --git a/hw/block/ecc.c b/hw/block/ecc.c
index 48311d2609..1a182367ee 100644
--- a/hw/block/ecc.c
+++ b/hw/block/ecc.c
@@ -12,7 +12,7 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "migration/vmstate.h"
#include "hw/block/flash.h"
/*
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
index 9b24cb9b85..ac5d31e8c1 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -28,18 +28,21 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/block/fdc.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/timer.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/block/block.h"
#include "sysemu/block-backend.h"
#include "sysemu/blockdev.h"
#include "sysemu/sysemu.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "trace.h"
diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index dd87affcf5..47159de3a4 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -23,9 +23,10 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "sysemu/block-backend.h"
+#include "hw/qdev-properties.h"
#include "hw/ssi/ssi.h"
+#include "migration/vmstate.h"
#include "qemu/bitops.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/block/nand.c b/hw/block/nand.c
index 0a2736b50e..e396004315 100644
--- a/hw/block/nand.c
+++ b/hw/block/nand.c
@@ -20,9 +20,10 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/qdev-properties.h"
#include "hw/block/flash.h"
#include "sysemu/block-backend.h"
-#include "hw/qdev.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 36d6a8bb3a..12d8254250 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -28,9 +28,10 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "hw/block/block.h"
-#include "hw/hw.h"
#include "hw/pci/msix.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "sysemu/sysemu.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
diff --git a/hw/block/onenand.c b/hw/block/onenand.c
index b3644f7e89..fcc5a69b90 100644
--- a/hw/block/onenand.c
+++ b/hw/block/onenand.c
@@ -23,9 +23,11 @@
#include "hw/hw.h"
#include "hw/block/flash.h"
#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "sysemu/block-backend.h"
#include "exec/memory.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c
index a1ec1faae5..566c0acb77 100644
--- a/hw/block/pflash_cfi01.c
+++ b/hw/block/pflash_cfi01.c
@@ -37,9 +37,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/block/block.h"
#include "hw/block/flash.h"
+#include "hw/qdev-properties.h"
#include "sysemu/block-backend.h"
#include "qapi/error.h"
#include "qemu/timer.h"
@@ -50,8 +50,9 @@
#include "qemu/module.h"
#include "qemu/option.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "sysemu/blockdev.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "trace.h"
/* #define PFLASH_DEBUG */
diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c
index 42886f6af5..4baca701b7 100644
--- a/hw/block/pflash_cfi02.c
+++ b/hw/block/pflash_cfi02.c
@@ -33,9 +33,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/block/block.h"
#include "hw/block/flash.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/bitmap.h"
#include "qemu/timer.h"
@@ -43,6 +43,7 @@
#include "qemu/host-utils.h"
#include "qemu/module.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#define PFLASH_DEBUG false
diff --git a/hw/block/tc58128.c b/hw/block/tc58128.c
index d0fae248dc..9888f01ac6 100644
--- a/hw/block/tc58128.c
+++ b/hw/block/tc58128.c
@@ -1,6 +1,5 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "hw/sh4/sh.h"
#include "hw/loader.h"
#include "sysemu/qtest.h"
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
index 85bc4017e7..0b8c5dfeab 100644
--- a/hw/block/vhost-user-blk.c
+++ b/hw/block/vhost-user-blk.c
@@ -22,11 +22,14 @@
#include "qemu/cutils.h"
#include "qom/object.h"
#include "hw/qdev-core.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/vhost.h"
#include "hw/virtio/vhost-user-blk.h"
#include "hw/virtio/virtio.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-access.h"
+#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
static const int user_feature_bits[] = {
VIRTIO_BLK_F_SIZE_MAX,
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index cbb3729158..18851601cb 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -18,7 +18,10 @@
#include "qemu/error-report.h"
#include "trace.h"
#include "hw/block/block.h"
+#include "hw/qdev-properties.h"
#include "sysemu/blockdev.h"
+#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "hw/virtio/virtio-blk.h"
#include "dataplane/virtio-blk.h"
#include "scsi/constants.h"
@@ -26,6 +29,7 @@
# include <scsi/sg.h>
#endif
#include "hw/virtio/virtio-bus.h"
+#include "migration/qemu-file-types.h"
#include "hw/virtio/virtio-access.h"
/* Config size before the discard support (hide associated config fields) */
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index 69d73196e2..f77343db60 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -7,6 +7,7 @@
#include "qemu/osdep.h"
#include "qemu/cutils.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/option.h"
#include "qapi/error.h"
@@ -17,9 +18,9 @@
#include "qapi/visitor.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qstring.h"
-#include "hw/hw.h"
#include "hw/xen/xen_common.h"
#include "hw/block/xen_blkif.h"
+#include "hw/qdev-properties.h"
#include "hw/xen/xen-block.h"
#include "hw/xen/xen-backend.h"
#include "sysemu/blockdev.h"
diff --git a/hw/char/bcm2835_aux.c b/hw/char/bcm2835_aux.c
index 94679d276c..3f855196e3 100644
--- a/hw/char/bcm2835_aux.c
+++ b/hw/char/bcm2835_aux.c
@@ -22,6 +22,9 @@
#include "qemu/osdep.h"
#include "hw/char/bcm2835_aux.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c
index fa25fe24da..0e315b2376 100644
--- a/hw/char/cadence_uart.c
+++ b/hw/char/cadence_uart.c
@@ -23,12 +23,14 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "chardev/char-fe.h"
#include "chardev/char-serial.h"
#include "qemu/timer.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/char/cadence_uart.h"
+#include "hw/irq.h"
#ifdef CADENCE_UART_ERR_DEBUG
#define DB_PRINT(...) do { \
diff --git a/hw/char/cmsdk-apb-uart.c b/hw/char/cmsdk-apb-uart.c
index 606c9cc7d6..9e1aa43bd3 100644
--- a/hw/char/cmsdk-apb-uart.c
+++ b/hw/char/cmsdk-apb-uart.c
@@ -21,10 +21,12 @@
#include "qapi/error.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
#include "chardev/char-fe.h"
#include "chardev/char-serial.h"
#include "hw/char/cmsdk-apb-uart.h"
+#include "hw/irq.h"
REG32(DATA, 0)
REG32(STATE, 4)
diff --git a/hw/char/debugcon.c b/hw/char/debugcon.c
index e1b6d1190f..5c592e091b 100644
--- a/hw/char/debugcon.c
+++ b/hw/char/debugcon.c
@@ -27,9 +27,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "chardev/char-fe.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
#define TYPE_ISA_DEBUGCON_DEVICE "isa-debugcon"
#define ISA_DEBUGCON_DEVICE(obj) \
diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c
index e4ac8435c8..974a2619dd 100644
--- a/hw/char/digic-uart.c
+++ b/hw/char/digic-uart.c
@@ -27,13 +27,14 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "chardev/char-fe.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/char/digic-uart.h"
+#include "hw/qdev-properties.h"
enum {
ST_RX_RDY = (1 << 0),
diff --git a/hw/char/escc.c b/hw/char/escc.c
index 8ddbb4be4f..e185522e27 100644
--- a/hw/char/escc.c
+++ b/hw/char/escc.c
@@ -23,8 +23,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "hw/char/escc.h"
#include "ui/console.h"
diff --git a/hw/char/etraxfs_ser.c b/hw/char/etraxfs_ser.c
index 9745bca86c..15ac12ef22 100644
--- a/hw/char/etraxfs_ser.c
+++ b/hw/char/etraxfs_ser.c
@@ -23,6 +23,8 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "chardev/char-fe.h"
#include "qemu/log.h"
diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c
index c5700eeaec..d6b6b62366 100644
--- a/hw/char/exynos4210_uart.c
+++ b/hw/char/exynos4210_uart.c
@@ -21,13 +21,15 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
#include "chardev/char-fe.h"
#include "chardev/char-serial.h"
#include "hw/arm/exynos4210.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#undef DEBUG_UART
#undef DEBUG_UART_EXTEND
diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c
index c2bb3ac153..fe3cbf41a3 100644
--- a/hw/char/grlib_apbuart.c
+++ b/hw/char/grlib_apbuart.c
@@ -23,6 +23,8 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sparc/grlib.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c
index 0655a9571b..fddde9b43d 100644
--- a/hw/char/imx_serial.c
+++ b/hw/char/imx_serial.c
@@ -20,7 +20,9 @@
#include "qemu/osdep.h"
#include "hw/char/imx_serial.h"
-#include "sysemu/sysemu.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c
index 5ab731e408..66c163ba26 100644
--- a/hw/char/ipoctal232.c
+++ b/hw/char/ipoctal232.c
@@ -10,6 +10,9 @@
#include "qemu/osdep.h"
#include "hw/ipack/ipack.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/bitops.h"
#include "qemu/module.h"
#include "chardev/char-fe.h"
diff --git a/hw/char/lm32_juart.c b/hw/char/lm32_juart.c
index 41a3ec81e3..e0b1bd6555 100644
--- a/hw/char/lm32_juart.c
+++ b/hw/char/lm32_juart.c
@@ -18,13 +18,14 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "trace.h"
#include "chardev/char-fe.h"
#include "hw/char/lm32_juart.h"
+#include "hw/qdev-properties.h"
enum {
LM32_JUART_MIN_SAVE_VERSION = 0,
diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c
index d047a44e34..32f29c44cf 100644
--- a/hw/char/lm32_uart.c
+++ b/hw/char/lm32_uart.c
@@ -23,8 +23,10 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "chardev/char-fe.h"
#include "qemu/error-report.h"
diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c
index 7b06110c4d..58323baf43 100644
--- a/hw/char/mcf_uart.c
+++ b/hw/char/mcf_uart.c
@@ -7,10 +7,11 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
#include "hw/m68k/mcf.h"
+#include "hw/qdev-properties.h"
#include "chardev/char-fe.h"
typedef struct {
diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c
index 8a78fcca8f..c358ca07f3 100644
--- a/hw/char/milkymist-uart.c
+++ b/hw/char/milkymist-uart.c
@@ -22,8 +22,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "chardev/char-fe.h"
#include "qemu/error-report.h"
diff --git a/hw/char/nrf51_uart.c b/hw/char/nrf51_uart.c
index c90b491477..2777afe366 100644
--- a/hw/char/nrf51_uart.c
+++ b/hw/char/nrf51_uart.c
@@ -16,6 +16,9 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/char/nrf51_uart.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "trace.h"
static void nrf51_uart_update_irq(NRF51UARTState *s)
diff --git a/hw/char/omap_uart.c b/hw/char/omap_uart.c
index b3bb1cfcec..13e4f43c4c 100644
--- a/hw/char/omap_uart.c
+++ b/hw/char/omap_uart.c
@@ -19,7 +19,6 @@
*/
#include "qemu/osdep.h"
#include "chardev/char.h"
-#include "hw/hw.h"
#include "hw/arm/omap.h"
#include "hw/char/serial.h"
#include "exec/address-spaces.h"
diff --git a/hw/char/parallel-isa.c b/hw/char/parallel-isa.c
index a043832e72..bcc577f61c 100644
--- a/hw/char/parallel-isa.c
+++ b/hw/char/parallel-isa.c
@@ -8,9 +8,11 @@
*
* SPDX-License-Identifier: MIT
*/
+
#include "qemu/osdep.h"
#include "sysemu/sysemu.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
#include "hw/char/parallel.h"
static void parallel_init(ISABus *bus, int index, Chardev *chr)
diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index 1cd4c54a02..40174eeda1 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -26,11 +26,14 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "chardev/char-parallel.h"
#include "chardev/char-fe.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/char/parallel.h"
+#include "sysemu/reset.h"
#include "sysemu/sysemu.h"
#include "trace.h"
diff --git a/hw/char/pl011.c b/hw/char/pl011.c
index c1ae2f31f5..84ad8ff9fb 100644
--- a/hw/char/pl011.c
+++ b/hw/char/pl011.c
@@ -20,7 +20,9 @@
#include "qemu/osdep.h"
#include "hw/char/pl011.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "chardev/char-fe.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c
index 691dc870ed..392606259d 100644
--- a/hw/char/sclpconsole-lm.c
+++ b/hw/char/sclpconsole-lm.c
@@ -14,14 +14,15 @@
*/
#include "qemu/osdep.h"
-#include "hw/qdev.h"
#include "qemu/thread.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "chardev/char-fe.h"
#include "hw/s390x/sclp.h"
+#include "migration/vmstate.h"
#include "hw/s390x/event-facility.h"
+#include "hw/qdev-properties.h"
#include "hw/s390x/ebcdic.h"
#define SIZE_BUFFER 4096
diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c
index 09b1d45d7a..da126f0133 100644
--- a/hw/char/sclpconsole.c
+++ b/hw/char/sclpconsole.c
@@ -13,12 +13,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/qdev.h"
#include "qemu/thread.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "hw/s390x/sclp.h"
+#include "migration/vmstate.h"
+#include "hw/qdev-properties.h"
#include "hw/s390x/event-facility.h"
#include "chardev/char-fe.h"
diff --git a/hw/char/serial-isa.c b/hw/char/serial-isa.c
index 610426111a..9e31c51bb6 100644
--- a/hw/char/serial-isa.c
+++ b/hw/char/serial-isa.c
@@ -26,8 +26,11 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
+#include "sysemu/sysemu.h"
#include "hw/char/serial.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#define ISA_SERIAL(obj) OBJECT_CHECK(ISASerialState, (obj), TYPE_ISA_SERIAL)
diff --git a/hw/char/serial-pci-multi.c b/hw/char/serial-pci-multi.c
index 63dcbaa984..5f13b5663b 100644
--- a/hw/char/serial-pci-multi.c
+++ b/hw/char/serial-pci-multi.c
@@ -30,7 +30,10 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/char/serial.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#define PCI_SERIAL_MAX_PORTS 4
diff --git a/hw/char/serial-pci.c b/hw/char/serial-pci.c
index 9028efbda8..cb9b76e22b 100644
--- a/hw/char/serial-pci.c
+++ b/hw/char/serial-pci.c
@@ -29,7 +29,10 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/char/serial.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
typedef struct PCISerialState {
PCIDevice dev;
diff --git a/hw/char/serial.c b/hw/char/serial.c
index 7c42a2abfc..b4aa250950 100644
--- a/hw/char/serial.c
+++ b/hw/char/serial.c
@@ -25,9 +25,13 @@
#include "qemu/osdep.h"
#include "hw/char/serial.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "chardev/char-serial.h"
#include "qapi/error.h"
#include "qemu/timer.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "qemu/error-report.h"
#include "trace.h"
diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c
index 67740b7ee6..07dc16be13 100644
--- a/hw/char/sh_serial.c
+++ b/hw/char/sh_serial.c
@@ -24,8 +24,9 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sh4/sh.h"
#include "chardev/char-fe.h"
#include "qapi/error.h"
diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c
index 871d2666f3..7f860fcce7 100644
--- a/hw/char/spapr_vty.c
+++ b/hw/char/spapr_vty.c
@@ -3,10 +3,12 @@
#include "qemu/module.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/qdev.h"
+#include "migration/vmstate.h"
#include "chardev/char-fe.h"
+#include "hw/irq.h"
#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_vio.h"
+#include "hw/qdev-properties.h"
#define VTERM_BUFSIZE 16
diff --git a/hw/char/stm32f2xx_usart.c b/hw/char/stm32f2xx_usart.c
index 40c365b908..4ec843de38 100644
--- a/hw/char/stm32f2xx_usart.c
+++ b/hw/char/stm32f2xx_usart.c
@@ -24,6 +24,8 @@
#include "qemu/osdep.h"
#include "hw/char/stm32f2xx_usart.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/char/terminal3270.c b/hw/char/terminal3270.c
index 3785886c25..6859c1bcb2 100644
--- a/hw/char/terminal3270.c
+++ b/hw/char/terminal3270.c
@@ -15,6 +15,7 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "chardev/char-fe.h"
+#include "hw/qdev-properties.h"
#include "hw/s390x/3270-ccw.h"
/* Enough spaces for different window sizes. */
diff --git a/hw/char/virtio-console.c b/hw/char/virtio-console.c
index 1bbeb00fae..c13649f1ef 100644
--- a/hw/char/virtio-console.c
+++ b/hw/char/virtio-console.c
@@ -15,6 +15,7 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "trace.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-serial.h"
#include "qapi/error.h"
#include "qapi/qapi-events-char.h"
diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c
index f7a54f261b..4e0ed829ae 100644
--- a/hw/char/virtio-serial-bus.c
+++ b/hw/char/virtio-serial-bus.c
@@ -21,10 +21,13 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/iov.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
+#include "migration/qemu-file-types.h"
#include "monitor/monitor.h"
#include "qemu/error-report.h"
#include "qemu/queue.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "trace.h"
#include "hw/virtio/virtio-serial.h"
diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
index 47e1092263..63153dfde4 100644
--- a/hw/char/xen_console.c
+++ b/hw/char/xen_console.c
@@ -24,7 +24,7 @@
#include <termios.h>
#include "qapi/error.h"
-#include "hw/hw.h"
+#include "sysemu/sysemu.h"
#include "chardev/char-fe.h"
#include "hw/xen/xen-legacy-backend.h"
diff --git a/hw/char/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c
index 880962a756..2c47275068 100644
--- a/hw/char/xilinx_uartlite.c
+++ b/hw/char/xilinx_uartlite.c
@@ -23,6 +23,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
#include "chardev/char-fe.h"
diff --git a/hw/core/bus.c b/hw/core/bus.c
index 17bc1edcde..7f3d2a3dbd 100644
--- a/hw/core/bus.c
+++ b/hw/core/bus.c
@@ -18,9 +18,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "qemu/ctype.h"
#include "qemu/module.h"
-#include "hw/qdev.h"
#include "qapi/error.h"
void qbus_set_hotplug_handler(BusState *bus, Object *handler, Error **errp)
diff --git a/hw/core/empty_slot.c b/hw/core/empty_slot.c
index c694532046..3ba450e1ca 100644
--- a/hw/core/empty_slot.c
+++ b/hw/core/empty_slot.c
@@ -10,7 +10,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
#include "hw/empty_slot.h"
diff --git a/hw/core/generic-loader.c b/hw/core/generic-loader.c
index 79a493e577..06d8d6466e 100644
--- a/hw/core/generic-loader.c
+++ b/hw/core/generic-loader.c
@@ -34,7 +34,9 @@
#include "qom/cpu.h"
#include "hw/sysbus.h"
#include "sysemu/dma.h"
+#include "sysemu/reset.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/core/generic-loader.h"
diff --git a/hw/core/loader-fit.c b/hw/core/loader-fit.c
index f27b6af942..953b16bc82 100644
--- a/hw/core/loader-fit.c
+++ b/hw/core/loader-fit.c
@@ -26,7 +26,6 @@
#include "qemu/cutils.h"
#include "qemu/error-report.h"
#include "sysemu/device_tree.h"
-#include "sysemu/sysemu.h"
#include <libfdt.h>
#include <zlib.h>
diff --git a/hw/core/loader.c b/hw/core/loader.c
index 425bf69a99..84e4f3efac 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -47,7 +47,9 @@
#include "qapi/error.h"
#include "hw/hw.h"
#include "disas/disas.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
+#include "sysemu/reset.h"
#include "sysemu/sysemu.h"
#include "uboot_image.h"
#include "hw/loader.h"
diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
index 5bd95b8ab0..526fbd5ced 100644
--- a/hw/core/machine-qmp-cmds.c
+++ b/hw/core/machine-qmp-cmds.c
@@ -13,9 +13,11 @@
#include "qapi/error.h"
#include "qapi/qapi-commands-machine.h"
#include "qapi/qmp/qerror.h"
+#include "qemu/main-loop.h"
#include "sysemu/hostmem.h"
#include "sysemu/hw_accel.h"
#include "sysemu/numa.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
CpuInfoList *qmp_query_cpus(Error **errp)
diff --git a/hw/core/null-machine.c b/hw/core/null-machine.c
index 04a1e2b02a..30b1991b52 100644
--- a/hw/core/null-machine.c
+++ b/hw/core/null-machine.c
@@ -13,7 +13,6 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
diff --git a/hw/core/numa.c b/hw/core/numa.c
index a11431483c..7a63ddc4c6 100644
--- a/hw/core/numa.c
+++ b/hw/core/numa.c
@@ -23,7 +23,9 @@
*/
#include "qemu/osdep.h"
+#include "sysemu/hostmem.h"
#include "sysemu/numa.h"
+#include "sysemu/sysemu.h"
#include "exec/cpu-common.h"
#include "exec/ramlist.h"
#include "qemu/bitmap.h"
@@ -32,7 +34,10 @@
#include "qapi/opts-visitor.h"
#include "qapi/qapi-visit-machine.h"
#include "sysemu/qtest.h"
+#include "qom/cpu.h"
#include "hw/mem/pc-dimm.h"
+#include "migration/vmstate.h"
+#include "hw/boards.h"
#include "hw/mem/memory-device.h"
#include "qemu/option.h"
#include "qemu/config-file.h"
diff --git a/hw/core/or-irq.c b/hw/core/or-irq.c
index 123a8c644a..18d63831cd 100644
--- a/hw/core/or-irq.c
+++ b/hw/core/or-irq.c
@@ -23,7 +23,10 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/or-irq.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
static void or_irq_handler(void *opaque, int n, int level)
diff --git a/hw/core/platform-bus.c b/hw/core/platform-bus.c
index 5fecb29239..edb0da1de8 100644
--- a/hw/core/platform-bus.c
+++ b/hw/core/platform-bus.c
@@ -21,9 +21,9 @@
#include "qemu/osdep.h"
#include "hw/platform-bus.h"
+#include "hw/qdev-properties.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
/*
diff --git a/hw/core/ptimer.c b/hw/core/ptimer.c
index 170fd34d8b..d58e2dfdb0 100644
--- a/hw/core/ptimer.c
+++ b/hw/core/ptimer.c
@@ -5,10 +5,11 @@
*
* This code is licensed under the GNU LGPL.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qemu/timer.h"
#include "hw/ptimer.h"
+#include "migration/vmstate.h"
#include "qemu/host-utils.h"
#include "sysemu/replay.h"
#include "sysemu/qtest.h"
diff --git a/hw/core/qdev-fw.c b/hw/core/qdev-fw.c
index aa35e9d0ac..a31958355f 100644
--- a/hw/core/qdev-fw.c
+++ b/hw/core/qdev-fw.c
@@ -16,8 +16,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/qdev.h"
#include "hw/fw-path-provider.h"
+#include "hw/qdev-core.h"
const char *qdev_fw_name(DeviceState *dev)
{
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index ba412dd2ca..fceab9afd5 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -12,7 +12,7 @@
#include "qemu/osdep.h"
#include "net/net.h"
-#include "hw/qdev.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qapi/qmp/qerror.h"
#include "sysemu/block-backend.h"
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 81c97f48a7..ac28890e5a 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -1,8 +1,10 @@
#include "qemu/osdep.h"
#include "net/net.h"
-#include "hw/qdev.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "hw/pci/pci.h"
+#include "qapi/qapi-types-block.h"
+#include "qapi/qapi-types-misc.h"
#include "qapi/qmp/qerror.h"
#include "qemu/ctype.h"
#include "qemu/error-report.h"
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index 94ebc0a4a1..60d66c2f39 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -26,8 +26,6 @@
this API directly. */
#include "qemu/osdep.h"
-#include "hw/qdev.h"
-#include "sysemu/sysemu.h"
#include "qapi/error.h"
#include "qapi/qapi-events-qdev.h"
#include "qapi/qmp/qerror.h"
@@ -35,8 +33,11 @@
#include "qemu/error-report.h"
#include "qemu/option.h"
#include "hw/hotplug.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/boards.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
bool qdev_hotplug = false;
static bool qdev_hot_added = false;
diff --git a/hw/core/register.c b/hw/core/register.c
index bb5ab9d479..3c77396587 100644
--- a/hw/core/register.c
+++ b/hw/core/register.c
@@ -17,7 +17,6 @@
#include "qemu/osdep.h"
#include "hw/register.h"
-#include "hw/qdev.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/core/split-irq.c b/hw/core/split-irq.c
index c606f4a802..b5acc669fb 100644
--- a/hw/core/split-irq.c
+++ b/hw/core/split-irq.c
@@ -25,6 +25,8 @@
#include "qemu/osdep.h"
#include "hw/core/split-irq.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/core/vm-change-state-handler.c b/hw/core/vm-change-state-handler.c
index f814813bdd..1f3630986d 100644
--- a/hw/core/vm-change-state-handler.c
+++ b/hw/core/vm-change-state-handler.c
@@ -16,7 +16,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
+#include "sysemu/runstate.h"
static int qdev_get_dev_tree_depth(DeviceState *dev)
{
diff --git a/hw/cpu/a15mpcore.c b/hw/cpu/a15mpcore.c
index 980f230d75..7e9983aa19 100644
--- a/hw/cpu/a15mpcore.c
+++ b/hw/cpu/a15mpcore.c
@@ -22,6 +22,8 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/cpu/a15mpcore.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "sysemu/kvm.h"
#include "kvm_arm.h"
diff --git a/hw/cpu/a9mpcore.c b/hw/cpu/a9mpcore.c
index 187e4d939e..cd1e165faf 100644
--- a/hw/cpu/a9mpcore.c
+++ b/hw/cpu/a9mpcore.c
@@ -12,6 +12,8 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/cpu/a9mpcore.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "qom/cpu.h"
static void a9mp_priv_set_irq(void *opaque, int irq, int level)
diff --git a/hw/cpu/arm11mpcore.c b/hw/cpu/arm11mpcore.c
index 2404f93a3e..e78f5d080c 100644
--- a/hw/cpu/arm11mpcore.c
+++ b/hw/cpu/arm11mpcore.c
@@ -12,6 +12,8 @@
#include "qemu/module.h"
#include "hw/cpu/arm11mpcore.h"
#include "hw/intc/realview_gic.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
static void mpcore_priv_set_irq(void *opaque, int irq, int level)
diff --git a/hw/cpu/cluster.c b/hw/cpu/cluster.c
index 6f5f037b3c..74d8d43c00 100644
--- a/hw/cpu/cluster.c
+++ b/hw/cpu/cluster.c
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "hw/cpu/cluster.h"
+#include "hw/qdev-properties.h"
#include "qom/cpu.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/cpu/realview_mpcore.c b/hw/cpu/realview_mpcore.c
index f06294bb5e..ae2c9913f6 100644
--- a/hw/cpu/realview_mpcore.c
+++ b/hw/cpu/realview_mpcore.c
@@ -13,6 +13,8 @@
#include "qemu/module.h"
#include "hw/cpu/arm11mpcore.h"
#include "hw/intc/realview_gic.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#define TYPE_REALVIEW_MPCORE_RIRQ "realview_mpcore"
#define REALVIEW_MPCORE_RIRQ(obj) \
diff --git a/hw/cris/boot.c b/hw/cris/boot.c
index 602f538ef6..2d2cc0c7a5 100644
--- a/hw/cris/boot.c
+++ b/hw/cris/boot.c
@@ -24,11 +24,11 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/loader.h"
#include "elf.h"
#include "boot.h"
#include "qemu/cutils.h"
+#include "sysemu/reset.h"
static void main_cpu_reset(void *opaque)
{
diff --git a/hw/display/ads7846.c b/hw/display/ads7846.c
index 1a97e97638..c12272ae72 100644
--- a/hw/display/ads7846.c
+++ b/hw/display/ads7846.c
@@ -11,7 +11,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/ssi/ssi.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "ui/console.h"
diff --git a/hw/display/ati.c b/hw/display/ati.c
index a747c4cc98..35f49a591b 100644
--- a/hw/display/ati.c
+++ b/hw/display/ati.c
@@ -19,12 +19,12 @@
#include "qemu/osdep.h"
#include "ati_int.h"
#include "ati_regs.h"
+#include "hw/qdev-properties.h"
#include "vga_regs.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "ui/console.h"
#include "hw/display/i2c-ddc.h"
#include "trace.h"
diff --git a/hw/display/bcm2835_fb.c b/hw/display/bcm2835_fb.c
index 2311ec75b8..8f856878cd 100644
--- a/hw/display/bcm2835_fb.c
+++ b/hw/display/bcm2835_fb.c
@@ -26,9 +26,13 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/display/bcm2835_fb.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
#include "framebuffer.h"
#include "ui/pixel_ops.h"
#include "hw/misc/bcm2835_mbox_defs.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/display/bochs-display.c b/hw/display/bochs-display.c
index 8e83b5164b..dc1bd1641d 100644
--- a/hw/display/bochs-display.c
+++ b/hw/display/bochs-display.c
@@ -8,8 +8,9 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/display/bochs-vbe.h"
#include "hw/display/edid.h"
diff --git a/hw/display/cg3.c b/hw/display/cg3.c
index a7340dc1c2..f90baae4de 100644
--- a/hw/display/cg3.c
+++ b/hw/display/cg3.c
@@ -29,7 +29,10 @@
#include "qemu/error-report.h"
#include "ui/console.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
index 2e4911a1e3..cd283e53b4 100644
--- a/hw/display/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
@@ -35,10 +35,12 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
#include "qemu/units.h"
+#include "sysemu/reset.h"
#include "qapi/error.h"
#include "trace.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "ui/pixel_ops.h"
#include "cirrus_vga_internal.h"
diff --git a/hw/display/cirrus_vga_isa.c b/hw/display/cirrus_vga_isa.c
index 69cdb9e066..7ef8e59224 100644
--- a/hw/display/cirrus_vga_isa.c
+++ b/hw/display/cirrus_vga_isa.c
@@ -26,8 +26,8 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "hw/isa/isa.h"
#include "cirrus_vga_internal.h"
diff --git a/hw/display/dpcd.c b/hw/display/dpcd.c
index 88cde54821..170545c605 100644
--- a/hw/display/dpcd.c
+++ b/hw/display/dpcd.c
@@ -30,6 +30,7 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/misc/auxbus.h"
+#include "migration/vmstate.h"
#include "hw/display/dpcd.h"
#ifndef DEBUG_DPCD
diff --git a/hw/display/edid-region.c b/hw/display/edid-region.c
index d0d31bad3d..675429dc18 100644
--- a/hw/display/edid-region.c
+++ b/hw/display/edid-region.c
@@ -1,4 +1,5 @@
#include "qemu/osdep.h"
+#include "exec/memory.h"
#include "hw/display/edid.h"
static uint64_t edid_region_read(void *ptr, hwaddr addr, unsigned size)
diff --git a/hw/display/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c
index 61f7408b1c..c1071ecd46 100644
--- a/hw/display/exynos4210_fimd.c
+++ b/hw/display/exynos4210_fimd.c
@@ -23,7 +23,10 @@
*/
#include "qemu/osdep.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "ui/console.h"
#include "ui/pixel_ops.h"
#include "qemu/bswap.h"
diff --git a/hw/display/framebuffer.c b/hw/display/framebuffer.c
index 36e3db189a..4485aa335b 100644
--- a/hw/display/framebuffer.c
+++ b/hw/display/framebuffer.c
@@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "ui/console.h"
#include "framebuffer.h"
diff --git a/hw/display/g364fb.c b/hw/display/g364fb.c
index 1774b4452e..839d26eca1 100644
--- a/hw/display/g364fb.c
+++ b/hw/display/g364fb.c
@@ -20,12 +20,15 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "ui/console.h"
#include "ui/pixel_ops.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
typedef struct G364State {
/* hardware */
diff --git a/hw/display/i2c-ddc.c b/hw/display/i2c-ddc.c
index 041fc4f408..fc70b7930c 100644
--- a/hw/display/i2c-ddc.c
+++ b/hw/display/i2c-ddc.c
@@ -20,6 +20,8 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/i2c/i2c.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/display/i2c-ddc.h"
#ifndef DEBUG_I2CDDC
diff --git a/hw/display/jazz_led.c b/hw/display/jazz_led.c
index 783189ebcd..3e0112b1ca 100644
--- a/hw/display/jazz_led.c
+++ b/hw/display/jazz_led.c
@@ -28,6 +28,7 @@
#include "ui/pixel_ops.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
typedef enum {
REDRAW_NONE = 0, REDRAW_SEGMENTS = 1, REDRAW_BACKGROUND = 2,
diff --git a/hw/display/milkymist-tmu2.c b/hw/display/milkymist-tmu2.c
index e1ed018b8f..199f1227e7 100644
--- a/hw/display/milkymist-tmu2.c
+++ b/hw/display/milkymist-tmu2.c
@@ -25,8 +25,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
diff --git a/hw/display/milkymist-vgafb.c b/hw/display/milkymist-vgafb.c
index dce1dd7ad6..8b0da4660a 100644
--- a/hw/display/milkymist-vgafb.c
+++ b/hw/display/milkymist-vgafb.c
@@ -24,6 +24,7 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "trace.h"
#include "ui/console.h"
@@ -33,6 +34,7 @@
#include "qemu/module.h"
#define BITS 8
+#include "migration/vmstate.h"
#include "milkymist-vgafb_template.h"
#define BITS 15
#include "milkymist-vgafb_template.h"
diff --git a/hw/display/omap_dss.c b/hw/display/omap_dss.c
index 601f178fdd..637aae8d39 100644
--- a/hw/display/omap_dss.c
+++ b/hw/display/omap_dss.c
@@ -17,8 +17,10 @@
* You should have received a copy of the GNU General Public License along
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "ui/console.h"
#include "hw/arm/omap.h"
diff --git a/hw/display/omap_lcdc.c b/hw/display/omap_lcdc.c
index 07a5effe04..6ad13f2e9e 100644
--- a/hw/display/omap_lcdc.c
+++ b/hw/display/omap_lcdc.c
@@ -16,8 +16,9 @@
* You should have received a copy of the GNU General Public License along
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "ui/console.h"
#include "hw/arm/omap.h"
#include "framebuffer.h"
diff --git a/hw/display/pl110.c b/hw/display/pl110.c
index 2bdfc3cc49..c2991a28d2 100644
--- a/hw/display/pl110.c
+++ b/hw/display/pl110.c
@@ -8,7 +8,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "ui/console.h"
#include "framebuffer.h"
#include "ui/pixel_ops.h"
diff --git a/hw/display/pxa2xx_lcd.c b/hw/display/pxa2xx_lcd.c
index b83f80753a..05f5f84671 100644
--- a/hw/display/pxa2xx_lcd.c
+++ b/hw/display/pxa2xx_lcd.c
@@ -12,6 +12,8 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "ui/console.h"
#include "hw/arm/pxa.h"
#include "ui/pixel_ops.h"
diff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c
index 14ad2b352d..f7fdc4901e 100644
--- a/hw/display/qxl-render.c
+++ b/hw/display/qxl-render.c
@@ -21,6 +21,7 @@
#include "qemu/osdep.h"
#include "qxl.h"
+#include "sysemu/runstate.h"
#include "trace.h"
static void qxl_blit(PCIQXLDevice *qxl, QXLRect *rect)
diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index 98c7410032..cd7eb39d20 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -26,9 +26,12 @@
#include "qemu/timer.h"
#include "qemu/queue.h"
#include "qemu/atomic.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
+#include "hw/qdev-properties.h"
+#include "sysemu/runstate.h"
#include "migration/blocker.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qxl.h"
diff --git a/hw/display/qxl.h b/hw/display/qxl.h
index 4adfdb1e5d..80eb0d2672 100644
--- a/hw/display/qxl.h
+++ b/hw/display/qxl.h
@@ -2,7 +2,6 @@
#define HW_QXL_H
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "vga_int.h"
#include "qemu/thread.h"
diff --git a/hw/display/ramfb-standalone.c b/hw/display/ramfb-standalone.c
index 56215ef88c..1f72450303 100644
--- a/hw/display/ramfb-standalone.c
+++ b/hw/display/ramfb-standalone.c
@@ -2,10 +2,10 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "hw/isa/isa.h"
#include "hw/display/ramfb.h"
#include "ui/console.h"
-#include "sysemu/sysemu.h"
#define RAMFB(obj) OBJECT_CHECK(RAMFBStandaloneState, (obj), TYPE_RAMFB_DEVICE)
diff --git a/hw/display/ramfb.c b/hw/display/ramfb.c
index b4eb283ef8..cd94940223 100644
--- a/hw/display/ramfb.c
+++ b/hw/display/ramfb.c
@@ -10,13 +10,14 @@
* This work is licensed under the terms of the GNU GPL, version 2 or later.
* See the COPYING file in the top-level directory.
*/
+
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/option.h"
#include "hw/loader.h"
#include "hw/display/ramfb.h"
#include "ui/console.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/reset.h"
struct QEMU_PACKED RAMFBCfg {
uint64_t addr;
diff --git a/hw/display/sii9022.c b/hw/display/sii9022.c
index 0bebb85a58..0710ce9de5 100644
--- a/hw/display/sii9022.c
+++ b/hw/display/sii9022.c
@@ -16,6 +16,7 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
#include "hw/i2c/i2c.h"
+#include "migration/vmstate.h"
#include "hw/display/i2c-ddc.h"
#include "trace.h"
diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index 5918f59b2b..d9e5762e36 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -29,11 +29,12 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/char/serial.h"
#include "ui/console.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/i2c/i2c.h"
#include "hw/display/i2c-ddc.h"
#include "qemu/range.h"
diff --git a/hw/display/ssd0303.c b/hw/display/ssd0303.c
index f2a60c44c9..718378f6de 100644
--- a/hw/display/ssd0303.c
+++ b/hw/display/ssd0303.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "hw/i2c/i2c.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "ui/console.h"
diff --git a/hw/display/ssd0323.c b/hw/display/ssd0323.c
index ac373f1e78..c3bdb18742 100644
--- a/hw/display/ssd0323.c
+++ b/hw/display/ssd0323.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "hw/ssi/ssi.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "ui/console.h"
diff --git a/hw/display/tc6393xb.c b/hw/display/tc6393xb.c
index 0b7c59cde7..49a676d1b0 100644
--- a/hw/display/tc6393xb.c
+++ b/hw/display/tc6393xb.c
@@ -10,11 +10,13 @@
* Contributions after 2012-01-13 are licensed under the terms of the
* GNU GPL, version 2 or (at your option) any later version.
*/
+
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/host-utils.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/display/tc6393xb.h"
+#include "exec/memory.h"
#include "hw/block/flash.h"
#include "ui/console.h"
#include "ui/pixel_ops.h"
diff --git a/hw/display/tcx.c b/hw/display/tcx.c
index cdabcbc746..14e829d3fa 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -28,7 +28,9 @@
#include "ui/console.h"
#include "ui/pixel_ops.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/display/vga-isa-mm.c b/hw/display/vga-isa-mm.c
index 215e649719..e9c43e5530 100644
--- a/hw/display/vga-isa-mm.c
+++ b/hw/display/vga-isa-mm.c
@@ -21,9 +21,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
+#include "qemu/bitops.h"
#include "qemu/units.h"
-#include "hw/hw.h"
+#include "migration/vmstate.h"
#include "hw/display/vga.h"
#include "vga_int.h"
#include "ui/pixel_ops.h"
diff --git a/hw/display/vga-isa.c b/hw/display/vga-isa.c
index 945952a9b0..873e5e9706 100644
--- a/hw/display/vga-isa.c
+++ b/hw/display/vga-isa.c
@@ -25,13 +25,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
#include "vga_int.h"
#include "ui/pixel_ops.h"
#include "qemu/module.h"
#include "qemu/timer.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#define TYPE_ISA_VGA "isa-vga"
#define ISA_VGA(obj) OBJECT_CHECK(ISAVGAState, (obj), TYPE_ISA_VGA)
diff --git a/hw/display/vga-pci.c b/hw/display/vga-pci.c
index dedac5d128..a27b88122d 100644
--- a/hw/display/vga-pci.c
+++ b/hw/display/vga-pci.c
@@ -25,8 +25,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "vga_int.h"
#include "ui/pixel_ops.h"
#include "qemu/module.h"
diff --git a/hw/display/vga.c b/hw/display/vga.c
index 910a23c12e..573d223d46 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -21,10 +21,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
+#include "sysemu/reset.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/display/vga.h"
#include "hw/pci/pci.h"
#include "vga_int.h"
@@ -32,6 +33,7 @@
#include "ui/pixel_ops.h"
#include "qemu/timer.h"
#include "hw/xen/xen.h"
+#include "migration/vmstate.h"
#include "trace.h"
//#define DEBUG_VGA_MEM
diff --git a/hw/display/vhost-user-gpu.c b/hw/display/vhost-user-gpu.c
index 7181d9cdba..279877886e 100644
--- a/hw/display/vhost-user-gpu.c
+++ b/hw/display/vhost-user-gpu.c
@@ -11,6 +11,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-gpu.h"
#include "chardev/char-fe.h"
#include "qapi/error.h"
diff --git a/hw/display/virtio-gpu-pci.c b/hw/display/virtio-gpu-pci.c
index e4c7eb6193..25e4038874 100644
--- a/hw/display/virtio-gpu-pci.c
+++ b/hw/display/virtio-gpu-pci.c
@@ -15,6 +15,7 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu-pci.h"
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 25d9e327fc..28e868c021 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -17,12 +17,15 @@
#include "ui/console.h"
#include "trace.h"
#include "sysemu/dma.h"
+#include "sysemu/sysemu.h"
#include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-gpu-bswap.h"
#include "hw/virtio/virtio-gpu-pixman.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/display/edid.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "qapi/error.h"
diff --git a/hw/display/virtio-vga.c b/hw/display/virtio-vga.c
index 79a145e284..cc6e66ea1c 100644
--- a/hw/display/virtio-vga.c
+++ b/hw/display/virtio-vga.c
@@ -1,6 +1,6 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-gpu.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index 249a179bf6..23dc8910cc 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -26,11 +26,12 @@
#include "qemu/module.h"
#include "qemu/units.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/loader.h"
#include "trace.h"
#include "ui/vnc.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#undef VERBOSE
#define HW_RECT_ACCEL
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index 3c79913b31..838260b6ad 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -27,7 +27,6 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "ui/input.h"
#include "ui/console.h"
#include "hw/xen/xen-legacy-backend.h"
diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c
index cc5b650df0..fde3b21ea5 100644
--- a/hw/display/xlnx_dp.c
+++ b/hw/display/xlnx_dp.c
@@ -27,6 +27,8 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/display/xlnx_dp.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#ifndef DEBUG_DP
#define DEBUG_DP 0
diff --git a/hw/dma/bcm2835_dma.c b/hw/dma/bcm2835_dma.c
index a39e8f4968..192bd377a0 100644
--- a/hw/dma/bcm2835_dma.c
+++ b/hw/dma/bcm2835_dma.c
@@ -6,6 +6,8 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/dma/bcm2835_dma.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/dma/etraxfs_dma.c b/hw/dma/etraxfs_dma.c
index 85783eb847..47e1c6df12 100644
--- a/hw/dma/etraxfs_dma.c
+++ b/hw/dma/etraxfs_dma.c
@@ -21,10 +21,13 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
+#include "qemu/main-loop.h"
+#include "sysemu/runstate.h"
#include "exec/address-spaces.h"
-#include "sysemu/sysemu.h"
#include "hw/cris/etraxfs_dma.h"
diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
index 68fad2dd12..b788b3681a 100644
--- a/hw/dma/i82374.c
+++ b/hw/dma/i82374.c
@@ -26,6 +26,8 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/dma/i8257.h"
#define TYPE_I82374 "i82374"
diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
index 30a3442437..792f617eb4 100644
--- a/hw/dma/i8257.c
+++ b/hw/dma/i8257.c
@@ -23,8 +23,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/dma/i8257.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
diff --git a/hw/dma/pl080.c b/hw/dma/pl080.c
index 7e5762457b..52ba23f4bf 100644
--- a/hw/dma/pl080.c
+++ b/hw/dma/pl080.c
@@ -9,10 +9,14 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "exec/address-spaces.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/dma/pl080.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#define PL080_CONF_E 0x1
diff --git a/hw/dma/pl330.c b/hw/dma/pl330.c
index a56a3e7771..f2bb2d9ac1 100644
--- a/hw/dma/pl330.c
+++ b/hw/dma/pl330.c
@@ -16,7 +16,10 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/timer.h"
#include "sysemu/dma.h"
diff --git a/hw/dma/puv3_dma.c b/hw/dma/puv3_dma.c
index 122f87aff1..5488d388a9 100644
--- a/hw/dma/puv3_dma.c
+++ b/hw/dma/puv3_dma.c
@@ -10,7 +10,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#undef DEBUG_PUV3
diff --git a/hw/dma/pxa2xx_dma.c b/hw/dma/pxa2xx_dma.c
index d6fb957417..18e7a0b694 100644
--- a/hw/dma/pxa2xx_dma.c
+++ b/hw/dma/pxa2xx_dma.c
@@ -10,8 +10,11 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/pxa.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/dma/rc4030.c b/hw/dma/rc4030.c
index 155af9b26a..d54e296d3a 100644
--- a/hw/dma/rc4030.c
+++ b/hw/dma/rc4030.c
@@ -24,9 +24,10 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/mips/mips.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/dma/sparc32_dma.c b/hw/dma/sparc32_dma.c
index 88765d0c25..0e5bbcdc7f 100644
--- a/hw/dma/sparc32_dma.c
+++ b/hw/dma/sparc32_dma.c
@@ -26,10 +26,12 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sparc/sparc32_dma.h"
#include "hw/sparc/sun4m_iommu.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "sysemu/dma.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/dma/xilinx_axidma.c b/hw/dma/xilinx_axidma.c
index 921be178d9..d176df6d44 100644
--- a/hw/dma/xilinx_axidma.c
+++ b/hw/dma/xilinx_axidma.c
@@ -26,7 +26,10 @@
#include "hw/sysbus.h"
#include "qapi/error.h"
#include "qemu/timer.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c
index 51e1ead4fa..75b660988f 100644
--- a/hw/dma/xlnx-zdma.c
+++ b/hw/dma/xlnx-zdma.c
@@ -28,6 +28,9 @@
#include "qemu/osdep.h"
#include "hw/dma/xlnx-zdma.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/bitops.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/dma/xlnx-zynq-devcfg.c b/hw/dma/xlnx-zynq-devcfg.c
index 7a03ce1b02..e33112b6f0 100644
--- a/hw/dma/xlnx-zynq-devcfg.c
+++ b/hw/dma/xlnx-zynq-devcfg.c
@@ -26,8 +26,9 @@
#include "qemu/osdep.h"
#include "hw/dma/xlnx-zynq-devcfg.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "qemu/bitops.h"
-#include "sysemu/sysemu.h"
#include "sysemu/dma.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/dma/xlnx_dpdma.c b/hw/dma/xlnx_dpdma.c
index e834f81e17..b40c897de2 100644
--- a/hw/dma/xlnx_dpdma.c
+++ b/hw/dma/xlnx_dpdma.c
@@ -27,6 +27,8 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/dma/xlnx_dpdma.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#ifndef DEBUG_DPDMA
#define DEBUG_DPDMA 0
diff --git a/hw/gpio/bcm2835_gpio.c b/hw/gpio/bcm2835_gpio.c
index ba8dd6c393..91ce3d10cc 100644
--- a/hw/gpio/bcm2835_gpio.c
+++ b/hw/gpio/bcm2835_gpio.c
@@ -17,8 +17,10 @@
#include "qemu/timer.h"
#include "qapi/error.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/sd/sd.h"
#include "hw/gpio/bcm2835_gpio.h"
+#include "hw/irq.h"
#define GPFSEL0 0x00
#define GPFSEL1 0x04
diff --git a/hw/gpio/gpio_key.c b/hw/gpio/gpio_key.c
index 7d5510257e..46bbd42772 100644
--- a/hw/gpio/gpio_key.c
+++ b/hw/gpio/gpio_key.c
@@ -23,7 +23,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "qemu/timer.h"
diff --git a/hw/gpio/imx_gpio.c b/hw/gpio/imx_gpio.c
index a51af72c1f..ac8304ec56 100644
--- a/hw/gpio/imx_gpio.c
+++ b/hw/gpio/imx_gpio.c
@@ -19,6 +19,9 @@
#include "qemu/osdep.h"
#include "hw/gpio/imx_gpio.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/gpio/max7310.c b/hw/gpio/max7310.c
index 273da622ca..bebb4030d2 100644
--- a/hw/gpio/max7310.c
+++ b/hw/gpio/max7310.c
@@ -8,7 +8,11 @@
*/
#include "qemu/osdep.h"
+#include "hw/hw.h"
#include "hw/i2c/i2c.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#define TYPE_MAX7310 "max7310"
diff --git a/hw/gpio/mpc8xxx.c b/hw/gpio/mpc8xxx.c
index 6ff56dc3f2..1d99667094 100644
--- a/hw/gpio/mpc8xxx.c
+++ b/hw/gpio/mpc8xxx.c
@@ -20,7 +20,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#define TYPE_MPC8XXX_GPIO "mpc8xxx_gpio"
diff --git a/hw/gpio/nrf51_gpio.c b/hw/gpio/nrf51_gpio.c
index dd6c16a841..b47fddf4ed 100644
--- a/hw/gpio/nrf51_gpio.c
+++ b/hw/gpio/nrf51_gpio.c
@@ -14,6 +14,8 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/gpio/nrf51_gpio.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "trace.h"
/*
diff --git a/hw/gpio/omap_gpio.c b/hw/gpio/omap_gpio.c
index e2785c5dc7..41e1aa798c 100644
--- a/hw/gpio/omap_gpio.c
+++ b/hw/gpio/omap_gpio.c
@@ -19,7 +19,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/omap.h"
#include "hw/sysbus.h"
#include "qemu/error-report.h"
diff --git a/hw/gpio/pl061.c b/hw/gpio/pl061.c
index 02c01fd521..2a828260bd 100644
--- a/hw/gpio/pl061.c
+++ b/hw/gpio/pl061.c
@@ -9,7 +9,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/gpio/puv3_gpio.c b/hw/gpio/puv3_gpio.c
index 54d30cada2..d19e342514 100644
--- a/hw/gpio/puv3_gpio.c
+++ b/hw/gpio/puv3_gpio.c
@@ -10,7 +10,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#undef DEBUG_PUV3
diff --git a/hw/gpio/zaurus.c b/hw/gpio/zaurus.c
index f2f1f67266..9a12c68342 100644
--- a/hw/gpio/zaurus.c
+++ b/hw/gpio/zaurus.c
@@ -17,9 +17,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/arm/sharpsl.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#undef REG_FMT
diff --git a/hw/hppa/dino.c b/hw/hppa/dino.c
index e94614abbd..e0466ee055 100644
--- a/hw/hppa/dino.c
+++ b/hw/hppa/dino.c
@@ -15,10 +15,10 @@
#include "qemu/units.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
-#include "sysemu/sysemu.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bus.h"
+#include "migration/vmstate.h"
#include "hppa_sys.h"
#include "exec/address-spaces.h"
diff --git a/hw/hppa/hppa_sys.h b/hw/hppa/hppa_sys.h
index f5f983bf4c..43d25d21fc 100644
--- a/hw/hppa/hppa_sys.h
+++ b/hw/hppa/hppa_sys.h
@@ -7,7 +7,6 @@
#include "hw/pci/pci_host.h"
#include "hw/ide.h"
#include "hw/i386/pc.h"
-#include "hw/irq.h"
#include "hppa_hardware.h"
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index 662838d83b..2736ce835e 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -6,11 +6,11 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "elf.h"
#include "hw/loader.h"
#include "hw/boards.h"
#include "qemu/error-report.h"
+#include "sysemu/reset.h"
#include "sysemu/sysemu.h"
#include "hw/timer/mc146818rtc.h"
#include "hw/ide.h"
diff --git a/hw/hppa/pci.c b/hw/hppa/pci.c
index b6606d9719..32609aba63 100644
--- a/hw/hppa/pci.c
+++ b/hw/hppa/pci.c
@@ -6,7 +6,6 @@
#include "qemu/osdep.h"
#include "hppa_sys.h"
#include "qemu/log.h"
-#include "sysemu/sysemu.h"
#include "trace.h"
diff --git a/hw/hyperv/hyperv_testdev.c b/hw/hyperv/hyperv_testdev.c
index 0d343a8bc0..88a5a63782 100644
--- a/hw/hyperv/hyperv_testdev.c
+++ b/hw/hyperv/hyperv_testdev.c
@@ -15,7 +15,6 @@
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/queue.h"
-#include "hw/qdev.h"
#include "hw/isa/isa.h"
#include "hw/hyperv/hyperv.h"
diff --git a/hw/i2c/aspeed_i2c.c b/hw/i2c/aspeed_i2c.c
index 219ad3806f..a956eb3849 100644
--- a/hw/i2c/aspeed_i2c.c
+++ b/hw/i2c/aspeed_i2c.c
@@ -20,9 +20,11 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/i2c/aspeed_i2c.h"
+#include "hw/irq.h"
/* I2C Global Register */
diff --git a/hw/i2c/bitbang_i2c.c b/hw/i2c/bitbang_i2c.c
index 60c7a9be0b..b000952b98 100644
--- a/hw/i2c/bitbang_i2c.c
+++ b/hw/i2c/bitbang_i2c.c
@@ -11,7 +11,7 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/i2c/bitbang_i2c.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
diff --git a/hw/i2c/core.c b/hw/i2c/core.c
index 20f36f1d55..92cd489069 100644
--- a/hw/i2c/core.c
+++ b/hw/i2c/core.c
@@ -9,6 +9,8 @@
#include "qemu/osdep.h"
#include "hw/i2c/i2c.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "trace.h"
diff --git a/hw/i2c/exynos4210_i2c.c b/hw/i2c/exynos4210_i2c.c
index 70a97a3e2d..a600f65560 100644
--- a/hw/i2c/exynos4210_i2c.c
+++ b/hw/i2c/exynos4210_i2c.c
@@ -24,7 +24,9 @@
#include "qemu/module.h"
#include "qemu/timer.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
#ifndef EXYNOS4_I2C_DEBUG
#define EXYNOS4_I2C_DEBUG 0
diff --git a/hw/i2c/imx_i2c.c b/hw/i2c/imx_i2c.c
index ce7a94c282..30b9aea247 100644
--- a/hw/i2c/imx_i2c.c
+++ b/hw/i2c/imx_i2c.c
@@ -20,6 +20,8 @@
#include "qemu/osdep.h"
#include "hw/i2c/imx_i2c.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "hw/i2c/i2c.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/i2c/microbit_i2c.c b/hw/i2c/microbit_i2c.c
index 214be07c5a..4661f05253 100644
--- a/hw/i2c/microbit_i2c.c
+++ b/hw/i2c/microbit_i2c.c
@@ -21,6 +21,7 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/i2c/microbit_i2c.h"
+#include "migration/vmstate.h"
static const uint32_t twi_read_sequence[] = {0x5A, 0x5A, 0x40};
diff --git a/hw/i2c/mpc_i2c.c b/hw/i2c/mpc_i2c.c
index e9a1127050..0aa1be3ce7 100644
--- a/hw/i2c/mpc_i2c.c
+++ b/hw/i2c/mpc_i2c.c
@@ -19,9 +19,11 @@
#include "qemu/osdep.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
/* #define DEBUG_I2C */
diff --git a/hw/i2c/omap_i2c.c b/hw/i2c/omap_i2c.c
index d7ebeae8e2..3ba965a58f 100644
--- a/hw/i2c/omap_i2c.c
+++ b/hw/i2c/omap_i2c.c
@@ -20,8 +20,9 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/omap.h"
#include "hw/sysbus.h"
#include "qemu/error-report.h"
diff --git a/hw/i2c/pm_smbus.c b/hw/i2c/pm_smbus.c
index e48544f909..36994ff585 100644
--- a/hw/i2c/pm_smbus.c
+++ b/hw/i2c/pm_smbus.c
@@ -17,11 +17,12 @@
* License along with this library; if not, see
* <http://www.gnu.org/licenses/>.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "hw/i2c/pm_smbus.h"
#include "hw/i2c/smbus_master.h"
+#include "migration/vmstate.h"
#define SMBHSTSTS 0x00
#define SMBHSTCNT 0x02
diff --git a/hw/i2c/ppc4xx_i2c.c b/hw/i2c/ppc4xx_i2c.c
index 462729db4e..3f015a1581 100644
--- a/hw/i2c/ppc4xx_i2c.c
+++ b/hw/i2c/ppc4xx_i2c.c
@@ -28,8 +28,8 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/i2c/ppc4xx_i2c.h"
+#include "hw/irq.h"
#define PPC4xx_I2C_MEM_SIZE 18
diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
index 37167e7244..54c86a0112 100644
--- a/hw/i2c/smbus_eeprom.c
+++ b/hw/i2c/smbus_eeprom.c
@@ -25,10 +25,11 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "hw/i2c/i2c.h"
#include "hw/i2c/smbus_slave.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/i2c/smbus_eeprom.h"
//#define DEBUG
diff --git a/hw/i2c/smbus_ich9.c b/hw/i2c/smbus_ich9.c
index 51a03046a6..fd50fb851a 100644
--- a/hw/i2c/smbus_ich9.c
+++ b/hw/i2c/smbus_ich9.c
@@ -21,11 +21,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i2c/pm_smbus.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
#include "hw/i386/ich9.h"
diff --git a/hw/i2c/smbus_master.c b/hw/i2c/smbus_master.c
index 0a6223744c..dc43b8637d 100644
--- a/hw/i2c/smbus_master.c
+++ b/hw/i2c/smbus_master.c
@@ -12,7 +12,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i2c/i2c.h"
#include "hw/i2c/smbus_master.h"
diff --git a/hw/i2c/smbus_slave.c b/hw/i2c/smbus_slave.c
index a9908c1a9b..5d10e27664 100644
--- a/hw/i2c/smbus_slave.c
+++ b/hw/i2c/smbus_slave.c
@@ -14,9 +14,9 @@
/* TODO: Implement PEC. */
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i2c/i2c.h"
#include "hw/i2c/smbus_slave.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
//#define DEBUG_SMBUS 1
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index f3fdfefcd5..5b0ec1b89e 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -46,8 +46,10 @@
#include "hw/boards.h"
#include "sysemu/tpm_backend.h"
#include "hw/timer/mc146818rtc_regs.h"
+#include "migration/vmstate.h"
#include "hw/mem/memory-device.h"
#include "sysemu/numa.h"
+#include "sysemu/reset.h"
/* Supported chipsets: */
#include "hw/acpi/piix4.h"
diff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c
index 4a4e2c7fd4..08884523e2 100644
--- a/hw/i386/amd_iommu.c
+++ b/hw/i386/amd_iommu.c
@@ -19,10 +19,12 @@
*
* Cache implementation inspired by hw/i386/intel_iommu.c
*/
+
#include "qemu/osdep.h"
#include "hw/i386/pc.h"
#include "hw/pci/msi.h"
#include "hw/pci/pci_bus.h"
+#include "migration/vmstate.h"
#include "amd_iommu.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
diff --git a/hw/i386/amd_iommu.h b/hw/i386/amd_iommu.h
index 3a694b186b..e05a4eff5d 100644
--- a/hw/i386/amd_iommu.h
+++ b/hw/i386/amd_iommu.h
@@ -21,7 +21,6 @@
#ifndef AMD_IOMMU_H
#define AMD_IOMMU_H
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "hw/i386/x86-iommu.h"
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index de86f53b4e..75ca6f9c70 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -21,12 +21,14 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qapi/error.h"
#include "hw/sysbus.h"
#include "exec/address-spaces.h"
#include "intel_iommu_internal.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bus.h"
+#include "hw/qdev-properties.h"
#include "hw/i386/pc.h"
#include "hw/i386/apic-msidef.h"
#include "hw/boards.h"
@@ -35,6 +37,7 @@
#include "sysemu/kvm.h"
#include "hw/i386/apic_internal.h"
#include "kvm_i386.h"
+#include "migration/vmstate.h"
#include "trace.h"
/* context entry operations */
diff --git a/hw/i386/kvm/clock.c b/hw/i386/kvm/clock.c
index a5cda15b85..80c133a724 100644
--- a/hw/i386/kvm/clock.c
+++ b/hw/i386/kvm/clock.c
@@ -17,12 +17,14 @@
#include "cpu.h"
#include "qemu/host-utils.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "sysemu/hw_accel.h"
#include "kvm_i386.h"
+#include "migration/vmstate.h"
#include "hw/sysbus.h"
#include "hw/kvm/clock.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include <linux/kvm.h>
diff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c
index c29956ab77..6a911e23f9 100644
--- a/hw/i386/kvm/i8254.c
+++ b/hw/i386/kvm/i8254.c
@@ -25,10 +25,11 @@
#include "qemu/osdep.h"
#include <linux/kvm.h>
+#include "qapi/qapi-types-misc.h"
#include "qapi/error.h"
#include "qemu/module.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "hw/timer/i8254.h"
#include "hw/timer/i8254_internal.h"
#include "sysemu/kvm.h"
diff --git a/hw/i386/kvm/i8259.c b/hw/i386/kvm/i8259.c
index bfdeab29be..d0c1b1deac 100644
--- a/hw/i386/kvm/i8259.c
+++ b/hw/i386/kvm/i8259.c
@@ -14,6 +14,7 @@
#include "hw/isa/i8259_internal.h"
#include "qemu/module.h"
#include "hw/i386/apic_internal.h"
+#include "hw/irq.h"
#include "sysemu/kvm.h"
#define TYPE_KVM_I8259 "kvm-i8259"
diff --git a/hw/i386/kvm/ioapic.c b/hw/i386/kvm/ioapic.c
index e453692199..f94729c565 100644
--- a/hw/i386/kvm/ioapic.c
+++ b/hw/i386/kvm/ioapic.c
@@ -13,6 +13,8 @@
#include "qemu/osdep.h"
#include "monitor/monitor.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/i386/ioapic_internal.h"
#include "hw/i386/apic_internal.h"
#include "sysemu/kvm.h"
diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
index 9c2ab4aac5..51639202c2 100644
--- a/hw/i386/kvmvapic.c
+++ b/hw/i386/kvmvapic.c
@@ -16,9 +16,11 @@
#include "sysemu/cpus.h"
#include "sysemu/hw_accel.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "hw/i386/apic_internal.h"
#include "hw/sysbus.h"
#include "hw/boards.h"
+#include "migration/vmstate.h"
#include "tcg/tcg.h"
#define VAPIC_IO_PORT 0x7e
diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
index a3e33fbe5e..9a59f95497 100644
--- a/hw/i386/multiboot.c
+++ b/hw/i386/multiboot.c
@@ -25,7 +25,6 @@
#include "qemu/osdep.h"
#include "qemu/option.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/nvram/fw_cfg.h"
#include "multiboot.h"
#include "hw/loader.h"
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 549c437050..3ab4bcb3ca 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -24,7 +24,6 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "hw/char/serial.h"
#include "hw/char/parallel.h"
@@ -41,11 +40,13 @@
#include "hw/firmware/smbios.h"
#include "hw/loader.h"
#include "elf.h"
+#include "migration/vmstate.h"
#include "multiboot.h"
#include "hw/timer/mc146818rtc.h"
#include "hw/dma/i8257.h"
#include "hw/timer/i8254.h"
#include "hw/input/i8042.h"
+#include "hw/irq.h"
#include "hw/audio/pcspk.h"
#include "hw/pci/msi.h"
#include "hw/sysbus.h"
@@ -54,6 +55,8 @@
#include "sysemu/numa.h"
#include "sysemu/kvm.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "kvm_i386.h"
#include "hw/xen/xen.h"
#include "hw/xen/start_info.h"
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index c2280c72ef..9e187f856a 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -26,7 +26,6 @@
#include "config-devices.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "hw/loader.h"
#include "hw/i386/pc.h"
#include "hw/i386/apic.h"
@@ -36,8 +35,8 @@
#include "hw/pci/pci_ids.h"
#include "hw/usb.h"
#include "net/net.h"
-#include "hw/boards.h"
#include "hw/ide.h"
+#include "hw/irq.h"
#include "sysemu/kvm.h"
#include "hw/kvm/clock.h"
#include "sysemu/sysemu.h"
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 397e1fdd2f..be3464f485 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -30,17 +30,16 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "hw/loader.h"
#include "sysemu/arch_init.h"
#include "hw/i2c/smbus_eeprom.h"
-#include "hw/boards.h"
#include "hw/timer/mc146818rtc.h"
#include "hw/xen/xen.h"
#include "sysemu/kvm.h"
#include "kvm_i386.h"
#include "hw/kvm/clock.h"
#include "hw/pci-host/q35.h"
+#include "hw/qdev-properties.h"
#include "exec/address-spaces.h"
#include "hw/i386/pc.h"
#include "hw/i386/ich9.h"
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
index de43943af8..a9983f0bfb 100644
--- a/hw/i386/pc_sysfw.c
+++ b/hw/i386/pc_sysfw.c
@@ -31,10 +31,9 @@
#include "qemu/option.h"
#include "qemu/units.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
-#include "hw/boards.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "sysemu/sysemu.h"
#include "hw/block/flash.h"
#include "sysemu/kvm.h"
diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c
index 5d2d278be4..012ab90396 100644
--- a/hw/i386/vmmouse.c
+++ b/hw/i386/vmmouse.c
@@ -21,12 +21,13 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "ui/console.h"
#include "hw/i386/pc.h"
#include "hw/input/i8042.h"
-#include "hw/qdev.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
/* debug only vmmouse */
//#define DEBUG_VMMOUSE
diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c
index 3bf8cfe041..1f31e27c8a 100644
--- a/hw/i386/vmport.c
+++ b/hw/i386/vmport.c
@@ -22,12 +22,10 @@
* THE SOFTWARE.
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
#include "hw/i386/pc.h"
#include "hw/input/i8042.h"
#include "sysemu/hw_accel.h"
-#include "hw/qdev.h"
#include "qemu/log.h"
#include "trace.h"
diff --git a/hw/i386/x86-iommu.c b/hw/i386/x86-iommu.c
index d1534c1ae0..1eaf2dd1bc 100644
--- a/hw/i386/x86-iommu.c
+++ b/hw/i386/x86-iommu.c
@@ -21,6 +21,7 @@
#include "hw/sysbus.h"
#include "hw/boards.h"
#include "hw/i386/x86-iommu.h"
+#include "hw/qdev-properties.h"
#include "hw/i386/pc.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
index e8e79e0917..5d3e4750e6 100644
--- a/hw/i386/xen/xen-hvm.c
+++ b/hw/i386/xen/xen-hvm.c
@@ -14,6 +14,8 @@
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
+#include "hw/hw.h"
#include "hw/i386/apic-msidef.h"
#include "hw/xen/xen_common.h"
#include "hw/xen/xen-legacy-backend.h"
@@ -21,7 +23,10 @@
#include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/range.h"
+#include "sysemu/runstate.h"
+#include "sysemu/sysemu.h"
#include "sysemu/xen-mapcache.h"
#include "trace.h"
#include "exec/address-spaces.h"
diff --git a/hw/i386/xen/xen-mapcache.c b/hw/i386/xen/xen-mapcache.c
index dc73c86c61..5b120ed44b 100644
--- a/hw/i386/xen/xen-mapcache.c
+++ b/hw/i386/xen/xen-mapcache.c
@@ -17,6 +17,7 @@
#include "hw/xen/xen-legacy-backend.h"
#include "qemu/bitmap.h"
+#include "sysemu/runstate.h"
#include "sysemu/xen-mapcache.h"
#include "trace.h"
diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
index 7a972e46cf..0f7b05e5e1 100644
--- a/hw/i386/xen/xen_platform.c
+++ b/hw/i386/xen/xen_platform.c
@@ -25,11 +25,11 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/ide.h"
#include "hw/pci/pci.h"
#include "hw/irq.h"
#include "hw/xen/xen_common.h"
+#include "migration/vmstate.h"
#include "hw/xen/xen-legacy-backend.h"
#include "trace.h"
#include "exec/address-spaces.h"
diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
index 23748f36a2..27f646da06 100644
--- a/hw/i386/xen/xen_pvdevice.c
+++ b/hw/i386/xen/xen_pvdevice.c
@@ -32,8 +32,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "trace.h"
#define TYPE_XEN_PV_DEVICE "xen-pvdevice"
diff --git a/hw/ide/ahci-allwinner.c b/hw/ide/ahci-allwinner.c
index de08d87790..bb8393d2b6 100644
--- a/hw/ide/ahci-allwinner.c
+++ b/hw/ide/ahci-allwinner.c
@@ -16,11 +16,11 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "sysemu/dma.h"
#include "hw/ide/internal.h"
+#include "migration/vmstate.h"
#include "ahci_internal.h"
#include "trace.h"
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 00ba422a48..d72da85605 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -22,12 +22,14 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/msi.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "sysemu/block-backend.h"
#include "sysemu/dma.h"
diff --git a/hw/ide/ahci_internal.h b/hw/ide/ahci_internal.h
index 95ecddcd3c..73424516da 100644
--- a/hw/ide/ahci_internal.h
+++ b/hw/ide/ahci_internal.h
@@ -25,6 +25,7 @@
#define HW_IDE_AHCI_INTERNAL_H
#include "hw/ide/ahci.h"
+#include "hw/ide/internal.h"
#include "hw/sysbus.h"
#define AHCI_MEM_BAR_SIZE 0x1000
diff --git a/hw/ide/cmd646.c b/hw/ide/cmd646.c
index ed23aabf21..f3ccd11c79 100644
--- a/hw/ide/cmd646.c
+++ b/hw/ide/cmd646.c
@@ -24,12 +24,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "hw/isa/isa.h"
-#include "sysemu/sysemu.h"
#include "sysemu/dma.h"
+#include "sysemu/reset.h"
#include "hw/ide/pci.h"
#include "trace.h"
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 6afadf894f..38b6cdac87 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -24,9 +24,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/timer.h"
#include "sysemu/sysemu.h"
#include "sysemu/blockdev.h"
@@ -36,7 +37,7 @@
#include "qapi/error.h"
#include "qemu/cutils.h"
#include "sysemu/replay.h"
-
+#include "sysemu/runstate.h"
#include "hw/ide/internal.h"
#include "trace.h"
diff --git a/hw/ide/ich.c b/hw/ide/ich.c
index c1ba927574..eff3188fff 100644
--- a/hw/ide/ich.c
+++ b/hw/ide/ich.c
@@ -61,9 +61,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/msi.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "hw/isa/isa.h"
#include "sysemu/dma.h"
diff --git a/hw/ide/ioport.c b/hw/ide/ioport.c
index a0b3c1f6a1..ab1f4e5d9c 100644
--- a/hw/ide/ioport.c
+++ b/hw/ide/ioport.c
@@ -24,11 +24,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
#include "qemu/error-report.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
#include "sysemu/blockdev.h"
#include "sysemu/dma.h"
#include "hw/block/block.h"
diff --git a/hw/ide/isa.c b/hw/ide/isa.c
index 4b5784e3fd..7b6e283679 100644
--- a/hw/ide/isa.c
+++ b/hw/ide/isa.c
@@ -24,8 +24,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "sysemu/dma.h"
diff --git a/hw/ide/macio.c b/hw/ide/macio.c
index 54571fed12..79f787c539 100644
--- a/hw/ide/macio.c
+++ b/hw/ide/macio.c
@@ -24,9 +24,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/ppc/mac.h"
#include "hw/ppc/mac_dbdma.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "hw/misc/macio/macio.h"
#include "sysemu/block-backend.h"
diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c
index 92ee6e0af8..b0272ea14b 100644
--- a/hw/ide/microdrive.c
+++ b/hw/ide/microdrive.c
@@ -24,8 +24,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pcmcia.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "sysemu/dma.h"
diff --git a/hw/ide/mmio.c b/hw/ide/mmio.c
index 70a58016d0..7149a9cba6 100644
--- a/hw/ide/mmio.c
+++ b/hw/ide/mmio.c
@@ -24,12 +24,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "sysemu/dma.h"
#include "hw/ide/internal.h"
+#include "hw/qdev-properties.h"
/***********************************************************/
/* MMIO based ide port
diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index 4c6fb9a68e..cce1da804d 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -24,8 +24,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
#include "sysemu/dma.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/ide/piix.c b/hw/ide/piix.c
index b97e555072..fba6bc8bff 100644
--- a/hw/ide/piix.c
+++ b/hw/ide/piix.c
@@ -24,13 +24,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "sysemu/block-backend.h"
-#include "sysemu/sysemu.h"
#include "sysemu/blockdev.h"
#include "sysemu/dma.h"
+#include "sysemu/reset.h"
#include "hw/ide/pci.h"
#include "trace.h"
diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index 9d8502785d..6fba6b62b8 100644
--- a/hw/ide/qdev.c
+++ b/hw/ide/qdev.c
@@ -18,16 +18,19 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "sysemu/dma.h"
#include "qapi/error.h"
+#include "qapi/qapi-types-block.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/ide/internal.h"
+#include "hw/qdev-properties.h"
#include "sysemu/block-backend.h"
#include "sysemu/blockdev.h"
#include "hw/block/block.h"
#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "qapi/visitor.h"
/* --------------------------------- */
diff --git a/hw/ide/sii3112.c b/hw/ide/sii3112.c
index d7590d4ba4..2181260531 100644
--- a/hw/ide/sii3112.c
+++ b/hw/ide/sii3112.c
@@ -15,6 +15,7 @@
#include "qemu/osdep.h"
#include "hw/ide/pci.h"
#include "qemu/module.h"
+#include "sysemu/reset.h"
#include "trace.h"
#define TYPE_SII3112_PCI "sii3112"
diff --git a/hw/ide/via.c b/hw/ide/via.c
index c3bda909f9..7087dc676e 100644
--- a/hw/ide/via.c
+++ b/hw/ide/via.c
@@ -25,11 +25,11 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
#include "sysemu/dma.h"
+#include "sysemu/reset.h"
#include "hw/ide/pci.h"
#include "trace.h"
diff --git a/hw/input/adb-kbd.c b/hw/input/adb-kbd.c
index da361f56df..0ba8207589 100644
--- a/hw/input/adb-kbd.c
+++ b/hw/input/adb-kbd.c
@@ -24,10 +24,10 @@
#include "qemu/osdep.h"
#include "hw/input/adb.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "ui/input.h"
#include "hw/input/adb-keys.h"
-#include "sysemu/sysemu.h"
#include "adb-internal.h"
#include "trace.h"
diff --git a/hw/input/adb-mouse.c b/hw/input/adb-mouse.c
index 52526fddb7..aeba41bddd 100644
--- a/hw/input/adb-mouse.c
+++ b/hw/input/adb-mouse.c
@@ -25,6 +25,7 @@
#include "qemu/osdep.h"
#include "ui/console.h"
#include "hw/input/adb.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "adb-internal.h"
#include "trace.h"
diff --git a/hw/input/adb.c b/hw/input/adb.c
index 1446f32521..478a90fae2 100644
--- a/hw/input/adb.c
+++ b/hw/input/adb.c
@@ -24,6 +24,8 @@
#include "qemu/osdep.h"
#include "hw/input/adb.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "adb-internal.h"
diff --git a/hw/input/hid.c b/hw/input/hid.c
index aa4fb826fd..89239b5634 100644
--- a/hw/input/hid.c
+++ b/hw/input/hid.c
@@ -22,11 +22,12 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "ui/console.h"
#include "qemu/timer.h"
#include "hw/input/hid.h"
+#include "migration/vmstate.h"
#include "trace.h"
#define HID_USAGE_ERROR_ROLLOVER 0x01
diff --git a/hw/input/lm832x.c b/hw/input/lm832x.c
index 5203da2bcf..a37eb854b9 100644
--- a/hw/input/lm832x.c
+++ b/hw/input/lm832x.c
@@ -19,10 +19,12 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "qemu/timer.h"
+#include "sysemu/reset.h"
#include "ui/console.h"
#define TYPE_LM8323 "lm8323"
diff --git a/hw/input/milkymist-softusb.c b/hw/input/milkymist-softusb.c
index f779cd4370..67fcb3595f 100644
--- a/hw/input/milkymist-softusb.c
+++ b/hw/input/milkymist-softusb.c
@@ -23,11 +23,13 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "ui/console.h"
#include "hw/input/hid.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index 47a606f5e3..f0acfd86f7 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -21,14 +21,17 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/log.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
+#include "migration/vmstate.h"
#include "hw/i386/pc.h"
#include "hw/input/ps2.h"
+#include "hw/irq.h"
#include "hw/input/i8042.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "trace.h"
diff --git a/hw/input/pl050.c b/hw/input/pl050.c
index b79bf1647d..1123037b38 100644
--- a/hw/input/pl050.c
+++ b/hw/input/pl050.c
@@ -9,7 +9,9 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/input/ps2.h"
+#include "hw/irq.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/input/ps2.c b/hw/input/ps2.c
index d3161f1e7c..67f92f6112 100644
--- a/hw/input/ps2.c
+++ b/hw/input/ps2.c
@@ -21,13 +21,15 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/log.h"
-#include "hw/hw.h"
#include "hw/input/ps2.h"
+#include "migration/vmstate.h"
#include "ui/console.h"
#include "ui/input.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "trace.h"
diff --git a/hw/input/pxa2xx_keypad.c b/hw/input/pxa2xx_keypad.c
index 93db9ed25b..31862a7d16 100644
--- a/hw/input/pxa2xx_keypad.c
+++ b/hw/input/pxa2xx_keypad.c
@@ -13,6 +13,8 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "hw/arm/pxa.h"
#include "ui/console.h"
diff --git a/hw/input/stellaris_input.c b/hw/input/stellaris_input.c
index 3a666d61d4..59892b07fc 100644
--- a/hw/input/stellaris_input.c
+++ b/hw/input/stellaris_input.c
@@ -6,9 +6,11 @@
*
* This code is licensed under the GPL.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/input/gamepad.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "ui/console.h"
typedef struct {
diff --git a/hw/input/tsc2005.c b/hw/input/tsc2005.c
index f82771e7a7..55d61cc843 100644
--- a/hw/input/tsc2005.c
+++ b/hw/input/tsc2005.c
@@ -20,10 +20,12 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
-#include "hw/hw.h"
#include "qemu/timer.h"
+#include "sysemu/reset.h"
#include "ui/console.h"
#include "hw/input/tsc2xxx.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "trace.h"
#define TSC_CUT_RESOLUTION(value, p) ((value) >> (16 - (p ? 12 : 10)))
diff --git a/hw/input/tsc210x.c b/hw/input/tsc210x.c
index f94cb4683b..182d3725fc 100644
--- a/hw/input/tsc210x.c
+++ b/hw/input/tsc210x.c
@@ -23,9 +23,12 @@
#include "hw/hw.h"
#include "audio/audio.h"
#include "qemu/timer.h"
+#include "sysemu/reset.h"
#include "ui/console.h"
#include "hw/arm/omap.h" /* For I2SCodec */
#include "hw/input/tsc2xxx.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#define TSC_DATA_REGISTERS_PAGE 0x0
#define TSC_CONTROL_REGISTERS_PAGE 0x1
diff --git a/hw/input/vhost-user-input.c b/hw/input/vhost-user-input.c
index 6da497b1a8..544452a234 100644
--- a/hw/input/vhost-user-input.c
+++ b/hw/input/vhost-user-input.c
@@ -9,7 +9,6 @@
#include "qapi/error.h"
#include "qemu-common.h"
-#include "hw/qdev.h"
#include "hw/virtio/virtio-input.h"
static int vhost_input_config_change(struct vhost_dev *dev)
diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c
index f15a063fac..386a363a17 100644
--- a/hw/input/virtio-input-hid.c
+++ b/hw/input/virtio-input-hid.c
@@ -8,8 +8,8 @@
#include "qemu/iov.h"
#include "qemu/module.h"
-#include "hw/qdev.h"
#include "hw/virtio/virtio.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-input.h"
#undef CONFIG_CURSES
diff --git a/hw/input/virtio-input-host.c b/hw/input/virtio-input-host.c
index a54c31eb09..1c3b12ba32 100644
--- a/hw/input/virtio-input-host.c
+++ b/hw/input/virtio-input-host.c
@@ -9,8 +9,8 @@
#include "qemu/module.h"
#include "qemu/sockets.h"
-#include "hw/qdev.h"
#include "hw/virtio/virtio.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-input.h"
#include <sys/ioctl.h>
diff --git a/hw/input/virtio-input.c b/hw/input/virtio-input.c
index 9946394cf4..51617a5885 100644
--- a/hw/input/virtio-input.c
+++ b/hw/input/virtio-input.c
@@ -10,8 +10,8 @@
#include "qemu/module.h"
#include "trace.h"
-#include "hw/qdev.h"
#include "hw/virtio/virtio.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-input.h"
#include "standard-headers/linux/input.h"
diff --git a/hw/intc/allwinner-a10-pic.c b/hw/intc/allwinner-a10-pic.c
index 080bdd791f..8cca124807 100644
--- a/hw/intc/allwinner-a10-pic.c
+++ b/hw/intc/allwinner-a10-pic.c
@@ -17,8 +17,9 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "hw/intc/allwinner-a10-pic.h"
+#include "hw/irq.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
index e764a2bb03..aafd8e0e33 100644
--- a/hw/intc/apic_common.c
+++ b/hw/intc/apic_common.c
@@ -29,8 +29,10 @@
#include "trace.h"
#include "sysemu/hax.h"
#include "sysemu/kvm.h"
-#include "hw/qdev.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
static int apic_irq_delivered;
bool apic_report_tpr_access;
diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
index 77427a4188..7af591daac 100644
--- a/hw/intc/arm_gic.c
+++ b/hw/intc/arm_gic.c
@@ -19,6 +19,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "gic_internal.h"
#include "qapi/error.h"
diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c
index ccc50d00b6..f0d0d7c467 100644
--- a/hw/intc/arm_gic_common.c
+++ b/hw/intc/arm_gic_common.c
@@ -23,6 +23,8 @@
#include "qemu/module.h"
#include "gic_internal.h"
#include "hw/arm/linux-boot-if.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
static int gic_pre_save(void *opaque)
{
diff --git a/hw/intc/arm_gicv2m.c b/hw/intc/arm_gicv2m.c
index 05f299fc7f..6e45f4ff39 100644
--- a/hw/intc/arm_gicv2m.c
+++ b/hw/intc/arm_gicv2m.c
@@ -28,7 +28,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/sysbus.h"
+#include "hw/irq.h"
#include "hw/pci/msi.h"
+#include "hw/qdev-properties.h"
#include "sysemu/kvm.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c
index 5edabb928f..8f5f4c8e94 100644
--- a/hw/intc/arm_gicv3_common.c
+++ b/hw/intc/arm_gicv3_common.c
@@ -26,6 +26,8 @@
#include "qemu/module.h"
#include "qom/cpu.h"
#include "hw/intc/arm_gicv3_common.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "gicv3_internal.h"
#include "hw/arm/linux-boot-if.h"
#include "sysemu/kvm.h"
diff --git a/hw/intc/arm_gicv3_cpuif.c b/hw/intc/arm_gicv3_cpuif.c
index 3b212d91c8..a254b0ce87 100644
--- a/hw/intc/arm_gicv3_cpuif.c
+++ b/hw/intc/arm_gicv3_cpuif.c
@@ -17,6 +17,7 @@
#include "qemu/main-loop.h"
#include "trace.h"
#include "gicv3_internal.h"
+#include "hw/irq.h"
#include "cpu.h"
void gicv3_set_gicv3state(CPUState *cpu, GICv3CPUState *s)
diff --git a/hw/intc/arm_gicv3_its_common.c b/hw/intc/arm_gicv3_its_common.c
index efb3d51fb5..66c4c6a188 100644
--- a/hw/intc/arm_gicv3_its_common.c
+++ b/hw/intc/arm_gicv3_its_common.c
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "hw/pci/msi.h"
+#include "migration/vmstate.h"
#include "hw/intc/arm_gicv3_its_common.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/arm_gicv3_its_kvm.c b/hw/intc/arm_gicv3_its_kvm.c
index 52ac01aba3..d66f2431ee 100644
--- a/hw/intc/arm_gicv3_its_kvm.c
+++ b/hw/intc/arm_gicv3_its_kvm.c
@@ -22,7 +22,8 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/intc/arm_gicv3_its_common.h"
-#include "sysemu/sysemu.h"
+#include "hw/qdev-properties.h"
+#include "sysemu/runstate.h"
#include "sysemu/kvm.h"
#include "kvm_arm.h"
#include "migration/blocker.h"
diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c
index d9c72f85be..9c7f4ab871 100644
--- a/hw/intc/arm_gicv3_kvm.c
+++ b/hw/intc/arm_gicv3_kvm.c
@@ -26,7 +26,7 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "sysemu/kvm.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "kvm_arm.h"
#include "gicv3_internal.h"
#include "vgic_common.h"
diff --git a/hw/intc/armv7m_nvic.c b/hw/intc/armv7m_nvic.c
index 9f8f0d3ff5..62ab8b7273 100644
--- a/hw/intc/armv7m_nvic.c
+++ b/hw/intc/armv7m_nvic.c
@@ -14,8 +14,11 @@
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
#include "hw/intc/armv7m_nvic.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "target/arm/cpu.h"
#include "exec/exec-all.h"
#include "qemu/log.h"
diff --git a/hw/intc/aspeed_vic.c b/hw/intc/aspeed_vic.c
index 266a309f3b..5ba06c5262 100644
--- a/hw/intc/aspeed_vic.c
+++ b/hw/intc/aspeed_vic.c
@@ -29,6 +29,8 @@
#include "qemu/osdep.h"
#include "hw/intc/aspeed_vic.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "qemu/bitops.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/bcm2835_ic.c b/hw/intc/bcm2835_ic.c
index 61d37643a1..05bd28e4f9 100644
--- a/hw/intc/bcm2835_ic.c
+++ b/hw/intc/bcm2835_ic.c
@@ -14,6 +14,8 @@
#include "qemu/osdep.h"
#include "hw/intc/bcm2835_ic.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/bcm2836_control.c b/hw/intc/bcm2836_control.c
index 66417c85e4..04229b8a17 100644
--- a/hw/intc/bcm2836_control.c
+++ b/hw/intc/bcm2836_control.c
@@ -17,6 +17,8 @@
#include "qemu/osdep.h"
#include "hw/intc/bcm2836_control.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/etraxfs_pic.c b/hw/intc/etraxfs_pic.c
index 20e1391d64..77f652acec 100644
--- a/hw/intc/etraxfs_pic.c
+++ b/hw/intc/etraxfs_pic.c
@@ -25,7 +25,8 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
//#include "pc.h"
//#include "etraxfs.h"
diff --git a/hw/intc/exynos4210_combiner.c b/hw/intc/exynos4210_combiner.c
index 6fed0e8d16..5b33ca6628 100644
--- a/hw/intc/exynos4210_combiner.c
+++ b/hw/intc/exynos4210_combiner.c
@@ -29,9 +29,13 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "hw/arm/exynos4210.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
//#define DEBUG_COMBINER
diff --git a/hw/intc/exynos4210_gic.c b/hw/intc/exynos4210_gic.c
index e37d457fcf..a1b699b6ba 100644
--- a/hw/intc/exynos4210_gic.c
+++ b/hw/intc/exynos4210_gic.c
@@ -22,8 +22,10 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/exynos4210.h"
enum ExtGicId {
diff --git a/hw/intc/grlib_irqmp.c b/hw/intc/grlib_irqmp.c
index 21c77a5ec1..bc78e1a14f 100644
--- a/hw/intc/grlib_irqmp.c
+++ b/hw/intc/grlib_irqmp.c
@@ -28,6 +28,7 @@
#include "hw/sysbus.h"
#include "cpu.h"
+#include "hw/qdev-properties.h"
#include "hw/sparc/grlib.h"
#include "trace.h"
diff --git a/hw/intc/heathrow_pic.c b/hw/intc/heathrow_pic.c
index c282ac4006..cb97c315da 100644
--- a/hw/intc/heathrow_pic.c
+++ b/hw/intc/heathrow_pic.c
@@ -24,10 +24,11 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/ppc/mac.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "hw/intc/heathrow_pic.h"
+#include "hw/irq.h"
#include "trace.h"
static inline int heathrow_check_irq(HeathrowPICState *pic)
diff --git a/hw/intc/i8259.c b/hw/intc/i8259.c
index 76f3d873b8..211a98962e 100644
--- a/hw/intc/i8259.c
+++ b/hw/intc/i8259.c
@@ -21,9 +21,10 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
#include "qemu/timer.h"
#include "qemu/log.h"
diff --git a/hw/intc/i8259_common.c b/hw/intc/i8259_common.c
index c75c880157..bd37bb5e68 100644
--- a/hw/intc/i8259_common.c
+++ b/hw/intc/i8259_common.c
@@ -22,9 +22,12 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "hw/i386/pc.h"
#include "hw/isa/i8259_internal.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
static int irq_level[16];
diff --git a/hw/intc/imx_avic.c b/hw/intc/imx_avic.c
index 83a4101528..63fc602a1a 100644
--- a/hw/intc/imx_avic.c
+++ b/hw/intc/imx_avic.c
@@ -17,6 +17,8 @@
#include "qemu/osdep.h"
#include "hw/intc/imx_avic.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/imx_gpcv2.c b/hw/intc/imx_gpcv2.c
index a83333bdea..17007a4078 100644
--- a/hw/intc/imx_gpcv2.c
+++ b/hw/intc/imx_gpcv2.c
@@ -11,6 +11,7 @@
#include "qemu/osdep.h"
#include "hw/intc/imx_gpcv2.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/ioapic.c b/hw/intc/ioapic.c
index e99c37cceb..1ede055387 100644
--- a/hw/intc/ioapic.c
+++ b/hw/intc/ioapic.c
@@ -23,13 +23,14 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "monitor/monitor.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "hw/i386/apic.h"
#include "hw/i386/ioapic.h"
#include "hw/i386/ioapic_internal.h"
#include "hw/pci/msi.h"
+#include "hw/qdev-properties.h"
#include "sysemu/kvm.h"
+#include "sysemu/sysemu.h"
#include "hw/i386/apic-msidef.h"
#include "hw/i386/x86-iommu.h"
#include "trace.h"
diff --git a/hw/intc/ioapic_common.c b/hw/intc/ioapic_common.c
index fa50382d43..5538b5b86e 100644
--- a/hw/intc/ioapic_common.c
+++ b/hw/intc/ioapic_common.c
@@ -22,6 +22,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "hw/i386/ioapic.h"
#include "hw/i386/ioapic_internal.h"
diff --git a/hw/intc/lm32_pic.c b/hw/intc/lm32_pic.c
index 170fa7a1ac..36de670c9e 100644
--- a/hw/intc/lm32_pic.c
+++ b/hw/intc/lm32_pic.c
@@ -19,13 +19,14 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "qemu/module.h"
#include "hw/sysbus.h"
#include "trace.h"
#include "hw/lm32/lm32_pic.h"
#include "hw/intc/intc.h"
+#include "hw/irq.h"
#define TYPE_LM32_PIC "lm32-pic"
#define LM32_PIC(obj) OBJECT_CHECK(LM32PicState, (obj), TYPE_LM32_PIC)
diff --git a/hw/intc/mips_gic.c b/hw/intc/mips_gic.c
index 33ab51c5b8..54b3059f3f 100644
--- a/hw/intc/mips_gic.c
+++ b/hw/intc/mips_gic.c
@@ -13,13 +13,14 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "exec/memory.h"
-#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
+#include "sysemu/reset.h"
#include "kvm_mips.h"
#include "hw/intc/mips_gic.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
static void mips_gic_set_vp_irq(MIPSGICState *gic, int vp, int pin)
{
diff --git a/hw/intc/nios2_iic.c b/hw/intc/nios2_iic.c
index 7329434b91..3a5d86c2a4 100644
--- a/hw/intc/nios2_iic.c
+++ b/hw/intc/nios2_iic.c
@@ -22,6 +22,7 @@
#include "qemu/module.h"
#include "qapi/error.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "cpu.h"
diff --git a/hw/intc/omap_intc.c b/hw/intc/omap_intc.c
index 053e67c66b..854b709ca0 100644
--- a/hw/intc/omap_intc.c
+++ b/hw/intc/omap_intc.c
@@ -19,7 +19,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/arm/omap.h"
#include "hw/sysbus.h"
#include "qemu/error-report.h"
diff --git a/hw/intc/ompic.c b/hw/intc/ompic.c
index 9cb310a5dd..ca9614fda1 100644
--- a/hw/intc/ompic.c
+++ b/hw/intc/ompic.c
@@ -10,8 +10,10 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "qapi/error.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "exec/memory.h"
#define TYPE_OR1K_OMPIC "or1k-ompic"
diff --git a/hw/intc/openpic.c b/hw/intc/openpic.c
index 9b4fc6cf43..c797ba78f3 100644
--- a/hw/intc/openpic.c
+++ b/hw/intc/openpic.c
@@ -35,12 +35,14 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ppc/mac.h"
#include "hw/pci/pci.h"
#include "hw/ppc/openpic.h"
#include "hw/ppc/ppc_e500.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/pci/msi.h"
#include "qapi/error.h"
#include "qemu/bitops.h"
diff --git a/hw/intc/openpic_kvm.c b/hw/intc/openpic_kvm.c
index 49fc6fa0cf..c09bebedd1 100644
--- a/hw/intc/openpic_kvm.c
+++ b/hw/intc/openpic_kvm.c
@@ -27,10 +27,10 @@
#include "cpu.h"
#include <sys/ioctl.h>
#include "exec/address-spaces.h"
-#include "hw/hw.h"
#include "hw/ppc/openpic.h"
#include "hw/ppc/openpic_kvm.h"
#include "hw/pci/msi.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "sysemu/kvm.h"
#include "qemu/log.h"
diff --git a/hw/intc/pl190.c b/hw/intc/pl190.c
index b4f31efc45..e3bd3dd121 100644
--- a/hw/intc/pl190.c
+++ b/hw/intc/pl190.c
@@ -8,7 +8,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/pnv_xive.c b/hw/intc/pnv_xive.c
index 4dc92ef1e3..a8caf258fd 100644
--- a/hw/intc/pnv_xive.c
+++ b/hw/intc/pnv_xive.c
@@ -14,6 +14,7 @@
#include "target/ppc/cpu.h"
#include "sysemu/cpus.h"
#include "sysemu/dma.h"
+#include "sysemu/reset.h"
#include "monitor/monitor.h"
#include "hw/ppc/fdt.h"
#include "hw/ppc/pnv.h"
@@ -21,6 +22,7 @@
#include "hw/ppc/pnv_xscom.h"
#include "hw/ppc/pnv_xive.h"
#include "hw/ppc/xive_regs.h"
+#include "hw/qdev-properties.h"
#include "hw/ppc/ppc.h"
#include <libfdt.h>
diff --git a/hw/intc/puv3_intc.c b/hw/intc/puv3_intc.c
index e2f6d9875a..e018955ce8 100644
--- a/hw/intc/puv3_intc.c
+++ b/hw/intc/puv3_intc.c
@@ -10,6 +10,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#undef DEBUG_PUV3
diff --git a/hw/intc/realview_gic.c b/hw/intc/realview_gic.c
index 99557544db..73fe8cd815 100644
--- a/hw/intc/realview_gic.c
+++ b/hw/intc/realview_gic.c
@@ -11,6 +11,8 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/intc/realview_gic.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
static void realview_gic_set_irq(void *opaque, int irq, int level)
{
diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c
index d0be755c82..a159c0c7cf 100644
--- a/hw/intc/s390_flic.c
+++ b/hw/intc/s390_flic.c
@@ -12,14 +12,15 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/sysbus.h"
#include "hw/s390x/ioinst.h"
#include "hw/s390x/s390_flic.h"
+#include "hw/qdev-properties.h"
#include "hw/s390x/css.h"
#include "trace.h"
#include "cpu.h"
-#include "hw/qdev.h"
#include "qapi/error.h"
#include "hw/s390x/s390-virtio-ccw.h"
diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c
index ff45b4ab0b..819aa5e198 100644
--- a/hw/intc/s390_flic_kvm.c
+++ b/hw/intc/s390_flic_kvm.c
@@ -22,6 +22,7 @@
#include "hw/s390x/s390_flic.h"
#include "hw/s390x/adapter.h"
#include "hw/s390x/css.h"
+#include "migration/qemu-file-types.h"
#include "trace.h"
#define FLIC_SAVE_INITIAL_SIZE getpagesize()
diff --git a/hw/intc/sh_intc.c b/hw/intc/sh_intc.c
index bac7886f25..72a55e32dd 100644
--- a/hw/intc/sh_intc.c
+++ b/hw/intc/sh_intc.c
@@ -11,7 +11,7 @@
#include "qemu/osdep.h"
#include "cpu.h"
#include "hw/sh4/sh_intc.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sh4/sh.h"
//#define DEBUG_INTC
diff --git a/hw/intc/slavio_intctl.c b/hw/intc/slavio_intctl.c
index ca528753bf..c4cf9096eb 100644
--- a/hw/intc/slavio_intctl.c
+++ b/hw/intc/slavio_intctl.c
@@ -23,10 +23,12 @@
*/
#include "qemu/osdep.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "qemu/module.h"
#include "hw/sysbus.h"
#include "hw/intc/intc.h"
+#include "hw/irq.h"
#include "trace.h"
//#define DEBUG_IRQ_COUNT
diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c
index 3ae311d9ff..aad981cb78 100644
--- a/hw/intc/spapr_xive.c
+++ b/hw/intc/spapr_xive.c
@@ -14,6 +14,8 @@
#include "qemu/error-report.h"
#include "target/ppc/cpu.h"
#include "sysemu/cpus.h"
+#include "sysemu/reset.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "hw/ppc/fdt.h"
#include "hw/ppc/spapr.h"
@@ -21,6 +23,7 @@
#include "hw/ppc/spapr_xive.h"
#include "hw/ppc/xive.h"
#include "hw/ppc/xive_regs.h"
+#include "hw/qdev-properties.h"
/*
* XIVE Virtualization Controller BAR and Thread Managment BAR that we
diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c
index 8898615c69..17af4d19f5 100644
--- a/hw/intc/spapr_xive_kvm.c
+++ b/hw/intc/spapr_xive_kvm.c
@@ -14,6 +14,7 @@
#include "target/ppc/cpu.h"
#include "sysemu/cpus.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_cpu_core.h"
#include "hw/ppc/spapr_xive.h"
diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index faa976e2f8..b2fca2975c 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -28,16 +28,19 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "trace.h"
#include "qemu/timer.h"
#include "hw/ppc/xics.h"
+#include "hw/qdev-properties.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "qapi/visitor.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "hw/intc/intc.h"
+#include "hw/irq.h"
#include "sysemu/kvm.h"
+#include "sysemu/reset.h"
void icp_pic_print_info(ICPState *icp, Monitor *mon)
{
diff --git a/hw/intc/xics_kvm.c b/hw/intc/xics_kvm.c
index 65c35f90f9..a4d2e876cc 100644
--- a/hw/intc/xics_kvm.c
+++ b/hw/intc/xics_kvm.c
@@ -29,7 +29,6 @@
#include "qapi/error.h"
#include "qemu-common.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "trace.h"
#include "sysemu/kvm.h"
#include "hw/ppc/spapr.h"
diff --git a/hw/intc/xics_pnv.c b/hw/intc/xics_pnv.c
index 67f2702e52..35f3811264 100644
--- a/hw/intc/xics_pnv.c
+++ b/hw/intc/xics_pnv.c
@@ -19,7 +19,6 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "sysemu/sysemu.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/ppc/xics.h"
diff --git a/hw/intc/xics_spapr.c b/hw/intc/xics_spapr.c
index 7cd3c93d71..6577be0d92 100644
--- a/hw/intc/xics_spapr.c
+++ b/hw/intc/xics_spapr.c
@@ -27,7 +27,6 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "trace.h"
#include "qemu/timer.h"
#include "hw/ppc/spapr.h"
diff --git a/hw/intc/xilinx_intc.c b/hw/intc/xilinx_intc.c
index d5363e977f..e15cb42b36 100644
--- a/hw/intc/xilinx_intc.c
+++ b/hw/intc/xilinx_intc.c
@@ -25,7 +25,8 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#define D(x)
diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index da148e9f6f..7a6e4b763a 100644
--- a/hw/intc/xive.c
+++ b/hw/intc/xive.c
@@ -14,8 +14,11 @@
#include "target/ppc/cpu.h"
#include "sysemu/cpus.h"
#include "sysemu/dma.h"
+#include "sysemu/reset.h"
#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
+#include "hw/irq.h"
#include "hw/ppc/xive.h"
#include "hw/ppc/xive_regs.h"
diff --git a/hw/intc/xlnx-pmu-iomod-intc.c b/hw/intc/xlnx-pmu-iomod-intc.c
index 0b8ff897dc..f9a1401a94 100644
--- a/hw/intc/xlnx-pmu-iomod-intc.c
+++ b/hw/intc/xlnx-pmu-iomod-intc.c
@@ -26,11 +26,14 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/register.h"
#include "qemu/bitops.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/intc/xlnx-pmu-iomod-intc.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#ifndef XLNX_PMU_IO_INTC_ERR_DEBUG
#define XLNX_PMU_IO_INTC_ERR_DEBUG 0
diff --git a/hw/intc/xlnx-zynqmp-ipi.c b/hw/intc/xlnx-zynqmp-ipi.c
index 0dad6c04f5..adc1179014 100644
--- a/hw/intc/xlnx-zynqmp-ipi.c
+++ b/hw/intc/xlnx-zynqmp-ipi.c
@@ -27,11 +27,13 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/register.h"
#include "qemu/bitops.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/intc/xlnx-zynqmp-ipi.h"
+#include "hw/irq.h"
#ifndef XLNX_ZYNQMP_IPI_ERR_DEBUG
#define XLNX_ZYNQMP_IPI_ERR_DEBUG 0
diff --git a/hw/ipack/ipack.c b/hw/ipack/ipack.c
index 6b1b72f94d..30e16696c0 100644
--- a/hw/ipack/ipack.c
+++ b/hw/ipack/ipack.c
@@ -12,6 +12,9 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/ipack/ipack.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
IPackDevice *ipack_device_find(IPackBus *bus, int32_t slot)
{
diff --git a/hw/ipack/tpci200.c b/hw/ipack/tpci200.c
index d4d85107d0..f931d4df62 100644
--- a/hw/ipack/tpci200.c
+++ b/hw/ipack/tpci200.c
@@ -11,7 +11,9 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "hw/ipack/ipack.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
#include "qemu/bitops.h"
#include "qemu/module.h"
diff --git a/hw/ipmi/ipmi.c b/hw/ipmi/ipmi.c
index a837f91782..136c86b7a7 100644
--- a/hw/ipmi/ipmi.c
+++ b/hw/ipmi/ipmi.c
@@ -23,10 +23,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/ipmi/ipmi.h"
-#include "sysemu/sysemu.h"
+#include "hw/qdev-properties.h"
#include "qom/object_interfaces.h"
+#include "sysemu/runstate.h"
#include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/visitor.h"
diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c
index c0a8dac346..573428eca1 100644
--- a/hw/ipmi/ipmi_bmc_extern.c
+++ b/hw/ipmi/ipmi_bmc_extern.c
@@ -33,8 +33,9 @@
#include "qapi/error.h"
#include "qemu/timer.h"
#include "chardev/char-fe.h"
-#include "sysemu/sysemu.h"
#include "hw/ipmi/ipmi.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#define VM_MSG_CHAR 0xA0 /* Marks end of message */
#define VM_CMD_CHAR 0xA1 /* Marks end of a command */
diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c
index 1980536517..246a6d390c 100644
--- a/hw/ipmi/ipmi_bmc_sim.c
+++ b/hw/ipmi/ipmi_bmc_sim.c
@@ -29,6 +29,8 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#define IPMI_NETFN_CHASSIS 0x00
diff --git a/hw/ipmi/isa_ipmi_bt.c b/hw/ipmi/isa_ipmi_bt.c
index 1846d5b9a4..a696096cbb 100644
--- a/hw/ipmi/isa_ipmi_bt.c
+++ b/hw/ipmi/isa_ipmi_bt.c
@@ -26,9 +26,11 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/ipmi/ipmi.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
/* Control register */
#define IPMI_BT_CLR_WR_BIT 0
diff --git a/hw/ipmi/isa_ipmi_kcs.c b/hw/ipmi/isa_ipmi_kcs.c
index 068f341256..374b2a0709 100644
--- a/hw/ipmi/isa_ipmi_kcs.c
+++ b/hw/ipmi/isa_ipmi_kcs.c
@@ -26,9 +26,11 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/ipmi/ipmi.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#define IPMI_KCS_OBF_BIT 0
#define IPMI_KCS_IBF_BIT 1
diff --git a/hw/isa/apm.c b/hw/isa/apm.c
index c3101ef52f..6300b1ba7a 100644
--- a/hw/isa/apm.c
+++ b/hw/isa/apm.c
@@ -22,8 +22,8 @@
#include "qemu/osdep.h"
#include "hw/isa/apm.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
//#define DEBUG
diff --git a/hw/isa/i82378.c b/hw/isa/i82378.c
index c08970b24a..de276cdf10 100644
--- a/hw/isa/i82378.c
+++ b/hw/isa/i82378.c
@@ -20,7 +20,9 @@
#include "qemu/osdep.h"
#include "hw/pci/pci.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "hw/timer/i8254.h"
+#include "migration/vmstate.h"
#include "hw/audio/pcspk.h"
#define TYPE_I82378 "i82378"
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index 4c73c2100f..c4e391916c 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -18,6 +18,7 @@
#include "sysemu/blockdev.h"
#include "chardev/char.h"
#include "hw/isa/superio.h"
+#include "hw/qdev-properties.h"
#include "hw/input/i8042.h"
#include "hw/char/serial.h"
#include "trace.h"
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index a7081bd52d..eec9eb31c1 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -27,14 +27,16 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "qapi/visitor.h"
#include "qemu/range.h"
#include "hw/isa/isa.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "hw/isa/apm.h"
#include "hw/i386/ioapic.h"
#include "hw/pci/pci.h"
@@ -43,7 +45,9 @@
#include "hw/acpi/acpi.h"
#include "hw/acpi/ich9.h"
#include "hw/pci/pci_bus.h"
+#include "hw/qdev-properties.h"
#include "exec/address-spaces.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "qom/cpu.h"
#include "hw/nvram/fw_cfg.h"
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index 85dbc94439..b9bd57471e 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -25,6 +25,8 @@
#include "qemu/osdep.h"
#include "hw/isa/pc87312.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/isa/piix4.c b/hw/isa/piix4.c
index 6b8bc3faf0..3294056cd5 100644
--- a/hw/isa/piix4.c
+++ b/hw/isa/piix4.c
@@ -23,11 +23,12 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "hw/pci/pci.h"
#include "hw/isa/isa.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
+#include "sysemu/reset.h"
PCIDevice *piix4_dev;
diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
index 12c460590f..50bd28fa82 100644
--- a/hw/isa/vt82c686.c
+++ b/hw/isa/vt82c686.c
@@ -11,18 +11,19 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/vt82c686.h"
#include "hw/i2c/i2c.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/isa/isa.h"
#include "hw/isa/superio.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/mips/mips.h"
#include "hw/isa/apm.h"
#include "hw/acpi/acpi.h"
#include "hw/i2c/pm_smbus.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/reset.h"
#include "qemu/module.h"
#include "qemu/timer.h"
#include "exec/address-spaces.h"
diff --git a/hw/lm32/lm32.h b/hw/lm32/lm32.h
index d1514a61b3..98de07acf2 100644
--- a/hw/lm32/lm32.h
+++ b/hw/lm32/lm32.h
@@ -2,6 +2,7 @@
#define HW_LM32_H
#include "hw/char/lm32_juart.h"
+#include "hw/qdev-properties.h"
static inline DeviceState *lm32_pic_init(qemu_irq cpu_irq)
{
diff --git a/hw/lm32/lm32_boards.c b/hw/lm32/lm32_boards.c
index fb9d52d54f..5ae308bfcf 100644
--- a/hw/lm32/lm32_boards.c
+++ b/hw/lm32/lm32_boards.c
@@ -22,7 +22,7 @@
#include "qemu/error-report.h"
#include "cpu.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/block/flash.h"
#include "hw/boards.h"
#include "hw/loader.h"
@@ -30,6 +30,7 @@
#include "lm32_hwsetup.h"
#include "lm32.h"
#include "exec/address-spaces.h"
+#include "sysemu/reset.h"
#include "sysemu/sysemu.h"
typedef struct {
diff --git a/hw/lm32/milkymist-hw.h b/hw/lm32/milkymist-hw.h
index 976cf9254d..5f63024355 100644
--- a/hw/lm32/milkymist-hw.h
+++ b/hw/lm32/milkymist-hw.h
@@ -1,7 +1,7 @@
#ifndef QEMU_HW_MILKYMIST_HW_H
#define QEMU_HW_MILKYMIST_HW_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#include "net/net.h"
static inline DeviceState *milkymist_uart_create(hwaddr base,
diff --git a/hw/lm32/milkymist.c b/hw/lm32/milkymist.c
index 689e633199..460d322de5 100644
--- a/hw/lm32/milkymist.c
+++ b/hw/lm32/milkymist.c
@@ -23,12 +23,14 @@
#include "qemu-common.h"
#include "cpu.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/block/flash.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "hw/boards.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "elf.h"
#include "milkymist-hw.h"
#include "hw/display/milkymist_tmu2.h"
diff --git a/hw/m68k/an5206.c b/hw/m68k/an5206.c
index 68d15a6ebe..54ccbe1a82 100644
--- a/hw/m68k/an5206.c
+++ b/hw/m68k/an5206.c
@@ -9,7 +9,6 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/m68k/mcf.h"
#include "hw/boards.h"
#include "hw/loader.h"
diff --git a/hw/m68k/mcf5206.c b/hw/m68k/mcf5206.c
index 1c17f83eed..a9c2c95b0d 100644
--- a/hw/m68k/mcf5206.c
+++ b/hw/m68k/mcf5206.c
@@ -5,10 +5,13 @@
*
* This code is licensed under the GPL
*/
+
#include "qemu/osdep.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "cpu.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/m68k/mcf.h"
#include "qemu/timer.h"
#include "hw/ptimer.h"
diff --git a/hw/m68k/mcf5208.c b/hw/m68k/mcf5208.c
index 6f6efae9fc..012710d057 100644
--- a/hw/m68k/mcf5208.c
+++ b/hw/m68k/mcf5208.c
@@ -5,13 +5,16 @@
*
* This code is licensed under the GPL
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qapi/error.h"
#include "qemu-common.h"
#include "cpu.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/m68k/mcf.h"
#include "hw/m68k/mcf_fec.h"
#include "qemu/timer.h"
diff --git a/hw/m68k/mcf_intc.c b/hw/m68k/mcf_intc.c
index a613aed820..d9e03a06ab 100644
--- a/hw/m68k/mcf_intc.c
+++ b/hw/m68k/mcf_intc.c
@@ -10,6 +10,7 @@
#include "qemu/module.h"
#include "cpu.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "hw/m68k/mcf.h"
diff --git a/hw/mem/memory-device.c b/hw/mem/memory-device.c
index 5f2c408036..53953fdc3a 100644
--- a/hw/mem/memory-device.c
+++ b/hw/mem/memory-device.c
@@ -11,7 +11,6 @@
#include "qemu/osdep.h"
#include "hw/mem/memory-device.h"
-#include "hw/qdev.h"
#include "qapi/error.h"
#include "hw/boards.h"
#include "qemu/range.h"
diff --git a/hw/mem/nvdimm.c b/hw/mem/nvdimm.c
index f438abb387..375f9a588a 100644
--- a/hw/mem/nvdimm.c
+++ b/hw/mem/nvdimm.c
@@ -28,7 +28,9 @@
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "hw/mem/nvdimm.h"
+#include "hw/qdev-properties.h"
#include "hw/mem/memory-device.h"
+#include "sysemu/hostmem.h"
static void nvdimm_get_label_size(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c
index 29c785799c..7c324a1329 100644
--- a/hw/mem/pc-dimm.c
+++ b/hw/mem/pc-dimm.c
@@ -19,12 +19,16 @@
*/
#include "qemu/osdep.h"
+#include "hw/boards.h"
#include "hw/mem/pc-dimm.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/mem/nvdimm.h"
#include "hw/mem/memory-device.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "qemu/module.h"
+#include "sysemu/hostmem.h"
#include "sysemu/numa.h"
#include "trace.h"
diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c
index a7af4c0704..bade4d22c0 100644
--- a/hw/microblaze/boot.c
+++ b/hw/microblaze/boot.c
@@ -31,6 +31,7 @@
#include "qemu/config-file.h"
#include "qemu/error-report.h"
#include "sysemu/device_tree.h"
+#include "sysemu/reset.h"
#include "sysemu/sysemu.h"
#include "hw/loader.h"
#include "elf.h"
diff --git a/hw/microblaze/boot.h b/hw/microblaze/boot.h
index dd1090d8b5..5a8c2f7975 100644
--- a/hw/microblaze/boot.h
+++ b/hw/microblaze/boot.h
@@ -1,7 +1,6 @@
#ifndef MICROBLAZE_BOOT_H
#define MICROBLAZE_BOOT_H
-#include "hw/hw.h"
void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base,
uint32_t ramsize,
diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
index a88bf16cc8..09486bc8bf 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -30,12 +30,12 @@
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
#include "net/net.h"
#include "hw/block/flash.h"
#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "hw/char/serial.h"
+#include "hw/qdev-properties.h"
#include "exec/address-spaces.h"
#include "hw/ssi/ssi.h"
diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
index 8d83474262..849bafc186 100644
--- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
+++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
@@ -28,7 +28,6 @@
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
#include "net/net.h"
#include "hw/block/flash.h"
#include "sysemu/sysemu.h"
diff --git a/hw/microblaze/xlnx-zynqmp-pmu.c b/hw/microblaze/xlnx-zynqmp-pmu.c
index 67cedec4ef..028f31894d 100644
--- a/hw/microblaze/xlnx-zynqmp-pmu.c
+++ b/hw/microblaze/xlnx-zynqmp-pmu.c
@@ -19,7 +19,6 @@
#include "qapi/error.h"
#include "exec/address-spaces.h"
#include "hw/boards.h"
-#include "hw/qdev-properties.h"
#include "cpu.h"
#include "boot.h"
diff --git a/hw/mips/addr.c b/hw/mips/addr.c
index 4da46e1731..2f138fe1ea 100644
--- a/hw/mips/addr.c
+++ b/hw/mips/addr.c
@@ -21,7 +21,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/mips/cpudevs.h"
static int mips_um_ksegs;
diff --git a/hw/mips/boston.c b/hw/mips/boston.c
index 9eeccbea9a..ca7d813a52 100644
--- a/hw/mips/boston.c
+++ b/hw/mips/boston.c
@@ -23,7 +23,6 @@
#include "exec/address-spaces.h"
#include "hw/boards.h"
#include "hw/char/serial.h"
-#include "hw/hw.h"
#include "hw/ide/pci.h"
#include "hw/ide/ahci.h"
#include "hw/loader.h"
@@ -31,6 +30,7 @@
#include "hw/mips/cps.h"
#include "hw/mips/cpudevs.h"
#include "hw/pci-host/xilinx-pcie.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/log.h"
@@ -38,6 +38,7 @@
#include "sysemu/device_tree.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
+#include "sysemu/runstate.h"
#include <libfdt.h>
diff --git a/hw/mips/cps.c b/hw/mips/cps.c
index 0d459c4141..cd8b07ded2 100644
--- a/hw/mips/cps.c
+++ b/hw/mips/cps.c
@@ -22,8 +22,10 @@
#include "qemu/module.h"
#include "hw/mips/cps.h"
#include "hw/mips/mips.h"
+#include "hw/qdev-properties.h"
#include "hw/mips/cpudevs.h"
#include "sysemu/kvm.h"
+#include "sysemu/reset.h"
qemu_irq get_cps_irq(MIPSCPSState *s, int pin_number)
{
diff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c
index 2fa313f498..f325bd6c1c 100644
--- a/hw/mips/gt64xxx_pci.c
+++ b/hw/mips/gt64xxx_pci.c
@@ -25,11 +25,12 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "qemu/log.h"
-#include "hw/hw.h"
#include "hw/mips/mips.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
+#include "migration/vmstate.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "exec/address-spaces.h"
#include "trace.h"
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index 5dbaa3bfcc..6e4fba285b 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -23,7 +23,6 @@
#include "qemu/units.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "hw/dma/i8257.h"
#include "hw/isa/superio.h"
@@ -44,6 +43,7 @@
#include "hw/timer/i8254.h"
#include "exec/address-spaces.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "qemu/error-report.h"
#define DEBUG_FULONG2E_INIT
diff --git a/hw/mips/mips_int.c b/hw/mips/mips_int.c
index f899f6ceb3..74cf587d5b 100644
--- a/hw/mips/mips_int.c
+++ b/hw/mips/mips_int.c
@@ -22,7 +22,7 @@
#include "qemu/osdep.h"
#include "qemu/main-loop.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/mips/cpudevs.h"
#include "cpu.h"
#include "sysemu/kvm.h"
diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
index fa8775d428..388c15c376 100644
--- a/hw/mips/mips_jazz.c
+++ b/hw/mips/mips_jazz.c
@@ -24,7 +24,6 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
-#include "hw/hw.h"
#include "hw/mips/mips.h"
#include "hw/mips/cpudevs.h"
#include "hw/i386/pc.h"
@@ -48,6 +47,7 @@
#include "hw/sysbus.h"
#include "exec/address-spaces.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/help_option.h"
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 20e019bf66..9fec2b08e4 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -26,7 +26,6 @@
#include "qemu/units.h"
#include "qemu-common.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "hw/isa/superio.h"
#include "hw/dma/i8257.h"
@@ -43,6 +42,7 @@
#include "qemu/log.h"
#include "hw/mips/bios.h"
#include "hw/ide.h"
+#include "hw/irq.h"
#include "hw/loader.h"
#include "elf.h"
#include "hw/timer/mc146818rtc.h"
@@ -51,6 +51,8 @@
#include "hw/sysbus.h" /* SysBusDevice */
#include "qemu/host-utils.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "hw/empty_slot.h"
diff --git a/hw/mips/mips_mipssim.c b/hw/mips/mips_mipssim.c
index 824abda657..1ca7e909d1 100644
--- a/hw/mips/mips_mipssim.c
+++ b/hw/mips/mips_mipssim.c
@@ -24,11 +24,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu-common.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/mips/mips.h"
#include "hw/mips/cpudevs.h"
#include "hw/char/serial.h"
@@ -43,6 +43,7 @@
#include "exec/address-spaces.h"
#include "qemu/error-report.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
static struct _loaderparams {
int ram_size;
diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
index 93dbf76bb4..bc0be26544 100644
--- a/hw/mips/mips_r4k.c
+++ b/hw/mips/mips_r4k.c
@@ -7,12 +7,12 @@
* All peripherial devices are attached to this "bus" with
* the standard PC ISA addresses.
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "qapi/error.h"
#include "qemu-common.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/mips/mips.h"
#include "hw/mips/cpudevs.h"
#include "hw/i386/pc.h"
@@ -33,6 +33,8 @@
#include "hw/timer/i8254.h"
#include "exec/address-spaces.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "qemu/error-report.h"
#define MAX_IDE_BUS 2
diff --git a/hw/misc/a9scu.c b/hw/misc/a9scu.c
index 4307f0082b..45c91db303 100644
--- a/hw/misc/a9scu.c
+++ b/hw/misc/a9scu.c
@@ -10,6 +10,8 @@
#include "qemu/osdep.h"
#include "hw/misc/a9scu.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
static uint64_t a9_scu_read(void *opaque, hwaddr offset,
diff --git a/hw/misc/applesmc.c b/hw/misc/applesmc.c
index 2d7eb3c7e2..24d57e8677 100644
--- a/hw/misc/applesmc.c
+++ b/hw/misc/applesmc.c
@@ -31,8 +31,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
#include "ui/console.h"
#include "qemu/module.h"
#include "qemu/timer.h"
diff --git a/hw/misc/arm11scu.c b/hw/misc/arm11scu.c
index 84275df885..3023284d6f 100644
--- a/hw/misc/arm11scu.c
+++ b/hw/misc/arm11scu.c
@@ -10,6 +10,7 @@
#include "qemu/osdep.h"
#include "hw/misc/arm11scu.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/arm_integrator_debug.c b/hw/misc/arm_integrator_debug.c
index 2646107b97..3e23201ae6 100644
--- a/hw/misc/arm_integrator_debug.c
+++ b/hw/misc/arm_integrator_debug.c
@@ -15,7 +15,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "hw/misc/arm_integrator_debug.h"
#include "qemu/log.h"
diff --git a/hw/misc/arm_l2x0.c b/hw/misc/arm_l2x0.c
index b88f40ae7e..af2c7af4a0 100644
--- a/hw/misc/arm_l2x0.c
+++ b/hw/misc/arm_l2x0.c
@@ -19,7 +19,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/arm_sysctl.c b/hw/misc/arm_sysctl.c
index 457dfadfab..fc79522ece 100644
--- a/hw/misc/arm_sysctl.c
+++ b/hw/misc/arm_sysctl.c
@@ -8,12 +8,14 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "qemu/timer.h"
+#include "sysemu/runstate.h"
#include "qemu/bitops.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/arm/primecell.h"
-#include "sysemu/sysemu.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/armsse-cpuid.c b/hw/misc/armsse-cpuid.c
index 05c08f3db5..8ab15fea81 100644
--- a/hw/misc/armsse-cpuid.c
+++ b/hw/misc/armsse-cpuid.c
@@ -23,10 +23,10 @@
#include "qemu/module.h"
#include "trace.h"
#include "qapi/error.h"
-#include "sysemu/sysemu.h"
#include "hw/sysbus.h"
#include "hw/registerfields.h"
#include "hw/misc/armsse-cpuid.h"
+#include "hw/qdev-properties.h"
REG32(CPUID, 0x0)
REG32(PID4, 0xfd0)
diff --git a/hw/misc/armsse-mhu.c b/hw/misc/armsse-mhu.c
index 514321a9ec..a45d97fada 100644
--- a/hw/misc/armsse-mhu.c
+++ b/hw/misc/armsse-mhu.c
@@ -20,9 +20,10 @@
#include "qemu/module.h"
#include "trace.h"
#include "qapi/error.h"
-#include "sysemu/sysemu.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
+#include "hw/irq.h"
#include "hw/misc/armsse-mhu.h"
REG32(CPU0INTR_STAT, 0x0)
diff --git a/hw/misc/aspeed_scu.c b/hw/misc/aspeed_scu.c
index 71a0d4b7be..268cb24e56 100644
--- a/hw/misc/aspeed_scu.c
+++ b/hw/misc/aspeed_scu.c
@@ -12,6 +12,7 @@
#include "qemu/osdep.h"
#include "hw/misc/aspeed_scu.h"
#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "qemu/bitops.h"
diff --git a/hw/misc/aspeed_sdmc.c b/hw/misc/aspeed_sdmc.c
index b84676d36d..cb13c63ec8 100644
--- a/hw/misc/aspeed_sdmc.c
+++ b/hw/misc/aspeed_sdmc.c
@@ -14,6 +14,7 @@
#include "hw/misc/aspeed_sdmc.h"
#include "hw/misc/aspeed_scu.h"
#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "trace.h"
diff --git a/hw/misc/aspeed_xdma.c b/hw/misc/aspeed_xdma.c
index eebd4ad540..dca5585a75 100644
--- a/hw/misc/aspeed_xdma.c
+++ b/hw/misc/aspeed_xdma.c
@@ -9,7 +9,9 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "qemu/error-report.h"
+#include "hw/irq.h"
#include "hw/misc/aspeed_xdma.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "trace.h"
diff --git a/hw/misc/bcm2835_mbox.c b/hw/misc/bcm2835_mbox.c
index a87da5ee53..79bad11631 100644
--- a/hw/misc/bcm2835_mbox.c
+++ b/hw/misc/bcm2835_mbox.c
@@ -10,7 +10,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "hw/irq.h"
#include "hw/misc/bcm2835_mbox.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/bcm2835_property.c b/hw/misc/bcm2835_property.c
index 0bf789cf60..d86d510572 100644
--- a/hw/misc/bcm2835_property.c
+++ b/hw/misc/bcm2835_property.c
@@ -6,6 +6,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/misc/bcm2835_property.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
#include "hw/misc/bcm2835_mbox_defs.h"
#include "sysemu/dma.h"
#include "qemu/log.h"
diff --git a/hw/misc/bcm2835_rng.c b/hw/misc/bcm2835_rng.c
index e882c87568..d0c4e64e88 100644
--- a/hw/misc/bcm2835_rng.c
+++ b/hw/misc/bcm2835_rng.c
@@ -12,6 +12,7 @@
#include "qemu/guest-random.h"
#include "qemu/module.h"
#include "hw/misc/bcm2835_rng.h"
+#include "migration/vmstate.h"
static uint32_t get_random_bytes(void)
{
diff --git a/hw/misc/cbus.c b/hw/misc/cbus.c
index 16ee704bca..3c3721ad2d 100644
--- a/hw/misc/cbus.c
+++ b/hw/misc/cbus.c
@@ -24,7 +24,7 @@
#include "hw/hw.h"
#include "hw/irq.h"
#include "hw/misc/cbus.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
//#define DEBUG
diff --git a/hw/misc/debugexit.c b/hw/misc/debugexit.c
index 8e4a2fc701..ccf02bdbd4 100644
--- a/hw/misc/debugexit.c
+++ b/hw/misc/debugexit.c
@@ -8,8 +8,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
#include "qemu/module.h"
#define TYPE_ISA_DEBUG_EXIT_DEVICE "isa-debug-exit"
diff --git a/hw/misc/eccmemctl.c b/hw/misc/eccmemctl.c
index 8386db07df..4b1f2b675a 100644
--- a/hw/misc/eccmemctl.c
+++ b/hw/misc/eccmemctl.c
@@ -23,7 +23,10 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "trace.h"
diff --git a/hw/misc/edu.c b/hw/misc/edu.c
index 3b6dba2c72..d5e2bdbb57 100644
--- a/hw/misc/edu.c
+++ b/hw/misc/edu.c
@@ -25,6 +25,7 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "hw/pci/pci.h"
+#include "hw/hw.h"
#include "hw/pci/msi.h"
#include "qemu/timer.h"
#include "qemu/main-loop.h" /* iothread mutex */
diff --git a/hw/misc/exynos4210_clk.c b/hw/misc/exynos4210_clk.c
index 821d9eab3f..bc1463ff89 100644
--- a/hw/misc/exynos4210_clk.c
+++ b/hw/misc/exynos4210_clk.c
@@ -19,6 +19,7 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/exynos4210_pmu.c b/hw/misc/exynos4210_pmu.c
index 8712774768..500f28343f 100644
--- a/hw/misc/exynos4210_pmu.c
+++ b/hw/misc/exynos4210_pmu.c
@@ -26,8 +26,9 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#ifndef DEBUG_PMU
#define DEBUG_PMU 0
diff --git a/hw/misc/exynos4210_rng.c b/hw/misc/exynos4210_rng.c
index b88fe3a26d..38cd61c7ea 100644
--- a/hw/misc/exynos4210_rng.c
+++ b/hw/misc/exynos4210_rng.c
@@ -19,6 +19,7 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/log.h"
#include "qemu/guest-random.h"
diff --git a/hw/misc/imx25_ccm.c b/hw/misc/imx25_ccm.c
index 693ea81040..d3107e5ca2 100644
--- a/hw/misc/imx25_ccm.c
+++ b/hw/misc/imx25_ccm.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "hw/misc/imx25_ccm.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/imx31_ccm.c b/hw/misc/imx31_ccm.c
index 38a19aa0d0..6e246827ab 100644
--- a/hw/misc/imx31_ccm.c
+++ b/hw/misc/imx31_ccm.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "hw/misc/imx31_ccm.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/imx6_ccm.c b/hw/misc/imx6_ccm.c
index 9478007f41..7fec8f0a47 100644
--- a/hw/misc/imx6_ccm.c
+++ b/hw/misc/imx6_ccm.c
@@ -12,6 +12,7 @@
#include "qemu/osdep.h"
#include "hw/misc/imx6_ccm.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/imx6_src.c b/hw/misc/imx6_src.c
index 878ffcdc71..8ab18967b5 100644
--- a/hw/misc/imx6_src.c
+++ b/hw/misc/imx6_src.c
@@ -10,9 +10,10 @@
#include "qemu/osdep.h"
#include "hw/misc/imx6_src.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "qemu/bitops.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "arm-powerctl.h"
#include "qom/cpu.h"
diff --git a/hw/misc/imx6ul_ccm.c b/hw/misc/imx6ul_ccm.c
index 37b472d125..a2fc1d0364 100644
--- a/hw/misc/imx6ul_ccm.c
+++ b/hw/misc/imx6ul_ccm.c
@@ -12,6 +12,7 @@
#include "qemu/osdep.h"
#include "hw/registerfields.h"
+#include "migration/vmstate.h"
#include "hw/misc/imx6ul_ccm.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/imx7_ccm.c b/hw/misc/imx7_ccm.c
index d9bdcf1027..02fc1ae8d0 100644
--- a/hw/misc/imx7_ccm.c
+++ b/hw/misc/imx7_ccm.c
@@ -14,6 +14,7 @@
#include "qemu/module.h"
#include "hw/misc/imx7_ccm.h"
+#include "migration/vmstate.h"
static void imx7_analog_reset(DeviceState *dev)
{
diff --git a/hw/misc/imx7_gpr.c b/hw/misc/imx7_gpr.c
index 09d57d4710..b03341a2eb 100644
--- a/hw/misc/imx7_gpr.c
+++ b/hw/misc/imx7_gpr.c
@@ -16,7 +16,6 @@
#include "hw/misc/imx7_gpr.h"
#include "qemu/log.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
#include "trace.h"
diff --git a/hw/misc/imx7_snvs.c b/hw/misc/imx7_snvs.c
index 55b962a453..45972a5920 100644
--- a/hw/misc/imx7_snvs.c
+++ b/hw/misc/imx7_snvs.c
@@ -16,7 +16,7 @@
#include "hw/misc/imx7_snvs.h"
#include "qemu/log.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
static uint64_t imx7_snvs_read(void *opaque, hwaddr offset, unsigned size)
{
diff --git a/hw/misc/iotkit-secctl.c b/hw/misc/iotkit-secctl.c
index 58fd94b14f..609869821a 100644
--- a/hw/misc/iotkit-secctl.c
+++ b/hw/misc/iotkit-secctl.c
@@ -15,7 +15,9 @@
#include "qapi/error.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
+#include "hw/irq.h"
#include "hw/misc/iotkit-secctl.h"
/* Registers in the secure privilege control block */
diff --git a/hw/misc/iotkit-sysctl.c b/hw/misc/iotkit-sysctl.c
index 00d4faa6db..9aa8109463 100644
--- a/hw/misc/iotkit-sysctl.c
+++ b/hw/misc/iotkit-sysctl.c
@@ -20,12 +20,14 @@
#include "qemu/bitops.h"
#include "qemu/log.h"
#include "qemu/module.h"
+#include "sysemu/runstate.h"
#include "trace.h"
#include "qapi/error.h"
-#include "sysemu/sysemu.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
#include "hw/misc/iotkit-sysctl.h"
+#include "hw/qdev-properties.h"
#include "target/arm/arm-powerctl.h"
#include "target/arm/cpu.h"
diff --git a/hw/misc/iotkit-sysinfo.c b/hw/misc/iotkit-sysinfo.c
index 3e1cf0ec34..783e613959 100644
--- a/hw/misc/iotkit-sysinfo.c
+++ b/hw/misc/iotkit-sysinfo.c
@@ -22,10 +22,10 @@
#include "qemu/module.h"
#include "trace.h"
#include "qapi/error.h"
-#include "sysemu/sysemu.h"
#include "hw/sysbus.h"
#include "hw/registerfields.h"
#include "hw/misc/iotkit-sysinfo.h"
+#include "hw/qdev-properties.h"
REG32(SYS_VERSION, 0x0)
REG32(SYS_CONFIG, 0x4)
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index f9cc66aba8..5e3b05eae0 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -21,12 +21,13 @@
#include "qemu/units.h"
#include "qapi/error.h"
#include "qemu/cutils.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
#include "sysemu/kvm.h"
#include "migration/blocker.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
#include "qemu/event_notifier.h"
#include "qemu/module.h"
diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
index 4f532efe34..e38becba6a 100644
--- a/hw/misc/macio/cuda.c
+++ b/hw/misc/macio/cuda.c
@@ -25,13 +25,14 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
-#include "hw/hw.h"
#include "hw/ppc/mac.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/input/adb.h"
#include "hw/misc/mos6522.h"
#include "hw/misc/macio/cuda.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "qemu/cutils.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/macio/gpio.c b/hw/misc/macio/gpio.c
index 31811ab513..6cca6b27d6 100644
--- a/hw/misc/macio/gpio.c
+++ b/hw/misc/macio/gpio.c
@@ -24,8 +24,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/ppc/mac.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/misc/macio/macio.h"
#include "hw/misc/macio/gpio.h"
#include "hw/nmi.h"
diff --git a/hw/misc/macio/mac_dbdma.c b/hw/misc/macio/mac_dbdma.c
index 548625a5f0..e220f1a927 100644
--- a/hw/misc/macio/mac_dbdma.c
+++ b/hw/misc/macio/mac_dbdma.c
@@ -38,8 +38,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ppc/mac_dbdma.h"
+#include "migration/vmstate.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/log.h"
diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c
index 82492096f8..50f20d8206 100644
--- a/hw/misc/macio/macio.c
+++ b/hw/misc/macio/macio.c
@@ -26,14 +26,16 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/ppc/mac.h"
#include "hw/misc/macio/cuda.h"
#include "hw/pci/pci.h"
#include "hw/ppc/mac_dbdma.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/char/escc.h"
#include "hw/misc/macio/macio.h"
#include "hw/intc/heathrow_pic.h"
+#include "sysemu/sysemu.h"
#include "trace.h"
/* Note: this code is strongly inspirated from the corresponding code
diff --git a/hw/misc/macio/pmu.c b/hw/misc/macio/pmu.c
index 753561d3f1..769aed8052 100644
--- a/hw/misc/macio/pmu.c
+++ b/hw/misc/macio/pmu.c
@@ -30,14 +30,16 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
-#include "hw/hw.h"
#include "hw/ppc/mac.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/input/adb.h"
+#include "hw/irq.h"
#include "hw/misc/mos6522.h"
#include "hw/misc/macio/gpio.h"
#include "hw/misc/macio/pmu.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "qemu/cutils.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/max111x.c b/hw/misc/max111x.c
index d373ece0c9..a713149f16 100644
--- a/hw/misc/max111x.c
+++ b/hw/misc/max111x.c
@@ -11,7 +11,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/ssi/ssi.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
typedef struct {
diff --git a/hw/misc/milkymist-hpdmc.c b/hw/misc/milkymist-hpdmc.c
index 701c79e81c..61e86e6b34 100644
--- a/hw/misc/milkymist-hpdmc.c
+++ b/hw/misc/milkymist-hpdmc.c
@@ -22,8 +22,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/misc/milkymist-pfpu.c b/hw/misc/milkymist-pfpu.c
index 1c27f1a4bc..516825e83d 100644
--- a/hw/misc/milkymist-pfpu.c
+++ b/hw/misc/milkymist-pfpu.c
@@ -23,8 +23,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/mips_cmgcr.c b/hw/misc/mips_cmgcr.c
index edec164605..8176d91c0c 100644
--- a/hw/misc/mips_cmgcr.c
+++ b/hw/misc/mips_cmgcr.c
@@ -12,11 +12,11 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "hw/misc/mips_cmgcr.h"
#include "hw/misc/mips_cpc.h"
+#include "hw/qdev-properties.h"
#include "hw/intc/mips_gic.h"
static inline bool is_cpc_connected(MIPSGCRState *s)
diff --git a/hw/misc/mips_cpc.c b/hw/misc/mips_cpc.c
index 446b1ad397..19ea016b87 100644
--- a/hw/misc/mips_cpc.c
+++ b/hw/misc/mips_cpc.c
@@ -23,8 +23,10 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/misc/mips_cpc.h"
+#include "hw/qdev-properties.h"
static inline uint64_t cpc_vp_run_mask(MIPSCPCState *cpc)
{
diff --git a/hw/misc/mips_itu.c b/hw/misc/mips_itu.c
index e8ba4a3cd0..ea0cf9726b 100644
--- a/hw/misc/mips_itu.c
+++ b/hw/misc/mips_itu.c
@@ -25,6 +25,7 @@
#include "cpu.h"
#include "exec/exec-all.h"
#include "hw/misc/mips_itu.h"
+#include "hw/qdev-properties.h"
#define ITC_TAG_ADDRSPACE_SZ (ITC_ADDRESSMAP_NUM * 8)
/* Initialize as 4kB area to fit all 32 cells with default 128B grain.
diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c
index e72ed69d51..57f13db266 100644
--- a/hw/misc/mos6522.c
+++ b/hw/misc/mos6522.c
@@ -25,11 +25,12 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/input/adb.h"
+#include "hw/irq.h"
#include "hw/misc/mos6522.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
#include "qemu/cutils.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/mps2-fpgaio.c b/hw/misc/mps2-fpgaio.c
index b97ad42d75..5e8b103914 100644
--- a/hw/misc/mps2-fpgaio.c
+++ b/hw/misc/mps2-fpgaio.c
@@ -21,8 +21,10 @@
#include "qapi/error.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
#include "hw/misc/mps2-fpgaio.h"
+#include "hw/qdev-properties.h"
#include "qemu/timer.h"
REG32(LED0, 0)
diff --git a/hw/misc/mps2-scc.c b/hw/misc/mps2-scc.c
index 1fdf5d22bd..25779a1dca 100644
--- a/hw/misc/mps2-scc.c
+++ b/hw/misc/mps2-scc.c
@@ -22,8 +22,10 @@
#include "qemu/module.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
#include "hw/misc/mps2-scc.h"
+#include "hw/qdev-properties.h"
REG32(CFG0, 0)
REG32(CFG1, 4)
diff --git a/hw/misc/msf2-sysreg.c b/hw/misc/msf2-sysreg.c
index 21a2863821..ddc5a30c80 100644
--- a/hw/misc/msf2-sysreg.c
+++ b/hw/misc/msf2-sysreg.c
@@ -17,6 +17,8 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/misc/msf2-sysreg.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
#include "trace.h"
diff --git a/hw/misc/mst_fpga.c b/hw/misc/mst_fpga.c
index fd18303724..81abdf8ede 100644
--- a/hw/misc/mst_fpga.c
+++ b/hw/misc/mst_fpga.c
@@ -12,8 +12,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
/* Mainstone FPGA for extern irqs */
diff --git a/hw/misc/nrf51_rng.c b/hw/misc/nrf51_rng.c
index 96ef4330eb..5140981c96 100644
--- a/hw/misc/nrf51_rng.c
+++ b/hw/misc/nrf51_rng.c
@@ -14,7 +14,10 @@
#include "qemu/module.h"
#include "qapi/error.h"
#include "hw/arm/nrf51.h"
+#include "hw/irq.h"
#include "hw/misc/nrf51_rng.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/guest-random.h"
static void update_irq(NRF51RNGState *s)
diff --git a/hw/misc/omap_clk.c b/hw/misc/omap_clk.c
index 9ea14186d4..c77ca2fc74 100644
--- a/hw/misc/omap_clk.c
+++ b/hw/misc/omap_clk.c
@@ -18,8 +18,10 @@
* You should have received a copy of the GNU General Public License along
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/arm/omap.h"
struct clk {
diff --git a/hw/misc/omap_gpmc.c b/hw/misc/omap_gpmc.c
index 84f9e4c612..10de7a5523 100644
--- a/hw/misc/omap_gpmc.c
+++ b/hw/misc/omap_gpmc.c
@@ -18,8 +18,9 @@
* You should have received a copy of the GNU General Public License along
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/block/flash.h"
#include "hw/arm/omap.h"
#include "exec/memory.h"
diff --git a/hw/misc/omap_l4.c b/hw/misc/omap_l4.c
index c217728c78..61b6df564a 100644
--- a/hw/misc/omap_l4.c
+++ b/hw/misc/omap_l4.c
@@ -18,7 +18,6 @@
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/arm/omap.h"
struct omap_l4_s {
diff --git a/hw/misc/omap_sdrc.c b/hw/misc/omap_sdrc.c
index 7b38c5568c..f2f72f6810 100644
--- a/hw/misc/omap_sdrc.c
+++ b/hw/misc/omap_sdrc.c
@@ -18,7 +18,6 @@
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/arm/omap.h"
/* SDRAM Controller Subsystem */
diff --git a/hw/misc/pc-testdev.c b/hw/misc/pc-testdev.c
index 1f9abd52b8..0fb84ddc6b 100644
--- a/hw/misc/pc-testdev.c
+++ b/hw/misc/pc-testdev.c
@@ -36,9 +36,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
-#include "hw/qdev.h"
#include "qemu/module.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
#define IOMEM_LEN 0x10000
diff --git a/hw/misc/pca9552.c b/hw/misc/pca9552.c
index 3422397f89..73be28d936 100644
--- a/hw/misc/pca9552.c
+++ b/hw/misc/pca9552.c
@@ -12,9 +12,9 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/misc/pca9552.h"
#include "hw/misc/pca9552_regs.h"
+#include "migration/vmstate.h"
#define PCA9552_LED_ON 0x0
#define PCA9552_LED_OFF 0x1
diff --git a/hw/misc/pci-testdev.c b/hw/misc/pci-testdev.c
index d4d89df4cf..74d8571a73 100644
--- a/hw/misc/pci-testdev.c
+++ b/hw/misc/pci-testdev.c
@@ -19,8 +19,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "qemu/event_notifier.h"
#include "qemu/module.h"
#include "sysemu/kvm.h"
diff --git a/hw/misc/puv3_pm.c b/hw/misc/puv3_pm.c
index b538b4afbb..c213500d9c 100644
--- a/hw/misc/puv3_pm.c
+++ b/hw/misc/puv3_pm.c
@@ -10,7 +10,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#undef DEBUG_PUV3
diff --git a/hw/misc/pvpanic.c b/hw/misc/pvpanic.c
index 1da24c621e..d65ac86478 100644
--- a/hw/misc/pvpanic.c
+++ b/hw/misc/pvpanic.c
@@ -13,11 +13,12 @@
*/
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
#include "qemu/log.h"
#include "qemu/module.h"
+#include "sysemu/runstate.h"
#include "hw/nvram/fw_cfg.h"
+#include "hw/qdev-properties.h"
#include "hw/misc/pvpanic.h"
/* The bit of supported pv event */
diff --git a/hw/misc/sga.c b/hw/misc/sga.c
index da04924f5f..6866bf72cb 100644
--- a/hw/misc/sga.c
+++ b/hw/misc/sga.c
@@ -29,7 +29,6 @@
#include "hw/isa/isa.h"
#include "hw/loader.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
#define SGABIOS_FILENAME "sgabios.bin"
diff --git a/hw/misc/slavio_misc.c b/hw/misc/slavio_misc.c
index 9c2cf04646..279b38dfc7 100644
--- a/hw/misc/slavio_misc.c
+++ b/hw/misc/slavio_misc.c
@@ -23,9 +23,11 @@
*/
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
+#include "sysemu/runstate.h"
#include "trace.h"
/*
diff --git a/hw/misc/tmp105.c b/hw/misc/tmp105.c
index 19def5c20f..75ddad3a12 100644
--- a/hw/misc/tmp105.c
+++ b/hw/misc/tmp105.c
@@ -19,8 +19,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "tmp105.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
diff --git a/hw/misc/tmp421.c b/hw/misc/tmp421.c
index 69ee5db4b7..9f044705fa 100644
--- a/hw/misc/tmp421.c
+++ b/hw/misc/tmp421.c
@@ -25,8 +25,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i2c/i2c.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "qemu/module.h"
diff --git a/hw/misc/tz-mpc.c b/hw/misc/tz-mpc.c
index 45a3e31c3d..49dd6050bd 100644
--- a/hw/misc/tz-mpc.c
+++ b/hw/misc/tz-mpc.c
@@ -15,8 +15,11 @@
#include "qapi/error.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
+#include "hw/irq.h"
#include "hw/misc/tz-mpc.h"
+#include "hw/qdev-properties.h"
/* Our IOMMU has two IOMMU indexes, one for secure transactions and one for
* non-secure transactions.
diff --git a/hw/misc/tz-msc.c b/hw/misc/tz-msc.c
index 52b96ba70d..7d522ac0ec 100644
--- a/hw/misc/tz-msc.c
+++ b/hw/misc/tz-msc.c
@@ -15,8 +15,11 @@
#include "qapi/error.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
+#include "hw/irq.h"
#include "hw/misc/tz-msc.h"
+#include "hw/qdev-properties.h"
static void tz_msc_update_irq(TZMSC *s)
{
diff --git a/hw/misc/tz-ppc.c b/hw/misc/tz-ppc.c
index 2a14a26f29..181a5f1e81 100644
--- a/hw/misc/tz-ppc.c
+++ b/hw/misc/tz-ppc.c
@@ -15,8 +15,11 @@
#include "qapi/error.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/registerfields.h"
+#include "hw/irq.h"
#include "hw/misc/tz-ppc.h"
+#include "hw/qdev-properties.h"
static void tz_ppc_update_irq(TZPPC *s)
{
diff --git a/hw/misc/unimp.c b/hw/misc/unimp.c
index 7f8e42cc2c..0e1cb24629 100644
--- a/hw/misc/unimp.c
+++ b/hw/misc/unimp.c
@@ -12,7 +12,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "hw/misc/unimp.h"
#include "qemu/log.h"
diff --git a/hw/misc/vmcoreinfo.c b/hw/misc/vmcoreinfo.c
index 987d6f52af..326a3ce8f4 100644
--- a/hw/misc/vmcoreinfo.c
+++ b/hw/misc/vmcoreinfo.c
@@ -13,7 +13,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
+#include "sysemu/reset.h"
#include "hw/nvram/fw_cfg.h"
+#include "migration/vmstate.h"
#include "hw/misc/vmcoreinfo.h"
static void fw_cfg_vmci_write(void *dev, off_t offset, size_t len)
diff --git a/hw/misc/zynq-xadc.c b/hw/misc/zynq-xadc.c
index f1e48601dc..7b1972ce06 100644
--- a/hw/misc/zynq-xadc.c
+++ b/hw/misc/zynq-xadc.c
@@ -14,10 +14,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/misc/zynq-xadc.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c
index 6b51ae5ff1..04adf618e5 100644
--- a/hw/misc/zynq_slcr.c
+++ b/hw/misc/zynq_slcr.c
@@ -15,10 +15,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qemu/timer.h"
+#include "sysemu/runstate.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/moxie/moxiesim.c b/hw/moxie/moxiesim.c
index d771d393c2..57af1b4891 100644
--- a/hw/moxie/moxiesim.c
+++ b/hw/moxie/moxiesim.c
@@ -24,13 +24,14 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
#include "net/net.h"
+#include "sysemu/reset.h"
#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "hw/loader.h"
diff --git a/hw/net/allwinner_emac.c b/hw/net/allwinner_emac.c
index eecda52800..e055a661c4 100644
--- a/hw/net/allwinner_emac.c
+++ b/hw/net/allwinner_emac.c
@@ -19,9 +19,12 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "net/net.h"
#include "qemu/fifo8.h"
+#include "hw/irq.h"
#include "hw/net/allwinner_emac.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include <zlib.h>
diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c
index d412085884..7f9cb5ab95 100644
--- a/hw/net/cadence_gem.c
+++ b/hw/net/cadence_gem.c
@@ -25,7 +25,10 @@
#include "qemu/osdep.h"
#include <zlib.h> /* For crc32 */
+#include "hw/irq.h"
#include "hw/net/cadence_gem.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/net/can/can_kvaser_pci.c b/hw/net/can/can_kvaser_pci.c
index df639f8fa0..16861b8f9f 100644
--- a/hw/net/can/can_kvaser_pci.c
+++ b/hw/net/can/can_kvaser_pci.c
@@ -36,8 +36,10 @@
#include "qemu/sockets.h"
#include "qapi/error.h"
#include "chardev/char.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "net/can_emu.h"
#include "can_sja1000.h"
diff --git a/hw/net/can/can_mioe3680_pci.c b/hw/net/can/can_mioe3680_pci.c
index 7af0993d7a..965e252d9d 100644
--- a/hw/net/can/can_mioe3680_pci.c
+++ b/hw/net/can/can_mioe3680_pci.c
@@ -32,8 +32,10 @@
#include "qemu/sockets.h"
#include "qapi/error.h"
#include "chardev/char.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "net/can_emu.h"
#include "can_sja1000.h"
diff --git a/hw/net/can/can_pcm3680_pci.c b/hw/net/can/can_pcm3680_pci.c
index 3f7312af07..51b6540072 100644
--- a/hw/net/can/can_pcm3680_pci.c
+++ b/hw/net/can/can_pcm3680_pci.c
@@ -32,8 +32,10 @@
#include "qemu/sockets.h"
#include "qapi/error.h"
#include "chardev/char.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "net/can_emu.h"
#include "can_sja1000.h"
diff --git a/hw/net/can/can_sja1000.c b/hw/net/can/can_sja1000.c
index 9a85038c8a..1f81341554 100644
--- a/hw/net/can/can_sja1000.c
+++ b/hw/net/can/can_sja1000.c
@@ -24,10 +24,12 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "chardev/char.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "net/can_emu.h"
#include "can_sja1000.h"
diff --git a/hw/net/can/can_sja1000.h b/hw/net/can/can_sja1000.h
index 4731cbbd2a..220a622087 100644
--- a/hw/net/can/can_sja1000.h
+++ b/hw/net/can/can_sja1000.h
@@ -27,6 +27,7 @@
#ifndef HW_CAN_SJA1000_H
#define HW_CAN_SJA1000_H
+#include "exec/hwaddr.h"
#include "net/can_emu.h"
#define CAN_SJA_MEM_SIZE 128
diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c
index bdb0b3b2c2..a5678e11fa 100644
--- a/hw/net/dp8393x.c
+++ b/hw/net/dp8393x.c
@@ -18,7 +18,10 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "net/net.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index a023ceb27c..8ae4e08f1e 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -26,8 +26,9 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "net/net.h"
#include "net/checksum.h"
#include "sysemu/sysemu.h"
diff --git a/hw/net/e1000e.c b/hw/net/e1000e.c
index 581f7d03d5..b69fd7d8ad 100644
--- a/hw/net/e1000e.c
+++ b/hw/net/e1000e.c
@@ -40,8 +40,11 @@
#include "qemu/module.h"
#include "qemu/range.h"
#include "sysemu/sysemu.h"
+#include "hw/hw.h"
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "e1000_regs.h"
diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
index 2a221c2ef9..9b76f82db5 100644
--- a/hw/net/e1000e_core.c
+++ b/hw/net/e1000e_core.c
@@ -34,11 +34,12 @@
*/
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
#include "net/net.h"
#include "net/tap.h"
+#include "hw/hw.h"
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
+#include "sysemu/runstate.h"
#include "net_tx_pkt.h"
#include "net_rx_pkt.h"
diff --git a/hw/net/e1000x_common.c b/hw/net/e1000x_common.c
index 09047806f2..717f9df1c9 100644
--- a/hw/net/e1000x_common.c
+++ b/hw/net/e1000x_common.c
@@ -24,7 +24,6 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "net/net.h"
diff --git a/hw/net/eepro100.c b/hw/net/eepro100.c
index 6607c9142d..cc2dd8b1c9 100644
--- a/hw/net/eepro100.c
+++ b/hw/net/eepro100.c
@@ -42,13 +42,15 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "net/net.h"
#include "net/eth.h"
#include "hw/nvram/eeprom93xx.h"
#include "sysemu/sysemu.h"
#include "sysemu/dma.h"
+#include "sysemu/reset.h"
#include "qemu/bitops.h"
#include "qemu/module.h"
#include "qapi/error.h"
diff --git a/hw/net/fsl_etsec/etsec.c b/hw/net/fsl_etsec/etsec.c
index 2a8b99a2e4..8451c17fb8 100644
--- a/hw/net/fsl_etsec/etsec.c
+++ b/hw/net/fsl_etsec/etsec.c
@@ -27,12 +27,14 @@
*/
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
#include "hw/sysbus.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "etsec.h"
#include "registers.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
/* #define HEX_DUMP */
diff --git a/hw/net/fsl_etsec/etsec.h b/hw/net/fsl_etsec/etsec.h
index 877988572e..09d05c2133 100644
--- a/hw/net/fsl_etsec/etsec.h
+++ b/hw/net/fsl_etsec/etsec.h
@@ -25,7 +25,6 @@
#ifndef ETSEC_H
#define ETSEC_H
-#include "hw/qdev.h"
#include "hw/sysbus.h"
#include "net/net.h"
#include "hw/ptimer.h"
diff --git a/hw/net/ftgmac100.c b/hw/net/ftgmac100.c
index d2cded5e94..04c78e8517 100644
--- a/hw/net/ftgmac100.c
+++ b/hw/net/ftgmac100.c
@@ -12,6 +12,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/net/ftgmac100.h"
#include "sysemu/dma.h"
#include "qemu/log.h"
@@ -19,6 +20,8 @@
#include "net/checksum.h"
#include "net/eth.h"
#include "hw/net/mii.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
/* For crc32 */
#include <zlib.h>
diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c
index 404154ebbf..7ac4ed7c12 100644
--- a/hw/net/imx_fec.c
+++ b/hw/net/imx_fec.c
@@ -22,7 +22,10 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/net/imx_fec.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "sysemu/dma.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/net/lan9118.c b/hw/net/lan9118.c
index f6120be219..8bba2a8056 100644
--- a/hw/net/lan9118.c
+++ b/hw/net/lan9118.c
@@ -12,12 +12,16 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "net/net.h"
#include "net/eth.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/net/lan9118.h"
-#include "sysemu/sysemu.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
/* For crc32 */
#include <zlib.h>
diff --git a/hw/net/lance.c b/hw/net/lance.c
index 2978c01d58..6631e2a4e0 100644
--- a/hw/net/lance.c
+++ b/hw/net/lance.c
@@ -39,7 +39,9 @@
#include "qemu/module.h"
#include "qemu/timer.h"
#include "hw/sparc/sparc32_dma.h"
+#include "migration/vmstate.h"
#include "hw/net/lance.h"
+#include "hw/qdev-properties.h"
#include "trace.h"
#include "sysemu/sysemu.h"
diff --git a/hw/net/mcf_fec.c b/hw/net/mcf_fec.c
index 78468fad6b..8fcf354a4b 100644
--- a/hw/net/mcf_fec.c
+++ b/hw/net/mcf_fec.c
@@ -8,11 +8,13 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "net/net.h"
#include "qemu/module.h"
#include "hw/m68k/mcf.h"
#include "hw/m68k/mcf_fec.h"
#include "hw/net/mii.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
/* For crc32 */
#include <zlib.h>
diff --git a/hw/net/milkymist-minimac2.c b/hw/net/milkymist-minimac2.c
index 41ef7a4456..86b6d28033 100644
--- a/hw/net/milkymist-minimac2.c
+++ b/hw/net/milkymist-minimac2.c
@@ -25,8 +25,10 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "cpu.h" /* FIXME: why does this use TARGET_PAGE_ALIGN? */
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "net/net.h"
#include "qemu/log.h"
diff --git a/hw/net/mipsnet.c b/hw/net/mipsnet.c
index c5fbd8431f..f7ae1ced4d 100644
--- a/hw/net/mipsnet.c
+++ b/hw/net/mipsnet.c
@@ -1,9 +1,11 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "net/net.h"
#include "qemu/module.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
/* MIPSnet register offsets */
diff --git a/hw/net/ne2000-isa.c b/hw/net/ne2000-isa.c
index 3490e54c5a..6fcf3d5cd9 100644
--- a/hw/net/ne2000-isa.c
+++ b/hw/net/ne2000-isa.c
@@ -25,7 +25,7 @@
#include "qemu/osdep.h"
#include "hw/isa/isa.h"
#include "hw/net/ne2000-isa.h"
-#include "hw/qdev.h"
+#include "migration/vmstate.h"
#include "ne2000.h"
#include "sysemu/sysemu.h"
#include "qapi/error.h"
diff --git a/hw/net/ne2000-pci.c b/hw/net/ne2000-pci.c
index cb05744f3c..9a20d427e3 100644
--- a/hw/net/ne2000-pci.c
+++ b/hw/net/ne2000-pci.c
@@ -21,8 +21,12 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "ne2000.h"
#include "sysemu/sysemu.h"
diff --git a/hw/net/ne2000.c b/hw/net/ne2000.c
index 1cf4b57341..6c17ee1ae2 100644
--- a/hw/net/ne2000.c
+++ b/hw/net/ne2000.c
@@ -25,8 +25,10 @@
#include "qemu/osdep.h"
#include "net/eth.h"
#include "qemu/module.h"
+#include "exec/memory.h"
+#include "hw/irq.h"
+#include "migration/vmstate.h"
#include "ne2000.h"
-#include "sysemu/sysemu.h"
#include "trace.h"
/* debug NE2000 card */
diff --git a/hw/net/ne2000.h b/hw/net/ne2000.h
index 2cd193e4c6..fc75843703 100644
--- a/hw/net/ne2000.h
+++ b/hw/net/ne2000.h
@@ -2,7 +2,6 @@
#define HW_NE2000_H
#include "qemu/units.h"
-#include "hw/hw.h"
#include "net/net.h"
#define NE2000_PMEM_SIZE (32 * KiB)
diff --git a/hw/net/opencores_eth.c b/hw/net/opencores_eth.c
index a5abb8df46..84a95da1d5 100644
--- a/hw/net/opencores_eth.c
+++ b/hw/net/opencores_eth.c
@@ -32,13 +32,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/net/mii.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "net/net.h"
#include "qemu/module.h"
#include "net/eth.h"
-#include "sysemu/sysemu.h"
#include "trace.h"
/* RECSMALL is not used because it breaks tap networking in linux:
diff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c
index 600d09ce92..4723c30c79 100644
--- a/hw/net/pcnet-pci.c
+++ b/hw/net/pcnet-pci.c
@@ -28,7 +28,10 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "net/net.h"
#include "qemu/module.h"
#include "qemu/timer.h"
diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
index 16683091c9..f3f18d8598 100644
--- a/hw/net/pcnet.c
+++ b/hw/net/pcnet.c
@@ -37,11 +37,12 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
-#include "hw/qdev.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "net/net.h"
#include "net/eth.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
#include "trace.h"
#include "pcnet.h"
diff --git a/hw/net/pcnet.h b/hw/net/pcnet.h
index 40831a7845..28d19a5c6f 100644
--- a/hw/net/pcnet.h
+++ b/hw/net/pcnet.h
@@ -8,6 +8,7 @@
#define PCNET_LOOPTEST_NOCRC 2
#include "exec/memory.h"
+#include "hw/irq.h"
/* BUS CONFIGURATION REGISTERS */
#define BCR_MSRDA 0
diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c
index bd54612f2a..50f9e33e2f 100644
--- a/hw/net/rocker/rocker.c
+++ b/hw/net/rocker/rocker.c
@@ -16,8 +16,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/pci/msix.h"
#include "net/net.h"
#include "net/eth.h"
diff --git a/hw/net/rocker/rocker_desc.c b/hw/net/rocker/rocker_desc.c
index b009da4f89..01845f1157 100644
--- a/hw/net/rocker/rocker_desc.c
+++ b/hw/net/rocker/rocker_desc.c
@@ -16,7 +16,6 @@
#include "qemu/osdep.h"
#include "net/net.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "rocker.h"
diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
index 09273171e5..88a97d756d 100644
--- a/hw/net/rtl8139.c
+++ b/hw/net/rtl8139.c
@@ -53,8 +53,9 @@
#include "qemu/osdep.h"
#include <zlib.h>
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "sysemu/dma.h"
#include "qemu/module.h"
#include "qemu/timer.h"
diff --git a/hw/net/smc91c111.c b/hw/net/smc91c111.c
index 4a612eebe9..e574635969 100644
--- a/hw/net/smc91c111.c
+++ b/hw/net/smc91c111.c
@@ -9,8 +9,11 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "net/net.h"
+#include "hw/irq.h"
#include "hw/net/smc91c111.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/module.h"
/* For crc32 */
diff --git a/hw/net/spapr_llan.c b/hw/net/spapr_llan.c
index f162d49025..701e6e1514 100644
--- a/hw/net/spapr_llan.c
+++ b/hw/net/spapr_llan.c
@@ -27,13 +27,14 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "net/net.h"
-#include "hw/qdev.h"
+#include "migration/vmstate.h"
#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_vio.h"
+#include "hw/qdev-properties.h"
#include "sysemu/sysemu.h"
#include "trace.h"
diff --git a/hw/net/stellaris_enet.c b/hw/net/stellaris_enet.c
index 2f645bfb71..3aca2a09f3 100644
--- a/hw/net/stellaris_enet.c
+++ b/hw/net/stellaris_enet.c
@@ -8,7 +8,10 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "net/net.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/net/sungem.c b/hw/net/sungem.c
index 89bcf749d1..f31d41ac5b 100644
--- a/hw/net/sungem.c
+++ b/hw/net/sungem.c
@@ -9,6 +9,8 @@
#include "qemu/osdep.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "net/net.h"
diff --git a/hw/net/sunhme.c b/hw/net/sunhme.c
index 8b8603e696..2243b7cf7b 100644
--- a/hw/net/sunhme.c
+++ b/hw/net/sunhme.c
@@ -23,8 +23,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/net/mii.h"
#include "net/net.h"
#include "qemu/module.h"
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index a6b719035c..e975700f95 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -22,7 +22,7 @@
#include "hw/virtio/virtio-net.h"
#include "net/vhost_net.h"
#include "qemu/error-report.h"
-
+#include "qemu/main-loop.h"
#include <sys/socket.h>
#include <net/if.h>
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index b9e1cd71cf..9f11422337 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "qemu/iov.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/virtio/virtio.h"
#include "net/net.h"
@@ -26,9 +27,11 @@
#include "hw/virtio/virtio-bus.h"
#include "qapi/error.h"
#include "qapi/qapi-events-net.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-access.h"
#include "migration/misc.h"
#include "standard-headers/linux/ethtool.h"
+#include "sysemu/sysemu.h"
#include "trace.h"
#define VIRTIO_NET_VM_VERSION 11
diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
index 10d01d0058..b07adeed9c 100644
--- a/hw/net/vmxnet3.c
+++ b/hw/net/vmxnet3.c
@@ -18,6 +18,7 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "net/tap.h"
#include "net/checksum.h"
#include "sysemu/sysemu.h"
@@ -26,6 +27,7 @@
#include "hw/pci/msix.h"
#include "hw/pci/msi.h"
#include "migration/register.h"
+#include "migration/vmstate.h"
#include "vmxnet3.h"
#include "vmxnet3_defs.h"
@@ -2141,21 +2143,6 @@ vmxnet3_cleanup_msi(VMXNET3State *s)
msi_uninit(d);
}
-static void
-vmxnet3_msix_save(QEMUFile *f, void *opaque)
-{
- PCIDevice *d = PCI_DEVICE(opaque);
- msix_save(d, f);
-}
-
-static int
-vmxnet3_msix_load(QEMUFile *f, void *opaque, int version_id)
-{
- PCIDevice *d = PCI_DEVICE(opaque);
- msix_load(d, f);
- return 0;
-}
-
static const MemoryRegionOps b0_ops = {
.read = vmxnet3_io_bar0_read,
.write = vmxnet3_io_bar0_write,
@@ -2176,11 +2163,6 @@ static const MemoryRegionOps b1_ops = {
},
};
-static SaveVMHandlers savevm_vmxnet3_msix = {
- .save_state = vmxnet3_msix_save,
- .load_state = vmxnet3_msix_load,
-};
-
static uint64_t vmxnet3_device_serial_num(VMXNET3State *s)
{
uint64_t dsn_payload;
@@ -2203,7 +2185,6 @@ static uint64_t vmxnet3_device_serial_num(VMXNET3State *s)
static void vmxnet3_pci_realize(PCIDevice *pci_dev, Error **errp)
{
- DeviceState *dev = DEVICE(pci_dev);
VMXNET3State *s = VMXNET3(pci_dev);
int ret;
@@ -2249,8 +2230,6 @@ static void vmxnet3_pci_realize(PCIDevice *pci_dev, Error **errp)
pcie_dev_ser_num_init(pci_dev, VMXNET3_DSN_OFFSET,
vmxnet3_device_serial_num(s));
}
-
- register_savevm_live(dev, "vmxnet3-msix", -1, 1, &savevm_vmxnet3_msix, s);
}
static void vmxnet3_instance_init(Object *obj)
@@ -2440,29 +2419,6 @@ static const VMStateDescription vmstate_vmxnet3_int_state = {
}
};
-static bool vmxnet3_vmstate_need_pcie_device(void *opaque)
-{
- VMXNET3State *s = VMXNET3(opaque);
-
- return !(s->compat_flags & VMXNET3_COMPAT_FLAG_DISABLE_PCIE);
-}
-
-static bool vmxnet3_vmstate_test_pci_device(void *opaque, int version_id)
-{
- return !vmxnet3_vmstate_need_pcie_device(opaque);
-}
-
-static const VMStateDescription vmstate_vmxnet3_pcie_device = {
- .name = "vmxnet3/pcie",
- .version_id = 1,
- .minimum_version_id = 1,
- .needed = vmxnet3_vmstate_need_pcie_device,
- .fields = (VMStateField[]) {
- VMSTATE_PCI_DEVICE(parent_obj, VMXNET3State),
- VMSTATE_END_OF_LIST()
- }
-};
-
static const VMStateDescription vmstate_vmxnet3 = {
.name = "vmxnet3",
.version_id = 1,
@@ -2470,9 +2426,8 @@ static const VMStateDescription vmstate_vmxnet3 = {
.pre_save = vmxnet3_pre_save,
.post_load = vmxnet3_post_load,
.fields = (VMStateField[]) {
- VMSTATE_STRUCT_TEST(parent_obj, VMXNET3State,
- vmxnet3_vmstate_test_pci_device, 0,
- vmstate_pci_device, PCIDevice),
+ VMSTATE_PCI_DEVICE(parent_obj, VMXNET3State),
+ VMSTATE_MSIX(parent_obj, VMXNET3State),
VMSTATE_BOOL(rx_packets_compound, VMXNET3State),
VMSTATE_BOOL(rx_vlan_stripping, VMXNET3State),
VMSTATE_BOOL(lro_supported, VMXNET3State),
@@ -2508,7 +2463,6 @@ static const VMStateDescription vmstate_vmxnet3 = {
},
.subsections = (const VMStateDescription*[]) {
&vmxstate_vmxnet3_mcast_list,
- &vmstate_vmxnet3_pcie_device,
NULL
}
};
diff --git a/hw/net/xen_nic.c b/hw/net/xen_nic.c
index ffb3b5898d..00a7fdf843 100644
--- a/hw/net/xen_nic.c
+++ b/hw/net/xen_nic.c
@@ -24,7 +24,6 @@
#include <sys/ioctl.h>
#include <sys/wait.h>
-#include "hw/hw.h"
#include "net/net.h"
#include "net/checksum.h"
#include "net/util.h"
diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c
index f49df95b07..2ea8d2ec72 100644
--- a/hw/net/xgmac.c
+++ b/hw/net/xgmac.c
@@ -25,7 +25,10 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "net/net.h"
diff --git a/hw/net/xilinx_axienet.c b/hw/net/xilinx_axienet.c
index feeaca680e..d8716a1f73 100644
--- a/hw/net/xilinx_axienet.c
+++ b/hw/net/xilinx_axienet.c
@@ -23,6 +23,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/hw.h"
#include "hw/sysbus.h"
#include "qapi/error.h"
#include "qemu/log.h"
@@ -30,6 +31,9 @@
#include "net/net.h"
#include "net/checksum.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/stream.h"
#define DPHY(x)
diff --git a/hw/net/xilinx_ethlite.c b/hw/net/xilinx_ethlite.c
index 8f3a8f8597..384e72b157 100644
--- a/hw/net/xilinx_ethlite.c
+++ b/hw/net/xilinx_ethlite.c
@@ -26,7 +26,8 @@
#include "qemu/module.h"
#include "cpu.h" /* FIXME should not use tswap* */
#include "hw/sysbus.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "net/net.h"
#define D(x)
diff --git a/hw/nios2/10m50_devboard.c b/hw/nios2/10m50_devboard.c
index 2c3388f5cf..ad8b2fc670 100644
--- a/hw/nios2/10m50_devboard.c
+++ b/hw/nios2/10m50_devboard.c
@@ -27,8 +27,8 @@
#include "cpu.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
#include "hw/char/serial.h"
+#include "hw/qdev-properties.h"
#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "exec/memory.h"
diff --git a/hw/nios2/boot.c b/hw/nios2/boot.c
index 276068c842..d78bc9ed0e 100644
--- a/hw/nios2/boot.c
+++ b/hw/nios2/boot.c
@@ -36,6 +36,7 @@
#include "qemu/config-file.h"
#include "qemu/error-report.h"
#include "sysemu/device_tree.h"
+#include "sysemu/reset.h"
#include "sysemu/sysemu.h"
#include "hw/loader.h"
#include "elf.h"
diff --git a/hw/nios2/boot.h b/hw/nios2/boot.h
index 3116753818..59b9fbfc62 100644
--- a/hw/nios2/boot.h
+++ b/hw/nios2/boot.h
@@ -1,7 +1,6 @@
#ifndef NIOS2_BOOT_H
#define NIOS2_BOOT_H
-#include "hw/hw.h"
#include "cpu.h"
void nios2_load_kernel(Nios2CPU *cpu, hwaddr ddr_base, uint32_t ramsize,
diff --git a/hw/nios2/cpu_pic.c b/hw/nios2/cpu_pic.c
index 5525e25ff0..1c1989d56a 100644
--- a/hw/nios2/cpu_pic.c
+++ b/hw/nios2/cpu_pic.c
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "cpu.h"
+#include "hw/irq.h"
#include "qemu/config-file.h"
diff --git a/hw/nios2/generic_nommu.c b/hw/nios2/generic_nommu.c
index 1788ffa7a4..19899e2c1e 100644
--- a/hw/nios2/generic_nommu.c
+++ b/hw/nios2/generic_nommu.c
@@ -32,9 +32,7 @@
#include "cpu.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
#include "hw/char/serial.h"
-#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "exec/memory.h"
#include "exec/address-spaces.h"
diff --git a/hw/nvram/chrp_nvram.c b/hw/nvram/chrp_nvram.c
index 3837510dd2..d969f26704 100644
--- a/hw/nvram/chrp_nvram.c
+++ b/hw/nvram/chrp_nvram.c
@@ -21,7 +21,6 @@
#include "qemu/osdep.h"
#include "qemu/cutils.h"
-#include "hw/hw.h"
#include "hw/nvram/chrp_nvram.h"
#include "sysemu/sysemu.h"
diff --git a/hw/nvram/ds1225y.c b/hw/nvram/ds1225y.c
index fd49283f41..934e09bf75 100644
--- a/hw/nvram/ds1225y.c
+++ b/hw/nvram/ds1225y.c
@@ -23,7 +23,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/nvram/eeprom93xx.c b/hw/nvram/eeprom93xx.c
index 2db3d7cce6..5b01b9b03f 100644
--- a/hw/nvram/eeprom93xx.c
+++ b/hw/nvram/eeprom93xx.c
@@ -36,8 +36,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/nvram/eeprom93xx.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
/* Debug EEPROM emulation. */
//~ #define DEBUG_EEPROM
diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c
index f75a485738..3416367523 100644
--- a/hw/nvram/eeprom_at24c.c
+++ b/hw/nvram/eeprom_at24c.c
@@ -11,8 +11,8 @@
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/i2c/i2c.h"
+#include "hw/qdev-properties.h"
#include "sysemu/block-backend.h"
/* #define DEBUG_AT24C */
diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
index dcfd6d2ed3..7dc3ac378e 100644
--- a/hw/nvram/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
@@ -24,12 +24,15 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
-#include "hw/hw.h"
#include "sysemu/sysemu.h"
#include "sysemu/dma.h"
+#include "sysemu/reset.h"
#include "hw/boards.h"
#include "hw/nvram/fw_cfg.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qemu/error-report.h"
#include "qemu/option.h"
diff --git a/hw/nvram/mac_nvram.c b/hw/nvram/mac_nvram.c
index a60426c469..9a47e35b8e 100644
--- a/hw/nvram/mac_nvram.c
+++ b/hw/nvram/mac_nvram.c
@@ -24,9 +24,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/nvram/chrp_nvram.h"
#include "hw/ppc/mac.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/cutils.h"
#include "qemu/module.h"
#include <zlib.h>
diff --git a/hw/nvram/nrf51_nvm.c b/hw/nvram/nrf51_nvm.c
index eca0cb35b5..4d678f994e 100644
--- a/hw/nvram/nrf51_nvm.c
+++ b/hw/nvram/nrf51_nvm.c
@@ -24,6 +24,8 @@
#include "exec/address-spaces.h"
#include "hw/arm/nrf51.h"
#include "hw/nvram/nrf51_nvm.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
/*
* FICR Registers Assignments
diff --git a/hw/nvram/spapr_nvram.c b/hw/nvram/spapr_nvram.c
index 09efd886bf..838082b451 100644
--- a/hw/nvram/spapr_nvram.c
+++ b/hw/nvram/spapr_nvram.c
@@ -31,10 +31,14 @@
#include "sysemu/block-backend.h"
#include "sysemu/device_tree.h"
+#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/nvram/chrp_nvram.h"
#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_vio.h"
+#include "hw/qdev-properties.h"
typedef struct SpaprNvram {
SpaprVioDevice sdev;
diff --git a/hw/openrisc/cputimer.c b/hw/openrisc/cputimer.c
index fe95efc41c..93268815d8 100644
--- a/hw/openrisc/cputimer.c
+++ b/hw/openrisc/cputimer.c
@@ -20,7 +20,7 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
#define TIMER_PERIOD 50 /* 50 ns period for 20 MHz timer */
diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c
index b85f0df323..79e70493fc 100644
--- a/hw/openrisc/openrisc_sim.c
+++ b/hw/openrisc/openrisc_sim.c
@@ -22,16 +22,18 @@
#include "qemu/error-report.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/boards.h"
#include "elf.h"
#include "hw/char/serial.h"
#include "net/net.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "exec/address-spaces.h"
#include "sysemu/sysemu.h"
#include "hw/sysbus.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#define KERNEL_LOAD_ADDR 0x100
diff --git a/hw/openrisc/pic_cpu.c b/hw/openrisc/pic_cpu.c
index 2f53cfc82e..36f9350830 100644
--- a/hw/openrisc/pic_cpu.c
+++ b/hw/openrisc/pic_cpu.c
@@ -19,7 +19,7 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "cpu.h"
/* OpenRISC pic handler */
diff --git a/hw/pci-bridge/gen_pcie_root_port.c b/hw/pci-bridge/gen_pcie_root_port.c
index 44acda7cb9..9eaefebca8 100644
--- a/hw/pci-bridge/gen_pcie_root_port.c
+++ b/hw/pci-bridge/gen_pcie_root_port.c
@@ -15,6 +15,8 @@
#include "qemu/module.h"
#include "hw/pci/msix.h"
#include "hw/pci/pcie_port.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#define TYPE_GEN_PCIE_ROOT_PORT "pcie-root-port"
#define GEN_PCIE_ROOT_PORT(obj) \
diff --git a/hw/pci-bridge/i82801b11.c b/hw/pci-bridge/i82801b11.c
index db77a3541b..2b3907655b 100644
--- a/hw/pci-bridge/i82801b11.c
+++ b/hw/pci-bridge/i82801b11.c
@@ -43,6 +43,7 @@
#include "qemu/osdep.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "hw/i386/ich9.h"
diff --git a/hw/pci-bridge/ioh3420.c b/hw/pci-bridge/ioh3420.c
index 310af04af9..f1e16135a3 100644
--- a/hw/pci-bridge/ioh3420.c
+++ b/hw/pci-bridge/ioh3420.c
@@ -25,6 +25,7 @@
#include "hw/pci/msi.h"
#include "hw/pci/pcie.h"
#include "hw/pci/pcie_port.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#define PCI_DEVICE_ID_IOH_EPORT 0x3420 /* D0:F0 express mode */
diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c
index 5fe96d02b3..cc80cb4898 100644
--- a/hw/pci-bridge/pci_bridge_dev.c
+++ b/hw/pci-bridge/pci_bridge_dev.c
@@ -27,6 +27,7 @@
#include "hw/pci/msi.h"
#include "hw/pci/shpc.h"
#include "hw/pci/slotid_cap.h"
+#include "hw/qdev-properties.h"
#include "exec/memory.h"
#include "hw/pci/pci_bus.h"
#include "hw/hotplug.h"
diff --git a/hw/pci-bridge/pci_expander_bridge.c b/hw/pci-bridge/pci_expander_bridge.c
index aecf3d7ddf..06a7c018d7 100644
--- a/hw/pci-bridge/pci_expander_bridge.c
+++ b/hw/pci-bridge/pci_expander_bridge.c
@@ -15,6 +15,7 @@
#include "hw/pci/pci.h"
#include "hw/pci/pci_bus.h"
#include "hw/pci/pci_host.h"
+#include "hw/qdev-properties.h"
#include "hw/pci/pci_bridge.h"
#include "qemu/range.h"
#include "qemu/error-report.h"
diff --git a/hw/pci-bridge/pcie_pci_bridge.c b/hw/pci-bridge/pcie_pci_bridge.c
index d0bfa0189a..7679bef6c1 100644
--- a/hw/pci-bridge/pcie_pci_bridge.c
+++ b/hw/pci-bridge/pcie_pci_bridge.c
@@ -16,6 +16,7 @@
#include "hw/pci/msi.h"
#include "hw/pci/shpc.h"
#include "hw/pci/slotid_cap.h"
+#include "hw/qdev-properties.h"
typedef struct PCIEPCIBridge {
/*< private >*/
diff --git a/hw/pci-bridge/pcie_root_port.c b/hw/pci-bridge/pcie_root_port.c
index 1d8a778709..012c2cb12c 100644
--- a/hw/pci-bridge/pcie_root_port.c
+++ b/hw/pci-bridge/pcie_root_port.c
@@ -16,6 +16,7 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/pci/pcie_port.h"
+#include "hw/qdev-properties.h"
static void rp_aer_vector_update(PCIDevice *d)
{
diff --git a/hw/pci-bridge/xio3130_downstream.c b/hw/pci-bridge/xio3130_downstream.c
index 182e164f74..a9f084b863 100644
--- a/hw/pci-bridge/xio3130_downstream.c
+++ b/hw/pci-bridge/xio3130_downstream.c
@@ -24,6 +24,8 @@
#include "hw/pci/msi.h"
#include "hw/pci/pcie.h"
#include "hw/pci/pcie_port.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/pci-bridge/xio3130_upstream.c b/hw/pci-bridge/xio3130_upstream.c
index b8cb31355f..5cd3af4fbc 100644
--- a/hw/pci-bridge/xio3130_upstream.c
+++ b/hw/pci-bridge/xio3130_upstream.c
@@ -24,6 +24,7 @@
#include "hw/pci/msi.h"
#include "hw/pci/pcie.h"
#include "hw/pci/pcie_port.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#define PCI_DEVICE_ID_TI_XIO3130U 0x8232 /* upstream port */
diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c
index dde4437595..ceee463a11 100644
--- a/hw/pci-host/bonito.c
+++ b/hw/pci-host/bonito.c
@@ -39,12 +39,14 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "hw/mips/mips.h"
#include "hw/pci/pci_host.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "exec/address-spaces.h"
//#define DEBUG_BONITO
diff --git a/hw/pci-host/designware.c b/hw/pci-host/designware.c
index 9ae8c0deb7..71e9b0d9b5 100644
--- a/hw/pci-host/designware.c
+++ b/hw/pci-host/designware.c
@@ -25,6 +25,9 @@
#include "hw/pci/pci_bridge.h"
#include "hw/pci/pci_host.h"
#include "hw/pci/pcie_port.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
#include "hw/pci-host/designware.h"
#define DESIGNWARE_PCIE_PORT_LINK_CONTROL 0x710
diff --git a/hw/pci-host/gpex.c b/hw/pci-host/gpex.c
index 629d1a4624..0ca604dc62 100644
--- a/hw/pci-host/gpex.c
+++ b/hw/pci-host/gpex.c
@@ -31,8 +31,10 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/pci-host/gpex.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
/****************************************************************************
diff --git a/hw/pci-host/grackle.c b/hw/pci-host/grackle.c
index ed3b3c361f..537273e578 100644
--- a/hw/pci-host/grackle.c
+++ b/hw/pci-host/grackle.c
@@ -26,8 +26,10 @@
#include "qemu/osdep.h"
#include "hw/pci/pci_host.h"
#include "hw/ppc/mac.h"
+#include "hw/qdev-properties.h"
#include "hw/pci/pci.h"
#include "hw/intc/heathrow_pic.h"
+#include "hw/irq.h"
#include "qapi/error.h"
#include "qemu/module.h"
#include "trace.h"
diff --git a/hw/pci-host/pam.c b/hw/pci-host/pam.c
index aa5ecfd0c2..45c4333cd3 100644
--- a/hw/pci-host/pam.c
+++ b/hw/pci-host/pam.c
@@ -29,7 +29,6 @@
#include "qemu/osdep.h"
#include "qom/object.h"
-#include "sysemu/sysemu.h"
#include "hw/pci-host/pam.h"
void init_pam(DeviceState *dev, MemoryRegion *ram_memory,
diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
index d9c70f7ce6..135c645535 100644
--- a/hw/pci-host/piix.c
+++ b/hw/pci-host/piix.c
@@ -23,17 +23,21 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
+#include "hw/qdev-properties.h"
#include "hw/isa/isa.h"
#include "hw/sysbus.h"
#include "qapi/error.h"
#include "qemu/range.h"
#include "hw/xen/xen.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
#include "hw/pci-host/pam.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "hw/i386/ioapic.h"
#include "qapi/visitor.h"
#include "qemu/error-report.h"
diff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c
index 21eaa30a20..8bed8e8941 100644
--- a/hw/pci-host/ppce500.c
+++ b/hw/pci-host/ppce500.c
@@ -15,8 +15,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ppc/e500-ccsr.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
#include "qemu/bswap.h"
diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c
index c564f234af..85d7ba9037 100644
--- a/hw/pci-host/prep.c
+++ b/hw/pci-host/prep.c
@@ -27,11 +27,13 @@
#include "qemu-common.h"
#include "qemu/units.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bus.h"
#include "hw/pci/pci_host.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "hw/loader.h"
#include "hw/or-irq.h"
#include "exec/address-spaces.h"
diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
index 0a010be4cf..158d270b9f 100644
--- a/hw/pci-host/q35.c
+++ b/hw/pci-host/q35.c
@@ -29,8 +29,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci-host/q35.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "qemu/module.h"
diff --git a/hw/pci-host/sabre.c b/hw/pci-host/sabre.c
index 2cec1116af..fae20ee97c 100644
--- a/hw/pci-host/sabre.c
+++ b/hw/pci-host/sabre.c
@@ -28,14 +28,16 @@
#include "hw/sysbus.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
+#include "hw/qdev-properties.h"
#include "hw/pci/pci_bridge.h"
#include "hw/pci/pci_bus.h"
+#include "hw/irq.h"
#include "hw/pci-bridge/simba.h"
#include "hw/pci-host/sabre.h"
-#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
#include "qemu/log.h"
#include "qemu/module.h"
+#include "sysemu/runstate.h"
#include "trace.h"
/*
diff --git a/hw/pci-host/uninorth.c b/hw/pci-host/uninorth.c
index 680fefd066..75bc506965 100644
--- a/hw/pci-host/uninorth.c
+++ b/hw/pci-host/uninorth.c
@@ -23,8 +23,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ppc/mac.h"
+#include "hw/qdev-properties.h"
#include "qemu/module.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
diff --git a/hw/pci-host/versatile.c b/hw/pci-host/versatile.c
index 791b321ea0..b731d0544f 100644
--- a/hw/pci-host/versatile.c
+++ b/hw/pci-host/versatile.c
@@ -9,9 +9,12 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bus.h"
#include "hw/pci/pci_host.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/pci-host/xilinx-pcie.c b/hw/pci-host/xilinx-pcie.c
index 192b697453..17d5024349 100644
--- a/hw/pci-host/xilinx-pcie.c
+++ b/hw/pci-host/xilinx-pcie.c
@@ -22,6 +22,8 @@
#include "qemu/units.h"
#include "qapi/error.h"
#include "hw/pci/pci_bridge.h"
+#include "hw/qdev-properties.h"
+#include "hw/irq.h"
#include "hw/pci-host/xilinx-pcie.h"
enum root_cfg_reg {
diff --git a/hw/pci/msix.c b/hw/pci/msix.c
index d39dcf32e8..29187898f2 100644
--- a/hw/pci/msix.c
+++ b/hw/pci/msix.c
@@ -15,11 +15,12 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
#include "hw/pci/pci.h"
#include "hw/xen/xen.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
#include "qemu/range.h"
#include "qapi/error.h"
#include "trace.h"
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 8076a80ab3..aa05c2b9b2 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -24,13 +24,17 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bridge.h"
#include "hw/pci/pci_bus.h"
#include "hw/pci/pci_host.h"
+#include "hw/qdev-properties.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "net/net.h"
+#include "sysemu/numa.h"
#include "sysemu/sysemu.h"
#include "hw/loader.h"
#include "qemu/error-report.h"
diff --git a/hw/pci/pcie_aer.c b/hw/pci/pcie_aer.c
index 939da0b778..27f9cc56af 100644
--- a/hw/pci/pcie_aer.c
+++ b/hw/pci/pcie_aer.c
@@ -21,6 +21,7 @@
#include "qemu/osdep.h"
#include "sysemu/sysemu.h"
#include "qapi/qmp/qdict.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "hw/pci/pci_bridge.h"
#include "hw/pci/pcie.h"
diff --git a/hw/pci/pcie_host.c b/hw/pci/pcie_host.c
index d6768b8eb6..3534006f99 100644
--- a/hw/pci/pcie_host.c
+++ b/hw/pci/pcie_host.c
@@ -20,7 +20,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "hw/pci/pcie_host.h"
#include "qemu/module.h"
diff --git a/hw/pci/pcie_port.c b/hw/pci/pcie_port.c
index c9c3ba540a..c19a9be592 100644
--- a/hw/pci/pcie_port.c
+++ b/hw/pci/pcie_port.c
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "hw/pci/pcie_port.h"
+#include "hw/qdev-properties.h"
#include "qemu/module.h"
#include "hw/hotplug.h"
diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c
index 5a10c6e9a5..7f0aa28e44 100644
--- a/hw/pci/shpc.c
+++ b/hw/pci/shpc.c
@@ -4,6 +4,7 @@
#include "qemu/range.h"
#include "qemu/error-report.h"
#include "hw/pci/shpc.h"
+#include "migration/qemu-file-types.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bus.h"
#include "hw/pci/msi.h"
diff --git a/hw/pcmcia/pcmcia.c b/hw/pcmcia/pcmcia.c
index c16b12db01..03d13e7d67 100644
--- a/hw/pcmcia/pcmcia.c
+++ b/hw/pcmcia/pcmcia.c
@@ -6,7 +6,6 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/pcmcia.h"
static const TypeInfo pcmcia_card_type_info = {
diff --git a/hw/pcmcia/pxa2xx.c b/hw/pcmcia/pxa2xx.c
index 8993b784bb..14e4dfe8b1 100644
--- a/hw/pcmcia/pxa2xx.c
+++ b/hw/pcmcia/pxa2xx.c
@@ -11,7 +11,7 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
#include "hw/pcmcia.h"
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index a3eac7f057..91cd4c26f9 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -22,17 +22,19 @@
#include "e500-ccsr.h"
#include "net/net.h"
#include "qemu/config-file.h"
-#include "hw/hw.h"
#include "hw/char/serial.h"
#include "hw/pci/pci.h"
#include "hw/boards.h"
#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "kvm_ppc.h"
#include "sysemu/device_tree.h"
#include "hw/ppc/openpic.h"
#include "hw/ppc/openpic_kvm.h"
#include "hw/ppc/ppc.h"
+#include "hw/qdev-properties.h"
#include "hw/loader.h"
#include "elf.h"
#include "hw/sysbus.h"
@@ -44,6 +46,7 @@
#include "hw/platform-bus.h"
#include "hw/net/fsl_etsec/etsec.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
#define EPAPR_MAGIC (0x45504150)
#define BINARY_DEVICE_TREE_FILE "mpc8544ds.dtb"
diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c
index 2b82a58592..7078386300 100644
--- a/hw/ppc/e500plat.c
+++ b/hw/ppc/e500plat.c
@@ -13,7 +13,6 @@
#include "qemu/units.h"
#include "e500.h"
#include "hw/net/fsl_etsec/etsec.h"
-#include "hw/boards.h"
#include "sysemu/device_tree.h"
#include "sysemu/kvm.h"
#include "hw/sysbus.h"
diff --git a/hw/ppc/mac.h b/hw/ppc/mac.h
index a741300ac9..6af87d1fa0 100644
--- a/hw/ppc/mac.h
+++ b/hw/ppc/mac.h
@@ -30,7 +30,6 @@
#include "exec/memory.h"
#include "hw/boards.h"
#include "hw/sysbus.h"
-#include "hw/ide/internal.h"
#include "hw/input/adb.h"
#include "hw/misc/mos6522.h"
#include "hw/pci/pci_host.h"
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index 09bc6068f3..c5bbcc7433 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -49,8 +49,8 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/ppc/ppc.h"
+#include "hw/qdev-properties.h"
#include "hw/ppc/mac.h"
#include "hw/input/adb.h"
#include "hw/ppc/mac_dbdma.h"
@@ -68,6 +68,7 @@
#include "elf.h"
#include "qemu/error-report.h"
#include "sysemu/kvm.h"
+#include "sysemu/reset.h"
#include "kvm_ppc.h"
#include "hw/usb.h"
#include "exec/address-spaces.h"
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index 9ffde5b6f7..0fa680b749 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -28,8 +28,8 @@
#include "qemu-common.h"
#include "qemu/units.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/ppc/ppc.h"
+#include "hw/qdev-properties.h"
#include "mac.h"
#include "hw/input/adb.h"
#include "sysemu/sysemu.h"
@@ -47,6 +47,7 @@
#include "elf.h"
#include "qemu/error-report.h"
#include "sysemu/kvm.h"
+#include "sysemu/reset.h"
#include "kvm_ppc.h"
#include "exec/address-spaces.h"
diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c
index 2b7cc14060..b96ea36f98 100644
--- a/hw/ppc/mpc8544_guts.c
+++ b/hw/ppc/mpc8544_guts.c
@@ -19,9 +19,8 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
+#include "sysemu/runstate.h"
#include "cpu.h"
-#include "hw/hw.h"
-#include "sysemu/sysemu.h"
#include "hw/sysbus.h"
#define MPC8544_GUTS_MMIO_SIZE 0x1000
diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c
index 6a4657c3cd..c2c5e11fa1 100644
--- a/hw/ppc/mpc8544ds.c
+++ b/hw/ppc/mpc8544ds.c
@@ -11,7 +11,6 @@
#include "qemu/osdep.h"
#include "e500.h"
-#include "hw/boards.h"
#include "sysemu/device_tree.h"
#include "hw/ppc/openpic.h"
#include "qemu/error-report.h"
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index bd4531c822..d95086fbbd 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -23,9 +23,10 @@
#include "qapi/error.h"
#include "sysemu/sysemu.h"
#include "sysemu/numa.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "sysemu/cpus.h"
#include "sysemu/device_tree.h"
-#include "hw/hw.h"
#include "target/ppc/cpu.h"
#include "qemu/log.h"
#include "hw/ppc/fdt.h"
@@ -41,9 +42,11 @@
#include "target/ppc/mmu-hash64.h"
#include "hw/ppc/xics.h"
+#include "hw/qdev-properties.h"
#include "hw/ppc/pnv_xscom.h"
#include "hw/isa/isa.h"
+#include "hw/boards.h"
#include "hw/char/serial.h"
#include "hw/timer/mc146818rtc.h"
diff --git a/hw/ppc/pnv_bmc.c b/hw/ppc/pnv_bmc.c
index 4b76d34f0a..e5eb6e5a70 100644
--- a/hw/ppc/pnv_bmc.c
+++ b/hw/ppc/pnv_bmc.c
@@ -17,8 +17,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
-#include "sysemu/sysemu.h"
#include "target/ppc/cpu.h"
#include "qemu/log.h"
#include "hw/ipmi/ipmi.h"
diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c
index c6411ecc1d..b1a7489e7a 100644
--- a/hw/ppc/pnv_core.c
+++ b/hw/ppc/pnv_core.c
@@ -18,7 +18,7 @@
*/
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/reset.h"
#include "qapi/error.h"
#include "qemu/log.h"
#include "qemu/module.h"
@@ -28,6 +28,7 @@
#include "hw/ppc/pnv_core.h"
#include "hw/ppc/pnv_xscom.h"
#include "hw/ppc/xics.h"
+#include "hw/qdev-properties.h"
static const char *pnv_core_cpu_typename(PnvCore *pc)
{
diff --git a/hw/ppc/pnv_lpc.c b/hw/ppc/pnv_lpc.c
index a9f150c3ca..9466d4a1be 100644
--- a/hw/ppc/pnv_lpc.c
+++ b/hw/ppc/pnv_lpc.c
@@ -18,11 +18,11 @@
*/
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
#include "target/ppc/cpu.h"
#include "qapi/error.h"
#include "qemu/log.h"
#include "qemu/module.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
#include "hw/ppc/pnv.h"
diff --git a/hw/ppc/pnv_occ.c b/hw/ppc/pnv_occ.c
index 636f91f311..8bead2c930 100644
--- a/hw/ppc/pnv_occ.c
+++ b/hw/ppc/pnv_occ.c
@@ -17,8 +17,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
-#include "sysemu/sysemu.h"
#include "target/ppc/cpu.h"
#include "qapi/error.h"
#include "qemu/log.h"
diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c
index d7b6f5d75b..88ba8e7b9b 100644
--- a/hw/ppc/pnv_psi.c
+++ b/hw/ppc/pnv_psi.c
@@ -18,10 +18,11 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "target/ppc/cpu.h"
#include "qemu/log.h"
#include "qemu/module.h"
+#include "sysemu/reset.h"
#include "qapi/error.h"
#include "monitor/monitor.h"
@@ -30,6 +31,7 @@
#include "hw/ppc/fdt.h"
#include "hw/ppc/pnv.h"
#include "hw/ppc/pnv_xscom.h"
+#include "hw/qdev-properties.h"
#include "hw/ppc/pnv_psi.h"
#include <libfdt.h>
diff --git a/hw/ppc/pnv_xscom.c b/hw/ppc/pnv_xscom.c
index 2b81c75f56..0e31c5786b 100644
--- a/hw/ppc/pnv_xscom.c
+++ b/hw/ppc/pnv_xscom.c
@@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "sysemu/hw_accel.h"
diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
index a9e508c496..7963feeab4 100644
--- a/hw/ppc/ppc.c
+++ b/hw/ppc/ppc.c
@@ -21,18 +21,21 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ppc/ppc.h"
#include "hw/ppc/ppc_e500.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
#include "sysemu/cpus.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/error-report.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "kvm_ppc.h"
+#include "migration/vmstate.h"
#include "trace.h"
//#define PPC_DEBUG_IRQ
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index 13318a9faf..388cae0b43 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -21,18 +21,19 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "qapi/error.h"
#include "qemu-common.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/ppc/ppc.h"
#include "ppc405.h"
#include "hw/timer/m48t59.h"
#include "hw/block/flash.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "sysemu/block-backend.h"
#include "hw/boards.h"
#include "qemu/log.h"
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index edb6b2d190..381720aced 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -21,17 +21,18 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/ppc/ppc.h"
-#include "hw/boards.h"
#include "hw/i2c/ppc4xx_i2c.h"
+#include "hw/irq.h"
#include "ppc405.h"
#include "hw/char/serial.h"
#include "qemu/timer.h"
+#include "sysemu/reset.h"
#include "sysemu/sysemu.h"
#include "qemu/log.h"
#include "exec/address-spaces.h"
diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
index b4da099e3e..4d95c0f8a8 100644
--- a/hw/ppc/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -17,7 +17,6 @@
#include "qemu-common.h"
#include "qemu/error-report.h"
#include "net/net.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "hw/boards.h"
#include "sysemu/kvm.h"
@@ -31,6 +30,7 @@
#include "ppc405.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "hw/sysbus.h"
#define BINARY_DEVICE_TREE_FILE "bamboo.dtb"
diff --git a/hw/ppc/ppc440_pcix.c b/hw/ppc/ppc440_pcix.c
index ca54631f9d..2ee2d4f4fc 100644
--- a/hw/ppc/ppc440_pcix.c
+++ b/hw/ppc/ppc440_pcix.c
@@ -23,7 +23,7 @@
#include "qemu/error-report.h"
#include "qemu/log.h"
#include "qemu/module.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ppc/ppc.h"
#include "hw/ppc/ppc4xx.h"
#include "hw/pci/pci.h"
diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
index 5c1a53d6e7..95475c9c5f 100644
--- a/hw/ppc/ppc440_uc.c
+++ b/hw/ppc/ppc440_uc.c
@@ -13,14 +13,17 @@
#include "qemu/error-report.h"
#include "qapi/error.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "cpu.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "exec/address-spaces.h"
#include "exec/memory.h"
#include "hw/ppc/ppc.h"
+#include "hw/qdev-properties.h"
#include "hw/pci/pci.h"
#include "sysemu/block-backend.h"
+#include "sysemu/reset.h"
#include "ppc440.h"
/*****************************************************************************/
diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c
index fdfeb67e65..c2e50138aa 100644
--- a/hw/ppc/ppc4xx_devs.c
+++ b/hw/ppc/ppc4xx_devs.c
@@ -21,10 +21,12 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
+#include "sysemu/reset.h"
#include "cpu.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ppc/ppc.h"
#include "hw/ppc/ppc4xx.h"
#include "hw/boards.h"
diff --git a/hw/ppc/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c
index e7cf8d50a5..3ea47df71f 100644
--- a/hw/ppc/ppc4xx_pci.c
+++ b/hw/ppc/ppc4xx_pci.c
@@ -20,10 +20,12 @@
* 4xx SoCs, such as the 440EP. */
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ppc/ppc.h"
#include "hw/ppc/ppc4xx.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
+#include "sysemu/reset.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
#include "exec/address-spaces.h"
diff --git a/hw/ppc/ppc_booke.c b/hw/ppc/ppc_booke.c
index 18d1457581..652a21b806 100644
--- a/hw/ppc/ppc_booke.c
+++ b/hw/ppc/ppc_booke.c
@@ -21,12 +21,13 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/ppc/ppc.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "qemu/log.h"
#include "hw/loader.h"
#include "kvm_ppc.h"
diff --git a/hw/ppc/ppce500_spin.c b/hw/ppc/ppce500_spin.c
index 0060fcb43f..66c1065db2 100644
--- a/hw/ppc/ppce500_spin.c
+++ b/hw/ppc/ppce500_spin.c
@@ -33,7 +33,6 @@
#include "hw/hw.h"
#include "hw/sysbus.h"
#include "sysemu/hw_accel.h"
-#include "sysemu/sysemu.h"
#include "e500.h"
#define MAX_CPUS 32
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index ab3c1df1fc..4f3c6bf190 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -22,9 +22,9 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/timer/m48t59.h"
#include "hw/char/serial.h"
#include "hw/block/fdc.h"
@@ -38,6 +38,7 @@
#include "qemu/error-report.h"
#include "qemu/log.h"
#include "hw/ide.h"
+#include "hw/irq.h"
#include "hw/loader.h"
#include "hw/timer/mc146818rtc.h"
#include "hw/isa/pc87312.h"
@@ -45,6 +46,7 @@
#include "sysemu/arch_init.h"
#include "sysemu/kvm.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "exec/address-spaces.h"
#include "trace.h"
#include "elf.h"
diff --git a/hw/ppc/prep_systemio.c b/hw/ppc/prep_systemio.c
index df7603b986..86e83e278f 100644
--- a/hw/ppc/prep_systemio.c
+++ b/hw/ppc/prep_systemio.c
@@ -23,11 +23,14 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "exec/address-spaces.h"
#include "qemu/error-report.h" /* for error_report() */
#include "qemu/module.h"
-#include "sysemu/sysemu.h" /* for vm_stop() */
+#include "sysemu/runstate.h"
#include "cpu.h"
#include "trace.h"
diff --git a/hw/ppc/rs6000_mc.c b/hw/ppc/rs6000_mc.c
index 45cb95e08a..df7c0006fc 100644
--- a/hw/ppc/rs6000_mc.c
+++ b/hw/ppc/rs6000_mc.c
@@ -20,6 +20,8 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "exec/address-spaces.h"
#include "hw/boards.h"
#include "qapi/error.h"
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index fbcddc5b00..437e214210 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -16,7 +16,6 @@
#include "qemu-common.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "sysemu/kvm.h"
#include "kvm_ppc.h"
@@ -31,12 +30,14 @@
#include "hw/block/flash.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "hw/sysbus.h"
#include "hw/char/serial.h"
#include "hw/i2c/ppc4xx_i2c.h"
#include "hw/i2c/smbus_eeprom.h"
#include "hw/usb/hcd-ehci.h"
#include "hw/ppc/fdt.h"
+#include "hw/qdev-properties.h"
#include <libfdt.h>
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 12ed4b065c..e09c67eb75 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -29,9 +29,11 @@
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "sysemu/sysemu.h"
+#include "sysemu/hostmem.h"
#include "sysemu/numa.h"
#include "sysemu/qtest.h"
-#include "hw/hw.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "qemu/log.h"
#include "hw/fw-path-provider.h"
#include "elf.h"
@@ -41,6 +43,7 @@
#include "sysemu/hw_accel.h"
#include "kvm_ppc.h"
#include "migration/misc.h"
+#include "migration/qemu-file-types.h"
#include "migration/global_state.h"
#include "migration/register.h"
#include "mmu-hash64.h"
@@ -55,6 +58,7 @@
#include "hw/ppc/fdt.h"
#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_vio.h"
+#include "hw/qdev-properties.h"
#include "hw/pci-host/spapr.h"
#include "hw/pci/msi.h"
diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
index bbb001f84a..7830d66d77 100644
--- a/hw/ppc/spapr_caps.c
+++ b/hw/ppc/spapr_caps.c
@@ -32,6 +32,7 @@
#include "target/ppc/mmu-hash64.h"
#include "cpu-models.h"
#include "kvm_ppc.h"
+#include "migration/vmstate.h"
#include "sysemu/qtest.h"
#include "sysemu/tcg.h"
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
index 5621fb9a3d..bf47fbdf6f 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -6,12 +6,14 @@
* This work is licensed under the terms of the GNU GPL, version 2 or later.
* See the COPYING file in the top-level directory.
*/
+
#include "qemu/osdep.h"
#include "hw/cpu/core.h"
#include "hw/ppc/spapr_cpu_core.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "target/ppc/cpu.h"
#include "hw/ppc/spapr.h"
-#include "hw/boards.h"
#include "qapi/error.h"
#include "sysemu/cpus.h"
#include "sysemu/kvm.h"
@@ -19,6 +21,7 @@
#include "hw/ppc/ppc.h"
#include "target/ppc/mmu-hash64.h"
#include "sysemu/numa.h"
+#include "sysemu/reset.h"
#include "sysemu/hw_accel.h"
#include "qemu/error-report.h"
diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c
index bacadfcac5..09255f4951 100644
--- a/hw/ppc/spapr_drc.c
+++ b/hw/ppc/spapr_drc.c
@@ -17,12 +17,13 @@
#include "qemu/cutils.h"
#include "hw/ppc/spapr_drc.h"
#include "qom/object.h"
-#include "hw/qdev.h"
+#include "migration/vmstate.h"
#include "qapi/visitor.h"
#include "qemu/error-report.h"
#include "hw/ppc/spapr.h" /* for RTAS return codes */
#include "hw/pci-host/spapr.h" /* spapr_phb_remove_pci_device_cb callback */
#include "sysemu/device_tree.h"
+#include "sysemu/reset.h"
#include "trace.h"
#define DRC_CONTAINER_PATH "/dr-connector"
diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index ae0f093f59..163a6cd25b 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -24,17 +24,18 @@
* THE SOFTWARE.
*
*/
+
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "sysemu/sysemu.h"
-#include "hw/qdev.h"
#include "sysemu/device_tree.h"
+#include "sysemu/runstate.h"
#include "hw/ppc/fdt.h"
#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_vio.h"
#include "hw/pci/pci.h"
+#include "hw/irq.h"
#include "hw/pci-host/spapr.h"
#include "hw/ppc/spapr_drc.h"
#include "qemu/help_option.h"
diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
index 6808d4cda8..225c60a9fc 100644
--- a/hw/ppc/spapr_hcall.c
+++ b/hw/ppc/spapr_hcall.c
@@ -1,8 +1,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "sysemu/hw_accel.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/error-report.h"
#include "cpu.h"
diff --git a/hw/ppc/spapr_iommu.c b/hw/ppc/spapr_iommu.c
index bd3d0256a6..ce85f8ac63 100644
--- a/hw/ppc/spapr_iommu.c
+++ b/hw/ppc/spapr_iommu.c
@@ -19,12 +19,11 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
-#include "hw/hw.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "sysemu/kvm.h"
-#include "hw/qdev.h"
#include "kvm_ppc.h"
+#include "migration/vmstate.h"
#include "sysemu/dma.h"
#include "exec/address-spaces.h"
#include "trace.h"
diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c
index d07aed8ca9..2f87fe08f3 100644
--- a/hw/ppc/spapr_irq.c
+++ b/hw/ppc/spapr_irq.c
@@ -11,11 +11,13 @@
#include "qemu/log.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
+#include "hw/irq.h"
#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_cpu_core.h"
#include "hw/ppc/spapr_xive.h"
#include "hw/ppc/xics.h"
#include "hw/ppc/xics_spapr.h"
+#include "hw/qdev-properties.h"
#include "cpu-models.h"
#include "sysemu/kvm.h"
diff --git a/hw/ppc/spapr_ovec.c b/hw/ppc/spapr_ovec.c
index a65b7c7da9..811fadf143 100644
--- a/hw/ppc/spapr_ovec.c
+++ b/hw/ppc/spapr_ovec.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "hw/ppc/spapr_ovec.h"
+#include "migration/vmstate.h"
#include "qemu/bitmap.h"
#include "exec/address-spaces.h"
#include "qemu/error-report.h"
diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 9003fe9010..bf31fd854c 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -26,8 +26,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/pci/pci.h"
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
@@ -46,6 +47,7 @@
#include "hw/pci/pci_bus.h"
#include "hw/pci/pci_ids.h"
#include "hw/ppc/spapr_drc.h"
+#include "hw/qdev-properties.h"
#include "sysemu/device_tree.h"
#include "sysemu/kvm.h"
#include "sysemu/hostmem.h"
diff --git a/hw/ppc/spapr_rng.c b/hw/ppc/spapr_rng.c
index 0e1c7ebcf8..954e4aec4b 100644
--- a/hw/ppc/spapr_rng.c
+++ b/hw/ppc/spapr_rng.c
@@ -21,11 +21,12 @@
#include "qapi/error.h"
#include "cpu.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
#include "sysemu/device_tree.h"
#include "sysemu/rng.h"
#include "hw/ppc/spapr.h"
+#include "hw/qdev-properties.h"
#include "kvm_ppc.h"
#define SPAPR_RNG(obj) \
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index a618a2ac0f..d3f9a69a51 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -24,15 +24,16 @@
* THE SOFTWARE.
*
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
#include "qemu/log.h"
#include "qemu/error-report.h"
#include "sysemu/sysemu.h"
-#include "hw/qdev.h"
#include "sysemu/device_tree.h"
#include "sysemu/cpus.h"
#include "sysemu/hw_accel.h"
+#include "sysemu/runstate.h"
#include "kvm_ppc.h"
#include "hw/ppc/spapr.h"
diff --git a/hw/ppc/spapr_rtc.c b/hw/ppc/spapr_rtc.c
index 6cf0113b34..42ff72c269 100644
--- a/hw/ppc/spapr_rtc.c
+++ b/hw/ppc/spapr_rtc.c
@@ -31,6 +31,7 @@
#include "qemu/timer.h"
#include "sysemu/sysemu.h"
#include "hw/ppc/spapr.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qapi/qapi-events-misc-target.h"
#include "qemu/cutils.h"
diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c
index 583c13deda..0803649658 100644
--- a/hw/ppc/spapr_vio.c
+++ b/hw/ppc/spapr_vio.c
@@ -23,16 +23,15 @@
#include "qemu/error-report.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "qemu/log.h"
-#include "sysemu/sysemu.h"
-#include "hw/boards.h"
#include "hw/loader.h"
#include "elf.h"
#include "hw/sysbus.h"
#include "sysemu/kvm.h"
#include "sysemu/device_tree.h"
#include "kvm_ppc.h"
+#include "migration/vmstate.h"
#include "sysemu/qtest.h"
#include "hw/ppc/spapr.h"
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index 834053a7d2..68625522d8 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -27,11 +27,11 @@
#include "qemu/units.h"
#include "cpu.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
#include "hw/char/serial.h"
#include "hw/block/flash.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "hw/boards.h"
#include "sysemu/device_tree.h"
#include "hw/loader.h"
@@ -43,6 +43,7 @@
#include "hw/ppc/ppc.h"
#include "hw/ppc/ppc4xx.h"
+#include "hw/qdev-properties.h"
#include "ppc405.h"
#define EPAPR_MAGIC (0x45504150)
diff --git a/hw/rdma/vmw/pvrdma_cmd.c b/hw/rdma/vmw/pvrdma_cmd.c
index 8d70c0d23d..692125ac26 100644
--- a/hw/rdma/vmw/pvrdma_cmd.c
+++ b/hw/rdma/vmw/pvrdma_cmd.c
@@ -15,7 +15,6 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_ids.h"
diff --git a/hw/rdma/vmw/pvrdma_main.c b/hw/rdma/vmw/pvrdma_main.c
index adcf79cd63..3e36e13013 100644
--- a/hw/rdma/vmw/pvrdma_main.c
+++ b/hw/rdma/vmw/pvrdma_main.c
@@ -16,16 +16,13 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_ids.h"
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
-#include "hw/qdev-core.h"
#include "hw/qdev-properties.h"
#include "cpu.h"
#include "trace.h"
-#include "sysemu/sysemu.h"
#include "monitor/monitor.h"
#include "hw/rdma/rdma.h"
@@ -36,6 +33,7 @@
#include <infiniband/verbs.h>
#include "pvrdma.h"
#include "standard-headers/rdma/vmw_pvrdma-abi.h"
+#include "sysemu/runstate.h"
#include "standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h"
#include "pvrdma_qp_ops.h"
diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c
index 6b7d322e85..4c63b5cf8a 100644
--- a/hw/riscv/boot.c
+++ b/hw/riscv/boot.c
@@ -22,9 +22,9 @@
#include "qemu/units.h"
#include "qemu/error-report.h"
#include "exec/cpu-defs.h"
+#include "hw/boards.h"
#include "hw/loader.h"
#include "hw/riscv/boot.h"
-#include "hw/boards.h"
#include "elf.h"
#include "sysemu/qtest.h"
diff --git a/hw/riscv/riscv_hart.c b/hw/riscv/riscv_hart.c
index ca69a1bcd8..d0f3199968 100644
--- a/hw/riscv/riscv_hart.c
+++ b/hw/riscv/riscv_hart.c
@@ -21,8 +21,10 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
+#include "sysemu/reset.h"
#include "hw/sysbus.h"
#include "target/riscv/cpu.h"
+#include "hw/qdev-properties.h"
#include "hw/riscv/riscv_hart.h"
static Property riscv_harts_props[] = {
diff --git a/hw/riscv/sifive_clint.c b/hw/riscv/sifive_clint.c
index 591d70deb3..e5a8f75cee 100644
--- a/hw/riscv/sifive_clint.c
+++ b/hw/riscv/sifive_clint.c
@@ -24,6 +24,7 @@
#include "qemu/module.h"
#include "hw/sysbus.h"
#include "target/riscv/cpu.h"
+#include "hw/qdev-properties.h"
#include "hw/riscv/sifive_clint.h"
#include "qemu/timer.h"
diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c
index 2a499d8ed2..792d75a1a3 100644
--- a/hw/riscv/sifive_e.c
+++ b/hw/riscv/sifive_e.c
@@ -32,7 +32,6 @@
#include "qemu/log.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "hw/loader.h"
#include "hw/sysbus.h"
@@ -47,6 +46,7 @@
#include "hw/riscv/boot.h"
#include "chardev/char.h"
#include "sysemu/arch_init.h"
+#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
static const struct MemmapEntry {
diff --git a/hw/riscv/sifive_gpio.c b/hw/riscv/sifive_gpio.c
index 06bd8112d7..5c7c596e6b 100644
--- a/hw/riscv/sifive_gpio.c
+++ b/hw/riscv/sifive_gpio.c
@@ -13,7 +13,9 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
+#include "hw/irq.h"
#include "hw/riscv/sifive_gpio.h"
+#include "migration/vmstate.h"
#include "trace.h"
static void update_output_irq(SIFIVEGPIOState *s)
diff --git a/hw/riscv/sifive_plic.c b/hw/riscv/sifive_plic.c
index 0950e89e15..64a1a10380 100644
--- a/hw/riscv/sifive_plic.c
+++ b/hw/riscv/sifive_plic.c
@@ -25,6 +25,7 @@
#include "hw/sysbus.h"
#include "hw/pci/msi.h"
#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "target/riscv/cpu.h"
#include "sysemu/sysemu.h"
#include "hw/riscv/sifive_plic.h"
diff --git a/hw/riscv/sifive_prci.c b/hw/riscv/sifive_prci.c
index f406682c91..9837b6166f 100644
--- a/hw/riscv/sifive_prci.c
+++ b/hw/riscv/sifive_prci.c
@@ -19,9 +19,11 @@
*/
#include "qemu/osdep.h"
+#include "hw/hw.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
#include "target/riscv/cpu.h"
+#include "hw/hw.h"
#include "hw/riscv/sifive_prci.h"
static uint64_t sifive_prci_read(void *opaque, hwaddr addr, unsigned int size)
diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
index 24a04d7b36..afbb3aaf34 100644
--- a/hw/riscv/sifive_test.c
+++ b/hw/riscv/sifive_test.c
@@ -19,9 +19,11 @@
*/
#include "qemu/osdep.h"
+#include "hw/hw.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
#include "target/riscv/cpu.h"
+#include "hw/hw.h"
#include "hw/riscv/sifive_test.h"
static uint64_t sifive_test_read(void *opaque, hwaddr addr, unsigned int size)
diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c
index 71b8083c05..9910fa6708 100644
--- a/hw/riscv/sifive_u.c
+++ b/hw/riscv/sifive_u.c
@@ -29,7 +29,6 @@
#include "qemu/log.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "hw/loader.h"
#include "hw/sysbus.h"
@@ -45,6 +44,7 @@
#include "chardev/char.h"
#include "sysemu/arch_init.h"
#include "sysemu/device_tree.h"
+#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
#include <libfdt.h>
diff --git a/hw/riscv/sifive_uart.c b/hw/riscv/sifive_uart.c
index 3b3f94f51d..9de42b1680 100644
--- a/hw/riscv/sifive_uart.c
+++ b/hw/riscv/sifive_uart.c
@@ -22,6 +22,8 @@
#include "chardev/char.h"
#include "chardev/char-fe.h"
#include "target/riscv/cpu.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/riscv/sifive_uart.h"
/*
diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
index 2991b341a2..7c04bd554f 100644
--- a/hw/riscv/spike.c
+++ b/hw/riscv/spike.c
@@ -27,7 +27,6 @@
#include "qemu/log.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "hw/loader.h"
#include "hw/sysbus.h"
@@ -41,6 +40,7 @@
#include "sysemu/arch_init.h"
#include "sysemu/device_tree.h"
#include "sysemu/qtest.h"
+#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
#include <libfdt.h>
diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index 25faf3b417..9bced28486 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -23,7 +23,6 @@
#include "qemu/log.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "hw/loader.h"
#include "hw/sysbus.h"
@@ -38,6 +37,7 @@
#include "chardev/char.h"
#include "sysemu/arch_init.h"
#include "sysemu/device_tree.h"
+#include "sysemu/sysemu.h"
#include "exec/address-spaces.h"
#include "hw/pci/pci.h"
#include "hw/pci-host/gpex.h"
diff --git a/hw/s390x/3270-ccw.c b/hw/s390x/3270-ccw.c
index 14882242c3..c19a75b9b7 100644
--- a/hw/s390x/3270-ccw.c
+++ b/hw/s390x/3270-ccw.c
@@ -9,12 +9,14 @@
* your option) any later version. See the COPYING file in the top-level
* directory.
*/
+
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
#include "cpu.h"
#include "hw/s390x/css.h"
#include "hw/s390x/css-bridge.h"
+#include "hw/qdev-properties.h"
#include "hw/s390x/3270-ccw.h"
/* Handle READ ccw commands from guest */
diff --git a/hw/s390x/ap-device.c b/hw/s390x/ap-device.c
index f5ac8db968..fc0b41e937 100644
--- a/hw/s390x/ap-device.c
+++ b/hw/s390x/ap-device.c
@@ -10,7 +10,6 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
#include "qapi/error.h"
-#include "hw/qdev.h"
#include "hw/s390x/ap-device.h"
static void ap_class_init(ObjectClass *klass, void *data)
diff --git a/hw/s390x/ccw-device.c b/hw/s390x/ccw-device.c
index 24f17bb6ca..4d222ad202 100644
--- a/hw/s390x/ccw-device.c
+++ b/hw/s390x/ccw-device.c
@@ -11,6 +11,7 @@
#include "qemu/osdep.h"
#include "ccw-device.h"
+#include "hw/qdev-properties.h"
#include "qemu/module.h"
static void ccw_device_refill_ids(CcwDevice *dev)
diff --git a/hw/s390x/css-bridge.c b/hw/s390x/css-bridge.c
index 4e9ff481e8..15a8ed96de 100644
--- a/hw/s390x/css-bridge.c
+++ b/hw/s390x/css-bridge.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/hotplug.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "qemu/bitops.h"
#include "qemu/module.h"
diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index b92395f165..844caab408 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -12,12 +12,12 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
-#include "hw/qdev.h"
#include "qemu/bitops.h"
#include "qemu/error-report.h"
#include "exec/address-spaces.h"
#include "cpu.h"
#include "hw/s390x/ioinst.h"
+#include "hw/qdev-properties.h"
#include "hw/s390x/css.h"
#include "trace.h"
#include "hw/s390x/s390_flic.h"
diff --git a/hw/s390x/event-facility.c b/hw/s390x/event-facility.c
index 61f3b74714..797ecbb7a9 100644
--- a/hw/s390x/event-facility.c
+++ b/hw/s390x/event-facility.c
@@ -18,9 +18,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
#include "hw/s390x/sclp.h"
+#include "migration/vmstate.h"
#include "hw/s390x/event-facility.h"
typedef struct SCLPEventsBus {
diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index 60bd081d3e..ca544d64c5 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -14,11 +14,14 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qapi/error.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "sysemu/tcg.h"
#include "cpu.h"
#include "elf.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "hw/boards.h"
#include "hw/s390x/virtio-ccw.h"
#include "hw/s390x/vfio-ccw.h"
diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h
index b3a07a12d8..d4813105db 100644
--- a/hw/s390x/ipl.h
+++ b/hw/s390x/ipl.h
@@ -12,8 +12,8 @@
#ifndef HW_S390_IPL_H
#define HW_S390_IPL_H
-#include "hw/qdev.h"
#include "cpu.h"
+#include "hw/qdev-core.h"
struct IplBlockCcw {
uint8_t reserved0[85];
diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c
index 22c6878b84..0c5a5b60bd 100644
--- a/hw/s390x/s390-ccw.c
+++ b/hw/s390x/s390-ccw.c
@@ -19,6 +19,7 @@
#include "hw/s390x/css.h"
#include "hw/s390x/css-bridge.h"
#include "hw/s390x/s390-ccw.h"
+#include "sysemu/sysemu.h"
IOInstEnding s390_ccw_cmd_request(SubchDev *sch)
{
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index 2c6e084e2c..963a41c7f5 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -18,6 +18,7 @@
#include "s390-pci-bus.h"
#include "s390-pci-inst.h"
#include "hw/pci/pci_bus.h"
+#include "hw/qdev-properties.h"
#include "hw/pci/pci_bridge.h"
#include "hw/pci/msi.h"
#include "qemu/error-report.h"
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
index e5bd92c0c7..d4807f7777 100644
--- a/hw/s390x/s390-skeys.c
+++ b/hw/s390x/s390-skeys.c
@@ -18,6 +18,7 @@
#include "qapi/qmp/qdict.h"
#include "qemu/error-report.h"
#include "sysemu/kvm.h"
+#include "migration/qemu-file-types.h"
#include "migration/register.h"
#define S390_SKEYS_BUFFER_SIZE (128 * KiB) /* Room for 128k storage keys */
diff --git a/hw/s390x/s390-stattrib.c b/hw/s390x/s390-stattrib.c
index 766f2015a4..eda5ca3bb6 100644
--- a/hw/s390x/s390-stattrib.c
+++ b/hw/s390x/s390-stattrib.c
@@ -11,7 +11,6 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/boards.h"
#include "cpu.h"
#include "migration/qemu-file.h"
#include "migration/register.h"
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 5b6a9a4e55..434d933ec9 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -27,6 +27,7 @@
#include "qemu/error-report.h"
#include "qemu/option.h"
#include "s390-pci-bus.h"
+#include "sysemu/reset.h"
#include "hw/s390x/storage-keys.h"
#include "hw/s390x/storage-attributes.h"
#include "hw/s390x/event-facility.h"
@@ -37,7 +38,9 @@
#include "migration/register.h"
#include "cpu_models.h"
#include "hw/nmi.h"
+#include "hw/qdev-properties.h"
#include "hw/s390x/tod.h"
+#include "sysemu/sysemu.h"
S390CPU *s390_cpu_addr2state(uint16_t cpu_addr)
{
diff --git a/hw/s390x/sclpcpu.c b/hw/s390x/sclpcpu.c
index a4aab7df51..62806d3273 100644
--- a/hw/s390x/sclpcpu.c
+++ b/hw/s390x/sclpcpu.c
@@ -14,7 +14,6 @@
*/
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
#include "hw/s390x/sclp.h"
#include "qemu/module.h"
#include "hw/s390x/event-facility.h"
diff --git a/hw/s390x/sclpquiesce.c b/hw/s390x/sclpquiesce.c
index 4f73471537..ce07b16884 100644
--- a/hw/s390x/sclpquiesce.c
+++ b/hw/s390x/sclpquiesce.c
@@ -13,10 +13,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/qdev.h"
-#include "sysemu/sysemu.h"
#include "hw/s390x/sclp.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
+#include "sysemu/runstate.h"
#include "hw/s390x/event-facility.h"
typedef struct SignalQuiesce {
diff --git a/hw/s390x/tod-kvm.c b/hw/s390x/tod-kvm.c
index bebe4744af..6e21d83181 100644
--- a/hw/s390x/tod-kvm.c
+++ b/hw/s390x/tod-kvm.c
@@ -11,7 +11,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "hw/s390x/tod.h"
#include "kvm_s390x.h"
diff --git a/hw/s390x/tod.c b/hw/s390x/tod.c
index a9fca8eb0b..1bf0875afa 100644
--- a/hw/s390x/tod.c
+++ b/hw/s390x/tod.c
@@ -14,6 +14,7 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "sysemu/kvm.h"
+#include "migration/qemu-file-types.h"
#include "migration/register.h"
void s390_init_tod(void)
diff --git a/hw/s390x/vhost-vsock-ccw.c b/hw/s390x/vhost-vsock-ccw.c
index 076f733390..1835812bd1 100644
--- a/hw/s390x/vhost-vsock-ccw.c
+++ b/hw/s390x/vhost-vsock-ccw.c
@@ -7,6 +7,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-9p.c b/hw/s390x/virtio-ccw-9p.c
index 67b2c537cc..5453a964d2 100644
--- a/hw/s390x/virtio-ccw-9p.c
+++ b/hw/s390x/virtio-ccw-9p.c
@@ -10,6 +10,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-balloon.c b/hw/s390x/virtio-ccw-balloon.c
index 35e43e89fb..7088612f6b 100644
--- a/hw/s390x/virtio-ccw-balloon.c
+++ b/hw/s390x/virtio-ccw-balloon.c
@@ -10,6 +10,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-blk.c b/hw/s390x/virtio-ccw-blk.c
index 83636cb6d7..1512af8974 100644
--- a/hw/s390x/virtio-ccw-blk.c
+++ b/hw/s390x/virtio-ccw-blk.c
@@ -10,6 +10,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-crypto.c b/hw/s390x/virtio-ccw-crypto.c
index 4569fe0649..086b397ad2 100644
--- a/hw/s390x/virtio-ccw-crypto.c
+++ b/hw/s390x/virtio-ccw-crypto.c
@@ -9,6 +9,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-gpu.c b/hw/s390x/virtio-ccw-gpu.c
index 10ee4b86eb..be46ca7a96 100644
--- a/hw/s390x/virtio-ccw-gpu.c
+++ b/hw/s390x/virtio-ccw-gpu.c
@@ -9,6 +9,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-input.c b/hw/s390x/virtio-ccw-input.c
index 075bb094ee..370b776790 100644
--- a/hw/s390x/virtio-ccw-input.c
+++ b/hw/s390x/virtio-ccw-input.c
@@ -9,6 +9,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-net.c b/hw/s390x/virtio-ccw-net.c
index 8ff184265e..12c03d73c4 100644
--- a/hw/s390x/virtio-ccw-net.c
+++ b/hw/s390x/virtio-ccw-net.c
@@ -10,6 +10,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-rng.c b/hw/s390x/virtio-ccw-rng.c
index dc60f084a5..854254dd50 100644
--- a/hw/s390x/virtio-ccw-rng.c
+++ b/hw/s390x/virtio-ccw-rng.c
@@ -10,6 +10,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-scsi.c b/hw/s390x/virtio-ccw-scsi.c
index 26fa086ef0..4662288b5b 100644
--- a/hw/s390x/virtio-ccw-scsi.c
+++ b/hw/s390x/virtio-ccw-scsi.c
@@ -10,6 +10,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/s390x/virtio-ccw-serial.c b/hw/s390x/virtio-ccw-serial.c
index 8cf5a529a5..eafb7d5c1f 100644
--- a/hw/s390x/virtio-ccw-serial.c
+++ b/hw/s390x/virtio-ccw-serial.c
@@ -12,6 +12,7 @@
#include "qemu/osdep.h"
#include "hw/virtio/virtio.h"
#include "qemu/module.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-serial.h"
#include "virtio-ccw.h"
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index 43d3a1b029..6580ce5907 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -12,11 +12,10 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
-#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
#include "net/net.h"
#include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
#include "hw/virtio/virtio-net.h"
#include "hw/sysbus.h"
#include "qemu/bitops.h"
diff --git a/hw/scsi/esp-pci.c b/hw/scsi/esp-pci.c
index 342f500f82..d5a1f9e017 100644
--- a/hw/scsi/esp-pci.c
+++ b/hw/scsi/esp-pci.c
@@ -25,8 +25,10 @@
#include "qemu/osdep.h"
#include "hw/pci/pci.h"
+#include "hw/irq.h"
#include "hw/nvram/eeprom93xx.h"
#include "hw/scsi/esp.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qapi/error.h"
#include "qemu/log.h"
diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c
index 7508d035ca..841d79b60e 100644
--- a/hw/scsi/esp.c
+++ b/hw/scsi/esp.c
@@ -25,6 +25,8 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
#include "hw/scsi/esp.h"
#include "trace.h"
#include "qemu/log.h"
diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index 10468c1ec1..222a286d44 100644
--- a/hw/scsi/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
@@ -15,9 +15,10 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
#include "hw/scsi/scsi.h"
+#include "migration/vmstate.h"
#include "sysemu/dma.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
index 0c4399930a..de9bd20887 100644
--- a/hw/scsi/megasas.c
+++ b/hw/scsi/megasas.c
@@ -20,8 +20,8 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "sysemu/dma.h"
#include "sysemu/block-backend.h"
#include "hw/pci/msi.h"
@@ -33,6 +33,7 @@
#include "trace.h"
#include "qapi/error.h"
#include "mfi.h"
+#include "migration/vmstate.h"
#define MEGASAS_VERSION_GEN1 "1.70"
#define MEGASAS_VERSION_GEN2 "1.80"
diff --git a/hw/scsi/mptconfig.c b/hw/scsi/mptconfig.c
index 87a416a5cb..3b2a857b5c 100644
--- a/hw/scsi/mptconfig.c
+++ b/hw/scsi/mptconfig.c
@@ -16,7 +16,6 @@
* Lesser General Public License for more details.
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "hw/scsi/scsi.h"
diff --git a/hw/scsi/mptendian.c b/hw/scsi/mptendian.c
index 79f99734d2..313f40edf9 100644
--- a/hw/scsi/mptendian.c
+++ b/hw/scsi/mptendian.c
@@ -21,7 +21,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "sysemu/dma.h"
#include "hw/pci/msi.h"
diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
index 3f94d5ab55..b8a4b37cf3 100644
--- a/hw/scsi/mptsas.c
+++ b/hw/scsi/mptsas.c
@@ -23,17 +23,20 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "sysemu/dma.h"
#include "hw/pci/msi.h"
#include "qemu/iov.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/scsi/scsi.h"
#include "scsi/constants.h"
#include "trace.h"
#include "qapi/error.h"
#include "mptsas.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
#include "mpi.h"
#define NAA_LOCALLY_ASSIGNED_ID 0x3ULL
diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c
index fdc3a0e4e0..bccb7cc4c6 100644
--- a/hw/scsi/scsi-bus.c
+++ b/hw/scsi/scsi-bus.c
@@ -1,14 +1,17 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "qemu/option.h"
+#include "hw/qdev-properties.h"
#include "hw/scsi/scsi.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
#include "scsi/constants.h"
-#include "hw/qdev.h"
#include "sysemu/block-backend.h"
#include "sysemu/blockdev.h"
+#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "trace.h"
#include "sysemu/dma.h"
#include "qemu/cutils.h"
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index af3e622dc5..915641a0f1 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -23,14 +23,17 @@
#include "qemu/units.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/scsi/scsi.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
#include "hw/scsi/emulation.h"
#include "scsi/constants.h"
-#include "sysemu/sysemu.h"
#include "sysemu/block-backend.h"
#include "sysemu/blockdev.h"
#include "hw/block/block.h"
+#include "hw/qdev-properties.h"
#include "sysemu/dma.h"
#include "qemu/cutils.h"
#include "trace.h"
diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c
index c11a0c9a84..e7798ebcd0 100644
--- a/hw/scsi/scsi-generic.c
+++ b/hw/scsi/scsi-generic.c
@@ -17,6 +17,8 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "hw/scsi/scsi.h"
+#include "migration/qemu-file-types.h"
+#include "hw/qdev-properties.h"
#include "hw/scsi/emulation.h"
#include "sysemu/block-backend.h"
#include "trace.h"
diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
index 0e491c911d..2120ceb051 100644
--- a/hw/scsi/spapr_vscsi.c
+++ b/hw/scsi/spapr_vscsi.c
@@ -35,13 +35,13 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/scsi/scsi.h"
+#include "migration/vmstate.h"
#include "scsi/constants.h"
#include "srp.h"
-#include "hw/qdev.h"
#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_vio.h"
+#include "hw/qdev-properties.h"
#include "viosrp.h"
#include "trace.h"
diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c
index 343ca8be7a..c693fc748a 100644
--- a/hw/scsi/vhost-scsi.c
+++ b/hw/scsi/vhost-scsi.c
@@ -20,7 +20,6 @@
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
-#include "qemu/queue.h"
#include "monitor/monitor.h"
#include "migration/blocker.h"
#include "hw/virtio/vhost-scsi.h"
@@ -29,7 +28,9 @@
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-access.h"
#include "hw/fw-path-provider.h"
+#include "hw/qdev-properties.h"
#include "qemu/cutils.h"
+#include "sysemu/sysemu.h"
/* Features supported by host kernel. */
static const int kernel_feature_bits[] = {
diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c
index fcee67d5a7..31c9d34637 100644
--- a/hw/scsi/vhost-user-scsi.c
+++ b/hw/scsi/vhost-user-scsi.c
@@ -21,12 +21,14 @@
#include "qom/object.h"
#include "hw/fw-path-provider.h"
#include "hw/qdev-core.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/vhost.h"
#include "hw/virtio/vhost-backend.h"
#include "hw/virtio/vhost-user-scsi.h"
#include "hw/virtio/virtio.h"
#include "hw/virtio/virtio-access.h"
#include "chardev/char-fe.h"
+#include "sysemu/sysemu.h"
/* Features supported by the host application */
static const int user_feature_bits[] = {
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
index 8b9e5e2b49..ee52aa7d17 100644
--- a/hw/scsi/virtio-scsi.c
+++ b/hw/scsi/virtio-scsi.c
@@ -17,10 +17,12 @@
#include "qapi/error.h"
#include "standard-headers/linux/virtio_ids.h"
#include "hw/virtio/virtio-scsi.h"
+#include "migration/qemu-file-types.h"
#include "qemu/error-report.h"
#include "qemu/iov.h"
#include "qemu/module.h"
#include "sysemu/block-backend.h"
+#include "hw/qdev-properties.h"
#include "hw/scsi/scsi.h"
#include "scsi/constants.h"
#include "hw/virtio/virtio-bus.h"
diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
index 14641df1c8..452a3b63b2 100644
--- a/hw/scsi/vmw_pvscsi.c
+++ b/hw/scsi/vmw_pvscsi.c
@@ -27,10 +27,13 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/scsi/scsi.h"
+#include "migration/vmstate.h"
#include "scsi/constants.h"
#include "hw/pci/msi.h"
+#include "hw/qdev-properties.h"
#include "vmw_pvscsi.h"
#include "trace.h"
diff --git a/hw/sd/bcm2835_sdhost.c b/hw/sd/bcm2835_sdhost.c
index 2778fb0de4..4a80fbcc86 100644
--- a/hw/sd/bcm2835_sdhost.c
+++ b/hw/sd/bcm2835_sdhost.c
@@ -15,7 +15,9 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "sysemu/blockdev.h"
+#include "hw/irq.h"
#include "hw/sd/bcm2835_sdhost.h"
+#include "migration/vmstate.h"
#include "trace.h"
#define TYPE_BCM2835_SDHOST_BUS "bcm2835-sdhost-bus"
diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c
index b8d2347d46..926e1af475 100644
--- a/hw/sd/milkymist-memcard.c
+++ b/hw/sd/milkymist-memcard.c
@@ -24,13 +24,13 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "qemu/module.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qapi/error.h"
#include "sysemu/block-backend.h"
#include "sysemu/blockdev.h"
+#include "hw/qdev-properties.h"
#include "hw/sd/sd.h"
enum {
diff --git a/hw/sd/omap_mmc.c b/hw/sd/omap_mmc.c
index d0c98ca021..c6e516b611 100644
--- a/hw/sd/omap_mmc.c
+++ b/hw/sd/omap_mmc.c
@@ -18,9 +18,10 @@
* You should have received a copy of the GNU General Public License along
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+
#include "qemu/osdep.h"
#include "qemu/log.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/arm/omap.h"
#include "hw/sd/sd.h"
diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c
index 81b406dbf0..8033fe455d 100644
--- a/hw/sd/pl181.c
+++ b/hw/sd/pl181.c
@@ -10,6 +10,8 @@
#include "qemu/osdep.h"
#include "sysemu/blockdev.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
#include "hw/sd/sd.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c
index 81ff5cea86..8f9ab0ec16 100644
--- a/hw/sd/pxa2xx_mmci.c
+++ b/hw/sd/pxa2xx_mmci.c
@@ -12,11 +12,11 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "hw/arm/pxa.h"
#include "hw/sd/sd.h"
-#include "hw/qdev.h"
#include "hw/qdev-properties.h"
#include "qemu/error-report.h"
#include "qemu/log.h"
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 917195a65b..49b83576e7 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -32,11 +32,11 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
-#include "hw/qdev.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/registerfields.h"
#include "sysemu/block-backend.h"
#include "hw/sd/sd.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/bitmap.h"
#include "hw/qdev-properties.h"
diff --git a/hw/sd/sdhci-pci.c b/hw/sd/sdhci-pci.c
index 9370181993..2c8d8f59b5 100644
--- a/hw/sd/sdhci-pci.c
+++ b/hw/sd/sdhci-pci.c
@@ -18,7 +18,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/module.h"
-#include "hw/hw.h"
+#include "hw/qdev-properties.h"
#include "hw/sd/sdhci.h"
#include "sdhci-internal.h"
diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
index 7b80b1d93f..e08ec3e398 100644
--- a/hw/sd/sdhci.c
+++ b/hw/sd/sdhci.c
@@ -26,11 +26,13 @@
#include "qemu/units.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "sysemu/dma.h"
#include "qemu/timer.h"
#include "qemu/bitops.h"
#include "hw/sd/sdhci.h"
+#include "migration/vmstate.h"
#include "sdhci-internal.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c
index 9bd6511ec8..91db069212 100644
--- a/hw/sd/ssi-sd.c
+++ b/hw/sd/ssi-sd.c
@@ -13,6 +13,8 @@
#include "qemu/osdep.h"
#include "sysemu/blockdev.h"
#include "hw/ssi/ssi.h"
+#include "migration/vmstate.h"
+#include "hw/qdev-properties.h"
#include "hw/sd/sd.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/semihosting/config.c b/hw/semihosting/config.c
index 2a8e7e1045..9807f10cb0 100644
--- a/hw/semihosting/config.c
+++ b/hw/semihosting/config.c
@@ -24,6 +24,7 @@
#include "qemu/error-report.h"
#include "hw/semihosting/semihost.h"
#include "chardev/char.h"
+#include "sysemu/sysemu.h"
QemuOptsList qemu_semihosting_config_opts = {
.name = "semihosting-config",
diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c
index f22c79c867..ee0840f380 100644
--- a/hw/sh4/r2d.c
+++ b/hw/sh4/r2d.c
@@ -28,14 +28,17 @@
#include "qapi/error.h"
#include "cpu.h"
#include "hw/sysbus.h"
-#include "hw/hw.h"
#include "hw/sh4/sh.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "net/net.h"
#include "sh7750_regs.h"
#include "hw/ide.h"
+#include "hw/irq.h"
#include "hw/loader.h"
#include "hw/usb.h"
#include "hw/block/flash.h"
diff --git a/hw/sh4/sh7750.c b/hw/sh4/sh7750.c
index 2fb6e618d9..d660714443 100644
--- a/hw/sh4/sh7750.c
+++ b/hw/sh4/sh7750.c
@@ -22,8 +22,9 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sh4/sh.h"
#include "sysemu/sysemu.h"
#include "sh7750_regs.h"
diff --git a/hw/sh4/sh7750_regnames.c b/hw/sh4/sh7750_regnames.c
index 34b4f99b86..0630fe3cf4 100644
--- a/hw/sh4/sh7750_regnames.c
+++ b/hw/sh4/sh7750_regnames.c
@@ -1,5 +1,4 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sh4/sh.h"
#include "sh7750_regs.h"
#include "sh7750_regnames.h"
diff --git a/hw/sh4/sh_pci.c b/hw/sh4/sh_pci.c
index b15f264e99..71afd23b67 100644
--- a/hw/sh4/sh_pci.c
+++ b/hw/sh4/sh_pci.c
@@ -25,6 +25,7 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
#include "hw/sh4/sh.h"
+#include "hw/irq.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
#include "qemu/bswap.h"
diff --git a/hw/sh4/shix.c b/hw/sh4/shix.c
index 6a1c7238e9..2fc2915428 100644
--- a/hw/sh4/shix.c
+++ b/hw/sh4/shix.c
@@ -30,7 +30,6 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/sh4/sh.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
index 7bcd67b098..11d476c4a2 100644
--- a/hw/smbios/smbios.c
+++ b/hw/smbios/smbios.c
@@ -28,7 +28,6 @@
#include "hw/firmware/smbios.h"
#include "hw/loader.h"
#include "hw/boards.h"
-#include "exec/cpu-common.h"
#include "smbios_build.h"
/* legacy structures and constants for <= 2.0 machines */
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index 19cedebd16..c5f1b1ee72 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -21,17 +21,20 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
#include "qemu-common.h"
#include "cpu.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "qemu/timer.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
+#include "sysemu/reset.h"
#include "hw/boards.h"
#include "hw/loader.h"
#include "elf.h"
diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
index b2342f2a89..6c5a17a020 100644
--- a/hw/sparc/sun4m.c
+++ b/hw/sparc/sun4m.c
@@ -21,6 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "qapi/error.h"
@@ -31,17 +32,22 @@
#include "qemu/timer.h"
#include "hw/sparc/sun4m_iommu.h"
#include "hw/timer/m48t59.h"
+#include "migration/vmstate.h"
#include "hw/sparc/sparc32_dma.h"
#include "hw/block/fdc.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "net/net.h"
#include "hw/boards.h"
#include "hw/scsi/esp.h"
#include "hw/nvram/sun_nvram.h"
+#include "hw/qdev-properties.h"
#include "hw/nvram/chrp_nvram.h"
#include "hw/nvram/fw_cfg.h"
#include "hw/char/escc.h"
#include "hw/empty_slot.h"
+#include "hw/irq.h"
#include "hw/loader.h"
#include "elf.h"
#include "trace.h"
diff --git a/hw/sparc/sun4m_iommu.c b/hw/sparc/sun4m_iommu.c
index 45a61ecf87..ccf46a5147 100644
--- a/hw/sparc/sun4m_iommu.c
+++ b/hw/sparc/sun4m_iommu.c
@@ -23,8 +23,11 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sparc/sun4m_iommu.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "exec/address-spaces.h"
#include "trace.h"
diff --git a/hw/sparc64/niagara.c b/hw/sparc64/niagara.c
index dc0ce7eda4..167143bffe 100644
--- a/hw/sparc64/niagara.c
+++ b/hw/sparc64/niagara.c
@@ -25,7 +25,6 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "hw/char/serial.h"
#include "hw/misc/unimp.h"
@@ -36,7 +35,7 @@
#include "sysemu/block-backend.h"
#include "qemu/error-report.h"
#include "sysemu/qtest.h"
-
+#include "sysemu/sysemu.h"
typedef struct NiagaraBoardState {
MemoryRegion hv_ram;
diff --git a/hw/sparc64/sparc64.c b/hw/sparc64/sparc64.c
index 689801f37d..100b2fab17 100644
--- a/hw/sparc64/sparc64.c
+++ b/hw/sparc64/sparc64.c
@@ -28,6 +28,7 @@
#include "hw/char/serial.h"
#include "hw/sparc/sparc64.h"
#include "qemu/timer.h"
+#include "sysemu/reset.h"
#include "trace.h"
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index 5d87be811d..1ded2a4c9a 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -21,25 +21,28 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "qemu/error-report.h"
#include "qapi/error.h"
#include "qemu-common.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bridge.h"
#include "hw/pci/pci_bus.h"
#include "hw/pci/pci_host.h"
+#include "hw/qdev-properties.h"
#include "hw/pci-host/sabre.h"
#include "hw/char/serial.h"
#include "hw/char/parallel.h"
#include "hw/timer/m48t59.h"
+#include "migration/vmstate.h"
#include "hw/input/i8042.h"
#include "hw/block/fdc.h"
#include "net/net.h"
#include "qemu/timer.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "hw/nvram/sun_nvram.h"
diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c
index 81f2fb7f70..9f3cff5fb6 100644
--- a/hw/ssi/aspeed_smc.c
+++ b/hw/ssi/aspeed_smc.c
@@ -24,11 +24,13 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "qemu/error-report.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/ssi/aspeed_smc.h"
/* CE Type Setting Register */
diff --git a/hw/ssi/imx_spi.c b/hw/ssi/imx_spi.c
index 5cec9b5d05..2dd9a631e1 100644
--- a/hw/ssi/imx_spi.c
+++ b/hw/ssi/imx_spi.c
@@ -9,8 +9,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/ssi/imx_spi.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/ssi/mss-spi.c b/hw/ssi/mss-spi.c
index 4c9da5d2b2..3050fabb69 100644
--- a/hw/ssi/mss-spi.c
+++ b/hw/ssi/mss-spi.c
@@ -24,7 +24,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/ssi/mss-spi.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/ssi/omap_spi.c b/hw/ssi/omap_spi.c
index f278a55160..7c7e689707 100644
--- a/hw/ssi/omap_spi.c
+++ b/hw/ssi/omap_spi.c
@@ -19,9 +19,11 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/arm/omap.h"
/* Multichannel SPI */
diff --git a/hw/ssi/pl022.c b/hw/ssi/pl022.c
index fec73cae26..cade2e92a8 100644
--- a/hw/ssi/pl022.c
+++ b/hw/ssi/pl022.c
@@ -9,6 +9,8 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
#include "hw/ssi/pl022.h"
#include "hw/ssi/ssi.h"
#include "qemu/log.h"
diff --git a/hw/ssi/ssi.c b/hw/ssi/ssi.c
index cda7c96a64..c6415eb6e3 100644
--- a/hw/ssi/ssi.c
+++ b/hw/ssi/ssi.c
@@ -14,6 +14,7 @@
#include "qemu/osdep.h"
#include "hw/ssi/ssi.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
struct SSIBus {
diff --git a/hw/ssi/stm32f2xx_spi.c b/hw/ssi/stm32f2xx_spi.c
index 4249101386..cd6e8443db 100644
--- a/hw/ssi/stm32f2xx_spi.c
+++ b/hw/ssi/stm32f2xx_spi.c
@@ -26,6 +26,7 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/ssi/stm32f2xx_spi.h"
+#include "migration/vmstate.h"
#ifndef STM_SPI_ERR_DEBUG
#define STM_SPI_ERR_DEBUG 0
diff --git a/hw/ssi/xilinx_spi.c b/hw/ssi/xilinx_spi.c
index 1379cb164b..a1be0de039 100644
--- a/hw/ssi/xilinx_spi.c
+++ b/hw/ssi/xilinx_spi.c
@@ -26,11 +26,13 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "qemu/fifo8.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/ssi/ssi.h"
#ifdef XILINX_SPI_ERR_DEBUG
diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c
index b29e0a4a89..a309c712ca 100644
--- a/hw/ssi/xilinx_spips.c
+++ b/hw/ssi/xilinx_spips.c
@@ -24,8 +24,9 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/module.h"
#include "qemu/bitops.h"
@@ -34,6 +35,7 @@
#include "hw/register.h"
#include "sysemu/dma.h"
#include "migration/blocker.h"
+#include "migration/vmstate.h"
#ifndef XILINX_SPIPS_ERR_DEBUG
#define XILINX_SPIPS_ERR_DEBUG 0
diff --git a/hw/timer/a9gtimer.c b/hw/timer/a9gtimer.c
index 09e2a7b7bf..75f1867174 100644
--- a/hw/timer/a9gtimer.c
+++ b/hw/timer/a9gtimer.c
@@ -21,7 +21,11 @@
*/
#include "qemu/osdep.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/timer/a9gtimer.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/timer.h"
#include "qemu/bitops.h"
diff --git a/hw/timer/allwinner-a10-pit.c b/hw/timer/allwinner-a10-pit.c
index 763e1090ec..ca5a905059 100644
--- a/hw/timer/allwinner-a10-pit.c
+++ b/hw/timer/allwinner-a10-pit.c
@@ -16,10 +16,13 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
#include "hw/timer/allwinner-a10-pit.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
static void a10_pit_update_irq(AwA10PITState *s)
diff --git a/hw/timer/altera_timer.c b/hw/timer/altera_timer.c
index 5c1d9e4074..936b31311d 100644
--- a/hw/timer/altera_timer.c
+++ b/hw/timer/altera_timer.c
@@ -19,12 +19,14 @@
*/
#include "qemu/osdep.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qapi/error.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#define R_STATUS 0
#define R_CONTROL 1
diff --git a/hw/timer/arm_mptimer.c b/hw/timer/arm_mptimer.c
index 93044aacfd..983e61847e 100644
--- a/hw/timer/arm_mptimer.c
+++ b/hw/timer/arm_mptimer.c
@@ -20,8 +20,12 @@
*/
#include "qemu/osdep.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "hw/timer/arm_mptimer.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
diff --git a/hw/timer/arm_timer.c b/hw/timer/arm_timer.c
index f0a753404d..c2e6211188 100644
--- a/hw/timer/arm_timer.c
+++ b/hw/timer/arm_timer.c
@@ -9,9 +9,11 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
-#include "hw/qdev.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/log.h"
diff --git a/hw/timer/armv7m_systick.c b/hw/timer/armv7m_systick.c
index 94640743b5..85d122dbcb 100644
--- a/hw/timer/armv7m_systick.c
+++ b/hw/timer/armv7m_systick.c
@@ -11,6 +11,8 @@
#include "qemu/osdep.h"
#include "hw/timer/armv7m_systick.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "qemu/timer.h"
#include "qemu/log.h"
diff --git a/hw/timer/aspeed_rtc.c b/hw/timer/aspeed_rtc.c
index 19f061c846..5313017353 100644
--- a/hw/timer/aspeed_rtc.c
+++ b/hw/timer/aspeed_rtc.c
@@ -9,6 +9,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "hw/timer/aspeed_rtc.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/timer.h"
diff --git a/hw/timer/aspeed_timer.c b/hw/timer/aspeed_timer.c
index 29cc5e8070..ed81d5c44c 100644
--- a/hw/timer/aspeed_timer.c
+++ b/hw/timer/aspeed_timer.c
@@ -11,8 +11,10 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "hw/timer/aspeed_timer.h"
+#include "migration/vmstate.h"
#include "qemu/bitops.h"
#include "qemu/timer.h"
#include "qemu/log.h"
diff --git a/hw/timer/cadence_ttc.c b/hw/timer/cadence_ttc.c
index 115d935f84..5e3128c1e3 100644
--- a/hw/timer/cadence_ttc.c
+++ b/hw/timer/cadence_ttc.c
@@ -17,7 +17,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "qemu/timer.h"
diff --git a/hw/timer/cmsdk-apb-dualtimer.c b/hw/timer/cmsdk-apb-dualtimer.c
index 383f6e12b1..5e2352dd32 100644
--- a/hw/timer/cmsdk-apb-dualtimer.c
+++ b/hw/timer/cmsdk-apb-dualtimer.c
@@ -23,8 +23,11 @@
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/sysbus.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/registerfields.h"
#include "hw/timer/cmsdk-apb-dualtimer.h"
+#include "migration/vmstate.h"
REG32(TIMER1LOAD, 0x0)
REG32(TIMER1VALUE, 0x4)
diff --git a/hw/timer/cmsdk-apb-timer.c b/hw/timer/cmsdk-apb-timer.c
index 2e7318b81f..c83e26566a 100644
--- a/hw/timer/cmsdk-apb-timer.c
+++ b/hw/timer/cmsdk-apb-timer.c
@@ -34,8 +34,10 @@
#include "qapi/error.h"
#include "trace.h"
#include "hw/sysbus.h"
+#include "hw/irq.h"
#include "hw/registerfields.h"
#include "hw/timer/cmsdk-apb-timer.h"
+#include "migration/vmstate.h"
REG32(CTRL, 0)
FIELD(CTRL, EN, 0, 1)
diff --git a/hw/timer/digic-timer.c b/hw/timer/digic-timer.c
index c818ed1d98..021c4ef714 100644
--- a/hw/timer/digic-timer.c
+++ b/hw/timer/digic-timer.c
@@ -34,6 +34,7 @@
#include "qemu/log.h"
#include "hw/timer/digic-timer.h"
+#include "migration/vmstate.h"
static const VMStateDescription vmstate_digic_timer = {
.name = "digic.timer",
diff --git a/hw/timer/ds1338.c b/hw/timer/ds1338.c
index 30d2d21408..588a9ba9be 100644
--- a/hw/timer/ds1338.c
+++ b/hw/timer/ds1338.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "hw/i2c/i2c.h"
+#include "migration/vmstate.h"
#include "qemu/bcd.h"
#include "qemu/module.h"
diff --git a/hw/timer/etraxfs_timer.c b/hw/timer/etraxfs_timer.c
index 53834e197f..d62025b879 100644
--- a/hw/timer/etraxfs_timer.c
+++ b/hw/timer/etraxfs_timer.c
@@ -24,9 +24,12 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/timer.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
#define D(x)
diff --git a/hw/timer/exynos4210_mct.c b/hw/timer/exynos4210_mct.c
index 874c7b8522..77b9af05f4 100644
--- a/hw/timer/exynos4210_mct.c
+++ b/hw/timer/exynos4210_mct.c
@@ -54,13 +54,17 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
+#include "hw/hw.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/ptimer.h"
#include "hw/arm/exynos4210.h"
+#include "hw/hw.h"
+#include "hw/irq.h"
//#define DEBUG_MCT
diff --git a/hw/timer/exynos4210_pwm.c b/hw/timer/exynos4210_pwm.c
index 9bc0327785..b7fad2ad44 100644
--- a/hw/timer/exynos4210_pwm.c
+++ b/hw/timer/exynos4210_pwm.c
@@ -23,12 +23,14 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/ptimer.h"
#include "hw/arm/exynos4210.h"
+#include "hw/irq.h"
//#define DEBUG_PWM
diff --git a/hw/timer/exynos4210_rtc.c b/hw/timer/exynos4210_rtc.c
index 0ecedf7394..ea68904229 100644
--- a/hw/timer/exynos4210_rtc.c
+++ b/hw/timer/exynos4210_rtc.c
@@ -28,14 +28,15 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/timer.h"
#include "qemu/bcd.h"
#include "hw/ptimer.h"
-#include "hw/hw.h"
-#include "sysemu/sysemu.h"
+#include "hw/irq.h"
#include "hw/arm/exynos4210.h"
diff --git a/hw/timer/grlib_gptimer.c b/hw/timer/grlib_gptimer.c
index e45a49075b..32dbf870d4 100644
--- a/hw/timer/grlib_gptimer.c
+++ b/hw/timer/grlib_gptimer.c
@@ -26,7 +26,9 @@
#include "hw/sparc/grlib.h"
#include "hw/sysbus.h"
#include "qemu/timer.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
index 41024f39fb..1ddae4e7d7 100644
--- a/hw/timer/hpet.c
+++ b/hw/timer/hpet.c
@@ -25,8 +25,8 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "ui/console.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
@@ -34,6 +34,7 @@
#include "hw/timer/hpet.h"
#include "hw/sysbus.h"
#include "hw/timer/mc146818rtc.h"
+#include "migration/vmstate.h"
#include "hw/timer/i8254.h"
//#define HPET_DEBUG
diff --git a/hw/timer/i8254.c b/hw/timer/i8254.c
index 0972c4724e..a4be7330ef 100644
--- a/hw/timer/i8254.c
+++ b/hw/timer/i8254.c
@@ -23,7 +23,7 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "qemu/module.h"
#include "qemu/timer.h"
#include "hw/timer/i8254.h"
diff --git a/hw/timer/i8254_common.c b/hw/timer/i8254_common.c
index 76ca6ec444..57bf10cc94 100644
--- a/hw/timer/i8254_common.c
+++ b/hw/timer/i8254_common.c
@@ -24,12 +24,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
#include "qemu/module.h"
#include "qemu/timer.h"
#include "hw/timer/i8254.h"
#include "hw/timer/i8254_internal.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
/* val must be 0 or 1 */
void pit_set_gate(ISADevice *dev, int channel, int val)
diff --git a/hw/timer/imx_epit.c b/hw/timer/imx_epit.c
index 7a883160f4..f54e059910 100644
--- a/hw/timer/imx_epit.c
+++ b/hw/timer/imx_epit.c
@@ -14,6 +14,8 @@
#include "qemu/osdep.h"
#include "hw/timer/imx_epit.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
#include "hw/misc/imx_ccm.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
diff --git a/hw/timer/imx_gpt.c b/hw/timer/imx_gpt.c
index 3086c03774..49a441f451 100644
--- a/hw/timer/imx_gpt.c
+++ b/hw/timer/imx_gpt.c
@@ -13,7 +13,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/timer/imx_gpt.h"
+#include "migration/vmstate.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/log.h"
diff --git a/hw/timer/lm32_timer.c b/hw/timer/lm32_timer.c
index 6ce876c6ae..ac3edaff4f 100644
--- a/hw/timer/lm32_timer.c
+++ b/hw/timer/lm32_timer.c
@@ -22,11 +22,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qemu/timer.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "qemu/error-report.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
diff --git a/hw/timer/m48t59-isa.c b/hw/timer/m48t59-isa.c
index cbc5e61ddd..5e5432abfd 100644
--- a/hw/timer/m48t59-isa.c
+++ b/hw/timer/m48t59-isa.c
@@ -25,6 +25,7 @@
#include "qemu/osdep.h"
#include "hw/isa/isa.h"
+#include "hw/qdev-properties.h"
#include "hw/timer/m48t59.h"
#include "m48t59-internal.h"
#include "qemu/module.h"
diff --git a/hw/timer/m48t59.c b/hw/timer/m48t59.c
index 030c8872a2..a9fc2f981a 100644
--- a/hw/timer/m48t59.c
+++ b/hw/timer/m48t59.c
@@ -25,9 +25,11 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/timer/m48t59.h"
#include "qemu/timer.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "hw/sysbus.h"
#include "exec/address-spaces.h"
@@ -35,6 +37,7 @@
#include "qemu/module.h"
#include "m48t59-internal.h"
+#include "migration/vmstate.h"
#define TYPE_M48TXX_SYS_BUS "sysbus-m48txx"
#define M48TXX_SYS_BUS_GET_CLASS(obj) \
diff --git a/hw/timer/mc146818rtc.c b/hw/timer/mc146818rtc.c
index ce4550b6f2..26618842c9 100644
--- a/hw/timer/mc146818rtc.c
+++ b/hw/timer/mc146818rtc.c
@@ -27,11 +27,15 @@
#include "qemu/cutils.h"
#include "qemu/module.h"
#include "qemu/bcd.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "qemu/timer.h"
#include "sysemu/sysemu.h"
#include "sysemu/replay.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "hw/timer/mc146818rtc.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qapi/qapi-commands-misc-target.h"
#include "qapi/qapi-events-misc-target.h"
diff --git a/hw/timer/milkymist-sysctl.c b/hw/timer/milkymist-sysctl.c
index a9d250877c..958350767a 100644
--- a/hw/timer/milkymist-sysctl.c
+++ b/hw/timer/milkymist-sysctl.c
@@ -22,13 +22,16 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qemu/timer.h"
+#include "sysemu/runstate.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
enum {
diff --git a/hw/timer/mips_gictimer.c b/hw/timer/mips_gictimer.c
index f5c5806724..bc44cd934e 100644
--- a/hw/timer/mips_gictimer.c
+++ b/hw/timer/mips_gictimer.c
@@ -7,7 +7,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "qemu/timer.h"
#include "hw/timer/mips_gictimer.h"
diff --git a/hw/timer/mss-timer.c b/hw/timer/mss-timer.c
index 6add47af99..45f1cf42f9 100644
--- a/hw/timer/mss-timer.c
+++ b/hw/timer/mss-timer.c
@@ -27,7 +27,10 @@
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/log.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/timer/mss-timer.h"
+#include "migration/vmstate.h"
#ifndef MSS_TIMER_ERR_DEBUG
#define MSS_TIMER_ERR_DEBUG 0
diff --git a/hw/timer/nrf51_timer.c b/hw/timer/nrf51_timer.c
index 29fb81a744..e04046eb15 100644
--- a/hw/timer/nrf51_timer.c
+++ b/hw/timer/nrf51_timer.c
@@ -15,7 +15,9 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/arm/nrf51.h"
+#include "hw/irq.h"
#include "hw/timer/nrf51_timer.h"
+#include "migration/vmstate.h"
#include "trace.h"
#define TIMER_CLK_FREQ 16000000UL
diff --git a/hw/timer/omap_gptimer.c b/hw/timer/omap_gptimer.c
index ae2dc99832..c407190138 100644
--- a/hw/timer/omap_gptimer.c
+++ b/hw/timer/omap_gptimer.c
@@ -17,8 +17,9 @@
* You should have received a copy of the GNU General Public License along
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "qemu/timer.h"
#include "hw/arm/omap.h"
diff --git a/hw/timer/omap_synctimer.c b/hw/timer/omap_synctimer.c
index 0d75a90f3a..72b997939b 100644
--- a/hw/timer/omap_synctimer.c
+++ b/hw/timer/omap_synctimer.c
@@ -18,7 +18,6 @@
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qemu/timer.h"
#include "hw/arm/omap.h"
struct omap_synctimer_s {
diff --git a/hw/timer/pl031.c b/hw/timer/pl031.c
index 1a7e2ee06b..2b3e261006 100644
--- a/hw/timer/pl031.c
+++ b/hw/timer/pl031.c
@@ -14,6 +14,9 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "hw/timer/pl031.h"
+#include "migration/vmstate.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "qemu/timer.h"
#include "sysemu/sysemu.h"
diff --git a/hw/timer/puv3_ost.c b/hw/timer/puv3_ost.c
index 4a8ae37ffd..6fe370049b 100644
--- a/hw/timer/puv3_ost.c
+++ b/hw/timer/puv3_ost.c
@@ -11,6 +11,7 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
diff --git a/hw/timer/pxa2xx_timer.c b/hw/timer/pxa2xx_timer.c
index 8c1ef43cd5..311cd38aac 100644
--- a/hw/timer/pxa2xx_timer.c
+++ b/hw/timer/pxa2xx_timer.c
@@ -8,11 +8,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "hw/arm/pxa.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/timer/sh_timer.c b/hw/timer/sh_timer.c
index 91b18ba312..adcc0c138e 100644
--- a/hw/timer/sh_timer.c
+++ b/hw/timer/sh_timer.c
@@ -10,6 +10,7 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sh4/sh.h"
#include "qemu/timer.h"
#include "qemu/main-loop.h"
diff --git a/hw/timer/slavio_timer.c b/hw/timer/slavio_timer.c
index 005fd599e8..38fd32b62a 100644
--- a/hw/timer/slavio_timer.c
+++ b/hw/timer/slavio_timer.c
@@ -24,8 +24,11 @@
#include "qemu/osdep.h"
#include "qemu/timer.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
diff --git a/hw/timer/stm32f2xx_timer.c b/hw/timer/stm32f2xx_timer.c
index 4c49dc4995..edc557a4b9 100644
--- a/hw/timer/stm32f2xx_timer.c
+++ b/hw/timer/stm32f2xx_timer.c
@@ -23,7 +23,10 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/timer/stm32f2xx_timer.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/timer/sun4v-rtc.c b/hw/timer/sun4v-rtc.c
index ba62adc826..54272a822f 100644
--- a/hw/timer/sun4v-rtc.c
+++ b/hw/timer/sun4v-rtc.c
@@ -10,7 +10,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
#include "qemu/timer.h"
diff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c
index 0ef4fc1fc1..63bd13d2ca 100644
--- a/hw/timer/twl92230.c
+++ b/hw/timer/twl92230.c
@@ -21,9 +21,11 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
-#include "hw/hw.h"
#include "qemu/timer.h"
#include "hw/i2c/i2c.h"
+#include "hw/irq.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
#include "sysemu/sysemu.h"
#include "ui/console.h"
#include "qemu/bcd.h"
diff --git a/hw/timer/xilinx_timer.c b/hw/timer/xilinx_timer.c
index 16bcd0393b..355518232c 100644
--- a/hw/timer/xilinx_timer.c
+++ b/hw/timer/xilinx_timer.c
@@ -24,7 +24,9 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
diff --git a/hw/timer/xlnx-zynqmp-rtc.c b/hw/timer/xlnx-zynqmp-rtc.c
index 36daf0c7e7..5692db98c2 100644
--- a/hw/timer/xlnx-zynqmp-rtc.c
+++ b/hw/timer/xlnx-zynqmp-rtc.c
@@ -31,11 +31,13 @@
#include "qemu/bitops.h"
#include "qemu/log.h"
#include "qemu/module.h"
+#include "hw/irq.h"
#include "hw/ptimer.h"
#include "qemu/cutils.h"
#include "sysemu/sysemu.h"
#include "trace.h"
#include "hw/timer/xlnx-zynqmp-rtc.h"
+#include "migration/vmstate.h"
#ifndef XLNX_ZYNQMP_RTC_ERR_DEBUG
#define XLNX_ZYNQMP_RTC_ERR_DEBUG 0
diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c
index db0e3e7c67..faae733120 100644
--- a/hw/tpm/tpm_crb.c
+++ b/hw/tpm/tpm_crb.c
@@ -19,8 +19,6 @@
#include "qemu/module.h"
#include "qapi/error.h"
#include "exec/address-spaces.h"
-
-#include "hw/qdev-core.h"
#include "hw/qdev-properties.h"
#include "hw/pci/pci_ids.h"
#include "hw/acpi/tpm.h"
diff --git a/hw/tpm/tpm_emulator.c b/hw/tpm/tpm_emulator.c
index fc0b512f4f..22f9113432 100644
--- a/hw/tpm/tpm_emulator.c
+++ b/hw/tpm/tpm_emulator.c
@@ -33,10 +33,10 @@
#include "io/channel-socket.h"
#include "sysemu/tpm_backend.h"
#include "tpm_int.h"
-#include "hw/hw.h"
#include "tpm_util.h"
#include "tpm_ioctl.h"
#include "migration/blocker.h"
+#include "migration/vmstate.h"
#include "qapi/error.h"
#include "qapi/clone-visitor.h"
#include "qapi/qapi-visit-tpm.h"
diff --git a/hw/tpm/tpm_passthrough.c b/hw/tpm/tpm_passthrough.c
index 897e3d5864..f67244b5d4 100644
--- a/hw/tpm/tpm_passthrough.c
+++ b/hw/tpm/tpm_passthrough.c
@@ -29,7 +29,6 @@
#include "qemu/sockets.h"
#include "sysemu/tpm_backend.h"
#include "tpm_int.h"
-#include "hw/hw.h"
#include "qapi/clone-visitor.h"
#include "qapi/qapi-visit-tpm.h"
#include "tpm_util.h"
diff --git a/hw/tpm/tpm_ppi.c b/hw/tpm/tpm_ppi.c
index cd8205f212..ff314592b4 100644
--- a/hw/tpm/tpm_ppi.c
+++ b/hw/tpm/tpm_ppi.c
@@ -16,7 +16,6 @@
#include "qapi/error.h"
#include "cpu.h"
#include "sysemu/memory_mapping.h"
-#include "sysemu/reset.h"
#include "migration/vmstate.h"
#include "tpm_ppi.h"
#include "trace.h"
diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c
index d6b3212890..7aaf9b946d 100644
--- a/hw/tpm/tpm_tis.c
+++ b/hw/tpm/tpm_tis.c
@@ -23,12 +23,15 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/acpi/tpm.h"
#include "hw/pci/pci_ids.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "sysemu/tpm_backend.h"
#include "tpm_int.h"
#include "tpm_util.h"
diff --git a/hw/tpm/tpm_util.c b/hw/tpm/tpm_util.c
index ee41757ea2..62b091f0c0 100644
--- a/hw/tpm/tpm_util.c
+++ b/hw/tpm/tpm_util.c
@@ -26,8 +26,8 @@
#include "tpm_util.h"
#include "tpm_int.h"
#include "exec/memory.h"
+#include "hw/qdev-properties.h"
#include "sysemu/tpm_backend.h"
-#include "hw/qdev.h"
#include "trace.h"
/* tpm backend property */
diff --git a/hw/tpm/trace-events b/hw/tpm/trace-events
index 0b94aa1526..89804bcd64 100644
--- a/hw/tpm/trace-events
+++ b/hw/tpm/trace-events
@@ -1,8 +1,8 @@
# See docs/devel/tracing.txt for syntax documentation.
# tpm_crb.c
-tpm_crb_mmio_read(uint64_t addr, unsigned size, uint32_t val) "CRB read 0x" TARGET_FMT_plx " len:%u val: 0x%" PRIx32
-tpm_crb_mmio_write(uint64_t addr, unsigned size, uint32_t val) "CRB write 0x" TARGET_FMT_plx " len:%u val: 0x%" PRIx32
+tpm_crb_mmio_read(uint64_t addr, unsigned size, uint32_t val) "CRB read 0x%016" PRIx64 " len:%u val: 0x%" PRIx32
+tpm_crb_mmio_write(uint64_t addr, unsigned size, uint32_t val) "CRB write 0x%016" PRIx64 " len:%u val: 0x%" PRIx32
# tpm_passthrough.c
tpm_passthrough_handle_request(void *cmd) "processing command %p"
diff --git a/hw/tricore/tricore_testboard.c b/hw/tricore/tricore_testboard.c
index be397ebf92..aef3289f8c 100644
--- a/hw/tricore/tricore_testboard.c
+++ b/hw/tricore/tricore_testboard.c
@@ -22,9 +22,7 @@
#include "qemu/units.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "net/net.h"
-#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "hw/loader.h"
#include "exec/address-spaces.h"
diff --git a/hw/unicore32/puv3.c b/hw/unicore32/puv3.c
index 132e6086ee..7e933de228 100644
--- a/hw/unicore32/puv3.c
+++ b/hw/unicore32/puv3.c
@@ -20,6 +20,7 @@
#undef DEBUG_PUV3
#include "hw/unicore32/puv3.h"
#include "hw/input/i8042.h"
+#include "hw/irq.h"
#define KERNEL_LOAD_ADDR 0x03000000
#define KERNEL_MAX_SIZE 0x00800000 /* Just a guess */
diff --git a/hw/usb/bus.c b/hw/usb/bus.c
index a28e9e3b33..a6522f5429 100644
--- a/hw/usb/bus.c
+++ b/hw/usb/bus.c
@@ -1,11 +1,11 @@
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
-#include "hw/qdev.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "trace.h"
#include "qemu/cutils.h"
diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
index e20f8ed293..291e41db8a 100644
--- a/hw/usb/ccid-card-emulated.c
+++ b/hw/usb/ccid-card-emulated.c
@@ -33,6 +33,7 @@
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "ccid.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#define DPRINTF(card, lvl, fmt, ...) \
diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index d1dac6e012..267ed9a8a0 100644
--- a/hw/usb/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
@@ -13,6 +13,8 @@
#include "qemu/units.h"
#include <libcacard.h>
#include "chardev/char-fe.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "qemu/sockets.h"
diff --git a/hw/usb/ccid.h b/hw/usb/ccid.h
index 3920733f13..bb2fdbfff3 100644
--- a/hw/usb/ccid.h
+++ b/hw/usb/ccid.h
@@ -10,7 +10,7 @@
#ifndef CCID_H
#define CCID_H
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
typedef struct CCIDCardState CCIDCardState;
typedef struct CCIDCardInfo CCIDCardInfo;
diff --git a/hw/usb/dev-audio.c b/hw/usb/dev-audio.c
index 718ab53cbb..d3ca3bd1ab 100644
--- a/hw/usb/dev-audio.c
+++ b/hw/usb/dev-audio.c
@@ -31,9 +31,10 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "desc.h"
-#include "hw/hw.h"
#include "audio/audio.h"
#define USBAUDIO_VENDOR_NUM 0x46f4 /* CRC16() of "QEMU" */
diff --git a/hw/usb/dev-bluetooth.c b/hw/usb/dev-bluetooth.c
index 670ba32290..f6944fa74f 100644
--- a/hw/usb/dev-bluetooth.c
+++ b/hw/usb/dev-bluetooth.c
@@ -22,6 +22,7 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "desc.h"
#include "sysemu/bt.h"
#include "hw/bt.h"
diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c
index 62793eaf26..88492f26e6 100644
--- a/hw/usb/dev-hid.c
+++ b/hw/usb/dev-hid.c
@@ -24,14 +24,15 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "ui/console.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "desc.h"
#include "qapi/error.h"
#include "qemu/module.h"
#include "qemu/timer.h"
#include "hw/input/hid.h"
+#include "hw/qdev-properties.h"
/* HID interface requests */
#define GET_REPORT 0xa101
diff --git a/hw/usb/dev-hub.c b/hw/usb/dev-hub.c
index 89f55dd25c..07ecfefc12 100644
--- a/hw/usb/dev-hub.c
+++ b/hw/usb/dev-hub.c
@@ -26,7 +26,9 @@
#include "qapi/error.h"
#include "qemu/timer.h"
#include "trace.h"
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "desc.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c
index fd1b3394a5..9846e4b513 100644
--- a/hw/usb/dev-mtp.c
+++ b/hw/usb/dev-mtp.c
@@ -23,7 +23,9 @@
#include "qemu/module.h"
#include "qemu/filemonitor.h"
#include "trace.h"
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "desc.h"
#include "qemu/units.h"
diff --git a/hw/usb/dev-network.c b/hw/usb/dev-network.c
index 889069dd5a..5de6213cc4 100644
--- a/hw/usb/dev-network.c
+++ b/hw/usb/dev-network.c
@@ -25,7 +25,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "desc.h"
#include "net/net.h"
#include "qemu/error-report.h"
diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c
index b82f854103..45cc74128a 100644
--- a/hw/usb/dev-serial.c
+++ b/hw/usb/dev-serial.c
@@ -13,7 +13,9 @@
#include "qemu/cutils.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "desc.h"
#include "chardev/char-serial.h"
#include "chardev/char-fe.h"
diff --git a/hw/usb/dev-smartcard-reader.c b/hw/usb/dev-smartcard-reader.c
index 8d7e516fe7..4568db2568 100644
--- a/hw/usb/dev-smartcard-reader.c
+++ b/hw/usb/dev-smartcard-reader.c
@@ -40,7 +40,9 @@
#include "qemu-common.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "desc.h"
#include "ccid.h"
diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
index 9ffb88ea5b..8545193488 100644
--- a/hw/usb/dev-storage.c
+++ b/hw/usb/dev-storage.c
@@ -15,8 +15,10 @@
#include "qemu/config-file.h"
#include "hw/usb.h"
#include "desc.h"
+#include "hw/qdev-properties.h"
#include "hw/scsi/scsi.h"
#include "ui/console.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "sysemu/sysemu.h"
#include "sysemu/block-backend.h"
diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c
index abd8070d0c..6d6d1073b9 100644
--- a/hw/usb/dev-uas.c
+++ b/hw/usb/dev-uas.c
@@ -14,10 +14,13 @@
#include "qemu/config-file.h"
#include "trace.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "desc.h"
+#include "hw/qdev-properties.h"
#include "hw/scsi/scsi.h"
#include "scsi/constants.h"
diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
index 8c43db9335..8ed57b3b44 100644
--- a/hw/usb/dev-wacom.c
+++ b/hw/usb/dev-wacom.c
@@ -27,9 +27,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "ui/console.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "desc.h"
diff --git a/hw/usb/hcd-ehci-pci.c b/hw/usb/hcd-ehci-pci.c
index 03d3a39067..5b9a8d3dc1 100644
--- a/hw/usb/hcd-ehci-pci.c
+++ b/hw/usb/hcd-ehci-pci.c
@@ -16,7 +16,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/usb/hcd-ehci.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
#include "qemu/range.h"
diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c
index cd1f3c70a4..020211fd10 100644
--- a/hw/usb/hcd-ehci-sysbus.c
+++ b/hw/usb/hcd-ehci-sysbus.c
@@ -16,7 +16,9 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/usb/hcd-ehci.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
static const VMStateDescription vmstate_ehci_sysbus = {
diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
index 62dab0592f..9ca7b87a80 100644
--- a/hw/usb/hcd-ehci.c
+++ b/hw/usb/hcd-ehci.c
@@ -28,10 +28,14 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "hw/irq.h"
#include "hw/usb/ehci-regs.h"
#include "hw/usb/hcd-ehci.h"
+#include "migration/vmstate.h"
#include "trace.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
+#include "sysemu/runstate.h"
#define FRAME_TIMER_FREQ 1000
#define FRAME_TIMER_NS (NANOSECONDS_PER_SECOND / FRAME_TIMER_FREQ)
diff --git a/hw/usb/hcd-ehci.h b/hw/usb/hcd-ehci.h
index fedf82c611..0298238f0b 100644
--- a/hw/usb/hcd-ehci.h
+++ b/hw/usb/hcd-ehci.h
@@ -18,11 +18,9 @@
#ifndef HW_USB_HCD_EHCI_H
#define HW_USB_HCD_EHCI_H
-#include "hw/hw.h"
#include "qemu/timer.h"
#include "hw/usb.h"
#include "sysemu/dma.h"
-#include "sysemu/sysemu.h"
#include "hw/pci/pci.h"
#include "hw/sysbus.h"
diff --git a/hw/usb/hcd-ohci-pci.c b/hw/usb/hcd-ohci-pci.c
index e8f372c6ad..c052f10521 100644
--- a/hw/usb/hcd-ohci-pci.c
+++ b/hw/usb/hcd-ohci-pci.c
@@ -19,13 +19,14 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qapi/error.h"
#include "qemu/timer.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "hw/pci/pci.h"
#include "hw/sysbus.h"
#include "hw/qdev-dma.h"
+#include "hw/qdev-properties.h"
#include "trace.h"
#include "hcd-ohci.h"
diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c
index 4f6fdbc0a7..145ee21fd6 100644
--- a/hw/usb/hcd-ohci.c
+++ b/hw/usb/hcd-ohci.c
@@ -26,13 +26,15 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "qapi/error.h"
#include "qemu/module.h"
#include "qemu/timer.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "hw/sysbus.h"
#include "hw/qdev-dma.h"
+#include "hw/qdev-properties.h"
#include "trace.h"
#include "hcd-ohci.h"
diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c
index 98bd5cf49d..23507ad3b5 100644
--- a/hw/usb/hcd-uhci.c
+++ b/hw/usb/hcd-uhci.c
@@ -27,10 +27,11 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/usb.h"
#include "hw/usb/uhci-regs.h"
+#include "migration/vmstate.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/timer.h"
#include "qemu/iov.h"
diff --git a/hw/usb/hcd-xhci-nec.c b/hw/usb/hcd-xhci-nec.c
index e099382b24..05fb3f54b3 100644
--- a/hw/usb/hcd-xhci-nec.c
+++ b/hw/usb/hcd-xhci-nec.c
@@ -20,10 +20,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/usb.h"
#include "qemu/module.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hcd-xhci.h"
diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
index 5894a18663..f698224c8a 100644
--- a/hw/usb/hcd-xhci.c
+++ b/hw/usb/hcd-xhci.c
@@ -20,12 +20,13 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qemu/timer.h"
#include "qemu/module.h"
#include "qemu/queue.h"
#include "hw/usb.h"
+#include "migration/vmstate.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
#include "trace.h"
diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c
index 83ebc51620..472cc26fc4 100644
--- a/hw/usb/host-libusb.c
+++ b/hw/usb/host-libusb.c
@@ -40,12 +40,16 @@
#include <libusb.h>
#include "qapi/error.h"
+#include "migration/vmstate.h"
#include "monitor/monitor.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "trace.h"
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
/* ------------------------------------------------------------------------ */
diff --git a/hw/usb/libhw.c b/hw/usb/libhw.c
index adbee2f642..9c33a1640f 100644
--- a/hw/usb/libhw.c
+++ b/hw/usb/libhw.c
@@ -20,7 +20,6 @@
* THE SOFTWARE.
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/usb.h"
#include "sysemu/dma.h"
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index 998fc6e4b0..fc9fe0c00f 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -30,6 +30,7 @@
#include "qemu/units.h"
#include "qapi/error.h"
#include "qemu/timer.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "qapi/qmp/qerror.h"
#include "qemu/error-report.h"
@@ -40,7 +41,10 @@
#include <usbredirparser.h>
#include <usbredirfilter.h>
+#include "hw/qdev-properties.h"
#include "hw/usb.h"
+#include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
/* ERROR is defined below. Remove any previous definition. */
#undef ERROR
diff --git a/hw/usb/tusb6010.c b/hw/usb/tusb6010.c
index a61b0f6354..17580876c6 100644
--- a/hw/usb/tusb6010.c
+++ b/hw/usb/tusb6010.c
@@ -24,6 +24,7 @@
#include "qemu/timer.h"
#include "hw/usb.h"
#include "hw/arm/omap.h"
+#include "hw/hw.h"
#include "hw/irq.h"
#include "hw/sysbus.h"
diff --git a/hw/usb/xen-usb.c b/hw/usb/xen-usb.c
index dfbb418e77..1fc2f32ce9 100644
--- a/hw/usb/xen-usb.c
+++ b/hw/usb/xen-usb.c
@@ -24,6 +24,7 @@
#include <sys/user.h>
#include "qemu/config-file.h"
+#include "qemu/main-loop.h"
#include "qemu/option.h"
#include "hw/sysbus.h"
#include "hw/usb.h"
diff --git a/hw/vfio/amd-xgbe.c b/hw/vfio/amd-xgbe.c
index eedd48cfc1..96bd608b8d 100644
--- a/hw/vfio/amd-xgbe.c
+++ b/hw/vfio/amd-xgbe.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "hw/vfio/vfio-amd-xgbe.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
static void amd_xgbe_realize(DeviceState *dev, Error **errp)
diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c
index a995b86cd4..da6a20669d 100644
--- a/hw/vfio/ap.c
+++ b/hw/vfio/ap.c
@@ -20,12 +20,12 @@
#include "hw/s390x/ap-device.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
-#include "qemu/queue.h"
#include "qemu/option.h"
#include "qemu/config-file.h"
#include "cpu.h"
#include "kvm_s390x.h"
-#include "sysemu/sysemu.h"
+#include "migration/vmstate.h"
+#include "hw/qdev-properties.h"
#include "hw/s390x/ap-bridge.h"
#include "exec/address-spaces.h"
diff --git a/hw/vfio/calxeda-xgmac.c b/hw/vfio/calxeda-xgmac.c
index 59233e8d7e..87c382e736 100644
--- a/hw/vfio/calxeda-xgmac.c
+++ b/hw/vfio/calxeda-xgmac.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "hw/vfio/vfio-calxeda-xgmac.h"
+#include "migration/vmstate.h"
#include "qemu/module.h"
static void calxeda_xgmac_realize(DeviceState *dev, Error **errp)
diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c
index 16f200e6fe..6863f6c69f 100644
--- a/hw/vfio/ccw.c
+++ b/hw/vfio/ccw.c
@@ -25,9 +25,11 @@
#include "hw/vfio/vfio-common.h"
#include "hw/s390x/s390-ccw.h"
#include "hw/s390x/vfio-ccw.h"
+#include "hw/qdev-properties.h"
#include "hw/s390x/ccw-device.h"
#include "exec/address-spaces.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
struct VFIOCCWDevice {
diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index a859298fda..3e03c495d8 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -31,9 +31,11 @@
#include "exec/memory.h"
#include "hw/hw.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/range.h"
#include "sysemu/balloon.h"
#include "sysemu/kvm.h"
+#include "sysemu/reset.h"
#include "trace.h"
#include "qapi/error.h"
diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
index b35a640030..f71aace156 100644
--- a/hw/vfio/pci-quirks.c
+++ b/hw/vfio/pci-quirks.c
@@ -19,7 +19,9 @@
#include "qapi/error.h"
#include "qapi/visitor.h"
#include <sys/ioctl.h>
+#include "hw/hw.h"
#include "hw/nvram/fw_cfg.h"
+#include "hw/qdev-properties.h"
#include "pci.h"
#include "trace.h"
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index d7a4e1875c..dc3479c374 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -22,15 +22,20 @@
#include <linux/vfio.h>
#include <sys/ioctl.h>
+#include "hw/hw.h"
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
#include "hw/pci/pci_bridge.h"
+#include "hw/qdev-properties.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/option.h"
#include "qemu/range.h"
#include "qemu/units.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "pci.h"
#include "trace.h"
diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
index 622e609fb4..d7598c6152 100644
--- a/hw/vfio/platform.c
+++ b/hw/vfio/platform.c
@@ -20,16 +20,19 @@
#include <linux/vfio.h>
#include "hw/vfio/vfio-platform.h"
+#include "migration/vmstate.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/range.h"
-#include "sysemu/sysemu.h"
#include "exec/memory.h"
#include "exec/address-spaces.h"
#include "qemu/queue.h"
#include "hw/sysbus.h"
#include "trace.h"
+#include "hw/irq.h"
#include "hw/platform-bus.h"
+#include "hw/qdev-properties.h"
#include "sysemu/kvm.h"
/*
diff --git a/hw/virtio/vhost-backend.c b/hw/virtio/vhost-backend.c
index 96b8d3c95d..48905383f8 100644
--- a/hw/virtio/vhost-backend.c
+++ b/hw/virtio/vhost-backend.c
@@ -12,6 +12,7 @@
#include "hw/virtio/vhost.h"
#include "hw/virtio/vhost-backend.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "standard-headers/linux/vhost_types.h"
#ifdef CONFIG_VHOST_KERNEL
diff --git a/hw/virtio/vhost-scsi-pci.c b/hw/virtio/vhost-scsi-pci.c
index 95a1f32439..e8dfbfc60f 100644
--- a/hw/virtio/vhost-scsi-pci.c
+++ b/hw/virtio/vhost-scsi-pci.c
@@ -17,6 +17,7 @@
#include "qemu/osdep.h"
#include "standard-headers/linux/virtio_pci.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/vhost-scsi.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/virtio/vhost-user-blk-pci.c b/hw/virtio/vhost-user-blk-pci.c
index ed81614d43..1dc834a3ff 100644
--- a/hw/virtio/vhost-user-blk-pci.c
+++ b/hw/virtio/vhost-user-blk-pci.c
@@ -22,6 +22,7 @@
#include "hw/virtio/virtio.h"
#include "hw/virtio/vhost-user-blk.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/virtio/vhost-user-scsi-pci.c b/hw/virtio/vhost-user-scsi-pci.c
index daeea77ce1..ff13af7030 100644
--- a/hw/virtio/vhost-user-scsi-pci.c
+++ b/hw/virtio/vhost-user-scsi-pci.c
@@ -22,6 +22,7 @@
#include "hw/virtio/virtio.h"
#include "hw/virtio/virtio-scsi.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
index 4ca5b2551e..02a9b25199 100644
--- a/hw/virtio/vhost-user.c
+++ b/hw/virtio/vhost-user.c
@@ -18,6 +18,7 @@
#include "chardev/char-fe.h"
#include "sysemu/kvm.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/sockets.h"
#include "sysemu/cryptodev.h"
#include "migration/migration.h"
diff --git a/hw/virtio/vhost-vsock-pci.c b/hw/virtio/vhost-vsock-pci.c
index c06c9a83b9..4ca097ffff 100644
--- a/hw/virtio/vhost-vsock-pci.c
+++ b/hw/virtio/vhost-vsock-pci.c
@@ -14,6 +14,7 @@
#include "qemu/osdep.h"
#include "virtio-pci.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/vhost-vsock.h"
#include "qemu/module.h"
diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c
index 0371493197..f5744363a8 100644
--- a/hw/virtio/vhost-vsock.c
+++ b/hw/virtio/vhost-vsock.c
@@ -18,6 +18,7 @@
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-access.h"
#include "qemu/error-report.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/vhost-vsock.h"
#include "qemu/iov.h"
#include "qemu/module.h"
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index bc899fc60e..34accdf615 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -16,7 +16,6 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/virtio/vhost.h"
-#include "hw/hw.h"
#include "qemu/atomic.h"
#include "qemu/range.h"
#include "qemu/error-report.h"
@@ -26,6 +25,7 @@
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-access.h"
#include "migration/blocker.h"
+#include "migration/qemu-file-types.h"
#include "sysemu/dma.h"
#include "trace.h"
diff --git a/hw/virtio/virtio-9p-pci.c b/hw/virtio/virtio-9p-pci.c
index 29c3712feb..22a183cca7 100644
--- a/hw/virtio/virtio-9p-pci.c
+++ b/hw/virtio/virtio-9p-pci.c
@@ -17,6 +17,7 @@
#include "virtio-pci.h"
#include "hw/9pfs/virtio-9p.h"
+#include "hw/qdev-properties.h"
#include "qemu/module.h"
/*
diff --git a/hw/virtio/virtio-balloon-pci.c b/hw/virtio/virtio-balloon-pci.c
index 7393435a98..69ca057911 100644
--- a/hw/virtio/virtio-balloon-pci.c
+++ b/hw/virtio/virtio-balloon-pci.c
@@ -15,6 +15,7 @@
#include "qemu/osdep.h"
#include "virtio-pci.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-balloon.h"
#include "qapi/error.h"
#include "qemu/module.h"
diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
index 25de154307..40b04f5180 100644
--- a/hw/virtio/virtio-balloon.c
+++ b/hw/virtio/virtio-balloon.c
@@ -19,6 +19,7 @@
#include "qemu/timer.h"
#include "hw/virtio/virtio.h"
#include "hw/mem/pc-dimm.h"
+#include "hw/qdev-properties.h"
#include "sysemu/balloon.h"
#include "hw/virtio/virtio-balloon.h"
#include "exec/address-spaces.h"
diff --git a/hw/virtio/virtio-blk-pci.c b/hw/virtio/virtio-blk-pci.c
index d790b07a99..d9b69a5af3 100644
--- a/hw/virtio/virtio-blk-pci.c
+++ b/hw/virtio/virtio-blk-pci.c
@@ -17,6 +17,7 @@
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-blk.h"
#include "virtio-pci.h"
#include "qapi/error.h"
diff --git a/hw/virtio/virtio-bus.c b/hw/virtio/virtio-bus.c
index 1d29a631f3..b2c804292e 100644
--- a/hw/virtio/virtio-bus.c
+++ b/hw/virtio/virtio-bus.c
@@ -23,11 +23,9 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "qapi/error.h"
-#include "hw/qdev.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio.h"
#include "exec/address-spaces.h"
diff --git a/hw/virtio/virtio-crypto-pci.c b/hw/virtio/virtio-crypto-pci.c
index 91d4446080..d853dc460c 100644
--- a/hw/virtio/virtio-crypto-pci.c
+++ b/hw/virtio/virtio-crypto-pci.c
@@ -14,6 +14,7 @@
#include "qemu/osdep.h"
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-pci.h"
diff --git a/hw/virtio/virtio-crypto.c b/hw/virtio/virtio-crypto.c
index 45187d3344..6d42f95a89 100644
--- a/hw/virtio/virtio-crypto.c
+++ b/hw/virtio/virtio-crypto.c
@@ -13,13 +13,14 @@
#include "qemu/osdep.h"
#include "qemu/iov.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
-#include "hw/qdev.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "hw/virtio/virtio.h"
#include "hw/virtio/virtio-crypto.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-access.h"
#include "standard-headers/linux/virtio_ids.h"
#include "sysemu/cryptodev-vhost.h"
diff --git a/hw/virtio/virtio-input-pci.c b/hw/virtio/virtio-input-pci.c
index ad7774e93e..80b1172c90 100644
--- a/hw/virtio/virtio-input-pci.c
+++ b/hw/virtio/virtio-input-pci.c
@@ -9,6 +9,7 @@
#include "qemu/osdep.h"
#include "virtio-pci.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-input.h"
#include "qemu/module.h"
diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c
index 97b7f35496..eccc795f28 100644
--- a/hw/virtio/virtio-mmio.c
+++ b/hw/virtio/virtio-mmio.c
@@ -21,8 +21,11 @@
#include "qemu/osdep.h"
#include "standard-headers/linux/virtio_mmio.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
#include "qemu/host-utils.h"
#include "qemu/module.h"
#include "sysemu/kvm.h"
diff --git a/hw/virtio/virtio-net-pci.c b/hw/virtio/virtio-net-pci.c
index 5df36f26bf..f670aed0a7 100644
--- a/hw/virtio/virtio-net-pci.c
+++ b/hw/virtio/virtio-net-pci.c
@@ -17,6 +17,7 @@
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-net.h"
#include "virtio-pci.h"
#include "qapi/error.h"
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index f6d2223e78..8babd92e59 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -19,8 +19,10 @@
#include "standard-headers/linux/virtio_pci.h"
#include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
#include "hw/pci/pci.h"
#include "hw/pci/pci_bus.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
index 17c196d107..c0c9395e55 100644
--- a/hw/virtio/virtio-pmem.c
+++ b/hw/virtio/virtio-pmem.c
@@ -15,10 +15,13 @@
#include "qapi/error.h"
#include "qemu-common.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "hw/virtio/virtio-pmem.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-access.h"
#include "standard-headers/linux/virtio_ids.h"
#include "standard-headers/linux/virtio_pmem.h"
+#include "sysemu/hostmem.h"
#include "block/aio.h"
#include "block/thread-pool.h"
diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c
index db6d1d9454..d1650e1dee 100644
--- a/hw/virtio/virtio-rng.c
+++ b/hw/virtio/virtio-rng.c
@@ -13,10 +13,12 @@
#include "qapi/error.h"
#include "qemu/iov.h"
#include "qemu/module.h"
-#include "hw/qdev.h"
+#include "qemu/timer.h"
#include "hw/virtio/virtio.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-rng.h"
#include "sysemu/rng.h"
+#include "sysemu/runstate.h"
#include "qom/object_interfaces.h"
#include "trace.h"
diff --git a/hw/virtio/virtio-scsi-pci.c b/hw/virtio/virtio-scsi-pci.c
index f68f689aee..3c55dc19a1 100644
--- a/hw/virtio/virtio-scsi-pci.c
+++ b/hw/virtio/virtio-scsi-pci.c
@@ -15,6 +15,7 @@
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-scsi.h"
#include "qemu/module.h"
#include "virtio-pci.h"
diff --git a/hw/virtio/virtio-serial-pci.c b/hw/virtio/virtio-serial-pci.c
index ac74b44dae..953abbd13a 100644
--- a/hw/virtio/virtio-serial-pci.c
+++ b/hw/virtio/virtio-serial-pci.c
@@ -17,6 +17,7 @@
#include "qemu/osdep.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-serial.h"
#include "qemu/module.h"
#include "virtio-pci.h"
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index a94ea18a9c..527df03bfd 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -17,12 +17,16 @@
#include "trace.h"
#include "exec/address-spaces.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "hw/virtio/virtio.h"
+#include "migration/qemu-file-types.h"
#include "qemu/atomic.h"
#include "hw/virtio/virtio-bus.h"
+#include "hw/qdev-properties.h"
#include "hw/virtio/virtio-access.h"
#include "sysemu/dma.h"
+#include "sysemu/runstate.h"
/*
* The alignment to use between consumer and producer parts of vring.
diff --git a/hw/watchdog/cmsdk-apb-watchdog.c b/hw/watchdog/cmsdk-apb-watchdog.c
index 54ac393020..6bf43f943f 100644
--- a/hw/watchdog/cmsdk-apb-watchdog.c
+++ b/hw/watchdog/cmsdk-apb-watchdog.c
@@ -28,8 +28,11 @@
#include "qemu/module.h"
#include "sysemu/watchdog.h"
#include "hw/sysbus.h"
+#include "hw/irq.h"
+#include "hw/qdev-properties.h"
#include "hw/registerfields.h"
#include "hw/watchdog/cmsdk-apb-watchdog.h"
+#include "migration/vmstate.h"
REG32(WDOGLOAD, 0x0)
REG32(WDOGVALUE, 0x4)
diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c
index dce7c1db14..0e98ffb73f 100644
--- a/hw/watchdog/watchdog.c
+++ b/hw/watchdog/watchdog.c
@@ -26,7 +26,7 @@
#include "qapi/error.h"
#include "qapi/qapi-commands-run-state.h"
#include "qapi/qapi-events-run-state.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "sysemu/watchdog.h"
#include "hw/nmi.h"
#include "qemu/help_option.h"
diff --git a/hw/watchdog/wdt_aspeed.c b/hw/watchdog/wdt_aspeed.c
index 57fe24ae6b..9b93213417 100644
--- a/hw/watchdog/wdt_aspeed.c
+++ b/hw/watchdog/wdt_aspeed.c
@@ -15,8 +15,10 @@
#include "qemu/timer.h"
#include "sysemu/watchdog.h"
#include "hw/misc/aspeed_scu.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "hw/watchdog/wdt_aspeed.h"
+#include "migration/vmstate.h"
#define WDT_STATUS (0x00 / 4)
#define WDT_RELOAD_VALUE (0x04 / 4)
diff --git a/hw/watchdog/wdt_diag288.c b/hw/watchdog/wdt_diag288.c
index 29e5b5dcf6..5b6eb2b09f 100644
--- a/hw/watchdog/wdt_diag288.c
+++ b/hw/watchdog/wdt_diag288.c
@@ -12,10 +12,12 @@
*/
#include "qemu/osdep.h"
+#include "sysemu/reset.h"
#include "sysemu/watchdog.h"
#include "hw/sysbus.h"
#include "qemu/timer.h"
#include "hw/watchdog/wdt_diag288.h"
+#include "migration/vmstate.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/watchdog/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c
index 6780f01add..370cf92e85 100644
--- a/hw/watchdog/wdt_i6300esb.c
+++ b/hw/watchdog/wdt_i6300esb.c
@@ -24,8 +24,8 @@
#include "qemu/module.h"
#include "qemu/timer.h"
#include "sysemu/watchdog.h"
-#include "hw/hw.h"
#include "hw/pci/pci.h"
+#include "migration/vmstate.h"
/*#define I6300ESB_DEBUG 1*/
diff --git a/hw/watchdog/wdt_ib700.c b/hw/watchdog/wdt_ib700.c
index e0e5beb99d..985944a84a 100644
--- a/hw/watchdog/wdt_ib700.c
+++ b/hw/watchdog/wdt_ib700.c
@@ -23,8 +23,8 @@
#include "qemu/module.h"
#include "qemu/timer.h"
#include "sysemu/watchdog.h"
-#include "hw/hw.h"
#include "hw/isa/isa.h"
+#include "migration/vmstate.h"
/*#define IB700_DEBUG 1*/
diff --git a/hw/xen/xen-bus-helper.c b/hw/xen/xen-bus-helper.c
index 5f7a4b2612..b459bb9396 100644
--- a/hw/xen/xen-bus-helper.c
+++ b/hw/xen/xen-bus-helper.c
@@ -6,7 +6,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "hw/xen/xen.h"
#include "hw/xen/xen-bus.h"
diff --git a/hw/xen/xen-bus.c b/hw/xen/xen-bus.c
index 7503eea9e9..e40500242d 100644
--- a/hw/xen/xen-bus.c
+++ b/hw/xen/xen-bus.c
@@ -9,7 +9,7 @@
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/uuid.h"
-#include "hw/hw.h"
+#include "hw/qdev-properties.h"
#include "hw/sysbus.h"
#include "hw/xen/xen.h"
#include "hw/xen/xen-backend.h"
diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c
index 32503cfc1c..5284b0dec1 100644
--- a/hw/xen/xen-common.c
+++ b/hw/xen/xen-common.c
@@ -14,6 +14,7 @@
#include "hw/xen/xen-legacy-backend.h"
#include "chardev/char.h"
#include "sysemu/accel.h"
+#include "sysemu/runstate.h"
#include "migration/misc.h"
#include "migration/global_state.h"
diff --git a/hw/xen/xen-legacy-backend.c b/hw/xen/xen-legacy-backend.c
index 3715c94fa6..4412d7aa76 100644
--- a/hw/xen/xen-legacy-backend.c
+++ b/hw/xen/xen-legacy-backend.c
@@ -25,10 +25,11 @@
#include "qemu/osdep.h"
#include <sys/signal.h>
-#include "hw/hw.h"
#include "hw/sysbus.h"
#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qapi/error.h"
#include "hw/xen/xen-legacy-backend.h"
#include "hw/xen/xen_pvdev.h"
diff --git a/hw/xen/xen_devconfig.c b/hw/xen/xen_devconfig.c
index 315dbc9c51..46ee4a7f02 100644
--- a/hw/xen/xen_devconfig.c
+++ b/hw/xen/xen_devconfig.c
@@ -2,6 +2,7 @@
#include "hw/xen/xen-legacy-backend.h"
#include "qemu/option.h"
#include "sysemu/blockdev.h"
+#include "sysemu/sysemu.h"
/* ------------------------------------------------------------- */
diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
index 5539d56c3a..8fbaf2eae9 100644
--- a/hw/xen/xen_pt.c
+++ b/hw/xen/xen_pt.c
@@ -57,6 +57,7 @@
#include <sys/ioctl.h>
#include "hw/pci/pci.h"
+#include "hw/qdev-properties.h"
#include "hw/xen/xen.h"
#include "hw/i386/pc.h"
#include "hw/xen/xen-legacy-backend.h"
diff --git a/hw/xen/xen_pt_load_rom.c b/hw/xen/xen_pt_load_rom.c
index e6a86ca818..307a5c93e2 100644
--- a/hw/xen/xen_pt_load_rom.c
+++ b/hw/xen/xen_pt_load_rom.c
@@ -3,14 +3,12 @@
*/
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "qemu/error-report.h"
#include "ui/console.h"
#include "hw/loader.h"
#include "monitor/monitor.h"
#include "qemu/range.h"
-#include "sysemu/sysemu.h"
#include "hw/pci/pci.h"
#include "xen_pt.h"
diff --git a/hw/xen/xen_pvdev.c b/hw/xen/xen_pvdev.c
index 6ef09cbf9d..43a336aabf 100644
--- a/hw/xen/xen_pvdev.c
+++ b/hw/xen/xen_pvdev.c
@@ -19,6 +19,7 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "hw/qdev-core.h"
#include "hw/xen/xen-legacy-backend.h"
#include "hw/xen/xen_pvdev.h"
diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
index dcaf2a01a3..3a8af1a1e0 100644
--- a/hw/xenpv/xen_machine_pv.c
+++ b/hw/xenpv/xen_machine_pv.c
@@ -24,11 +24,11 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
-#include "hw/hw.h"
#include "hw/boards.h"
#include "hw/xen/xen-legacy-backend.h"
#include "hw/xen/xen-bus.h"
#include "sysemu/block-backend.h"
+#include "sysemu/sysemu.h"
static void xen_init_pv(MachineState *machine)
{
diff --git a/hw/xtensa/mx_pic.c b/hw/xtensa/mx_pic.c
index 7075db9d4b..d889f953d1 100644
--- a/hw/xtensa/mx_pic.c
+++ b/hw/xtensa/mx_pic.c
@@ -26,7 +26,7 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/xtensa/mx_pic.h"
#include "qemu/log.h"
diff --git a/hw/xtensa/pic_cpu.c b/hw/xtensa/pic_cpu.c
index df3acbb541..edd53c9241 100644
--- a/hw/xtensa/pic_cpu.c
+++ b/hw/xtensa/pic_cpu.c
@@ -27,7 +27,7 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
+#include "hw/irq.h"
#include "qemu/log.h"
#include "qemu/timer.h"
diff --git a/hw/xtensa/sim.c b/hw/xtensa/sim.c
index 09165b6f4d..981dbb7bbe 100644
--- a/hw/xtensa/sim.c
+++ b/hw/xtensa/sim.c
@@ -28,6 +28,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "cpu.h"
+#include "sysemu/reset.h"
#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "hw/loader.h"
diff --git a/hw/xtensa/xtensa_memory.c b/hw/xtensa/xtensa_memory.c
index 394d0cf227..1c5f62b014 100644
--- a/hw/xtensa/xtensa_memory.c
+++ b/hw/xtensa/xtensa_memory.c
@@ -28,8 +28,6 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "sysemu/sysemu.h"
-#include "hw/boards.h"
#include "exec/memory.h"
#include "qemu/error-report.h"
#include "xtensa_memory.h"
diff --git a/hw/xtensa/xtensa_memory.h b/hw/xtensa/xtensa_memory.h
index d50a3cccc0..af7e8025e3 100644
--- a/hw/xtensa/xtensa_memory.h
+++ b/hw/xtensa/xtensa_memory.h
@@ -29,7 +29,6 @@
#define XTENSA_MEMORY_H
#include "cpu.h"
-#include "exec/memory.h"
void xtensa_create_memory_regions(const XtensaMemory *memory,
const char *name,
diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
index f7f3e11e93..8220c7a379 100644
--- a/hw/xtensa/xtfpga.c
+++ b/hw/xtensa/xtfpga.c
@@ -32,6 +32,7 @@
#include "sysemu/sysemu.h"
#include "hw/boards.h"
#include "hw/loader.h"
+#include "hw/qdev-properties.h"
#include "elf.h"
#include "exec/memory.h"
#include "exec/address-spaces.h"
@@ -41,11 +42,14 @@
#include "hw/block/flash.h"
#include "chardev/char.h"
#include "sysemu/device_tree.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "qemu/error-report.h"
#include "qemu/option.h"
#include "bootparam.h"
#include "xtensa_memory.h"
#include "hw/xtensa/mx_pic.h"
+#include "migration/vmstate.h"
typedef struct XtfpgaFlashDesc {
hwaddr base;
diff --git a/include/authz/listfile.h b/include/authz/listfile.h
index 33b728d873..24ae2e606c 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 50a07c1c33..89e40318cf 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"
@@ -88,8 +87,14 @@ typedef enum {
* fallback. */
BDRV_REQ_NO_FALLBACK = 0x100,
+ /*
+ * BDRV_REQ_PREFETCH may be used only together with BDRV_REQ_COPY_ON_READ
+ * on read request and means that caller doesn't really need data to be
+ * written to qiov parameter which may be NULL.
+ */
+ BDRV_REQ_PREFETCH = 0x200,
/* Mask of valid flags */
- BDRV_REQ_MASK = 0x1ff,
+ BDRV_REQ_MASK = 0x3ff,
} BdrvRequestFlags;
typedef struct BlockSizes {
diff --git a/include/block/block_int.h b/include/block/block_int.h
index 3aa1e832a8..6207a105ff 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/nbd.h b/include/block/nbd.h
index bb9f5bc021..7b36d672f0 100644
--- a/include/block/nbd.h
+++ b/include/block/nbd.h
@@ -304,7 +304,8 @@ struct NBDExportInfo {
};
typedef struct NBDExportInfo NBDExportInfo;
-int nbd_receive_negotiate(QIOChannel *ioc, QCryptoTLSCreds *tlscreds,
+int nbd_receive_negotiate(AioContext *aio_context, QIOChannel *ioc,
+ QCryptoTLSCreds *tlscreds,
const char *hostname, QIOChannel **outioc,
NBDExportInfo *info, Error **errp);
void nbd_free_export_list(NBDExportInfo *info, int count);
diff --git a/include/block/raw-aio.h b/include/block/raw-aio.h
index 0cb7cc74a2..4629f24d08 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 80d8aab5d0..c646f267a4 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 aa1b864ccd..67601dc9a4 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 1709b59c9f..ac379ea70e 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 c0b57f7685..087b202b62 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 15da511f49..ba47e9197c 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 9bc713a70b..57a9a4ffd9 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 5373188be3..a62cfb28d5 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 16034ee651..135aeaab0d 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 a298b89ce1..97feb296d2 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 d1a9dd1ec8..ef4fb92371 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 bb0961ddb9..d99eb25d2e 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 b7b2e60ff6..a327a80cfe 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 970837992e..fbcae88f4b 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 4f3a37d927..805235d321 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 8d3af5a3be..eae2c27f99 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 c55aa6d174..be83a833ec 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 c91e2b9df2..1f2dafbd7d 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 43ff119179..0ba90effd2 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 8bbd32cf45..bf2a3ed0ba 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 d19dd59353..a1e0da8213 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 38586ecbdf..c49d913f3e 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 a72f734eb1..663b79f4f3 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 e99fe2ea2e..7d2d215630 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 cef605ad6b..976fd6be93 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 a2cb8454de..97187f72be 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 c48cc4c2bc..5714dea1a2 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 aa137271c0..f0f23b0e9b 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 3280ab1fb0..241efb52ae 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 e68a81efd7..ac5ca9826a 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 8003d45d1e..706aef2e7e 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 d21e418242..2fda996648 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 5bf6db1fa2..89e168fbff 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 fae322997e..e93a7499a8 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 35804ea80a..d7483c3b42 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 172afbf146..632cce9f68 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 e12cb886d1..f7bafd5e38 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 8cece84326..c15ff4c623 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 1acaf7de80..2136a2d5e4 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 a71d1a53a5..739d109fe1 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 b5e11d4d43..d9ee2fc29a 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 e1cf33e94c..47cec956c4 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 c41fba9a27..3c1b53db4e 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 42aca83611..d5196c53e6 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 e7c6fb5a3b..6fce278326 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 d6dd62fb9f..0a23c0f57e 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 dad3cf2912..14187165c6 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 abd5cf71a9..8be3d8a4f9 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 84c4029777..8e112671e3 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 634086b657..194e2feafe 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 dd27c42ab0..9ffce1c5a3 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 bb87157c5a..872a39aa4f 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 01c1e50cd2..a616501a55 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 b7470644d8..555ad831bb 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 8da965addb..aa146a2cd8 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 f6f33e0980..095d76b956 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 ef72bbc186..5b33018835 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 7948bd2c40..ff99dc0a05 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 c29443c5af..1cf53a0c8d 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 148a119a1d..e3394ff158 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 5c4da91f80..f9263bf98a 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 0401a3a292..ca0003dbfd 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 2cab50bb6c..03e2c166be 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 123a9f8989..cb9a221aa6 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 9f8e0c720c..b0de0a3c74 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 b1b79964b5..fc5301f293 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 f9020acdef..a2753f0bbb 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 75c5bd638b..4117211565 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 fb55c44444..0d74207efb 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 0f96836bab..15e2151b50 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 1209eb483a..b04bdd947f 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 046bcf33be..72e803f6e2 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 12f3d266e2..66b931e526 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 07002f9662..d46c87c510 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 859b64c51d..4bb9e29114 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 8efd03132b..52ec197da0 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 f99d478252..b7b32e2b16 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 e20211baef..6f6aa2406a 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 2127c7ce45..6a9d7bf466 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 f6ff146364..246e6f3335 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 dbfe5c55c1..3cd8f1bf55 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 1d314a70d9..a5895401d1 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 6c91ec91bb..b163e27ab9 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 902a12b178..8428287bf9 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 e33e032ced..1c07969bc9 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 011faf22e9..70871da0a7 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 7a40e3ed26..fe527f6f51 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 0f93602936..b6e070c00e 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 f742c2a726..ee189e4a77 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 e62ac91c19..018ada4f6f 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 c3c2b6e786..f23f45dfb1 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 0293a96abb..04476acb8f 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 01436b9f50..289edc0f3d 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 aab1af926d..a941c55f27 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 2f6774d540..0af4c3d5d7 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 c15b444748..a539a98c4b 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 c899943e03..5334984020 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 7dad469142..5768075ac5 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 2838ae5fde..24a4364b39 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 970058b6ed..070a694eb5 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 d10895ba5f..7ef83dee4c 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 c9dfcb4b84..3e6e223273 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 72c834e039..3f670578b0 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 03d9f0c059..493c907537 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 1ee071a703..ae0c8188ce 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 69e6a30fc5..84e06fdecf 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 2a291ca42d..44d87be903 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 0d11578059..d4f3d3a91c 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 905a43deb4..5013207d15 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 500acb4c14..3d0c67f339 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 ffdd35c4d7..0357f5f65c 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 5acf4a494e..eef17a680d 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 a66ba4112f..df5b11dcef 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 b4f5b2b104..09941a9be4 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 5a31e5a188..3a3230dd84 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 186bb36238..31c41231b1 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 2af1c4a37e..faea040a93 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 5ed77facd0..b3bcf2e632 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 9afa4938fd..99b5aefbec 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 060324536a..72d2a97355 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 74c04dc9bb..c0f15314be 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 aaf1b9f70d..1b840e61a2 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 8cf3361fc4..7064875835 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 729a9439c8..65e71d98fe 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 bd8204f64e..d5683b7399 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 1b4080764f..ebad7bc504 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 7642a8ea1d..ec16897bfb 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 d0926454a9..bfbd2ec42a 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 39a7ba1ce6..7d82259051 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 f9645a7290..35e0a7eead 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 c2c543a591..83f03cc577 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 f965a58f89..8132e00366 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 5de5ecf5de..7891e9caac 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 04609f214e..875be28cdd 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 7197144265..bfd40f01d8 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 1eb7b5cd68..f2a8d6a4b4 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 736335174a..9399c77d2d 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 1a8c5b5e64..b0c68ab5f7 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 2b866902aa..9c77055229 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 136df7774c..de70b7a19a 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 1eae5ab056..bb34a614e2 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 5cb8b080a6..0000000000
--- 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 d56f2ae3eb..1f21c2bef1 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 0671d88a44..3b52b50571 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 fb5f88129e..fb9452cf51 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 e2865be1d1..ae8286c884 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 d175b24cb2..9c868dd7f9 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 ce8907f6aa..b0edba2884 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 bd51c4af3c..8b7de134f8 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 71d4c9fad7..3a603a6ead 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 892f0eee21..be021ce256 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 c8dc1c57fd..65668825a3 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 641b70da67..03d870363c 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 d01a1a85c4..6e5fbe5d3b 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 765e9082a3..8df9cd2954 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 5a0203be5f..f7ed2d9a03 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 d033387fba..f46bcafb16 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 6cf71cec38..bdc32a3c09 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 f9db243484..c54413b78c 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 d6403a0a7e..4f7c6c0877 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 62df48ec06..3f1ae7e778 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 9c4a6000c3..4251623f7f 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 426566a5c6..d77a92361b 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 b865aafc33..a84b8e274a 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 cfab572c0c..9be9754bcd 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 b7c2404334..65f3425057 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 5606ff0a97..78b6178fcd 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 21ab79e343..4ced36fb5a 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 591279ba1f..aa07dac4fe 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 6a0c3c3cdb..1107cb89ee 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 1cd73e4cd4..e24b007abf 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 a0a0ae7584..6a39b55a7b 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 4c668fbbdc..27e80881da 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 c0cc3e2169..871c95b512 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 1f1155a676..15ba42912b 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 f21686d26b..e93caccc3c 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 5b12eb918e..45cb42571f 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 c37a438f82..3db462aecd 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 43efc91f56..f74854c026 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 c62f17bf2d..bfbb57e570 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 e6a83237a5..a96bc08b1b 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 6e9134edf6..97e32322ed 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 89ef922c67..c19ed3f013 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 c21f41c8a9..c24d968a19 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 30d3c28d3b..4ec70c813a 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 54357164f0..16bf1a73c1 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 df5bfdb188..23252153ff 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 8dbf11c6f0..108bfadeeb 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 1b332ea910..99ab2f2cc4 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 619498c8f4..085450c6f8 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 bdf58f3119..6818a23a2d 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 7fec9dc929..38c9399cd4 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 38d12160f6..203f9e1718 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 19b6ee6d75..33f1999320 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 922dce7cac..ff699335e3 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 12657a9f39..ed3e916b68 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 b189788cb2..48e8d04ff6 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 daef0c0e23..8c5691ce20 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 706d96b753..19d83a0937 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 07d4176ac1..5e6c56c4d6 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 9c7b5f78dc..5ac1c6dc55 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 0504b43659..82e56339dd 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 c9ea9e737c..500424c8d3 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 12cf1d8b6f..4d53c077f2 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 a40bd3549f..65abe3c8cc 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 fd22dd3034..945eb35d5b 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 5cdbabd094..b9d8e787af 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/qemu-file-types.h b/include/migration/qemu-file-types.h
index c0a1988155..2867e3da84 100644
--- a/include/migration/qemu-file-types.h
+++ b/include/migration/qemu-file-types.h
@@ -161,6 +161,10 @@ static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv)
qemu_get_be64s(f, (uint64_t *)pv);
}
+size_t qemu_get_counted_string(QEMUFile *f, char buf[256]);
+
+void qemu_put_counted_string(QEMUFile *f, const char *name);
+
int qemu_file_rate_limit(QEMUFile *f);
#endif
diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index c2bfa7a7f0..1fbfd099dd 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 454e8ed155..8b7820a3ad 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 084799e4d9..eaa947d73a 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 1da4d01b95..d4fc51b57d 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 9bc6fa3cc6..e8fb6259db 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 acf0451fc4..e175ba9677 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 51b63dd4b5..3f95141a01 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 ddd0d55d31..6b34484e15 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 24b364462d..489c354291 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 9e7cd1e4a0..73c67d3175 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 0379bd8fdb..73bf4a984d 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 71b8b215c6..f62b363e0d 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 1b38291823..01da8d63f1 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 50af5dd7ab..d0a1a9597e 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 fcdaae58c4..375770a80f 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 5ee0046b62..ddb91bbaff 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 7bb82a7f56..128d00c77f 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 89ce57e404..8eb60b870b 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 10cbafe970..62c6fe4cf1 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 c8f6145257..aea0c44985 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 6debf53fc5..0d3421e7e8 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 92bbb79131..a9afb7e5b5 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 5da3c4e3c5..80c5bc3e02 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 f005995c50..9b27e65cc7 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 92fa0e458c..4dbdadd39e 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 d275b5a843..d211e808e9 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 5f6240d5cb..6181486401 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 acd90aebb6..c8ea412f62 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 31df465fdc..72b2d1b3ae 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 58452457ce..4b20f1a639 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 01a263eba2..7a4ce89765 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/qtest.h b/include/sysemu/qtest.h
index cd114b8d80..5ed09c80b1 100644
--- a/include/sysemu/qtest.h
+++ b/include/sysemu/qtest.h
@@ -24,6 +24,6 @@ static inline bool qtest_enabled(void)
bool qtest_driver(void);
-void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp);
+void qtest_server_init(const char *qtest_chrdev, const char *qtest_log, Error **errp);
#endif
diff --git a/include/sysemu/replay.h b/include/sysemu/replay.h
index 3a7c58e423..2f2ccdbc98 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 2a02f47771..9b22c156f8 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 0000000000..0b41555609
--- /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 984c439ac9..d2c38f611a 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 a03e2f1878..c8e7c2f6cf 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 d714127799..dad19e9873 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 8c8ccb999f..c86219a1c1 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 eed60e4fae..4a47ffdd4c 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 */
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index bd43c4817d..3365e192eb 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -8,6 +8,7 @@
#include "qemu.h"
#include "disas/disas.h"
#include "qemu/path.h"
+#include "qemu/queue.h"
#include "qemu/guest-random.h"
#ifdef _ARCH_PPC64
diff --git a/linux-user/main.c b/linux-user/main.c
index 8ffc525195..47917bbb20 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -28,6 +28,7 @@
#include "qapi/error.h"
#include "qemu.h"
#include "qemu/path.h"
+#include "qemu/queue.h"
#include "qemu/config-file.h"
#include "qemu/cutils.h"
#include "qemu/error-report.h"
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index aac0334627..f6f5fe5fbb 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -16,7 +16,6 @@
#include "syscall_defs.h"
#include "target_syscall.h"
#include "exec/gdbstub.h"
-#include "qemu/queue.h"
/* This is the size of the host kernel's sigset_t, needed where we make
* direct system calls that take a sigset_t pointer and a size.
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 8367cb138d..8b41a03901 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu/cutils.h"
#include "qemu/path.h"
+#include "qemu/queue.h"
#include <elf.h>
#include <endian.h>
#include <grp.h>
diff --git a/memory.c b/memory.c
index 5d8c9a9234..8141486832 100644
--- a/memory.c
+++ b/memory.c
@@ -21,6 +21,7 @@
#include "qapi/visitor.h"
#include "qemu/bitops.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/qemu-print.h"
#include "qom/object.h"
#include "trace-root.h"
@@ -28,10 +29,9 @@
#include "exec/memory-internal.h"
#include "exec/ram_addr.h"
#include "sysemu/kvm.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "sysemu/tcg.h"
#include "sysemu/accel.h"
-#include "hw/qdev-properties.h"
#include "hw/boards.h"
#include "migration/vmstate.h"
@@ -3245,6 +3245,7 @@ void memory_region_init_rom_device(MemoryRegion *mr,
static const TypeInfo memory_region_info = {
.parent = TYPE_OBJECT,
.name = TYPE_MEMORY_REGION,
+ .class_size = sizeof(MemoryRegionClass),
.instance_size = sizeof(MemoryRegion),
.instance_init = memory_region_initfn,
.instance_finalize = memory_region_finalize,
diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c
index 4a896a09eb..a09a893c02 100644
--- a/migration/block-dirty-bitmap.c
+++ b/migration/block-dirty-bitmap.c
@@ -62,6 +62,7 @@
#include "block/block.h"
#include "block/block_int.h"
#include "sysemu/block-backend.h"
+#include "sysemu/runstate.h"
#include "qemu/main-loop.h"
#include "qemu/error-report.h"
#include "migration/misc.h"
@@ -70,7 +71,6 @@
#include "migration/vmstate.h"
#include "migration/register.h"
#include "qemu/hbitmap.h"
-#include "sysemu/sysemu.h"
#include "qemu/cutils.h"
#include "qapi/error.h"
#include "trace.h"
diff --git a/migration/block.c b/migration/block.c
index 91f98ef44a..e81fd7e14f 100644
--- a/migration/block.c
+++ b/migration/block.c
@@ -16,6 +16,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/cutils.h"
#include "qemu/queue.h"
#include "block.h"
diff --git a/migration/colo.c b/migration/colo.c
index 9f84b1fa3c..2c88aa57a2 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -23,6 +23,8 @@
#include "io/channel-buffer.h"
#include "trace.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
+#include "qemu/rcu.h"
#include "migration/failover.h"
#ifdef CONFIG_REPLICATION
#include "replication.h"
@@ -33,6 +35,7 @@
#include "qapi/qapi-events-migration.h"
#include "qapi/qmp/qerror.h"
#include "sysemu/cpus.h"
+#include "sysemu/runstate.h"
#include "net/filter.h"
static bool vmstate_loading;
diff --git a/migration/global_state.c b/migration/global_state.c
index 2c8c447239..25311479a4 100644
--- a/migration/global_state.c
+++ b/migration/global_state.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "qemu/cutils.h"
#include "qemu/error-report.h"
+#include "sysemu/runstate.h"
#include "qapi/error.h"
#include "migration.h"
#include "migration/global_state.h"
diff --git a/migration/migration.c b/migration/migration.c
index 8a607fe1e2..8b9f2fe30a 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -16,10 +16,13 @@
#include "qemu/osdep.h"
#include "qemu/cutils.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "migration/blocker.h"
#include "exec.h"
#include "fd.h"
#include "socket.h"
+#include "sysemu/runstate.h"
+#include "sysemu/sysemu.h"
#include "rdma.h"
#include "ram.h"
#include "migration/global_state.h"
@@ -46,6 +49,7 @@
#include "io/channel-buffer.h"
#include "migration/colo.h"
#include "hw/boards.h"
+#include "hw/qdev-properties.h"
#include "monitor/monitor.h"
#include "net/announce.h"
@@ -823,6 +827,25 @@ bool migration_is_setup_or_active(int state)
}
}
+static void populate_time_info(MigrationInfo *info, MigrationState *s)
+{
+ info->has_status = true;
+ info->has_setup_time = true;
+ info->setup_time = s->setup_time;
+ if (s->state == MIGRATION_STATUS_COMPLETED) {
+ info->has_total_time = true;
+ info->total_time = s->total_time;
+ info->has_downtime = true;
+ info->downtime = s->downtime;
+ } else {
+ info->has_total_time = true;
+ info->total_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) -
+ s->start_time;
+ info->has_expected_downtime = true;
+ info->expected_downtime = s->expected_downtime;
+ }
+}
+
static void populate_ram_info(MigrationInfo *info, MigrationState *s)
{
info->has_ram = true;
@@ -908,16 +931,8 @@ static void fill_source_migration_info(MigrationInfo *info)
case MIGRATION_STATUS_DEVICE:
case MIGRATION_STATUS_POSTCOPY_PAUSED:
case MIGRATION_STATUS_POSTCOPY_RECOVER:
- /* TODO add some postcopy stats */
- info->has_status = true;
- info->has_total_time = true;
- info->total_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME)
- - s->start_time;
- info->has_expected_downtime = true;
- info->expected_downtime = s->expected_downtime;
- info->has_setup_time = true;
- info->setup_time = s->setup_time;
-
+ /* TODO add some postcopy stats */
+ populate_time_info(info, s);
populate_ram_info(info, s);
populate_disk_info(info);
break;
@@ -926,14 +941,7 @@ static void fill_source_migration_info(MigrationInfo *info)
/* TODO: display COLO specific information (checkpoint info etc.) */
break;
case MIGRATION_STATUS_COMPLETED:
- info->has_status = true;
- info->has_total_time = true;
- info->total_time = s->total_time;
- info->has_downtime = true;
- info->downtime = s->downtime;
- info->has_setup_time = true;
- info->setup_time = s->setup_time;
-
+ populate_time_info(info, s);
populate_ram_info(info, s);
break;
case MIGRATION_STATUS_FAILED:
@@ -1695,7 +1703,6 @@ void migrate_init(MigrationState *s)
* parameters/capabilities that the user set, and
* locks.
*/
- s->bytes_xfer = 0;
s->cleanup_bh = 0;
s->to_dst_file = NULL;
s->state = MIGRATION_STATUS_NONE;
@@ -1908,6 +1915,11 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
}
migrate_init(s);
+ /*
+ * set ram_counters memory to zero for a
+ * new migration
+ */
+ memset(&ram_counters, 0, sizeof(ram_counters));
return true;
}
@@ -2963,6 +2975,7 @@ static MigThrError migration_detect_error(MigrationState *s)
{
int ret;
int state = s->state;
+ Error *local_error = NULL;
if (state == MIGRATION_STATUS_CANCELLING ||
state == MIGRATION_STATUS_CANCELLED) {
@@ -2971,13 +2984,18 @@ static MigThrError migration_detect_error(MigrationState *s)
}
/* Try to detect any file errors */
- ret = qemu_file_get_error(s->to_dst_file);
-
+ ret = qemu_file_get_error_obj(s->to_dst_file, &local_error);
if (!ret) {
/* Everything is fine */
+ assert(!local_error);
return MIG_THR_ERR_NONE;
}
+ if (local_error) {
+ migrate_set_error(s, local_error);
+ error_free(local_error);
+ }
+
if (state == MIGRATION_STATUS_POSTCOPY_ACTIVE && ret == -EIO) {
/*
* For postcopy, we allow the network to be down for a
@@ -3025,6 +3043,17 @@ static void migration_calculate_complete(MigrationState *s)
}
}
+static void update_iteration_initial_status(MigrationState *s)
+{
+ /*
+ * Update these three fields at the same time to avoid mismatch info lead
+ * wrong speed calculation.
+ */
+ s->iteration_start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
+ s->iteration_initial_bytes = migration_total_bytes(s);
+ s->iteration_initial_pages = ram_get_total_transferred_pages();
+}
+
static void migration_update_counters(MigrationState *s,
int64_t current_time)
{
@@ -3060,9 +3089,7 @@ static void migration_update_counters(MigrationState *s,
qemu_file_reset_rate_limit(s->to_dst_file);
- s->iteration_start_time = current_time;
- s->iteration_initial_bytes = current_bytes;
- s->iteration_initial_pages = ram_get_total_transferred_pages();
+ update_iteration_initial_status(s);
trace_migrate_transferred(transferred, time_spent,
bandwidth, s->threshold_size);
@@ -3093,8 +3120,7 @@ static MigIterateState migration_iteration_run(MigrationState *s)
if (pending_size && pending_size >= s->threshold_size) {
/* Still a significant amount to transfer */
- if (migrate_postcopy() && !in_postcopy &&
- pend_pre <= s->threshold_size &&
+ if (!in_postcopy && pend_pre <= s->threshold_size &&
atomic_read(&s->start_postcopy)) {
if (postcopy_start(s)) {
error_report("%s: postcopy failed to start", __func__);
@@ -3186,7 +3212,7 @@ static void *migration_thread(void *opaque)
rcu_register_thread();
object_ref(OBJECT(s));
- s->iteration_start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
+ update_iteration_initial_status(s);
qemu_savevm_state_header(s->to_dst_file);
@@ -3251,8 +3277,7 @@ static void *migration_thread(void *opaque)
* the local variables. This is important to avoid
* breaking transferred_bytes and bandwidth calculation
*/
- s->iteration_start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
- s->iteration_initial_bytes = 0;
+ update_iteration_initial_status(s);
}
current_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
diff --git a/migration/migration.h b/migration/migration.h
index 1fdd7b21fd..3e1ea2b5dc 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -14,11 +14,11 @@
#ifndef QEMU_MIGRATION_H
#define QEMU_MIGRATION_H
+#include "exec/cpu-common.h"
+#include "hw/qdev-core.h"
#include "qapi/qapi-types-migration.h"
#include "qemu/thread.h"
-#include "exec/cpu-common.h"
#include "qemu/coroutine_int.h"
-#include "hw/qdev.h"
#include "io/channel.h"
#include "net/announce.h"
@@ -132,7 +132,6 @@ struct MigrationState
DeviceState parent_obj;
/*< public >*/
- size_t bytes_xfer;
QemuThread thread;
QEMUBH *cleanup_bh;
QEMUFile *to_dst_file;
diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
index 9faacacc9e..1f63e65ed7 100644
--- a/migration/postcopy-ram.c
+++ b/migration/postcopy-ram.c
@@ -25,6 +25,7 @@
#include "ram.h"
#include "qapi/error.h"
#include "qemu/notify.h"
+#include "qemu/rcu.h"
#include "sysemu/sysemu.h"
#include "sysemu/balloon.h"
#include "qemu/error-report.h"
@@ -1377,22 +1378,16 @@ void postcopy_fault_thread_notify(MigrationIncomingState *mis)
* asking to discard individual ranges.
*
* @ms: The current migration state.
- * @offset: the bitmap offset of the named RAMBlock in the migration
- * bitmap.
+ * @offset: the bitmap offset of the named RAMBlock in the migration bitmap.
* @name: RAMBlock that discards will operate on.
- *
- * returns: a new PDS.
*/
-PostcopyDiscardState *postcopy_discard_send_init(MigrationState *ms,
- const char *name)
+static PostcopyDiscardState pds = {0};
+void postcopy_discard_send_init(MigrationState *ms, const char *name)
{
- PostcopyDiscardState *res = g_malloc0(sizeof(PostcopyDiscardState));
-
- if (res) {
- res->ramblock_name = name;
- }
-
- return res;
+ pds.ramblock_name = name;
+ pds.cur_entry = 0;
+ pds.nsentwords = 0;
+ pds.nsentcmds = 0;
}
/**
@@ -1401,30 +1396,29 @@ PostcopyDiscardState *postcopy_discard_send_init(MigrationState *ms,
* be sent later.
*
* @ms: Current migration state.
- * @pds: Structure initialised by postcopy_discard_send_init().
* @start,@length: a range of pages in the migration bitmap in the
* RAM block passed to postcopy_discard_send_init() (length=1 is one page)
*/
-void postcopy_discard_send_range(MigrationState *ms, PostcopyDiscardState *pds,
- unsigned long start, unsigned long length)
+void postcopy_discard_send_range(MigrationState *ms, unsigned long start,
+ unsigned long length)
{
size_t tp_size = qemu_target_page_size();
/* Convert to byte offsets within the RAM block */
- pds->start_list[pds->cur_entry] = start * tp_size;
- pds->length_list[pds->cur_entry] = length * tp_size;
- trace_postcopy_discard_send_range(pds->ramblock_name, start, length);
- pds->cur_entry++;
- pds->nsentwords++;
+ pds.start_list[pds.cur_entry] = start * tp_size;
+ pds.length_list[pds.cur_entry] = length * tp_size;
+ trace_postcopy_discard_send_range(pds.ramblock_name, start, length);
+ pds.cur_entry++;
+ pds.nsentwords++;
- if (pds->cur_entry == MAX_DISCARDS_PER_COMMAND) {
+ if (pds.cur_entry == MAX_DISCARDS_PER_COMMAND) {
/* Full set, ship it! */
qemu_savevm_send_postcopy_ram_discard(ms->to_dst_file,
- pds->ramblock_name,
- pds->cur_entry,
- pds->start_list,
- pds->length_list);
- pds->nsentcmds++;
- pds->cur_entry = 0;
+ pds.ramblock_name,
+ pds.cur_entry,
+ pds.start_list,
+ pds.length_list);
+ pds.nsentcmds++;
+ pds.cur_entry = 0;
}
}
@@ -1433,24 +1427,21 @@ void postcopy_discard_send_range(MigrationState *ms, PostcopyDiscardState *pds,
* bitmap code. Sends any outstanding discard messages, frees the PDS
*
* @ms: Current migration state.
- * @pds: Structure initialised by postcopy_discard_send_init().
*/
-void postcopy_discard_send_finish(MigrationState *ms, PostcopyDiscardState *pds)
+void postcopy_discard_send_finish(MigrationState *ms)
{
/* Anything unsent? */
- if (pds->cur_entry) {
+ if (pds.cur_entry) {
qemu_savevm_send_postcopy_ram_discard(ms->to_dst_file,
- pds->ramblock_name,
- pds->cur_entry,
- pds->start_list,
- pds->length_list);
- pds->nsentcmds++;
+ pds.ramblock_name,
+ pds.cur_entry,
+ pds.start_list,
+ pds.length_list);
+ pds.nsentcmds++;
}
- trace_postcopy_discard_send_finish(pds->ramblock_name, pds->nsentwords,
- pds->nsentcmds);
-
- g_free(pds);
+ trace_postcopy_discard_send_finish(pds.ramblock_name, pds.nsentwords,
+ pds.nsentcmds);
}
/*
diff --git a/migration/postcopy-ram.h b/migration/postcopy-ram.h
index 9d55536fd1..9c8bd2bae0 100644
--- a/migration/postcopy-ram.h
+++ b/migration/postcopy-ram.h
@@ -43,10 +43,8 @@ int postcopy_ram_prepare_discard(MigrationIncomingState *mis);
/*
* Called at the start of each RAMBlock by the bitmap code.
- * Returns a new PDS
*/
-PostcopyDiscardState *postcopy_discard_send_init(MigrationState *ms,
- const char *name);
+void postcopy_discard_send_init(MigrationState *ms, const char *name);
/*
* Called by the bitmap code for each chunk to discard.
@@ -55,15 +53,14 @@ PostcopyDiscardState *postcopy_discard_send_init(MigrationState *ms,
* @start,@length: a range of pages in the migration bitmap in the
* RAM block passed to postcopy_discard_send_init() (length=1 is one page)
*/
-void postcopy_discard_send_range(MigrationState *ms, PostcopyDiscardState *pds,
- unsigned long start, unsigned long length);
+void postcopy_discard_send_range(MigrationState *ms, unsigned long start,
+ unsigned long length);
/*
* Called at the end of each RAMBlock by the bitmap code.
- * Sends any outstanding discard messages, frees the PDS.
+ * Sends any outstanding discard messages.
*/
-void postcopy_discard_send_finish(MigrationState *ms,
- PostcopyDiscardState *pds);
+void postcopy_discard_send_finish(MigrationState *ms);
/*
* Place a page (from) at (host) efficiently
diff --git a/migration/qemu-file-channel.c b/migration/qemu-file-channel.c
index 8e639eb496..d2ce32f4b9 100644
--- a/migration/qemu-file-channel.c
+++ b/migration/qemu-file-channel.c
@@ -24,7 +24,6 @@
#include "qemu/osdep.h"
#include "qemu-file-channel.h"
-#include "exec/cpu-common.h"
#include "qemu-file.h"
#include "io/channel-socket.h"
#include "qemu/iov.h"
@@ -33,7 +32,8 @@
static ssize_t channel_writev_buffer(void *opaque,
struct iovec *iov,
int iovcnt,
- int64_t pos)
+ int64_t pos,
+ Error **errp)
{
QIOChannel *ioc = QIO_CHANNEL(opaque);
ssize_t done = 0;
@@ -47,7 +47,7 @@ static ssize_t channel_writev_buffer(void *opaque,
while (nlocal_iov > 0) {
ssize_t len;
- len = qio_channel_writev(ioc, local_iov, nlocal_iov, NULL);
+ len = qio_channel_writev(ioc, local_iov, nlocal_iov, errp);
if (len == QIO_CHANNEL_ERR_BLOCK) {
if (qemu_in_coroutine()) {
qio_channel_yield(ioc, G_IO_OUT);
@@ -57,7 +57,6 @@ static ssize_t channel_writev_buffer(void *opaque,
continue;
}
if (len < 0) {
- /* XXX handle Error objects */
done = -EIO;
goto cleanup;
}
@@ -75,13 +74,14 @@ static ssize_t channel_writev_buffer(void *opaque,
static ssize_t channel_get_buffer(void *opaque,
uint8_t *buf,
int64_t pos,
- size_t size)
+ size_t size,
+ Error **errp)
{
QIOChannel *ioc = QIO_CHANNEL(opaque);
ssize_t ret;
do {
- ret = qio_channel_read(ioc, (char *)buf, size, NULL);
+ ret = qio_channel_read(ioc, (char *)buf, size, errp);
if (ret < 0) {
if (ret == QIO_CHANNEL_ERR_BLOCK) {
if (qemu_in_coroutine()) {
@@ -90,7 +90,6 @@ static ssize_t channel_get_buffer(void *opaque,
qio_channel_wait(ioc, G_IO_IN);
}
} else {
- /* XXX handle Error * object */
return -EIO;
}
}
@@ -100,18 +99,20 @@ static ssize_t channel_get_buffer(void *opaque,
}
-static int channel_close(void *opaque)
+static int channel_close(void *opaque, Error **errp)
{
+ int ret;
QIOChannel *ioc = QIO_CHANNEL(opaque);
- qio_channel_close(ioc, NULL);
+ ret = qio_channel_close(ioc, errp);
object_unref(OBJECT(ioc));
- return 0;
+ return ret;
}
static int channel_shutdown(void *opaque,
bool rd,
- bool wr)
+ bool wr,
+ Error **errp)
{
QIOChannel *ioc = QIO_CHANNEL(opaque);
@@ -125,8 +126,7 @@ static int channel_shutdown(void *opaque,
} else {
mode = QIO_CHANNEL_SHUTDOWN_WRITE;
}
- if (qio_channel_shutdown(ioc, mode, NULL) < 0) {
- /* XXX handler Error * object */
+ if (qio_channel_shutdown(ioc, mode, errp) < 0) {
return -EIO;
}
}
@@ -135,11 +135,12 @@ static int channel_shutdown(void *opaque,
static int channel_set_blocking(void *opaque,
- bool enabled)
+ bool enabled,
+ Error **errp)
{
QIOChannel *ioc = QIO_CHANNEL(opaque);
- if (qio_channel_set_blocking(ioc, enabled, NULL) < 0) {
+ if (qio_channel_set_blocking(ioc, enabled, errp) < 0) {
return -1;
}
return 0;
diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index 0431585502..e33c46764f 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu-file.c
@@ -28,6 +28,7 @@
#include "migration.h"
#include "qemu-file.h"
#include "trace.h"
+#include "qapi/error.h"
#define IO_BUF_SIZE 32768
#define MAX_IOV_SIZE MIN(IOV_MAX, 64)
@@ -51,6 +52,7 @@ struct QEMUFile {
unsigned int iovcnt;
int last_error;
+ Error *last_error_obj;
};
/*
@@ -62,7 +64,7 @@ int qemu_file_shutdown(QEMUFile *f)
if (!f->ops->shut_down) {
return -ENOSYS;
}
- return f->ops->shut_down(f->opaque, true, true);
+ return f->ops->shut_down(f->opaque, true, true, NULL);
}
/*
@@ -107,24 +109,55 @@ void qemu_file_set_hooks(QEMUFile *f, const QEMUFileHooks *hooks)
}
/*
- * Get last error for stream f
+ * Get last error for stream f with optional Error*
*
* Return negative error value if there has been an error on previous
* operations, return 0 if no error happened.
+ * Optional, it returns Error* in errp, but it may be NULL even if return value
+ * is not 0.
*
*/
-int qemu_file_get_error(QEMUFile *f)
+int qemu_file_get_error_obj(QEMUFile *f, Error **errp)
{
+ if (errp) {
+ *errp = f->last_error_obj ? error_copy(f->last_error_obj) : NULL;
+ }
return f->last_error;
}
-void qemu_file_set_error(QEMUFile *f, int ret)
+/*
+ * Set the last error for stream f with optional Error*
+ */
+void qemu_file_set_error_obj(QEMUFile *f, int ret, Error *err)
{
- if (f->last_error == 0) {
+ if (f->last_error == 0 && ret) {
f->last_error = ret;
+ error_propagate(&f->last_error_obj, err);
+ } else if (err) {
+ error_report_err(err);
}
}
+/*
+ * Get last error for stream f
+ *
+ * Return negative error value if there has been an error on previous
+ * operations, return 0 if no error happened.
+ *
+ */
+int qemu_file_get_error(QEMUFile *f)
+{
+ return qemu_file_get_error_obj(f, NULL);
+}
+
+/*
+ * Set the last error for stream f
+ */
+void qemu_file_set_error(QEMUFile *f, int ret)
+{
+ qemu_file_set_error_obj(f, ret, NULL);
+}
+
bool qemu_file_is_writable(QEMUFile *f)
{
return f->ops->writev_buffer;
@@ -176,6 +209,7 @@ void qemu_fflush(QEMUFile *f)
{
ssize_t ret = 0;
ssize_t expect = 0;
+ Error *local_error = NULL;
if (!qemu_file_is_writable(f)) {
return;
@@ -183,7 +217,8 @@ void qemu_fflush(QEMUFile *f)
if (f->iovcnt > 0) {
expect = iov_size(f->iov, f->iovcnt);
- ret = f->ops->writev_buffer(f->opaque, f->iov, f->iovcnt, f->pos);
+ ret = f->ops->writev_buffer(f->opaque, f->iov, f->iovcnt, f->pos,
+ &local_error);
qemu_iovec_release_ram(f);
}
@@ -195,7 +230,7 @@ void qemu_fflush(QEMUFile *f)
* data set we requested, so sanity check that.
*/
if (ret != expect) {
- qemu_file_set_error(f, ret < 0 ? ret : -EIO);
+ qemu_file_set_error_obj(f, ret < 0 ? ret : -EIO, local_error);
}
f->buf_index = 0;
f->iovcnt = 0;
@@ -283,6 +318,7 @@ static ssize_t qemu_fill_buffer(QEMUFile *f)
{
int len;
int pending;
+ Error *local_error = NULL;
assert(!qemu_file_is_writable(f));
@@ -294,14 +330,16 @@ static ssize_t qemu_fill_buffer(QEMUFile *f)
f->buf_size = pending;
len = f->ops->get_buffer(f->opaque, f->buf + pending, f->pos,
- IO_BUF_SIZE - pending);
+ IO_BUF_SIZE - pending, &local_error);
if (len > 0) {
f->buf_size += len;
f->pos += len;
} else if (len == 0) {
- qemu_file_set_error(f, -EIO);
+ qemu_file_set_error_obj(f, -EIO, local_error);
} else if (len != -EAGAIN) {
- qemu_file_set_error(f, len);
+ qemu_file_set_error_obj(f, len, local_error);
+ } else {
+ error_free(local_error);
}
return len;
@@ -327,7 +365,7 @@ int qemu_fclose(QEMUFile *f)
ret = qemu_file_get_error(f);
if (f->ops->close) {
- int ret2 = f->ops->close(f->opaque);
+ int ret2 = f->ops->close(f->opaque, NULL);
if (ret >= 0) {
ret = ret2;
}
@@ -338,6 +376,7 @@ int qemu_fclose(QEMUFile *f)
if (f->last_error) {
ret = f->last_error;
}
+ error_free(f->last_error_obj);
g_free(f);
trace_qemu_file_fclose();
return ret;
@@ -615,6 +654,11 @@ void qemu_file_reset_rate_limit(QEMUFile *f)
f->bytes_xfer = 0;
}
+void qemu_file_update_transfer(QEMUFile *f, int64_t len)
+{
+ f->bytes_xfer += len;
+}
+
void qemu_put_be16(QEMUFile *f, unsigned int v)
{
qemu_put_byte(f, v >> 8);
@@ -783,6 +827,6 @@ void qemu_put_counted_string(QEMUFile *f, const char *str)
void qemu_file_set_blocking(QEMUFile *f, bool block)
{
if (f->ops->set_blocking) {
- f->ops->set_blocking(f->opaque, block);
+ f->ops->set_blocking(f->opaque, block, NULL);
}
}
diff --git a/migration/qemu-file.h b/migration/qemu-file.h
index 13baf896bd..a9b6d6ccb7 100644
--- a/migration/qemu-file.h
+++ b/migration/qemu-file.h
@@ -26,13 +26,15 @@
#define MIGRATION_QEMU_FILE_H
#include <zlib.h>
+#include "exec/cpu-common.h"
/* Read a chunk of data from a file at the given position. The pos argument
* can be ignored if the file is only be used for streaming. The number of
* bytes actually read should be returned.
*/
typedef ssize_t (QEMUFileGetBufferFunc)(void *opaque, uint8_t *buf,
- int64_t pos, size_t size);
+ int64_t pos, size_t size,
+ Error **errp);
/* Close a file
*
@@ -41,7 +43,7 @@ typedef ssize_t (QEMUFileGetBufferFunc)(void *opaque, uint8_t *buf,
* The meaning of return value on success depends on the specific back-end being
* used.
*/
-typedef int (QEMUFileCloseFunc)(void *opaque);
+typedef int (QEMUFileCloseFunc)(void *opaque, Error **errp);
/* Called to return the OS file descriptor associated to the QEMUFile.
*/
@@ -49,14 +51,15 @@ typedef int (QEMUFileGetFD)(void *opaque);
/* Called to change the blocking mode of the file
*/
-typedef int (QEMUFileSetBlocking)(void *opaque, bool enabled);
+typedef int (QEMUFileSetBlocking)(void *opaque, bool enabled, Error **errp);
/*
* This function writes an iovec to file. The handler must write all
* of the data or return a negative errno value.
*/
typedef ssize_t (QEMUFileWritevBufferFunc)(void *opaque, struct iovec *iov,
- int iovcnt, int64_t pos);
+ int iovcnt, int64_t pos,
+ Error **errp);
/*
* This function provides hooks around different
@@ -97,7 +100,8 @@ typedef QEMUFile *(QEMURetPathFunc)(void *opaque);
* Existing blocking reads/writes must be woken
* Returns 0 on success, -err on error
*/
-typedef int (QEMUFileShutdownFunc)(void *opaque, bool rd, bool wr);
+typedef int (QEMUFileShutdownFunc)(void *opaque, bool rd, bool wr,
+ Error **errp);
typedef struct QEMUFileOps {
QEMUFileGetBufferFunc *get_buffer;
@@ -147,16 +151,17 @@ int qemu_peek_byte(QEMUFile *f, int offset);
void qemu_file_skip(QEMUFile *f, int size);
void qemu_update_position(QEMUFile *f, size_t size);
void qemu_file_reset_rate_limit(QEMUFile *f);
+void qemu_file_update_transfer(QEMUFile *f, int64_t len);
void qemu_file_set_rate_limit(QEMUFile *f, int64_t new_rate);
int64_t qemu_file_get_rate_limit(QEMUFile *f);
+int qemu_file_get_error_obj(QEMUFile *f, Error **errp);
+void qemu_file_set_error_obj(QEMUFile *f, int ret, Error *err);
void qemu_file_set_error(QEMUFile *f, int ret);
int qemu_file_shutdown(QEMUFile *f);
QEMUFile *qemu_file_get_return_path(QEMUFile *f);
void qemu_fflush(QEMUFile *f);
void qemu_file_set_blocking(QEMUFile *f, bool block);
-size_t qemu_get_counted_string(QEMUFile *f, char buf[256]);
-
void ram_control_before_iterate(QEMUFile *f, uint64_t flags);
void ram_control_after_iterate(QEMUFile *f, uint64_t flags);
void ram_control_load_hook(QEMUFile *f, uint64_t flags, void *data);
@@ -175,6 +180,4 @@ size_t ram_control_save_page(QEMUFile *f, ram_addr_t block_offset,
ram_addr_t offset, size_t size,
uint64_t *bytes_sent);
-void qemu_put_counted_string(QEMUFile *f, const char *name);
-
#endif
diff --git a/migration/ram.c b/migration/ram.c
index 889148dd84..35552c090b 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -661,6 +661,8 @@ typedef struct {
uint64_t num_packets;
/* pages sent through this channel */
uint64_t num_pages;
+ /* syncs main thread and channels */
+ QemuSemaphore sem_sync;
} MultiFDSendParams;
typedef struct {
@@ -896,8 +898,6 @@ struct {
MultiFDSendParams *params;
/* array of pages to sent */
MultiFDPages_t *pages;
- /* syncs main thread and channels */
- QemuSemaphore sem_sync;
/* global number of generated multifd packets */
uint64_t packet_num;
/* send channels ready */
@@ -922,7 +922,7 @@ struct {
* false.
*/
-static int multifd_send_pages(void)
+static int multifd_send_pages(RAMState *rs)
{
int i;
static int next_channel;
@@ -954,6 +954,7 @@ static int multifd_send_pages(void)
multifd_send_state->pages = p->pages;
p->pages = pages;
transferred = ((uint64_t) pages->used) * TARGET_PAGE_SIZE + p->packet_len;
+ qemu_file_update_transfer(rs->f, transferred);
ram_counters.multifd_bytes += transferred;
ram_counters.transferred += transferred;;
qemu_mutex_unlock(&p->mutex);
@@ -962,7 +963,7 @@ static int multifd_send_pages(void)
return 1;
}
-static int multifd_queue_page(RAMBlock *block, ram_addr_t offset)
+static int multifd_queue_page(RAMState *rs, RAMBlock *block, ram_addr_t offset)
{
MultiFDPages_t *pages = multifd_send_state->pages;
@@ -981,12 +982,12 @@ static int multifd_queue_page(RAMBlock *block, ram_addr_t offset)
}
}
- if (multifd_send_pages() < 0) {
+ if (multifd_send_pages(rs) < 0) {
return -1;
}
if (pages->block != block) {
- return multifd_queue_page(block, offset);
+ return multifd_queue_page(rs, block, offset);
}
return 1;
@@ -996,6 +997,8 @@ static void multifd_send_terminate_threads(Error *err)
{
int i;
+ trace_multifd_send_terminate_threads(err != NULL);
+
if (err) {
MigrationState *s = migrate_get_current();
migrate_set_error(s, err);
@@ -1036,6 +1039,7 @@ void multifd_save_cleanup(void)
p->c = NULL;
qemu_mutex_destroy(&p->mutex);
qemu_sem_destroy(&p->sem);
+ qemu_sem_destroy(&p->sem_sync);
g_free(p->name);
p->name = NULL;
multifd_pages_clear(p->pages);
@@ -1045,7 +1049,6 @@ void multifd_save_cleanup(void)
p->packet = NULL;
}
qemu_sem_destroy(&multifd_send_state->channels_ready);
- qemu_sem_destroy(&multifd_send_state->sem_sync);
g_free(multifd_send_state->params);
multifd_send_state->params = NULL;
multifd_pages_clear(multifd_send_state->pages);
@@ -1054,7 +1057,7 @@ void multifd_save_cleanup(void)
multifd_send_state = NULL;
}
-static void multifd_send_sync_main(void)
+static void multifd_send_sync_main(RAMState *rs)
{
int i;
@@ -1062,7 +1065,7 @@ static void multifd_send_sync_main(void)
return;
}
if (multifd_send_state->pages->used) {
- if (multifd_send_pages() < 0) {
+ if (multifd_send_pages(rs) < 0) {
error_report("%s: multifd_send_pages fail", __func__);
return;
}
@@ -1083,6 +1086,9 @@ static void multifd_send_sync_main(void)
p->packet_num = multifd_send_state->packet_num++;
p->flags |= MULTIFD_FLAG_SYNC;
p->pending_job++;
+ qemu_file_update_transfer(rs->f, p->packet_len);
+ ram_counters.multifd_bytes += p->packet_len;
+ ram_counters.transferred += p->packet_len;
qemu_mutex_unlock(&p->mutex);
qemu_sem_post(&p->sem);
}
@@ -1090,7 +1096,7 @@ static void multifd_send_sync_main(void)
MultiFDSendParams *p = &multifd_send_state->params[i];
trace_multifd_send_sync_main_wait(p->id);
- qemu_sem_wait(&multifd_send_state->sem_sync);
+ qemu_sem_wait(&p->sem_sync);
}
trace_multifd_send_sync_main(multifd_send_state->packet_num);
}
@@ -1150,7 +1156,7 @@ static void *multifd_send_thread(void *opaque)
qemu_mutex_unlock(&p->mutex);
if (flags & MULTIFD_FLAG_SYNC) {
- qemu_sem_post(&multifd_send_state->sem_sync);
+ qemu_sem_post(&p->sem_sync);
}
qemu_sem_post(&multifd_send_state->channels_ready);
} else if (p->quit) {
@@ -1164,6 +1170,7 @@ static void *multifd_send_thread(void *opaque)
out:
if (local_err) {
+ trace_multifd_send_error(p->id);
multifd_send_terminate_threads(local_err);
}
@@ -1173,7 +1180,7 @@ out:
*/
if (ret != 0) {
if (flags & MULTIFD_FLAG_SYNC) {
- qemu_sem_post(&multifd_send_state->sem_sync);
+ qemu_sem_post(&p->sem_sync);
}
qemu_sem_post(&multifd_send_state->channels_ready);
}
@@ -1194,6 +1201,7 @@ static void multifd_new_send_channel_async(QIOTask *task, gpointer opaque)
QIOChannel *sioc = QIO_CHANNEL(qio_task_get_source(task));
Error *local_err = NULL;
+ trace_multifd_new_send_channel_async(p->id);
if (qio_task_propagate_error(task, &local_err)) {
migrate_set_error(migrate_get_current(), local_err);
multifd_save_cleanup();
@@ -1219,7 +1227,6 @@ int multifd_save_setup(void)
multifd_send_state = g_malloc0(sizeof(*multifd_send_state));
multifd_send_state->params = g_new0(MultiFDSendParams, thread_count);
multifd_send_state->pages = multifd_pages_init(page_count);
- qemu_sem_init(&multifd_send_state->sem_sync, 0);
qemu_sem_init(&multifd_send_state->channels_ready, 0);
for (i = 0; i < thread_count; i++) {
@@ -1227,6 +1234,7 @@ int multifd_save_setup(void)
qemu_mutex_init(&p->mutex);
qemu_sem_init(&p->sem, 0);
+ qemu_sem_init(&p->sem_sync, 0);
p->quit = false;
p->pending_job = 0;
p->id = i;
@@ -1254,6 +1262,8 @@ static void multifd_recv_terminate_threads(Error *err)
{
int i;
+ trace_multifd_recv_terminate_threads(err != NULL);
+
if (err) {
MigrationState *s = migrate_get_current();
migrate_set_error(s, err);
@@ -1478,6 +1488,7 @@ bool multifd_recv_new_channel(QIOChannel *ioc, Error **errp)
atomic_read(&multifd_recv_state->count));
return false;
}
+ trace_multifd_recv_new_channel(id);
p = &multifd_recv_state->params[id];
if (p->c != NULL) {
@@ -1748,11 +1759,10 @@ static inline bool migration_bitmap_clear_dirty(RAMState *rs,
}
/* Called with RCU critical section */
-static void migration_bitmap_sync_range(RAMState *rs, RAMBlock *rb,
- ram_addr_t length)
+static void ramblock_sync_dirty_bitmap(RAMState *rs, RAMBlock *rb)
{
rs->migration_dirty_pages +=
- cpu_physical_memory_sync_dirty_bitmap(rb, 0, length,
+ cpu_physical_memory_sync_dirty_bitmap(rb, 0, rb->used_length,
&rs->num_dirty_pages_period);
}
@@ -1841,7 +1851,7 @@ static void migration_bitmap_sync(RAMState *rs)
qemu_mutex_lock(&rs->bitmap_mutex);
rcu_read_lock();
RAMBLOCK_FOREACH_NOT_IGNORED(block) {
- migration_bitmap_sync_range(rs, block, block->used_length);
+ ramblock_sync_dirty_bitmap(rs, block);
}
ram_counters.remaining = ram_bytes_remaining();
rcu_read_unlock();
@@ -2079,7 +2089,7 @@ static int ram_save_page(RAMState *rs, PageSearchStatus *pss, bool last_stage)
static int ram_save_multifd_page(RAMState *rs, RAMBlock *block,
ram_addr_t offset)
{
- if (multifd_queue_page(block, offset) < 0) {
+ if (multifd_queue_page(rs, block, offset) < 0) {
return -1;
}
ram_counters.normal++;
@@ -2851,12 +2861,9 @@ void ram_postcopy_migrated_memory_release(MigrationState *ms)
* with the dirtymap; so a '1' means it's either dirty or unsent.
*
* @ms: current migration state
- * @pds: state for postcopy
* @block: RAMBlock to discard
*/
-static int postcopy_send_discard_bm_ram(MigrationState *ms,
- PostcopyDiscardState *pds,
- RAMBlock *block)
+static int postcopy_send_discard_bm_ram(MigrationState *ms, RAMBlock *block)
{
unsigned long end = block->used_length >> TARGET_PAGE_BITS;
unsigned long current;
@@ -2864,23 +2871,21 @@ static int postcopy_send_discard_bm_ram(MigrationState *ms,
for (current = 0; current < end; ) {
unsigned long one = find_next_bit(unsentmap, end, current);
+ unsigned long zero, discard_length;
+
+ if (one >= end) {
+ break;
+ }
- if (one <= end) {
- unsigned long zero = find_next_zero_bit(unsentmap, end, one + 1);
- unsigned long discard_length;
+ zero = find_next_zero_bit(unsentmap, end, one + 1);
- if (zero >= end) {
- discard_length = end - one;
- } else {
- discard_length = zero - one;
- }
- if (discard_length) {
- postcopy_discard_send_range(ms, pds, one, discard_length);
- }
- current = one + discard_length;
+ if (zero >= end) {
+ discard_length = end - one;
} else {
- current = one;
+ discard_length = zero - one;
}
+ postcopy_discard_send_range(ms, one, discard_length);
+ current = one + discard_length;
}
return 0;
@@ -2905,16 +2910,15 @@ static int postcopy_each_ram_send_discard(MigrationState *ms)
int ret;
RAMBLOCK_FOREACH_NOT_IGNORED(block) {
- PostcopyDiscardState *pds =
- postcopy_discard_send_init(ms, block->idstr);
+ postcopy_discard_send_init(ms, block->idstr);
/*
* Postcopy sends chunks of bitmap over the wire, but it
* just needs indexes at this point, avoids it having
* target page specific code.
*/
- ret = postcopy_send_discard_bm_ram(ms, pds, block);
- postcopy_discard_send_finish(ms, pds);
+ ret = postcopy_send_discard_bm_ram(ms, block);
+ postcopy_discard_send_finish(ms);
if (ret) {
return ret;
}
@@ -2937,11 +2941,9 @@ static int postcopy_each_ram_send_discard(MigrationState *ms)
* @unsent_pass: if true we need to canonicalize partially unsent host pages
* otherwise we need to canonicalize partially dirty host pages
* @block: block that contains the page we want to canonicalize
- * @pds: state for postcopy
*/
static void postcopy_chunk_hostpages_pass(MigrationState *ms, bool unsent_pass,
- RAMBlock *block,
- PostcopyDiscardState *pds)
+ RAMBlock *block)
{
RAMState *rs = ram_state;
unsigned long *bitmap = block->bmap;
@@ -2964,54 +2966,30 @@ static void postcopy_chunk_hostpages_pass(MigrationState *ms, bool unsent_pass,
}
while (run_start < pages) {
- bool do_fixup = false;
- unsigned long fixup_start_addr;
- unsigned long host_offset;
/*
* If the start of this run of pages is in the middle of a host
* page, then we need to fixup this host page.
*/
- host_offset = run_start % host_ratio;
- if (host_offset) {
- do_fixup = true;
- run_start -= host_offset;
- fixup_start_addr = run_start;
- /* For the next pass */
- run_start = run_start + host_ratio;
- } else {
+ if (QEMU_IS_ALIGNED(run_start, host_ratio)) {
/* Find the end of this run */
- unsigned long run_end;
if (unsent_pass) {
- run_end = find_next_bit(unsentmap, pages, run_start + 1);
+ run_start = find_next_bit(unsentmap, pages, run_start + 1);
} else {
- run_end = find_next_zero_bit(bitmap, pages, run_start + 1);
+ run_start = find_next_zero_bit(bitmap, pages, run_start + 1);
}
/*
* If the end isn't at the start of a host page, then the
* run doesn't finish at the end of a host page
* and we need to discard.
*/
- host_offset = run_end % host_ratio;
- if (host_offset) {
- do_fixup = true;
- fixup_start_addr = run_end - host_offset;
- /*
- * This host page has gone, the next loop iteration starts
- * from after the fixup
- */
- run_start = fixup_start_addr + host_ratio;
- } else {
- /*
- * No discards on this iteration, next loop starts from
- * next sent/dirty page
- */
- run_start = run_end + 1;
- }
}
- if (do_fixup) {
+ if (!QEMU_IS_ALIGNED(run_start, host_ratio)) {
unsigned long page;
+ unsigned long fixup_start_addr = QEMU_ALIGN_DOWN(run_start,
+ host_ratio);
+ run_start = QEMU_ALIGN_UP(run_start, host_ratio);
/* Tell the destination to discard this page */
if (unsent_pass || !test_bit(fixup_start_addr, unsentmap)) {
@@ -3022,8 +3000,7 @@ static void postcopy_chunk_hostpages_pass(MigrationState *ms, bool unsent_pass,
* (any partially sent pages were already discarded
* by the previous unsent_pass)
*/
- postcopy_discard_send_range(ms, pds, fixup_start_addr,
- host_ratio);
+ postcopy_discard_send_range(ms, fixup_start_addr, host_ratio);
}
/* Clean up the bitmap */
@@ -3066,18 +3043,17 @@ static void postcopy_chunk_hostpages_pass(MigrationState *ms, bool unsent_pass,
*/
static int postcopy_chunk_hostpages(MigrationState *ms, RAMBlock *block)
{
- PostcopyDiscardState *pds =
- postcopy_discard_send_init(ms, block->idstr);
+ postcopy_discard_send_init(ms, block->idstr);
/* First pass: Discard all partially sent host pages */
- postcopy_chunk_hostpages_pass(ms, true, block, pds);
+ postcopy_chunk_hostpages_pass(ms, true, block);
/*
* Second pass: Ensure that all partially dirty host pages are made
* fully dirty.
*/
- postcopy_chunk_hostpages_pass(ms, false, block, pds);
+ postcopy_chunk_hostpages_pass(ms, false, block);
- postcopy_discard_send_finish(ms, pds);
+ postcopy_discard_send_finish(ms);
return 0;
}
@@ -3482,7 +3458,7 @@ static int ram_save_setup(QEMUFile *f, void *opaque)
ram_control_before_iterate(f, RAM_CONTROL_SETUP);
ram_control_after_iterate(f, RAM_CONTROL_SETUP);
- multifd_send_sync_main();
+ multifd_send_sync_main(*rsp);
qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
qemu_fflush(f);
@@ -3570,7 +3546,7 @@ static int ram_save_iterate(QEMUFile *f, void *opaque)
ram_control_after_iterate(f, RAM_CONTROL_ROUND);
out:
- multifd_send_sync_main();
+ multifd_send_sync_main(rs);
qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
qemu_fflush(f);
ram_counters.transferred += 8;
@@ -3629,7 +3605,7 @@ static int ram_save_complete(QEMUFile *f, void *opaque)
rcu_read_unlock();
- multifd_send_sync_main();
+ multifd_send_sync_main(rs);
qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
qemu_fflush(f);
@@ -4296,7 +4272,7 @@ static void colo_flush_ram_cache(void)
memory_global_dirty_log_sync();
rcu_read_lock();
RAMBLOCK_FOREACH_NOT_IGNORED(block) {
- migration_bitmap_sync_range(ram_state, block, block->used_length);
+ ramblock_sync_dirty_bitmap(ram_state, block);
}
rcu_read_unlock();
@@ -4322,40 +4298,26 @@ static void colo_flush_ram_cache(void)
trace_colo_flush_ram_cache_end();
}
-static int ram_load(QEMUFile *f, void *opaque, int version_id)
+/**
+ * ram_load_precopy: load pages in precopy case
+ *
+ * Returns 0 for success or -errno in case of error
+ *
+ * Called in precopy mode by ram_load().
+ * rcu_read_lock is taken prior to this being called.
+ *
+ * @f: QEMUFile where to send the data
+ */
+static int ram_load_precopy(QEMUFile *f)
{
- int flags = 0, ret = 0, invalid_flags = 0;
- static uint64_t seq_iter;
- int len = 0;
- /*
- * If system is running in postcopy mode, page inserts to host memory must
- * be atomic
- */
- bool postcopy_running = postcopy_is_running();
+ int flags = 0, ret = 0, invalid_flags = 0, len = 0;
/* ADVISE is earlier, it shows the source has the postcopy capability on */
bool postcopy_advised = postcopy_is_advised();
-
- seq_iter++;
-
- if (version_id != 4) {
- ret = -EINVAL;
- }
-
if (!migrate_use_compression()) {
invalid_flags |= RAM_SAVE_FLAG_COMPRESS_PAGE;
}
- /* This RCU critical section can be very long running.
- * When RCU reclaims in the code start to become numerous,
- * it will be necessary to reduce the granularity of this
- * critical section.
- */
- rcu_read_lock();
-
- if (postcopy_running) {
- ret = ram_load_postcopy(f);
- }
- while (!postcopy_running && !ret && !(flags & RAM_SAVE_FLAG_EOS)) {
+ while (!ret && !(flags & RAM_SAVE_FLAG_EOS)) {
ram_addr_t addr, total_ram_bytes;
void *host = NULL;
uint8_t ch;
@@ -4506,6 +4468,39 @@ static int ram_load(QEMUFile *f, void *opaque, int version_id)
}
}
+ return ret;
+}
+
+static int ram_load(QEMUFile *f, void *opaque, int version_id)
+{
+ int ret = 0;
+ static uint64_t seq_iter;
+ /*
+ * If system is running in postcopy mode, page inserts to host memory must
+ * be atomic
+ */
+ bool postcopy_running = postcopy_is_running();
+
+ seq_iter++;
+
+ if (version_id != 4) {
+ return -EINVAL;
+ }
+
+ /*
+ * This RCU critical section can be very long running.
+ * When RCU reclaims in the code start to become numerous,
+ * it will be necessary to reduce the granularity of this
+ * critical section.
+ */
+ rcu_read_lock();
+
+ if (postcopy_running) {
+ ret = ram_load_postcopy(f);
+ } else {
+ ret = ram_load_precopy(f);
+ }
+
ret |= wait_for_decompress_done();
rcu_read_unlock();
trace_ram_load_complete(ret, seq_iter);
diff --git a/migration/rdma.c b/migration/rdma.c
index 3036221ee8..78e6b72bac 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -25,6 +25,7 @@
#include "qemu/error-report.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
+#include "qemu/rcu.h"
#include "qemu/sockets.h"
#include "qemu/bitmap.h"
#include "qemu/coroutine.h"
@@ -3140,7 +3141,7 @@ static size_t qemu_rdma_save_page(QEMUFile *f, void *opaque,
CHECK_ERROR_STATE();
- if (migrate_get_current()->state == MIGRATION_STATUS_POSTCOPY_ACTIVE) {
+ if (migration_in_postcopy()) {
rcu_read_unlock();
return RAM_SAVE_CONTROL_NOT_SUPP;
}
@@ -3775,7 +3776,7 @@ static int qemu_rdma_registration_start(QEMUFile *f, void *opaque,
CHECK_ERROR_STATE();
- if (migrate_get_current()->state == MIGRATION_STATUS_POSTCOPY_ACTIVE) {
+ if (migration_in_postcopy()) {
rcu_read_unlock();
return 0;
}
@@ -3810,7 +3811,7 @@ static int qemu_rdma_registration_stop(QEMUFile *f, void *opaque,
CHECK_ERROR_STATE();
- if (migrate_get_current()->state == MIGRATION_STATUS_POSTCOPY_ACTIVE) {
+ if (migration_in_postcopy()) {
rcu_read_unlock();
return 0;
}
diff --git a/migration/savevm.c b/migration/savevm.c
index 79ed44d475..4a86128ac4 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -32,6 +32,7 @@
#include "net/net.h"
#include "migration.h"
#include "migration/snapshot.h"
+#include "migration/vmstate.h"
#include "migration/misc.h"
#include "migration/register.h"
#include "migration/global_state.h"
@@ -50,11 +51,14 @@
#include "exec/target_page.h"
#include "trace.h"
#include "qemu/iov.h"
+#include "qemu/main-loop.h"
#include "block/snapshot.h"
#include "qemu/cutils.h"
#include "io/channel-buffer.h"
#include "io/channel-file.h"
#include "sysemu/replay.h"
+#include "sysemu/runstate.h"
+#include "sysemu/sysemu.h"
#include "qjson.h"
#include "migration/colo.h"
#include "qemu/bitmap.h"
@@ -124,7 +128,7 @@ static struct mig_cmd_args {
/* savevm/loadvm support */
static ssize_t block_writev_buffer(void *opaque, struct iovec *iov, int iovcnt,
- int64_t pos)
+ int64_t pos, Error **errp)
{
int ret;
QEMUIOVector qiov;
@@ -139,12 +143,12 @@ static ssize_t block_writev_buffer(void *opaque, struct iovec *iov, int iovcnt,
}
static ssize_t block_get_buffer(void *opaque, uint8_t *buf, int64_t pos,
- size_t size)
+ size_t size, Error **errp)
{
return bdrv_load_vmstate(opaque, buf, pos, size);
}
-static int bdrv_fclose(void *opaque)
+static int bdrv_fclose(void *opaque, Error **errp)
{
return bdrv_flush(opaque);
}
@@ -1246,29 +1250,16 @@ void qemu_savevm_state_complete_postcopy(QEMUFile *f)
qemu_fflush(f);
}
-int qemu_savevm_state_complete_precopy(QEMUFile *f, bool iterable_only,
- bool inactivate_disks)
+static
+int qemu_savevm_state_complete_precopy_iterable(QEMUFile *f, bool in_postcopy)
{
- QJSON *vmdesc;
- int vmdesc_len;
SaveStateEntry *se;
int ret;
- bool in_postcopy = migration_in_postcopy();
- Error *local_err = NULL;
-
- if (precopy_notify(PRECOPY_NOTIFY_COMPLETE, &local_err)) {
- error_report_err(local_err);
- }
-
- trace_savevm_state_complete_precopy();
-
- cpu_synchronize_all_states();
QTAILQ_FOREACH(se, &savevm_state.handlers, entry) {
if (!se->ops ||
(in_postcopy && se->ops->has_postcopy &&
se->ops->has_postcopy(se->opaque)) ||
- (in_postcopy && !iterable_only) ||
!se->ops->save_live_complete_precopy) {
continue;
}
@@ -1291,9 +1282,18 @@ int qemu_savevm_state_complete_precopy(QEMUFile *f, bool iterable_only,
}
}
- if (iterable_only) {
- return 0;
- }
+ return 0;
+}
+
+static
+int qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f,
+ bool in_postcopy,
+ bool inactivate_disks)
+{
+ QJSON *vmdesc;
+ int vmdesc_len;
+ SaveStateEntry *se;
+ int ret;
vmdesc = qjson_new();
json_prop_int(vmdesc, "page_size", qemu_target_page_size());
@@ -1353,6 +1353,42 @@ int qemu_savevm_state_complete_precopy(QEMUFile *f, bool iterable_only,
}
qjson_destroy(vmdesc);
+ return 0;
+}
+
+int qemu_savevm_state_complete_precopy(QEMUFile *f, bool iterable_only,
+ bool inactivate_disks)
+{
+ int ret;
+ Error *local_err = NULL;
+ bool in_postcopy = migration_in_postcopy();
+
+ if (precopy_notify(PRECOPY_NOTIFY_COMPLETE, &local_err)) {
+ error_report_err(local_err);
+ }
+
+ trace_savevm_state_complete_precopy();
+
+ cpu_synchronize_all_states();
+
+ if (!in_postcopy || iterable_only) {
+ ret = qemu_savevm_state_complete_precopy_iterable(f, in_postcopy);
+ if (ret) {
+ return ret;
+ }
+ }
+
+ if (iterable_only) {
+ goto flush;
+ }
+
+ ret = qemu_savevm_state_complete_precopy_non_iterable(f, in_postcopy,
+ inactivate_disks);
+ if (ret) {
+ return ret;
+ }
+
+flush:
qemu_fflush(f);
return 0;
}
@@ -1424,6 +1460,7 @@ static int qemu_savevm_state(QEMUFile *f, Error **errp)
}
migrate_init(ms);
+ memset(&ram_counters, 0, sizeof(ram_counters));
ms->to_dst_file = f;
qemu_mutex_unlock_iothread();
@@ -1616,8 +1653,6 @@ static int loadvm_postcopy_handle_advise(MigrationIncomingState *mis,
return -1;
}
- postcopy_state_set(POSTCOPY_INCOMING_ADVISE);
-
return 0;
}
@@ -1835,16 +1870,10 @@ static int loadvm_postcopy_handle_listen(MigrationIncomingState *mis)
return 0;
}
-
-typedef struct {
- QEMUBH *bh;
-} HandleRunBhData;
-
static void loadvm_postcopy_handle_run_bh(void *opaque)
{
Error *local_err = NULL;
- HandleRunBhData *data = opaque;
- MigrationIncomingState *mis = migration_incoming_get_current();
+ MigrationIncomingState *mis = opaque;
/* TODO we should move all of this lot into postcopy_ram.c or a shared code
* in migration.c
@@ -1876,15 +1905,13 @@ static void loadvm_postcopy_handle_run_bh(void *opaque)
runstate_set(RUN_STATE_PAUSED);
}
- qemu_bh_delete(data->bh);
- g_free(data);
+ qemu_bh_delete(mis->bh);
}
/* After all discards we can start running and asking for pages */
static int loadvm_postcopy_handle_run(MigrationIncomingState *mis)
{
PostcopyState ps = postcopy_state_set(POSTCOPY_INCOMING_RUNNING);
- HandleRunBhData *data;
trace_loadvm_postcopy_handle_run();
if (ps != POSTCOPY_INCOMING_LISTENING) {
@@ -1892,9 +1919,8 @@ static int loadvm_postcopy_handle_run(MigrationIncomingState *mis)
return -1;
}
- data = g_new(HandleRunBhData, 1);
- data->bh = qemu_bh_new(loadvm_postcopy_handle_run_bh, data);
- qemu_bh_schedule(data->bh);
+ mis->bh = qemu_bh_new(loadvm_postcopy_handle_run_bh, mis);
+ qemu_bh_schedule(mis->bh);
/* We need to finish reading the stream from the package
* and also stop reading anything more from the stream that loaded the
@@ -2407,7 +2433,7 @@ retry:
case QEMU_VM_COMMAND:
ret = loadvm_process_command(f);
trace_qemu_loadvm_state_section_command(ret);
- if ((ret < 0) || (ret & LOADVM_QUIT)) {
+ if ((ret < 0) || (ret == LOADVM_QUIT)) {
goto out;
}
break;
diff --git a/migration/trace-events b/migration/trace-events
index d8e54c367a..00ffcd5930 100644
--- a/migration/trace-events
+++ b/migration/trace-events
@@ -81,16 +81,22 @@ migration_bitmap_sync_start(void) ""
migration_bitmap_sync_end(uint64_t dirty_pages) "dirty_pages %" PRIu64
migration_bitmap_clear_dirty(char *str, uint64_t start, uint64_t size, unsigned long page) "rb %s start 0x%"PRIx64" size 0x%"PRIx64" page 0x%lx"
migration_throttle(void) ""
+multifd_new_send_channel_async(uint8_t id) "channel %d"
multifd_recv(uint8_t id, uint64_t packet_num, uint32_t used, uint32_t flags, uint32_t next_packet_size) "channel %d packet_num %" PRIu64 " pages %d flags 0x%x next packet size %d"
+multifd_recv_new_channel(uint8_t id) "channel %d"
multifd_recv_sync_main(long packet_num) "packet num %ld"
multifd_recv_sync_main_signal(uint8_t id) "channel %d"
multifd_recv_sync_main_wait(uint8_t id) "channel %d"
+multifd_recv_terminate_threads(bool error) "error %d"
multifd_recv_thread_end(uint8_t id, uint64_t packets, uint64_t pages) "channel %d packets %" PRIu64 " pages %" PRIu64
multifd_recv_thread_start(uint8_t id) "%d"
+multifd_save_setup_wait(uint8_t id) "%d"
multifd_send(uint8_t id, uint64_t packet_num, uint32_t used, uint32_t flags, uint32_t next_packet_size) "channel %d packet_num %" PRIu64 " pages %d flags 0x%x next packet size %d"
+multifd_send_error(uint8_t id) "channel %d"
multifd_send_sync_main(long packet_num) "packet num %ld"
multifd_send_sync_main_signal(uint8_t id) "channel %d"
multifd_send_sync_main_wait(uint8_t id) "channel %d"
+multifd_send_terminate_threads(bool error) "error %d"
multifd_send_thread_end(uint8_t id, uint64_t packets, uint64_t pages) "channel %d packets %" PRIu64 " pages %" PRIu64
multifd_send_thread_start(uint8_t id) "%d"
ram_discard_range(const char *rbname, uint64_t start, size_t len) "%s: start: %" PRIx64 " %zx"
diff --git a/migration/vmstate-types.c b/migration/vmstate-types.c
index 845f4649ee..bee658a1b2 100644
--- a/migration/vmstate-types.c
+++ b/migration/vmstate-types.c
@@ -11,7 +11,6 @@
*/
#include "qemu/osdep.h"
-#include "exec/cpu-common.h"
#include "qemu-file.h"
#include "migration.h"
#include "migration/vmstate.h"
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
index 5ca3ebe942..e4d4043a3b 100644
--- a/monitor/hmp-cmds.c
+++ b/monitor/hmp-cmds.c
@@ -19,7 +19,7 @@
#include "net/eth.h"
#include "chardev/char.h"
#include "sysemu/block-backend.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "qemu/config-file.h"
#include "qemu/option.h"
#include "qemu/timer.h"
@@ -220,24 +220,11 @@ static char *SocketAddress_to_str(SocketAddress *addr)
void hmp_info_migrate(Monitor *mon, const QDict *qdict)
{
MigrationInfo *info;
- MigrationCapabilityStatusList *caps, *cap;
info = qmp_query_migrate(NULL);
- caps = qmp_query_migrate_capabilities(NULL);
migration_global_dump(mon);
- /* do not display parameters during setup */
- if (info->has_status && caps) {
- monitor_printf(mon, "capabilities: ");
- for (cap = caps; cap; cap = cap->next) {
- monitor_printf(mon, "%s: %s ",
- MigrationCapability_str(cap->value->capability),
- cap->value->state ? "on" : "off");
- }
- monitor_printf(mon, "\n");
- }
-
if (info->has_status) {
monitor_printf(mon, "Migration status: %s",
MigrationStatus_str(info->status));
@@ -370,7 +357,6 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict)
monitor_printf(mon, "]\n");
}
qapi_free_MigrationInfo(info);
- qapi_free_MigrationCapabilityStatusList(caps);
}
void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict)
diff --git a/monitor/hmp.c b/monitor/hmp.c
index 5223661e82..8942e28933 100644
--- a/monitor/hmp.c
+++ b/monitor/hmp.c
@@ -35,7 +35,7 @@
#include "qemu/option.h"
#include "qemu/units.h"
#include "sysemu/block-backend.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "trace.h"
static void monitor_command_cb(void *opaque, const char *cmdline,
diff --git a/monitor/misc.c b/monitor/misc.c
index 00338c002a..d229e65450 100644
--- a/monitor/misc.c
+++ b/monitor/misc.c
@@ -25,7 +25,6 @@
#include "qemu/osdep.h"
#include "monitor-internal.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "monitor/qdev.h"
#include "hw/usb.h"
#include "hw/pci/pci.h"
@@ -45,6 +44,7 @@
#include "sysemu/balloon.h"
#include "qemu/timer.h"
#include "sysemu/hw_accel.h"
+#include "sysemu/runstate.h"
#include "authz/list.h"
#include "qapi/util.h"
#include "sysemu/blockdev.h"
diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h
index 7760b22ba3..d78f5ca190 100644
--- a/monitor/monitor-internal.h
+++ b/monitor/monitor-internal.h
@@ -27,7 +27,6 @@
#include "chardev/char-fe.h"
#include "monitor/monitor.h"
-#include "qapi/qapi-types-misc.h"
#include "qapi/qmp/dispatch.h"
#include "qapi/qmp/json-parser.h"
#include "qemu/readline.h"
diff --git a/monitor/monitor.c b/monitor/monitor.c
index 3ef28171c0..12898b6448 100644
--- a/monitor/monitor.c
+++ b/monitor/monitor.c
@@ -31,6 +31,7 @@
#include "qemu/error-report.h"
#include "qemu/option.h"
#include "sysemu/qtest.h"
+#include "sysemu/sysemu.h"
#include "trace.h"
/*
diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c
index b9ae40eec7..0880341a2d 100644
--- a/monitor/qmp-cmds.c
+++ b/monitor/qmp-cmds.c
@@ -26,6 +26,7 @@
#include "ui/qemu-spice.h"
#include "ui/vnc.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "sysemu/arch_init.h"
#include "sysemu/blockdev.h"
#include "sysemu/block-backend.h"
@@ -35,7 +36,6 @@
#include "qapi/qapi-commands-misc.h"
#include "qapi/qapi-commands-ui.h"
#include "qapi/qmp/qerror.h"
-#include "hw/boards.h"
#include "hw/mem/memory-device.h"
#include "hw/acpi/acpi_dev_interface.h"
diff --git a/nbd/client.c b/nbd/client.c
index 4de30630c7..49bf9906f9 100644
--- a/nbd/client.c
+++ b/nbd/client.c
@@ -19,6 +19,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "qemu/queue.h"
#include "trace.h"
#include "nbd-internal.h"
#include "qemu/cutils.h"
@@ -867,7 +868,8 @@ static int nbd_list_meta_contexts(QIOChannel *ioc,
* 2: server is newstyle, but lacks structured replies
* 3: server is newstyle and set up for structured replies
*/
-static int nbd_start_negotiate(QIOChannel *ioc, QCryptoTLSCreds *tlscreds,
+static int nbd_start_negotiate(AioContext *aio_context, QIOChannel *ioc,
+ QCryptoTLSCreds *tlscreds,
const char *hostname, QIOChannel **outioc,
bool structured_reply, bool *zeroes,
Error **errp)
@@ -934,6 +936,10 @@ static int nbd_start_negotiate(QIOChannel *ioc, QCryptoTLSCreds *tlscreds,
return -EINVAL;
}
ioc = *outioc;
+ if (aio_context) {
+ qio_channel_set_blocking(ioc, false, NULL);
+ qio_channel_attach_aio_context(ioc, aio_context);
+ }
} else {
error_setg(errp, "Server does not support STARTTLS");
return -EINVAL;
@@ -998,7 +1004,8 @@ static int nbd_negotiate_finish_oldstyle(QIOChannel *ioc, NBDExportInfo *info,
* Returns: negative errno: failure talking to server
* 0: server is connected
*/
-int nbd_receive_negotiate(QIOChannel *ioc, QCryptoTLSCreds *tlscreds,
+int nbd_receive_negotiate(AioContext *aio_context, QIOChannel *ioc,
+ QCryptoTLSCreds *tlscreds,
const char *hostname, QIOChannel **outioc,
NBDExportInfo *info, Error **errp)
{
@@ -1009,7 +1016,7 @@ int nbd_receive_negotiate(QIOChannel *ioc, QCryptoTLSCreds *tlscreds,
assert(info->name);
trace_nbd_receive_negotiate_name(info->name);
- result = nbd_start_negotiate(ioc, tlscreds, hostname, outioc,
+ result = nbd_start_negotiate(aio_context, ioc, tlscreds, hostname, outioc,
info->structured_reply, &zeroes, errp);
info->structured_reply = false;
@@ -1129,8 +1136,8 @@ int nbd_receive_export_list(QIOChannel *ioc, QCryptoTLSCreds *tlscreds,
QIOChannel *sioc = NULL;
*info = NULL;
- result = nbd_start_negotiate(ioc, tlscreds, hostname, &sioc, true, NULL,
- errp);
+ result = nbd_start_negotiate(NULL, ioc, tlscreds, hostname, &sioc, true,
+ NULL, errp);
if (tlscreds && sioc) {
ioc = sioc;
}
diff --git a/nbd/nbd-internal.h b/nbd/nbd-internal.h
index 049f83df77..60629ef160 100644
--- a/nbd/nbd-internal.h
+++ b/nbd/nbd-internal.h
@@ -28,8 +28,6 @@
#endif
#include "qemu/bswap.h"
-#include "qemu/queue.h"
-#include "qemu/main-loop.h"
/* This is all part of the "official" NBD API.
*
diff --git a/nbd/server.c b/nbd/server.c
index 10faedcfc5..3eacb89875 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -19,6 +19,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "qemu/queue.h"
#include "trace.h"
#include "nbd-internal.h"
#include "qemu/units.h"
@@ -2104,12 +2105,15 @@ static int nbd_co_receive_request(NBDRequestData *req, NBDRequest *request,
return -EINVAL;
}
- req->data = blk_try_blockalign(client->exp->blk, request->len);
- if (req->data == NULL) {
- error_setg(errp, "No memory");
- return -ENOMEM;
+ if (request->type != NBD_CMD_CACHE) {
+ req->data = blk_try_blockalign(client->exp->blk, request->len);
+ if (req->data == NULL) {
+ error_setg(errp, "No memory");
+ return -ENOMEM;
+ }
}
}
+
if (request->type == NBD_CMD_WRITE) {
if (nbd_read(client->ioc, req->data, request->len, "CMD_WRITE data",
errp) < 0)
@@ -2194,7 +2198,7 @@ static coroutine_fn int nbd_do_cmd_read(NBDClient *client, NBDRequest *request,
int ret;
NBDExport *exp = client->exp;
- assert(request->type == NBD_CMD_READ || request->type == NBD_CMD_CACHE);
+ assert(request->type == NBD_CMD_READ);
/* XXX: NBD Protocol only documents use of FUA with WRITE */
if (request->flags & NBD_CMD_FLAG_FUA) {
@@ -2206,7 +2210,7 @@ static coroutine_fn int nbd_do_cmd_read(NBDClient *client, NBDRequest *request,
}
if (client->structured_reply && !(request->flags & NBD_CMD_FLAG_DF) &&
- request->len && request->type != NBD_CMD_CACHE)
+ request->len)
{
return nbd_co_send_sparse_read(client, request->handle, request->from,
data, request->len, errp);
@@ -2214,7 +2218,7 @@ static coroutine_fn int nbd_do_cmd_read(NBDClient *client, NBDRequest *request,
ret = blk_pread(exp->blk, request->from + exp->dev_offset, data,
request->len);
- if (ret < 0 || request->type == NBD_CMD_CACHE) {
+ if (ret < 0) {
return nbd_send_generic_reply(client, request->handle, ret,
"reading from file failed", errp);
}
@@ -2233,6 +2237,28 @@ static coroutine_fn int nbd_do_cmd_read(NBDClient *client, NBDRequest *request,
}
}
+/*
+ * nbd_do_cmd_cache
+ *
+ * Handle NBD_CMD_CACHE request.
+ * Return -errno if sending fails. Other errors are reported directly to the
+ * client as an error reply.
+ */
+static coroutine_fn int nbd_do_cmd_cache(NBDClient *client, NBDRequest *request,
+ Error **errp)
+{
+ int ret;
+ NBDExport *exp = client->exp;
+
+ assert(request->type == NBD_CMD_CACHE);
+
+ ret = blk_co_preadv(exp->blk, request->from + exp->dev_offset, request->len,
+ NULL, BDRV_REQ_COPY_ON_READ | BDRV_REQ_PREFETCH);
+
+ return nbd_send_generic_reply(client, request->handle, ret,
+ "caching data failed", errp);
+}
+
/* Handle NBD request.
* Return -errno if sending fails. Other errors are reported directly to the
* client as an error reply. */
@@ -2246,8 +2272,10 @@ static coroutine_fn int nbd_handle_request(NBDClient *client,
char *msg;
switch (request->type) {
- case NBD_CMD_READ:
case NBD_CMD_CACHE:
+ return nbd_do_cmd_cache(client, request, errp);
+
+ case NBD_CMD_READ:
return nbd_do_cmd_read(client, request, data, errp);
case NBD_CMD_WRITE:
diff --git a/net/can/can_socketcan.c b/net/can/can_socketcan.c
index 3dec108684..8a6ffad40c 100644
--- a/net/can/can_socketcan.c
+++ b/net/can/can_socketcan.c
@@ -27,6 +27,7 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qapi/error.h"
#include "chardev/char.h"
diff --git a/net/net.c b/net/net.c
index 7d4098254f..84aa6d8d00 100644
--- a/net/net.c
+++ b/net/net.c
@@ -27,6 +27,7 @@
#include "net/net.h"
#include "clients.h"
#include "hub.h"
+#include "hw/qdev-properties.h"
#include "net/slirp.h"
#include "net/eth.h"
#include "util.h"
@@ -42,7 +43,6 @@
#include "qemu/cutils.h"
#include "qemu/config-file.h"
#include "qemu/ctype.h"
-#include "hw/qdev.h"
#include "qemu/iov.h"
#include "qemu/main-loop.h"
#include "qemu/option.h"
@@ -50,6 +50,8 @@
#include "qapi/opts-visitor.h"
#include "sysemu/sysemu.h"
#include "sysemu/qtest.h"
+#include "sysemu/runstate.h"
+#include "sysemu/sysemu.h"
#include "net/filter.h"
#include "qapi/string-output-visitor.h"
diff --git a/net/netmap.c b/net/netmap.c
index 0cc8f545c5..350f097f91 100644
--- a/net/netmap.c
+++ b/net/netmap.c
@@ -38,6 +38,7 @@
#include "qapi/error.h"
#include "qemu/iov.h"
#include "qemu/cutils.h"
+#include "qemu/main-loop.h"
typedef struct NetmapState {
NetClientState nc;
diff --git a/net/tap-bsd.c b/net/tap-bsd.c
index 5695e3dd1f..a5c3707f80 100644
--- a/net/tap-bsd.c
+++ b/net/tap-bsd.c
@@ -27,7 +27,6 @@
#include "qapi/error.h"
#include "tap_int.h"
#include "qemu/cutils.h"
-#include "sysemu/sysemu.h"
#include "qemu/error-report.h"
#if defined(__NetBSD__) || defined(__FreeBSD__)
diff --git a/net/tap-linux.c b/net/tap-linux.c
index 941a45d7c3..e0dd442ee3 100644
--- a/net/tap-linux.c
+++ b/net/tap-linux.c
@@ -32,7 +32,6 @@
#include <net/if.h>
#include <sys/ioctl.h>
-#include "sysemu/sysemu.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/cutils.h"
diff --git a/net/tap-solaris.c b/net/tap-solaris.c
index 0e3f3e0a9b..4725d2314e 100644
--- a/net/tap-solaris.c
+++ b/net/tap-solaris.c
@@ -25,7 +25,6 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "tap_int.h"
-#include "sysemu/sysemu.h"
#include "qemu/ctype.h"
#include "qemu/cutils.h"
diff --git a/net/tap-win32.c b/net/tap-win32.c
index 662f9b63e1..2b5dcda36e 100644
--- a/net/tap-win32.c
+++ b/net/tap-win32.c
@@ -33,8 +33,8 @@
#include "clients.h" /* net_init_tap */
#include "net/net.h"
#include "net/tap.h" /* tap_has_ufo, ... */
-#include "sysemu/sysemu.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include <windows.h>
#include <winioctl.h>
diff --git a/net/tap.c b/net/tap.c
index fc38029f41..6207f61f84 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -40,6 +40,7 @@
#include "qemu-common.h"
#include "qemu/cutils.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/sockets.h"
#include "net/tap.h"
diff --git a/os-posix.c b/os-posix.c
index 3ba7df8d75..86cffd2c7d 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -31,11 +31,11 @@
#include "qemu-common.h"
/* Needed early for CONFIG_BSD etc. */
-#include "sysemu/sysemu.h"
#include "net/slirp.h"
#include "qemu-options.h"
#include "qemu/error-report.h"
#include "qemu/log.h"
+#include "sysemu/runstate.h"
#include "qemu/cutils.h"
#ifdef CONFIG_LINUX
diff --git a/os-win32.c b/os-win32.c
index 6d92189810..1336cd34f0 100644
--- a/os-win32.c
+++ b/os-win32.c
@@ -27,8 +27,8 @@
#include <windows.h>
#include <mmsystem.h>
#include "qemu-common.h"
-#include "sysemu/sysemu.h"
#include "qemu-options.h"
+#include "sysemu/runstate.h"
/***********************************************************/
/* Functions missing in mingw */
diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs
index c5a29e86e2..dd3f5e6f94 100644
--- a/qapi/Makefile.objs
+++ b/qapi/Makefile.objs
@@ -6,7 +6,7 @@ util-obj-y += qmp-event.o
util-obj-y += qapi-util.o
QAPI_COMMON_MODULES = audio authz block-core block char common crypto
-QAPI_COMMON_MODULES += dump introspect job machine migration misc net
+QAPI_COMMON_MODULES += dump error introspect job machine migration misc net
QAPI_COMMON_MODULES += qdev qom rdma rocker run-state sockets tpm
QAPI_COMMON_MODULES += trace transaction ui
QAPI_TARGET_MODULES = machine-target misc-target
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 0d43d4f37c..f1e7701fbe 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -3860,13 +3860,22 @@
# traditional "base:allocation" block status (see
# NBD_OPT_LIST_META_CONTEXT in the NBD protocol) (since 3.0)
#
+# @reconnect-delay: On an unexpected disconnect, the nbd client tries to
+# connect again until succeeding or encountering a serious
+# error. During the first @reconnect-delay seconds, all
+# requests are paused and will be rerun on a successful
+# reconnect. After that time, any delayed requests and all
+# future requests before a successful reconnect will
+# immediately fail. Default 0 (Since 4.2)
+#
# Since: 2.9
##
{ 'struct': 'BlockdevOptionsNbd',
'data': { 'server': 'SocketAddress',
'*export': 'str',
'*tls-creds': 'str',
- '*x-dirty-bitmap': 'str' } }
+ '*x-dirty-bitmap': 'str',
+ '*reconnect-delay': 'uint32' } }
##
# @BlockdevOptionsRaw:
diff --git a/qapi/common.json b/qapi/common.json
index 99d313ef3b..3d4e8de1e0 100644
--- a/qapi/common.json
+++ b/qapi/common.json
@@ -5,30 +5,6 @@
##
##
-# @QapiErrorClass:
-#
-# QEMU error classes
-#
-# @GenericError: this is used for errors that don't require a specific error
-# class. This should be the default case for most errors
-#
-# @CommandNotFound: the requested command has not been found
-#
-# @DeviceNotActive: a device has failed to be become active
-#
-# @DeviceNotFound: the requested device has not been found
-#
-# @KVMMissingCap: the requested operation can't be fulfilled because a
-# required KVM capability is missing
-#
-# Since: 1.2
-##
-{ 'enum': 'QapiErrorClass',
- # Keep this in sync with ErrorClass in error.h
- 'data': [ 'GenericError', 'CommandNotFound',
- 'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
-
-##
# @IoOperationType:
#
# An enumeration of the I/O operation types
diff --git a/qapi/error.json b/qapi/error.json
new file mode 100644
index 0000000000..3fad08f506
--- /dev/null
+++ b/qapi/error.json
@@ -0,0 +1,29 @@
+# -*- Mode: Python -*-
+
+##
+# = QMP errors
+##
+
+##
+# @QapiErrorClass:
+#
+# QEMU error classes
+#
+# @GenericError: this is used for errors that don't require a specific error
+# class. This should be the default case for most errors
+#
+# @CommandNotFound: the requested command has not been found
+#
+# @DeviceNotActive: a device has failed to be become active
+#
+# @DeviceNotFound: the requested device has not been found
+#
+# @KVMMissingCap: the requested operation can't be fulfilled because a
+# required KVM capability is missing
+#
+# Since: 1.2
+##
+{ 'enum': 'QapiErrorClass',
+ # Keep this in sync with ErrorClass in error.h
+ 'data': [ 'GenericError', 'CommandNotFound',
+ 'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
diff --git a/qapi/qapi-dealloc-visitor.c b/qapi/qapi-dealloc-visitor.c
index 89ccd905ec..d192724b13 100644
--- a/qapi/qapi-dealloc-visitor.c
+++ b/qapi/qapi-dealloc-visitor.c
@@ -15,7 +15,6 @@
#include "qemu/osdep.h"
#include "qapi/dealloc-visitor.h"
#include "qapi/qmp/qnull.h"
-#include "qemu/queue.h"
#include "qapi/visitor-impl.h"
struct QapiDeallocVisitor
diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
index 38af54d6b3..920b03b0aa 100644
--- a/qapi/qapi-schema.json
+++ b/qapi/qapi-schema.json
@@ -80,6 +80,7 @@
# stable order, it's best to include each sub-schema just once, or
# include it first right here.
+{ 'include': 'error.json' }
{ 'include': 'common.json' }
{ 'include': 'sockets.json' }
{ 'include': 'run-state.json' }
diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c
index e2c366e09e..3037d353a4 100644
--- a/qapi/qmp-dispatch.c
+++ b/qapi/qmp-dispatch.c
@@ -16,8 +16,8 @@
#include "qapi/qmp/dispatch.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qjson.h"
+#include "sysemu/runstate.h"
#include "qapi/qmp/qbool.h"
-#include "sysemu/sysemu.h"
static QDict *qmp_dispatch_check_obj(const QObject *request, bool allow_oob,
Error **errp)
diff --git a/qapi/sockets.json b/qapi/sockets.json
index fc81d8d5e8..32375f3a36 100644
--- a/qapi/sockets.json
+++ b/qapi/sockets.json
@@ -53,6 +53,9 @@
#
# @ipv6: whether to accept IPv6 addresses, default try both IPv4 and IPv6
#
+# @keep-alive: enable keep-alive when connecting to this socket. Not supported
+# for passive sockets. (Since 4.2)
+#
# Since: 1.3
##
{ 'struct': 'InetSocketAddress',
@@ -61,7 +64,8 @@
'*numeric': 'bool',
'*to': 'uint16',
'*ipv4': 'bool',
- '*ipv6': 'bool' } }
+ '*ipv6': 'bool',
+ '*keep-alive': 'bool' } }
##
# @UnixSocketAddress:
diff --git a/qdev-monitor.c b/qdev-monitor.c
index 58222c2211..a0003bf2a9 100644
--- a/qdev-monitor.c
+++ b/qdev-monitor.c
@@ -18,7 +18,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/qdev.h"
#include "hw/sysbus.h"
#include "monitor/monitor.h"
#include "monitor/qdev.h"
@@ -33,6 +32,7 @@
#include "qemu/option.h"
#include "qemu/qemu-print.h"
#include "sysemu/block-backend.h"
+#include "sysemu/sysemu.h"
#include "migration/misc.h"
/*
diff --git a/qemu-img.c b/qemu-img.c
index d9321f6418..c920e3564c 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -38,10 +38,10 @@
#include "qemu/option.h"
#include "qemu/error-report.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/units.h"
#include "qom/object_interfaces.h"
-#include "sysemu/sysemu.h"
#include "sysemu/block-backend.h"
#include "block/block_int.h"
#include "block/blockjob.h"
diff --git a/qemu-nbd.c b/qemu-nbd.c
index a8cb39e510..049645491d 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -362,7 +362,7 @@ static void *nbd_client_thread(void *arg)
goto out;
}
- ret = nbd_receive_negotiate(QIO_CHANNEL(sioc),
+ ret = nbd_receive_negotiate(NULL, QIO_CHANNEL(sioc),
NULL, NULL, NULL, &info, &local_error);
if (ret < 0) {
if (local_error) {
diff --git a/qom/cpu.c b/qom/cpu.c
index f376f782d8..aeb34f8c67 100644
--- a/qom/cpu.c
+++ b/qom/cpu.c
@@ -24,11 +24,10 @@
#include "sysemu/hw_accel.h"
#include "qemu/notify.h"
#include "qemu/log.h"
+#include "qemu/main-loop.h"
#include "exec/log.h"
-#include "exec/cpu-common.h"
#include "qemu/error-report.h"
#include "qemu/qemu-print.h"
-#include "sysemu/sysemu.h"
#include "sysemu/tcg.h"
#include "hw/boards.h"
#include "hw/qdev-properties.h"
diff --git a/qom/object.c b/qom/object.c
index 1555547727..6fa9c619fa 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -11,6 +11,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/qdev-core.h"
#include "qapi/error.h"
#include "qom/object.h"
#include "qom/object_interfaces.h"
diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c
index e046a0f190..236e8e41dd 100644
--- a/qom/qom-qmp-cmds.c
+++ b/qom/qom-qmp-cmds.c
@@ -14,7 +14,7 @@
*/
#include "qemu/osdep.h"
-#include "hw/qdev.h"
+#include "hw/qdev-core.h"
#include "qapi/error.h"
#include "qapi/qapi-commands-qdev.h"
#include "qapi/qapi-commands-qom.h"
diff --git a/qtest.c b/qtest.c
index 15e27e911f..59df1b6614 100644
--- a/qtest.c
+++ b/qtest.c
@@ -15,13 +15,12 @@
#include "qapi/error.h"
#include "cpu.h"
#include "sysemu/qtest.h"
-#include "hw/qdev.h"
+#include "sysemu/runstate.h"
#include "chardev/char-fe.h"
#include "exec/ioport.h"
#include "exec/memory.h"
#include "hw/irq.h"
#include "sysemu/accel.h"
-#include "sysemu/sysemu.h"
#include "sysemu/cpus.h"
#include "qemu/config-file.h"
#include "qemu/option.h"
@@ -748,8 +747,7 @@ static void qtest_event(void *opaque, int event)
break;
}
}
-
-void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp)
+void qtest_server_init(const char *qtest_chrdev, const char *qtest_log, Error **errp)
{
Chardev *chr;
diff --git a/replay/replay-audio.c b/replay/replay-audio.c
index b113836de4..178094e601 100644
--- a/replay/replay-audio.c
+++ b/replay/replay-audio.c
@@ -13,7 +13,6 @@
#include "qemu/error-report.h"
#include "sysemu/replay.h"
#include "replay-internal.h"
-#include "sysemu/sysemu.h"
#include "audio/audio.h"
void replay_audio_out(int *played)
diff --git a/replay/replay-char.c b/replay/replay-char.c
index 736cc8c2e6..dc0002367e 100644
--- a/replay/replay-char.c
+++ b/replay/replay-char.c
@@ -13,7 +13,6 @@
#include "qemu/error-report.h"
#include "sysemu/replay.h"
#include "replay-internal.h"
-#include "sysemu/sysemu.h"
#include "chardev/char.h"
/* Char drivers that generate qemu_chr_be_write events
diff --git a/replay/replay-internal.c b/replay/replay-internal.c
index 9e41ed1dcf..c013b23820 100644
--- a/replay/replay-internal.c
+++ b/replay/replay-internal.c
@@ -11,9 +11,10 @@
#include "qemu/osdep.h"
#include "sysemu/replay.h"
+#include "sysemu/runstate.h"
#include "replay-internal.h"
#include "qemu/error-report.h"
-#include "sysemu/sysemu.h"
+#include "qemu/main-loop.h"
/* Mutex to protect reading and writing events to the log.
data_kind and has_unread_data are also protected
diff --git a/replay/replay-net.c b/replay/replay-net.c
index 80b7054156..3b70f71cf1 100644
--- a/replay/replay-net.c
+++ b/replay/replay-net.c
@@ -13,7 +13,6 @@
#include "qemu/error-report.h"
#include "sysemu/replay.h"
#include "replay-internal.h"
-#include "sysemu/sysemu.h"
#include "net/net.h"
#include "net/filter.h"
#include "qemu/iov.h"
diff --git a/replay/replay-snapshot.c b/replay/replay-snapshot.c
index 756f48bc02..5dd8680480 100644
--- a/replay/replay-snapshot.c
+++ b/replay/replay-snapshot.c
@@ -13,7 +13,6 @@
#include "qapi/error.h"
#include "sysemu/replay.h"
#include "replay-internal.h"
-#include "sysemu/sysemu.h"
#include "monitor/monitor.h"
#include "qapi/qmp/qstring.h"
#include "qemu/error-report.h"
diff --git a/replay/replay.c b/replay/replay.c
index 8b172b2d1b..0c4e9c1318 100644
--- a/replay/replay.c
+++ b/replay/replay.c
@@ -12,12 +12,12 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "sysemu/replay.h"
+#include "sysemu/runstate.h"
#include "replay-internal.h"
#include "qemu/timer.h"
#include "qemu/main-loop.h"
#include "qemu/option.h"
#include "sysemu/cpus.h"
-#include "sysemu/sysemu.h"
#include "qemu/error-report.h"
/* Current version of the replay mechanism.
diff --git a/scripts/tracetool/format/c.py b/scripts/tracetool/format/c.py
index 833c05a022..31207961b0 100644
--- a/scripts/tracetool/format/c.py
+++ b/scripts/tracetool/format/c.py
@@ -28,6 +28,7 @@ def generate(events, backend, group):
out('/* This file is autogenerated by tracetool, do not edit. */',
'',
'#include "qemu/osdep.h"',
+ '#include "qemu/module.h"',
'#include "%s"' % header,
'')
diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py
index 338a2365ee..5596b304e6 100644
--- a/scripts/tracetool/format/h.py
+++ b/scripts/tracetool/format/h.py
@@ -17,12 +17,17 @@ from tracetool import out
def generate(events, backend, group):
+ if group == "root":
+ header = "trace/control-vcpu.h"
+ else:
+ header = "trace/control.h"
+
out('/* This file is autogenerated by tracetool, do not edit. */',
'',
'#ifndef TRACE_%s_GENERATED_TRACERS_H' % group.upper(),
'#define TRACE_%s_GENERATED_TRACERS_H' % group.upper(),
'',
- '#include "trace/control.h"',
+ '#include "%s"' % header,
'')
for e in events:
diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/format/log_stap.py
index 3ccbc09d61..9ab0cf2cce 100644
--- a/scripts/tracetool/format/log_stap.py
+++ b/scripts/tracetool/format/log_stap.py
@@ -30,9 +30,6 @@ def c_macro_to_format(macro):
if macro.startswith("PRI"):
return macro[3]
- if macro == "TARGET_FMT_plx":
- return "%016x"
-
raise Exception("Unhandled macro '%s'" % macro)
def c_fmt_to_stap(fmt):
diff --git a/stubs/change-state-handler.c b/stubs/change-state-handler.c
index d14194b36b..d1ed46bfb0 100644
--- a/stubs/change-state-handler.c
+++ b/stubs/change-state-handler.c
@@ -1,5 +1,5 @@
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
VMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb,
void *opaque)
diff --git a/stubs/replay.c b/stubs/replay.c
index 4ac607895d..10b3925e2f 100644
--- a/stubs/replay.c
+++ b/stubs/replay.c
@@ -1,6 +1,5 @@
#include "qemu/osdep.h"
#include "sysemu/replay.h"
-#include "sysemu/sysemu.h"
ReplayMode replay_mode;
diff --git a/stubs/runstate-check.c b/stubs/runstate-check.c
index 7c5227e848..2ccda2b70f 100644
--- a/stubs/runstate-check.c
+++ b/stubs/runstate-check.c
@@ -1,6 +1,6 @@
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
bool runstate_check(RunState state)
{
return state == RUN_STATE_PRELAUNCH;
diff --git a/stubs/semihost.c b/stubs/semihost.c
index 4d5b3c0653..f90589259c 100644
--- a/stubs/semihost.c
+++ b/stubs/semihost.c
@@ -12,6 +12,7 @@
#include "qemu/option.h"
#include "qemu/error-report.h"
#include "hw/semihosting/semihost.h"
+#include "sysemu/sysemu.h"
/* Empty config */
QemuOptsList qemu_semihosting_config_opts = {
diff --git a/stubs/vm-stop.c b/stubs/vm-stop.c
index 68e5f20eaf..7f8a9da8a5 100644
--- a/stubs/vm-stop.c
+++ b/stubs/vm-stop.c
@@ -1,6 +1,6 @@
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
void qemu_system_vmstop_request_prepare(void)
{
abort();
diff --git a/target/alpha/cpu.h b/target/alpha/cpu.h
index b3e8a823e1..4619530660 100644
--- a/target/alpha/cpu.h
+++ b/target/alpha/cpu.h
@@ -277,7 +277,7 @@ struct AlphaCPU {
#ifndef CONFIG_USER_ONLY
-extern const struct VMStateDescription vmstate_alpha_cpu;
+extern const VMStateDescription vmstate_alpha_cpu;
#endif
void alpha_cpu_do_interrupt(CPUState *cpu);
diff --git a/target/alpha/machine.c b/target/alpha/machine.c
index fdab596438..9d20169d4f 100644
--- a/target/alpha/machine.c
+++ b/target/alpha/machine.c
@@ -1,7 +1,5 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
-#include "hw/boards.h"
#include "migration/cpu.h"
static int get_fpcr(QEMUFile *f, void *opaque, size_t size,
diff --git a/target/alpha/sys_helper.c b/target/alpha/sys_helper.c
index f9c34b1144..39229236e1 100644
--- a/target/alpha/sys_helper.c
+++ b/target/alpha/sys_helper.c
@@ -21,6 +21,7 @@
#include "cpu.h"
#include "exec/exec-all.h"
#include "exec/helper-proto.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "qemu/timer.h"
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index 94c990cddb..2cdde6c4bc 100644
--- a/target/arm/cpu.h
+++ b/target/arm/cpu.h
@@ -922,7 +922,7 @@ void arm_cpu_post_init(Object *obj);
uint64_t arm_cpu_mp_affinity(int idx, uint8_t clustersz);
#ifndef CONFIG_USER_ONLY
-extern const struct VMStateDescription vmstate_arm_cpu;
+extern const VMStateDescription vmstate_arm_cpu;
#endif
void arm_cpu_do_interrupt(CPUState *cpu);
diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
index 1901997a06..e4edff548e 100644
--- a/target/arm/cpu64.c
+++ b/target/arm/cpu64.c
@@ -25,7 +25,6 @@
#if !defined(CONFIG_USER_ONLY)
#include "hw/loader.h"
#endif
-#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
#include "kvm_arm.h"
#include "qapi/visitor.h"
diff --git a/target/arm/helper-a64.c b/target/arm/helper-a64.c
index 060699b901..bca80bdc38 100644
--- a/target/arm/helper-a64.c
+++ b/target/arm/helper-a64.c
@@ -23,7 +23,7 @@
#include "exec/helper-proto.h"
#include "qemu/host-utils.h"
#include "qemu/log.h"
-#include "sysemu/sysemu.h"
+#include "qemu/main-loop.h"
#include "qemu/bitops.h"
#include "internals.h"
#include "qemu/crc32c.h"
diff --git a/target/arm/helper.c b/target/arm/helper.c
index b74c23a9bc..edee110ae1 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -5,6 +5,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "target/arm/idau.h"
@@ -14,12 +15,13 @@
#include "exec/gdbstub.h"
#include "exec/helper-proto.h"
#include "qemu/host-utils.h"
-#include "sysemu/sysemu.h"
+#include "qemu/main-loop.h"
#include "qemu/bitops.h"
#include "qemu/crc32c.h"
#include "qemu/qemu-print.h"
#include "exec/exec-all.h"
#include <zlib.h> /* For crc32 */
+#include "hw/irq.h"
#include "hw/semihosting/semihost.h"
#include "sysemu/cpus.h"
#include "sysemu/kvm.h"
diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index fe4f461d4e..b5713e3ffe 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -16,6 +16,7 @@
#include "qemu-common.h"
#include "qemu/timer.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
#include "sysemu/kvm_int.h"
@@ -27,6 +28,7 @@
#include "exec/memattrs.h"
#include "exec/address-spaces.h"
#include "hw/boards.h"
+#include "hw/irq.h"
#include "qemu/log.h"
const KVMCapabilityInfo kvm_arch_required_capabilities[] = {
diff --git a/target/arm/kvm32.c b/target/arm/kvm32.c
index 51f78f722b..2451a2d4bb 100644
--- a/target/arm/kvm32.c
+++ b/target/arm/kvm32.c
@@ -16,7 +16,6 @@
#include "qemu-common.h"
#include "cpu.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
#include "kvm_arm.h"
#include "internals.h"
diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c
index 22d19c9aec..59ed579d02 100644
--- a/target/arm/kvm64.c
+++ b/target/arm/kvm64.c
@@ -21,8 +21,8 @@
#include "qemu/timer.h"
#include "qemu/error-report.h"
#include "qemu/host-utils.h"
+#include "qemu/main-loop.h"
#include "exec/gdbstub.h"
-#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
#include "kvm_arm.h"
#include "internals.h"
diff --git a/target/arm/m_helper.c b/target/arm/m_helper.c
index 84609f446e..884d35d2b0 100644
--- a/target/arm/m_helper.c
+++ b/target/arm/m_helper.c
@@ -5,6 +5,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "target/arm/idau.h"
@@ -14,7 +15,7 @@
#include "exec/gdbstub.h"
#include "exec/helper-proto.h"
#include "qemu/host-utils.h"
-#include "sysemu/sysemu.h"
+#include "qemu/main-loop.h"
#include "qemu/bitops.h"
#include "qemu/crc32c.h"
#include "qemu/qemu-print.h"
diff --git a/target/arm/machine.c b/target/arm/machine.c
index 3fd319a309..5c36707a7c 100644
--- a/target/arm/machine.c
+++ b/target/arm/machine.c
@@ -1,7 +1,5 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
-#include "hw/boards.h"
#include "qemu/error-report.h"
#include "sysemu/kvm.h"
#include "kvm_arm.h"
diff --git a/target/arm/monitor.c b/target/arm/monitor.c
index 6ec6dd04ac..6457c3c87f 100644
--- a/target/arm/monitor.c
+++ b/target/arm/monitor.c
@@ -21,7 +21,6 @@
*/
#include "qemu/osdep.h"
-#include "hw/boards.h"
#include "kvm_arm.h"
#include "qapi/qapi-commands-misc-target.h"
diff --git a/target/arm/psci.c b/target/arm/psci.c
index a74d78802a..6709e28013 100644
--- a/target/arm/psci.c
+++ b/target/arm/psci.c
@@ -15,11 +15,13 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
#include "exec/helper-proto.h"
#include "kvm-consts.h"
-#include "sysemu/sysemu.h"
+#include "qemu/main-loop.h"
+#include "sysemu/runstate.h"
#include "internals.h"
#include "arm-powerctl.h"
diff --git a/target/cris/cpu.h b/target/cris/cpu.h
index fb14ad51f1..aba0a66474 100644
--- a/target/cris/cpu.h
+++ b/target/cris/cpu.h
@@ -183,7 +183,7 @@ struct CRISCPU {
#ifndef CONFIG_USER_ONLY
-extern const struct VMStateDescription vmstate_cris_cpu;
+extern const VMStateDescription vmstate_cris_cpu;
#endif
void cris_cpu_do_interrupt(CPUState *cpu);
diff --git a/target/cris/machine.c b/target/cris/machine.c
index ecec41c2c8..be38a89377 100644
--- a/target/cris/machine.c
+++ b/target/cris/machine.c
@@ -20,7 +20,6 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
#include "migration/cpu.h"
static const VMStateDescription vmstate_tlbset = {
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index aab251bc4b..4b816cc13a 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -22,7 +22,7 @@
#include "cpu-qom.h"
#include "exec/cpu-defs.h"
-
+#include "exec/memory.h"
/* PA-RISC 1.x processors have a strong memory model. */
/* ??? While we do not yet implement PA-RISC 2.0, those processors have
@@ -334,7 +334,7 @@ bool hppa_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
int type, hwaddr *pphys, int *pprot);
extern const MemoryRegionOps hppa_io_eir_ops;
-extern const struct VMStateDescription vmstate_hppa_cpu;
+extern const VMStateDescription vmstate_hppa_cpu;
void hppa_cpu_alarm_timer(void *);
int hppa_artype_for_page(CPUHPPAState *env, target_ulong vaddr);
#endif
diff --git a/target/hppa/machine.c b/target/hppa/machine.c
index 73e8121bde..7030101724 100644
--- a/target/hppa/machine.c
+++ b/target/hppa/machine.c
@@ -19,8 +19,6 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
-#include "hw/boards.h"
#include "migration/cpu.h"
#if TARGET_REGISTER_BITS == 64
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index 04d23c1b22..df0f1361ef 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -22,8 +22,8 @@
#include "exec/exec-all.h"
#include "exec/helper-proto.h"
#include "exec/cpu_ldst.h"
-#include "sysemu/sysemu.h"
#include "qemu/timer.h"
+#include "sysemu/runstate.h"
#include "fpu/softfloat.h"
#include "trace.h"
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 19751e37a7..ff65e11008 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -26,6 +26,7 @@
#include "cpu.h"
#include "exec/exec-all.h"
#include "sysemu/kvm.h"
+#include "sysemu/reset.h"
#include "sysemu/hvf.h"
#include "sysemu/cpus.h"
#include "kvm_i386.h"
@@ -53,7 +54,6 @@
#include "hw/i386/topology.h"
#ifndef CONFIG_USER_ONLY
#include "exec/address-spaces.h"
-#include "hw/hw.h"
#include "hw/xen/xen.h"
#include "hw/i386/apic_internal.h"
#include "hw/boards.h"
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 8b3dc5533e..ecd0ec0899 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -1516,7 +1516,7 @@ struct X86CPU {
#ifndef CONFIG_USER_ONLY
-extern struct VMStateDescription vmstate_x86_cpu;
+extern VMStateDescription vmstate_x86_cpu;
#endif
/**
diff --git a/target/i386/excp_helper.c b/target/i386/excp_helper.c
index a9bca7c28b..1447bda7a9 100644
--- a/target/i386/excp_helper.c
+++ b/target/i386/excp_helper.c
@@ -21,7 +21,7 @@
#include "cpu.h"
#include "exec/exec-all.h"
#include "qemu/log.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "exec/helper-proto.h"
void helper_raise_interrupt(CPUX86State *env, int intno, int next_eip_addend)
diff --git a/target/i386/hax-all.c b/target/i386/hax-all.c
index 9e7b77965d..a8b6e5aeb8 100644
--- a/target/i386/hax-all.c
+++ b/target/i386/hax-all.c
@@ -30,7 +30,8 @@
#include "qemu-common.h"
#include "hax-i386.h"
#include "sysemu/accel.h"
-#include "sysemu/sysemu.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "qemu/main-loop.h"
#include "hw/boards.h"
diff --git a/target/i386/helper.c b/target/i386/helper.c
index 23024926ac..0fa51be646 100644
--- a/target/i386/helper.c
+++ b/target/i386/helper.c
@@ -22,9 +22,9 @@
#include "exec/exec-all.h"
#include "qemu/qemu-print.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "kvm_i386.h"
#ifndef CONFIG_USER_ONLY
-#include "sysemu/sysemu.h"
#include "sysemu/tcg.h"
#include "sysemu/hw_accel.h"
#include "monitor/monitor.h"
diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c
index dc4bb63536..231732aaf7 100644
--- a/target/i386/hvf/hvf.c
+++ b/target/i386/hvf/hvf.c
@@ -45,11 +45,13 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/error-report.h"
#include "sysemu/hvf.h"
+#include "sysemu/runstate.h"
#include "hvf-i386.h"
#include "vmcs.h"
#include "vmx.h"
@@ -66,10 +68,8 @@
#include "exec/address-spaces.h"
#include "hw/i386/apic_internal.h"
-#include "hw/boards.h"
#include "qemu/main-loop.h"
#include "sysemu/accel.h"
-#include "sysemu/sysemu.h"
#include "target/i386/cpu.h"
HVFState *hvf_state;
diff --git a/target/i386/hvf/x86_task.c b/target/i386/hvf/x86_task.c
index 7099335e89..1daac6cc2b 100644
--- a/target/i386/hvf/x86_task.c
+++ b/target/i386/hvf/x86_task.c
@@ -27,10 +27,8 @@
#include <Hypervisor/hv_vmx.h>
#include "hw/i386/apic_internal.h"
-#include "hw/boards.h"
#include "qemu/main-loop.h"
#include "sysemu/accel.h"
-#include "sysemu/sysemu.h"
#include "target/i386/cpu.h"
// TODO: taskswitch handling
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index dbbb13772a..2abc881324 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
@@ -24,12 +24,15 @@
#include "sysemu/sysemu.h"
#include "sysemu/hw_accel.h"
#include "sysemu/kvm_int.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "kvm_i386.h"
#include "hyperv.h"
#include "hyperv-proto.h"
#include "exec/gdbstub.h"
#include "qemu/host-utils.h"
+#include "qemu/main-loop.h"
#include "qemu/config-file.h"
#include "qemu/error-report.h"
#include "hw/i386/pc.h"
diff --git a/target/i386/machine.c b/target/i386/machine.c
index b1146093b5..ce55755f0f 100644
--- a/target/i386/machine.c
+++ b/target/i386/machine.c
@@ -1,8 +1,6 @@
#include "qemu/osdep.h"
#include "cpu.h"
#include "exec/exec-all.h"
-#include "hw/hw.h"
-#include "hw/boards.h"
#include "hw/i386/pc.h"
#include "hw/isa/isa.h"
#include "migration/cpu.h"
diff --git a/target/i386/monitor.c b/target/i386/monitor.c
index 1f3b532fc2..9fb4d641d5 100644
--- a/target/i386/monitor.c
+++ b/target/i386/monitor.c
@@ -33,6 +33,7 @@
#include "sysemu/sev.h"
#include "qapi/error.h"
#include "sev_i386.h"
+#include "qapi/qapi-commands-misc-target.h"
#include "qapi/qapi-commands-misc.h"
/* Perform linear address sign extension */
diff --git a/target/i386/sev.c b/target/i386/sev.c
index f1423cb0c0..024bb24e51 100644
--- a/target/i386/sev.c
+++ b/target/i386/sev.c
@@ -25,6 +25,7 @@
#include "sysemu/kvm.h"
#include "sev_i386.h"
#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "trace.h"
#include "migration/blocker.h"
diff --git a/target/i386/sev_i386.h b/target/i386/sev_i386.h
index 55313441ae..8ada9d385d 100644
--- a/target/i386/sev_i386.h
+++ b/target/i386/sev_i386.h
@@ -19,7 +19,7 @@
#include "sysemu/kvm.h"
#include "sysemu/sev.h"
#include "qemu/error-report.h"
-#include "qapi/qapi-commands-misc-target.h"
+#include "qapi/qapi-types-misc-target.h"
#define SEV_POLICY_NODBG 0x1
#define SEV_POLICY_NOKS 0x2
diff --git a/target/i386/whpx-all.c b/target/i386/whpx-all.c
index ed95105eae..0c15241ae4 100644
--- a/target/i386/whpx-all.c
+++ b/target/i386/whpx-all.c
@@ -15,12 +15,10 @@
#include "qemu-common.h"
#include "sysemu/accel.h"
#include "sysemu/whpx.h"
-#include "sysemu/sysemu.h"
#include "sysemu/cpus.h"
+#include "sysemu/runstate.h"
#include "qemu/main-loop.h"
-#include "hw/boards.h"
#include "qemu/error-report.h"
-#include "qemu/queue.h"
#include "qapi/error.h"
#include "migration/blocker.h"
#include "whp-dispatch.h"
diff --git a/target/lm32/cpu.h b/target/lm32/cpu.h
index c2bbfa2780..064c6b1267 100644
--- a/target/lm32/cpu.h
+++ b/target/lm32/cpu.h
@@ -195,7 +195,7 @@ struct LM32CPU {
#ifndef CONFIG_USER_ONLY
-extern const struct VMStateDescription vmstate_lm32_cpu;
+extern const VMStateDescription vmstate_lm32_cpu;
#endif
void lm32_cpu_do_interrupt(CPUState *cpu);
diff --git a/target/lm32/helper.c b/target/lm32/helper.c
index 9f3b107474..1130fc8884 100644
--- a/target/lm32/helper.c
+++ b/target/lm32/helper.c
@@ -21,7 +21,6 @@
#include "cpu.h"
#include "exec/exec-all.h"
#include "qemu/host-utils.h"
-#include "sysemu/sysemu.h"
#include "hw/semihosting/semihost.h"
#include "exec/log.h"
diff --git a/target/lm32/machine.c b/target/lm32/machine.c
index cc46f77324..365eaa2e47 100644
--- a/target/lm32/machine.c
+++ b/target/lm32/machine.c
@@ -1,7 +1,5 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
-#include "hw/boards.h"
#include "migration/cpu.h"
static const VMStateDescription vmstate_env = {
diff --git a/target/lm32/op_helper.c b/target/lm32/op_helper.c
index d184550a7b..e39fcd5647 100644
--- a/target/lm32/op_helper.c
+++ b/target/lm32/op_helper.c
@@ -2,6 +2,8 @@
#include "cpu.h"
#include "exec/helper-proto.h"
#include "qemu/host-utils.h"
+#include "qemu/main-loop.h"
+#include "sysemu/runstate.h"
#include "hw/lm32/lm32_pic.h"
#include "hw/char/lm32_juart.h"
@@ -10,7 +12,6 @@
#include "exec/cpu_ldst.h"
#ifndef CONFIG_USER_ONLY
-#include "sysemu/sysemu.h"
#endif
#if !defined(CONFIG_USER_ONLY)
diff --git a/target/m68k/m68k-semi.c b/target/m68k/m68k-semi.c
index 01627b42c9..8e5fbfc8fa 100644
--- a/target/m68k/m68k-semi.c
+++ b/target/m68k/m68k-semi.c
@@ -28,7 +28,6 @@
#include "exec/softmmu-semi.h"
#endif
#include "qemu/log.h"
-#include "sysemu/sysemu.h"
#define HOSTED_EXIT 0
#define HOSTED_INIT_SIM 1
diff --git a/target/mips/cp0_timer.c b/target/mips/cp0_timer.c
index f4716395df..48c18d7818 100644
--- a/target/mips/cp0_timer.c
+++ b/target/mips/cp0_timer.c
@@ -21,6 +21,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/mips/cpudevs.h"
#include "qemu/timer.h"
#include "sysemu/kvm.h"
diff --git a/target/mips/internal.h b/target/mips/internal.h
index b2b41a51ab..d5aa5490d3 100644
--- a/target/mips/internal.h
+++ b/target/mips/internal.h
@@ -148,7 +148,7 @@ hwaddr cpu_mips_translate_address(CPUMIPSState *env, target_ulong address,
#define cpu_signal_handler cpu_mips_signal_handler
#ifndef CONFIG_USER_ONLY
-extern const struct VMStateDescription vmstate_mips_cpu;
+extern const VMStateDescription vmstate_mips_cpu;
#endif
static inline bool cpu_mips_hw_interrupts_enabled(CPUMIPSState *env)
diff --git a/target/mips/kvm.c b/target/mips/kvm.c
index 938f8f144b..578bc14625 100644
--- a/target/mips/kvm.c
+++ b/target/mips/kvm.c
@@ -18,9 +18,10 @@
#include "cpu.h"
#include "internal.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
#include "sysemu/kvm.h"
+#include "sysemu/runstate.h"
#include "sysemu/cpus.h"
#include "kvm_mips.h"
#include "exec/memattrs.h"
diff --git a/target/mips/machine.c b/target/mips/machine.c
index eb2d97001d..7f4b5d524d 100644
--- a/target/mips/machine.c
+++ b/target/mips/machine.c
@@ -1,7 +1,6 @@
#include "qemu/osdep.h"
#include "cpu.h"
#include "internal.h"
-#include "hw/hw.h"
#include "migration/cpu.h"
static int cpu_post_load(void *opaque, int version_id)
diff --git a/target/moxie/machine.c b/target/moxie/machine.c
index 322a724e6f..d0f177048c 100644
--- a/target/moxie/machine.c
+++ b/target/moxie/machine.c
@@ -1,7 +1,5 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
-#include "hw/boards.h"
#include "machine.h"
#include "migration/cpu.h"
diff --git a/target/nios2/nios2-semi.c b/target/nios2/nios2-semi.c
index cc2777d2f8..d7a80dd303 100644
--- a/target/nios2/nios2-semi.c
+++ b/target/nios2/nios2-semi.c
@@ -32,7 +32,6 @@
#include "exec/softmmu-semi.h"
#endif
#include "qemu/log.h"
-#include "sysemu/sysemu.h"
#define HOSTED_EXIT 0
#define HOSTED_INIT_SIM 1
diff --git a/target/openrisc/cpu.h b/target/openrisc/cpu.h
index f23b25262d..61ade1d4f0 100644
--- a/target/openrisc/cpu.h
+++ b/target/openrisc/cpu.h
@@ -333,7 +333,7 @@ int print_insn_or1k(bfd_vma addr, disassemble_info *info);
#define cpu_signal_handler cpu_openrisc_signal_handler
#ifndef CONFIG_USER_ONLY
-extern const struct VMStateDescription vmstate_openrisc_cpu;
+extern const VMStateDescription vmstate_openrisc_cpu;
/* hw/openrisc_pic.c */
void cpu_openrisc_pic_init(OpenRISCCPU *cpu);
diff --git a/target/openrisc/machine.c b/target/openrisc/machine.c
index 9fa285217d..0a96404dc6 100644
--- a/target/openrisc/machine.c
+++ b/target/openrisc/machine.c
@@ -19,8 +19,6 @@
#include "qemu/osdep.h"
#include "cpu.h"
-#include "hw/hw.h"
-#include "hw/boards.h"
#include "migration/cpu.h"
static const VMStateDescription vmstate_tlb_entry = {
diff --git a/target/ppc/cpu-qom.h b/target/ppc/cpu-qom.h
index be9b4c30c3..a2f202f021 100644
--- a/target/ppc/cpu-qom.h
+++ b/target/ppc/cpu-qom.h
@@ -203,7 +203,7 @@ typedef struct PPCTimebase {
int64_t time_of_the_day_ns;
} PPCTimebase;
-extern const struct VMStateDescription vmstate_ppc_timebase;
+extern const VMStateDescription vmstate_ppc_timebase;
#define VMSTATE_PPC_TIMEBASE_V(_field, _state, _version) { \
.name = (stringify(_field)), \
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index c9beba2a5c..4ea33cf696 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -1255,7 +1255,7 @@ int ppc32_cpu_write_elf32_note(WriteCoreDumpFunction f, CPUState *cs,
int cpuid, void *opaque);
#ifndef CONFIG_USER_ONLY
void ppc_cpu_do_system_reset(CPUState *cs);
-extern const struct VMStateDescription vmstate_ppc_cpu;
+extern const VMStateDescription vmstate_ppc_cpu;
#endif
/*****************************************************************************/
diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c
index 5c07ef3e4d..8f037af956 100644
--- a/target/ppc/int_helper.c
+++ b/target/ppc/int_helper.c
@@ -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/>.
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
#include "internal.h"
#include "qemu/host-utils.h"
+#include "qemu/main-loop.h"
#include "exec/helper-proto.h"
#include "crypto/aes.h"
#include "fpu/softfloat.h"
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 8a06d3171e..6162a903fa 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -27,7 +27,6 @@
#include "cpu.h"
#include "cpu-models.h"
#include "qemu/timer.h"
-#include "sysemu/sysemu.h"
#include "sysemu/hw_accel.h"
#include "kvm_ppc.h"
#include "sysemu/cpus.h"
@@ -37,7 +36,9 @@
#include "hw/sysbus.h"
#include "hw/ppc/spapr.h"
#include "hw/ppc/spapr_cpu_core.h"
+#include "hw/hw.h"
#include "hw/ppc/ppc.h"
+#include "migration/qemu-file-types.h"
#include "sysemu/watchdog.h"
#include "trace.h"
#include "exec/gdbstub.h"
@@ -45,6 +46,7 @@
#include "exec/ram_addr.h"
#include "sysemu/hostmem.h"
#include "qemu/cutils.h"
+#include "qemu/main-loop.h"
#include "qemu/mmap-alloc.h"
#include "elf.h"
#include "sysemu/kvm_int.h"
diff --git a/target/ppc/machine.c b/target/ppc/machine.c
index e82f5de9db..109d071162 100644
--- a/target/ppc/machine.c
+++ b/target/ppc/machine.c
@@ -1,13 +1,12 @@
#include "qemu/osdep.h"
#include "cpu.h"
#include "exec/exec-all.h"
-#include "hw/hw.h"
-#include "hw/boards.h"
#include "sysemu/kvm.h"
#include "helper_regs.h"
#include "mmu-hash64.h"
#include "migration/cpu.h"
#include "qapi/error.h"
+#include "qemu/main-loop.h"
#include "kvm_ppc.h"
#include "exec/helper-proto.h"
diff --git a/target/ppc/mem_helper.c b/target/ppc/mem_helper.c
index 6f4ffa3661..1351b53f28 100644
--- a/target/ppc/mem_helper.c
+++ b/target/ppc/mem_helper.c
@@ -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/>.
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
#include "exec/exec-all.h"
#include "qemu/host-utils.h"
+#include "qemu/main-loop.h"
#include "exec/helper-proto.h"
#include "helper_regs.h"
#include "exec/cpu_ldst.h"
diff --git a/target/ppc/misc_helper.c b/target/ppc/misc_helper.c
index 49a8a02363..2318f3ab45 100644
--- a/target/ppc/misc_helper.c
+++ b/target/ppc/misc_helper.c
@@ -16,11 +16,13 @@
* 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/>.
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
#include "exec/exec-all.h"
#include "exec/helper-proto.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "helper_regs.h"
diff --git a/target/ppc/mmu_helper.c b/target/ppc/mmu_helper.c
index 261a8fe707..55f7a7f16a 100644
--- a/target/ppc/mmu_helper.c
+++ b/target/ppc/mmu_helper.c
@@ -16,6 +16,7 @@
* 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/>.
*/
+
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "cpu.h"
@@ -29,6 +30,7 @@
#include "exec/log.h"
#include "helper_regs.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/qemu-print.h"
#include "mmu-book3s-v3.h"
#include "mmu-radix64.h"
diff --git a/target/ppc/translate.c b/target/ppc/translate.c
index 4a5de28036..9f9553afb4 100644
--- a/target/ppc/translate.c
+++ b/target/ppc/translate.c
@@ -26,6 +26,7 @@
#include "tcg-op.h"
#include "tcg-op-gvec.h"
#include "qemu/host-utils.h"
+#include "qemu/main-loop.h"
#include "exec/cpu_ldst.h"
#include "exec/helper-proto.h"
diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
index 736a7903e2..9466cd832d 100644
--- a/target/s390x/cpu.c
+++ b/target/s390x/cpu.c
@@ -26,6 +26,7 @@
#include "internal.h"
#include "kvm_s390x.h"
#include "sysemu/kvm.h"
+#include "sysemu/reset.h"
#include "qemu/timer.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
@@ -36,7 +37,6 @@
#include "sysemu/hw_accel.h"
#include "hw/qdev-properties.h"
#ifndef CONFIG_USER_ONLY
-#include "hw/hw.h"
#include "hw/boards.h"
#include "sysemu/arch_init.h"
#include "sysemu/sysemu.h"
diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
index a606547b4d..3d9de25f7c 100644
--- a/target/s390x/cpu.h
+++ b/target/s390x/cpu.h
@@ -163,7 +163,7 @@ struct S390CPU {
#ifndef CONFIG_USER_ONLY
-extern const struct VMStateDescription vmstate_s390_cpu;
+extern const VMStateDescription vmstate_s390_cpu;
#endif
/* distinguish between 24 bit and 31 bit addressing */
diff --git a/target/s390x/helper.c b/target/s390x/helper.c
index 13ae9909ad..1350ad319a 100644
--- a/target/s390x/helper.c
+++ b/target/s390x/helper.c
@@ -26,8 +26,8 @@
#include "qemu/qemu-print.h"
#include "hw/s390x/ioinst.h"
#include "sysemu/hw_accel.h"
+#include "sysemu/runstate.h"
#ifndef CONFIG_USER_ONLY
-#include "sysemu/sysemu.h"
#include "sysemu/tcg.h"
#endif
diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
index 6e814c230b..cea71ac7c3 100644
--- a/target/s390x/kvm.c
+++ b/target/s390x/kvm.c
@@ -32,11 +32,12 @@
#include "qemu/error-report.h"
#include "qemu/timer.h"
#include "qemu/units.h"
+#include "qemu/main-loop.h"
#include "qemu/mmap-alloc.h"
#include "qemu/log.h"
#include "sysemu/sysemu.h"
#include "sysemu/hw_accel.h"
-#include "hw/hw.h"
+#include "sysemu/runstate.h"
#include "sysemu/device_tree.h"
#include "exec/gdbstub.h"
#include "exec/ram_addr.h"
diff --git a/target/s390x/machine.c b/target/s390x/machine.c
index 1e9526e937..549bb6c280 100644
--- a/target/s390x/machine.c
+++ b/target/s390x/machine.c
@@ -15,10 +15,10 @@
*/
#include "qemu/osdep.h"
-#include "hw/hw.h"
#include "cpu.h"
#include "internal.h"
#include "kvm_s390x.h"
+#include "migration/vmstate.h"
#include "tcg_s390x.h"
#include "sysemu/kvm.h"
#include "sysemu/tcg.h"
diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c
index 6e9c4d6151..7a563110f0 100644
--- a/target/s390x/mmu_helper.c
+++ b/target/s390x/mmu_helper.c
@@ -25,6 +25,7 @@
#include "sysemu/tcg.h"
#include "exec/exec-all.h"
#include "trace.h"
+#include "hw/hw.h"
#include "hw/s390x/storage-keys.h"
/* #define DEBUG_S390 */
diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c
index 8348b7035e..2ce22d4dc1 100644
--- a/target/s390x/sigp.c
+++ b/target/s390x/sigp.c
@@ -12,9 +12,9 @@
#include "cpu.h"
#include "internal.h"
#include "sysemu/hw_accel.h"
+#include "sysemu/runstate.h"
#include "exec/address-spaces.h"
#include "exec/exec-all.h"
-#include "sysemu/sysemu.h"
#include "sysemu/tcg.h"
#include "trace.h"
#include "qapi/qapi-types-machine.h"
diff --git a/target/sh4/helper.c b/target/sh4/helper.c
index 2afc1770d8..408478ce5d 100644
--- a/target/sh4/helper.c
+++ b/target/sh4/helper.c
@@ -16,15 +16,16 @@
* 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/>.
*/
+
#include "qemu/osdep.h"
#include "cpu.h"
#include "exec/exec-all.h"
#include "exec/log.h"
-#include "sysemu/sysemu.h"
#if !defined(CONFIG_USER_ONLY)
#include "hw/sh4/sh_intc.h"
+#include "sysemu/runstate.h"
#endif
#define MMU_OK 0
diff --git a/target/sparc/cpu.h b/target/sparc/cpu.h
index 8ed2250cd0..0d5b01efe5 100644
--- a/target/sparc/cpu.h
+++ b/target/sparc/cpu.h
@@ -532,7 +532,7 @@ struct SPARCCPU {
#ifndef CONFIG_USER_ONLY
-extern const struct VMStateDescription vmstate_sparc_cpu;
+extern const VMStateDescription vmstate_sparc_cpu;
#endif
void sparc_cpu_do_interrupt(CPUState *cpu);
diff --git a/target/sparc/helper.c b/target/sparc/helper.c
index 1a52061fbf..07d87efa4e 100644
--- a/target/sparc/helper.c
+++ b/target/sparc/helper.c
@@ -22,7 +22,6 @@
#include "exec/exec-all.h"
#include "qemu/host-utils.h"
#include "exec/helper-proto.h"
-#include "sysemu/sysemu.h"
void cpu_raise_exception_ra(CPUSPARCState *env, int tt, uintptr_t ra)
{
diff --git a/target/sparc/int32_helper.c b/target/sparc/int32_helper.c
index c7724928c0..813b47dbb2 100644
--- a/target/sparc/int32_helper.c
+++ b/target/sparc/int32_helper.c
@@ -20,8 +20,8 @@
#include "qemu/osdep.h"
#include "cpu.h"
#include "trace.h"
-#include "sysemu/sysemu.h"
#include "exec/log.h"
+#include "sysemu/runstate.h"
#define DEBUG_PCALL
diff --git a/target/sparc/machine.c b/target/sparc/machine.c
index 32d453c008..f38cf229af 100644
--- a/target/sparc/machine.c
+++ b/target/sparc/machine.c
@@ -1,8 +1,6 @@
#include "qemu/osdep.h"
#include "cpu.h"
#include "exec/exec-all.h"
-#include "hw/hw.h"
-#include "hw/boards.h"
#include "qemu/timer.h"
#include "migration/cpu.h"
diff --git a/target/tilegx/cpu.c b/target/tilegx/cpu.c
index 69971247f2..2b2a7ccc31 100644
--- a/target/tilegx/cpu.c
+++ b/target/tilegx/cpu.c
@@ -22,7 +22,6 @@
#include "qapi/error.h"
#include "cpu.h"
#include "qemu/module.h"
-#include "hw/qdev-properties.h"
#include "linux-user/syscall_defs.h"
#include "qemu/qemu-print.h"
#include "exec/exec-all.h"
diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c
index 6f1da87875..fa12a576b2 100644
--- a/target/xtensa/translate.c
+++ b/target/xtensa/translate.c
@@ -36,7 +36,6 @@
#include "tcg-op.h"
#include "qemu/log.h"
#include "qemu/qemu-print.h"
-#include "sysemu/sysemu.h"
#include "exec/cpu_ldst.h"
#include "hw/semihosting/semihost.h"
#include "exec/translator.h"
diff --git a/target/xtensa/xtensa-semi.c b/target/xtensa/xtensa-semi.c
index 8862985e56..25f57a6500 100644
--- a/target/xtensa/xtensa-semi.c
+++ b/target/xtensa/xtensa-semi.c
@@ -32,7 +32,6 @@
#include "hw/semihosting/semihost.h"
#include "qapi/error.h"
#include "qemu/log.h"
-#include "sysemu/sysemu.h"
enum {
TARGET_SYS_exit = 1,
diff --git a/tcg/optimize.c b/tcg/optimize.c
index d2424de4af..cee2a36a60 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -24,7 +24,6 @@
*/
#include "qemu/osdep.h"
-#include "exec/cpu-common.h"
#include "tcg-op.h"
#define CASE_OP_32_64(x) \
diff --git a/tcg/tcg-common.c b/tcg/tcg-common.c
index 907d58d0f0..97305a3efc 100644
--- a/tcg/tcg-common.c
+++ b/tcg/tcg-common.c
@@ -23,7 +23,6 @@
*/
#include "qemu/osdep.h"
-#include "exec/cpu-common.h"
#include "tcg/tcg.h"
#if defined(CONFIG_TCG_INTERPRETER)
diff --git a/tcg/tcg-op-gvec.c b/tcg/tcg-op-gvec.c
index 17679b6e2f..5c95ecd51c 100644
--- a/tcg/tcg-op-gvec.c
+++ b/tcg/tcg-op-gvec.c
@@ -21,6 +21,7 @@
#include "tcg.h"
#include "tcg-op.h"
#include "tcg-op-gvec.h"
+#include "qemu/main-loop.h"
#include "tcg-gvec-desc.h"
#define MAX_UNROLL 4
diff --git a/tcg/tcg.c b/tcg/tcg.c
index be2c33c400..2db83ce2e8 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -42,7 +42,6 @@
#define NO_CPU_IO_DEFS
#include "cpu.h"
-#include "exec/cpu-common.h"
#include "exec/exec-all.h"
#if !defined(CONFIG_USER_ONLY)
diff --git a/tests/cpu-plug-test.c b/tests/cpu-plug-test.c
index 668f00144e..3049620854 100644
--- a/tests/cpu-plug-test.c
+++ b/tests/cpu-plug-test.c
@@ -77,18 +77,19 @@ static void test_plug_with_device_add_x86(gconstpointer data)
const PlugTestData *td = data;
char *args;
unsigned int s, c, t;
+ QTestState *qts;
args = g_strdup_printf("-machine %s -cpu %s "
"-smp 1,sockets=%u,cores=%u,threads=%u,maxcpus=%u",
td->machine, td->cpu_model,
td->sockets, td->cores, td->threads, td->maxcpus);
- qtest_start(args);
+ qts = qtest_init(args);
for (s = 1; s < td->sockets; s++) {
for (c = 0; c < td->cores; c++) {
for (t = 0; t < td->threads; t++) {
char *id = g_strdup_printf("id-%i-%i-%i", s, c, t);
- qtest_qmp_device_add(td->device_model, id,
+ qtest_qmp_device_add(qts, td->device_model, id,
"{'socket-id':%u, 'core-id':%u,"
" 'thread-id':%u}",
s, c, t);
@@ -97,7 +98,7 @@ static void test_plug_with_device_add_x86(gconstpointer data)
}
}
- qtest_end();
+ qtest_quit(qts);
g_free(args);
}
@@ -106,20 +107,22 @@ static void test_plug_with_device_add_coreid(gconstpointer data)
const PlugTestData *td = data;
char *args;
unsigned int c;
+ QTestState *qts;
args = g_strdup_printf("-machine %s -cpu %s "
"-smp 1,sockets=%u,cores=%u,threads=%u,maxcpus=%u",
td->machine, td->cpu_model,
td->sockets, td->cores, td->threads, td->maxcpus);
- qtest_start(args);
+ qts = qtest_init(args);
for (c = 1; c < td->cores; c++) {
char *id = g_strdup_printf("id-%i", c);
- qtest_qmp_device_add(td->device_model, id, "{'core-id':%u}", c);
+ qtest_qmp_device_add(qts, td->device_model, id,
+ "{'core-id':%u}", c);
g_free(id);
}
- qtest_end();
+ qtest_quit(qts);
g_free(args);
}
diff --git a/tests/drive_del-test.c b/tests/drive_del-test.c
index b56b223fc2..5f8839b232 100644
--- a/tests/drive_del-test.c
+++ b/tests/drive_del-test.c
@@ -121,7 +121,8 @@ static void test_drive_del_device_del(void)
QTestState *qts;
/* Start with a drive used by a device that unplugs instantaneously */
- qts = qtest_initf("-drive if=none,id=drive0,file=null-co://,format=raw"
+ qts = qtest_initf("-drive if=none,id=drive0,file=null-co://,"
+ "file.read-zeroes=on,format=raw"
" -device virtio-scsi-%s"
" -device scsi-hd,drive=drive0,id=dev0",
qvirtio_get_dev_type());
diff --git a/tests/e1000e-test.c b/tests/e1000e-test.c
index 445787a7e4..93628c588d 100644
--- a/tests/e1000e-test.c
+++ b/tests/e1000e-test.c
@@ -235,7 +235,7 @@ static void test_e1000e_hotplug(void *obj, void *data, QGuestAllocator * alloc)
{
QTestState *qts = global_qtest; /* TODO: get rid of global_qtest here */
- qtest_qmp_device_add("e1000e", "e1000e_net", "{'addr': '0x06'}");
+ qtest_qmp_device_add(qts, "e1000e", "e1000e_net", "{'addr': '0x06'}");
qpci_unplug_acpi_device_test(qts, "e1000e_net", 0x06);
}
diff --git a/tests/ivshmem-test.c b/tests/ivshmem-test.c
index a467b8c03d..b76457948b 100644
--- a/tests/ivshmem-test.c
+++ b/tests/ivshmem-test.c
@@ -389,7 +389,7 @@ static void test_ivshmem_hotplug(void)
qts = qtest_init("-object memory-backend-ram,size=1M,id=mb1");
global_qtest = qts; /* TODO: Get rid of global_qtest here */
- qtest_qmp_device_add("ivshmem-plain", "iv1",
+ qtest_qmp_device_add(qts, "ivshmem-plain", "iv1",
"{'addr': %s, 'memdev': 'mb1'}",
stringify(PCI_SLOT_HP));
if (strcmp(arch, "ppc64") != 0) {
diff --git a/tests/libqos/usb.c b/tests/libqos/usb.c
index 49e2f4bc0a..d7a9cb3c72 100644
--- a/tests/libqos/usb.c
+++ b/tests/libqos/usb.c
@@ -37,20 +37,20 @@ void uhci_port_test(struct qhc *hc, int port, uint16_t expect)
g_assert((value & mask) == (expect & mask));
}
-void usb_test_hotplug(const char *hcd_id, const char *port,
+void usb_test_hotplug(QTestState *qts, const char *hcd_id, const char *port,
void (*port_check)(void))
{
char *id = g_strdup_printf("usbdev%s", port);
char *bus = g_strdup_printf("%s.0", hcd_id);
- qtest_qmp_device_add("usb-tablet", id, "{'port': %s, 'bus': %s}",
+ qtest_qmp_device_add(qts, "usb-tablet", id, "{'port': %s, 'bus': %s}",
port, bus);
if (port_check) {
port_check();
}
- qtest_qmp_device_del(id);
+ qtest_qmp_device_del(qts, id);
g_free(bus);
g_free(id);
diff --git a/tests/libqos/usb.h b/tests/libqos/usb.h
index c506418a13..eeced39a2f 100644
--- a/tests/libqos/usb.h
+++ b/tests/libqos/usb.h
@@ -13,6 +13,6 @@ void qusb_pci_init_one(QPCIBus *pcibus, struct qhc *hc,
void uhci_port_test(struct qhc *hc, int port, uint16_t expect);
void uhci_deinit(struct qhc *hc);
-void usb_test_hotplug(const char *bus_name, const char *port,
+void usb_test_hotplug(QTestState *qts, const char *bus_name, const char *port,
void (*port_check)(void));
#endif
diff --git a/tests/libqos/virtio-net.c b/tests/libqos/virtio-net.c
index 66405b646e..6567beb553 100644
--- a/tests/libqos/virtio-net.c
+++ b/tests/libqos/virtio-net.c
@@ -53,6 +53,7 @@ static void virtio_net_setup(QVirtioNet *interface)
} else {
interface->n_queues = 2;
}
+ interface->n_queues++; /* Account for the ctrl queue */
interface->queues = g_new(QVirtQueue *, interface->n_queues);
for (i = 0; i < interface->n_queues; i++) {
diff --git a/tests/libqos/virtio-net.h b/tests/libqos/virtio-net.h
index a5697d7326..855c67d00f 100644
--- a/tests/libqos/virtio-net.h
+++ b/tests/libqos/virtio-net.h
@@ -29,7 +29,7 @@ typedef struct QVirtioNetDevice QVirtioNetDevice;
struct QVirtioNet {
QVirtioDevice *vdev;
- int n_queues;
+ int n_queues; /* total number of virtqueues (rx, tx, ctrl) */
QVirtQueue **queues;
};
diff --git a/tests/libqos/virtio-pci.c b/tests/libqos/virtio-pci.c
index a622ca26ca..3f55c047a0 100644
--- a/tests/libqos/virtio-pci.c
+++ b/tests/libqos/virtio-pci.c
@@ -138,9 +138,9 @@ static bool qvirtio_pci_get_queue_isr_status(QVirtioDevice *d, QVirtQueue *vq)
/* No ISR checking should be done if masked, but read anyway */
return qpci_msix_pending(dev->pdev, vqpci->msix_entry);
} else {
- data = readl(vqpci->msix_addr);
+ data = qtest_readl(dev->pdev->bus->qts, vqpci->msix_addr);
if (data == vqpci->msix_data) {
- writel(vqpci->msix_addr, 0);
+ qtest_writel(dev->pdev->bus->qts, vqpci->msix_addr, 0);
return true;
} else {
return false;
@@ -162,9 +162,9 @@ static bool qvirtio_pci_get_config_isr_status(QVirtioDevice *d)
/* No ISR checking should be done if masked, but read anyway */
return qpci_msix_pending(dev->pdev, dev->config_msix_entry);
} else {
- data = readl(dev->config_msix_addr);
+ data = qtest_readl(dev->pdev->bus->qts, dev->config_msix_addr);
if (data == dev->config_msix_data) {
- writel(dev->config_msix_addr, 0);
+ qtest_writel(dev->pdev->bus->qts, dev->config_msix_addr, 0);
return true;
} else {
return false;
diff --git a/tests/libqos/virtio-scsi.c b/tests/libqos/virtio-scsi.c
index 94842ec3fa..de739bec5f 100644
--- a/tests/libqos/virtio-scsi.c
+++ b/tests/libqos/virtio-scsi.c
@@ -95,7 +95,8 @@ static void virtio_scsi_register_nodes(void)
};
QOSGraphEdgeOptions opts = {
- .before_cmd_line = "-drive id=drv0,if=none,file=null-co://,format=raw",
+ .before_cmd_line = "-drive id=drv0,if=none,file=null-co://,"
+ "file.read-zeroes=on,format=raw",
.after_cmd_line = "-device scsi-hd,bus=vs0.0,drive=drv0",
};
diff --git a/tests/libqos/virtio.c b/tests/libqos/virtio.c
index b4c01dc0c1..91ce06954b 100644
--- a/tests/libqos/virtio.c
+++ b/tests/libqos/virtio.c
@@ -101,7 +101,7 @@ void qvirtio_wait_queue_isr(QVirtioDevice *d,
* The virtqueue interrupt must not be raised, making this useful for testing
* event_index functionality.
*/
-uint8_t qvirtio_wait_status_byte_no_isr(QVirtioDevice *d,
+uint8_t qvirtio_wait_status_byte_no_isr(QTestState *qts, QVirtioDevice *d,
QVirtQueue *vq,
uint64_t addr,
gint64 timeout_us)
@@ -126,7 +126,7 @@ uint8_t qvirtio_wait_status_byte_no_isr(QVirtioDevice *d,
*
* This function waits for the next completed request on the used ring.
*/
-void qvirtio_wait_used_elem(QVirtioDevice *d,
+void qvirtio_wait_used_elem(QTestState *qts, QVirtioDevice *d,
QVirtQueue *vq,
uint32_t desc_idx,
uint32_t *len,
@@ -140,7 +140,7 @@ void qvirtio_wait_used_elem(QVirtioDevice *d,
clock_step(100);
if (d->bus->get_queue_isr_status(d, vq) &&
- qvirtqueue_get_buf(vq, &got_desc_idx, len)) {
+ qvirtqueue_get_buf(qts, vq, &got_desc_idx, len)) {
g_assert_cmpint(got_desc_idx, ==, desc_idx);
return;
}
@@ -193,8 +193,9 @@ void qvring_init(QTestState *qts, const QGuestAllocator *alloc, QVirtQueue *vq,
0);
}
-QVRingIndirectDesc *qvring_indirect_desc_setup(QVirtioDevice *d,
- QGuestAllocator *alloc, uint16_t elem)
+QVRingIndirectDesc *qvring_indirect_desc_setup(QTestState *qs, QVirtioDevice *d,
+ QGuestAllocator *alloc,
+ uint16_t elem)
{
int i;
QVRingIndirectDesc *indirect = g_malloc(sizeof(*indirect));
@@ -205,41 +206,41 @@ QVRingIndirectDesc *qvring_indirect_desc_setup(QVirtioDevice *d,
for (i = 0; i < elem - 1; ++i) {
/* indirect->desc[i].addr */
- writeq(indirect->desc + (16 * i), 0);
+ qtest_writeq(qs, indirect->desc + (16 * i), 0);
/* indirect->desc[i].flags */
- writew(indirect->desc + (16 * i) + 12, VRING_DESC_F_NEXT);
+ qtest_writew(qs, indirect->desc + (16 * i) + 12, VRING_DESC_F_NEXT);
/* indirect->desc[i].next */
- writew(indirect->desc + (16 * i) + 14, i + 1);
+ qtest_writew(qs, indirect->desc + (16 * i) + 14, i + 1);
}
return indirect;
}
-void qvring_indirect_desc_add(QVRingIndirectDesc *indirect, uint64_t data,
- uint32_t len, bool write)
+void qvring_indirect_desc_add(QTestState *qts, QVRingIndirectDesc *indirect,
+ uint64_t data, uint32_t len, bool write)
{
uint16_t flags;
g_assert_cmpint(indirect->index, <, indirect->elem);
- flags = readw(indirect->desc + (16 * indirect->index) + 12);
+ flags = qtest_readw(qts, indirect->desc + (16 * indirect->index) + 12);
if (write) {
flags |= VRING_DESC_F_WRITE;
}
/* indirect->desc[indirect->index].addr */
- writeq(indirect->desc + (16 * indirect->index), data);
+ qtest_writeq(qts, indirect->desc + (16 * indirect->index), data);
/* indirect->desc[indirect->index].len */
- writel(indirect->desc + (16 * indirect->index) + 8, len);
+ qtest_writel(qts, indirect->desc + (16 * indirect->index) + 8, len);
/* indirect->desc[indirect->index].flags */
- writew(indirect->desc + (16 * indirect->index) + 12, flags);
+ qtest_writew(qts, indirect->desc + (16 * indirect->index) + 12, flags);
indirect->index++;
}
-uint32_t qvirtqueue_add(QVirtQueue *vq, uint64_t data, uint32_t len, bool write,
- bool next)
+uint32_t qvirtqueue_add(QTestState *qts, QVirtQueue *vq, uint64_t data,
+ uint32_t len, bool write, bool next)
{
uint16_t flags = 0;
vq->num_free--;
@@ -253,16 +254,17 @@ uint32_t qvirtqueue_add(QVirtQueue *vq, uint64_t data, uint32_t len, bool write,
}
/* vq->desc[vq->free_head].addr */
- writeq(vq->desc + (16 * vq->free_head), data);
+ qtest_writeq(qts, vq->desc + (16 * vq->free_head), data);
/* vq->desc[vq->free_head].len */
- writel(vq->desc + (16 * vq->free_head) + 8, len);
+ qtest_writel(qts, vq->desc + (16 * vq->free_head) + 8, len);
/* vq->desc[vq->free_head].flags */
- writew(vq->desc + (16 * vq->free_head) + 12, flags);
+ qtest_writew(qts, vq->desc + (16 * vq->free_head) + 12, flags);
return vq->free_head++; /* Return and increase, in this order */
}
-uint32_t qvirtqueue_add_indirect(QVirtQueue *vq, QVRingIndirectDesc *indirect)
+uint32_t qvirtqueue_add_indirect(QTestState *qts, QVirtQueue *vq,
+ QVRingIndirectDesc *indirect)
{
g_assert(vq->indirect);
g_assert_cmpint(vq->size, >=, indirect->elem);
@@ -271,34 +273,36 @@ uint32_t qvirtqueue_add_indirect(QVirtQueue *vq, QVRingIndirectDesc *indirect)
vq->num_free--;
/* vq->desc[vq->free_head].addr */
- writeq(vq->desc + (16 * vq->free_head), indirect->desc);
+ qtest_writeq(qts, vq->desc + (16 * vq->free_head), indirect->desc);
/* vq->desc[vq->free_head].len */
- writel(vq->desc + (16 * vq->free_head) + 8,
+ qtest_writel(qts, vq->desc + (16 * vq->free_head) + 8,
sizeof(struct vring_desc) * indirect->elem);
/* vq->desc[vq->free_head].flags */
- writew(vq->desc + (16 * vq->free_head) + 12, VRING_DESC_F_INDIRECT);
+ qtest_writew(qts, vq->desc + (16 * vq->free_head) + 12,
+ VRING_DESC_F_INDIRECT);
return vq->free_head++; /* Return and increase, in this order */
}
-void qvirtqueue_kick(QVirtioDevice *d, QVirtQueue *vq, uint32_t free_head)
+void qvirtqueue_kick(QTestState *qts, QVirtioDevice *d, QVirtQueue *vq,
+ uint32_t free_head)
{
/* vq->avail->idx */
- uint16_t idx = readw(vq->avail + 2);
+ uint16_t idx = qtest_readw(qts, vq->avail + 2);
/* vq->used->flags */
uint16_t flags;
/* vq->used->avail_event */
uint16_t avail_event;
/* vq->avail->ring[idx % vq->size] */
- writew(vq->avail + 4 + (2 * (idx % vq->size)), free_head);
+ qtest_writew(qts, vq->avail + 4 + (2 * (idx % vq->size)), free_head);
/* vq->avail->idx */
- writew(vq->avail + 2, idx + 1);
+ qtest_writew(qts, vq->avail + 2, idx + 1);
/* Must read after idx is updated */
- flags = readw(vq->avail);
- avail_event = readw(vq->used + 4 +
- sizeof(struct vring_used_elem) * vq->size);
+ flags = qtest_readw(qts, vq->avail);
+ avail_event = qtest_readw(qts, vq->used + 4 +
+ sizeof(struct vring_used_elem) * vq->size);
/* < 1 because we add elements to avail queue one by one */
if ((flags & VRING_USED_F_NO_NOTIFY) == 0 &&
@@ -317,12 +321,13 @@ void qvirtqueue_kick(QVirtioDevice *d, QVirtQueue *vq, uint32_t free_head)
*
* Returns: true if an element was ready, false otherwise
*/
-bool qvirtqueue_get_buf(QVirtQueue *vq, uint32_t *desc_idx, uint32_t *len)
+bool qvirtqueue_get_buf(QTestState *qts, QVirtQueue *vq, uint32_t *desc_idx,
+ uint32_t *len)
{
uint16_t idx;
- uint64_t elem_addr;
+ uint64_t elem_addr, addr;
- idx = readw(vq->used + offsetof(struct vring_used, idx));
+ idx = qtest_readw(qts, vq->used + offsetof(struct vring_used, idx));
if (idx == vq->last_used_idx) {
return false;
}
@@ -333,23 +338,25 @@ bool qvirtqueue_get_buf(QVirtQueue *vq, uint32_t *desc_idx, uint32_t *len)
sizeof(struct vring_used_elem);
if (desc_idx) {
- *desc_idx = readl(elem_addr + offsetof(struct vring_used_elem, id));
+ addr = elem_addr + offsetof(struct vring_used_elem, id);
+ *desc_idx = qtest_readl(qts, addr);
}
if (len) {
- *len = readw(elem_addr + offsetof(struct vring_used_elem, len));
+ addr = elem_addr + offsetof(struct vring_used_elem, len);
+ *len = qtest_readw(qts, addr);
}
vq->last_used_idx++;
return true;
}
-void qvirtqueue_set_used_event(QVirtQueue *vq, uint16_t idx)
+void qvirtqueue_set_used_event(QTestState *qts, QVirtQueue *vq, uint16_t idx)
{
g_assert(vq->event);
/* vq->avail->used_event */
- writew(vq->avail + 4 + (2 * vq->size), idx);
+ qtest_writew(qts, vq->avail + 4 + (2 * vq->size), idx);
}
void qvirtio_start_device(QVirtioDevice *vdev)
diff --git a/tests/libqos/virtio.h b/tests/libqos/virtio.h
index 7b97f5e567..037176dbd8 100644
--- a/tests/libqos/virtio.h
+++ b/tests/libqos/virtio.h
@@ -114,11 +114,11 @@ void qvirtio_set_driver_ok(QVirtioDevice *d);
void qvirtio_wait_queue_isr(QVirtioDevice *d,
QVirtQueue *vq, gint64 timeout_us);
-uint8_t qvirtio_wait_status_byte_no_isr(QVirtioDevice *d,
+uint8_t qvirtio_wait_status_byte_no_isr(QTestState *qts, QVirtioDevice *d,
QVirtQueue *vq,
uint64_t addr,
gint64 timeout_us);
-void qvirtio_wait_used_elem(QVirtioDevice *d,
+void qvirtio_wait_used_elem(QTestState *qts, QVirtioDevice *d,
QVirtQueue *vq,
uint32_t desc_idx,
uint32_t *len,
@@ -131,17 +131,21 @@ void qvirtqueue_cleanup(const QVirtioBus *bus, QVirtQueue *vq,
void qvring_init(QTestState *qts, const QGuestAllocator *alloc, QVirtQueue *vq,
uint64_t addr);
-QVRingIndirectDesc *qvring_indirect_desc_setup(QVirtioDevice *d,
- QGuestAllocator *alloc, uint16_t elem);
-void qvring_indirect_desc_add(QVRingIndirectDesc *indirect, uint64_t data,
- uint32_t len, bool write);
-uint32_t qvirtqueue_add(QVirtQueue *vq, uint64_t data, uint32_t len, bool write,
- bool next);
-uint32_t qvirtqueue_add_indirect(QVirtQueue *vq, QVRingIndirectDesc *indirect);
-void qvirtqueue_kick(QVirtioDevice *d, QVirtQueue *vq, uint32_t free_head);
-bool qvirtqueue_get_buf(QVirtQueue *vq, uint32_t *desc_idx, uint32_t *len);
-
-void qvirtqueue_set_used_event(QVirtQueue *vq, uint16_t idx);
+QVRingIndirectDesc *qvring_indirect_desc_setup(QTestState *qs, QVirtioDevice *d,
+ QGuestAllocator *alloc,
+ uint16_t elem);
+void qvring_indirect_desc_add(QTestState *qts, QVRingIndirectDesc *indirect,
+ uint64_t data, uint32_t len, bool write);
+uint32_t qvirtqueue_add(QTestState *qts, QVirtQueue *vq, uint64_t data,
+ uint32_t len, bool write, bool next);
+uint32_t qvirtqueue_add_indirect(QTestState *qts, QVirtQueue *vq,
+ QVRingIndirectDesc *indirect);
+void qvirtqueue_kick(QTestState *qts, QVirtioDevice *d, QVirtQueue *vq,
+ uint32_t free_head);
+bool qvirtqueue_get_buf(QTestState *qts, QVirtQueue *vq, uint32_t *desc_idx,
+ uint32_t *len);
+
+void qvirtqueue_set_used_event(QTestState *qts, QVirtQueue *vq, uint16_t idx);
void qvirtio_start_device(QVirtioDevice *vdev);
diff --git a/tests/libqtest.c b/tests/libqtest.c
index 3c5c3f49d8..eb971d0d11 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -1111,13 +1111,13 @@ QDict *qmp(const char *fmt, ...)
return response;
}
-void qmp_assert_success(const char *fmt, ...)
+void qtest_qmp_assert_success(QTestState *qts, const char *fmt, ...)
{
va_list ap;
QDict *response;
va_start(ap, fmt);
- response = qtest_vqmp(global_qtest, fmt, ap);
+ response = qtest_vqmp(qts, fmt, ap);
va_end(ap);
g_assert(response);
@@ -1130,17 +1130,6 @@ void qmp_assert_success(const char *fmt, ...)
qobject_unref(response);
}
-char *hmp(const char *fmt, ...)
-{
- va_list ap;
- char *ret;
-
- va_start(ap, fmt);
- ret = qtest_vhmp(global_qtest, fmt, ap);
- va_end(ap);
- return ret;
-}
-
bool qtest_big_endian(QTestState *s)
{
return s->big_endian;
@@ -1200,9 +1189,10 @@ void qtest_cb_for_every_machine(void (*cb)(const char *machine),
QObject *qobj;
QString *qstr;
const char *mname;
+ QTestState *qts;
- qtest_start("-machine none");
- response = qmp("{ 'execute': 'query-machines' }");
+ qts = qtest_init("-machine none");
+ response = qtest_qmp(qts, "{ 'execute': 'query-machines' }");
g_assert(response);
list = qdict_get_qlist(response, "return");
g_assert(list);
@@ -1220,7 +1210,7 @@ void qtest_cb_for_every_machine(void (*cb)(const char *machine),
}
}
- qtest_end();
+ qtest_quit(qts);
qobject_unref(response);
}
@@ -1256,7 +1246,7 @@ QDict *qtest_qmp_receive_success(QTestState *s,
/*
* Generic hot-plugging test via the device_add QMP command.
*/
-void qtest_qmp_device_add(const char *driver, const char *id,
+void qtest_qmp_device_add(QTestState *qts, const char *driver, const char *id,
const char *fmt, ...)
{
QDict *args, *response;
@@ -1270,7 +1260,8 @@ void qtest_qmp_device_add(const char *driver, const char *id,
qdict_put_str(args, "driver", driver);
qdict_put_str(args, "id", id);
- response = qmp("{'execute': 'device_add', 'arguments': %p}", args);
+ response = qtest_qmp(qts, "{'execute': 'device_add', 'arguments': %p}",
+ args);
g_assert(response);
g_assert(!qdict_haskey(response, "event")); /* We don't expect any events */
g_assert(!qdict_haskey(response, "error"));
@@ -1303,19 +1294,17 @@ static void device_deleted_cb(void *opaque, const char *name, QDict *data)
*
* But the order of arrival may vary - so we've got to detect both.
*/
-void qtest_qmp_device_del(const char *id)
+void qtest_qmp_device_del(QTestState *qts, const char *id)
{
bool got_event = false;
QDict *rsp;
- qtest_qmp_send(global_qtest,
- "{'execute': 'device_del', 'arguments': {'id': %s}}",
+ qtest_qmp_send(qts, "{'execute': 'device_del', 'arguments': {'id': %s}}",
id);
- rsp = qtest_qmp_receive_success(global_qtest, device_deleted_cb,
- &got_event);
+ rsp = qtest_qmp_receive_success(qts, device_deleted_cb, &got_event);
qobject_unref(rsp);
if (!got_event) {
- rsp = qtest_qmp_receive(global_qtest);
+ rsp = qtest_qmp_receive(qts);
g_assert_cmpstr(qdict_get_try_str(rsp, "event"),
==, "DEVICE_DELETED");
qobject_unref(rsp);
diff --git a/tests/libqtest.h b/tests/libqtest.h
index cadf1d4a03..7833148358 100644
--- a/tests/libqtest.h
+++ b/tests/libqtest.h
@@ -666,7 +666,8 @@ static inline void qtest_end(void)
QDict *qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
/**
- * qmp_assert_success:
+ * qtest_qmp_assert_success:
+ * @qts: QTestState instance to operate on
* @fmt...: QMP message to send to qemu, formatted like
* qobject_from_jsonf_nofail(). See parse_escape() for what's
* supported after '%'.
@@ -674,7 +675,8 @@ QDict *qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
* Sends a QMP message to QEMU and asserts that a 'return' key is present in
* the response.
*/
-void qmp_assert_success(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
+void qtest_qmp_assert_success(QTestState *qts, const char *fmt, ...)
+ GCC_FMT_ATTR(2, 3);
/*
* qmp_eventwait:
@@ -688,16 +690,6 @@ static inline void qmp_eventwait(const char *event)
}
/**
- * hmp:
- * @fmt...: HMP command to send to QEMU, formats arguments like sprintf().
- *
- * Send HMP command to QEMU via QMP's human-monitor-command.
- *
- * Returns: the command's output. The caller should g_free() it.
- */
-char *hmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
-
-/**
* get_irq:
* @num: Interrupt to observe.
*
@@ -956,6 +948,7 @@ void qtest_cb_for_every_machine(void (*cb)(const char *machine),
/**
* qtest_qmp_device_add:
+ * @qts: QTestState instance to operate on
* @driver: Name of the device that should be added
* @id: Identification string
* @fmt...: QMP message to send to qemu, formatted like
@@ -964,16 +957,17 @@ void qtest_cb_for_every_machine(void (*cb)(const char *machine),
*
* Generic hot-plugging test via the device_add QMP command.
*/
-void qtest_qmp_device_add(const char *driver, const char *id, const char *fmt,
- ...) GCC_FMT_ATTR(3, 4);
+void qtest_qmp_device_add(QTestState *qts, const char *driver, const char *id,
+ const char *fmt, ...) GCC_FMT_ATTR(4, 5);
/**
* qtest_qmp_device_del:
+ * @qts: QTestState instance to operate on
* @id: Identification string
*
* Generic hot-unplugging test via the device_del QMP command.
*/
-void qtest_qmp_device_del(const char *id);
+void qtest_qmp_device_del(QTestState *qts, const char *id);
/**
* qmp_rsp_is_err:
diff --git a/tests/megasas-test.c b/tests/megasas-test.c
index c3e4ab6595..d6796b9bd7 100644
--- a/tests/megasas-test.c
+++ b/tests/megasas-test.c
@@ -75,7 +75,8 @@ static void megasas_register_nodes(void)
{
QOSGraphEdgeOptions opts = {
.extra_device_opts = "addr=04.0,id=scsi0",
- .before_cmd_line = "-drive id=drv0,if=none,file=null-co://,format=raw",
+ .before_cmd_line = "-drive id=drv0,if=none,file=null-co://,"
+ "file.read-zeroes=on,format=raw",
.after_cmd_line = "-device scsi-hd,bus=scsi0.0,drive=drv0",
};
diff --git a/tests/migration-test.c b/tests/migration-test.c
index c1968740ab..b87ba99a9e 100644
--- a/tests/migration-test.c
+++ b/tests/migration-test.c
@@ -20,7 +20,6 @@
#include "qemu/range.h"
#include "qemu/sockets.h"
#include "chardev/char.h"
-#include "sysemu/sysemu.h"
#include "qapi/qapi-visit-sockets.h"
#include "qapi/qobject-input-visitor.h"
#include "qapi/qobject-output-visitor.h"
diff --git a/tests/nvme-test.c b/tests/nvme-test.c
index 505299324b..ff0442150c 100644
--- a/tests/nvme-test.c
+++ b/tests/nvme-test.c
@@ -70,7 +70,8 @@ static void nvme_register_nodes(void)
{
QOSGraphEdgeOptions opts = {
.extra_device_opts = "addr=04.0,drive=drv0,serial=foo",
- .before_cmd_line = "-drive id=drv0,if=none,file=null-co://,format=raw",
+ .before_cmd_line = "-drive id=drv0,if=none,file=null-co://,"
+ "file.read-zeroes=on,format=raw",
};
add_qpci_address(&opts, &(QPCIAddress) { .devfn = QPCI_DEVFN(4, 0) });
diff --git a/tests/qmp-test.c b/tests/qmp-test.c
index 48a4fa791a..1b0eb69832 100644
--- a/tests/qmp-test.c
+++ b/tests/qmp-test.c
@@ -187,7 +187,7 @@ static void send_cmd_that_blocks(QTestState *s, const char *id)
" 'arguments': {"
" 'driver': 'blkdebug', 'node-name': %s,"
" 'config': %s,"
- " 'image': { 'driver': 'null-co' } } }",
+ " 'image': { 'driver': 'null-co', 'read-zeroes': true } } }",
id, id, fifo_name);
}
diff --git a/tests/test-bdrv-drain.c b/tests/test-bdrv-drain.c
index 468bbcc9a1..374bef6bb2 100644
--- a/tests/test-bdrv-drain.c
+++ b/tests/test-bdrv-drain.c
@@ -27,6 +27,7 @@
#include "block/blockjob_int.h"
#include "sysemu/block-backend.h"
#include "qapi/error.h"
+#include "qemu/main-loop.h"
#include "iothread.h"
static QemuEvent done_event;
diff --git a/tests/test-bdrv-graph-mod.c b/tests/test-bdrv-graph-mod.c
index cfeec36566..a007754d9e 100644
--- a/tests/test-bdrv-graph-mod.c
+++ b/tests/test-bdrv-graph-mod.c
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "qemu/main-loop.h"
#include "block/block_int.h"
#include "sysemu/block-backend.h"
diff --git a/tests/test-block-backend.c b/tests/test-block-backend.c
index 5b5d6845c0..2fb1a444bd 100644
--- a/tests/test-block-backend.c
+++ b/tests/test-block-backend.c
@@ -26,6 +26,7 @@
#include "block/block.h"
#include "sysemu/block-backend.h"
#include "qapi/error.h"
+#include "qemu/main-loop.h"
static void test_drain_aio_error_flush_cb(void *opaque, int ret)
{
diff --git a/tests/test-block-iothread.c b/tests/test-block-iothread.c
index 1949d5e61a..e81b5b8dc4 100644
--- a/tests/test-block-iothread.c
+++ b/tests/test-block-iothread.c
@@ -28,6 +28,7 @@
#include "sysemu/block-backend.h"
#include "qapi/error.h"
#include "qapi/qmp/qdict.h"
+#include "qemu/main-loop.h"
#include "iothread.h"
static int coroutine_fn bdrv_test_co_prwv(BlockDriverState *bs,
diff --git a/tests/test-blockjob-txn.c b/tests/test-blockjob-txn.c
index 86606f92b3..7da9216d5b 100644
--- a/tests/test-blockjob-txn.c
+++ b/tests/test-blockjob-txn.c
@@ -15,6 +15,7 @@
#include "qemu/main-loop.h"
#include "block/blockjob_int.h"
#include "sysemu/block-backend.h"
+#include "qapi/qmp/qdict.h"
typedef struct {
BlockJob common;
@@ -96,7 +97,9 @@ static BlockJob *test_block_job_start(unsigned int iterations,
data = g_new0(TestBlockJobCBData, 1);
- bs = bdrv_open("null-co://", NULL, NULL, 0, &error_abort);
+ QDict *opt = qdict_new();
+ qdict_put_str(opt, "file.read-zeroes", "on");
+ bs = bdrv_open("null-co://", NULL, opt, 0, &error_abort);
g_assert_nonnull(bs);
snprintf(job_id, sizeof(job_id), "job%u", counter++);
diff --git a/tests/test-blockjob.c b/tests/test-blockjob.c
index b33f899873..68a0819495 100644
--- a/tests/test-blockjob.c
+++ b/tests/test-blockjob.c
@@ -15,6 +15,7 @@
#include "qemu/main-loop.h"
#include "block/blockjob_int.h"
#include "sysemu/block-backend.h"
+#include "qapi/qmp/qdict.h"
static const BlockJobDriver test_block_job_driver = {
.job_driver = {
@@ -71,7 +72,9 @@ static BlockBackend *create_blk(const char *name)
BlockBackend *blk = blk_new(qemu_get_aio_context(), 0, BLK_PERM_ALL);
BlockDriverState *bs;
- bs = bdrv_open("null-co://", NULL, NULL, 0, &error_abort);
+ QDict *opt = qdict_new();
+ qdict_put_str(opt, "file.read-zeroes", "on");
+ bs = bdrv_open("null-co://", NULL, opt, 0, &error_abort);
g_assert_nonnull(bs);
blk_insert_bs(blk, bs, &error_abort);
diff --git a/tests/test-image-locking.c b/tests/test-image-locking.c
index 7614cbf90c..ba057bd66c 100644
--- a/tests/test-image-locking.c
+++ b/tests/test-image-locking.c
@@ -29,6 +29,7 @@
#include "sysemu/block-backend.h"
#include "qapi/error.h"
#include "qapi/qmp/qdict.h"
+#include "qemu/main-loop.h"
static BlockBackend *open_image(const char *path,
uint64_t perm, uint64_t shared_perm,
diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-props.c
index 60231b1372..4ed3d06f4e 100644
--- a/tests/test-qdev-global-props.c
+++ b/tests/test-qdev-global-props.c
@@ -24,7 +24,7 @@
#include "qemu/osdep.h"
-#include "hw/qdev.h"
+#include "hw/qdev-properties.h"
#include "qom/object.h"
#include "qapi/visitor.h"
diff --git a/tests/test-replication.c b/tests/test-replication.c
index f085d1993a..4747d8a6be 100644
--- a/tests/test-replication.c
+++ b/tests/test-replication.c
@@ -13,6 +13,7 @@
#include "qapi/error.h"
#include "qapi/qmp/qdict.h"
#include "qemu/option.h"
+#include "qemu/main-loop.h"
#include "replication.h"
#include "block/block_int.h"
#include "block/qdict.h"
diff --git a/tests/test-throttle.c b/tests/test-throttle.c
index a28812260e..083e1f9ba8 100644
--- a/tests/test-throttle.c
+++ b/tests/test-throttle.c
@@ -18,6 +18,7 @@
#include "qapi/error.h"
#include "qemu/throttle.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "block/throttle-groups.h"
#include "sysemu/block-backend.h"
diff --git a/tests/usb-hcd-ohci-test.c b/tests/usb-hcd-ohci-test.c
index c12b892085..0cd73b7363 100644
--- a/tests/usb-hcd-ohci-test.c
+++ b/tests/usb-hcd-ohci-test.c
@@ -23,7 +23,7 @@ struct QOHCI_PCI {
static void test_ohci_hotplug(void *obj, void *data, QGuestAllocator *alloc)
{
- usb_test_hotplug("ohci", "1", NULL);
+ usb_test_hotplug(global_qtest, "ohci", "1", NULL);
}
static void *ohci_pci_get_driver(void *obj, const char *interface)
diff --git a/tests/usb-hcd-uhci-test.c b/tests/usb-hcd-uhci-test.c
index a119d6d5c8..2eef8e3d1c 100644
--- a/tests/usb-hcd-uhci-test.c
+++ b/tests/usb-hcd-uhci-test.c
@@ -43,21 +43,24 @@ static void test_port_2(void)
static void test_uhci_hotplug(void)
{
- usb_test_hotplug("uhci", "2", test_port_2);
+ usb_test_hotplug(global_qtest, "uhci", "2", test_port_2);
}
static void test_usb_storage_hotplug(void)
{
- qtest_qmp_device_add("usb-storage", "usbdev0", "{'drive': 'drive0'}");
+ QTestState *qts = global_qtest;
- qtest_qmp_device_del("usbdev0");
+ qtest_qmp_device_add(qts, "usb-storage", "usbdev0", "{'drive': 'drive0'}");
+
+ qtest_qmp_device_del(qts, "usbdev0");
}
int main(int argc, char **argv)
{
const char *arch = qtest_get_arch();
const char *cmd = "-device piix3-usb-uhci,id=uhci,addr=1d.0"
- " -drive id=drive0,if=none,file=null-co://,format=raw"
+ " -drive id=drive0,if=none,file=null-co://,"
+ "file.read-zeroes=on,format=raw"
" -device usb-tablet,bus=uhci.0,port=1";
int ret;
diff --git a/tests/usb-hcd-xhci-test.c b/tests/usb-hcd-xhci-test.c
index 9eb24b00e4..01845371f9 100644
--- a/tests/usb-hcd-xhci-test.c
+++ b/tests/usb-hcd-xhci-test.c
@@ -18,30 +18,34 @@ static void test_xhci_init(void)
static void test_xhci_hotplug(void)
{
- usb_test_hotplug("xhci", "1", NULL);
+ usb_test_hotplug(global_qtest, "xhci", "1", NULL);
}
static void test_usb_uas_hotplug(void)
{
- qtest_qmp_device_add("usb-uas", "uas", "{}");
- qtest_qmp_device_add("scsi-hd", "scsihd", "{'drive': 'drive0'}");
+ QTestState *qts = global_qtest;
+
+ qtest_qmp_device_add(qts, "usb-uas", "uas", "{}");
+ qtest_qmp_device_add(qts, "scsi-hd", "scsihd", "{'drive': 'drive0'}");
/* TODO:
UAS HBA driver in libqos, to check that
added disk is visible after BUS rescan
*/
- qtest_qmp_device_del("scsihd");
- qtest_qmp_device_del("uas");
+ qtest_qmp_device_del(qts, "scsihd");
+ qtest_qmp_device_del(qts, "uas");
}
static void test_usb_ccid_hotplug(void)
{
- qtest_qmp_device_add("usb-ccid", "ccid", "{}");
- qtest_qmp_device_del("ccid");
+ QTestState *qts = global_qtest;
+
+ qtest_qmp_device_add(qts, "usb-ccid", "ccid", "{}");
+ qtest_qmp_device_del(qts, "ccid");
/* check the device can be added again */
- qtest_qmp_device_add("usb-ccid", "ccid", "{}");
- qtest_qmp_device_del("ccid");
+ qtest_qmp_device_add(qts, "usb-ccid", "ccid", "{}");
+ qtest_qmp_device_del(qts, "ccid");
}
int main(int argc, char **argv)
@@ -56,7 +60,8 @@ int main(int argc, char **argv)
qtest_add_func("/xhci/pci/hotplug/usb-ccid", test_usb_ccid_hotplug);
qtest_start("-device nec-usb-xhci,id=xhci"
- " -drive id=drive0,if=none,file=null-co://,format=raw");
+ " -drive id=drive0,if=none,file=null-co://,"
+ "file.read-zeroes=on,format=raw");
ret = g_test_run();
qtest_end();
diff --git a/tests/virtio-9p-test.c b/tests/virtio-9p-test.c
index ac49bca991..30e6cf3e63 100644
--- a/tests/virtio-9p-test.c
+++ b/tests/virtio-9p-test.c
@@ -39,6 +39,7 @@ static void pci_config(void *obj, void *data, QGuestAllocator *t_alloc)
#define P9_MAX_SIZE 4096 /* Max size of a T-message or R-message */
typedef struct {
+ QTestState *qts;
QVirtio9P *v9p;
uint16_t tag;
uint64_t t_msg;
@@ -52,7 +53,7 @@ typedef struct {
static void v9fs_memwrite(P9Req *req, const void *addr, size_t len)
{
- memwrite(req->t_msg + req->t_off, addr, len);
+ qtest_memwrite(req->qts, req->t_msg + req->t_off, addr, len);
req->t_off += len;
}
@@ -63,7 +64,7 @@ static void v9fs_memskip(P9Req *req, size_t len)
static void v9fs_memread(P9Req *req, void *addr, size_t len)
{
- memread(req->r_msg + req->r_off, addr, len);
+ qtest_memread(req->qts, req->r_msg + req->r_off, addr, len);
req->r_off += len;
}
@@ -158,6 +159,7 @@ static P9Req *v9fs_req_init(QVirtio9P *v9p, uint32_t size, uint8_t id,
g_assert_cmpint(total_size, <=, P9_MAX_SIZE);
+ req->qts = global_qtest;
req->v9p = v9p;
req->t_size = total_size;
req->t_msg = guest_alloc(alloc, req->t_size);
@@ -171,10 +173,10 @@ static void v9fs_req_send(P9Req *req)
QVirtio9P *v9p = req->v9p;
req->r_msg = guest_alloc(alloc, P9_MAX_SIZE);
- req->free_head = qvirtqueue_add(v9p->vq, req->t_msg, req->t_size, false,
- true);
- qvirtqueue_add(v9p->vq, req->r_msg, P9_MAX_SIZE, true, false);
- qvirtqueue_kick(v9p->vdev, v9p->vq, req->free_head);
+ req->free_head = qvirtqueue_add(req->qts, v9p->vq, req->t_msg, req->t_size,
+ false, true);
+ qvirtqueue_add(req->qts, v9p->vq, req->r_msg, P9_MAX_SIZE, true, false);
+ qvirtqueue_kick(req->qts, v9p->vdev, v9p->vq, req->free_head);
req->t_off = 0;
}
@@ -195,7 +197,7 @@ static void v9fs_req_wait_for_reply(P9Req *req, uint32_t *len)
{
QVirtio9P *v9p = req->v9p;
- qvirtio_wait_used_elem(v9p->vdev, v9p->vq, req->free_head, len,
+ qvirtio_wait_used_elem(req->qts, v9p->vdev, v9p->vq, req->free_head, len,
QVIRTIO_9P_TIMEOUT_US);
}
diff --git a/tests/virtio-blk-test.c b/tests/virtio-blk-test.c
index 1b02714bc7..982ff1538c 100644
--- a/tests/virtio-blk-test.c
+++ b/tests/virtio-blk-test.c
@@ -123,6 +123,7 @@ static void test_basic(QVirtioDevice *dev, QGuestAllocator *alloc,
uint32_t free_head;
uint8_t status;
char *data;
+ QTestState *qts = global_qtest;
capacity = qvirtio_config_readq(dev, 0);
@@ -149,13 +150,14 @@ static void test_basic(QVirtioDevice *dev, QGuestAllocator *alloc,
g_free(req.data);
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, 512, false, true);
- qvirtqueue_add(vq, req_addr + 528, 1, true, false);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, 512, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL, QVIRTIO_BLK_TIMEOUT_US);
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
+ QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 528);
g_assert_cmpint(status, ==, 0);
@@ -171,13 +173,14 @@ static void test_basic(QVirtioDevice *dev, QGuestAllocator *alloc,
g_free(req.data);
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, 512, true, true);
- qvirtqueue_add(vq, req_addr + 528, 1, true, false);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, 512, true, true);
+ qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL, QVIRTIO_BLK_TIMEOUT_US);
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
+ QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 528);
g_assert_cmpint(status, ==, 0);
@@ -206,13 +209,14 @@ static void test_basic(QVirtioDevice *dev, QGuestAllocator *alloc,
req_addr = virtio_blk_request(alloc, dev, &req, sizeof(dwz_hdr));
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, sizeof(dwz_hdr), false, true);
- qvirtqueue_add(vq, req_addr + 16 + sizeof(dwz_hdr), 1, true, false);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, sizeof(dwz_hdr), false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16 + sizeof(dwz_hdr), 1, true,
+ false);
- qvirtqueue_kick(dev, vq, free_head);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 16 + sizeof(dwz_hdr));
g_assert_cmpint(status, ==, 0);
@@ -229,13 +233,13 @@ static void test_basic(QVirtioDevice *dev, QGuestAllocator *alloc,
g_free(req.data);
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, 512, true, true);
- qvirtqueue_add(vq, req_addr + 528, 1, true, false);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, 512, true, true);
+ qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 528);
g_assert_cmpint(status, ==, 0);
@@ -263,13 +267,13 @@ static void test_basic(QVirtioDevice *dev, QGuestAllocator *alloc,
req_addr = virtio_blk_request(alloc, dev, &req, sizeof(dwz_hdr));
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, sizeof(dwz_hdr), false, true);
- qvirtqueue_add(vq, req_addr + 16 + sizeof(dwz_hdr), 1, true, false);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, sizeof(dwz_hdr), false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16 + sizeof(dwz_hdr), 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 16 + sizeof(dwz_hdr));
g_assert_cmpint(status, ==, 0);
@@ -290,11 +294,11 @@ static void test_basic(QVirtioDevice *dev, QGuestAllocator *alloc,
g_free(req.data);
- free_head = qvirtqueue_add(vq, req_addr, 528, false, true);
- qvirtqueue_add(vq, req_addr + 528, 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 528, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 528);
g_assert_cmpint(status, ==, 0);
@@ -311,12 +315,12 @@ static void test_basic(QVirtioDevice *dev, QGuestAllocator *alloc,
g_free(req.data);
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, 513, true, false);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, 513, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 528);
g_assert_cmpint(status, ==, 0);
@@ -353,6 +357,7 @@ static void indirect(void *obj, void *u_data, QGuestAllocator *t_alloc)
uint32_t free_head;
uint8_t status;
char *data;
+ QTestState *qts = global_qtest;
capacity = qvirtio_config_readq(dev, 0);
g_assert_cmpint(capacity, ==, TEST_IMAGE_SIZE / 512);
@@ -378,13 +383,13 @@ static void indirect(void *obj, void *u_data, QGuestAllocator *t_alloc)
g_free(req.data);
- indirect = qvring_indirect_desc_setup(dev, t_alloc, 2);
- qvring_indirect_desc_add(indirect, req_addr, 528, false);
- qvring_indirect_desc_add(indirect, req_addr + 528, 1, true);
- free_head = qvirtqueue_add_indirect(vq, indirect);
- qvirtqueue_kick(dev, vq, free_head);
+ indirect = qvring_indirect_desc_setup(qts, dev, t_alloc, 2);
+ qvring_indirect_desc_add(qts, indirect, req_addr, 528, false);
+ qvring_indirect_desc_add(qts, indirect, req_addr + 528, 1, true);
+ free_head = qvirtqueue_add_indirect(qts, vq, indirect);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 528);
g_assert_cmpint(status, ==, 0);
@@ -403,13 +408,13 @@ static void indirect(void *obj, void *u_data, QGuestAllocator *t_alloc)
g_free(req.data);
- indirect = qvring_indirect_desc_setup(dev, t_alloc, 2);
- qvring_indirect_desc_add(indirect, req_addr, 16, false);
- qvring_indirect_desc_add(indirect, req_addr + 16, 513, true);
- free_head = qvirtqueue_add_indirect(vq, indirect);
- qvirtqueue_kick(dev, vq, free_head);
+ indirect = qvring_indirect_desc_setup(qts, dev, t_alloc, 2);
+ qvring_indirect_desc_add(qts, indirect, req_addr, 16, false);
+ qvring_indirect_desc_add(qts, indirect, req_addr + 16, 513, true);
+ free_head = qvirtqueue_add_indirect(qts, vq, indirect);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 528);
g_assert_cmpint(status, ==, 0);
@@ -461,6 +466,7 @@ static void msix(void *obj, void *u_data, QGuestAllocator *t_alloc)
char *data;
QOSGraphObject *blk_object = obj;
QPCIDevice *pci_dev = blk_object->get_driver(blk_object, "pci-device");
+ QTestState *qts = global_qtest;
if (qpci_check_buggy_msi(pci_dev)) {
return;
@@ -504,12 +510,12 @@ static void msix(void *obj, void *u_data, QGuestAllocator *t_alloc)
g_free(req.data);
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, 512, false, true);
- qvirtqueue_add(vq, req_addr + 528, 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, 512, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 528);
@@ -527,14 +533,14 @@ static void msix(void *obj, void *u_data, QGuestAllocator *t_alloc)
g_free(req.data);
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, 512, true, true);
- qvirtqueue_add(vq, req_addr + 528, 1, true, false);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, 512, true, true);
+ qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
status = readb(req_addr + 528);
@@ -569,6 +575,7 @@ static void idx(void *obj, void *u_data, QGuestAllocator *t_alloc)
char *data;
QOSGraphObject *blk_object = obj;
QPCIDevice *pci_dev = blk_object->get_driver(blk_object, "pci-device");
+ QTestState *qts = global_qtest;
if (qpci_check_buggy_msi(pci_dev)) {
return;
@@ -603,12 +610,12 @@ static void idx(void *obj, void *u_data, QGuestAllocator *t_alloc)
g_free(req.data);
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, 512, false, true);
- qvirtqueue_add(vq, req_addr + 528, 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, 512, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
/* Write request */
@@ -623,15 +630,15 @@ static void idx(void *obj, void *u_data, QGuestAllocator *t_alloc)
g_free(req.data);
/* Notify after processing the third request */
- qvirtqueue_set_used_event(vq, 2);
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, 512, false, true);
- qvirtqueue_add(vq, req_addr + 528, 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ qvirtqueue_set_used_event(qts, vq, 2);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, 512, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false);
+ qvirtqueue_kick(qts, dev, vq, free_head);
write_head = free_head;
/* No notification expected */
- status = qvirtio_wait_status_byte_no_isr(dev,
+ status = qvirtio_wait_status_byte_no_isr(qts, dev,
vq, req_addr + 528,
QVIRTIO_BLK_TIMEOUT_US);
g_assert_cmpint(status, ==, 0);
@@ -648,16 +655,16 @@ static void idx(void *obj, void *u_data, QGuestAllocator *t_alloc)
g_free(req.data);
- free_head = qvirtqueue_add(vq, req_addr, 16, false, true);
- qvirtqueue_add(vq, req_addr + 16, 512, true, true);
- qvirtqueue_add(vq, req_addr + 528, 1, true, false);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true);
+ qvirtqueue_add(qts, vq, req_addr + 16, 512, true, true);
+ qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ qvirtqueue_kick(qts, dev, vq, free_head);
/* We get just one notification for both requests */
- qvirtio_wait_used_elem(dev, vq, write_head, NULL,
+ qvirtio_wait_used_elem(qts, dev, vq, write_head, NULL,
QVIRTIO_BLK_TIMEOUT_US);
- g_assert(qvirtqueue_get_buf(vq, &desc_idx, NULL));
+ g_assert(qvirtqueue_get_buf(qts, vq, &desc_idx, NULL));
g_assert_cmpint(desc_idx, ==, free_head);
status = readb(req_addr + 528);
@@ -683,7 +690,7 @@ static void pci_hotplug(void *obj, void *data, QGuestAllocator *t_alloc)
QTestState *qts = dev1->pdev->bus->qts;
/* plug secondary disk */
- qtest_qmp_device_add("virtio-blk-pci", "drv1",
+ qtest_qmp_device_add(qts, "virtio-blk-pci", "drv1",
"{'addr': %s, 'drive': 'drive1'}",
stringify(PCI_SLOT_HP) ".0");
@@ -753,8 +760,10 @@ static void *virtio_blk_test_setup(GString *cmd_line, void *arg)
char *tmp_path = drive_create();
g_string_append_printf(cmd_line,
- " -drive if=none,id=drive0,file=%s,format=raw,auto-read-only=off "
- "-drive if=none,id=drive1,file=null-co://,format=raw ",
+ " -drive if=none,id=drive0,file=%s,"
+ "format=raw,auto-read-only=off "
+ "-drive if=none,id=drive1,file=null-co://,"
+ "file.read-zeroes=on,format=raw ",
tmp_path);
return arg;
diff --git a/tests/virtio-ccw-test.c b/tests/virtio-ccw-test.c
index 48c714d84c..9f445ef4ad 100644
--- a/tests/virtio-ccw-test.c
+++ b/tests/virtio-ccw-test.c
@@ -45,15 +45,18 @@ static void virtio_serial_nop(void)
static void virtio_serial_hotplug(void)
{
- global_qtest = qtest_initf("-device virtio-serial-ccw");
- qtest_qmp_device_add("virtserialport", "hp-port", "{}");
- qtest_qmp_device_del("hp-port");
- qtest_end();
+ QTestState *qts = qtest_initf("-device virtio-serial-ccw");
+
+ qtest_qmp_device_add(qts, "virtserialport", "hp-port", "{}");
+ qtest_qmp_device_del(qts, "hp-port");
+
+ qtest_quit(qts);
}
static void virtio_blk_nop(void)
{
- global_qtest = qtest_initf("-drive if=none,id=drv0,file=null-co://,format=raw "
+ global_qtest = qtest_initf("-drive if=none,id=drv0,file=null-co://,"
+ "file.read-zeroes=on,format=raw "
"-device virtio-blk-ccw,drive=drv0");
qtest_end();
}
@@ -78,14 +81,16 @@ static void virtio_scsi_nop(void)
static void virtio_scsi_hotplug(void)
{
- global_qtest = qtest_initf("-drive if=none,id=drv0,file=null-co://,format=raw "
- "-drive if=none,id=drv1,file=null-co://,format=raw "
+ QTestState *s = qtest_initf("-drive if=none,id=drv0,file=null-co://,"
+ "file.read-zeroes=on,format=raw "
+ "-drive if=none,id=drv1,file=null-co://,"
+ "file.read-zeroes=on,format=raw "
"-device virtio-scsi-ccw "
"-device scsi-hd,drive=drv0");
- qtest_qmp_device_add("scsi-hd", "scsihd", "{'drive': 'drv1'}");
- qtest_qmp_device_del("scsihd");
+ qtest_qmp_device_add(s, "scsi-hd", "scsihd", "{'drive': 'drv1'}");
+ qtest_qmp_device_del(s, "scsihd");
- qtest_end();
+ qtest_quit(s);
}
int main(int argc, char **argv)
diff --git a/tests/virtio-net-test.c b/tests/virtio-net-test.c
index 7aa9622f30..840875aaae 100644
--- a/tests/virtio-net-test.c
+++ b/tests/virtio-net-test.c
@@ -33,6 +33,7 @@ static void rx_test(QVirtioDevice *dev,
QGuestAllocator *alloc, QVirtQueue *vq,
int socket)
{
+ QTestState *qts = global_qtest;
uint64_t req_addr;
uint32_t free_head;
char test[] = "TEST";
@@ -51,13 +52,14 @@ static void rx_test(QVirtioDevice *dev,
req_addr = guest_alloc(alloc, 64);
- free_head = qvirtqueue_add(vq, req_addr, 64, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 64, true, false);
+ qvirtqueue_kick(qts, dev, vq, free_head);
ret = iov_send(socket, iov, 2, 0, sizeof(len) + sizeof(test));
g_assert_cmpint(ret, ==, sizeof(test) + sizeof(len));
- qvirtio_wait_used_elem(dev, vq, free_head, NULL, QVIRTIO_NET_TIMEOUT_US);
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
+ QVIRTIO_NET_TIMEOUT_US);
memread(req_addr + VNET_HDR_SIZE, buffer, sizeof(test));
g_assert_cmpstr(buffer, ==, "TEST");
@@ -68,6 +70,7 @@ static void tx_test(QVirtioDevice *dev,
QGuestAllocator *alloc, QVirtQueue *vq,
int socket)
{
+ QTestState *qts = global_qtest;
uint64_t req_addr;
uint32_t free_head;
uint32_t len;
@@ -77,10 +80,11 @@ static void tx_test(QVirtioDevice *dev,
req_addr = guest_alloc(alloc, 64);
memwrite(req_addr + VNET_HDR_SIZE, "TEST", 4);
- free_head = qvirtqueue_add(vq, req_addr, 64, false, false);
- qvirtqueue_kick(dev, vq, free_head);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 64, false, false);
+ qvirtqueue_kick(qts, dev, vq, free_head);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL, QVIRTIO_NET_TIMEOUT_US);
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
+ QVIRTIO_NET_TIMEOUT_US);
guest_free(alloc, req_addr);
ret = qemu_recv(socket, &len, sizeof(len), 0);
@@ -95,6 +99,7 @@ static void rx_stop_cont_test(QVirtioDevice *dev,
QGuestAllocator *alloc, QVirtQueue *vq,
int socket)
{
+ QTestState *qts = global_qtest;
uint64_t req_addr;
uint32_t free_head;
char test[] = "TEST";
@@ -114,8 +119,8 @@ static void rx_stop_cont_test(QVirtioDevice *dev,
req_addr = guest_alloc(alloc, 64);
- free_head = qvirtqueue_add(vq, req_addr, 64, true, false);
- qvirtqueue_kick(dev, vq, free_head);
+ free_head = qvirtqueue_add(qts, vq, req_addr, 64, true, false);
+ qvirtqueue_kick(qts, dev, vq, free_head);
rsp = qmp("{ 'execute' : 'stop'}");
qobject_unref(rsp);
@@ -131,7 +136,8 @@ static void rx_stop_cont_test(QVirtioDevice *dev,
rsp = qmp("{ 'execute' : 'cont'}");
qobject_unref(rsp);
- qvirtio_wait_used_elem(dev, vq, free_head, NULL, QVIRTIO_NET_TIMEOUT_US);
+ qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL,
+ QVIRTIO_NET_TIMEOUT_US);
memread(req_addr + VNET_HDR_SIZE, buffer, sizeof(test));
g_assert_cmpstr(buffer, ==, "TEST");
@@ -168,7 +174,7 @@ static void hotplug(void *obj, void *data, QGuestAllocator *t_alloc)
QTestState *qts = dev->pdev->bus->qts;
const char *arch = qtest_get_arch();
- qtest_qmp_device_add("virtio-net-pci", "net1",
+ qtest_qmp_device_add(qts, "virtio-net-pci", "net1",
"{'addr': %s}", stringify(PCI_SLOT_HP));
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
@@ -283,19 +289,20 @@ static void large_tx(void *obj, void *data, QGuestAllocator *t_alloc)
uint64_t req_addr;
uint32_t free_head;
size_t alloc_size = (size_t)data / 64;
+ QTestState *qts = global_qtest;
int i;
/* Bypass the limitation by pointing several descriptors to a single
* smaller area */
req_addr = guest_alloc(t_alloc, alloc_size);
- free_head = qvirtqueue_add(vq, req_addr, alloc_size, false, true);
+ free_head = qvirtqueue_add(qts, vq, req_addr, alloc_size, false, true);
for (i = 0; i < 64; i++) {
- qvirtqueue_add(vq, req_addr, alloc_size, false, i != 63);
+ qvirtqueue_add(qts, vq, req_addr, alloc_size, false, i != 63);
}
- qvirtqueue_kick(dev->vdev, vq, free_head);
+ qvirtqueue_kick(qts, dev->vdev, vq, free_head);
- qvirtio_wait_used_elem(dev->vdev, vq, free_head, NULL,
+ qvirtio_wait_used_elem(qts, dev->vdev, vq, free_head, NULL,
QVIRTIO_NET_TIMEOUT_US);
guest_free(t_alloc, req_addr);
}
diff --git a/tests/virtio-rng-test.c b/tests/virtio-rng-test.c
index a38a0d175b..092ba13068 100644
--- a/tests/virtio-rng-test.c
+++ b/tests/virtio-rng-test.c
@@ -22,7 +22,7 @@ static void rng_hotplug(void *obj, void *data, QGuestAllocator *alloc)
const char *arch = qtest_get_arch();
- qtest_qmp_device_add("virtio-rng-pci", "rng1",
+ qtest_qmp_device_add(qts, "virtio-rng-pci", "rng1",
"{'addr': %s}", stringify(PCI_SLOT_HP));
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
diff --git a/tests/virtio-scsi-test.c b/tests/virtio-scsi-test.c
index 1ad9f75d74..09348765d7 100644
--- a/tests/virtio-scsi-test.c
+++ b/tests/virtio-scsi-test.c
@@ -72,6 +72,7 @@ static uint8_t virtio_scsi_do_command(QVirtioSCSIQueues *vs,
uint64_t req_addr, resp_addr, data_in_addr = 0, data_out_addr = 0;
uint8_t response;
uint32_t free_head;
+ QTestState *qts = global_qtest;
vq = vs->vq[2];
@@ -83,24 +84,24 @@ static uint8_t virtio_scsi_do_command(QVirtioSCSIQueues *vs,
/* Add request header */
req_addr = qvirtio_scsi_alloc(vs, sizeof(req), &req);
- free_head = qvirtqueue_add(vq, req_addr, sizeof(req), false, true);
+ free_head = qvirtqueue_add(qts, vq, req_addr, sizeof(req), false, true);
if (data_out_len) {
data_out_addr = qvirtio_scsi_alloc(vs, data_out_len, data_out);
- qvirtqueue_add(vq, data_out_addr, data_out_len, false, true);
+ qvirtqueue_add(qts, vq, data_out_addr, data_out_len, false, true);
}
/* Add response header */
resp_addr = qvirtio_scsi_alloc(vs, sizeof(resp), &resp);
- qvirtqueue_add(vq, resp_addr, sizeof(resp), true, !!data_in_len);
+ qvirtqueue_add(qts, vq, resp_addr, sizeof(resp), true, !!data_in_len);
if (data_in_len) {
data_in_addr = qvirtio_scsi_alloc(vs, data_in_len, data_in);
- qvirtqueue_add(vq, data_in_addr, data_in_len, true, false);
+ qvirtqueue_add(qts, vq, data_in_addr, data_in_len, true, false);
}
- qvirtqueue_kick(vs->dev, vq, free_head);
- qvirtio_wait_used_elem(vs->dev, vq, free_head, NULL,
+ qvirtqueue_kick(qts, vs->dev, vq, free_head);
+ qvirtio_wait_used_elem(qts, vs->dev, vq, free_head, NULL,
QVIRTIO_SCSI_TIMEOUT_US);
response = readb(resp_addr +
@@ -149,8 +150,10 @@ static QVirtioSCSIQueues *qvirtio_scsi_init(QVirtioDevice *dev)
static void hotplug(void *obj, void *data, QGuestAllocator *alloc)
{
- qtest_qmp_device_add("scsi-hd", "scsihd", "{'drive': 'drv1'}");
- qtest_qmp_device_del("scsihd");
+ QTestState *qts = global_qtest;
+
+ qtest_qmp_device_add(qts, "scsi-hd", "scsihd", "{'drive': 'drv1'}");
+ qtest_qmp_device_del(qts, "scsihd");
}
/* Test WRITE SAME with the lba not aligned */
@@ -222,10 +225,12 @@ static void test_iothread_attach_node(void *obj, void *data,
mkqcow2(tmp_path, 64);
/* Attach the overlay to the null0 node */
- qmp_assert_success("{'execute': 'blockdev-add', 'arguments': {"
- " 'driver': 'qcow2', 'node-name': 'overlay',"
- " 'backing': 'null0', 'file': {"
- " 'driver': 'file', 'filename': %s}}}", tmp_path);
+ qtest_qmp_assert_success(scsi_pci->pci_vdev.pdev->bus->qts,
+ "{'execute': 'blockdev-add', 'arguments': {"
+ " 'driver': 'qcow2', 'node-name': 'overlay',"
+ " 'backing': 'null0', 'file': {"
+ " 'driver': 'file', 'filename': %s}}}",
+ tmp_path);
/* Send a request to see if the AioContext is still right */
ret = virtio_scsi_do_command(vs, write_cdb, NULL, 0, buf, 512, NULL);
@@ -239,7 +244,8 @@ fail:
static void *virtio_scsi_hotplug_setup(GString *cmd_line, void *arg)
{
g_string_append(cmd_line,
- " -drive id=drv1,if=none,file=null-co://,format=raw");
+ " -drive id=drv1,if=none,file=null-co://,"
+ "file.read-zeroes=on,format=raw");
return arg;
}
@@ -247,6 +253,7 @@ static void *virtio_scsi_setup(GString *cmd_line, void *arg)
{
g_string_append(cmd_line,
" -drive file=blkdebug::null-co://,"
+ "file.image.read-zeroes=on,"
"if=none,id=dr1,format=raw,file.align=4k "
"-device scsi-hd,drive=dr1,lun=0,scsi-id=1");
return arg;
@@ -256,7 +263,7 @@ static void *virtio_scsi_setup_iothread(GString *cmd_line, void *arg)
{
g_string_append(cmd_line,
" -object iothread,id=thread0"
- " -blockdev driver=null-co,node-name=null0"
+ " -blockdev driver=null-co,read-zeroes=on,node-name=null0"
" -device scsi-hd,drive=null0");
return arg;
}
diff --git a/tests/virtio-serial-test.c b/tests/virtio-serial-test.c
index 066ca61280..e584ad76e8 100644
--- a/tests/virtio-serial-test.c
+++ b/tests/virtio-serial-test.c
@@ -20,8 +20,8 @@ static void virtio_serial_nop(void *obj, void *data, QGuestAllocator *alloc)
static void serial_hotplug(void *obj, void *data, QGuestAllocator *alloc)
{
- qtest_qmp_device_add("virtserialport", "hp-port", "{}");
- qtest_qmp_device_del("hp-port");
+ qtest_qmp_device_add(global_qtest, "virtserialport", "hp-port", "{}");
+ qtest_qmp_device_del(global_qtest, "hp-port");
}
static void register_virtio_serial_test(void)
diff --git a/trace/control-internal.h b/trace/control-internal.h
index c7fbe2d3bf..8b2b50a7cf 100644
--- a/trace/control-internal.h
+++ b/trace/control-internal.h
@@ -10,9 +10,6 @@
#ifndef TRACE__CONTROL_INTERNAL_H
#define TRACE__CONTROL_INTERNAL_H
-#include "qom/cpu.h"
-
-
extern int trace_events_enabled_count;
@@ -59,28 +56,6 @@ static inline bool trace_event_get_state_dynamic(TraceEvent *ev)
return unlikely(trace_events_enabled_count) && *ev->dstate;
}
-static inline bool
-trace_event_get_vcpu_state_dynamic_by_vcpu_id(CPUState *vcpu,
- uint32_t vcpu_id)
-{
- /* it's on fast path, avoid consistency checks (asserts) */
- if (unlikely(trace_events_enabled_count)) {
- return test_bit(vcpu_id, vcpu->trace_dstate);
- } else {
- return false;
- }
-}
-
-static inline bool trace_event_get_vcpu_state_dynamic(CPUState *vcpu,
- TraceEvent *ev)
-{
- uint32_t vcpu_id;
- assert(trace_event_is_vcpu(ev));
- vcpu_id = trace_event_get_vcpu_id(ev);
- return trace_event_get_vcpu_state_dynamic_by_vcpu_id(vcpu, vcpu_id);
-}
-
-
void trace_event_register_group(TraceEvent **events);
#endif /* TRACE__CONTROL_INTERNAL_H */
diff --git a/trace/control-vcpu.h b/trace/control-vcpu.h
new file mode 100644
index 0000000000..a8f1035c2e
--- /dev/null
+++ b/trace/control-vcpu.h
@@ -0,0 +1,63 @@
+/*
+ * Interface for configuring and controlling the state of tracing events.
+ *
+ * Copyright (C) 2011-2016 LluĂ­s Vilanova <vilanova@ac.upc.edu>
+ *
+ * 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 TRACE__CONTROL_VCPU_H
+#define TRACE__CONTROL_VCPU_H
+
+#include "control.h"
+#include "event-internal.h"
+#include "qom/cpu.h"
+
+/**
+ * trace_event_get_vcpu_state:
+ * @vcpu: Target vCPU.
+ * @id: Event identifier name.
+ *
+ * Get the tracing state of an event (both static and dynamic) for the given
+ * vCPU.
+ *
+ * If the event has the disabled property, the check will have no performance
+ * impact.
+ */
+#define trace_event_get_vcpu_state(vcpu, id) \
+ ((id ##_ENABLED) && \
+ trace_event_get_vcpu_state_dynamic_by_vcpu_id( \
+ vcpu, _ ## id ## _EVENT.vcpu_id))
+
+/**
+ * trace_event_get_vcpu_state_dynamic:
+ *
+ * Get the dynamic tracing state of an event for the given vCPU.
+ */
+static bool trace_event_get_vcpu_state_dynamic(CPUState *vcpu, TraceEvent *ev);
+
+#include "control-internal.h"
+
+static inline bool
+trace_event_get_vcpu_state_dynamic_by_vcpu_id(CPUState *vcpu,
+ uint32_t vcpu_id)
+{
+ /* it's on fast path, avoid consistency checks (asserts) */
+ if (unlikely(trace_events_enabled_count)) {
+ return test_bit(vcpu_id, vcpu->trace_dstate);
+ } else {
+ return false;
+ }
+}
+
+static inline bool trace_event_get_vcpu_state_dynamic(CPUState *vcpu,
+ TraceEvent *ev)
+{
+ uint32_t vcpu_id;
+ assert(trace_event_is_vcpu(ev));
+ vcpu_id = trace_event_get_vcpu_id(ev);
+ return trace_event_get_vcpu_state_dynamic_by_vcpu_id(vcpu, vcpu_id);
+}
+
+#endif
diff --git a/trace/control.h b/trace/control.h
index 570492d6e8..1f81c491b6 100644
--- a/trace/control.h
+++ b/trace/control.h
@@ -120,22 +120,6 @@ static const char * trace_event_get_name(TraceEvent *ev);
((id ##_ENABLED) && id ##_BACKEND_DSTATE())
/**
- * trace_event_get_vcpu_state:
- * @vcpu: Target vCPU.
- * @id: Event identifier name.
- *
- * Get the tracing state of an event (both static and dynamic) for the given
- * vCPU.
- *
- * If the event has the disabled property, the check will have no performance
- * impact.
- */
-#define trace_event_get_vcpu_state(vcpu, id) \
- ((id ##_ENABLED) && \
- trace_event_get_vcpu_state_dynamic_by_vcpu_id( \
- vcpu, _ ## id ## _EVENT.vcpu_id))
-
-/**
* trace_event_get_state_static:
* @id: Event identifier.
*
@@ -156,14 +140,6 @@ static bool trace_event_get_state_static(TraceEvent *ev);
static bool trace_event_get_state_dynamic(TraceEvent *ev);
/**
- * trace_event_get_vcpu_state_dynamic:
- *
- * Get the dynamic tracing state of an event for the given vCPU.
- */
-static bool trace_event_get_vcpu_state_dynamic(CPUState *vcpu, TraceEvent *ev);
-
-
-/**
* trace_event_set_state_dynamic:
*
* Set the dynamic tracing state of an event.
diff --git a/trace/qmp.c b/trace/qmp.c
index ea99b00956..38246e1aa6 100644
--- a/trace/qmp.c
+++ b/trace/qmp.c
@@ -10,7 +10,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qapi/qapi-commands-trace.h"
-#include "control.h"
+#include "control-vcpu.h"
static CPUState *get_cpu(bool has_vcpu, int vcpu, Error **errp)
diff --git a/ui/cocoa.m b/ui/cocoa.m
index c2984028c5..f023d5166f 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -31,11 +31,13 @@
#include "ui/console.h"
#include "ui/input.h"
#include "sysemu/sysemu.h"
+#include "sysemu/runstate.h"
#include "qapi/error.h"
#include "qapi/qapi-commands-block.h"
#include "qapi/qapi-commands-misc.h"
#include "sysemu/blockdev.h"
#include "qemu-version.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include <Carbon/Carbon.h>
#include "qom/cpu.h"
diff --git a/ui/gtk.c b/ui/gtk.c
index ad6963d4f5..2f23922afc 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -47,6 +47,7 @@
#include "trace.h"
#include "ui/input.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
#include "keymaps.h"
#include "chardev/char.h"
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index db5ccff5ad..c4301851bd 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -1,5 +1,4 @@
#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
#include "keymaps.h"
#include "ui/input.h"
diff --git a/ui/input-legacy.c b/ui/input-legacy.c
index 549654e26a..9fc78a639b 100644
--- a/ui/input-legacy.c
+++ b/ui/input-legacy.c
@@ -24,7 +24,6 @@
#include "qemu/osdep.h"
#include "qapi/qapi-commands-ui.h"
-#include "sysemu/sysemu.h"
#include "ui/console.h"
#include "keymaps.h"
#include "ui/input.h"
diff --git a/ui/input-linux.c b/ui/input-linux.c
index c8d22f99d9..59456fe765 100644
--- a/ui/input-linux.c
+++ b/ui/input-linux.c
@@ -7,9 +7,9 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qemu/config-file.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/sockets.h"
-#include "sysemu/sysemu.h"
#include "ui/input.h"
#include "qom/object_interfaces.h"
#include "sysemu/iothread.h"
diff --git a/ui/input.c b/ui/input.c
index 9494688295..4791b089c7 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -8,6 +8,7 @@
#include "ui/input.h"
#include "ui/console.h"
#include "sysemu/replay.h"
+#include "sysemu/runstate.h"
struct QemuInputHandlerState {
DeviceState *dev;
diff --git a/ui/kbd-state.c b/ui/kbd-state.c
index 1668d17dda..62d42a7a22 100644
--- a/ui/kbd-state.c
+++ b/ui/kbd-state.c
@@ -5,7 +5,6 @@
*/
#include "qemu/osdep.h"
#include "qemu/bitmap.h"
-#include "qemu/queue.h"
#include "ui/console.h"
#include "ui/input.h"
#include "ui/kbd-state.h"
diff --git a/ui/keymaps.c b/ui/keymaps.c
index 6e8a321971..4e5fca57a8 100644
--- a/ui/keymaps.c
+++ b/ui/keymaps.c
@@ -25,7 +25,6 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "keymaps.h"
-#include "sysemu/sysemu.h"
#include "trace.h"
#include "qemu/ctype.h"
#include "qemu/error-report.h"
diff --git a/ui/sdl2-2d.c b/ui/sdl2-2d.c
index db191aaa79..a2ea85127d 100644
--- a/ui/sdl2-2d.c
+++ b/ui/sdl2-2d.c
@@ -27,7 +27,6 @@
#include "ui/console.h"
#include "ui/input.h"
#include "ui/sdl2.h"
-#include "sysemu/sysemu.h"
void sdl2_2d_update(DisplayChangeListener *dcl,
int x, int y, int w, int h)
diff --git a/ui/sdl2-gl.c b/ui/sdl2-gl.c
index 7a37e7c995..c73d273bf8 100644
--- a/ui/sdl2-gl.c
+++ b/ui/sdl2-gl.c
@@ -29,7 +29,6 @@
#include "ui/console.h"
#include "ui/input.h"
#include "ui/sdl2.h"
-#include "sysemu/sysemu.h"
static void sdl2_set_scanout_mode(struct sdl2_console *scon, bool scanout)
{
diff --git a/ui/sdl2-input.c b/ui/sdl2-input.c
index b1daae4111..1f9fe831b3 100644
--- a/ui/sdl2-input.c
+++ b/ui/sdl2-input.c
@@ -27,7 +27,6 @@
#include "ui/console.h"
#include "ui/input.h"
#include "ui/sdl2.h"
-#include "sysemu/sysemu.h"
void sdl2_process_key(struct sdl2_console *scon,
SDL_KeyboardEvent *ev)
diff --git a/ui/sdl2.c b/ui/sdl2.c
index b8a31197e8..bd4e73661d 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -28,6 +28,7 @@
#include "ui/console.h"
#include "ui/input.h"
#include "ui/sdl2.h"
+#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
static int sdl2_num_outputs;
diff --git a/ui/spice-core.c b/ui/spice-core.c
index 2ffc3335f0..ecc2ec2c55 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -19,9 +19,10 @@
#include <spice.h>
#include "sysemu/sysemu.h"
-
+#include "sysemu/runstate.h"
#include "ui/qemu-spice.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/thread.h"
#include "qemu/timer.h"
@@ -34,7 +35,6 @@
#include "qemu/notify.h"
#include "qemu/option.h"
#include "migration/misc.h"
-#include "hw/hw.h"
#include "hw/pci/pci_bus.h"
#include "ui/spice-display.h"
diff --git a/ui/spice-display.c b/ui/spice-display.c
index 104df23025..6babe24909 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -18,10 +18,10 @@
#include "qemu/osdep.h"
#include "ui/qemu-spice.h"
#include "qemu/timer.h"
+#include "qemu/main-loop.h"
#include "qemu/option.h"
#include "qemu/queue.h"
#include "ui/console.h"
-#include "sysemu/sysemu.h"
#include "trace.h"
#include "ui/spice-display.h"
diff --git a/ui/vnc-auth-sasl.h b/ui/vnc-auth-sasl.h
index fb55fe04ca..1bfb86c6f5 100644
--- a/ui/vnc-auth-sasl.h
+++ b/ui/vnc-auth-sasl.h
@@ -30,7 +30,6 @@
typedef struct VncStateSASL VncStateSASL;
typedef struct VncDisplaySASL VncDisplaySASL;
-#include "qemu/main-loop.h"
#include "authz/base.h"
struct VncStateSASL {
diff --git a/ui/vnc.c b/ui/vnc.c
index 38f92bfca3..4812ed29d0 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -28,8 +28,10 @@
#include "vnc.h"
#include "vnc-jobs.h"
#include "trace.h"
+#include "hw/qdev-core.h"
#include "sysemu/sysemu.h"
#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qemu/option.h"
#include "qemu/sockets.h"
diff --git a/ui/vnc.h b/ui/vnc.h
index 2f84db3142..18f1b1d6d0 100644
--- a/ui/vnc.h
+++ b/ui/vnc.h
@@ -27,7 +27,6 @@
#ifndef QEMU_VNC_H
#define QEMU_VNC_H
-#include "qapi/qapi-types-ui.h"
#include "qemu/queue.h"
#include "qemu/thread.h"
#include "ui/console.h"
diff --git a/util/fifo8.c b/util/fifo8.c
index a9aa20a9f7..a5dd789ce5 100644
--- a/util/fifo8.c
+++ b/util/fifo8.c
@@ -13,6 +13,7 @@
*/
#include "qemu/osdep.h"
+#include "migration/vmstate.h"
#include "qemu/fifo8.h"
void fifo8_create(Fifo8 *fifo, uint32_t capacity)
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index fe0309ce7a..5fda67dedf 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -36,6 +36,7 @@
#include "trace.h"
#include "qapi/error.h"
#include "qemu/sockets.h"
+#include "qemu/thread.h"
#include <libgen.h>
#include <sys/signal.h>
#include "qemu/cutils.h"
diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index a5092dbd12..e3a1666578 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -219,6 +219,12 @@ static int inet_listen_saddr(InetSocketAddress *saddr,
bool socket_created = false;
Error *err = NULL;
+ if (saddr->keep_alive) {
+ error_setg(errp, "keep-alive option is not supported for passive "
+ "sockets");
+ return -1;
+ }
+
memset(&ai,0, sizeof(ai));
ai.ai_flags = AI_PASSIVE;
if (saddr->has_numeric && saddr->numeric) {
@@ -458,6 +464,19 @@ int inet_connect_saddr(InetSocketAddress *saddr, Error **errp)
}
freeaddrinfo(res);
+
+ if (saddr->keep_alive) {
+ int val = 1;
+ int ret = qemu_setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE,
+ &val, sizeof(val));
+
+ if (ret < 0) {
+ error_setg_errno(errp, errno, "Unable to set KEEPALIVE");
+ close(sock);
+ return -1;
+ }
+ }
+
return sock;
}
@@ -653,6 +672,15 @@ int inet_parse(InetSocketAddress *addr, const char *str, Error **errp)
}
addr->has_ipv6 = true;
}
+ begin = strstr(optstr, ",keep-alive");
+ if (begin) {
+ if (inet_parse_flag("keep-alive", begin + strlen(",keep-alive"),
+ &addr->keep_alive, errp) < 0)
+ {
+ return -1;
+ }
+ addr->has_keep_alive = true;
+ }
return 0;
}
diff --git a/util/qemu-timer.c b/util/qemu-timer.c
index 1cc1b2f2c3..b0e40a9087 100644
--- a/util/qemu-timer.c
+++ b/util/qemu-timer.c
@@ -26,7 +26,6 @@
#include "qemu/main-loop.h"
#include "qemu/timer.h"
#include "sysemu/replay.h"
-#include "sysemu/sysemu.h"
#include "sysemu/cpus.h"
#ifdef CONFIG_POSIX
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index 2367fe8f7f..26ffd0d6b5 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -17,7 +17,6 @@
#include "exec/ramlist.h"
#include "exec/cpu-common.h"
#include "trace.h"
-#include "qemu/queue.h"
#include "qemu/error-report.h"
#include "standard-headers/linux/pci_regs.h"
#include "qemu/event_notifier.h"
diff --git a/vl.c b/vl.c
index b426b32134..edd5390110 100644
--- a/vl.c
+++ b/vl.c
@@ -25,11 +25,14 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/units.h"
+#include "hw/qdev-properties.h"
#include "qapi/error.h"
#include "qemu-version.h"
#include "qemu/cutils.h"
#include "qemu/help_option.h"
#include "qemu/uuid.h"
+#include "sysemu/reset.h"
+#include "sysemu/runstate.h"
#include "sysemu/seccomp.h"
#include "sysemu/tcg.h"
@@ -54,7 +57,6 @@ int main(int argc, char **argv)
#include "qemu/error-report.h"
#include "qemu/sockets.h"
-#include "hw/hw.h"
#include "sysemu/accel.h"
#include "hw/usb.h"
#include "hw/isa/isa.h"
@@ -65,7 +67,6 @@ int main(int argc, char **argv)
#include "hw/firmware/smbios.h"
#include "hw/acpi/acpi.h"
#include "hw/xen/xen.h"
-#include "hw/qdev.h"
#include "hw/loader.h"
#include "monitor/qdev.h"
#include "sysemu/bt.h"
@@ -1362,14 +1363,14 @@ static int machine_help_func(QemuOpts *opts, MachineState *machine)
return 1;
}
-struct vm_change_state_entry {
+struct VMChangeStateEntry {
VMChangeStateHandler *cb;
void *opaque;
- QTAILQ_ENTRY(vm_change_state_entry) entries;
+ QTAILQ_ENTRY(VMChangeStateEntry) entries;
int priority;
};
-static QTAILQ_HEAD(, vm_change_state_entry) vm_change_state_head;
+static QTAILQ_HEAD(, VMChangeStateEntry) vm_change_state_head;
/**
* qemu_add_vm_change_state_handler_prio:
@@ -4197,7 +4198,7 @@ int main(int argc, char **argv, char **envp)
migration_object_init();
if (qtest_chrdev) {
- qtest_init(qtest_chrdev, qtest_log, &error_fatal);
+ qtest_server_init(qtest_chrdev, qtest_log, &error_fatal);
}
machine_opts = qemu_get_machine_opts();