class X86ArchVmAspace

Defined at line 80 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

Public Methods

void DisableUpdates ()

Defined at line 93 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

bool UnmapOnlyEnlargeOnOom ()

x86 may generate duplicate TLB entries if changing the translation size of mapping, but this

does not lead to any incorrectness as long as the we invalidate the TLB (which we do),

therefore unmap is safe to split large pages without enlarging.

Defined at line 109 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

zx_status_t MarkAccessed (vaddr_t vaddr, size_t count)

On x86 the hardware can always set the accessed bit so we do not need to support the software

fault method.

Defined at line 118 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

paddr_t arch_table_phys ()

Defined at line 125 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

paddr_t pt_phys ()

Defined at line 126 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

size_t pt_pages ()

Defined at line 127 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

uint16_t pcid ()

Defined at line 128 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

cpu_mask_t active_cpus ()

Note: these load/fetch_or calls use the seq_cst memory ordering. Although some of the call

sites of these methods *may* be able to tolerate more relaxed orderings, most of them require

strong orderings and this should not be changed.

Defined at line 133 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

cpu_mask_t pcid_dirty_cpus ()

Defined at line 134 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

cpu_mask_t MarkPcidDirtyCpus (cpu_mask_t mask)

Defined at line 135 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

IoBitmap & io_bitmap ()

Defined at line 137 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

vaddr_t NextUserPageTableOffset (vaddr_t va)

Defined at line 143 of file ../../zircon/kernel/arch/x86/include/arch/aspace.h

void X86ArchVmAspace (vaddr_t base, size_t size, uint mmu_flags, page_alloc_fn_t test_paf)

Defined at line 721 of file ../../zircon/kernel/arch/x86/mmu.cc

void ~X86ArchVmAspace ()

Defined at line 897 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t Init ()

Fill in the high level x86 arch aspace structure and allocating a top level page table.

Defined at line 728 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t InitRestricted ()

Defined at line 780 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t InitShared ()

Defined at line 810 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t InitUnified (ArchVmAspaceInterface & shared, ArchVmAspaceInterface & restricted)

Defined at line 840 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t Destroy ()

Defined at line 904 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t MapContiguous (vaddr_t vaddr, paddr_t paddr, size_t count, uint mmu_flags)

main methods

Defined at line 929 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t Map (vaddr_t vaddr, paddr_t * phys, size_t count, uint mmu_flags, ExistingEntryAction existing_action)

Defined at line 940 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t Unmap (vaddr_t vaddr, size_t count, ArchUnmapOptions enlarge)

Defined at line 920 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t Protect (vaddr_t vaddr, size_t count, uint mmu_flags, ArchUnmapOptions enlarge)

Defined at line 951 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t Query (vaddr_t vaddr, paddr_t * paddr, uint * mmu_flags)

Defined at line 1050 of file ../../zircon/kernel/arch/x86/mmu.cc

vaddr_t PickSpot (vaddr_t base, vaddr_t end, vaddr_t align, size_t size, uint mmu_flags)

Defined at line 1083 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t HarvestAccessed (vaddr_t vaddr, size_t count, NonTerminalAction non_terminal_action, TerminalAction terminal_action)

Defined at line 1058 of file ../../zircon/kernel/arch/x86/mmu.cc

bool AccessedSinceLastCheck (bool clear)

Defined at line 1068 of file ../../zircon/kernel/arch/x86/mmu.cc

void ContextSwitch (X86ArchVmAspace * from, X86ArchVmAspace * to)

Defined at line 961 of file ../../zircon/kernel/arch/x86/mmu.cc

void HandoffPageTablesFromPhysboot (list_node_t * mmu_pages)

Defined at line 1089 of file ../../zircon/kernel/arch/x86/mmu.cc