FileBackedLoader

Struct FileBackedLoader 

Source
pub struct FileBackedLoader {}
Expand description

A loader for file-backed memory regions.

FileBackedLoader is used for memory mappings backed by files, such as when mmap is called with a regular file. This loader reads data from the underlying file starting at a specific offset and returns it in a newly allocated Page.

The offset within the file is determined based on the virtual address passed to load, relative to the mapping’s start address and offset.

This loader handles partial page reads and fills any unread bytes with zeroes.

Trait Implementations§

Source§

impl MmLoader for FileBackedLoader

Source§

fn load(&self, addr: Va) -> Page

Loads a page from the file based on the given virtual address.

This implementation calculates the offset within the file and reads up to one page of data into memory. If the read returns fewer than PAGE_SIZE bytes, the remainder of the page is zero-filled.

Auto Trait Implementations§

§

impl Freeze for FileBackedLoader

§

impl RefUnwindSafe for FileBackedLoader

§

impl Send for FileBackedLoader

§

impl Sync for FileBackedLoader

§

impl Unpin for FileBackedLoader

§

impl UnwindSafe for FileBackedLoader

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 = Infallible

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

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

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.