PoolAllocator

Struct PoolAllocator 

Source
pub struct PoolAllocator { /* private fields */ }
Expand description

kernel pool allocator

Implementations§

Source§

impl PoolAllocator

Source

pub const fn new(pool_type: PoolType, tag: PoolTag) -> Self

create new pool allocator with specified type and tag

Source

pub const fn non_paged() -> Self

create non-paged allocator

Source

pub const fn paged() -> Self

create paged allocator

Source

pub fn allocate(&self, size: usize) -> KmResult<NonNull<u8>>

allocate memory from pool

Source

pub fn allocate_zeroed(&self, size: usize) -> KmResult<NonNull<u8>>

allocate zeroed memory from pool

Source

pub unsafe fn free(&self, ptr: NonNull<u8>)

free previously allocated memory

§Safety

ptr must have been allocated by this allocator (or one with same tag)

Source

pub unsafe fn reallocate( &self, old_ptr: NonNull<u8>, old_size: usize, new_size: usize, ) -> KmResult<NonNull<u8>>

reallocate memory (allocate new, copy, free old)

§Safety

old_ptr must have been allocated by this allocator

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.