[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 02/11] vmstate: register all VMStateDescriptions
From: |
Anthony Liguori |
Subject: |
[Qemu-devel] [PATCH 02/11] vmstate: register all VMStateDescriptions |
Date: |
Tue, 22 Mar 2011 19:16:07 -0500 |
This is a purely mechanical change. It was generated with a simple python
script and a little bit of hand tuning. Without this, we can only see
VMStateDescriptions that are part of an active device which means that we have
to test migration with a VM configured with every possible device.
Signed-off-by: Anthony Liguori <address@hidden>
---
hw/ac97.c | 8 ++++++
hw/acpi_piix4.c | 8 ++++++
hw/apb_pci.c | 8 ++++++
hw/apic.c | 8 ++++++
hw/arm_sysctl.c | 8 ++++++
hw/bonito.c | 8 ++++++
hw/cirrus_vga.c | 8 ++++++
hw/cs4231.c | 8 ++++++
hw/cs4231a.c | 8 ++++++
hw/dec_pci.c | 8 ++++++
hw/e1000.c | 8 ++++++
hw/eccmemctl.c | 8 ++++++
hw/eeprom93xx.c | 8 ++++++
hw/es1370.c | 8 ++++++
hw/escc.c | 8 ++++++
hw/esp.c | 8 ++++++
hw/fdc.c | 16 ++++++++++++
hw/fw_cfg.c | 8 ++++++
hw/gus.c | 8 ++++++
hw/hda-audio.c | 8 ++++++
hw/hpet.c | 8 ++++++
hw/hw.h | 3 ++
hw/i2c.c | 8 ++++++
hw/i8254.c | 8 ++++++
hw/i8259.c | 8 ++++++
hw/intel-hda.c | 8 ++++++
hw/ioapic.c | 8 ++++++
hw/ioh3420.c | 8 ++++++
hw/kvmclock.c | 8 ++++++
hw/lance.c | 8 ++++++
hw/lm32_juart.c | 8 ++++++
hw/lm32_pic.c | 8 ++++++
hw/lm32_sys.c | 8 ++++++
hw/lm32_timer.c | 8 ++++++
hw/lm32_uart.c | 8 ++++++
hw/lm832x.c | 8 ++++++
hw/lsi53c895a.c | 8 ++++++
hw/marvell_88w8618_audio.c | 8 ++++++
hw/max7310.c | 8 ++++++
hw/mc146818rtc.c | 8 ++++++
hw/mst_fpga.c | 8 ++++++
hw/musicpal.c | 56 ++++++++++++++++++++++++++++++++++++++++++++
hw/ne2000.c | 8 ++++++
hw/pc.c | 8 ++++++
hw/pci.c | 8 ++++++
hw/pckbd.c | 16 ++++++++++++
hw/pcnet-pci.c | 8 ++++++
hw/piix_pci.c | 8 ++++++
hw/pl031.c | 8 ++++++
hw/pl050.c | 16 ++++++++++++
hw/pl080.c | 16 ++++++++++++
hw/pl110.c | 16 ++++++++++++
hw/pl190.c | 8 ++++++
hw/ps2.c | 16 ++++++++++++
hw/pxa2xx.c | 16 ++++++++++++
hw/pxa2xx_dma.c | 8 ++++++
hw/pxa2xx_pic.c | 8 ++++++
hw/pxa2xx_timer.c | 16 ++++++++++++
hw/qxl.c | 16 ++++++++++++
hw/rtl8139.c | 16 ++++++++++++
hw/sb16.c | 8 ++++++
hw/sbi.c | 8 ++++++
hw/serial.c | 10 ++++++-
hw/slavio_intctl.c | 8 ++++++
hw/slavio_misc.c | 8 ++++++
hw/slavio_timer.c | 8 ++++++
hw/smc91c111.c | 8 ++++++
hw/sparc32_dma.c | 8 ++++++
hw/spitz.c | 32 +++++++++++++++++++++++++
hw/ssd0303.c | 8 ++++++
hw/sun4c_intctl.c | 8 ++++++
hw/sun4m_iommu.c | 8 ++++++
hw/tcx.c | 8 ++++++
hw/tmp105.c | 8 ++++++
hw/twl92230.c | 8 ++++++
hw/usb-hid.c | 8 ++++++
hw/usb-hub.c | 8 ++++++
hw/usb-uhci.c | 8 ++++++
hw/versatilepb.c | 8 ++++++
hw/vga-isa.c | 8 ++++++
hw/vga-pci.c | 8 ++++++
hw/vmmouse.c | 8 ++++++
hw/vmware_vga.c | 8 ++++++
hw/vt82c686.c | 16 ++++++++++++
hw/wdt_i6300esb.c | 8 ++++++
hw/wdt_ib700.c | 8 ++++++
hw/wm8750.c | 8 ++++++
hw/xio3130_downstream.c | 8 ++++++
hw/xio3130_upstream.c | 8 ++++++
hw/zaurus.c | 8 ++++++
module.h | 2 +
savevm.c | 4 +++
target-i386/machine.c | 8 ++++++
93 files changed, 889 insertions(+), 2 deletions(-)
diff --git a/hw/ac97.c b/hw/ac97.c
index d71072d..bf818b8 100644
--- a/hw/ac97.c
+++ b/hw/ac97.c
@@ -1343,6 +1343,14 @@ static PCIDeviceInfo ac97_info = {
.init = ac97_initfn,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_ac97);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void ac97_register (void)
{
pci_qdev_register (&ac97_info);
diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
index 0b2bc97..aaa009b 100644
--- a/hw/acpi_piix4.c
+++ b/hw/acpi_piix4.c
@@ -460,6 +460,14 @@ static PCIDeviceInfo piix4_pm_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_acpi);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void piix4_pm_register(void)
{
pci_qdev_register(&piix4_pm_info);
diff --git a/hw/apb_pci.c b/hw/apb_pci.c
index 84e9af7..e5d7954 100644
--- a/hw/apb_pci.c
+++ b/hw/apb_pci.c
@@ -472,6 +472,14 @@ static PCIDeviceInfo pbm_pci_bridge_info = {
.is_bridge = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pci_device);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void pbm_register_devices(void)
{
sysbus_register_withprop(&pbm_host_info);
diff --git a/hw/apic.c b/hw/apic.c
index 9febf40..cdf64dc 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -1025,6 +1025,14 @@ static SysBusDeviceInfo apic_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_apic);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void apic_register_devices(void)
{
sysbus_register_withprop(&apic_info);
diff --git a/hw/arm_sysctl.c b/hw/arm_sysctl.c
index 9225b58..e11b1ee 100644
--- a/hw/arm_sysctl.c
+++ b/hw/arm_sysctl.c
@@ -363,6 +363,14 @@ static SysBusDeviceInfo arm_sysctl_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_arm_sysctl);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void arm_sysctl_register_devices(void)
{
sysbus_register_withprop(&arm_sysctl_info);
diff --git a/hw/bonito.c b/hw/bonito.c
index 65a4a63..6ec0777 100644
--- a/hw/bonito.c
+++ b/hw/bonito.c
@@ -798,6 +798,14 @@ static PCIDeviceInfo bonito_info = {
.init = bonito_initfn,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_bonito);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static SysBusDeviceInfo bonito_pcihost_info = {
.init = bonito_pcihost_initfn,
.qdev.name = "Bonito-pcihost",
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 2724f7b..97a1c4c 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -3145,6 +3145,14 @@ static PCIDeviceInfo cirrus_vga_info = {
.config_write = pci_cirrus_write_config,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pci_cirrus_vga);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void cirrus_vga_register(void)
{
pci_qdev_register(&cirrus_vga_info);
diff --git a/hw/cs4231.c b/hw/cs4231.c
index a65b697..d9601d0 100644
--- a/hw/cs4231.c
+++ b/hw/cs4231.c
@@ -167,6 +167,14 @@ static SysBusDeviceInfo cs4231_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_cs4231);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void cs4231_register_devices(void)
{
sysbus_register_withprop(&cs4231_info);
diff --git a/hw/cs4231a.c b/hw/cs4231a.c
index 598f032..e036faf 100644
--- a/hw/cs4231a.c
+++ b/hw/cs4231a.c
@@ -679,6 +679,14 @@ static ISADeviceInfo cs4231a_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_cs4231a);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void cs4231a_register (void)
{
isa_qdev_register (&cs4231a_info);
diff --git a/hw/dec_pci.c b/hw/dec_pci.c
index bf88f2a..4924a43 100644
--- a/hw/dec_pci.c
+++ b/hw/dec_pci.c
@@ -76,6 +76,14 @@ static PCIDeviceInfo dec_21154_pci_bridge_info = {
.is_bridge = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pci_device);
+}
+
+vmstate_init(init_vmstate_description_0);
+
PCIBus *pci_dec_21154_init(PCIBus *parent_bus, int devfn)
{
PCIDevice *dev;
diff --git a/hw/e1000.c b/hw/e1000.c
index 2a4d5c7..e906c65 100644
--- a/hw/e1000.c
+++ b/hw/e1000.c
@@ -1212,6 +1212,14 @@ static PCIDeviceInfo e1000_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_e1000);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void e1000_register_devices(void)
{
pci_qdev_register(&e1000_info);
diff --git a/hw/eccmemctl.c b/hw/eccmemctl.c
index 2bda87b..770b6aa 100644
--- a/hw/eccmemctl.c
+++ b/hw/eccmemctl.c
@@ -323,6 +323,14 @@ static SysBusDeviceInfo ecc_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_ecc);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void ecc_register_devices(void)
{
diff --git a/hw/eeprom93xx.c b/hw/eeprom93xx.c
index 660b28f..cfa695d 100644
--- a/hw/eeprom93xx.c
+++ b/hw/eeprom93xx.c
@@ -320,6 +320,14 @@ eeprom_t *eeprom93xx_new(DeviceState *dev, uint16_t nwords)
return eeprom;
}
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description(void)
+{
+ register_vmstate_description(&vmstate_eeprom);
+}
+
+vmstate_init(init_vmstate_description);
+
void eeprom93xx_free(DeviceState *dev, eeprom_t *eeprom)
{
/* Destroy EEPROM. */
diff --git a/hw/es1370.c b/hw/es1370.c
index 40cb48c..d2f3671 100644
--- a/hw/es1370.c
+++ b/hw/es1370.c
@@ -1045,6 +1045,14 @@ static PCIDeviceInfo es1370_info = {
.init = es1370_initfn,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_es1370);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void es1370_register (void)
{
pci_qdev_register (&es1370_info);
diff --git a/hw/escc.c b/hw/escc.c
index f6fd919..08062e7 100644
--- a/hw/escc.c
+++ b/hw/escc.c
@@ -953,6 +953,14 @@ static SysBusDeviceInfo escc_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_escc);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void escc_register_devices(void)
{
sysbus_register_withprop(&escc_info);
diff --git a/hw/esp.c b/hw/esp.c
index fa9d2a2..977890e 100644
--- a/hw/esp.c
+++ b/hw/esp.c
@@ -743,6 +743,14 @@ static SysBusDeviceInfo esp_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_esp);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void esp_register_devices(void)
{
sysbus_register_withprop(&esp_info);
diff --git a/hw/fdc.c b/hw/fdc.c
index 9fdbc75..4b02dce 100644
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -1938,6 +1938,14 @@ static ISADeviceInfo isa_fdc_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_isa_fdc);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static const VMStateDescription vmstate_sysbus_fdc ={
.name = "fdc",
.version_id = 2,
@@ -1961,6 +1969,14 @@ static SysBusDeviceInfo sysbus_fdc_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_sysbus_fdc);
+}
+
+vmstate_init(init_vmstate_description_1);
+
static SysBusDeviceInfo sun4m_fdc_info = {
.init = sun4m_fdc_init1,
.qdev.name = "SUNW,fdtwo",
diff --git a/hw/fw_cfg.c b/hw/fw_cfg.c
index 85c8c3c..67603a9 100644
--- a/hw/fw_cfg.c
+++ b/hw/fw_cfg.c
@@ -399,6 +399,14 @@ static SysBusDeviceInfo fw_cfg_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_fw_cfg);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void fw_cfg_register_devices(void)
{
sysbus_register_withprop(&fw_cfg_info);
diff --git a/hw/gus.c b/hw/gus.c
index ff9e7c7..8e35ffb 100644
--- a/hw/gus.c
+++ b/hw/gus.c
@@ -315,6 +315,14 @@ static ISADeviceInfo gus_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_gus);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void gus_register (void)
{
isa_qdev_register (&gus_info);
diff --git a/hw/hda-audio.c b/hw/hda-audio.c
index c699d6f..f384de6 100644
--- a/hw/hda-audio.c
+++ b/hw/hda-audio.c
@@ -906,6 +906,14 @@ static HDACodecDeviceInfo hda_audio_info_output = {
.stream = hda_audio_stream,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_hda_audio);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static HDACodecDeviceInfo hda_audio_info_duplex = {
.qdev.name = "hda-duplex",
.qdev.desc = "HDA Audio Codec, duplex",
diff --git a/hw/hpet.c b/hw/hpet.c
index ef9a2a0..9010f45 100644
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -737,6 +737,14 @@ static SysBusDeviceInfo hpet_device_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_hpet);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void hpet_register_device(void)
{
sysbus_register_withprop(&hpet_device_info);
diff --git a/hw/hw.h b/hw/hw.h
index 1b09039..81bbd7a 100644
--- a/hw/hw.h
+++ b/hw/hw.h
@@ -914,4 +914,7 @@ int vmstate_register_with_alias_id(DeviceState *dev, int
instance_id,
int required_for_version);
void vmstate_unregister(DeviceState *dev, const VMStateDescription *vmsd,
void *opaque);
+
+void register_vmstate_description(const VMStateDescription *desc);
+
#endif
diff --git a/hw/i2c.c b/hw/i2c.c
index f80d12d..85ae1f9 100644
--- a/hw/i2c.c
+++ b/hw/i2c.c
@@ -66,6 +66,14 @@ i2c_bus *i2c_init_bus(DeviceState *parent, const char *name)
return bus;
}
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description(void)
+{
+ register_vmstate_description(&vmstate_i2c_bus);
+}
+
+vmstate_init(init_vmstate_description);
+
void i2c_set_slave_address(i2c_slave *dev, uint8_t address)
{
dev->address = address;
diff --git a/hw/i8254.c b/hw/i8254.c
index a9ca9f6..261f860 100644
--- a/hw/i8254.c
+++ b/hw/i8254.c
@@ -539,6 +539,14 @@ static ISADeviceInfo pit_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pit);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void pit_register(void)
{
isa_qdev_register(&pit_info);
diff --git a/hw/i8259.c b/hw/i8259.c
index 84d330d..388e145 100644
--- a/hw/i8259.c
+++ b/hw/i8259.c
@@ -487,6 +487,14 @@ static void pic_init1(int io_addr, int elcr_addr, PicState
*s)
qemu_register_reset(pic_reset, s);
}
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description(void)
+{
+ register_vmstate_description(&vmstate_pic);
+}
+
+vmstate_init(init_vmstate_description);
+
void pic_info(Monitor *mon)
{
int i;
diff --git a/hw/intel-hda.c b/hw/intel-hda.c
index b0b1d12..a32d28d 100644
--- a/hw/intel-hda.c
+++ b/hw/intel-hda.c
@@ -1283,6 +1283,14 @@ static PCIDeviceInfo intel_hda_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_intel_hda);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void intel_hda_register(void)
{
pci_qdev_register(&intel_hda_info);
diff --git a/hw/ioapic.c b/hw/ioapic.c
index 569327d..8ac6d34 100644
--- a/hw/ioapic.c
+++ b/hw/ioapic.c
@@ -350,6 +350,14 @@ static SysBusDeviceInfo ioapic_info = {
.qdev.no_user = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_ioapic);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void ioapic_register_devices(void)
{
sysbus_register_withprop(&ioapic_info);
diff --git a/hw/ioh3420.c b/hw/ioh3420.c
index 95adf09..7b0b801 100644
--- a/hw/ioh3420.c
+++ b/hw/ioh3420.c
@@ -229,6 +229,14 @@ static PCIDeviceInfo ioh3420_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_ioh3420);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void ioh3420_register(void)
{
pci_qdev_register(&ioh3420_info);
diff --git a/hw/kvmclock.c b/hw/kvmclock.c
index b6ceddf..f9c05cd 100644
--- a/hw/kvmclock.c
+++ b/hw/kvmclock.c
@@ -99,6 +99,14 @@ static SysBusDeviceInfo kvmclock_info = {
.init = kvmclock_init,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&kvmclock_vmsd);
+}
+
+vmstate_init(init_vmstate_description_0);
+
/* Note: Must be called after VCPU initialization. */
void kvmclock_create(void)
{
diff --git a/hw/lance.c b/hw/lance.c
index ddb1cbb..32d81ca 100644
--- a/hw/lance.c
+++ b/hw/lance.c
@@ -153,6 +153,14 @@ static SysBusDeviceInfo lance_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_lance);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void lance_register_devices(void)
{
sysbus_register_withprop(&lance_info);
diff --git a/hw/lm32_juart.c b/hw/lm32_juart.c
index fddcf7e..a49308c 100644
--- a/hw/lm32_juart.c
+++ b/hw/lm32_juart.c
@@ -142,6 +142,14 @@ static SysBusDeviceInfo lm32_juart_info = {
.qdev.reset = juart_reset,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_lm32_juart);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void lm32_juart_register(void)
{
sysbus_register_withprop(&lm32_juart_info);
diff --git a/hw/lm32_pic.c b/hw/lm32_pic.c
index 02941a7..de4f310 100644
--- a/hw/lm32_pic.c
+++ b/hw/lm32_pic.c
@@ -182,6 +182,14 @@ static SysBusDeviceInfo lm32_pic_info = {
.qdev.reset = pic_reset,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_lm32_pic);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void lm32_pic_register(void)
{
sysbus_register_withprop(&lm32_pic_info);
diff --git a/hw/lm32_sys.c b/hw/lm32_sys.c
index 427b05f..4c718b7 100644
--- a/hw/lm32_sys.c
+++ b/hw/lm32_sys.c
@@ -153,6 +153,14 @@ static SysBusDeviceInfo lm32_sys_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_lm32_sys);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void lm32_sys_register(void)
{
sysbus_register_withprop(&lm32_sys_info);
diff --git a/hw/lm32_timer.c b/hw/lm32_timer.c
index ed28984..445cfde 100644
--- a/hw/lm32_timer.c
+++ b/hw/lm32_timer.c
@@ -214,6 +214,14 @@ static SysBusDeviceInfo lm32_timer_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_lm32_timer);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void lm32_timer_register(void)
{
sysbus_register_withprop(&lm32_timer_info);
diff --git a/hw/lm32_uart.c b/hw/lm32_uart.c
index e225087..32c6ffd 100644
--- a/hw/lm32_uart.c
+++ b/hw/lm32_uart.c
@@ -280,6 +280,14 @@ static SysBusDeviceInfo lm32_uart_info = {
.qdev.reset = uart_reset,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_lm32_uart);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void lm32_uart_register(void)
{
sysbus_register_withprop(&lm32_uart_info);
diff --git a/hw/lm832x.c b/hw/lm832x.c
index 590a4cc..ac097bd 100644
--- a/hw/lm832x.c
+++ b/hw/lm832x.c
@@ -504,6 +504,14 @@ static I2CSlaveInfo lm8323_info = {
.send = lm_i2c_tx
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_lm_kbd);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void lm832x_register_devices(void)
{
i2c_register_slave(&lm8323_info);
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index 84a4992..699261b 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -2211,6 +2211,14 @@ static PCIDeviceInfo lsi_info = {
.exit = lsi_scsi_uninit,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_lsi_scsi);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void lsi53c895a_register_devices(void)
{
pci_qdev_register(&lsi_info);
diff --git a/hw/marvell_88w8618_audio.c b/hw/marvell_88w8618_audio.c
index 3eff925..25437ea 100644
--- a/hw/marvell_88w8618_audio.c
+++ b/hw/marvell_88w8618_audio.c
@@ -291,6 +291,14 @@ static SysBusDeviceInfo mv88w8618_audio_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&mv88w8618_audio_vmsd);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void mv88w8618_register_devices(void)
{
sysbus_register_withprop(&mv88w8618_audio_info);
diff --git a/hw/max7310.c b/hw/max7310.c
index c1bdb2e..12b8769 100644
--- a/hw/max7310.c
+++ b/hw/max7310.c
@@ -196,6 +196,14 @@ static I2CSlaveInfo max7310_info = {
.send = max7310_tx
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_max7310);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void max7310_register_devices(void)
{
i2c_register_slave(&max7310_info);
diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c
index 1c9a706..7b80c18 100644
--- a/hw/mc146818rtc.c
+++ b/hw/mc146818rtc.c
@@ -650,6 +650,14 @@ static ISADeviceInfo mc146818rtc_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_rtc);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void mc146818rtc_register(void)
{
isa_qdev_register(&mc146818rtc_info);
diff --git a/hw/mst_fpga.c b/hw/mst_fpga.c
index a04355c..c5111b9 100644
--- a/hw/mst_fpga.c
+++ b/hw/mst_fpga.c
@@ -248,6 +248,14 @@ static SysBusDeviceInfo mst_fpga_info = {
.qdev.vmsd = &vmstate_mst_fpga_regs,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_mst_fpga_regs);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void mst_fpga_register(void)
{
sysbus_register_withprop(&mst_fpga_info);
diff --git a/hw/musicpal.c b/hw/musicpal.c
index d98aa8d..773b93c 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -423,6 +423,14 @@ static SysBusDeviceInfo mv88w8618_eth_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&mv88w8618_eth_vmsd);
+}
+
+vmstate_init(init_vmstate_description_0);
+
/* LCD register offsets */
#define MP_LCD_IRQCTRL 0x180
#define MP_LCD_IRQSTAT 0x184
@@ -637,6 +645,14 @@ static SysBusDeviceInfo musicpal_lcd_info = {
.qdev.vmsd = &musicpal_lcd_vmsd,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&musicpal_lcd_vmsd);
+}
+
+vmstate_init(init_vmstate_description_1);
+
/* PIC register offsets */
#define MP_PIC_STATUS 0x00
#define MP_PIC_ENABLE_SET 0x08
@@ -753,6 +769,14 @@ static SysBusDeviceInfo mv88w8618_pic_info = {
.qdev.vmsd = &mv88w8618_pic_vmsd,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_2(void)
+{
+ register_vmstate_description(&mv88w8618_pic_vmsd);
+}
+
+vmstate_init(init_vmstate_description_2);
+
/* PIT register offsets */
#define MP_PIT_TIMER1_LENGTH 0x00
/* ... */
@@ -927,6 +951,14 @@ static SysBusDeviceInfo mv88w8618_pit_info = {
.qdev.vmsd = &mv88w8618_pit_vmsd,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_3(void)
+{
+ register_vmstate_description(&mv88w8618_pit_vmsd);
+}
+
+vmstate_init(init_vmstate_description_3);
+
/* Flash config register offsets */
#define MP_FLASHCFG_CFGR0 0x04
@@ -1004,6 +1036,14 @@ static SysBusDeviceInfo mv88w8618_flashcfg_info = {
.qdev.vmsd = &mv88w8618_flashcfg_vmsd,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_4(void)
+{
+ register_vmstate_description(&mv88w8618_flashcfg_vmsd);
+}
+
+vmstate_init(init_vmstate_description_4);
+
/* Misc register offsets */
#define MP_MISC_BOARD_REVISION 0x18
@@ -1335,6 +1375,14 @@ static SysBusDeviceInfo musicpal_gpio_info = {
.qdev.vmsd = &musicpal_gpio_vmsd,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_5(void)
+{
+ register_vmstate_description(&musicpal_gpio_vmsd);
+}
+
+vmstate_init(init_vmstate_description_5);
+
/* Keyboard codes & masks */
#define KEY_RELEASED 0x80
#define KEY_CODE 0x7f
@@ -1478,6 +1526,14 @@ static SysBusDeviceInfo musicpal_key_info = {
.qdev.vmsd = &musicpal_key_vmsd,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_6(void)
+{
+ register_vmstate_description(&musicpal_key_vmsd);
+}
+
+vmstate_init(init_vmstate_description_6);
+
static struct arm_boot_info musicpal_binfo = {
.loader_start = 0x0,
.board_id = 0x20e,
diff --git a/hw/ne2000.c b/hw/ne2000.c
index 5966359..270578b 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -773,6 +773,14 @@ static PCIDeviceInfo ne2000_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pci_ne2000);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void ne2000_register_devices(void)
{
pci_qdev_register(&ne2000_info);
diff --git a/hw/pc.c b/hw/pc.c
index 6939c04..5211b29 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -497,6 +497,14 @@ static ISADeviceInfo port92_info = {
.init = port92_initfn,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_port92_isa);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void port92_register(void)
{
isa_qdev_register(&port92_info);
diff --git a/hw/pci.c b/hw/pci.c
index 8b76cea..50b9a14 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -269,6 +269,14 @@ void pci_bus_new_inplace(PCIBus *bus, DeviceState *parent,
vmstate_register(NULL, -1, &vmstate_pcibus, bus);
}
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description(void)
+{
+ register_vmstate_description(&vmstate_pcibus);
+}
+
+vmstate_init(init_vmstate_description);
+
PCIBus *pci_bus_new(DeviceState *parent, const char *name, int devfn_min)
{
PCIBus *bus;
diff --git a/hw/pckbd.c b/hw/pckbd.c
index ae65c04..027f69e 100644
--- a/hw/pckbd.c
+++ b/hw/pckbd.c
@@ -433,6 +433,14 @@ void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
qemu_register_reset(kbd_reset, s);
}
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description(void)
+{
+ register_vmstate_description(&vmstate_kbd);
+}
+
+vmstate_init(init_vmstate_description);
+
typedef struct ISAKBDState {
ISADevice dev;
KBDState kbd;
@@ -492,6 +500,14 @@ static ISADeviceInfo i8042_info = {
.init = i8042_initfn,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_kbd_isa);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void i8042_register(void)
{
isa_qdev_register(&i8042_info);
diff --git a/hw/pcnet-pci.c b/hw/pcnet-pci.c
index 339a401..d3c2738 100644
--- a/hw/pcnet-pci.c
+++ b/hw/pcnet-pci.c
@@ -338,6 +338,14 @@ static PCIDeviceInfo pcnet_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pci_pcnet);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void pci_pcnet_register_devices(void)
{
pci_qdev_register(&pcnet_info);
diff --git a/hw/piix_pci.c b/hw/piix_pci.c
index 358da58..1e5f379 100644
--- a/hw/piix_pci.c
+++ b/hw/piix_pci.c
@@ -364,6 +364,14 @@ static PCIDeviceInfo i440fx_info[] = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_piix3);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static SysBusDeviceInfo i440fx_pcihost_info = {
.init = i440fx_pcihost_initfn,
.qdev.name = "i440FX-pcihost",
diff --git a/hw/pl031.c b/hw/pl031.c
index 8c2f9d0..5372e21 100644
--- a/hw/pl031.c
+++ b/hw/pl031.c
@@ -229,6 +229,14 @@ static SysBusDeviceInfo pl031_info = {
.qdev.no_user = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pl031);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void pl031_register_devices(void)
{
sysbus_register_withprop(&pl031_info);
diff --git a/hw/pl050.c b/hw/pl050.c
index b155cc0..4c2b279 100644
--- a/hw/pl050.c
+++ b/hw/pl050.c
@@ -171,6 +171,14 @@ static SysBusDeviceInfo pl050_kbd_info = {
.qdev.vmsd = &vmstate_pl050,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pl050);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static SysBusDeviceInfo pl050_mouse_info = {
.init = pl050_init_mouse,
.qdev.name = "pl050_mouse",
@@ -178,6 +186,14 @@ static SysBusDeviceInfo pl050_mouse_info = {
.qdev.vmsd = &vmstate_pl050,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_pl050);
+}
+
+vmstate_init(init_vmstate_description_1);
+
static void pl050_register_devices(void)
{
sysbus_register_withprop(&pl050_kbd_info);
diff --git a/hw/pl080.c b/hw/pl080.c
index 901f04a..1c6198b 100644
--- a/hw/pl080.c
+++ b/hw/pl080.c
@@ -388,6 +388,14 @@ static SysBusDeviceInfo pl080_info = {
.qdev.no_user = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pl080);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static SysBusDeviceInfo pl081_info = {
.init = pl081_init,
.qdev.name = "pl081",
@@ -396,6 +404,14 @@ static SysBusDeviceInfo pl081_info = {
.qdev.no_user = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_pl080);
+}
+
+vmstate_init(init_vmstate_description_1);
+
/* The PL080 and PL081 are the same except for the number of channels
they implement (8 and 2 respectively). */
static void pl080_register_devices(void)
diff --git a/hw/pl110.c b/hw/pl110.c
index 06d2dfa..9073a40 100644
--- a/hw/pl110.c
+++ b/hw/pl110.c
@@ -405,6 +405,14 @@ static SysBusDeviceInfo pl110_info = {
.qdev.no_user = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pl110);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static SysBusDeviceInfo pl110_versatile_info = {
.init = pl110_versatile_init,
.qdev.name = "pl110_versatile",
@@ -413,6 +421,14 @@ static SysBusDeviceInfo pl110_versatile_info = {
.qdev.no_user = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_pl110);
+}
+
+vmstate_init(init_vmstate_description_1);
+
static void pl110_register_devices(void)
{
sysbus_register_withprop(&pl110_info);
diff --git a/hw/pl190.c b/hw/pl190.c
index 75f2ba1..a03db5c 100644
--- a/hw/pl190.c
+++ b/hw/pl190.c
@@ -270,6 +270,14 @@ static SysBusDeviceInfo pl190_info = {
.qdev.no_user = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pl190);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void pl190_register_devices(void)
{
sysbus_register_withprop(&pl190_info);
diff --git a/hw/ps2.c b/hw/ps2.c
index 91b73e0..c77d5fc 100644
--- a/hw/ps2.c
+++ b/hw/ps2.c
@@ -615,6 +615,14 @@ void *ps2_kbd_init(void (*update_irq)(void *, int), void
*update_arg)
return s;
}
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_ps2_keyboard);
+}
+
+vmstate_init(init_vmstate_description_0);
+
void *ps2_mouse_init(void (*update_irq)(void *, int), void *update_arg)
{
PS2MouseState *s = (PS2MouseState *)qemu_mallocz(sizeof(PS2MouseState));
@@ -626,3 +634,11 @@ void *ps2_mouse_init(void (*update_irq)(void *, int), void
*update_arg)
qemu_register_reset(ps2_mouse_reset, s);
return s;
}
+
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_ps2_mouse);
+}
+
+vmstate_init(init_vmstate_description_1);
diff --git a/hw/pxa2xx.c b/hw/pxa2xx.c
index 9b95e2c..d8f2943 100644
--- a/hw/pxa2xx.c
+++ b/hw/pxa2xx.c
@@ -1293,6 +1293,14 @@ static SysBusDeviceInfo pxa2xx_rtc_sysbus_info = {
.qdev.vmsd = &vmstate_pxa2xx_rtc_regs,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pxa2xx_rtc_regs);
+}
+
+vmstate_init(init_vmstate_description_0);
+
/* I2C Interface */
typedef struct {
i2c_slave i2c;
@@ -1595,6 +1603,14 @@ static SysBusDeviceInfo pxa2xx_i2c_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_pxa2xx_i2c);
+}
+
+vmstate_init(init_vmstate_description_1);
+
/* PXA Inter-IC Sound Controller */
static void pxa2xx_i2s_reset(PXA2xxI2SState *i2s)
{
diff --git a/hw/pxa2xx_dma.c b/hw/pxa2xx_dma.c
index a67498b..6d5fb56 100644
--- a/hw/pxa2xx_dma.c
+++ b/hw/pxa2xx_dma.c
@@ -561,6 +561,14 @@ static SysBusDeviceInfo pxa2xx_dma_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pxa2xx_dma);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void pxa2xx_dma_register(void)
{
sysbus_register_withprop(&pxa2xx_dma_info);
diff --git a/hw/pxa2xx_pic.c b/hw/pxa2xx_pic.c
index e9a5361..fa6abba 100644
--- a/hw/pxa2xx_pic.c
+++ b/hw/pxa2xx_pic.c
@@ -309,6 +309,14 @@ static SysBusDeviceInfo pxa2xx_pic_info = {
.qdev.vmsd = &vmstate_pxa2xx_pic_regs,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pxa2xx_pic_regs);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void pxa2xx_pic_register(void)
{
sysbus_register_withprop(&pxa2xx_pic_info);
diff --git a/hw/pxa2xx_timer.c b/hw/pxa2xx_timer.c
index f777a21..db0603e 100644
--- a/hw/pxa2xx_timer.c
+++ b/hw/pxa2xx_timer.c
@@ -496,6 +496,14 @@ static SysBusDeviceInfo pxa25x_timer_dev_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_pxa2xx_timer_regs);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static SysBusDeviceInfo pxa27x_timer_dev_info = {
.init = pxa2xx_timer_init,
.qdev.name = "pxa27x-timer",
@@ -510,6 +518,14 @@ static SysBusDeviceInfo pxa27x_timer_dev_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_pxa2xx_timer_regs);
+}
+
+vmstate_init(init_vmstate_description_1);
+
static void pxa2xx_timer_register(void)
{
sysbus_register_withprop(&pxa25x_timer_dev_info);
diff --git a/hw/qxl.c b/hw/qxl.c
index fe4212b..2a0d090 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -1504,6 +1504,14 @@ static PCIDeviceInfo qxl_info_primary = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&qxl_vmstate);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static PCIDeviceInfo qxl_info_secondary = {
.qdev.name = "qxl",
.qdev.desc = "Spice QXL GPU (secondary)",
@@ -1522,6 +1530,14 @@ static PCIDeviceInfo qxl_info_secondary = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&qxl_vmstate);
+}
+
+vmstate_init(init_vmstate_description_1);
+
static void qxl_register(void)
{
pci_qdev_register(&qxl_info_primary);
diff --git a/hw/rtl8139.c b/hw/rtl8139.c
index 0ba51fc..3b2f61e 100644
--- a/hw/rtl8139.c
+++ b/hw/rtl8139.c
@@ -3269,6 +3269,14 @@ static const VMStateDescription vmstate_rtl8139 = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_rtl8139_hotplug_ready);
+}
+
+vmstate_init(init_vmstate_description_0);
+
/***********************************************************/
/* PCI RTL8139 definitions */
@@ -3422,6 +3430,14 @@ static PCIDeviceInfo rtl8139_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_rtl8139);
+}
+
+vmstate_init(init_vmstate_description_1);
+
static void rtl8139_register_devices(void)
{
pci_qdev_register(&rtl8139_info);
diff --git a/hw/sb16.c b/hw/sb16.c
index a76df1b..c98546a 100644
--- a/hw/sb16.c
+++ b/hw/sb16.c
@@ -1413,6 +1413,14 @@ static ISADeviceInfo sb16_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_sb16);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void sb16_register (void)
{
isa_qdev_register (&sb16_info);
diff --git a/hw/sbi.c b/hw/sbi.c
index 53f66f2..53a236c 100644
--- a/hw/sbi.c
+++ b/hw/sbi.c
@@ -140,6 +140,14 @@ static SysBusDeviceInfo sbi_info = {
.qdev.reset = sbi_reset,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_sbi);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void sbi_register_devices(void)
{
sysbus_register_withprop(&sbi_info);
diff --git a/hw/serial.c b/hw/serial.c
index 0ee61dd..c7ba97c 100644
--- a/hw/serial.c
+++ b/hw/serial.c
@@ -804,8 +804,6 @@ SerialState *serial_init(int base, qemu_irq irq, int
baudbase,
s->chr = chr;
serial_init_core(s);
- vmstate_register(NULL, base, &vmstate_serial, s);
-
register_ioport_write(base, 8, 1, serial_ioport_write, s);
register_ioport_read(base, 8, 1, serial_ioport_read, s);
return s;
@@ -971,6 +969,14 @@ static ISADeviceInfo serial_isa_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_isa_serial);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void serial_register_devices(void)
{
isa_qdev_register(&serial_isa_info);
diff --git a/hw/slavio_intctl.c b/hw/slavio_intctl.c
index a83e5b8..8b3bdb5 100644
--- a/hw/slavio_intctl.c
+++ b/hw/slavio_intctl.c
@@ -455,6 +455,14 @@ static SysBusDeviceInfo slavio_intctl_info = {
.qdev.reset = slavio_intctl_reset,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_intctl);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void slavio_intctl_register_devices(void)
{
sysbus_register_withprop(&slavio_intctl_info);
diff --git a/hw/slavio_misc.c b/hw/slavio_misc.c
index 198360d..0b415b9 100644
--- a/hw/slavio_misc.c
+++ b/hw/slavio_misc.c
@@ -484,6 +484,14 @@ static SysBusDeviceInfo slavio_misc_info = {
.qdev.reset = slavio_misc_reset,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_misc);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static SysBusDeviceInfo apc_info = {
.init = apc_init1,
.qdev.name = "apc",
diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
index 5511313..0f95113 100644
--- a/hw/slavio_timer.c
+++ b/hw/slavio_timer.c
@@ -416,6 +416,14 @@ static SysBusDeviceInfo slavio_timer_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_slavio_timer);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void slavio_timer_register_devices(void)
{
sysbus_register_withprop(&slavio_timer_info);
diff --git a/hw/smc91c111.c b/hw/smc91c111.c
index dafea5c..63b4507 100644
--- a/hw/smc91c111.c
+++ b/hw/smc91c111.c
@@ -774,6 +774,14 @@ static SysBusDeviceInfo smc91c111_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_smc91c111);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void smc91c111_register_devices(void)
{
sysbus_register_withprop(&smc91c111_info);
diff --git a/hw/sparc32_dma.c b/hw/sparc32_dma.c
index e75694b..d8be398 100644
--- a/hw/sparc32_dma.c
+++ b/hw/sparc32_dma.c
@@ -297,6 +297,14 @@ static SysBusDeviceInfo sparc32_dma_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_dma);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void sparc32_dma_register_devices(void)
{
sysbus_register_withprop(&sparc32_dma_info);
diff --git a/hw/spitz.c b/hw/spitz.c
index 006f7a9..1078486 100644
--- a/hw/spitz.c
+++ b/hw/spitz.c
@@ -1043,6 +1043,14 @@ static SysBusDeviceInfo sl_nand_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_sl_nand_info);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static VMStateDescription vmstate_spitz_kbd = {
.name = "spitz-keyboard",
.version_id = 1,
@@ -1067,6 +1075,14 @@ static SysBusDeviceInfo spitz_keyboard_info = {
},
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_spitz_kbd);
+}
+
+vmstate_init(init_vmstate_description_1);
+
static const VMStateDescription vmstate_corgi_ssp_regs = {
.name = "corgi-ssp",
.version_id = 1,
@@ -1086,6 +1102,14 @@ static SSISlaveInfo corgi_ssp_info = {
.transfer = corgi_ssp_transfer
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_2(void)
+{
+ register_vmstate_description(&vmstate_corgi_ssp_regs);
+}
+
+vmstate_init(init_vmstate_description_2);
+
static const VMStateDescription vmstate_spitz_lcdtg_regs = {
.name = "spitz-lcdtg",
.version_id = 1,
@@ -1106,6 +1130,14 @@ static SSISlaveInfo spitz_lcdtg_info = {
.transfer = spitz_lcdtg_transfer
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_3(void)
+{
+ register_vmstate_description(&vmstate_spitz_lcdtg_regs);
+}
+
+vmstate_init(init_vmstate_description_3);
+
static void spitz_register_devices(void)
{
ssi_register_slave(&corgi_ssp_info);
diff --git a/hw/ssd0303.c b/hw/ssd0303.c
index 108c068..dc3012d 100644
--- a/hw/ssd0303.c
+++ b/hw/ssd0303.c
@@ -304,6 +304,14 @@ static I2CSlaveInfo ssd0303_info = {
.send = ssd0303_send
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_ssd0303);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void ssd0303_register_devices(void)
{
i2c_register_slave(&ssd0303_info);
diff --git a/hw/sun4c_intctl.c b/hw/sun4c_intctl.c
index 5c7fdef..025ea92 100644
--- a/hw/sun4c_intctl.c
+++ b/hw/sun4c_intctl.c
@@ -216,6 +216,14 @@ static SysBusDeviceInfo sun4c_intctl_info = {
.qdev.reset = sun4c_intctl_reset,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_sun4c_intctl);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void sun4c_intctl_register_devices(void)
{
sysbus_register_withprop(&sun4c_intctl_info);
diff --git a/hw/sun4m_iommu.c b/hw/sun4m_iommu.c
index bba69ee..bb24412 100644
--- a/hw/sun4m_iommu.c
+++ b/hw/sun4m_iommu.c
@@ -370,6 +370,14 @@ static SysBusDeviceInfo iommu_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_iommu);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void iommu_register_devices(void)
{
sysbus_register_withprop(&iommu_info);
diff --git a/hw/tcx.c b/hw/tcx.c
index 0e32830..40a771b 100644
--- a/hw/tcx.c
+++ b/hw/tcx.c
@@ -643,6 +643,14 @@ static SysBusDeviceInfo tcx_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_tcx);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void tcx_register_devices(void)
{
sysbus_register_withprop(&tcx_info);
diff --git a/hw/tmp105.c b/hw/tmp105.c
index f7e6f2b..9d3325c 100644
--- a/hw/tmp105.c
+++ b/hw/tmp105.c
@@ -236,6 +236,14 @@ static I2CSlaveInfo tmp105_info = {
.send = tmp105_tx
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_tmp105);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void tmp105_register_devices(void)
{
i2c_register_slave(&tmp105_info);
diff --git a/hw/twl92230.c b/hw/twl92230.c
index 8e74acc..2b570a6 100644
--- a/hw/twl92230.c
+++ b/hw/twl92230.c
@@ -868,6 +868,14 @@ static I2CSlaveInfo twl92230_info = {
.send = menelaus_tx
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_menelaus);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void twl92230_register_devices(void)
{
i2c_register_slave(&twl92230_info);
diff --git a/hw/usb-hid.c b/hw/usb-hid.c
index c25362c..e8fff11 100644
--- a/hw/usb-hid.c
+++ b/hw/usb-hid.c
@@ -999,6 +999,14 @@ static struct USBDeviceInfo hid_info[] = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_usb_kbd);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void usb_hid_register_devices(void)
{
usb_qdev_register_many(hid_info);
diff --git a/hw/usb-hub.c b/hw/usb-hub.c
index 3dd31ba..dfac0ed 100644
--- a/hw/usb-hub.c
+++ b/hw/usb-hub.c
@@ -583,6 +583,14 @@ static struct USBDeviceInfo hub_info = {
.handle_destroy = usb_hub_handle_destroy,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_usb_hub);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void usb_hub_register_devices(void)
{
usb_qdev_register(&hub_info);
diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c
index 346db3e..bc8fc5b 100644
--- a/hw/usb-uhci.c
+++ b/hw/usb-uhci.c
@@ -1207,6 +1207,14 @@ static PCIDeviceInfo uhci_info[] = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_uhci);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void uhci_register(void)
{
pci_qdev_register_many(uhci_info);
diff --git a/hw/versatilepb.c b/hw/versatilepb.c
index 9f1bfcf..659359c 100644
--- a/hw/versatilepb.c
+++ b/hw/versatilepb.c
@@ -354,6 +354,14 @@ static SysBusDeviceInfo vpb_sic_info = {
.qdev.no_user = 1,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_vpb_sic);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void versatilepb_register_devices(void)
{
sysbus_register_withprop(&vpb_sic_info);
diff --git a/hw/vga-isa.c b/hw/vga-isa.c
index fde0d56..5f1ef76 100644
--- a/hw/vga-isa.c
+++ b/hw/vga-isa.c
@@ -81,6 +81,14 @@ static ISADeviceInfo vga_info = {
.init = vga_initfn,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_vga_common);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void vga_register(void)
{
isa_qdev_register(&vga_info);
diff --git a/hw/vga-pci.c b/hw/vga-pci.c
index ce9ec45..c91739f 100644
--- a/hw/vga-pci.c
+++ b/hw/vga-pci.c
@@ -116,6 +116,14 @@ static PCIDeviceInfo vga_info = {
.romfile = "vgabios-stdvga.bin",
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_vga_pci);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void vga_register(void)
{
pci_qdev_register(&vga_info);
diff --git a/hw/vmmouse.c b/hw/vmmouse.c
index 1113f33..f2de7d8 100644
--- a/hw/vmmouse.c
+++ b/hw/vmmouse.c
@@ -282,6 +282,14 @@ static ISADeviceInfo vmmouse_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_vmmouse);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void vmmouse_dev_register(void)
{
isa_qdev_register(&vmmouse_info);
diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c
index 4656767..106c9b4 100644
--- a/hw/vmware_vga.c
+++ b/hw/vmware_vga.c
@@ -1318,6 +1318,14 @@ static PCIDeviceInfo vmsvga_info = {
.romfile = "vgabios-vmware.bin",
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_vmware_vga);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void vmsvga_register(void)
{
pci_qdev_register(&vmsvga_info);
diff --git a/hw/vt82c686.c b/hw/vt82c686.c
index 818460d..62b8c63 100644
--- a/hw/vt82c686.c
+++ b/hw/vt82c686.c
@@ -522,6 +522,14 @@ static PCIDeviceInfo via_pm_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_acpi);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void vt82c686b_pm_register(void)
{
pci_qdev_register(&via_pm_info);
@@ -587,6 +595,14 @@ static PCIDeviceInfo via_info = {
.config_write = vt82c686b_write_config,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_1(void)
+{
+ register_vmstate_description(&vmstate_via);
+}
+
+vmstate_init(init_vmstate_description_1);
+
static void vt82c686b_register(void)
{
pci_qdev_register(&via_info);
diff --git a/hw/wdt_i6300esb.c b/hw/wdt_i6300esb.c
index 4a7fba7..99f3c9b 100644
--- a/hw/wdt_i6300esb.c
+++ b/hw/wdt_i6300esb.c
@@ -439,6 +439,14 @@ static PCIDeviceInfo i6300esb_info = {
.init = i6300esb_init,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_i6300esb);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void i6300esb_register_devices(void)
{
watchdog_add_model(&model);
diff --git a/hw/wdt_ib700.c b/hw/wdt_ib700.c
index 81f22d0..4cd24b9 100644
--- a/hw/wdt_ib700.c
+++ b/hw/wdt_ib700.c
@@ -128,6 +128,14 @@ static ISADeviceInfo wdt_ib700_info = {
.init = wdt_ib700_init,
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_ib700);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void wdt_ib700_register_devices(void)
{
watchdog_add_model(&model);
diff --git a/hw/wm8750.c b/hw/wm8750.c
index c9c6744..dc46577 100644
--- a/hw/wm8750.c
+++ b/hw/wm8750.c
@@ -699,6 +699,14 @@ static I2CSlaveInfo wm8750_info = {
.send = wm8750_tx
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_wm8750);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void wm8750_register_devices(void)
{
i2c_register_slave(&wm8750_info);
diff --git a/hw/xio3130_downstream.c b/hw/xio3130_downstream.c
index 5aa6a6b..f6fd902 100644
--- a/hw/xio3130_downstream.c
+++ b/hw/xio3130_downstream.c
@@ -194,6 +194,14 @@ static PCIDeviceInfo xio3130_downstream_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_xio3130_downstream);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void xio3130_downstream_register(void)
{
pci_qdev_register(&xio3130_downstream_info);
diff --git a/hw/xio3130_upstream.c b/hw/xio3130_upstream.c
index a7640f5..0b503ee 100644
--- a/hw/xio3130_upstream.c
+++ b/hw/xio3130_upstream.c
@@ -168,6 +168,14 @@ static PCIDeviceInfo xio3130_upstream_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_xio3130_upstream);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void xio3130_upstream_register(void)
{
pci_qdev_register(&xio3130_upstream_info);
diff --git a/hw/zaurus.c b/hw/zaurus.c
index c24aeb5..6ce61af 100644
--- a/hw/zaurus.c
+++ b/hw/zaurus.c
@@ -236,6 +236,14 @@ static SysBusDeviceInfo scoop_sysbus_info = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description_0(void)
+{
+ register_vmstate_description(&vmstate_scoop_regs);
+}
+
+vmstate_init(init_vmstate_description_0);
+
static void scoop_register(void)
{
sysbus_register_withprop(&scoop_sysbus_info);
diff --git a/module.h b/module.h
index 9263f1c..70c33a5 100644
--- a/module.h
+++ b/module.h
@@ -24,12 +24,14 @@ typedef enum {
MODULE_INIT_BLOCK,
MODULE_INIT_DEVICE,
MODULE_INIT_MACHINE,
+ MODULE_INIT_VMSTATE,
MODULE_INIT_MAX
} module_init_type;
#define block_init(function) module_init(function, MODULE_INIT_BLOCK)
#define device_init(function) module_init(function, MODULE_INIT_DEVICE)
#define machine_init(function) module_init(function, MODULE_INIT_MACHINE)
+#define vmstate_init(function) module_init(function, MODULE_INIT_MACHINE)
void register_module_init(void (*fn)(void), module_init_type type);
diff --git a/savevm.c b/savevm.c
index 03fce62..4a37917 100644
--- a/savevm.c
+++ b/savevm.c
@@ -1285,6 +1285,10 @@ void vmstate_unregister(DeviceState *dev, const
VMStateDescription *vmsd,
}
}
+void register_vmstate_description(const VMStateDescription *desc)
+{
+}
+
static void vmstate_subsection_save(QEMUFile *f, const VMStateDescription
*vmsd,
void *opaque);
static int vmstate_subsection_load(QEMUFile *f, const VMStateDescription *vmsd,
diff --git a/target-i386/machine.c b/target-i386/machine.c
index d78eceb..3a40520 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -504,6 +504,14 @@ static const VMStateDescription vmstate_cpu = {
}
};
+/* Register the VMState Description to support VMState introspection */
+static void init_vmstate_description(void)
+{
+ register_vmstate_description(&vmstate_cpu);
+}
+
+vmstate_init(init_vmstate_description);
+
void cpu_save(QEMUFile *f, void *opaque)
{
vmstate_save_state(f, &vmstate_cpu, opaque);
--
1.7.0.4
- Re: [Qemu-devel] [PATCH 01/11] Add hard build dependency on glib, (continued)
[Qemu-devel] [PATCH 08/11] fw_cfg: make sure all VMState fields are unique., Anthony Liguori, 2011/03/22
[Qemu-devel] [PATCH 06/11] fdc: fix migration of non-ISA fdc devices, Anthony Liguori, 2011/03/22
[Qemu-devel] [PATCH 07/11] eeprom93xx: Use the new hack macro to avoid duplicate field names, Anthony Liguori, 2011/03/22
[Qemu-devel] [PATCH 02/11] vmstate: register all VMStateDescriptions,
Anthony Liguori <=
[Qemu-devel] [PATCH 05/11] vga-isa: fix migration by breaking it, Anthony Liguori, 2011/03/22
[Qemu-devel] [PATCH 09/11] pckbd: make non-ISA pckbd use a unique name, Anthony Liguori, 2011/03/22
[Qemu-devel] [PATCH 11/11] test-vmstate: add test case to verify we don't change VMState, Anthony Liguori, 2011/03/22