From 933abe8bc6f9480bcdea39c6bdd1a4e937402a06 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Fri, 8 Nov 2019 22:50:13 +0100 Subject: Add InterruptStackTable --- kernel/src/interrupts/table.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'kernel/src/interrupts/table.rs') 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 }; } -- cgit v1.2.3-54-g00ecf