![]() |
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