diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-08-31 10:47:14 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-08-31 10:47:14 +0200 |
| commit | 2c4b02249ec4355a73b826909ab1889e45871faf (patch) | |
| tree | a904b374c7a738dd3dcb0a580e5667714b72682a /dev/ZKA/Sources/PEFCodeManager.cxx | |
| parent | d65e85588388bf8c2e0dc8f6b106947110c0e815 (diff) | |
Saving progress on User scheduler implementation.
+ Working on RISC-V, ARM64, POWER64 HALs, to be able to distribute
mulitple versions of the product.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKA/Sources/PEFCodeManager.cxx')
| -rw-r--r-- | dev/ZKA/Sources/PEFCodeManager.cxx | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/dev/ZKA/Sources/PEFCodeManager.cxx b/dev/ZKA/Sources/PEFCodeManager.cxx index cecc4820..60b55efc 100644 --- a/dev/ZKA/Sources/PEFCodeManager.cxx +++ b/dev/ZKA/Sources/PEFCodeManager.cxx @@ -7,7 +7,7 @@ #include <KernelKit/DebugOutput.hxx> #include <KernelKit/Heap.hxx> #include <KernelKit/PEFCodeManager.hxx> -#include <KernelKit/ProcessScheduler.hxx> +#include <KernelKit/UserProcessScheduler.hxx> #include <NewKit/Defines.hxx> #include <NewKit/KernelCheck.hxx> #include <NewKit/OwnPtr.hxx> @@ -192,17 +192,24 @@ namespace Kernel namespace Utils { - bool execute_from_image(PEFLoader& exec, const Int32& procKind) noexcept + Bool execute_from_image(PEFLoader& exec, const Int32& procKind) noexcept { auto errOrStart = exec.FindStart(); - if (errOrStart.Error() != 0) + if (errOrStart.Error() != kErrorSuccess) return false; - PROCESS_HEADER_BLOCK proc(errOrStart.Leak().Leak()); + UserProcess proc(errOrStart.Leak().Leak()); + proc.Kind = procKind; + proc.StackSize = *(UIntPtr*)exec.FindSymbol("__STACK_SIZE", kPefData); + + if (!proc.StackSize) + { + proc.StackSize = mib_cast(8); + } - return ProcessScheduler::The().Add(proc); + return UserProcessScheduler::The().Add(proc); } } // namespace Utils |
