aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/cpu.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-03-26 16:10:50 +0100
committerFelix Morgner <felix.morgner@ost.ch>2026-03-27 07:02:35 +0100
commit8d06763f47e7b7c93af2a55f6bd2dbc4aa9abfa2 (patch)
treeb4da8395e2ba5dec565500b6b257a2091faeeb17 /kernel/src/cpu.cpp
parentd56700342ea0266a6e49f9515eb83279f66b4fcf (diff)
downloadteachos-8d06763f47e7b7c93af2a55f6bd2dbc4aa9abfa2.tar.xz
teachos-8d06763f47e7b7c93af2a55f6bd2dbc4aa9abfa2.zip
kapi/cpu: simplify exception handling
Diffstat (limited to 'kernel/src/cpu.cpp')
-rw-r--r--kernel/src/cpu.cpp45
1 files changed, 0 insertions, 45 deletions
diff --git a/kernel/src/cpu.cpp b/kernel/src/cpu.cpp
deleted file mode 100644
index 11b6551..0000000
--- a/kernel/src/cpu.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#include "kernel/cpu.hpp"
-
-#include "kapi/cpu.hpp"
-#include "kapi/system.hpp"
-
-#include <kstd/print>
-
-namespace kernel::cpu
-{
-
- namespace
- {
- struct exception_handler : kapi::cpu::exception_handler
- {
- auto handle(kapi::cpu::exception const & context) -> bool override
- {
- kstd::println(kstd::print_sink::stderr, "[OS:CPU] {} @ {:#018x}", context.type, context.instruction_pointer);
- switch (context.type)
- {
- case kapi::cpu::exception::type::page_fault:
- return handle_page_fault(context);
- default:
- return false;
- }
- }
-
- private:
- auto handle_page_fault(kapi::cpu::exception const & context) -> bool
- {
- kstd::println(kstd::print_sink::stderr, "\tFault address: {:#018x}", context.access_address);
- kstd::println(kstd::print_sink::stderr, "\tPresent: {}", context.is_present);
- kstd::println(kstd::print_sink::stderr, "\tWrite: {}", context.is_write_access);
- kstd::println(kstd::print_sink::stderr, "\tUser: {}", context.is_user_mode);
-
- kapi::system::panic("Halting the system due to an unrecoverable page fault.");
- }
- } static constinit handler;
- } // namespace
-
- auto init() -> void
- {
- kapi::cpu::set_exception_handler(handler);
- }
-
-} // namespace kernel::cpu \ No newline at end of file