diff options
| author | Amlal <amlal@nekernel.org> | 2025-04-24 17:34:39 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-04-24 17:34:39 +0200 |
| commit | 69703f6fdd788276e84cbe2714c91fcfdb9e76cb (patch) | |
| tree | 675324d487a8afbc80f429df96c0bb843628c001 /dev/kernel/src | |
| parent | c4db7babb3e1c664355e9b1375264fd9343835f2 (diff) | |
dev, kernel: scheduler and heap related work.
- Replacing USER_HEAP_LIST with HEAP_HEAP_TREE.
- Reworked Signal struct.
- Add Team spinner inside ARM64 HAL too.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src')
| -rw-r--r-- | dev/kernel/src/UserProcessScheduler.cc | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index 7aded611..cdf7d91f 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -121,21 +121,21 @@ namespace Kernel auto ptr = mm_new_heap(sz, Yes, Yes, pad_amount); #endif - if (!this->ProcessMemoryHeap) + if (!this->HeapTree) { - this->ProcessMemoryHeap = new USER_HEAP_LIST(); + this->HeapTree = new USER_HEAP_TREE(); - this->ProcessMemoryHeap->MemoryEntryPad = pad_amount; - this->ProcessMemoryHeap->MemoryEntrySize = sz; + this->HeapTree->MemoryEntryPad = pad_amount; + this->HeapTree->MemoryEntrySize = sz; - this->ProcessMemoryHeap->MemoryEntry = ptr; + this->HeapTree->MemoryEntry = ptr; - this->ProcessMemoryHeap->MemoryPrev = nullptr; - this->ProcessMemoryHeap->MemoryNext = nullptr; + this->HeapTree->MemoryPrev = nullptr; + this->HeapTree->MemoryNext = nullptr; } else { - USER_HEAP_LIST* entry = this->ProcessMemoryHeap; + USER_HEAP_TREE* entry = this->HeapTree; while (entry) { @@ -145,8 +145,10 @@ namespace Kernel entry = entry->MemoryNext; } - entry->MemoryNext = new USER_HEAP_LIST(); + entry->MemoryNext = new USER_HEAP_TREE(); entry->MemoryNext->MemoryEntry = ptr; + entry->MemoryEntrySize = sz; + entry->MemoryEntryPad = pad_amount; entry->MemoryNext->MemoryPrev = entry; entry->MemoryNext->MemoryNext = nullptr; @@ -206,7 +208,7 @@ namespace Kernel kLastExitCode = exit_code; - auto memory_heap_list = this->ProcessMemoryHeap; + auto memory_heap_list = this->HeapTree; #ifdef __NE_VIRTUAL_MEMORY_SUPPORT__ auto pd = hal_read_cr3(); @@ -277,7 +279,7 @@ namespace Kernel this->ProcessId = 0UL; this->Status = ProcessStatusKind::kFinished; - --this->ProcessParentTeam->mProcessCount; + --this->ParentTeam->mProcessCount; } /***********************************************************************************/ @@ -390,7 +392,7 @@ namespace Kernel HAL::mm_map_page((VoidPtr)process.StackReserve, process.StackReserve, flags); #endif // ifdef __NE_VIRTUAL_MEMORY_SUPPORT__ - process.ProcessParentTeam = &mTeam; + process.ParentTeam = &mTeam; process.ProcessId = pid; process.Status = ProcessStatusKind::kStarting; |
