capsules_extra::analog_comparator

Struct AnalogComparator

Source
pub struct AnalogComparator<'a, A: AnalogComparator<'a> + 'a> { /* private fields */ }

Implementations§

Source§

impl<'a, A: AnalogComparator<'a>> AnalogComparator<'a, A>

Source

pub fn new( analog_comparator: &'a A, channels: &'a [&'a <A as AnalogComparator<'a>>::Channel], grant: Grant<App, UpcallCount<1>, AllowRoCount<0>, AllowRwCount<0>>, ) -> AnalogComparator<'a, A>

Trait Implementations§

Source§

impl<'a, A: AnalogComparator<'a>> Client for AnalogComparator<'a, A>

Source§

fn fired(&self, channel: usize)

Upcall to userland, signaling the application

Source§

impl<'a, A: AnalogComparator<'a>> SyscallDriver for AnalogComparator<'a, A>

Source§

fn command( &self, command_num: usize, channel: usize, _: usize, processid: ProcessId, ) -> CommandReturn

Control the analog comparator.

§command_num
  • 0: Driver existence check.
  • 1: Perform a simple comparison. Input x chooses the desired comparator ACx (e.g. 0 or 1 for hail, 0-3 for imix)
  • 2: Start interrupt-based comparisons. Input x chooses the desired comparator ACx (e.g. 0 or 1 for hail, 0-3 for imix)
  • 3: Stop interrupt-based comparisons. Input x chooses the desired comparator ACx (e.g. 0 or 1 for hail, 0-3 for imix)
  • 4: Get number of channels.
Source§

fn allocate_grant(&self, processid: ProcessId) -> Result<(), Error>

Request to allocate a capsule’s grant for a specific process. Read more
Source§

fn allow_userspace_readable( &self, app: ProcessId, which: usize, slice: ReadWriteProcessBuffer, ) -> Result<ReadWriteProcessBuffer, (ReadWriteProcessBuffer, ErrorCode)>

System call for a process to pass a buffer (a UserspaceReadableProcessBuffer) to the kernel that the kernel can either read or write. The kernel calls this method only after it checks that the entire buffer is within memory the process can both read and write. Read more

Auto Trait Implementations§

§

impl<'a, A> !Freeze for AnalogComparator<'a, A>

§

impl<'a, A> !RefUnwindSafe for AnalogComparator<'a, A>

§

impl<'a, A> !Send for AnalogComparator<'a, A>

§

impl<'a, A> !Sync for AnalogComparator<'a, A>

§

impl<'a, A> Unpin for AnalogComparator<'a, A>

§

impl<'a, A> !UnwindSafe for AnalogComparator<'a, A>

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.