rustix::ioctl

Struct Updater

Source
pub struct Updater<'a, Opcode, Value> { /* private fields */ }
Expand description

Implements an “updater” pattern for ioctls.

The ioctl takes a reference to a struct that it reads its input from, then writes output to the same struct.

Implementations§

Source§

impl<'a, Opcode: CompileTimeOpcode, Value> Updater<'a, Opcode, Value>

Source

pub unsafe fn new(value: &'a mut Value) -> Self

Create a new pointer updater-style ioctl object.

§Safety
  • Opcode must provide a valid opcode.
  • For this opcode, Value must be the type that the kernel expects to get.

Trait Implementations§

Source§

impl<'a, Opcode: CompileTimeOpcode, T> Ioctl for Updater<'a, Opcode, T>

Source§

const IS_MUTATING: bool = true

Does the ioctl mutate any data in the userspace? Read more
Source§

const OPCODE: Opcode = Opcode::OPCODE

The opcode used by this ioctl command. Read more
Source§

type Output = ()

The type of the output data. Read more
Source§

fn as_ptr(&mut self) -> *mut c_void

Get a pointer to the data to be passed to the ioctl command. Read more
Source§

unsafe fn output_from_ptr(_output: IoctlOutput, _ptr: *mut c_void) -> Result<()>

Cast the output data to the correct type. Read more

Auto Trait Implementations§

§

impl<'a, Opcode, Value> Freeze for Updater<'a, Opcode, Value>

§

impl<'a, Opcode, Value> RefUnwindSafe for Updater<'a, Opcode, Value>
where Value: RefUnwindSafe, Opcode: RefUnwindSafe,

§

impl<'a, Opcode, Value> Send for Updater<'a, Opcode, Value>
where Value: Send, Opcode: Send,

§

impl<'a, Opcode, Value> Sync for Updater<'a, Opcode, Value>
where Value: Sync, Opcode: Sync,

§

impl<'a, Opcode, Value> Unpin for Updater<'a, Opcode, Value>
where Opcode: Unpin,

§

impl<'a, Opcode, Value> !UnwindSafe for Updater<'a, Opcode, Value>

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> 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.

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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 8 bytes