Files
Espresso/files/irq.h
2026-03-20 16:57:08 -05:00

44 lines
724 B
C

#ifndef _IRQ_H
#define _IRQ_H
#include <types.h>
/*
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