Revision ef74679a
b/hw/ps2.c | ||
---|---|---|
488 | 488 |
} |
489 | 489 |
} |
490 | 490 |
|
491 |
static void ps2_reset(void *opaque)
|
|
491 |
static void ps2_common_reset(PS2State *s)
|
|
492 | 492 |
{ |
493 |
PS2State *s = (PS2State *)opaque; |
|
494 | 493 |
PS2Queue *q; |
495 | 494 |
s->write_cmd = -1; |
496 | 495 |
q = &s->queue; |
... | ... | |
500 | 499 |
s->update_irq(s->update_arg, 0); |
501 | 500 |
} |
502 | 501 |
|
502 |
static void ps2_kbd_reset(void *opaque) |
|
503 |
{ |
|
504 |
PS2KbdState *s = (PS2KbdState *) opaque; |
|
505 |
|
|
506 |
ps2_common_reset(&s->common); |
|
507 |
s->scan_enabled = 0; |
|
508 |
s->translate = 0; |
|
509 |
s->scancode_set = 0; |
|
510 |
} |
|
511 |
|
|
512 |
static void ps2_mouse_reset(void *opaque) |
|
513 |
{ |
|
514 |
PS2MouseState *s = (PS2MouseState *) opaque; |
|
515 |
|
|
516 |
ps2_common_reset(&s->common); |
|
517 |
s->mouse_status = 0; |
|
518 |
s->mouse_resolution = 0; |
|
519 |
s->mouse_sample_rate = 0; |
|
520 |
s->mouse_wrap = 0; |
|
521 |
s->mouse_type = 0; |
|
522 |
s->mouse_detect_state = 0; |
|
523 |
s->mouse_dx = 0; |
|
524 |
s->mouse_dy = 0; |
|
525 |
s->mouse_dz = 0; |
|
526 |
s->mouse_buttons = 0; |
|
527 |
} |
|
528 |
|
|
503 | 529 |
static void ps2_common_save (QEMUFile *f, PS2State *s) |
504 | 530 |
{ |
505 | 531 |
qemu_put_be32 (f, s->write_cmd); |
... | ... | |
590 | 616 |
s->common.update_irq = update_irq; |
591 | 617 |
s->common.update_arg = update_arg; |
592 | 618 |
s->scancode_set = 2; |
593 |
ps2_reset(&s->common);
|
|
619 |
ps2_kbd_reset(s);
|
|
594 | 620 |
register_savevm("ps2kbd", 0, 3, ps2_kbd_save, ps2_kbd_load, s); |
595 | 621 |
qemu_add_kbd_event_handler(ps2_put_keycode, s); |
596 |
qemu_register_reset(ps2_reset, &s->common);
|
|
622 |
qemu_register_reset(ps2_kbd_reset, s);
|
|
597 | 623 |
return s; |
598 | 624 |
} |
599 | 625 |
|
... | ... | |
603 | 629 |
|
604 | 630 |
s->common.update_irq = update_irq; |
605 | 631 |
s->common.update_arg = update_arg; |
606 |
ps2_reset(&s->common);
|
|
632 |
ps2_mouse_reset(s);
|
|
607 | 633 |
register_savevm("ps2mouse", 0, 2, ps2_mouse_save, ps2_mouse_load, s); |
608 | 634 |
qemu_add_mouse_event_handler(ps2_mouse_event, s, 0, "QEMU PS/2 Mouse"); |
609 |
qemu_register_reset(ps2_reset, &s->common);
|
|
635 |
qemu_register_reset(ps2_mouse_reset, s);
|
|
610 | 636 |
return s; |
611 | 637 |
} |
Also available in: Unified diff