]> git.proxmox.com Git - rustc.git/blob - vendor/libc/src/lib.rs
New upstream version 1.44.1+dfsg1
[rustc.git] / vendor / libc / src / lib.rs
1 //! libc - Raw FFI bindings to platforms' system libraries
2 //!
3 //! [Documentation for other platforms][pd].
4 //!
5 //! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation
6 #![crate_name = "libc"]
7 #![crate_type = "rlib"]
8 // FIXME: Remove this and redundant_semicolon once renamed lint reaches stable.
9 #![allow(renamed_and_removed_lints)]
10 #![allow(
11 bad_style,
12 overflowing_literals,
13 improper_ctypes,
14 unknown_lints,
15 redundant_semicolon,
16 redundant_semicolons
17 )]
18 #![cfg_attr(libc_deny_warnings, deny(warnings))]
19 // Attributes needed when building as part of the standard library
20 #![cfg_attr(
21 feature = "rustc-dep-of-std",
22 feature(cfg_target_vendor, link_cfg, no_core)
23 )]
24 #![cfg_attr(libc_thread_local, feature(thread_local))]
25 // Enable extra lints:
26 #![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))]
27 #![deny(missing_copy_implementations, safe_packed_borrows)]
28 #![no_std]
29 #![cfg_attr(feature = "rustc-dep-of-std", no_core)]
30 #![cfg_attr(target_os = "redox", feature(static_nobundle))]
31 #![cfg_attr(libc_const_extern_fn, feature(const_extern_fn))]
32
33 #[macro_use]
34 mod macros;
35
36 cfg_if! {
37 if #[cfg(feature = "rustc-dep-of-std")] {
38 extern crate rustc_std_workspace_core as core;
39 #[allow(unused_imports)]
40 use core::iter;
41 #[allow(unused_imports)]
42 use core::option;
43 }
44 }
45
46 cfg_if! {
47 if #[cfg(libc_priv_mod_use)] {
48 #[cfg(libc_core_cvoid)]
49 #[allow(unused_imports)]
50 use core::ffi;
51 #[allow(unused_imports)]
52 use core::fmt;
53 #[allow(unused_imports)]
54 use core::hash;
55 #[allow(unused_imports)]
56 use core::num;
57 #[allow(unused_imports)]
58 use core::mem;
59 #[doc(hidden)]
60 #[allow(unused_imports)]
61 use core::clone::Clone;
62 #[doc(hidden)]
63 #[allow(unused_imports)]
64 use core::marker::Copy;
65 #[doc(hidden)]
66 #[allow(unused_imports)]
67 use core::option::Option;
68 } else {
69 #[doc(hidden)]
70 #[allow(unused_imports)]
71 pub use core::fmt;
72 #[doc(hidden)]
73 #[allow(unused_imports)]
74 pub use core::hash;
75 #[doc(hidden)]
76 #[allow(unused_imports)]
77 pub use core::num;
78 #[doc(hidden)]
79 #[allow(unused_imports)]
80 pub use core::mem;
81 #[doc(hidden)]
82 #[allow(unused_imports)]
83 pub use core::clone::Clone;
84 #[doc(hidden)]
85 #[allow(unused_imports)]
86 pub use core::marker::Copy;
87 #[doc(hidden)]
88 #[allow(unused_imports)]
89 pub use core::option::Option;
90 }
91 }
92
93 cfg_if! {
94 if #[cfg(windows)] {
95 mod fixed_width_ints;
96 pub use fixed_width_ints::*;
97
98 mod windows;
99 pub use windows::*;
100 } else if #[cfg(target_os = "cloudabi")] {
101 mod fixed_width_ints;
102 pub use fixed_width_ints::*;
103
104 mod cloudabi;
105 pub use cloudabi::*;
106 } else if #[cfg(target_os = "fuchsia")] {
107 mod fixed_width_ints;
108 pub use fixed_width_ints::*;
109
110 mod fuchsia;
111 pub use fuchsia::*;
112 } else if #[cfg(target_os = "switch")] {
113 mod fixed_width_ints;
114 pub use fixed_width_ints::*;
115
116 mod switch;
117 pub use switch::*;
118 } else if #[cfg(target_os = "vxworks")] {
119 mod fixed_width_ints;
120 pub use fixed_width_ints::*;
121
122 mod vxworks;
123 pub use vxworks::*;
124 } else if #[cfg(unix)] {
125 mod fixed_width_ints;
126 pub use fixed_width_ints::*;
127
128 mod unix;
129 pub use unix::*;
130 } else if #[cfg(target_os = "hermit")] {
131 mod fixed_width_ints;
132 pub use fixed_width_ints::*;
133
134 mod hermit;
135 pub use hermit::*;
136 } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] {
137 mod fixed_width_ints;
138 pub use fixed_width_ints::*;
139
140 mod sgx;
141 pub use sgx::*;
142 } else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] {
143 mod fixed_width_ints;
144 pub use fixed_width_ints::*;
145
146 mod wasi;
147 pub use wasi::*;
148 } else {
149 // non-supported targets: empty...
150 }
151 }