Enum kernel::process::ProcessLoadError[][src]

pub enum ProcessLoadError {
    TbfHeaderParseFailure(TbfParseError),
    NotEnoughFlash,
    NotEnoughMemory,
    MpuInvalidFlashLength,
    MemoryAddressMismatch {
        actual_address: u32,
        expected_address: u32,
    },
    IncorrectFlashAddress {
        actual_address: u32,
        expected_address: u32,
    },
    IncompatibleKernelVersion {
        version: Option<(u16, u16)>,
    },
    InternalError,
}
Expand description

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

Variants

TbfHeaderParseFailure(TbfParseError)

The TBF header for the process could not be successfully parsed.

Tuple Fields of TbfHeaderParseFailure

0: TbfParseError
NotEnoughFlash

Not enough flash remaining to parse a process and its header.

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.

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 of MemoryAddressMismatch

actual_address: u32expected_address: u32
IncorrectFlashAddress

A process specified that its binary must start at a particular address, and that is not the address the binary is actually placed at.

Fields of IncorrectFlashAddress

actual_address: u32expected_address: u32
IncompatibleKernelVersion

A process requires a newer version of the kernel or did not specify a required version. Processes can include the KernelVersion TBF header stating their compatible kernel version (^major.minor).

Boards may not require processes to include the KernelVersion TBF header, and the kernel supports ignoring a missing KernelVersion TBF header. In that case, this error will not be returned for a process missing a KernelVersion TBF header.

version is the (major, minor) kernel version the process indicates it requires. If version is None then the process did not include the KernelVersion TBF header.

Fields of IncompatibleKernelVersion

version: Option<(u16, u16)>
InternalError

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

Trait Implementations

Formats the value using the given formatter. Read more

Convert between a TBF Header parse error and a process load error.

We note that the process load error is because a TBF header failed to parse, and just pass through the parse error.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.