summaryrefslogtreecommitdiff
path: root/arch/i386
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386')
-rw-r--r--arch/i386/boot/idt.c24
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;