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 |