From ad677bd1ed2c6d1a052d426117a4d20a0b59ac52 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 31 Dec 2024 16:50:34 +0100 Subject: FIX: CUSA and improved algorithm. Signed-off-by: Amlal El Mahrouss --- dev/Kernel/HALKit/AMD64/HalKernelMain.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'dev/Kernel/HALKit/AMD64/HalKernelMain.cc') diff --git a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc index 5de6ddd9..25bb1de3 100644 --- a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc +++ b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc @@ -24,6 +24,14 @@ EXTERN_C Kernel::Void rtl_kernel_main(Kernel::SizeT argc, char** argv, char** en STATIC Kernel::Void hal_init_cxx_ctors() { + for (Kernel::SizeT i = 0U; i < Kernel::UserProcessScheduler::The().CurrentTeam().AsArray().Count(); ++i) + { + Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i] = Kernel::UserThread(); + Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[i].Status = Kernel::ProcessStatusKind::kKilled; + } + + Kernel::UserProcessScheduler::The().CurrentTeam().mProcessCount = 0UL; + for (Kernel::SizeT index = 0UL; __CTOR_LIST__[index] != __DTOR_LIST__; ++index) { Kernel::rtl_ctor_kind constructor_cxx = (Kernel::rtl_ctor_kind)__CTOR_LIST__[index]; @@ -85,7 +93,10 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept { auto str_proc = Kernel::rt_alloc_string("System"); - Kernel::rtl_create_process(rtl_kernel_main, str_proc); + auto pid = Kernel::rtl_create_process(rtl_kernel_main, str_proc); + + Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[pid].PTime = 0; + Kernel::UserProcessScheduler::The().CurrentTeam().AsArray()[pid].Status = Kernel::ProcessStatusKind::kRunning; delete str_proc; str_proc = nullptr; -- cgit v1.2.3