diff options
Diffstat (limited to 'Source/Kernel/MemoryManager')
-rw-r--r-- | Source/Kernel/MemoryManager/.Mem.ns.cpp.swp | bin | 0 -> 20480 bytes | |||
-rw-r--r-- | Source/Kernel/MemoryManager/Mem.ns.cpp | 6 | ||||
-rw-r--r-- | Source/Kernel/MemoryManager/Mem.ns.h | 2 |
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 Binary files differnew file mode 100644 index 0000000..132e9d8 --- /dev/null +++ b/Source/Kernel/MemoryManager/.Mem.ns.cpp.swp 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 |