summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKAKit/src/PEFCodeMgr.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-07 18:07:22 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-07 18:07:22 +0100
commit4c7ea58f5d5e495e8da6cfc7e1d52a3dfcf5a893 (patch)
tree40c91fce5ac9e622e49515608033f8c98af5a8f1 /dev/ZKAKit/src/PEFCodeMgr.cc
parent63be0a396d95db7b629ffe64dcc543e251936b36 (diff)
IMPL: New I/O functions from assembly, still working on #8 issue.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKAKit/src/PEFCodeMgr.cc')
-rw-r--r--dev/ZKAKit/src/PEFCodeMgr.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/dev/ZKAKit/src/PEFCodeMgr.cc b/dev/ZKAKit/src/PEFCodeMgr.cc
index 43efa00a..c601abc9 100644
--- a/dev/ZKAKit/src/PEFCodeMgr.cc
+++ b/dev/ZKAKit/src/PEFCodeMgr.cc
@@ -255,12 +255,12 @@ namespace Kernel
UserProcess* proc = new UserProcess();
- proc->Kind = procKind;
+ proc->Kind = procKind;
proc->Image.fCode = errOrStart.Leak().Leak();
proc->Image.fBlob = exec.GetBlob().Leak().Leak();
- proc->StackSize = *(UIntPtr*)exec.FindSymbol(kPefStackSizeSymbol, kPefData);
+ proc->StackSize = *(UIntPtr*)exec.FindSymbol(kPefStackSizeSymbol, kPefData);
proc->MemoryLimit = *(UIntPtr*)exec.FindSymbol(kPefHeapSizeSymbol, kPefData);
- proc->PTime = 0UL;
+ proc->PTime = 0UL;
rt_set_memory(proc->Name, 0, kProcessNameLen);
@@ -273,7 +273,12 @@ namespace Kernel
proc->StackSize = mib_cast(kDefaultStackSizeMib);
}
- return UserProcessScheduler::The().Spawn(proc);
+ auto id = UserProcessScheduler::The().Spawn(proc);
+
+ if (id == kProcessInvalidID)
+ delete proc;
+
+ return id;
}
} // namespace Utils
} // namespace Kernel