summaryrefslogtreecommitdiff
path: root/libc/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'libc/src/lib.rs')
-rw-r--r--libc/src/lib.rs243
1 files changed, 80 insertions, 163 deletions
diff --git a/libc/src/lib.rs b/libc/src/lib.rs
index 03e7804..baf6324 100644
--- a/libc/src/lib.rs
+++ b/libc/src/lib.rs
@@ -7,180 +7,91 @@
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
-
-//! Crate docs
-
-#![allow(bad_style, overflowing_literals, improper_ctypes)]
-#![crate_type = "rlib"]
+//! libc - Raw FFI bindings to platforms' system libraries
+//!
+//! [Documentation for other platforms][pd].
+//!
+//! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation
#![crate_name = "libc"]
-#![cfg_attr(cross_platform_docs, feature(no_core, lang_items, const_fn))]
-#![cfg_attr(cross_platform_docs, no_core)]
-#![doc(
- html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
- html_favicon_url = "https://doc.rust-lang.org/favicon.ico"
-)]
-#![cfg_attr(
- all(target_os = "linux", target_arch = "x86_64"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-unknown-linux-gnu"
- )
-)]
-#![cfg_attr(
- all(target_os = "linux", target_arch = "x86"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/i686-unknown-linux-gnu"
- )
-)]
-#![cfg_attr(
- all(target_os = "linux", target_arch = "arm"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/arm-unknown-linux-gnueabihf"
- )
-)]
-#![cfg_attr(
- all(target_os = "linux", target_arch = "mips"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/mips-unknown-linux-gnu"
- )
-)]
-#![cfg_attr(
- all(target_os = "linux", target_arch = "aarch64"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/aarch64-unknown-linux-gnu"
- )
-)]
-#![cfg_attr(
- all(target_os = "linux", target_env = "musl"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-unknown-linux-musl"
- )
-)]
-#![cfg_attr(
- all(target_os = "macos", target_arch = "x86_64"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-apple-darwin"
- )
-)]
-#![cfg_attr(
- all(target_os = "macos", target_arch = "x86"),
- doc(html_root_url = "https://rust-lang.github.io/libc/i686-apple-darwin")
-)]
-#![cfg_attr(
- all(windows, target_arch = "x86_64", target_env = "gnu"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-pc-windows-gnu"
- )
-)]
-#![cfg_attr(
- all(windows, target_arch = "x86", target_env = "gnu"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/i686-pc-windows-gnu"
- )
-)]
-#![cfg_attr(
- all(windows, target_arch = "x86_64", target_env = "msvc"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-pc-windows-msvc"
- )
-)]
-#![cfg_attr(
- all(windows, target_arch = "x86", target_env = "msvc"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/i686-pc-windows-msvc"
- )
-)]
-#![cfg_attr(
- target_os = "android",
- doc(
- html_root_url = "https://rust-lang.github.io/libc/arm-linux-androideabi"
- )
-)]
-#![cfg_attr(
- target_os = "freebsd",
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-unknown-freebsd"
- )
-)]
-#![cfg_attr(
- target_os = "openbsd",
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-unknown-openbsd"
- )
-)]
-#![cfg_attr(
- target_os = "bitrig",
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-unknown-bitrig"
- )
-)]
-#![cfg_attr(
- target_os = "netbsd",
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-unknown-netbsd"
- )
-)]
-#![cfg_attr(
- target_os = "dragonfly",
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-unknown-dragonfly"
- )
-)]
-#![cfg_attr(
- target_os = "solaris",
- doc(
- html_root_url = "https://rust-lang.github.io/libc/x86_64-sun-solaris"
- )
-)]
-#![cfg_attr(
- all(target_os = "emscripten", target_arch = "asmjs"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/asmjs-unknown-emscripten"
- )
-)]
-#![cfg_attr(
- all(target_os = "emscripten", target_arch = "wasm32"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/wasm32-unknown-emscripten"
- )
-)]
+#![crate_type = "rlib"]
+#![cfg_attr(not(feature = "rustc-dep-of-std"), deny(warnings))]
+#![allow(bad_style, overflowing_literals, improper_ctypes, unknown_lints)]
+// Attributes needed when building as part of the standard library
#![cfg_attr(
- all(target_os = "linux", target_arch = "sparc64"),
- doc(
- html_root_url = "https://rust-lang.github.io/libc/sparc64-unknown-linux-gnu"
- )
+ feature = "rustc-dep-of-std",
+ feature(cfg_target_vendor, link_cfg, no_core)
)]
-// Attributes needed when building as part of the standard library
-#![cfg_attr(feature = "rustc-dep-of-std", feature(cfg_target_vendor))]
-#![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, repr_packed))]
-#![cfg_attr(feature = "rustc-dep-of-std", feature(no_core))]
+// Enable extra lints:
+#![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))]
+#![deny(missing_copy_implementations, safe_packed_borrows)]
+#![no_std]
#![cfg_attr(feature = "rustc-dep-of-std", no_core)]
-#![cfg_attr(feature = "rustc-dep-of-std", allow(warnings))]
-#![cfg_attr(not(any(feature = "use_std", feature = "rustc-dep-of-std")), no_std)]
-
-#[cfg(all(not(cross_platform_docs), feature = "use_std"))]
-extern crate std as core;
-
-#[cfg(feature = "rustc-dep-of-std")]
-extern crate rustc_std_workspace_core as core;
-#[cfg(feature = "rustc-dep-of-std")]
-#[allow(unused_imports)]
-use core::iter;
-#[cfg(feature = "rustc-dep-of-std")]
-#[allow(unused_imports)]
-use core::option;
+#![cfg_attr(target_os = "redox", feature(static_nobundle))]
#[macro_use]
mod macros;
-mod dox;
+cfg_if! {
+ if #[cfg(feature = "rustc-dep-of-std")] {
+ extern crate rustc_std_workspace_core as core;
+ #[allow(unused_imports)]
+ use core::iter;
+ #[allow(unused_imports)]
+ use core::option;
+ }
+}
+
+cfg_if! {
+ if #[cfg(libc_priv_mod_use)] {
+ #[cfg(libc_core_cvoid)]
+ #[allow(unused_imports)]
+ use core::ffi;
+ #[allow(unused_imports)]
+ use core::fmt;
+ #[allow(unused_imports)]
+ use core::hash;
+ #[allow(unused_imports)]
+ use core::num;
+ #[allow(unused_imports)]
+ use core::mem;
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ use core::clone::Clone;
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ use core::marker::Copy;
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ use core::option::Option;
+ } else {
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ pub use core::fmt;
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ pub use core::hash;
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ pub use core::num;
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ pub use core::mem;
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ pub use core::clone::Clone;
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ pub use core::marker::Copy;
+ #[doc(hidden)]
+ #[allow(unused_imports)]
+ pub use core::option::Option;
+ }
+}
cfg_if! {
if #[cfg(windows)] {
mod windows;
pub use windows::*;
- } else if #[cfg(target_os = "redox")] {
- mod redox;
- pub use redox::*;
} else if #[cfg(target_os = "cloudabi")] {
mod cloudabi;
pub use cloudabi::*;
@@ -193,10 +104,16 @@ cfg_if! {
} else if #[cfg(unix)] {
mod unix;
pub use unix::*;
- } else if #[cfg(target_env = "sgx")] {
+ } else if #[cfg(target_os = "hermit")] {
+ mod hermit;
+ pub use hermit::*;
+ } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] {
mod sgx;
pub use sgx::*;
- } else {
+ } else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] {
+ mod wasi;
+ pub use wasi::*;
+ } else {
// non-supported targets: empty...
}
}