29 lines
578 B
C
29 lines
578 B
C
#ifndef _KERNEL_INTERRUPT
|
|
#define _KERNEL_INTERRUPT
|
|
|
|
#ifdef __GNUC__
|
|
struct IDT_entry {
|
|
unsigned short int offset_lowerbits;
|
|
unsigned short int selector;
|
|
unsigned char zero;
|
|
unsigned char type_attr;
|
|
unsigned short int offset_higherbits;
|
|
} __attribute__((packed));
|
|
#else
|
|
struct IDT_entry {
|
|
unsigned short int offset_lowerbits;
|
|
unsigned short int selector;
|
|
unsigned char zero;
|
|
unsigned char type_attr;
|
|
unsigned short int offset_higherbits;
|
|
};
|
|
#endif
|
|
|
|
#ifdef __GNUC__
|
|
__attribute((aligned(0x10)))
|
|
#endif
|
|
struct IDT_entry IDT[256];
|
|
|
|
void idt_init(void);
|
|
|
|
#endif
|