Draft: lab 4 demo fix

This commit is contained in:
2025-04-15 23:56:40 +08:00
parent 8ea82f927b
commit 02b2a87fed
4 changed files with 67 additions and 5 deletions

View File

@@ -80,6 +80,7 @@ void *mman_alloc(size_t unit)
if (!pool->page_begin->left)
pool->page_begin = *(void **)pool->page_begin->page_next;
LOG("mman_alloc"); LOG((uint64_t)unit); DEBUG_MEM(ret);
return ret;
}
@@ -103,6 +104,9 @@ void mman_free(void *ptr)
++pool->left;
++PAGE_HEADER(ptr)->left;
LOG("mman_free"); LOG((uint64_t)unit); DEBUG_MEM(ptr);
size_t cap = (PAGE_SIZE - sizeof(kmalloc_allocator_t)) / unit;
if (PAGE_HEADER(ptr)->left == cap && pool->left >= 2 * cap) {
if (PAGE_HEADER(ptr)->page_prev)