pub struct Cr3;
Expand description
Contains the physical address of the highest-level page table.
Implementations
sourceimpl Cr3
impl Cr3
sourcepub fn read() -> (PhysFrame, Cr3Flags)
pub fn read() -> (PhysFrame, Cr3Flags)
Read the current P4 table address from the CR3 register.
sourcepub fn read_pcid() -> (PhysFrame, Pcid)
pub fn read_pcid() -> (PhysFrame, Pcid)
Read the current P4 table address from the CR3 register along with PCID.
The correct functioning of this requires CR4.PCIDE = 1.
See Cr4Flags::PCID
sourcepub unsafe fn write(frame: PhysFrame, flags: Cr3Flags)
pub unsafe fn write(frame: PhysFrame, flags: Cr3Flags)
Write a new P4 table address into the CR3 register.
Safety
Changing the level 4 page table is unsafe, because it’s possible to violate memory safety by changing the page mapping.
sourcepub unsafe fn write_pcid(frame: PhysFrame, pcid: Pcid)
pub unsafe fn write_pcid(frame: PhysFrame, pcid: Pcid)
Write a new P4 table address into the CR3 register.
Safety
Changing the level 4 page table is unsafe, because it’s possible to violate memory safety by
changing the page mapping.
Cr4Flags::PCID
must be set before calling this method.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Cr3
impl Send for Cr3
impl Sync for Cr3
impl Unpin for Cr3
impl UnwindSafe for Cr3
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more