diff options
author | dzwdz | 2023-01-25 22:05:35 +0100 |
---|---|---|
committer | dzwdz | 2023-01-25 22:05:35 +0100 |
commit | 353647418912b5b6b94473b15bee312ddc4d64a9 (patch) | |
tree | 495eae13e6287fdb964628bf3602fcfdd937f36d /src/kernel/malloc.h | |
parent | e06cf9993b5a40abcf6c1d6c77b497ff69a9fd44 (diff) |
kernel: move /mem/alloc to /malloc and linker.ld to arch/amd64/
Diffstat (limited to 'src/kernel/malloc.h')
-rw-r--r-- | src/kernel/malloc.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/kernel/malloc.h b/src/kernel/malloc.h new file mode 100644 index 0000000..671a468 --- /dev/null +++ b/src/kernel/malloc.h @@ -0,0 +1,29 @@ +#pragma once +#include <kernel/arch/generic.h> +#include <shared/mem.h> +#include <stddef.h> + +extern struct malloc_hdr *malloc_last; + +void mem_init(void *memtop); +void mem_reserve(void *addr, size_t len); +void mem_debugprint(void); + +// allocates `pages` consecutive pages +// TODO deprecate +void *page_alloc(size_t pages); +// zeroes the allocated pages +void *page_zalloc(size_t pages); + +// frees `pages` consecutive pages starting from *first +void page_free(void *first, size_t pages); + +void kmalloc_sanity(const void *addr); +void *kmalloc(size_t len); +void kfree(void *ptr); + +static inline void *kzalloc(size_t len) { + void *b = kmalloc(len); + memset(b, 0, len); + return b; +} |