pub struct VirtualSchedulerTimer<A: 'static + Alarm<'static>> { /* private fields */ }
Expand description

Implementation of SchedulerTimer trait on top of a virtual alarm.

Currently, this implementation depends slightly on the virtual alarm implementation in capsules – namely it assumes that get_alarm will still return the passed value even after the timer is disarmed. Thus this should only be implemented with a virtual alarm. If a dedicated hardware timer is available, it is more performant to implement the scheduler timer directly for that hardware peripheral without the alarm abstraction in between.

This mostly handles conversions from wall time, the required inputs to the trait, to ticks, which are used to track time for alarms.

Implementations§

source§

impl<A: 'static + Alarm<'static>> VirtualSchedulerTimer<A>

source

pub fn new(alarm: &'static A) -> Self

Trait Implementations§

source§

impl<A: 'static + Alarm<'static>> SchedulerTimer for VirtualSchedulerTimer<A>

source§

fn reset(&self)

Reset the SchedulerTimer. Read more
source§

fn start(&self, us: u32)

Start a timer for a process timeslice. The us argument is the length of the timeslice in microseconds. Read more
source§

fn arm(&self)

Arm the SchedulerTimer timer and ensure an interrupt will be generated. Read more
source§

fn disarm(&self)

Disarm the SchedulerTimer timer indicating an interrupt is no longer required. Read more
source§

fn get_remaining_us(&self) -> Option<u32>

Return the number of microseconds remaining in the process’s timeslice if the timeslice is still active. Read more

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

§

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>,

§

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.