pub struct UffdPageSource { /* private fields */ }Expand description
Uffd-backed page source. Talks to a page-server on a UDS in the
upstream-Firecracker wire shape (see § 5.1).
Wire shape (squib’s; mirrors upstream’s userfaultfd request shape):
request: <u64 LE: ipa>
<u64 LE: page_size>
response: <u64 LE: ipa>
<u64 LE: page_size>
<bytes: page payload, length == page_size>The connection is parking_lot::Mutex-serialised so concurrent fault threads
can share one UDS without interleaving requests.
Implementations§
Source§impl UffdPageSource
impl UffdPageSource
Sourcepub fn connect(path: &Path) -> Result<Self, PageSourceError>
pub fn connect(path: &Path) -> Result<Self, PageSourceError>
Trait Implementations§
Source§impl Debug for UffdPageSource
impl Debug for UffdPageSource
Source§impl PageSource for UffdPageSource
impl PageSource for UffdPageSource
Source§fn fetch(&self, req: &PageRequest) -> Result<Bytes, PageSourceError>
fn fetch(&self, req: &PageRequest) -> Result<Bytes, PageSourceError>
Auto Trait Implementations§
impl !Freeze for UffdPageSource
impl !RefUnwindSafe for UffdPageSource
impl Send for UffdPageSource
impl Sync for UffdPageSource
impl Unpin for UffdPageSource
impl UnsafeUnpin for UffdPageSource
impl UnwindSafe for UffdPageSource
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