From 43bac17a2986ac2ea86e9d70c61268fa7e90ca4e Mon Sep 17 00:00:00 2001 From: Amlal EL Mahrouss Date: Fri, 30 Aug 2024 20:46:01 +0200 Subject: Fixed many issues with the kernel, and refactored it. Signed-off-by: Amlal EL Mahrouss --- dev/ZKA/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx | 8 ++++---- dev/ZKA/HALKit/AMD64/HalKernelMain.cxx | 9 ++++----- dev/ZKA/HALKit/ARM64/HalKernelMain.cxx | 8 ++++---- 3 files changed, 12 insertions(+), 13 deletions(-) (limited to 'dev/ZKA/HALKit') diff --git a/dev/ZKA/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx b/dev/ZKA/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx index ca38229d..4566a710 100644 --- a/dev/ZKA/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx +++ b/dev/ZKA/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx @@ -153,7 +153,7 @@ namespace Kernel::HAL EXTERN_C HAL::StackFramePtr _hal_leak_current_context(Void) { - return fBlocks[ProcessScheduler::The().Leak().TheCurrent().Leak().ProcessId % cMaxPCBBlocks].f_Frame; + return fBlocks[ProcessScheduler::The().CurrentProcess().Leak().ProcessId % cMaxPCBBlocks].f_Frame; } EXTERN_C Void hal_switch_context(HAL::StackFramePtr stack_frame) @@ -163,10 +163,10 @@ namespace Kernel::HAL const auto cDurationSeconds = Seconds(5); HardwareTimer timer(cDurationSeconds); - semaphore_process.LockOrWait(&ProcessScheduler::The().Leak().TheCurrent().Leak(), &timer); + semaphore_process.LockOrWait(&ProcessScheduler::The().CurrentProcess().Leak(), &timer); - fBlocks[ProcessScheduler::The().Leak().TheCurrent().Leak().ProcessId % cMaxPCBBlocks].f_PHB = &ProcessScheduler::The().Leak().TheCurrent().Leak(); - fBlocks[ProcessScheduler::The().Leak().TheCurrent().Leak().ProcessId % cMaxPCBBlocks].f_Frame = stack_frame; + fBlocks[ProcessScheduler::The().CurrentProcess().Leak().ProcessId % cMaxPCBBlocks].f_PHB = &ProcessScheduler::The().CurrentProcess().Leak(); + fBlocks[ProcessScheduler::The().CurrentProcess().Leak().ProcessId % cMaxPCBBlocks].f_Frame = stack_frame; mp_do_context_switch(stack_frame); diff --git a/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx b/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx index adfd6894..4d0cfdb6 100644 --- a/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx +++ b/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -144,7 +143,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept kSyscalls[cTlsInterrupt].fProc = [](Kernel::VoidPtr rdx) -> void { if (tls_check_syscall_impl(rdx) == false) { - Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().Crash(); + Kernel::ProcessScheduler::The().CurrentProcess().Leak().Crash(); } }; @@ -156,7 +155,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept return; // assign the fThe field with the pointer. - rdxInf->fThe = Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().New(rdxInf->fTheSz); + rdxInf->fThe = Kernel::ProcessScheduler::The().CurrentProcess().Leak().New(rdxInf->fTheSz); }; kSyscalls[cDeleteInterrupt].fProc = [](Kernel::VoidPtr rdx) -> void { @@ -167,7 +166,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept return; // delete ptr with sz in mind. - Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().Delete(rdxInf->fThe, rdxInf->fTheSz); + Kernel::ProcessScheduler::The().CurrentProcess().Leak().Delete(rdxInf->fThe, rdxInf->fTheSz); }; kSyscalls[cTlsInstallInterrupt].fProc = [](Kernel::VoidPtr rdx) -> void { @@ -187,7 +186,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept return; Kernel::kcout << "newoskrnl: " << rdxEi->fReason << "\r"; - Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().Exit(rdxEi->fCode); + Kernel::ProcessScheduler::The().CurrentProcess().Leak().Exit(rdxEi->fCode); }; kSyscalls[cLastExitInterrupt].fProc = [](Kernel::VoidPtr rdx) -> void { diff --git a/dev/ZKA/HALKit/ARM64/HalKernelMain.cxx b/dev/ZKA/HALKit/ARM64/HalKernelMain.cxx index c2886b31..31468fa2 100644 --- a/dev/ZKA/HALKit/ARM64/HalKernelMain.cxx +++ b/dev/ZKA/HALKit/ARM64/HalKernelMain.cxx @@ -113,7 +113,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept kSyscalls[cTlsInterrupt].Leak().Leak()->fProc = [](Kernel::VoidPtr rdx) -> void { if (tls_check_syscall_impl(rdx) == false) { - Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().Crash(); + Kernel::ProcessScheduler::The().Leak().CurrentProcess().Leak().Crash(); } }; @@ -125,7 +125,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept return; // assign the fThe field with the pointer. - rdxInf->fThe = Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().New(rdxInf->fTheSz); + rdxInf->fThe = Kernel::ProcessScheduler::The().Leak().CurrentProcess().Leak().New(rdxInf->fTheSz); }; kSyscalls[cDeleteInterrupt].Leak().Leak()->fProc = [](Kernel::VoidPtr rdx) -> void { @@ -136,7 +136,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept return; // delete ptr with sz in mind. - Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().Delete(rdxInf->fThe, rdxInf->fTheSz); + Kernel::ProcessScheduler::The().Leak().CurrentProcess().Leak().Delete(rdxInf->fThe, rdxInf->fTheSz); }; kSyscalls[cTlsInstallInterrupt].Leak().Leak()->fProc = [](Kernel::VoidPtr rdx) -> void { @@ -156,7 +156,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept return; Kernel::kcout << "newoskrnl: " << rdxEi->fReason << "\r"; - Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().Exit(rdxEi->fCode); + Kernel::ProcessScheduler::The().Leak().CurrentProcess().Leak().Exit(rdxEi->fCode); }; kSyscalls[cLastExitInterrupt].Leak().Leak()->fProc = [](Kernel::VoidPtr rdx) -> void { -- cgit v1.2.3