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