diff options
Diffstat (limited to 'kernel/src/init/int')
| -rw-r--r-- | kernel/src/init/int/idt.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/kernel/src/init/int/idt.rs b/kernel/src/init/int/idt.rs index 89228cf..80d42f8 100644 --- a/kernel/src/init/int/idt.rs +++ b/kernel/src/init/int/idt.rs @@ -1,3 +1,8 @@ +use spin::LazyLock; +use x86_64::structures::idt::{InterruptDescriptorTable, InterruptStackFrame}; + +use crate::init::earlyprintk::printlnk; + pub static IDT: LazyLock<InterruptDescriptorTable> = LazyLock::new( || { let mut idt = InterruptDescriptorTable::new(); @@ -7,14 +12,13 @@ pub static IDT: LazyLock<InterruptDescriptorTable> = LazyLock::new( }, ); -extern "x86-interrupt" fn double_fault_handler(stack_frame: InterruptStackFrame, error_code: u64) -> ! { +extern "x86-interrupt" fn double_fault_handler( + stack_frame: InterruptStackFrame, + error_code: u64, +) -> ! { panic!("EXCEPTION: DOUBLE FAULT\n{stack_frame:#?}\nERROR CODE:{error_code}"); } extern "x86-interrupt" fn breakpoint_handler(stack_frame: InterruptStackFrame) { _ = printlnk!("EXCEPTION: BREAKPOINT\n{stack_frame:#?}"); } - -pub fn init() { - IDT.load(); -} |
