Fukurō
A highly portable microkernel
Loading...
Searching...
No Matches
pmap.h File Reference
#include <stdint.h>
Include dependency graph for pmap.h:

Go to the source code of this file.

Typedefs

typedef struct pmappmap_t
 

Functions

void pmap_init (uintptr_t start, uintptr_t end)
 
pmap_t pmap_create (void)
 
void pmap_reference (pmap_t pmap)
 
void pmap_destroy (pmap_t pmap)
 
void pmap_remove (pmap_t pmap, uintptr_t start, uintptr_t end)
 
void pmap_remove_all (uintptr_t phys)
 
void pmap_copy_on_write (uintptr_t phys)
 
void pmap_enter (pmap_t pmap, v, p, prot, wired)
 
void pmap_protect (pmap_t map, start, end, prot)
 
uintptr_t pmap_extract (pmap_t pmap, uintptr_t va)
 
bool pmap_access (pmap_t pmap, uintptr_t va)
 
void pmap_update (void)
 
void pmap_activate (pmap_t pmap, thread, cpu)
 
void pmpa_deactivate (pmap_t pmap, thread, cpu)
 
void pmap_zero_page (uintptr_t phys)
 
void pmap_copy_page (uintptr_t src, uintptr_t dest)
 

Typedef Documentation

◆ pmap_t

typedef struct pmap* pmap_t

Function Documentation

◆ pmap_access()

bool pmap_access ( pmap_t  pmap,
uintptr_t  va 
)

Report if virtual address is mapped

◆ pmap_activate()

void pmap_activate ( pmap_t  pmap,
thread  ,
cpu   
)

Setup map thread to run on cpu

◆ pmap_copy_on_write()

void pmap_copy_on_write ( uintptr_t  phys)

Remove write access for page from all maps (virtual copy of shared page)

◆ pmap_copy_page()

void pmap_copy_page ( uintptr_t  src,
uintptr_t  dest 
)

Copy physical page. (modify/reference bit maintenance)

◆ pmap_create()

pmap_t pmap_create ( void  )

Create a new physical map

◆ pmap_destroy()

void pmap_destroy ( pmap_t  pmap)

Deference physical map, destroy if no references remain

◆ pmap_enter()

void pmap_enter ( pmap_t  pmap,
,
,
prot  ,
wired   
)

Enter mapping. (page fault)

◆ pmap_extract()

uintptr_t pmap_extract ( pmap_t  pmap,
uintptr_t  va 
)

Convert virtual to physical.

◆ pmap_init()

void pmap_init ( uintptr_t  start,
uintptr_t  end 
)

Initialize using specified range of physical address

◆ pmap_protect()

void pmap_protect ( pmap_t  map,
start  ,
end  ,
prot   
)

Set the protection on the specified range of address.

◆ pmap_reference()

void pmap_reference ( pmap_t  pmap)

Add a reference to a physical map

◆ pmap_remove()

void pmap_remove ( pmap_t  pmap,
uintptr_t  start,
uintptr_t  end 
)

Remove the specified range of virtual address from map. (Used in memory deallocation)

◆ pmap_remove_all()

void pmap_remove_all ( uintptr_t  phys)

Remove physical page from all maps. (pageout)

◆ pmap_update()

void pmap_update ( void  )

Sync pmap system

◆ pmap_zero_page()

void pmap_zero_page ( uintptr_t  phys)

Zero fill physical page.

◆ pmpa_deactivate()

void pmpa_deactivate ( pmap_t  pmap,
thread  ,
cpu   
)

Map thread are done on cpu