Revision 7783e9f0 hw/ps2.c

b/hw/ps2.c
461 461
    q->count = 0;
462 462
}
463 463

  
464
static void ps2_common_save (QEMUFile *f, PS2State *s)
465
{
466
    qemu_put_be32s (f, &s->write_cmd);
467
    qemu_put_be32s (f, &s->queue.rptr);
468
    qemu_put_be32s (f, &s->queue.wptr);
469
    qemu_put_be32s (f, &s->queue.count);
470
    qemu_put_buffer (f, s->queue.data, sizeof (s->queue.data));
471
}
472

  
473
static void ps2_common_load (QEMUFile *f, PS2State *s)
474
{
475
    qemu_get_be32s (f, &s->write_cmd);
476
    qemu_get_be32s (f, &s->queue.rptr);
477
    qemu_get_be32s (f, &s->queue.wptr);
478
    qemu_get_be32s (f, &s->queue.count);
479
    qemu_get_buffer (f, s->queue.data, sizeof (s->queue.data));
480
}
481

  
464 482
static void ps2_kbd_save(QEMUFile* f, void* opaque)
465 483
{
466 484
    PS2KbdState *s = (PS2KbdState*)opaque;
467
    
468
    qemu_put_be32s(f, &s->common.write_cmd);
485

  
486
    ps2_common_save (f, &s->common);
469 487
    qemu_put_be32s(f, &s->scan_enabled);
488
    qemu_put_be32s(f, &s->translate);
470 489
}
471 490

  
472 491
static void ps2_mouse_save(QEMUFile* f, void* opaque)
473 492
{
474 493
    PS2MouseState *s = (PS2MouseState*)opaque;
475
    
476
    qemu_put_be32s(f, &s->common.write_cmd);
494

  
495
    ps2_common_save (f, &s->common);
477 496
    qemu_put_8s(f, &s->mouse_status);
478 497
    qemu_put_8s(f, &s->mouse_resolution);
479 498
    qemu_put_8s(f, &s->mouse_sample_rate);
......
489 508
static int ps2_kbd_load(QEMUFile* f, void* opaque, int version_id)
490 509
{
491 510
    PS2KbdState *s = (PS2KbdState*)opaque;
492
    
493
    if (version_id != 1)
511

  
512
    if (version_id != 2)
494 513
        return -EINVAL;
495
    qemu_get_be32s(f, &s->common.write_cmd);
514

  
515
    ps2_common_load (f, &s->common);
496 516
    qemu_get_be32s(f, &s->scan_enabled);
517
    qemu_get_be32s(f, &s->translate);
497 518
    return 0;
498 519
}
499 520

  
500 521
static int ps2_mouse_load(QEMUFile* f, void* opaque, int version_id)
501 522
{
502 523
    PS2MouseState *s = (PS2MouseState*)opaque;
503
    
504
    if (version_id != 1)
524

  
525
    if (version_id != 2)
505 526
        return -EINVAL;
506
    qemu_get_be32s(f, &s->common.write_cmd);
527

  
528
    ps2_common_load (f, &s->common);
507 529
    qemu_get_8s(f, &s->mouse_status);
508 530
    qemu_get_8s(f, &s->mouse_resolution);
509 531
    qemu_get_8s(f, &s->mouse_sample_rate);
......
524 546
    s->common.update_irq = update_irq;
525 547
    s->common.update_arg = update_arg;
526 548
    ps2_reset(&s->common);
527
    register_savevm("ps2kbd", 0, 1, ps2_kbd_save, ps2_kbd_load, s);
549
    register_savevm("ps2kbd", 0, 2, ps2_kbd_save, ps2_kbd_load, s);
528 550
    qemu_add_kbd_event_handler(ps2_put_keycode, s);
529 551
    qemu_register_reset(ps2_reset, &s->common);
530 552
    return s;
......
537 559
    s->common.update_irq = update_irq;
538 560
    s->common.update_arg = update_arg;
539 561
    ps2_reset(&s->common);
540
    register_savevm("ps2mouse", 0, 1, ps2_mouse_save, ps2_mouse_load, s);
562
    register_savevm("ps2mouse", 0, 2, ps2_mouse_save, ps2_mouse_load, s);
541 563
    qemu_add_mouse_event_handler(ps2_mouse_event, s);
542 564
    qemu_register_reset(ps2_reset, &s->common);
543 565
    return s;

Also available in: Unified diff