summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-09 13:53:57 +0100
committerAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-09 13:53:57 +0100
commitd9556c811b25a7c5533d1f61152ecb8863cfd042 (patch)
tree105e6c6b17b75e89280a5e591e194d434838bebd
parentd0252ab0b32c55b08749e94545e17d389b1081c9 (diff)
Kernel: Add ke_bug_check for Process Manager.
Signed-off-by: Amlal El Mahrouss <amlalelmahrouss@icloud.com>
-rw-r--r--Private/KernelKit/HError.hpp2
-rw-r--r--Private/Source/HError.cxx6
-rw-r--r--Private/Source/ProcessManager.cxx8
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);