![]() |
Fukurō
A highly portable microkernel
|
#include <stdint.h>
Go to the source code of this file.
Typedefs | |
typedef struct pmap * | pmap_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) |
bool pmap_access | ( | pmap_t | pmap, |
uintptr_t | va | ||
) |
Report if virtual address is mapped
void pmap_activate | ( | pmap_t | pmap, |
thread | , | ||
cpu | |||
) |
Setup map thread to run on cpu
void pmap_copy_on_write | ( | uintptr_t | phys | ) |
Remove write access for page from all maps (virtual copy of shared page)
void pmap_copy_page | ( | uintptr_t | src, |
uintptr_t | dest | ||
) |
Copy physical page. (modify/reference bit maintenance)
pmap_t pmap_create | ( | void | ) |
Create a new physical map
void pmap_destroy | ( | pmap_t | pmap | ) |
Deference physical map, destroy if no references remain
void pmap_enter | ( | pmap_t | pmap, |
v | , | ||
p | , | ||
prot | , | ||
wired | |||
) |
Enter mapping. (page fault)
uintptr_t pmap_extract | ( | pmap_t | pmap, |
uintptr_t | va | ||
) |
Convert virtual to physical.
void pmap_init | ( | uintptr_t | start, |
uintptr_t | end | ||
) |
Initialize using specified range of physical address
void pmap_protect | ( | pmap_t | map, |
start | , | ||
end | , | ||
prot | |||
) |
Set the protection on the specified range of address.
void pmap_reference | ( | pmap_t | pmap | ) |
Add a reference to a physical map
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)
void pmap_remove_all | ( | uintptr_t | phys | ) |
Remove physical page from all maps. (pageout)
void pmap_update | ( | void | ) |
Sync pmap system
void pmap_zero_page | ( | uintptr_t | phys | ) |
Zero fill physical page.
void pmpa_deactivate | ( | pmap_t | pmap, |
thread | , | ||
cpu | |||
) |
Map thread are done on cpu