[−][src]Enum sunrise_kernel::paging::PageState
A hierarchical paging is composed of entries. An entry can be in the following states:
- Available, aka unused
- Present, which is used and has a backing physical address
- Guarded, which is reserved and will cause a pagefault on use.
PageState is generic over various kind of Present states, similar to the Option type.
Variants
Available, aka unused. Will page fault on use.
Guarded. Reserved and will cause a pagefault on use. Used to create guard pages (in KernelStack, etc.) in KernelLand, where the tracking of the type of each memory region is done directly in the page tables.
Present. Used and has a backing physical address.
Implementations
impl<T> PageState<T>
[src]
pub fn unwrap(self) -> T
[src]
Move the value T out of the PageState
Panics
Panics if the self value isn't Present.
pub fn map<U, F>(self, f: F) -> PageState<U> where
F: FnOnce(T) -> U,
[src]
F: FnOnce(T) -> U,
Maps a PageState
pub fn as_option(&self) -> Option<&T>
[src]
Turns the PageState into an Option, setting both Guarded and Available state to None, and Present(t) state to Some(t).
Trait Implementations
Auto Trait Implementations
impl<T> RefUnwindSafe for PageState<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for PageState<T> where
T: Send,
T: Send,
impl<T> Sync for PageState<T> where
T: Sync,
T: Sync,
impl<T> Unpin for PageState<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for PageState<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
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>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,