]> git.proxmox.com Git - rustc.git/blob - vendor/libc/src/unix/bsd/freebsdlike/mod.rs
New upstream version 1.38.0+dfsg1
[rustc.git] / vendor / libc / src / unix / bsd / freebsdlike / mod.rs
1 pub type mode_t = u16;
2 pub type pthread_attr_t = *mut ::c_void;
3 pub type rlim_t = i64;
4 pub type pthread_mutex_t = *mut ::c_void;
5 pub type pthread_mutexattr_t = *mut ::c_void;
6 pub type pthread_cond_t = *mut ::c_void;
7 pub type pthread_condattr_t = *mut ::c_void;
8 pub type pthread_rwlock_t = *mut ::c_void;
9 pub type pthread_rwlockattr_t = *mut ::c_void;
10 pub type pthread_key_t = ::c_int;
11 pub type tcflag_t = ::c_uint;
12 pub type speed_t = ::c_uint;
13 pub type nl_item = ::c_int;
14 pub type id_t = i64;
15 pub type vm_size_t = ::uintptr_t;
16
17 #[cfg_attr(feature = "extra_traits", derive(Debug))]
18 pub enum timezone {}
19 impl ::Copy for timezone {}
20 impl ::Clone for timezone {
21 fn clone(&self) -> timezone { *self }
22 }
23
24 impl siginfo_t {
25 pub unsafe fn si_addr(&self) -> *mut ::c_void {
26 self.si_addr
27 }
28
29 pub unsafe fn si_value(&self) -> ::sigval {
30 self.si_value
31 }
32 }
33
34 s! {
35 pub struct in_addr {
36 pub s_addr: ::in_addr_t,
37 }
38
39 pub struct ip_mreq {
40 pub imr_multiaddr: in_addr,
41 pub imr_interface: in_addr,
42 }
43
44 pub struct glob_t {
45 pub gl_pathc: ::size_t,
46 pub gl_matchc: ::size_t,
47 pub gl_offs: ::size_t,
48 pub gl_flags: ::c_int,
49 pub gl_pathv: *mut *mut ::c_char,
50 __unused3: *mut ::c_void,
51 __unused4: *mut ::c_void,
52 __unused5: *mut ::c_void,
53 __unused6: *mut ::c_void,
54 __unused7: *mut ::c_void,
55 __unused8: *mut ::c_void,
56 }
57
58 pub struct addrinfo {
59 pub ai_flags: ::c_int,
60 pub ai_family: ::c_int,
61 pub ai_socktype: ::c_int,
62 pub ai_protocol: ::c_int,
63 pub ai_addrlen: ::socklen_t,
64 pub ai_canonname: *mut ::c_char,
65 pub ai_addr: *mut ::sockaddr,
66 pub ai_next: *mut addrinfo,
67 }
68
69 pub struct sigset_t {
70 bits: [u32; 4],
71 }
72
73 pub struct siginfo_t {
74 pub si_signo: ::c_int,
75 pub si_errno: ::c_int,
76 pub si_code: ::c_int,
77 pub si_pid: ::pid_t,
78 pub si_uid: ::uid_t,
79 pub si_status: ::c_int,
80 pub si_addr: *mut ::c_void,
81 pub si_value: ::sigval,
82 _pad1: ::c_long,
83 _pad2: [::c_int; 7],
84 }
85
86 pub struct sigaction {
87 pub sa_sigaction: ::sighandler_t,
88 pub sa_flags: ::c_int,
89 pub sa_mask: sigset_t,
90 }
91
92 pub struct sched_param {
93 pub sched_priority: ::c_int,
94 }
95
96 pub struct Dl_info {
97 pub dli_fname: *const ::c_char,
98 pub dli_fbase: *mut ::c_void,
99 pub dli_sname: *const ::c_char,
100 pub dli_saddr: *mut ::c_void,
101 }
102
103 pub struct sockaddr_in {
104 pub sin_len: u8,
105 pub sin_family: ::sa_family_t,
106 pub sin_port: ::in_port_t,
107 pub sin_addr: ::in_addr,
108 pub sin_zero: [::c_char; 8],
109 }
110
111 pub struct termios {
112 pub c_iflag: ::tcflag_t,
113 pub c_oflag: ::tcflag_t,
114 pub c_cflag: ::tcflag_t,
115 pub c_lflag: ::tcflag_t,
116 pub c_cc: [::cc_t; ::NCCS],
117 pub c_ispeed: ::speed_t,
118 pub c_ospeed: ::speed_t,
119 }
120
121 pub struct flock {
122 pub l_start: ::off_t,
123 pub l_len: ::off_t,
124 pub l_pid: ::pid_t,
125 pub l_type: ::c_short,
126 pub l_whence: ::c_short,
127 #[cfg(not(target_os = "dragonfly"))]
128 pub l_sysid: ::c_int,
129 }
130
131 pub struct sf_hdtr {
132 pub headers: *mut ::iovec,
133 pub hdr_cnt: ::c_int,
134 pub trailers: *mut ::iovec,
135 pub trl_cnt: ::c_int,
136 }
137
138 pub struct lconv {
139 pub decimal_point: *mut ::c_char,
140 pub thousands_sep: *mut ::c_char,
141 pub grouping: *mut ::c_char,
142 pub int_curr_symbol: *mut ::c_char,
143 pub currency_symbol: *mut ::c_char,
144 pub mon_decimal_point: *mut ::c_char,
145 pub mon_thousands_sep: *mut ::c_char,
146 pub mon_grouping: *mut ::c_char,
147 pub positive_sign: *mut ::c_char,
148 pub negative_sign: *mut ::c_char,
149 pub int_frac_digits: ::c_char,
150 pub frac_digits: ::c_char,
151 pub p_cs_precedes: ::c_char,
152 pub p_sep_by_space: ::c_char,
153 pub n_cs_precedes: ::c_char,
154 pub n_sep_by_space: ::c_char,
155 pub p_sign_posn: ::c_char,
156 pub n_sign_posn: ::c_char,
157 pub int_p_cs_precedes: ::c_char,
158 pub int_n_cs_precedes: ::c_char,
159 pub int_p_sep_by_space: ::c_char,
160 pub int_n_sep_by_space: ::c_char,
161 pub int_p_sign_posn: ::c_char,
162 pub int_n_sign_posn: ::c_char,
163 }
164
165 pub struct cmsgcred {
166 pub cmcred_pid: ::pid_t,
167 pub cmcred_uid: ::uid_t,
168 pub cmcred_euid: ::uid_t,
169 pub cmcred_gid: ::gid_t,
170 pub cmcred_ngroups: ::c_short,
171 pub cmcred_groups: [::gid_t; CMGROUP_MAX],
172 }
173
174 pub struct rtprio {
175 pub type_: ::c_ushort,
176 pub prio: ::c_ushort,
177 }
178
179 pub struct in6_pktinfo {
180 pub ipi6_addr: ::in6_addr,
181 pub ipi6_ifindex: ::c_uint,
182 }
183
184 pub struct arphdr {
185 pub ar_hrd: u16,
186 pub ar_pro: u16,
187 pub ar_hln: u8,
188 pub ar_pln: u8,
189 pub ar_op: u16,
190 }
191 }
192
193 s_no_extra_traits! {
194 pub struct sockaddr_storage {
195 pub ss_len: u8,
196 pub ss_family: ::sa_family_t,
197 __ss_pad1: [u8; 6],
198 __ss_align: i64,
199 __ss_pad2: [u8; 112],
200 }
201 }
202
203 cfg_if! {
204 if #[cfg(feature = "extra_traits")] {
205 impl PartialEq for sockaddr_storage {
206 fn eq(&self, other: &sockaddr_storage) -> bool {
207 self.ss_len == other.ss_len
208 && self.ss_family == other.ss_family
209 && self.__ss_pad1 == other.__ss_pad1
210 && self.__ss_align == other.__ss_align
211 && self
212 .__ss_pad2
213 .iter()
214 .zip(other.__ss_pad2.iter())
215 .all(|(a, b)| a == b)
216 }
217 }
218 impl Eq for sockaddr_storage {}
219 impl ::fmt::Debug for sockaddr_storage {
220 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
221 f.debug_struct("sockaddr_storage")
222 .field("ss_len", &self.ss_len)
223 .field("ss_family", &self.ss_family)
224 .field("__ss_pad1", &self.__ss_pad1)
225 .field("__ss_align", &self.__ss_align)
226 // FIXME: .field("__ss_pad2", &self.__ss_pad2)
227 .finish()
228 }
229 }
230 impl ::hash::Hash for sockaddr_storage {
231 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
232 self.ss_len.hash(state);
233 self.ss_family.hash(state);
234 self.__ss_pad1.hash(state);
235 self.__ss_align.hash(state);
236 self.__ss_pad2.hash(state);
237 }
238 }
239 }
240 }
241
242 pub const AIO_LISTIO_MAX: ::c_int = 16;
243 pub const AIO_CANCELED: ::c_int = 1;
244 pub const AIO_NOTCANCELED: ::c_int = 2;
245 pub const AIO_ALLDONE: ::c_int = 3;
246 pub const LIO_NOP: ::c_int = 0;
247 pub const LIO_WRITE: ::c_int = 1;
248 pub const LIO_READ: ::c_int = 2;
249 pub const LIO_WAIT: ::c_int = 1;
250 pub const LIO_NOWAIT: ::c_int = 0;
251
252 pub const SIGEV_NONE: ::c_int = 0;
253 pub const SIGEV_SIGNAL: ::c_int = 1;
254 pub const SIGEV_THREAD: ::c_int = 2;
255 pub const SIGEV_KEVENT: ::c_int = 3;
256
257 pub const CODESET: ::nl_item = 0;
258 pub const D_T_FMT: ::nl_item = 1;
259 pub const D_FMT: ::nl_item = 2;
260 pub const T_FMT: ::nl_item = 3;
261 pub const T_FMT_AMPM: ::nl_item = 4;
262 pub const AM_STR: ::nl_item = 5;
263 pub const PM_STR: ::nl_item = 6;
264
265 pub const DAY_1: ::nl_item = 7;
266 pub const DAY_2: ::nl_item = 8;
267 pub const DAY_3: ::nl_item = 9;
268 pub const DAY_4: ::nl_item = 10;
269 pub const DAY_5: ::nl_item = 11;
270 pub const DAY_6: ::nl_item = 12;
271 pub const DAY_7: ::nl_item = 13;
272
273 pub const ABDAY_1: ::nl_item = 14;
274 pub const ABDAY_2: ::nl_item = 15;
275 pub const ABDAY_3: ::nl_item = 16;
276 pub const ABDAY_4: ::nl_item = 17;
277 pub const ABDAY_5: ::nl_item = 18;
278 pub const ABDAY_6: ::nl_item = 19;
279 pub const ABDAY_7: ::nl_item = 20;
280
281 pub const MON_1: ::nl_item = 21;
282 pub const MON_2: ::nl_item = 22;
283 pub const MON_3: ::nl_item = 23;
284 pub const MON_4: ::nl_item = 24;
285 pub const MON_5: ::nl_item = 25;
286 pub const MON_6: ::nl_item = 26;
287 pub const MON_7: ::nl_item = 27;
288 pub const MON_8: ::nl_item = 28;
289 pub const MON_9: ::nl_item = 29;
290 pub const MON_10: ::nl_item = 30;
291 pub const MON_11: ::nl_item = 31;
292 pub const MON_12: ::nl_item = 32;
293
294 pub const ABMON_1: ::nl_item = 33;
295 pub const ABMON_2: ::nl_item = 34;
296 pub const ABMON_3: ::nl_item = 35;
297 pub const ABMON_4: ::nl_item = 36;
298 pub const ABMON_5: ::nl_item = 37;
299 pub const ABMON_6: ::nl_item = 38;
300 pub const ABMON_7: ::nl_item = 39;
301 pub const ABMON_8: ::nl_item = 40;
302 pub const ABMON_9: ::nl_item = 41;
303 pub const ABMON_10: ::nl_item = 42;
304 pub const ABMON_11: ::nl_item = 43;
305 pub const ABMON_12: ::nl_item = 44;
306
307 pub const ERA: ::nl_item = 45;
308 pub const ERA_D_FMT: ::nl_item = 46;
309 pub const ERA_D_T_FMT: ::nl_item = 47;
310 pub const ERA_T_FMT: ::nl_item = 48;
311 pub const ALT_DIGITS: ::nl_item = 49;
312
313 pub const RADIXCHAR: ::nl_item = 50;
314 pub const THOUSEP: ::nl_item = 51;
315
316 pub const YESEXPR: ::nl_item = 52;
317 pub const NOEXPR: ::nl_item = 53;
318
319 pub const YESSTR: ::nl_item = 54;
320 pub const NOSTR: ::nl_item = 55;
321
322 pub const CRNCYSTR: ::nl_item = 56;
323
324 pub const D_MD_ORDER: ::nl_item = 57;
325
326 pub const ALTMON_1: ::nl_item = 58;
327 pub const ALTMON_2: ::nl_item = 59;
328 pub const ALTMON_3: ::nl_item = 60;
329 pub const ALTMON_4: ::nl_item = 61;
330 pub const ALTMON_5: ::nl_item = 62;
331 pub const ALTMON_6: ::nl_item = 63;
332 pub const ALTMON_7: ::nl_item = 64;
333 pub const ALTMON_8: ::nl_item = 65;
334 pub const ALTMON_9: ::nl_item = 66;
335 pub const ALTMON_10: ::nl_item = 67;
336 pub const ALTMON_11: ::nl_item = 68;
337 pub const ALTMON_12: ::nl_item = 69;
338
339 pub const EXIT_FAILURE: ::c_int = 1;
340 pub const EXIT_SUCCESS: ::c_int = 0;
341 pub const EOF: ::c_int = -1;
342 pub const SEEK_SET: ::c_int = 0;
343 pub const SEEK_CUR: ::c_int = 1;
344 pub const SEEK_END: ::c_int = 2;
345 pub const SEEK_DATA: ::c_int = 3;
346 pub const SEEK_HOLE: ::c_int = 4;
347 pub const _IOFBF: ::c_int = 0;
348 pub const _IONBF: ::c_int = 2;
349 pub const _IOLBF: ::c_int = 1;
350 pub const BUFSIZ: ::c_uint = 1024;
351 pub const FOPEN_MAX: ::c_uint = 20;
352 pub const FILENAME_MAX: ::c_uint = 1024;
353 pub const L_tmpnam: ::c_uint = 1024;
354 pub const TMP_MAX: ::c_uint = 308915776;
355
356 pub const O_NOCTTY: ::c_int = 32768;
357 pub const O_DIRECT: ::c_int = 0x00010000;
358
359 pub const S_IFIFO: mode_t = 4096;
360 pub const S_IFCHR: mode_t = 8192;
361 pub const S_IFBLK: mode_t = 24576;
362 pub const S_IFDIR: mode_t = 16384;
363 pub const S_IFREG: mode_t = 32768;
364 pub const S_IFLNK: mode_t = 40960;
365 pub const S_IFSOCK: mode_t = 49152;
366 pub const S_IFMT: mode_t = 61440;
367 pub const S_IEXEC: mode_t = 64;
368 pub const S_IWRITE: mode_t = 128;
369 pub const S_IREAD: mode_t = 256;
370 pub const S_IRWXU: mode_t = 448;
371 pub const S_IXUSR: mode_t = 64;
372 pub const S_IWUSR: mode_t = 128;
373 pub const S_IRUSR: mode_t = 256;
374 pub const S_IRWXG: mode_t = 56;
375 pub const S_IXGRP: mode_t = 8;
376 pub const S_IWGRP: mode_t = 16;
377 pub const S_IRGRP: mode_t = 32;
378 pub const S_IRWXO: mode_t = 7;
379 pub const S_IXOTH: mode_t = 1;
380 pub const S_IWOTH: mode_t = 2;
381 pub const S_IROTH: mode_t = 4;
382 pub const F_OK: ::c_int = 0;
383 pub const R_OK: ::c_int = 4;
384 pub const W_OK: ::c_int = 2;
385 pub const X_OK: ::c_int = 1;
386 pub const STDIN_FILENO: ::c_int = 0;
387 pub const STDOUT_FILENO: ::c_int = 1;
388 pub const STDERR_FILENO: ::c_int = 2;
389 pub const F_LOCK: ::c_int = 1;
390 pub const F_TEST: ::c_int = 3;
391 pub const F_TLOCK: ::c_int = 2;
392 pub const F_ULOCK: ::c_int = 0;
393 pub const F_DUPFD_CLOEXEC: ::c_int = 17;
394 pub const SIGHUP: ::c_int = 1;
395 pub const SIGINT: ::c_int = 2;
396 pub const SIGQUIT: ::c_int = 3;
397 pub const SIGILL: ::c_int = 4;
398 pub const SIGABRT: ::c_int = 6;
399 pub const SIGEMT: ::c_int = 7;
400 pub const SIGFPE: ::c_int = 8;
401 pub const SIGKILL: ::c_int = 9;
402 pub const SIGSEGV: ::c_int = 11;
403 pub const SIGPIPE: ::c_int = 13;
404 pub const SIGALRM: ::c_int = 14;
405 pub const SIGTERM: ::c_int = 15;
406
407 pub const PROT_NONE: ::c_int = 0;
408 pub const PROT_READ: ::c_int = 1;
409 pub const PROT_WRITE: ::c_int = 2;
410 pub const PROT_EXEC: ::c_int = 4;
411
412 pub const MAP_FILE: ::c_int = 0x0000;
413 pub const MAP_SHARED: ::c_int = 0x0001;
414 pub const MAP_PRIVATE: ::c_int = 0x0002;
415 pub const MAP_FIXED: ::c_int = 0x0010;
416 pub const MAP_ANON: ::c_int = 0x1000;
417 pub const MAP_ANONYMOUS: ::c_int = MAP_ANON;
418
419 pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void;
420
421 pub const MCL_CURRENT: ::c_int = 0x0001;
422 pub const MCL_FUTURE: ::c_int = 0x0002;
423
424 pub const MS_SYNC: ::c_int = 0x0000;
425 pub const MS_ASYNC: ::c_int = 0x0001;
426 pub const MS_INVALIDATE: ::c_int = 0x0002;
427
428 pub const EPERM: ::c_int = 1;
429 pub const ENOENT: ::c_int = 2;
430 pub const ESRCH: ::c_int = 3;
431 pub const EINTR: ::c_int = 4;
432 pub const EIO: ::c_int = 5;
433 pub const ENXIO: ::c_int = 6;
434 pub const E2BIG: ::c_int = 7;
435 pub const ENOEXEC: ::c_int = 8;
436 pub const EBADF: ::c_int = 9;
437 pub const ECHILD: ::c_int = 10;
438 pub const EDEADLK: ::c_int = 11;
439 pub const ENOMEM: ::c_int = 12;
440 pub const EACCES: ::c_int = 13;
441 pub const EFAULT: ::c_int = 14;
442 pub const ENOTBLK: ::c_int = 15;
443 pub const EBUSY: ::c_int = 16;
444 pub const EEXIST: ::c_int = 17;
445 pub const EXDEV: ::c_int = 18;
446 pub const ENODEV: ::c_int = 19;
447 pub const ENOTDIR: ::c_int = 20;
448 pub const EISDIR: ::c_int = 21;
449 pub const EINVAL: ::c_int = 22;
450 pub const ENFILE: ::c_int = 23;
451 pub const EMFILE: ::c_int = 24;
452 pub const ENOTTY: ::c_int = 25;
453 pub const ETXTBSY: ::c_int = 26;
454 pub const EFBIG: ::c_int = 27;
455 pub const ENOSPC: ::c_int = 28;
456 pub const ESPIPE: ::c_int = 29;
457 pub const EROFS: ::c_int = 30;
458 pub const EMLINK: ::c_int = 31;
459 pub const EPIPE: ::c_int = 32;
460 pub const EDOM: ::c_int = 33;
461 pub const ERANGE: ::c_int = 34;
462 pub const EAGAIN: ::c_int = 35;
463 pub const EWOULDBLOCK: ::c_int = 35;
464 pub const EINPROGRESS: ::c_int = 36;
465 pub const EALREADY: ::c_int = 37;
466 pub const ENOTSOCK: ::c_int = 38;
467 pub const EDESTADDRREQ: ::c_int = 39;
468 pub const EMSGSIZE: ::c_int = 40;
469 pub const EPROTOTYPE: ::c_int = 41;
470 pub const ENOPROTOOPT: ::c_int = 42;
471 pub const EPROTONOSUPPORT: ::c_int = 43;
472 pub const ESOCKTNOSUPPORT: ::c_int = 44;
473 pub const EOPNOTSUPP: ::c_int = 45;
474 pub const ENOTSUP: ::c_int = EOPNOTSUPP;
475 pub const EPFNOSUPPORT: ::c_int = 46;
476 pub const EAFNOSUPPORT: ::c_int = 47;
477 pub const EADDRINUSE: ::c_int = 48;
478 pub const EADDRNOTAVAIL: ::c_int = 49;
479 pub const ENETDOWN: ::c_int = 50;
480 pub const ENETUNREACH: ::c_int = 51;
481 pub const ENETRESET: ::c_int = 52;
482 pub const ECONNABORTED: ::c_int = 53;
483 pub const ECONNRESET: ::c_int = 54;
484 pub const ENOBUFS: ::c_int = 55;
485 pub const EISCONN: ::c_int = 56;
486 pub const ENOTCONN: ::c_int = 57;
487 pub const ESHUTDOWN: ::c_int = 58;
488 pub const ETOOMANYREFS: ::c_int = 59;
489 pub const ETIMEDOUT: ::c_int = 60;
490 pub const ECONNREFUSED: ::c_int = 61;
491 pub const ELOOP: ::c_int = 62;
492 pub const ENAMETOOLONG: ::c_int = 63;
493 pub const EHOSTDOWN: ::c_int = 64;
494 pub const EHOSTUNREACH: ::c_int = 65;
495 pub const ENOTEMPTY: ::c_int = 66;
496 pub const EPROCLIM: ::c_int = 67;
497 pub const EUSERS: ::c_int = 68;
498 pub const EDQUOT: ::c_int = 69;
499 pub const ESTALE: ::c_int = 70;
500 pub const EREMOTE: ::c_int = 71;
501 pub const EBADRPC: ::c_int = 72;
502 pub const ERPCMISMATCH: ::c_int = 73;
503 pub const EPROGUNAVAIL: ::c_int = 74;
504 pub const EPROGMISMATCH: ::c_int = 75;
505 pub const EPROCUNAVAIL: ::c_int = 76;
506 pub const ENOLCK: ::c_int = 77;
507 pub const ENOSYS: ::c_int = 78;
508 pub const EFTYPE: ::c_int = 79;
509 pub const EAUTH: ::c_int = 80;
510 pub const ENEEDAUTH: ::c_int = 81;
511 pub const EIDRM: ::c_int = 82;
512 pub const ENOMSG: ::c_int = 83;
513 pub const EOVERFLOW: ::c_int = 84;
514 pub const ECANCELED: ::c_int = 85;
515 pub const EILSEQ: ::c_int = 86;
516 pub const ENOATTR: ::c_int = 87;
517 pub const EDOOFUS: ::c_int = 88;
518 pub const EBADMSG: ::c_int = 89;
519 pub const EMULTIHOP: ::c_int = 90;
520 pub const ENOLINK: ::c_int = 91;
521 pub const EPROTO: ::c_int = 92;
522
523 pub const POLLSTANDARD: ::c_short = ::POLLIN | ::POLLPRI | ::POLLOUT |
524 ::POLLRDNORM | ::POLLRDBAND | ::POLLWRBAND | ::POLLERR |
525 ::POLLHUP | ::POLLNVAL;
526
527 pub const EAI_AGAIN: ::c_int = 2;
528 pub const EAI_BADFLAGS: ::c_int = 3;
529 pub const EAI_FAIL: ::c_int = 4;
530 pub const EAI_FAMILY: ::c_int = 5;
531 pub const EAI_MEMORY: ::c_int = 6;
532 pub const EAI_NONAME: ::c_int = 8;
533 pub const EAI_SERVICE: ::c_int = 9;
534 pub const EAI_SOCKTYPE: ::c_int = 10;
535 pub const EAI_SYSTEM: ::c_int = 11;
536 pub const EAI_OVERFLOW: ::c_int = 14;
537
538 pub const F_DUPFD: ::c_int = 0;
539 pub const F_GETFD: ::c_int = 1;
540 pub const F_SETFD: ::c_int = 2;
541 pub const F_GETFL: ::c_int = 3;
542 pub const F_SETFL: ::c_int = 4;
543
544 pub const SIGTRAP: ::c_int = 5;
545
546 pub const GLOB_APPEND : ::c_int = 0x0001;
547 pub const GLOB_DOOFFS : ::c_int = 0x0002;
548 pub const GLOB_ERR : ::c_int = 0x0004;
549 pub const GLOB_MARK : ::c_int = 0x0008;
550 pub const GLOB_NOCHECK : ::c_int = 0x0010;
551 pub const GLOB_NOSORT : ::c_int = 0x0020;
552 pub const GLOB_NOESCAPE: ::c_int = 0x2000;
553
554 pub const GLOB_NOSPACE : ::c_int = -1;
555 pub const GLOB_ABORTED : ::c_int = -2;
556 pub const GLOB_NOMATCH : ::c_int = -3;
557
558 pub const POSIX_MADV_NORMAL: ::c_int = 0;
559 pub const POSIX_MADV_RANDOM: ::c_int = 1;
560 pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2;
561 pub const POSIX_MADV_WILLNEED: ::c_int = 3;
562 pub const POSIX_MADV_DONTNEED: ::c_int = 4;
563
564 pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0;
565 pub const PTHREAD_PROCESS_SHARED: ::c_int = 1;
566 pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0;
567 pub const PTHREAD_CREATE_DETACHED: ::c_int = 1;
568
569 pub const RLIMIT_CPU: ::c_int = 0;
570 pub const RLIMIT_FSIZE: ::c_int = 1;
571 pub const RLIMIT_DATA: ::c_int = 2;
572 pub const RLIMIT_STACK: ::c_int = 3;
573 pub const RLIMIT_CORE: ::c_int = 4;
574 pub const RLIMIT_RSS: ::c_int = 5;
575 pub const RLIMIT_MEMLOCK: ::c_int = 6;
576 pub const RLIMIT_NPROC: ::c_int = 7;
577 pub const RLIMIT_NOFILE: ::c_int = 8;
578 pub const RLIMIT_SBSIZE: ::c_int = 9;
579 pub const RLIMIT_VMEM: ::c_int = 10;
580 pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM;
581 pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff;
582
583 pub const RUSAGE_SELF: ::c_int = 0;
584 pub const RUSAGE_CHILDREN: ::c_int = -1;
585
586 pub const MADV_NORMAL: ::c_int = 0;
587 pub const MADV_RANDOM: ::c_int = 1;
588 pub const MADV_SEQUENTIAL: ::c_int = 2;
589 pub const MADV_WILLNEED: ::c_int = 3;
590 pub const MADV_DONTNEED: ::c_int = 4;
591 pub const MADV_FREE: ::c_int = 5;
592 pub const MADV_NOSYNC: ::c_int = 6;
593 pub const MADV_AUTOSYNC: ::c_int = 7;
594 pub const MADV_NOCORE: ::c_int = 8;
595 pub const MADV_CORE: ::c_int = 9;
596
597 pub const MINCORE_INCORE: ::c_int = 0x1;
598 pub const MINCORE_REFERENCED: ::c_int = 0x2;
599 pub const MINCORE_MODIFIED: ::c_int = 0x4;
600 pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8;
601 pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10;
602 pub const MINCORE_SUPER: ::c_int = 0x20;
603
604 pub const AF_UNSPEC: ::c_int = 0;
605 pub const AF_LOCAL: ::c_int = 1;
606 pub const AF_UNIX: ::c_int = AF_LOCAL;
607 pub const AF_INET: ::c_int = 2;
608 pub const AF_IMPLINK: ::c_int = 3;
609 pub const AF_PUP: ::c_int = 4;
610 pub const AF_CHAOS: ::c_int = 5;
611 pub const AF_NETBIOS: ::c_int = 6;
612 pub const AF_ISO: ::c_int = 7;
613 pub const AF_OSI: ::c_int = AF_ISO;
614 pub const AF_ECMA: ::c_int = 8;
615 pub const AF_DATAKIT: ::c_int = 9;
616 pub const AF_CCITT: ::c_int = 10;
617 pub const AF_SNA: ::c_int = 11;
618 pub const AF_DECnet: ::c_int = 12;
619 pub const AF_DLI: ::c_int = 13;
620 pub const AF_LAT: ::c_int = 14;
621 pub const AF_HYLINK: ::c_int = 15;
622 pub const AF_APPLETALK: ::c_int = 16;
623 pub const AF_ROUTE: ::c_int = 17;
624 pub const AF_LINK: ::c_int = 18;
625 pub const pseudo_AF_XTP: ::c_int = 19;
626 pub const AF_COIP: ::c_int = 20;
627 pub const AF_CNT: ::c_int = 21;
628 pub const pseudo_AF_RTIP: ::c_int = 22;
629 pub const AF_IPX: ::c_int = 23;
630 pub const AF_SIP: ::c_int = 24;
631 pub const pseudo_AF_PIP: ::c_int = 25;
632 pub const AF_ISDN: ::c_int = 26;
633 pub const AF_E164: ::c_int = AF_ISDN;
634 pub const pseudo_AF_KEY: ::c_int = 27;
635 pub const AF_INET6: ::c_int = 28;
636 pub const AF_NATM: ::c_int = 29;
637 pub const AF_ATM: ::c_int = 30;
638 pub const pseudo_AF_HDRCMPLT: ::c_int = 31;
639 pub const AF_NETGRAPH: ::c_int = 32;
640
641 pub const PF_UNSPEC: ::c_int = AF_UNSPEC;
642 pub const PF_LOCAL: ::c_int = AF_LOCAL;
643 pub const PF_UNIX: ::c_int = PF_LOCAL;
644 pub const PF_INET: ::c_int = AF_INET;
645 pub const PF_IMPLINK: ::c_int = AF_IMPLINK;
646 pub const PF_PUP: ::c_int = AF_PUP;
647 pub const PF_CHAOS: ::c_int = AF_CHAOS;
648 pub const PF_NETBIOS: ::c_int = AF_NETBIOS;
649 pub const PF_ISO: ::c_int = AF_ISO;
650 pub const PF_OSI: ::c_int = AF_ISO;
651 pub const PF_ECMA: ::c_int = AF_ECMA;
652 pub const PF_DATAKIT: ::c_int = AF_DATAKIT;
653 pub const PF_CCITT: ::c_int = AF_CCITT;
654 pub const PF_SNA: ::c_int = AF_SNA;
655 pub const PF_DECnet: ::c_int = AF_DECnet;
656 pub const PF_DLI: ::c_int = AF_DLI;
657 pub const PF_LAT: ::c_int = AF_LAT;
658 pub const PF_HYLINK: ::c_int = AF_HYLINK;
659 pub const PF_APPLETALK: ::c_int = AF_APPLETALK;
660 pub const PF_ROUTE: ::c_int = AF_ROUTE;
661 pub const PF_LINK: ::c_int = AF_LINK;
662 pub const PF_XTP: ::c_int = pseudo_AF_XTP;
663 pub const PF_COIP: ::c_int = AF_COIP;
664 pub const PF_CNT: ::c_int = AF_CNT;
665 pub const PF_SIP: ::c_int = AF_SIP;
666 pub const PF_IPX: ::c_int = AF_IPX;
667 pub const PF_RTIP: ::c_int = pseudo_AF_RTIP;
668 pub const PF_PIP: ::c_int = pseudo_AF_PIP;
669 pub const PF_ISDN: ::c_int = AF_ISDN;
670 pub const PF_KEY: ::c_int = pseudo_AF_KEY;
671 pub const PF_INET6: ::c_int = AF_INET6;
672 pub const PF_NATM: ::c_int = AF_NATM;
673 pub const PF_ATM: ::c_int = AF_ATM;
674 pub const PF_NETGRAPH: ::c_int = AF_NETGRAPH;
675
676 pub const PT_TRACE_ME: ::c_int = 0;
677 pub const PT_READ_I: ::c_int = 1;
678 pub const PT_READ_D: ::c_int = 2;
679 pub const PT_WRITE_I: ::c_int = 4;
680 pub const PT_WRITE_D: ::c_int = 5;
681 pub const PT_CONTINUE: ::c_int = 7;
682 pub const PT_KILL: ::c_int = 8;
683 pub const PT_STEP: ::c_int = 9;
684 pub const PT_ATTACH: ::c_int = 10;
685 pub const PT_DETACH: ::c_int = 11;
686 pub const PT_IO: ::c_int = 12;
687
688 pub const SOMAXCONN: ::c_int = 128;
689
690 pub const MSG_OOB: ::c_int = 0x00000001;
691 pub const MSG_PEEK: ::c_int = 0x00000002;
692 pub const MSG_DONTROUTE: ::c_int = 0x00000004;
693 pub const MSG_EOR: ::c_int = 0x00000008;
694 pub const MSG_TRUNC: ::c_int = 0x00000010;
695 pub const MSG_CTRUNC: ::c_int = 0x00000020;
696 pub const MSG_WAITALL: ::c_int = 0x00000040;
697 pub const MSG_DONTWAIT: ::c_int = 0x00000080;
698 pub const MSG_EOF: ::c_int = 0x00000100;
699
700 pub const SCM_TIMESTAMP: ::c_int = 0x02;
701
702 pub const SOCK_STREAM: ::c_int = 1;
703 pub const SOCK_DGRAM: ::c_int = 2;
704 pub const SOCK_RAW: ::c_int = 3;
705 pub const SOCK_RDM: ::c_int = 4;
706 pub const SOCK_SEQPACKET: ::c_int = 5;
707 pub const SOCK_CLOEXEC: ::c_int = 0x10000000;
708 pub const SOCK_NONBLOCK: ::c_int = 0x20000000;
709 pub const SOCK_MAXADDRLEN: ::c_int = 255;
710 pub const IP_TTL: ::c_int = 4;
711 pub const IP_HDRINCL: ::c_int = 2;
712 pub const IP_RECVDSTADDR: ::c_int = 7;
713 pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR;
714 pub const IP_ADD_MEMBERSHIP: ::c_int = 12;
715 pub const IP_DROP_MEMBERSHIP: ::c_int = 13;
716 pub const IP_RECVIF: ::c_int = 20;
717 pub const IPV6_JOIN_GROUP: ::c_int = 12;
718 pub const IPV6_LEAVE_GROUP: ::c_int = 13;
719 pub const IPV6_RECVPKTINFO: ::c_int = 36;
720 pub const IPV6_PKTINFO: ::c_int = 46;
721 pub const IPV6_RECVTCLASS: ::c_int = 57;
722 pub const IPV6_TCLASS: ::c_int = 61;
723
724 pub const TCP_NOPUSH: ::c_int = 4;
725 pub const TCP_NOOPT: ::c_int = 8;
726 pub const TCP_KEEPIDLE: ::c_int = 256;
727 pub const TCP_KEEPINTVL: ::c_int = 512;
728 pub const TCP_KEEPCNT: ::c_int = 1024;
729
730 pub const SOL_SOCKET: ::c_int = 0xffff;
731 pub const SO_DEBUG: ::c_int = 0x01;
732 pub const SO_ACCEPTCONN: ::c_int = 0x0002;
733 pub const SO_REUSEADDR: ::c_int = 0x0004;
734 pub const SO_KEEPALIVE: ::c_int = 0x0008;
735 pub const SO_DONTROUTE: ::c_int = 0x0010;
736 pub const SO_BROADCAST: ::c_int = 0x0020;
737 pub const SO_USELOOPBACK: ::c_int = 0x0040;
738 pub const SO_LINGER: ::c_int = 0x0080;
739 pub const SO_OOBINLINE: ::c_int = 0x0100;
740 pub const SO_REUSEPORT: ::c_int = 0x0200;
741 pub const SO_TIMESTAMP: ::c_int = 0x0400;
742 pub const SO_NOSIGPIPE: ::c_int = 0x0800;
743 pub const SO_ACCEPTFILTER: ::c_int = 0x1000;
744 pub const SO_SNDBUF: ::c_int = 0x1001;
745 pub const SO_RCVBUF: ::c_int = 0x1002;
746 pub const SO_SNDLOWAT: ::c_int = 0x1003;
747 pub const SO_RCVLOWAT: ::c_int = 0x1004;
748 pub const SO_SNDTIMEO: ::c_int = 0x1005;
749 pub const SO_RCVTIMEO: ::c_int = 0x1006;
750 pub const SO_ERROR: ::c_int = 0x1007;
751 pub const SO_TYPE: ::c_int = 0x1008;
752
753 pub const SHUT_RD: ::c_int = 0;
754 pub const SHUT_WR: ::c_int = 1;
755 pub const SHUT_RDWR: ::c_int = 2;
756
757 pub const LOCK_SH: ::c_int = 1;
758 pub const LOCK_EX: ::c_int = 2;
759 pub const LOCK_NB: ::c_int = 4;
760 pub const LOCK_UN: ::c_int = 8;
761
762 pub const MAP_COPY: ::c_int = 0x0002;
763 #[doc(hidden)]
764 #[deprecated(since="0.2.54",note="Removed in FreeBSD 11")]
765 pub const MAP_RENAME: ::c_int = 0x0020;
766 #[doc(hidden)]
767 #[deprecated(since="0.2.54",note="Removed in FreeBSD 11")]
768 pub const MAP_NORESERVE: ::c_int = 0x0040;
769 pub const MAP_HASSEMAPHORE: ::c_int = 0x0200;
770 pub const MAP_STACK: ::c_int = 0x0400;
771 pub const MAP_NOSYNC: ::c_int = 0x0800;
772 pub const MAP_NOCORE: ::c_int = 0x020000;
773
774 pub const IPPROTO_RAW: ::c_int = 255;
775
776 pub const _PC_LINK_MAX: ::c_int = 1;
777 pub const _PC_MAX_CANON: ::c_int = 2;
778 pub const _PC_MAX_INPUT: ::c_int = 3;
779 pub const _PC_NAME_MAX: ::c_int = 4;
780 pub const _PC_PATH_MAX: ::c_int = 5;
781 pub const _PC_PIPE_BUF: ::c_int = 6;
782 pub const _PC_CHOWN_RESTRICTED: ::c_int = 7;
783 pub const _PC_NO_TRUNC: ::c_int = 8;
784 pub const _PC_VDISABLE: ::c_int = 9;
785 pub const _PC_ALLOC_SIZE_MIN: ::c_int = 10;
786 pub const _PC_FILESIZEBITS: ::c_int = 12;
787 pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14;
788 pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15;
789 pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16;
790 pub const _PC_REC_XFER_ALIGN: ::c_int = 17;
791 pub const _PC_SYMLINK_MAX: ::c_int = 18;
792 pub const _PC_MIN_HOLE_SIZE: ::c_int = 21;
793 pub const _PC_ASYNC_IO: ::c_int = 53;
794 pub const _PC_PRIO_IO: ::c_int = 54;
795 pub const _PC_SYNC_IO: ::c_int = 55;
796 pub const _PC_ACL_EXTENDED: ::c_int = 59;
797 pub const _PC_ACL_PATH_MAX: ::c_int = 60;
798 pub const _PC_CAP_PRESENT: ::c_int = 61;
799 pub const _PC_INF_PRESENT: ::c_int = 62;
800 pub const _PC_MAC_PRESENT: ::c_int = 63;
801
802 pub const _SC_ARG_MAX: ::c_int = 1;
803 pub const _SC_CHILD_MAX: ::c_int = 2;
804 pub const _SC_CLK_TCK: ::c_int = 3;
805 pub const _SC_NGROUPS_MAX: ::c_int = 4;
806 pub const _SC_OPEN_MAX: ::c_int = 5;
807 pub const _SC_JOB_CONTROL: ::c_int = 6;
808 pub const _SC_SAVED_IDS: ::c_int = 7;
809 pub const _SC_VERSION: ::c_int = 8;
810 pub const _SC_BC_BASE_MAX: ::c_int = 9;
811 pub const _SC_BC_DIM_MAX: ::c_int = 10;
812 pub const _SC_BC_SCALE_MAX: ::c_int = 11;
813 pub const _SC_BC_STRING_MAX: ::c_int = 12;
814 pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13;
815 pub const _SC_EXPR_NEST_MAX: ::c_int = 14;
816 pub const _SC_LINE_MAX: ::c_int = 15;
817 pub const _SC_RE_DUP_MAX: ::c_int = 16;
818 pub const _SC_2_VERSION: ::c_int = 17;
819 pub const _SC_2_C_BIND: ::c_int = 18;
820 pub const _SC_2_C_DEV: ::c_int = 19;
821 pub const _SC_2_CHAR_TERM: ::c_int = 20;
822 pub const _SC_2_FORT_DEV: ::c_int = 21;
823 pub const _SC_2_FORT_RUN: ::c_int = 22;
824 pub const _SC_2_LOCALEDEF: ::c_int = 23;
825 pub const _SC_2_SW_DEV: ::c_int = 24;
826 pub const _SC_2_UPE: ::c_int = 25;
827 pub const _SC_STREAM_MAX: ::c_int = 26;
828 pub const _SC_TZNAME_MAX: ::c_int = 27;
829 pub const _SC_ASYNCHRONOUS_IO: ::c_int = 28;
830 pub const _SC_MAPPED_FILES: ::c_int = 29;
831 pub const _SC_MEMLOCK: ::c_int = 30;
832 pub const _SC_MEMLOCK_RANGE: ::c_int = 31;
833 pub const _SC_MEMORY_PROTECTION: ::c_int = 32;
834 pub const _SC_MESSAGE_PASSING: ::c_int = 33;
835 pub const _SC_PRIORITIZED_IO: ::c_int = 34;
836 pub const _SC_PRIORITY_SCHEDULING: ::c_int = 35;
837 pub const _SC_REALTIME_SIGNALS: ::c_int = 36;
838 pub const _SC_SEMAPHORES: ::c_int = 37;
839 pub const _SC_FSYNC: ::c_int = 38;
840 pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 39;
841 pub const _SC_SYNCHRONIZED_IO: ::c_int = 40;
842 pub const _SC_TIMERS: ::c_int = 41;
843 pub const _SC_AIO_LISTIO_MAX: ::c_int = 42;
844 pub const _SC_AIO_MAX: ::c_int = 43;
845 pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44;
846 pub const _SC_DELAYTIMER_MAX: ::c_int = 45;
847 pub const _SC_MQ_OPEN_MAX: ::c_int = 46;
848 pub const _SC_PAGESIZE: ::c_int = 47;
849 pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE;
850 pub const _SC_RTSIG_MAX: ::c_int = 48;
851 pub const _SC_SEM_NSEMS_MAX: ::c_int = 49;
852 pub const _SC_SEM_VALUE_MAX: ::c_int = 50;
853 pub const _SC_SIGQUEUE_MAX: ::c_int = 51;
854 pub const _SC_TIMER_MAX: ::c_int = 52;
855 pub const _SC_IOV_MAX: ::c_int = 56;
856 pub const _SC_NPROCESSORS_CONF: ::c_int = 57;
857 pub const _SC_2_PBS: ::c_int = 59;
858 pub const _SC_2_PBS_ACCOUNTING: ::c_int = 60;
859 pub const _SC_2_PBS_CHECKPOINT: ::c_int = 61;
860 pub const _SC_2_PBS_LOCATE: ::c_int = 62;
861 pub const _SC_2_PBS_MESSAGE: ::c_int = 63;
862 pub const _SC_2_PBS_TRACK: ::c_int = 64;
863 pub const _SC_ADVISORY_INFO: ::c_int = 65;
864 pub const _SC_BARRIERS: ::c_int = 66;
865 pub const _SC_CLOCK_SELECTION: ::c_int = 67;
866 pub const _SC_CPUTIME: ::c_int = 68;
867 pub const _SC_FILE_LOCKING: ::c_int = 69;
868 pub const _SC_NPROCESSORS_ONLN: ::c_int = 58;
869 pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 70;
870 pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 71;
871 pub const _SC_HOST_NAME_MAX: ::c_int = 72;
872 pub const _SC_LOGIN_NAME_MAX: ::c_int = 73;
873 pub const _SC_MONOTONIC_CLOCK: ::c_int = 74;
874 pub const _SC_MQ_PRIO_MAX: ::c_int = 75;
875 pub const _SC_READER_WRITER_LOCKS: ::c_int = 76;
876 pub const _SC_REGEXP: ::c_int = 77;
877 pub const _SC_SHELL: ::c_int = 78;
878 pub const _SC_SPAWN: ::c_int = 79;
879 pub const _SC_SPIN_LOCKS: ::c_int = 80;
880 pub const _SC_SPORADIC_SERVER: ::c_int = 81;
881 pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 82;
882 pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 83;
883 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 85;
884 pub const _SC_THREAD_KEYS_MAX: ::c_int = 86;
885 pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 87;
886 pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 88;
887 pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 89;
888 pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 90;
889 pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 91;
890 pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 92;
891 pub const _SC_THREAD_STACK_MIN: ::c_int = 93;
892 pub const _SC_THREAD_THREADS_MAX: ::c_int = 94;
893 pub const _SC_TIMEOUTS: ::c_int = 95;
894 pub const _SC_THREADS: ::c_int = 96;
895 pub const _SC_TRACE: ::c_int = 97;
896 pub const _SC_TRACE_EVENT_FILTER: ::c_int = 98;
897 pub const _SC_TRACE_INHERIT: ::c_int = 99;
898 pub const _SC_TRACE_LOG: ::c_int = 100;
899 pub const _SC_TTY_NAME_MAX: ::c_int = 101;
900 pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 102;
901 pub const _SC_V6_ILP32_OFF32: ::c_int = 103;
902 pub const _SC_V6_ILP32_OFFBIG: ::c_int = 104;
903 pub const _SC_V6_LP64_OFF64: ::c_int = 105;
904 pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 106;
905 pub const _SC_ATEXIT_MAX: ::c_int = 107;
906 pub const _SC_XOPEN_CRYPT: ::c_int = 108;
907 pub const _SC_XOPEN_ENH_I18N: ::c_int = 109;
908 pub const _SC_XOPEN_LEGACY: ::c_int = 110;
909 pub const _SC_XOPEN_REALTIME: ::c_int = 111;
910 pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 112;
911 pub const _SC_XOPEN_SHM: ::c_int = 113;
912 pub const _SC_XOPEN_STREAMS: ::c_int = 114;
913 pub const _SC_XOPEN_UNIX: ::c_int = 115;
914 pub const _SC_XOPEN_VERSION: ::c_int = 116;
915 pub const _SC_XOPEN_XCU_VERSION: ::c_int = 117;
916 pub const _SC_IPV6: ::c_int = 118;
917 pub const _SC_RAW_SOCKETS: ::c_int = 119;
918 pub const _SC_SYMLOOP_MAX: ::c_int = 120;
919 pub const _SC_PHYS_PAGES: ::c_int = 121;
920
921 pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _;
922 pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _;
923 pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _;
924 pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1;
925 pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2;
926 pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3;
927 pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_ERRORCHECK;
928
929 pub const SCHED_FIFO: ::c_int = 1;
930 pub const SCHED_OTHER: ::c_int = 2;
931 pub const SCHED_RR: ::c_int = 3;
932
933 pub const FD_SETSIZE: usize = 1024;
934
935 pub const ST_NOSUID: ::c_ulong = 2;
936
937 pub const NI_MAXHOST: ::size_t = 1025;
938
939 pub const RTLD_LOCAL: ::c_int = 0;
940 pub const RTLD_NODELETE: ::c_int = 0x1000;
941 pub const RTLD_NOLOAD: ::c_int = 0x2000;
942 pub const RTLD_GLOBAL: ::c_int = 0x100;
943
944 pub const LOG_NTP: ::c_int = 12 << 3;
945 pub const LOG_SECURITY: ::c_int = 13 << 3;
946 pub const LOG_CONSOLE: ::c_int = 14 << 3;
947 pub const LOG_NFACILITIES: ::c_int = 24;
948
949 pub const TIOCEXCL: ::c_uint = 0x2000740d;
950 pub const TIOCNXCL: ::c_uint = 0x2000740e;
951 pub const TIOCFLUSH: ::c_ulong = 0x80047410;
952 pub const TIOCGETA: ::c_uint = 0x402c7413;
953 pub const TIOCSETA: ::c_ulong = 0x802c7414;
954 pub const TIOCSETAW: ::c_ulong = 0x802c7415;
955 pub const TIOCSETAF: ::c_ulong = 0x802c7416;
956 pub const TIOCGETD: ::c_uint = 0x4004741a;
957 pub const TIOCSETD: ::c_ulong = 0x8004741b;
958 pub const TIOCGDRAINWAIT: ::c_uint = 0x40047456;
959 pub const TIOCSDRAINWAIT: ::c_ulong = 0x80047457;
960 pub const TIOCTIMESTAMP: ::c_uint = 0x40107459;
961 pub const TIOCMGDTRWAIT: ::c_uint = 0x4004745a;
962 pub const TIOCMSDTRWAIT: ::c_ulong = 0x8004745b;
963 pub const TIOCDRAIN: ::c_uint = 0x2000745e;
964 pub const TIOCEXT: ::c_ulong = 0x80047460;
965 pub const TIOCSCTTY: ::c_uint = 0x20007461;
966 pub const TIOCCONS: ::c_ulong = 0x80047462;
967 pub const TIOCGSID: ::c_uint = 0x40047463;
968 pub const TIOCSTAT: ::c_uint = 0x20007465;
969 pub const TIOCUCNTL: ::c_ulong = 0x80047466;
970 pub const TIOCSWINSZ: ::c_ulong = 0x80087467;
971 pub const TIOCGWINSZ: ::c_uint = 0x40087468;
972 pub const TIOCMGET: ::c_uint = 0x4004746a;
973 pub const TIOCM_LE: ::c_int = 0x1;
974 pub const TIOCM_DTR: ::c_int = 0x2;
975 pub const TIOCM_RTS: ::c_int = 0x4;
976 pub const TIOCM_ST: ::c_int = 0x8;
977 pub const TIOCM_SR: ::c_int = 0x10;
978 pub const TIOCM_CTS: ::c_int = 0x20;
979 pub const TIOCM_RI: ::c_int = 0x80;
980 pub const TIOCM_DSR: ::c_int = 0x100;
981 pub const TIOCM_CD: ::c_int = 0x40;
982 pub const TIOCM_CAR: ::c_int = 0x40;
983 pub const TIOCM_RNG: ::c_int = 0x80;
984 pub const TIOCMBIC: ::c_ulong = 0x8004746b;
985 pub const TIOCMBIS: ::c_ulong = 0x8004746c;
986 pub const TIOCMSET: ::c_ulong = 0x8004746d;
987 pub const TIOCSTART: ::c_uint = 0x2000746e;
988 pub const TIOCSTOP: ::c_uint = 0x2000746f;
989 pub const TIOCPKT: ::c_ulong = 0x80047470;
990 pub const TIOCPKT_DATA: ::c_int = 0x0;
991 pub const TIOCPKT_FLUSHREAD: ::c_int = 0x1;
992 pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x2;
993 pub const TIOCPKT_STOP: ::c_int = 0x4;
994 pub const TIOCPKT_START: ::c_int = 0x8;
995 pub const TIOCPKT_NOSTOP: ::c_int = 0x10;
996 pub const TIOCPKT_DOSTOP: ::c_int = 0x20;
997 pub const TIOCPKT_IOCTL: ::c_int = 0x40;
998 pub const TIOCNOTTY: ::c_uint = 0x20007471;
999 pub const TIOCSTI: ::c_ulong = 0x80017472;
1000 pub const TIOCOUTQ: ::c_uint = 0x40047473;
1001 pub const TIOCSPGRP: ::c_ulong = 0x80047476;
1002 pub const TIOCGPGRP: ::c_uint = 0x40047477;
1003 pub const TIOCCDTR: ::c_uint = 0x20007478;
1004 pub const TIOCSDTR: ::c_uint = 0x20007479;
1005 pub const TIOCCBRK: ::c_uint = 0x2000747a;
1006 pub const TIOCSBRK: ::c_uint = 0x2000747b;
1007 pub const TTYDISC: ::c_int = 0x0;
1008 pub const SLIPDISC: ::c_int = 0x4;
1009 pub const PPPDISC: ::c_int = 0x5;
1010 pub const NETGRAPHDISC: ::c_int = 0x6;
1011
1012 pub const FIODTYPE: ::c_ulong = 0x4004667a;
1013 pub const FIOGETLBA: ::c_ulong = 0x40046679;
1014 pub const FIODGNAME: ::c_ulong = 0x80106678;
1015
1016 pub const B0: speed_t = 0;
1017 pub const B50: speed_t = 50;
1018 pub const B75: speed_t = 75;
1019 pub const B110: speed_t = 110;
1020 pub const B134: speed_t = 134;
1021 pub const B150: speed_t = 150;
1022 pub const B200: speed_t = 200;
1023 pub const B300: speed_t = 300;
1024 pub const B600: speed_t = 600;
1025 pub const B1200: speed_t = 1200;
1026 pub const B1800: speed_t = 1800;
1027 pub const B2400: speed_t = 2400;
1028 pub const B4800: speed_t = 4800;
1029 pub const B9600: speed_t = 9600;
1030 pub const B19200: speed_t = 19200;
1031 pub const B38400: speed_t = 38400;
1032 pub const B7200: speed_t = 7200;
1033 pub const B14400: speed_t = 14400;
1034 pub const B28800: speed_t = 28800;
1035 pub const B57600: speed_t = 57600;
1036 pub const B76800: speed_t = 76800;
1037 pub const B115200: speed_t = 115200;
1038 pub const B230400: speed_t = 230400;
1039 pub const EXTA: speed_t = 19200;
1040 pub const EXTB: speed_t = 38400;
1041
1042 pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t;
1043
1044 pub const CRTSCTS: ::tcflag_t = 0x00030000;
1045 pub const CCTS_OFLOW: ::tcflag_t = 0x00010000;
1046 pub const CRTS_IFLOW: ::tcflag_t = 0x00020000;
1047 pub const CDTR_IFLOW: ::tcflag_t = 0x00040000;
1048 pub const CDSR_OFLOW: ::tcflag_t = 0x00080000;
1049 pub const CCAR_OFLOW: ::tcflag_t = 0x00100000;
1050 pub const VERASE2: usize = 7;
1051 pub const OCRNL: ::tcflag_t = 0x10;
1052 pub const ONOCR: ::tcflag_t = 0x20;
1053 pub const ONLRET: ::tcflag_t = 0x40;
1054
1055 pub const CMGROUP_MAX: usize = 16;
1056
1057 // https://github.com/freebsd/freebsd/blob/master/sys/net/bpf.h
1058 // sizeof(long)
1059 pub const BPF_ALIGNMENT: ::c_int = 8;
1060
1061 // Values for rtprio struct (prio field) and syscall (function argument)
1062 pub const RTP_PRIO_MIN: ::c_ushort = 0;
1063 pub const RTP_PRIO_MAX: ::c_ushort = 31;
1064 pub const RTP_LOOKUP: ::c_int = 0;
1065 pub const RTP_SET: ::c_int = 1;
1066
1067 // Flags for chflags(2)
1068 pub const UF_SETTABLE: ::c_ulong = 0x0000ffff;
1069 pub const UF_NODUMP: ::c_ulong = 0x00000001;
1070 pub const UF_IMMUTABLE: ::c_ulong = 0x00000002;
1071 pub const UF_APPEND: ::c_ulong = 0x00000004;
1072 pub const UF_OPAQUE: ::c_ulong = 0x00000008;
1073 pub const UF_NOUNLINK: ::c_ulong = 0x00000010;
1074 pub const SF_SETTABLE: ::c_ulong = 0xffff0000;
1075 pub const SF_ARCHIVED: ::c_ulong = 0x00010000;
1076 pub const SF_IMMUTABLE: ::c_ulong = 0x00020000;
1077 pub const SF_APPEND: ::c_ulong = 0x00040000;
1078 pub const SF_NOUNLINK: ::c_ulong = 0x00100000;
1079
1080 pub const TIMER_ABSTIME: ::c_int = 1;
1081
1082 f! {
1083 pub fn WIFCONTINUED(status: ::c_int) -> bool {
1084 status == 0x13
1085 }
1086
1087 pub fn WSTOPSIG(status: ::c_int) -> ::c_int {
1088 status >> 8
1089 }
1090
1091 pub fn WIFSIGNALED(status: ::c_int) -> bool {
1092 (status & 0o177) != 0o177 && (status & 0o177) != 0
1093 }
1094
1095 pub fn WIFSTOPPED(status: ::c_int) -> bool {
1096 (status & 0o177) == 0o177
1097 }
1098 }
1099
1100 extern {
1101 pub fn sem_destroy(sem: *mut sem_t) -> ::c_int;
1102 pub fn sem_init(sem: *mut sem_t,
1103 pshared: ::c_int,
1104 value: ::c_uint)
1105 -> ::c_int;
1106
1107 pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int;
1108 pub fn gettimeofday(tp: *mut ::timeval,
1109 tz: *mut ::timezone) -> ::c_int;
1110 pub fn accept4(s: ::c_int, addr: *mut ::sockaddr,
1111 addrlen: *mut ::socklen_t, flags: ::c_int) -> ::c_int;
1112 pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int;
1113 pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int;
1114 pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
1115 pub fn aio_error(aiocbp: *const aiocb) -> ::c_int;
1116 pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t;
1117 pub fn aio_suspend(aiocb_list: *const *const aiocb, nitems: ::c_int,
1118 timeout: *const ::timespec) -> ::c_int;
1119 pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
1120 pub fn chflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int;
1121 pub fn chflagsat(fd: ::c_int, path: *const ::c_char, flags: ::c_ulong,
1122 atflag: ::c_int) -> ::c_int;
1123 pub fn dirfd(dirp: *mut ::DIR) -> ::c_int;
1124 pub fn duplocale(base: ::locale_t) -> ::locale_t;
1125 pub fn endutxent();
1126 pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int;
1127 pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int;
1128 pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int;
1129 pub fn getgrent_r(grp: *mut ::group,
1130 buf: *mut ::c_char,
1131 buflen: ::size_t,
1132 result: *mut *mut ::group) -> ::c_int;
1133 #[cfg_attr(target_os = "netbsd", link_name = "__getpwent_r50")]
1134 pub fn getpwent_r(pwd: *mut ::passwd,
1135 buf: *mut ::c_char,
1136 buflen: ::size_t,
1137 result: *mut *mut ::passwd) -> ::c_int;
1138 pub fn getgrouplist(name: *const ::c_char,
1139 basegid: ::gid_t,
1140 groups: *mut ::gid_t,
1141 ngroups: *mut ::c_int) -> ::c_int;
1142 pub fn getnameinfo(sa: *const ::sockaddr,
1143 salen: ::socklen_t,
1144 host: *mut ::c_char,
1145 hostlen: ::size_t,
1146 serv: *mut ::c_char,
1147 servlen: ::size_t,
1148 flags: ::c_int) -> ::c_int;
1149 pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int;
1150 pub fn getutxent() -> *mut utmpx;
1151 pub fn getutxid(ut: *const utmpx) -> *mut utmpx;
1152 pub fn getutxline(ut: *const utmpx) -> *mut utmpx;
1153 pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int;
1154 #[cfg_attr(
1155 all(target_os = "freebsd", not(freebsd12)),
1156 link_name = "kevent@FBSD_1.0"
1157 )]
1158 pub fn kevent(kq: ::c_int,
1159 changelist: *const ::kevent,
1160 nchanges: ::c_int,
1161 eventlist: *mut ::kevent,
1162 nevents: ::c_int,
1163 timeout: *const ::timespec) -> ::c_int;
1164 pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int;
1165 pub fn lio_listio(mode: ::c_int, aiocb_list: *const *mut aiocb,
1166 nitems: ::c_int, sevp: *mut sigevent) -> ::c_int;
1167 pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int;
1168 pub fn memrchr(cx: *const ::c_void,
1169 c: ::c_int,
1170 n: ::size_t) -> *mut ::c_void;
1171 pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char,
1172 mode: ::mode_t) -> ::c_int;
1173 #[cfg_attr(
1174 all(target_os = "freebsd", not(freebsd12)),
1175 link_name = "mknodat@FBSD_1.1"
1176 )]
1177 pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char,
1178 mode: ::mode_t, dev: dev_t) -> ::c_int;
1179 pub fn mq_close(mqd: ::mqd_t) -> ::c_int;
1180 pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int;
1181 pub fn mq_notify(mqd: ::mqd_t, notification: *const ::sigevent) -> ::c_int;
1182 pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t;
1183 pub fn mq_receive(mqd: ::mqd_t,
1184 msg_ptr: *mut ::c_char,
1185 msg_len: ::size_t,
1186 msq_prio: *mut ::c_uint) -> ::ssize_t;
1187 pub fn mq_send(mqd: ::mqd_t,
1188 msg_ptr: *const ::c_char,
1189 msg_len: ::size_t,
1190 msq_prio: ::c_uint) -> ::c_int;
1191 pub fn mq_setattr(mqd: ::mqd_t,
1192 newattr: *const ::mq_attr,
1193 oldattr: *mut ::mq_attr) -> ::c_int;
1194 pub fn mq_timedreceive(mqd: ::mqd_t,
1195 msg_ptr: *mut ::c_char,
1196 msg_len: ::size_t,
1197 msq_prio: *mut ::c_uint,
1198 abs_timeout: *const ::timespec) -> ::ssize_t;
1199 pub fn mq_timedsend(mqd: ::mqd_t,
1200 msg_ptr: *const ::c_char,
1201 msg_len: ::size_t,
1202 msq_prio: ::c_uint,
1203 abs_timeout: *const ::timespec) -> ::c_int;
1204 pub fn mq_unlink(name: *const ::c_char) -> ::c_int;
1205 pub fn mincore(addr: *const ::c_void, len: ::size_t,
1206 vec: *mut ::c_char) -> ::c_int;
1207 pub fn newlocale(mask: ::c_int,
1208 locale: *const ::c_char,
1209 base: ::locale_t) -> ::locale_t;
1210 pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char;
1211 pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int;
1212 pub fn ppoll(fds: *mut ::pollfd,
1213 nfds: ::nfds_t,
1214 timeout: *const ::timespec,
1215 sigmask: *const sigset_t) -> ::c_int;
1216 pub fn preadv(fd: ::c_int,
1217 iov: *const ::iovec,
1218 iovcnt: ::c_int,
1219 offset: ::off_t) -> ::ssize_t;
1220 pub fn pthread_attr_get_np(tid: ::pthread_t,
1221 attr: *mut ::pthread_attr_t) -> ::c_int;
1222 pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t,
1223 guardsize: *mut ::size_t) -> ::c_int;
1224 pub fn pthread_attr_getstack(attr: *const ::pthread_attr_t,
1225 stackaddr: *mut *mut ::c_void,
1226 stacksize: *mut ::size_t) -> ::c_int;
1227 pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t,
1228 clock_id: *mut clockid_t) -> ::c_int;
1229 pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t,
1230 pshared: *mut ::c_int) -> ::c_int;
1231 pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t,
1232 clock_id: ::clockid_t) -> ::c_int;
1233 pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t,
1234 pshared: ::c_int) -> ::c_int;
1235 pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t,
1236 abstime: *const ::timespec) -> ::c_int;
1237 pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t,
1238 pshared: *mut ::c_int) -> ::c_int;
1239 pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t,
1240 pshared: ::c_int) -> ::c_int;
1241 pub fn pthread_rwlockattr_getpshared(attr: *const pthread_rwlockattr_t,
1242 val: *mut ::c_int) -> ::c_int;
1243 pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t,
1244 val: ::c_int) -> ::c_int;
1245 pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char);
1246 pub fn ptrace(request: ::c_int,
1247 pid: ::pid_t,
1248 addr: *mut ::c_char,
1249 data: ::c_int) -> ::c_int;
1250 pub fn pututxline(ut: *const utmpx) -> *mut utmpx;
1251 pub fn pwritev(fd: ::c_int,
1252 iov: *const ::iovec,
1253 iovcnt: ::c_int,
1254 offset: ::off_t) -> ::ssize_t;
1255 pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char;
1256 pub fn rtprio(function: ::c_int, pid: ::pid_t, rtp: *mut rtprio) -> ::c_int;
1257 pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int;
1258 pub fn sched_setscheduler(pid: ::pid_t,
1259 policy: ::c_int,
1260 param: *const ::sched_param) -> ::c_int;
1261 pub fn sem_getvalue(sem: *mut sem_t,
1262 sval: *mut ::c_int) -> ::c_int;
1263 pub fn sem_timedwait(sem: *mut sem_t,
1264 abstime: *const ::timespec) -> ::c_int;
1265 pub fn sendfile(fd: ::c_int,
1266 s: ::c_int,
1267 offset: ::off_t,
1268 nbytes: ::size_t,
1269 hdtr: *mut ::sf_hdtr,
1270 sbytes: *mut ::off_t,
1271 flags: ::c_int) -> ::c_int;
1272 pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int;
1273 pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int;
1274 pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int;
1275 pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int;
1276 pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int;
1277 pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int;
1278 pub fn setutxent();
1279 pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t)
1280 -> ::c_int;
1281 pub fn sigtimedwait(set: *const sigset_t,
1282 info: *mut siginfo_t,
1283 timeout: *const ::timespec) -> ::c_int;
1284 pub fn sigwaitinfo(set: *const sigset_t,
1285 info: *mut siginfo_t) -> ::c_int;
1286 pub fn sysctl(name: *const ::c_int,
1287 namelen: ::c_uint,
1288 oldp: *mut ::c_void,
1289 oldlenp: *mut ::size_t,
1290 newp: *const ::c_void,
1291 newlen: ::size_t)
1292 -> ::c_int;
1293 pub fn sysctlbyname(name: *const ::c_char,
1294 oldp: *mut ::c_void,
1295 oldlenp: *mut ::size_t,
1296 newp: *const ::c_void,
1297 newlen: ::size_t)
1298 -> ::c_int;
1299 pub fn sysctlnametomib(name: *const ::c_char,
1300 mibp: *mut ::c_int,
1301 sizep: *mut ::size_t)
1302 -> ::c_int;
1303 pub fn uselocale(loc: ::locale_t) -> ::locale_t;
1304 pub fn utimensat(dirfd: ::c_int, path: *const ::c_char,
1305 times: *const ::timespec, flag: ::c_int) -> ::c_int;
1306 }
1307
1308 #[link(name = "util")]
1309 extern {
1310 pub fn openpty(amaster: *mut ::c_int,
1311 aslave: *mut ::c_int,
1312 name: *mut ::c_char,
1313 termp: *mut termios,
1314 winp: *mut ::winsize) -> ::c_int;
1315 pub fn forkpty(amaster: *mut ::c_int,
1316 name: *mut ::c_char,
1317 termp: *mut termios,
1318 winp: *mut ::winsize) -> ::pid_t;
1319 pub fn login_tty(fd: ::c_int) -> ::c_int;
1320 }
1321
1322 cfg_if! {
1323 if #[cfg(target_os = "freebsd")] {
1324 mod freebsd;
1325 pub use self::freebsd::*;
1326 } else if #[cfg(target_os = "dragonfly")] {
1327 mod dragonfly;
1328 pub use self::dragonfly::*;
1329 } else {
1330 // ...
1331 }
1332 }