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§
Required Methods§
Sourcefn alloc_pages(&mut self, num_pages: usize, align: usize) -> AllocResult<usize>
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.
Sourcefn dealloc_pages(&mut self, pos: usize, num_pages: usize)
fn dealloc_pages(&mut self, pos: usize, num_pages: usize)
Deallocate contiguous memory pages with given position and count.
Sourcefn alloc_pages_at(
&mut self,
base: usize,
num_pages: usize,
align: usize,
) -> AllocResult<usize>
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.
Sourcefn total_pages(&self) -> usize
fn total_pages(&self) -> usize
Returns the total number of memory pages.
Sourcefn used_pages(&self) -> usize
fn used_pages(&self) -> usize
Returns the number of allocated memory pages.
Sourcefn available_pages(&self) -> usize
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.