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