From 7e22dd604f2eec2e102ffc1f82b76485bc1f4c6d Mon Sep 17 00:00:00 2001 From: pointer-to-bios Date: Tue, 13 Feb 2024 01:01:59 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=88=86=E9=85=8D=E5=99=A8al?= =?UTF-8?q?locate=E5=87=BD=E6=95=B0=E4=B8=8D=E9=9C=80=E8=A6=81=E7=9A=84ali?= =?UTF-8?q?gn=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/kernel/memm.h | 2 +- src/kernel/memm/allocator/raw.c | 2 +- src/kernel/memm/memm.c | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/kernel/memm.h b/include/kernel/memm.h index f4714ae..8c40127 100644 --- a/include/kernel/memm.h +++ b/include/kernel/memm.h @@ -23,7 +23,7 @@ /* 只分配不映射空间 */ #define MEMM_ALLOC_ONLY_MEMORY (128 * 1024 * 1024) -typedef void *(*memm_allocate_t)(void *allocator, usize size, usize align); +typedef void *(*memm_allocate_t)(void *allocator, usize size); typedef void (*memm_free_t)(void *allocator, void *mem); /* diff --git a/src/kernel/memm/allocator/raw.c b/src/kernel/memm/allocator/raw.c index ce158de..972c8b2 100644 --- a/src/kernel/memm/allocator/raw.c +++ b/src/kernel/memm/allocator/raw.c @@ -13,7 +13,7 @@ void raw_allocator_new(raw_allocator_t *allocator, usize size) allocator->cells[0].length = 0; } -void *raw_allocator_allocate(raw_allocator_t *allocator, usize size, usize align) +void *raw_allocator_allocate(raw_allocator_t *allocator, usize size) { usize real_size = size; align_to(real_size, 16); diff --git a/src/kernel/memm/memm.c b/src/kernel/memm/memm.c index 787befa..db66100 100644 --- a/src/kernel/memm/memm.c +++ b/src/kernel/memm/memm.c @@ -24,7 +24,7 @@ mem_manager_t *memm_new(usize mem_size) MEMM_RAW_ALLOCATOR, 0); allocator_iterator_t *alcatr_ind = allocator0->allocate( - &allocator0->allocator_instance, sizeof(allocator_iterator_t), 0); + &allocator0->allocator_instance, sizeof(allocator_iterator_t)); alcatr_ind->allocator = allocator0; alcatr_ind->left = nullptr; @@ -37,7 +37,7 @@ mem_manager_t *memm_new(usize mem_size) align_to(pmc_size, 8); pmc_size /= 8; - memory_manager.page_map = allocator0->allocate(&allocator0->allocator_instance, pmc_size, 0); + memory_manager.page_map = allocator0->allocate(&allocator0->allocator_instance, pmc_size); memset(memory_manager.page_map, 0, pmc_size); memset(memory_manager.page_map, 0xff, MEMM_ALLOC_ONLY_MEMORY / MEMM_PAGE_SIZE / 8); for (usize i = (MEMM_ALLOC_ONLY_MEMORY / MEMM_PAGE_SIZE / 8) * (u8)8; @@ -48,7 +48,7 @@ mem_manager_t *memm_new(usize mem_size) // 配置分配器页地图 memory_manager.map_with_allocator = - allocator0->allocate(&allocator0->allocator_instance, pmc_size, 0); + allocator0->allocate(&allocator0->allocator_instance, pmc_size); memset(memory_manager.map_with_allocator, 0, pmc_size); for (usize i = kernel_initial_size / MEMM_PAGE_SIZE; i < MEMM_ALLOC_ONLY_MEMORY / MEMM_PAGE_SIZE; @@ -59,7 +59,7 @@ mem_manager_t *memm_new(usize mem_size) // 分配器释放页地图 memory_manager.map_with_destructed_allocator = - allocator0->allocate(&allocator0->allocator_instance, pmc_size, 0); + allocator0->allocate(&allocator0->allocator_instance, pmc_size); memset(memory_manager.map_with_destructed_allocator, 0, pmc_size); // 配置空闲页线段搜索表 @@ -103,14 +103,14 @@ void *memm_find_and_allocate(allocator_iterator_t *allocator_ind, usize size, us allocator_t *allocator = allocator_ind->allocator; if (allocator->pid == pid && allocator->full == false) { // 尝试用本节点分配 - if ((ptr = allocator->allocate(&allocator->allocator_instance, size, 0)) != nullptr) + if ((ptr = allocator->allocate(&allocator->allocator_instance, size)) != nullptr) { *writeback = allocator; return ptr; } else { - if ((ptr = allocator->allocate(&allocator->allocator_instance, 0, 0)) == nullptr) + if ((ptr = allocator->allocate(&allocator->allocator_instance, 0)) == nullptr) allocator->full = true; } } @@ -197,7 +197,7 @@ void *memm_allocate(usize size, usize pid) allind->left = nullptr; allind->right = nullptr; insert_allocator(memory_manager.allocators, allind); - ptr = new_allocator->allocate(&new_allocator->allocator_instance, orgsize, 0); + ptr = new_allocator->allocate(&new_allocator->allocator_instance, orgsize); after_allocation: if (ptr != nullptr)