#ifndef _IRQ_H #define _IRQ_H #include /* typedef struct registers { 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, cs, eflags; } registers_t; */ typedef struct { uint32_t ds, es, fs, gs; uint32_t eax, ecx, edx, ebx; uint32_t esp, ebp, esi, edi; uint32_t int_no; uint32_t err_code; uint32_t eip, cs, eflags; } registers_t; typedef void (*irq_func_t)(registers_t*); void irq_init(void); void 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