#ifndef _IRQ_H #define _IRQ_H #include typedef struct { uint32_t ds, es, fs, gs; uint32_t edi, esi, ebp, esp, ebx, edx, ecx, eax; uint32_t int_no; uint32_t err_code; uint32_t eip; uint32_t cs; uint32_t eflags; } registers_t; typedef registers_t* (*irq_func_t)(registers_t*); void irq_init(void); registers_t* irq_handler(uint32_t irq, registers_t* regs); void set_irq_handler(uint32_t num, irq_func_t handler); /*void add_irq_handler(uint32_t num, irq_func_t* handler);*/ uint32_t get_interrupts_missed(void); #endif