class X86PageTableBase
Defined at line 151 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
Protected Members
Canary canary_
uint32_t num_references_
PageTableRole role_
page_alloc_fn_t test_page_alloc_func_
paddr_t phys_
pt_entry_t * virt_
vm_page_t * page_
size_t pages_
void * ctx_
LockDep lock_
Public Methods
void X86PageTableBase ()
Defined at line 153 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
void ~X86PageTableBase ()
Defined at line 154 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
paddr_t phys ()
Defined at line 158 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
void * virt ()
Defined at line 159 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
size_t pages ()
Defined at line 161 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
void * ctx ()
Defined at line 165 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
bool IsRestricted ()
Returns whether this page table is restricted.
We do so by verifying that it was created with `InitRestricted` and has been linked to a
unified page table.
Defined at line 175 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
bool IsShared ()
Returns whether this page table is shared.
Defined at line 178 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
bool IsUnified ()
Returns whether this page table is unified.
Defined at line 181 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
zx_status_t MapPages (vaddr_t vaddr, paddr_t * phys, size_t count, uint mmu_flags, ExistingEntryAction existing_action)
zx_status_t MapPagesContiguous (vaddr_t vaddr, paddr_t paddr, const size_t count, uint mmu_flags)
zx_status_t UnmapPages (vaddr_t vaddr, const size_t count, ArchUnmapOptions enlarge)
zx_status_t ProtectPages (vaddr_t vaddr, size_t count, uint mmu_flags)
zx_status_t QueryVaddr (vaddr_t vaddr, paddr_t * paddr, uint * mmu_flags)
zx_status_t HarvestAccessed (vaddr_t vaddr, size_t count, NonTerminalAction non_terminal_action, TerminalAction terminal_action)
uint32_t LockOrder ()
Returns 1 for unified page tables and 0 for all other page tables. This establishes an
ordering that is used when the lock_ is acquired. The restricted page table lock is acquired
first, and the unified page table lock is acquired afterwards.
Defined at line 200 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
Protected Methods
zx_status_t Init (void * ctx, page_alloc_fn_t test_paf)
Initialize an empty page table, assigning this given context to it.
Defined at line 206 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
zx::result<vm_page_t *> AllocatePageTable (bool zero)
Defined at line 225 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
void X86PageTableBase (const X86PageTableBase & )
Defined at line 250 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
void X86PageTableBase (X86PageTableBase && )
Defined at line 250 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
X86PageTableBase & operator= (const X86PageTableBase & )
Defined at line 250 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h
X86PageTableBase & operator= (X86PageTableBase && )
Defined at line 250 of file ../../zircon/kernel/arch/x86/page_tables/include/arch/x86/page_tables/page_tables.h