diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/i386/boot/idt.c | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/arch/i386/boot/idt.c b/arch/i386/boot/idt.c index bd27542..5088dba 100644 --- a/arch/i386/boot/idt.c +++ b/arch/i386/boot/idt.c @@ -3,31 +3,9 @@ #include <kernel/io.h> #include <kernel/pic.h> #include <kernel/string.h> +#include <kernel/paging.h> #include <stdint.h> -#define SEGMENT_PRESENT 0x80 -#define SEGMENT_RING0 0x00 -#define SEGMENT_RING3 0x60 -#define SEGMENT_STORAGE 0x00 -#define SEGMENT_INTERRUPT 0x0E -#define IDT_EXCEPTION (SEGMENT_PRESENT | SEGMENT_INTERRUPT) -#define IDT_INTERRUPT (SEGMENT_PRESENT | SEGMENT_INTERRUPT) - -#define IDT_MAX_DESCRIPTORS 256 - -struct idt_entry { - uint16_t isr_low; - uint16_t kernel_cs; - uint8_t reserved; - uint8_t flags; - uint16_t isr_high; -} __attribute__((packed)); - -struct idt_ptr { - uint16_t limit; - uint32_t base; -} __attribute__((packed)); - __attribute__((aligned(0x10))) struct idt_entry idt[256]; struct idt_ptr idtr; |