summaryrefslogtreecommitdiffstats
path: root/vendor/rustix/src/imp/linux_raw/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/src/imp/linux_raw/mod.rs')
-rw-r--r--vendor/rustix/src/imp/linux_raw/mod.rs68
1 files changed, 68 insertions, 0 deletions
diff --git a/vendor/rustix/src/imp/linux_raw/mod.rs b/vendor/rustix/src/imp/linux_raw/mod.rs
new file mode 100644
index 000000000..ed46eaad1
--- /dev/null
+++ b/vendor/rustix/src/imp/linux_raw/mod.rs
@@ -0,0 +1,68 @@
+//! The linux_raw backend.
+//!
+//! This makes Linux syscalls directly, without going through libc.
+//!
+//! # Safety
+//!
+//! These files performs raw system calls, and sometimes passes them
+//! uninitialized memory buffers. The signatures in this file are currently
+//! manually maintained and must correspond with the signatures of the actual
+//! Linux syscalls.
+//!
+//! Some of this could be auto-generated from the Linux header file
+//! <linux/syscalls.h>, but we often need more information than it provides,
+//! such as which pointers are array slices, out parameters, or in-out
+//! parameters, which integers are owned or borrowed file descriptors, etc.
+
+#[macro_use]
+mod arch;
+mod conv;
+mod elf;
+mod reg;
+#[cfg(any(feature = "time", target_arch = "x86"))]
+mod vdso;
+#[cfg(any(feature = "time", target_arch = "x86"))]
+mod vdso_wrappers;
+
+#[cfg(any(
+ feature = "param",
+ feature = "runtime",
+ feature = "time",
+ target_arch = "x86",
+))]
+pub(crate) mod param;
+// #[cfg(feature = "fs")] // TODO: Enable once `OwnedFd` moves out of the tree.
+pub(crate) mod fs;
+pub(crate) mod io;
+#[cfg(feature = "io_uring")]
+#[cfg_attr(doc_cfg, doc(cfg(feature = "io_uring")))]
+pub(crate) mod io_uring;
+#[cfg(any(feature = "mm", feature = "time", target_arch = "x86"))] // vdso.rs uses `madvise`
+pub(crate) mod mm;
+#[cfg(feature = "net")]
+pub(crate) mod net;
+pub(crate) mod process;
+#[cfg(feature = "rand")]
+pub(crate) mod rand;
+#[cfg(feature = "runtime")]
+pub(crate) mod runtime;
+#[cfg(feature = "termios")]
+pub(crate) mod termios;
+#[cfg(feature = "thread")]
+pub(crate) mod thread;
+pub(crate) mod time;
+
+#[cfg(feature = "std")]
+pub(crate) mod fd {
+ pub use io_lifetimes::*;
+ #[allow(unused_imports)]
+ pub(crate) use std::os::unix::io::RawFd as LibcFd;
+ pub use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd};
+}
+
+#[cfg(not(feature = "std"))]
+pub(crate) use crate::io::fd;
+
+// The linux_raw backend doesn't use actual libc, so we define selected
+// libc-like definitions in a module called `c`.
+pub(crate) mod c;