1//! Mostly platform-specific functionality
2#[cfg(any(
3 target_os = "dragonfly",
4 target_os = "freebsd",
5 target_os = "ios",
6 all(target_os = "linux", not(target_env = "uclibc")),
7 target_os = "macos",
8 target_os = "netbsd"
9))]
10feature! {
11 #![feature = "aio"]
12 pub mod aio;
13}
14
15feature! {
16 #![feature = "event"]
17
18 #[cfg(any(target_os = "android", target_os = "linux"))]
19 #[allow(missing_docs)]
20 pub mod epoll;
21
22 #[cfg(any(target_os = "dragonfly",
23 target_os = "freebsd",
24 target_os = "ios",
25 target_os = "macos",
26 target_os = "netbsd",
27 target_os = "openbsd"))]
28 #[allow(missing_docs)]
29 pub mod event;
30
31 #[cfg(any(target_os = "android", target_os = "linux"))]
32 #[allow(missing_docs)]
33 pub mod eventfd;
34}
35
36#[cfg(any(
37 target_os = "android",
38 target_os = "dragonfly",
39 target_os = "freebsd",
40 target_os = "ios",
41 target_os = "linux",
42 target_os = "redox",
43 target_os = "macos",
44 target_os = "netbsd",
45 target_os = "illumos",
46 target_os = "openbsd"
47))]
48#[cfg(feature = "ioctl")]
49#[cfg_attr(docsrs, doc(cfg(feature = "ioctl")))]
50#[macro_use]
51pub mod ioctl;
52
53#[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))]
54feature! {
55 #![feature = "fs"]
56 pub mod memfd;
57}
58
59#[cfg(not(target_os = "redox"))]
60feature! {
61 #![feature = "mman"]
62 pub mod mman;
63}
64
65#[cfg(target_os = "linux")]
66feature! {
67 #![feature = "personality"]
68 pub mod personality;
69}
70
71feature! {
72 #![feature = "pthread"]
73 pub mod pthread;
74}
75
76#[cfg(any(
77 target_os = "android",
78 target_os = "dragonfly",
79 target_os = "freebsd",
80 target_os = "linux",
81 target_os = "macos",
82 target_os = "netbsd",
83 target_os = "openbsd"
84))]
85feature! {
86 #![feature = "ptrace"]
87 #[allow(missing_docs)]
88 pub mod ptrace;
89}
90
91#[cfg(target_os = "linux")]
92feature! {
93 #![feature = "quota"]
94 pub mod quota;
95}
96
97#[cfg(target_os = "linux")]
98feature! {
99 #![feature = "reboot"]
100 pub mod reboot;
101}
102
103#[cfg(not(any(
104 target_os = "redox",
105 target_os = "fuchsia",
106 target_os = "illumos",
107 target_os = "haiku"
108)))]
109feature! {
110 #![feature = "resource"]
111 pub mod resource;
112}
113
114#[cfg(not(target_os = "redox"))]
115feature! {
116 #![feature = "poll"]
117 pub mod select;
118}
119
120#[cfg(any(
121 target_os = "android",
122 target_os = "dragonfly",
123 target_os = "freebsd",
124 target_os = "ios",
125 target_os = "linux",
126 target_os = "macos"
127))]
128feature! {
129 #![feature = "zerocopy"]
130 pub mod sendfile;
131}
132
133pub mod signal;
134
135#[cfg(any(target_os = "android", target_os = "linux"))]
136feature! {
137 #![feature = "signal"]
138 #[allow(missing_docs)]
139 pub mod signalfd;
140}
141
142#[cfg(not(target_os = "redox"))]
143feature! {
144 #![feature = "socket"]
145 #[allow(missing_docs)]
146 pub mod socket;
147}
148
149feature! {
150 #![feature = "fs"]
151 #[allow(missing_docs)]
152 pub mod stat;
153}
154
155#[cfg(any(
156 target_os = "android",
157 target_os = "dragonfly",
158 target_os = "freebsd",
159 target_os = "ios",
160 target_os = "linux",
161 target_os = "macos",
162 target_os = "openbsd"
163))]
164feature! {
165 #![feature = "fs"]
166 pub mod statfs;
167}
168
169feature! {
170 #![feature = "fs"]
171 pub mod statvfs;
172}
173
174#[cfg(any(target_os = "android", target_os = "linux"))]
175#[cfg_attr(docsrs, doc(cfg(all())))]
176#[allow(missing_docs)]
177pub mod sysinfo;
178
179feature! {
180 #![feature = "term"]
181 #[allow(missing_docs)]
182 pub mod termios;
183}
184
185#[allow(missing_docs)]
186pub mod time;
187
188feature! {
189 #![feature = "uio"]
190 pub mod uio;
191}
192
193feature! {
194 #![feature = "feature"]
195 pub mod utsname;
196}
197
198feature! {
199 #![feature = "process"]
200 pub mod wait;
201}
202
203#[cfg(any(target_os = "android", target_os = "linux"))]
204feature! {
205 #![feature = "inotify"]
206 pub mod inotify;
207}
208
209#[cfg(any(target_os = "android", target_os = "linux"))]
210feature! {
211 #![feature = "time"]
212 pub mod timerfd;
213}
214
215#[cfg(all(
216 any(
217 target_os = "freebsd",
218 target_os = "illumos",
219 target_os = "linux",
220 target_os = "netbsd"
221 ),
222 feature = "time",
223 feature = "signal"
224))]
225feature! {
226 #![feature = "time"]
227 pub mod timer;
228}
229