예제 #1
0
파일: ps2port.c 프로젝트: 3a9LL/panda
// INT09h : Keyboard Hardware Service Entry Point
void VISIBLE16
handle_09(void)
{
    if (! CONFIG_PS2PORT)
        return;

    debug_isr(DEBUG_ISR_09);

    // read key from keyboard controller
    u8 v = inb(PORT_PS2_STATUS);
    if (v & I8042_STR_AUXDATA) {
        dprintf(1, "ps2 keyboard irq but found mouse data?!\n");
        goto done;
    }
    v = inb(PORT_PS2_DATA);

    if (!(GET_EBDA(ps2ctr) & I8042_CTR_KBDINT))
        // Interrupts not enabled.
        goto done;

    process_key(v);

done:
    eoi_pic1();
}
예제 #2
0
파일: ps2port.c 프로젝트: joshsyu/PQEMU
// INT09h : Keyboard Hardware Service Entry Point
void VISIBLE16
handle_09()
{
    if (! CONFIG_PS2PORT)
        return;

    debug_isr(DEBUG_ISR_09);
    process_ps2irq();
    eoi_pic1();
}
예제 #3
0
파일: pic.c 프로젝트: 3a9LL/panda
// Handler for otherwise unused hardware irqs.
void VISIBLE16
handle_hwpic1(struct bregs *regs)
{
    dprintf(DEBUG_ISR_hwpic1, "handle_hwpic1 irq=%x\n", get_pic1_isr());
    eoi_pic1();
}