All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/13] Port ide to vmstate
@ 2009-10-14 11:37 Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 01/13] ide: port idebus " Juan Quintela
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel

This patch series port ide to vmstate.
Interesting bits:
- VMSTATE_BUFFER_TEST is added (needed by identity set)
- bus struct is included in MMIOState

Rest is just mechanical translation.

Later, Juan.

Juan Quintela (13):
  ide: port idebus to vmstate
  ide: change identify_data type to uint8_t
  vmstate: add VMSTATE_BUFFER_TEST
  ide: port ide_drive to vmstate
  ide: microdrive cycle field is set as uint8_t
  ide: add VMSTATE_IDE_BUS and VMSTATE_IDE_DRIVES
  ide: port microdrive to vmstate
  ide: include bus in MMIOState
  ide: port ide mmio to vmstate
  ide: port isa ide to vmstate
  ide: port pmac ide to vmstate
  ide: port pci ide to vmstate
  ide: pre VMState functions are not needed anymore

 hw/hw.h             |   12 ++++
 hw/ide/cmd646.c     |    2 +-
 hw/ide/core.c       |  153 ++++++++++++++++++++++++---------------------------
 hw/ide/internal.h   |   18 ++++--
 hw/ide/isa.c        |   31 ++++------
 hw/ide/macio.c      |   42 ++++----------
 hw/ide/microdrive.c |   63 ++++++---------------
 hw/ide/mmio.c       |   53 +++++++-----------
 hw/ide/pci.c        |   95 ++++++++++++--------------------
 hw/ide/pci.h        |    4 +-
 hw/ide/piix.c       |    2 +-
 11 files changed, 198 insertions(+), 277 deletions(-)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 01/13] ide: port idebus to vmstate
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 02/13] ide: change identify_data type to uint8_t Juan Quintela
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/core.c |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/hw/ide/core.c b/hw/ide/core.c
index 0b6de6c..e1433b2 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -2654,16 +2654,26 @@ void ide_load(QEMUFile* f, IDEState *s, int version_id)
     /* XXX: if a transfer is pending, we do not save it yet */
 }

+const VMStateDescription vmstate_ide_bus = {
+    .name = "ide_bus",
+    .version_id = 1,
+    .minimum_version_id = 1,
+    .minimum_version_id_old = 1,
+    .fields      = (VMStateField []) {
+        VMSTATE_UINT8(cmd, IDEBus),
+        VMSTATE_UINT8(unit, IDEBus),
+        VMSTATE_END_OF_LIST()
+    }
+};
+
 void idebus_save(QEMUFile* f, IDEBus *bus)
 {
-    qemu_put_8s(f, &bus->cmd);
-    qemu_put_8s(f, &bus->unit);
+    vmstate_save_state(f, &vmstate_ide_bus, bus);
 }

 void idebus_load(QEMUFile* f, IDEBus *bus, int version_id)
 {
-    qemu_get_8s(f, &bus->cmd);
-    qemu_get_8s(f, &bus->unit);
+    vmstate_load_state(f, &vmstate_ide_bus, bus, vmstate_ide_bus.version_id);
 }

 /***********************************************************/
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 02/13] ide: change identify_data type to uint8_t
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 01/13] ide: port idebus " Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 03/13] vmstate: add VMSTATE_BUFFER_TEST Juan Quintela
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel

It is used everywhere as uint8_t except in one place.  Cast to uint16_t
in that place

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/core.c     |   25 +++++++++++++------------
 hw/ide/internal.h |    2 +-
 2 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/hw/ide/core.c b/hw/ide/core.c
index e1433b2..aeff034 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -1942,28 +1942,29 @@ void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
                 break;
             case 0x03: { /* set transfer mode */
 		uint8_t val = s->nsector & 0x07;
+                uint16_t *identify_data = (uint16_t *)s->identify_data;

 		switch (s->nsector >> 3) {
 		    case 0x00: /* pio default */
 		    case 0x01: /* pio mode */
-			put_le16(s->identify_data + 62,0x07);
-			put_le16(s->identify_data + 63,0x07);
-			put_le16(s->identify_data + 88,0x3f);
+			put_le16(identify_data + 62,0x07);
+			put_le16(identify_data + 63,0x07);
+			put_le16(identify_data + 88,0x3f);
 			break;
                     case 0x02: /* sigle word dma mode*/
-			put_le16(s->identify_data + 62,0x07 | (1 << (val + 8)));
-			put_le16(s->identify_data + 63,0x07);
-			put_le16(s->identify_data + 88,0x3f);
+			put_le16(identify_data + 62,0x07 | (1 << (val + 8)));
+			put_le16(identify_data + 63,0x07);
+			put_le16(identify_data + 88,0x3f);
 			break;
 		    case 0x04: /* mdma mode */
-			put_le16(s->identify_data + 62,0x07);
-			put_le16(s->identify_data + 63,0x07 | (1 << (val + 8)));
-			put_le16(s->identify_data + 88,0x3f);
+			put_le16(identify_data + 62,0x07);
+			put_le16(identify_data + 63,0x07 | (1 << (val + 8)));
+			put_le16(identify_data + 88,0x3f);
 			break;
 		    case 0x08: /* udma mode */
-			put_le16(s->identify_data + 62,0x07);
-			put_le16(s->identify_data + 63,0x07);
-			put_le16(s->identify_data + 88,0x3f | (1 << (val + 8)));
+			put_le16(identify_data + 62,0x07);
+			put_le16(identify_data + 63,0x07);
+			put_le16(identify_data + 88,0x3f | (1 << (val + 8)));
 			break;
 		    default:
 			goto abort_cmd;
diff --git a/hw/ide/internal.h b/hw/ide/internal.h
index 2e40431..c55fa52 100644
--- a/hw/ide/internal.h
+++ b/hw/ide/internal.h
@@ -374,7 +374,7 @@ struct IDEState {
     int64_t nb_sectors;
     int mult_sectors;
     int identify_set;
-    uint16_t identify_data[256];
+    uint8_t identify_data[512];
     int drive_serial;
     char drive_serial_str[21];
     /* ide regs */
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 03/13] vmstate: add VMSTATE_BUFFER_TEST
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 01/13] ide: port idebus " Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 02/13] ide: change identify_data type to uint8_t Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 04/13] ide: port ide_drive to vmstate Juan Quintela
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/hw.h |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/hw/hw.h b/hw/hw.h
index 8c223f8..c379000 100644
--- a/hw/hw.h
+++ b/hw/hw.h
@@ -464,6 +464,15 @@ extern const VMStateInfo vmstate_info_buffer;
         + type_check_array(uint8_t,typeof_field(_state, _field),sizeof(typeof_field(_state,_field))) \
 }

