pub struct BootAllocator {
regions: [BootRegion; 512],
len: usize,
accessible_limit: u64,
}Fields§
§regions: [BootRegion; 512]§len: usize§accessible_limit: u64Implementations§
Source§impl BootAllocator
impl BootAllocator
pub const fn new() -> Self
pub fn init(&mut self, regions: &[MemoryRegion])
pub fn alloc(&mut self, size: usize, align: usize) -> PhysAddr
pub fn try_alloc(&mut self, size: usize, align: usize) -> Option<PhysAddr>
pub fn try_alloc_accessible( &mut self, size: usize, align: usize, ) -> Option<PhysAddr>
pub fn snapshot_free_regions(&self, out: &mut [MemoryRegion]) -> usize
fn reset(&mut self)
fn push_region(&mut self, region: BootRegion)
fn exclude_range(&mut self, exclude_start: u64, exclude_end: u64)
fn consume_region(&mut self, idx: usize, alloc_start: u64, alloc_end: u64)
fn insert_region(&mut self, idx: usize, region: BootRegion)
fn remove_region(&mut self, idx: usize)
fn normalize_regions(&mut self)
Sourcefn rebuild_accessible_limit(&mut self)
fn rebuild_accessible_limit(&mut self)
Recompute the highest currently reachable physical byte for HHDM-backed boot allocations.
Sourcefn accessible_prefix_end(&self, region: BootRegion) -> u64
fn accessible_prefix_end(&self, region: BootRegion) -> u64
Return the end of the longest mapped prefix of region visible through the current HHDM.
pub fn stats(&self) -> BootAllocStats
Auto Trait Implementations§
impl Freeze for BootAllocator
impl RefUnwindSafe for BootAllocator
impl Send for BootAllocator
impl Sync for BootAllocator
impl Unpin for BootAllocator
impl UnsafeUnpin for BootAllocator
impl UnwindSafe for BootAllocator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more