My Kernel v0.1.0
mmu.h File Reference
#include <kernel/error.h>
#include <kernel/types.h>
#include <stdbool.h>
Include dependency graph for mmu.h:

Go to the source code of this file.

Enumerations

enum  mmu_prot {
  PROT_NONE = 0x0 , PROT_EXEC = 0x1 , PROT_READ = 0x2 , PROT_WRITE = 0x4 ,
  PROT_KERNEL = 0x8
}
 Protection flags passed to the mmu's functions. More...
 

Functions

bool mmu_init (void)
 Initialize the MMU's paging system. More...
 
paddr_t mmu_new (void)
 Allocate and initialize a new page directory. More...
 
void mmu_destroy (paddr_t mmu)
 Release the MMU's page_directory. More...
 
void mmu_clone (paddr_t destination)
 Clone the current MMU inside another one.
 
error_t mmu_copy_on_write (vaddr_t)
 Try to remap a potential copy-on-write mapping.
 
void mmu_load (paddr_t mmu)
 Replace the current page directory. More...
 
bool mmu_map (vaddr_t virt, paddr_t physical, int prot)
 Map a virtual address to a physical one. More...
 
bool mmu_map_range (vaddr_t virt, paddr_t physical, size_t size, int prot)
 Map a range of virtual addresses to physical ones. More...
 
paddr_t mmu_unmap (vaddr_t virt)
 Unmap a virtual address. More...
 
void mmu_unmap_range (vaddr_t start, vaddr_t end)
 Unmap a range of virtual addresses. More...
 
void mmu_identity_map (paddr_t start, paddr_t end, int prot)
 Perform identity mapping inside a given virtual address range. More...
 
paddr_t mmu_find_physical (vaddr_t)
 Find the physical mapping of a virtual address. More...
 
static bool mmu_is_mapped (vaddr_t addr)