pub struct VirtualMemoryManager {
memmap: Vec<VirtualMemoryMap>,
asid: u16,
page_tables: Vec<Arc<PageTable>>,
}
Fields§
§memmap: Vec<VirtualMemoryMap>
§asid: u16
§page_tables: Vec<Arc<PageTable>>
Implementations§
Source§impl VirtualMemoryManager
impl VirtualMemoryManager
Sourcepub fn get_asid(&self) -> u16
pub fn get_asid(&self) -> u16
Returns the ASID (Address Space ID) for the virtual memory manager.
§Returns
The ASID for the virtual memory manager.
pub fn get_memmap(&self) -> &Vec<VirtualMemoryMap>
Sourcepub fn add_memory_map(
&mut self,
map: VirtualMemoryMap,
) -> Result<(), &'static str>
pub fn add_memory_map( &mut self, map: VirtualMemoryMap, ) -> Result<(), &'static str>
Sourcepub fn get_memory_map(&self, idx: usize) -> Option<&VirtualMemoryMap>
pub fn get_memory_map(&self, idx: usize) -> Option<&VirtualMemoryMap>
Sourcepub fn remove_memory_map(&mut self, idx: usize) -> Option<VirtualMemoryMap>
pub fn remove_memory_map(&mut self, idx: usize) -> Option<VirtualMemoryMap>
Sourcepub fn remove_all_memory_maps(&mut self) -> Vec<VirtualMemoryMap>
pub fn remove_all_memory_maps(&mut self) -> Vec<VirtualMemoryMap>
Sourcepub fn restore_memory_maps(
&mut self,
maps: Vec<VirtualMemoryMap>,
) -> Result<(), &'static str>
pub fn restore_memory_maps( &mut self, maps: Vec<VirtualMemoryMap>, ) -> Result<(), &'static str>
Sourcepub fn search_memory_map(&self, vaddr: usize) -> Option<&VirtualMemoryMap>
pub fn search_memory_map(&self, vaddr: usize) -> Option<&VirtualMemoryMap>
Sourcepub fn search_memory_map_idx(&self, vaddr: usize) -> Option<usize>
pub fn search_memory_map_idx(&self, vaddr: usize) -> Option<usize>
Sourcepub fn add_page_table(&mut self, page_table: Arc<PageTable>)
pub fn add_page_table(&mut self, page_table: Arc<PageTable>)
Adds a page table to the virtual memory manager.
Sourcepub fn get_root_page_table(&self) -> Option<&mut PageTable>
pub fn get_root_page_table(&self) -> Option<&mut PageTable>
Returns the root page table for the current address space.
§Returns
The root page table for the current address space, if it exists.
Sourcepub fn translate_vaddr(&self, vaddr: usize) -> Option<usize>
pub fn translate_vaddr(&self, vaddr: usize) -> Option<usize>
Trait Implementations§
Source§impl Clone for VirtualMemoryManager
impl Clone for VirtualMemoryManager
Source§fn clone(&self) -> VirtualMemoryManager
fn clone(&self) -> VirtualMemoryManager
Returns a copy of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for VirtualMemoryManager
impl Debug for VirtualMemoryManager
Auto Trait Implementations§
impl Freeze for VirtualMemoryManager
impl RefUnwindSafe for VirtualMemoryManager
impl Send for VirtualMemoryManager
impl Sync for VirtualMemoryManager
impl Unpin for VirtualMemoryManager
impl UnwindSafe for VirtualMemoryManager
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)