Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 340e01248478ba8b78a6d4d1809b1eff > files > 763

kvm-83-270.el5_11.src.rpm

From 9a75505440f1f9cbdc4775e821efbe2292161477 Mon Sep 17 00:00:00 2001
From: Juan Quintela <quintela@redhat.com>
Date: Tue, 22 Dec 2009 17:05:53 -0200
Subject: [PATCH 06/16] savevm: add version_id to all savevm functions

RH-Author: Juan Quintela <quintela@redhat.com>
Message-id: <41fae05779a0986be097ad8eaa8f2014377427e2.1261501421.git.quintela@redhat.com>
Patchwork-id: 5891
O-Subject: [PATCH 01/11] savevm: add version_id to all savevm functions
Bugzilla: 541731
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
RH-Acked-by: Dor Laor <dlaor@redhat.com>
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
RH-Acked-by: Marcelo Tosatti <mtosatti@redhat.com>

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 qemu/audio/audio.c          |    2 +-
 qemu/exec.c                 |    2 +-
 qemu/hw/ac97.c              |    2 +-
 qemu/hw/acpi.c              |    2 +-
 qemu/hw/adb.c               |    4 ++--
 qemu/hw/ads7846.c           |    2 +-
 qemu/hw/apic.c              |    4 ++--
 qemu/hw/arm_gic.c           |    2 +-
 qemu/hw/arm_timer.c         |    4 ++--
 qemu/hw/armv7m_nvic.c       |    2 +-
 qemu/hw/cirrus_vga.c        |    2 +-
 qemu/hw/cs4231.c            |    2 +-
 qemu/hw/cs4231a.c           |    2 +-
 qemu/hw/cuda.c              |    2 +-
 qemu/hw/dma.c               |    2 +-
 qemu/hw/e1000.c             |    2 +-
 qemu/hw/eccmemctl.c         |    2 +-
 qemu/hw/eepro100.c          |    2 +-
 qemu/hw/eeprom93xx.c        |    2 +-
 qemu/hw/es1370.c            |    2 +-
 qemu/hw/escc.c              |    2 +-
 qemu/hw/esp.c               |    2 +-
 qemu/hw/fdc.c               |    2 +-
 qemu/hw/fw_cfg.c            |    2 +-
 qemu/hw/gus.c               |    2 +-
 qemu/hw/heathrow_pic.c      |    2 +-
 qemu/hw/hpet.c              |    2 +-
 qemu/hw/hw.h                |    2 +-
 qemu/hw/hypercall.c         |    2 +-
 qemu/hw/i2c.c               |    2 +-
 qemu/hw/i8254-kvm.c         |    4 ++--
 qemu/hw/i8254.c             |    2 +-
 qemu/hw/i8254.h             |    2 +-
 qemu/hw/i8259.c             |    2 +-
 qemu/hw/ide.c               |    6 +++---
 qemu/hw/iommu.c             |    2 +-
 qemu/hw/lm832x.c            |    2 +-
 qemu/hw/m48t59.c            |    2 +-
 qemu/hw/mac_dbdma.c         |    2 +-
 qemu/hw/mac_nvram.c         |    2 +-
 qemu/hw/max111x.c           |    2 +-
 qemu/hw/max7310.c           |    2 +-
 qemu/hw/mc146818rtc.c       |    4 ++--
 qemu/hw/mipsnet.c           |    2 +-
 qemu/hw/mst_fpga.c          |    2 +-
 qemu/hw/nand.c              |    2 +-
 qemu/hw/ne2000.c            |    2 +-
 qemu/hw/pci.c               |    2 +-
 qemu/hw/pckbd.c             |    2 +-
 qemu/hw/pcnet.c             |    2 +-
 qemu/hw/piix_pci.c          |    4 ++--
 qemu/hw/pl011.c             |    2 +-
 qemu/hw/pl022.c             |    2 +-
 qemu/hw/pl061.c             |    2 +-
 qemu/hw/ppc4xx_pci.c        |    2 +-
 qemu/hw/ps2.c               |    4 ++--
 qemu/hw/pxa2xx.c            |   16 ++++++++--------
 qemu/hw/pxa2xx_dma.c        |    2 +-
 qemu/hw/pxa2xx_gpio.c       |    2 +-
 qemu/hw/pxa2xx_keypad.c     |    2 +-
 qemu/hw/pxa2xx_lcd.c        |    2 +-
 qemu/hw/pxa2xx_mmci.c       |    2 +-
 qemu/hw/pxa2xx_pic.c        |    2 +-
 qemu/hw/pxa2xx_timer.c      |    2 +-
 qemu/hw/qxl.c               |    4 ++--
 qemu/hw/rtl8139.c           |    2 +-
 qemu/hw/sb16.c              |    2 +-
 qemu/hw/sbi.c               |    2 +-
 qemu/hw/serial.c            |    2 +-
 qemu/hw/slavio_intctl.c     |    2 +-
 qemu/hw/slavio_misc.c       |    2 +-
 qemu/hw/slavio_timer.c      |    2 +-
 qemu/hw/sparc32_dma.c       |    2 +-
 qemu/hw/spitz.c             |    6 +++---
 qemu/hw/ssd0303.c           |    2 +-
 qemu/hw/ssd0323.c           |    2 +-
 qemu/hw/ssi-sd.c            |    2 +-
 qemu/hw/stellaris.c         |   10 +++++-----
 qemu/hw/stellaris_enet.c    |    2 +-
 qemu/hw/stellaris_input.c   |    2 +-
 qemu/hw/sun4c_intctl.c      |    2 +-
 qemu/hw/tcx.c               |    2 +-
 qemu/hw/tmp105.c            |    2 +-
 qemu/hw/tsc2005.c           |    2 +-
 qemu/hw/tsc210x.c           |    2 +-
 qemu/hw/twl92230.c          |    2 +-
 qemu/hw/usb-uhci.c          |    2 +-
 qemu/hw/vga.c               |    2 +-
 qemu/hw/virtio-balloon.c    |    2 +-
 qemu/hw/virtio-blk.c        |    2 +-
 qemu/hw/virtio-net.c        |    2 +-
 qemu/hw/vmmouse.c           |    2 +-
 qemu/hw/vmware_vga.c        |    2 +-
 qemu/hw/wm8750.c            |    2 +-
 qemu/hw/zaurus.c            |    2 +-
 qemu/kvm-tpr-opt.c          |    2 +-
 qemu/qemu-common.h          |    2 +-
 qemu/qemu-kvm-x86.c         |    2 +-
 qemu/savevm.c               |    2 +-
 qemu/slirp/slirp.c          |    4 ++--
 qemu/target-arm/machine.c   |    2 +-
 qemu/target-cris/machine.c  |    2 +-
 qemu/target-i386/machine.c  |    2 +-
 qemu/target-ia64/machine.c  |    2 +-
 qemu/target-mips/machine.c  |    2 +-
 qemu/target-ppc/machine.c   |    2 +-
 qemu/target-sparc/machine.c |    2 +-
 qemu/vl.c                   |    2 +-
 108 files changed, 132 insertions(+), 132 deletions(-)

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 qemu/audio/audio.c          |    2 +-
 qemu/exec.c                 |    2 +-
 qemu/hw/ac97.c              |    2 +-
 qemu/hw/acpi.c              |    2 +-
 qemu/hw/adb.c               |    4 ++--
 qemu/hw/ads7846.c           |    2 +-
 qemu/hw/apic.c              |    4 ++--
 qemu/hw/arm_gic.c           |    2 +-
 qemu/hw/arm_timer.c         |    4 ++--
 qemu/hw/armv7m_nvic.c       |    2 +-
 qemu/hw/cirrus_vga.c        |    2 +-
 qemu/hw/cs4231.c            |    2 +-
 qemu/hw/cs4231a.c           |    2 +-
 qemu/hw/cuda.c              |    2 +-
 qemu/hw/dma.c               |    2 +-
 qemu/hw/e1000.c             |    2 +-
 qemu/hw/eccmemctl.c         |    2 +-
 qemu/hw/eepro100.c          |    2 +-
 qemu/hw/eeprom93xx.c        |    2 +-
 qemu/hw/es1370.c            |    2 +-
 qemu/hw/escc.c              |    2 +-
 qemu/hw/esp.c               |    2 +-
 qemu/hw/fdc.c               |    2 +-
 qemu/hw/fw_cfg.c            |    2 +-
 qemu/hw/gus.c               |    2 +-
 qemu/hw/heathrow_pic.c      |    2 +-
 qemu/hw/hpet.c              |    2 +-
 qemu/hw/hw.h                |    2 +-
 qemu/hw/hypercall.c         |    2 +-
 qemu/hw/i2c.c               |    2 +-
 qemu/hw/i8254-kvm.c         |    4 ++--
 qemu/hw/i8254.c             |    2 +-
 qemu/hw/i8254.h             |    2 +-
 qemu/hw/i8259.c             |    2 +-
 qemu/hw/ide.c               |    6 +++---
 qemu/hw/iommu.c             |    2 +-
 qemu/hw/lm832x.c            |    2 +-
 qemu/hw/m48t59.c            |    2 +-
 qemu/hw/mac_dbdma.c         |    2 +-
 qemu/hw/mac_nvram.c         |    2 +-
 qemu/hw/max111x.c           |    2 +-
 qemu/hw/max7310.c           |    2 +-
 qemu/hw/mc146818rtc.c       |    4 ++--
 qemu/hw/mipsnet.c           |    2 +-
 qemu/hw/mst_fpga.c          |    2 +-
 qemu/hw/nand.c              |    2 +-
 qemu/hw/ne2000.c            |    2 +-
 qemu/hw/pci.c               |    2 +-
 qemu/hw/pckbd.c             |    2 +-
 qemu/hw/pcnet.c             |    2 +-
 qemu/hw/piix_pci.c          |    4 ++--
 qemu/hw/pl011.c             |    2 +-
 qemu/hw/pl022.c             |    2 +-
 qemu/hw/pl061.c             |    2 +-
 qemu/hw/ppc4xx_pci.c        |    2 +-
 qemu/hw/ps2.c               |    4 ++--
 qemu/hw/pxa2xx.c            |   16 ++++++++--------
 qemu/hw/pxa2xx_dma.c        |    2 +-
 qemu/hw/pxa2xx_gpio.c       |    2 +-
 qemu/hw/pxa2xx_keypad.c     |    2 +-
 qemu/hw/pxa2xx_lcd.c        |    2 +-
 qemu/hw/pxa2xx_mmci.c       |    2 +-
 qemu/hw/pxa2xx_pic.c        |    2 +-
 qemu/hw/pxa2xx_timer.c      |    2 +-
 qemu/hw/qxl.c               |    4 ++--
 qemu/hw/rtl8139.c           |    2 +-
 qemu/hw/sb16.c              |    2 +-
 qemu/hw/sbi.c               |    2 +-
 qemu/hw/serial.c            |    2 +-
 qemu/hw/slavio_intctl.c     |    2 +-
 qemu/hw/slavio_misc.c       |    2 +-
 qemu/hw/slavio_timer.c      |    2 +-
 qemu/hw/sparc32_dma.c       |    2 +-
 qemu/hw/spitz.c             |    6 +++---
 qemu/hw/ssd0303.c           |    2 +-
 qemu/hw/ssd0323.c           |    2 +-
 qemu/hw/ssi-sd.c            |    2 +-
 qemu/hw/stellaris.c         |   10 +++++-----
 qemu/hw/stellaris_enet.c    |    2 +-
 qemu/hw/stellaris_input.c   |    2 +-
 qemu/hw/sun4c_intctl.c      |    2 +-
 qemu/hw/tcx.c               |    2 +-
 qemu/hw/tmp105.c            |    2 +-
 qemu/hw/tsc2005.c           |    2 +-
 qemu/hw/tsc210x.c           |    2 +-
 qemu/hw/twl92230.c          |    2 +-
 qemu/hw/usb-uhci.c          |    2 +-
 qemu/hw/vga.c               |    2 +-
 qemu/hw/virtio-balloon.c    |    2 +-
 qemu/hw/virtio-blk.c        |    2 +-
 qemu/hw/virtio-net.c        |    2 +-
 qemu/hw/vmmouse.c           |    2 +-
 qemu/hw/vmware_vga.c        |    2 +-
 qemu/hw/wm8750.c            |    2 +-
 qemu/hw/zaurus.c            |    2 +-
 qemu/kvm-tpr-opt.c          |    2 +-
 qemu/qemu-common.h          |    2 +-
 qemu/qemu-kvm-x86.c         |    2 +-
 qemu/savevm.c               |    2 +-
 qemu/slirp/slirp.c          |    4 ++--
 qemu/target-arm/machine.c   |    2 +-
 qemu/target-cris/machine.c  |    2 +-
 qemu/target-i386/machine.c  |    2 +-
 qemu/target-ia64/machine.c  |    2 +-
 qemu/target-mips/machine.c  |    2 +-
 qemu/target-ppc/machine.c   |    2 +-
 qemu/target-sparc/machine.c |    2 +-
 qemu/vl.c                   |    2 +-
 108 files changed, 132 insertions(+), 132 deletions(-)

