Struct kernel::mem::segment::PageSegment
source · pub struct PageSegment {
page_range: PageRange,
frame_map: BTreeMap<PageNumber, Arc<FrameTracker>>,
map_type: MapType,
map_permission: MapPermission,
}
Expand description
The PageSegment
struct represents a consecutive range of pages,
which are mapped to frames in the same method (Identical
or Framed
)
and have the same permissions.
Fields§
§page_range: PageRange
§frame_map: BTreeMap<PageNumber, Arc<FrameTracker>>
§map_type: MapType
§map_permission: MapPermission
Implementations§
source§impl PageSegment
impl PageSegment
pub fn new( start_address: VirtualAddress, end_address: VirtualAddress, map_type: MapType, map_permission: MapPermission ) -> Self
pub fn start(&self) -> PageNumber
pub fn end(&self) -> PageNumber
pub fn page_range(&self) -> &PageRange
pub fn frame_map(&self) -> &BTreeMap<PageNumber, Arc<FrameTracker>>
pub fn frame_map_mut(&mut self) -> &mut BTreeMap<PageNumber, Arc<FrameTracker>>
sourcepub fn map_range(&mut self, page_table: &mut PageTable)
pub fn map_range(&mut self, page_table: &mut PageTable)
Maps the range of pages represented with page_range
to frames in the page_table
.
sourcepub fn unmap_range(&mut self, page_table: &mut PageTable)
pub fn unmap_range(&mut self, page_table: &mut PageTable)
Unmaps the range of pages represented with page_range
from frames in the page_table
.
sourcepub fn map_page(&mut self, page_table: &mut PageTable, page_number: PageNumber)
pub fn map_page(&mut self, page_table: &mut PageTable, page_number: PageNumber)
Maps a page with page_number
to a frame in the page_table
.
sourcepub fn unmap_page(
&mut self,
page_table: &mut PageTable,
page_number: PageNumber
)
pub fn unmap_page( &mut self, page_table: &mut PageTable, page_number: PageNumber )
Unmaps a page with page_number
from a frame in the page_table
.
sourcepub fn clone_bytes(&mut self, page_table: &mut PageTable, bytes: &[u8])
pub fn clone_bytes(&mut self, page_table: &mut PageTable, bytes: &[u8])
Writes bytes
to the pages represented with page_range
.
Trait Implementations§
source§impl Clone for PageSegment
impl Clone for PageSegment
source§fn clone(&self) -> PageSegment
fn clone(&self) -> PageSegment
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more