diff options
| -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); |
