class AllocatorGetVmoInfoRequest
Defined at line 15309 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
Public Methods
void AllocatorGetVmoInfoRequest ()
Defined at line 15311 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
void AllocatorGetVmoInfoRequest (const AllocatorGetVmoInfoRequest & other)
Defined at line 15312 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
bool IsEmpty ()
Returns whether no field is set.
bool HasUnknownData ()
Returns whether the table references unknown fields.
void _CloseHandles ()
::fidl::WireTableBuilder< ::fuchsia_sysmem2::wire::AllocatorGetVmoInfoRequest> Builder (::fidl::AnyArena & arena)
Return a builder that by defaults allocates of an arena.
::fidl::WireTableExternalBuilder< ::fuchsia_sysmem2::wire::AllocatorGetVmoInfoRequest> ExternalBuilder (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_sysmem2::wire::AllocatorGetVmoInfoRequest>> frame)
Return a builder that relies on explicitly allocating |fidl::ObjectView|s.
bool has_vmo_settings_to_check ()
AllocatorGetVmoInfoRequest & operator= (const AllocatorGetVmoInfoRequest & other)
Defined at line 15313 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
void AllocatorGetVmoInfoRequest (AllocatorGetVmoInfoRequest && other)
Defined at line 15314 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
AllocatorGetVmoInfoRequest & operator= (AllocatorGetVmoInfoRequest && other)
Defined at line 15315 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
::zx::vmo & vmo ()
`vmo` is required to be set; ownership is transferred to the server
so in most cases a client will duplicate a handle and transfer the
duplicate via this field.
The GetVmoInfo call will fail with `NOT_FOUND` if this VMO isn't a
sysmem-provided VMO. Children of sysmem-provided VMOs don't count as
sysmem-provided VMOs.
Assuming this is a sysmem-provided VMO, the handle can be a sysmem
strong VMO handle or a sysmem weak VMO handle.
If this field is sysmem weak VMO handle, `close_weak_asap` will be
set in the response (not the only reason for close_weak_asap to be
set).
This field is required.
bool has_vmo ()
bool & need_weak ()
Iff set to true, a successful response will have weak_vmo set to a
sysmem weak VMO handle for the buffer, regardless of whether the vmo
handle in the request was weak or not.
Also, when `weak_vmo` is set in the response, `close_weak_asap` will
also be set in the response, whether `vmo` was sysmem strong or
sysmem weak (not the only reason for close_weak_asap to be set).
If set to true and `vmo` is a weak vmo and there aren't any
remaining strong vmo handles for the logical buffer (and the sysmem
server has had a chance to notice that), the request will fail with
`Error.NO_MORE_STRONG_VMO_HANDLES`.
This field is optional. The default is false.
bool has_need_weak ()
bool & need_single_buffer_settings ()
Iff set to true, a successful response will have
single_buffer_settings set to the SingleBufferSettings for the
buffer's buffer collection.
The fields in SingleBufferSettings can be thought of as similar in
nature to the information available from zx_object_get_info with
topic ZX_INFO_VMO, which doesn't require any rights on the VMO
handle to succeed. This information can be needed by the caller to
know how to correctly handle / use the VMO. Similarly, this call
doesn't require any particular rights in order to get
single_buffer_settings - just ZX_RIGHT_TRANSFER for the client's
message to send successfully, and of course the `vmo` field must be
a handle to a sysmem-provided VMO.
Clients should avoid manually checking whether
`single_buffer_settings` is consistent with the client's
BufferCollectionConstraints (or at least, shouldn't only rely on
that checking in the client). To have sysmem check, see
`constraints_to_check`.
This field is optional. The default is false.
bool has_need_single_buffer_settings ()
::fuchsia_sysmem2::wire::BufferCollectionConstraints & constraints_to_check ()
Iff set, `constraints_ok` will be set in the response indicating
whether the sent constraints are compatible with the parent buffer
collection as allocated.
Buffer counts are not checked for consistency, as there's no way for
sysmem to know whether the passed-in `vmo` was originally handed out
to the same logical participant that's now checking the vmo against
its constraints, and we also want to avoid adding things that might
lock sysmem into a static number of buffers per collection.
This can be thought of as checking `constraints_to_check` against
the `single_buffer_settings` (if that is/were requested), but sysmem
is free to check against additional info as well (such as a
hypothetical future sysmem3's buffer collection info, or modified
semantics for sysmem2 fields that this client hasn't opted into, or
similar). In other words, clients should let sysmem do this check,
regardless of whether the client also does some checking of its own.
This field is optional. If un-set, no constraints checking occurs.
bool has_constraints_to_check ()
::zx::vmo & vmo_settings_to_check ()
If set, `vmo_settings_match` will be set to indicate whether the
parent collection of `vmo` and `vmo_settings_to_check` have the same
SingleBufferSettings. This will be true if both are the same VMO,
will be true if both VMOs are from the same collection, and can also
be true if two VMOs from different collections have the same
SingleBufferSettings.
bool & vmo_settings_to_check_ignore_size ()
When vmo_settings_to_check is set to a VMO and
vmo_settings_to_check_ignore_size is set to true, the buffer size
is ignored when comparing the two buffer's settings. This can be
useful to set when checking video decoder input buffers.
bool has_vmo_settings_to_check_ignore_size ()
AllocatorGetVmoInfoRequest & set_vmo (::zx::vmo elem)
AllocatorGetVmoInfoRequest & clear_vmo ()
AllocatorGetVmoInfoRequest & set_need_weak (bool elem)
AllocatorGetVmoInfoRequest & clear_need_weak ()
AllocatorGetVmoInfoRequest & set_need_single_buffer_settings (bool elem)
AllocatorGetVmoInfoRequest & clear_need_single_buffer_settings ()
AllocatorGetVmoInfoRequest & set_constraints_to_check (::fidl::ObjectView< ::fuchsia_sysmem2::wire::BufferCollectionConstraints> elem)
AllocatorGetVmoInfoRequest & set_constraints_to_check (std::nullptr_t )
AllocatorGetVmoInfoRequest & clear_constraints_to_check ()
AllocatorGetVmoInfoRequest & set_vmo_settings_to_check (::zx::vmo elem)
AllocatorGetVmoInfoRequest & clear_vmo_settings_to_check ()
AllocatorGetVmoInfoRequest & set_vmo_settings_to_check_ignore_size (bool elem)
AllocatorGetVmoInfoRequest & clear_vmo_settings_to_check_ignore_size ()
void AllocatorGetVmoInfoRequest (::fidl::AnyArena & allocator)
void AllocatorGetVmoInfoRequest (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_sysmem2::wire::AllocatorGetVmoInfoRequest>> && 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::AllocatorGetVmoInfoRequest>> && frame_ptr)
void ~AllocatorGetVmoInfoRequest ()
Defined at line 15317 of file fidling/gen/sdk/fidl/fuchsia.sysmem2/fuchsia.sysmem2/cpp/fidl/fuchsia.sysmem2/cpp/wire_types.h
Friends
class WireTableBaseBuilder
class WireTableBaseBuilder