pub struct HugeSplitDeposit<T: TableMeta, A: FrameAllocator> { /* private fields */ }Expand description
A child-table deposit bound to one observed huge leaf.
This is the page-table-generic equivalent of Linux’s deposited PTE page: allocation happens before the mutation critical section, dropping an unpublished deposit releases the frame, and apply consumes it only if the root and huge-leaf identity still match. The target address is deliberately not accepted by apply, so a deposit cannot be redirected to another leaf.
Implementations§
Source§impl<T: TableMeta, A: FrameAllocator> HugeSplitDeposit<T, A>
impl<T: TableMeta, A: FrameAllocator> HugeSplitDeposit<T, A>
pub const fn block_vaddr(&self) -> VirtAddr
pub const fn block_paddr(&self) -> PhysAddr
pub const fn block_size(&self) -> usize
pub const fn block_config(&self) -> PteConfigOf<T>
Trait Implementations§
Auto Trait Implementations§
impl<T, A> Freeze for HugeSplitDeposit<T, A>
impl<T, A> RefUnwindSafe for HugeSplitDeposit<T, A>where
ReservedTable<T, A>: RefUnwindSafe,
<<T as TableMeta>::P as PageTableEntry>::PteConfig: RefUnwindSafe,
impl<T, A> Send for HugeSplitDeposit<T, A>
impl<T, A> Sync for HugeSplitDeposit<T, A>
impl<T, A> Unpin for HugeSplitDeposit<T, A>
impl<T, A> UnsafeUnpin for HugeSplitDeposit<T, A>where
ReservedTable<T, A>: UnsafeUnpin,
<<T as TableMeta>::P as PageTableEntry>::PteConfig: UnsafeUnpin,
impl<T, A> UnwindSafe for HugeSplitDeposit<T, A>where
ReservedTable<T, A>: UnwindSafe,
<<T as TableMeta>::P as PageTableEntry>::PteConfig: UnwindSafe,
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