Struct rstubs::arch::regs::Cr3

source ·
#[repr(transparent)]
pub struct Cr3(u32);
Expand description

Contains the physical address of the base of the paging-structure hierarchy and two flags (PCD and PWT).

The PCD and PWT flags control caching of that paging structure in the processor’s internal data caches (they do not control TLB caching of page-directory information).

Tuple Fields§

§0: u32

Implementations§

source§

impl Cr3

source

pub const fn new() -> Self

Creates a new default initialized bitfield.

source

pub const fn from_bits(bits: u32) -> Self

Convert from bits.

source

pub const fn into_bits(self) -> u32

Convert into bits.

source

const WRITE_THROUGH_BITS: usize = 1usize

source

const WRITE_THROUGH_OFFSET: usize = 3usize

source

pub const fn write_through(&self) -> bool

Page-level write-through.

Bits: 3..4

source

pub const fn with_write_through(self, value: bool) -> Self

Page-level write-through.

Bits: 3..4

source

pub fn set_write_through(&mut self, value: bool)

Page-level write-through.

Bits: 3..4

source

const CACHE_DISABLE_BITS: usize = 1usize

source

const CACHE_DISABLE_OFFSET: usize = 4usize

source

pub const fn cache_disable(&self) -> bool

Page-level cache disable.

Bits: 4..5

source

pub const fn with_cache_disable(self, value: bool) -> Self

Page-level cache disable.

Bits: 4..5

source

pub fn set_cache_disable(&mut self, value: bool)

Page-level cache disable.

Bits: 4..5

source

const ADDRESS_BITS: usize = 20usize

source

const ADDRESS_OFFSET: usize = 12usize

source

pub const fn address(&self) -> Physical

Physical address of the page directory. The lower 12 bits of the address are assumed to be 0. The page directory must thus be aligned to a page (4K) boundary.

Bits: 12..32

source

pub const fn with_address(self, value: Physical) -> Self

Physical address of the page directory. The lower 12 bits of the address are assumed to be 0. The page directory must thus be aligned to a page (4K) boundary.

Bits: 12..32

source

pub fn set_address(&mut self, value: Physical)

Physical address of the page directory. The lower 12 bits of the address are assumed to be 0. The page directory must thus be aligned to a page (4K) boundary.

Bits: 12..32

source§

impl Cr3

source

pub fn read() -> Self

source

pub unsafe fn write(self)

Trait Implementations§

source§

impl Clone for Cr3

source§

fn clone(&self) -> Cr3

Returns a copy of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Cr3

source§

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

Formats the value using the given formatter. Read more
source§

impl Default for Cr3

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<Cr3> for u32

source§

fn from(v: Cr3) -> u32

Converts to this type from the input type.
source§

impl From<u32> for Cr3

source§

fn from(v: u32) -> Self

Converts to this type from the input type.
source§

impl Copy for Cr3

Auto Trait Implementations§

§

impl Freeze for Cr3

§

impl RefUnwindSafe for Cr3

§

impl Send for Cr3

§

impl Sync for Cr3

§

impl Unpin for Cr3

§

impl UnwindSafe for Cr3

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.