summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/Sources
diff options
context:
space:
mode:
authorAmlal <amlal@el-mahrouss-logic.com>2024-09-08 22:19:00 +0200
committerAmlal <amlal@el-mahrouss-logic.com>2024-09-08 22:19:00 +0200
commitef71b80d3df1969a2be85eadf2d83cd85745469d (patch)
tree218415d633ba1010f57f218a139c791e7a737e4f /dev/ZKA/Sources
parent11219de11b35cb4f1e1a27408244243b11b41e05 (diff)
A lot:
- Changed task banks are being switched in the kernel. - Changed user mode switch mode, improved it to push rflags. - User proc will start the scheduler when it's being jumped on. Signed-off-by: Amlal <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'dev/ZKA/Sources')
-rw-r--r--dev/ZKA/Sources/ExeMain.cxx7
-rw-r--r--dev/ZKA/Sources/HardwareThreadScheduler.cxx25
2 files changed, 9 insertions, 23 deletions
diff --git a/dev/ZKA/Sources/ExeMain.cxx b/dev/ZKA/Sources/ExeMain.cxx
index 2ac752ad..93bbb3e5 100644
--- a/dev/ZKA/Sources/ExeMain.cxx
+++ b/dev/ZKA/Sources/ExeMain.cxx
@@ -69,7 +69,7 @@ namespace Kernel::Detail
const Kernel::Char* cDirStr[cDirCount] = {
"\\Boot\\", "\\System\\", "\\Support\\", "\\Applications\\",
- "\\Users\\", "\\Library\\", "\\Mount\\", "\\Games\\", "\\Applications\\Java\\"};
+ "\\Users\\", "\\Library\\", "\\Mount\\", "\\Store\\", "\\Applications\\Store\\"};
if (fNeFS->GetParser())
{
@@ -146,8 +146,5 @@ EXTERN_C Kernel::Void ke_dll_entrypoint(Kernel::Void)
CG::CGDrawStringToWnd(cKernelWnd, "Running: ", 10, 10, RGB(0, 0, 0));
CG::CGDrawStringToWnd(cKernelWnd, kSysProcess, 10, 10 + (FONT_SIZE_X * Kernel::rt_string_len("Running: ")), RGB(0, 0, 0));
- while (Yes)
- {
- Kernel::UserProcessHelper::StartScheduling();
- }
+ mp_do_user_switch();
}
diff --git a/dev/ZKA/Sources/HardwareThreadScheduler.cxx b/dev/ZKA/Sources/HardwareThreadScheduler.cxx
index 09eadefb..e5947357 100644
--- a/dev/ZKA/Sources/HardwareThreadScheduler.cxx
+++ b/dev/ZKA/Sources/HardwareThreadScheduler.cxx
@@ -97,27 +97,16 @@ namespace Kernel
fStack = frame;
- if (kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled)
- {
- if (this->IsBusy())
- return false;
+ if (this->IsBusy())
+ return false;
- kcout << "Switching to the Process's HW thread...\r";
+ kcout << "Registering process bank...\r";
- this->Busy(true);
- Bool ret = mp_register_process(image, stack_ptr, fStack);
- this->Busy(false);
+ this->Busy(true);
+ Bool ret = mp_register_process(image, stack_ptr, fStack);
+ this->Busy(false);
- return ret;
- }
- else
- {
- kcout << "Switching to the Process's thread...\r";
-
- mp_do_context_switch(image, stack_ptr, fStack);
-
- return Yes;
- }
+ return ret;
}
///! @brief Tells if processor is waked up.