summaryrefslogtreecommitdiff
path: root/Source/Kernel/MemoryManager
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Kernel/MemoryManager')
-rw-r--r--Source/Kernel/MemoryManager/.Mem.ns.cpp.swpbin0 -> 20480 bytes
-rw-r--r--Source/Kernel/MemoryManager/Mem.ns.cpp6
-rw-r--r--Source/Kernel/MemoryManager/Mem.ns.h2
3 files changed, 8 insertions, 0 deletions
diff --git a/Source/Kernel/MemoryManager/.Mem.ns.cpp.swp b/Source/Kernel/MemoryManager/.Mem.ns.cpp.swp
new file mode 100644
index 0000000..132e9d8
--- /dev/null
+++ b/Source/Kernel/MemoryManager/.Mem.ns.cpp.swp
Binary files differ
diff --git a/Source/Kernel/MemoryManager/Mem.ns.cpp b/Source/Kernel/MemoryManager/Mem.ns.cpp
index 1d1288e..5d30f5f 100644
--- a/Source/Kernel/MemoryManager/Mem.ns.cpp
+++ b/Source/Kernel/MemoryManager/Mem.ns.cpp
@@ -142,6 +142,7 @@ void expandHeap(u32int quantity) {
}
heapEnd = newEnd;
+ kheapFree += quantity;
}
void contractHeap() { //Automatically work out how much we can contract
@@ -156,6 +157,7 @@ void contractHeap() { //Automatically work out how much we can contract
if (quantity == 0) return;
u32int newEnd = heapEnd - quantity;
+ kheapFree -= quantity;
removeFromHeapIndex(last_header);
last_header->size -= quantity;
@@ -256,4 +258,8 @@ void kfree(void *ptr) {
}
}
+u32int kheapSize() {
+ return (heapEnd - heapStart);
+}
+
}
diff --git a/Source/Kernel/MemoryManager/Mem.ns.h b/Source/Kernel/MemoryManager/Mem.ns.h
index e208d65..8eb4b2e 100644
--- a/Source/Kernel/MemoryManager/Mem.ns.h
+++ b/Source/Kernel/MemoryManager/Mem.ns.h
@@ -31,6 +31,8 @@ namespace Mem {
void createHeap();
void *kalloc(u32int sz, bool align = false);
void kfree(void *ptr);
+
+ u32int kheapSize();
}
#endif