class VmObjectPhysical

Defined at line 27 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

VMO representing a physical range of memory

Public Methods

Lock<CriticalMutex> * lock ()

Define the lock retrieval functions differently depending on whether we should be returning a

local lock instance, or the common one in the hierarchy_state_ptr. Due to the TA_RET_CAP

statements we cannot perform |if constexpr| or equivalent indirection in the function body, and

must have two completely different function definitions.

In the absence of a local lock it is assumed, and enforced in vm_object_lock.h, that there is a

shared lock in the hierarchy state. If there is both a local and a shared lock then the local

lock is to be used for the improved lock tracking.

Defined at line 38 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

Lock<CriticalMutex> & lock_ref ()

Defined at line 39 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

VmObject * self_locked ()

Defined at line 41 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

ChildType child_type ()

Defined at line 48 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

bool is_contiguous ()

Defined at line 51 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

bool is_slice ()

Defined at line 52 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

uint64_t parent_user_id ()

Defined at line 53 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

uint64_t size_locked ()

Defined at line 55 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

zx_status_t Create (paddr_t base, uint64_t size, fbl::RefPtr<VmObjectPhysical> * vmo)

Defined at line 58 of file ../../zircon/kernel/vm/vm_object_physical.cc

void Unpin (uint64_t offset, uint64_t len)

Defined at line 65 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

void SetUserStreamSize (fbl::RefPtr<StreamSizeManager> ssm)

Defined at line 69 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

bool DebugIsRangePinned (uint64_t offset, uint64_t len)

Physical VMOs are implicitly pinned.

Defined at line 75 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

zx_status_t GetPage (uint64_t offset, uint pf_flags, list_node * alloc_list, MultiPageRequest * page_request, vm_page_t ** page, paddr_t * pa)

Defined at line 79 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

void MaybeDeadTransition ()

Defined at line 86 of file ../../zircon/kernel/vm/include/vm/vm_object_physical.h

zx_status_t CreateChildSlice (uint64_t offset, uint64_t size, bool copy_name, fbl::RefPtr<VmObject> * child_vmo)

Defined at line 86 of file ../../zircon/kernel/vm/vm_object_physical.cc

zx_status_t Lookup (uint64_t offset, uint64_t len, LookupFunction lookup_fn)

Defined at line 166 of file ../../zircon/kernel/vm/vm_object_physical.cc

zx_status_t LookupContiguous (uint64_t offset, uint64_t len, paddr_t * out_paddr)

Defined at line 221 of file ../../zircon/kernel/vm/vm_object_physical.cc

zx_status_t LookupContiguousLocked (uint64_t offset, uint64_t len, paddr_t * out_paddr)

Defined at line 226 of file ../../zircon/kernel/vm/vm_object_physical.cc

zx_status_t CommitRangePinned (uint64_t offset, uint64_t len, bool write)

Defined at line 195 of file ../../zircon/kernel/vm/vm_object_physical.cc

zx_status_t PrefetchRange (uint64_t offset, uint64_t len)

Defined at line 209 of file ../../zircon/kernel/vm/vm_object_physical.cc

void Dump (uint depth, bool verbose)

Defined at line 155 of file ../../zircon/kernel/vm/vm_object_physical.cc

zx_status_t SetMappingCachePolicy (uint32_t cache_policy)

Defined at line 241 of file ../../zircon/kernel/vm/vm_object_physical.cc

Friends

class RefPtr