aboutsummaryrefslogtreecommitdiff
path: root/vendor/rustix/src/mm/userfaultfd.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/src/mm/userfaultfd.rs')
-rw-r--r--vendor/rustix/src/mm/userfaultfd.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/vendor/rustix/src/mm/userfaultfd.rs b/vendor/rustix/src/mm/userfaultfd.rs
new file mode 100644
index 0000000..201d547
--- /dev/null
+++ b/vendor/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)
+}