class TrackedParentVmo

Defined at line 57 of file ../../src/sysmem/server/logical_buffer_collection.h

Each TrackedParentVmo keeps the LogicalBufferCollection alive as long as there are child VMOs

outstanding (no revoking of child VMOs for now).

This tracking is for the benefit of MemoryAllocator sub-classes that need

a Delete() call, such as to clean up a slab allocation and/or to inform

an external allocator of delete.

Public Methods

void set_child_koid (zx_koid_t koid)

Defined at line 80 of file ../../src/sysmem/server/logical_buffer_collection.h

std::optional<zx_koid_t> child_koid ()

Defined at line 84 of file ../../src/sysmem/server/logical_buffer_collection.h

void set_client_debug_info (ClientDebugInfo client_debug_info)

Defined at line 86 of file ../../src/sysmem/server/logical_buffer_collection.h

ClientDebugInfo * get_client_debug_info ()

Defined at line 89 of file ../../src/sysmem/server/logical_buffer_collection.h

uint32_t buffer_index ()

Defined at line 93 of file ../../src/sysmem/server/logical_buffer_collection.h

void TrackedParentVmo (const TrackedParentVmo & )

no copy, no move (async::WaitMethod isn't anyway, but just to be clear about it)

Defined at line 96 of file ../../src/sysmem/server/logical_buffer_collection.h

TrackedParentVmo & operator= (const TrackedParentVmo & )

Defined at line 97 of file ../../src/sysmem/server/logical_buffer_collection.h

void TrackedParentVmo (TrackedParentVmo && )

Defined at line 98 of file ../../src/sysmem/server/logical_buffer_collection.h

TrackedParentVmo & operator= (TrackedParentVmo && )

Defined at line 99 of file ../../src/sysmem/server/logical_buffer_collection.h

void TrackedParentVmo (fbl::RefPtr<LogicalBufferCollection> logical_buffer, zx::vmo vmo, uint32_t buffer_index, DoDelete do_delete)

The do_delete callback will be invoked upon the sooner of (A) the client code causing

~TrackedParentVmo, or (B) ZX_VMO_ZERO_CHILDREN occurring async after StartWait() is called.

Each TrackedParentVmo associated with a LogicalBufferCollection keeps the

LogicalBufferCollection alive. Once a (child) VMO has been given out by sysmem, the only

mechanism to delete TrackedParentVmo is ZX_VMO_ZERO_CHILDREN.

Defined at line 4631 of file ../../src/sysmem/server/logical_buffer_collection.cc

void ~TrackedParentVmo ()

Defined at line 4644 of file ../../src/sysmem/server/logical_buffer_collection.cc

zx_status_t StartWait (async_dispatcher_t * dispatcher)

This should only be called after client code has created a child VMO, and will begin the wait

for ZX_VMO_ZERO_CHILDREN.

Defined at line 4653 of file ../../src/sysmem/server/logical_buffer_collection.cc

zx_status_t CancelWait ()

Cancel the wait.

Defined at line 4667 of file ../../src/sysmem/server/logical_buffer_collection.cc

zx::vmo TakeVmo ()

Defined at line 4672 of file ../../src/sysmem/server/logical_buffer_collection.cc

const zx::vmo & vmo ()

Defined at line 4678 of file ../../src/sysmem/server/logical_buffer_collection.cc