diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-01-06 20:11:53 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-01-06 20:11:53 +0100 |
| commit | 98110adc9f47666696e18a6c7c97a3edc89c5d90 (patch) | |
| tree | e39f76352995abfdcc154637b2dae00ed246d5c7 /dev/Kernel/src/UserProcessScheduler.cc | |
| parent | 8c179d8801df7f5f77fe7ec65a0a98b7901dad09 (diff) | |
ADD: Fix kernel build and bootloader build on aarch64, add syschk for
aarch64.
WIP: aarch64 on CoreBoot (EFI is unpractical)
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/src/UserProcessScheduler.cc')
| -rw-r--r-- | dev/Kernel/src/UserProcessScheduler.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc index 936d0547..55d3474b 100644 --- a/dev/Kernel/src/UserProcessScheduler.cc +++ b/dev/Kernel/src/UserProcessScheduler.cc @@ -106,7 +106,7 @@ namespace Kernel ErrorOr<VoidPtr> UserThread::New(const SizeT& sz, const SizeT& pad_amount) { -#ifdef __ZKA_AMD64__ +#ifdef __ZKA_VIRTUAL_MEMORY_SUPPORT__ auto vm_register = hal_read_cr3(); hal_write_cr3(this->VMRegister); @@ -206,7 +206,7 @@ namespace Kernel auto memory_heap_list = this->ProcessMemoryHeap; -#ifdef __ZKA_AMD64__ +#ifdef __ZKA_VIRTUAL_MEMORY_SUPPORT__ auto pd = hal_read_cr3(); hal_write_cr3(this->VMRegister); #endif @@ -219,7 +219,7 @@ namespace Kernel MUST_PASS(mm_delete_heap(memory_heap_list->MemoryEntry)); } -#ifdef __ZKA_AMD64__ +#ifdef __ZKA_VIRTUAL_MEMORY_SUPPORT__ hal_write_cr3(pd); #endif @@ -297,7 +297,7 @@ namespace Kernel rt_copy_memory(reinterpret_cast<VoidPtr>(const_cast<Char*>(name)), process.Name, rt_string_len(name)); -#ifdef __ZKA_AMD64__ +#ifdef __ZKA_VIRTUAL_MEMORY_SUPPORT__ process.VMRegister = new PDE(); if (!process.VMRegister) @@ -311,7 +311,7 @@ namespace Kernel flags |= HAL::kMMFlagsUser; HAL::mm_map_page((VoidPtr)process.VMRegister, flags); -#endif // __ZKA_AMD64__ +#endif // __ZKA_VIRTUAL_MEMORY_SUPPORT__ process.StackFrame = new HAL::StackFrame(); @@ -321,11 +321,13 @@ namespace Kernel return kErrorProcessFault; } +#ifdef __ZKA_VIRTUAL_MEMORY_SUPPORT__ flags = HAL::kMMFlagsPresent; flags |= HAL::kMMFlagsWr; flags |= HAL::kMMFlagsUser; HAL::mm_map_page((VoidPtr)process.StackFrame, flags); +#endif // __ZKA_VIRTUAL_MEMORY_SUPPORT__ // Create heap according to type of process. if (process.Kind == UserThread::kExectuableDLLKind) @@ -336,11 +338,13 @@ namespace Kernel process.StackReserve = new UInt8[process.StackSize]; +#ifdef __ZKA_VIRTUAL_MEMORY_SUPPORT__ flags = HAL::kMMFlagsPresent; flags |= HAL::kMMFlagsWr; flags |= HAL::kMMFlagsUser; HAL::mm_map_page((VoidPtr)process.StackReserve, flags); +#endif // __ZKA_VIRTUAL_MEMORY_SUPPORT__ if (!process.StackReserve) { |
