diff options
Diffstat (limited to 'kernel/l0/region.c')
-rw-r--r-- | kernel/l0/region.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/kernel/l0/region.c b/kernel/l0/region.c index 956ec07..3127048 100644 --- a/kernel/l0/region.c +++ b/kernel/l0/region.c @@ -215,7 +215,7 @@ void region_allocator_init(void* kernel_data_end) { descriptor_t *u0 = get_unused_descriptor(); u0->used.i.addr = (void*)K_HIGHHALF_ADDR; u0->used.i.size = PAGE_ALIGN_UP(kernel_data_end) - K_HIGHHALF_ADDR; - u0->used.i.type = REGION_T_KERNEL_BASE; + u0->used.i.type = "Kernel code & data"; u0->used.i.pf = 0; u0->used.next_by_addr = 0; first_used_region = u0; @@ -238,7 +238,7 @@ void region_free(void* addr) { mutex_unlock(&ra_mutex); } -static void* region_alloc_inner(size_t size, uint32_t type, page_fault_handler_t pf, bool use_reserve) { +static void* region_alloc_inner(size_t size, char* type, page_fault_handler_t pf, bool use_reserve) { size = PAGE_ALIGN_UP(size); for (descriptor_t *i = first_free_region_by_size; i != 0; i = i->free.first_bigger) { @@ -282,7 +282,7 @@ static void* region_alloc_inner(size_t size, uint32_t type, page_fault_handler_t return 0; //No big enough block found } -void* region_alloc(size_t size, uint32_t type, page_fault_handler_t pf) { +void* region_alloc(size_t size, char* type, page_fault_handler_t pf) { void* result = 0; mutex_lock(&ra_mutex); @@ -290,7 +290,7 @@ void* region_alloc(size_t size, uint32_t type, page_fault_handler_t pf) { uint32_t frame = frame_alloc(1); if (frame == 0) goto try_anyway; - void* descriptor_region = region_alloc_inner(PAGE_SIZE, REGION_T_DESCRIPTORS, 0, true); + void* descriptor_region = region_alloc_inner(PAGE_SIZE, "Region descriptors", 0, true); ASSERT(descriptor_region != 0); int error = pd_map_page(descriptor_region, frame, 1); @@ -386,16 +386,7 @@ void dbg_print_region_info() { } dbg_printf("- Used kernel regions:\n"); for (descriptor_t *d = first_used_region; d != 0; d = d->used.next_by_addr) { - dbg_printf("| 0x%p - 0x%p", d->used.i.addr, d->used.i.addr + d->used.i.size); - if (d->used.i.type & REGION_T_KERNEL_BASE) dbg_printf(" Kernel code & base data"); - if (d->used.i.type & REGION_T_DESCRIPTORS) dbg_printf(" Region descriptors"); - if (d->used.i.type & REGION_T_CORE_HEAP) dbg_printf(" Core heap"); - if (d->used.i.type & REGION_T_KPROC_HEAP) dbg_printf(" Kernel process heap"); - if (d->used.i.type & REGION_T_KPROC_STACK) dbg_printf(" Kernel process stack"); - if (d->used.i.type & REGION_T_PROC_KSTACK) dbg_printf(" Process kernel stack"); - if (d->used.i.type & REGION_T_CACHE) dbg_printf(" Cache"); - if (d->used.i.type & REGION_T_HW) dbg_printf(" Hardware"); - dbg_printf("\n"); + dbg_printf("| 0x%p - 0x%p %s\n", d->used.i.addr, d->used.i.addr + d->used.i.size, d->used.i.type); ASSERT(d != d->used.next_by_addr); } dbg_printf("\\\n"); |