Struct EventFdTrigger

Source
pub struct EventFdTrigger(/* private fields */);
Expand description

Newtype for implementing the trigger functionality for EventFd.

The trigger is used for handling events in the legacy devices.

Implementations§

Source§

impl EventFdTrigger

Source

pub fn try_clone(&self) -> Result<Self>

Source

pub fn new(evt: EventFd) -> Self

Source

pub fn get_event(&self) -> EventFd

Methods from Deref<Target = EventFd>§

Source

pub fn write(&self, v: u64) -> Result<(), Error>

Add a value to the eventfd’s counter.

When the addition causes the counter overflow, this would either block until a read is performed on the file descriptor, or fail with the error EAGAIN if the file descriptor has been made nonblocking.

§Arguments
  • v: the value to be added to the eventfd’s counter.
§Examples
extern crate vmm_sys_util;
use vmm_sys_util::eventfd::{EventFd, EFD_NONBLOCK};

let evt = EventFd::new(EFD_NONBLOCK).unwrap();
evt.write(55).unwrap();
Source

pub fn read(&self) -> Result<u64, Error>

Read a value from the eventfd.

If the counter is zero, this would either block until the counter becomes nonzero, or fail with the error EAGAIN if the file descriptor has been made nonblocking.

§Examples
extern crate vmm_sys_util;
use vmm_sys_util::eventfd::{EventFd, EFD_NONBLOCK};

let evt = EventFd::new(EFD_NONBLOCK).unwrap();
evt.write(55).unwrap();
assert_eq!(evt.read().unwrap(), 55);
Source

pub fn try_clone(&self) -> Result<EventFd, Error>

Clone this EventFd.

This internally creates a new file descriptor and it will share the same underlying count within the kernel.

§Examples
extern crate vmm_sys_util;
use vmm_sys_util::eventfd::{EventFd, EFD_NONBLOCK};

let evt = EventFd::new(EFD_NONBLOCK).unwrap();
let evt_clone = evt.try_clone().unwrap();
evt.write(923).unwrap();
assert_eq!(evt_clone.read().unwrap(), 923);

Trait Implementations§

Source§

impl Deref for EventFdTrigger

Source§

type Target = EventFd

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Trigger for EventFdTrigger

Source§

type E = Error

Underlying type for the potential error conditions returned by Self::trigger.
Source§

fn trigger(&self) -> Result<()>

Trigger an event.

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> 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.