class VmoBuffer
Defined at line 8008 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.
void VmoBuffer ()
Defined at line 8010 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
void VmoBuffer (const VmoBuffer & other)
Defined at line 8011 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
void _CloseHandles ()
::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.
bool has_vmo_usable_start ()
::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 & operator= (const VmoBuffer & other)
Defined at line 8012 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 8013 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
VmoBuffer & operator= (VmoBuffer && other)
Defined at line 8014 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 ()
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.
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 Allocate (::fidl::AnyArena & allocator)
void Init (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_sysmem2::wire::VmoBuffer>> && frame_ptr)
void ~VmoBuffer ()
Defined at line 8016 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
Friends
class WireTableBaseBuilder
class WireTableBaseBuilder