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