class VmoBuffer
Defined at line 8333 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
Public Methods
bool IsEmpty ()
Returns whether no field is set.
bool HasUnknownData ()
Returns whether the table references unknown fields.
::fidl::WireTableBuilder< ::fuchsia_sysmem2::wire::VmoBuffer> Builder (::fidl::AnyArena & arena)
Return a builder that by defaults allocates of an arena.
::fidl::WireTableExternalBuilder< ::fuchsia_sysmem2::wire::VmoBuffer> ExternalBuilder (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_sysmem2::wire::VmoBuffer>> frame)
Return a builder that relies on explicitly allocating |fidl::ObjectView|s.
void Allocate (::fidl::AnyArena & allocator)
void Init (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_sysmem2::wire::VmoBuffer>> && frame_ptr)
void VmoBuffer ()
Defined at line 8335 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
void VmoBuffer (VmoBuffer && other)
Defined at line 8338 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
void _CloseHandles ()
VmoBuffer & operator= (VmoBuffer && other)
Defined at line 8339 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
::zx::vmo & vmo ()
`vmo` can be un-set if a participant has only
[`fuchsia.sysmem2/BufferUsage.none`] set to `NONE_USAGE` (explicitly or
implicitly by [`fuchsia.sysmem2/BufferCollection.SetConstraints`]
without `constraints` set).
bool has_vmo ()
VmoBuffer & operator= (const VmoBuffer & other)
Defined at line 8337 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
uint64_t & vmo_usable_start ()
Offset within the VMO of the first usable byte. Must be
<
the VMO's size
in bytes, and leave sufficient room for BufferMemorySettings.size_bytes
before the end of the VMO.
Currently sysmem will always set this field to 0, and in future, sysmem
won't set this field to a non-zero value unless all participants have
explicitly indicated support for non-zero vmo_usable_start (this
mechanism does not exist as of this comment). A participant that hasn't
explicitly indicated support for non-zero vmo_usable_start (all current
clients) should implicitly assume this field is set to 0 without
actually checking this field.
::zx::eventpair & close_weak_asap ()
This field is set iff `vmo` is a sysmem weak VMO handle.
If the client sent `SetWeakOk`, the client must keep `close_weak_asap`
around for as long as `vmo`, and must notice `ZX_EVENTPAIR_PEER_CLOSED`.
If that signal occurs, the client must close `vmo` asap.
If the `vmo` is a sysmem weak VMO handle but the client didn't send
`SetWeakOk`, this means that a holder of a parent node sent `SetWeakOk`
with `for_child_nodes_also` true, and the owner of that parent node is
responsible for paying attention to `close_weak_asap` and informing
child token participants to close handles. In this case the participant
that never sent `SetWeakOk` is allowed to retain and/or pay attention to
`close_weak_asap` (to close the handle faster, or for other reasons such
as diagnosing overall buffer cleanup timing), but is not required to
retain or pay attention to `close_weak_asap`.
If sysmem closing the sysmem end of `close_weak_asap` does not result in
quick closure of all sysmem weak VMO handles to the buffer, that's
considered a VMO leak, and in that case sysmem will eventually complain
loudly via syslog (currently 5s later).
bool has_close_weak_asap ()
VmoBuffer & set_vmo (::zx::vmo elem)
VmoBuffer & clear_vmo ()
VmoBuffer & set_vmo_usable_start (::fidl::ObjectView<uint64_t> elem)
VmoBuffer & set_vmo_usable_start (std::nullptr_t )
VmoBuffer & clear_vmo_usable_start ()
VmoBuffer & set_close_weak_asap (::zx::eventpair elem)
VmoBuffer & clear_close_weak_asap ()
void VmoBuffer (::fidl::AnyArena & allocator)
void VmoBuffer (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_sysmem2::wire::VmoBuffer>> && frame)
This constructor allows a user controlled allocation (not using a Arena).
It should only be used when performance is key.
As soon as the frame is given to the table, it must not be used directly or for another table.
void VmoBuffer (const VmoBuffer & other)
Defined at line 8336 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
bool has_vmo_usable_start ()
void ~VmoBuffer ()
Defined at line 8341 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
Friends
class WireTableBaseBuilder
class WireTableBaseBuilder