virtio_drivers::device::input

Struct VirtIOInput

Source
pub struct VirtIOInput<H: Hal, T: Transport> { /* private fields */ }
Expand description

Virtual human interface devices such as keyboards, mice and tablets.

An instance of the virtio device represents one such input device. Device behavior mirrors that of the evdev layer in Linux, making pass-through implementations on top of evdev easy.

Implementations§

Source§

impl<H: Hal, T: Transport> VirtIOInput<H, T>

Source

pub fn new(transport: T) -> Result<Self, Error>

Create a new VirtIO-Input driver.

Source

pub fn ack_interrupt(&mut self) -> bool

Acknowledge interrupt and process events.

Source

pub fn pop_pending_event(&mut self) -> Option<InputEvent>

Pop the pending event.

Source

pub fn query_config_select( &mut self, select: InputConfigSelect, subsel: u8, out: &mut [u8], ) -> u8

Query a specific piece of information by select and subsel, and write result to out, return the result size.

Source

pub fn name(&mut self) -> Result<String, Error>

Queries and returns the name of the device, or an error if it is not valid UTF-8.

Source

pub fn serial_number(&mut self) -> Result<String, Error>

Queries and returns the serial number of the device, or an error if it is not valid UTF-8.

Source

pub fn ids(&mut self) -> Result<DevIDs, Error>

Queries and returns the ID information of the device.

Source

pub fn prop_bits(&mut self) -> Result<Box<[u8]>, Error>

Queries and returns the input properties of the device.

Source

pub fn ev_bits(&mut self, event_type: u8) -> Result<Box<[u8]>, Error>

Queries and returns a bitmap of supported event codes for the given event type.

If the event type is not supported an empty slice will be returned.

Source

pub fn abs_info(&mut self, axis: u8) -> Result<AbsInfo, Error>

Queries and returns information about the given axis of the device.

Trait Implementations§

Source§

impl<H: Hal, T: Transport> Drop for VirtIOInput<H, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<H: Hal, T: Transport + Send> Send for VirtIOInput<H, T>
where VirtQueue<H, QUEUE_SIZE>: Send,

Source§

impl<H: Hal, T: Transport + Sync> Sync for VirtIOInput<H, T>
where VirtQueue<H, QUEUE_SIZE>: Sync,

Auto Trait Implementations§

§

impl<H, T> Freeze for VirtIOInput<H, T>
where T: Freeze,

§

impl<H, T> RefUnwindSafe for VirtIOInput<H, T>
where T: RefUnwindSafe, H: RefUnwindSafe,

§

impl<H, T> Unpin for VirtIOInput<H, T>
where T: Unpin, H: Unpin,

§

impl<H, T> UnwindSafe for VirtIOInput<H, T>
where T: UnwindSafe, H: UnwindSafe,

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.