diff options
author | dzwdz | 2022-07-16 16:49:55 +0200 |
---|---|---|
committer | dzwdz | 2022-07-16 16:49:55 +0200 |
commit | ce80ee8d40b0a2b48bfbbceac9a0baee189c5e1b (patch) | |
tree | 2cd86d9205c35286359f62264c4ea5d6ee97a77e /src/kernel/mem | |
parent | 912d2e3c7eb1baa71dda2c0a28aa5809eaa96f27 (diff) |
amd64: just enough paging support to map init
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); |