[][src]Struct sunrise_bootstrap::paging::table::InactivePageTables

pub struct InactivePageTables {
    directory_physical_address: Frame,
}

A set of PageTables that are not the ones currently in use. We can't use recursive mapping to modify them, so instead we have to temporarily map the directory and tables to make changes to them.

Fields

directory_physical_address: Frame

Implementations

impl InactivePageTables[src]

pub fn new() -> InactivePageTables[src]

Creates a new set of inactive page tables

pub unsafe fn switch_to(self) -> InactivePageTables[src]

Switch to this page tables set. Returns the old active page tables set after the switch

Since all process are supposed to have the same view of kernelspace, this function will copy the part of the active directory that is mapping kernel space tables to the directory being switched to, and then performs the switch

Safety

All reference to userspace memory will be invalidated

The frame must have been alocated from the frame allocator.

pub fn delete(self)[src]

  • Frees the userspace pages mapped by this set.
  • Frees the userspace tables frames.
  • Frees directory's frame.

Does not free pages mapped in kernelspace and kernel space tables

Trait Implementations

impl Default for InactivePageTables[src]

impl I386PageTablesSet for InactivePageTables[src]

Auto Trait Implementations

impl RefUnwindSafe for InactivePageTables

impl Send for InactivePageTables

impl Sync for InactivePageTables

impl Unpin for InactivePageTables

impl UnwindSafe for InactivePageTables

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.