+#define VMSTATE_STATIC_BUFFER_TEST(_field, _state, _test) {          \
+    .name         = (stringify(_field)),                             \
+    .field_exists = (_test),                                         \
+    .size         = sizeof(typeof_field(_state,_field)),             \
+    .info         = &vmstate_info_buffer,                            \
+    .flags        = VMS_BUFFER,                                      \
+    .offset       = offsetof(_state, _field)                         \
+        + type_check_array(uint8_t,typeof_field(_state, _field),sizeof(typeof_field(_state,_field))) \
+}
 #define VMSTATE_BUFFER_START_MIDDLE(_field, _state, start) {         \
     .name       = (stringify(_field)),                               \
     .size       = sizeof(typeof_field(_state,_field)) - start,       \
@@ -613,6 +622,9 @@ extern const VMStateDescription vmstate_i2c_slave;
 #define VMSTATE_BUFFER(_f, _s)                                        \
     VMSTATE_STATIC_BUFFER(_f, _s, 0)

+#define VMSTATE_BUFFER_TEST(_f, _s, _t)                               \
+    VMSTATE_STATIC_BUFFER_TEST(_f, _s, _t)
+
 #ifdef NEED_CPU_H
 #if TARGET_LONG_BITS == 64
 #define VMSTATE_UINTTL_V(_f, _s, _v)                                  \
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 04/13] ide: port ide_drive to vmstate
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (2 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 03/13] vmstate: add VMSTATE_BUFFER_TEST Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 05/13] ide: microdrive cycle field is set as uint8_t Juan Quintela
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/core.c |  113 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 56 insertions(+), 57 deletions(-)

diff --git a/hw/ide/core.c b/hw/ide/core.c
index aeff034..c08d5aa 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -2591,70 +2591,69 @@ void ide_init_ioport(IDEBus *bus, int iobase, int iobase2)
     register_ioport_read(iobase, 4, 4, ide_data_readl, bus);
 }

-/* save per IDE drive data */
-void ide_save(QEMUFile* f, IDEState *s)
+static bool is_identify_set(void *opaque, int version_id)
 {
-    qemu_put_be32(f, s->mult_sectors);
-    qemu_put_be32(f, s->identify_set);
-    if (s->identify_set) {
-        qemu_put_buffer(f, (const uint8_t *)s->identify_data, 512);
-    }
-    qemu_put_8s(f, &s->feature);
-    qemu_put_8s(f, &s->error);
-    qemu_put_be32s(f, &s->nsector);
-    qemu_put_8s(f, &s->sector);
-    qemu_put_8s(f, &s->lcyl);
-    qemu_put_8s(f, &s->hcyl);
-    qemu_put_8s(f, &s->hob_feature);
-    qemu_put_8s(f, &s->hob_nsector);
-    qemu_put_8s(f, &s->hob_sector);
-    qemu_put_8s(f, &s->hob_lcyl);
-    qemu_put_8s(f, &s->hob_hcyl);
-    qemu_put_8s(f, &s->select);
-    qemu_put_8s(f, &s->status);
-    qemu_put_8s(f, &s->lba48);
-
-    qemu_put_8s(f, &s->sense_key);
-    qemu_put_8s(f, &s->asc);
-    qemu_put_8s(f, &s->cdrom_changed);
-    /* XXX: if a transfer is pending, we do not save it yet */
-}
-
-/* load per IDE drive data */
-void ide_load(QEMUFile* f, IDEState *s, int version_id)
+    IDEState *s = opaque;
+
+    return s->identify_set != 0;
+}
+
+static int ide_drive_post_load(void *opaque, int version_id)
 {
-    s->mult_sectors=qemu_get_be32(f);
-    s->identify_set=qemu_get_be32(f);
-    if (s->identify_set) {
-        qemu_get_buffer(f, (uint8_t *)s->identify_data, 512);
-    }
-    qemu_get_8s(f, &s->feature);
-    qemu_get_8s(f, &s->error);
-    qemu_get_be32s(f, &s->nsector);
-    qemu_get_8s(f, &s->sector);
-    qemu_get_8s(f, &s->lcyl);
-    qemu_get_8s(f, &s->hcyl);
-    qemu_get_8s(f, &s->hob_feature);
-    qemu_get_8s(f, &s->hob_nsector);
-    qemu_get_8s(f, &s->hob_sector);
-    qemu_get_8s(f, &s->hob_lcyl);
-    qemu_get_8s(f, &s->hob_hcyl);
-    qemu_get_8s(f, &s->select);
-    qemu_get_8s(f, &s->status);
-    qemu_get_8s(f, &s->lba48);
-
-    qemu_get_8s(f, &s->sense_key);
-    qemu_get_8s(f, &s->asc);
-    if (version_id == 3) {
-        qemu_get_8s(f, &s->cdrom_changed);
-    } else {
+    IDEState *s = opaque;
+
+    if (version_id < 3) {
         if (s->sense_key == SENSE_UNIT_ATTENTION &&
-                       s->asc == ASC_MEDIUM_MAY_HAVE_CHANGED)
+            s->asc == ASC_MEDIUM_MAY_HAVE_CHANGED) {
             s->cdrom_changed = 1;
+        }
     }
-    /* XXX: if a transfer is pending, we do not save it yet */
+    return 0;
 }

