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".

Implementors§