// 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(); }
// INT09h : Keyboard Hardware Service Entry Point void VISIBLE16 handle_09() { if (! CONFIG_PS2PORT) return; debug_isr(DEBUG_ISR_09); process_ps2irq(); eoi_pic1(); }
// 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(); }