+const VMStateDescription vmstate_ide_drive = {
+    .name = "ide_drive",
+    .version_id = 3,
+    .minimum_version_id = 0,
+    .minimum_version_id_old = 0,
+    .post_load = ide_drive_post_load,
+    .fields      = (VMStateField []) {
+        VMSTATE_INT32(mult_sectors, IDEState),
+        VMSTATE_INT32(identify_set, IDEState),
+        VMSTATE_BUFFER_TEST(identify_data, IDEState, is_identify_set),
+        VMSTATE_UINT8(feature, IDEState),
+        VMSTATE_UINT8(error, IDEState),
+        VMSTATE_UINT32(nsector, IDEState),
+        VMSTATE_UINT8(sector, IDEState),
+        VMSTATE_UINT8(lcyl, IDEState),
+        VMSTATE_UINT8(hcyl, IDEState),
+        VMSTATE_UINT8(hob_feature, IDEState),
+        VMSTATE_UINT8(hob_sector, IDEState),
+        VMSTATE_UINT8(hob_nsector, IDEState),
+        VMSTATE_UINT8(hob_lcyl, IDEState),
+        VMSTATE_UINT8(hob_hcyl, IDEState),
+        VMSTATE_UINT8(select, IDEState),
+        VMSTATE_UINT8(status, IDEState),
+        VMSTATE_UINT8(lba48, IDEState),
+        VMSTATE_UINT8(sense_key, IDEState),
+        VMSTATE_UINT8(asc, IDEState),
+        VMSTATE_UINT8_V(cdrom_changed, IDEState, 3),
+        /* XXX: if a transfer is pending, we do not save it yet */
+        VMSTATE_END_OF_LIST()
+    }
+};
+
+void ide_save(QEMUFile* f, IDEState *s)
+{
+    vmstate_save_state(f, &vmstate_ide_drive, s);
+}
+
+void ide_load(QEMUFile* f, IDEState *s, int version_id)
+{
+    vmstate_load_state(f, &vmstate_ide_drive, s, vmstate_ide_drive.version_id);
+}
+
+
 const VMStateDescription vmstate_ide_bus = {
     .name = "ide_bus",
     .version_id = 1,
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 05/13] ide: microdrive cycle field is set as uint8_t
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (3 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 04/13] ide: port ide_drive to vmstate Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 06/13] ide: add VMSTATE_IDE_BUS and VMSTATE_IDE_DRIVES Juan Quintela
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel

Really, it is used as a boolean

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/microdrive.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c
index aeb77a0..49a9b93 100644
--- a/hw/ide/microdrive.c
+++ b/hw/ide/microdrive.c
@@ -51,7 +51,7 @@ typedef struct {

     uint8_t ctrl;
     uint16_t io;
-    int cycle;
+    uint8_t cycle;
 } MicroDriveState;

 /* Register bitfields */
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 06/13] ide: add VMSTATE_IDE_BUS and VMSTATE_IDE_DRIVES
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (4 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 05/13] ide: microdrive cycle field is set as uint8_t Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 07/13] ide: port microdrive to vmstate Juan Quintela
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/internal.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/hw/ide/internal.h b/hw/ide/internal.h
index c55fa52..a67e39f 100644
--- a/hw/ide/internal.h
+++ b/hw/ide/internal.h
@@ -512,6 +512,16 @@ static inline void ide_set_irq(IDEBus *bus)
 }

 /* hw/ide/core.c */
+extern const VMStateDescription vmstate_ide_bus;
+
+#define VMSTATE_IDE_BUS(_field, _state)                          \
+    VMSTATE_STRUCT(_field, _state, 1, vmstate_ide_bus, IDEBus)
+
+extern const VMStateDescription vmstate_ide_drive;
+
+#define VMSTATE_IDE_DRIVES(_field, _state) \
+    VMSTATE_STRUCT_ARRAY(_field, _state, 2, 3, vmstate_ide_drive, IDEState)
+
 void ide_save(QEMUFile* f, IDEState *s);
 void ide_load(QEMUFile* f, IDEState *s, int version_id);
 void idebus_save(QEMUFile* f, IDEBus *bus);
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 07/13] ide: port microdrive to vmstate
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (5 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 06/13] ide: add VMSTATE_IDE_BUS and VMSTATE_IDE_DRIVES Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 08/13] ide: include bus in MMIOState Juan Quintela
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/microdrive.c |   61 +++++++++++++++------------------------------------
 1 files changed, 18 insertions(+), 43 deletions(-)

diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c
index 49a9b93..9f7789d 100644
--- a/hw/ide/microdrive.c
+++ b/hw/ide/microdrive.c
@@ -300,48 +300,23 @@ static void md_common_write(void *opaque, uint32_t at, uint16_t value)
     }
 }

-static void md_save(QEMUFile *f, void *opaque)
-{
-    MicroDriveState *s = opaque;
-    int i;
-
-    qemu_put_8s(f, &s->opt);
-    qemu_put_8s(f, &s->stat);
-    qemu_put_8s(f, &s->pins);
-
-    qemu_put_8s(f, &s->ctrl);
-    qemu_put_be16s(f, &s->io);
-    qemu_put_byte(f, s->cycle);
-
-    idebus_save(f, &s->bus);
-
-    for (i = 0; i < 2; i ++)
-        ide_save(f, &s->bus.ifs[i]);
-}
-
-static int md_load(QEMUFile *f, void *opaque, int version_id)
-{
-    MicroDriveState *s = opaque;
-    int i;
-
-    if (version_id != 0 && version_id != 3)
-        return -EINVAL;
-
-    qemu_get_8s(f, &s->opt);
-    qemu_get_8s(f, &s->stat);
-    qemu_get_8s(f, &s->pins);
-
-    qemu_get_8s(f, &s->ctrl);
-    qemu_get_be16s(f, &s->io);
-    s->cycle = qemu_get_byte(f);
-
-    idebus_load(f, &s->bus, version_id);
-
-    for (i = 0; i < 2; i ++)
-        ide_load(f, &s->bus.ifs[i], version_id);
-
-    return 0;
-}
+const VMStateDescription vmstate_microdrive = {
+    .name = "microdrive",
+    .version_id = 3,
+    .minimum_version_id = 0,
+    .minimum_version_id_old = 0,
+    .fields      = (VMStateField []) {
+        VMSTATE_UINT8(opt, MicroDriveState),
+        VMSTATE_UINT8(stat, MicroDriveState),
+        VMSTATE_UINT8(pins, MicroDriveState),
+        VMSTATE_UINT8(ctrl, MicroDriveState),
+        VMSTATE_UINT16(io, MicroDriveState),
+        VMSTATE_UINT8(cycle, MicroDriveState),
+        VMSTATE_IDE_BUS(bus, MicroDriveState),
+        VMSTATE_IDE_DRIVES(bus.ifs, MicroDriveState),
+        VMSTATE_END_OF_LIST()
+    }
+};

 static const uint8_t dscm1xxxx_cis[0x14a] = {
     [0x000] = CISTPL_DEVICE,	/* 5V Device Information */
@@ -569,7 +544,7 @@ PCMCIACardState *dscm1xxxx_init(DriveInfo *bdrv)
     md->bus.ifs[0].mdata_size = METADATA_SIZE;
     md->bus.ifs[0].mdata_storage = (uint8_t *) qemu_mallocz(METADATA_SIZE);

-    register_savevm("microdrive", -1, 3, md_save, md_load, md);
+    vmstate_register(-1, &vmstate_microdrive, md);

     return &md->card;
 }
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 08/13] ide: include bus in MMIOState
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (6 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 07/13] ide: port microdrive to vmstate Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 09/13] ide: port ide mmio to vmstate Juan Quintela
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel

Change pointer to struct by embedded struct.

Adjust all callers

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/mmio.c |   34 ++++++++++++++--------------------
 1 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/hw/ide/mmio.c b/hw/ide/mmio.c
