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