pub struct MemorySet {
page_table: PageTable,
areas: Vec<MapArea>,
}Fields§
§page_table: PageTable§areas: Vec<MapArea>Implementations§
Source§impl MemorySet
impl MemorySet
pub fn new_bare() -> Self
pub fn token(&self) -> usize
Sourcepub fn insert_framed_area(
&mut self,
start_va: VirtAddr,
end_va: VirtAddr,
permission: MapPermission,
)
pub fn insert_framed_area( &mut self, start_va: VirtAddr, end_va: VirtAddr, permission: MapPermission, )
Assume that no conflicts.
pub fn remove_area_with_start_vpn(&mut self, start_vpn: VirtPageNum)
fn push(&mut self, map_area: MapArea, data: Option<&[u8]>)
Sourcefn map_trampoline(&mut self)
fn map_trampoline(&mut self)
Mention that trampoline is not collected by areas.
Sourcepub fn new_kernel() -> Self
pub fn new_kernel() -> Self
Without kernel stacks.
Sourcepub fn from_elf(elf_data: &[u8]) -> (Self, usize, usize)
pub fn from_elf(elf_data: &[u8]) -> (Self, usize, usize)
Include sections in elf and trampoline, also returns user_sp_base and entry point.
pub fn from_existed_user(user_space: &MemorySet) -> MemorySet
pub fn activate(&self)
pub fn translate(&self, vpn: VirtPageNum) -> Option<PageTableEntry>
pub fn recycle_data_pages(&mut self)
Auto Trait Implementations§
impl Freeze for MemorySet
impl RefUnwindSafe for MemorySet
impl Send for MemorySet
impl Sync for MemorySet
impl Unpin for MemorySet
impl UnwindSafe for MemorySet
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more