aboutsummaryrefslogtreecommitdiff
path: root/include/10.libc/source/heap.h
diff options
context:
space:
mode:
authorAleksa Vučković <aleksav013@gmail.com>2022-01-31 11:16:38 +0100
committerAleksa Vučković <aleksav013@gmail.com>2022-01-31 14:03:24 +0100
commit03035c98b4ba3297b837e96080e78e0aac1e86db (patch)
tree55b5f69f83bc8b77ec229062f702c0a4f960e87f /include/10.libc/source/heap.h
parent11e780fd0f7bed3594de9a7170fadc88c4d48be8 (diff)
Promene
Diffstat (limited to 'include/10.libc/source/heap.h')
-rw-r--r--include/10.libc/source/heap.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/include/10.libc/source/heap.h b/include/10.libc/source/heap.h
new file mode 100644
index 0000000..4bf12a7
--- /dev/null
+++ b/include/10.libc/source/heap.h
@@ -0,0 +1,31 @@
+#ifndef SOURCE_HEAP_H
+#define SOURCE_HEAP_H
+
+#include<types.h>
+
+typedef struct _KHEAPBLOCKBM {
+ struct _KHEAPBLOCKBM *next;
+ uint32_t size;
+ uint32_t used;
+ uint32_t bsize;
+ uint32_t lfb;
+} KHEAPBLOCKBM;
+
+typedef struct _KHEAPBM {
+ KHEAPBLOCKBM *fblock;
+} KHEAPBM;
+
+extern KHEAPBM kheap;
+
+void k_heapBMInit(KHEAPBM *heap);
+int k_heapBMAddBlock(KHEAPBM *heap, uintptr_t addr, uint32_t size, uint32_t
+ bsize);
+void *k_heapBMAlloc(KHEAPBM *heap, uint32_t size);
+void k_heapBMFree(KHEAPBM *heap, void *ptr);
+
+void kheapinit(void);
+int kheapaddblock(uintptr_t addr,uint32_t size,uint32_t bsize);
+void *kmalloc(uint32_t size);
+void kfree(void *ptr);
+
+#endif