diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2025-10-29 11:15:50 +0100 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2025-10-29 11:15:50 +0100 |
| commit | e7b04ef7f5da8e014e8b85fcf65448b317cca8ff (patch) | |
| tree | 3741aaeb76b254f775c720dbe36471c0b7a90ceb /kapi | |
| parent | 6434de8ff75a9143847ef529bc209790ac4909b3 (diff) | |
| download | teachos-e7b04ef7f5da8e014e8b85fcf65448b317cca8ff.tar.xz teachos-e7b04ef7f5da8e014e8b85fcf65448b317cca8ff.zip | |
kapi: move halt to cpu namespace
Diffstat (limited to 'kapi')
| -rw-r--r-- | kapi/include/kapi/cpu.hpp | 13 | ||||
| -rw-r--r-- | kapi/include/kapi/system.hpp | 2 | ||||
| -rw-r--r-- | kapi/src/system.cpp | 4 |
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 |
