Struct capsules_extra::buzzer_driver::Buzzer

source ·
pub struct Buzzer<'a, B: Buzzer<'a>> { /* private fields */ }

Implementations§

source§

impl<'a, B: Buzzer<'a>> Buzzer<'a, B>

source

pub fn new( buzzer: &'a B, max_duration_ms: usize, grant: Grant<App, UpcallCount<1>, AllowRoCount<0>, AllowRwCount<0>>, ) -> Buzzer<'a, B>

source

pub fn is_valid_app(&self, processid: ProcessId) -> bool

For buzzing immediatelly Checks whether an app is valid or not. The app is valid if there is no current active_app using the driver, or if the app corresponds to the current active_app. Otherwise, a different app is trying to use the driver while it is already in use, therefore it is not valid.

Trait Implementations§

source§

impl<'a, B: Buzzer<'a>> BuzzerClient for Buzzer<'a, B>

source§

fn buzzer_done(&self, status: Result<(), ErrorCode>)

Called when the current sound played by the buzzer has finished or it was stopped.
source§

impl<'a, B: Buzzer<'a>> SyscallDriver for Buzzer<'a, B>

Provide an interface for userland.

source§

fn command( &self, command_num: usize, data1: usize, data2: usize, processid: ProcessId, ) -> CommandReturn

Command interface.

§command_num
  • 0: Return Ok(()) if this driver is included on the platform.
  • 1: Buzz the buzzer when available. data1 is used for the frequency in hertz, and data2 is the duration in ms. Note the duration is capped at 5000 milliseconds.
  • 2: Buzz the buzzer immediatelly. data1 is used for the frequency in hertz, and data2 is the duration in ms. Note the duration is capped at 5000 milliseconds.
  • 3: Stop the buzzer.
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, B> !Freeze for Buzzer<'a, B>

§

impl<'a, B> !RefUnwindSafe for Buzzer<'a, B>

§

impl<'a, B> !Send for Buzzer<'a, B>

§

impl<'a, B> !Sync for Buzzer<'a, B>

§

impl<'a, B> Unpin for Buzzer<'a, B>

§

impl<'a, B> !UnwindSafe for Buzzer<'a, B>

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.