[−][src]Struct sunrise_bootstrap::paging::InactivePageTables
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]
fn default() -> InactivePageTables
[src]
impl I386PageTablesSet for InactivePageTables
[src]
type PageDirectoryType = InactivePageDirectory
fn get_directory(&mut self) -> SmartHierarchicalTable<InactivePageDirectory>
[src]
Temporary map the directory
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]
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>,