aboutsummaryrefslogtreecommitdiff
path: root/kernel/src
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
parentd56700342ea0266a6e49f9515eb83279f66b4fcf (diff)
downloadteachos-8d06763f47e7b7c93af2a55f6bd2dbc4aa9abfa2.tar.xz
teachos-8d06763f47e7b7c93af2a55f6bd2dbc4aa9abfa2.zip
kapi/cpu: simplify exception handling
Diffstat (limited to 'kernel/src')
-rw-r--r--kernel/src/cpu.cpp45
-rw-r--r--kernel/src/main.cpp2
2 files changed, 0 insertions, 47 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
diff --git a/kernel/src/main.cpp b/kernel/src/main.cpp
index 6bd168c..45a4aae 100644
--- a/kernel/src/main.cpp
+++ b/kernel/src/main.cpp
@@ -4,7 +4,6 @@
#include "kapi/memory.hpp"
#include "kapi/system.hpp"
-#include "kernel/cpu.hpp"
#include "kernel/devices/storage/storage_management.hpp"
#include "kernel/filesystem/device_file.hpp"
#include "kernel/filesystem/file_descriptor_table.hpp"
@@ -93,7 +92,6 @@ auto main() -> int
kstd::println("[OS] IO subsystem initialized.");
kapi::cpu::init();
- kernel::cpu::init();
kapi::cpu::enable_interrupts();
kapi::memory::init();