Revision 3c619b59

b/hw/pckbd.c
339 339
    s->status = KBD_STAT_CMD | KBD_STAT_UNLOCKED;
340 340
}
341 341

  
342
static void kbd_save(QEMUFile* f, void* opaque)
343
{
344
    KBDState *s = (KBDState*)opaque;
345

  
346
    qemu_put_8s(f, &s->write_cmd);
347
    qemu_put_8s(f, &s->status);
348
    qemu_put_8s(f, &s->mode);
349
    qemu_put_8s(f, &s->pending);
350
}
351

  
352
static int kbd_load(QEMUFile* f, void* opaque, int version_id)
353
{
354
    KBDState *s = (KBDState*)opaque;
355

  
356
    if (version_id != 3)
357
        return -EINVAL;
358
    qemu_get_8s(f, &s->write_cmd);
359
    qemu_get_8s(f, &s->status);
360
    qemu_get_8s(f, &s->mode);
361
    qemu_get_8s(f, &s->pending);
362
    return 0;
363
}
342
static const VMStateDescription vmstate_kbd = {
343
    .name = "pckbd",
344
    .version_id = 3,
345
    .minimum_version_id = 3,
346
    .minimum_version_id_old = 3,
347
    .fields      = (VMStateField []) {
348
        VMSTATE_UINT8(write_cmd, KBDState),
349
        VMSTATE_UINT8(status, KBDState),
350
        VMSTATE_UINT8(mode, KBDState),
351
        VMSTATE_UINT8(pending, KBDState),
352
        VMSTATE_END_OF_LIST()
353
    }
354
};
364 355

  
365 356
/* Memory mapped interface */
366 357
static uint32_t kbd_mm_readb (void *opaque, target_phys_addr_t addr)
......
407 398
    s->mask = mask;
408 399

  
409 400
    kbd_reset(s);
410
    register_savevm("pckbd", 0, 3, kbd_save, kbd_load, s);
401
    vmstate_register(0, &vmstate_kbd, s);
411 402
    s_io_memory = cpu_register_io_memory(kbd_mm_read, kbd_mm_write, s);
412 403
    cpu_register_physical_memory(base, size, s_io_memory);
413 404

  
......
432 423
    isa_init_irq(dev, &s->irq_mouse, 12);
433 424

  
434 425
    kbd_reset(s);
435
    register_savevm("pckbd", 0, 3, kbd_save, kbd_load, s);
426
    vmstate_register(0, &vmstate_kbd, s);
436 427
    register_ioport_read(0x60, 1, 1, kbd_read_data, s);
437 428
    register_ioport_write(0x60, 1, 1, kbd_write_data, s);
438 429
    register_ioport_read(0x64, 1, 1, kbd_read_status, s);

Also available in: Unified diff