diff options
Diffstat (limited to 'kernel/include')
-rw-r--r-- | kernel/include/libk/liballoc.h | 30 | ||||
-rw-r--r-- | kernel/include/libk/string.h | 1 |
2 files changed, 11 insertions, 20 deletions
diff --git a/kernel/include/libk/liballoc.h b/kernel/include/libk/liballoc.h index 11c3111..56ee5d2 100644 --- a/kernel/include/libk/liballoc.h +++ b/kernel/include/libk/liballoc.h @@ -19,39 +19,29 @@ #ifndef __libk_kmalloc_h #define __libk_kmalloc_h -#include <mm/virtual_mm.h> #include <stddef.h> #include <stdint.h> namespace LibAlloc { -/** This is a boundary tag which is prepended to the - * page or section of a page which we have allocated. It is - * used to identify valid memory blocks that the - * application is trying to free. - */ -struct boundary_tag { - unsigned int magic; //< It's a kind of ... - unsigned int size; //< Requested size. - unsigned int real_size; //< Actual size. - int index; //< Location in the page table. +class Block +{ +public: + Block *m_next; + Block *m_prev; - struct boundary_tag *split_left; //< Linked-list info for broken pages. - struct boundary_tag *split_right; //< The same. + uint32_t m_size; - struct boundary_tag *next; //< Linked list info. - struct boundary_tag *prev; //< Linked list info. +public: + void initialize(uint32_t size); + + void *get_chunk(void); }; bool initialized(void); void initialize(void); -void *kmalloc(size_t); -void *krealloc(void *, size_t); -void *kcalloc(size_t, size_t); -void kfree(void *); - } #endif diff --git a/kernel/include/libk/string.h b/kernel/include/libk/string.h index 490878f..8ea5b92 100644 --- a/kernel/include/libk/string.h +++ b/kernel/include/libk/string.h @@ -26,6 +26,7 @@ extern "C" { #endif size_t strlen(const char *str); +void *memset(void *s, int c, size_t n); #ifdef __cplusplus } |