Struct memory::InitialMemoryMappings
source · pub struct InitialMemoryMappings {
pub page_table: PageTable,
pub text: NoDrop<MappedPages>,
pub rodata: NoDrop<MappedPages>,
pub data: NoDrop<MappedPages>,
pub stack_guard: AllocatedPages,
pub stack: NoDrop<MappedPages>,
pub boot_info: MappedPages,
pub identity: NoDrop<EarlyIdentityMappedPages>,
pub additional: NoDrop<MappedPages>,
}
Expand description
Information returned after initialising the memory subsystem.
Fields§
§page_table: PageTable
The currently active page table.
text: NoDrop<MappedPages>
The kernel’s .text
section mappings, which includes .init
.
rodata: NoDrop<MappedPages>
The kernel’s .rodata
section mappings.
data: NoDrop<MappedPages>
The kernel’s .data
section mappings/
stack_guard: AllocatedPages
The kernel stack’s guard page.
stack: NoDrop<MappedPages>
The kernel’s stack actual data page mappings.
boot_info: MappedPages
The boot information mappings.
identity: NoDrop<EarlyIdentityMappedPages>
The list of identity mappings that should be dropped before starting the first application.
Currently there are only 4 identity mappings, used for the base kernel image:
- the
.init
early text section, - the full
.text
section, - the
.rodata
section, which includes all read-only data, - the
.data
section, which includes.bss
and all read-write data.
additional: NoDrop<MappedPages>
The list of additional mappings that must be kept forever.
Currently, this contains only one mapping: the early VGA buffer.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for InitialMemoryMappings
impl Send for InitialMemoryMappings
impl Sync for InitialMemoryMappings
impl Unpin for InitialMemoryMappings
impl UnwindSafe for InitialMemoryMappings
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