]>
Commit | Line | Data |
---|---|---|
476ff2be SL |
1 | pub type fflags_t = u32; |
2 | pub type clock_t = i32; | |
416331ca | 3 | |
8bb4bdeb | 4 | pub type lwpid_t = i32; |
0531ce1d | 5 | pub type blksize_t = i32; |
476ff2be | 6 | pub type clockid_t = ::c_int; |
8bb4bdeb | 7 | pub type sem_t = _sem; |
476ff2be | 8 | |
416331ca XL |
9 | pub type fsblkcnt_t = u64; |
10 | pub type fsfilcnt_t = u64; | |
8bb4bdeb | 11 | pub type idtype_t = ::c_uint; |
476ff2be | 12 | |
7cac9316 XL |
13 | pub type key_t = ::c_long; |
14 | pub type msglen_t = ::c_ulong; | |
15 | pub type msgqnum_t = ::c_ulong; | |
16 | ||
532ac7d7 | 17 | pub type mqd_t = *mut ::c_void; |
2c00a5a8 XL |
18 | pub type posix_spawnattr_t = *mut ::c_void; |
19 | pub type posix_spawn_file_actions_t = *mut ::c_void; | |
20 | ||
476ff2be | 21 | s! { |
8bb4bdeb XL |
22 | pub struct aiocb { |
23 | pub aio_fildes: ::c_int, | |
24 | pub aio_offset: ::off_t, | |
25 | pub aio_buf: *mut ::c_void, | |
26 | pub aio_nbytes: ::size_t, | |
27 | __unused1: [::c_int; 2], | |
28 | __unused2: *mut ::c_void, | |
29 | pub aio_lio_opcode: ::c_int, | |
30 | pub aio_reqprio: ::c_int, | |
31 | // unused 3 through 5 are the __aiocb_private structure | |
32 | __unused3: ::c_long, | |
33 | __unused4: ::c_long, | |
34 | __unused5: *mut ::c_void, | |
35 | pub aio_sigevent: sigevent | |
36 | } | |
37 | ||
8bb4bdeb XL |
38 | pub struct jail { |
39 | pub version: u32, | |
40 | pub path: *mut ::c_char, | |
41 | pub hostname: *mut ::c_char, | |
42 | pub jailname: *mut ::c_char, | |
43 | pub ip4s: ::c_uint, | |
44 | pub ip6s: ::c_uint, | |
45 | pub ip4: *mut ::in_addr, | |
46 | pub ip6: *mut ::in6_addr, | |
47 | } | |
48 | ||
476ff2be SL |
49 | pub struct statvfs { |
50 | pub f_bavail: ::fsblkcnt_t, | |
51 | pub f_bfree: ::fsblkcnt_t, | |
52 | pub f_blocks: ::fsblkcnt_t, | |
53 | pub f_favail: ::fsfilcnt_t, | |
54 | pub f_ffree: ::fsfilcnt_t, | |
55 | pub f_files: ::fsfilcnt_t, | |
56 | pub f_bsize: ::c_ulong, | |
57 | pub f_flag: ::c_ulong, | |
58 | pub f_frsize: ::c_ulong, | |
59 | pub f_fsid: ::c_ulong, | |
60 | pub f_namemax: ::c_ulong, | |
61 | } | |
8bb4bdeb XL |
62 | |
63 | // internal structure has changed over time | |
64 | pub struct _sem { | |
65 | data: [u32; 4], | |
66 | } | |
7cac9316 XL |
67 | |
68 | pub struct ipc_perm { | |
69 | pub cuid: ::uid_t, | |
70 | pub cgid: ::gid_t, | |
71 | pub uid: ::uid_t, | |
72 | pub gid: ::gid_t, | |
73 | pub mode: ::mode_t, | |
74 | pub seq: ::c_ushort, | |
75 | pub key: ::key_t, | |
76 | } | |
77 | ||
78 | pub struct msqid_ds { | |
79 | pub msg_perm: ::ipc_perm, | |
80 | __unused1: *mut ::c_void, | |
81 | __unused2: *mut ::c_void, | |
82 | pub msg_cbytes: ::msglen_t, | |
83 | pub msg_qnum: ::msgqnum_t, | |
84 | pub msg_qbytes: ::msglen_t, | |
85 | pub msg_lspid: ::pid_t, | |
86 | pub msg_lrpid: ::pid_t, | |
87 | pub msg_stime: ::time_t, | |
88 | pub msg_rtime: ::time_t, | |
89 | pub msg_ctime: ::time_t, | |
90 | } | |
91 | ||
abe05a73 XL |
92 | pub struct xucred { |
93 | pub cr_version: ::c_uint, | |
94 | pub cr_uid: ::uid_t, | |
95 | pub cr_ngroups: ::c_short, | |
96 | pub cr_groups: [::gid_t;16], | |
97 | __cr_unused1: *mut ::c_void, | |
98 | } | |
2c00a5a8 | 99 | |
532ac7d7 XL |
100 | pub struct stack_t { |
101 | pub ss_sp: *mut ::c_void, | |
102 | pub ss_size: ::size_t, | |
103 | pub ss_flags: ::c_int, | |
104 | } | |
105 | ||
106 | pub struct mmsghdr { | |
107 | pub msg_hdr: ::msghdr, | |
108 | pub msg_len: ::ssize_t, | |
109 | } | |
110 | } | |
111 | ||
112 | s_no_extra_traits! { | |
113 | pub struct utmpx { | |
114 | pub ut_type: ::c_short, | |
115 | pub ut_tv: ::timeval, | |
116 | pub ut_id: [::c_char; 8], | |
117 | pub ut_pid: ::pid_t, | |
118 | pub ut_user: [::c_char; 32], | |
119 | pub ut_line: [::c_char; 16], | |
120 | pub ut_host: [::c_char; 128], | |
121 | pub __ut_spare: [::c_char; 64], | |
122 | } | |
123 | ||
2c00a5a8 XL |
124 | pub struct sockaddr_dl { |
125 | pub sdl_len: ::c_uchar, | |
126 | pub sdl_family: ::c_uchar, | |
127 | pub sdl_index: ::c_ushort, | |
128 | pub sdl_type: ::c_uchar, | |
129 | pub sdl_nlen: ::c_uchar, | |
130 | pub sdl_alen: ::c_uchar, | |
131 | pub sdl_slen: ::c_uchar, | |
132 | pub sdl_data: [::c_char; 46], | |
133 | } | |
416331ca XL |
134 | |
135 | pub struct mq_attr { | |
136 | pub mq_flags: ::c_long, | |
137 | pub mq_maxmsg: ::c_long, | |
138 | pub mq_msgsize: ::c_long, | |
139 | pub mq_curmsgs: ::c_long, | |
140 | __reserved: [::c_long; 4] | |
141 | } | |
142 | ||
143 | pub struct sigevent { | |
144 | pub sigev_notify: ::c_int, | |
145 | pub sigev_signo: ::c_int, | |
146 | pub sigev_value: ::sigval, | |
147 | //The rest of the structure is actually a union. We expose only | |
148 | //sigev_notify_thread_id because it's the most useful union member. | |
149 | pub sigev_notify_thread_id: ::lwpid_t, | |
150 | #[cfg(target_pointer_width = "64")] | |
151 | __unused1: ::c_int, | |
152 | __unused2: [::c_long; 7] | |
153 | } | |
476ff2be SL |
154 | } |
155 | ||
532ac7d7 XL |
156 | cfg_if! { |
157 | if #[cfg(feature = "extra_traits")] { | |
158 | impl PartialEq for utmpx { | |
159 | fn eq(&self, other: &utmpx) -> bool { | |
160 | self.ut_type == other.ut_type | |
161 | && self.ut_tv == other.ut_tv | |
162 | && self.ut_id == other.ut_id | |
163 | && self.ut_pid == other.ut_pid | |
164 | && self.ut_user == other.ut_user | |
165 | && self.ut_line == other.ut_line | |
166 | && self | |
167 | .ut_host | |
168 | .iter() | |
169 | .zip(other.ut_host.iter()) | |
170 | .all(|(a,b)| a == b) | |
171 | && self | |
172 | .__ut_spare | |
173 | .iter() | |
174 | .zip(other.__ut_spare.iter()) | |
175 | .all(|(a,b)| a == b) | |
176 | } | |
177 | } | |
178 | impl Eq for utmpx {} | |
179 | impl ::fmt::Debug for utmpx { | |
180 | fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { | |
181 | f.debug_struct("utmpx") | |
182 | .field("ut_type", &self.ut_type) | |
183 | .field("ut_tv", &self.ut_tv) | |
184 | .field("ut_id", &self.ut_id) | |
185 | .field("ut_pid", &self.ut_pid) | |
186 | .field("ut_user", &self.ut_user) | |
187 | .field("ut_line", &self.ut_line) | |
188 | // FIXME: .field("ut_host", &self.ut_host) | |
189 | // FIXME: .field("__ut_spare", &self.__ut_spare) | |
190 | .finish() | |
191 | } | |
192 | } | |
193 | impl ::hash::Hash for utmpx { | |
194 | fn hash<H: ::hash::Hasher>(&self, state: &mut H) { | |
195 | self.ut_type.hash(state); | |
196 | self.ut_tv.hash(state); | |
197 | self.ut_id.hash(state); | |
198 | self.ut_pid.hash(state); | |
199 | self.ut_user.hash(state); | |
200 | self.ut_line.hash(state); | |
201 | self.ut_host.hash(state); | |
202 | self.__ut_spare.hash(state); | |
203 | } | |
204 | } | |
205 | ||
532ac7d7 XL |
206 | impl PartialEq for sockaddr_dl { |
207 | fn eq(&self, other: &sockaddr_dl) -> bool { | |
208 | self.sdl_len == other.sdl_len | |
209 | && self.sdl_family == other.sdl_family | |
210 | && self.sdl_index == other.sdl_index | |
211 | && self.sdl_type == other.sdl_type | |
212 | && self.sdl_nlen == other.sdl_nlen | |
213 | && self.sdl_alen == other.sdl_alen | |
214 | && self.sdl_slen == other.sdl_slen | |
215 | && self | |
216 | .sdl_data | |
217 | .iter() | |
218 | .zip(other.sdl_data.iter()) | |
219 | .all(|(a,b)| a == b) | |
220 | } | |
221 | } | |
222 | impl Eq for sockaddr_dl {} | |
223 | impl ::fmt::Debug for sockaddr_dl { | |
224 | fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { | |
225 | f.debug_struct("sockaddr_dl") | |
226 | .field("sdl_len", &self.sdl_len) | |
227 | .field("sdl_family", &self.sdl_family) | |
228 | .field("sdl_index", &self.sdl_index) | |
229 | .field("sdl_type", &self.sdl_type) | |
230 | .field("sdl_nlen", &self.sdl_nlen) | |
231 | .field("sdl_alen", &self.sdl_alen) | |
232 | .field("sdl_slen", &self.sdl_slen) | |
233 | // FIXME: .field("sdl_data", &self.sdl_data) | |
234 | .finish() | |
235 | } | |
236 | } | |
237 | impl ::hash::Hash for sockaddr_dl { | |
238 | fn hash<H: ::hash::Hasher>(&self, state: &mut H) { | |
239 | self.sdl_len.hash(state); | |
240 | self.sdl_family.hash(state); | |
241 | self.sdl_index.hash(state); | |
242 | self.sdl_type.hash(state); | |
243 | self.sdl_nlen.hash(state); | |
244 | self.sdl_alen.hash(state); | |
245 | self.sdl_slen.hash(state); | |
246 | self.sdl_data.hash(state); | |
247 | } | |
248 | } | |
416331ca XL |
249 | |
250 | impl PartialEq for mq_attr { | |
251 | fn eq(&self, other: &mq_attr) -> bool { | |
252 | self.mq_flags == other.mq_flags && | |
253 | self.mq_maxmsg == other.mq_maxmsg && | |
254 | self.mq_msgsize == other.mq_msgsize && | |
255 | self.mq_curmsgs == other.mq_curmsgs | |
256 | } | |
257 | } | |
258 | impl Eq for mq_attr {} | |
259 | impl ::fmt::Debug for mq_attr { | |
260 | fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { | |
261 | f.debug_struct("mq_attr") | |
262 | .field("mq_flags", &self.mq_flags) | |
263 | .field("mq_maxmsg", &self.mq_maxmsg) | |
264 | .field("mq_msgsize", &self.mq_msgsize) | |
265 | .field("mq_curmsgs", &self.mq_curmsgs) | |
266 | .finish() | |
267 | } | |
268 | } | |
269 | impl ::hash::Hash for mq_attr { | |
270 | fn hash<H: ::hash::Hasher>(&self, state: &mut H) { | |
271 | self.mq_flags.hash(state); | |
272 | self.mq_maxmsg.hash(state); | |
273 | self.mq_msgsize.hash(state); | |
274 | self.mq_curmsgs.hash(state); | |
275 | } | |
276 | } | |
277 | ||
278 | impl PartialEq for sigevent { | |
279 | fn eq(&self, other: &sigevent) -> bool { | |
280 | self.sigev_notify == other.sigev_notify | |
281 | && self.sigev_signo == other.sigev_signo | |
282 | && self.sigev_value == other.sigev_value | |
283 | && self.sigev_notify_thread_id | |
284 | == other.sigev_notify_thread_id | |
285 | } | |
286 | } | |
287 | impl Eq for sigevent {} | |
288 | impl ::fmt::Debug for sigevent { | |
289 | fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { | |
290 | f.debug_struct("sigevent") | |
291 | .field("sigev_notify", &self.sigev_notify) | |
292 | .field("sigev_signo", &self.sigev_signo) | |
293 | .field("sigev_value", &self.sigev_value) | |
294 | .field("sigev_notify_thread_id", | |
295 | &self.sigev_notify_thread_id) | |
296 | .finish() | |
297 | } | |
298 | } | |
299 | impl ::hash::Hash for sigevent { | |
300 | fn hash<H: ::hash::Hasher>(&self, state: &mut H) { | |
301 | self.sigev_notify.hash(state); | |
302 | self.sigev_signo.hash(state); | |
303 | self.sigev_value.hash(state); | |
304 | self.sigev_notify_thread_id.hash(state); | |
305 | } | |
306 | } | |
532ac7d7 XL |
307 | } |
308 | } | |
309 | ||
8bb4bdeb XL |
310 | pub const SIGEV_THREAD_ID: ::c_int = 4; |
311 | ||
69743fb6 XL |
312 | pub const EXTATTR_NAMESPACE_EMPTY: ::c_int = 0; |
313 | pub const EXTATTR_NAMESPACE_USER: ::c_int = 1; | |
314 | pub const EXTATTR_NAMESPACE_SYSTEM: ::c_int = 2; | |
315 | ||
476ff2be SL |
316 | pub const RAND_MAX: ::c_int = 0x7fff_fffd; |
317 | pub const PTHREAD_STACK_MIN: ::size_t = 2048; | |
8bb4bdeb | 318 | pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 4; |
476ff2be SL |
319 | pub const SIGSTKSZ: ::size_t = 34816; |
320 | pub const SF_NODISKIO: ::c_int = 0x00000001; | |
321 | pub const SF_MNOWAIT: ::c_int = 0x00000002; | |
322 | pub const SF_SYNC: ::c_int = 0x00000004; | |
8faf50e0 XL |
323 | pub const SF_USER_READAHEAD: ::c_int = 0x00000008; |
324 | pub const SF_NOCACHE: ::c_int = 0x00000010; | |
476ff2be | 325 | pub const O_CLOEXEC: ::c_int = 0x00100000; |
041b39d2 XL |
326 | pub const O_DIRECTORY: ::c_int = 0x00020000; |
327 | pub const O_EXEC: ::c_int = 0x00040000; | |
328 | pub const O_TTY_INIT: ::c_int = 0x00080000; | |
476ff2be SL |
329 | pub const F_GETLK: ::c_int = 11; |
330 | pub const F_SETLK: ::c_int = 12; | |
331 | pub const F_SETLKW: ::c_int = 13; | |
2c00a5a8 XL |
332 | pub const ENOTCAPABLE: ::c_int = 93; |
333 | pub const ECAPMODE: ::c_int = 94; | |
334 | pub const ENOTRECOVERABLE: ::c_int = 95; | |
335 | pub const EOWNERDEAD: ::c_int = 96; | |
476ff2be SL |
336 | pub const RLIMIT_NPTS: ::c_int = 11; |
337 | pub const RLIMIT_SWAP: ::c_int = 12; | |
0531ce1d XL |
338 | pub const RLIMIT_KQUEUES: ::c_int = 13; |
339 | pub const RLIMIT_UMTXP: ::c_int = 14; | |
e74abb32 | 340 | #[deprecated(since = "0.2.64", note = "Not stable across OS versions")] |
0531ce1d | 341 | pub const RLIM_NLIMITS: ::rlim_t = 15; |
476ff2be SL |
342 | |
343 | pub const Q_GETQUOTA: ::c_int = 0x700; | |
344 | pub const Q_SETQUOTA: ::c_int = 0x800; | |
345 | ||
346 | pub const POSIX_FADV_NORMAL: ::c_int = 0; | |
347 | pub const POSIX_FADV_RANDOM: ::c_int = 1; | |
348 | pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; | |
349 | pub const POSIX_FADV_WILLNEED: ::c_int = 3; | |
350 | pub const POSIX_FADV_DONTNEED: ::c_int = 4; | |
351 | pub const POSIX_FADV_NOREUSE: ::c_int = 5; | |
352 | ||
ea8adc8c XL |
353 | pub const POLLINIGNEOF: ::c_short = 0x2000; |
354 | ||
416331ca XL |
355 | pub const EVFILT_READ: i16 = -1; |
356 | pub const EVFILT_WRITE: i16 = -2; | |
357 | pub const EVFILT_AIO: i16 = -3; | |
358 | pub const EVFILT_VNODE: i16 = -4; | |
359 | pub const EVFILT_PROC: i16 = -5; | |
360 | pub const EVFILT_SIGNAL: i16 = -6; | |
361 | pub const EVFILT_TIMER: i16 = -7; | |
362 | pub const EVFILT_PROCDESC: i16 = -8; | |
363 | pub const EVFILT_FS: i16 = -9; | |
364 | pub const EVFILT_LIO: i16 = -10; | |
365 | pub const EVFILT_USER: i16 = -11; | |
366 | pub const EVFILT_SENDFILE: i16 = -12; | |
367 | pub const EVFILT_EMPTY: i16 = -13; | |
368 | ||
369 | pub const EV_ADD: u16 = 0x1; | |
370 | pub const EV_DELETE: u16 = 0x2; | |
371 | pub const EV_ENABLE: u16 = 0x4; | |
372 | pub const EV_DISABLE: u16 = 0x8; | |
373 | pub const EV_ONESHOT: u16 = 0x10; | |
374 | pub const EV_CLEAR: u16 = 0x20; | |
375 | pub const EV_RECEIPT: u16 = 0x40; | |
376 | pub const EV_DISPATCH: u16 = 0x80; | |
377 | pub const EV_DROP: u16 = 0x1000; | |
378 | pub const EV_FLAG1: u16 = 0x2000; | |
379 | pub const EV_ERROR: u16 = 0x4000; | |
380 | pub const EV_EOF: u16 = 0x8000; | |
381 | pub const EV_SYSFLAGS: u16 = 0xf000; | |
382 | ||
383 | pub const NOTE_TRIGGER: u32 = 0x01000000; | |
384 | pub const NOTE_FFNOP: u32 = 0x00000000; | |
385 | pub const NOTE_FFAND: u32 = 0x40000000; | |
386 | pub const NOTE_FFOR: u32 = 0x80000000; | |
387 | pub const NOTE_FFCOPY: u32 = 0xc0000000; | |
388 | pub const NOTE_FFCTRLMASK: u32 = 0xc0000000; | |
389 | pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff; | |
390 | pub const NOTE_LOWAT: u32 = 0x00000001; | |
391 | pub const NOTE_DELETE: u32 = 0x00000001; | |
392 | pub const NOTE_WRITE: u32 = 0x00000002; | |
393 | pub const NOTE_EXTEND: u32 = 0x00000004; | |
394 | pub const NOTE_ATTRIB: u32 = 0x00000008; | |
395 | pub const NOTE_LINK: u32 = 0x00000010; | |
396 | pub const NOTE_RENAME: u32 = 0x00000020; | |
397 | pub const NOTE_REVOKE: u32 = 0x00000040; | |
398 | pub const NOTE_EXIT: u32 = 0x80000000; | |
399 | pub const NOTE_FORK: u32 = 0x40000000; | |
400 | pub const NOTE_EXEC: u32 = 0x20000000; | |
401 | pub const NOTE_PDATAMASK: u32 = 0x000fffff; | |
402 | pub const NOTE_PCTRLMASK: u32 = 0xf0000000; | |
403 | pub const NOTE_TRACK: u32 = 0x00000001; | |
404 | pub const NOTE_TRACKERR: u32 = 0x00000002; | |
405 | pub const NOTE_CHILD: u32 = 0x00000004; | |
406 | pub const NOTE_SECONDS: u32 = 0x00000001; | |
407 | pub const NOTE_MSECONDS: u32 = 0x00000002; | |
408 | pub const NOTE_USECONDS: u32 = 0x00000004; | |
409 | pub const NOTE_NSECONDS: u32 = 0x00000008; | |
476ff2be SL |
410 | |
411 | pub const MADV_PROTECT: ::c_int = 10; | |
412 | pub const RUSAGE_THREAD: ::c_int = 1; | |
413 | ||
ea8adc8c XL |
414 | pub const CLOCK_REALTIME: ::clockid_t = 0; |
415 | pub const CLOCK_VIRTUAL: ::clockid_t = 1; | |
416 | pub const CLOCK_PROF: ::clockid_t = 2; | |
417 | pub const CLOCK_MONOTONIC: ::clockid_t = 4; | |
418 | pub const CLOCK_UPTIME: ::clockid_t = 5; | |
419 | pub const CLOCK_UPTIME_PRECISE: ::clockid_t = 7; | |
420 | pub const CLOCK_UPTIME_FAST: ::clockid_t = 8; | |
421 | pub const CLOCK_REALTIME_PRECISE: ::clockid_t = 9; | |
422 | pub const CLOCK_REALTIME_FAST: ::clockid_t = 10; | |
423 | pub const CLOCK_MONOTONIC_PRECISE: ::clockid_t = 11; | |
424 | pub const CLOCK_MONOTONIC_FAST: ::clockid_t = 12; | |
425 | pub const CLOCK_SECOND: ::clockid_t = 13; | |
426 | pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 14; | |
427 | pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 15; | |
476ff2be SL |
428 | |
429 | pub const CTL_UNSPEC: ::c_int = 0; | |
430 | pub const CTL_KERN: ::c_int = 1; | |
431 | pub const CTL_VM: ::c_int = 2; | |
432 | pub const CTL_VFS: ::c_int = 3; | |
433 | pub const CTL_NET: ::c_int = 4; | |
434 | pub const CTL_DEBUG: ::c_int = 5; | |
435 | pub const CTL_HW: ::c_int = 6; | |
436 | pub const CTL_MACHDEP: ::c_int = 7; | |
437 | pub const CTL_USER: ::c_int = 8; | |
438 | pub const CTL_P1003_1B: ::c_int = 9; | |
476ff2be SL |
439 | pub const KERN_OSTYPE: ::c_int = 1; |
440 | pub const KERN_OSRELEASE: ::c_int = 2; | |
441 | pub const KERN_OSREV: ::c_int = 3; | |
442 | pub const KERN_VERSION: ::c_int = 4; | |
443 | pub const KERN_MAXVNODES: ::c_int = 5; | |
444 | pub const KERN_MAXPROC: ::c_int = 6; | |
445 | pub const KERN_MAXFILES: ::c_int = 7; | |
446 | pub const KERN_ARGMAX: ::c_int = 8; | |
447 | pub const KERN_SECURELVL: ::c_int = 9; | |
448 | pub const KERN_HOSTNAME: ::c_int = 10; | |
449 | pub const KERN_HOSTID: ::c_int = 11; | |
450 | pub const KERN_CLOCKRATE: ::c_int = 12; | |
451 | pub const KERN_VNODE: ::c_int = 13; | |
452 | pub const KERN_PROC: ::c_int = 14; | |
453 | pub const KERN_FILE: ::c_int = 15; | |
454 | pub const KERN_PROF: ::c_int = 16; | |
455 | pub const KERN_POSIX1: ::c_int = 17; | |
456 | pub const KERN_NGROUPS: ::c_int = 18; | |
457 | pub const KERN_JOB_CONTROL: ::c_int = 19; | |
458 | pub const KERN_SAVED_IDS: ::c_int = 20; | |
459 | pub const KERN_BOOTTIME: ::c_int = 21; | |
460 | pub const KERN_NISDOMAINNAME: ::c_int = 22; | |
461 | pub const KERN_UPDATEINTERVAL: ::c_int = 23; | |
462 | pub const KERN_OSRELDATE: ::c_int = 24; | |
463 | pub const KERN_NTP_PLL: ::c_int = 25; | |
464 | pub const KERN_BOOTFILE: ::c_int = 26; | |
465 | pub const KERN_MAXFILESPERPROC: ::c_int = 27; | |
466 | pub const KERN_MAXPROCPERUID: ::c_int = 28; | |
467 | pub const KERN_DUMPDEV: ::c_int = 29; | |
468 | pub const KERN_IPC: ::c_int = 30; | |
469 | pub const KERN_DUMMY: ::c_int = 31; | |
470 | pub const KERN_PS_STRINGS: ::c_int = 32; | |
471 | pub const KERN_USRSTACK: ::c_int = 33; | |
472 | pub const KERN_LOGSIGEXIT: ::c_int = 34; | |
473 | pub const KERN_IOV_MAX: ::c_int = 35; | |
474 | pub const KERN_HOSTUUID: ::c_int = 36; | |
475 | pub const KERN_ARND: ::c_int = 37; | |
476ff2be SL |
476 | pub const KERN_PROC_ALL: ::c_int = 0; |
477 | pub const KERN_PROC_PID: ::c_int = 1; | |
478 | pub const KERN_PROC_PGRP: ::c_int = 2; | |
479 | pub const KERN_PROC_SESSION: ::c_int = 3; | |
480 | pub const KERN_PROC_TTY: ::c_int = 4; | |
481 | pub const KERN_PROC_UID: ::c_int = 5; | |
482 | pub const KERN_PROC_RUID: ::c_int = 6; | |
483 | pub const KERN_PROC_ARGS: ::c_int = 7; | |
484 | pub const KERN_PROC_PROC: ::c_int = 8; | |
485 | pub const KERN_PROC_SV_NAME: ::c_int = 9; | |
486 | pub const KERN_PROC_RGID: ::c_int = 10; | |
487 | pub const KERN_PROC_GID: ::c_int = 11; | |
488 | pub const KERN_PROC_PATHNAME: ::c_int = 12; | |
489 | pub const KERN_PROC_OVMMAP: ::c_int = 13; | |
490 | pub const KERN_PROC_OFILEDESC: ::c_int = 14; | |
491 | pub const KERN_PROC_KSTACK: ::c_int = 15; | |
492 | pub const KERN_PROC_INC_THREAD: ::c_int = 0x10; | |
493 | pub const KERN_PROC_VMMAP: ::c_int = 32; | |
494 | pub const KERN_PROC_FILEDESC: ::c_int = 33; | |
495 | pub const KERN_PROC_GROUPS: ::c_int = 34; | |
496 | pub const KERN_PROC_ENV: ::c_int = 35; | |
497 | pub const KERN_PROC_AUXV: ::c_int = 36; | |
498 | pub const KERN_PROC_RLIMIT: ::c_int = 37; | |
499 | pub const KERN_PROC_PS_STRINGS: ::c_int = 38; | |
500 | pub const KERN_PROC_UMASK: ::c_int = 39; | |
501 | pub const KERN_PROC_OSREL: ::c_int = 40; | |
502 | pub const KERN_PROC_SIGTRAMP: ::c_int = 41; | |
503 | pub const KIPC_MAXSOCKBUF: ::c_int = 1; | |
504 | pub const KIPC_SOCKBUF_WASTE: ::c_int = 2; | |
505 | pub const KIPC_SOMAXCONN: ::c_int = 3; | |
506 | pub const KIPC_MAX_LINKHDR: ::c_int = 4; | |
507 | pub const KIPC_MAX_PROTOHDR: ::c_int = 5; | |
508 | pub const KIPC_MAX_HDR: ::c_int = 6; | |
509 | pub const KIPC_MAX_DATALEN: ::c_int = 7; | |
510 | pub const HW_MACHINE: ::c_int = 1; | |
511 | pub const HW_MODEL: ::c_int = 2; | |
512 | pub const HW_NCPU: ::c_int = 3; | |
513 | pub const HW_BYTEORDER: ::c_int = 4; | |
514 | pub const HW_PHYSMEM: ::c_int = 5; | |
515 | pub const HW_USERMEM: ::c_int = 6; | |
516 | pub const HW_PAGESIZE: ::c_int = 7; | |
517 | pub const HW_DISKNAMES: ::c_int = 8; | |
518 | pub const HW_DISKSTATS: ::c_int = 9; | |
519 | pub const HW_FLOATINGPT: ::c_int = 10; | |
520 | pub const HW_MACHINE_ARCH: ::c_int = 11; | |
521 | pub const HW_REALMEM: ::c_int = 12; | |
476ff2be SL |
522 | pub const USER_CS_PATH: ::c_int = 1; |
523 | pub const USER_BC_BASE_MAX: ::c_int = 2; | |
524 | pub const USER_BC_DIM_MAX: ::c_int = 3; | |
525 | pub const USER_BC_SCALE_MAX: ::c_int = 4; | |
526 | pub const USER_BC_STRING_MAX: ::c_int = 5; | |
527 | pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6; | |
528 | pub const USER_EXPR_NEST_MAX: ::c_int = 7; | |
529 | pub const USER_LINE_MAX: ::c_int = 8; | |
530 | pub const USER_RE_DUP_MAX: ::c_int = 9; | |
531 | pub const USER_POSIX2_VERSION: ::c_int = 10; | |
532 | pub const USER_POSIX2_C_BIND: ::c_int = 11; | |
533 | pub const USER_POSIX2_C_DEV: ::c_int = 12; | |
534 | pub const USER_POSIX2_CHAR_TERM: ::c_int = 13; | |
535 | pub const USER_POSIX2_FORT_DEV: ::c_int = 14; | |
536 | pub const USER_POSIX2_FORT_RUN: ::c_int = 15; | |
537 | pub const USER_POSIX2_LOCALEDEF: ::c_int = 16; | |
538 | pub const USER_POSIX2_SW_DEV: ::c_int = 17; | |
539 | pub const USER_POSIX2_UPE: ::c_int = 18; | |
540 | pub const USER_STREAM_MAX: ::c_int = 19; | |
541 | pub const USER_TZNAME_MAX: ::c_int = 20; | |
476ff2be SL |
542 | pub const CTL_P1003_1B_ASYNCHRONOUS_IO: ::c_int = 1; |
543 | pub const CTL_P1003_1B_MAPPED_FILES: ::c_int = 2; | |
544 | pub const CTL_P1003_1B_MEMLOCK: ::c_int = 3; | |
545 | pub const CTL_P1003_1B_MEMLOCK_RANGE: ::c_int = 4; | |
546 | pub const CTL_P1003_1B_MEMORY_PROTECTION: ::c_int = 5; | |
547 | pub const CTL_P1003_1B_MESSAGE_PASSING: ::c_int = 6; | |
548 | pub const CTL_P1003_1B_PRIORITIZED_IO: ::c_int = 7; | |
549 | pub const CTL_P1003_1B_PRIORITY_SCHEDULING: ::c_int = 8; | |
550 | pub const CTL_P1003_1B_REALTIME_SIGNALS: ::c_int = 9; | |
551 | pub const CTL_P1003_1B_SEMAPHORES: ::c_int = 10; | |
552 | pub const CTL_P1003_1B_FSYNC: ::c_int = 11; | |
553 | pub const CTL_P1003_1B_SHARED_MEMORY_OBJECTS: ::c_int = 12; | |
554 | pub const CTL_P1003_1B_SYNCHRONIZED_IO: ::c_int = 13; | |
555 | pub const CTL_P1003_1B_TIMERS: ::c_int = 14; | |
556 | pub const CTL_P1003_1B_AIO_LISTIO_MAX: ::c_int = 15; | |
557 | pub const CTL_P1003_1B_AIO_MAX: ::c_int = 16; | |
558 | pub const CTL_P1003_1B_AIO_PRIO_DELTA_MAX: ::c_int = 17; | |
559 | pub const CTL_P1003_1B_DELAYTIMER_MAX: ::c_int = 18; | |
560 | pub const CTL_P1003_1B_MQ_OPEN_MAX: ::c_int = 19; | |
561 | pub const CTL_P1003_1B_PAGESIZE: ::c_int = 20; | |
562 | pub const CTL_P1003_1B_RTSIG_MAX: ::c_int = 21; | |
563 | pub const CTL_P1003_1B_SEM_NSEMS_MAX: ::c_int = 22; | |
564 | pub const CTL_P1003_1B_SEM_VALUE_MAX: ::c_int = 23; | |
565 | pub const CTL_P1003_1B_SIGQUEUE_MAX: ::c_int = 24; | |
566 | pub const CTL_P1003_1B_TIMER_MAX: ::c_int = 25; | |
8bb4bdeb XL |
567 | pub const TIOCGPTN: ::c_uint = 0x4004740f; |
568 | pub const TIOCPTMASTER: ::c_uint = 0x2000741c; | |
569 | pub const TIOCSIG: ::c_uint = 0x2004745f; | |
570 | pub const TIOCM_DCD: ::c_int = 0x40; | |
571 | pub const H4DISC: ::c_int = 0x7; | |
572 | ||
e74abb32 XL |
573 | pub const BIOCSETFNR: ::c_ulong = 0x80104282; |
574 | ||
532ac7d7 XL |
575 | pub const FIONWRITE: ::c_ulong = 0x40046677; |
576 | pub const FIONSPACE: ::c_ulong = 0x40046676; | |
577 | pub const FIOSEEKDATA: ::c_ulong = 0xc0086661; | |
578 | pub const FIOSEEKHOLE: ::c_ulong = 0xc0086662; | |
579 | ||
8bb4bdeb XL |
580 | pub const JAIL_API_VERSION: u32 = 2; |
581 | pub const JAIL_CREATE: ::c_int = 0x01; | |
582 | pub const JAIL_UPDATE: ::c_int = 0x02; | |
583 | pub const JAIL_ATTACH: ::c_int = 0x04; | |
584 | pub const JAIL_DYING: ::c_int = 0x08; | |
585 | pub const JAIL_SET_MASK: ::c_int = 0x0f; | |
586 | pub const JAIL_GET_MASK: ::c_int = 0x08; | |
587 | pub const JAIL_SYS_DISABLE: ::c_int = 0; | |
588 | pub const JAIL_SYS_NEW: ::c_int = 1; | |
589 | pub const JAIL_SYS_INHERIT: ::c_int = 2; | |
590 | ||
591 | pub const SO_BINTIME: ::c_int = 0x2000; | |
592 | pub const SO_NO_OFFLOAD: ::c_int = 0x4000; | |
593 | pub const SO_NO_DDP: ::c_int = 0x8000; | |
69743fb6 | 594 | pub const SO_REUSEPORT_LB: ::c_int = 0x10000; |
8bb4bdeb XL |
595 | pub const SO_LABEL: ::c_int = 0x1009; |
596 | pub const SO_PEERLABEL: ::c_int = 0x1010; | |
597 | pub const SO_LISTENQLIMIT: ::c_int = 0x1011; | |
598 | pub const SO_LISTENQLEN: ::c_int = 0x1012; | |
599 | pub const SO_LISTENINCQLEN: ::c_int = 0x1013; | |
600 | pub const SO_SETFIB: ::c_int = 0x1014; | |
601 | pub const SO_USER_COOKIE: ::c_int = 0x1015; | |
602 | pub const SO_PROTOCOL: ::c_int = 0x1016; | |
603 | pub const SO_PROTOTYPE: ::c_int = SO_PROTOCOL; | |
604 | pub const SO_VENDOR: ::c_int = 0x80000000; | |
605 | ||
abe05a73 XL |
606 | pub const LOCAL_PEERCRED: ::c_int = 1; |
607 | pub const LOCAL_CREDS: ::c_int = 2; | |
608 | pub const LOCAL_CONNWAIT: ::c_int = 4; | |
609 | pub const LOCAL_VENDOR: ::c_int = SO_VENDOR; | |
610 | ||
69743fb6 XL |
611 | pub const PT_LWPINFO: ::c_int = 13; |
612 | pub const PT_GETNUMLWPS: ::c_int = 14; | |
613 | pub const PT_GETLWPLIST: ::c_int = 15; | |
614 | pub const PT_CLEARSTEP: ::c_int = 16; | |
615 | pub const PT_SETSTEP: ::c_int = 17; | |
616 | pub const PT_SUSPEND: ::c_int = 18; | |
617 | pub const PT_RESUME: ::c_int = 19; | |
618 | pub const PT_TO_SCE: ::c_int = 20; | |
619 | pub const PT_TO_SCX: ::c_int = 21; | |
620 | pub const PT_SYSCALL: ::c_int = 22; | |
621 | pub const PT_FOLLOW_FORK: ::c_int = 23; | |
622 | pub const PT_LWP_EVENTS: ::c_int = 24; | |
623 | pub const PT_GET_EVENT_MASK: ::c_int = 25; | |
624 | pub const PT_SET_EVENT_MASK: ::c_int = 26; | |
625 | pub const PT_GETREGS: ::c_int = 33; | |
626 | pub const PT_SETREGS: ::c_int = 34; | |
627 | pub const PT_GETFPREGS: ::c_int = 35; | |
628 | pub const PT_SETFPREGS: ::c_int = 36; | |
629 | pub const PT_GETDBREGS: ::c_int = 37; | |
630 | pub const PT_SETDBREGS: ::c_int = 38; | |
631 | pub const PT_VM_TIMESTAMP: ::c_int = 40; | |
632 | pub const PT_VM_ENTRY: ::c_int = 41; | |
633 | pub const PT_FIRSTMACH: ::c_int = 64; | |
634 | ||
635 | pub const PTRACE_EXEC: ::c_int = 0x0001; | |
636 | pub const PTRACE_SCE: ::c_int = 0x0002; | |
637 | pub const PTRACE_SCX: ::c_int = 0x0004; | |
638 | pub const PTRACE_SYSCALL: ::c_int = PTRACE_SCE | PTRACE_SCX; | |
639 | pub const PTRACE_FORK: ::c_int = 0x0008; | |
640 | pub const PTRACE_LWP: ::c_int = 0x0010; | |
641 | pub const PTRACE_VFORK: ::c_int = 0x0020; | |
642 | pub const PTRACE_DEFAULT: ::c_int = PTRACE_EXEC; | |
643 | ||
8bb4bdeb XL |
644 | pub const AF_SLOW: ::c_int = 33; |
645 | pub const AF_SCLUSTER: ::c_int = 34; | |
646 | pub const AF_ARP: ::c_int = 35; | |
647 | pub const AF_BLUETOOTH: ::c_int = 36; | |
648 | pub const AF_IEEE80211: ::c_int = 37; | |
649 | pub const AF_INET_SDP: ::c_int = 40; | |
650 | pub const AF_INET6_SDP: ::c_int = 42; | |
8bb4bdeb | 651 | |
ff7c6d11 XL |
652 | // https://github.com/freebsd/freebsd/blob/master/sys/net/if.h#L140 |
653 | pub const IFF_UP: ::c_int = 0x1; // (n) interface is up | |
654 | pub const IFF_BROADCAST: ::c_int = 0x2; // (i) broadcast address valid | |
655 | pub const IFF_DEBUG: ::c_int = 0x4; // (n) turn on debugging | |
656 | pub const IFF_LOOPBACK: ::c_int = 0x8; // (i) is a loopback net | |
657 | pub const IFF_POINTOPOINT: ::c_int = 0x10; // (i) is a point-to-point link | |
e74abb32 | 658 | // 0x20 was IFF_SMART |
ff7c6d11 | 659 | pub const IFF_RUNNING: ::c_int = 0x40; // (d) resources allocated |
2c00a5a8 | 660 | #[doc(hidden)] |
416331ca | 661 | #[deprecated( |
e74abb32 XL |
662 | since = "0.2.54", |
663 | note = "IFF_DRV_RUNNING is deprecated. Use the portable IFF_RUNNING instead" | |
416331ca | 664 | )] |
ff7c6d11 XL |
665 | pub const IFF_DRV_RUNNING: ::c_int = 0x40; |
666 | pub const IFF_NOARP: ::c_int = 0x80; // (n) no address resolution protocol | |
667 | pub const IFF_PROMISC: ::c_int = 0x100; // (n) receive all packets | |
668 | pub const IFF_ALLMULTI: ::c_int = 0x200; // (n) receive all multicast packets | |
669 | pub const IFF_OACTIVE: ::c_int = 0x400; // (d) tx hardware queue is full | |
2c00a5a8 | 670 | #[doc(hidden)] |
416331ca XL |
671 | #[deprecated( |
672 | since = "0.2.54", | |
e74abb32 | 673 | note = "Use the portable `IFF_OACTIVE` instead" |
416331ca | 674 | )] |
ff7c6d11 XL |
675 | pub const IFF_DRV_OACTIVE: ::c_int = 0x400; |
676 | pub const IFF_SIMPLEX: ::c_int = 0x800; // (i) can't hear own transmissions | |
677 | pub const IFF_LINK0: ::c_int = 0x1000; // per link layer defined bit | |
678 | pub const IFF_LINK1: ::c_int = 0x2000; // per link layer defined bit | |
679 | pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit | |
680 | pub const IFF_ALTPHYS: ::c_int = IFF_LINK2; // use alternate physical connection | |
681 | pub const IFF_MULTICAST: ::c_int = 0x8000; // (i) supports multicast | |
e74abb32 | 682 | // (i) unconfigurable using ioctl(2) |
ff7c6d11 XL |
683 | pub const IFF_CANTCONFIG: ::c_int = 0x10000; |
684 | pub const IFF_PPROMISC: ::c_int = 0x20000; // (n) user-requested promisc mode | |
685 | pub const IFF_MONITOR: ::c_int = 0x40000; // (n) user-requested monitor mode | |
686 | pub const IFF_STATICARP: ::c_int = 0x80000; // (n) static ARP | |
687 | pub const IFF_DYING: ::c_int = 0x200000; // (n) interface is winding down | |
688 | pub const IFF_RENAMING: ::c_int = 0x400000; // (n) interface is being renamed | |
689 | ||
ea8adc8c XL |
690 | // sys/netinet/in.h |
691 | // Protocols (RFC 1700) | |
692 | // NOTE: These are in addition to the constants defined in src/unix/mod.rs | |
693 | ||
694 | // IPPROTO_IP defined in src/unix/mod.rs | |
695 | /// IP6 hop-by-hop options | |
696 | pub const IPPROTO_HOPOPTS: ::c_int = 0; | |
697 | // IPPROTO_ICMP defined in src/unix/mod.rs | |
698 | /// group mgmt protocol | |
699 | pub const IPPROTO_IGMP: ::c_int = 2; | |
700 | /// gateway^2 (deprecated) | |
701 | pub const IPPROTO_GGP: ::c_int = 3; | |
702 | /// for compatibility | |
703 | pub const IPPROTO_IPIP: ::c_int = 4; | |
704 | // IPPROTO_TCP defined in src/unix/mod.rs | |
705 | /// Stream protocol II. | |
706 | pub const IPPROTO_ST: ::c_int = 7; | |
707 | /// exterior gateway protocol | |
708 | pub const IPPROTO_EGP: ::c_int = 8; | |
709 | /// private interior gateway | |
710 | pub const IPPROTO_PIGP: ::c_int = 9; | |
711 | /// BBN RCC Monitoring | |
712 | pub const IPPROTO_RCCMON: ::c_int = 10; | |
713 | /// network voice protocol | |
714 | pub const IPPROTO_NVPII: ::c_int = 11; | |
715 | /// pup | |
716 | pub const IPPROTO_PUP: ::c_int = 12; | |
717 | /// Argus | |
718 | pub const IPPROTO_ARGUS: ::c_int = 13; | |
719 | /// EMCON | |
720 | pub const IPPROTO_EMCON: ::c_int = 14; | |
721 | /// Cross Net Debugger | |
722 | pub const IPPROTO_XNET: ::c_int = 15; | |
723 | /// Chaos | |
724 | pub const IPPROTO_CHAOS: ::c_int = 16; | |
725 | // IPPROTO_UDP defined in src/unix/mod.rs | |
726 | /// Multiplexing | |
727 | pub const IPPROTO_MUX: ::c_int = 18; | |
728 | /// DCN Measurement Subsystems | |
729 | pub const IPPROTO_MEAS: ::c_int = 19; | |
730 | /// Host Monitoring | |
731 | pub const IPPROTO_HMP: ::c_int = 20; | |
732 | /// Packet Radio Measurement | |
733 | pub const IPPROTO_PRM: ::c_int = 21; | |
734 | /// xns idp | |
735 | pub const IPPROTO_IDP: ::c_int = 22; | |
736 | /// Trunk-1 | |
737 | pub const IPPROTO_TRUNK1: ::c_int = 23; | |
738 | /// Trunk-2 | |
739 | pub const IPPROTO_TRUNK2: ::c_int = 24; | |
740 | /// Leaf-1 | |
741 | pub const IPPROTO_LEAF1: ::c_int = 25; | |
742 | /// Leaf-2 | |
743 | pub const IPPROTO_LEAF2: ::c_int = 26; | |
744 | /// Reliable Data | |
745 | pub const IPPROTO_RDP: ::c_int = 27; | |
746 | /// Reliable Transaction | |
747 | pub const IPPROTO_IRTP: ::c_int = 28; | |
748 | /// tp-4 w/ class negotiation | |
749 | pub const IPPROTO_TP: ::c_int = 29; | |
750 | /// Bulk Data Transfer | |
751 | pub const IPPROTO_BLT: ::c_int = 30; | |
752 | /// Network Services | |
753 | pub const IPPROTO_NSP: ::c_int = 31; | |
754 | /// Merit Internodal | |
755 | pub const IPPROTO_INP: ::c_int = 32; | |
756 | /// Sequential Exchange | |
757 | pub const IPPROTO_SEP: ::c_int = 33; | |
758 | /// Third Party Connect | |
759 | pub const IPPROTO_3PC: ::c_int = 34; | |
760 | /// InterDomain Policy Routing | |
761 | pub const IPPROTO_IDPR: ::c_int = 35; | |
762 | /// XTP | |
763 | pub const IPPROTO_XTP: ::c_int = 36; | |
764 | /// Datagram Delivery | |
765 | pub const IPPROTO_DDP: ::c_int = 37; | |
766 | /// Control Message Transport | |
767 | pub const IPPROTO_CMTP: ::c_int = 38; | |
768 | /// TP++ Transport | |
769 | pub const IPPROTO_TPXX: ::c_int = 39; | |
770 | /// IL transport protocol | |
771 | pub const IPPROTO_IL: ::c_int = 40; | |
772 | // IPPROTO_IPV6 defined in src/unix/mod.rs | |
773 | /// Source Demand Routing | |
774 | pub const IPPROTO_SDRP: ::c_int = 42; | |
775 | /// IP6 routing header | |
776 | pub const IPPROTO_ROUTING: ::c_int = 43; | |
777 | /// IP6 fragmentation header | |
778 | pub const IPPROTO_FRAGMENT: ::c_int = 44; | |
779 | /// InterDomain Routing | |
780 | pub const IPPROTO_IDRP: ::c_int = 45; | |
781 | /// resource reservation | |
782 | pub const IPPROTO_RSVP: ::c_int = 46; | |
783 | /// General Routing Encap. | |
784 | pub const IPPROTO_GRE: ::c_int = 47; | |
785 | /// Mobile Host Routing | |
786 | pub const IPPROTO_MHRP: ::c_int = 48; | |
787 | /// BHA | |
788 | pub const IPPROTO_BHA: ::c_int = 49; | |
789 | /// IP6 Encap Sec. Payload | |
790 | pub const IPPROTO_ESP: ::c_int = 50; | |
791 | /// IP6 Auth Header | |
792 | pub const IPPROTO_AH: ::c_int = 51; | |
793 | /// Integ. Net Layer Security | |
794 | pub const IPPROTO_INLSP: ::c_int = 52; | |
795 | /// IP with encryption | |
796 | pub const IPPROTO_SWIPE: ::c_int = 53; | |
797 | /// Next Hop Resolution | |
798 | pub const IPPROTO_NHRP: ::c_int = 54; | |
799 | /// IP Mobility | |
800 | pub const IPPROTO_MOBILE: ::c_int = 55; | |
801 | /// Transport Layer Security | |
802 | pub const IPPROTO_TLSP: ::c_int = 56; | |
803 | /// SKIP | |
804 | pub const IPPROTO_SKIP: ::c_int = 57; | |
805 | // IPPROTO_ICMPV6 defined in src/unix/mod.rs | |
806 | /// IP6 no next header | |
807 | pub const IPPROTO_NONE: ::c_int = 59; | |
808 | /// IP6 destination option | |
809 | pub const IPPROTO_DSTOPTS: ::c_int = 60; | |
810 | /// any host internal protocol | |
811 | pub const IPPROTO_AHIP: ::c_int = 61; | |
812 | /// CFTP | |
813 | pub const IPPROTO_CFTP: ::c_int = 62; | |
814 | /// "hello" routing protocol | |
815 | pub const IPPROTO_HELLO: ::c_int = 63; | |
816 | /// SATNET/Backroom EXPAK | |
817 | pub const IPPROTO_SATEXPAK: ::c_int = 64; | |
818 | /// Kryptolan | |
819 | pub const IPPROTO_KRYPTOLAN: ::c_int = 65; | |
820 | /// Remote Virtual Disk | |
821 | pub const IPPROTO_RVD: ::c_int = 66; | |
822 | /// Pluribus Packet Core | |
823 | pub const IPPROTO_IPPC: ::c_int = 67; | |
824 | /// Any distributed FS | |
825 | pub const IPPROTO_ADFS: ::c_int = 68; | |
826 | /// Satnet Monitoring | |
827 | pub const IPPROTO_SATMON: ::c_int = 69; | |
828 | /// VISA Protocol | |
829 | pub const IPPROTO_VISA: ::c_int = 70; | |
830 | /// Packet Core Utility | |
831 | pub const IPPROTO_IPCV: ::c_int = 71; | |
832 | /// Comp. Prot. Net. Executive | |
833 | pub const IPPROTO_CPNX: ::c_int = 72; | |
834 | /// Comp. Prot. HeartBeat | |
835 | pub const IPPROTO_CPHB: ::c_int = 73; | |
836 | /// Wang Span Network | |
837 | pub const IPPROTO_WSN: ::c_int = 74; | |
838 | /// Packet Video Protocol | |
839 | pub const IPPROTO_PVP: ::c_int = 75; | |
840 | /// BackRoom SATNET Monitoring | |
841 | pub const IPPROTO_BRSATMON: ::c_int = 76; | |
842 | /// Sun net disk proto (temp.) | |
843 | pub const IPPROTO_ND: ::c_int = 77; | |
844 | /// WIDEBAND Monitoring | |
845 | pub const IPPROTO_WBMON: ::c_int = 78; | |
846 | /// WIDEBAND EXPAK | |
847 | pub const IPPROTO_WBEXPAK: ::c_int = 79; | |
848 | /// ISO cnlp | |
849 | pub const IPPROTO_EON: ::c_int = 80; | |
850 | /// VMTP | |
851 | pub const IPPROTO_VMTP: ::c_int = 81; | |
852 | /// Secure VMTP | |
853 | pub const IPPROTO_SVMTP: ::c_int = 82; | |
854 | /// Banyon VINES | |
855 | pub const IPPROTO_VINES: ::c_int = 83; | |
856 | /// TTP | |
857 | pub const IPPROTO_TTP: ::c_int = 84; | |
858 | /// NSFNET-IGP | |
859 | pub const IPPROTO_IGP: ::c_int = 85; | |
860 | /// dissimilar gateway prot. | |
861 | pub const IPPROTO_DGP: ::c_int = 86; | |
862 | /// TCF | |
863 | pub const IPPROTO_TCF: ::c_int = 87; | |
864 | /// Cisco/GXS IGRP | |
865 | pub const IPPROTO_IGRP: ::c_int = 88; | |
866 | /// OSPFIGP | |
867 | pub const IPPROTO_OSPFIGP: ::c_int = 89; | |
868 | /// Strite RPC protocol | |
869 | pub const IPPROTO_SRPC: ::c_int = 90; | |
870 | /// Locus Address Resoloution | |
871 | pub const IPPROTO_LARP: ::c_int = 91; | |
872 | /// Multicast Transport | |
873 | pub const IPPROTO_MTP: ::c_int = 92; | |
874 | /// AX.25 Frames | |
875 | pub const IPPROTO_AX25: ::c_int = 93; | |
876 | /// IP encapsulated in IP | |
877 | pub const IPPROTO_IPEIP: ::c_int = 94; | |
878 | /// Mobile Int.ing control | |
879 | pub const IPPROTO_MICP: ::c_int = 95; | |
880 | /// Semaphore Comm. security | |
881 | pub const IPPROTO_SCCSP: ::c_int = 96; | |
882 | /// Ethernet IP encapsulation | |
883 | pub const IPPROTO_ETHERIP: ::c_int = 97; | |
884 | /// encapsulation header | |
885 | pub const IPPROTO_ENCAP: ::c_int = 98; | |
886 | /// any private encr. scheme | |
887 | pub const IPPROTO_APES: ::c_int = 99; | |
888 | /// GMTP | |
889 | pub const IPPROTO_GMTP: ::c_int = 100; | |
890 | /// payload compression (IPComp) | |
891 | pub const IPPROTO_IPCOMP: ::c_int = 108; | |
892 | /// SCTP | |
893 | pub const IPPROTO_SCTP: ::c_int = 132; | |
894 | /// IPv6 Mobility Header | |
895 | pub const IPPROTO_MH: ::c_int = 135; | |
896 | /// UDP-Lite | |
897 | pub const IPPROTO_UDPLITE: ::c_int = 136; | |
898 | /// IP6 Host Identity Protocol | |
899 | pub const IPPROTO_HIP: ::c_int = 139; | |
900 | /// IP6 Shim6 Protocol | |
901 | pub const IPPROTO_SHIM6: ::c_int = 140; | |
902 | ||
903 | /* 101-254: Partly Unassigned */ | |
904 | /// Protocol Independent Mcast | |
905 | pub const IPPROTO_PIM: ::c_int = 103; | |
906 | /// CARP | |
907 | pub const IPPROTO_CARP: ::c_int = 112; | |
908 | /// PGM | |
909 | pub const IPPROTO_PGM: ::c_int = 113; | |
910 | /// MPLS-in-IP | |
911 | pub const IPPROTO_MPLS: ::c_int = 137; | |
912 | /// PFSYNC | |
913 | pub const IPPROTO_PFSYNC: ::c_int = 240; | |
914 | ||
915 | /* 255: Reserved */ | |
916 | /* BSD Private, local use, namespace incursion, no longer used */ | |
917 | /// OLD divert pseudo-proto | |
918 | pub const IPPROTO_OLD_DIVERT: ::c_int = 254; | |
919 | pub const IPPROTO_MAX: ::c_int = 256; | |
920 | /// last return value of *_input(), meaning "all job for this pkt is done". | |
921 | pub const IPPROTO_DONE: ::c_int = 257; | |
922 | ||
923 | /* Only used internally, so can be outside the range of valid IP protocols. */ | |
924 | /// divert pseudo-protocol | |
7cac9316 | 925 | pub const IPPROTO_DIVERT: ::c_int = 258; |
ea8adc8c XL |
926 | /// SeND pseudo-protocol |
927 | pub const IPPROTO_SEND: ::c_int = 259; | |
7cac9316 | 928 | |
69743fb6 XL |
929 | // sys/netinet/TCP.h |
930 | pub const TCP_MD5SIG: ::c_int = 16; | |
931 | pub const TCP_INFO: ::c_int = 32; | |
932 | pub const TCP_CONGESTION: ::c_int = 64; | |
933 | pub const TCP_CCALGOOPT: ::c_int = 65; | |
934 | pub const TCP_KEEPINIT: ::c_int = 128; | |
935 | pub const TCP_FASTOPEN: ::c_int = 1025; | |
936 | pub const TCP_PCAP_OUT: ::c_int = 2048; | |
937 | pub const TCP_PCAP_IN: ::c_int = 4096; | |
938 | ||
abe05a73 | 939 | pub const IP_BINDANY: ::c_int = 24; |
532ac7d7 XL |
940 | pub const IP_BINDMULTI: ::c_int = 25; |
941 | pub const IP_RSS_LISTEN_BUCKET: ::c_int = 26; | |
e74abb32 XL |
942 | pub const IP_ORIGDSTADDR: ::c_int = 27; |
943 | pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR; | |
532ac7d7 | 944 | |
0731742a | 945 | pub const IP_RECVTOS: ::c_int = 68; |
abe05a73 | 946 | |
532ac7d7 XL |
947 | pub const IPV6_ORIGDSTADDR: ::c_int = 72; |
948 | pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR; | |
949 | ||
8bb4bdeb XL |
950 | pub const PF_SLOW: ::c_int = AF_SLOW; |
951 | pub const PF_SCLUSTER: ::c_int = AF_SCLUSTER; | |
952 | pub const PF_ARP: ::c_int = AF_ARP; | |
953 | pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; | |
954 | pub const PF_IEEE80211: ::c_int = AF_IEEE80211; | |
955 | pub const PF_INET_SDP: ::c_int = AF_INET_SDP; | |
956 | pub const PF_INET6_SDP: ::c_int = AF_INET6_SDP; | |
8bb4bdeb XL |
957 | |
958 | pub const NET_RT_DUMP: ::c_int = 1; | |
959 | pub const NET_RT_FLAGS: ::c_int = 2; | |
960 | pub const NET_RT_IFLIST: ::c_int = 3; | |
961 | pub const NET_RT_IFMALIST: ::c_int = 4; | |
962 | pub const NET_RT_IFLISTL: ::c_int = 5; | |
963 | ||
7cac9316 XL |
964 | // System V IPC |
965 | pub const IPC_PRIVATE: ::key_t = 0; | |
966 | pub const IPC_CREAT: ::c_int = 0o1000; | |
967 | pub const IPC_EXCL: ::c_int = 0o2000; | |
968 | pub const IPC_NOWAIT: ::c_int = 0o4000; | |
969 | pub const IPC_RMID: ::c_int = 0; | |
970 | pub const IPC_SET: ::c_int = 1; | |
971 | pub const IPC_STAT: ::c_int = 2; | |
972 | pub const IPC_INFO: ::c_int = 3; | |
e74abb32 XL |
973 | pub const IPC_R: ::c_int = 0o400; |
974 | pub const IPC_W: ::c_int = 0o200; | |
975 | pub const IPC_M: ::c_int = 0o10000; | |
7cac9316 XL |
976 | pub const MSG_NOERROR: ::c_int = 0o10000; |
977 | pub const SHM_RDONLY: ::c_int = 0o10000; | |
978 | pub const SHM_RND: ::c_int = 0o20000; | |
979 | pub const SHM_R: ::c_int = 0o400; | |
980 | pub const SHM_W: ::c_int = 0o200; | |
981 | pub const SHM_LOCK: ::c_int = 11; | |
982 | pub const SHM_UNLOCK: ::c_int = 12; | |
983 | pub const SHM_STAT: ::c_int = 13; | |
984 | pub const SHM_INFO: ::c_int = 14; | |
ff7c6d11 | 985 | pub const SHM_ANON: *mut ::c_char = 1 as *mut ::c_char; |
7cac9316 | 986 | |
8bb4bdeb XL |
987 | // The *_MAXID constants never should've been used outside of the |
988 | // FreeBSD base system. And with the exception of CTL_P1003_1B_MAXID, | |
989 | // they were all removed in svn r262489. They remain here for backwards | |
990 | // compatibility only, and are scheduled to be removed in libc 1.0.0. | |
991 | #[doc(hidden)] | |
e74abb32 | 992 | #[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] |
8bb4bdeb XL |
993 | pub const CTL_MAXID: ::c_int = 10; |
994 | #[doc(hidden)] | |
e74abb32 | 995 | #[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] |
8bb4bdeb XL |
996 | pub const KERN_MAXID: ::c_int = 38; |
997 | #[doc(hidden)] | |
e74abb32 | 998 | #[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] |
8bb4bdeb XL |
999 | pub const HW_MAXID: ::c_int = 13; |
1000 | #[doc(hidden)] | |
e74abb32 | 1001 | #[deprecated(since = "0.2.54", note = "Removed in FreeBSD 11")] |
8bb4bdeb XL |
1002 | pub const USER_MAXID: ::c_int = 21; |
1003 | #[doc(hidden)] | |
476ff2be SL |
1004 | pub const CTL_P1003_1B_MAXID: ::c_int = 26; |
1005 | ||
8bb4bdeb XL |
1006 | pub const MSG_NOTIFICATION: ::c_int = 0x00002000; |
1007 | pub const MSG_NBIO: ::c_int = 0x00004000; | |
1008 | pub const MSG_COMPAT: ::c_int = 0x00008000; | |
1009 | pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00040000; | |
476ff2be SL |
1010 | pub const MSG_NOSIGNAL: ::c_int = 0x20000; |
1011 | ||
e74abb32 | 1012 | // utmpx entry types |
8bb4bdeb XL |
1013 | pub const EMPTY: ::c_short = 0; |
1014 | pub const BOOT_TIME: ::c_short = 1; | |
1015 | pub const OLD_TIME: ::c_short = 2; | |
1016 | pub const NEW_TIME: ::c_short = 3; | |
1017 | pub const USER_PROCESS: ::c_short = 4; | |
1018 | pub const INIT_PROCESS: ::c_short = 5; | |
1019 | pub const LOGIN_PROCESS: ::c_short = 6; | |
1020 | pub const DEAD_PROCESS: ::c_short = 7; | |
1021 | pub const SHUTDOWN_TIME: ::c_short = 8; | |
e74abb32 XL |
1022 | // utmp database types |
1023 | pub const UTXDB_ACTIVE: ::c_int = 0; | |
1024 | pub const UTXDB_LASTLOGIN: ::c_int = 1; | |
1025 | pub const UTXDB_LOG: ::c_int = 2; | |
8bb4bdeb | 1026 | |
ba9703b0 XL |
1027 | pub const LC_COLLATE_MASK: ::c_int = 1 << 0; |
1028 | pub const LC_CTYPE_MASK: ::c_int = 1 << 1; | |
1029 | pub const LC_MONETARY_MASK: ::c_int = 1 << 2; | |
1030 | pub const LC_NUMERIC_MASK: ::c_int = 1 << 3; | |
1031 | pub const LC_TIME_MASK: ::c_int = 1 << 4; | |
1032 | pub const LC_MESSAGES_MASK: ::c_int = 1 << 5; | |
8bb4bdeb | 1033 | pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK |
e74abb32 XL |
1034 | | LC_CTYPE_MASK |
1035 | | LC_MESSAGES_MASK | |
1036 | | LC_MONETARY_MASK | |
1037 | | LC_NUMERIC_MASK | |
1038 | | LC_TIME_MASK; | |
8bb4bdeb XL |
1039 | |
1040 | pub const WSTOPPED: ::c_int = 2; // same as WUNTRACED | |
1041 | pub const WCONTINUED: ::c_int = 4; | |
1042 | pub const WNOWAIT: ::c_int = 8; | |
1043 | pub const WEXITED: ::c_int = 16; | |
1044 | pub const WTRAPPED: ::c_int = 32; | |
1045 | ||
1046 | // FreeBSD defines a great many more of these, we only expose the | |
1047 | // standardized ones. | |
1048 | pub const P_PID: idtype_t = 0; | |
1049 | pub const P_PGID: idtype_t = 2; | |
1050 | pub const P_ALL: idtype_t = 7; | |
1051 | ||
e74abb32 XL |
1052 | pub const UTIME_OMIT: c_long = -2; |
1053 | pub const UTIME_NOW: c_long = -1; | |
1054 | ||
7cac9316 XL |
1055 | pub const B460800: ::speed_t = 460800; |
1056 | pub const B921600: ::speed_t = 921600; | |
1057 | ||
041b39d2 XL |
1058 | pub const AT_FDCWD: ::c_int = -100; |
1059 | pub const AT_EACCESS: ::c_int = 0x100; | |
1060 | pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200; | |
1061 | pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; | |
1062 | pub const AT_REMOVEDIR: ::c_int = 0x800; | |
1063 | ||
1064 | pub const TABDLY: ::tcflag_t = 0x00000004; | |
1065 | pub const TAB0: ::tcflag_t = 0x00000000; | |
1066 | pub const TAB3: ::tcflag_t = 0x00000004; | |
1067 | ||
1068 | pub const _PC_ACL_NFS4: ::c_int = 64; | |
1069 | ||
1070 | pub const _SC_CPUSET_SIZE: ::c_int = 122; | |
1071 | ||
abe05a73 XL |
1072 | pub const XU_NGROUPS: ::c_int = 16; |
1073 | pub const XUCRED_VERSION: ::c_uint = 0; | |
1074 | ||
2c00a5a8 XL |
1075 | // Flags which can be passed to pdfork(2) |
1076 | pub const PD_DAEMON: ::c_int = 0x00000001; | |
1077 | pub const PD_CLOEXEC: ::c_int = 0x00000002; | |
1078 | pub const PD_ALLOWED_AT_FORK: ::c_int = PD_DAEMON | PD_CLOEXEC; | |
1079 | ||
1080 | // Values for struct rtprio (type_ field) | |
1081 | pub const RTP_PRIO_REALTIME: ::c_ushort = 2; | |
1082 | pub const RTP_PRIO_NORMAL: ::c_ushort = 3; | |
1083 | pub const RTP_PRIO_IDLE: ::c_ushort = 4; | |
1084 | ||
1085 | pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01; | |
1086 | pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02; | |
1087 | pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04; | |
1088 | pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x08; | |
1089 | pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10; | |
1090 | pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20; | |
1091 | ||
69743fb6 | 1092 | // Flags for chflags(2) |
e74abb32 XL |
1093 | pub const UF_SYSTEM: ::c_ulong = 0x00000080; |
1094 | pub const UF_SPARSE: ::c_ulong = 0x00000100; | |
1095 | pub const UF_OFFLINE: ::c_ulong = 0x00000200; | |
1096 | pub const UF_REPARSE: ::c_ulong = 0x00000400; | |
1097 | pub const UF_ARCHIVE: ::c_ulong = 0x00000800; | |
1098 | pub const UF_READONLY: ::c_ulong = 0x00001000; | |
1099 | pub const UF_HIDDEN: ::c_ulong = 0x00008000; | |
1100 | pub const SF_SNAPSHOT: ::c_ulong = 0x00200000; | |
69743fb6 | 1101 | |
532ac7d7 XL |
1102 | fn _ALIGN(p: usize) -> usize { |
1103 | (p + _ALIGNBYTES) & !_ALIGNBYTES | |
1104 | } | |
1105 | ||
1106 | f! { | |
1107 | pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar { | |
1108 | (cmsg as *mut ::c_uchar) | |
1109 | .offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize) | |
1110 | } | |
1111 | ||
1112 | pub fn CMSG_LEN(length: ::c_uint) -> ::c_uint { | |
1113 | _ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length | |
1114 | } | |
1115 | ||
1116 | pub fn CMSG_NXTHDR(mhdr: *const ::msghdr, cmsg: *const ::cmsghdr) | |
1117 | -> *mut ::cmsghdr | |
1118 | { | |
1119 | if cmsg.is_null() { | |
1120 | return ::CMSG_FIRSTHDR(mhdr); | |
1121 | }; | |
1122 | let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) | |
1123 | + _ALIGN(::mem::size_of::<::cmsghdr>()); | |
1124 | let max = (*mhdr).msg_control as usize | |
1125 | + (*mhdr).msg_controllen as usize; | |
1126 | if next > max { | |
1127 | 0 as *mut ::cmsghdr | |
1128 | } else { | |
1129 | (cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize)) | |
1130 | as *mut ::cmsghdr | |
1131 | } | |
1132 | } | |
1133 | ||
1134 | pub fn CMSG_SPACE(length: ::c_uint) -> ::c_uint { | |
1135 | (_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize)) | |
1136 | as ::c_uint | |
1137 | } | |
1138 | ||
1139 | pub fn uname(buf: *mut ::utsname) -> ::c_int { | |
1140 | __xuname(256, buf as *mut ::c_void) | |
1141 | } | |
1142 | } | |
1143 | ||
e74abb32 | 1144 | extern "C" { |
476ff2be SL |
1145 | pub fn __error() -> *mut ::c_int; |
1146 | ||
ea8adc8c XL |
1147 | pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; |
1148 | pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; | |
e74abb32 XL |
1149 | pub fn clock_settime( |
1150 | clk_id: ::clockid_t, | |
1151 | tp: *const ::timespec, | |
1152 | ) -> ::c_int; | |
1153 | ||
1154 | pub fn extattr_delete_fd( | |
1155 | fd: ::c_int, | |
1156 | attrnamespace: ::c_int, | |
1157 | attrname: *const ::c_char, | |
1158 | ) -> ::c_int; | |
1159 | pub fn extattr_delete_file( | |
1160 | path: *const ::c_char, | |
1161 | attrnamespace: ::c_int, | |
1162 | attrname: *const ::c_char, | |
1163 | ) -> ::c_int; | |
1164 | pub fn extattr_delete_link( | |
1165 | path: *const ::c_char, | |
1166 | attrnamespace: ::c_int, | |
1167 | attrname: *const ::c_char, | |
1168 | ) -> ::c_int; | |
1169 | pub fn extattr_get_fd( | |
1170 | fd: ::c_int, | |
1171 | attrnamespace: ::c_int, | |
1172 | attrname: *const ::c_char, | |
1173 | data: *mut ::c_void, | |
1174 | nbytes: ::size_t, | |
1175 | ) -> ::ssize_t; | |
1176 | pub fn extattr_get_file( | |
1177 | path: *const ::c_char, | |
1178 | attrnamespace: ::c_int, | |
1179 | attrname: *const ::c_char, | |
1180 | data: *mut ::c_void, | |
1181 | nbytes: ::size_t, | |
1182 | ) -> ::ssize_t; | |
1183 | pub fn extattr_get_link( | |
1184 | path: *const ::c_char, | |
1185 | attrnamespace: ::c_int, | |
1186 | attrname: *const ::c_char, | |
1187 | data: *mut ::c_void, | |
1188 | nbytes: ::size_t, | |
1189 | ) -> ::ssize_t; | |
1190 | pub fn extattr_list_fd( | |
1191 | fd: ::c_int, | |
1192 | attrnamespace: ::c_int, | |
1193 | data: *mut ::c_void, | |
1194 | nbytes: ::size_t, | |
1195 | ) -> ::ssize_t; | |
1196 | pub fn extattr_list_file( | |
1197 | path: *const ::c_char, | |
1198 | attrnamespace: ::c_int, | |
1199 | data: *mut ::c_void, | |
1200 | nbytes: ::size_t, | |
1201 | ) -> ::ssize_t; | |
1202 | pub fn extattr_list_link( | |
1203 | path: *const ::c_char, | |
1204 | attrnamespace: ::c_int, | |
1205 | data: *mut ::c_void, | |
1206 | nbytes: ::size_t, | |
1207 | ) -> ::ssize_t; | |
1208 | pub fn extattr_set_fd( | |
1209 | fd: ::c_int, | |
1210 | attrnamespace: ::c_int, | |
1211 | attrname: *const ::c_char, | |
1212 | data: *const ::c_void, | |
1213 | nbytes: ::size_t, | |
1214 | ) -> ::ssize_t; | |
1215 | pub fn extattr_set_file( | |
1216 | path: *const ::c_char, | |
1217 | attrnamespace: ::c_int, | |
1218 | attrname: *const ::c_char, | |
1219 | data: *const ::c_void, | |
1220 | nbytes: ::size_t, | |
1221 | ) -> ::ssize_t; | |
1222 | pub fn extattr_set_link( | |
1223 | path: *const ::c_char, | |
1224 | attrnamespace: ::c_int, | |
1225 | attrname: *const ::c_char, | |
1226 | data: *const ::c_void, | |
1227 | nbytes: ::size_t, | |
1228 | ) -> ::ssize_t; | |
69743fb6 | 1229 | |
8bb4bdeb XL |
1230 | pub fn jail(jail: *mut ::jail) -> ::c_int; |
1231 | pub fn jail_attach(jid: ::c_int) -> ::c_int; | |
1232 | pub fn jail_remove(jid: ::c_int) -> ::c_int; | |
e74abb32 XL |
1233 | pub fn jail_get( |
1234 | iov: *mut ::iovec, | |
1235 | niov: ::c_uint, | |
1236 | flags: ::c_int, | |
1237 | ) -> ::c_int; | |
1238 | pub fn jail_set( | |
1239 | iov: *mut ::iovec, | |
1240 | niov: ::c_uint, | |
1241 | flags: ::c_int, | |
1242 | ) -> ::c_int; | |
476ff2be | 1243 | |
0531ce1d | 1244 | pub fn fdatasync(fd: ::c_int) -> ::c_int; |
e74abb32 XL |
1245 | pub fn posix_fallocate( |
1246 | fd: ::c_int, | |
1247 | offset: ::off_t, | |
1248 | len: ::off_t, | |
1249 | ) -> ::c_int; | |
1250 | pub fn posix_fadvise( | |
1251 | fd: ::c_int, | |
1252 | offset: ::off_t, | |
1253 | len: ::off_t, | |
1254 | advise: ::c_int, | |
1255 | ) -> ::c_int; | |
476ff2be | 1256 | pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int; |
e74abb32 XL |
1257 | pub fn mkostemps( |
1258 | template: *mut ::c_char, | |
1259 | suffixlen: ::c_int, | |
1260 | flags: ::c_int, | |
1261 | ) -> ::c_int; | |
8bb4bdeb XL |
1262 | |
1263 | pub fn getutxuser(user: *const ::c_char) -> *mut utmpx; | |
1264 | pub fn setutxdb(_type: ::c_int, file: *const ::c_char) -> ::c_int; | |
1265 | ||
e74abb32 XL |
1266 | pub fn aio_waitcomplete( |
1267 | iocbp: *mut *mut aiocb, | |
1268 | timeout: *mut ::timespec, | |
1269 | ) -> ::ssize_t; | |
532ac7d7 | 1270 | pub fn mq_getfd_np(mqd: ::mqd_t) -> ::c_int; |
8bb4bdeb | 1271 | |
e74abb32 XL |
1272 | pub fn waitid( |
1273 | idtype: idtype_t, | |
1274 | id: ::id_t, | |
1275 | infop: *mut ::siginfo_t, | |
1276 | options: ::c_int, | |
1277 | ) -> ::c_int; | |
7cac9316 XL |
1278 | |
1279 | pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; | |
1280 | pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; | |
e74abb32 XL |
1281 | pub fn shmat( |
1282 | shmid: ::c_int, | |
1283 | shmaddr: *const ::c_void, | |
1284 | shmflg: ::c_int, | |
1285 | ) -> *mut ::c_void; | |
7cac9316 | 1286 | pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; |
e74abb32 XL |
1287 | pub fn shmctl( |
1288 | shmid: ::c_int, | |
1289 | cmd: ::c_int, | |
1290 | buf: *mut ::shmid_ds, | |
1291 | ) -> ::c_int; | |
1292 | pub fn msgctl( | |
1293 | msqid: ::c_int, | |
1294 | cmd: ::c_int, | |
1295 | buf: *mut ::msqid_ds, | |
1296 | ) -> ::c_int; | |
7cac9316 | 1297 | pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; |
e74abb32 XL |
1298 | pub fn msgsnd( |
1299 | msqid: ::c_int, | |
1300 | msgp: *const ::c_void, | |
1301 | msgsz: ::size_t, | |
1302 | msgflg: ::c_int, | |
1303 | ) -> ::c_int; | |
041b39d2 | 1304 | pub fn cfmakesane(termios: *mut ::termios); |
e74abb32 XL |
1305 | pub fn fexecve( |
1306 | fd: ::c_int, | |
1307 | argv: *const *const ::c_char, | |
1308 | envp: *const *const ::c_char, | |
1309 | ) -> ::c_int; | |
2c00a5a8 XL |
1310 | |
1311 | pub fn pdfork(fdp: *mut ::c_int, flags: ::c_int) -> ::pid_t; | |
1312 | pub fn pdgetpid(fd: ::c_int, pidp: *mut ::pid_t) -> ::c_int; | |
1313 | pub fn pdkill(fd: ::c_int, signum: ::c_int) -> ::c_int; | |
1314 | ||
e74abb32 XL |
1315 | pub fn rtprio_thread( |
1316 | function: ::c_int, | |
1317 | lwpid: ::lwpid_t, | |
1318 | rtp: *mut super::rtprio, | |
1319 | ) -> ::c_int; | |
1320 | ||
1321 | pub fn posix_spawn( | |
1322 | pid: *mut ::pid_t, | |
1323 | path: *const ::c_char, | |
1324 | file_actions: *const ::posix_spawn_file_actions_t, | |
1325 | attrp: *const ::posix_spawnattr_t, | |
1326 | argv: *const *mut ::c_char, | |
1327 | envp: *const *mut ::c_char, | |
1328 | ) -> ::c_int; | |
1329 | pub fn posix_spawnp( | |
1330 | pid: *mut ::pid_t, | |
1331 | file: *const ::c_char, | |
1332 | file_actions: *const ::posix_spawn_file_actions_t, | |
1333 | attrp: *const ::posix_spawnattr_t, | |
1334 | argv: *const *mut ::c_char, | |
1335 | envp: *const *mut ::c_char, | |
1336 | ) -> ::c_int; | |
2c00a5a8 XL |
1337 | pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int; |
1338 | pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int; | |
e74abb32 XL |
1339 | pub fn posix_spawnattr_getsigdefault( |
1340 | attr: *const posix_spawnattr_t, | |
1341 | default: *mut ::sigset_t, | |
1342 | ) -> ::c_int; | |
1343 | pub fn posix_spawnattr_setsigdefault( | |
1344 | attr: *mut posix_spawnattr_t, | |
1345 | default: *const ::sigset_t, | |
1346 | ) -> ::c_int; | |
1347 | pub fn posix_spawnattr_getsigmask( | |
1348 | attr: *const posix_spawnattr_t, | |
1349 | default: *mut ::sigset_t, | |
1350 | ) -> ::c_int; | |
1351 | pub fn posix_spawnattr_setsigmask( | |
1352 | attr: *mut posix_spawnattr_t, | |
1353 | default: *const ::sigset_t, | |
1354 | ) -> ::c_int; | |
1355 | pub fn posix_spawnattr_getflags( | |
1356 | attr: *const posix_spawnattr_t, | |
1357 | flags: *mut ::c_short, | |
1358 | ) -> ::c_int; | |
1359 | pub fn posix_spawnattr_setflags( | |
1360 | attr: *mut posix_spawnattr_t, | |
1361 | flags: ::c_short, | |
1362 | ) -> ::c_int; | |
1363 | pub fn posix_spawnattr_getpgroup( | |
1364 | attr: *const posix_spawnattr_t, | |
1365 | flags: *mut ::pid_t, | |
1366 | ) -> ::c_int; | |
1367 | pub fn posix_spawnattr_setpgroup( | |
1368 | attr: *mut posix_spawnattr_t, | |
1369 | flags: ::pid_t, | |
1370 | ) -> ::c_int; | |
1371 | pub fn posix_spawnattr_getschedpolicy( | |
1372 | attr: *const posix_spawnattr_t, | |
1373 | flags: *mut ::c_int, | |
1374 | ) -> ::c_int; | |
1375 | pub fn posix_spawnattr_setschedpolicy( | |
1376 | attr: *mut posix_spawnattr_t, | |
1377 | flags: ::c_int, | |
1378 | ) -> ::c_int; | |
2c00a5a8 XL |
1379 | pub fn posix_spawnattr_getschedparam( |
1380 | attr: *const posix_spawnattr_t, | |
1381 | param: *mut ::sched_param, | |
1382 | ) -> ::c_int; | |
1383 | pub fn posix_spawnattr_setschedparam( | |
1384 | attr: *mut posix_spawnattr_t, | |
1385 | param: *const ::sched_param, | |
1386 | ) -> ::c_int; | |
1387 | ||
1388 | pub fn posix_spawn_file_actions_init( | |
1389 | actions: *mut posix_spawn_file_actions_t, | |
1390 | ) -> ::c_int; | |
1391 | pub fn posix_spawn_file_actions_destroy( | |
1392 | actions: *mut posix_spawn_file_actions_t, | |
1393 | ) -> ::c_int; | |
1394 | pub fn posix_spawn_file_actions_addopen( | |
1395 | actions: *mut posix_spawn_file_actions_t, | |
1396 | fd: ::c_int, | |
1397 | path: *const ::c_char, | |
1398 | oflag: ::c_int, | |
1399 | mode: ::mode_t, | |
1400 | ) -> ::c_int; | |
1401 | pub fn posix_spawn_file_actions_addclose( | |
1402 | actions: *mut posix_spawn_file_actions_t, | |
1403 | fd: ::c_int, | |
1404 | ) -> ::c_int; | |
1405 | pub fn posix_spawn_file_actions_adddup2( | |
1406 | actions: *mut posix_spawn_file_actions_t, | |
1407 | fd: ::c_int, | |
1408 | newfd: ::c_int, | |
1409 | ) -> ::c_int; | |
b7449926 | 1410 | |
e74abb32 XL |
1411 | #[cfg_attr( |
1412 | all(target_os = "freebsd", freebsd11), | |
1413 | link_name = "statfs@FBSD_1.0" | |
1414 | )] | |
b7449926 | 1415 | pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; |
e74abb32 XL |
1416 | #[cfg_attr( |
1417 | all(target_os = "freebsd", freebsd11), | |
1418 | link_name = "fstatfs@FBSD_1.0" | |
1419 | )] | |
b7449926 | 1420 | pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; |
69743fb6 XL |
1421 | |
1422 | pub fn dup3(src: ::c_int, dst: ::c_int, flags: ::c_int) -> ::c_int; | |
532ac7d7 XL |
1423 | pub fn __xuname(nmln: ::c_int, buf: *mut ::c_void) -> ::c_int; |
1424 | ||
e74abb32 XL |
1425 | pub fn sendmmsg( |
1426 | sockfd: ::c_int, | |
1427 | msgvec: *mut ::mmsghdr, | |
1428 | vlen: ::size_t, | |
1429 | flags: ::c_int, | |
1430 | ) -> ::ssize_t; | |
1431 | pub fn recvmmsg( | |
1432 | sockfd: ::c_int, | |
1433 | msgvec: *mut ::mmsghdr, | |
1434 | vlen: ::size_t, | |
1435 | flags: ::c_int, | |
1436 | timeout: *const ::timespec, | |
1437 | ) -> ::ssize_t; | |
ba9703b0 XL |
1438 | pub fn memmem( |
1439 | haystack: *const ::c_void, | |
1440 | haystacklen: ::size_t, | |
1441 | needle: *const ::c_void, | |
1442 | needlelen: ::size_t, | |
1443 | ) -> *mut ::c_void; | |
69743fb6 XL |
1444 | } |
1445 | ||
1446 | #[link(name = "util")] | |
e74abb32 XL |
1447 | extern "C" { |
1448 | pub fn extattr_namespace_to_string( | |
1449 | attrnamespace: ::c_int, | |
1450 | string: *mut *mut ::c_char, | |
1451 | ) -> ::c_int; | |
1452 | pub fn extattr_string_to_namespace( | |
1453 | string: *const ::c_char, | |
1454 | attrnamespace: *mut ::c_int, | |
1455 | ) -> ::c_int; | |
476ff2be SL |
1456 | } |
1457 | ||
416331ca XL |
1458 | cfg_if! { |
1459 | if #[cfg(freebsd12)] { | |
1460 | mod freebsd12; | |
1461 | pub use self::freebsd12::*; | |
e1599b0c XL |
1462 | } else if #[cfg(freebsd13)] { |
1463 | mod freebsd12; | |
1464 | pub use self::freebsd12::*; | |
e74abb32 | 1465 | } else if #[cfg(any(freebsd10, freebsd11))] { |
416331ca XL |
1466 | mod freebsd11; |
1467 | pub use self::freebsd11::*; | |
e1599b0c XL |
1468 | } else { |
1469 | // Unknown freebsd version | |
416331ca XL |
1470 | } |
1471 | } | |
1472 | ||
476ff2be SL |
1473 | cfg_if! { |
1474 | if #[cfg(target_arch = "x86")] { | |
1475 | mod x86; | |
1476 | pub use self::x86::*; | |
1477 | } else if #[cfg(target_arch = "x86_64")] { | |
1478 | mod x86_64; | |
1479 | pub use self::x86_64::*; | |
8bb4bdeb XL |
1480 | } else if #[cfg(target_arch = "aarch64")] { |
1481 | mod aarch64; | |
1482 | pub use self::aarch64::*; | |
532ac7d7 XL |
1483 | } else if #[cfg(target_arch = "arm")] { |
1484 | mod arm; | |
1485 | pub use self::arm::*; | |
1486 | } else if #[cfg(target_arch = "powerpc64")] { | |
1487 | mod powerpc64; | |
1488 | pub use self::powerpc64::*; | |
476ff2be SL |
1489 | } else { |
1490 | // Unknown target_arch | |
1491 | } | |
1492 | } |