x86_64::instructions::tlb

Struct InvlpgbFlushBuilder

Source
pub struct InvlpgbFlushBuilder<'a, S = Size4KiB>{ /* private fields */ }
Expand description

A builder struct to construct the parameters for the invlpgb instruction.

Implementations§

Source§

impl<'a, S> InvlpgbFlushBuilder<'a, S>

Source

pub fn pages<T>(self, page_range: PageRange<T>) -> InvlpgbFlushBuilder<'a, T>

Flush a range of pages.

If the range doesn’t fit within invlpgb_count_max, invlpgb is executed multiple times.

Source

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.

Source

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.

Source

pub fn include_global(&mut self) -> &mut Self

Also flush global pages.

Source

pub fn final_translation_only(&mut self) -> &mut Self

Only flush the final translation and not the cached upper level TLB entries.

Source

pub fn include_nested_translations(self) -> Self

Also flush nestred translations that could be used for guest translation.

Source

pub fn flush(&self)

Execute the flush.

Trait Implementations§

Source§

impl<'a, S> Clone for InvlpgbFlushBuilder<'a, S>

Source§

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)

Performs copy-assignment from source. Read more
Source§

impl<'a, S> Debug for InvlpgbFlushBuilder<'a, S>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto 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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.