Struct axmm::AddrSpace

source ·
pub struct AddrSpace { /* private fields */ }
Expand description

The virtual memory address space.

Implementations§

source§

impl AddrSpace

source

pub const fn base(&self) -> VirtAddr

Returns the address space base.

source

pub const fn end(&self) -> VirtAddr

Returns the address space end.

source

pub fn size(&self) -> usize

Returns the address space size.

source

pub const fn page_table(&self) -> &PageTable

Returns the reference to the inner page table.

source

pub const fn page_table_root(&self) -> PhysAddr

Returns the root physical address of the inner page table.

source

pub fn contains_range(&self, start: VirtAddr, size: usize) -> bool

Checks if the address space contains the given address range.

source

pub fn map_linear( &mut self, start_vaddr: VirtAddr, start_paddr: PhysAddr, size: usize, flags: MappingFlags ) -> AxResult

Add a new linear mapping.

The mapping is linear, i.e., start_vaddr is mapped to start_paddr, and start_vaddr + size is mapped to start_paddr + size.

The flags parameter indicates the mapping permissions and attributes.

Returns an error if the address range is out of the address space or not aligned.

source

pub fn unmap(&mut self, start: VirtAddr, size: usize) -> AxResult

Removes mappings within the specified virtual address range.

Returns an error if the address range is out of the address space or not aligned.

source

pub fn protect( &mut self, start: VirtAddr, size: usize, flags: MappingFlags ) -> AxResult

Updates mapping within the specified virtual address range.

Returns an error if the address range is out of the address space or not aligned.

Trait Implementations§

source§

impl Debug for AddrSpace

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.