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