From 39a561438c00a2d578cc6868601a850ce7cae703 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 28 Dec 2024 05:43:59 +0100 Subject: IMPL: Better Kernel code. Signed-off-by: Amlal El Mahrouss --- dev/Kernel/KernelKit/ThreadLocalStorage.h | 4 ++++ dev/Kernel/KernelKit/UserProcessScheduler.inl | 9 +++++++++ dev/Kernel/src/ThreadLocalStorage.cc | 10 +++++----- dev/Kernel/src/UserProcessScheduler.cc | 15 ++++++++------- 4 files changed, 26 insertions(+), 12 deletions(-) (limited to 'dev') diff --git a/dev/Kernel/KernelKit/ThreadLocalStorage.h b/dev/Kernel/KernelKit/ThreadLocalStorage.h index ce334b75..1192604a 100644 --- a/dev/Kernel/KernelKit/ThreadLocalStorage.h +++ b/dev/Kernel/KernelKit/ThreadLocalStorage.h @@ -12,6 +12,10 @@ ///! @brief Thread Local Storage for minoskrnl. +#define kCookieMag0Idx 0 +#define kCookieMag1Idx 1 +#define kCookieMag2Idx 2 + #define kCookieMag0 'Z' #define kCookieMag1 'K' #define kCookieMag2 'A' diff --git a/dev/Kernel/KernelKit/UserProcessScheduler.inl b/dev/Kernel/KernelKit/UserProcessScheduler.inl index 86150a06..2348c1e3 100644 --- a/dev/Kernel/KernelKit/UserProcessScheduler.inl +++ b/dev/Kernel/KernelKit/UserProcessScheduler.inl @@ -1,3 +1,12 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Theater Quality Inc, all rights reserved. + + FILE: UserProcessScheduler.inl + PURPOSE: Low level/Ring-3 Process scheduler. + +------------------------------------------- */ + namespace Kernel { /***********************************************************************************/ diff --git a/dev/Kernel/src/ThreadLocalStorage.cc b/dev/Kernel/src/ThreadLocalStorage.cc index 3d318632..0eef0baf 100644 --- a/dev/Kernel/src/ThreadLocalStorage.cc +++ b/dev/Kernel/src/ThreadLocalStorage.cc @@ -37,14 +37,14 @@ Boolean tls_check_tib(THREAD_INFORMATION_BLOCK* tib_ptr) kcout << "TLS: Validating the TIB...\r"; - return tib_as_bytes[0] == kCookieMag0 && tib_as_bytes[1] == kCookieMag1 && - tib_as_bytes[2] == kCookieMag2; + return tib_as_bytes[kCookieMag0Idx] == kCookieMag0 && tib_as_bytes[kCookieMag1Idx] == kCookieMag1 && + tib_as_bytes[kCookieMag2Idx] == kCookieMag2; } /** * @brief System call implementation of the TLS check. * @param tib_ptr The TIB record. - * @return + * @return if the TIB record is valid or not. */ EXTERN_C Bool tls_check_syscall_impl(Kernel::VoidPtr tib_ptr) noexcept { @@ -54,7 +54,7 @@ EXTERN_C Bool tls_check_syscall_impl(Kernel::VoidPtr tib_ptr) noexcept return false; } - THREAD_INFORMATION_BLOCK* tib = (THREAD_INFORMATION_BLOCK*)tib_ptr; + THREAD_INFORMATION_BLOCK* tib = reinterpret_cast(tib_ptr); if (!tls_check_tib(tib)) { @@ -62,6 +62,6 @@ EXTERN_C Bool tls_check_syscall_impl(Kernel::VoidPtr tib_ptr) noexcept return false; } - kcout << "TLS Check pass.\r"; + kcout << "TLS Passed checked.\r"; return true; } diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc index 941ca46e..15dfa63c 100644 --- a/dev/Kernel/src/UserProcessScheduler.cc +++ b/dev/Kernel/src/UserProcessScheduler.cc @@ -297,7 +297,7 @@ namespace Kernel } #endif // __ZKA_AMD64__ - kcout << "Create page directory for: " << process->Name << endl; + kcout << "Create VMRegister for: " << process->Name << endl; process->StackFrame = reinterpret_cast(mm_new_heap(sizeof(HAL::StackFrame), Yes, Yes)); @@ -307,7 +307,7 @@ namespace Kernel return -kErrorProcessFault; } - kcout << "Create stack for: " << process->Name << endl; + kcout << "Create StackFrame for: " << process->Name << endl; // Create heap according to type of process-> if (process->Kind == UserProcess::kExectuableDLLKind) @@ -315,7 +315,7 @@ namespace Kernel process->DylibDelegate = rtl_init_dylib(process); MUST_PASS(process->DylibDelegate); - kcout << "Created Library Interface for process: " << process->Name << endl; + kcout << "Created DylibDelegate for process: " << process->Name << endl; } process->StackReserve = new UInt8[process->StackSize]; @@ -332,14 +332,14 @@ namespace Kernel return -kErrorProcessFault; } - kcout << "Created Reserved Stack for process: " << process->Name << endl; + kcout << "Created StackReserve for process: " << process->Name << endl; - ProcessID pid = mTeam.mProcessCount; + ProcessID pid = this->mTeam.mProcessCount; if (pid > kSchedProcessLimitPerTeam) return kProcessInvalidID; - ++mTeam.mProcessCount; + ++this->mTeam.mProcessCount; process->ProcessParentTeam = &mTeam; @@ -350,7 +350,7 @@ namespace Kernel kcout << "Process Name: " << process->Name << endl; kcout << "PID: " << number(process->ProcessId) << endl; - mTeam.mProcessList.Assign(pid, process); + this->mTeam.mProcessList.Assign(pid, process); return process->ProcessId; } @@ -505,6 +505,7 @@ namespace Kernel * @brief Start scheduling current AP. */ /***********************************************************************************/ + SizeT UserProcessHelper::StartScheduling() { return kProcessScheduler.Run(); -- cgit v1.2.3