pub struct AggregatedSectionMemoryBounds {
pub init: SectionMemoryBounds,
pub text: SectionMemoryBounds,
pub rodata: SectionMemoryBounds,
pub data: SectionMemoryBounds,
}
Expand description
The address bounds and flags of the initial kernel sections that need mapping.
Individual sections in the kernel’s ELF image are combined here according to their flags, as described below, but some are kept separate for the sake of correctness or ease of use.
It contains three main items, in which each item includes all sections that have identical flags:
- The
text
section bounds cover all sections that are executable. - The
rodata
section bounds cover those that are read-only (.rodata, .gcc_except_table, .eh_frame).- The
rodata
section also includes thread-local storage (TLS) areas (.tdata, .tbss) if they exist, because they can be mapped using the same page table flags.
- The
- The
data
section bounds cover those that are writable (.data, .bss).
Fields§
§init: SectionMemoryBounds
§text: SectionMemoryBounds
§rodata: SectionMemoryBounds
§data: SectionMemoryBounds
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for AggregatedSectionMemoryBounds
impl Send for AggregatedSectionMemoryBounds
impl Sync for AggregatedSectionMemoryBounds
impl Unpin for AggregatedSectionMemoryBounds
impl UnwindSafe for AggregatedSectionMemoryBounds
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