diff options
| author | Amlal El Mahrouss <amlalelmahrouss@icloud.com> | 2024-02-09 13:53:57 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlalelmahrouss@icloud.com> | 2024-02-09 13:53:57 +0100 |
| commit | d9556c811b25a7c5533d1f61152ecb8863cfd042 (patch) | |
| tree | 105e6c6b17b75e89280a5e591e194d434838bebd | |
| parent | d0252ab0b32c55b08749e94545e17d389b1081c9 (diff) | |
Kernel: Add ke_bug_check for Process Manager.
Signed-off-by: Amlal El Mahrouss <amlalelmahrouss@icloud.com>
| -rw-r--r-- | Private/KernelKit/HError.hpp | 2 | ||||
| -rw-r--r-- | Private/Source/HError.cxx | 6 | ||||
| -rw-r--r-- | Private/Source/ProcessManager.cxx | 8 |
3 files changed, 13 insertions, 3 deletions
diff --git a/Private/KernelKit/HError.hpp b/Private/KernelKit/HError.hpp index d37fe276..0d412154 100644 --- a/Private/KernelKit/HError.hpp +++ b/Private/KernelKit/HError.hpp @@ -27,6 +27,8 @@ inline constexpr HError kErrorThreadLocalStorage = 41; inline constexpr HError kErrorMath = 42; inline constexpr HError kErrorNoNetwork = 43; inline constexpr HError kErrorHeapOutOfMemory = 44; + +Boolean ke_bug_check(void) noexcept; } // namespace HCore #define KernIsOk(HERR) (HERR == HCore::kErrorSuccess) diff --git a/Private/Source/HError.cxx b/Private/Source/HError.cxx index 000843df..6722e9d8 100644 --- a/Private/Source/HError.cxx +++ b/Private/Source/HError.cxx @@ -8,3 +8,9 @@ */ #include <KernelKit/HError.hpp> + +using namespace HCore; + +namespace HCore { +Boolean ke_bug_check(void) noexcept { return true; } +} // namespace HCore diff --git a/Private/Source/ProcessManager.cxx b/Private/Source/ProcessManager.cxx index 71f38e2f..1761c267 100644 --- a/Private/Source/ProcessManager.cxx +++ b/Private/Source/ProcessManager.cxx @@ -17,6 +17,8 @@ #include <NewKit/KernelHeap.hpp> #include <NewKit/String.hpp> +#include "KernelKit/HError.hpp" + ///! bugs = 0 /***********************************************************************************/ @@ -38,8 +40,7 @@ const Int32 &rt_get_exit_code() noexcept { return kExitCode; } void Process::Crash() { kcout << this->Name << ": Crashed, ExitCode: -1\n"; - - // TODO: Bug check the system. + MUST_PASS(ke_bug_check()); this->Exit(-1); } @@ -281,7 +282,8 @@ bool ProcessHelper::Switch(HAL::StackFrame *the_stack, const PID &new_pid) { if (SMPManager::Shared().Leak()[index].Leak().IsBusy()) continue; - if (SMPManager::Shared().Leak()[index].Leak().Kind() != ThreadKind::kHartBoot || + if (SMPManager::Shared().Leak()[index].Leak().Kind() != + ThreadKind::kHartBoot || SMPManager::Shared().Leak()[index].Leak().Kind() != ThreadKind::kHartSystemReserved) { SMPManager::Shared().Leak()[index].Leak().Busy(true); |
