summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/mm/kernel_heap.h1
-rw-r--r--src/mm/kernel_heap.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/src/include/mm/kernel_heap.h b/src/include/mm/kernel_heap.h
index 4527a11..e61a528 100644
--- a/src/include/mm/kernel_heap.h
+++ b/src/include/mm/kernel_heap.h
@@ -15,6 +15,7 @@
void kernel_heap_init();
void * kmalloc(size_t size);
+void * kzalloc(size_t size);
void kfree(void *ptr);
#endif /* KERNEL_HEAP_H */
diff --git a/src/mm/kernel_heap.c b/src/mm/kernel_heap.c
index e53057c..6475b27 100644
--- a/src/mm/kernel_heap.c
+++ b/src/mm/kernel_heap.c
@@ -2,6 +2,7 @@
#include <mm/heap.h>
#include <toxic/config.h>
#include <toxic/vga.h>
+#include <toxic/string.h>
struct heap kernel_heap;
@@ -30,6 +31,14 @@ void * kmalloc(size_t size)
return heap_malloc(&kernel_heap, size);
}
+void *
+kzalloc(size_t size)
+{
+ void * ptr = kmalloc(size);
+ memset(ptr, 0, size);
+ return ptr;
+}
+
void kfree(void *ptr) {
heap_free(&kernel_heap, ptr);
}