[−][src]Enum sunrise_kernel::paging::process_memory::DynamicHierarchy
Page tables selector.
A process always stores its table_hierarchy as an inactive hierarchy. When it wants to modify
its page tables, it will first call get_hierarchy
, which will detect if the hierarchy
is already the currently active one, and return a DynamicHierarchy
.
This returned DynamicHierarchy
is just a wrapper which will dispatch all its calls to the right
hierarchy, either the already active one, shortcutting the method calls by not having to map
temporary directories and page tables, or going the long way and actually use the inactive one.
Variants
Active(ActiveHierarchy)
The process's hierarchy is already the currently active one.
Inactive(&'a mut InactiveHierarchy)
The process's hierarchy an inactive one.
Trait Implementations
impl<'b> TableHierarchy for DynamicHierarchy<'b>
[src]
type TopLevelTableType = ()
The type of the top level table.
fn get_top_level_table(&mut self) -> SmartHierarchicalTable<()>
[src]
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<'a> RefUnwindSafe for DynamicHierarchy<'a>
impl<'a> Send for DynamicHierarchy<'a>
impl<'a> Sync for DynamicHierarchy<'a>
impl<'a> Unpin for DynamicHierarchy<'a>
impl<'a> !UnwindSafe for DynamicHierarchy<'a>
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>,