From 77a1bd038f4288a7c24cfe52ad9824ca947c6671 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 24 Mar 2025 05:08:21 +0100 Subject: 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 --- dev/kernel/src/KPC.cc | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 dev/kernel/src/KPC.cc (limited to 'dev/kernel/src/KPC.cc') 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 +#include +#include + +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 -- cgit v1.2.3