diff options
Diffstat (limited to 'third_party/rust/rustix/src/mm/userfaultfd.rs')
-rw-r--r-- | third_party/rust/rustix/src/mm/userfaultfd.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/third_party/rust/rustix/src/mm/userfaultfd.rs b/third_party/rust/rustix/src/mm/userfaultfd.rs new file mode 100644 index 0000000000..201d54772d --- /dev/null +++ b/third_party/rust/rustix/src/mm/userfaultfd.rs @@ -0,0 +1,30 @@ +//! The Linux `userfaultfd` API. +//! +//! # Safety +//! +//! Calling `userfaultfd` is safe, but the returned file descriptor lets users +//! observe and manipulate process memory in magical ways. +#![allow(unsafe_code)] + +use crate::fd::OwnedFd; +use crate::{backend, io}; + +pub use backend::mm::types::UserfaultfdFlags; + +/// `userfaultfd(flags)` +/// +/// # Safety +/// +/// The call itself is safe, but the returned file descriptor lets users +/// observe and manipulate process memory in magical ways. +/// +/// # References +/// - [Linux] +/// - [Linux userfaultfd] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/userfaultfd.2.html +/// [Linux userfaultfd]: https://www.kernel.org/doc/Documentation/vm/userfaultfd.txt +#[inline] +pub unsafe fn userfaultfd(flags: UserfaultfdFlags) -> io::Result<OwnedFd> { + backend::mm::syscalls::userfaultfd(flags) +} |