aboutsummaryrefslogtreecommitdiff
path: root/kapi
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 /kapi
parent6434de8ff75a9143847ef529bc209790ac4909b3 (diff)
downloadteachos-e7b04ef7f5da8e014e8b85fcf65448b317cca8ff.tar.xz
teachos-e7b04ef7f5da8e014e8b85fcf65448b317cca8ff.zip
kapi: move halt to cpu namespace
Diffstat (limited to 'kapi')
-rw-r--r--kapi/include/kapi/cpu.hpp13
-rw-r--r--kapi/include/kapi/system.hpp2
-rw-r--r--kapi/src/system.cpp4
3 files changed, 16 insertions, 3 deletions
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