aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/cpu.cpp
diff options
context:
space:
mode:
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