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/KernelKit/UserProcessScheduler.h | |
| 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/KernelKit/UserProcessScheduler.h')
| -rw-r--r-- | dev/kernel/KernelKit/UserProcessScheduler.h | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/dev/kernel/KernelKit/UserProcessScheduler.h b/dev/kernel/KernelKit/UserProcessScheduler.h index ec16a0e2..3811a2e2 100644 --- a/dev/kernel/KernelKit/UserProcessScheduler.h +++ b/dev/kernel/KernelKit/UserProcessScheduler.h @@ -67,26 +67,39 @@ namespace Kernel SizeT MemoryLimit{kSchedMaxMemoryLimit}; SizeT UsedMemory{0UL}; - struct USER_HEAP_LIST final + struct USER_HEAP_TREE final { VoidPtr MemoryEntry{nullptr}; SizeT MemoryEntrySize{0UL}; SizeT MemoryEntryPad{0UL}; - struct USER_HEAP_LIST* MemoryPrev{nullptr}; - struct USER_HEAP_LIST* MemoryNext{nullptr}; + enum + { + kInvalidMemory = 0, + kRedMemory = 100, + kBlackMemory = 101, + kCountMemory = 2, + }; + + Int32 MemoryColor{kBlackMemory}; + + struct USER_HEAP_TREE* MemoryParent{nullptr}; + struct USER_HEAP_TREE* MemoryChild{nullptr}; + + struct USER_HEAP_TREE* MemoryPrev{nullptr}; + struct USER_HEAP_TREE* MemoryNext{nullptr}; }; struct USER_PROCESS_SIGNAL final { UIntPtr SignalArg; - ProcessStatusKind PreviousStatus; + ProcessStatusKind Status; UIntPtr SignalID; }; USER_PROCESS_SIGNAL Signal; - USER_HEAP_LIST* ProcessMemoryHeap{nullptr}; - UserProcessTeam* ProcessParentTeam; + USER_HEAP_TREE* HeapTree{nullptr}; + UserProcessTeam* ParentTeam; VoidPtr VMRegister{0UL}; |
