Esempio n. 1
0
void i8042_isa_mouse_fake_event(void *opaque)
{
    ISADevice *dev = opaque;
    ISAKBDState *isa = I8042(dev);
    KBDState *s = &isa->kbd;

    ps2_mouse_fake_event(s->mouse);
}
Esempio n. 2
0
void ps2_keyboard_controller_device::device_add_mconfig(machine_config &config)
{
	I8042(config, m_mcu, DERIVED_CLOCK(1, 1));
	m_mcu->p1_in_cb().set(FUNC(ps2_keyboard_controller_device::p1_r));
	m_mcu->p1_out_cb().set_nop();
	m_mcu->p2_in_cb().set_constant(0xffU);
	m_mcu->p2_out_cb().set(FUNC(ps2_keyboard_controller_device::p2_w));
	m_mcu->t0_in_cb().set([this] () { return kbd_clk_r(); });
	m_mcu->t1_in_cb().set([this] () { return aux_clk_r(); });
}
Esempio n. 3
0
static void i8042_initfn(Object *obj)
{
    ISAKBDState *isa_s = I8042(obj);
    KBDState *s = &isa_s->kbd;

    memory_region_init_io(isa_s->io + 0, obj, &i8042_data_ops, s,
                          "i8042-data", 1);
    memory_region_init_io(isa_s->io + 1, obj, &i8042_cmd_ops, s,
                          "i8042-cmd", 1);

    qdev_init_gpio_out_named(DEVICE(obj), &s->a20_out, I8042_A20_LINE, 1);
}
Esempio n. 4
0
static void i8042_realizefn(DeviceState *dev, Error **errp)
{
    ISADevice *isadev = ISA_DEVICE(dev);
    ISAKBDState *isa_s = I8042(dev);
    KBDState *s = &isa_s->kbd;

    isa_init_irq(isadev, &s->irq_kbd, 1);
    isa_init_irq(isadev, &s->irq_mouse, 12);

    isa_register_ioport(isadev, isa_s->io + 0, 0x60);
    isa_register_ioport(isadev, isa_s->io + 1, 0x64);

    s->kbd = ps2_kbd_init(kbd_update_kbd_irq, s);
    s->mouse = ps2_mouse_init(kbd_update_aux_irq, s);
    qemu_register_reset(kbd_reset, s);
}