diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-07 16:30:10 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-07 16:30:10 +0100 |
| commit | 516efdab62108ff03af7f1d91e6dcba02f6aad47 (patch) | |
| tree | 5301fd170496f7562d0872c950cda0ec9d1f5db0 /dev/ZKAKit/src/CodeMgr.cc | |
| parent | 3bb0b718b3fde156b6f30b7f05fa34a4937befaf (diff) | |
Kernel: lots of fixes and improvements.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKAKit/src/CodeMgr.cc')
| -rw-r--r-- | dev/ZKAKit/src/CodeMgr.cc | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/dev/ZKAKit/src/CodeMgr.cc b/dev/ZKAKit/src/CodeMgr.cc index 784ea38c..cde249ac 100644 --- a/dev/ZKAKit/src/CodeMgr.cc +++ b/dev/ZKAKit/src/CodeMgr.cc @@ -16,24 +16,23 @@ namespace Kernel /// @return if the process was started or not. ProcessID rtl_create_process(MainKind main, const Char* process_name) noexcept { - kcout << "Validating process...\r"; + kcout << "Validating process header...\r"; if (!main) return No; - UserProcess* proc = new UserProcess{reinterpret_cast<VoidPtr>(main)}; - + static UserProcess proc; + kcout << "Setting-up process data...\r"; - proc->Kind = UserProcess::kExectuableKind; - proc->StackSize = kib_cast(4); - - rt_set_memory(proc->Name, 0, kProcessNameLen); - rt_copy_memory((VoidPtr)process_name, proc->Name, rt_string_len(process_name)); + proc.Code = reinterpret_cast<VoidPtr>(main); + proc.Kind = UserProcess::kExectuableKind; + proc.StackSize = kib_cast(16); - ProcessID id = UserProcessScheduler::The().Add(proc); + rt_set_memory(proc.Name, 0, kProcessNameLen); + rt_copy_memory((VoidPtr)process_name, proc.Name, rt_string_len(process_name)); - delete proc; + ProcessID id = UserProcessScheduler::The().Add(&proc); return id; } |
