vmstate: port max111x

Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
Juan Quintela 2010-12-03 01:03:59 +01:00 committed by Anthony Liguori
parent 54d970d134
commit 38cb3aa9b4
1 changed files with 17 additions and 32 deletions

View File

@ -94,36 +94,22 @@ static uint32_t max111x_transfer(SSISlave *dev, uint32_t value)
return max111x_read(s); return max111x_read(s);
} }
static void max111x_save(QEMUFile *f, void *opaque) static const VMStateDescription vmstate_max111x = {
{ .name = "max111x",
MAX111xState *s = (MAX111xState *) opaque; .version_id = 0,
int i; .minimum_version_id = 0,
.minimum_version_id_old = 0,
qemu_put_8s(f, &s->tb1); .fields = (VMStateField[]) {
qemu_put_8s(f, &s->rb2); VMSTATE_UINT8(tb1, MAX111xState),
qemu_put_8s(f, &s->rb3); VMSTATE_UINT8(rb2, MAX111xState),
qemu_put_be32(f, s->inputs); VMSTATE_UINT8(rb3, MAX111xState),
qemu_put_be32(f, s->com); VMSTATE_INT32_EQUAL(inputs, MAX111xState),
for (i = 0; i < s->inputs; i ++) VMSTATE_INT32(com, MAX111xState),
qemu_put_byte(f, s->input[i]); VMSTATE_ARRAY_INT32_UNSAFE(input, MAX111xState, inputs,
} vmstate_info_uint8, uint8_t),
VMSTATE_END_OF_LIST()
static int max111x_load(QEMUFile *f, void *opaque, int version_id) }
{ };
MAX111xState *s = (MAX111xState *) opaque;
int i;
qemu_get_8s(f, &s->tb1);
qemu_get_8s(f, &s->rb2);
qemu_get_8s(f, &s->rb3);
if (s->inputs != qemu_get_be32(f))
return -EINVAL;
s->com = qemu_get_be32(f);
for (i = 0; i < s->inputs; i ++)
s->input[i] = qemu_get_byte(f);
return 0;
}
static int max111x_init(SSISlave *dev, int inputs) static int max111x_init(SSISlave *dev, int inputs)
{ {
@ -143,8 +129,7 @@ static int max111x_init(SSISlave *dev, int inputs)
s->input[7] = 0x80; s->input[7] = 0x80;
s->com = 0; s->com = 0;
register_savevm(&dev->qdev, "max111x", -1, 0, vmstate_register(&dev->qdev, -1, &vmstate_max111x, s);
max111x_save, max111x_load, s);
return 0; return 0;
} }