pub struct InvlpgbFlushBuilder<'a, S = Size4KiB>where
S: NotGiantPageSize,{ /* private fields */ }
Expand description
A builder struct to construct the parameters for the invlpgb
instruction.
Implementations§
Source§impl<'a, S> InvlpgbFlushBuilder<'a, S>where
S: NotGiantPageSize,
impl<'a, S> InvlpgbFlushBuilder<'a, S>where
S: NotGiantPageSize,
Sourcepub fn pages<T>(self, page_range: PageRange<T>) -> InvlpgbFlushBuilder<'a, T>where
T: NotGiantPageSize,
pub fn pages<T>(self, page_range: PageRange<T>) -> InvlpgbFlushBuilder<'a, T>where
T: NotGiantPageSize,
Flush a range of pages.
If the range doesn’t fit within invlpgb_count_max
, invlpgb
is
executed multiple times.
Sourcepub unsafe fn pcid(&mut self, pcid: Pcid) -> &mut Self
pub unsafe fn pcid(&mut self, pcid: Pcid) -> &mut Self
Only flush TLB entries with the given PCID.
§Safety
The caller has to ensure that PCID is enabled in CR4 when the flush is executed.
Sourcepub unsafe fn asid(
&mut self,
asid: u16,
) -> Result<&mut Self, AsidOutOfRangeError>
pub unsafe fn asid( &mut self, asid: u16, ) -> Result<&mut Self, AsidOutOfRangeError>
Only flush TLB entries with the given ASID.
§Safety
The caller has to ensure that SVM is enabled in EFER when the flush is executed.
Sourcepub fn include_global(&mut self) -> &mut Self
pub fn include_global(&mut self) -> &mut Self
Also flush global pages.
Sourcepub fn final_translation_only(&mut self) -> &mut Self
pub fn final_translation_only(&mut self) -> &mut Self
Only flush the final translation and not the cached upper level TLB entries.
Sourcepub fn include_nested_translations(self) -> Self
pub fn include_nested_translations(self) -> Self
Also flush nestred translations that could be used for guest translation.
Trait Implementations§
Source§impl<'a, S> Clone for InvlpgbFlushBuilder<'a, S>where
S: NotGiantPageSize + Clone,
impl<'a, S> Clone for InvlpgbFlushBuilder<'a, S>where
S: NotGiantPageSize + Clone,
Source§fn clone(&self) -> InvlpgbFlushBuilder<'a, S>
fn clone(&self) -> InvlpgbFlushBuilder<'a, S>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl<'a, S> Freeze for InvlpgbFlushBuilder<'a, S>
impl<'a, S> RefUnwindSafe for InvlpgbFlushBuilder<'a, S>where
S: RefUnwindSafe,
impl<'a, S> Send for InvlpgbFlushBuilder<'a, S>where
S: Send,
impl<'a, S> Sync for InvlpgbFlushBuilder<'a, S>where
S: Sync,
impl<'a, S> Unpin for InvlpgbFlushBuilder<'a, S>where
S: Unpin,
impl<'a, S> UnwindSafe for InvlpgbFlushBuilder<'a, S>where
S: 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