template <typename PageTableAllocator>

class MappingVisitor

Defined at line 689 of file ../../zircon/kernel/lib/arch/include/lib/arch/paging.h

A visitor tailor-made to help perform a mapping of

`[input_vaddr, input_vaddr + size)` to

`[output_paddr, output_paddr + size)` in the context of `Map()`. Calling

`VisitPageTables()` with this visitor will attempt to map the largest

possible page contained within the given virtual range, updating the

values describing the virtual and physical ranges provided on

construction. Repeated calls to `VisitPageTables()` can then be made to

fully map the region.

Public Methods

void MappingVisitor<PageTableAllocator> (PageTableAllocator page_table_allocator, const SystemState & state, uint64_t input_vaddr, uint64_t size, uint64_t output_paddr, const MapSettings & settings)

Defined at line 693 of file ../../zircon/kernel/lib/arch/include/lib/arch/paging.h

void MappingVisitor<PageTableAllocator> (PageTableAllocator page_table_allocator, const SystemState & state, uint64_t input_vaddr, uint64_t size, uint64_t output_paddr, const MapSettings & settings)

Defined at line 693 of file ../../zircon/kernel/lib/arch/include/lib/arch/paging.h

uint64_t unmapped_size ()

The size of the range yet to be mapped.

Defined at line 707 of file ../../zircon/kernel/lib/arch/include/lib/arch/paging.h

uint64_t next_vaddr ()

The next virtual address to be mapped.

Defined at line 710 of file ../../zircon/kernel/lib/arch/include/lib/arch/paging.h

template <typename TableIo, LevelType Level>
std::optional<fit::result<MapError>> operator() (TableIo && io, TableEntry<Level> & entry, uint64_t table_paddr)

Defined at line 713 of file ../../zircon/kernel/lib/arch/include/lib/arch/paging.h

template <typename TableIo, LevelType Level>
std::optional<fit::result<MapError>> operator() (TableIo && io, TableEntry<Level> & entry, uint64_t table_paddr)

Defined at line 713 of file ../../zircon/kernel/lib/arch/include/lib/arch/paging.h

template <typename TableIo, LevelType Level>
std::optional<fit::result<MapError>> operator() (TableIo && io, TableEntry<Level> & entry, uint64_t table_paddr)

Defined at line 713 of file ../../zircon/kernel/lib/arch/include/lib/arch/paging.h