git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make dmm.c portable
[lunaix-os.git]
/
lunaix-os
/
kernel
/
asm
/
x86
/
idt.c
diff --git
a/lunaix-os/kernel/asm/x86/idt.c
b/lunaix-os/kernel/asm/x86/idt.c
index 9f2bd069180f0ea5c26ab3439f39f44ea0563f6e..aa0714070ff63e44e7a22761d7f0ed79f3389963 100644
(file)
--- a/
lunaix-os/kernel/asm/x86/idt.c
+++ b/
lunaix-os/kernel/asm/x86/idt.c
@@
-1,9
+1,8
@@
#include <arch/x86/idt.h>
#include <arch/x86/interrupts.h>
#include <arch/x86/idt.h>
#include <arch/x86/interrupts.h>
-#include <arch/x86/types.h>
#include <stdint.h>
#include <stdint.h>
-#define IDT_ENTRY
32
+#define IDT_ENTRY
256
uint64_t _idt[IDT_ENTRY];
uint16_t _idt_limit = sizeof(_idt) - 1;
uint64_t _idt[IDT_ENTRY];
uint16_t _idt_limit = sizeof(_idt) - 1;
@@
-18,5
+17,11
@@
void _set_idt_entry(uint32_t vector, uint16_t seg_selector, void (*isr)(), uint8
void
_init_idt() {
void
_init_idt() {
+ // CPU defined interrupts
_set_idt_entry(FAULT_DIVISION_ERROR, 0x08, _asm_isr0, 0);
_set_idt_entry(FAULT_DIVISION_ERROR, 0x08, _asm_isr0, 0);
+ _set_idt_entry(FAULT_GENERAL_PROTECTION, 0x08, _asm_isr13, 0);
+ _set_idt_entry(FAULT_PAGE_FAULT, 0x08, _asm_isr14, 0);
+
+ // system defined interrupts
+ _set_idt_entry(LUNAIX_SYS_PANIC, 0x08, _asm_isr32, 0);
}
\ No newline at end of file
}
\ No newline at end of file