From 6ed8a39c1bd3083297b41e981a2bf4bdbe2abd1f Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 21 Nov 2024 08:50:57 +0100 Subject: 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 --- dev/ZKAKit/src/CodeMgr.cc | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'dev/ZKAKit/src/CodeMgr.cc') 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(main); + process_hdr->Image.fCode = reinterpret_cast(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 -- cgit v1.2.3