tock_tbf::types

Enum TbfParseError

Source
pub enum TbfParseError {
    NotEnoughFlash,
    UnsupportedVersion(u16),
    ChecksumMismatch(u32, u32),
    BadTlvEntry(usize),
    BadProcessName,
    InternalError,
    TooManyEntries(usize),
}
Expand description

Error when parsing an app’s TBF header.

Variants§

§

NotEnoughFlash

Not enough bytes in the buffer to parse the expected field.

§

UnsupportedVersion(u16)

Unknown version of the TBF header.

§

ChecksumMismatch(u32, u32)

Checksum calculation did not match what is stored in the TBF header. First value is the checksum provided, second value is the checksum we calculated.

§

BadTlvEntry(usize)

One of the TLV entries did not parse correctly. This could happen if the TLV.length does not match the size of a fixed-length entry. The usize is the value of the “tipe” field.

§

BadProcessName

The app name in the TBF header could not be successfully parsed as a UTF-8 string.

§

InternalError

Internal kernel error. This is a bug inside of this library. Likely this means that for some reason a slice was not sized properly for parsing a certain type, which is something completely controlled by this library. If the slice passed in is not long enough, then a get() call will fail and that will trigger a different error.

§

TooManyEntries(usize)

The number of variable length entries (for example the number of TbfHeaderDriverPermission entries in TbfHeaderV2Permissions) is too long for Tock to parse. This can be fixed by increasing the number in TbfHeaderV2.

Trait Implementations§

Source§

impl Debug for TbfParseError

Source§

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

Formats the value using the given formatter. Read more
Source§

impl From<TryFromSliceError> for TbfParseError

Source§

fn from(_error: TryFromSliceError) -> Self

Converts to this type from the input type.

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.