diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-03-13 09:40:58 +0100 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-03-13 09:40:58 +0100 |
| commit | 137066ae93a4d81bd3e1aeb5e43013f2b17b0510 (patch) | |
| tree | a5045f831139c982d0ce110659ff199ca77c2467 | |
| parent | 3c7a917409871823f58e4db96de0751720326223 (diff) | |
added handling for page fault exceptions in interrupts.rs
| -rw-r--r-- | StrixKernel/src/interrupts.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/StrixKernel/src/interrupts.rs b/StrixKernel/src/interrupts.rs index bfceef7..57797f1 100644 --- a/StrixKernel/src/interrupts.rs +++ b/StrixKernel/src/interrupts.rs @@ -49,6 +49,23 @@ extern "x86-interrupt" fn double_fault_handler( panic!("EXCEPTION: DOUBLE FAULT\n{:#?}", stack_frame); } +// Page fault exception +use x86_64::structures::idt::PageFaultErrorCode; +use crate::hlt_loop; + +extern "x86-interrupt" fn page_fault_handler( + stack_frame: InterruptStackFrame, + error_code: PageFaultErrorCode, +) { + use x86_64::registers::control::Cr2; + + println!("EXCEPTION: PAGE FAULT"); + println!("Accessed Address: {:?}", Cr2::read()); + println!("Error Code: {:?}", error_code); + println!("{:#?}", stack_frame); + hlt_loop(); +} + // HARDWARE INTERRUPTS // use pic8259::ChainedPics; use spin; |
