summaryrefslogtreecommitdiffhomepage
path: root/Kernel/Sources/KernelCheck.cxx
diff options
context:
space:
mode:
authorAmlal <amlalelmahrouss@icloud.com>2024-07-28 16:11:46 +0000
committerAmlal <amlalelmahrouss@icloud.com>2024-07-28 16:11:46 +0000
commitc4023005e029ae092dad2689564c490580dd5c28 (patch)
tree3080ba07a6b552bf3d7591574cf69b2a3c8fd0fd /Kernel/Sources/KernelCheck.cxx
parent8c8822fff78f9ff9cd640271da9b3634c4c2f97f (diff)
parent4db57a2d646b1538783a0675b38bada7a0f903ae (diff)
Merged in MHR-36 (pull request #17)
MHR-36
Diffstat (limited to 'Kernel/Sources/KernelCheck.cxx')
-rw-r--r--Kernel/Sources/KernelCheck.cxx20
1 files changed, 15 insertions, 5 deletions
diff --git a/Kernel/Sources/KernelCheck.cxx b/Kernel/Sources/KernelCheck.cxx
index 6eb5429c..690c8e8f 100644
--- a/Kernel/Sources/KernelCheck.cxx
+++ b/Kernel/Sources/KernelCheck.cxx
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
------------------------------------------- */
@@ -8,10 +8,12 @@
#include <KernelKit/DebugOutput.hpp>
#include <NewKit/KernelCheck.hpp>
#include <NewKit/String.hpp>
+#include <FirmwareKit/Handover.hxx>
+#include <Modules/ACPI/ACPIFactoryInterface.hxx>
-EXTERN_C [[noreturn]] void ke_wait_for_debugger()
+EXTERN_C [[noreturn]] Kernel::Void ke_wait_for_debugger()
{
- while (true)
+ while (Yes)
{
#ifdef __NEWOS_AMD64__
Kernel::HAL::rt_cli();
@@ -88,12 +90,20 @@ namespace Kernel
}
};
- DumpManager::Dump();
+ RecoveryFactory::Recover();
+ }
+
+ Void RecoveryFactory::Recover() noexcept
+ {
#ifdef __DEBUG__
ke_wait_for_debugger();
#endif // ifdef __DEBUG__
+
+ PowerFactoryInterface powerInterface(kHandoverHeader->f_HardwareTables.f_VendorPtr);
+ powerInterface.Shutdown();
}
+
void ke_runtime_check(bool expr, const char* file, const char* line)
{
@@ -105,7 +115,7 @@ namespace Kernel
#endif // __DEBUG__
- Kernel::ke_stop(RUNTIME_CHECK_FAILED); // Runtime Check failed
+ ke_stop(RUNTIME_CHECK_FAILED); // Runtime Check failed
}
}
} // namespace Kernel