diff options
| author | Amlal EL Mahrouss <113760121+amlel-el-mahrouss@users.noreply.github.com> | 2025-01-09 23:31:00 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-09 23:31:00 +0100 |
| commit | 6d813612ec7221e8ef957e43c83b38957de4b025 (patch) | |
| tree | ffe3939cbcc1f56d17e2f387716cbaa7ceaec842 /dev/Kernel/src | |
| parent | 0f8285983883048dbf19734c588473725c66f367 (diff) | |
ADD: Better code and tweaks to scheduler code.
Diffstat (limited to 'dev/Kernel/src')
| -rw-r--r-- | dev/Kernel/src/UserProcessScheduler.cc | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc index 6cd7fb0b..2d3101f2 100644 --- a/dev/Kernel/src/UserProcessScheduler.cc +++ b/dev/Kernel/src/UserProcessScheduler.cc @@ -248,7 +248,7 @@ namespace Kernel this->Image.fCode = nullptr; this->StackFrame = nullptr; - if (this->Kind == kExectuableDLLKind) + if (this->Kind == kExectuableDylibKind) { Bool success = false; @@ -329,15 +329,29 @@ namespace Kernel HAL::mm_map_page((VoidPtr)process.StackFrame, flags); #endif // __ZKA_VIRTUAL_MEMORY_SUPPORT__ - // Create heap according to type of process. - if (process.Kind == UserThread::kExectuableDLLKind) + // React according to process kind. + switch (process.kind) + { + case UserThread::kExectuableDylibKind: { process.DylibDelegate = rtl_init_dylib(process); MUST_PASS(process.DylibDelegate); } + default: + { + kcout << "Unknown process kind: " << number(process.Kind) << endl; + break; + } + } process.StackReserve = new UInt8[process.StackSize]; + if (!process.StackReserve) + { + process.Crash(); + return kErrorProcessFault; + } + #ifdef __ZKA_VIRTUAL_MEMORY_SUPPORT__ flags = HAL::kMMFlagsPresent; flags |= HAL::kMMFlagsWr; @@ -346,12 +360,6 @@ namespace Kernel HAL::mm_map_page((VoidPtr)process.StackReserve, flags); #endif // __ZKA_VIRTUAL_MEMORY_SUPPORT__ - if (!process.StackReserve) - { - process.Crash(); - return kErrorProcessFault; - } - process.ProcessParentTeam = &mTeam; process.ProcessId = pid; |
