From 137066ae93a4d81bd3e1aeb5e43013f2b17b0510 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Fri, 13 Mar 2026 09:40:58 +0100 Subject: added handling for page fault exceptions in interrupts.rs --- StrixKernel/src/interrupts.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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; -- cgit v1.2.3