class VmPageListNode

Defined at line 552 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 554 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

void VmPageListNode (const VmPageListNode & )

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

void VmPageListNode (VmPageListNode && )

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

VmPageListNode & operator= (const VmPageListNode & )

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

VmPageListNode & operator= (VmPageListNode && )

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

uint64_t end_offset (uint64_t base_offset)

Defined at line 564 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 578 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 584 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 591 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 599 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 607 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 636 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

const VmPageOrMarker & Lookup (size_t index)

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

VmPageOrMarker & Lookup (size_t index)

Defined at line 651 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 657 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 668 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

bool HasNoPageRefOrMarker ()

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

whether the node has any resource that needs to be returned.

Defined at line 679 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 689 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 699 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 716 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 721 of file ../../zircon/kernel/vm/include/vm/vm_page_list.h

Friends

class VMPLCursor