void ArchBoardSpecific::irq_handler() { uint32* pic = (uint32*)PIC_BASE; if (IRQ(0)) arch_swi_irq_handler(); if (IRQ(1)) uart0_irq_handler(); if (IRQ(2)) arch_uart1_irq_handler(); if (IRQ(3)) keyboard_irq_handler(); if (IRQ(4)) arch_mouse_irq_handler(); if (IRQ(5)) timer0_irq_handler(); // 6-10 and 22-28 not implemented }
void ArchBoardSpecific::onIdle() { keyboard_irq_handler(); // TODO: this is not only ugly polling, but we're losing keys all the time // and this is in an ugly place for keyboard handling! why is it here? we would have needed a whole new thread otherwise // the usb stack should work with less dynamic memory and more stack variables, then it would be less complicated }