pub struct VmoBuffer {
    pub vmo: Option<Vmo>,
    pub vmo_usable_start: Option<u64>,
    pub close_weak_asap: Option<EventPair>,
    /* private fields */
}Fields§
§vmo: Option<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).
vmo_usable_start: Option<u64>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.
close_weak_asap: Option<EventPair>This field is set iff vmo is a sysmem weak VMO handle. 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. Not doing so is considered a VMO leak by the client and in
that case sysmem will eventually complain loudly via syslog (currently
5s later).
Trait Implementations§
Source§impl Decode<VmoBuffer, DefaultFuchsiaResourceDialect> for VmoBuffer
 
impl Decode<VmoBuffer, DefaultFuchsiaResourceDialect> for VmoBuffer
Source§impl ResourceTypeMarker for VmoBuffer
 
impl ResourceTypeMarker for VmoBuffer
Source§type Borrowed<'a> = &'a mut VmoBuffer
 
type Borrowed<'a> = &'a mut VmoBuffer
Encode<Self>
type cheaply obtainable from &mut Self::Owned. There are three cases: Read moreSource§fn take_or_borrow<'a>(
    value: &'a mut <Self as TypeMarker>::Owned,
) -> Self::Borrowed<'a>
 
fn take_or_borrow<'a>( value: &'a mut <Self as TypeMarker>::Owned, ) -> Self::Borrowed<'a>
&mut Self::Owned to Self::Borrowed. For
HandleBased types this is “take” (it returns an owned handle and
replaces value with Handle::invalid), and for all other types it is
“borrow” (just converts from one reference to another).Source§impl TypeMarker for VmoBuffer
 
impl TypeMarker for VmoBuffer
Source§fn inline_align(_context: Context) -> usize
 
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
 
fn inline_size(_context: Context) -> usize
inline_align.Source§fn encode_is_copy() -> bool
 
fn encode_is_copy() -> bool
Self::Owned matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned to a single memcpy. Read moreSource§fn decode_is_copy() -> bool
 
fn decode_is_copy() -> bool
Self::Owned matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned to a single memcpy.