vmstate: port adb_kbd

Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
Juan Quintela 2010-12-01 21:54:04 +01:00 committed by Anthony Liguori
parent ec444452b8
commit 1f1f0600aa

View File

@ -261,30 +261,19 @@ static int adb_kbd_request(ADBDevice *d, uint8_t *obuf,
return olen;
}
static void adb_kbd_save(QEMUFile *f, void *opaque)
{
KBDState *s = (KBDState *)opaque;
qemu_put_buffer(f, s->data, sizeof(s->data));
qemu_put_sbe32s(f, &s->rptr);
qemu_put_sbe32s(f, &s->wptr);
qemu_put_sbe32s(f, &s->count);
}
static int adb_kbd_load(QEMUFile *f, void *opaque, int version_id)
{
KBDState *s = (KBDState *)opaque;
if (version_id != 1)
return -EINVAL;
qemu_get_buffer(f, s->data, sizeof(s->data));
qemu_get_sbe32s(f, &s->rptr);
qemu_get_sbe32s(f, &s->wptr);
qemu_get_sbe32s(f, &s->count);
return 0;
}
static const VMStateDescription vmstate_adb_kbd = {
.name = "adb_kbd",
.version_id = 1,
.minimum_version_id = 1,
.minimum_version_id_old = 1,
.fields = (VMStateField[]) {
VMSTATE_BUFFER(data, KBDState),
VMSTATE_INT32(rptr, KBDState),
VMSTATE_INT32(wptr, KBDState),
VMSTATE_INT32(count, KBDState),
VMSTATE_END_OF_LIST()
}
};
static int adb_kbd_reset(ADBDevice *d)
{
@ -305,8 +294,7 @@ void adb_kbd_init(ADBBusState *bus)
d = adb_register_device(bus, ADB_KEYBOARD, adb_kbd_request,
adb_kbd_reset, s);
qemu_add_kbd_event_handler(adb_kbd_put_keycode, d);
register_savevm(NULL, "adb_kbd", -1, 1, adb_kbd_save,
adb_kbd_load, s);
vmstate_register(NULL, -1, &vmstate_adb_kbd, s);
}
/***************************************************************/