capsules_extra::can

Struct CanCapsule

Source
pub struct CanCapsule<'a, Can: Can> { /* private fields */ }

Implementations§

Source§

impl<'a, Can: Can> CanCapsule<'a, Can>

Source

pub fn new( can: &'a Can, grant: Grant<App, UpcallCount<{ up_calls::COUNT }>, AllowRoCount<{ ro_allow::COUNT }>, AllowRwCount<{ rw_allow::COUNT }>>, can_tx: &'static mut [u8; 8], can_rx: &'static mut [u8; 8], ) -> CanCapsule<'a, Can>

Source

pub fn process_send_command( &self, processid: ProcessId, id: Id, length: usize, ) -> Result<(), ErrorCode>

This function makes a copy of the buffer in the grant and sends it to the low-level hardware, in order for it to be sent on the bus.

Source

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

Trait Implementations§

Source§

impl<Can: Can> ControllerClient for CanCapsule<'_, Can>

Source§

fn state_changed(&self, state: State)

The driver calls this function when the state of the CAN peripheral is changed. Read more
Source§

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

The driver calls this function when the peripheral has been successfully enabled. The driver must call this function and state_changed also, but must wait for this function to be called. If an error occurs, the state_changed callback might not be able to report it. Read more
Source§

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

The driver calls this function when the peripheral has been successfully disabled. The driver must call this function and state_changed also, but must wait for this function to be called. If an error occurs, the state_changed callback might not be able to report it. Read more
Source§

impl<Can: Can> ReceiveClient<{ can::STANDARD_CAN_PACKET_SIZE }> for CanCapsule<'_, Can>

Source§

fn message_received( &self, id: Id, buffer: &mut [u8; 8], _len: usize, status: Result<(), Error>, )

The driver calls this function when a new message has been received on the given FIFO. Read more
Source§

fn stopped(&self, buffer: &'static mut [u8; 8])

The driver calls this function when the reception of messages has been stopped. Read more
Source§

impl<Can: Can> SyscallDriver for CanCapsule<'_, Can>

Source§

fn command( &self, command_num: usize, arg1: usize, arg2: usize, processid: ProcessId, ) -> CommandReturn

System call for a process to perform a short synchronous operation or start a long-running split-phase operation (whose completion is signaled with an upcall). Command 0 is a reserved command to detect if a peripheral system call driver is installed and must always return a CommandReturn::success.
Source§

fn allocate_grant(&self, process_id: 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
Source§

impl<Can: Can> TransmitClient<{ can::STANDARD_CAN_PACKET_SIZE }> for CanCapsule<'_, Can>

Source§

fn transmit_complete( &self, status: Result<(), Error>, buffer: &'static mut [u8; 8], )

The driver calls this function when there is an update of the last message that was transmitted Read more

Auto Trait Implementations§

§

impl<'a, Can> !Freeze for CanCapsule<'a, Can>

§

impl<'a, Can> !RefUnwindSafe for CanCapsule<'a, Can>

§

impl<'a, Can> !Send for CanCapsule<'a, Can>

§

impl<'a, Can> !Sync for CanCapsule<'a, Can>

§

impl<'a, Can> Unpin for CanCapsule<'a, Can>

§

impl<'a, Can> !UnwindSafe for CanCapsule<'a, Can>

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.