Skip to main content

CmpRequeueRequest

Struct CmpRequeueRequest 

Source
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

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Decode<CmpRequeueRequest, DefaultFuchsiaResourceDialect> for CmpRequeueRequest

Source§

fn new_empty() -> Self

Creates a valid instance of Self. The specific value does not matter, since it will be overwritten by decode.
Source§

unsafe fn decode( &mut self, decoder: &mut Decoder<'_, DefaultFuchsiaResourceDialect>, offset: usize, depth: Depth, ) -> Result<()>

Decodes an object of type T from the decoder’s buffers into self. Read more
Source§

impl Default for CmpRequeueRequest

Source§

fn default() -> CmpRequeueRequest

Returns the “default value” for a type. Read more
Source§

impl Encode<CmpRequeueRequest, DefaultFuchsiaResourceDialect> for &mut CmpRequeueRequest

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, DefaultFuchsiaResourceDialect>, offset: usize, depth: Depth, ) -> Result<()>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl PartialEq for CmpRequeueRequest

Source§

fn eq(&self, other: &CmpRequeueRequest) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl ResourceTypeMarker for CmpRequeueRequest

Source§

type Borrowed<'a> = &'a mut CmpRequeueRequest

The Rust type to use for encoding. This is a particular Encode<Self> type cheaply obtainable from &mut Self::Owned. There are three cases: Read more
Source§

fn take_or_borrow<'a>( value: &'a mut <Self as TypeMarker>::Owned, ) -> Self::Borrowed<'a>

Cheaply converts from &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

Source§

type Owned = CmpRequeueRequest

The owned Rust type which this FIDL type decodes into.
Source§

fn inline_align(_context: Context) -> usize

Returns the minimum required alignment of the inline portion of the encoded object. It must be a (nonzero) power of two.
Source§

fn inline_size(_context: Context) -> usize

Returns the size of the inline portion of the encoded object, including padding for alignment. Must be a multiple of inline_align.
Source§

fn encode_is_copy() -> bool

Returns true if the memory layout of 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 more
Source§

fn decode_is_copy() -> bool

Returns true if the memory layout of 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.
Source§

impl Standalone<DefaultFuchsiaResourceDialect> for CmpRequeueRequest

Source§

impl StructuralPartialEq for CmpRequeueRequest

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.