diff options
author | Anton Kling <anton@kling.gg> | 2024-04-12 14:03:29 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-04-12 14:13:08 +0200 |
commit | b450065984b1588966694579230dc40c802212e7 (patch) | |
tree | e67a056b1f3d0d2fa9a8f07fd76f925080dfbf44 /kernel/includes/mmu.h | |
parent | ca082f686fd2dc7ee6f0284421f6212d6d4acee8 (diff) |
Kernel/MMU: Dellocate pagedirectory when process exits.
Diffstat (limited to 'kernel/includes/mmu.h')
-rw-r--r-- | kernel/includes/mmu.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/includes/mmu.h b/kernel/includes/mmu.h index 43814d5..211a950 100644 --- a/kernel/includes/mmu.h +++ b/kernel/includes/mmu.h @@ -9,6 +9,9 @@ typedef u8 mmu_flags; #define MMU_FLAG_RW (1 << 0) #define MMU_FLAG_KERNEL (1 << 1) +#define PAGE_ALLOCATE 1 +#define PAGE_NO_ALLOCATE 0 + #define PAGE_SIZE ((uintptr_t)0x1000) #define next_page(_ptr) \ ((_ptr) + (PAGE_SIZE - (((uintptr_t)_ptr) & (PAGE_SIZE - 1)))) @@ -37,6 +40,7 @@ typedef struct PageDirectory { int mmu_allocate_region(void *ptr, size_t n, mmu_flags flags, PageDirectory *pd); +void mmu_free_pagedirectory(PageDirectory *pd); void mmu_allocate_shared_kernel_region(void *rc, size_t n); void *mmu_find_unallocated_virtual_range(void *addr, size_t length); void mmu_remove_virtual_physical_address_mapping(void *ptr, size_t length); |