From d6454270575da1f16a8923c7cb240e46ef243f72 Mon Sep 17 00:00:00 2001
From: Markus Armbruster <armbru@redhat.com>
Date: Mon, 12 Aug 2019 07:23:45 +0200
Subject: [PATCH] Include migration/vmstate.h less
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In my "build everything" tree, changing migration/vmstate.h triggers a
recompile of some 2700 out of 6600 objects (not counting tests and
objects that don't depend on qemu/osdep.h).

hw/hw.h supposedly includes it for convenience.  Several other headers
include it just to get VMStateDescription.  The previous commit made
that unnecessary.

Include migration/vmstate.h only where it's still needed.  Touching it
now recompiles only some 1600 objects.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20190812052359.30071-16-armbru@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 audio/audio.c                      | 1 +
 cpus.c                             | 1 +
 hw/acpi/cpu.c                      | 1 +
 hw/acpi/ich9.c                     | 1 +
 hw/acpi/memory_hotplug.c           | 1 +
 hw/acpi/pcihp.c                    | 1 +
 hw/acpi/piix4.c                    | 1 +
 hw/acpi/tco.c                      | 2 ++
 hw/acpi/vmgenid.c                  | 1 +
 hw/adc/stm32f2xx_adc.c             | 1 +
 hw/arm/armsse.c                    | 1 +
 hw/arm/highbank.c                  | 1 +
 hw/arm/integratorcp.c              | 1 +
 hw/arm/musicpal.c                  | 1 +
 hw/arm/pxa2xx.c                    | 1 +
 hw/arm/pxa2xx_gpio.c               | 1 +
 hw/arm/pxa2xx_pic.c                | 1 +
 hw/arm/smmuv3.c                    | 1 +
 hw/arm/spitz.c                     | 1 +
 hw/arm/stellaris.c                 | 1 +
 hw/arm/strongarm.c                 | 1 +
 hw/arm/versatilepb.c               | 1 +
 hw/arm/virt-acpi-build.c           | 1 +
 hw/arm/z2.c                        | 1 +
 hw/audio/ac97.c                    | 1 +
 hw/audio/cs4231.c                  | 1 +
 hw/audio/cs4231a.c                 | 1 +
 hw/audio/es1370.c                  | 1 +
 hw/audio/gus.c                     | 1 +
 hw/audio/hda-codec.c               | 1 +
 hw/audio/intel-hda.c               | 1 +
 hw/audio/lm4549.c                  | 1 +
 hw/audio/marvell_88w8618.c         | 1 +
 hw/audio/milkymist-ac97.c          | 1 +
 hw/audio/pcspk.c                   | 1 +
 hw/audio/pl041.c                   | 1 +
 hw/audio/sb16.c                    | 1 +
 hw/audio/wm8750.c                  | 1 +
 hw/block/ecc.c                     | 1 +
 hw/block/fdc.c                     | 1 +
 hw/block/m25p80.c                  | 1 +
 hw/block/nand.c                    | 1 +
 hw/block/nvme.c                    | 1 +
 hw/block/onenand.c                 | 1 +
 hw/block/pflash_cfi01.c            | 1 +
 hw/block/pflash_cfi02.c            | 1 +
 hw/char/bcm2835_aux.c              | 1 +
 hw/char/cadence_uart.c             | 1 +
 hw/char/cmsdk-apb-uart.c           | 1 +
 hw/char/digic-uart.c               | 1 +
 hw/char/escc.c                     | 1 +
 hw/char/exynos4210_uart.c          | 1 +
 hw/char/imx_serial.c               | 1 +
 hw/char/ipoctal232.c               | 1 +
 hw/char/lm32_juart.c               | 1 +
 hw/char/lm32_uart.c                | 1 +
 hw/char/milkymist-uart.c           | 1 +
 hw/char/nrf51_uart.c               | 1 +
 hw/char/parallel.c                 | 1 +
 hw/char/pl011.c                    | 1 +
 hw/char/sclpconsole-lm.c           | 1 +
 hw/char/sclpconsole.c              | 1 +
 hw/char/serial-isa.c               | 1 +
 hw/char/serial-pci-multi.c         | 1 +
 hw/char/serial-pci.c               | 1 +
 hw/char/serial.c                   | 1 +
 hw/char/spapr_vty.c                | 1 +
 hw/core/loader.c                   | 1 +
 hw/core/numa.c                     | 1 +
 hw/core/or-irq.c                   | 1 +
 hw/core/ptimer.c                   | 2 ++
 hw/core/qdev.c                     | 1 +
 hw/display/ads7846.c               | 1 +
 hw/display/bcm2835_fb.c            | 1 +
 hw/display/bochs-display.c         | 1 +
 hw/display/cg3.c                   | 1 +
 hw/display/cirrus_vga.c            | 1 +
 hw/display/dpcd.c                  | 1 +
 hw/display/exynos4210_fimd.c       | 1 +
 hw/display/g364fb.c                | 1 +
 hw/display/i2c-ddc.c               | 1 +
 hw/display/jazz_led.c              | 1 +
 hw/display/milkymist-tmu2.c        | 1 +
 hw/display/milkymist-vgafb.c       | 1 +
 hw/display/pl110.c                 | 1 +
 hw/display/pxa2xx_lcd.c            | 1 +
 hw/display/qxl.c                   | 1 +
 hw/display/sii9022.c               | 1 +
 hw/display/sm501.c                 | 1 +
 hw/display/ssd0303.c               | 1 +
 hw/display/ssd0323.c               | 1 +
 hw/display/tcx.c                   | 1 +
 hw/display/vga-isa-mm.c            | 2 ++
 hw/display/vga-pci.c               | 1 +
 hw/display/vga.c                   | 1 +
 hw/display/vmware_vga.c            | 1 +
 hw/display/xlnx_dp.c               | 1 +
 hw/dma/bcm2835_dma.c               | 1 +
 hw/dma/i82374.c                    | 1 +
 hw/dma/i8257.c                     | 1 +
 hw/dma/pl080.c                     | 1 +
 hw/dma/pl330.c                     | 1 +
 hw/dma/pxa2xx_dma.c                | 1 +
 hw/dma/rc4030.c                    | 1 +
 hw/dma/sparc32_dma.c               | 1 +
 hw/dma/xlnx-zdma.c                 | 1 +
 hw/dma/xlnx-zynq-devcfg.c          | 1 +
 hw/dma/xlnx_dpdma.c                | 1 +
 hw/gpio/bcm2835_gpio.c             | 1 +
 hw/gpio/gpio_key.c                 | 1 +
 hw/gpio/imx_gpio.c                 | 1 +
 hw/gpio/max7310.c                  | 1 +
 hw/gpio/mpc8xxx.c                  | 1 +
 hw/gpio/nrf51_gpio.c               | 1 +
 hw/gpio/pl061.c                    | 1 +
 hw/gpio/zaurus.c                   | 1 +
 hw/hppa/dino.c                     | 1 +
 hw/i2c/aspeed_i2c.c                | 1 +
 hw/i2c/core.c                      | 1 +
 hw/i2c/exynos4210_i2c.c            | 1 +
 hw/i2c/imx_i2c.c                   | 1 +
 hw/i2c/microbit_i2c.c              | 1 +
 hw/i2c/mpc_i2c.c                   | 1 +
 hw/i2c/pm_smbus.c                  | 2 ++
 hw/i2c/smbus_eeprom.c              | 1 +
 hw/i2c/smbus_ich9.c                | 1 +
 hw/i2c/smbus_slave.c               | 1 +
 hw/i386/acpi-build.c               | 1 +
 hw/i386/amd_iommu.c                | 2 ++
 hw/i386/intel_iommu.c              | 1 +
 hw/i386/kvm/clock.c                | 1 +
 hw/i386/kvmvapic.c                 | 1 +
 hw/i386/pc.c                       | 1 +
 hw/i386/vmmouse.c                  | 2 ++
 hw/i386/xen/xen_platform.c         | 1 +
 hw/i386/xen/xen_pvdevice.c         | 1 +
 hw/ide/ahci-allwinner.c            | 1 +
 hw/ide/ahci.c                      | 1 +
 hw/ide/cmd646.c                    | 1 +
 hw/ide/core.c                      | 1 +
 hw/ide/ich.c                       | 1 +
 hw/ide/isa.c                       | 1 +
 hw/ide/macio.c                     | 1 +
 hw/ide/microdrive.c                | 1 +
 hw/ide/mmio.c                      | 1 +
 hw/ide/pci.c                       | 1 +
 hw/ide/piix.c                      | 1 +
 hw/ide/via.c                       | 1 +
 hw/input/adb-kbd.c                 | 1 +
 hw/input/adb-mouse.c               | 1 +
 hw/input/adb.c                     | 1 +
 hw/input/hid.c                     | 2 ++
 hw/input/lm832x.c                  | 1 +
 hw/input/milkymist-softusb.c       | 1 +
 hw/input/pckbd.c                   | 1 +
 hw/input/pl050.c                   | 1 +
 hw/input/ps2.c                     | 1 +
 hw/input/pxa2xx_keypad.c           | 1 +
 hw/input/stellaris_input.c         | 1 +
 hw/input/tsc2005.c                 | 1 +
 hw/input/tsc210x.c                 | 1 +
 hw/intc/allwinner-a10-pic.c        | 1 +
 hw/intc/apic_common.c              | 1 +
 hw/intc/arm_gic_common.c           | 1 +
 hw/intc/arm_gicv3_common.c         | 1 +
 hw/intc/arm_gicv3_its_common.c     | 1 +
 hw/intc/armv7m_nvic.c              | 1 +
 hw/intc/aspeed_vic.c               | 1 +
 hw/intc/bcm2835_ic.c               | 1 +
 hw/intc/bcm2836_control.c          | 1 +
 hw/intc/exynos4210_combiner.c      | 1 +
 hw/intc/exynos4210_gic.c           | 1 +
 hw/intc/heathrow_pic.c             | 1 +
 hw/intc/i8259_common.c             | 2 ++
 hw/intc/imx_avic.c                 | 1 +
 hw/intc/imx_gpcv2.c                | 1 +
 hw/intc/ioapic_common.c            | 1 +
 hw/intc/lm32_pic.c                 | 1 +
 hw/intc/ompic.c                    | 1 +
 hw/intc/openpic.c                  | 1 +
 hw/intc/pl190.c                    | 1 +
 hw/intc/slavio_intctl.c            | 1 +
 hw/intc/spapr_xive.c               | 1 +
 hw/intc/xics.c                     | 1 +
 hw/intc/xive.c                     | 1 +
 hw/intc/xlnx-pmu-iomod-intc.c      | 1 +
 hw/intc/xlnx-zynqmp-ipi.c          | 1 +
 hw/ipack/ipack.c                   | 1 +
 hw/ipack/tpci200.c                 | 1 +
 hw/ipmi/ipmi_bmc_extern.c          | 1 +
 hw/ipmi/ipmi_bmc_sim.c             | 1 +
 hw/ipmi/isa_ipmi_bt.c              | 1 +
 hw/ipmi/isa_ipmi_kcs.c             | 1 +
 hw/isa/apm.c                       | 1 +
 hw/isa/i82378.c                    | 1 +
 hw/isa/lpc_ich9.c                  | 1 +
 hw/isa/pc87312.c                   | 1 +
 hw/isa/piix4.c                     | 1 +
 hw/isa/vt82c686.c                  | 1 +
 hw/mem/pc-dimm.c                   | 1 +
 hw/mips/gt64xxx_pci.c              | 1 +
 hw/misc/a9scu.c                    | 1 +
 hw/misc/arm_l2x0.c                 | 1 +
 hw/misc/arm_sysctl.c               | 1 +
 hw/misc/armsse-mhu.c               | 1 +
 hw/misc/aspeed_scu.c               | 1 +
 hw/misc/aspeed_sdmc.c              | 1 +
 hw/misc/aspeed_xdma.c              | 1 +
 hw/misc/bcm2835_mbox.c             | 1 +
 hw/misc/bcm2835_property.c         | 1 +
 hw/misc/bcm2835_rng.c              | 1 +
 hw/misc/eccmemctl.c                | 1 +
 hw/misc/exynos4210_clk.c           | 1 +
 hw/misc/exynos4210_pmu.c           | 1 +
 hw/misc/exynos4210_rng.c           | 1 +
 hw/misc/imx25_ccm.c                | 1 +
 hw/misc/imx31_ccm.c                | 1 +
 hw/misc/imx6_ccm.c                 | 1 +
 hw/misc/imx6_src.c                 | 1 +
 hw/misc/imx6ul_ccm.c               | 1 +
 hw/misc/imx7_ccm.c                 | 1 +
 hw/misc/iotkit-secctl.c            | 1 +
 hw/misc/iotkit-sysctl.c            | 1 +
 hw/misc/ivshmem.c                  | 1 +
 hw/misc/macio/cuda.c               | 1 +
 hw/misc/macio/gpio.c               | 1 +
 hw/misc/macio/mac_dbdma.c          | 1 +
 hw/misc/macio/macio.c              | 1 +
 hw/misc/macio/pmu.c                | 1 +
 hw/misc/max111x.c                  | 1 +
 hw/misc/milkymist-hpdmc.c          | 1 +
 hw/misc/milkymist-pfpu.c           | 1 +
 hw/misc/mips_cmgcr.c               | 1 +
 hw/misc/mips_cpc.c                 | 1 +
 hw/misc/mos6522.c                  | 1 +
 hw/misc/mps2-fpgaio.c              | 1 +
 hw/misc/mps2-scc.c                 | 1 +
 hw/misc/msf2-sysreg.c              | 1 +
 hw/misc/mst_fpga.c                 | 1 +
 hw/misc/nrf51_rng.c                | 1 +
 hw/misc/pca9552.c                  | 1 +
 hw/misc/slavio_misc.c              | 1 +
 hw/misc/tmp105.c                   | 1 +
 hw/misc/tmp421.c                   | 1 +
 hw/misc/tz-mpc.c                   | 1 +
 hw/misc/tz-msc.c                   | 1 +
 hw/misc/tz-ppc.c                   | 1 +
 hw/misc/vmcoreinfo.c               | 1 +
 hw/misc/zynq-xadc.c                | 1 +
 hw/misc/zynq_slcr.c                | 1 +
 hw/net/allwinner_emac.c            | 1 +
 hw/net/cadence_gem.c               | 1 +
 hw/net/can/can_kvaser_pci.c        | 1 +
 hw/net/can/can_mioe3680_pci.c      | 1 +
 hw/net/can/can_pcm3680_pci.c       | 1 +
 hw/net/can/can_sja1000.c           | 1 +
 hw/net/dp8393x.c                   | 1 +
 hw/net/e1000.c                     | 1 +
 hw/net/e1000e.c                    | 1 +
 hw/net/eepro100.c                  | 1 +
 hw/net/ftgmac100.c                 | 1 +
 hw/net/imx_fec.c                   | 1 +
 hw/net/lan9118.c                   | 1 +
 hw/net/lance.c                     | 1 +
 hw/net/milkymist-minimac2.c        | 1 +
 hw/net/mipsnet.c                   | 1 +
 hw/net/ne2000-isa.c                | 1 +
 hw/net/ne2000-pci.c                | 1 +
 hw/net/ne2000.c                    | 1 +
 hw/net/pcnet-pci.c                 | 1 +
 hw/net/pcnet.c                     | 1 +
 hw/net/rocker/rocker.c             | 1 +
 hw/net/rtl8139.c                   | 1 +
 hw/net/smc91c111.c                 | 1 +
 hw/net/spapr_llan.c                | 1 +
 hw/net/stellaris_enet.c            | 1 +
 hw/net/sungem.c                    | 1 +
 hw/net/sunhme.c                    | 1 +
 hw/net/vmxnet3.c                   | 1 +
 hw/net/xgmac.c                     | 1 +
 hw/nvram/ds1225y.c                 | 1 +
 hw/nvram/eeprom93xx.c              | 1 +
 hw/nvram/fw_cfg.c                  | 1 +
 hw/nvram/mac_nvram.c               | 1 +
 hw/nvram/nrf51_nvm.c               | 1 +
 hw/nvram/spapr_nvram.c             | 1 +
 hw/openrisc/cputimer.c             | 1 +
 hw/pci-bridge/gen_pcie_root_port.c | 1 +
 hw/pci-bridge/i82801b11.c          | 1 +
 hw/pci-bridge/ioh3420.c            | 1 +
 hw/pci-bridge/xio3130_downstream.c | 1 +
 hw/pci-bridge/xio3130_upstream.c   | 1 +
 hw/pci-host/bonito.c               | 1 +
 hw/pci-host/designware.c           | 1 +
 hw/pci-host/gpex.c                 | 1 +
 hw/pci-host/piix.c                 | 1 +
 hw/pci-host/ppce500.c              | 1 +
 hw/pci-host/prep.c                 | 1 +
 hw/pci-host/q35.c                  | 1 +
 hw/pci-host/versatile.c            | 1 +
 hw/pci/msix.c                      | 1 +
 hw/pci/pci.c                       | 1 +
 hw/pci/pcie_aer.c                  | 1 +
 hw/ppc/ppc.c                       | 1 +
 hw/ppc/ppc4xx_pci.c                | 1 +
 hw/ppc/prep_systemio.c             | 1 +
 hw/ppc/rs6000_mc.c                 | 1 +
 hw/ppc/spapr_caps.c                | 1 +
 hw/ppc/spapr_cpu_core.c            | 1 +
 hw/ppc/spapr_drc.c                 | 1 +
 hw/ppc/spapr_iommu.c               | 1 +
 hw/ppc/spapr_ovec.c                | 1 +
 hw/ppc/spapr_pci.c                 | 1 +
 hw/ppc/spapr_rtc.c                 | 1 +
 hw/ppc/spapr_vio.c                 | 1 +
 hw/riscv/sifive_gpio.c             | 1 +
 hw/s390x/event-facility.c          | 1 +
 hw/s390x/sclpquiesce.c             | 1 +
 hw/scsi/esp-pci.c                  | 1 +
 hw/scsi/esp.c                      | 1 +
 hw/scsi/lsi53c895a.c               | 1 +
 hw/scsi/megasas.c                  | 1 +
 hw/scsi/mptsas.c                   | 1 +
 hw/scsi/scsi-bus.c                 | 1 +
 hw/scsi/scsi-disk.c                | 1 +
 hw/scsi/spapr_vscsi.c              | 1 +
 hw/scsi/vmw_pvscsi.c               | 1 +
 hw/sd/bcm2835_sdhost.c             | 1 +
 hw/sd/milkymist-memcard.c          | 1 +
 hw/sd/pl181.c                      | 1 +
 hw/sd/pxa2xx_mmci.c                | 1 +
 hw/sd/sd.c                         | 1 +
 hw/sd/sdhci.c                      | 1 +
 hw/sd/ssi-sd.c                     | 1 +
 hw/sparc/sun4m.c                   | 1 +
 hw/sparc/sun4m_iommu.c             | 1 +
 hw/sparc64/sun4u.c                 | 2 ++
 hw/ssi/aspeed_smc.c                | 1 +
 hw/ssi/imx_spi.c                   | 1 +
 hw/ssi/mss-spi.c                   | 1 +
 hw/ssi/pl022.c                     | 1 +
 hw/ssi/ssi.c                       | 1 +
 hw/ssi/stm32f2xx_spi.c             | 1 +
 hw/ssi/xilinx_spi.c                | 1 +
 hw/ssi/xilinx_spips.c              | 1 +
 hw/timer/a9gtimer.c                | 1 +
 hw/timer/allwinner-a10-pit.c       | 1 +
 hw/timer/arm_mptimer.c             | 1 +
 hw/timer/arm_timer.c               | 1 +
 hw/timer/armv7m_systick.c          | 1 +
 hw/timer/aspeed_rtc.c              | 1 +
 hw/timer/aspeed_timer.c            | 1 +
 hw/timer/cadence_ttc.c             | 1 +
 hw/timer/cmsdk-apb-dualtimer.c     | 1 +
 hw/timer/cmsdk-apb-timer.c         | 1 +
 hw/timer/digic-timer.c             | 1 +
 hw/timer/ds1338.c                  | 1 +
 hw/timer/exynos4210_mct.c          | 1 +
 hw/timer/exynos4210_pwm.c          | 1 +
 hw/timer/exynos4210_rtc.c          | 1 +
 hw/timer/hpet.c                    | 1 +
 hw/timer/i8254_common.c            | 1 +
 hw/timer/imx_epit.c                | 1 +
 hw/timer/imx_gpt.c                 | 1 +
 hw/timer/lm32_timer.c              | 1 +
 hw/timer/m48t59.c                  | 1 +
 hw/timer/mc146818rtc.c             | 1 +
 hw/timer/milkymist-sysctl.c        | 1 +
 hw/timer/mss-timer.c               | 1 +
 hw/timer/nrf51_timer.c             | 1 +
 hw/timer/pl031.c                   | 1 +
 hw/timer/pxa2xx_timer.c            | 1 +
 hw/timer/slavio_timer.c            | 1 +
 hw/timer/stm32f2xx_timer.c         | 1 +
 hw/timer/twl92230.c                | 1 +
 hw/timer/xlnx-zynqmp-rtc.c         | 1 +
 hw/tpm/tpm_emulator.c              | 1 +
 hw/tpm/tpm_tis.c                   | 1 +
 hw/usb/bus.c                       | 1 +
 hw/usb/ccid-card-passthru.c        | 1 +
 hw/usb/dev-audio.c                 | 1 +
 hw/usb/dev-bluetooth.c             | 1 +
 hw/usb/dev-hid.c                   | 1 +
 hw/usb/dev-hub.c                   | 1 +
 hw/usb/dev-mtp.c                   | 1 +
 hw/usb/dev-network.c               | 1 +
 hw/usb/dev-serial.c                | 1 +
 hw/usb/dev-smartcard-reader.c      | 1 +
 hw/usb/dev-storage.c               | 1 +
 hw/usb/dev-uas.c                   | 1 +
 hw/usb/dev-wacom.c                 | 1 +
 hw/usb/hcd-ehci-pci.c              | 1 +
 hw/usb/hcd-ehci-sysbus.c           | 1 +
 hw/usb/hcd-ehci.c                  | 1 +
 hw/usb/hcd-ohci-pci.c              | 1 +
 hw/usb/hcd-ohci.c                  | 1 +
 hw/usb/hcd-uhci.c                  | 1 +
 hw/usb/hcd-xhci.c                  | 1 +
 hw/usb/host-libusb.c               | 1 +
 hw/usb/redirect.c                  | 1 +
 hw/vfio/amd-xgbe.c                 | 1 +
 hw/vfio/ap.c                       | 1 +
 hw/vfio/calxeda-xgmac.c            | 1 +
 hw/vfio/pci.c                      | 1 +
 hw/vfio/platform.c                 | 1 +
 hw/watchdog/cmsdk-apb-watchdog.c   | 1 +
 hw/watchdog/wdt_aspeed.c           | 1 +
 hw/watchdog/wdt_diag288.c          | 1 +
 hw/watchdog/wdt_i6300esb.c         | 1 +
 hw/watchdog/wdt_ib700.c            | 1 +
 hw/xtensa/xtfpga.c                 | 1 +
 include/hw/acpi/tco.h              | 1 -
 include/hw/block/flash.h           | 1 -
 include/hw/hw.h                    | 1 -
 include/hw/input/hid.h             | 1 -
 include/hw/pci/shpc.h              | 1 +
 include/hw/ppc/spapr_ovec.h        | 1 -
 include/hw/ptimer.h                | 1 -
 include/hw/virtio/virtio.h         | 1 +
 include/migration/cpu.h            | 1 +
 include/net/net.h                  | 1 -
 include/qemu/fifo8.h               | 1 -
 migration/savevm.c                 | 1 +
 target/s390x/machine.c             | 1 +
 util/fifo8.c                       | 1 +
 425 files changed, 426 insertions(+), 8 deletions(-)

diff --git a/audio/audio.c b/audio/audio.c
index 05adf7ffebf..cf65ae49f4d 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -25,6 +25,7 @@
 #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"
diff --git a/cpus.c b/cpus.c
index 927a00aa90b..4ebdacdd447 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"
diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index 7a90c8f82db..87f30a31d77 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/ich9.c b/hw/acpi/ich9.c
index b4d987c811e..88eb7dbab13 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -30,6 +30,7 @@
 #include "qapi/visitor.h"
 #include "hw/i386/pc.h"
 #include "hw/pci/pci.h"
+#include "migration/vmstate.h"
 #include "qemu/timer.h"
 #include "sysemu/reset.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
index 297812d5f7a..9483d66e869 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 613406d09ba..912ff6dd5c4 100644
--- a/hw/acpi/pcihp.c
+++ b/hw/acpi/pcihp.c
@@ -35,6 +35,7 @@
 #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 8f9a7ba2ab7..1896dbbfb91 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -42,6 +42,7 @@
 #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 acfb65e8f26..fb9052dbca2 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 ed92ccc4b89..1e38e21cb75 100644
--- a/hw/acpi/vmgenid.c
+++ b/hw/acpi/vmgenid.c
@@ -18,6 +18,7 @@
 #include "hw/acpi/aml-build.h"
 #include "hw/acpi/vmgenid.h"
 #include "hw/nvram/fw_cfg.h"
+#include "migration/vmstate.h"
 #include "sysemu/reset.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/adc/stm32f2xx_adc.c b/hw/adc/stm32f2xx_adc.c
index c93b60e22e0..9684653e5e3 100644
--- a/hw/adc/stm32f2xx_adc.c
+++ b/hw/adc/stm32f2xx_adc.c
@@ -24,6 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "hw/hw.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
diff --git a/hw/arm/armsse.c b/hw/arm/armsse.c
index 85cfa414eb1..e5263aa33d4 100644
--- a/hw/arm/armsse.c
+++ b/hw/arm/armsse.c
@@ -16,6 +16,7 @@
 #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"
diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
index def0f1ce6a7..ca4c71f8a2c 100644
--- a/hw/arm/highbank.c
+++ b/hw/arm/highbank.c
@@ -21,6 +21,7 @@
 #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"
diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c
index d6025684f40..f8fbe402dbf 100644
--- a/hw/arm/integratorcp.c
+++ b/hw/arm/integratorcp.c
@@ -11,6 +11,7 @@
 #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"
diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c
index 848e49f4593..72e522a6290 100644
--- a/hw/arm/musicpal.c
+++ b/hw/arm/musicpal.c
@@ -13,6 +13,7 @@
 #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"
diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
index ab3fbd7b64c..4e99c30e112 100644
--- a/hw/arm/pxa2xx.c
+++ b/hw/arm/pxa2xx.c
@@ -14,6 +14,7 @@
 #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"
diff --git a/hw/arm/pxa2xx_gpio.c b/hw/arm/pxa2xx_gpio.c
index 1b1fc499dc1..aa2c89dcf94 100644
--- a/hw/arm/pxa2xx_gpio.c
+++ b/hw/arm/pxa2xx_gpio.c
@@ -12,6 +12,7 @@
 #include "hw/hw.h"
 #include "hw/irq.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 2f4b4615627..c8bd497e99e 100644
--- a/hw/arm/pxa2xx_pic.c
+++ b/hw/arm/pxa2xx_pic.c
@@ -14,6 +14,7 @@
 #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/smmuv3.c b/hw/arm/smmuv3.c
index ccca60720e4..0634a398d2e 100644
--- a/hw/arm/smmuv3.c
+++ b/hw/arm/smmuv3.c
@@ -21,6 +21,7 @@
 #include "hw/irq.h"
 #include "sysemu/sysemu.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 b90431ffeac..003929b3e08 100644
--- a/hw/arm/spitz.c
+++ b/hw/arm/spitz.c
@@ -28,6 +28,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 088ae2dbd79..9feb403f1e4 100644
--- a/hw/arm/stellaris.c
+++ b/hw/arm/stellaris.c
@@ -24,6 +24,7 @@
 #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/strongarm.c b/hw/arm/strongarm.c
index 2e016f4b774..ca377df9e3c 100644
--- a/hw/arm/strongarm.c
+++ b/hw/arm/strongarm.c
@@ -33,6 +33,7 @@
 #include "hw/boards.h"
 #include "hw/irq.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/versatilepb.c b/hw/arm/versatilepb.c
index bc922345a69..e25561705fb 100644
--- a/hw/arm/versatilepb.c
+++ b/hw/arm/versatilepb.c
@@ -11,6 +11,7 @@
 #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"
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index ad54d65ea08..4f85eb575c3 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -46,6 +46,7 @@
 #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/z2.c b/hw/arm/z2.c
index 366d46ff5f3..810922d74e3 100644
--- a/hw/arm/z2.c
+++ b/hw/arm/z2.c
@@ -18,6 +18,7 @@
 #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"
diff --git a/hw/audio/ac97.c b/hw/audio/ac97.c
index fb98da26780..26ac84b3887 100644
--- a/hw/audio/ac97.c
+++ b/hw/audio/ac97.c
@@ -22,6 +22,7 @@
 #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/cs4231.c b/hw/audio/cs4231.c
index 8372299ebb4..b5d3e895ce3 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 9eeab137c73..f7a39c0af40 100644
--- a/hw/audio/cs4231a.c
+++ b/hw/audio/cs4231a.c
@@ -29,6 +29,7 @@
 #include "hw/irq.h"
 #include "hw/isa/isa.h"
 #include "hw/qdev.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 260c142b700..0289f771c10 100644
--- a/hw/audio/es1370.c
+++ b/hw/audio/es1370.c
@@ -31,6 +31,7 @@
 #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 61230147cef..1a78cc47cd1 100644
--- a/hw/audio/gus.c
+++ b/hw/audio/gus.c
@@ -30,6 +30,7 @@
 #include "audio/audio.h"
 #include "hw/irq.h"
 #include "hw/isa/isa.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 84639b54245..4f6fbb8b134 100644
--- a/hw/audio/hda-codec.c
+++ b/hw/audio/hda-codec.c
@@ -21,6 +21,7 @@
 #include "hw/hw.h"
 #include "hw/pci/pci.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 b78baac2954..e6f150bb0d1 100644
--- a/hw/audio/intel-hda.c
+++ b/hw/audio/intel-hda.c
@@ -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/lm4549.c b/hw/audio/lm4549.c
index af8b22b541e..32b1481b561 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/marvell_88w8618.c b/hw/audio/marvell_88w8618.c
index 167b478ec60..6345bc1d5c4 100644
--- a/hw/audio/marvell_88w8618.c
+++ b/hw/audio/marvell_88w8618.c
@@ -12,6 +12,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "hw/hw.h"
 #include "hw/irq.h"
 #include "hw/audio/wm8750.h"
diff --git a/hw/audio/milkymist-ac97.c b/hw/audio/milkymist-ac97.c
index 3ba382ee4df..890a5fe89e5 100644
--- a/hw/audio/milkymist-ac97.c
+++ b/hw/audio/milkymist-ac97.c
@@ -25,6 +25,7 @@
 #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 a7b3ab0c2b9..9039c9786dd 100644
--- a/hw/audio/pcspk.c
+++ b/hw/audio/pcspk.c
@@ -30,6 +30,7 @@
 #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 47f0dfff18f..3c371397de0 100644
--- a/hw/audio/pl041.c
+++ b/hw/audio/pl041.c
@@ -28,6 +28,7 @@
 
 #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 ba5a5dd0227..599194779dd 100644
--- a/hw/audio/sb16.c
+++ b/hw/audio/sb16.c
@@ -29,6 +29,7 @@
 #include "hw/irq.h"
 #include "hw/isa/isa.h"
 #include "hw/qdev.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 81f83eea881..9f6df5d59c9 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/ecc.c b/hw/block/ecc.c
index 48311d26091..f846ab3e01a 100644
--- a/hw/block/ecc.c
+++ b/hw/block/ecc.c
@@ -13,6 +13,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 91d5f56cec3..88feb0f4515 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -36,6 +36,7 @@
 #include "hw/irq.h"
 #include "hw/isa/isa.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "hw/block/block.h"
 #include "sysemu/block-backend.h"
 #include "sysemu/blockdev.h"
diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index dd87affcf5f..9d395169b24 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -26,6 +26,7 @@
 #include "hw/hw.h"
 #include "sysemu/block-backend.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 0a2736b50eb..4a0d4677c34 100644
--- a/hw/block/nand.c
+++ b/hw/block/nand.c
@@ -23,6 +23,7 @@
 #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 36d6a8bb3a3..079a8ffe80b 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -31,6 +31,7 @@
 #include "hw/hw.h"
 #include "hw/pci/msix.h"
 #include "hw/pci/pci.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 b3644f7e897..18123f04994 100644
--- a/hw/block/onenand.c
+++ b/hw/block/onenand.c
@@ -26,6 +26,7 @@
 #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 a1ec1faae5e..2d6f2604912 100644
--- a/hw/block/pflash_cfi01.c
+++ b/hw/block/pflash_cfi01.c
@@ -50,6 +50,7 @@
 #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 "trace.h"
diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c
index 42886f6af59..b7070cd8ecb 100644
--- a/hw/block/pflash_cfi02.c
+++ b/hw/block/pflash_cfi02.c
@@ -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/char/bcm2835_aux.c b/hw/char/bcm2835_aux.c
index 8395c795209..45fc34d92d8 100644
--- a/hw/char/bcm2835_aux.c
+++ b/hw/char/bcm2835_aux.c
@@ -23,6 +23,7 @@
 #include "qemu/osdep.h"
 #include "hw/char/bcm2835_aux.h"
 #include "hw/irq.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 6b9eb140c7c..0e315b23768 100644
--- a/hw/char/cadence_uart.c
+++ b/hw/char/cadence_uart.c
@@ -23,6 +23,7 @@
 
 #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"
diff --git a/hw/char/cmsdk-apb-uart.c b/hw/char/cmsdk-apb-uart.c
index dd96a3302e1..9e1aa43bd35 100644
--- a/hw/char/cmsdk-apb-uart.c
+++ b/hw/char/cmsdk-apb-uart.c
@@ -21,6 +21,7 @@
 #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"
diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c
index e4ac8435c83..79ea92249c4 100644
--- a/hw/char/digic-uart.c
+++ b/hw/char/digic-uart.c
@@ -29,6 +29,7 @@
 #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"
diff --git a/hw/char/escc.c b/hw/char/escc.c
index 678d494d397..404002b8994 100644
--- a/hw/char/escc.c
+++ b/hw/char/escc.c
@@ -26,6 +26,7 @@
 #include "hw/hw.h"
 #include "hw/irq.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/exynos4210_uart.c b/hw/char/exynos4210_uart.c
index dabcd07415a..9bd826b33d5 100644
--- a/hw/char/exynos4210_uart.c
+++ b/hw/char/exynos4210_uart.c
@@ -21,6 +21,7 @@
 
 #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"
diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c
index f79e47d4ee3..bf3f07d7603 100644
--- a/hw/char/imx_serial.c
+++ b/hw/char/imx_serial.c
@@ -21,6 +21,7 @@
 #include "qemu/osdep.h"
 #include "hw/char/imx_serial.h"
 #include "hw/irq.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c
index 7674e2d7b6e..1171dc20cf2 100644
--- a/hw/char/ipoctal232.c
+++ b/hw/char/ipoctal232.c
@@ -11,6 +11,7 @@
 #include "qemu/osdep.h"
 #include "hw/ipack/ipack.h"
 #include "hw/irq.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 41a3ec81e36..f4488fa7365 100644
--- a/hw/char/lm32_juart.c
+++ b/hw/char/lm32_juart.c
@@ -20,6 +20,7 @@
 #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"
diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c
index 377032567a8..4b3215fe961 100644
--- a/hw/char/lm32_uart.c
+++ b/hw/char/lm32_uart.c
@@ -26,6 +26,7 @@
 #include "hw/hw.h"
 #include "hw/irq.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/milkymist-uart.c b/hw/char/milkymist-uart.c
index d4641b5f442..53c1ca789d7 100644
--- a/hw/char/milkymist-uart.c
+++ b/hw/char/milkymist-uart.c
@@ -25,6 +25,7 @@
 #include "hw/hw.h"
 #include "hw/irq.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 bbe766d3c65..bb886f12aa3 100644
--- a/hw/char/nrf51_uart.c
+++ b/hw/char/nrf51_uart.c
@@ -17,6 +17,7 @@
 #include "qemu/module.h"
 #include "hw/char/nrf51_uart.h"
 #include "hw/irq.h"
+#include "migration/vmstate.h"
 #include "trace.h"
 
 static void nrf51_uart_update_irq(NRF51UARTState *s)
diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index ea8ab35e592..1798fd0c443 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -31,6 +31,7 @@
 #include "chardev/char-fe.h"
 #include "hw/irq.h"
 #include "hw/isa/isa.h"
+#include "migration/vmstate.h"
 #include "hw/char/parallel.h"
 #include "sysemu/reset.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/char/pl011.c b/hw/char/pl011.c
index a2da375528c..84ad8ff9fb1 100644
--- a/hw/char/pl011.c
+++ b/hw/char/pl011.c
@@ -22,6 +22,7 @@
 #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 691dc870edd..d904265cda5 100644
--- a/hw/char/sclpconsole-lm.c
+++ b/hw/char/sclpconsole-lm.c
@@ -21,6 +21,7 @@
 #include "chardev/char-fe.h"
 
 #include "hw/s390x/sclp.h"
+#include "migration/vmstate.h"
 #include "hw/s390x/event-facility.h"
 #include "hw/s390x/ebcdic.h"
 
diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c
index 09b1d45d7ac..f3669766bf8 100644
--- a/hw/char/sclpconsole.c
+++ b/hw/char/sclpconsole.c
@@ -19,6 +19,7 @@
 #include "qemu/module.h"
 
 #include "hw/s390x/sclp.h"
+#include "migration/vmstate.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 610426111af..d3080b76e44 100644
--- a/hw/char/serial-isa.c
+++ b/hw/char/serial-isa.c
@@ -28,6 +28,7 @@
 #include "qemu/module.h"
 #include "hw/char/serial.h"
 #include "hw/isa/isa.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 65dbfbd2054..867e7840b42 100644
--- a/hw/char/serial-pci-multi.c
+++ b/hw/char/serial-pci-multi.c
@@ -32,6 +32,7 @@
 #include "hw/char/serial.h"
 #include "hw/irq.h"
 #include "hw/pci/pci.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 808d32b508b..ee537890c29 100644
--- a/hw/char/serial-pci.c
+++ b/hw/char/serial-pci.c
@@ -31,6 +31,7 @@
 #include "hw/char/serial.h"
 #include "hw/irq.h"
 #include "hw/pci/pci.h"
+#include "migration/vmstate.h"
 
 typedef struct PCISerialState {
     PCIDevice dev;
diff --git a/hw/char/serial.c b/hw/char/serial.c
index 1d977287ead..4d54163a620 100644
--- a/hw/char/serial.c
+++ b/hw/char/serial.c
@@ -26,6 +26,7 @@
 #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"
diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c
index f360ab36121..b3995a9e0c0 100644
--- a/hw/char/spapr_vty.c
+++ b/hw/char/spapr_vty.c
@@ -4,6 +4,7 @@
 #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"
diff --git a/hw/core/loader.c b/hw/core/loader.c
index 830845dd738..84e4f3efacb 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -47,6 +47,7 @@
 #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"
diff --git a/hw/core/numa.c b/hw/core/numa.c
index a11431483c1..67548064ee9 100644
--- a/hw/core/numa.c
+++ b/hw/core/numa.c
@@ -33,6 +33,7 @@
 #include "qapi/qapi-visit-machine.h"
 #include "sysemu/qtest.h"
 #include "hw/mem/pc-dimm.h"
+#include "migration/vmstate.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 6ed34d9238a..02949dae1a3 100644
--- a/hw/core/or-irq.c
+++ b/hw/core/or-irq.c
@@ -25,6 +25,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.h"
 #include "hw/or-irq.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/ptimer.c b/hw/core/ptimer.c
index 170fd34d8b5..49b60282cfa 100644
--- a/hw/core/ptimer.c
+++ b/hw/core/ptimer.c
@@ -5,10 +5,12 @@
  *
  * 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.c b/hw/core/qdev.c
index 5c4b67a4089..b1fe40d20dd 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -38,6 +38,7 @@
 #include "hw/irq.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/display/ads7846.c b/hw/display/ads7846.c
index 12d82726154..c12272ae72b 100644
--- a/hw/display/ads7846.c
+++ b/hw/display/ads7846.c
@@ -13,6 +13,7 @@
 #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/bcm2835_fb.c b/hw/display/bcm2835_fb.c
index e446355f299..3d99d99e2b3 100644
--- a/hw/display/bcm2835_fb.c
+++ b/hw/display/bcm2835_fb.c
@@ -30,6 +30,7 @@
 #include "framebuffer.h"
 #include "ui/pixel_ops.h"
 #include "hw/misc/bcm2835_mbox_defs.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 8e83b5164b6..3acc1d59679 100644
--- a/hw/display/bochs-display.c
+++ b/hw/display/bochs-display.c
@@ -10,6 +10,7 @@
 #include "qemu/units.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.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 7cf9ebd6042..29a8735a385 100644
--- a/hw/display/cg3.c
+++ b/hw/display/cg3.c
@@ -29,6 +29,7 @@
 #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 "qemu/log.h"
diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
index 4ccf5b4f186..3120b3cfaf3 100644
--- a/hw/display/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
@@ -40,6 +40,7 @@
 #include "trace.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
+#include "migration/vmstate.h"
 #include "ui/pixel_ops.h"
 #include "cirrus_vga_internal.h"
 
diff --git a/hw/display/dpcd.c b/hw/display/dpcd.c
index 88cde54821e..170545c605e 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/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c
index 889622eefae..8e1508a3e67 100644
--- a/hw/display/exynos4210_fimd.c
+++ b/hw/display/exynos4210_fimd.c
@@ -25,6 +25,7 @@
 #include "qemu/osdep.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/g364fb.c b/hw/display/g364fb.c
index 89248f87dfb..1757b777e20 100644
--- a/hw/display/g364fb.c
+++ b/hw/display/g364fb.c
@@ -27,6 +27,7 @@
 #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 041fc4f4089..3ac85216a59 100644
--- a/hw/display/i2c-ddc.c
+++ b/hw/display/i2c-ddc.c
@@ -20,6 +20,7 @@
 #include "qemu/log.h"
 #include "qemu/module.h"
 #include "hw/i2c/i2c.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 783189ebcd8..3e0112b1cac 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 3f923784106..7bfffa52dac 100644
--- a/hw/display/milkymist-tmu2.c
+++ b/hw/display/milkymist-tmu2.c
@@ -28,6 +28,7 @@
 #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 dce1dd7ad64..9a9a481ebd6 100644
--- a/hw/display/milkymist-vgafb.c
+++ b/hw/display/milkymist-vgafb.c
@@ -33,6 +33,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/pl110.c b/hw/display/pl110.c
index 8fb510ee732..c2991a28d20 100644
--- a/hw/display/pl110.c
+++ b/hw/display/pl110.c
@@ -10,6 +10,7 @@
 #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 7aca3912f5b..05f5f846712 100644
--- a/hw/display/pxa2xx_lcd.c
+++ b/hw/display/pxa2xx_lcd.c
@@ -13,6 +13,7 @@
 #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.c b/hw/display/qxl.c
index 98c74100320..4a44712fde6 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -29,6 +29,7 @@
 #include "qemu/module.h"
 #include "sysemu/sysemu.h"
 #include "migration/blocker.h"
+#include "migration/vmstate.h"
 #include "trace.h"
 
 #include "qxl.h"
diff --git a/hw/display/sii9022.c b/hw/display/sii9022.c
index 0bebb85a589..0710ce9de5a 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 5918f59b2be..6f88aaaa082 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -33,6 +33,7 @@
 #include "hw/char/serial.h"
 #include "ui/console.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "hw/pci/pci.h"
 #include "hw/i2c/i2c.h"
 #include "hw/display/i2c-ddc.h"
diff --git a/hw/display/ssd0303.c b/hw/display/ssd0303.c
index f2a60c44c9e..718378f6dec 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 ac373f1e781..c3bdb18742c 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/tcx.c b/hw/display/tcx.c
index cdabcbc746a..f9b1ae56ec9 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -29,6 +29,7 @@
 #include "ui/pixel_ops.h"
 #include "hw/loader.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 a790f69b6da..1c4f43b52bf 100644
--- a/hw/display/vga-isa-mm.c
+++ b/hw/display/vga-isa-mm.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/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-pci.c b/hw/display/vga-pci.c
index dedac5d1289..cb956b45458 100644
--- a/hw/display/vga-pci.c
+++ b/hw/display/vga-pci.c
@@ -27,6 +27,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.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 4d3572891a9..f8098f63e92 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -34,6 +34,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/vmware_vga.c b/hw/display/vmware_vga.c
index 249a179bf61..ebfcc46a2d7 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -31,6 +31,7 @@
 #include "trace.h"
 #include "ui/vnc.h"
 #include "hw/pci/pci.h"
+#include "migration/vmstate.h"
 
 #undef VERBOSE
 #define HW_RECT_ACCEL
diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c
index 4daac380705..fde3b21ea5f 100644
--- a/hw/display/xlnx_dp.c
+++ b/hw/display/xlnx_dp.c
@@ -28,6 +28,7 @@
 #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 090c73d9514..192bd377a00 100644
--- a/hw/dma/bcm2835_dma.c
+++ b/hw/dma/bcm2835_dma.c
@@ -7,6 +7,7 @@
 #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/i82374.c b/hw/dma/i82374.c
index 68fad2dd12f..3f0db4a021e 100644
--- a/hw/dma/i82374.c
+++ b/hw/dma/i82374.c
@@ -26,6 +26,7 @@
 #include "qapi/error.h"
 #include "qemu/module.h"
 #include "hw/isa/isa.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 30a3442437b..b7404cff60d 100644
--- a/hw/dma/i8257.c
+++ b/hw/dma/i8257.c
@@ -25,6 +25,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/isa/isa.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 be7f9c71a83..59bc929363e 100644
--- a/hw/dma/pl080.c
+++ b/hw/dma/pl080.c
@@ -9,6 +9,7 @@
 
 #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"
diff --git a/hw/dma/pl330.c b/hw/dma/pl330.c
index 0d772de9f37..28830a42a32 100644
--- a/hw/dma/pl330.c
+++ b/hw/dma/pl330.c
@@ -18,6 +18,7 @@
 #include "qemu-common.h"
 #include "hw/irq.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/pxa2xx_dma.c b/hw/dma/pxa2xx_dma.c
index 1c273fb3093..11240517304 100644
--- a/hw/dma/pxa2xx_dma.c
+++ b/hw/dma/pxa2xx_dma.c
@@ -13,6 +13,7 @@
 #include "hw/irq.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 f7650f617c9..d35fb59eee1 100644
--- a/hw/dma/rc4030.c
+++ b/hw/dma/rc4030.c
@@ -28,6 +28,7 @@
 #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 a05b6be95c6..8955fe262ef 100644
--- a/hw/dma/sparc32_dma.c
+++ b/hw/dma/sparc32_dma.c
@@ -31,6 +31,7 @@
 #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/xlnx-zdma.c b/hw/dma/xlnx-zdma.c
index 5afd77a5b87..2dbdfc57391 100644
--- a/hw/dma/xlnx-zdma.c
+++ b/hw/dma/xlnx-zdma.c
@@ -29,6 +29,7 @@
 #include "qemu/osdep.h"
 #include "hw/dma/xlnx-zdma.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/dma/xlnx-zynq-devcfg.c b/hw/dma/xlnx-zynq-devcfg.c
index 855c7847588..89200ff15db 100644
--- a/hw/dma/xlnx-zynq-devcfg.c
+++ b/hw/dma/xlnx-zynq-devcfg.c
@@ -27,6 +27,7 @@
 #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"
diff --git a/hw/dma/xlnx_dpdma.c b/hw/dma/xlnx_dpdma.c
index 1bba7f21598..b40c897de2c 100644
--- a/hw/dma/xlnx_dpdma.c
+++ b/hw/dma/xlnx_dpdma.c
@@ -28,6 +28,7 @@
 #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 ea3f3f2bda9..91ce3d10cc8 100644
--- a/hw/gpio/bcm2835_gpio.c
+++ b/hw/gpio/bcm2835_gpio.c
@@ -17,6 +17,7 @@
 #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"
diff --git a/hw/gpio/gpio_key.c b/hw/gpio/gpio_key.c
index 66866fa87ca..46bbd427720 100644
--- a/hw/gpio/gpio_key.c
+++ b/hw/gpio/gpio_key.c
@@ -25,6 +25,7 @@
 #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 3d3c9644dba..8792fb5ad4b 100644
--- a/hw/gpio/imx_gpio.c
+++ b/hw/gpio/imx_gpio.c
@@ -20,6 +20,7 @@
 #include "qemu/osdep.h"
 #include "hw/gpio/imx_gpio.h"
 #include "hw/irq.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 b0925ab1a10..432f0b00fe3 100644
--- a/hw/gpio/max7310.c
+++ b/hw/gpio/max7310.c
@@ -10,6 +10,7 @@
 #include "qemu/osdep.h"
 #include "hw/i2c/i2c.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 f3b90b4b33a..1d99667094c 100644
--- a/hw/gpio/mpc8xxx.c
+++ b/hw/gpio/mpc8xxx.c
@@ -22,6 +22,7 @@
 #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 24a890911ad..b47fddf4ed6 100644
--- a/hw/gpio/nrf51_gpio.c
+++ b/hw/gpio/nrf51_gpio.c
@@ -15,6 +15,7 @@
 #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/pl061.c b/hw/gpio/pl061.c
index c605d91c93b..2a828260bdb 100644
--- a/hw/gpio/pl061.c
+++ b/hw/gpio/pl061.c
@@ -11,6 +11,7 @@
 #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/zaurus.c b/hw/gpio/zaurus.c
index 98aa416931f..a1ba09c6f2e 100644
--- a/hw/gpio/zaurus.c
+++ b/hw/gpio/zaurus.c
@@ -21,6 +21,7 @@
 #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 90da6bcbb9d..dfb9d7a7429 100644
--- a/hw/hppa/dino.c
+++ b/hw/hppa/dino.c
@@ -20,6 +20,7 @@
 #include "sysemu/sysemu.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/i2c/aspeed_i2c.c b/hw/i2c/aspeed_i2c.c
index bb7ef3cbf37..a956eb38492 100644
--- a/hw/i2c/aspeed_i2c.c
+++ b/hw/i2c/aspeed_i2c.c
@@ -20,6 +20,7 @@
 
 #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"
diff --git a/hw/i2c/core.c b/hw/i2c/core.c
index 20f36f1d550..25b792fdd00 100644
--- a/hw/i2c/core.c
+++ b/hw/i2c/core.c
@@ -9,6 +9,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/i2c/i2c.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 07d83d5a63c..a600f655605 100644
--- a/hw/i2c/exynos4210_i2c.c
+++ b/hw/i2c/exynos4210_i2c.c
@@ -24,6 +24,7 @@
 #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"
 
diff --git a/hw/i2c/imx_i2c.c b/hw/i2c/imx_i2c.c
index 1d6b6956155..30b9aea2471 100644
--- a/hw/i2c/imx_i2c.c
+++ b/hw/i2c/imx_i2c.c
@@ -21,6 +21,7 @@
 #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 214be07c5ae..4661f052532 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 0aa4cacb65a..0aa1be3ce7f 100644
--- a/hw/i2c/mpc_i2c.c
+++ b/hw/i2c/mpc_i2c.c
@@ -23,6 +23,7 @@
 #include "qemu/log.h"
 #include "qemu/module.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 
 /* #define DEBUG_I2C */
 
diff --git a/hw/i2c/pm_smbus.c b/hw/i2c/pm_smbus.c
index e48544f9096..d9e3bad90d8 100644
--- a/hw/i2c/pm_smbus.c
+++ b/hw/i2c/pm_smbus.c
@@ -17,11 +17,13 @@
  * 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/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
index 37167e72445..e05bc8c39c6 100644
--- a/hw/i2c/smbus_eeprom.c
+++ b/hw/i2c/smbus_eeprom.c
@@ -29,6 +29,7 @@
 #include "hw/boards.h"
 #include "hw/i2c/i2c.h"
 #include "hw/i2c/smbus_slave.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 51a03046a6e..f7e626e95a3 100644
--- a/hw/i2c/smbus_ich9.c
+++ b/hw/i2c/smbus_ich9.c
@@ -24,6 +24,7 @@
 #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"
 
diff --git a/hw/i2c/smbus_slave.c b/hw/i2c/smbus_slave.c
index a9908c1a9b9..7b145a384d4 100644
--- a/hw/i2c/smbus_slave.c
+++ b/hw/i2c/smbus_slave.c
@@ -17,6 +17,7 @@
 #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 74667a53bef..5b0ec1b89ea 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -46,6 +46,7 @@
 #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"
diff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c
index 4a4e2c7fd46..08884523e2c 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/intel_iommu.c b/hw/i386/intel_iommu.c
index de86f53b4e5..000de6b9ce7 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -35,6 +35,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 a5cda15b85f..d98cf9d5d10 100644
--- a/hw/i386/kvm/clock.c
+++ b/hw/i386/kvm/clock.c
@@ -21,6 +21,7 @@
 #include "sysemu/kvm.h"
 #include "sysemu/hw_accel.h"
 #include "kvm_i386.h"
+#include "migration/vmstate.h"
 #include "hw/sysbus.h"
 #include "hw/kvm/clock.h"
 #include "qapi/error.h"
diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
index 9c2ab4aac5b..44e40478c8c 100644
--- a/hw/i386/kvmvapic.c
+++ b/hw/i386/kvmvapic.c
@@ -19,6 +19,7 @@
 #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/pc.c b/hw/i386/pc.c
index 14536969759..1e8251d3279 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -41,6 +41,7 @@
 #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"
diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c
index 5d2d278be4c..a50f5d5dd45 100644
--- a/hw/i386/vmmouse.c
+++ b/hw/i386/vmmouse.c
@@ -21,12 +21,14 @@
  * 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 "migration/vmstate.h"
 
 /* debug only vmmouse */
 //#define DEBUG_VMMOUSE
diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
index 7a972e46cf7..800687a188e 100644
--- a/hw/i386/xen/xen_platform.c
+++ b/hw/i386/xen/xen_platform.c
@@ -30,6 +30,7 @@
 #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 23748f36a29..700db81cbc8 100644
--- a/hw/i386/xen/xen_pvdevice.c
+++ b/hw/i386/xen/xen_pvdevice.c
@@ -34,6 +34,7 @@
 #include "qemu/module.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.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 de08d877905..8777122c9cb 100644
--- a/hw/ide/ahci-allwinner.c
+++ b/hw/ide/ahci-allwinner.c
@@ -21,6 +21,7 @@
 #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 00ba422a48d..e0b1a91fd96 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -25,6 +25,7 @@
 #include "hw/hw.h"
 #include "hw/pci/msi.h"
 #include "hw/pci/pci.h"
+#include "migration/vmstate.h"
 
 #include "qemu/error-report.h"
 #include "qemu/log.h"
diff --git a/hw/ide/cmd646.c b/hw/ide/cmd646.c
index e5542c9811b..a3763a1d3a5 100644
--- a/hw/ide/cmd646.c
+++ b/hw/ide/cmd646.c
@@ -26,6 +26,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 #include "hw/isa/isa.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 6afadf894fa..0453a925f92 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -26,6 +26,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/isa/isa.h"
+#include "migration/vmstate.h"
 #include "qemu/error-report.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/ide/ich.c b/hw/ide/ich.c
index c1ba927574c..00fb43a1270 100644
--- a/hw/ide/ich.c
+++ b/hw/ide/ich.c
@@ -64,6 +64,7 @@
 #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/isa.c b/hw/ide/isa.c
index 4b5784e3fdf..fda912f3edb 100644
--- a/hw/ide/isa.c
+++ b/hw/ide/isa.c
@@ -26,6 +26,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/isa/isa.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 54571fed124..aa447cd2b58 100644
--- a/hw/ide/macio.c
+++ b/hw/ide/macio.c
@@ -27,6 +27,7 @@
 #include "hw/hw.h"
 #include "hw/ppc/mac.h"
 #include "hw/ppc/mac_dbdma.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 92ee6e0af8c..be3cf8779a0 100644
--- a/hw/ide/microdrive.c
+++ b/hw/ide/microdrive.c
@@ -26,6 +26,7 @@
 #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 70a58016d01..f3de6db33e6 100644
--- a/hw/ide/mmio.c
+++ b/hw/ide/mmio.c
@@ -26,6 +26,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 #include "sysemu/dma.h"
 
diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index 4c6fb9a68ee..c5b081a0281 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -26,6 +26,7 @@
 #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 c4c6d4b760f..407d3e3ce8c 100644
--- a/hw/ide/piix.c
+++ b/hw/ide/piix.c
@@ -26,6 +26,7 @@
 #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"
diff --git a/hw/ide/via.c b/hw/ide/via.c
index 6d54ac55f05..8fa1972d92f 100644
--- a/hw/ide/via.c
+++ b/hw/ide/via.c
@@ -27,6 +27,7 @@
 #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"
diff --git a/hw/input/adb-kbd.c b/hw/input/adb-kbd.c
index da361f56df4..b3c4aeded13 100644
--- a/hw/input/adb-kbd.c
+++ b/hw/input/adb-kbd.c
@@ -24,6 +24,7 @@
 
 #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"
diff --git a/hw/input/adb-mouse.c b/hw/input/adb-mouse.c
index 52526fddb75..aeba41bddd3 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 1446f32521e..80ba1259bfc 100644
--- a/hw/input/adb.c
+++ b/hw/input/adb.c
@@ -24,6 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/input/adb.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 aa4fb826fd2..c570ca25b1a 100644
--- a/hw/input/hid.c
+++ b/hw/input/hid.c
@@ -22,11 +22,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 "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 2ab6d3290b3..de03913d7c7 100644
--- a/hw/input/lm832x.c
+++ b/hw/input/lm832x.c
@@ -22,6 +22,7 @@
 #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"
diff --git a/hw/input/milkymist-softusb.c b/hw/input/milkymist-softusb.c
index 92e07fbd8c1..e17666d56b3 100644
--- a/hw/input/milkymist-softusb.c
+++ b/hw/input/milkymist-softusb.c
@@ -25,6 +25,7 @@
 #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"
diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index 7e76ee7ad35..cf1690332d8 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -26,6 +26,7 @@
 #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"
diff --git a/hw/input/pl050.c b/hw/input/pl050.c
index 2318dbfeac2..1123037b380 100644
--- a/hw/input/pl050.c
+++ b/hw/input/pl050.c
@@ -9,6 +9,7 @@
 
 #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"
diff --git a/hw/input/ps2.c b/hw/input/ps2.c
index 8d922b05c9b..07d07ee6bd1 100644
--- a/hw/input/ps2.c
+++ b/hw/input/ps2.c
@@ -26,6 +26,7 @@
 #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/reset.h"
diff --git a/hw/input/pxa2xx_keypad.c b/hw/input/pxa2xx_keypad.c
index 4788c96d191..31862a7d16c 100644
--- a/hw/input/pxa2xx_keypad.c
+++ b/hw/input/pxa2xx_keypad.c
@@ -14,6 +14,7 @@
 #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 ffea0542ba9..7582117f0ba 100644
--- a/hw/input/stellaris_input.c
+++ b/hw/input/stellaris_input.c
@@ -11,6 +11,7 @@
 #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 e21356c18de..b92a034496b 100644
--- a/hw/input/tsc2005.c
+++ b/hw/input/tsc2005.c
@@ -26,6 +26,7 @@
 #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 be7d948168f..182d3725fc9 100644
--- a/hw/input/tsc210x.c
+++ b/hw/input/tsc210x.c
@@ -28,6 +28,7 @@
 #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/intc/allwinner-a10-pic.c b/hw/intc/allwinner-a10-pic.c
index 9df3e185399..79959a4d230 100644
--- a/hw/intc/allwinner-a10-pic.c
+++ b/hw/intc/allwinner-a10-pic.c
@@ -17,6 +17,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "hw/intc/allwinner-a10-pic.h"
 #include "hw/irq.h"
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
index 7045761281d..fbb6e25cf43 100644
--- a/hw/intc/apic_common.c
+++ b/hw/intc/apic_common.c
@@ -32,6 +32,7 @@
 #include "hw/qdev.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_common.c b/hw/intc/arm_gic_common.c
index ccc50d00b65..5d506bebb51 100644
--- a/hw/intc/arm_gic_common.c
+++ b/hw/intc/arm_gic_common.c
@@ -23,6 +23,7 @@
 #include "qemu/module.h"
 #include "gic_internal.h"
 #include "hw/arm/linux-boot-if.h"
+#include "migration/vmstate.h"
 
 static int gic_pre_save(void *opaque)
 {
diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c
index 5edabb928f7..12479f94a89 100644
--- a/hw/intc/arm_gicv3_common.c
+++ b/hw/intc/arm_gicv3_common.c
@@ -26,6 +26,7 @@
 #include "qemu/module.h"
 #include "qom/cpu.h"
 #include "hw/intc/arm_gicv3_common.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_its_common.c b/hw/intc/arm_gicv3_its_common.c
index efb3d51fb52..66c4c6a1888 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/armv7m_nvic.c b/hw/intc/armv7m_nvic.c
index 69670a2d972..0c7fc7078b8 100644
--- a/hw/intc/armv7m_nvic.c
+++ b/hw/intc/armv7m_nvic.c
@@ -14,6 +14,7 @@
 #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"
diff --git a/hw/intc/aspeed_vic.c b/hw/intc/aspeed_vic.c
index e17343cd733..5ba06c52628 100644
--- a/hw/intc/aspeed_vic.c
+++ b/hw/intc/aspeed_vic.c
@@ -30,6 +30,7 @@
 #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 20db52bd8e2..05bd28e4f9d 100644
--- a/hw/intc/bcm2835_ic.c
+++ b/hw/intc/bcm2835_ic.c
@@ -15,6 +15,7 @@
 #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 a983fe565f5..04229b8a17e 100644
--- a/hw/intc/bcm2836_control.c
+++ b/hw/intc/bcm2836_control.c
@@ -18,6 +18,7 @@
 #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/exynos4210_combiner.c b/hw/intc/exynos4210_combiner.c
index ed558115f6f..3b49ce4d274 100644
--- a/hw/intc/exynos4210_combiner.c
+++ b/hw/intc/exynos4210_combiner.c
@@ -29,6 +29,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 
 #include "hw/arm/exynos4210.h"
diff --git a/hw/intc/exynos4210_gic.c b/hw/intc/exynos4210_gic.c
index e37d457fcf3..7fa4583b0f3 100644
--- a/hw/intc/exynos4210_gic.c
+++ b/hw/intc/exynos4210_gic.c
@@ -22,6 +22,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 #include "hw/irq.h"
 #include "hw/arm/exynos4210.h"
diff --git a/hw/intc/heathrow_pic.c b/hw/intc/heathrow_pic.c
index ac1f7c0c8fb..572e9115aa8 100644
--- a/hw/intc/heathrow_pic.c
+++ b/hw/intc/heathrow_pic.c
@@ -26,6 +26,7 @@
 #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"
diff --git a/hw/intc/i8259_common.c b/hw/intc/i8259_common.c
index c75c8801573..c7ff2b32746 100644
--- a/hw/intc/i8259_common.c
+++ b/hw/intc/i8259_common.c
@@ -22,9 +22,11 @@
  * 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 "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 022ed05b6f4..63fc602a1a9 100644
--- a/hw/intc/imx_avic.c
+++ b/hw/intc/imx_avic.c
@@ -18,6 +18,7 @@
 #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 a83333bdea0..17007a40780 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_common.c b/hw/intc/ioapic_common.c
index fa50382d43e..5538b5b86ec 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 c133d30cf25..4df4eef7df6 100644
--- a/hw/intc/lm32_pic.c
+++ b/hw/intc/lm32_pic.c
@@ -20,6 +20,7 @@
 #include "qemu/osdep.h"
 
 #include "hw/hw.h"
+#include "migration/vmstate.h"
 #include "monitor/monitor.h"
 #include "qemu/module.h"
 #include "hw/sysbus.h"
diff --git a/hw/intc/ompic.c b/hw/intc/ompic.c
index 31004ac6132..77591f827dd 100644
--- a/hw/intc/ompic.c
+++ b/hw/intc/ompic.c
@@ -13,6 +13,7 @@
 #include "hw/hw.h"
 #include "hw/irq.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 49d64bccfe4..bb869ca2213 100644
--- a/hw/intc/openpic.c
+++ b/hw/intc/openpic.c
@@ -42,6 +42,7 @@
 #include "hw/ppc/openpic.h"
 #include "hw/ppc/ppc_e500.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/pl190.c b/hw/intc/pl190.c
index 1a5e760f0f3..e3bd3dd1213 100644
--- a/hw/intc/pl190.c
+++ b/hw/intc/pl190.c
@@ -10,6 +10,7 @@
 #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/slavio_intctl.c b/hw/intc/slavio_intctl.c
index e97afcadf65..c4cf9096eb9 100644
--- a/hw/intc/slavio_intctl.c
+++ b/hw/intc/slavio_intctl.c
@@ -23,6 +23,7 @@
  */
 
 #include "qemu/osdep.h"
+#include "migration/vmstate.h"
 #include "monitor/monitor.h"
 #include "qemu/module.h"
 #include "hw/sysbus.h"
diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c
index 2e39cc1e472..2fdd68035a8 100644
--- a/hw/intc/spapr_xive.c
+++ b/hw/intc/spapr_xive.c
@@ -15,6 +15,7 @@
 #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"
diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index beb37b1a2b9..41da9b3091c 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -35,6 +35,7 @@
 #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"
diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index 9dcbe8b8a04..7a6e4b763a3 100644
--- a/hw/intc/xive.c
+++ b/hw/intc/xive.c
@@ -16,6 +16,7 @@
 #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"
diff --git a/hw/intc/xlnx-pmu-iomod-intc.c b/hw/intc/xlnx-pmu-iomod-intc.c
index 9fcd17c6fdc..f2ba9b4ada2 100644
--- a/hw/intc/xlnx-pmu-iomod-intc.c
+++ b/hw/intc/xlnx-pmu-iomod-intc.c
@@ -26,6 +26,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "hw/register.h"
 #include "qemu/bitops.h"
 #include "qemu/log.h"
diff --git a/hw/intc/xlnx-zynqmp-ipi.c b/hw/intc/xlnx-zynqmp-ipi.c
index 43a1b789b5a..adc11790141 100644
--- a/hw/intc/xlnx-zynqmp-ipi.c
+++ b/hw/intc/xlnx-zynqmp-ipi.c
@@ -27,6 +27,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "hw/register.h"
 #include "qemu/bitops.h"
 #include "qemu/log.h"
diff --git a/hw/ipack/ipack.c b/hw/ipack/ipack.c
index b8ff979d726..9a520806d74 100644
--- a/hw/ipack/ipack.c
+++ b/hw/ipack/ipack.c
@@ -13,6 +13,7 @@
 #include "qemu/module.h"
 #include "hw/ipack/ipack.h"
 #include "hw/irq.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 7ee9d01771a..f931d4df627 100644
--- a/hw/ipack/tpci200.c
+++ b/hw/ipack/tpci200.c
@@ -13,6 +13,7 @@
 #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_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c
index c0a8dac3461..eb2eba891c9 100644
--- a/hw/ipmi/ipmi_bmc_extern.c
+++ b/hw/ipmi/ipmi_bmc_extern.c
@@ -35,6 +35,7 @@
 #include "chardev/char-fe.h"
 #include "sysemu/sysemu.h"
 #include "hw/ipmi/ipmi.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 19805365171..91e1484103f 100644
--- a/hw/ipmi/ipmi_bmc_sim.c
+++ b/hw/ipmi/ipmi_bmc_sim.c
@@ -29,6 +29,7 @@
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "hw/loader.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 af07278c19f..588dfbac340 100644
--- a/hw/ipmi/isa_ipmi_bt.c
+++ b/hw/ipmi/isa_ipmi_bt.c
@@ -30,6 +30,7 @@
 #include "hw/ipmi/ipmi.h"
 #include "hw/irq.h"
 #include "hw/isa/isa.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 583497685ae..e63753f03ea 100644
--- a/hw/ipmi/isa_ipmi_kcs.c
+++ b/hw/ipmi/isa_ipmi_kcs.c
@@ -30,6 +30,7 @@
 #include "hw/ipmi/ipmi.h"
 #include "hw/irq.h"
 #include "hw/isa/isa.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 c3101ef52f5..f22b2d78a48 100644
--- a/hw/isa/apm.c
+++ b/hw/isa/apm.c
@@ -24,6 +24,7 @@
 #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 90ebba59b74..de276cdf104 100644
--- a/hw/isa/i82378.c
+++ b/hw/isa/i82378.c
@@ -22,6 +22,7 @@
 #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/lpc_ich9.c b/hw/isa/lpc_ich9.c
index 42a12327871..79d44c1b413 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -35,6 +35,7 @@
 #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"
diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index 85dbc944396..60845f3ff0b 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -25,6 +25,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/isa/pc87312.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 3677976ef7b..8abd5daaaef 100644
--- a/hw/isa/piix4.c
+++ b/hw/isa/piix4.c
@@ -28,6 +28,7 @@
 #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 81bffb1fb9a..d98b94ab056 100644
--- a/hw/isa/vt82c686.c
+++ b/hw/isa/vt82c686.c
@@ -18,6 +18,7 @@
 #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"
diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c
index 29c785799c1..ff43150e7d7 100644
--- a/hw/mem/pc-dimm.c
+++ b/hw/mem/pc-dimm.c
@@ -20,6 +20,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/mem/pc-dimm.h"
+#include "migration/vmstate.h"
 #include "hw/mem/nvdimm.h"
 #include "hw/mem/memory-device.h"
 #include "qapi/error.h"
diff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c
index 15d4adb3cd0..b4412c6c24b 100644
--- a/hw/mips/gt64xxx_pci.c
+++ b/hw/mips/gt64xxx_pci.c
@@ -29,6 +29,7 @@
 #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"
diff --git a/hw/misc/a9scu.c b/hw/misc/a9scu.c
index 4307f0082bf..62bc60b2aed 100644
--- a/hw/misc/a9scu.c
+++ b/hw/misc/a9scu.c
@@ -10,6 +10,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/misc/a9scu.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 
 static uint64_t a9_scu_read(void *opaque, hwaddr offset,
diff --git a/hw/misc/arm_l2x0.c b/hw/misc/arm_l2x0.c
index b88f40ae7e1..454a942ce06 100644
--- a/hw/misc/arm_l2x0.c
+++ b/hw/misc/arm_l2x0.c
@@ -20,6 +20,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/arm_sysctl.c b/hw/misc/arm_sysctl.c
index be8c9c0a7f0..47051436f49 100644
--- a/hw/misc/arm_sysctl.c
+++ b/hw/misc/arm_sysctl.c
@@ -13,6 +13,7 @@
 #include "qemu/timer.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"
diff --git a/hw/misc/armsse-mhu.c b/hw/misc/armsse-mhu.c
index f8d4187bb84..34b6205f11a 100644
--- a/hw/misc/armsse-mhu.c
+++ b/hw/misc/armsse-mhu.c
@@ -22,6 +22,7 @@
 #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"
diff --git a/hw/misc/aspeed_scu.c b/hw/misc/aspeed_scu.c
index 71a0d4b7be7..268cb24e565 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 b84676d36d8..cb13c63ec84 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 18a83bcc6c9..dca5585a756 100644
--- a/hw/misc/aspeed_xdma.c
+++ b/hw/misc/aspeed_xdma.c
@@ -11,6 +11,7 @@
 #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 e484d25c293..79bad116311 100644
--- a/hw/misc/bcm2835_mbox.c
+++ b/hw/misc/bcm2835_mbox.c
@@ -12,6 +12,7 @@
 #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 51cd93fc8b5..0d078f15f9c 100644
--- a/hw/misc/bcm2835_property.c
+++ b/hw/misc/bcm2835_property.c
@@ -6,6 +6,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "hw/misc/bcm2835_property.h"
+#include "migration/vmstate.h"
 #include "hw/irq.h"
 #include "hw/misc/bcm2835_mbox_defs.h"
 #include "sysemu/dma.h"
diff --git a/hw/misc/bcm2835_rng.c b/hw/misc/bcm2835_rng.c
index e882c875680..d0c4e64e88d 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/eccmemctl.c b/hw/misc/eccmemctl.c
index c16d56c8c75..3300a46bb31 100644
--- a/hw/misc/eccmemctl.c
+++ b/hw/misc/eccmemctl.c
@@ -25,6 +25,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 #include "trace.h"
 
diff --git a/hw/misc/exynos4210_clk.c b/hw/misc/exynos4210_clk.c
index 821d9eab3f0..bc1463ff89e 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 8712774768c..48171651213 100644
--- a/hw/misc/exynos4210_pmu.c
+++ b/hw/misc/exynos4210_pmu.c
@@ -26,6 +26,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 #include "sysemu/sysemu.h"
 
diff --git a/hw/misc/exynos4210_rng.c b/hw/misc/exynos4210_rng.c
index b88fe3a26d7..38cd61c7ea7 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 693ea810406..d3107e5ca29 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 38a19aa0d09..6e246827ab6 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 9478007f419..7fec8f0a476 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 878ffcdc71c..0be683de069 100644
--- a/hw/misc/imx6_src.c
+++ b/hw/misc/imx6_src.c
@@ -10,6 +10,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/misc/imx6_src.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "qemu/bitops.h"
 #include "qemu/log.h"
diff --git a/hw/misc/imx6ul_ccm.c b/hw/misc/imx6ul_ccm.c
index 37b472d1259..a2fc1d0364a 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 d9bdcf1027a..02fc1ae8d09 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/iotkit-secctl.c b/hw/misc/iotkit-secctl.c
index 963fd6efd3e..609869821a1 100644
--- a/hw/misc/iotkit-secctl.c
+++ b/hw/misc/iotkit-secctl.c
@@ -15,6 +15,7 @@
 #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"
diff --git a/hw/misc/iotkit-sysctl.c b/hw/misc/iotkit-sysctl.c
index 00d4faa6db6..31fe9a5997a 100644
--- a/hw/misc/iotkit-sysctl.c
+++ b/hw/misc/iotkit-sysctl.c
@@ -24,6 +24,7 @@
 #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 "target/arm/arm-powerctl.h"
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index f9cc66aba8a..d9b7ea145c9 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -27,6 +27,7 @@
 #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 4f532efe342..feb80df0ff2 100644
--- a/hw/misc/macio/cuda.c
+++ b/hw/misc/macio/cuda.c
@@ -27,6 +27,7 @@
 #include "qemu-common.h"
 #include "hw/hw.h"
 #include "hw/ppc/mac.h"
+#include "migration/vmstate.h"
 #include "hw/input/adb.h"
 #include "hw/misc/mos6522.h"
 #include "hw/misc/macio/cuda.h"
diff --git a/hw/misc/macio/gpio.c b/hw/misc/macio/gpio.c
index 31811ab5133..6f90afefb7c 100644
--- a/hw/misc/macio/gpio.c
+++ b/hw/misc/macio/gpio.c
@@ -26,6 +26,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/ppc/mac.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 8a1de8c31d8..beaf0835782 100644
--- a/hw/misc/macio/mac_dbdma.c
+++ b/hw/misc/macio/mac_dbdma.c
@@ -41,6 +41,7 @@
 #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 82492096f81..c797bbd6984 100644
--- a/hw/misc/macio/macio.c
+++ b/hw/misc/macio/macio.c
@@ -31,6 +31,7 @@
 #include "hw/misc/macio/cuda.h"
 #include "hw/pci/pci.h"
 #include "hw/ppc/mac_dbdma.h"
+#include "migration/vmstate.h"
 #include "hw/char/escc.h"
 #include "hw/misc/macio/macio.h"
 #include "hw/intc/heathrow_pic.h"
diff --git a/hw/misc/macio/pmu.c b/hw/misc/macio/pmu.c
index 6280bcbc61d..507f62ba64b 100644
--- a/hw/misc/macio/pmu.c
+++ b/hw/misc/macio/pmu.c
@@ -32,6 +32,7 @@
 #include "qemu-common.h"
 #include "hw/hw.h"
 #include "hw/ppc/mac.h"
+#include "migration/vmstate.h"
 #include "hw/input/adb.h"
 #include "hw/irq.h"
 #include "hw/misc/mos6522.h"
diff --git a/hw/misc/max111x.c b/hw/misc/max111x.c
index 6fd7210c670..a713149f16a 100644
--- a/hw/misc/max111x.c
+++ b/hw/misc/max111x.c
@@ -13,6 +13,7 @@
 #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 701c79e81ca..e9722d6c760 100644
--- a/hw/misc/milkymist-hpdmc.c
+++ b/hw/misc/milkymist-hpdmc.c
@@ -24,6 +24,7 @@
 #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 fb21b898d1a..8c6baf5406a 100644
--- a/hw/misc/milkymist-pfpu.c
+++ b/hw/misc/milkymist-pfpu.c
@@ -26,6 +26,7 @@
 #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 edec1646059..6dcdb4a2259 100644
--- a/hw/misc/mips_cmgcr.c
+++ b/hw/misc/mips_cmgcr.c
@@ -14,6 +14,7 @@
 #include "qemu/module.h"
 #include "hw/hw.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "hw/misc/mips_cmgcr.h"
 #include "hw/misc/mips_cpc.h"
diff --git a/hw/misc/mips_cpc.c b/hw/misc/mips_cpc.c
index 446b1ad3970..caa618f5824 100644
--- a/hw/misc/mips_cpc.c
+++ b/hw/misc/mips_cpc.c
@@ -23,6 +23,7 @@
 #include "qemu/log.h"
 #include "qemu/module.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 
 #include "hw/misc/mips_cpc.h"
 
diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c
index 84c677c1319..7e6dead089c 100644
--- a/hw/misc/mos6522.c
+++ b/hw/misc/mos6522.c
@@ -29,6 +29,7 @@
 #include "hw/input/adb.h"
 #include "hw/irq.h"
 #include "hw/misc/mos6522.h"
+#include "migration/vmstate.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 #include "qemu/cutils.h"
diff --git a/hw/misc/mps2-fpgaio.c b/hw/misc/mps2-fpgaio.c
index b97ad42d756..4824dc09b28 100644
--- a/hw/misc/mps2-fpgaio.c
+++ b/hw/misc/mps2-fpgaio.c
@@ -21,6 +21,7 @@
 #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 "qemu/timer.h"
diff --git a/hw/misc/mps2-scc.c b/hw/misc/mps2-scc.c
index 1fdf5d22bd7..042ce130ba2 100644
--- a/hw/misc/mps2-scc.c
+++ b/hw/misc/mps2-scc.c
@@ -22,6 +22,7 @@
 #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"
 
diff --git a/hw/misc/msf2-sysreg.c b/hw/misc/msf2-sysreg.c
index 21a28638216..da0f7c26e10 100644
--- a/hw/misc/msf2-sysreg.c
+++ b/hw/misc/msf2-sysreg.c
@@ -17,6 +17,7 @@
 #include "qemu/log.h"
 #include "qemu/module.h"
 #include "hw/misc/msf2-sysreg.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 256746ac159..d002870e565 100644
--- a/hw/misc/mst_fpga.c
+++ b/hw/misc/mst_fpga.c
@@ -15,6 +15,7 @@
 #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 cf1bec223e6..8528c8880cc 100644
--- a/hw/misc/nrf51_rng.c
+++ b/hw/misc/nrf51_rng.c
@@ -16,6 +16,7 @@
 #include "hw/arm/nrf51.h"
 #include "hw/irq.h"
 #include "hw/misc/nrf51_rng.h"
+#include "migration/vmstate.h"
 #include "qemu/guest-random.h"
 
 static void update_irq(NRF51RNGState *s)
diff --git a/hw/misc/pca9552.c b/hw/misc/pca9552.c
index 3422397f896..bb05811e1f3 100644
--- a/hw/misc/pca9552.c
+++ b/hw/misc/pca9552.c
@@ -15,6 +15,7 @@
 #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/slavio_misc.c b/hw/misc/slavio_misc.c
index 5f351950db0..7ef73506aef 100644
--- a/hw/misc/slavio_misc.c
+++ b/hw/misc/slavio_misc.c
@@ -26,6 +26,7 @@
 #include "sysemu/sysemu.h"
 #include "hw/irq.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 #include "trace.h"
 
diff --git a/hw/misc/tmp105.c b/hw/misc/tmp105.c
index 2e304218f40..28996473cb0 100644
--- a/hw/misc/tmp105.c
+++ b/hw/misc/tmp105.c
@@ -22,6 +22,7 @@
 #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 69ee5db4b72..6728aa7e104 100644
--- a/hw/misc/tmp421.c
+++ b/hw/misc/tmp421.c
@@ -27,6 +27,7 @@
 #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 802aeb73775..deb7796ec2c 100644
--- a/hw/misc/tz-mpc.c
+++ b/hw/misc/tz-mpc.c
@@ -15,6 +15,7 @@
 #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"
diff --git a/hw/misc/tz-msc.c b/hw/misc/tz-msc.c
index 7d1a536ce44..5b664d760f5 100644
--- a/hw/misc/tz-msc.c
+++ b/hw/misc/tz-msc.c
@@ -15,6 +15,7 @@
 #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"
diff --git a/hw/misc/tz-ppc.c b/hw/misc/tz-ppc.c
index 54db7fc152a..ccc4468c118 100644
--- a/hw/misc/tz-ppc.c
+++ b/hw/misc/tz-ppc.c
@@ -15,6 +15,7 @@
 #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"
diff --git a/hw/misc/vmcoreinfo.c b/hw/misc/vmcoreinfo.c
index 49e87d462b3..326a3ce8f47 100644
--- a/hw/misc/vmcoreinfo.c
+++ b/hw/misc/vmcoreinfo.c
@@ -15,6 +15,7 @@
 #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 c5cff5a8a91..edfe76ba20e 100644
--- a/hw/misc/zynq-xadc.c
+++ b/hw/misc/zynq-xadc.c
@@ -17,6 +17,7 @@
 #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"
diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c
index 6b51ae5ff17..82430a146aa 100644
--- a/hw/misc/zynq_slcr.c
+++ b/hw/misc/zynq_slcr.c
@@ -18,6 +18,7 @@
 #include "hw/hw.h"
 #include "qemu/timer.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
diff --git a/hw/net/allwinner_emac.c b/hw/net/allwinner_emac.c
index dad25bd4e9a..f4b8c4fa672 100644
--- a/hw/net/allwinner_emac.c
+++ b/hw/net/allwinner_emac.c
@@ -19,6 +19,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "net/net.h"
 #include "qemu/fifo8.h"
 #include "hw/irq.h"
diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c
index f4e4a4dd872..ab6f7e82625 100644
--- a/hw/net/cadence_gem.c
+++ b/hw/net/cadence_gem.c
@@ -27,6 +27,7 @@
 
 #include "hw/irq.h"
 #include "hw/net/cadence_gem.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 3b8e38eb831..10963ef58c2 100644
--- a/hw/net/can/can_kvaser_pci.c
+++ b/hw/net/can/can_kvaser_pci.c
@@ -39,6 +39,7 @@
 #include "hw/hw.h"
 #include "hw/irq.h"
 #include "hw/pci/pci.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 c09ae692618..9e060dff019 100644
--- a/hw/net/can/can_mioe3680_pci.c
+++ b/hw/net/can/can_mioe3680_pci.c
@@ -35,6 +35,7 @@
 #include "hw/hw.h"
 #include "hw/irq.h"
 #include "hw/pci/pci.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 843a76cf373..5d12f0c5527 100644
--- a/hw/net/can/can_pcm3680_pci.c
+++ b/hw/net/can/can_pcm3680_pci.c
@@ -35,6 +35,7 @@
 #include "hw/hw.h"
 #include "hw/irq.h"
 #include "hw/pci/pci.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 ee079d355fd..6c84be6d29c 100644
--- a/hw/net/can/can_sja1000.c
+++ b/hw/net/can/can_sja1000.c
@@ -30,6 +30,7 @@
 #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/dp8393x.c b/hw/net/dp8393x.c
index 70a78ad3377..8d0cafc6ba6 100644
--- a/hw/net/dp8393x.c
+++ b/hw/net/dp8393x.c
@@ -20,6 +20,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.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 a023ceb27cb..e4e91382f0f 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -28,6 +28,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.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 581f7d03d5c..22e3132581d 100644
--- a/hw/net/e1000e.c
+++ b/hw/net/e1000e.c
@@ -42,6 +42,7 @@
 #include "sysemu/sysemu.h"
 #include "hw/pci/msi.h"
 #include "hw/pci/msix.h"
+#include "migration/vmstate.h"
 
 #include "e1000_regs.h"
 
diff --git a/hw/net/eepro100.c b/hw/net/eepro100.c
index e0cf0c46d7d..3c1c534cbff 100644
--- a/hw/net/eepro100.c
+++ b/hw/net/eepro100.c
@@ -44,6 +44,7 @@
 #include "qemu/units.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
+#include "migration/vmstate.h"
 #include "net/net.h"
 #include "net/eth.h"
 #include "hw/nvram/eeprom93xx.h"
diff --git a/hw/net/ftgmac100.c b/hw/net/ftgmac100.c
index 2848bff3e5e..4d0f56c1236 100644
--- a/hw/net/ftgmac100.c
+++ b/hw/net/ftgmac100.c
@@ -20,6 +20,7 @@
 #include "net/checksum.h"
 #include "net/eth.h"
 #include "hw/net/mii.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 fe9d9028fa2..5a22542aafe 100644
--- a/hw/net/imx_fec.c
+++ b/hw/net/imx_fec.c
@@ -24,6 +24,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.h"
 #include "hw/net/imx_fec.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 e2da54cbd87..937d5603e2b 100644
--- a/hw/net/lan9118.c
+++ b/hw/net/lan9118.c
@@ -12,6 +12,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "net/net.h"
 #include "net/eth.h"
 #include "hw/irq.h"
diff --git a/hw/net/lance.c b/hw/net/lance.c
index 2978c01d58c..0d094327cbb 100644
--- a/hw/net/lance.c
+++ b/hw/net/lance.c
@@ -39,6 +39,7 @@
 #include "qemu/module.h"
 #include "qemu/timer.h"
 #include "hw/sparc/sparc32_dma.h"
+#include "migration/vmstate.h"
 #include "hw/net/lance.h"
 #include "trace.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/net/milkymist-minimac2.c b/hw/net/milkymist-minimac2.c
index bad1066781b..a7d879f0ab2 100644
--- a/hw/net/milkymist-minimac2.c
+++ b/hw/net/milkymist-minimac2.c
@@ -28,6 +28,7 @@
 #include "hw/hw.h"
 #include "hw/irq.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 007c94aa30b..3910beb9a67 100644
--- a/hw/net/mipsnet.c
+++ b/hw/net/mipsnet.c
@@ -5,6 +5,7 @@
 #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 3490e54c5a2..5195c107d07 100644
--- a/hw/net/ne2000-isa.c
+++ b/hw/net/ne2000-isa.c
@@ -26,6 +26,7 @@
 #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 4f28e31baaf..084d92f9555 100644
--- a/hw/net/ne2000-pci.c
+++ b/hw/net/ne2000-pci.c
@@ -25,6 +25,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.h"
 #include "hw/pci/pci.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 4b9231c495b..7731b5acd1f 100644
--- a/hw/net/ne2000.c
+++ b/hw/net/ne2000.c
@@ -26,6 +26,7 @@
 #include "net/eth.h"
 #include "qemu/module.h"
 #include "hw/irq.h"
+#include "migration/vmstate.h"
 #include "ne2000.h"
 #include "sysemu/sysemu.h"
 #include "trace.h"
diff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c
index df8cb6621f3..a77d2c93689 100644
--- a/hw/net/pcnet-pci.c
+++ b/hw/net/pcnet-pci.c
@@ -30,6 +30,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.h"
 #include "hw/pci/pci.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 f73e3422f46..bfcfcf5be38 100644
--- a/hw/net/pcnet.c
+++ b/hw/net/pcnet.c
@@ -39,6 +39,7 @@
 #include "qemu/log.h"
 #include "hw/irq.h"
 #include "hw/qdev.h"
+#include "migration/vmstate.h"
 #include "net/net.h"
 #include "net/eth.h"
 #include "qemu/timer.h"
diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c
index bd54612f2ae..4ce8f62a2a6 100644
--- a/hw/net/rocker/rocker.c
+++ b/hw/net/rocker/rocker.c
@@ -18,6 +18,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
+#include "migration/vmstate.h"
 #include "hw/pci/msix.h"
 #include "net/net.h"
 #include "net/eth.h"
diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
index 09273171e53..9975af44ddd 100644
--- a/hw/net/rtl8139.c
+++ b/hw/net/rtl8139.c
@@ -55,6 +55,7 @@
 
 #include "hw/hw.h"
 #include "hw/pci/pci.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 f5149124e6b..67e3f2408e6 100644
--- a/hw/net/smc91c111.c
+++ b/hw/net/smc91c111.c
@@ -9,6 +9,7 @@
 
 #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"
diff --git a/hw/net/spapr_llan.c b/hw/net/spapr_llan.c
index 1867c355e31..0ce5e37a281 100644
--- a/hw/net/spapr_llan.c
+++ b/hw/net/spapr_llan.c
@@ -33,6 +33,7 @@
 #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 "sysemu/sysemu.h"
diff --git a/hw/net/stellaris_enet.c b/hw/net/stellaris_enet.c
index 756ac5600b5..154214ca1d3 100644
--- a/hw/net/stellaris_enet.c
+++ b/hw/net/stellaris_enet.c
@@ -10,6 +10,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.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 89bcf749d1b..f5e30725be0 100644
--- a/hw/net/sungem.c
+++ b/hw/net/sungem.c
@@ -9,6 +9,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/pci/pci.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 8b8603e6962..9d8fd70f519 100644
--- a/hw/net/sunhme.c
+++ b/hw/net/sunhme.c
@@ -25,6 +25,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/pci/pci.h"
+#include "migration/vmstate.h"
 #include "hw/net/mii.h"
 #include "net/net.h"
 #include "qemu/module.h"
diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
index 10d01d0058c..88a7c13a965 100644
--- a/hw/net/vmxnet3.c
+++ b/hw/net/vmxnet3.c
@@ -26,6 +26,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"
diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c
index c2efc77452c..ded8b9cf9db 100644
--- a/hw/net/xgmac.c
+++ b/hw/net/xgmac.c
@@ -27,6 +27,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.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/nvram/ds1225y.c b/hw/nvram/ds1225y.c
index fd49283f413..9cddb379251 100644
--- a/hw/nvram/ds1225y.c
+++ b/hw/nvram/ds1225y.c
@@ -24,6 +24,7 @@
 
 #include "qemu/osdep.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 5fc23df1d44..c2b012d583f 100644
--- a/hw/nvram/eeprom93xx.c
+++ b/hw/nvram/eeprom93xx.c
@@ -39,6 +39,7 @@
 #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/fw_cfg.c b/hw/nvram/fw_cfg.c
index 8db0297d59c..a5e614016a3 100644
--- a/hw/nvram/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
@@ -32,6 +32,7 @@
 #include "hw/nvram/fw_cfg.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 a60426c4692..4f0d2f6bd40 100644
--- a/hw/nvram/mac_nvram.c
+++ b/hw/nvram/mac_nvram.c
@@ -27,6 +27,7 @@
 #include "hw/hw.h"
 #include "hw/nvram/chrp_nvram.h"
 #include "hw/ppc/mac.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 eca0cb35b52..e13ff4b2fef 100644
--- a/hw/nvram/nrf51_nvm.c
+++ b/hw/nvram/nrf51_nvm.c
@@ -24,6 +24,7 @@
 #include "exec/address-spaces.h"
 #include "hw/arm/nrf51.h"
 #include "hw/nvram/nrf51_nvm.h"
+#include "migration/vmstate.h"
 
 /*
  * FICR Registers Assignments
diff --git a/hw/nvram/spapr_nvram.c b/hw/nvram/spapr_nvram.c
index 09efd886bfb..ef22962767b 100644
--- a/hw/nvram/spapr_nvram.c
+++ b/hw/nvram/spapr_nvram.c
@@ -32,6 +32,7 @@
 #include "sysemu/block-backend.h"
 #include "sysemu/device_tree.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"
diff --git a/hw/openrisc/cputimer.c b/hw/openrisc/cputimer.c
index fe95efc41c3..e9f89333dc0 100644
--- a/hw/openrisc/cputimer.c
+++ b/hw/openrisc/cputimer.c
@@ -21,6 +21,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/pci-bridge/gen_pcie_root_port.c b/hw/pci-bridge/gen_pcie_root_port.c
index 44acda7cb96..fb78cf1905c 100644
--- a/hw/pci-bridge/gen_pcie_root_port.c
+++ b/hw/pci-bridge/gen_pcie_root_port.c
@@ -15,6 +15,7 @@
 #include "qemu/module.h"
 #include "hw/pci/msix.h"
 #include "hw/pci/pcie_port.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 db77a3541b6..2b3907655b9 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 310af04af9d..f1e16135a32 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/xio3130_downstream.c b/hw/pci-bridge/xio3130_downstream.c
index 182e164f748..1d62e312729 100644
--- a/hw/pci-bridge/xio3130_downstream.c
+++ b/hw/pci-bridge/xio3130_downstream.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 "qapi/error.h"
 #include "qemu/module.h"
 
diff --git a/hw/pci-bridge/xio3130_upstream.c b/hw/pci-bridge/xio3130_upstream.c
index b8cb31355f2..5cd3af4fbc0 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 ca526bd71b9..58870e0d87e 100644
--- a/hw/pci-host/bonito.c
+++ b/hw/pci-host/bonito.c
@@ -45,6 +45,7 @@
 #include "hw/irq.h"
 #include "hw/mips/mips.h"
 #include "hw/pci/pci_host.h"
+#include "migration/vmstate.h"
 #include "sysemu/reset.h"
 #include "sysemu/sysemu.h"
 #include "exec/address-spaces.h"
diff --git a/hw/pci-host/designware.c b/hw/pci-host/designware.c
index de4300d5543..083f5bb1a68 100644
--- a/hw/pci-host/designware.c
+++ b/hw/pci-host/designware.c
@@ -25,6 +25,7 @@
 #include "hw/pci/pci_bridge.h"
 #include "hw/pci/pci_host.h"
 #include "hw/pci/pcie_port.h"
+#include "migration/vmstate.h"
 #include "hw/irq.h"
 #include "hw/pci-host/designware.h"
 
diff --git a/hw/pci-host/gpex.c b/hw/pci-host/gpex.c
index 72c58a054b3..1a45c30505f 100644
--- a/hw/pci-host/gpex.c
+++ b/hw/pci-host/gpex.c
@@ -34,6 +34,7 @@
 #include "hw/hw.h"
 #include "hw/irq.h"
 #include "hw/pci-host/gpex.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 
 /****************************************************************************
diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
index ecf634a04d1..9e8c8542d39 100644
--- a/hw/pci-host/piix.c
+++ b/hw/pci-host/piix.c
@@ -34,6 +34,7 @@
 #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/reset.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c
index 406ebf04383..840869f19cb 100644
--- a/hw/pci-host/ppce500.c
+++ b/hw/pci-host/ppce500.c
@@ -18,6 +18,7 @@
 #include "hw/hw.h"
 #include "hw/irq.h"
 #include "hw/ppc/e500-ccsr.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 2b68af98119..34a36812ea3 100644
--- a/hw/pci-host/prep.c
+++ b/hw/pci-host/prep.c
@@ -31,6 +31,7 @@
 #include "hw/pci/pci.h"
 #include "hw/pci/pci_bus.h"
 #include "hw/pci/pci_host.h"
+#include "migration/vmstate.h"
 #include "hw/i386/pc.h"
 #include "hw/irq.h"
 #include "hw/loader.h"
diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
index 0a010be4cf6..25335a8b710 100644
--- a/hw/pci-host/q35.c
+++ b/hw/pci-host/q35.c
@@ -31,6 +31,7 @@
 #include "qemu/osdep.h"
 #include "hw/hw.h"
 #include "hw/pci-host/q35.h"
+#include "migration/vmstate.h"
 #include "qapi/error.h"
 #include "qapi/visitor.h"
 #include "qemu/module.h"
diff --git a/hw/pci-host/versatile.c b/hw/pci-host/versatile.c
index 221cc401342..1cd832a3932 100644
--- a/hw/pci-host/versatile.c
+++ b/hw/pci-host/versatile.c
@@ -9,6 +9,7 @@
 
 #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"
diff --git a/hw/pci/msix.c b/hw/pci/msix.c
index ebe804b473d..81a23accf38 100644
--- a/hw/pci/msix.c
+++ b/hw/pci/msix.c
@@ -21,6 +21,7 @@
 #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 bc7ce92dcb4..de3691eee48 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -31,6 +31,7 @@
 #include "hw/pci/pci_bus.h"
 #include "hw/pci/pci_host.h"
 #include "migration/qemu-file-types.h"
+#include "migration/vmstate.h"
 #include "monitor/monitor.h"
 #include "net/net.h"
 #include "sysemu/sysemu.h"
diff --git a/hw/pci/pcie_aer.c b/hw/pci/pcie_aer.c
index 939da0b778f..27f9cc56af6 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/ppc/ppc.c b/hw/ppc/ppc.c
index 163a34ee4c3..5cc321828e1 100644
--- a/hw/ppc/ppc.c
+++ b/hw/ppc/ppc.c
@@ -35,6 +35,7 @@
 #include "qemu/error-report.h"
 #include "sysemu/kvm.h"
 #include "kvm_ppc.h"
+#include "migration/vmstate.h"
 #include "trace.h"
 
 //#define PPC_DEBUG_IRQ
diff --git a/hw/ppc/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c
index 27f25f4e58a..7334d758906 100644
--- a/hw/ppc/ppc4xx_pci.c
+++ b/hw/ppc/ppc4xx_pci.c
@@ -24,6 +24,7 @@
 #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"
diff --git a/hw/ppc/prep_systemio.c b/hw/ppc/prep_systemio.c
index 898ab1533f9..d46792d366e 100644
--- a/hw/ppc/prep_systemio.c
+++ b/hw/ppc/prep_systemio.c
@@ -25,6 +25,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.h"
 #include "hw/isa/isa.h"
+#include "migration/vmstate.h"
 #include "exec/address-spaces.h"
 #include "qemu/error-report.h" /* for error_report() */
 #include "qemu/module.h"
diff --git a/hw/ppc/rs6000_mc.c b/hw/ppc/rs6000_mc.c
index 45cb95e08a7..daea13cdeaa 100644
--- a/hw/ppc/rs6000_mc.c
+++ b/hw/ppc/rs6000_mc.c
@@ -20,6 +20,7 @@
 #include "qemu/osdep.h"
 #include "qemu/units.h"
 #include "hw/isa/isa.h"
+#include "migration/vmstate.h"
 #include "exec/address-spaces.h"
 #include "hw/boards.h"
 #include "qapi/error.h"
diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
index bbb001f84a4..7830d66d77d 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 ccc8970c7ca..f86f773d42e 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -10,6 +10,7 @@
 #include "qemu/osdep.h"
 #include "hw/cpu/core.h"
 #include "hw/ppc/spapr_cpu_core.h"
+#include "migration/vmstate.h"
 #include "target/ppc/cpu.h"
 #include "hw/ppc/spapr.h"
 #include "hw/boards.h"
diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c
index 678493a9c5c..c09bbcc22da 100644
--- a/hw/ppc/spapr_drc.c
+++ b/hw/ppc/spapr_drc.c
@@ -18,6 +18,7 @@
 #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 */
diff --git a/hw/ppc/spapr_iommu.c b/hw/ppc/spapr_iommu.c
index bd3d0256a65..57834e6a390 100644
--- a/hw/ppc/spapr_iommu.c
+++ b/hw/ppc/spapr_iommu.c
@@ -25,6 +25,7 @@
 #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_ovec.c b/hw/ppc/spapr_ovec.c
index a65b7c7da9b..811fadf143b 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 54d0a32c170..e5f592322f6 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -29,6 +29,7 @@
 #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"
diff --git a/hw/ppc/spapr_rtc.c b/hw/ppc/spapr_rtc.c
index 6cf0113b348..42ff72c2699 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 0f4f4bedd3f..1095aa5f00e 100644
--- a/hw/ppc/spapr_vio.c
+++ b/hw/ppc/spapr_vio.c
@@ -34,6 +34,7 @@
 #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/riscv/sifive_gpio.c b/hw/riscv/sifive_gpio.c
index da19daa8801..5c7c596e6b4 100644
--- a/hw/riscv/sifive_gpio.c
+++ b/hw/riscv/sifive_gpio.c
@@ -15,6 +15,7 @@
 #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/s390x/event-facility.c b/hw/s390x/event-facility.c
index 61f3b747147..056f0711fa2 100644
--- a/hw/s390x/event-facility.c
+++ b/hw/s390x/event-facility.c
@@ -21,6 +21,7 @@
 #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/sclpquiesce.c b/hw/s390x/sclpquiesce.c
index 4f73471537c..6dfb087568e 100644
--- a/hw/s390x/sclpquiesce.c
+++ b/hw/s390x/sclpquiesce.c
@@ -16,6 +16,7 @@
 #include "hw/qdev.h"
 #include "sysemu/sysemu.h"
 #include "hw/s390x/sclp.h"
+#include "migration/vmstate.h"
 #include "qemu/module.h"
 #include "hw/s390x/event-facility.h"
 
diff --git a/hw/scsi/esp-pci.c b/hw/scsi/esp-pci.c
index f945502f3a9..d5a1f9e0174 100644
--- a/hw/scsi/esp-pci.c
+++ b/hw/scsi/esp-pci.c
@@ -28,6 +28,7 @@
 #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 3b717e95266..841d79b60e4 100644
--- a/hw/scsi/esp.c
+++ b/hw/scsi/esp.c
@@ -25,6 +25,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "hw/irq.h"
 #include "hw/scsi/esp.h"
 #include "trace.h"
diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index 1a042aa00b6..175eb792606 100644
--- a/hw/scsi/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
@@ -19,6 +19,7 @@
 #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 0c4399930a6..970b10048f9 100644
--- a/hw/scsi/megasas.c
+++ b/hw/scsi/megasas.c
@@ -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/mptsas.c b/hw/scsi/mptsas.c
index 6d2c15a2bc1..79501777d48 100644
--- a/hw/scsi/mptsas.c
+++ b/hw/scsi/mptsas.c
@@ -35,6 +35,7 @@
 #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 81fe7c3301f..42928a6aec8 100644
--- a/hw/scsi/scsi-bus.c
+++ b/hw/scsi/scsi-bus.c
@@ -6,6 +6,7 @@
 #include "qemu/option.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"
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 558fa115118..5fbdecb434a 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -26,6 +26,7 @@
 #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"
diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
index 0e491c911d8..5290f7569a2 100644
--- a/hw/scsi/spapr_vscsi.c
+++ b/hw/scsi/spapr_vscsi.c
@@ -37,6 +37,7 @@
 #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"
diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
index 14641df1c82..85af638bc71 100644
--- a/hw/scsi/vmw_pvscsi.c
+++ b/hw/scsi/vmw_pvscsi.c
@@ -29,6 +29,7 @@
 #include "qapi/error.h"
 #include "qemu/module.h"
 #include "hw/scsi/scsi.h"
+#include "migration/vmstate.h"
 #include "scsi/constants.h"
 #include "hw/pci/msi.h"
 #include "vmw_pvscsi.h"
diff --git a/hw/sd/bcm2835_sdhost.c b/hw/sd/bcm2835_sdhost.c
index 4609cc031cf..4a80fbcc861 100644
--- a/hw/sd/bcm2835_sdhost.c
+++ b/hw/sd/bcm2835_sdhost.c
@@ -17,6 +17,7 @@
 #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 b8d2347d468..dcb71691661 100644
--- a/hw/sd/milkymist-memcard.c
+++ b/hw/sd/milkymist-memcard.c
@@ -26,6 +26,7 @@
 #include "qemu/module.h"
 #include "hw/hw.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "trace.h"
 #include "qapi/error.h"
diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c
index 3c615f2b8f3..8033fe455d8 100644
--- a/hw/sd/pl181.c
+++ b/hw/sd/pl181.c
@@ -10,6 +10,7 @@
 #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"
diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c
index 1eb1248cad3..020cd5464cf 100644
--- a/hw/sd/pxa2xx_mmci.c
+++ b/hw/sd/pxa2xx_mmci.c
@@ -15,6 +15,7 @@
 #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"
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 21adf2be165..02924329bf4 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -38,6 +38,7 @@
 #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.c b/hw/sd/sdhci.c
index 46c7fbd6778..f9db39c8348 100644
--- a/hw/sd/sdhci.c
+++ b/hw/sd/sdhci.c
@@ -32,6 +32,7 @@
 #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 9bd6511ec86..571aabea5cf 100644
--- a/hw/sd/ssi-sd.c
+++ b/hw/sd/ssi-sd.c
@@ -13,6 +13,7 @@
 #include "qemu/osdep.h"
 #include "sysemu/blockdev.h"
 #include "hw/ssi/ssi.h"
+#include "migration/vmstate.h"
 #include "hw/sd/sd.h"
 #include "qapi/error.h"
 #include "qemu/module.h"
diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
index 0f9cda19f32..99b8693a0c1 100644
--- a/hw/sparc/sun4m.c
+++ b/hw/sparc/sun4m.c
@@ -32,6 +32,7 @@
 #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"
diff --git a/hw/sparc/sun4m_iommu.c b/hw/sparc/sun4m_iommu.c
index 36b5c0c1334..a5681ded6af 100644
--- a/hw/sparc/sun4m_iommu.c
+++ b/hw/sparc/sun4m_iommu.c
@@ -26,6 +26,7 @@
 #include "hw/irq.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/sun4u.c b/hw/sparc64/sun4u.c
index 5d87be811dd..c95ed94d2e1 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.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 "qemu/error-report.h"
@@ -36,6 +37,7 @@
 #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"
diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c
index eb6eee65865..7ace5780a35 100644
--- a/hw/ssi/aspeed_smc.c
+++ b/hw/ssi/aspeed_smc.c
@@ -24,6 +24,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
diff --git a/hw/ssi/imx_spi.c b/hw/ssi/imx_spi.c
index 79c8a6dae7c..c918e8cac81 100644
--- a/hw/ssi/imx_spi.c
+++ b/hw/ssi/imx_spi.c
@@ -11,6 +11,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.h"
 #include "hw/ssi/imx_spi.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
diff --git a/hw/ssi/mss-spi.c b/hw/ssi/mss-spi.c
index d000c913412..3050fabb692 100644
--- a/hw/ssi/mss-spi.c
+++ b/hw/ssi/mss-spi.c
@@ -26,6 +26,7 @@
 #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/pl022.c b/hw/ssi/pl022.c
index 286b08438dc..cade2e92a89 100644
--- a/hw/ssi/pl022.c
+++ b/hw/ssi/pl022.c
@@ -9,6 +9,7 @@
 
 #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"
diff --git a/hw/ssi/ssi.c b/hw/ssi/ssi.c
index cda7c96a64d..c6415eb6e32 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 42491013867..cd6e8443db3 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 5495d3e3cbc..081433c2f00 100644
--- a/hw/ssi/xilinx_spi.c
+++ b/hw/ssi/xilinx_spi.c
@@ -26,6 +26,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c
index 451d5a07838..a28cd8f8f0c 100644
--- a/hw/ssi/xilinx_spips.c
+++ b/hw/ssi/xilinx_spips.c
@@ -35,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 0d184973222..b310dfb1b30 100644
--- a/hw/timer/a9gtimer.c
+++ b/hw/timer/a9gtimer.c
@@ -23,6 +23,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.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 490e5846045..b9d057df5d5 100644
--- a/hw/timer/allwinner-a10-pit.c
+++ b/hw/timer/allwinner-a10-pit.c
@@ -20,6 +20,7 @@
 #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/module.h"
 
diff --git a/hw/timer/arm_mptimer.c b/hw/timer/arm_mptimer.c
index 3092b85d915..a13255d308b 100644
--- a/hw/timer/arm_mptimer.c
+++ b/hw/timer/arm_mptimer.c
@@ -23,6 +23,7 @@
 #include "hw/irq.h"
 #include "hw/ptimer.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 30ad2245daf..0b121252fd3 100644
--- a/hw/timer/arm_timer.c
+++ b/hw/timer/arm_timer.c
@@ -9,6 +9,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "qemu/timer.h"
 #include "hw/qdev.h"
 #include "hw/irq.h"
diff --git a/hw/timer/armv7m_systick.c b/hw/timer/armv7m_systick.c
index 8a91ba345b5..85d122dbcbc 100644
--- a/hw/timer/armv7m_systick.c
+++ b/hw/timer/armv7m_systick.c
@@ -11,6 +11,7 @@
 
 #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"
diff --git a/hw/timer/aspeed_rtc.c b/hw/timer/aspeed_rtc.c
index 19f061c846e..53130173533 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 c8e48929899..ed81d5c44c7 100644
--- a/hw/timer/aspeed_timer.c
+++ b/hw/timer/aspeed_timer.c
@@ -14,6 +14,7 @@
 #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 810c08a0ae1..5e3128c1e37 100644
--- a/hw/timer/cadence_ttc.c
+++ b/hw/timer/cadence_ttc.c
@@ -19,6 +19,7 @@
 #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 7328abb40bd..6a084a91dd4 100644
--- a/hw/timer/cmsdk-apb-dualtimer.c
+++ b/hw/timer/cmsdk-apb-dualtimer.c
@@ -26,6 +26,7 @@
 #include "hw/irq.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 07f82e5fa10..c83e26566a9 100644
--- a/hw/timer/cmsdk-apb-timer.c
+++ b/hw/timer/cmsdk-apb-timer.c
@@ -37,6 +37,7 @@
 #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 c818ed1d980..021c4ef714f 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 30d2d21408a..588a9ba9be8 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/exynos4210_mct.c b/hw/timer/exynos4210_mct.c
index 25e2125af8c..7f2af5287c0 100644
--- a/hw/timer/exynos4210_mct.c
+++ b/hw/timer/exynos4210_mct.c
@@ -55,6 +55,7 @@
 #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"
diff --git a/hw/timer/exynos4210_pwm.c b/hw/timer/exynos4210_pwm.c
index 2af7b374cca..b7fad2ad449 100644
--- a/hw/timer/exynos4210_pwm.c
+++ b/hw/timer/exynos4210_pwm.c
@@ -23,6 +23,7 @@
 #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"
diff --git a/hw/timer/exynos4210_rtc.c b/hw/timer/exynos4210_rtc.c
index b9dfaf51f72..561451059ea 100644
--- a/hw/timer/exynos4210_rtc.c
+++ b/hw/timer/exynos4210_rtc.c
@@ -30,6 +30,7 @@
 #include "qemu/log.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"
diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
index 17838df7833..305704a3397 100644
--- a/hw/timer/hpet.c
+++ b/hw/timer/hpet.c
@@ -35,6 +35,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_common.c b/hw/timer/i8254_common.c
index 3e980f2dee4..062e8690c4b 100644
--- a/hw/timer/i8254_common.c
+++ b/hw/timer/i8254_common.c
@@ -31,6 +31,7 @@
 #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 afeb74339a5..f54e059910b 100644
--- a/hw/timer/imx_epit.c
+++ b/hw/timer/imx_epit.c
@@ -14,6 +14,7 @@
 
 #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"
diff --git a/hw/timer/imx_gpt.c b/hw/timer/imx_gpt.c
index b4cfc520199..49a441f4517 100644
--- a/hw/timer/imx_gpt.c
+++ b/hw/timer/imx_gpt.c
@@ -15,6 +15,7 @@
 #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 4beffc1396a..bfa9de76ba1 100644
--- a/hw/timer/lm32_timer.c
+++ b/hw/timer/lm32_timer.c
@@ -25,6 +25,7 @@
 #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"
diff --git a/hw/timer/m48t59.c b/hw/timer/m48t59.c
index e2479c504a6..1240315206e 100644
--- a/hw/timer/m48t59.c
+++ b/hw/timer/m48t59.c
@@ -36,6 +36,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 0410cccafa3..b432662bc49 100644
--- a/hw/timer/mc146818rtc.c
+++ b/hw/timer/mc146818rtc.c
@@ -34,6 +34,7 @@
 #include "sysemu/replay.h"
 #include "sysemu/reset.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 0f9c39715d6..7c562247106 100644
--- a/hw/timer/milkymist-sysctl.c
+++ b/hw/timer/milkymist-sysctl.c
@@ -25,6 +25,7 @@
 #include "hw/hw.h"
 #include "hw/irq.h"
 #include "hw/sysbus.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.h"
 #include "trace.h"
 #include "qemu/timer.h"
diff --git a/hw/timer/mss-timer.c b/hw/timer/mss-timer.c
index 1be9baf9c0d..084e02199df 100644
--- a/hw/timer/mss-timer.c
+++ b/hw/timer/mss-timer.c
@@ -29,6 +29,7 @@
 #include "qemu/log.h"
 #include "hw/irq.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 297403c4fda..e04046eb15e 100644
--- a/hw/timer/nrf51_timer.c
+++ b/hw/timer/nrf51_timer.c
@@ -17,6 +17,7 @@
 #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/pl031.c b/hw/timer/pl031.c
index 435c4a6c7ef..39abd086434 100644
--- a/hw/timer/pl031.c
+++ b/hw/timer/pl031.c
@@ -14,6 +14,7 @@
 #include "qemu/osdep.h"
 #include "qemu-common.h"
 #include "hw/timer/pl031.h"
+#include "migration/vmstate.h"
 #include "hw/irq.h"
 #include "hw/sysbus.h"
 #include "qemu/timer.h"
diff --git a/hw/timer/pxa2xx_timer.c b/hw/timer/pxa2xx_timer.c
index 9c3b2b80ab0..f61053b3c68 100644
--- a/hw/timer/pxa2xx_timer.c
+++ b/hw/timer/pxa2xx_timer.c
@@ -14,6 +14,7 @@
 #include "sysemu/sysemu.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/slavio_timer.c b/hw/timer/slavio_timer.c
index 310a0a126ac..931ffd483f4 100644
--- a/hw/timer/slavio_timer.c
+++ b/hw/timer/slavio_timer.c
@@ -27,6 +27,7 @@
 #include "hw/irq.h"
 #include "hw/ptimer.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 d7af9286676..b41822f047a 100644
--- a/hw/timer/stm32f2xx_timer.c
+++ b/hw/timer/stm32f2xx_timer.c
@@ -25,6 +25,7 @@
 #include "qemu/osdep.h"
 #include "hw/irq.h"
 #include "hw/timer/stm32f2xx_timer.h"
+#include "migration/vmstate.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
 
diff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c
index 795f894a396..6b2a25b9c93 100644
--- a/hw/timer/twl92230.c
+++ b/hw/timer/twl92230.c
@@ -26,6 +26,7 @@
 #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/xlnx-zynqmp-rtc.c b/hw/timer/xlnx-zynqmp-rtc.c
index 48c3fba677e..5692db98c2d 100644
--- a/hw/timer/xlnx-zynqmp-rtc.c
+++ b/hw/timer/xlnx-zynqmp-rtc.c
@@ -37,6 +37,7 @@
 #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_emulator.c b/hw/tpm/tpm_emulator.c
index fc0b512f4f8..76c1e16fa1c 100644
--- a/hw/tpm/tpm_emulator.c
+++ b/hw/tpm/tpm_emulator.c
@@ -37,6 +37,7 @@
 #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_tis.c b/hw/tpm/tpm_tis.c
index 747e943c424..774d12a5e11 100644
--- a/hw/tpm/tpm_tis.c
+++ b/hw/tpm/tpm_tis.c
@@ -30,6 +30,7 @@
 
 #include "hw/acpi/tpm.h"
 #include "hw/pci/pci_ids.h"
+#include "migration/vmstate.h"
 #include "sysemu/tpm_backend.h"
 #include "tpm_int.h"
 #include "tpm_util.h"
diff --git a/hw/usb/bus.c b/hw/usb/bus.c
index a28e9e3b335..6aff15e5048 100644
--- a/hw/usb/bus.c
+++ b/hw/usb/bus.c
@@ -6,6 +6,7 @@
 #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-passthru.c b/hw/usb/ccid-card-passthru.c
index d1dac6e012b..9e42547fc8b 100644
--- a/hw/usb/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
@@ -13,6 +13,7 @@
 #include "qemu/units.h"
 #include <libcacard.h>
 #include "chardev/char-fe.h"
+#include "migration/vmstate.h"
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "qemu/sockets.h"
diff --git a/hw/usb/dev-audio.c b/hw/usb/dev-audio.c
index 718ab53cbb8..d4074edfc36 100644
--- a/hw/usb/dev-audio.c
+++ b/hw/usb/dev-audio.c
@@ -32,6 +32,7 @@
 #include "qemu/osdep.h"
 #include "qemu/module.h"
 #include "hw/usb.h"
+#include "migration/vmstate.h"
 #include "desc.h"
 #include "hw/hw.h"
 #include "audio/audio.h"
diff --git a/hw/usb/dev-bluetooth.c b/hw/usb/dev-bluetooth.c
index 670ba322900..f6944fa74f1 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 62793eaf260..c7c65a87826 100644
--- a/hw/usb/dev-hid.c
+++ b/hw/usb/dev-hid.c
@@ -27,6 +27,7 @@
 #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"
diff --git a/hw/usb/dev-hub.c b/hw/usb/dev-hub.c
index 89f55dd25c9..886423bdec7 100644
--- a/hw/usb/dev-hub.c
+++ b/hw/usb/dev-hub.c
@@ -27,6 +27,7 @@
 #include "qemu/timer.h"
 #include "trace.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 fd1b3394a5b..2e2a47ff7c7 100644
--- a/hw/usb/dev-mtp.c
+++ b/hw/usb/dev-mtp.c
@@ -24,6 +24,7 @@
 #include "qemu/filemonitor.h"
 #include "trace.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 889069dd5a2..db928d7cdfe 100644
--- a/hw/usb/dev-network.c
+++ b/hw/usb/dev-network.c
@@ -26,6 +26,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.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 b82f8541030..039dc4889f7 100644
--- a/hw/usb/dev-serial.c
+++ b/hw/usb/dev-serial.c
@@ -14,6 +14,7 @@
 #include "qemu/error-report.h"
 #include "qemu/module.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 8d7e516fe73..57a0cbcae76 100644
--- a/hw/usb/dev-smartcard-reader.c
+++ b/hw/usb/dev-smartcard-reader.c
@@ -41,6 +41,7 @@
 #include "qemu/error-report.h"
 #include "qemu/module.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 9ffb88ea5b8..8bc5d8728a4 100644
--- a/hw/usb/dev-storage.c
+++ b/hw/usb/dev-storage.c
@@ -17,6 +17,7 @@
 #include "desc.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 abd8070d0c7..525bc1e5904 100644
--- a/hw/usb/dev-uas.c
+++ b/hw/usb/dev-uas.c
@@ -17,6 +17,7 @@
 #include "qemu/module.h"
 
 #include "hw/usb.h"
+#include "migration/vmstate.h"
 #include "desc.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 8c43db93359..9a8a2d3081c 100644
--- a/hw/usb/dev-wacom.c
+++ b/hw/usb/dev-wacom.c
@@ -30,6 +30,7 @@
 #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 03d3a390671..7232dee882a 100644
--- a/hw/usb/hcd-ehci-pci.c
+++ b/hw/usb/hcd-ehci-pci.c
@@ -17,6 +17,7 @@
 
 #include "qemu/osdep.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 cd1f3c70a48..9a509f3b089 100644
--- a/hw/usb/hcd-ehci-sysbus.c
+++ b/hw/usb/hcd-ehci-sysbus.c
@@ -17,6 +17,7 @@
 
 #include "qemu/osdep.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 d2189fc8443..45ff4f41156 100644
--- a/hw/usb/hcd-ehci.c
+++ b/hw/usb/hcd-ehci.c
@@ -31,6 +31,7 @@
 #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"
 
diff --git a/hw/usb/hcd-ohci-pci.c b/hw/usb/hcd-ohci-pci.c
index e8f372c6ad3..67fcfc4d7c3 100644
--- a/hw/usb/hcd-ohci-pci.c
+++ b/hw/usb/hcd-ohci-pci.c
@@ -23,6 +23,7 @@
 #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"
diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c
index 1ced5cd71a2..438dfb4b839 100644
--- a/hw/usb/hcd-ohci.c
+++ b/hw/usb/hcd-ohci.c
@@ -32,6 +32,7 @@
 #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 "trace.h"
diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c
index 98bd5cf49d5..887885efa0f 100644
--- a/hw/usb/hcd-uhci.c
+++ b/hw/usb/hcd-uhci.c
@@ -30,6 +30,7 @@
 #include "hw/hw.h"
 #include "hw/usb.h"
 #include "hw/usb/uhci-regs.h"
+#include "migration/vmstate.h"
 #include "hw/pci/pci.h"
 #include "qapi/error.h"
 #include "qemu/timer.h"
diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
index 5894a186633..fc674761002 100644
--- a/hw/usb/hcd-xhci.c
+++ b/hw/usb/hcd-xhci.c
@@ -25,6 +25,7 @@
 #include "qemu/module.h"
 #include "qemu/queue.h"
 #include "hw/usb.h"
+#include "migration/vmstate.h"
 #include "hw/pci/pci.h"
 #include "hw/pci/msi.h"
 #include "hw/pci/msix.h"
diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c
index 83ebc516202..6f5338832aa 100644
--- a/hw/usb/host-libusb.c
+++ b/hw/usb/host-libusb.c
@@ -40,6 +40,7 @@
 #include <libusb.h>
 
 #include "qapi/error.h"
+#include "migration/vmstate.h"
 #include "monitor/monitor.h"
 #include "qemu/error-report.h"
 #include "qemu/module.h"
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index 846e60f3bb0..84ec3d52197 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -42,6 +42,7 @@
 
 #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/vfio/amd-xgbe.c b/hw/vfio/amd-xgbe.c
index eedd48cfc1d..96bd608b8dd 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 a995b86cd48..d1c86abb763 100644
--- a/hw/vfio/ap.c
+++ b/hw/vfio/ap.c
@@ -25,6 +25,7 @@
 #include "qemu/config-file.h"
 #include "cpu.h"
 #include "kvm_s390x.h"
+#include "migration/vmstate.h"
 #include "sysemu/sysemu.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 59233e8d7e0..87c382e7361 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/pci.c b/hw/vfio/pci.c
index d7a4e1875c0..8a58ad670ce 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -25,6 +25,7 @@
 #include "hw/pci/msi.h"
 #include "hw/pci/msix.h"
 #include "hw/pci/pci_bridge.h"
+#include "migration/vmstate.h"
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "qemu/option.h"
diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
index 708df2ec0d5..2ec9c9f49b4 100644
--- a/hw/vfio/platform.c
+++ b/hw/vfio/platform.c
@@ -20,6 +20,7 @@
 #include <linux/vfio.h>
 
 #include "hw/vfio/vfio-platform.h"
+#include "migration/vmstate.h"
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "qemu/range.h"
diff --git a/hw/watchdog/cmsdk-apb-watchdog.c b/hw/watchdog/cmsdk-apb-watchdog.c
index a79da39dd5e..3140e919591 100644
--- a/hw/watchdog/cmsdk-apb-watchdog.c
+++ b/hw/watchdog/cmsdk-apb-watchdog.c
@@ -31,6 +31,7 @@
 #include "hw/irq.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/wdt_aspeed.c b/hw/watchdog/wdt_aspeed.c
index 57fe24ae6b1..49415f132d4 100644
--- a/hw/watchdog/wdt_aspeed.c
+++ b/hw/watchdog/wdt_aspeed.c
@@ -17,6 +17,7 @@
 #include "hw/misc/aspeed_scu.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 fec046ef094..5b6eb2b09f9 100644
--- a/hw/watchdog/wdt_diag288.c
+++ b/hw/watchdog/wdt_diag288.c
@@ -17,6 +17,7 @@
 #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 6780f01adde..288be8f73cc 100644
--- a/hw/watchdog/wdt_i6300esb.c
+++ b/hw/watchdog/wdt_i6300esb.c
@@ -26,6 +26,7 @@
 #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 e0e5beb99d6..e233945c2e0 100644
--- a/hw/watchdog/wdt_ib700.c
+++ b/hw/watchdog/wdt_ib700.c
@@ -25,6 +25,7 @@
 #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/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c
index 0a2cce3c646..83103974abc 100644
--- a/hw/xtensa/xtfpga.c
+++ b/hw/xtensa/xtfpga.c
@@ -47,6 +47,7 @@
 #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/hw/acpi/tco.h b/include/hw/acpi/tco.h
index 726f840cce0..a1e0da82134 100644
--- a/include/hw/acpi/tco.h
+++ b/include/hw/acpi/tco.h
@@ -11,7 +11,6 @@
 #define HW_ACPI_TCO_H
 
 #include "exec/memory.h"
-#include "migration/vmstate.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/block/flash.h b/include/hw/block/flash.h
index 83a75f31700..1acaf7de802 100644
--- a/include/hw/block/flash.h
+++ b/include/hw/block/flash.h
@@ -4,7 +4,6 @@
 /* NOR flash devices */
 
 #include "exec/memory.h"
-#include "migration/vmstate.h"
 
 /* pflash_cfi01.c */
 
diff --git a/include/hw/hw.h b/include/hw/hw.h
index 86ff26b7122..e547008b178 100644
--- a/include/hw/hw.h
+++ b/include/hw/hw.h
@@ -8,7 +8,6 @@
 
 #include "qom/object.h"
 #include "exec/memory.h"
-#include "migration/vmstate.h"
 
 void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
 
diff --git a/include/hw/input/hid.h b/include/hw/input/hid.h
index 2127c7ce454..6a9d7bf466e 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/pci/shpc.h b/include/hw/pci/shpc.h
index bd8204f64e3..d5683b73990 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/ppc/spapr_ovec.h b/include/hw/ppc/spapr_ovec.h
index 5de5ecf5ded..7891e9caac5 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/ptimer.h b/include/hw/ptimer.h
index 2b866902aae..9c770552290 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/virtio/virtio.h b/include/hw/virtio/virtio.h
index b189788cb26..5da749e2b02 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -18,6 +18,7 @@
 #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/migration/cpu.h b/include/migration/cpu.h
index 2a22470d0d5..65abe3c8cc0 100644
--- a/include/migration/cpu.h
+++ b/include/migration/cpu.h
@@ -5,6 +5,7 @@
 
 #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
diff --git a/include/net/net.h b/include/net/net.h
index acf0451fc4f..e175ba9677d 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/qemu/fifo8.h b/include/qemu/fifo8.h
index 24b364462d0..489c3542911 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/migration/savevm.c b/migration/savevm.c
index 79ed44d4757..89e8f4c1801 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"
diff --git a/target/s390x/machine.c b/target/s390x/machine.c
index 1e9526e9376..12a2cd65b0e 100644
--- a/target/s390x/machine.c
+++ b/target/s390x/machine.c
@@ -19,6 +19,7 @@
 #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/util/fifo8.c b/util/fifo8.c
index a9aa20a9f72..a5dd789ce50 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)
-- 
GitLab