diff --git a/src/include/kernel/pmm.h b/src/include/kernel/pmm.h index a1c04755..9093f4f2 100644 --- a/src/include/kernel/pmm.h +++ b/src/include/kernel/pmm.h @@ -6,6 +6,7 @@ void pmm_init(); void* pmm_alloc(size_t); void* pmm_hhdmalloc(size_t); +void pmm_hhdmfree(void*, size_t); void pmm_free(void*, size_t); void pmm_setused(void*, size_t); diff --git a/src/sys/mm/pmm.c b/src/sys/mm/pmm.c index af050d6d..9b5c6cef 100644 --- a/src/sys/mm/pmm.c +++ b/src/sys/mm/pmm.c @@ -137,6 +137,10 @@ void* pmm_alloc(size_t count){ } +void pmm_hhdmfree(void* addr, size_t count){ + pmm_free(addr - (size_t)limine_hhdm_offset, count); +} + void* pmm_hhdmalloc(size_t count){ void* alloc = pmm_alloc(count); if(!alloc) return NULL;