pub struct Updater<'a, Opcode, Value> { /* private fields */ }
Expand description
Implements an “updater” pattern for ioctl
s.
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>
impl<'a, Opcode: CompileTimeOpcode, Value> Updater<'a, Opcode, Value>
Sourcepub unsafe fn new(value: &'a mut Value) -> Self
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>
impl<'a, Opcode: CompileTimeOpcode, T> Ioctl for Updater<'a, Opcode, T>
Source§const IS_MUTATING: bool = true
const IS_MUTATING: bool = true
Does the
ioctl
mutate any data in the userspace? Read moreSource§fn as_ptr(&mut self) -> *mut c_void
fn as_ptr(&mut self) -> *mut c_void
Get a pointer to the data to be passed to the
ioctl
command. Read moreSource§unsafe fn output_from_ptr(_output: IoctlOutput, _ptr: *mut c_void) -> Result<()>
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>
impl<'a, Opcode, Value> Sync for Updater<'a, Opcode, Value>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
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