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