Lines Matching refs:arena

27 #define PAGE_BELONGS_TO_ARENA(page, arena) \  argument
28 (((uintptr_t)(page) >= (uintptr_t)(arena)->page_array) && \
29 …((uintptr_t)(page) < ((uintptr_t)(arena)->page_array + (arena)->size / PAGE_SIZE * sizeof(vm_page_…
31 #define PAGE_ADDRESS_FROM_ARENA(page, arena) \ argument
32 …(paddr_t)(((uintptr_t)page - (uintptr_t)(arena)->page_array) / sizeof(vm_page_t)) * PAGE_SIZE + (a…
34 #define ADDRESS_IN_ARENA(address, arena) \ argument
35 ((address) >= (arena)->base && (address) <= (arena)->base + (arena)->size - 1)
62 status_t pmm_add_arena(pmm_arena_t *arena) { in pmm_add_arena() argument
63 …LTRACEF("arena %p name '%s' base 0x%lx size 0x%zx\n", arena, arena->name, arena->base, arena->size… in pmm_add_arena()
65 DEBUG_ASSERT(IS_PAGE_ALIGNED(arena->base)); in pmm_add_arena()
66 DEBUG_ASSERT(IS_PAGE_ALIGNED(arena->size)); in pmm_add_arena()
67 DEBUG_ASSERT(arena->size > 0); in pmm_add_arena()
72 if (a->priority > arena->priority) { in pmm_add_arena()
73 list_add_before(&a->node, &arena->node); in pmm_add_arena()
79 list_add_tail(&arena_list, &arena->node); in pmm_add_arena()
84 arena->free_count = 0; in pmm_add_arena()
85 list_initialize(&arena->free_list); in pmm_add_arena()
88 size_t page_count = arena->size / PAGE_SIZE; in pmm_add_arena()
89 arena->page_array = boot_alloc_mem(page_count * sizeof(vm_page_t)); in pmm_add_arena()
92 memset(arena->page_array, 0, page_count * sizeof(vm_page_t)); in pmm_add_arena()
96 vm_page_t *p = &arena->page_array[i]; in pmm_add_arena()
98 list_add_tail(&arena->free_list, &p->node); in pmm_add_arena()
100 arena->free_count++; in pmm_add_arena()
365 static void dump_arena(const pmm_arena_t *arena, bool dump_pages) { in dump_arena() argument
367 arena, arena->name, arena->base, arena->size, arena->priority, arena->flags); in dump_arena()
369 arena->page_array, arena->free_count); in dump_arena()
373 for (size_t i = 0; i < arena->size / PAGE_SIZE; i++) { in dump_arena()
374 dump_page(&arena->page_array[i]); in dump_arena()
381 for (size_t i = 0; i < arena->size / PAGE_SIZE; i++) { in dump_arena()
382 if (page_is_free(&arena->page_array[i])) { in dump_arena()
388 … printf("\t\t0x%lx - 0x%lx\n", arena->base + last * PAGE_SIZE, arena->base + i * PAGE_SIZE); in dump_arena()
395 printf("\t\t0x%lx - 0x%lx\n", arena->base + last * PAGE_SIZE, arena->base + arena->size); in dump_arena()