* [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).