summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKAKit/src/UserProcessScheduler.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-11-07 16:30:10 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-11-07 16:30:10 +0100
commit516efdab62108ff03af7f1d91e6dcba02f6aad47 (patch)
tree5301fd170496f7562d0872c950cda0ec9d1f5db0 /dev/ZKAKit/src/UserProcessScheduler.cc
parent3bb0b718b3fde156b6f30b7f05fa34a4937befaf (diff)
Kernel: lots of fixes and improvements.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKAKit/src/UserProcessScheduler.cc')
-rw-r--r--dev/ZKAKit/src/UserProcessScheduler.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/dev/ZKAKit/src/UserProcessScheduler.cc b/dev/ZKAKit/src/UserProcessScheduler.cc
index 4550af4e..e5bcd1c2 100644
--- a/dev/ZKAKit/src/UserProcessScheduler.cc
+++ b/dev/ZKAKit/src/UserProcessScheduler.cc
@@ -325,6 +325,12 @@ namespace Kernel
ProcessID UserProcessScheduler::Add(UserProcess* process)
{
+ if (*process->Name == 0)
+ {
+ Char process_name[] = "System Process";
+ rt_copy_memory((VoidPtr)process_name, process->Name, rt_string_len(process_name));
+ }
+
#ifdef __ZKA_AMD64__
process->VMRegister = mm_new_heap(sizeof(PDE), No, Yes);
@@ -353,7 +359,7 @@ namespace Kernel
process->PefDLLDelegate = rtl_init_dll(process);
MUST_PASS(process->PefDLLDelegate);
- kcout << "Create delegate dylib for: " << process->Name << endl;
+ kcout << "Create DLL Delegate for: " << process->Name << endl;
}
process->StackReserve = new UInt8[process->StackSize];
@@ -370,7 +376,7 @@ namespace Kernel
return -kErrorProcessFault;
}
- kcout << "Created stack reserve for: " << process->Name << endl;
+ kcout << "Create stack reserve for: " << process->Name << endl;
auto pid = kProcessIDCounter;
@@ -575,8 +581,8 @@ namespace Kernel
////////////////////////////////////////////////////////////
auto prev_ptime = HardwareThreadScheduler::The()[index].Leak()->fPTime;
- HardwareThreadScheduler::The()[index].Leak()->fPTime = UserProcessScheduler::The().CurrentTeam().AsArray()[new_pid].ProcessId;
- Bool ret = HardwareThreadScheduler::The()[index].Leak()->Switch(image_ptr, stack, frame_ptr);
+ HardwareThreadScheduler::The()[index].Leak()->fPTime = UserProcessScheduler::The().CurrentTeam().AsArray()[new_pid].PTime;
+ Bool ret = HardwareThreadScheduler::The()[index].Leak()->Switch(image_ptr, stack, frame_ptr, new_pid);
////////////////////////////////////////////////////////////
/// Rollback on fail. ///