This repository has been archived on 2025-02-27. You can view files and clone it, but cannot push or open issues or pull requests.
portland-os/src/kernel/paging.h

19 lines
No EOL
616 B
C

#include <stdint.h>
#include <stdbool.h>
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 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 user_allocate_anywhere_readonly_together(void *pd, uint32_t pages, void **vma_out, void **pma_out);
void *vma_to_pma(void *pd, const void *vma) __attribute__ ((pure));
void switch_to_kernel_cr3();
void switch_to_task_cr3();