pub struct SwapInContext<'a> {
    ctx: &'a Mutex<PageHandleContext<'a>>,
    cur_staging: usize,
}
Expand description

Context for swap-in operation.

This holds cursor of indices in the regions for each step for optimization.

Fields§

§ctx: &'a Mutex<PageHandleContext<'a>>§cur_staging: usize

Implementations§

source§

impl SwapInContext<'_>

source

pub fn swap_in(&mut self, uffd: &Userfaultfd, max_size: usize) -> Result<usize>

Swap in a chunk of consecutive pages from the staging memory and the swap file.

If there is no more pages present outside of the guest memory, this returns Ok(0).

Returns the count of swapped in pages.

§Arguments
  • uffd - the main Userfaultfd.
  • max_size - the upper limit of the chunk size to swap into the guest memory at once. The chunk is splitted if it is bigger than max_size.

Trait Implementations§

source§

impl Drop for SwapInContext<'_>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for SwapInContext<'a>

§

impl<'a> Send for SwapInContext<'a>

§

impl<'a> Sync for SwapInContext<'a>

§

impl<'a> Unpin for SwapInContext<'a>

§

impl<'a> UnwindSafe for SwapInContext<'a>

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.