From 3b66779d9a8325c77c6cfbf1565885f98da5378f Mon Sep 17 00:00:00 2001 From: Danny Holman Date: Thu, 28 Mar 2024 21:55:33 -0500 Subject: arch: i386: kernel: implement a kmalloc function Add a basic kmalloc implementation. This allows the kernel to allocate blocks smaller than a whole page. Signed-off-by: Danny Holman --- include/kernel/data/ringbuf.h | 2 +- include/kernel/kmalloc.h | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 include/kernel/kmalloc.h (limited to 'include/kernel') diff --git a/include/kernel/data/ringbuf.h b/include/kernel/data/ringbuf.h index 4f30874..25a7125 100644 --- a/include/kernel/data/ringbuf.h +++ b/include/kernel/data/ringbuf.h @@ -1,7 +1,7 @@ #ifndef KERNEL_RINGBUF_H #define KERNEL_RINGBUF_H -#include +#include #include #include diff --git a/include/kernel/kmalloc.h b/include/kernel/kmalloc.h new file mode 100644 index 0000000..d8debd1 --- /dev/null +++ b/include/kernel/kmalloc.h @@ -0,0 +1,18 @@ +#ifndef KERNEL_KMALLOC_H +#define KERNEL_KMALLOC_H + +#include +#include + +struct mem_block { + uintptr_t start; + size_t size; + int alloc; + struct mem_block *next; +}; + +void kmalloc_init(void); +void* kmalloc(size_t sz); +void kfree(void *ptr); + +#endif -- cgit v1.2.3