#include #include void init_paging(); void *new_pd(); void free_pd(void *pd); void pd_map(void *pd, uint32_t physical_addr, uint32_t virtual_addr, bool writable); void switch_pd(void *pd); void free_task_pd(void *pd); void *new_task_pd(); void *pd_user_allocate(void *pd, uint32_t vma, uint32_t pages, bool writable); void *pd_user_allocate_anywhere_writable(void *pd, uint32_t pages); void switch_to_kernel_cr3(); void switch_to_task_cr3();