diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-24 05:08:21 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-24 05:08:21 +0100 |
| commit | 77a1bd038f4288a7c24cfe52ad9824ca947c6671 (patch) | |
| tree | d7e3fe10fce24ddc6a2b3db15a6dc9d6aeee2451 /dev/kernel/src/KPC.cc | |
| parent | 66be78af046c20bd110793c03062a3ff67b04f9c (diff) | |
kernel(feat): Add basic wide system bug check (memory check), other
changes have been made too, see commit details for more information.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/kernel/src/KPC.cc')
| -rw-r--r-- | dev/kernel/src/KPC.cc | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/dev/kernel/src/KPC.cc b/dev/kernel/src/KPC.cc new file mode 100644 index 00000000..7081bf51 --- /dev/null +++ b/dev/kernel/src/KPC.cc @@ -0,0 +1,45 @@ +/* ------------------------------------------- + + Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include <KernelKit/KPC.h> +#include <NewKit/KernelPanic.h> +#include <KernelKit/MemoryMgr.h> + +namespace NeOS +{ + STATIC Bool kRaiseOnBugCheck = false; + + /// @brief Does a system wide bug check. + /// @param void no params are needed. + /// @return if error-free: false, otherwise true. + Boolean err_bug_check_raise(Void) noexcept + { + Char* ptr = new Char[512]; + + if (ptr == nullptr) + goto bug_check_fail; + + if (!mm_is_valid_heap(ptr)) + goto bug_check_fail; + + delete[] ptr; + + return Yes; + + bug_check_fail: + if (ptr) + delete[] ptr; + + ptr = nullptr; + + if (kRaiseOnBugCheck) + { + ke_panic(RUNTIME_CHECK_BAD_BEHAVIOR); + } + + return No; + } +} // namespace NeOS |
