pub struct BuddyAlloc { /* private fields */ }

Implementations§

source§

impl BuddyAlloc

source

pub unsafe fn new(param: BuddyAllocParam) -> Self

Safety

The base_addr..(base_addr + len) must be allocated before using, and must guarantee no others write to the memory range, to avoid undefined behaviors. The new function panic if memory space not enough for initialize BuddyAlloc.

source

pub fn malloc(&mut self, nbytes: usize) -> *mut u8

source

pub fn free(&mut self, p: *mut u8)

source

pub fn available_bytes(&self) -> usize

Returns the bytes currently available for allocation. Note due to the buddy allocation algorithm, the available bytes can’t be allocated at once. https://github.com/jjyr/buddy-alloc/issues/7

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.