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