qemu-devel.nongnu.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).