diff --git a/kernel/include/vmm.h b/kernel/include/vmm.h index 7b9ffdf..f555afc 100644 --- a/kernel/include/vmm.h +++ b/kernel/include/vmm.h @@ -6,4 +6,5 @@ #define CANONICAL_MASK_USER 0x00007FFFFFFFFFF000 int vmm_alloc(void** vaddr, uint64_t count, uint64_t flags); +int vmm_free(void* vaddr); #endif \ No newline at end of file diff --git a/kernel/src/vmm.c b/kernel/src/vmm.c index 040c127..7e156a6 100644 --- a/kernel/src/vmm.c +++ b/kernel/src/vmm.c @@ -86,4 +86,9 @@ int vmm_alloc(void** vaddr, uint64_t count, uint64_t flags) { } } return SUCCESS; +} + +int vmm_free(void* vaddr) { + uint64_t* pml4 = pag_get_pml4(); + return pag_unmap(pml4, vaddr); } \ No newline at end of file