Revision 675376f2 hw/pckbd.c

b/hw/pckbd.c
642 642
    q->count = 0;
643 643
}
644 644

  
645
static void kbd_save(QEMUFile* f, void* opaque)
646
{
647
    KBDState *s = (KBDState*)opaque;
648
    
649
    qemu_put_8s(f, &s->write_cmd);
650
    qemu_put_8s(f, &s->status);
651
    qemu_put_8s(f, &s->mode);
652
    qemu_put_be32s(f, &s->kbd_write_cmd);
653
    qemu_put_be32s(f, &s->scan_enabled);
654
    qemu_put_be32s(f, &s->mouse_write_cmd);
655
    qemu_put_8s(f, &s->mouse_status);
656
    qemu_put_8s(f, &s->mouse_resolution);
657
    qemu_put_8s(f, &s->mouse_sample_rate);
658
    qemu_put_8s(f, &s->mouse_wrap);
659
    qemu_put_8s(f, &s->mouse_type);
660
    qemu_put_8s(f, &s->mouse_detect_state);
661
    qemu_put_be32s(f, &s->mouse_dx);
662
    qemu_put_be32s(f, &s->mouse_dy);
663
    qemu_put_be32s(f, &s->mouse_dz);
664
    qemu_put_8s(f, &s->mouse_buttons);
665
}
666

  
667
static int kbd_load(QEMUFile* f, void* opaque, int version_id)
668
{
669
    KBDState *s = (KBDState*)opaque;
670
    
671
    if (version_id != 1)
672
        return -EINVAL;
673
    qemu_get_8s(f, &s->write_cmd);
674
    qemu_get_8s(f, &s->status);
675
    qemu_get_8s(f, &s->mode);
676
    qemu_get_be32s(f, &s->kbd_write_cmd);
677
    qemu_get_be32s(f, &s->scan_enabled);
678
    qemu_get_be32s(f, &s->mouse_write_cmd);
679
    qemu_get_8s(f, &s->mouse_status);
680
    qemu_get_8s(f, &s->mouse_resolution);
681
    qemu_get_8s(f, &s->mouse_sample_rate);
682
    qemu_get_8s(f, &s->mouse_wrap);
683
    qemu_get_8s(f, &s->mouse_type);
684
    qemu_get_8s(f, &s->mouse_detect_state);
685
    qemu_get_be32s(f, &s->mouse_dx);
686
    qemu_get_be32s(f, &s->mouse_dy);
687
    qemu_get_be32s(f, &s->mouse_dz);
688
    qemu_get_8s(f, &s->mouse_buttons);
689
    return 0;
690
}
691

  
645 692
void kbd_init(void)
646 693
{
647 694
    KBDState *s = &kbd_state;
648 695
    
649 696
    kbd_reset(s);
697
    register_savevm("pckbd", 0, 1, kbd_save, kbd_load, s);
650 698
    register_ioport_read(0x60, 1, 1, kbd_read_data, s);
651 699
    register_ioport_write(0x60, 1, 1, kbd_write_data, s);
652 700
    register_ioport_read(0x64, 1, 1, kbd_read_status, s);

Also available in: Unified diff