pub struct CmpRequeueRequest {
pub first_vmo: Option<Vmo>,
pub first_offset: Option<u64>,
pub second_vmo: Option<Vmo>,
pub second_offset: Option<u64>,
pub wake_count: Option<u32>,
pub requeue_count: Option<u32>,
pub cmp_val: Option<u32>,
/* private fields */
}Fields§
§first_vmo: Option<Vmo>The vmo containing the first futex’s word. Mandatory
first_offset: Option<u64>The offset in first_vmo of the first futex’s word. Mandatory
second_vmo: Option<Vmo>The vmo containing the second futex’s word. Optional. If not present, the first_vmo is also used as the second_vmo.
second_offset: Option<u64>The offset in second_vmo of the second futex’s word. Mandatory
wake_count: Option<u32>Maximum number of waiters to wake. Waiters beyond this count are moved to be waiting on the second futex instead, up to max_requeue_count. Mandatory
requeue_count: Option<u32>Maximum number of waiters to re-queue (among those which were not woken) on the second futex. In other words, maximum number of waiters which get changed from waiting on the first futex to waiting on the second futex instead. Waiters beyond this are left waiting on the first futex. Mandatory
cmp_val: Option<u32>Value that must match the uint32_t at first_vmo first_offset for the requeue to occur, else no requeue occurs and error will be EAGAIN. Optional. If not present, the requeue proceeds regardless of the value of the uint32_t at first_vmo first_offset. In other words, this field set/un-set chooses FUTEX_CMP_REQUEUE/FUTEX_REQUEUE semantics respectively. In addition, this controls the semantics of the “count” field in a success response, per differing semantics of FUTEX_CMP_REQUEUE and FUTEX_REQUEUE return values.
Trait Implementations§
Source§impl Debug for CmpRequeueRequest
impl Debug for CmpRequeueRequest
Source§impl Decode<CmpRequeueRequest, DefaultFuchsiaResourceDialect> for CmpRequeueRequest
impl Decode<CmpRequeueRequest, DefaultFuchsiaResourceDialect> for CmpRequeueRequest
Source§impl Default for CmpRequeueRequest
impl Default for CmpRequeueRequest
Source§fn default() -> CmpRequeueRequest
fn default() -> CmpRequeueRequest
Source§impl Encode<CmpRequeueRequest, DefaultFuchsiaResourceDialect> for &mut CmpRequeueRequest
impl Encode<CmpRequeueRequest, DefaultFuchsiaResourceDialect> for &mut CmpRequeueRequest
Source§impl PartialEq for CmpRequeueRequest
impl PartialEq for CmpRequeueRequest
Source§fn eq(&self, other: &CmpRequeueRequest) -> bool
fn eq(&self, other: &CmpRequeueRequest) -> bool
self and other values to be equal, and is used by ==.Source§impl ResourceTypeMarker for CmpRequeueRequest
impl ResourceTypeMarker for CmpRequeueRequest
Source§type Borrowed<'a> = &'a mut CmpRequeueRequest
type Borrowed<'a> = &'a mut CmpRequeueRequest
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 CmpRequeueRequest
impl TypeMarker for CmpRequeueRequest
Source§type Owned = CmpRequeueRequest
type Owned = CmpRequeueRequest
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.