[−][src]Struct sunrise_kernel::paging::arch::i386::table::InactiveHierarchy
A currently inactive hierarchy of directory and tables.
Can be read and modified by temporarily mapping its InactivePageDirectory.
Fields
directory_physical_address: PhysicalAddress
The address we must put in cr3 to switch to these pages.
Trait Implementations
impl Debug for InactiveHierarchy
[src]
impl Drop for InactiveHierarchy
[src]
fn drop(&mut self)
[src]
When a process dies, its InactiveHierarchy is dropped. The pages themselves have already been freed by the bookkeeping, we just have to free the tables and the directory of this hierarchy.
However we must free only the tables that map UserLand memory, as the ones mapping KernelLand are shared with other processes and are still in use.
impl InactiveHierarchyTrait for InactiveHierarchy
[src]
fn new() -> Self
[src]
fn switch_to(&mut self)
[src]
fn copy_active_kernel_space(&mut self)
[src]
fn is_currently_active(&self) -> bool
[src]
unsafe fn from_currently_active() -> Self
[src]
impl TableHierarchy for InactiveHierarchy
[src]
type TopLevelTableType = InactivePageDirectory
The type of the top level table.
fn get_top_level_table(
&mut self
) -> SmartHierarchicalTable<InactivePageDirectory>
[src]
&mut self
) -> SmartHierarchicalTable<InactivePageDirectory>
Gets the InactivePageDirectory by temporarily mapping it.
fn map_to_from_iterator<I>(
&mut self,
frames_iterator: I,
start_address: VirtualAddress,
flags: MappingAccessRights
) where
I: Iterator<Item = PhysicalAddress>,
[src]
&mut self,
frames_iterator: I,
start_address: VirtualAddress,
flags: MappingAccessRights
) where
I: Iterator<Item = PhysicalAddress>,
fn guard(&mut self, address: VirtualAddress, length: usize)
[src]
fn unmap<C>(&mut self, address: VirtualAddress, length: usize, callback: C) where
C: FnMut(PhysicalAddress),
[src]
C: FnMut(PhysicalAddress),
fn for_every_entry<C>(
&mut self,
address: VirtualAddress,
length: usize,
callback: C
) where
C: FnMut(PageState<PhysicalAddress>, usize),
[src]
&mut self,
address: VirtualAddress,
length: usize,
callback: C
) where
C: FnMut(PageState<PhysicalAddress>, usize),
fn find_available_virtual_space_aligned(
&mut self,
length: usize,
start_addr: VirtualAddress,
end_addr: VirtualAddress,
alignment: usize
) -> Option<VirtualAddress>
[src]
&mut self,
length: usize,
start_addr: VirtualAddress,
end_addr: VirtualAddress,
alignment: usize
) -> Option<VirtualAddress>
Auto Trait Implementations
impl RefUnwindSafe for InactiveHierarchy
impl Send for InactiveHierarchy
impl Sync for InactiveHierarchy
impl Unpin for InactiveHierarchy
impl UnwindSafe for InactiveHierarchy
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>,