diff options
Diffstat (limited to 'src/kernel/mem')
-rw-r--r-- | src/kernel/mem/alloc.c | 6 | ||||
-rw-r--r-- | src/kernel/mem/alloc.h | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/kernel/mem/alloc.c b/src/kernel/mem/alloc.c index 797b018..e0cc5f4 100644 --- a/src/kernel/mem/alloc.c +++ b/src/kernel/mem/alloc.c @@ -93,6 +93,12 @@ void *page_alloc(size_t pages) { panic_unimplemented(); } +void *page_zalloc(size_t pages) { + void *p = page_alloc(pages); + memset(p, 0, pages * PAGE_SIZE); + return p; +} + // frees `pages` consecutive pages starting from *first void page_free(void *first_addr, size_t pages) { size_t first = (uintptr_t)(first_addr - page_bitmap_start) / PAGE_SIZE; diff --git a/src/kernel/mem/alloc.h b/src/kernel/mem/alloc.h index a92d866..14c4361 100644 --- a/src/kernel/mem/alloc.h +++ b/src/kernel/mem/alloc.h @@ -9,7 +9,10 @@ void mem_init(struct kmain_info *); 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); |