diff options
author | Dennis Kobert <dennis@kobert.dev> | 2019-11-08 22:50:13 +0100 |
---|---|---|
committer | Dennis Kobert <dennis@kobert.dev> | 2019-11-08 22:50:13 +0100 |
commit | 933abe8bc6f9480bcdea39c6bdd1a4e937402a06 (patch) | |
tree | b6679b8e3c68fd71e59ec3ba22fe086525ddd3bc /kernel/src/interrupts/table.rs | |
parent | f3dcfa225a6e3b7e6916e9b5a22db9090275d065 (diff) |
Add InterruptStackTable
Diffstat (limited to 'kernel/src/interrupts/table.rs')
-rw-r--r-- | kernel/src/interrupts/table.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/kernel/src/interrupts/table.rs b/kernel/src/interrupts/table.rs index 6472014..d417824 100644 --- a/kernel/src/interrupts/table.rs +++ b/kernel/src/interrupts/table.rs @@ -7,10 +7,17 @@ lazy_static! { let mut idt = InterruptDescriptorTable::new(); idt.breakpoint .set_handler_fn(super::exceptions::breakpoint_handler); - idt.page_fault - .set_handler_fn(super::exceptions::page_fault_handler); idt.segment_not_present .set_handler_fn(super::exceptions::segment_not_present_handler); + unsafe { + idt.double_fault + .set_handler_fn(super::exceptions::double_fault_handler) + .set_stack_index(super::gdt::DOUBLE_FAULT_IST_INDEX); + idt.page_fault + .set_handler_fn(super::exceptions::page_fault_handler) + .set_stack_index(super::gdt::PAGE_FAULT_IST_INDEX); + } + idt }; } |