summaryrefslogtreecommitdiff
path: root/src/param/init.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/param/init.rs')
-rw-r--r--src/param/init.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/param/init.rs b/src/param/init.rs
new file mode 100644
index 0000000..09d7c96
--- /dev/null
+++ b/src/param/init.rs
@@ -0,0 +1,23 @@
+//! rustix's `init` function.
+//!
+//! # Safety
+//!
+//! When "use-explicitly-provided-auxv" is enabled, the `init` function must be
+//! called before any other function in this module. It is unsafe because it
+//! operates on raw pointers.
+#![allow(unsafe_code)]
+
+use crate::backend;
+
+/// Initialize process-wide state.
+///
+/// # Safety
+///
+/// This must be passed a pointer to the original environment variable block
+/// set up by the OS at process startup, and it must be called before any
+/// other rustix functions are called.
+#[inline]
+#[doc(hidden)]
+pub unsafe fn init(envp: *mut *mut u8) {
+ backend::param::auxv::init(envp)
+}