pub struct BuddyBlock {
pub base: u64,
pub order: u32,
pub free: bool,
}Expand description
Buddy block model for buddy system verification
Fields§
§base: u64Base address (frame-aligned)
order: u32Order: block covers 2^order frames
free: boolWhether this block is free
Implementations§
Source§impl BuddyBlock
impl BuddyBlock
Sourcepub fn frame_count(&self) -> u64
pub fn frame_count(&self) -> u64
Size of this block in frames
Sourcepub fn buddy_base(&self) -> u64
pub fn buddy_base(&self) -> u64
Get the buddy block’s base address
Sourcepub fn split(&self) -> Option<(BuddyBlock, BuddyBlock)>
pub fn split(&self) -> Option<(BuddyBlock, BuddyBlock)>
Split this block into two halves (returns left, right)
Sourcepub fn coalesce(&self, other: &BuddyBlock) -> Option<BuddyBlock>
pub fn coalesce(&self, other: &BuddyBlock) -> Option<BuddyBlock>
Coalesce two buddy blocks into one (if they are buddies)
Trait Implementations§
Source§impl Clone for BuddyBlock
impl Clone for BuddyBlock
Source§fn clone(&self) -> BuddyBlock
fn clone(&self) -> BuddyBlock
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BuddyBlock
impl Debug for BuddyBlock
Source§impl PartialEq for BuddyBlock
impl PartialEq for BuddyBlock
impl Copy for BuddyBlock
impl Eq for BuddyBlock
impl StructuralPartialEq for BuddyBlock
Auto Trait Implementations§
impl Freeze for BuddyBlock
impl RefUnwindSafe for BuddyBlock
impl Send for BuddyBlock
impl Sync for BuddyBlock
impl Unpin for BuddyBlock
impl UnwindSafe for BuddyBlock
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)