Struct x86_64::instructions::tlb::Invlpgb
source · pub struct Invlpgb { /* private fields */ }
Expand description
Used to broadcast flushes to all logical processors.
use x86_64::VirtAddr;
use x86_64::structures::paging::Page;
use x86_64::instructions::tlb::Invlpgb;
// Check that `invlpgb` and `tlbsync` are supported.
let invlpgb = Invlpgb::new().unwrap();
// Broadcast flushing some pages to all logical processors.
let start: Page = Page::from_start_address(VirtAddr::new(0xf000_0000)).unwrap();
let pages = Page::range(start, start + 3);
invlpgb.build().pages(pages).include_global().flush();
// Wait for all logical processors to respond.
invlpgb.tlbsync();
Implementations§
source§impl Invlpgb
impl Invlpgb
sourcepub fn invlpgb_count_max(&self) -> u16
pub fn invlpgb_count_max(&self) -> u16
Returns the maximum count of pages to be flushed supported by the processor.
sourcepub fn tlb_flush_nested(&self) -> bool
pub fn tlb_flush_nested(&self) -> bool
Returns whether the processor supports flushing translations used for guest translation.
sourcepub fn build(&self) -> InvlpgbFlushBuilder<'_>
pub fn build(&self) -> InvlpgbFlushBuilder<'_>
Create a InvlpgbFlushBuilder
.