#include #include #include #include irq_func_t func_list[64]; void irq_init(void) { set_irq_handler(0, (irq_func_t*)pit_handler); set_irq_handler(1, (irq_func_t*)keyboard_handler); } void irq_handler(uint8_t irq_number) { if (irq_number < 64 && func_list[irq_number]) { func_list[irq_number](); } } void set_irq_handler(uint32_t num, irq_func_t* handler) { if (num < 64) { func_list[num] = (irq_func_t)handler; } }