| //! OS-specific functionality. | |
| #![stable(feature = "os", since = "1.0.0")] | |
| #![allow(missing_docs, nonstandard_style, missing_debug_implementations)] | |
| #![allow(unsafe_op_in_unsafe_fn)] | |
| pub mod raw; | |
| // # Important platforms | |
| // We always want to show documentation for the most important platforms, | |
| // so these are handled specially here. | |
| // | |
| // FIXME: On certain platforms compilation errors (due to empty `libc`), | |
| // prevent this, so we substitute an unstable empty module. | |
| #[cfg(doc)] | |
| cfg_select! { | |
| any( | |
| all(target_arch = "wasm32", not(target_os = "wasi")), | |
| all(target_vendor = "fortanix", target_env = "sgx") | |
| ) => { | |
| #[unstable(issue = "none", feature = "std_internals")] | |
| pub mod darwin {} | |
| #[unstable(issue = "none", feature = "std_internals")] | |
| pub mod unix {} | |
| #[unstable(issue = "none", feature = "std_internals")] | |
| pub mod linux {} | |
| #[unstable(issue = "none", feature = "std_internals")] | |
| pub mod wasi {} | |
| #[unstable(issue = "none", feature = "std_internals")] | |
| pub mod windows {} | |
| } | |
| _ => { | |
| // important platforms | |
| pub mod darwin; | |
| pub mod linux; | |
| pub mod unix; | |
| pub mod wasi; | |
| pub mod wasip2; | |
| pub mod windows; | |
| } | |
| } | |
| #[cfg(not(doc))] // to prevent double module declarations | |
| cfg_select! { | |
| target_family = "unix" => { | |
| pub mod unix; | |
| #[cfg(target_vendor = "apple")] | |
| pub mod darwin; | |
| #[cfg(target_os = "linux")] | |
| pub mod linux; | |
| } | |
| target_family = "wasm" => { | |
| #[cfg(any(target_env = "p1", target_env = "p2", target_env = "p3"))] | |
| pub mod wasi; | |
| #[cfg(target_env = "p2")] | |
| pub mod wasip2; | |
| } | |
| target_family = "windows" => { | |
| pub mod windows; | |
| } | |
| _ => { /* handled below */ } | |
| } | |
| // # Special modules | |
| #[cfg(any( | |
| unix, | |
| target_os = "hermit", | |
| target_os = "trusty", | |
| target_os = "wasi", | |
| target_os = "motor", | |
| doc | |
| ))] | |
| pub mod fd; | |
| #[cfg(any(target_os = "linux", target_os = "android", target_os = "cygwin", doc))] | |
| mod net; | |
| // # Ordinary platforms | |
| // `cfg(doc)` not handled specially | |
| #[cfg(target_os = "aix")] | |
| pub mod aix; | |
| #[cfg(target_os = "android")] | |
| pub mod android; | |
| #[cfg(target_os = "cygwin")] | |
| pub mod cygwin; | |
| #[cfg(target_os = "dragonfly")] | |
| pub mod dragonfly; | |
| #[cfg(target_os = "emscripten")] | |
| pub mod emscripten; | |
| #[cfg(target_os = "espidf")] | |
| pub mod espidf; | |
| #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] | |
| pub mod fortanix_sgx; | |
| #[cfg(target_os = "freebsd")] | |
| pub mod freebsd; | |
| #[cfg(target_os = "fuchsia")] | |
| pub mod fuchsia; | |
| #[cfg(target_os = "haiku")] | |
| pub mod haiku; | |
| #[cfg(target_os = "hermit")] | |
| pub mod hermit; | |
| #[cfg(target_os = "horizon")] | |
| pub mod horizon; | |
| #[cfg(target_os = "hurd")] | |
| pub mod hurd; | |
| #[cfg(target_os = "illumos")] | |
| pub mod illumos; | |
| #[cfg(target_os = "ios")] | |
| pub mod ios; | |
| #[cfg(target_os = "l4re")] | |
| pub mod l4re; | |
| #[cfg(target_os = "macos")] | |
| pub mod macos; | |
| #[cfg(target_os = "motor")] | |
| pub mod motor; | |
| #[cfg(target_os = "netbsd")] | |
| pub mod netbsd; | |
| #[cfg(any(target_os = "nto", target_os = "qnx"))] | |
| pub mod nto; | |
| #[cfg(target_os = "nuttx")] | |
| pub mod nuttx; | |
| #[cfg(target_os = "openbsd")] | |
| pub mod openbsd; | |
| #[cfg(target_os = "redox")] | |
| pub mod redox; | |
| #[cfg(target_os = "rtems")] | |
| pub mod rtems; | |
| #[cfg(target_os = "solaris")] | |
| pub mod solaris; | |
| #[cfg(target_os = "solid_asp3")] | |
| pub mod solid; | |
| #[cfg(target_os = "trusty")] | |
| pub mod trusty; | |
| #[cfg(target_os = "uefi")] | |
| pub mod uefi; | |
| #[cfg(target_os = "vita")] | |
| pub mod vita; | |
| #[cfg(target_os = "vxworks")] | |
| pub mod vxworks; | |
| #[cfg(target_os = "xous")] | |
| pub mod xous; |