Struct MipsMcuHeap

Source
pub struct MipsMcuHeap { /* private fields */ }

Implementations§

Source§

impl MipsMcuHeap

Source

pub const fn empty() -> MipsMcuHeap

Create a new UNINITIALIZED heap allocator.

You must initialize this heap using the init method before using the allocator.

Source

pub fn init(&self)

Initialize heap with heap start location from linker and a defined initial size.

Source

pub fn used(&self) -> usize

Returns an estimate of the amount of bytes in use.

Source

pub fn free(&self) -> usize

Returns the amount of bytes currently available.

This method does not consider possible heap extensions

Source

pub fn bottom(&self) -> *mut u8

Returns the start (bottom) of the heap.

Source

pub fn top(&self) -> *mut u8

Returns the end (top) of the heap.

Source

pub fn headroom(&self) -> usize

Returns the current distance to the bottom of the stack.

This is an estimate amount of memory that could be added to the heap by automatic extension. An estimate of the total available free heap memory is the sum of free() and headroom().

Source

pub unsafe fn reserve(&self, free_bytes: usize) -> Result<(), Error>

Try to extend the stack so that it has at least an amount of free_bytes available.

Fails if there is not enough headroom. Does nothing if there are already enough free bytes.

§Safety

This method is considered unsafe because it increases the likelihood of heap/stack collisions.

Trait Implementations§

Source§

impl GlobalAlloc for MipsMcuHeap

Source§

unsafe fn alloc(&self, layout: Layout) -> *mut u8

Allocates memory as described by the given layout. Read more
Source§

unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout)

Deallocates the block of memory at the given ptr pointer with the given layout. Read more
1.28.0 · Source§

unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8

Behaves like alloc, but also ensures that the contents are set to zero before being returned. Read more
1.28.0 · Source§

unsafe fn realloc( &self, ptr: *mut u8, layout: Layout, new_size: usize, ) -> *mut u8

Shrinks or grows a block of memory to the given new_size in bytes. The block is described by the given ptr pointer and layout. 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.