index 7a6bf32..8c1ee04 100644
--- a/hw/ide/mmio.c
+++ b/hw/ide/mmio.c
@@ -37,31 +37,29 @@
  */

 typedef struct {
-    IDEBus *bus;
+    IDEBus bus;
     int shift;
 } MMIOState;

 static uint32_t mmio_ide_read (void *opaque, target_phys_addr_t addr)
 {
     MMIOState *s = opaque;
-    IDEBus *bus = s->bus;
     addr >>= s->shift;
     if (addr & 7)
-        return ide_ioport_read(bus, addr);
+        return ide_ioport_read(&s->bus, addr);
     else
-        return ide_data_readw(bus, 0);
+        return ide_data_readw(&s->bus, 0);
 }

 static void mmio_ide_write (void *opaque, target_phys_addr_t addr,
 	uint32_t val)
 {
     MMIOState *s = opaque;
-    IDEBus *bus = s->bus;
     addr >>= s->shift;
     if (addr & 7)
-        ide_ioport_write(bus, addr, val);
+        ide_ioport_write(&s->bus, addr, val);
     else
-        ide_data_writew(bus, 0, val);
+        ide_data_writew(&s->bus, 0, val);
 }

 static CPUReadMemoryFunc * const mmio_ide_reads[] = {
@@ -79,16 +77,14 @@ static CPUWriteMemoryFunc * const mmio_ide_writes[] = {
 static uint32_t mmio_ide_status_read (void *opaque, target_phys_addr_t addr)
 {
     MMIOState *s= opaque;
-    IDEBus *bus = s->bus;
-    return ide_status_read(bus, 0);
+    return ide_status_read(&s->bus, 0);
 }

 static void mmio_ide_cmd_write (void *opaque, target_phys_addr_t addr,
 	uint32_t val)
 {
     MMIOState *s = opaque;
-    IDEBus *bus = s->bus;
-    ide_cmd_write(bus, 0, val);
+    ide_cmd_write(&s->bus, 0, val);
 }

 static CPUReadMemoryFunc * const mmio_ide_status[] = {
@@ -107,18 +103,18 @@ static void mmio_ide_save(QEMUFile* f, void *opaque)
 {
     MMIOState *s = opaque;

-    idebus_save(f, s->bus);
-    ide_save(f, &s->bus->ifs[0]);
-    ide_save(f, &s->bus->ifs[1]);
+    idebus_save(f, &s->bus);
+    ide_save(f, &s->bus.ifs[0]);
+    ide_save(f, &s->bus.ifs[1]);
 }

 static int mmio_ide_load(QEMUFile* f, void *opaque, int version_id)
 {
     MMIOState *s = opaque;

-    idebus_load(f, s->bus, version_id);
-    ide_load(f, &s->bus->ifs[0], version_id);
-    ide_load(f, &s->bus->ifs[1], version_id);
+    idebus_load(f, &s->bus, version_id);
+    ide_load(f, &s->bus.ifs[0], version_id);
+    ide_load(f, &s->bus.ifs[1], version_id);
     return 0;
 }

@@ -127,12 +123,10 @@ void mmio_ide_init (target_phys_addr_t membase, target_phys_addr_t membase2,
                     DriveInfo *hd0, DriveInfo *hd1)
 {
     MMIOState *s = qemu_mallocz(sizeof(MMIOState));
-    IDEBus *bus = qemu_mallocz(sizeof(*bus));
     int mem1, mem2;

-    ide_init2(bus, hd0, hd1, irq);
+    ide_init2(&s->bus, hd0, hd1, irq);

-    s->bus = bus;
     s->shift = shift;

     mem1 = cpu_register_io_memory(mmio_ide_reads, mmio_ide_writes, s);
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 09/13] ide: port ide mmio to vmstate
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (7 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 08/13] ide: include bus in MMIOState Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 10/13] ide: port isa ide " Juan Quintela
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/mmio.c |   31 ++++++++++++-------------------
 1 files changed, 12 insertions(+), 19 deletions(-)

diff --git a/hw/ide/mmio.c b/hw/ide/mmio.c
index 8c1ee04..84a20e5 100644
--- a/hw/ide/mmio.c
+++ b/hw/ide/mmio.c
@@ -99,24 +99,17 @@ static CPUWriteMemoryFunc * const mmio_ide_cmd[] = {
     mmio_ide_cmd_write,
 };

-static void mmio_ide_save(QEMUFile* f, void *opaque)
-{
-    MMIOState *s = opaque;
-
-    idebus_save(f, &s->bus);
-    ide_save(f, &s->bus.ifs[0]);
-    ide_save(f, &s->bus.ifs[1]);
-}
-
-static int mmio_ide_load(QEMUFile* f, void *opaque, int version_id)
-{
-    MMIOState *s = opaque;
-
-    idebus_load(f, &s->bus, version_id);
-    ide_load(f, &s->bus.ifs[0], version_id);
-    ide_load(f, &s->bus.ifs[1], version_id);
-    return 0;
-}
+static const VMStateDescription vmstate_ide_mmio = {
+    .name = "mmio-ide",
+    .version_id = 3,
+    .minimum_version_id = 0,
+    .minimum_version_id_old = 0,
+    .fields      = (VMStateField []) {
+        VMSTATE_IDE_BUS(bus, MMIOState),
+        VMSTATE_IDE_DRIVES(bus.ifs, MMIOState),
+        VMSTATE_END_OF_LIST()
+    }
+};

 void mmio_ide_init (target_phys_addr_t membase, target_phys_addr_t membase2,
                     qemu_irq irq, int shift,
@@ -133,6 +126,6 @@ void mmio_ide_init (target_phys_addr_t membase, target_phys_addr_t membase2,
     mem2 = cpu_register_io_memory(mmio_ide_status, mmio_ide_cmd, s);
     cpu_register_physical_memory(membase, 16 << shift, mem1);
     cpu_register_physical_memory(membase2, 2 << shift, mem2);
-    register_savevm("mmio-ide", 0, 3, mmio_ide_save, mmio_ide_load, s);
+    vmstate_register(0, &vmstate_ide_mmio, s);
 }

-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 10/13] ide: port isa ide to vmstate
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (8 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 09/13] ide: port ide mmio to vmstate Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 11/13] ide: port pmac " Juan Quintela
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/isa.c |   31 ++++++++++++-------------------
 1 files changed, 12 insertions(+), 19 deletions(-)

diff --git a/hw/ide/isa.c b/hw/ide/isa.c
index 9f0fdd6..fe67bcd 100644
--- a/hw/ide/isa.c
+++ b/hw/ide/isa.c
@@ -44,24 +44,17 @@ typedef struct ISAIDEState {
     qemu_irq  irq;
 } ISAIDEState;

-static void isa_ide_save(QEMUFile* f, void *opaque)
-{
-    ISAIDEState *s = opaque;
-
-    idebus_save(f, &s->bus);
-    ide_save(f, &s->bus.ifs[0]);
-    ide_save(f, &s->bus.ifs[1]);
-}
-
-static int isa_ide_load(QEMUFile* f, void *opaque, int version_id)
-{
-    ISAIDEState *s = opaque;
-
-    idebus_load(f, &s->bus, version_id);
-    ide_load(f, &s->bus.ifs[0], version_id);
-    ide_load(f, &s->bus.ifs[1], version_id);
-    return 0;
-}
+static const VMStateDescription vmstate_ide_isa = {
+    .name = "isa-ide",
+    .version_id = 3,
+    .minimum_version_id = 0,
+    .minimum_version_id_old = 0,
+    .fields      = (VMStateField []) {
+        VMSTATE_IDE_BUS(bus, ISAIDEState),
+        VMSTATE_IDE_DRIVES(bus.ifs, ISAIDEState),
+        VMSTATE_END_OF_LIST()
+    }
+};

 static int isa_ide_initfn(ISADevice *dev)
 {
@@ -71,7 +64,7 @@ static int isa_ide_initfn(ISADevice *dev)
     ide_init_ioport(&s->bus, s->iobase, s->iobase2);
     isa_init_irq(dev, &s->irq, s->isairq);
     ide_init2(&s->bus, NULL, NULL, s->irq);
-    register_savevm("isa-ide", 0, 3, isa_ide_save, isa_ide_load, s);
+    vmstate_register(0, &vmstate_ide_isa, s);
     return 0;
 };

-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 11/13] ide: port pmac ide to vmstate
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (9 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 10/13] ide: port isa ide " Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 12/13] ide: port pci " Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 13/13] ide: pre VMState functions are not needed anymore Juan Quintela
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/macio.c |   42 +++++++++++-------------------------------
 1 files changed, 11 insertions(+), 31 deletions(-)

