summaryrefslogtreecommitdiff
path: root/kernel/includes/mmu.h
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-04-12 14:03:29 +0200
committerAnton Kling <anton@kling.gg>2024-04-12 14:13:08 +0200
commitb450065984b1588966694579230dc40c802212e7 (patch)
treee67a056b1f3d0d2fa9a8f07fd76f925080dfbf44 /kernel/includes/mmu.h
parentca082f686fd2dc7ee6f0284421f6212d6d4acee8 (diff)
Kernel/MMU: Dellocate pagedirectory when process exits.
Diffstat (limited to 'kernel/includes/mmu.h')
-rw-r--r--kernel/includes/mmu.h4
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);