class VmPageListNode

Defined at line 509 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

Public Members

static const size_t kPageFanOut

Public Methods

void ~VmPageListNode ()

Defined at line 59 of file ../../zircon/kernel/vm/vm_page_list.cc

VmPlnOwner Create ()

Creates a new VmPageListNode. Must be deleted using the specified deleter.

Defined at line 46 of file ../../zircon/kernel/vm/vm_page_list.cc

void VmPageListNode ()

Defined at line 511 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

void VmPageListNode (const VmPageListNode & )

Defined at line 514 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

void VmPageListNode (VmPageListNode && )

Defined at line 514 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

VmPageListNode & operator= (const VmPageListNode & )

Defined at line 514 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

VmPageListNode & operator= (VmPageListNode && )

Defined at line 514 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

uint64_t end_offset (uint64_t base_offset)

Defined at line 521 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

template <typename PTR_TYPE, typename F>
zx_status_t ForEveryPage (uint64_t base, F func)

for every page or marker in the node call the passed in function.

Defined at line 535 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

template <typename PTR_TYPE, typename F>
zx_status_t ForEveryPage (uint64_t base, F func)

for every page or marker in the node call the passed in function.

Defined at line 541 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

template <typename PTR_TYPE, typename F>
zx_status_t ForEveryPageInRange (uint64_t base, F func, uint64_t start_offset, uint64_t end_offset)

for every page or marker in the node in the range call the passed in function. The range is

assumed to be within the nodes object range.

Defined at line 548 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

template <typename PTR_TYPE, typename F>
zx_status_t ForEveryPageInRange (uint64_t base, F func, uint64_t start_offset, uint64_t end_offset)

for every page or marker in the node in the range call the passed in function. The range is

assumed to be within the nodes object range.

Defined at line 556 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

const VmPageOrMarker * IsOffsetInInterval (uint64_t obj_offset, uint64_t off)

Checks if the given offset is part of an interval involving this node. This method cannot find

the full interval, since that may require looking at an additional node, but can determine if

in an interval or not. Returns any interval sentinel found, otherwise a nullptr.

Defined at line 564 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

const VmPageOrMarker * NodeStartsInInterval ()

Check if this node begins in an interval, that is if an interval start was in a preceding node

and this nodes contains the end. If the first non-empty slot is an interval end it is returned,

otherwise we cannot have started in an interval and a nullptr is returned.

Defined at line 593 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

const VmPageOrMarker & Lookup (size_t index)

Defined at line 603 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

VmPageOrMarker & Lookup (size_t index)

Defined at line 608 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

bool IsEmpty ()

A node is empty if it contains no pages, page interval sentinels, references, or markers.

Defined at line 614 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

bool HasNoPageOrRef ()

Returns true if there are no pages or references owned by this node. Meant to check whether the

node has any resource that needs to be returned.

Defined at line 625 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

bool HasNoIntervalSentinel ()

Returns true if there are no interval sentinels owned by this node.

Defined at line 635 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

template <typename F>
void MergeRangeOnto (uint64_t base, uint64_t other_base, F migrate_fn, VmPageListNode & other, uint64_t start_offset, uint64_t end_offset, uint64_t other_start_offset)

Defined at line 645 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

uint64_t NodeOffset (uint64_t offset)

Converts the supplied offset into a VmPageListNode base offset.

Defined at line 662 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

uint64_t NodeIndex (uint64_t offset)

Converts the supplied offset into a VmPageListNode index.

Defined at line 667 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

Friends

class VMPLCursor