summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/Sources/PEFCodeManager.cxx
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-08-31 10:47:14 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-08-31 10:47:14 +0200
commit2c4b02249ec4355a73b826909ab1889e45871faf (patch)
treea904b374c7a738dd3dcb0a580e5667714b72682a /dev/ZKA/Sources/PEFCodeManager.cxx
parentd65e85588388bf8c2e0dc8f6b106947110c0e815 (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.cxx17
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