pub struct UserFault { /* private fields */ }Implementations§
Source§impl UserFault
impl UserFault
pub fn new(mm: Weak<MemoryManager>) -> Self
pub fn insert_pages<L>(
&self,
locked: &mut Locked<L>,
range: Range<UserAddress>,
value: bool,
)where
L: LockBefore<UserFaultInner>,
pub fn remove_pages<L>(
&self,
locked: &mut Locked<L>,
range: Range<UserAddress>,
) -> boolwhere
L: LockBefore<UserFaultInner>,
pub fn get_registered_pages_overlapping_range<L>(
&self,
locked: &mut Locked<L>,
range: Range<UserAddress>,
) -> Vec<Range<UserAddress>>where
L: LockBefore<UserFaultInner>,
pub fn contains_addr<L>(
&self,
locked: &mut Locked<L>,
addr: UserAddress,
) -> boolwhere
L: LockBefore<UserFaultInner>,
pub fn get_first_populated_page_after<L>(
&self,
locked: &mut Locked<L>,
addr: UserAddress,
) -> Option<UserAddress>where
L: LockBefore<UserFaultInner>,
pub fn is_initialized<L>(self: &Arc<Self>, locked: &mut Locked<L>) -> boolwhere
L: LockBefore<UserFaultInner>,
pub fn has_features<L>(
self: &Arc<Self>,
locked: &mut Locked<L>,
features: UserFaultFeatures,
) -> boolwhere
L: LockBefore<UserFaultInner>,
pub fn initialize<L>(
self: &Arc<Self>,
locked: &mut Locked<L>,
features: UserFaultFeatures,
)where
L: LockBefore<UserFaultInner>,
pub fn op_register<L>(
self: &Arc<Self>,
locked: &mut Locked<L>,
start: UserAddress,
len: u64,
mode: FaultRegisterMode,
) -> Result<SupportedUserFaultIoctls, Errno>where
L: LockBefore<UserFaultInner>,
pub fn op_unregister<L>(
self: &Arc<Self>,
locked: &mut Locked<L>,
start: UserAddress,
len: u64,
) -> Result<(), Errno>where
L: LockBefore<UserFaultInner>,
pub fn op_copy<L>(
self: &Arc<Self>,
locked: &mut Locked<L>,
mm_source: &MemoryManager,
source: UserAddress,
dest: UserAddress,
len: u64,
_mode: FaultCopyMode,
) -> Result<usize, Errno>where
L: LockBefore<UserFaultInner>,
pub fn op_zero<L>(
self: &Arc<Self>,
locked: &mut Locked<L>,
start: UserAddress,
len: u64,
_mode: FaultZeroMode,
) -> Result<usize, Errno>where
L: LockBefore<UserFaultInner>,
pub fn cleanup<L>(self: &Arc<Self>, locked: &mut Locked<L>)where
L: LockBefore<UserFaultInner>,
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for UserFault
impl !RefUnwindSafe for UserFault
impl Send for UserFault
impl Sync for UserFault
impl Unpin for UserFault
impl !UnwindSafe for UserFault
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
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
Converts the given service transport handle of type
T to [Self]Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T, U> MultiArchFrom<T> for Uwhere
U: From<T>,
impl<T, U> MultiArchFrom<T> for Uwhere
U: From<T>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T, U> TryIntoExt<U> for Twhere
U: TryFromExt<T>,
impl<T, U> TryIntoExt<U> for Twhere
U: TryFromExt<T>,
type Error = <U as TryFromExt<T>>::Error
§fn try_into_ext(self) -> Result<U, <T as TryIntoExt<U>>::Error>
fn try_into_ext(self) -> Result<U, <T as TryIntoExt<U>>::Error>
Tries to perform the conversion.