pub struct SequentialDynamicBinaryStorage<'a, 'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> { /* private fields */ }
Expand description
Dynamic process loading machine.
Implementations§
Source§impl<'a, 'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> SequentialDynamicBinaryStorage<'a, 'b, C, D, F>
impl<'a, 'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> SequentialDynamicBinaryStorage<'a, 'b, C, D, F>
pub fn new( flash_driver: &'b F, loader_driver: &'a SequentialProcessLoaderMachine<'a, C, D>, buffer: &'static mut [u8], ) -> Self
Trait Implementations§
Source§impl<'b, C: Chip, D: ProcessStandardDebug, F: NonvolatileStorage<'b>> DeferredCallClient for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
impl<'b, C: Chip, D: ProcessStandardDebug, F: NonvolatileStorage<'b>> DeferredCallClient for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
Source§impl<'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> DynamicBinaryStore for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
impl<'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> DynamicBinaryStore for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
Storage interface exposed to the app_loader capsule
Source§fn set_storage_client(&self, client: &'static dyn DynamicBinaryStoreClient)
fn set_storage_client(&self, client: &'static dyn DynamicBinaryStoreClient)
Sets a client for the SequentialDynamicBinaryStore Object Read more
Source§fn setup(&self, app_length: usize) -> Result<usize, ErrorCode>
fn setup(&self, app_length: usize) -> Result<usize, ErrorCode>
Call to request flashing a new binary. Read more
Source§fn write(
&self,
buffer: SubSliceMut<'static, u8>,
offset: usize,
) -> Result<(), ErrorCode>
fn write( &self, buffer: SubSliceMut<'static, u8>, offset: usize, ) -> Result<(), ErrorCode>
Instruct the kernel to write data to the flash. Read more
Source§impl<'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> DynamicProcessLoad for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
impl<'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> DynamicProcessLoad for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
Loading interface exposed to the app_loader capsule
Source§impl<'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> NonvolatileStorageClient for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
impl<'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> NonvolatileStorageClient for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
This is the callback client for the underlying physical storage driver.
Source§fn read_done(&self, _buffer: &'static mut [u8], _length: usize)
fn read_done(&self, _buffer: &'static mut [u8], _length: usize)
read_done
is called when the implementor is finished reading in to the
buffer. The callback returns the buffer and the number of bytes that
were actually read.Source§fn write_done(&self, buffer: &'static mut [u8], length: usize)
fn write_done(&self, buffer: &'static mut [u8], length: usize)
write_done
is called when the implementor is finished writing from the
buffer. The callback returns the buffer and the number of bytes that
were actually written.Source§impl<'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> ProcessLoadingAsyncClient for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
impl<'b, C: Chip + 'static, D: ProcessStandardDebug + 'static, F: NonvolatileStorage<'b>> ProcessLoadingAsyncClient for SequentialDynamicBinaryStorage<'_, 'b, C, D, F>
Callback client for the async process loader
Source§fn process_loaded(&self, result: Result<(), ProcessLoadError>)
fn process_loaded(&self, result: Result<(), ProcessLoadError>)
A process was successfully found in flash, checked, and loaded into a
ProcessStandard
object.Source§fn process_loading_finished(&self)
fn process_loading_finished(&self)
There are no more processes in flash to be loaded.
Auto Trait Implementations§
impl<'a, 'b, C, D, F> !Freeze for SequentialDynamicBinaryStorage<'a, 'b, C, D, F>
impl<'a, 'b, C, D, F> !RefUnwindSafe for SequentialDynamicBinaryStorage<'a, 'b, C, D, F>
impl<'a, 'b, C, D, F> !Send for SequentialDynamicBinaryStorage<'a, 'b, C, D, F>
impl<'a, 'b, C, D, F> !Sync for SequentialDynamicBinaryStorage<'a, 'b, C, D, F>
impl<'a, 'b, C, D, F> Unpin for SequentialDynamicBinaryStorage<'a, 'b, C, D, F>
impl<'a, 'b, C, D, F> !UnwindSafe for SequentialDynamicBinaryStorage<'a, 'b, C, D, F>
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