kernel::process

Enum ProcessLoadError

Source
pub enum ProcessLoadError {
    NotEnoughMemory,
    MpuInvalidFlashLength,
    MpuConfigurationError,
    MemoryAddressMismatch {
        actual_address: u32,
        expected_address: u32,
    },
    NoProcessSlot,
    BinaryError(ProcessBinaryError),
    CheckError(ProcessCheckError),
    InternalError,
}
Expand description

Errors that can occur when trying to load and create processes.

Variants§

§

NotEnoughMemory

Not enough memory to meet the amount requested by a process. Modify the process to request less memory, flash fewer processes, or increase the size of the region your board reserves for process memory.

§

MpuInvalidFlashLength

A process was loaded with a length in flash that the MPU does not support. The fix is probably to correct the process size, but this could also be caused by a bad MPU implementation.

§

MpuConfigurationError

The MPU configuration failed for some other, unspecified reason. This could be of an internal resource exhaustion, or a mismatch between the (current) MPU constraints and process requirements.

§

MemoryAddressMismatch

A process specified a fixed memory address that it needs its memory range to start at, and the kernel did not or could not give the process a memory region starting at that address.

Fields

§actual_address: u32
§expected_address: u32
§

NoProcessSlot

There is nowhere in the PROCESSES array to store this process.

§

BinaryError(ProcessBinaryError)

Process loading failed because parsing the binary failed.

§

CheckError(ProcessCheckError)

Process loading failed because checking the process failed.

§

InternalError

Process loading error due (likely) to a bug in the kernel. If you get this error please open a bug report.

Trait Implementations§

Source§

impl Debug for ProcessLoadError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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.