|
Barrelfish
|
ARMv8 kernel page-table structures. More...
Data Structures | |
| union | armv8_ttable_entry |
Functions | |
| void | paging_map_kernel (uintptr_t initial_base, size_t initial_size) |
| lvaddr_t | paging_map_device (lpaddr_t base, size_t size) |
| Map a device into the kernel's address space. More... | |
| bool | paging_mmu_enabled (void) |
| Return whether we have enabled the MMU. Useful for initialization assertions. | |
| void | paging_map_device_page (uintptr_t l1_table, lvaddr_t device_vbase, lpaddr_t device_pbase, size_t device_bytes) |
| void | paging_make_good (lpaddr_t base) |
| void | paging_context_switch (lpaddr_t table_addr) |
ARMv8 kernel page-table structures.
| void paging_context_switch | ( | lpaddr_t | ttbr | ) |
/brief Perform a context switch. Reload TTBR0 with the new address, and invalidate the TLBs and caches.
| void paging_make_good | ( | lpaddr_t | base | ) |
Add kernel mappings to newly constructed page table.
| new_table_addr | address of newly constructed page table. |
| new_table_bytes | size of newly constructed page table. |
| lvaddr_t paging_map_device | ( | lpaddr_t | device_base, |
| size_t | device_bytes | ||
| ) |
Map a device into the kernel's address space.
| device_base | is the physical address of the device |
| device_size | is the number of bytes of physical address space the device occupies. |
| void paging_map_device_page | ( | uintptr_t | l1_table, |
| lvaddr_t | device_vbase, | ||
| lpaddr_t | device_pbase, | ||
| size_t | device_bytes | ||
| ) |
Maps a device to a l2 page. Assumption: corresponding L1 entry already set
| void paging_map_kernel | ( | uintptr_t | initial_base, |
| size_t | initial_size | ||
| ) |
Setup bootstrap page table with direct and relocated mappings for kernel.
This function does not enable paging.
| initial_base | |
| initial_size |
1.8.11