summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/KernelKit
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/KernelKit')
-rw-r--r--dev/kernel/KernelKit/UserProcessScheduler.h25
-rw-r--r--dev/kernel/KernelKit/UserProcessScheduler.inl4
2 files changed, 21 insertions, 8 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};
diff --git a/dev/kernel/KernelKit/UserProcessScheduler.inl b/dev/kernel/KernelKit/UserProcessScheduler.inl
index e31b5462..63cdc795 100644
--- a/dev/kernel/KernelKit/UserProcessScheduler.inl
+++ b/dev/kernel/KernelKit/UserProcessScheduler.inl
@@ -23,13 +23,13 @@ namespace Kernel
if (!ptr)
return No;
- if (!this->ProcessMemoryHeap)
+ if (!this->HeapTree)
{
kout << "USER_PROCESS's heap is empty.\r";
return No;
}
- USER_HEAP_LIST* entry = this->ProcessMemoryHeap;
+ USER_HEAP_TREE* entry = this->HeapTree;
while (entry != nullptr)
{