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>
impl<A: 'static + Alarm<'static>> VirtualSchedulerTimer<A>
pub fn new(alarm: &'static A) -> Self
Trait Implementations§
Source§impl<A: 'static + Alarm<'static>> SchedulerTimer for VirtualSchedulerTimer<A>
impl<A: 'static + Alarm<'static>> SchedulerTimer for VirtualSchedulerTimer<A>
Source§fn start(&self, us: NonZeroU32)
fn start(&self, us: NonZeroU32)
Start a timer for a process timeslice. The
us
argument is the length
of the timeslice in microseconds. Read moreSource§fn arm(&self)
fn arm(&self)
Arm the SchedulerTimer timer and ensure an interrupt will be generated. Read more
Source§fn disarm(&self)
fn disarm(&self)
Disarm the SchedulerTimer timer indicating an interrupt is no longer
required. Read more
Source§fn get_remaining_us(&self) -> Option<NonZeroU32>
fn get_remaining_us(&self) -> Option<NonZeroU32>
Return the number of microseconds remaining in the process’s timeslice
if the timeslice is still active. Read more
Auto Trait Implementations§
impl<A> Freeze for VirtualSchedulerTimer<A>
impl<A> RefUnwindSafe for VirtualSchedulerTimer<A>where
A: RefUnwindSafe,
impl<A> Send for VirtualSchedulerTimer<A>where
A: Sync,
impl<A> Sync for VirtualSchedulerTimer<A>where
A: Sync,
impl<A> Unpin for VirtualSchedulerTimer<A>
impl<A> UnwindSafe for VirtualSchedulerTimer<A>where
A: RefUnwindSafe,
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
Mutably borrows from an owned value. Read more