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 728 of file ../../zircon/kernel/arch/x86/mmu.cc

void ~X86ArchVmAspace ()

Defined at line 904 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 735 of file ../../zircon/kernel/arch/x86/mmu.cc

zx_status_t InitRestricted ()

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

zx_status_t InitShared ()

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

zx_status_t InitUnified (ArchVmAspaceInterface & shared, ArchVmAspaceInterface & restricted)

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

zx_status_t Destroy ()

Defined at line 911 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 936 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 947 of file ../../zircon/kernel/arch/x86/mmu.cc

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

Defined at line 927 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 958 of file ../../zircon/kernel/arch/x86/mmu.cc

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

Defined at line 1057 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 1090 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 1065 of file ../../zircon/kernel/arch/x86/mmu.cc

bool AccessedSinceLastCheck (bool clear)

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

void ContextSwitch (X86ArchVmAspace * from, X86ArchVmAspace * to)

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

void HandoffPageTablesFromPhysboot (list_node_t * mmu_pages)

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