Struct vm_allocator::AddressAllocator
source · [−]pub struct AddressAllocator { /* private fields */ }
Expand description
An address space allocator.
The AddressAllocator
manages an address space by exporting functionality to reserve and
free address ranges based on a user defined Allocation Policy.
Implementations
sourceimpl AddressAllocator
impl AddressAllocator
sourcepub fn new(base: u64, size: u64) -> Result<Self, Error>
pub fn new(base: u64, size: u64) -> Result<Self, Error>
Creates a new instance of AddressAllocator that will be used to manage the allocation and release of memory slots from the managed address space.
sourcepub fn allocate(
&mut self,
size: u64,
alignment: u64,
policy: AllocPolicy
) -> Result<RangeInclusive>
pub fn allocate(
&mut self,
size: u64,
alignment: u64,
policy: AllocPolicy
) -> Result<RangeInclusive>
Allocates a new aligned memory slot. Returns the allocated range in case of success.
When the ExactMatch
policy is used, the start address MUST be aligned to the
alignment passed as a parameter.
Arguments:
size
: size to allocate.alignment
: alignment to be used for the allocated resources. Valid alignments are a power of 2.policy
: allocation policy.
sourcepub fn free(&mut self, key: &RangeInclusive) -> Result<()>
pub fn free(&mut self, key: &RangeInclusive) -> Result<()>
Deletes the specified memory slot or returns ResourceNotAvailable
if
the node was not allocated before.
Trait Implementations
sourceimpl Clone for AddressAllocator
impl Clone for AddressAllocator
sourcefn clone(&self) -> AddressAllocator
fn clone(&self) -> AddressAllocator
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for AddressAllocator
impl Debug for AddressAllocator
sourceimpl Ord for AddressAllocator
impl Ord for AddressAllocator
sourceimpl PartialEq<AddressAllocator> for AddressAllocator
impl PartialEq<AddressAllocator> for AddressAllocator
sourcefn eq(&self, other: &AddressAllocator) -> bool
fn eq(&self, other: &AddressAllocator) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &AddressAllocator) -> bool
fn ne(&self, other: &AddressAllocator) -> bool
This method tests for !=
.
sourceimpl PartialOrd<AddressAllocator> for AddressAllocator
impl PartialOrd<AddressAllocator> for AddressAllocator
sourcefn partial_cmp(&self, other: &AddressAllocator) -> Option<Ordering>
fn partial_cmp(&self, other: &AddressAllocator) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Eq for AddressAllocator
impl StructuralEq for AddressAllocator
impl StructuralPartialEq for AddressAllocator
Auto Trait Implementations
impl RefUnwindSafe for AddressAllocator
impl Send for AddressAllocator
impl Sync for AddressAllocator
impl Unpin for AddressAllocator
impl UnwindSafe for AddressAllocator
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more