diff --git a/qemu/audio/audio.c b/qemu/audio/audio.c
index 9c069ab..cc38a64 100644
--- a/qemu/audio/audio.c
+++ b/qemu/audio/audio.c
@@ -1680,7 +1680,7 @@ static void audio_atexit (void)
     }
 }
 
-static void audio_save (QEMUFile *f, void *opaque)
+static void audio_save (QEMUFile *f, void *opaque, int version_id)
 {
     (void) f;
     (void) opaque;
diff --git a/qemu/exec.c b/qemu/exec.c
index 4f83643..81b4618 100644
--- a/qemu/exec.c
+++ b/qemu/exec.c
@@ -519,7 +519,7 @@ void cpu_exec_init_all(unsigned long tb_size)
 
 #define CPU_COMMON_SAVE_VERSION 1
 
-static void cpu_common_save(QEMUFile *f, void *opaque)
+static void cpu_common_save(QEMUFile *f, void *opaque, int version_id)
 {
     CPUState *env = opaque;
 
diff --git a/qemu/hw/ac97.c b/qemu/hw/ac97.c
index dc9a165..75678b0 100644
--- a/qemu/hw/ac97.c
+++ b/qemu/hw/ac97.c
@@ -1184,7 +1184,7 @@ static void po_callback (void *opaque, int free)
     transfer_audio (opaque, PO_INDEX, free);
 }
 
-static void ac97_save (QEMUFile *f, void *opaque)
+static void ac97_save (QEMUFile *f, void *opaque, int version_id)
 {
     size_t i;
     uint8_t active[LAST_INDEX];
diff --git a/qemu/hw/acpi.c b/qemu/hw/acpi.c
index b05bef0..0c338ef 100644
--- a/qemu/hw/acpi.c
+++ b/qemu/hw/acpi.c
@@ -443,7 +443,7 @@ static void pm_write_config(PCIDevice *d,
         pm_io_space_update((PIIX4PMState *)d);
 }
 
-static void pm_save(QEMUFile* f,void *opaque)
+static void pm_save(QEMUFile* f,void *opaque, int version_id)
 {
     PIIX4PMState *s = opaque;
 
diff --git a/qemu/hw/adb.c b/qemu/hw/adb.c
index 61a3cdf..c442ada 100644
--- a/qemu/hw/adb.c
+++ b/qemu/hw/adb.c
@@ -262,7 +262,7 @@ static int adb_kbd_request(ADBDevice *d, uint8_t *obuf,
     return olen;
 }
 
-static void adb_kbd_save(QEMUFile *f, void *opaque)
+static void adb_kbd_save(QEMUFile *f, void *opaque, int version_id)
 {
     KBDState *s = (KBDState *)opaque;
 
@@ -440,7 +440,7 @@ static int adb_mouse_reset(ADBDevice *d)
     return 0;
 }
 
-static void adb_mouse_save(QEMUFile *f, void *opaque)
+static void adb_mouse_save(QEMUFile *f, void *opaque, int version_id)
 {
     MouseState *s = (MouseState *)opaque;
 
diff --git a/qemu/hw/ads7846.c b/qemu/hw/ads7846.c
index b39c00f..7e7fd2f 100644
--- a/qemu/hw/ads7846.c
+++ b/qemu/hw/ads7846.c
@@ -111,7 +111,7 @@ static void ads7846_ts_event(void *opaque,
     }
 }
 
-static void ads7846_save(QEMUFile *f, void *opaque)
+static void ads7846_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct ads7846_state_s *s = (struct ads7846_state_s *) opaque;
     int i;
diff --git a/qemu/hw/apic.c b/qemu/hw/apic.c
index e0bb474..3439bba 100644
--- a/qemu/hw/apic.c
+++ b/qemu/hw/apic.c
@@ -896,7 +896,7 @@ void qemu_kvm_load_lapic(CPUState *env)
 #endif
 }
 
-static void apic_save(QEMUFile *f, void *opaque)
+static void apic_save(QEMUFile *f, void *opaque, int version_id)
 {
     APICState *s = opaque;
     int i;
@@ -1229,7 +1229,7 @@ static void kvm_kernel_ioapic_load_from_user(IOAPICState *s)
 #endif
 }
 
-static void ioapic_save(QEMUFile *f, void *opaque)
+static void ioapic_save(QEMUFile *f, void *opaque, int version_id)
 {
     IOAPICState *s = opaque;
     int i;
diff --git a/qemu/hw/arm_gic.c b/qemu/hw/arm_gic.c
index f36f147..1ad8615 100644
--- a/qemu/hw/arm_gic.c
+++ b/qemu/hw/arm_gic.c
@@ -645,7 +645,7 @@ static void gic_reset(gic_state *s)
 #endif
 }
 
-static void gic_save(QEMUFile *f, void *opaque)
+static void gic_save(QEMUFile *f, void *opaque, int version_id)
 {
     gic_state *s = (gic_state *)opaque;
     int i;
diff --git a/qemu/hw/arm_timer.c b/qemu/hw/arm_timer.c
index c93f333..ff5ac56 100644
--- a/qemu/hw/arm_timer.c
+++ b/qemu/hw/arm_timer.c
@@ -143,7 +143,7 @@ static void arm_timer_tick(void *opaque)
     arm_timer_update(s);
 }
 
-static void arm_timer_save(QEMUFile *f, void *opaque)
+static void arm_timer_save(QEMUFile *f, void *opaque, int version_id)
 {
     arm_timer_state *s = (arm_timer_state *)opaque;
     qemu_put_be32(f, s->control);
@@ -238,7 +238,7 @@ static CPUWriteMemoryFunc *sp804_writefn[] = {
    sp804_write
 };
 
-static void sp804_save(QEMUFile *f, void *opaque)
+static void sp804_save(QEMUFile *f, void *opaque, int version_id)
 {
     sp804_state *s = (sp804_state *)opaque;
     qemu_put_be32(f, s->level[0]);
diff --git a/qemu/hw/armv7m_nvic.c b/qemu/hw/armv7m_nvic.c
index 86d0cf8..c268f86 100644
--- a/qemu/hw/armv7m_nvic.c
+++ b/qemu/hw/armv7m_nvic.c
@@ -366,7 +366,7 @@ static void nvic_writel(void *opaque, uint32_t offset, uint32_t value)
     }
 }
 
-static void nvic_save(QEMUFile *f, void *opaque)
+static void nvic_save(QEMUFile *f, void *opaque, int version_id)
 {
     nvic_state *s = (nvic_state *)opaque;
 
diff --git a/qemu/hw/cirrus_vga.c b/qemu/hw/cirrus_vga.c
index 8d74c8d..edeced6 100644
--- a/qemu/hw/cirrus_vga.c
+++ b/qemu/hw/cirrus_vga.c
@@ -3092,7 +3092,7 @@ static CPUWriteMemoryFunc *cirrus_mmio_write[3] = {
 
 /* load/save state */
 
-static void cirrus_vga_save(QEMUFile *f, void *opaque)
+static void cirrus_vga_save(QEMUFile *f, void *opaque, int version_id)
 {
     CirrusVGAState *s = opaque;
 
diff --git a/qemu/hw/cs4231.c b/qemu/hw/cs4231.c
index d53f194..82462cd 100644
--- a/qemu/hw/cs4231.c
+++ b/qemu/hw/cs4231.c
@@ -139,7 +139,7 @@ static CPUWriteMemoryFunc *cs_mem_write[3] = {
     cs_mem_writel,
 };
 
-static void cs_save(QEMUFile *f, void *opaque)
+static void cs_save(QEMUFile *f, void *opaque, int version_id)
 {
     CSState *s = opaque;
     unsigned int i;
diff --git a/qemu/hw/cs4231a.c b/qemu/hw/cs4231a.c
index 6d04d36..209dffd 100644
--- a/qemu/hw/cs4231a.c
+++ b/qemu/hw/cs4231a.c
@@ -597,7 +597,7 @@ static int cs_dma_read (void *opaque, int nchan, int dma_pos, int dma_len)
     return dma_pos;
 }
 
-static void cs_save(QEMUFile *f, void *opaque)
+static void cs_save(QEMUFile *f, void *opaque, int version_id)
 {
     CSState *s = opaque;
     unsigned int i;
diff --git a/qemu/hw/cuda.c b/qemu/hw/cuda.c
index 92fd69b..768c477 100644
--- a/qemu/hw/cuda.c
+++ b/qemu/hw/cuda.c
@@ -643,7 +643,7 @@ static void cuda_save_timer(QEMUFile *f, CUDATimer *s)
         qemu_put_timer(f, s->timer);
 }
 
-static void cuda_save(QEMUFile *f, void *opaque)
+static void cuda_save(QEMUFile *f, void *opaque, int version_id)
 {
     CUDAState *s = (CUDAState *)opaque;
 
diff --git a/qemu/hw/dma.c b/qemu/hw/dma.c
index e58ab6d..a82f7f7 100644
--- a/qemu/hw/dma.c
+++ b/qemu/hw/dma.c
@@ -502,7 +502,7 @@ static void dma_init2(struct dma_cont *d, int base, int dshift,
     }
 }
 
-static void dma_save (QEMUFile *f, void *opaque)
+static void dma_save (QEMUFile *f, void *opaque, int version_id)
 {
     struct dma_cont *d = opaque;
     int i;
diff --git a/qemu/hw/e1000.c b/qemu/hw/e1000.c
index 48b5d84..a31db58 100644
--- a/qemu/hw/e1000.c
+++ b/qemu/hw/e1000.c
@@ -888,7 +888,7 @@ static const struct {
 enum { MAC_NARRAYS = ARRAY_SIZE(mac_regarraystosave) };
 
 static void
-nic_save(QEMUFile *f, void *opaque)
+nic_save(QEMUFile *f, void *opaque, int version_id)
 {
     E1000State *s = (E1000State *)opaque;
     int i, j;
diff --git a/qemu/hw/eccmemctl.c b/qemu/hw/eccmemctl.c
index 434f49e..9df7fed 100644
--- a/qemu/hw/eccmemctl.c
+++ b/qemu/hw/eccmemctl.c
@@ -281,7 +281,7 @@ static int ecc_load(QEMUFile *f, void *opaque, int version_id)
     return 0;
 }
 
-static void ecc_save(QEMUFile *f, void *opaque)
+static void ecc_save(QEMUFile *f, void *opaque, int version_id)
 {
     ECCState *s = opaque;
     int i;
diff --git a/qemu/hw/eepro100.c b/qemu/hw/eepro100.c
index 4860aab..d9df755 100644
--- a/qemu/hw/eepro100.c
+++ b/qemu/hw/eepro100.c
@@ -1668,7 +1668,7 @@ static int nic_load(QEMUFile * f, void *opaque, int version_id)
     return 0;
 }
 
-static void nic_save(QEMUFile * f, void *opaque)
+static void nic_save(QEMUFile * f, void *opaque, int version_id)
 {
     EEPRO100State *s = (EEPRO100State *) opaque;
     int i;
diff --git a/qemu/hw/eeprom93xx.c b/qemu/hw/eeprom93xx.c
index 6de970a..888cf47 100644
--- a/qemu/hw/eeprom93xx.c
+++ b/qemu/hw/eeprom93xx.c
@@ -90,7 +90,7 @@ struct _eeprom_t {
 
 /* Code for saving and restoring of EEPROM state. */
 
-static void eeprom_save(QEMUFile *f, void *opaque)
+static void eeprom_save(QEMUFile *f, void *opaque, int version_id)
 {
     /* Save EEPROM data. */
     unsigned address;
diff --git a/qemu/hw/es1370.c b/qemu/hw/es1370.c
index bad237d..cd97c5c 100644
--- a/qemu/hw/es1370.c
+++ b/qemu/hw/es1370.c
@@ -931,7 +931,7 @@ static void es1370_map (PCIDevice *pci_dev, int region_num,
     register_ioport_read (addr, 0x40, 4, es1370_readl, s);
 }
 
-static void es1370_save (QEMUFile *f, void *opaque)
+static void es1370_save (QEMUFile *f, void *opaque, int version_id)
 {
     ES1370State *s = opaque;
     size_t i;
diff --git a/qemu/hw/escc.c b/qemu/hw/escc.c
index d68f90b..60f57ed 100644
--- a/qemu/hw/escc.c
+++ b/qemu/hw/escc.c
@@ -676,7 +676,7 @@ static void escc_save_chn(QEMUFile *f, ChannelState *s)
     qemu_put_buffer(f, s->rregs, SERIAL_REGS);
 }
 
-static void escc_save(QEMUFile *f, void *opaque)
+static void escc_save(QEMUFile *f, void *opaque, int version_id)
 {
     SerialState *s = opaque;
 
diff --git a/qemu/hw/esp.c b/qemu/hw/esp.c
index c3dbae0..7a923ae 100644
--- a/qemu/hw/esp.c
+++ b/qemu/hw/esp.c
@@ -575,7 +575,7 @@ static CPUWriteMemoryFunc *esp_mem_write[3] = {
     esp_mem_writeb,
 };
 
-static void esp_save(QEMUFile *f, void *opaque)
+static void esp_save(QEMUFile *f, void *opaque, int version_id)
 {
     ESPState *s = opaque;
 
diff --git a/qemu/hw/fdc.c b/qemu/hw/fdc.c
index b1b4bc7..dd87a13 100644
--- a/qemu/hw/fdc.c
+++ b/qemu/hw/fdc.c
@@ -620,7 +620,7 @@ static void fd_save (QEMUFile *f, fdrive_t *fd)
     qemu_put_8s(f, &fd->sect);
 }
 
-static void fdc_save (QEMUFile *f, void *opaque)
+static void fdc_save (QEMUFile *f, void *opaque, int version_id)
 {
     fdctrl_t *s = opaque;
     uint8_t tmp;
diff --git a/qemu/hw/fw_cfg.c b/qemu/hw/fw_cfg.c
index 4333ed9..471e8dc 100644
--- a/qemu/hw/fw_cfg.c
+++ b/qemu/hw/fw_cfg.c
@@ -164,7 +164,7 @@ static void fw_cfg_reset(void *opaque)
     fw_cfg_select(s, 0);
 }
 
-static void fw_cfg_save(QEMUFile *f, void *opaque)
+static void fw_cfg_save(QEMUFile *f, void *opaque, int version_id)
 {
     FWCfgState *s = opaque;
 
diff --git a/qemu/hw/gus.c b/qemu/hw/gus.c
index 860a47c..7671018 100644
--- a/qemu/hw/gus.c
+++ b/qemu/hw/gus.c
@@ -220,7 +220,7 @@ static int GUS_read_DMA (void *opaque, int nchan, int dma_pos, int dma_len)
     return dma_len;
 }
 
-static void GUS_save (QEMUFile *f, void *opaque)
+static void GUS_save (QEMUFile *f, void *opaque, int version_id)
 {
     GUSState *s = opaque;
 
diff --git a/qemu/hw/heathrow_pic.c b/qemu/hw/heathrow_pic.c
index f0518bb..4f71479 100644
--- a/qemu/hw/heathrow_pic.c
+++ b/qemu/hw/heathrow_pic.c
@@ -173,7 +173,7 @@ static void heathrow_pic_save_one(QEMUFile *f, HeathrowPIC *s)
     qemu_put_be32s(f, &s->level_triggered);
 }
 
-static void heathrow_pic_save(QEMUFile *f, void *opaque)
+static void heathrow_pic_save(QEMUFile *f, void *opaque, int version_id)
 {
     HeathrowPICS *s = (HeathrowPICS *)opaque;
 
diff --git a/qemu/hw/hpet.c b/qemu/hw/hpet.c
index 7df2d05..57337ac 100644
--- a/qemu/hw/hpet.c
+++ b/qemu/hw/hpet.c
@@ -158,7 +158,7 @@ static void update_irq(struct HPETTimer *timer)
     }
 }
 
-static void hpet_save(QEMUFile *f, void *opaque)
+static void hpet_save(QEMUFile *f, void *opaque, int version_id)
 {
     HPETState *s = opaque;
     int i;
diff --git a/qemu/hw/hw.h b/qemu/hw/hw.h
index b993364..3809f57 100644
--- a/qemu/hw/hw.h
+++ b/qemu/hw/hw.h
@@ -228,7 +228,7 @@ static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv)
 int64_t qemu_ftell(QEMUFile *f);
 int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence);
 
-typedef void SaveStateHandler(QEMUFile *f, void *opaque);
+typedef void SaveStateHandler(QEMUFile *f, void *opaque, int version_id);
 typedef int SaveLiveStateHandler(QEMUFile *f, int stage, void *opaque);
 typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
 
diff --git a/qemu/hw/hypercall.c b/qemu/hw/hypercall.c
index 70db438..1536ffd 100644
--- a/qemu/hw/hypercall.c
+++ b/qemu/hw/hypercall.c
@@ -227,7 +227,7 @@ static void hypercall_update_irq(HypercallState *s)
     qemu_set_irq(s->pci_dev->irq[s->pci_dev->config[0x3d]-1], irq_level != 0);
 }
 
-static void hc_save(QEMUFile* f,void* opaque)
+static void hc_save(QEMUFile* f,void* opaque, int version_id)
 {
     HypercallState* s=(HypercallState*)opaque;
 
diff --git a/qemu/hw/i2c.c b/qemu/hw/i2c.c
index 2d0dd71..ad5fb90 100644
--- a/qemu/hw/i2c.c
+++ b/qemu/hw/i2c.c
@@ -17,7 +17,7 @@ struct i2c_bus
     int saved_address;
 };
 
-static void i2c_bus_save(QEMUFile *f, void *opaque)
+static void i2c_bus_save(QEMUFile *f, void *opaque, int version_id)
 {
     i2c_bus *bus = (i2c_bus *)opaque;
 
diff --git a/qemu/hw/i8254-kvm.c b/qemu/hw/i8254-kvm.c
index 127b347..a84ac90 100644
--- a/qemu/hw/i8254-kvm.c
+++ b/qemu/hw/i8254-kvm.c
@@ -30,7 +30,7 @@
 
 static PITState pit_state;
 
-static void kvm_pit_save(QEMUFile *f, void *opaque)
+static void kvm_pit_save(QEMUFile *f, void *opaque, int version_id)
 {
     PITState *s = opaque;
     struct kvm_pit_state pit;
@@ -58,7 +58,7 @@ static void kvm_pit_save(QEMUFile *f, void *opaque)
 	sc->count_load_time = c->count_load_time;
     }
 
-    pit_save(f, s);
+    pit_save(f, s, version_id);
 }
 
 static int kvm_pit_load(QEMUFile *f, void *opaque, int version_id)
diff --git a/qemu/hw/i8254.c b/qemu/hw/i8254.c
index e6be0cd..06d1711 100644
--- a/qemu/hw/i8254.c
+++ b/qemu/hw/i8254.c
@@ -384,7 +384,7 @@ static void pit_irq_timer(void *opaque)
     pit_irq_timer_update(s, s->next_transition_time);
 }
 
-void pit_save(QEMUFile *f, void *opaque)
+void pit_save(QEMUFile *f, void *opaque, int version_id)
 {
     PITState *pit = opaque;
     PITChannelState *s;
diff --git a/qemu/hw/i8254.h b/qemu/hw/i8254.h
index ee68ab5..8fe460d 100644
--- a/qemu/hw/i8254.h
+++ b/qemu/hw/i8254.h
@@ -57,7 +57,7 @@ struct PITState {
     PITChannelState channels[3];
 };
 
-void pit_save(QEMUFile *f, void *opaque);
+void pit_save(QEMUFile *f, void *opaque, int version_id);
 
 int pit_load(QEMUFile *f, void *opaque, int version_id);
 
diff --git a/qemu/hw/i8259.c b/qemu/hw/i8259.c
index 9da4360..5f738f3 100644
--- a/qemu/hw/i8259.c
+++ b/qemu/hw/i8259.c
@@ -541,7 +541,7 @@ static void kvm_kernel_pic_load_from_user(PicState *s)
 #endif
 }
 
-static void pic_save(QEMUFile *f, void *opaque)
+static void pic_save(QEMUFile *f, void *opaque, int version_id)
 {
     PicState *s = opaque;
 
diff --git a/qemu/hw/ide.c b/qemu/hw/ide.c
index 9dd5a0b..fa83bab 100644
--- a/qemu/hw/ide.c
+++ b/qemu/hw/ide.c
@@ -3211,7 +3211,7 @@ static void bmdma_map(PCIDevice *pci_dev, int region_num,
     }
 }
 
-static void pci_ide_save(QEMUFile* f, void *opaque)
+static void pci_ide_save(QEMUFile* f, void *opaque, int version_id)
 {
     PCIIDEState *d = opaque;
     int i;
@@ -3592,7 +3592,7 @@ static CPUReadMemoryFunc *pmac_ide_read[] = {
     pmac_ide_readl,
 };
 
-static void pmac_ide_save(QEMUFile *f, void *opaque)
+static void pmac_ide_save(QEMUFile *f, void *opaque, int version_id)
 {
     IDEState *s = (IDEState *)opaque;
     uint8_t drive1_selected;
@@ -4014,7 +4014,7 @@ static void md_common_write(void *opaque, uint32_t at, uint16_t value)
     }
 }
 
-static void md_save(QEMUFile *f, void *opaque)
+static void md_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct md_s *s = (struct md_s *) opaque;
     int i;
diff --git a/qemu/hw/iommu.c b/qemu/hw/iommu.c
index 82a4932..02803a8 100644
--- a/qemu/hw/iommu.c
+++ b/qemu/hw/iommu.c
@@ -326,7 +326,7 @@ void sparc_iommu_memory_rw(void *opaque, target_phys_addr_t addr,
     }
 }
 
-static void iommu_save(QEMUFile *f, void *opaque)
+static void iommu_save(QEMUFile *f, void *opaque, int version_id)
 {
     IOMMUState *s = opaque;
     int i;
diff --git a/qemu/hw/lm832x.c b/qemu/hw/lm832x.c
index dd94310..1a5999f 100644
--- a/qemu/hw/lm832x.c
+++ b/qemu/hw/lm832x.c
@@ -412,7 +412,7 @@ static int lm_i2c_tx(i2c_slave *i2c, uint8_t data)
     return 0;
 }
 
-static void lm_kbd_save(QEMUFile *f, void *opaque)
+static void lm_kbd_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct lm_kbd_s *s = (struct lm_kbd_s *) opaque;
     int i;
diff --git a/qemu/hw/m48t59.c b/qemu/hw/m48t59.c
index c4107dd..fad3f06 100644
--- a/qemu/hw/m48t59.c
+++ b/qemu/hw/m48t59.c
@@ -577,7 +577,7 @@ static CPUReadMemoryFunc *nvram_read[] = {
     &nvram_readl,
 };
 
-static void m48t59_save(QEMUFile *f, void *opaque)
+static void m48t59_save(QEMUFile *f, void *opaque, int version_id)
 {
     m48t59_t *s = opaque;
 
diff --git a/qemu/hw/mac_dbdma.c b/qemu/hw/mac_dbdma.c
index 13fbd7b..c3d8519 100644
--- a/qemu/hw/mac_dbdma.c
+++ b/qemu/hw/mac_dbdma.c
@@ -88,7 +88,7 @@ static CPUReadMemoryFunc *dbdma_read[] = {
     &dbdma_readl,
 };
 
-static void dbdma_save(QEMUFile *f, void *opaque)
+static void dbdma_save(QEMUFile *f, void *opaque, int version_id)
 {
 }
 
diff --git a/qemu/hw/mac_nvram.c b/qemu/hw/mac_nvram.c
index 2c90061..ef7160c 100644
--- a/qemu/hw/mac_nvram.c
+++ b/qemu/hw/mac_nvram.c
@@ -104,7 +104,7 @@ static CPUReadMemoryFunc *nvram_read[] = {
     &macio_nvram_readb,
 };
 
-static void macio_nvram_save(QEMUFile *f, void *opaque)
+static void macio_nvram_save(QEMUFile *f, void *opaque, int version_id)
 {
     MacIONVRAMState *s = (MacIONVRAMState *)opaque;
 
diff --git a/qemu/hw/max111x.c b/qemu/hw/max111x.c
index 15392a2..b16d53b 100644
--- a/qemu/hw/max111x.c
+++ b/qemu/hw/max111x.c
@@ -90,7 +90,7 @@ void max111x_write(void *opaque, uint32_t value)
         qemu_irq_raise(s->interrupt);
 }
 
-static void max111x_save(QEMUFile *f, void *opaque)
+static void max111x_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct max111x_s *s = (struct max111x_s *) opaque;
     int i;
diff --git a/qemu/hw/max7310.c b/qemu/hw/max7310.c
index ee57581..8e959c9 100644
--- a/qemu/hw/max7310.c
+++ b/qemu/hw/max7310.c
@@ -144,7 +144,7 @@ static void max7310_event(i2c_slave *i2c, enum i2c_event event)
     }
 }
 
-static void max7310_save(QEMUFile *f, void *opaque)
+static void max7310_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct max7310_s *s = (struct max7310_s *) opaque;
 
diff --git a/qemu/hw/mc146818rtc.c b/qemu/hw/mc146818rtc.c
index c839acd..d77ee63 100644
--- a/qemu/hw/mc146818rtc.c
+++ b/qemu/hw/mc146818rtc.c
@@ -513,7 +513,7 @@ static void rtc_set_date_from_host(RTCState *s)
     rtc_set_memory(s, REG_IBM_PS2_CENTURY_BYTE, val);
 }
 
-static void rtc_save(QEMUFile *f, void *opaque)
+static void rtc_save(QEMUFile *f, void *opaque, int version_id)
 {
     RTCState *s = opaque;
 
@@ -564,7 +564,7 @@ static int rtc_load(QEMUFile *f, void *opaque, int version_id)
 }
 
 #ifdef TARGET_I386
-static void rtc_save_td(QEMUFile *f, void *opaque)
+static void rtc_save_td(QEMUFile *f, void *opaque, int version_id)
 {
     RTCState *s = opaque;
 
diff --git a/qemu/hw/mipsnet.c b/qemu/hw/mipsnet.c
index 04ce322..8e44004 100644
--- a/qemu/hw/mipsnet.c
+++ b/qemu/hw/mipsnet.c
@@ -199,7 +199,7 @@ static void mipsnet_ioport_write(void *opaque, uint32_t addr, uint32_t val)
     }
 }
 
-static void mipsnet_save(QEMUFile *f, void *opaque)
+static void mipsnet_save(QEMUFile *f, void *opaque, int version_id)
 {
     MIPSnetState *s = opaque;
 
diff --git a/qemu/hw/mst_fpga.c b/qemu/hw/mst_fpga.c
index 9327952..77edaaa 100644
--- a/qemu/hw/mst_fpga.c
+++ b/qemu/hw/mst_fpga.c
@@ -176,7 +176,7 @@ static CPUWriteMemoryFunc *mst_fpga_writefn[] = {
 };
 
 static void
-mst_fpga_save(QEMUFile *f, void *opaque)
+mst_fpga_save(QEMUFile *f, void *opaque, int version_id)
 {
 	struct mst_irq_state *s = (mst_irq_state *) opaque;
 
diff --git a/qemu/hw/nand.c b/qemu/hw/nand.c
index 11f8efc..5df6b94 100644
--- a/qemu/hw/nand.c
+++ b/qemu/hw/nand.c
@@ -277,7 +277,7 @@ static void nand_command(struct nand_flash_s *s)
     }
 }
 
-static void nand_save(QEMUFile *f, void *opaque)
+static void nand_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct nand_flash_s *s = (struct nand_flash_s *) opaque;
     qemu_put_byte(f, s->cle);
diff --git a/qemu/hw/ne2000.c b/qemu/hw/ne2000.c
index e69b5ca..080a5ff 100644
--- a/qemu/hw/ne2000.c
+++ b/qemu/hw/ne2000.c
@@ -644,7 +644,7 @@ static uint32_t ne2000_reset_ioport_read(void *opaque, uint32_t addr)
     return 0;
 }
 
-static void ne2000_save(QEMUFile* f,void* opaque)
+static void ne2000_save(QEMUFile* f,void* opaque, int version_id)
 {
 	NE2000State* s=(NE2000State*)opaque;
         uint32_t tmp;
diff --git a/qemu/hw/pci.c b/qemu/hw/pci.c
index 07e72eb..ec11cfb 100644
--- a/qemu/hw/pci.c
+++ b/qemu/hw/pci.c
@@ -60,7 +60,7 @@ static uint16_t pci_default_sub_device_id = PCI_SUBDEVICE_ID_QEMU;
 static int pci_irq_index;
 static PCIBus *first_bus;
 
-static void pcibus_save(QEMUFile *f, void *opaque)
+static void pcibus_save(QEMUFile *f, void *opaque, int version_id)
 {
     PCIBus *bus = (PCIBus *)opaque;
     int i;
diff --git a/qemu/hw/pckbd.c b/qemu/hw/pckbd.c
index a8a0a3b..71075a2 100644
--- a/qemu/hw/pckbd.c
+++ b/qemu/hw/pckbd.c
@@ -341,7 +341,7 @@ static void kbd_reset(void *opaque)
     s->status = KBD_STAT_CMD | KBD_STAT_UNLOCKED;
 }
 
-static void kbd_save(QEMUFile* f, void* opaque)
+static void kbd_save(QEMUFile* f, void* opaque, int version_id)
 {
     KBDState *s = (KBDState*)opaque;
 
diff --git a/qemu/hw/pcnet.c b/qemu/hw/pcnet.c
index 470d0ed..69fa054 100644
--- a/qemu/hw/pcnet.c
+++ b/qemu/hw/pcnet.c
@@ -1869,7 +1869,7 @@ static uint32_t pcnet_mmio_readl(void *opaque, target_phys_addr_t addr)
 }
 
 
-static void pcnet_save(QEMUFile *f, void *opaque)
+static void pcnet_save(QEMUFile *f, void *opaque, int version_id)
 {
     PCNetState *s = opaque;
     unsigned int i;
diff --git a/qemu/hw/piix_pci.c b/qemu/hw/piix_pci.c
index 2a4e265..acfff95 100644
--- a/qemu/hw/piix_pci.c
+++ b/qemu/hw/piix_pci.c
@@ -143,7 +143,7 @@ static void i440fx_write_config(PCIDevice *d,
         i440fx_update_memory_mappings(d);
 }
 
-static void i440fx_save(QEMUFile* f, void *opaque)
+static void i440fx_save(QEMUFile* f, void *opaque, int version_id)
 {
     PCIDevice *d = opaque;
     int i;
@@ -327,7 +327,7 @@ static void piix4_reset(PCIDevice *d)
     pci_conf[0xae] = 0x00;
 }
 
-static void piix_save(QEMUFile* f, void *opaque)
+static void piix_save(QEMUFile* f, void *opaque, int version_id)
 {
     PCIDevice *d = opaque;
     pci_device_save(d, f);
diff --git a/qemu/hw/pl011.c b/qemu/hw/pl011.c
index 468d48a..a8114a0 100644
--- a/qemu/hw/pl011.c
+++ b/qemu/hw/pl011.c
@@ -235,7 +235,7 @@ static CPUWriteMemoryFunc *pl011_writefn[] = {
    pl011_write
 };
 
-static void pl011_save(QEMUFile *f, void *opaque)
+static void pl011_save(QEMUFile *f, void *opaque, int version_id)
 {
     pl011_state *s = (pl011_state *)opaque;
     int i;
diff --git a/qemu/hw/pl022.c b/qemu/hw/pl022.c
index 90f4f0f..181942b 100644
--- a/qemu/hw/pl022.c
+++ b/qemu/hw/pl022.c
@@ -241,7 +241,7 @@ static CPUWriteMemoryFunc *pl022_writefn[] = {
    pl022_write
 };
 
-static void pl022_save(QEMUFile *f, void *opaque)
+static void pl022_save(QEMUFile *f, void *opaque, int version_id)
 {
     pl022_state *s = (pl022_state *)opaque;
     int i;
diff --git a/qemu/hw/pl061.c b/qemu/hw/pl061.c
index fab99d4..3b190bd 100644
--- a/qemu/hw/pl061.c
+++ b/qemu/hw/pl061.c
@@ -237,7 +237,7 @@ static CPUWriteMemoryFunc *pl061_writefn[] = {
    pl061_write
 };
 
-static void pl061_save(QEMUFile *f, void *opaque)
+static void pl061_save(QEMUFile *f, void *opaque, int version_id)
 {
     pl061_state *s = (pl061_state *)opaque;
 
diff --git a/qemu/hw/ppc4xx_pci.c b/qemu/hw/ppc4xx_pci.c
index b21c2fe..a5f26d4 100644
--- a/qemu/hw/ppc4xx_pci.c
+++ b/qemu/hw/ppc4xx_pci.c
@@ -311,7 +311,7 @@ static void ppc4xx_pci_set_irq(qemu_irq *pci_irqs, int irq_num, int level)
     qemu_set_irq(pci_irqs[irq_num], level);
 }
 
-static void ppc4xx_pci_save(QEMUFile *f, void *opaque)
+static void ppc4xx_pci_save(QEMUFile *f, void *opaque, int version_id)
 {
     PPC4xxPCIState *controller = opaque;
     int i;
diff --git a/qemu/hw/ps2.c b/qemu/hw/ps2.c
index b415316..de31883 100644
--- a/qemu/hw/ps2.c
+++ b/qemu/hw/ps2.c
@@ -640,7 +640,7 @@ static void ps2_common_load (QEMUFile *f, PS2State *s)
     qemu_get_buffer (f, s->queue.data, sizeof (s->queue.data));
 }
 
-static void ps2_kbd_save(QEMUFile* f, void* opaque)
+static void ps2_kbd_save(QEMUFile* f, void* opaque, int version_id)
 {
     PS2KbdState *s = (PS2KbdState*)opaque;
 
@@ -651,7 +651,7 @@ static void ps2_kbd_save(QEMUFile* f, void* opaque)
     qemu_put_byte(f, s->leds);
 }
 
-static void ps2_mouse_save(QEMUFile* f, void* opaque)
+static void ps2_mouse_save(QEMUFile* f, void* opaque, int version_id)
 {
     PS2MouseState *s = (PS2MouseState*)opaque;
 
diff --git a/qemu/hw/pxa2xx.c b/qemu/hw/pxa2xx.c
index b780bad..4108212 100644
--- a/qemu/hw/pxa2xx.c
+++ b/qemu/hw/pxa2xx.c
@@ -145,7 +145,7 @@ static CPUWriteMemoryFunc *pxa2xx_pm_writefn[] = {
     pxa2xx_pm_write,
 };
 
-static void pxa2xx_pm_save(QEMUFile *f, void *opaque)
+static void pxa2xx_pm_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque;
     int i;
@@ -226,7 +226,7 @@ static CPUWriteMemoryFunc *pxa2xx_cm_writefn[] = {
     pxa2xx_cm_write,
 };
 
-static void pxa2xx_cm_save(QEMUFile *f, void *opaque)
+static void pxa2xx_cm_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque;
     int i;
@@ -526,7 +526,7 @@ static CPUWriteMemoryFunc *pxa2xx_mm_writefn[] = {
     pxa2xx_mm_write,
 };
 
-static void pxa2xx_mm_save(QEMUFile *f, void *opaque)
+static void pxa2xx_mm_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque;
     int i;
@@ -822,7 +822,7 @@ static CPUWriteMemoryFunc *pxa2xx_ssp_writefn[] = {
     pxa2xx_ssp_write,
 };
 
-static void pxa2xx_ssp_save(QEMUFile *f, void *opaque)
+static void pxa2xx_ssp_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_ssp_s *s = (struct pxa2xx_ssp_s *) opaque;
     int i;
@@ -1199,7 +1199,7 @@ static void pxa2xx_rtc_init(struct pxa2xx_state_s *s)
     s->rtc_pi    = qemu_new_timer(rt_clock, pxa2xx_rtc_pi_tick,    s);
 }
 
-static void pxa2xx_rtc_save(QEMUFile *f, void *opaque)
+static void pxa2xx_rtc_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque;
 
@@ -1446,7 +1446,7 @@ static CPUWriteMemoryFunc *pxa2xx_i2c_writefn[] = {
     pxa2xx_i2c_write,
 };
 
-static void pxa2xx_i2c_save(QEMUFile *f, void *opaque)
+static void pxa2xx_i2c_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_i2c_s *s = (struct pxa2xx_i2c_s *) opaque;
 
@@ -1658,7 +1658,7 @@ static CPUWriteMemoryFunc *pxa2xx_i2s_writefn[] = {
     pxa2xx_i2s_write,
 };
 
-static void pxa2xx_i2s_save(QEMUFile *f, void *opaque)
+static void pxa2xx_i2s_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_i2s_s *s = (struct pxa2xx_i2s_s *) opaque;
 
@@ -1933,7 +1933,7 @@ static void pxa2xx_fir_event(void *opaque, int event)
 {
 }
 
-static void pxa2xx_fir_save(QEMUFile *f, void *opaque)
+static void pxa2xx_fir_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_fir_s *s = (struct pxa2xx_fir_s *) opaque;
     int i;
diff --git a/qemu/hw/pxa2xx_dma.c b/qemu/hw/pxa2xx_dma.c
index 8c47189..d882555 100644
--- a/qemu/hw/pxa2xx_dma.c
+++ b/qemu/hw/pxa2xx_dma.c
@@ -430,7 +430,7 @@ static CPUWriteMemoryFunc *pxa2xx_dma_writefn[] = {
     pxa2xx_dma_write
 };
 
-static void pxa2xx_dma_save(QEMUFile *f, void *opaque)
+static void pxa2xx_dma_save(QEMUFile *f, void *opaque, , int version_id)
 {
     struct pxa2xx_dma_state_s *s = (struct pxa2xx_dma_state_s *) opaque;
     int i;
diff --git a/qemu/hw/pxa2xx_gpio.c b/qemu/hw/pxa2xx_gpio.c
index 0f3dcb1..4153e49 100644
--- a/qemu/hw/pxa2xx_gpio.c
+++ b/qemu/hw/pxa2xx_gpio.c
@@ -251,7 +251,7 @@ static CPUWriteMemoryFunc *pxa2xx_gpio_writefn[] = {
     pxa2xx_gpio_write
 };
 
-static void pxa2xx_gpio_save(QEMUFile *f, void *opaque)
+static void pxa2xx_gpio_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_gpio_info_s *s = (struct pxa2xx_gpio_info_s *) opaque;
     int i;
diff --git a/qemu/hw/pxa2xx_keypad.c b/qemu/hw/pxa2xx_keypad.c
index 522c9c1..0b066b6 100644
--- a/qemu/hw/pxa2xx_keypad.c
+++ b/qemu/hw/pxa2xx_keypad.c
@@ -271,7 +271,7 @@ static CPUWriteMemoryFunc *pxa2xx_keypad_writefn[] = {
     pxa2xx_keypad_write
 };
 
-static void pxa2xx_keypad_save(QEMUFile *f, void *opaque)
+static void pxa2xx_keypad_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_keypad_s *s = (struct pxa2xx_keypad_s *) opaque;
 
diff --git a/qemu/hw/pxa2xx_lcd.c b/qemu/hw/pxa2xx_lcd.c
index ffe7a56..a696985 100644
--- a/qemu/hw/pxa2xx_lcd.c
+++ b/qemu/hw/pxa2xx_lcd.c
@@ -895,7 +895,7 @@ static void pxa2xx_lcdc_orientation(void *opaque, int angle)
     pxa2xx_lcdc_resize(s);
 }
 
-static void pxa2xx_lcdc_save(QEMUFile *f, void *opaque)
+static void pxa2xx_lcdc_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_lcdc_s *s = (struct pxa2xx_lcdc_s *) opaque;
     int i;
diff --git a/qemu/hw/pxa2xx_mmci.c b/qemu/hw/pxa2xx_mmci.c
index 46258b4..0355e10 100644
--- a/qemu/hw/pxa2xx_mmci.c
+++ b/qemu/hw/pxa2xx_mmci.c
@@ -441,7 +441,7 @@ static CPUWriteMemoryFunc *pxa2xx_mmci_writefn[] = {
     pxa2xx_mmci_writew
 };
 
-static void pxa2xx_mmci_save(QEMUFile *f, void *opaque)
+static void pxa2xx_mmci_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_mmci_s *s = (struct pxa2xx_mmci_s *) opaque;
     int i;
diff --git a/qemu/hw/pxa2xx_pic.c b/qemu/hw/pxa2xx_pic.c
index e8a601d..ab826bb 100644
--- a/qemu/hw/pxa2xx_pic.c
+++ b/qemu/hw/pxa2xx_pic.c
@@ -241,7 +241,7 @@ static CPUWriteMemoryFunc *pxa2xx_pic_writefn[] = {
     pxa2xx_pic_mem_write,
 };
 
-static void pxa2xx_pic_save(QEMUFile *f, void *opaque)
+static void pxa2xx_pic_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pxa2xx_pic_state_s *s = (struct pxa2xx_pic_state_s *) opaque;
     int i;
diff --git a/qemu/hw/pxa2xx_timer.c b/qemu/hw/pxa2xx_timer.c
index dd17fcf..563e9b6 100644
--- a/qemu/hw/pxa2xx_timer.c
+++ b/qemu/hw/pxa2xx_timer.c
@@ -362,7 +362,7 @@ static void pxa2xx_timer_tick4(void *opaque)
         pxa2xx_timer_update4(i, qemu_get_clock(vm_clock), t->tm.num - 4);
 }
 
-static void pxa2xx_timer_save(QEMUFile *f, void *opaque)
+static void pxa2xx_timer_save(QEMUFile *f, void *opaque, int version_id)
 {
     pxa2xx_timer_info *s = (pxa2xx_timer_info *) opaque;
     int i;
diff --git a/qemu/hw/qxl.c b/qemu/hw/qxl.c
index b0b185e..98fcdbb 100644
--- a/qemu/hw/qxl.c
+++ b/qemu/hw/qxl.c
@@ -1291,7 +1291,7 @@ int qxl_vga_touch(void)
 }
 
 //todo: use cpu_physical_memory_set_dirty instead of manual copy
-static void qxl_save(QEMUFile* f, void* opaque)
+static void qxl_save(QEMUFile* f, void* opaque, int version_id)
 {
     PCIQXLDevice* d=(PCIQXLDevice*)opaque;
     QXLState*     s=&d->state;
@@ -1792,7 +1792,7 @@ static void vdi_port_reset_handler(void *opaque)
     qemu_set_irq(d->pci_dev.irq[0], vdi_port_irq_level(d));
 }
 
-static void vdi_port_save(QEMUFile* f, void* opaque)
+static void vdi_port_save(QEMUFile* f, void* opaque, int version_id)
 {
     PCIVDIPortDevice* d = (PCIVDIPortDevice*)opaque;
 
diff --git a/qemu/hw/rtl8139.c b/qemu/hw/rtl8139.c
index 297d1b7..df450a2 100644
--- a/qemu/hw/rtl8139.c
+++ b/qemu/hw/rtl8139.c
@@ -3113,7 +3113,7 @@ static uint32_t rtl8139_mmio_readl(void *opaque, target_phys_addr_t addr)
 
 /* */
 
-static void rtl8139_save(QEMUFile* f,void* opaque)
+static void rtl8139_save(QEMUFile* f,void* opaque, int version_id)
 {
     RTL8139State* s=(RTL8139State*)opaque;
     unsigned int i;
diff --git a/qemu/hw/sb16.c b/qemu/hw/sb16.c
index ad246ea..ca65ba9 100644
--- a/qemu/hw/sb16.c
+++ b/qemu/hw/sb16.c
@@ -1257,7 +1257,7 @@ static void SB_audio_callback (void *opaque, int free)
     s->audio_free = free;
 }
 
-static void SB_save (QEMUFile *f, void *opaque)
+static void SB_save (QEMUFile *f, void *opaque, int version_id)
 {
     SB16State *s = opaque;
 
diff --git a/qemu/hw/sbi.c b/qemu/hw/sbi.c
index 199db8f..f19b238 100644
--- a/qemu/hw/sbi.c
+++ b/qemu/hw/sbi.c
@@ -101,7 +101,7 @@ static CPUWriteMemoryFunc *sbi_mem_write[3] = {
     sbi_mem_writel,
 };
 
-static void sbi_save(QEMUFile *f, void *opaque)
+static void sbi_save(QEMUFile *f, void *opaque, int version_id)
 {
     SBIState *s = opaque;
     unsigned int i;
diff --git a/qemu/hw/serial.c b/qemu/hw/serial.c
index 513ad27..1f225c1 100644
--- a/qemu/hw/serial.c
+++ b/qemu/hw/serial.c
@@ -633,7 +633,7 @@ static void serial_event(void *opaque, int event)
         serial_receive_break(s);
 }
 
-static void serial_save(QEMUFile *f, void *opaque)
+static void serial_save(QEMUFile *f, void *opaque, int version_id)
 {
     SerialState *s = opaque;
 
diff --git a/qemu/hw/slavio_intctl.c b/qemu/hw/slavio_intctl.c
index 0729c2a..f970993 100644
--- a/qemu/hw/slavio_intctl.c
+++ b/qemu/hw/slavio_intctl.c
@@ -326,7 +326,7 @@ static void slavio_set_timer_irq_cpu(void *opaque, int cpu, int level)
     slavio_check_interrupts(s);
 }
 
-static void slavio_intctl_save(QEMUFile *f, void *opaque)
+static void slavio_intctl_save(QEMUFile *f, void *opaque, int version_id)
 {
     SLAVIO_INTCTLState *s = opaque;
     int i;
diff --git a/qemu/hw/slavio_misc.c b/qemu/hw/slavio_misc.c
index 2c383ca..a8c6b51 100644
--- a/qemu/hw/slavio_misc.c
+++ b/qemu/hw/slavio_misc.c
@@ -401,7 +401,7 @@ static CPUWriteMemoryFunc *slavio_led_mem_write[3] = {
     NULL,
 };
 
-static void slavio_misc_save(QEMUFile *f, void *opaque)
+static void slavio_misc_save(QEMUFile *f, void *opaque, int version_id)
 {
     MiscState *s = opaque;
     uint32_t tmp = 0;
diff --git a/qemu/hw/slavio_timer.c b/qemu/hw/slavio_timer.c
index 01cb1cf..aec71ed 100644
--- a/qemu/hw/slavio_timer.c
+++ b/qemu/hw/slavio_timer.c
@@ -315,7 +315,7 @@ static CPUWriteMemoryFunc *slavio_timer_mem_write[3] = {
     slavio_timer_mem_writel,
 };
 
-static void slavio_timer_save(QEMUFile *f, void *opaque)
+static void slavio_timer_save(QEMUFile *f, void *opaque, int version_id)
 {
     SLAVIO_TIMERState *s = opaque;
 
diff --git a/qemu/hw/sparc32_dma.c b/qemu/hw/sparc32_dma.c
index 354b551..fc24631 100644
--- a/qemu/hw/sparc32_dma.c
+++ b/qemu/hw/sparc32_dma.c
@@ -219,7 +219,7 @@ static void dma_reset(void *opaque)
     s->dmaregs[0] = DMA_VER;
 }
 
-static void dma_save(QEMUFile *f, void *opaque)
+static void dma_save(QEMUFile *f, void *opaque, int version_id)
 {
     DMAState *s = opaque;
     unsigned int i;
diff --git a/qemu/hw/spitz.c b/qemu/hw/spitz.c
index 85b4829..3975f0d 100644
--- a/qemu/hw/spitz.c
+++ b/qemu/hw/spitz.c
@@ -132,7 +132,7 @@ static void sl_writeb(void *opaque, target_phys_addr_t addr,
     }
 }
 
-static void sl_save(QEMUFile *f, void *opaque)
+static void sl_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct sl_nand_s *s = (struct sl_nand_s *) opaque;
 
@@ -448,7 +448,7 @@ static void spitz_keyboard_pre_map(struct spitz_keyboard_s *s)
 #undef CTRL
 #undef FN
 
-static void spitz_keyboard_save(QEMUFile *f, void *opaque)
+static void spitz_keyboard_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct spitz_keyboard_s *s = (struct spitz_keyboard_s *) opaque;
     int i;
@@ -650,7 +650,7 @@ static void spitz_adc_temp_on(void *opaque, int line, int level)
         max111x_set_input(max1111, MAX1111_BATT_TEMP, 0);
 }
 
-static void spitz_ssp_save(QEMUFile *f, void *opaque)
+static void spitz_ssp_save(QEMUFile *f, void *opaque, int version_id)
 {
     qemu_put_be32(f, lcd_en);
     qemu_put_be32(f, ads_en);
diff --git a/qemu/hw/ssd0303.c b/qemu/hw/ssd0303.c
index d103719..929e284 100644
--- a/qemu/hw/ssd0303.c
+++ b/qemu/hw/ssd0303.c
@@ -263,7 +263,7 @@ static void ssd0303_invalidate_display(void * opaque)
     s->redraw = 1;
 }
 
-static void ssd0303_save(QEMUFile *f, void *opaque)
+static void ssd0303_save(QEMUFile *f, void *opaque, int version_id)
 {
     ssd0303_state *s = (ssd0303_state *)opaque;
 
diff --git a/qemu/hw/ssd0323.c b/qemu/hw/ssd0323.c
index 29cd52c..5f03e10 100644
--- a/qemu/hw/ssd0323.c
+++ b/qemu/hw/ssd0323.c
@@ -275,7 +275,7 @@ static void ssd0323_cd(void *opaque, int n, int level)
     s->mode = level ? SSD0323_DATA : SSD0323_CMD;
 }
 
-static void ssd0323_save(QEMUFile *f, void *opaque)
+static void ssd0323_save(QEMUFile *f, void *opaque, int version_id)
 {
     ssd0323_state *s = (ssd0323_state *)opaque;
     int i;
diff --git a/qemu/hw/ssi-sd.c b/qemu/hw/ssi-sd.c
index ffb9c4c..4f1cc97 100644
--- a/qemu/hw/ssi-sd.c
+++ b/qemu/hw/ssi-sd.c
@@ -190,7 +190,7 @@ int ssi_sd_xfer(void *opaque, int val)
     return 0xff;
 }
 
-static void ssi_sd_save(QEMUFile *f, void *opaque)
+static void ssi_sd_save(QEMUFile *f, void *opaque, int version_id)
 {
     ssi_sd_state *s = (ssi_sd_state *)opaque;
     int i;
diff --git a/qemu/hw/stellaris.c b/qemu/hw/stellaris.c
index 7069518..12f8980 100644
--- a/qemu/hw/stellaris.c
+++ b/qemu/hw/stellaris.c
@@ -283,7 +283,7 @@ static CPUWriteMemoryFunc *gptm_writefn[] = {
    gptm_write
 };
 
-static void gptm_save(QEMUFile *f, void *opaque)
+static void gptm_save(QEMUFile *f, void *opaque, int version_id)
 {
     gptm_state *s = (gptm_state *)opaque;
 
@@ -605,7 +605,7 @@ static void ssys_reset(void *opaque)
     s->dcgc[0] = 1;
 }
 
-static void ssys_save(QEMUFile *f, void *opaque)
+static void ssys_save(QEMUFile *f, void *opaque, int version_id)
 {
     ssys_state *s = (ssys_state *)opaque;
 
@@ -842,7 +842,7 @@ static CPUWriteMemoryFunc *stellaris_i2c_writefn[] = {
    stellaris_i2c_write
 };
 
-static void stellaris_i2c_save(QEMUFile *f, void *opaque)
+static void stellaris_i2c_save(QEMUFile *f, void *opaque, int version_id)
 {
     stellaris_i2c_state *s = (stellaris_i2c_state *)opaque;
 
@@ -1117,7 +1117,7 @@ static CPUWriteMemoryFunc *stellaris_adc_writefn[] = {
    stellaris_adc_write
 };
 
-static void stellaris_adc_save(QEMUFile *f, void *opaque)
+static void stellaris_adc_save(QEMUFile *f, void *opaque, int version_id)
 {
     stellaris_adc_state *s = (stellaris_adc_state *)opaque;
     int i;
@@ -1219,7 +1219,7 @@ static int stellaris_ssi_bus_xfer(void *opaque, int val)
     return s->xfer_cb[s->current_dev](s->opaque[s->current_dev], val);
 }
 
-static void stellaris_ssi_bus_save(QEMUFile *f, void *opaque)
+static void stellaris_ssi_bus_save(QEMUFile *f, void *opaque, int version_id)
 {
     stellaris_ssi_bus_state *s = (stellaris_ssi_bus_state *)opaque;
 
diff --git a/qemu/hw/stellaris_enet.c b/qemu/hw/stellaris_enet.c
index 88c5620..e5a47d1 100644
--- a/qemu/hw/stellaris_enet.c
+++ b/qemu/hw/stellaris_enet.c
@@ -323,7 +323,7 @@ static void stellaris_enet_reset(stellaris_enet_state *s)
     s->tx_frame_len = -1;
 }
 
-static void stellaris_enet_save(QEMUFile *f, void *opaque)
+static void stellaris_enet_save(QEMUFile *f, void *opaque, int version_id)
 {
     stellaris_enet_state *s = (stellaris_enet_state *)opaque;
     int i;
diff --git a/qemu/hw/stellaris_input.c b/qemu/hw/stellaris_input.c
index 33395a4..3bfb41e 100644
--- a/qemu/hw/stellaris_input.c
+++ b/qemu/hw/stellaris_input.c
@@ -47,7 +47,7 @@ static void stellaris_gamepad_put_key(void * opaque, int keycode)
     s->extension = 0;
 }
 
-static void stellaris_gamepad_save(QEMUFile *f, void *opaque)
+static void stellaris_gamepad_save(QEMUFile *f, void *opaque, int version_id)
 {
     gamepad_state *s = (gamepad_state *)opaque;
     int i;
diff --git a/qemu/hw/sun4c_intctl.c b/qemu/hw/sun4c_intctl.c
index dd42777..1158926 100644
--- a/qemu/hw/sun4c_intctl.c
+++ b/qemu/hw/sun4c_intctl.c
@@ -166,7 +166,7 @@ static void sun4c_set_irq(void *opaque, int irq, int level)
     }
 }
 
-static void sun4c_intctl_save(QEMUFile *f, void *opaque)
+static void sun4c_intctl_save(QEMUFile *f, void *opaque, int version_id)
 {
     Sun4c_INTCTLState *s = opaque;
 
diff --git a/qemu/hw/tcx.c b/qemu/hw/tcx.c
index 004685b..1b0a057 100644
--- a/qemu/hw/tcx.c
+++ b/qemu/hw/tcx.c
@@ -368,7 +368,7 @@ static void tcx24_invalidate_display(void *opaque)
     }
 }
 
-static void tcx_save(QEMUFile *f, void *opaque)
+static void tcx_save(QEMUFile *f, void *opaque, int version_id)
 {
     TCXState *s = opaque;
 
diff --git a/qemu/hw/tmp105.c b/qemu/hw/tmp105.c
index d6ab2c3..9576d7e 100644
--- a/qemu/hw/tmp105.c
+++ b/qemu/hw/tmp105.c
@@ -174,7 +174,7 @@ static void tmp105_event(i2c_slave *i2c, enum i2c_event event)
     s->len = 0;
 }
 
-static void tmp105_save(QEMUFile *f, void *opaque)
+static void tmp105_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct tmp105_s *s = (struct tmp105_s *) opaque;
 
diff --git a/qemu/hw/tsc2005.c b/qemu/hw/tsc2005.c
index e8d4a85..4513137 100644
--- a/qemu/hw/tsc2005.c
+++ b/qemu/hw/tsc2005.c
@@ -433,7 +433,7 @@ static void tsc2005_touchscreen_event(void *opaque,
         tsc2005_pin_update(s);
 }
 
-static void tsc2005_save(QEMUFile *f, void *opaque)
+static void tsc2005_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct tsc2005_state_s *s = (struct tsc2005_state_s *) opaque;
     int i;
diff --git a/qemu/hw/tsc210x.c b/qemu/hw/tsc210x.c
index 41d374f..814882c 100644
--- a/qemu/hw/tsc210x.c
+++ b/qemu/hw/tsc210x.c
@@ -1009,7 +1009,7 @@ static void tsc210x_i2s_set_rate(struct tsc210x_state_s *s, int in, int out)
     s->i2s_rx_rate = in;
 }
 
-static void tsc210x_save(QEMUFile *f, void *opaque)
+static void tsc210x_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct tsc210x_state_s *s = (struct tsc210x_state_s *) opaque;
     int64_t now = qemu_get_clock(vm_clock);
diff --git a/qemu/hw/twl92230.c b/qemu/hw/twl92230.c
index 6b0a0b7..faefcf5 100644
--- a/qemu/hw/twl92230.c
+++ b/qemu/hw/twl92230.c
@@ -765,7 +765,7 @@ static void tm_get(QEMUFile *f, struct tm *tm) {
     tm->tm_year = qemu_get_be16(f);
 }
 
-static void menelaus_save(QEMUFile *f, void *opaque)
+static void menelaus_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct menelaus_s *s = (struct menelaus_s *) opaque;
 
diff --git a/qemu/hw/usb-uhci.c b/qemu/hw/usb-uhci.c
index 4d31db9..2d027e4 100644
--- a/qemu/hw/usb-uhci.c
+++ b/qemu/hw/usb-uhci.c
@@ -351,7 +351,7 @@ static void uhci_reset(void *opaque)
     uhci_update_irq(s);
 }
 
-static void uhci_save(QEMUFile *f, void *opaque)
+static void uhci_save(QEMUFile *f, void *opaque, int version_id)
 {
     UHCIState *s = opaque;
     uint8_t num_ports = NB_PORTS;
diff --git a/qemu/hw/vga.c b/qemu/hw/vga.c
index eae4f3e..b51b25f 100644
--- a/qemu/hw/vga.c
+++ b/qemu/hw/vga.c
@@ -2102,7 +2102,7 @@ static CPUWriteMemoryFunc *vga_mem_write[3] = {
     vga_mem_writel,
 };
 
-static void vga_save(QEMUFile *f, void *opaque)
+static void vga_save(QEMUFile *f, void *opaque, int version_id)
 {
     VGAState *s = opaque;
     int i;
diff --git a/qemu/hw/virtio-balloon.c b/qemu/hw/virtio-balloon.c
index e10eac6..19b6de9 100644
--- a/qemu/hw/virtio-balloon.c
+++ b/qemu/hw/virtio-balloon.c
@@ -143,7 +143,7 @@ static ram_addr_t virtio_balloon_to_target(void *opaque, ram_addr_t target)
     return ram_size - (dev->actual << VIRTIO_BALLOON_PFN_SHIFT);
 }
 
-static void virtio_balloon_save(QEMUFile *f, void *opaque)
+static void virtio_balloon_save(QEMUFile *f, void *opaque, int version_id)
 {
     VirtIOBalloon *s = opaque;
 
diff --git a/qemu/hw/virtio-blk.c b/qemu/hw/virtio-blk.c
index d2e8147..899b339 100644
--- a/qemu/hw/virtio-blk.c
+++ b/qemu/hw/virtio-blk.c
@@ -305,7 +305,7 @@ static uint32_t virtio_blk_get_features(VirtIODevice *vdev)
     return features;
 }
 
-static void virtio_blk_save(QEMUFile *f, void *opaque)
+static void virtio_blk_save(QEMUFile *f, void *opaque, int version_id)
 {
     VirtIOBlock *s = opaque;
     VirtIOBlockReq *req = s->rq;
diff --git a/qemu/hw/virtio-net.c b/qemu/hw/virtio-net.c
index 6c6eb16..b824ba2 100644
--- a/qemu/hw/virtio-net.c
+++ b/qemu/hw/virtio-net.c
@@ -443,7 +443,7 @@ static void virtio_net_retry_tx(void *opaque)
     virtio_net_flush_tx(n, n->tx_vq, 0);
 }
 
-static void virtio_net_save(QEMUFile *f, void *opaque)
+static void virtio_net_save(QEMUFile *f, void *opaque, int version_id)
 {
     VirtIONet *n = opaque;
 
diff --git a/qemu/hw/vmmouse.c b/qemu/hw/vmmouse.c
index 5249393..55fc7bf 100644
--- a/qemu/hw/vmmouse.c
+++ b/qemu/hw/vmmouse.c
@@ -234,7 +234,7 @@ static uint32_t vmmouse_ioport_read(void *opaque, uint32_t addr)
     return data[0];
 }
 
-static void vmmouse_save(QEMUFile *f, void *opaque)
+static void vmmouse_save(QEMUFile *f, void *opaque, int version_id)
 {
     VMMouseState *s = opaque;
     int i;
diff --git a/qemu/hw/vmware_vga.c b/qemu/hw/vmware_vga.c
index 028bf81..98e0341 100644
--- a/qemu/hw/vmware_vga.c
+++ b/qemu/hw/vmware_vga.c
@@ -1142,7 +1142,7 @@ static void vmsvga_init(struct vmsvga_state_s *s, DisplayState *ds,
 #endif
 }
 
-static void pci_vmsvga_save(QEMUFile *f, void *opaque)
+static void pci_vmsvga_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct pci_vmsvga_state_s *s = (struct pci_vmsvga_state_s *) opaque;
     pci_device_save(&s->card, f);
diff --git a/qemu/hw/wm8750.c b/qemu/hw/wm8750.c
index 93fa6d7..4a46842 100644
--- a/qemu/hw/wm8750.c
+++ b/qemu/hw/wm8750.c
@@ -565,7 +565,7 @@ static int wm8750_rx(i2c_slave *i2c)
     return 0x00;
 }
 
-static void wm8750_save(QEMUFile *f, void *opaque)
+static void wm8750_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct wm8750_s *s = (struct wm8750_s *) opaque;
     int i;
diff --git a/qemu/hw/zaurus.c b/qemu/hw/zaurus.c
index 8b16c47..5b1a2d6 100644
--- a/qemu/hw/zaurus.c
+++ b/qemu/hw/zaurus.c
@@ -183,7 +183,7 @@ void scoop_gpio_out_set(struct scoop_info_s *s, int line,
     s->handler[line] = handler;
 }
 
-static void scoop_save(QEMUFile *f, void *opaque)
+static void scoop_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct scoop_info_s *s = (struct scoop_info_s *) opaque;
     qemu_put_be16s(f, &s->status);
diff --git a/qemu/kvm-tpr-opt.c b/qemu/kvm-tpr-opt.c
index 246e08d..cf967e0 100644
--- a/qemu/kvm-tpr-opt.c
+++ b/qemu/kvm-tpr-opt.c
@@ -303,7 +303,7 @@ void kvm_tpr_vcpu_start(CPUState *env)
 	enable_vapic(env);
 }
 
-static void tpr_save(QEMUFile *f, void *s)
+static void tpr_save(QEMUFile *f, void *s, int version_id)
 {
     int i;
 
diff --git a/qemu/qemu-common.h b/qemu/qemu-common.h
index 2b348f4..9291c2b 100644
--- a/qemu/qemu-common.h
+++ b/qemu/qemu-common.h
@@ -177,7 +177,7 @@ typedef struct IRQState *qemu_irq;
 struct pcmcia_card_s;
 
 /* CPU save/load.  */
-void cpu_save(QEMUFile *f, void *opaque);
+void cpu_save(QEMUFile *f, void *opaque, int version_id);
 int cpu_load(QEMUFile *f, void *opaque, int version_id);
 
 /* work queue */
diff --git a/qemu/qemu-kvm-x86.c b/qemu/qemu-kvm-x86.c
index b573029..a3e15d6 100644
--- a/qemu/qemu-kvm-x86.c
+++ b/qemu/qemu-kvm-x86.c
@@ -43,7 +43,7 @@ int kvm_qemu_destroy_memory_alias(uint64_t phys_start)
 #ifdef KVM_CAP_ADJUST_CLOCK
 static struct kvm_clock_data kvmclock_data;
 
-static void kvmclock_save(QEMUFile *f, void *opaque)
+static void kvmclock_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct kvm_clock_data *cl = opaque;
 
diff --git a/qemu/savevm.c b/qemu/savevm.c
index 90e3172..f0ea82b 100644
--- a/qemu/savevm.c
+++ b/qemu/savevm.c
@@ -810,7 +810,7 @@ int qemu_savevm_state_complete(QEMUFile *f)
         qemu_put_be32(f, se->instance_id);
         qemu_put_be32(f, se->version_id);
 
-        se->save_state(f, se->opaque);
+        se->save_state(f, se->opaque, se->version_id);
     }
 
     qemu_put_byte(f, QEMU_VM_EOF);
diff --git a/qemu/slirp/slirp.c b/qemu/slirp/slirp.c
index 0394496..fe6640c 100644
--- a/qemu/slirp/slirp.c
+++ b/qemu/slirp/slirp.c
@@ -168,7 +168,7 @@ static void slirp_cleanup(void)
 }
 #endif
 
-static void slirp_state_save(QEMUFile *f, void *opaque);
+static void slirp_state_save(QEMUFile *f, void *opaque, int version_id);
 static int slirp_state_load(QEMUFile *f, void *opaque, int version_id);
 
 void slirp_init(int restrict, char *special_ip)
@@ -892,7 +892,7 @@ static void slirp_socket_save(QEMUFile *f, struct socket *so)
     slirp_tcp_save(f, so->so_tcpcb);
 }
 
-static void slirp_state_save(QEMUFile *f, void *opaque)
+static void slirp_state_save(QEMUFile *f, void *opaque, int version_id)
 {
     struct ex_list *ex_ptr;
 
diff --git a/qemu/target-arm/machine.c b/qemu/target-arm/machine.c
index 323bace..5b551d2 100644
--- a/qemu/target-arm/machine.c
+++ b/qemu/target-arm/machine.c
@@ -25,7 +25,7 @@ void register_machines(void)
     qemu_register_machine(&tosapda_machine);
 }
 
-void cpu_save(QEMUFile *f, void *opaque)
+void cpu_save(QEMUFile *f, void *opaque, int version_id)
 {
     int i;
     CPUARMState *env = (CPUARMState *)opaque;
diff --git a/qemu/target-cris/machine.c b/qemu/target-cris/machine.c
index b17db23..0805ae4 100644
--- a/qemu/target-cris/machine.c
+++ b/qemu/target-cris/machine.c
@@ -7,7 +7,7 @@ void register_machines(void)
     qemu_register_machine(&axisdev88_machine);
 }
 
-void cpu_save(QEMUFile *f, void *opaque)
+void cpu_save(QEMUFile *f, void *opaque, int version_id)
 {
     CPUCRISState *env = opaque;
     int i;
diff --git a/qemu/target-i386/machine.c b/qemu/target-i386/machine.c
index 7949bea..313f697 100644
--- a/qemu/target-i386/machine.c
+++ b/qemu/target-i386/machine.c
@@ -30,7 +30,7 @@ static void cpu_get_seg(QEMUFile *f, SegmentCache *dt)
     dt->flags = qemu_get_be32(f);
 }
 
-void cpu_save(QEMUFile *f, void *opaque)
+void cpu_save(QEMUFile *f, void *opaque, int version_id)
 {
     CPUState *env = opaque;
     uint16_t fptag, fpus, fpuc, fpregs_format;
diff --git a/qemu/target-ia64/machine.c b/qemu/target-ia64/machine.c
index a32b01a..f3569ed 100644
--- a/qemu/target-ia64/machine.c
+++ b/qemu/target-ia64/machine.c
@@ -9,7 +9,7 @@ void register_machines(void)
     qemu_register_machine(&ipf_machine);
 }
 
-void cpu_save(QEMUFile *f, void *opaque)
+void cpu_save(QEMUFile *f, void *opaque, int version_id)
 {
     CPUState *env = opaque;
 
diff --git a/qemu/target-mips/machine.c b/qemu/target-mips/machine.c
index 543778d..3cf6124 100644
--- a/qemu/target-mips/machine.c
+++ b/qemu/target-mips/machine.c
@@ -49,7 +49,7 @@ static void save_fpu(QEMUFile *f, CPUMIPSFPUContext *fpu)
     qemu_put_be32s(f, &fpu->fcr31);
 }
 
-void cpu_save(QEMUFile *f, void *opaque)
+void cpu_save(QEMUFile *f, void *opaque, int version_id)
 {
     CPUState *env = opaque;
     int i;
diff --git a/qemu/target-ppc/machine.c b/qemu/target-ppc/machine.c
index 4f9a191..43f5368 100644
--- a/qemu/target-ppc/machine.c
+++ b/qemu/target-ppc/machine.c
@@ -11,7 +11,7 @@ void register_machines(void)
     qemu_register_machine(&bamboo_machine);
 }
 
-void cpu_save(QEMUFile *f, void *opaque)
+void cpu_save(QEMUFile *f, void *opaque, int version_id)
 {
     CPUState *env = (CPUState *)opaque;
     unsigned int i, j;
diff --git a/qemu/target-sparc/machine.c b/qemu/target-sparc/machine.c
index e845fac..6287018 100644
--- a/qemu/target-sparc/machine.c
+++ b/qemu/target-sparc/machine.c
@@ -26,7 +26,7 @@ void register_machines(void)
 #endif
 }
 
-void cpu_save(QEMUFile *f, void *opaque)
+void cpu_save(QEMUFile *f, void *opaque, int version_id)
 {
     CPUState *env = opaque;
     int i;
diff --git a/qemu/vl.c b/qemu/vl.c
index e493fc7..ca6cd53 100644
--- a/qemu/vl.c
+++ b/qemu/vl.c
@@ -1320,7 +1320,7 @@ void qemu_get_timer(QEMUFile *f, QEMUTimer *ts)
     }
 }
 
-static void timer_save(QEMUFile *f, void *opaque)
+static void timer_save(QEMUFile *f, void *opaque, int version_id)
 {
     if (cpu_ticks_enabled) {
         hw_error("cannot save state if virtual timers are running");
-- 
1.6.3.rc4.29.g8146