diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-02 19:38:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-02 19:38:46 +0200 |
| commit | 997be16e5ac9a68d54882ab69529815860d62955 (patch) | |
| tree | 19d6129c2d776bb1edc5d4a7325e39ca176c3403 /dev/kernel/KernelKit/UserProcessScheduler.inl | |
| parent | 618104e74c195d7508a18450524f8ed7f9af8cc6 (diff) | |
| parent | b3b4b1ebdcd6adeac914869017c86d892b7a8ced (diff) | |
Merge pull request #28 from nekernel-org/dev
0.0.2
Diffstat (limited to 'dev/kernel/KernelKit/UserProcessScheduler.inl')
| -rw-r--r-- | dev/kernel/KernelKit/UserProcessScheduler.inl | 75 |
1 files changed, 35 insertions, 40 deletions
diff --git a/dev/kernel/KernelKit/UserProcessScheduler.inl b/dev/kernel/KernelKit/UserProcessScheduler.inl index ea57cf65..2333b898 100644 --- a/dev/kernel/KernelKit/UserProcessScheduler.inl +++ b/dev/kernel/KernelKit/UserProcessScheduler.inl @@ -1,65 +1,60 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. - FILE: UserProcessScheduler.inl - PURPOSE: Low level/Ring-3 Process scheduler. + FILE: UserProcessScheduler.inl + PURPOSE: Low level/Ring-3 process scheduler. ------------------------------------------- */ -/// @brief Process scheduler inline definitions. +/// @brief USER_PROCESS inline definitions. /// @author Amlal El Mahrouss (amlal@nekernel.org) +/// @date Tue Apr 22 22:01:07 CEST 2025 -namespace Kernel -{ - /***********************************************************************************/ - /** @brief Free pointer from usage. */ - /***********************************************************************************/ +namespace Kernel { +/***********************************************************************************/ +/** @brief Free pointer from usage. */ +/***********************************************************************************/ - template <typename T> - Boolean Process::Delete(ErrorOr<T*> ptr) - { - if (!ptr) - return No; +template <typename T> +Boolean USER_PROCESS::Delete(ErrorOr<T*> ptr) { + if (!ptr) return No; - if (!this->ProcessMemoryHeap) - { - kout << "Process's heap is empty.\r"; - return No; - } + if (!this->HeapTree) { + kout << "USER_PROCESS's heap is empty.\r"; + return No; + } - ProcessMemoryHeapList* entry = this->ProcessMemoryHeap; + USER_HEAP_TREE* entry = this->HeapTree; - while (entry != nullptr) - { - if (entry->MemoryEntry == ptr.Leak().Leak()) - { - this->UsedMemory -= entry->MemoryEntrySize; + while (entry != nullptr) { + if (entry->MemoryEntry == ptr.Leak().Leak()) { + this->UsedMemory -= entry->MemoryEntrySize; #ifdef __NE_AMD64__ - auto pd = hal_read_cr3(); + auto pd = hal_read_cr3(); - hal_write_cr3(this->VMRegister); + hal_write_cr3(this->VMRegister); - auto ret = mm_delete_heap(entry->MemoryEntry); + auto ret = mm_delete_heap(entry->MemoryEntry); - hal_write_cr3(pd); + hal_write_cr3(pd); - return ret == kErrorSuccess; + return ret == kErrorSuccess; #else - Bool ret = mm_delete_heap(ptr.Leak().Leak()); + Bool ret = mm_delete_heap(ptr.Leak().Leak()); - return ret == kErrorSuccess; + return ret == kErrorSuccess; #endif - } + } - entry = entry->MemoryNext; - } + entry = entry->MemoryNext; + } - kout << "Invalid Pointer: Trying to free a pointer which doesn't exist.\r"; + kout << "USER_PROCESS: Trying to free a pointer which doesn't exist.\r"; - this->Crash(); + this->Crash(); - return No; - } -} // namespace Kernel + return No; +} +} // namespace Kernel |
