34 lines
570 B
C
34 lines
570 B
C
#ifndef __IDT_H
|
|
#define __IDT_H
|
|
|
|
struct regs {
|
|
uint32_t gs;
|
|
uint32_t fs;
|
|
uint32_t es;
|
|
uint32_t ds;
|
|
uint32_t edi;
|
|
uint32_t esi;
|
|
uint32_t ebp;
|
|
uint32_t esp;
|
|
uint32_t ebx;
|
|
uint32_t edx;
|
|
uint32_t ecx;
|
|
uint32_t eax;
|
|
uint32_t int_no;
|
|
uint32_t err_code;
|
|
uint32_t eip;
|
|
uint32_t cs;
|
|
uint32_t eflags;
|
|
uint32_t useresp;
|
|
uint32_t ss;
|
|
};
|
|
typedef void (*handler_t)(struct regs *r);
|
|
|
|
extern int irq_install_handler(int irq, handler_t handler, uint8_t shared);
|
|
|
|
extern void init_idt();
|
|
extern void init_isrs();
|
|
extern void init_irqs(void);
|
|
|
|
#endif
|