summaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
authorAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-30 20:02:24 +0200
committerAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-30 20:02:24 +0200
commit8a4f0e988a901e4fce5d32e3d5f9dbdc5f309863 (patch)
tree90e08d1056e99b20d694a8f38e5be4584d340c75 /dev
parent4bc0d37c17a56db17b19f3d2d410475d61e8f159 (diff)
A set of fixes regarding the scheduler and code manager.
Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'dev')
-rw-r--r--dev/ZKA/KernelKit/ProcessScheduler.hxx4
-rw-r--r--dev/ZKA/Sources/CodeManager.cxx7
-rw-r--r--dev/ZKA/Sources/ProcessScheduler.cxx7
3 files changed, 7 insertions, 11 deletions
diff --git a/dev/ZKA/KernelKit/ProcessScheduler.hxx b/dev/ZKA/KernelKit/ProcessScheduler.hxx
index e0dc326b..b0756522 100644
--- a/dev/ZKA/KernelKit/ProcessScheduler.hxx
+++ b/dev/ZKA/KernelKit/ProcessScheduler.hxx
@@ -167,14 +167,14 @@ namespace Kernel
enum
{
- kAppKind = 1,
+ kExeKind = 1,
kSharedObjectKind = 2,
kKindCount,
};
ProcessTime PTime{0};
PID ProcessId{kSchedInvalidPID};
- Int32 Kind{kAppKind};
+ Int32 Kind{kExeKind};
public:
//! @brief boolean operator, check status.
diff --git a/dev/ZKA/Sources/CodeManager.cxx b/dev/ZKA/Sources/CodeManager.cxx
index 4d478a7a..47625ac1 100644
--- a/dev/ZKA/Sources/CodeManager.cxx
+++ b/dev/ZKA/Sources/CodeManager.cxx
@@ -20,11 +20,10 @@ namespace Kernel
return false;
PROCESS_HEADER_BLOCK proc((VoidPtr)main);
- proc.Kind = PROCESS_HEADER_BLOCK::kAppKind;
+ proc.Kind = PROCESS_HEADER_BLOCK::kExeKind;
rt_copy_memory((VoidPtr)processName, proc.Name, rt_string_len(proc.Name));
+ proc.Image = (VoidPtr)main;
- Ref<PROCESS_HEADER_BLOCK> refProc{proc};
-
- return ProcessScheduler::The().Leak().Add(refProc);
+ return ProcessScheduler::The().Leak().Add(proc);
}
} // namespace Kernel
diff --git a/dev/ZKA/Sources/ProcessScheduler.cxx b/dev/ZKA/Sources/ProcessScheduler.cxx
index bf2cdbd3..579294fb 100644
--- a/dev/ZKA/Sources/ProcessScheduler.cxx
+++ b/dev/ZKA/Sources/ProcessScheduler.cxx
@@ -215,10 +215,7 @@ namespace Kernel
{
if (!process.Leak().Image)
{
- if (process.Leak().Kind != PROCESS_HEADER_BLOCK::kSharedObjectKind)
- {
- return -kErrorNoEntrypoint;
- }
+ return -kErrorInvalidData;
}
if (mTeam.AsArray().Count() > kSchedProcessLimitPerTeam)
@@ -227,7 +224,7 @@ namespace Kernel
kcout << "ProcessScheduler: Adding process to team...\r";
// Create heap according to type of process.
- if (process.Leak().Kind == PROCESS_HEADER_BLOCK::kAppKind)
+ if (process.Leak().Kind == PROCESS_HEADER_BLOCK::kExeKind)
{
process.Leak().HeapPtr = mm_new_ke_heap(process.Leak().SizeMemory, true, true);
}