aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-03-13 09:40:58 +0100
committerNatasha Moongrave <natasha@256phi.eu>2026-03-13 09:40:58 +0100
commit137066ae93a4d81bd3e1aeb5e43013f2b17b0510 (patch)
treea5045f831139c982d0ce110659ff199ca77c2467
parent3c7a917409871823f58e4db96de0751720326223 (diff)
added handling for page fault exceptions in interrupts.rs
-rw-r--r--StrixKernel/src/interrupts.rs17
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;