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