aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2025-10-29 11:15:50 +0100
committerFelix Morgner <felix.morgner@ost.ch>2025-10-29 11:15:50 +0100
commite7b04ef7f5da8e014e8b85fcf65448b317cca8ff (patch)
tree3741aaeb76b254f775c720dbe36471c0b7a90ceb
parent6434de8ff75a9143847ef529bc209790ac4909b3 (diff)
downloadteachos-e7b04ef7f5da8e014e8b85fcf65448b317cca8ff.tar.xz
teachos-e7b04ef7f5da8e014e8b85fcf65448b317cca8ff.zip
kapi: move halt to cpu namespace
-rw-r--r--arch/x86_64/CMakeLists.txt2
-rw-r--r--arch/x86_64/src/kapi/cpu.cpp (renamed from arch/x86_64/src/kapi/system.cpp)6
-rw-r--r--kapi/include/kapi/cpu.hpp13
-rw-r--r--kapi/include/kapi/system.hpp2
-rw-r--r--kapi/src/system.cpp4
5 files changed, 20 insertions, 7 deletions
diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt
index 9be7b04..a681347 100644
--- a/arch/x86_64/CMakeLists.txt
+++ b/arch/x86_64/CMakeLists.txt
@@ -22,8 +22,8 @@ target_sources("x86_64" PRIVATE
# api::kapi implementation
"src/kapi/cio.cpp"
+ "src/kapi/cpu.cpp"
"src/kapi/memory.cpp"
- "src/kapi/system.cpp"
# Memory management
"src/memory/mmu.cpp"
diff --git a/arch/x86_64/src/kapi/system.cpp b/arch/x86_64/src/kapi/cpu.cpp
index 2d4c3fe..22543ee 100644
--- a/arch/x86_64/src/kapi/system.cpp
+++ b/arch/x86_64/src/kapi/cpu.cpp
@@ -1,6 +1,6 @@
-#include "kapi/system.hpp"
+#include "kapi/cpu.hpp"
-namespace teachos::system
+namespace teachos::cpu
{
auto halt() -> void
@@ -9,4 +9,4 @@ namespace teachos::system
__builtin_unreachable();
}
-} // namespace teachos::system
+} // namespace teachos::cpu
diff --git a/kapi/include/kapi/cpu.hpp b/kapi/include/kapi/cpu.hpp
new file mode 100644
index 0000000..673deab
--- /dev/null
+++ b/kapi/include/kapi/cpu.hpp
@@ -0,0 +1,13 @@
+#ifndef TEACHOS_KAPI_CPU_HPP
+#define TEACHOS_KAPI_CPU_HPP
+
+namespace teachos::cpu
+{
+ /**
+ * @brief Halt the CPU, effectively terminating kernel execution.
+ *
+ */
+ [[noreturn]] auto halt() -> void;
+} // namespace teachos::cpu
+
+#endif
diff --git a/kapi/include/kapi/system.hpp b/kapi/include/kapi/system.hpp
index 0d4f2c9..b0b0e28 100644
--- a/kapi/include/kapi/system.hpp
+++ b/kapi/include/kapi/system.hpp
@@ -6,8 +6,6 @@
namespace teachos::system
{
- [[noreturn]] auto halt() -> void;
-
[[noreturn]] auto panic(std::string_view message, std::source_location = std::source_location::current()) -> void;
} // namespace teachos::system
diff --git a/kapi/src/system.cpp b/kapi/src/system.cpp
index 041404e..3ae3f29 100644
--- a/kapi/src/system.cpp
+++ b/kapi/src/system.cpp
@@ -1,10 +1,12 @@
#include "kapi/system.hpp"
#include "kapi/cio.hpp"
+#include "kapi/cpu.hpp"
namespace teachos::system
{
+ [[gnu::weak]]
auto panic(std::string_view message, std::source_location location) -> void
{
cio::println_error("!!!Kernel Panic!!! ");
@@ -12,7 +14,7 @@ namespace teachos::system
cio::println_error(location.file_name());
cio::println_error(location.function_name());
- halt();
+ cpu::halt();
}
} // namespace teachos::system