Skip to main content

Config

Struct Config 

Source
pub struct Config { /* private fields */ }
Available on crate feature full only.
Expand description

A Mapping builder, providing control over the way the underlying buffer is mapped.

Implementations§

Source§

impl Config

Source

pub fn map<R: Mappable + Default>( self, ) -> Result<Mapping<R, Kernel>, AllocError>

Creates a Mapping in the kernel address space.

The type parameter R is used to determine how the physical and virtual allocations are aligned, as well as some configuration values if left as default values. This can be used to require extra virtual memory to be allocated and left unmapped to act as a guard page. See the module level documentation for more information.

§Errors

Propagates an AllocError if the virtual or physical memory allocators have an allocation failure.

Source

pub fn map_in<'a, R: Mappable + Default + Send + 'static>( self, name: Cow<'static, str>, address_space: &'a AddressSpace, ) -> Result<MappingMeta<impl DerefMut<Target = Mapping<Box<dyn Mappable + Send>, Userspace>> + 'a>, AllocError>

Creates a Mapping in a user address space.

On success, returns a MappingMeta which allows access to the created mapping.

The type parameter R is used to determine how the physical and virtual allocations are aligned, as well as some configuration values if left as default values. This can be used to require extra virtual memory to be allocated and left unmapped to act as a guard page. See the module level documentation for more information.

§Errors

Propagates an AllocError if the virtual or physical memory allocators have an allocation failure.

Source

pub const fn new(page_count: NonZero<usize>, ty: Ty) -> Self

Constructs a new Config for creating a Mapping with size page_count number of pages.

The following defaults are used:

  • Any physical memory location, including discontiguous memory
  • Any virtual memory location
  • highmem used to allocate physical memory
  • Read-only
  • Inaccessible from userspace
  • Normal cache strategy

Any unspecified defaults are not guaranteed, and should be explicitly specified with the relevant methods if specific behaviour is required.

Source

pub const fn caching(self, caching: Caching) -> Self

Sets the caching method used for the mapping.

See Caching for more information.

Source

pub const fn protection( self, writable: bool, executable: bool, user_accessible: bool, ) -> Self

Sets the protection bits used when creating the mapping.

Source

pub fn with_allocator<const RAM_ONLY: bool>( self, allocator: impl Into<DynPmm<'static, RAM_ONLY>>, ) -> Self

Uses allocator to supply the physical memory for the mapping.

Source

pub const fn physical_location(self, at: RawFrame) -> Self

Requires the mapping to be at a specific physical address.

Source

pub const fn virtual_location(self, at: RawPage) -> Self

Requires the mapping to be at a specific virtual address.

Trait Implementations§

Source§

impl Debug for Config

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Config

§

impl RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnsafeUnpin for Config

§

impl UnwindSafe for Config

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
§

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.
§

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

Performs the conversion.