diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-21 08:50:57 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-21 08:51:40 +0100 |
| commit | 6ed8a39c1bd3083297b41e981a2bf4bdbe2abd1f (patch) | |
| tree | 183713eb331a92e4e1ce061263cf91a208c7c400 /dev/ZKAKit/src/CodeMgr.cc | |
| parent | 50439432a85976605dbb18e3cd2161f888d2e17d (diff) | |
IMP: Add UserProcessImage structure to hold the code/entrypoint of the process.
IMP: Use IDLLObject instead of IPEFDLLObject.
IMP: Refactor DeviceInterface to IDeviceObject.
ADD: rt_jump_to_address when you want to use a custom stack.
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 | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/dev/ZKAKit/src/CodeMgr.cc b/dev/ZKAKit/src/CodeMgr.cc index 5b5d471b..a4502f58 100644 --- a/dev/ZKAKit/src/CodeMgr.cc +++ b/dev/ZKAKit/src/CodeMgr.cc @@ -16,16 +16,14 @@ namespace Kernel /// @return if the process was started or not. ProcessID rtl_create_process(MainKind main, const Char* process_name) noexcept { - kcout << "Validating process header...\r"; - - if (!main) - return No; + if (!main || + !process_name || + *process_name == 0) + return kProcessInvalidID; UserProcess* process_hdr = new UserProcess(); - kcout << "Setting-up process data...\r"; - - process_hdr->Code = reinterpret_cast<VoidPtr>(main); + process_hdr->Image.fCode = reinterpret_cast<VoidPtr>(main); process_hdr->Kind = UserProcess::kExectuableKind; process_hdr->StackSize = kib_cast(16); @@ -33,8 +31,6 @@ namespace Kernel ProcessID id = UserProcessScheduler::The().Spawn(process_hdr); - delete process_hdr; - return id; } } // namespace Kernel |
