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>
impl<'a, B: Buzzer<'a>> Buzzer<'a, B>
pub fn new( buzzer: &'a B, max_duration_ms: usize, grant: Grant<App, UpcallCount<1>, AllowRoCount<0>, AllowRwCount<0>>, ) -> Buzzer<'a, B>
sourcepub fn is_valid_app(&self, processid: ProcessId) -> bool
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>
impl<'a, B: Buzzer<'a>> BuzzerClient for Buzzer<'a, B>
source§impl<'a, B: Buzzer<'a>> SyscallDriver for Buzzer<'a, B>
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
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, anddata2
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, anddata2
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>
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)>
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 moreAuto 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> 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