diff --git a/hw/ide/macio.c b/hw/ide/macio.c
index a11223e..e02e499 100644
--- a/hw/ide/macio.c
+++ b/hw/ide/macio.c
@@ -291,37 +291,17 @@ static CPUReadMemoryFunc * const pmac_ide_read[] = {
     pmac_ide_readl,
 };

-static void pmac_ide_save(QEMUFile *f, void *opaque)
-{
-    MACIOIDEState *d = opaque;
-    unsigned int i;
-
-    /* per IDE interface data */
-    idebus_save(f, &d->bus);
-
-    /* per IDE drive data */
-    for(i = 0; i < 2; i++) {
-        ide_save(f, &d->bus.ifs[i]);
-    }
-}
-
-static int pmac_ide_load(QEMUFile *f, void *opaque, int version_id)
-{
-    MACIOIDEState *d = opaque;
-    unsigned int i;
-
-    if (version_id != 1 && version_id != 3)
-        return -EINVAL;
-
-    /* per IDE interface data */
-    idebus_load(f, &d->bus, version_id);
-
-    /* per IDE drive data */
-    for(i = 0; i < 2; i++) {
-        ide_load(f, &d->bus.ifs[i], version_id);
+static const VMStateDescription vmstate_pmac = {
+    .name = "ide",
+    .version_id = 3,
+    .minimum_version_id = 0,
+    .minimum_version_id_old = 0,
+    .fields      = (VMStateField []) {
+        VMSTATE_IDE_BUS(bus, MACIOIDEState),
+        VMSTATE_IDE_DRIVES(bus.ifs, MACIOIDEState),
+        VMSTATE_END_OF_LIST()
     }
-    return 0;
-}
+};

 static void pmac_ide_reset(void *opaque)
 {
@@ -348,7 +328,7 @@ int pmac_ide_init (DriveInfo **hd_table, qemu_irq irq,

     pmac_ide_memory = cpu_register_io_memory(pmac_ide_read,
                                              pmac_ide_write, d);
-    register_savevm("ide", 0, 3, pmac_ide_save, pmac_ide_load, d);
+    vmstate_register(0, &vmstate_pmac, d);
     qemu_register_reset(pmac_ide_reset, d);
     pmac_ide_reset(d);

-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 12/13] ide: port pci ide to vmstate
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (10 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 11/13] ide: port pmac " Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 13/13] ide: pre VMState functions are not needed anymore Juan Quintela
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/cmd646.c   |    2 +-
 hw/ide/internal.h |    3 ++
 hw/ide/pci.c      |   95 ++++++++++++++++++++---------------------------------
 hw/ide/pci.h      |    4 +-
 hw/ide/piix.c     |    2 +-
 5 files changed, 43 insertions(+), 63 deletions(-)

diff --git a/hw/ide/cmd646.c b/hw/ide/cmd646.c
index 5c8f615..ea116fc 100644
--- a/hw/ide/cmd646.c
+++ b/hw/ide/cmd646.c
@@ -233,7 +233,7 @@ static int pci_cmd646_ide_initfn(PCIDevice *dev)
     ide_init2(&d->bus[0], NULL, NULL, irq[0]);
     ide_init2(&d->bus[1], NULL, NULL, irq[1]);

-    register_savevm("ide", 0, 3, pci_ide_save, pci_ide_load, d);
+    vmstate_register(0, &vmstate_ide_pci, d);
     qemu_register_reset(cmd646_reset, d);
     cmd646_reset(d);
     return 0;
diff --git a/hw/ide/internal.h b/hw/ide/internal.h
index a67e39f..158146e 100644
--- a/hw/ide/internal.h
+++ b/hw/ide/internal.h
@@ -517,6 +517,9 @@ extern const VMStateDescription vmstate_ide_bus;
 #define VMSTATE_IDE_BUS(_field, _state)                          \
     VMSTATE_STRUCT(_field, _state, 1, vmstate_ide_bus, IDEBus)

+#define VMSTATE_IDE_BUS_ARRAY(_field, _state, _num)              \
+    VMSTATE_STRUCT_ARRAY(_field, _state, _num, 1, vmstate_ide_bus, IDEBus)
+
 extern const VMStateDescription vmstate_ide_drive;

 #define VMSTATE_IDE_DRIVES(_field, _state) \
diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index dea126a..780fc5f 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -121,75 +121,52 @@ void bmdma_addr_writel(void *opaque, uint32_t addr, uint32_t val)
     bm->cur_addr = bm->addr;
 }

-void pci_ide_save(QEMUFile* f, void *opaque)
-{
-    PCIIDEState *d = opaque;
-    int i;
-
-    pci_device_save(&d->dev, f);
-
-    for(i = 0; i < 2; i++) {
-        BMDMAState *bm = &d->bmdma[i];
-        uint8_t ifidx;
-        qemu_put_8s(f, &bm->cmd);
-        qemu_put_8s(f, &bm->status);
-        qemu_put_be32s(f, &bm->addr);
-        qemu_put_sbe64s(f, &bm->sector_num);
-        qemu_put_be32s(f, &bm->nsector);
-        ifidx = bm->unit + 2*i;
-        qemu_put_8s(f, &ifidx);
-        /* XXX: if a transfer is pending, we do not save it yet */
+static const VMStateDescription vmstate_bmdma = {
+    .name = "ide bmdma",
+    .version_id = 3,
+    .minimum_version_id = 0,
+    .minimum_version_id_old = 0,
+    .fields      = (VMStateField []) {
+        VMSTATE_UINT8(cmd, BMDMAState),
+        VMSTATE_UINT8(status, BMDMAState),
+        VMSTATE_UINT32(addr, BMDMAState),
+        VMSTATE_INT64(sector_num, BMDMAState),
+        VMSTATE_UINT32(nsector, BMDMAState),
+        VMSTATE_UINT8(unit, BMDMAState),
+        VMSTATE_END_OF_LIST()
     }
+};

-    /* per IDE interface data */
-    for(i = 0; i < 2; i++) {
-        idebus_save(f, d->bus+i);
-    }
-
-    /* per IDE drive data */
-    for(i = 0; i < 2; i++) {
-        ide_save(f, &d->bus[i].ifs[0]);
-        ide_save(f, &d->bus[i].ifs[1]);
-    }
-}
-
-int pci_ide_load(QEMUFile* f, void *opaque, int version_id)
+static int ide_pci_post_load(void *opaque, int version_id)
 {
     PCIIDEState *d = opaque;
-    int ret, i;
-
-    if (version_id != 2 && version_id != 3)
-        return -EINVAL;
-    ret = pci_device_load(&d->dev, f);
-    if (ret < 0)
-        return ret;
-
-    for(i = 0; i < 2; i++) {
-        BMDMAState *bm = &d->bmdma[i];
-        uint8_t ifidx;
-        qemu_get_8s(f, &bm->cmd);
-        qemu_get_8s(f, &bm->status);
-        qemu_get_be32s(f, &bm->addr);
-        qemu_get_sbe64s(f, &bm->sector_num);
-        qemu_get_be32s(f, &bm->nsector);
-        qemu_get_8s(f, &ifidx);
-        bm->unit = ifidx & 1;
-        /* XXX: if a transfer is pending, we do not save it yet */
-    }
-
-    /* per IDE interface data */
-    for(i = 0; i < 2; i++) {
-        idebus_load(f, d->bus+i, version_id);
-    }
+    int i;

-    /* per IDE drive data */
     for(i = 0; i < 2; i++) {
-        ide_load(f, &d->bus[i].ifs[0], version_id);
-        ide_load(f, &d->bus[i].ifs[1], version_id);
+        /* current versions always store 0/1, but older version
+           stored bigger values. We only need last bit */
+        d->bmdma[i].unit &= 1;
     }
     return 0;
 }

+const VMStateDescription vmstate_ide_pci = {
+    .name = "ide",
+    .version_id = 3,
+    .minimum_version_id = 0,
+    .minimum_version_id_old = 0,
+    .post_load = ide_pci_post_load,
+    .fields      = (VMStateField []) {
+        VMSTATE_PCI_DEVICE(dev, PCIIDEState),
+        VMSTATE_STRUCT_ARRAY(bmdma, PCIIDEState, 2, 0,
+                             vmstate_bmdma, BMDMAState),
+        VMSTATE_IDE_BUS_ARRAY(bus, PCIIDEState, 2),
+        VMSTATE_IDE_DRIVES(bus[0].ifs, PCIIDEState),
+        VMSTATE_IDE_DRIVES(bus[1].ifs, PCIIDEState),
+        VMSTATE_END_OF_LIST()
+    }
+};
+
 void pci_ide_create_devs(PCIDevice *dev, DriveInfo **hd_table)
 {
     PCIIDEState *d = DO_UPCAST(PCIIDEState, dev, dev);
diff --git a/hw/ide/pci.h b/hw/ide/pci.h
index 9377503..d46a95e 100644
--- a/hw/ide/pci.h
+++ b/hw/ide/pci.h
@@ -17,7 +17,7 @@ uint32_t bmdma_addr_readw(void *opaque, uint32_t addr);
 void bmdma_addr_writew(void *opaque, uint32_t addr, uint32_t val);
 uint32_t bmdma_addr_readl(void *opaque, uint32_t addr);
 void bmdma_addr_writel(void *opaque, uint32_t addr, uint32_t val);
-void pci_ide_save(QEMUFile* f, void *opaque);
-int pci_ide_load(QEMUFile* f, void *opaque, int version_id);
 void pci_ide_create_devs(PCIDevice *dev, DriveInfo **hd_table);
+
+extern const VMStateDescription vmstate_ide_pci;
 #endif
diff --git a/hw/ide/piix.c b/hw/ide/piix.c
index ddce684..a17bf59 100644
--- a/hw/ide/piix.c
+++ b/hw/ide/piix.c
@@ -124,7 +124,7 @@ static int pci_piix_ide_initfn(PCIIDEState *d)

     pci_register_bar(&d->dev, 4, 0x10, PCI_ADDRESS_SPACE_IO, bmdma_map);

-    register_savevm("ide", 0, 3, pci_ide_save, pci_ide_load, d);
+    vmstate_register(0, &vmstate_ide_pci, d);

     ide_bus_new(&d->bus[0], &d->dev.qdev);
     ide_bus_new(&d->bus[1], &d->dev.qdev);
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PATCH 13/13] ide: pre VMState functions are not needed anymore
  2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
                   ` (11 preceding siblings ...)
  2009-10-14 11:37 ` [Qemu-devel] [PATCH 12/13] ide: port pci " Juan Quintela
@ 2009-10-14 11:37 ` Juan Quintela
  12 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2009-10-14 11:37 UTC (permalink / raw)
  To: qemu-devel


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 hw/ide/core.c     |   21 ---------------------
 hw/ide/internal.h |    5 -----
 2 files changed, 0 insertions(+), 26 deletions(-)

diff --git a/hw/ide/core.c b/hw/ide/core.c
index c08d5aa..fffcd00 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -2643,17 +2643,6 @@ const VMStateDescription vmstate_ide_drive = {
     }
 };

-void ide_save(QEMUFile* f, IDEState *s)
-{
-    vmstate_save_state(f, &vmstate_ide_drive, s);
-}
-
-void ide_load(QEMUFile* f, IDEState *s, int version_id)
-{
-    vmstate_load_state(f, &vmstate_ide_drive, s, vmstate_ide_drive.version_id);
-}
-
-
 const VMStateDescription vmstate_ide_bus = {
     .name = "ide_bus",
     .version_id = 1,
@@ -2666,16 +2655,6 @@ const VMStateDescription vmstate_ide_bus = {
     }
 };

-void idebus_save(QEMUFile* f, IDEBus *bus)
-{
-    vmstate_save_state(f, &vmstate_ide_bus, bus);
-}
-
-void idebus_load(QEMUFile* f, IDEBus *bus, int version_id)
-{
-    vmstate_load_state(f, &vmstate_ide_bus, bus, vmstate_ide_bus.version_id);
-}
-
 /***********************************************************/
 /* PCI IDE definitions */

diff --git a/hw/ide/internal.h b/hw/ide/internal.h
index 158146e..cfae4c2 100644
--- a/hw/ide/internal.h
+++ b/hw/ide/internal.h
@@ -525,11 +525,6 @@ extern const VMStateDescription vmstate_ide_drive;
 #define VMSTATE_IDE_DRIVES(_field, _state) \
     VMSTATE_STRUCT_ARRAY(_field, _state, 2, 3, vmstate_ide_drive, IDEState)

-void ide_save(QEMUFile* f, IDEState *s);
-void ide_load(QEMUFile* f, IDEState *s, int version_id);
-void idebus_save(QEMUFile* f, IDEBus *bus);
-void idebus_load(QEMUFile* f, IDEBus *bus, int version_id);
-
 void ide_reset(IDEState *s);
 int64_t ide_get_sector(IDEState *s);
 void ide_set_sector(IDEState *s, int64_t sector_num);
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2009-10-14 11:38 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-14 11:37 [Qemu-devel] [PATCH 00/13] Port ide to vmstate Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 01/13] ide: port idebus " Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 02/13] ide: change identify_data type to uint8_t Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 03/13] vmstate: add VMSTATE_BUFFER_TEST Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 04/13] ide: port ide_drive to vmstate Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 05/13] ide: microdrive cycle field is set as uint8_t Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 06/13] ide: add VMSTATE_IDE_BUS and VMSTATE_IDE_DRIVES Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 07/13] ide: port microdrive to vmstate Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 08/13] ide: include bus in MMIOState Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 09/13] ide: port ide mmio to vmstate Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 10/13] ide: port isa ide " Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 11/13] ide: port pmac " Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 12/13] ide: port pci " Juan Quintela
2009-10-14 11:37 ` [Qemu-devel] [PATCH 13/13] ide: pre VMState functions are not needed anymore Juan Quintela

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.