From 5877697e6473d58971c807c8b2962f75af809ead Mon Sep 17 00:00:00 2001 From: fef Date: Thu, 4 Nov 2021 06:01:03 +0100 Subject: [PATCH] page: use new ptr align macros --- include/gay/mm.h | 4 +++- kernel/mm/page.c | 14 +++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/include/gay/mm.h b/include/gay/mm.h index 0b15bcf..c2c0fc9 100644 --- a/include/gay/mm.h +++ b/include/gay/mm.h @@ -143,7 +143,9 @@ int pages_init(void); * @param flags * @return */ -void *get_pages(usize count, enum mm_flags flags) __malloc_like; +void *get_pages(usize count, enum mflags flags) __malloc_like; +#define GET_PAGE_LEVELS (HUGEPAGE_SHIFT - PAGE_SHIFT + 1) +#define GET_PAGE_MAXCOUNT (1 << (HUGEPAGE_SHIFT - PAGE_SHIFT)) void free_pages(void *ptr); diff --git a/kernel/mm/page.c b/kernel/mm/page.c index 71dd6f5..79741a6 100644 --- a/kernel/mm/page.c +++ b/kernel/mm/page.c @@ -41,11 +41,11 @@ # if CFG_DEBUG_PAGE_ALLOCS_NOISY # define page_debug_noisy(msg, ...) kprintf("[page] " msg, ##__VA_ARGS__) # else -# define page_debug_noisy(msg, ...) +# define page_debug_noisy(msg, ...) ({}) # endif #else -# define page_debug(msg, ...) -# define page_debug_noisy(msg, ...) +# define page_debug(msg, ...) ({}) +# define page_debug_noisy(msg, ...) ({}) #endif /** @@ -54,7 +54,7 @@ * the one below it, starting at one page per entry. The effective result is * that a single entry in the cache on level L covers `(1 << L)` pages. */ -#define CACHE_LEVELS (HUGEPAGE_SHIFT - PAGE_SHIFT + 1) +#define CACHE_LEVELS GET_PAGE_LEVELS #define LEVEL_SHIFT(level) (PAGE_SHIFT + (level)) @@ -75,7 +75,7 @@ struct cache_pool { usize free_entries; }; static struct cache_pool caches[CACHE_LEVELS]; -MTX(caches_lock); +static MTX(caches_lock); #define LONG_BIT_MASK (~(LONG_BIT - 1)) @@ -138,7 +138,7 @@ int pages_init(void) vm_flush(); /* phys_end gets aligned, as promised by the comment in kmalloc_init() */ - phys_end = uintptr_align(phys_end, -HUGEPAGE_SHIFT); + phys_end = align_floor(phys_end, HUGEPAGE_SIZE); usize phys_size = phys_end - phys_start; /* @@ -187,7 +187,7 @@ int pages_init(void) /* kheap_start and kheap_end are globals */ kheap_start = __v(phys_start); - kheap_end = ptr_align(bitmap_start, -HUGEPAGE_SHIFT); + kheap_end = align_floor(bitmap_start, HUGEPAGE_SIZE); /* * populate the freelist on the highest level, all levels beneath it