diff options
| -rw-r--r-- | arch/x86_64/CMakeLists.txt | 2 | ||||
| -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.hpp | 13 | ||||
| -rw-r--r-- | kapi/include/kapi/system.hpp | 2 | ||||
| -rw-r--r-- | kapi/src/system.cpp | 4 |
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 |
