Struct x86_64::structures::paging::PageTableFlags[]

pub struct PageTableFlags { /* fields omitted */ }

Possible flags for a page table entry.

Methods

impl PageTableFlags

PRESENT: PageTableFlags = PageTableFlags{bits: 1 << 0,}

Specifies whether the mapped frame or page table is loaded in memory.

WRITABLE: PageTableFlags = PageTableFlags{bits: 1 << 1,}

Controls whether writes to the mapped frames are allowed.

If this bit is unset in a level 1 page table entry, the mapped frame is read-only. If this bit is unset in a higher level page table entry the complete range of mapped pages is read-only.

USER_ACCESSIBLE: PageTableFlags = PageTableFlags{bits: 1 << 2,}

Controls whether accesses from userspace (i.e. ring 3) are permitted.

WRITE_THROUGH: PageTableFlags = PageTableFlags{bits: 1 << 3,}

If this bit is set, a “write-through” policy is used for the cache, else a “write-back” policy is used.

NO_CACHE: PageTableFlags = PageTableFlags{bits: 1 << 4,}

Disables caching for the pointed entry is cacheable.

ACCESSED: PageTableFlags = PageTableFlags{bits: 1 << 5,}

Set by the CPU when the mapped frame or page table is accessed.

DIRTY: PageTableFlags = PageTableFlags{bits: 1 << 6,}

Set by the CPU on a write to the mapped frame.

HUGE_PAGE: PageTableFlags = PageTableFlags{bits: 1 << 7,}

Specifies that the entry maps a huge frame instead of a page table. Only allowed in P2 or P3 tables.

GLOBAL: PageTableFlags = PageTableFlags{bits: 1 << 8,}

Indicates that the mapping is present in all address spaces, so it isn't flushed from the TLB on an address space switch.

BIT_9: PageTableFlags = PageTableFlags{bits: 1 << 9,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_10: PageTableFlags = PageTableFlags{bits: 1 << 10,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_11: PageTableFlags = PageTableFlags{bits: 1 << 11,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_52: PageTableFlags = PageTableFlags{bits: 1 << 52,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_53: PageTableFlags = PageTableFlags{bits: 1 << 53,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_54: PageTableFlags = PageTableFlags{bits: 1 << 54,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_55: PageTableFlags = PageTableFlags{bits: 1 << 55,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_56: PageTableFlags = PageTableFlags{bits: 1 << 56,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_57: PageTableFlags = PageTableFlags{bits: 1 << 57,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_58: PageTableFlags = PageTableFlags{bits: 1 << 58,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_59: PageTableFlags = PageTableFlags{bits: 1 << 59,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_60: PageTableFlags = PageTableFlags{bits: 1 << 60,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_61: PageTableFlags = PageTableFlags{bits: 1 << 61,}

Available to the OS, can be used to store additional data, e.g. custom flags.

BIT_62: PageTableFlags = PageTableFlags{bits: 1 << 62,}

Available to the OS, can be used to store additional data, e.g. custom flags.

NO_EXECUTE: PageTableFlags = PageTableFlags{bits: 1 << 63,}

Forbid code execution from the mapped frames.

Can be only used when the no-execute page protection feature is enabled in the EFER register.

Returns an empty set of flags.

Returns the set containing all flags.

Returns the raw value of the flags currently stored.

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

Returns true if no flags are currently stored.

Returns true if all flags are currently set.

Returns true if there are flags common to both self and other.

Returns true all of the flags in other are contained within self.

Inserts the specified flags in-place.

Removes the specified flags in-place.

Toggles the specified flags in-place.

Inserts or removes the specified flags depending on the passed value.

Trait Implementations

impl Copy for PageTableFlags

impl PartialEq for PageTableFlags

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Eq for PageTableFlags

impl Clone for PageTableFlags

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl PartialOrd for PageTableFlags

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Ord for PageTableFlags

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

impl Hash for PageTableFlags

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

impl Debug for PageTableFlags

Formats the value using the given formatter. Read more

impl Binary for PageTableFlags

Formats the value using the given formatter.

impl Octal for PageTableFlags

Formats the value using the given formatter.

impl LowerHex for PageTableFlags

Formats the value using the given formatter.

impl UpperHex for PageTableFlags

Formats the value using the given formatter.

impl BitOr for PageTableFlags

The resulting type after applying the | operator.

Returns the union of the two sets of flags.

impl BitOrAssign for PageTableFlags

Adds the set of flags.

impl BitXor for PageTableFlags

The resulting type after applying the ^ operator.

Returns the left flags, but with all the right flags toggled.

impl BitXorAssign for PageTableFlags

Toggles the set of flags.

impl BitAnd for PageTableFlags

The resulting type after applying the & operator.

Returns the intersection between the two sets of flags.

impl BitAndAssign for PageTableFlags

Disables all flags disabled in the set.

impl Sub for PageTableFlags

The resulting type after applying the - operator.

Returns the set difference of the two sets of flags.

impl SubAssign for PageTableFlags

Disables all flags enabled in the set.

impl Not for PageTableFlags

The resulting type after applying the ! operator.

Returns the complement of this set of flags.

impl Extend<PageTableFlags> for PageTableFlags

Extends a collection with the contents of an iterator. Read more

impl FromIterator<PageTableFlags> for PageTableFlags

Creates a value from an iterator. Read more

Auto Trait Implementations