pub struct InputDevice {
pub open_files: OpenedFiles,
pub inspect_status: Arc<InputDeviceStatus>,
pub info: InputDeviceInfoHandle,
/* private fields */
}Fields§
§open_files: OpenedFiles§inspect_status: Arc<InputDeviceStatus>§info: InputDeviceInfoHandleImplementations§
Source§impl InputDevice
impl InputDevice
pub fn new_touch( display_width: i32, display_height: i32, info: InputDeviceInfoHandle, node_name: &str, inspect_node: &Node, ) -> Self
pub fn new_keyboard( info: InputDeviceInfoHandle, node_name: &str, inspect_node: &Node, ) -> Self
pub fn new_mouse( info: InputDeviceInfoHandle, node_name: &str, inspect_node: &Node, ) -> Self
Sourcepub fn register(self, kernel: &Kernel, minor: u32) -> Result<Device, Errno>
pub fn register(self, kernel: &Kernel, minor: u32) -> Result<Device, Errno>
Registers the input device, and its event interface, with the kernel’s device registry.
Linux exposes each input device as an inputN device of the input class, with the
eventN character device for its event interface nested beneath it, e.g.:
/sys/devices/virtual/input/input0/
├── name
├── uevent
├── id/{bustype,vendor,product,version}
└── event0/
├── dev
└── ueventSince both devices belong to the input class, event{minor} is created directly within
the input{minor} directory, without an intermediate class directory. Each is also linked
from /sys/class/input.
Only the eventN device generates a uevent, since it is the only device with a /dev
node.
Returns the eventN Device, which should be passed to Self::unregister to remove
both devices.
Sourcepub fn unregister(current_task: &CurrentTask, event_device: Device)
pub fn unregister(current_task: &CurrentTask, event_device: Device)
Unregisters an input device previously registered with Self::register.
event_device is the eventN Device returned by Self::register; its parent
inputN device is removed too.
pub fn open_internal(&self) -> Box<dyn FileOps>
Trait Implementations§
Source§impl Clone for InputDevice
impl Clone for InputDevice
Source§impl DeviceOps for InputDevice
impl DeviceOps for InputDevice
Source§fn open(
&self,
_current_task: &CurrentTask,
_id: StarnixDeviceId,
_node: &NamespaceNode,
_flags: OpenFlags,
) -> Result<Box<dyn FileOps>, Errno>
fn open( &self, _current_task: &CurrentTask, _id: StarnixDeviceId, _node: &NamespaceNode, _flags: OpenFlags, ) -> Result<Box<dyn FileOps>, Errno>
Auto Trait Implementations§
impl !RefUnwindSafe for InputDevice
impl !UnwindSafe for InputDevice
impl Freeze for InputDevice
impl Send for InputDevice
impl Sync for InputDevice
impl Unpin for InputDevice
impl UnsafeUnpin for InputDevice
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
fn fidl_into_native(self) -> Box<N>
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]§impl<T> IntoAny for T
impl<T> IntoAny for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more