void pit_init() { int32_t div = 1193180 / 10; outportb(PIT_CMD, PIT_BINARY|PIT_MODE3|PIT_RW_BOTH|PIT_COUNTER0); outportb(PIT_CHANNEL0, div & 0xFF); outportb(PIT_CHANNEL0, div >> 8); irq_installHandler(IRQ0, &pit_handler); }
void keyboard_install(void) { irq_installHandler(IRQ_KEYBOARD, keyboard_handler); // Installs 'keyboard_handler' to IRQ_KEYBOARD while (inportb(0x64) & 1) // wait until buffer is empty { inportb(0x60); } }
void timer_install(void) { set_timer_phase(100); irq_installHandler(INT_CLOCK, timer_handler); }