diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-07 08:44:53 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-07 08:44:53 +0100 |
| commit | 696d6ffdd2404f2aca526075a0df9022e3397d72 (patch) | |
| tree | a34b4a3026dbd3a2ed41794555ab2f9020c4df35 /dev/ZKAKit/src/UserProcessScheduler.cc | |
| parent | 50c9f923a00e2fc1b80c9a7d860f96a4509d2232 (diff) | |
IMP: made make_application to executable, and refactor source code with
better comments.
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.cc | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/dev/ZKAKit/src/UserProcessScheduler.cc b/dev/ZKAKit/src/UserProcessScheduler.cc index 1a060041..4550af4e 100644 --- a/dev/ZKAKit/src/UserProcessScheduler.cc +++ b/dev/ZKAKit/src/UserProcessScheduler.cc @@ -118,11 +118,11 @@ namespace Kernel { #ifdef __ZKA_AMD64__ auto vm_register = hal_read_cr3(); - hal_write_cr3(reinterpret_cast<VoidPtr>(this->VMRegister)); + hal_write_cr3(this->VMRegister); auto ptr = mm_new_heap(sz + pad_amount, Yes, Yes); - hal_write_cr3(reinterpret_cast<VoidPtr>(vm_register)); + hal_write_cr3(vm_register); #else auto ptr = mm_new_heap(sz + pad_amount, Yes, Yes); #endif @@ -183,7 +183,7 @@ namespace Kernel { #ifdef __ZKA_AMD64__ auto pd = hal_read_cr3(); - hal_write_cr3(reinterpret_cast<VoidPtr>(this->VMRegister)); + hal_write_cr3(this->VMRegister); auto ret = mm_delete_heap(entry->MemoryEntry); @@ -262,7 +262,7 @@ namespace Kernel { #ifdef __ZKA_AMD64__ auto pd = hal_read_cr3(); - hal_write_cr3(reinterpret_cast<VoidPtr>(this->VMRegister)); + hal_write_cr3(this->VMRegister); #endif MUST_PASS(mm_delete_heap(memory_list->MemoryEntry)); @@ -281,7 +281,7 @@ namespace Kernel } //! Free the memory's page directory. - HAL::mm_free_bitmap(reinterpret_cast<VoidPtr>(this->VMRegister)); + HAL::mm_free_bitmap(this->VMRegister); //! Delete image if not done already. if (this->Code && mm_is_valid_heap(this->Code)) @@ -325,10 +325,8 @@ namespace Kernel ProcessID UserProcessScheduler::Add(UserProcess* process) { - kcout << "Create VMRegister of: " << process->Name << endl; - #ifdef __ZKA_AMD64__ - process->VMRegister = reinterpret_cast<UIntPtr>(mm_new_heap(sizeof(PDE), No, Yes)); + process->VMRegister = mm_new_heap(sizeof(PDE), No, Yes); if (!process->VMRegister) { @@ -337,7 +335,7 @@ namespace Kernel } #endif // __ZKA_AMD64__ - kcout << "Create StackFrame of: " << process->Name << endl; + kcout << "Create page directory for: " << process->Name << endl; process->StackFrame = reinterpret_cast<HAL::StackFramePtr>(mm_new_heap(sizeof(HAL::StackFrame), Yes, Yes)); @@ -347,11 +345,15 @@ namespace Kernel return -kErrorProcessFault; } + kcout << "Create stack for: " << process->Name << endl; + // Create heap according to type of process-> if (process->Kind == UserProcess::kExectuableDLLKind) { - kcout << "Create delegate dylib for: " << process->Name << endl; process->PefDLLDelegate = rtl_init_dll(process); + MUST_PASS(process->PefDLLDelegate); + + kcout << "Create delegate dylib for: " << process->Name << endl; } process->StackReserve = new UInt8[process->StackSize]; @@ -362,14 +364,14 @@ namespace Kernel HAL::mm_map_page((VoidPtr)process->StackReserve, flags); - kcout << "Validate stack reserve: " << number((UIntPtr)process->StackReserve) << endl; - if (!process->StackReserve) { process->Crash(); return -kErrorProcessFault; } + kcout << "Created stack reserve for: " << process->Name << endl; + auto pid = kProcessIDCounter; process->ProcessId = pid; |
