Skip to main content

PageAllocator

Trait PageAllocator 

Source
pub trait PageAllocator: BaseAllocator {
    const PAGE_SIZE: usize;

    // Required methods
    fn alloc_pages(
        &mut self,
        num_pages: usize,
        align: usize,
    ) -> AllocResult<usize>;
    fn dealloc_pages(&mut self, pos: usize, num_pages: usize);
    fn alloc_pages_at(
        &mut self,
        base: usize,
        num_pages: usize,
        align: usize,
    ) -> AllocResult<usize>;
    fn total_pages(&self) -> usize;
    fn used_pages(&self) -> usize;
    fn available_pages(&self) -> usize;
}
Expand description

Page-granularity allocator.

Required Associated Constants§

Source

const PAGE_SIZE: usize

The size of a memory page.

Required Methods§

Source

fn alloc_pages(&mut self, num_pages: usize, align: usize) -> AllocResult<usize>

Allocate contiguous memory pages with given count and byte alignment.

align is the requested alignment in bytes, not a log2/exponent.

Source

fn dealloc_pages(&mut self, pos: usize, num_pages: usize)

Deallocate contiguous memory pages with given position and count.

Source

fn alloc_pages_at( &mut self, base: usize, num_pages: usize, align: usize, ) -> AllocResult<usize>

Allocate contiguous memory pages with given base address, count and byte alignment.

align is the requested alignment in bytes, not a log2/exponent.

Source

fn total_pages(&self) -> usize

Returns the total number of memory pages.

Source

fn used_pages(&self) -> usize

Returns the number of allocated memory pages.

Source

fn available_pages(&self) -> usize

Returns the number of available memory pages.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§