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 82 of file ../../src/sysmem/server/logical_buffer_collection.h

std::optional<zx_koid_t> child_koid ()

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

void set_client_debug_info (ClientDebugInfo client_debug_info)

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

ClientDebugInfo * get_client_debug_info ()

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

uint32_t buffer_index ()

Defined at line 95 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 100 of file ../../src/sysmem/server/logical_buffer_collection.h

TrackedParentVmo & operator= (const TrackedParentVmo & )

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

void TrackedParentVmo (TrackedParentVmo && )

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

TrackedParentVmo & operator= (TrackedParentVmo && )

Defined at line 103 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 taking and

invoking the callback via TakeDeleteCallback() prior to ~TrackedParentVmo (such as during

~LogicalBuffer or an error path), or (B) ZX_VMO_ZERO_CHILDREN occurring async after

StartWait() is called. TakeDeleteCallback() must be called before ~TrackedParentVmo.

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 4896 of file ../../src/sysmem/server/logical_buffer_collection.cc

void ~TrackedParentVmo ()

Defined at line 4909 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 4922 of file ../../src/sysmem/server/logical_buffer_collection.cc

zx_status_t CancelWait ()

Cancel the wait.

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

zx::vmo TakeVmo ()

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

const zx::vmo & vmo ()

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

DoDelete TakeDeleteCallback ()

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