]> git.proxmox.com Git - cargo.git/blob - vendor/libc/src/unix/bsd/apple/mod.rs
New upstream version 0.37.0
[cargo.git] / vendor / libc / src / unix / bsd / apple / mod.rs
1 //! Apple (ios/darwin)-specific definitions
2 //!
3 //! This covers *-apple-* triples currently
4 pub type c_char = i8;
5 pub type clock_t = c_ulong;
6 pub type time_t = c_long;
7 pub type suseconds_t = i32;
8 pub type dev_t = i32;
9 pub type ino_t = u64;
10 pub type mode_t = u16;
11 pub type nlink_t = u16;
12 pub type blksize_t = i32;
13 pub type rlim_t = u64;
14 pub type pthread_key_t = c_ulong;
15 pub type sigset_t = u32;
16 pub type clockid_t = ::c_uint;
17 pub type fsblkcnt_t = ::c_uint;
18 pub type fsfilcnt_t = ::c_uint;
19 pub type speed_t = ::c_ulong;
20 pub type tcflag_t = ::c_ulong;
21 pub type nl_item = ::c_int;
22 pub type id_t = ::c_uint;
23 pub type sem_t = ::c_int;
24 pub type idtype_t = ::c_uint;
25 pub type integer_t = ::c_int;
26 pub type cpu_type_t = integer_t;
27 pub type cpu_subtype_t = integer_t;
28
29 pub type posix_spawnattr_t = *mut ::c_void;
30 pub type posix_spawn_file_actions_t = *mut ::c_void;
31 pub type key_t = ::c_int;
32 pub type shmatt_t = ::c_ushort;
33
34 deprecated_mach! {
35 pub type vm_prot_t = ::c_int;
36 pub type vm_size_t = ::uintptr_t;
37 pub type mach_timebase_info_data_t = mach_timebase_info;
38 }
39
40 #[cfg_attr(feature = "extra_traits", derive(Debug))]
41 pub enum timezone {}
42 impl ::Copy for timezone {}
43 impl ::Clone for timezone {
44 fn clone(&self) -> timezone { *self }
45 }
46
47 s! {
48 pub struct ip_mreq {
49 pub imr_multiaddr: in_addr,
50 pub imr_interface: in_addr,
51 }
52
53 pub struct aiocb {
54 pub aio_fildes: ::c_int,
55 pub aio_offset: ::off_t,
56 pub aio_buf: *mut ::c_void,
57 pub aio_nbytes: ::size_t,
58 pub aio_reqprio: ::c_int,
59 pub aio_sigevent: sigevent,
60 pub aio_lio_opcode: ::c_int
61 }
62
63 pub struct glob_t {
64 pub gl_pathc: ::size_t,
65 __unused1: ::c_int,
66 pub gl_offs: ::size_t,
67 __unused2: ::c_int,
68 pub gl_pathv: *mut *mut ::c_char,
69
70 __unused3: *mut ::c_void,
71
72 __unused4: *mut ::c_void,
73 __unused5: *mut ::c_void,
74 __unused6: *mut ::c_void,
75 __unused7: *mut ::c_void,
76 __unused8: *mut ::c_void,
77 }
78
79 pub struct addrinfo {
80 pub ai_flags: ::c_int,
81 pub ai_family: ::c_int,
82 pub ai_socktype: ::c_int,
83 pub ai_protocol: ::c_int,
84 pub ai_addrlen: ::socklen_t,
85 pub ai_canonname: *mut ::c_char,
86 pub ai_addr: *mut ::sockaddr,
87 pub ai_next: *mut addrinfo,
88 }
89
90 #[deprecated(
91 since = "0.2.55",
92 note = "Use the `mach` crate instead",
93 )]
94 pub struct mach_timebase_info {
95 pub numer: u32,
96 pub denom: u32,
97 }
98
99 pub struct stat {
100 pub st_dev: dev_t,
101 pub st_mode: mode_t,
102 pub st_nlink: nlink_t,
103 pub st_ino: ino_t,
104 pub st_uid: ::uid_t,
105 pub st_gid: ::gid_t,
106 pub st_rdev: dev_t,
107 pub st_atime: time_t,
108 pub st_atime_nsec: c_long,
109 pub st_mtime: time_t,
110 pub st_mtime_nsec: c_long,
111 pub st_ctime: time_t,
112 pub st_ctime_nsec: c_long,
113 pub st_birthtime: time_t,
114 pub st_birthtime_nsec: c_long,
115 pub st_size: ::off_t,
116 pub st_blocks: ::blkcnt_t,
117 pub st_blksize: blksize_t,
118 pub st_flags: u32,
119 pub st_gen: u32,
120 pub st_lspare: i32,
121 pub st_qspare: [i64; 2],
122 }
123
124 pub struct pthread_mutexattr_t {
125 __sig: ::c_long,
126 __opaque: [u8; 8],
127 }
128
129 pub struct pthread_condattr_t {
130 __sig: ::c_long,
131 __opaque: [u8; __PTHREAD_CONDATTR_SIZE__],
132 }
133
134 pub struct pthread_rwlockattr_t {
135 __sig: ::c_long,
136 __opaque: [u8; __PTHREAD_RWLOCKATTR_SIZE__],
137 }
138
139 pub struct siginfo_t {
140 pub si_signo: ::c_int,
141 pub si_errno: ::c_int,
142 pub si_code: ::c_int,
143 pub si_pid: ::pid_t,
144 pub si_uid: ::uid_t,
145 pub si_status: ::c_int,
146 pub si_addr: *mut ::c_void,
147 //Requires it to be union for tests
148 //pub si_value: ::sigval,
149 _pad: [usize; 9],
150 }
151
152 pub struct sigaction {
153 // FIXME: this field is actually a union
154 pub sa_sigaction: ::sighandler_t,
155 pub sa_mask: sigset_t,
156 pub sa_flags: ::c_int,
157 }
158
159 pub struct stack_t {
160 pub ss_sp: *mut ::c_void,
161 pub ss_size: ::size_t,
162 pub ss_flags: ::c_int,
163 }
164
165 pub struct fstore_t {
166 pub fst_flags: ::c_uint,
167 pub fst_posmode: ::c_int,
168 pub fst_offset: ::off_t,
169 pub fst_length: ::off_t,
170 pub fst_bytesalloc: ::off_t,
171 }
172
173 pub struct radvisory {
174 pub ra_offset: ::off_t,
175 pub ra_count: ::c_int,
176 }
177
178 pub struct statvfs {
179 pub f_bsize: ::c_ulong,
180 pub f_frsize: ::c_ulong,
181 pub f_blocks: ::fsblkcnt_t,
182 pub f_bfree: ::fsblkcnt_t,
183 pub f_bavail: ::fsblkcnt_t,
184 pub f_files: ::fsfilcnt_t,
185 pub f_ffree: ::fsfilcnt_t,
186 pub f_favail: ::fsfilcnt_t,
187 pub f_fsid: ::c_ulong,
188 pub f_flag: ::c_ulong,
189 pub f_namemax: ::c_ulong,
190 }
191
192 pub struct Dl_info {
193 pub dli_fname: *const ::c_char,
194 pub dli_fbase: *mut ::c_void,
195 pub dli_sname: *const ::c_char,
196 pub dli_saddr: *mut ::c_void,
197 }
198
199 pub struct sockaddr_in {
200 pub sin_len: u8,
201 pub sin_family: ::sa_family_t,
202 pub sin_port: ::in_port_t,
203 pub sin_addr: ::in_addr,
204 pub sin_zero: [::c_char; 8],
205 }
206
207 pub struct kevent64_s {
208 pub ident: u64,
209 pub filter: i16,
210 pub flags: u16,
211 pub fflags: u32,
212 pub data: i64,
213 pub udata: u64,
214 pub ext: [u64; 2],
215 }
216
217 pub struct dqblk {
218 pub dqb_bhardlimit: u64,
219 pub dqb_bsoftlimit: u64,
220 pub dqb_curbytes: u64,
221 pub dqb_ihardlimit: u32,
222 pub dqb_isoftlimit: u32,
223 pub dqb_curinodes: u32,
224 pub dqb_btime: u32,
225 pub dqb_itime: u32,
226 pub dqb_id: u32,
227 pub dqb_spare: [u32; 4],
228 }
229
230 pub struct if_msghdr {
231 pub ifm_msglen: ::c_ushort,
232 pub ifm_version: ::c_uchar,
233 pub ifm_type: ::c_uchar,
234 pub ifm_addrs: ::c_int,
235 pub ifm_flags: ::c_int,
236 pub ifm_index: ::c_ushort,
237 pub ifm_data: if_data,
238 }
239
240 pub struct termios {
241 pub c_iflag: ::tcflag_t,
242 pub c_oflag: ::tcflag_t,
243 pub c_cflag: ::tcflag_t,
244 pub c_lflag: ::tcflag_t,
245 pub c_cc: [::cc_t; ::NCCS],
246 pub c_ispeed: ::speed_t,
247 pub c_ospeed: ::speed_t,
248 }
249
250 pub struct flock {
251 pub l_start: ::off_t,
252 pub l_len: ::off_t,
253 pub l_pid: ::pid_t,
254 pub l_type: ::c_short,
255 pub l_whence: ::c_short,
256 }
257
258 pub struct sf_hdtr {
259 pub headers: *mut ::iovec,
260 pub hdr_cnt: ::c_int,
261 pub trailers: *mut ::iovec,
262 pub trl_cnt: ::c_int,
263 }
264
265 pub struct lconv {
266 pub decimal_point: *mut ::c_char,
267 pub thousands_sep: *mut ::c_char,
268 pub grouping: *mut ::c_char,
269 pub int_curr_symbol: *mut ::c_char,
270 pub currency_symbol: *mut ::c_char,
271 pub mon_decimal_point: *mut ::c_char,
272 pub mon_thousands_sep: *mut ::c_char,
273 pub mon_grouping: *mut ::c_char,
274 pub positive_sign: *mut ::c_char,
275 pub negative_sign: *mut ::c_char,
276 pub int_frac_digits: ::c_char,
277 pub frac_digits: ::c_char,
278 pub p_cs_precedes: ::c_char,
279 pub p_sep_by_space: ::c_char,
280 pub n_cs_precedes: ::c_char,
281 pub n_sep_by_space: ::c_char,
282 pub p_sign_posn: ::c_char,
283 pub n_sign_posn: ::c_char,
284 pub int_p_cs_precedes: ::c_char,
285 pub int_n_cs_precedes: ::c_char,
286 pub int_p_sep_by_space: ::c_char,
287 pub int_n_sep_by_space: ::c_char,
288 pub int_p_sign_posn: ::c_char,
289 pub int_n_sign_posn: ::c_char,
290 }
291
292 pub struct proc_taskinfo {
293 pub pti_virtual_size: u64,
294 pub pti_resident_size: u64,
295 pub pti_total_user: u64,
296 pub pti_total_system: u64,
297 pub pti_threads_user: u64,
298 pub pti_threads_system: u64,
299 pub pti_policy: i32,
300 pub pti_faults: i32,
301 pub pti_pageins: i32,
302 pub pti_cow_faults: i32,
303 pub pti_messages_sent: i32,
304 pub pti_messages_received: i32,
305 pub pti_syscalls_mach: i32,
306 pub pti_syscalls_unix: i32,
307 pub pti_csw: i32,
308 pub pti_threadnum: i32,
309 pub pti_numrunning: i32,
310 pub pti_priority: i32,
311 }
312
313 pub struct proc_bsdinfo {
314 pub pbi_flags: u32,
315 pub pbi_status: u32,
316 pub pbi_xstatus: u32,
317 pub pbi_pid: u32,
318 pub pbi_ppid: u32,
319 pub pbi_uid: ::uid_t,
320 pub pbi_gid: ::gid_t,
321 pub pbi_ruid: ::uid_t,
322 pub pbi_rgid: ::gid_t,
323 pub pbi_svuid: ::uid_t,
324 pub pbi_svgid: ::gid_t,
325 pub rfu_1: u32,
326 pub pbi_comm: [::c_char; MAXCOMLEN],
327 pub pbi_name: [::c_char; 32], // MAXCOMLEN * 2, but macro isn't happy...
328 pub pbi_nfiles: u32,
329 pub pbi_pgid: u32,
330 pub pbi_pjobc: u32,
331 pub e_tdev: u32,
332 pub e_tpgid: u32,
333 pub pbi_nice: i32,
334 pub pbi_start_tvsec: u64,
335 pub pbi_start_tvusec: u64,
336 }
337
338 pub struct proc_taskallinfo {
339 pub pbsd: proc_bsdinfo,
340 pub ptinfo: proc_taskinfo,
341 }
342
343 pub struct xsw_usage {
344 pub xsu_total: u64,
345 pub xsu_avail: u64,
346 pub xsu_used: u64,
347 pub xsu_pagesize: u32,
348 pub xsu_encrypted: ::boolean_t,
349 }
350
351 pub struct xucred {
352 pub cr_version: ::c_uint,
353 pub cr_uid: ::uid_t,
354 pub cr_ngroups: ::c_short,
355 pub cr_groups: [::gid_t;16]
356 }
357
358 #[deprecated(
359 since = "0.2.55",
360 note = "Use the `mach` crate instead",
361 )]
362 pub struct mach_header {
363 pub magic: u32,
364 pub cputype: cpu_type_t,
365 pub cpusubtype: cpu_subtype_t,
366 pub filetype: u32,
367 pub ncmds: u32,
368 pub sizeofcmds: u32,
369 pub flags: u32,
370 }
371
372 #[deprecated(
373 since = "0.2.55",
374 note = "Use the `mach` crate instead",
375 )]
376 pub struct mach_header_64 {
377 pub magic: u32,
378 pub cputype: cpu_type_t,
379 pub cpusubtype: cpu_subtype_t,
380 pub filetype: u32,
381 pub ncmds: u32,
382 pub sizeofcmds: u32,
383 pub flags: u32,
384 pub reserved: u32,
385 }
386
387 pub struct segment_command {
388 pub cmd: u32,
389 pub cmdsize: u32,
390 pub segname: [::c_char; 16],
391 pub vmaddr: u32,
392 pub vmsize: u32,
393 pub fileoff: u32,
394 pub filesize: u32,
395 pub maxprot: vm_prot_t,
396 pub initprot: vm_prot_t,
397 pub nsects: u32,
398 pub flags: u32,
399 }
400
401 pub struct segment_command_64 {
402 pub cmd: u32,
403 pub cmdsize: u32,
404 pub segname: [::c_char; 16],
405 pub vmaddr: u64,
406 pub vmsize: u64,
407 pub fileoff: u64,
408 pub filesize: u64,
409 pub maxprot: vm_prot_t,
410 pub initprot: vm_prot_t,
411 pub nsects: u32,
412 pub flags: u32,
413 }
414
415 pub struct load_command {
416 pub cmd: u32,
417 pub cmdsize: u32,
418 }
419
420 pub struct sockaddr_dl {
421 pub sdl_len: ::c_uchar,
422 pub sdl_family: ::c_uchar,
423 pub sdl_index: ::c_ushort,
424 pub sdl_type: ::c_uchar,
425 pub sdl_nlen: ::c_uchar,
426 pub sdl_alen: ::c_uchar,
427 pub sdl_slen: ::c_uchar,
428 pub sdl_data: [::c_char; 12],
429 }
430
431 pub struct sockaddr_inarp {
432 pub sin_len: ::c_uchar,
433 pub sin_family: ::c_uchar,
434 pub sin_port: ::c_ushort,
435 pub sin_addr: ::in_addr,
436 pub sin_srcaddr: ::in_addr,
437 pub sin_tos: ::c_ushort,
438 pub sin_other: ::c_ushort,
439 }
440
441 pub struct sockaddr_ctl {
442 pub sc_len: ::c_uchar,
443 pub sc_family: ::c_uchar,
444 pub ss_sysaddr: u16,
445 pub sc_id: u32,
446 pub sc_unit: u32,
447 pub sc_reserved: [u32; 5],
448 }
449
450 pub struct in_pktinfo {
451 pub ipi_ifindex: ::c_uint,
452 pub ipi_spec_dst: ::in_addr,
453 pub ipi_addr: ::in_addr,
454 }
455
456 pub struct in6_pktinfo {
457 pub ipi6_addr: ::in6_addr,
458 pub ipi6_ifindex: ::c_uint,
459 }
460
461 // sys/ipc.h:
462
463 pub struct ipc_perm {
464 pub uid: ::uid_t,
465 pub gid: ::gid_t,
466 pub cuid: ::uid_t,
467 pub cgid: ::gid_t,
468 pub mode: ::mode_t,
469 pub _seq: ::c_ushort,
470 pub _key: ::key_t,
471 }
472
473 // sys/sem.h
474
475 pub struct sembuf {
476 pub sem_num: ::c_ushort,
477 pub sem_op: ::c_short,
478 pub sem_flg: ::c_short,
479 }
480
481 // sys/shm.h
482
483 pub struct arphdr {
484 pub ar_hrd: u16,
485 pub ar_pro: u16,
486 pub ar_hln: u8,
487 pub ar_pln: u8,
488 pub ar_op: u16,
489 }
490
491 pub struct in_addr {
492 pub s_addr: ::in_addr_t,
493 }
494 }
495
496 s_no_extra_traits!{
497 #[cfg_attr(libc_packedN, repr(packed(4)))]
498 pub struct kevent {
499 pub ident: ::uintptr_t,
500 pub filter: i16,
501 pub flags: u16,
502 pub fflags: u32,
503 pub data: ::intptr_t,
504 pub udata: *mut ::c_void,
505 }
506
507 #[cfg_attr(libc_packedN, repr(packed(4)))]
508 pub struct semid_ds {
509 // Note the manpage shows different types than the system header.
510 pub sem_perm: ipc_perm,
511 pub sem_base: i32,
512 pub sem_nsems: ::c_ushort,
513 pub sem_otime: ::time_t,
514 pub sem_pad1: i32,
515 pub sem_ctime: ::time_t,
516 pub sem_pad2: i32,
517 pub sem_pad3: [i32; 4],
518 }
519
520 #[cfg_attr(libc_packedN, repr(packed(4)))]
521 pub struct shmid_ds {
522 pub shm_perm: ipc_perm,
523 pub shm_segsz: ::size_t,
524 pub shm_lpid: ::pid_t,
525 pub shm_cpid: ::pid_t,
526 pub shm_nattch: ::shmatt_t,
527 pub shm_atime: ::time_t, // FIXME: 64-bit wrong align => wrong offset
528 pub shm_dtime: ::time_t, // FIXME: 64-bit wrong align => wrong offset
529 pub shm_ctime: ::time_t, // FIXME: 64-bit wrong align => wrong offset
530 // FIXME: 64-bit wrong align => wrong offset:
531 pub shm_internal: *mut ::c_void,
532 }
533
534 pub struct proc_threadinfo {
535 pub pth_user_time: u64,
536 pub pth_system_time: u64,
537 pub pth_cpu_usage: i32,
538 pub pth_policy: i32,
539 pub pth_run_state: i32,
540 pub pth_flags: i32,
541 pub pth_sleep_time: i32,
542 pub pth_curpri: i32,
543 pub pth_priority: i32,
544 pub pth_maxpriority: i32,
545 pub pth_name: [::c_char; MAXTHREADNAMESIZE],
546 }
547
548 pub struct statfs {
549 pub f_bsize: u32,
550 pub f_iosize: i32,
551 pub f_blocks: u64,
552 pub f_bfree: u64,
553 pub f_bavail: u64,
554 pub f_files: u64,
555 pub f_ffree: u64,
556 pub f_fsid: ::fsid_t,
557 pub f_owner: ::uid_t,
558 pub f_type: u32,
559 pub f_flags: u32,
560 pub f_fssubtype: u32,
561 pub f_fstypename: [::c_char; 16],
562 pub f_mntonname: [::c_char; 1024],
563 pub f_mntfromname: [::c_char; 1024],
564 pub f_reserved: [u32; 8],
565 }
566
567 pub struct dirent {
568 pub d_ino: u64,
569 pub d_seekoff: u64,
570 pub d_reclen: u16,
571 pub d_namlen: u16,
572 pub d_type: u8,
573 pub d_name: [::c_char; 1024],
574 }
575
576 pub struct pthread_rwlock_t {
577 __sig: ::c_long,
578 __opaque: [u8; __PTHREAD_RWLOCK_SIZE__],
579 }
580
581 pub struct pthread_mutex_t {
582 __sig: ::c_long,
583 __opaque: [u8; __PTHREAD_MUTEX_SIZE__],
584 }
585
586 pub struct pthread_cond_t {
587 __sig: ::c_long,
588 __opaque: [u8; __PTHREAD_COND_SIZE__],
589 }
590
591 pub struct sockaddr_storage {
592 pub ss_len: u8,
593 pub ss_family: ::sa_family_t,
594 __ss_pad1: [u8; 6],
595 __ss_align: i64,
596 __ss_pad2: [u8; 112],
597 }
598
599 pub struct utmpx {
600 pub ut_user: [::c_char; _UTX_USERSIZE],
601 pub ut_id: [::c_char; _UTX_IDSIZE],
602 pub ut_line: [::c_char; _UTX_LINESIZE],
603 pub ut_pid: ::pid_t,
604 pub ut_type: ::c_short,
605 pub ut_tv: ::timeval,
606 pub ut_host: [::c_char; _UTX_HOSTSIZE],
607 ut_pad: [u32; 16],
608 }
609
610 pub struct sigevent {
611 pub sigev_notify: ::c_int,
612 pub sigev_signo: ::c_int,
613 pub sigev_value: ::sigval,
614 __unused1: *mut ::c_void, //actually a function pointer
615 pub sigev_notify_attributes: *mut ::pthread_attr_t
616 }
617 }
618
619 impl siginfo_t {
620 pub unsafe fn si_addr(&self) -> *mut ::c_void {
621 self.si_addr
622 }
623
624 pub unsafe fn si_value(&self) -> ::sigval {
625 #[repr(C)]
626 struct siginfo_timer {
627 _si_signo: ::c_int,
628 _si_errno: ::c_int,
629 _si_code: ::c_int,
630 _si_pid: ::pid_t,
631 _si_uid: ::uid_t,
632 _si_status: ::c_int,
633 _si_addr: *mut ::c_void,
634 si_value: ::sigval,
635 }
636
637 (*(self as *const siginfo_t as *const siginfo_timer)).si_value
638 }
639 }
640
641 cfg_if! {
642 if #[cfg(libc_union)] {
643 s_no_extra_traits! {
644 pub union semun {
645 pub val: ::c_int,
646 pub buf: *mut semid_ds,
647 pub array: *mut ::c_ushort,
648 }
649 }
650
651 cfg_if! {
652 if #[cfg(feature = "extra_traits")] {
653 impl PartialEq for semun {
654 fn eq(&self, other: &semun) -> bool {
655 unsafe { self.val == other.val }
656 }
657 }
658 impl Eq for semun {}
659 impl ::fmt::Debug for semun {
660 fn fmt(&self, f: &mut ::fmt::Formatter)
661 -> ::fmt::Result {
662 f.debug_struct("semun")
663 .field("val", unsafe { &self.val })
664 .finish()
665 }
666 }
667 impl ::hash::Hash for semun {
668 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
669 unsafe { self.val.hash(state) };
670 }
671 }
672 }
673 }
674 }
675 }
676
677 cfg_if! {
678 if #[cfg(feature = "extra_traits")] {
679 impl PartialEq for kevent {
680 fn eq(&self, other: &kevent) -> bool {
681 self.ident == other.ident
682 && self.filter == other.filter
683 && self.flags == other.flags
684 && self.fflags == other.fflags
685 && self.data == other.data
686 && self.udata == other.udata
687 }
688 }
689 impl Eq for kevent {}
690 impl ::fmt::Debug for kevent {
691 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
692 let ident = self.ident;
693 let filter = self.filter;
694 let flags = self.flags;
695 let fflags = self.fflags;
696 let data = self.data;
697 let udata = self.udata;
698 f.debug_struct("kevent")
699 .field("ident", &ident)
700 .field("filter", &filter)
701 .field("flags", &flags)
702 .field("fflags", &fflags)
703 .field("data", &data)
704 .field("udata", &udata)
705 .finish()
706 }
707 }
708 impl ::hash::Hash for kevent {
709 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
710 let ident = self.ident;
711 let filter = self.filter;
712 let flags = self.flags;
713 let fflags = self.fflags;
714 let data = self.data;
715 let udata = self.udata;
716 ident.hash(state);
717 filter.hash(state);
718 flags.hash(state);
719 fflags.hash(state);
720 data.hash(state);
721 udata.hash(state);
722 }
723 }
724
725 impl PartialEq for semid_ds {
726 fn eq(&self, other: &semid_ds) -> bool {
727 let sem_perm = self.sem_perm;
728 let sem_pad3 = self.sem_pad3;
729 let other_sem_perm = other.sem_perm;
730 let other_sem_pad3 = other.sem_pad3;
731 sem_perm == other_sem_perm
732 && self.sem_base == other.sem_base
733 && self.sem_nsems == other.sem_nsems
734 && self.sem_otime == other.sem_otime
735 && self.sem_pad1 == other.sem_pad1
736 && self.sem_ctime == other.sem_ctime
737 && self.sem_pad2 == other.sem_pad2
738 && sem_pad3 == other_sem_pad3
739 }
740 }
741 impl Eq for semid_ds {}
742 impl ::fmt::Debug for semid_ds {
743 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
744 let sem_perm = self.sem_perm;
745 let sem_base = self.sem_base;
746 let sem_nsems = self.sem_nsems;
747 let sem_otime = self.sem_otime;
748 let sem_pad1 = self.sem_pad1;
749 let sem_ctime = self.sem_ctime;
750 let sem_pad2 = self.sem_pad2;
751 let sem_pad3 = self.sem_pad3;
752 f.debug_struct("semid_ds")
753 .field("sem_perm", &sem_perm)
754 .field("sem_base", &sem_base)
755 .field("sem_nsems", &sem_nsems)
756 .field("sem_otime", &sem_otime)
757 .field("sem_pad1", &sem_pad1)
758 .field("sem_ctime", &sem_ctime)
759 .field("sem_pad2", &sem_pad2)
760 .field("sem_pad3", &sem_pad3)
761 .finish()
762 }
763 }
764 impl ::hash::Hash for semid_ds {
765 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
766 let sem_perm = self.sem_perm;
767 let sem_base = self.sem_base;
768 let sem_nsems = self.sem_nsems;
769 let sem_otime = self.sem_otime;
770 let sem_pad1 = self.sem_pad1;
771 let sem_ctime = self.sem_ctime;
772 let sem_pad2 = self.sem_pad2;
773 let sem_pad3 = self.sem_pad3;
774 sem_perm.hash(state);
775 sem_base.hash(state);
776 sem_nsems.hash(state);
777 sem_otime.hash(state);
778 sem_pad1.hash(state);
779 sem_ctime.hash(state);
780 sem_pad2.hash(state);
781 sem_pad3.hash(state);
782 }
783 }
784
785 impl PartialEq for shmid_ds {
786 fn eq(&self, other: &shmid_ds) -> bool {
787 let shm_perm = self.shm_perm;
788 let other_shm_perm = other.shm_perm;
789 shm_perm == other_shm_perm
790 && self.shm_segsz == other.shm_segsz
791 && self.shm_lpid == other.shm_lpid
792 && self.shm_cpid == other.shm_cpid
793 && self.shm_nattch == other.shm_nattch
794 && self.shm_atime == other.shm_atime
795 && self.shm_dtime == other.shm_dtime
796 && self.shm_ctime == other.shm_ctime
797 && self.shm_internal == other.shm_internal
798 }
799 }
800 impl Eq for shmid_ds {}
801 impl ::fmt::Debug for shmid_ds {
802 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
803 let shm_perm = self.shm_perm;
804 let shm_segsz = self.shm_segsz;
805 let shm_lpid = self.shm_lpid;
806 let shm_cpid = self.shm_cpid;
807 let shm_nattch = self.shm_nattch;
808 let shm_atime = self.shm_atime;
809 let shm_dtime = self.shm_dtime;
810 let shm_ctime = self.shm_ctime;
811 let shm_internal = self.shm_internal;
812 f.debug_struct("shmid_ds")
813 .field("shm_perm", &shm_perm)
814 .field("shm_segsz", &shm_segsz)
815 .field("shm_lpid", &shm_lpid)
816 .field("shm_cpid", &shm_cpid)
817 .field("shm_nattch", &shm_nattch)
818 .field("shm_atime", &shm_atime)
819 .field("shm_dtime", &shm_dtime)
820 .field("shm_ctime", &shm_ctime)
821 .field("shm_internal", &shm_internal)
822 .finish()
823 }
824 }
825 impl ::hash::Hash for shmid_ds {
826 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
827 let shm_perm = self.shm_perm;
828 let shm_segsz = self.shm_segsz;
829 let shm_lpid = self.shm_lpid;
830 let shm_cpid = self.shm_cpid;
831 let shm_nattch = self.shm_nattch;
832 let shm_atime = self.shm_atime;
833 let shm_dtime = self.shm_dtime;
834 let shm_ctime = self.shm_ctime;
835 let shm_internal = self.shm_internal;
836 shm_perm.hash(state);
837 shm_segsz.hash(state);
838 shm_lpid.hash(state);
839 shm_cpid.hash(state);
840 shm_nattch.hash(state);
841 shm_atime.hash(state);
842 shm_dtime.hash(state);
843 shm_ctime.hash(state);
844 shm_internal.hash(state);
845 }
846 }
847
848 impl PartialEq for proc_threadinfo {
849 fn eq(&self, other: &proc_threadinfo) -> bool {
850 self.pth_user_time == other.pth_user_time
851 && self.pth_system_time == other.pth_system_time
852 && self.pth_cpu_usage == other.pth_cpu_usage
853 && self.pth_policy == other.pth_policy
854 && self.pth_run_state == other.pth_run_state
855 && self.pth_flags == other.pth_flags
856 && self.pth_sleep_time == other.pth_sleep_time
857 && self.pth_curpri == other.pth_curpri
858 && self.pth_priority == other.pth_priority
859 && self.pth_maxpriority == other.pth_maxpriority
860 && self.pth_name
861 .iter()
862 .zip(other.pth_name.iter())
863 .all(|(a,b)| a == b)
864 }
865 }
866 impl Eq for proc_threadinfo {}
867 impl ::fmt::Debug for proc_threadinfo {
868 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
869 f.debug_struct("proc_threadinfo")
870 .field("pth_user_time", &self.pth_user_time)
871 .field("pth_system_time", &self.pth_system_time)
872 .field("pth_cpu_usage", &self.pth_cpu_usage)
873 .field("pth_policy", &self.pth_policy)
874 .field("pth_run_state", &self.pth_run_state)
875 .field("pth_flags", &self.pth_flags)
876 .field("pth_sleep_time", &self.pth_sleep_time)
877 .field("pth_curpri", &self.pth_curpri)
878 .field("pth_priority", &self.pth_priority)
879 .field("pth_maxpriority", &self.pth_maxpriority)
880 // FIXME: .field("pth_name", &self.pth_name)
881 .finish()
882 }
883 }
884 impl ::hash::Hash for proc_threadinfo {
885 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
886 self.pth_user_time.hash(state);
887 self.pth_system_time.hash(state);
888 self.pth_cpu_usage.hash(state);
889 self.pth_policy.hash(state);
890 self.pth_run_state.hash(state);
891 self.pth_flags.hash(state);
892 self.pth_sleep_time.hash(state);
893 self.pth_curpri.hash(state);
894 self.pth_priority.hash(state);
895 self.pth_maxpriority.hash(state);
896 self.pth_name.hash(state);
897 }
898 }
899
900 impl PartialEq for statfs {
901 fn eq(&self, other: &statfs) -> bool {
902 self.f_bsize == other.f_bsize
903 && self.f_iosize == other.f_iosize
904 && self.f_blocks == other.f_blocks
905 && self.f_bfree == other.f_bfree
906 && self.f_bavail == other.f_bavail
907 && self.f_files == other.f_files
908 && self.f_ffree == other.f_ffree
909 && self.f_fsid == other.f_fsid
910 && self.f_owner == other.f_owner
911 && self.f_flags == other.f_flags
912 && self.f_fssubtype == other.f_fssubtype
913 && self.f_fstypename == other.f_fstypename
914 && self.f_type == other.f_type
915 && self
916 .f_mntonname
917 .iter()
918 .zip(other.f_mntonname.iter())
919 .all(|(a,b)| a == b)
920 && self
921 .f_mntfromname
922 .iter()
923 .zip(other.f_mntfromname.iter())
924 .all(|(a,b)| a == b)
925 && self.f_reserved == other.f_reserved
926 }
927 }
928
929 impl Eq for statfs {}
930 impl ::fmt::Debug for statfs {
931 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
932 f.debug_struct("statfs")
933 .field("f_bsize", &self.f_bsize)
934 .field("f_iosize", &self.f_iosize)
935 .field("f_blocks", &self.f_blocks)
936 .field("f_bfree", &self.f_bfree)
937 .field("f_bavail", &self.f_bavail)
938 .field("f_files", &self.f_files)
939 .field("f_ffree", &self.f_ffree)
940 .field("f_fsid", &self.f_fsid)
941 .field("f_owner", &self.f_owner)
942 .field("f_flags", &self.f_flags)
943 .field("f_fssubtype", &self.f_fssubtype)
944 .field("f_fstypename", &self.f_fstypename)
945 .field("f_type", &self.f_type)
946 // FIXME: .field("f_mntonname", &self.f_mntonname)
947 // FIXME: .field("f_mntfromname", &self.f_mntfromname)
948 .field("f_reserved", &self.f_reserved)
949 .finish()
950 }
951 }
952
953 impl ::hash::Hash for statfs {
954 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
955 self.f_bsize.hash(state);
956 self.f_iosize.hash(state);
957 self.f_blocks.hash(state);
958 self.f_bfree.hash(state);
959 self.f_bavail.hash(state);
960 self.f_files.hash(state);
961 self.f_ffree.hash(state);
962 self.f_fsid.hash(state);
963 self.f_owner.hash(state);
964 self.f_flags.hash(state);
965 self.f_fssubtype.hash(state);
966 self.f_fstypename.hash(state);
967 self.f_type.hash(state);
968 self.f_mntonname.hash(state);
969 self.f_mntfromname.hash(state);
970 self.f_reserved.hash(state);
971 }
972 }
973
974 impl PartialEq for dirent {
975 fn eq(&self, other: &dirent) -> bool {
976 self.d_ino == other.d_ino
977 && self.d_seekoff == other.d_seekoff
978 && self.d_reclen == other.d_reclen
979 && self.d_namlen == other.d_namlen
980 && self.d_type == other.d_type
981 && self
982 .d_name
983 .iter()
984 .zip(other.d_name.iter())
985 .all(|(a,b)| a == b)
986 }
987 }
988 impl Eq for dirent {}
989 impl ::fmt::Debug for dirent {
990 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
991 f.debug_struct("dirent")
992 .field("d_ino", &self.d_ino)
993 .field("d_seekoff", &self.d_seekoff)
994 .field("d_reclen", &self.d_reclen)
995 .field("d_namlen", &self.d_namlen)
996 .field("d_type", &self.d_type)
997 // FIXME: .field("d_name", &self.d_name)
998 .finish()
999 }
1000 }
1001 impl ::hash::Hash for dirent {
1002 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
1003 self.d_ino.hash(state);
1004 self.d_seekoff.hash(state);
1005 self.d_reclen.hash(state);
1006 self.d_namlen.hash(state);
1007 self.d_type.hash(state);
1008 self.d_name.hash(state);
1009 }
1010 }
1011 impl PartialEq for pthread_rwlock_t {
1012 fn eq(&self, other: &pthread_rwlock_t) -> bool {
1013 self.__sig == other.__sig
1014 && self.
1015 __opaque
1016 .iter()
1017 .zip(other.__opaque.iter())
1018 .all(|(a,b)| a == b)
1019 }
1020 }
1021 impl Eq for pthread_rwlock_t {}
1022 impl ::fmt::Debug for pthread_rwlock_t {
1023 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
1024 f.debug_struct("pthread_rwlock_t")
1025 .field("__sig", &self.__sig)
1026 // FIXME: .field("__opaque", &self.__opaque)
1027 .finish()
1028 }
1029 }
1030 impl ::hash::Hash for pthread_rwlock_t {
1031 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
1032 self.__sig.hash(state);
1033 self.__opaque.hash(state);
1034 }
1035 }
1036
1037 impl PartialEq for pthread_mutex_t {
1038 fn eq(&self, other: &pthread_mutex_t) -> bool {
1039 self.__sig == other.__sig
1040 && self.
1041 __opaque
1042 .iter()
1043 .zip(other.__opaque.iter())
1044 .all(|(a,b)| a == b)
1045 }
1046 }
1047
1048 impl Eq for pthread_mutex_t {}
1049
1050 impl ::fmt::Debug for pthread_mutex_t {
1051 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
1052 f.debug_struct("pthread_mutex_t")
1053 .field("__sig", &self.__sig)
1054 // FIXME: .field("__opaque", &self.__opaque)
1055 .finish()
1056 }
1057 }
1058
1059 impl ::hash::Hash for pthread_mutex_t {
1060 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
1061 self.__sig.hash(state);
1062 self.__opaque.hash(state);
1063 }
1064 }
1065
1066 impl PartialEq for pthread_cond_t {
1067 fn eq(&self, other: &pthread_cond_t) -> bool {
1068 self.__sig == other.__sig
1069 && self.
1070 __opaque
1071 .iter()
1072 .zip(other.__opaque.iter())
1073 .all(|(a,b)| a == b)
1074 }
1075 }
1076
1077 impl Eq for pthread_cond_t {}
1078
1079 impl ::fmt::Debug for pthread_cond_t {
1080 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
1081 f.debug_struct("pthread_cond_t")
1082 .field("__sig", &self.__sig)
1083 // FIXME: .field("__opaque", &self.__opaque)
1084 .finish()
1085 }
1086 }
1087
1088 impl ::hash::Hash for pthread_cond_t {
1089 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
1090 self.__sig.hash(state);
1091 self.__opaque.hash(state);
1092 }
1093 }
1094
1095 impl PartialEq for sockaddr_storage {
1096 fn eq(&self, other: &sockaddr_storage) -> bool {
1097 self.ss_len == other.ss_len
1098 && self.ss_family == other.ss_family
1099 && self
1100 .__ss_pad1
1101 .iter()
1102 .zip(other.__ss_pad1.iter())
1103 .all(|(a, b)| a == b)
1104 && self.__ss_align == other.__ss_align
1105 && self
1106 .__ss_pad2
1107 .iter()
1108 .zip(other.__ss_pad2.iter())
1109 .all(|(a, b)| a == b)
1110 }
1111 }
1112
1113 impl Eq for sockaddr_storage {}
1114
1115 impl ::fmt::Debug for sockaddr_storage {
1116 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
1117 f.debug_struct("sockaddr_storage")
1118 .field("ss_len", &self.ss_len)
1119 .field("ss_family", &self.ss_family)
1120 .field("__ss_pad1", &self.__ss_pad1)
1121 .field("__ss_align", &self.__ss_align)
1122 // FIXME: .field("__ss_pad2", &self.__ss_pad2)
1123 .finish()
1124 }
1125 }
1126
1127 impl ::hash::Hash for sockaddr_storage {
1128 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
1129 self.ss_len.hash(state);
1130 self.ss_family.hash(state);
1131 self.__ss_pad1.hash(state);
1132 self.__ss_align.hash(state);
1133 self.__ss_pad2.hash(state);
1134 }
1135 }
1136
1137 impl PartialEq for utmpx {
1138 fn eq(&self, other: &utmpx) -> bool {
1139 self.ut_user
1140 .iter()
1141 .zip(other.ut_user.iter())
1142 .all(|(a,b)| a == b)
1143 && self.ut_id == other.ut_id
1144 && self.ut_line == other.ut_line
1145 && self.ut_pid == other.ut_pid
1146 && self.ut_type == other.ut_type
1147 && self.ut_tv == other.ut_tv
1148 && self
1149 .ut_host
1150 .iter()
1151 .zip(other.ut_host.iter())
1152 .all(|(a,b)| a == b)
1153 && self.ut_pad == other.ut_pad
1154 }
1155 }
1156
1157 impl Eq for utmpx {}
1158
1159 impl ::fmt::Debug for utmpx {
1160 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
1161 f.debug_struct("utmpx")
1162 // FIXME: .field("ut_user", &self.ut_user)
1163 .field("ut_id", &self.ut_id)
1164 .field("ut_line", &self.ut_line)
1165 .field("ut_pid", &self.ut_pid)
1166 .field("ut_type", &self.ut_type)
1167 .field("ut_tv", &self.ut_tv)
1168 // FIXME: .field("ut_host", &self.ut_host)
1169 .field("ut_pad", &self.ut_pad)
1170 .finish()
1171 }
1172 }
1173
1174 impl ::hash::Hash for utmpx {
1175 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
1176 self.ut_user.hash(state);
1177 self.ut_id.hash(state);
1178 self.ut_line.hash(state);
1179 self.ut_pid.hash(state);
1180 self.ut_type.hash(state);
1181 self.ut_tv.hash(state);
1182 self.ut_host.hash(state);
1183 self.ut_pad.hash(state);
1184 }
1185 }
1186
1187 impl PartialEq for sigevent {
1188 fn eq(&self, other: &sigevent) -> bool {
1189 self.sigev_notify == other.sigev_notify
1190 && self.sigev_signo == other.sigev_signo
1191 && self.sigev_value == other.sigev_value
1192 && self.sigev_notify_attributes
1193 == other.sigev_notify_attributes
1194 }
1195 }
1196
1197 impl Eq for sigevent {}
1198
1199 impl ::fmt::Debug for sigevent {
1200 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
1201 f.debug_struct("sigevent")
1202 .field("sigev_notify", &self.sigev_notify)
1203 .field("sigev_signo", &self.sigev_signo)
1204 .field("sigev_value", &self.sigev_value)
1205 .field("sigev_notify_attributes",
1206 &self.sigev_notify_attributes)
1207 .finish()
1208 }
1209 }
1210
1211 impl ::hash::Hash for sigevent {
1212 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
1213 self.sigev_notify.hash(state);
1214 self.sigev_signo.hash(state);
1215 self.sigev_value.hash(state);
1216 self.sigev_notify_attributes.hash(state);
1217 }
1218 }
1219 }
1220 }
1221
1222 pub const _UTX_USERSIZE: usize = 256;
1223 pub const _UTX_LINESIZE: usize = 32;
1224 pub const _UTX_IDSIZE: usize = 4;
1225 pub const _UTX_HOSTSIZE: usize = 256;
1226
1227 pub const EMPTY: ::c_short = 0;
1228 pub const RUN_LVL: ::c_short = 1;
1229 pub const BOOT_TIME: ::c_short = 2;
1230 pub const OLD_TIME: ::c_short = 3;
1231 pub const NEW_TIME: ::c_short = 4;
1232 pub const INIT_PROCESS: ::c_short = 5;
1233 pub const LOGIN_PROCESS: ::c_short = 6;
1234 pub const USER_PROCESS: ::c_short = 7;
1235 pub const DEAD_PROCESS: ::c_short = 8;
1236 pub const ACCOUNTING: ::c_short = 9;
1237 pub const SIGNATURE: ::c_short = 10;
1238 pub const SHUTDOWN_TIME: ::c_short = 11;
1239
1240 pub const LC_COLLATE_MASK: ::c_int = (1 << 0);
1241 pub const LC_CTYPE_MASK: ::c_int = (1 << 1);
1242 pub const LC_MESSAGES_MASK: ::c_int = (1 << 2);
1243 pub const LC_MONETARY_MASK: ::c_int = (1 << 3);
1244 pub const LC_NUMERIC_MASK: ::c_int = (1 << 4);
1245 pub const LC_TIME_MASK: ::c_int = (1 << 5);
1246 pub const LC_ALL_MASK: ::c_int = LC_COLLATE_MASK
1247 | LC_CTYPE_MASK
1248 | LC_MESSAGES_MASK
1249 | LC_MONETARY_MASK
1250 | LC_NUMERIC_MASK
1251 | LC_TIME_MASK;
1252
1253 pub const CODESET: ::nl_item = 0;
1254 pub const D_T_FMT: ::nl_item = 1;
1255 pub const D_FMT: ::nl_item = 2;
1256 pub const T_FMT: ::nl_item = 3;
1257 pub const T_FMT_AMPM: ::nl_item = 4;
1258 pub const AM_STR: ::nl_item = 5;
1259 pub const PM_STR: ::nl_item = 6;
1260
1261 pub const DAY_1: ::nl_item = 7;
1262 pub const DAY_2: ::nl_item = 8;
1263 pub const DAY_3: ::nl_item = 9;
1264 pub const DAY_4: ::nl_item = 10;
1265 pub const DAY_5: ::nl_item = 11;
1266 pub const DAY_6: ::nl_item = 12;
1267 pub const DAY_7: ::nl_item = 13;
1268
1269 pub const ABDAY_1: ::nl_item = 14;
1270 pub const ABDAY_2: ::nl_item = 15;
1271 pub const ABDAY_3: ::nl_item = 16;
1272 pub const ABDAY_4: ::nl_item = 17;
1273 pub const ABDAY_5: ::nl_item = 18;
1274 pub const ABDAY_6: ::nl_item = 19;
1275 pub const ABDAY_7: ::nl_item = 20;
1276
1277 pub const MON_1: ::nl_item = 21;
1278 pub const MON_2: ::nl_item = 22;
1279 pub const MON_3: ::nl_item = 23;
1280 pub const MON_4: ::nl_item = 24;
1281 pub const MON_5: ::nl_item = 25;
1282 pub const MON_6: ::nl_item = 26;
1283 pub const MON_7: ::nl_item = 27;
1284 pub const MON_8: ::nl_item = 28;
1285 pub const MON_9: ::nl_item = 29;
1286 pub const MON_10: ::nl_item = 30;
1287 pub const MON_11: ::nl_item = 31;
1288 pub const MON_12: ::nl_item = 32;
1289
1290 pub const ABMON_1: ::nl_item = 33;
1291 pub const ABMON_2: ::nl_item = 34;
1292 pub const ABMON_3: ::nl_item = 35;
1293 pub const ABMON_4: ::nl_item = 36;
1294 pub const ABMON_5: ::nl_item = 37;
1295 pub const ABMON_6: ::nl_item = 38;
1296 pub const ABMON_7: ::nl_item = 39;
1297 pub const ABMON_8: ::nl_item = 40;
1298 pub const ABMON_9: ::nl_item = 41;
1299 pub const ABMON_10: ::nl_item = 42;
1300 pub const ABMON_11: ::nl_item = 43;
1301 pub const ABMON_12: ::nl_item = 44;
1302
1303 pub const CLOCK_REALTIME: ::clockid_t = 0;
1304 pub const CLOCK_MONOTONIC: ::clockid_t = 6;
1305 pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 12;
1306 pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 16;
1307
1308 pub const ERA: ::nl_item = 45;
1309 pub const ERA_D_FMT: ::nl_item = 46;
1310 pub const ERA_D_T_FMT: ::nl_item = 47;
1311 pub const ERA_T_FMT: ::nl_item = 48;
1312 pub const ALT_DIGITS: ::nl_item = 49;
1313
1314 pub const RADIXCHAR: ::nl_item = 50;
1315 pub const THOUSEP: ::nl_item = 51;
1316
1317 pub const YESEXPR: ::nl_item = 52;
1318 pub const NOEXPR: ::nl_item = 53;
1319
1320 pub const YESSTR: ::nl_item = 54;
1321 pub const NOSTR: ::nl_item = 55;
1322
1323 pub const CRNCYSTR: ::nl_item = 56;
1324
1325 pub const D_MD_ORDER: ::nl_item = 57;
1326
1327 pub const EXIT_FAILURE: ::c_int = 1;
1328 pub const EXIT_SUCCESS: ::c_int = 0;
1329 pub const RAND_MAX: ::c_int = 2147483647;
1330 pub const EOF: ::c_int = -1;
1331 pub const SEEK_SET: ::c_int = 0;
1332 pub const SEEK_CUR: ::c_int = 1;
1333 pub const SEEK_END: ::c_int = 2;
1334 pub const _IOFBF: ::c_int = 0;
1335 pub const _IONBF: ::c_int = 2;
1336 pub const _IOLBF: ::c_int = 1;
1337 pub const BUFSIZ: ::c_uint = 1024;
1338 pub const FOPEN_MAX: ::c_uint = 20;
1339 pub const FILENAME_MAX: ::c_uint = 1024;
1340 pub const L_tmpnam: ::c_uint = 1024;
1341 pub const TMP_MAX: ::c_uint = 308915776;
1342 pub const _PC_LINK_MAX: ::c_int = 1;
1343 pub const _PC_MAX_CANON: ::c_int = 2;
1344 pub const _PC_MAX_INPUT: ::c_int = 3;
1345 pub const _PC_NAME_MAX: ::c_int = 4;
1346 pub const _PC_PATH_MAX: ::c_int = 5;
1347 pub const _PC_PIPE_BUF: ::c_int = 6;
1348 pub const _PC_CHOWN_RESTRICTED: ::c_int = 7;
1349 pub const _PC_NO_TRUNC: ::c_int = 8;
1350 pub const _PC_VDISABLE: ::c_int = 9;
1351 pub const O_DSYNC: ::c_int = 0x400000;
1352 pub const O_NOCTTY: ::c_int = 0x20000;
1353 pub const O_CLOEXEC: ::c_int = 0x1000000;
1354 pub const O_DIRECTORY: ::c_int = 0x100000;
1355 pub const S_IFIFO: mode_t = 4096;
1356 pub const S_IFCHR: mode_t = 8192;
1357 pub const S_IFBLK: mode_t = 24576;
1358 pub const S_IFDIR: mode_t = 16384;
1359 pub const S_IFREG: mode_t = 32768;
1360 pub const S_IFLNK: mode_t = 40960;
1361 pub const S_IFSOCK: mode_t = 49152;
1362 pub const S_IFMT: mode_t = 61440;
1363 pub const S_IEXEC: mode_t = 64;
1364 pub const S_IWRITE: mode_t = 128;
1365 pub const S_IREAD: mode_t = 256;
1366 pub const S_IRWXU: mode_t = 448;
1367 pub const S_IXUSR: mode_t = 64;
1368 pub const S_IWUSR: mode_t = 128;
1369 pub const S_IRUSR: mode_t = 256;
1370 pub const S_IRWXG: mode_t = 56;
1371 pub const S_IXGRP: mode_t = 8;
1372 pub const S_IWGRP: mode_t = 16;
1373 pub const S_IRGRP: mode_t = 32;
1374 pub const S_IRWXO: mode_t = 7;
1375 pub const S_IXOTH: mode_t = 1;
1376 pub const S_IWOTH: mode_t = 2;
1377 pub const S_IROTH: mode_t = 4;
1378 pub const F_OK: ::c_int = 0;
1379 pub const R_OK: ::c_int = 4;
1380 pub const W_OK: ::c_int = 2;
1381 pub const X_OK: ::c_int = 1;
1382 pub const STDIN_FILENO: ::c_int = 0;
1383 pub const STDOUT_FILENO: ::c_int = 1;
1384 pub const STDERR_FILENO: ::c_int = 2;
1385 pub const F_LOCK: ::c_int = 1;
1386 pub const F_TEST: ::c_int = 3;
1387 pub const F_TLOCK: ::c_int = 2;
1388 pub const F_ULOCK: ::c_int = 0;
1389 pub const F_GETLK: ::c_int = 7;
1390 pub const F_SETLK: ::c_int = 8;
1391 pub const F_SETLKW: ::c_int = 9;
1392 pub const SIGHUP: ::c_int = 1;
1393 pub const SIGINT: ::c_int = 2;
1394 pub const SIGQUIT: ::c_int = 3;
1395 pub const SIGILL: ::c_int = 4;
1396 pub const SIGABRT: ::c_int = 6;
1397 pub const SIGEMT: ::c_int = 7;
1398 pub const SIGFPE: ::c_int = 8;
1399 pub const SIGKILL: ::c_int = 9;
1400 pub const SIGSEGV: ::c_int = 11;
1401 pub const SIGPIPE: ::c_int = 13;
1402 pub const SIGALRM: ::c_int = 14;
1403 pub const SIGTERM: ::c_int = 15;
1404
1405 pub const PROT_NONE: ::c_int = 0;
1406 pub const PROT_READ: ::c_int = 1;
1407 pub const PROT_WRITE: ::c_int = 2;
1408 pub const PROT_EXEC: ::c_int = 4;
1409
1410 pub const PT_TRACE_ME: ::c_int = 0;
1411 pub const PT_READ_I: ::c_int = 1;
1412 pub const PT_READ_D: ::c_int = 2;
1413 pub const PT_READ_U: ::c_int = 3;
1414 pub const PT_WRITE_I: ::c_int = 4;
1415 pub const PT_WRITE_D: ::c_int = 5;
1416 pub const PT_WRITE_U: ::c_int = 6;
1417 pub const PT_CONTINUE: ::c_int = 7;
1418 pub const PT_KILL: ::c_int = 8;
1419 pub const PT_STEP: ::c_int = 9;
1420 pub const PT_ATTACH: ::c_int = 10;
1421 pub const PT_DETACH: ::c_int = 11;
1422 pub const PT_SIGEXC: ::c_int = 12;
1423 pub const PT_THUPDATE: ::c_int = 13;
1424 pub const PT_ATTACHEXC: ::c_int = 14;
1425
1426 pub const PT_FORCEQUOTA: ::c_int = 30;
1427 pub const PT_DENY_ATTACH: ::c_int = 31;
1428 pub const PT_FIRSTMACH: ::c_int = 32;
1429
1430 pub const MAP_FILE: ::c_int = 0x0000;
1431 pub const MAP_SHARED: ::c_int = 0x0001;
1432 pub const MAP_PRIVATE: ::c_int = 0x0002;
1433 pub const MAP_FIXED: ::c_int = 0x0010;
1434 pub const MAP_ANON: ::c_int = 0x1000;
1435 pub const MAP_ANONYMOUS: ::c_int = MAP_ANON;
1436
1437 deprecated_mach! {
1438 pub const VM_FLAGS_FIXED: ::c_int = 0x0000;
1439 pub const VM_FLAGS_ANYWHERE: ::c_int = 0x0001;
1440 pub const VM_FLAGS_PURGABLE: ::c_int = 0x0002;
1441 pub const VM_FLAGS_RANDOM_ADDR: ::c_int = 0x0008;
1442 pub const VM_FLAGS_NO_CACHE: ::c_int = 0x0010;
1443 pub const VM_FLAGS_RESILIENT_CODESIGN: ::c_int = 0x0020;
1444 pub const VM_FLAGS_RESILIENT_MEDIA: ::c_int = 0x0040;
1445 pub const VM_FLAGS_OVERWRITE: ::c_int = 0x4000;
1446 pub const VM_FLAGS_SUPERPAGE_MASK: ::c_int = 0x70000;
1447 pub const VM_FLAGS_RETURN_DATA_ADDR: ::c_int = 0x100000;
1448 pub const VM_FLAGS_RETURN_4K_DATA_ADDR: ::c_int = 0x800000;
1449 pub const VM_FLAGS_ALIAS_MASK: ::c_int = 0xFF000000;
1450 pub const VM_FLAGS_USER_ALLOCATE: ::c_int = 0xff07401f;
1451 pub const VM_FLAGS_USER_MAP: ::c_int = 0xff97401f;
1452 pub const VM_FLAGS_USER_REMAP: ::c_int = VM_FLAGS_FIXED |
1453 VM_FLAGS_ANYWHERE |
1454 VM_FLAGS_RANDOM_ADDR |
1455 VM_FLAGS_OVERWRITE |
1456 VM_FLAGS_RETURN_DATA_ADDR |
1457 VM_FLAGS_RESILIENT_CODESIGN;
1458
1459 pub const VM_FLAGS_SUPERPAGE_SHIFT: ::c_int = 16;
1460 pub const SUPERPAGE_NONE: ::c_int = 0;
1461 pub const SUPERPAGE_SIZE_ANY: ::c_int = 1;
1462 pub const VM_FLAGS_SUPERPAGE_NONE: ::c_int = SUPERPAGE_NONE <<
1463 VM_FLAGS_SUPERPAGE_SHIFT;
1464 pub const VM_FLAGS_SUPERPAGE_SIZE_ANY: ::c_int = SUPERPAGE_SIZE_ANY <<
1465 VM_FLAGS_SUPERPAGE_SHIFT;
1466 pub const SUPERPAGE_SIZE_2MB: ::c_int = 2;
1467 pub const VM_FLAGS_SUPERPAGE_SIZE_2MB: ::c_int = SUPERPAGE_SIZE_2MB <<
1468 VM_FLAGS_SUPERPAGE_SHIFT;
1469
1470 pub const VM_MEMORY_MALLOC: ::c_int = 1;
1471 pub const VM_MEMORY_MALLOC_SMALL: ::c_int = 2;
1472 pub const VM_MEMORY_MALLOC_LARGE: ::c_int = 3;
1473 pub const VM_MEMORY_MALLOC_HUGE: ::c_int = 4;
1474 pub const VM_MEMORY_SBRK: ::c_int = 5;
1475 pub const VM_MEMORY_REALLOC: ::c_int = 6;
1476 pub const VM_MEMORY_MALLOC_TINY: ::c_int = 7;
1477 pub const VM_MEMORY_MALLOC_LARGE_REUSABLE: ::c_int = 8;
1478 pub const VM_MEMORY_MALLOC_LARGE_REUSED: ::c_int = 9;
1479 pub const VM_MEMORY_ANALYSIS_TOOL: ::c_int = 10;
1480 pub const VM_MEMORY_MALLOC_NANO: ::c_int = 11;
1481 pub const VM_MEMORY_MACH_MSG: ::c_int = 20;
1482 pub const VM_MEMORY_IOKIT: ::c_int = 21;
1483 pub const VM_MEMORY_STACK: ::c_int = 30;
1484 pub const VM_MEMORY_GUARD: ::c_int = 31;
1485 pub const VM_MEMORY_SHARED_PMAP: ::c_int = 32;
1486 pub const VM_MEMORY_DYLIB: ::c_int = 33;
1487 pub const VM_MEMORY_OBJC_DISPATCHERS: ::c_int = 34;
1488 pub const VM_MEMORY_UNSHARED_PMAP: ::c_int = 35;
1489 pub const VM_MEMORY_APPKIT: ::c_int = 40;
1490 pub const VM_MEMORY_FOUNDATION: ::c_int = 41;
1491 pub const VM_MEMORY_COREGRAPHICS: ::c_int = 42;
1492 pub const VM_MEMORY_CORESERVICES: ::c_int = 43;
1493 pub const VM_MEMORY_CARBON: ::c_int = VM_MEMORY_CORESERVICES;
1494 pub const VM_MEMORY_JAVA: ::c_int = 44;
1495 pub const VM_MEMORY_COREDATA: ::c_int = 45;
1496 pub const VM_MEMORY_COREDATA_OBJECTIDS: ::c_int = 46;
1497 pub const VM_MEMORY_ATS: ::c_int = 50;
1498 pub const VM_MEMORY_LAYERKIT: ::c_int = 51;
1499 pub const VM_MEMORY_CGIMAGE: ::c_int = 52;
1500 pub const VM_MEMORY_TCMALLOC: ::c_int = 53;
1501 pub const VM_MEMORY_COREGRAPHICS_DATA: ::c_int = 54;
1502 pub const VM_MEMORY_COREGRAPHICS_SHARED: ::c_int = 55;
1503 pub const VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS: ::c_int = 56;
1504 pub const VM_MEMORY_COREGRAPHICS_BACKINGSTORES: ::c_int = 57;
1505 pub const VM_MEMORY_COREGRAPHICS_XALLOC: ::c_int = 58;
1506 pub const VM_MEMORY_COREGRAPHICS_MISC: ::c_int = VM_MEMORY_COREGRAPHICS;
1507 pub const VM_MEMORY_DYLD: ::c_int = 60;
1508 pub const VM_MEMORY_DYLD_MALLOC: ::c_int = 61;
1509 pub const VM_MEMORY_SQLITE: ::c_int = 62;
1510 pub const VM_MEMORY_JAVASCRIPT_CORE: ::c_int = 63;
1511 pub const VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR: ::c_int = 64;
1512 pub const VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE: ::c_int = 65;
1513 pub const VM_MEMORY_GLSL: ::c_int = 66;
1514 pub const VM_MEMORY_OPENCL: ::c_int = 67;
1515 pub const VM_MEMORY_COREIMAGE: ::c_int = 68;
1516 pub const VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS: ::c_int = 69;
1517 pub const VM_MEMORY_IMAGEIO: ::c_int = 70;
1518 pub const VM_MEMORY_COREPROFILE: ::c_int = 71;
1519 pub const VM_MEMORY_ASSETSD: ::c_int = 72;
1520 pub const VM_MEMORY_OS_ALLOC_ONCE: ::c_int = 73;
1521 pub const VM_MEMORY_LIBDISPATCH: ::c_int = 74;
1522 pub const VM_MEMORY_ACCELERATE: ::c_int = 75;
1523 pub const VM_MEMORY_COREUI: ::c_int = 76;
1524 pub const VM_MEMORY_COREUIFILE: ::c_int = 77;
1525 pub const VM_MEMORY_GENEALOGY: ::c_int = 78;
1526 pub const VM_MEMORY_RAWCAMERA: ::c_int = 79;
1527 pub const VM_MEMORY_CORPSEINFO: ::c_int = 80;
1528 pub const VM_MEMORY_ASL: ::c_int = 81;
1529 pub const VM_MEMORY_SWIFT_RUNTIME: ::c_int = 82;
1530 pub const VM_MEMORY_SWIFT_METADATA: ::c_int = 83;
1531 pub const VM_MEMORY_DHMM: ::c_int = 84;
1532 pub const VM_MEMORY_SCENEKIT: ::c_int = 86;
1533 pub const VM_MEMORY_SKYWALK: ::c_int = 87;
1534 pub const VM_MEMORY_APPLICATION_SPECIFIC_1: ::c_int = 240;
1535 pub const VM_MEMORY_APPLICATION_SPECIFIC_16: ::c_int = 255;
1536 }
1537
1538 pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void;
1539
1540 pub const MCL_CURRENT: ::c_int = 0x0001;
1541 pub const MCL_FUTURE: ::c_int = 0x0002;
1542
1543 pub const MS_ASYNC: ::c_int = 0x0001;
1544 pub const MS_INVALIDATE: ::c_int = 0x0002;
1545 pub const MS_SYNC: ::c_int = 0x0010;
1546
1547 pub const MS_KILLPAGES: ::c_int = 0x0004;
1548 pub const MS_DEACTIVATE: ::c_int = 0x0008;
1549
1550 pub const EPERM: ::c_int = 1;
1551 pub const ENOENT: ::c_int = 2;
1552 pub const ESRCH: ::c_int = 3;
1553 pub const EINTR: ::c_int = 4;
1554 pub const EIO: ::c_int = 5;
1555 pub const ENXIO: ::c_int = 6;
1556 pub const E2BIG: ::c_int = 7;
1557 pub const ENOEXEC: ::c_int = 8;
1558 pub const EBADF: ::c_int = 9;
1559 pub const ECHILD: ::c_int = 10;
1560 pub const EDEADLK: ::c_int = 11;
1561 pub const ENOMEM: ::c_int = 12;
1562 pub const EACCES: ::c_int = 13;
1563 pub const EFAULT: ::c_int = 14;
1564 pub const ENOTBLK: ::c_int = 15;
1565 pub const EBUSY: ::c_int = 16;
1566 pub const EEXIST: ::c_int = 17;
1567 pub const EXDEV: ::c_int = 18;
1568 pub const ENODEV: ::c_int = 19;
1569 pub const ENOTDIR: ::c_int = 20;
1570 pub const EISDIR: ::c_int = 21;
1571 pub const EINVAL: ::c_int = 22;
1572 pub const ENFILE: ::c_int = 23;
1573 pub const EMFILE: ::c_int = 24;
1574 pub const ENOTTY: ::c_int = 25;
1575 pub const ETXTBSY: ::c_int = 26;
1576 pub const EFBIG: ::c_int = 27;
1577 pub const ENOSPC: ::c_int = 28;
1578 pub const ESPIPE: ::c_int = 29;
1579 pub const EROFS: ::c_int = 30;
1580 pub const EMLINK: ::c_int = 31;
1581 pub const EPIPE: ::c_int = 32;
1582 pub const EDOM: ::c_int = 33;
1583 pub const ERANGE: ::c_int = 34;
1584 pub const EAGAIN: ::c_int = 35;
1585 pub const EWOULDBLOCK: ::c_int = EAGAIN;
1586 pub const EINPROGRESS: ::c_int = 36;
1587 pub const EALREADY: ::c_int = 37;
1588 pub const ENOTSOCK: ::c_int = 38;
1589 pub const EDESTADDRREQ: ::c_int = 39;
1590 pub const EMSGSIZE: ::c_int = 40;
1591 pub const EPROTOTYPE: ::c_int = 41;
1592 pub const ENOPROTOOPT: ::c_int = 42;
1593 pub const EPROTONOSUPPORT: ::c_int = 43;
1594 pub const ESOCKTNOSUPPORT: ::c_int = 44;
1595 pub const ENOTSUP: ::c_int = 45;
1596 pub const EPFNOSUPPORT: ::c_int = 46;
1597 pub const EAFNOSUPPORT: ::c_int = 47;
1598 pub const EADDRINUSE: ::c_int = 48;
1599 pub const EADDRNOTAVAIL: ::c_int = 49;
1600 pub const ENETDOWN: ::c_int = 50;
1601 pub const ENETUNREACH: ::c_int = 51;
1602 pub const ENETRESET: ::c_int = 52;
1603 pub const ECONNABORTED: ::c_int = 53;
1604 pub const ECONNRESET: ::c_int = 54;
1605 pub const ENOBUFS: ::c_int = 55;
1606 pub const EISCONN: ::c_int = 56;
1607 pub const ENOTCONN: ::c_int = 57;
1608 pub const ESHUTDOWN: ::c_int = 58;
1609 pub const ETOOMANYREFS: ::c_int = 59;
1610 pub const ETIMEDOUT: ::c_int = 60;
1611 pub const ECONNREFUSED: ::c_int = 61;
1612 pub const ELOOP: ::c_int = 62;
1613 pub const ENAMETOOLONG: ::c_int = 63;
1614 pub const EHOSTDOWN: ::c_int = 64;
1615 pub const EHOSTUNREACH: ::c_int = 65;
1616 pub const ENOTEMPTY: ::c_int = 66;
1617 pub const EPROCLIM: ::c_int = 67;
1618 pub const EUSERS: ::c_int = 68;
1619 pub const EDQUOT: ::c_int = 69;
1620 pub const ESTALE: ::c_int = 70;
1621 pub const EREMOTE: ::c_int = 71;
1622 pub const EBADRPC: ::c_int = 72;
1623 pub const ERPCMISMATCH: ::c_int = 73;
1624 pub const EPROGUNAVAIL: ::c_int = 74;
1625 pub const EPROGMISMATCH: ::c_int = 75;
1626 pub const EPROCUNAVAIL: ::c_int = 76;
1627 pub const ENOLCK: ::c_int = 77;
1628 pub const ENOSYS: ::c_int = 78;
1629 pub const EFTYPE: ::c_int = 79;
1630 pub const EAUTH: ::c_int = 80;
1631 pub const ENEEDAUTH: ::c_int = 81;
1632 pub const EPWROFF: ::c_int = 82;
1633 pub const EDEVERR: ::c_int = 83;
1634 pub const EOVERFLOW: ::c_int = 84;
1635 pub const EBADEXEC: ::c_int = 85;
1636 pub const EBADARCH: ::c_int = 86;
1637 pub const ESHLIBVERS: ::c_int = 87;
1638 pub const EBADMACHO: ::c_int = 88;
1639 pub const ECANCELED: ::c_int = 89;
1640 pub const EIDRM: ::c_int = 90;
1641 pub const ENOMSG: ::c_int = 91;
1642 pub const EILSEQ: ::c_int = 92;
1643 pub const ENOATTR: ::c_int = 93;
1644 pub const EBADMSG: ::c_int = 94;
1645 pub const EMULTIHOP: ::c_int = 95;
1646 pub const ENODATA: ::c_int = 96;
1647 pub const ENOLINK: ::c_int = 97;
1648 pub const ENOSR: ::c_int = 98;
1649 pub const ENOSTR: ::c_int = 99;
1650 pub const EPROTO: ::c_int = 100;
1651 pub const ETIME: ::c_int = 101;
1652 pub const EOPNOTSUPP: ::c_int = 102;
1653 pub const ENOPOLICY: ::c_int = 103;
1654 pub const ENOTRECOVERABLE: ::c_int = 104;
1655 pub const EOWNERDEAD: ::c_int = 105;
1656 pub const EQFULL: ::c_int = 106;
1657 pub const ELAST: ::c_int = 106;
1658
1659 pub const EAI_AGAIN: ::c_int = 2;
1660 pub const EAI_BADFLAGS: ::c_int = 3;
1661 pub const EAI_FAIL: ::c_int = 4;
1662 pub const EAI_FAMILY: ::c_int = 5;
1663 pub const EAI_MEMORY: ::c_int = 6;
1664 pub const EAI_NODATA: ::c_int = 7;
1665 pub const EAI_NONAME: ::c_int = 8;
1666 pub const EAI_SERVICE: ::c_int = 9;
1667 pub const EAI_SOCKTYPE: ::c_int = 10;
1668 pub const EAI_SYSTEM: ::c_int = 11;
1669 pub const EAI_OVERFLOW: ::c_int = 14;
1670
1671 pub const F_DUPFD: ::c_int = 0;
1672 pub const F_DUPFD_CLOEXEC: ::c_int = 67;
1673 pub const F_GETFD: ::c_int = 1;
1674 pub const F_SETFD: ::c_int = 2;
1675 pub const F_GETFL: ::c_int = 3;
1676 pub const F_SETFL: ::c_int = 4;
1677 pub const F_PREALLOCATE: ::c_int = 42;
1678 pub const F_RDADVISE: ::c_int = 44;
1679 pub const F_RDAHEAD: ::c_int = 45;
1680 pub const F_NOCACHE: ::c_int = 48;
1681 pub const F_GETPATH: ::c_int = 50;
1682 pub const F_FULLFSYNC: ::c_int = 51;
1683 pub const F_FREEZE_FS: ::c_int = 53;
1684 pub const F_THAW_FS: ::c_int = 54;
1685 pub const F_GLOBAL_NOCACHE: ::c_int = 55;
1686 pub const F_NODIRECT: ::c_int = 62;
1687
1688 pub const F_ALLOCATECONTIG: ::c_uint = 0x02;
1689 pub const F_ALLOCATEALL: ::c_uint = 0x04;
1690
1691 pub const F_PEOFPOSMODE: ::c_int = 3;
1692 pub const F_VOLPOSMODE: ::c_int = 4;
1693
1694 pub const AT_FDCWD: ::c_int = -2;
1695 pub const AT_EACCESS: ::c_int = 0x0010;
1696 pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x0020;
1697 pub const AT_SYMLINK_FOLLOW: ::c_int = 0x0040;
1698 pub const AT_REMOVEDIR: ::c_int = 0x0080;
1699
1700 pub const TIOCMODG: ::c_ulong = 0x40047403;
1701 pub const TIOCMODS: ::c_ulong = 0x80047404;
1702 pub const TIOCM_LE: ::c_int = 0x1;
1703 pub const TIOCM_DTR: ::c_int = 0x2;
1704 pub const TIOCM_RTS: ::c_int = 0x4;
1705 pub const TIOCM_ST: ::c_int = 0x8;
1706 pub const TIOCM_SR: ::c_int = 0x10;
1707 pub const TIOCM_CTS: ::c_int = 0x20;
1708 pub const TIOCM_CAR: ::c_int = 0x40;
1709 pub const TIOCM_CD: ::c_int = 0x40;
1710 pub const TIOCM_RNG: ::c_int = 0x80;
1711 pub const TIOCM_RI: ::c_int = 0x80;
1712 pub const TIOCM_DSR: ::c_int = 0x100;
1713 pub const TIOCEXCL: ::c_int = 0x2000740d;
1714 pub const TIOCNXCL: ::c_int = 0x2000740e;
1715 pub const TIOCFLUSH: ::c_ulong = 0x80047410;
1716 pub const TIOCGETD: ::c_ulong = 0x4004741a;
1717 pub const TIOCSETD: ::c_ulong = 0x8004741b;
1718 pub const TIOCIXON: ::c_uint = 0x20007481;
1719 pub const TIOCIXOFF: ::c_uint = 0x20007480;
1720 pub const TIOCSBRK: ::c_uint = 0x2000747b;
1721 pub const TIOCCBRK: ::c_uint = 0x2000747a;
1722 pub const TIOCSDTR: ::c_uint = 0x20007479;
1723 pub const TIOCCDTR: ::c_uint = 0x20007478;
1724 pub const TIOCGPGRP: ::c_ulong = 0x40047477;
1725 pub const TIOCSPGRP: ::c_ulong = 0x80047476;
1726 pub const TIOCOUTQ: ::c_ulong = 0x40047473;
1727 pub const TIOCSTI: ::c_ulong = 0x80017472;
1728 pub const TIOCNOTTY: ::c_uint = 0x20007471;
1729 pub const TIOCPKT: ::c_ulong = 0x80047470;
1730 pub const TIOCPKT_DATA: ::c_int = 0x0;
1731 pub const TIOCPKT_FLUSHREAD: ::c_int = 0x1;
1732 pub const TIOCPKT_FLUSHWRITE: ::c_int = 0x2;
1733 pub const TIOCPKT_STOP: ::c_int = 0x4;
1734 pub const TIOCPKT_START: ::c_int = 0x8;
1735 pub const TIOCPKT_NOSTOP: ::c_int = 0x10;
1736 pub const TIOCPKT_DOSTOP: ::c_int = 0x20;
1737 pub const TIOCPKT_IOCTL: ::c_int = 0x40;
1738 pub const TIOCSTOP: ::c_uint = 0x2000746f;
1739 pub const TIOCSTART: ::c_uint = 0x2000746e;
1740 pub const TIOCMSET: ::c_ulong = 0x8004746d;
1741 pub const TIOCMBIS: ::c_ulong = 0x8004746c;
1742 pub const TIOCMBIC: ::c_ulong = 0x8004746b;
1743 pub const TIOCMGET: ::c_ulong = 0x4004746a;
1744 pub const TIOCREMOTE: ::c_ulong = 0x80047469;
1745 pub const TIOCGWINSZ: ::c_ulong = 0x40087468;
1746 pub const TIOCSWINSZ: ::c_ulong = 0x80087467;
1747 pub const TIOCUCNTL: ::c_ulong = 0x80047466;
1748 pub const TIOCSTAT: ::c_uint = 0x20007465;
1749 pub const TIOCSCONS: ::c_uint = 0x20007463;
1750 pub const TIOCCONS: ::c_ulong = 0x80047462;
1751 pub const TIOCSCTTY: ::c_uint = 0x20007461;
1752 pub const TIOCEXT: ::c_ulong = 0x80047460;
1753 pub const TIOCSIG: ::c_uint = 0x2000745f;
1754 pub const TIOCDRAIN: ::c_uint = 0x2000745e;
1755 pub const TIOCMSDTRWAIT: ::c_ulong = 0x8004745b;
1756 pub const TIOCMGDTRWAIT: ::c_ulong = 0x4004745a;
1757 pub const TIOCSDRAINWAIT: ::c_ulong = 0x80047457;
1758 pub const TIOCGDRAINWAIT: ::c_ulong = 0x40047456;
1759 pub const TIOCDSIMICROCODE: ::c_uint = 0x20007455;
1760 pub const TIOCPTYGRANT: ::c_uint = 0x20007454;
1761 pub const TIOCPTYGNAME: ::c_uint = 0x40807453;
1762 pub const TIOCPTYUNLK: ::c_uint = 0x20007452;
1763
1764 pub const FIODTYPE: ::c_ulong = 0x4004667a;
1765
1766 pub const B0: speed_t = 0;
1767 pub const B50: speed_t = 50;
1768 pub const B75: speed_t = 75;
1769 pub const B110: speed_t = 110;
1770 pub const B134: speed_t = 134;
1771 pub const B150: speed_t = 150;
1772 pub const B200: speed_t = 200;
1773 pub const B300: speed_t = 300;
1774 pub const B600: speed_t = 600;
1775 pub const B1200: speed_t = 1200;
1776 pub const B1800: speed_t = 1800;
1777 pub const B2400: speed_t = 2400;
1778 pub const B4800: speed_t = 4800;
1779 pub const B9600: speed_t = 9600;
1780 pub const B19200: speed_t = 19200;
1781 pub const B38400: speed_t = 38400;
1782 pub const B7200: speed_t = 7200;
1783 pub const B14400: speed_t = 14400;
1784 pub const B28800: speed_t = 28800;
1785 pub const B57600: speed_t = 57600;
1786 pub const B76800: speed_t = 76800;
1787 pub const B115200: speed_t = 115200;
1788 pub const B230400: speed_t = 230400;
1789 pub const EXTA: speed_t = 19200;
1790 pub const EXTB: speed_t = 38400;
1791
1792 pub const SIGTRAP: ::c_int = 5;
1793
1794 pub const GLOB_APPEND : ::c_int = 0x0001;
1795 pub const GLOB_DOOFFS : ::c_int = 0x0002;
1796 pub const GLOB_ERR : ::c_int = 0x0004;
1797 pub const GLOB_MARK : ::c_int = 0x0008;
1798 pub const GLOB_NOCHECK : ::c_int = 0x0010;
1799 pub const GLOB_NOSORT : ::c_int = 0x0020;
1800 pub const GLOB_NOESCAPE: ::c_int = 0x2000;
1801
1802 pub const GLOB_NOSPACE : ::c_int = -1;
1803 pub const GLOB_ABORTED : ::c_int = -2;
1804 pub const GLOB_NOMATCH : ::c_int = -3;
1805
1806 pub const POSIX_MADV_NORMAL: ::c_int = 0;
1807 pub const POSIX_MADV_RANDOM: ::c_int = 1;
1808 pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2;
1809 pub const POSIX_MADV_WILLNEED: ::c_int = 3;
1810 pub const POSIX_MADV_DONTNEED: ::c_int = 4;
1811
1812 pub const _SC_IOV_MAX: ::c_int = 56;
1813 pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 70;
1814 pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 71;
1815 pub const _SC_LOGIN_NAME_MAX: ::c_int = 73;
1816 pub const _SC_MQ_PRIO_MAX: ::c_int = 75;
1817 pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 82;
1818 pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 83;
1819 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 85;
1820 pub const _SC_THREAD_KEYS_MAX: ::c_int = 86;
1821 pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 87;
1822 pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 88;
1823 pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 89;
1824 pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 90;
1825 pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 91;
1826 pub const _SC_THREAD_STACK_MIN: ::c_int = 93;
1827 pub const _SC_THREAD_THREADS_MAX: ::c_int = 94;
1828 pub const _SC_THREADS: ::c_int = 96;
1829 pub const _SC_TTY_NAME_MAX: ::c_int = 101;
1830 pub const _SC_ATEXIT_MAX: ::c_int = 107;
1831 pub const _SC_XOPEN_CRYPT: ::c_int = 108;
1832 pub const _SC_XOPEN_ENH_I18N: ::c_int = 109;
1833 pub const _SC_XOPEN_LEGACY: ::c_int = 110;
1834 pub const _SC_XOPEN_REALTIME: ::c_int = 111;
1835 pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 112;
1836 pub const _SC_XOPEN_SHM: ::c_int = 113;
1837 pub const _SC_XOPEN_UNIX: ::c_int = 115;
1838 pub const _SC_XOPEN_VERSION: ::c_int = 116;
1839 pub const _SC_XOPEN_XCU_VERSION: ::c_int = 121;
1840 pub const _SC_PHYS_PAGES: ::c_int = 200;
1841
1842 pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 2;
1843 pub const PTHREAD_PROCESS_SHARED: ::c_int = 1;
1844 pub const PTHREAD_CREATE_JOINABLE: ::c_int = 1;
1845 pub const PTHREAD_CREATE_DETACHED: ::c_int = 2;
1846 pub const PTHREAD_STACK_MIN: ::size_t = 8192;
1847
1848 pub const RLIMIT_CPU: ::c_int = 0;
1849 pub const RLIMIT_FSIZE: ::c_int = 1;
1850 pub const RLIMIT_DATA: ::c_int = 2;
1851 pub const RLIMIT_STACK: ::c_int = 3;
1852 pub const RLIMIT_CORE: ::c_int = 4;
1853 pub const RLIMIT_AS: ::c_int = 5;
1854 pub const RLIMIT_RSS: ::c_int = RLIMIT_AS;
1855 pub const RLIMIT_MEMLOCK: ::c_int = 6;
1856 pub const RLIMIT_NPROC: ::c_int = 7;
1857 pub const RLIMIT_NOFILE: ::c_int = 8;
1858 pub const RLIM_NLIMITS: ::c_int = 9;
1859 pub const _RLIMIT_POSIX_FLAG: ::c_int = 0x1000;
1860
1861 pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff;
1862
1863 pub const RUSAGE_SELF: ::c_int = 0;
1864 pub const RUSAGE_CHILDREN: ::c_int = -1;
1865
1866 pub const MADV_NORMAL: ::c_int = 0;
1867 pub const MADV_RANDOM: ::c_int = 1;
1868 pub const MADV_SEQUENTIAL: ::c_int = 2;
1869 pub const MADV_WILLNEED: ::c_int = 3;
1870 pub const MADV_DONTNEED: ::c_int = 4;
1871 pub const MADV_FREE: ::c_int = 5;
1872 pub const MADV_ZERO_WIRED_PAGES: ::c_int = 6;
1873 pub const MADV_FREE_REUSABLE: ::c_int = 7;
1874 pub const MADV_FREE_REUSE: ::c_int = 8;
1875 pub const MADV_CAN_REUSE: ::c_int = 9;
1876
1877 pub const MINCORE_INCORE: ::c_int = 0x1;
1878 pub const MINCORE_REFERENCED: ::c_int = 0x2;
1879 pub const MINCORE_MODIFIED: ::c_int = 0x4;
1880 pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8;
1881 pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10;
1882
1883 //
1884 // sys/netinet/in.h
1885 // Protocols (RFC 1700)
1886 // NOTE: These are in addition to the constants defined in src/unix/mod.rs
1887
1888 // IPPROTO_IP defined in src/unix/mod.rs
1889 /// IP6 hop-by-hop options
1890 pub const IPPROTO_HOPOPTS: ::c_int = 0;
1891 // IPPROTO_ICMP defined in src/unix/mod.rs
1892 /// group mgmt protocol
1893 pub const IPPROTO_IGMP: ::c_int = 2;
1894 /// gateway<sup>2</sup> (deprecated)
1895 pub const IPPROTO_GGP: ::c_int = 3;
1896 /// for compatibility
1897 pub const IPPROTO_IPIP: ::c_int = 4;
1898 // IPPROTO_TCP defined in src/unix/mod.rs
1899 /// Stream protocol II.
1900 pub const IPPROTO_ST: ::c_int = 7;
1901 /// exterior gateway protocol
1902 pub const IPPROTO_EGP: ::c_int = 8;
1903 /// private interior gateway
1904 pub const IPPROTO_PIGP: ::c_int = 9;
1905 /// BBN RCC Monitoring
1906 pub const IPPROTO_RCCMON: ::c_int = 10;
1907 /// network voice protocol
1908 pub const IPPROTO_NVPII: ::c_int = 11;
1909 /// pup
1910 pub const IPPROTO_PUP: ::c_int = 12;
1911 /// Argus
1912 pub const IPPROTO_ARGUS: ::c_int = 13;
1913 /// EMCON
1914 pub const IPPROTO_EMCON: ::c_int = 14;
1915 /// Cross Net Debugger
1916 pub const IPPROTO_XNET: ::c_int = 15;
1917 /// Chaos
1918 pub const IPPROTO_CHAOS: ::c_int = 16;
1919 // IPPROTO_UDP defined in src/unix/mod.rs
1920 /// Multiplexing
1921 pub const IPPROTO_MUX: ::c_int = 18;
1922 /// DCN Measurement Subsystems
1923 pub const IPPROTO_MEAS: ::c_int = 19;
1924 /// Host Monitoring
1925 pub const IPPROTO_HMP: ::c_int = 20;
1926 /// Packet Radio Measurement
1927 pub const IPPROTO_PRM: ::c_int = 21;
1928 /// xns idp
1929 pub const IPPROTO_IDP: ::c_int = 22;
1930 /// Trunk-1
1931 pub const IPPROTO_TRUNK1: ::c_int = 23;
1932 /// Trunk-2
1933 pub const IPPROTO_TRUNK2: ::c_int = 24;
1934 /// Leaf-1
1935 pub const IPPROTO_LEAF1: ::c_int = 25;
1936 /// Leaf-2
1937 pub const IPPROTO_LEAF2: ::c_int = 26;
1938 /// Reliable Data
1939 pub const IPPROTO_RDP: ::c_int = 27;
1940 /// Reliable Transaction
1941 pub const IPPROTO_IRTP: ::c_int = 28;
1942 /// tp-4 w/ class negotiation
1943 pub const IPPROTO_TP: ::c_int = 29;
1944 /// Bulk Data Transfer
1945 pub const IPPROTO_BLT: ::c_int = 30;
1946 /// Network Services
1947 pub const IPPROTO_NSP: ::c_int = 31;
1948 /// Merit Internodal
1949 pub const IPPROTO_INP: ::c_int = 32;
1950 /// Sequential Exchange
1951 pub const IPPROTO_SEP: ::c_int = 33;
1952 /// Third Party Connect
1953 pub const IPPROTO_3PC: ::c_int = 34;
1954 /// InterDomain Policy Routing
1955 pub const IPPROTO_IDPR: ::c_int = 35;
1956 /// XTP
1957 pub const IPPROTO_XTP: ::c_int = 36;
1958 /// Datagram Delivery
1959 pub const IPPROTO_DDP: ::c_int = 37;
1960 /// Control Message Transport
1961 pub const IPPROTO_CMTP: ::c_int = 38;
1962 /// TP++ Transport
1963 pub const IPPROTO_TPXX: ::c_int = 39;
1964 /// IL transport protocol
1965 pub const IPPROTO_IL: ::c_int = 40;
1966 // IPPROTO_IPV6 defined in src/unix/mod.rs
1967 /// Source Demand Routing
1968 pub const IPPROTO_SDRP: ::c_int = 42;
1969 /// IP6 routing header
1970 pub const IPPROTO_ROUTING: ::c_int = 43;
1971 /// IP6 fragmentation header
1972 pub const IPPROTO_FRAGMENT: ::c_int = 44;
1973 /// InterDomain Routing
1974 pub const IPPROTO_IDRP: ::c_int = 45;
1975 /// resource reservation
1976 pub const IPPROTO_RSVP: ::c_int = 46;
1977 /// General Routing Encap.
1978 pub const IPPROTO_GRE: ::c_int = 47;
1979 /// Mobile Host Routing
1980 pub const IPPROTO_MHRP: ::c_int = 48;
1981 /// BHA
1982 pub const IPPROTO_BHA: ::c_int = 49;
1983 /// IP6 Encap Sec. Payload
1984 pub const IPPROTO_ESP: ::c_int = 50;
1985 /// IP6 Auth Header
1986 pub const IPPROTO_AH: ::c_int = 51;
1987 /// Integ. Net Layer Security
1988 pub const IPPROTO_INLSP: ::c_int = 52;
1989 /// IP with encryption
1990 pub const IPPROTO_SWIPE: ::c_int = 53;
1991 /// Next Hop Resolution
1992 pub const IPPROTO_NHRP: ::c_int = 54;
1993 /* 55-57: Unassigned */
1994 // IPPROTO_ICMPV6 defined in src/unix/mod.rs
1995 /// IP6 no next header
1996 pub const IPPROTO_NONE: ::c_int = 59;
1997 /// IP6 destination option
1998 pub const IPPROTO_DSTOPTS: ::c_int = 60;
1999 /// any host internal protocol
2000 pub const IPPROTO_AHIP: ::c_int = 61;
2001 /// CFTP
2002 pub const IPPROTO_CFTP: ::c_int = 62;
2003 /// "hello" routing protocol
2004 pub const IPPROTO_HELLO: ::c_int = 63;
2005 /// SATNET/Backroom EXPAK
2006 pub const IPPROTO_SATEXPAK: ::c_int = 64;
2007 /// Kryptolan
2008 pub const IPPROTO_KRYPTOLAN: ::c_int = 65;
2009 /// Remote Virtual Disk
2010 pub const IPPROTO_RVD: ::c_int = 66;
2011 /// Pluribus Packet Core
2012 pub const IPPROTO_IPPC: ::c_int = 67;
2013 /// Any distributed FS
2014 pub const IPPROTO_ADFS: ::c_int = 68;
2015 /// Satnet Monitoring
2016 pub const IPPROTO_SATMON: ::c_int = 69;
2017 /// VISA Protocol
2018 pub const IPPROTO_VISA: ::c_int = 70;
2019 /// Packet Core Utility
2020 pub const IPPROTO_IPCV: ::c_int = 71;
2021 /// Comp. Prot. Net. Executive
2022 pub const IPPROTO_CPNX: ::c_int = 72;
2023 /// Comp. Prot. HeartBeat
2024 pub const IPPROTO_CPHB: ::c_int = 73;
2025 /// Wang Span Network
2026 pub const IPPROTO_WSN: ::c_int = 74;
2027 /// Packet Video Protocol
2028 pub const IPPROTO_PVP: ::c_int = 75;
2029 /// BackRoom SATNET Monitoring
2030 pub const IPPROTO_BRSATMON: ::c_int = 76;
2031 /// Sun net disk proto (temp.)
2032 pub const IPPROTO_ND: ::c_int = 77;
2033 /// WIDEBAND Monitoring
2034 pub const IPPROTO_WBMON: ::c_int = 78;
2035 /// WIDEBAND EXPAK
2036 pub const IPPROTO_WBEXPAK: ::c_int = 79;
2037 /// ISO cnlp
2038 pub const IPPROTO_EON: ::c_int = 80;
2039 /// VMTP
2040 pub const IPPROTO_VMTP: ::c_int = 81;
2041 /// Secure VMTP
2042 pub const IPPROTO_SVMTP: ::c_int = 82;
2043 /// Banyon VINES
2044 pub const IPPROTO_VINES: ::c_int = 83;
2045 /// TTP
2046 pub const IPPROTO_TTP: ::c_int = 84;
2047 /// NSFNET-IGP
2048 pub const IPPROTO_IGP: ::c_int = 85;
2049 /// dissimilar gateway prot.
2050 pub const IPPROTO_DGP: ::c_int = 86;
2051 /// TCF
2052 pub const IPPROTO_TCF: ::c_int = 87;
2053 /// Cisco/GXS IGRP
2054 pub const IPPROTO_IGRP: ::c_int = 88;
2055 /// OSPFIGP
2056 pub const IPPROTO_OSPFIGP: ::c_int = 89;
2057 /// Strite RPC protocol
2058 pub const IPPROTO_SRPC: ::c_int = 90;
2059 /// Locus Address Resoloution
2060 pub const IPPROTO_LARP: ::c_int = 91;
2061 /// Multicast Transport
2062 pub const IPPROTO_MTP: ::c_int = 92;
2063 /// AX.25 Frames
2064 pub const IPPROTO_AX25: ::c_int = 93;
2065 /// IP encapsulated in IP
2066 pub const IPPROTO_IPEIP: ::c_int = 94;
2067 /// Mobile Int.ing control
2068 pub const IPPROTO_MICP: ::c_int = 95;
2069 /// Semaphore Comm. security
2070 pub const IPPROTO_SCCSP: ::c_int = 96;
2071 /// Ethernet IP encapsulation
2072 pub const IPPROTO_ETHERIP: ::c_int = 97;
2073 /// encapsulation header
2074 pub const IPPROTO_ENCAP: ::c_int = 98;
2075 /// any private encr. scheme
2076 pub const IPPROTO_APES: ::c_int = 99;
2077 /// GMTP
2078 pub const IPPROTO_GMTP: ::c_int = 100;
2079
2080 /* 101-254: Partly Unassigned */
2081 /// Protocol Independent Mcast
2082 pub const IPPROTO_PIM: ::c_int = 103;
2083 /// payload compression (IPComp)
2084 pub const IPPROTO_IPCOMP: ::c_int = 108;
2085 /// PGM
2086 pub const IPPROTO_PGM: ::c_int = 113;
2087 /// SCTP
2088 pub const IPPROTO_SCTP: ::c_int = 132;
2089
2090 /* 255: Reserved */
2091 /* BSD Private, local use, namespace incursion */
2092 /// divert pseudo-protocol
2093 pub const IPPROTO_DIVERT: ::c_int = 254;
2094 /// raw IP packet
2095 pub const IPPROTO_RAW: ::c_int = 255;
2096 pub const IPPROTO_MAX: ::c_int = 256;
2097 /// last return value of *_input(), meaning "all job for this pkt is done".
2098 pub const IPPROTO_DONE: ::c_int = 257;
2099
2100 pub const AF_UNSPEC: ::c_int = 0;
2101 pub const AF_LOCAL: ::c_int = 1;
2102 pub const AF_UNIX: ::c_int = AF_LOCAL;
2103 pub const AF_INET: ::c_int = 2;
2104 pub const AF_IMPLINK: ::c_int = 3;
2105 pub const AF_PUP: ::c_int = 4;
2106 pub const AF_CHAOS: ::c_int = 5;
2107 pub const AF_NS: ::c_int = 6;
2108 pub const AF_ISO: ::c_int = 7;
2109 pub const AF_OSI: ::c_int = AF_ISO;
2110 pub const AF_ECMA: ::c_int = 8;
2111 pub const AF_DATAKIT: ::c_int = 9;
2112 pub const AF_CCITT: ::c_int = 10;
2113 pub const AF_SNA: ::c_int = 11;
2114 pub const AF_DECnet: ::c_int = 12;
2115 pub const AF_DLI: ::c_int = 13;
2116 pub const AF_LAT: ::c_int = 14;
2117 pub const AF_HYLINK: ::c_int = 15;
2118 pub const AF_APPLETALK: ::c_int = 16;
2119 pub const AF_ROUTE: ::c_int = 17;
2120 pub const AF_LINK: ::c_int = 18;
2121 pub const pseudo_AF_XTP: ::c_int = 19;
2122 pub const AF_COIP: ::c_int = 20;
2123 pub const AF_CNT: ::c_int = 21;
2124 pub const pseudo_AF_RTIP: ::c_int = 22;
2125 pub const AF_IPX: ::c_int = 23;
2126 pub const AF_SIP: ::c_int = 24;
2127 pub const pseudo_AF_PIP: ::c_int = 25;
2128 pub const AF_ISDN: ::c_int = 28;
2129 pub const AF_E164: ::c_int = AF_ISDN;
2130 pub const pseudo_AF_KEY: ::c_int = 29;
2131 pub const AF_INET6: ::c_int = 30;
2132 pub const AF_NATM: ::c_int = 31;
2133 pub const AF_SYSTEM: ::c_int = 32;
2134 pub const AF_NETBIOS: ::c_int = 33;
2135 pub const AF_PPP: ::c_int = 34;
2136 pub const pseudo_AF_HDRCMPLT: ::c_int = 35;
2137 pub const AF_SYS_CONTROL: ::c_int = 2;
2138
2139 pub const SYSPROTO_EVENT: ::c_int = 1;
2140 pub const SYSPROTO_CONTROL: ::c_int = 2;
2141
2142 pub const PF_UNSPEC: ::c_int = AF_UNSPEC;
2143 pub const PF_LOCAL: ::c_int = AF_LOCAL;
2144 pub const PF_UNIX: ::c_int = PF_LOCAL;
2145 pub const PF_INET: ::c_int = AF_INET;
2146 pub const PF_IMPLINK: ::c_int = AF_IMPLINK;
2147 pub const PF_PUP: ::c_int = AF_PUP;
2148 pub const PF_CHAOS: ::c_int = AF_CHAOS;
2149 pub const PF_NS: ::c_int = AF_NS;
2150 pub const PF_ISO: ::c_int = AF_ISO;
2151 pub const PF_OSI: ::c_int = AF_ISO;
2152 pub const PF_ECMA: ::c_int = AF_ECMA;
2153 pub const PF_DATAKIT: ::c_int = AF_DATAKIT;
2154 pub const PF_CCITT: ::c_int = AF_CCITT;
2155 pub const PF_SNA: ::c_int = AF_SNA;
2156 pub const PF_DECnet: ::c_int = AF_DECnet;
2157 pub const PF_DLI: ::c_int = AF_DLI;
2158 pub const PF_LAT: ::c_int = AF_LAT;
2159 pub const PF_HYLINK: ::c_int = AF_HYLINK;
2160 pub const PF_APPLETALK: ::c_int = AF_APPLETALK;
2161 pub const PF_ROUTE: ::c_int = AF_ROUTE;
2162 pub const PF_LINK: ::c_int = AF_LINK;
2163 pub const PF_XTP: ::c_int = pseudo_AF_XTP;
2164 pub const PF_COIP: ::c_int = AF_COIP;
2165 pub const PF_CNT: ::c_int = AF_CNT;
2166 pub const PF_SIP: ::c_int = AF_SIP;
2167 pub const PF_IPX: ::c_int = AF_IPX;
2168 pub const PF_RTIP: ::c_int = pseudo_AF_RTIP;
2169 pub const PF_PIP: ::c_int = pseudo_AF_PIP;
2170 pub const PF_ISDN: ::c_int = AF_ISDN;
2171 pub const PF_KEY: ::c_int = pseudo_AF_KEY;
2172 pub const PF_INET6: ::c_int = AF_INET6;
2173 pub const PF_NATM: ::c_int = AF_NATM;
2174 pub const PF_SYSTEM: ::c_int = AF_SYSTEM;
2175 pub const PF_NETBIOS: ::c_int = AF_NETBIOS;
2176 pub const PF_PPP: ::c_int = AF_PPP;
2177
2178 pub const NET_RT_DUMP: ::c_int = 1;
2179 pub const NET_RT_FLAGS: ::c_int = 2;
2180 pub const NET_RT_IFLIST: ::c_int = 3;
2181 #[doc(hidden)]
2182 #[deprecated(since = "0.2.55")]
2183 pub const NET_RT_MAXID: ::c_int = 10;
2184
2185 pub const SOMAXCONN: ::c_int = 128;
2186
2187 pub const SOCK_MAXADDRLEN: ::c_int = 255;
2188
2189 pub const SOCK_STREAM: ::c_int = 1;
2190 pub const SOCK_DGRAM: ::c_int = 2;
2191 pub const SOCK_RAW: ::c_int = 3;
2192 pub const SOCK_RDM: ::c_int = 4;
2193 pub const SOCK_SEQPACKET: ::c_int = 5;
2194 pub const IP_TTL: ::c_int = 4;
2195 pub const IP_HDRINCL: ::c_int = 2;
2196 pub const IP_RECVDSTADDR: ::c_int = 7;
2197 pub const IP_ADD_MEMBERSHIP: ::c_int = 12;
2198 pub const IP_DROP_MEMBERSHIP: ::c_int = 13;
2199 pub const IP_RECVIF: ::c_int = 20;
2200 pub const IP_PKTINFO: ::c_int = 26;
2201 pub const IP_RECVTOS: ::c_int = 27;
2202 pub const IPV6_JOIN_GROUP: ::c_int = 12;
2203 pub const IPV6_LEAVE_GROUP: ::c_int = 13;
2204 pub const IPV6_RECVTCLASS: ::c_int = 35;
2205 pub const IPV6_TCLASS: ::c_int = 36;
2206 pub const IPV6_PKTINFO: ::c_int = 46;
2207 pub const IPV6_RECVPKTINFO: ::c_int = 61;
2208
2209 pub const TCP_NOPUSH: ::c_int = 4;
2210 pub const TCP_NOOPT: ::c_int = 8;
2211 pub const TCP_KEEPALIVE: ::c_int = 0x10;
2212
2213 pub const SOL_LOCAL: ::c_int = 0;
2214
2215 pub const LOCAL_PEERCRED: ::c_int = 0x001;
2216 pub const LOCAL_PEERPID: ::c_int = 0x002;
2217 pub const LOCAL_PEEREPID: ::c_int = 0x003;
2218 pub const LOCAL_PEERUUID: ::c_int = 0x004;
2219 pub const LOCAL_PEEREUUID: ::c_int = 0x005;
2220
2221 pub const SOL_SOCKET: ::c_int = 0xffff;
2222
2223 pub const SO_DEBUG: ::c_int = 0x01;
2224 pub const SO_ACCEPTCONN: ::c_int = 0x0002;
2225 pub const SO_REUSEADDR: ::c_int = 0x0004;
2226 pub const SO_KEEPALIVE: ::c_int = 0x0008;
2227 pub const SO_DONTROUTE: ::c_int = 0x0010;
2228 pub const SO_BROADCAST: ::c_int = 0x0020;
2229 pub const SO_USELOOPBACK: ::c_int = 0x0040;
2230 pub const SO_LINGER: ::c_int = 0x0080;
2231 pub const SO_OOBINLINE: ::c_int = 0x0100;
2232 pub const SO_REUSEPORT: ::c_int = 0x0200;
2233 pub const SO_TIMESTAMP: ::c_int = 0x0400;
2234 pub const SO_TIMESTAMP_MONOTONIC: ::c_int = 0x0800;
2235 pub const SO_DONTTRUNC: ::c_int = 0x2000;
2236 pub const SO_WANTMORE: ::c_int = 0x4000;
2237 pub const SO_WANTOOBFLAG: ::c_int = 0x8000;
2238 pub const SO_SNDBUF: ::c_int = 0x1001;
2239 pub const SO_RCVBUF: ::c_int = 0x1002;
2240 pub const SO_SNDLOWAT: ::c_int = 0x1003;
2241 pub const SO_RCVLOWAT: ::c_int = 0x1004;
2242 pub const SO_SNDTIMEO: ::c_int = 0x1005;
2243 pub const SO_RCVTIMEO: ::c_int = 0x1006;
2244 pub const SO_ERROR: ::c_int = 0x1007;
2245 pub const SO_TYPE: ::c_int = 0x1008;
2246 pub const SO_LABEL: ::c_int = 0x1010;
2247 pub const SO_PEERLABEL: ::c_int = 0x1011;
2248 pub const SO_NREAD: ::c_int = 0x1020;
2249 pub const SO_NKE: ::c_int = 0x1021;
2250 pub const SO_NOSIGPIPE: ::c_int = 0x1022;
2251 pub const SO_NOADDRERR: ::c_int = 0x1023;
2252 pub const SO_NWRITE: ::c_int = 0x1024;
2253 pub const SO_REUSESHAREUID: ::c_int = 0x1025;
2254 pub const SO_NOTIFYCONFLICT: ::c_int = 0x1026;
2255 pub const SO_RANDOMPORT: ::c_int = 0x1082;
2256 pub const SO_NP_EXTENSIONS: ::c_int = 0x1083;
2257
2258 pub const MSG_OOB: ::c_int = 0x1;
2259 pub const MSG_PEEK: ::c_int = 0x2;
2260 pub const MSG_DONTROUTE: ::c_int = 0x4;
2261 pub const MSG_EOR: ::c_int = 0x8;
2262 pub const MSG_TRUNC: ::c_int = 0x10;
2263 pub const MSG_CTRUNC: ::c_int = 0x20;
2264 pub const MSG_WAITALL: ::c_int = 0x40;
2265 pub const MSG_DONTWAIT: ::c_int = 0x80;
2266 pub const MSG_EOF: ::c_int = 0x100;
2267 pub const MSG_FLUSH: ::c_int = 0x400;
2268 pub const MSG_HOLD: ::c_int = 0x800;
2269 pub const MSG_SEND: ::c_int = 0x1000;
2270 pub const MSG_HAVEMORE: ::c_int = 0x2000;
2271 pub const MSG_RCVMORE: ::c_int = 0x4000;
2272 // pub const MSG_COMPAT: ::c_int = 0x8000;
2273
2274 pub const SCM_TIMESTAMP: ::c_int = 0x02;
2275 pub const SCM_CREDS: ::c_int = 0x03;
2276
2277 // https://github.com/aosm/xnu/blob/master/bsd/net/if.h#L140-L156
2278 pub const IFF_UP: ::c_int = 0x1; // interface is up
2279 pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid
2280 pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging
2281 pub const IFF_LOOPBACK: ::c_int = 0x8; // is a loopback net
2282 pub const IFF_POINTOPOINT: ::c_int = 0x10; // interface is point-to-point link
2283 pub const IFF_NOTRAILERS: ::c_int = 0x20; // obsolete: avoid use of trailers
2284 pub const IFF_RUNNING: ::c_int = 0x40; // resources allocated
2285 pub const IFF_NOARP: ::c_int = 0x80; // no address resolution protocol
2286 pub const IFF_PROMISC: ::c_int = 0x100;// receive all packets
2287 pub const IFF_ALLMULTI: ::c_int = 0x200;// receive all multicast packets
2288 pub const IFF_OACTIVE: ::c_int = 0x400;// transmission in progress
2289 pub const IFF_SIMPLEX: ::c_int = 0x800;// can't hear own transmissions
2290 pub const IFF_LINK0: ::c_int = 0x1000;// per link layer defined bit
2291 pub const IFF_LINK1: ::c_int = 0x2000;// per link layer defined bit
2292 pub const IFF_LINK2: ::c_int = 0x4000;// per link layer defined bit
2293 pub const IFF_ALTPHYS: ::c_int = IFF_LINK2;// use alternate physical connection
2294 pub const IFF_MULTICAST: ::c_int = 0x8000;// supports multicast
2295
2296 pub const SHUT_RD: ::c_int = 0;
2297 pub const SHUT_WR: ::c_int = 1;
2298 pub const SHUT_RDWR: ::c_int = 2;
2299
2300 pub const LOCK_SH: ::c_int = 1;
2301 pub const LOCK_EX: ::c_int = 2;
2302 pub const LOCK_NB: ::c_int = 4;
2303 pub const LOCK_UN: ::c_int = 8;
2304
2305 pub const MAP_COPY: ::c_int = 0x0002;
2306 pub const MAP_RENAME: ::c_int = 0x0020;
2307 pub const MAP_NORESERVE: ::c_int = 0x0040;
2308 pub const MAP_NOEXTEND: ::c_int = 0x0100;
2309 pub const MAP_HASSEMAPHORE: ::c_int = 0x0200;
2310 pub const MAP_NOCACHE: ::c_int = 0x0400;
2311 pub const MAP_JIT: ::c_int = 0x0800;
2312
2313 pub const _SC_ARG_MAX: ::c_int = 1;
2314 pub const _SC_CHILD_MAX: ::c_int = 2;
2315 pub const _SC_CLK_TCK: ::c_int = 3;
2316 pub const _SC_NGROUPS_MAX: ::c_int = 4;
2317 pub const _SC_OPEN_MAX: ::c_int = 5;
2318 pub const _SC_JOB_CONTROL: ::c_int = 6;
2319 pub const _SC_SAVED_IDS: ::c_int = 7;
2320 pub const _SC_VERSION: ::c_int = 8;
2321 pub const _SC_BC_BASE_MAX: ::c_int = 9;
2322 pub const _SC_BC_DIM_MAX: ::c_int = 10;
2323 pub const _SC_BC_SCALE_MAX: ::c_int = 11;
2324 pub const _SC_BC_STRING_MAX: ::c_int = 12;
2325 pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 13;
2326 pub const _SC_EXPR_NEST_MAX: ::c_int = 14;
2327 pub const _SC_LINE_MAX: ::c_int = 15;
2328 pub const _SC_RE_DUP_MAX: ::c_int = 16;
2329 pub const _SC_2_VERSION: ::c_int = 17;
2330 pub const _SC_2_C_BIND: ::c_int = 18;
2331 pub const _SC_2_C_DEV: ::c_int = 19;
2332 pub const _SC_2_CHAR_TERM: ::c_int = 20;
2333 pub const _SC_2_FORT_DEV: ::c_int = 21;
2334 pub const _SC_2_FORT_RUN: ::c_int = 22;
2335 pub const _SC_2_LOCALEDEF: ::c_int = 23;
2336 pub const _SC_2_SW_DEV: ::c_int = 24;
2337 pub const _SC_2_UPE: ::c_int = 25;
2338 pub const _SC_STREAM_MAX: ::c_int = 26;
2339 pub const _SC_TZNAME_MAX: ::c_int = 27;
2340 pub const _SC_ASYNCHRONOUS_IO: ::c_int = 28;
2341 pub const _SC_PAGESIZE: ::c_int = 29;
2342 pub const _SC_MEMLOCK: ::c_int = 30;
2343 pub const _SC_MEMLOCK_RANGE: ::c_int = 31;
2344 pub const _SC_MEMORY_PROTECTION: ::c_int = 32;
2345 pub const _SC_MESSAGE_PASSING: ::c_int = 33;
2346 pub const _SC_PRIORITIZED_IO: ::c_int = 34;
2347 pub const _SC_PRIORITY_SCHEDULING: ::c_int = 35;
2348 pub const _SC_REALTIME_SIGNALS: ::c_int = 36;
2349 pub const _SC_SEMAPHORES: ::c_int = 37;
2350 pub const _SC_FSYNC: ::c_int = 38;
2351 pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 39;
2352 pub const _SC_SYNCHRONIZED_IO: ::c_int = 40;
2353 pub const _SC_TIMERS: ::c_int = 41;
2354 pub const _SC_AIO_LISTIO_MAX: ::c_int = 42;
2355 pub const _SC_AIO_MAX: ::c_int = 43;
2356 pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 44;
2357 pub const _SC_DELAYTIMER_MAX: ::c_int = 45;
2358 pub const _SC_MQ_OPEN_MAX: ::c_int = 46;
2359 pub const _SC_MAPPED_FILES: ::c_int = 47;
2360 pub const _SC_RTSIG_MAX: ::c_int = 48;
2361 pub const _SC_SEM_NSEMS_MAX: ::c_int = 49;
2362 pub const _SC_SEM_VALUE_MAX: ::c_int = 50;
2363 pub const _SC_SIGQUEUE_MAX: ::c_int = 51;
2364 pub const _SC_TIMER_MAX: ::c_int = 52;
2365 pub const _SC_NPROCESSORS_CONF: ::c_int = 57;
2366 pub const _SC_NPROCESSORS_ONLN: ::c_int = 58;
2367 pub const _SC_2_PBS: ::c_int = 59;
2368 pub const _SC_2_PBS_ACCOUNTING: ::c_int = 60;
2369 pub const _SC_2_PBS_CHECKPOINT: ::c_int = 61;
2370 pub const _SC_2_PBS_LOCATE: ::c_int = 62;
2371 pub const _SC_2_PBS_MESSAGE: ::c_int = 63;
2372 pub const _SC_2_PBS_TRACK: ::c_int = 64;
2373 pub const _SC_ADVISORY_INFO: ::c_int = 65;
2374 pub const _SC_BARRIERS: ::c_int = 66;
2375 pub const _SC_CLOCK_SELECTION: ::c_int = 67;
2376 pub const _SC_CPUTIME: ::c_int = 68;
2377 pub const _SC_FILE_LOCKING: ::c_int = 69;
2378 pub const _SC_HOST_NAME_MAX: ::c_int = 72;
2379 pub const _SC_MONOTONIC_CLOCK: ::c_int = 74;
2380 pub const _SC_READER_WRITER_LOCKS: ::c_int = 76;
2381 pub const _SC_REGEXP: ::c_int = 77;
2382 pub const _SC_SHELL: ::c_int = 78;
2383 pub const _SC_SPAWN: ::c_int = 79;
2384 pub const _SC_SPIN_LOCKS: ::c_int = 80;
2385 pub const _SC_SPORADIC_SERVER: ::c_int = 81;
2386 pub const _SC_THREAD_CPUTIME: ::c_int = 84;
2387 pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 92;
2388 pub const _SC_TIMEOUTS: ::c_int = 95;
2389 pub const _SC_TRACE: ::c_int = 97;
2390 pub const _SC_TRACE_EVENT_FILTER: ::c_int = 98;
2391 pub const _SC_TRACE_INHERIT: ::c_int = 99;
2392 pub const _SC_TRACE_LOG: ::c_int = 100;
2393 pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 102;
2394 pub const _SC_V6_ILP32_OFF32: ::c_int = 103;
2395 pub const _SC_V6_ILP32_OFFBIG: ::c_int = 104;
2396 pub const _SC_V6_LP64_OFF64: ::c_int = 105;
2397 pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 106;
2398 pub const _SC_IPV6: ::c_int = 118;
2399 pub const _SC_RAW_SOCKETS: ::c_int = 119;
2400 pub const _SC_SYMLOOP_MAX: ::c_int = 120;
2401 pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE;
2402 pub const _SC_XOPEN_STREAMS: ::c_int = 114;
2403 pub const _SC_XBS5_ILP32_OFF32: ::c_int = 122;
2404 pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 123;
2405 pub const _SC_XBS5_LP64_OFF64: ::c_int = 124;
2406 pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 125;
2407 pub const _SC_SS_REPL_MAX: ::c_int = 126;
2408 pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 127;
2409 pub const _SC_TRACE_NAME_MAX: ::c_int = 128;
2410 pub const _SC_TRACE_SYS_MAX: ::c_int = 129;
2411 pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 130;
2412 pub const _SC_PASS_MAX: ::c_int = 131;
2413
2414 pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0;
2415 pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 1;
2416 pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 2;
2417 pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL;
2418 pub const _PTHREAD_MUTEX_SIG_init: ::c_long = 0x32AAABA7;
2419 pub const _PTHREAD_COND_SIG_init: ::c_long = 0x3CB0B1BB;
2420 pub const _PTHREAD_RWLOCK_SIG_init: ::c_long = 0x2DA8B3B4;
2421 pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
2422 __sig: _PTHREAD_MUTEX_SIG_init,
2423 __opaque: [0; __PTHREAD_MUTEX_SIZE__],
2424 };
2425 pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t {
2426 __sig: _PTHREAD_COND_SIG_init,
2427 __opaque: [0; __PTHREAD_COND_SIZE__],
2428 };
2429 pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
2430 __sig: _PTHREAD_RWLOCK_SIG_init,
2431 __opaque: [0; __PTHREAD_RWLOCK_SIZE__],
2432 };
2433
2434 pub const SIGSTKSZ: ::size_t = 131072;
2435
2436 pub const FD_SETSIZE: usize = 1024;
2437
2438 pub const ST_NOSUID: ::c_ulong = 2;
2439
2440 pub const EVFILT_READ: i16 = -1;
2441 pub const EVFILT_WRITE: i16 = -2;
2442 pub const EVFILT_AIO: i16 = -3;
2443 pub const EVFILT_VNODE: i16 = -4;
2444 pub const EVFILT_PROC: i16 = -5;
2445 pub const EVFILT_SIGNAL: i16 = -6;
2446 pub const EVFILT_TIMER: i16 = -7;
2447 pub const EVFILT_MACHPORT: i16 = -8;
2448 pub const EVFILT_FS: i16 = -9;
2449 pub const EVFILT_USER: i16 = -10;
2450 pub const EVFILT_VM: i16 = -12;
2451
2452 pub const EV_ADD: u16 = 0x1;
2453 pub const EV_DELETE: u16 = 0x2;
2454 pub const EV_ENABLE: u16 = 0x4;
2455 pub const EV_DISABLE: u16 = 0x8;
2456 pub const EV_ONESHOT: u16 = 0x10;
2457 pub const EV_CLEAR: u16 = 0x20;
2458 pub const EV_RECEIPT: u16 = 0x40;
2459 pub const EV_DISPATCH: u16 = 0x80;
2460 pub const EV_FLAG0: u16 = 0x1000;
2461 pub const EV_POLL: u16 = 0x1000;
2462 pub const EV_FLAG1: u16 = 0x2000;
2463 pub const EV_OOBAND: u16 = 0x2000;
2464 pub const EV_ERROR: u16 = 0x4000;
2465 pub const EV_EOF: u16 = 0x8000;
2466 pub const EV_SYSFLAGS: u16 = 0xf000;
2467
2468 pub const NOTE_TRIGGER: u32 = 0x01000000;
2469 pub const NOTE_FFNOP: u32 = 0x00000000;
2470 pub const NOTE_FFAND: u32 = 0x40000000;
2471 pub const NOTE_FFOR: u32 = 0x80000000;
2472 pub const NOTE_FFCOPY: u32 = 0xc0000000;
2473 pub const NOTE_FFCTRLMASK: u32 = 0xc0000000;
2474 pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff;
2475 pub const NOTE_LOWAT: u32 = 0x00000001;
2476 pub const NOTE_DELETE: u32 = 0x00000001;
2477 pub const NOTE_WRITE: u32 = 0x00000002;
2478 pub const NOTE_EXTEND: u32 = 0x00000004;
2479 pub const NOTE_ATTRIB: u32 = 0x00000008;
2480 pub const NOTE_LINK: u32 = 0x00000010;
2481 pub const NOTE_RENAME: u32 = 0x00000020;
2482 pub const NOTE_REVOKE: u32 = 0x00000040;
2483 pub const NOTE_NONE: u32 = 0x00000080;
2484 pub const NOTE_EXIT: u32 = 0x80000000;
2485 pub const NOTE_FORK: u32 = 0x40000000;
2486 pub const NOTE_EXEC: u32 = 0x20000000;
2487 #[doc(hidden)]
2488 #[deprecated(since="0.2.49", note="Deprecated since MacOSX 10.9")]
2489 pub const NOTE_REAP: u32 = 0x10000000;
2490 pub const NOTE_SIGNAL: u32 = 0x08000000;
2491 pub const NOTE_EXITSTATUS: u32 = 0x04000000;
2492 pub const NOTE_EXIT_DETAIL: u32 = 0x02000000;
2493 pub const NOTE_PDATAMASK: u32 = 0x000fffff;
2494 pub const NOTE_PCTRLMASK: u32 = 0xfff00000;
2495 #[doc(hidden)]
2496 #[deprecated(since="0.2.49", note="Deprecated since MacOSX 10.9")]
2497 pub const NOTE_EXIT_REPARENTED: u32 = 0x00080000;
2498 pub const NOTE_EXIT_DETAIL_MASK: u32 = 0x00070000;
2499 pub const NOTE_EXIT_DECRYPTFAIL: u32 = 0x00010000;
2500 pub const NOTE_EXIT_MEMORY: u32 = 0x00020000;
2501 pub const NOTE_EXIT_CSERROR: u32 = 0x00040000;
2502 pub const NOTE_VM_PRESSURE: u32 = 0x80000000;
2503 pub const NOTE_VM_PRESSURE_TERMINATE: u32 = 0x40000000;
2504 pub const NOTE_VM_PRESSURE_SUDDEN_TERMINATE: u32 = 0x20000000;
2505 pub const NOTE_VM_ERROR: u32 = 0x10000000;
2506 pub const NOTE_SECONDS: u32 = 0x00000001;
2507 pub const NOTE_USECONDS: u32 = 0x00000002;
2508 pub const NOTE_NSECONDS: u32 = 0x00000004;
2509 pub const NOTE_ABSOLUTE: u32 = 0x00000008;
2510 pub const NOTE_LEEWAY: u32 = 0x00000010;
2511 pub const NOTE_CRITICAL: u32 = 0x00000020;
2512 pub const NOTE_BACKGROUND: u32 = 0x00000040;
2513 pub const NOTE_TRACK: u32 = 0x00000001;
2514 pub const NOTE_TRACKERR: u32 = 0x00000002;
2515 pub const NOTE_CHILD: u32 = 0x00000004;
2516
2517 pub const OCRNL: ::tcflag_t = 0x00000010;
2518 pub const ONOCR: ::tcflag_t = 0x00000020;
2519 pub const ONLRET: ::tcflag_t = 0x00000040;
2520 pub const OFILL: ::tcflag_t = 0x00000080;
2521 pub const NLDLY: ::tcflag_t = 0x00000300;
2522 pub const TABDLY: ::tcflag_t = 0x00000c04;
2523 pub const CRDLY: ::tcflag_t = 0x00003000;
2524 pub const FFDLY: ::tcflag_t = 0x00004000;
2525 pub const BSDLY: ::tcflag_t = 0x00008000;
2526 pub const VTDLY: ::tcflag_t = 0x00010000;
2527 pub const OFDEL: ::tcflag_t = 0x00020000;
2528
2529 pub const NL0: ::tcflag_t = 0x00000000;
2530 pub const NL1: ::tcflag_t = 0x00000100;
2531 pub const TAB0: ::tcflag_t = 0x00000000;
2532 pub const TAB1: ::tcflag_t = 0x00000400;
2533 pub const TAB2: ::tcflag_t = 0x00000800;
2534 pub const CR0: ::tcflag_t = 0x00000000;
2535 pub const CR1: ::tcflag_t = 0x00001000;
2536 pub const CR2: ::tcflag_t = 0x00002000;
2537 pub const CR3: ::tcflag_t = 0x00003000;
2538 pub const FF0: ::tcflag_t = 0x00000000;
2539 pub const FF1: ::tcflag_t = 0x00004000;
2540 pub const BS0: ::tcflag_t = 0x00000000;
2541 pub const BS1: ::tcflag_t = 0x00008000;
2542 pub const TAB3: ::tcflag_t = 0x00000004;
2543 pub const VT0: ::tcflag_t = 0x00000000;
2544 pub const VT1: ::tcflag_t = 0x00010000;
2545 pub const IUTF8: ::tcflag_t = 0x00004000;
2546 pub const CRTSCTS: ::tcflag_t = 0x00030000;
2547
2548 pub const NI_MAXHOST: ::socklen_t = 1025;
2549 pub const NI_MAXSERV: ::socklen_t = 32;
2550 pub const NI_NOFQDN: ::c_int = 0x00000001;
2551 pub const NI_NUMERICHOST: ::c_int = 0x00000002;
2552 pub const NI_NAMEREQD: ::c_int = 0x00000004;
2553 pub const NI_NUMERICSERV: ::c_int = 0x00000008;
2554 pub const NI_NUMERICSCOPE: ::c_int = 0x00000100;
2555 pub const NI_DGRAM: ::c_int = 0x00000010;
2556
2557 pub const Q_GETQUOTA: ::c_int = 0x300;
2558 pub const Q_SETQUOTA: ::c_int = 0x400;
2559
2560 pub const RENAME_SWAP: ::c_uint = 0x00000002;
2561 pub const RENAME_EXCL: ::c_uint = 0x00000004;
2562
2563 pub const RTLD_LOCAL: ::c_int = 0x4;
2564 pub const RTLD_FIRST: ::c_int = 0x100;
2565 pub const RTLD_NODELETE: ::c_int = 0x80;
2566 pub const RTLD_NOLOAD: ::c_int = 0x10;
2567 pub const RTLD_GLOBAL: ::c_int = 0x8;
2568
2569 pub const _WSTOPPED: ::c_int = 0o177;
2570
2571 pub const LOG_NETINFO: ::c_int = 12 << 3;
2572 pub const LOG_REMOTEAUTH: ::c_int = 13 << 3;
2573 pub const LOG_INSTALL: ::c_int = 14 << 3;
2574 pub const LOG_RAS: ::c_int = 15 << 3;
2575 pub const LOG_LAUNCHD: ::c_int = 24 << 3;
2576 pub const LOG_NFACILITIES: ::c_int = 25;
2577
2578 pub const CTLTYPE: ::c_int = 0xf;
2579 pub const CTLTYPE_NODE: ::c_int = 1;
2580 pub const CTLTYPE_INT: ::c_int = 2;
2581 pub const CTLTYPE_STRING: ::c_int = 3;
2582 pub const CTLTYPE_QUAD: ::c_int = 4;
2583 pub const CTLTYPE_OPAQUE: ::c_int = 5;
2584 pub const CTLTYPE_STRUCT: ::c_int = CTLTYPE_OPAQUE;
2585 pub const CTLFLAG_RD: ::c_int = 0x80000000;
2586 pub const CTLFLAG_WR: ::c_int = 0x40000000;
2587 pub const CTLFLAG_RW: ::c_int = CTLFLAG_RD | CTLFLAG_WR;
2588 pub const CTLFLAG_NOLOCK: ::c_int = 0x20000000;
2589 pub const CTLFLAG_ANYBODY: ::c_int = 0x10000000;
2590 pub const CTLFLAG_SECURE: ::c_int = 0x08000000;
2591 pub const CTLFLAG_MASKED: ::c_int = 0x04000000;
2592 pub const CTLFLAG_NOAUTO: ::c_int = 0x02000000;
2593 pub const CTLFLAG_KERN: ::c_int = 0x01000000;
2594 pub const CTLFLAG_LOCKED: ::c_int = 0x00800000;
2595 pub const CTLFLAG_OID2: ::c_int = 0x00400000;
2596 pub const CTL_UNSPEC: ::c_int = 0;
2597 pub const CTL_KERN: ::c_int = 1;
2598 pub const CTL_VM: ::c_int = 2;
2599 pub const CTL_VFS: ::c_int = 3;
2600 pub const CTL_NET: ::c_int = 4;
2601 pub const CTL_DEBUG: ::c_int = 5;
2602 pub const CTL_HW: ::c_int = 6;
2603 pub const CTL_MACHDEP: ::c_int = 7;
2604 pub const CTL_USER: ::c_int = 8;
2605 pub const CTL_MAXID: ::c_int = 9;
2606 pub const KERN_OSTYPE: ::c_int = 1;
2607 pub const KERN_OSRELEASE: ::c_int = 2;
2608 pub const KERN_OSREV: ::c_int = 3;
2609 pub const KERN_VERSION: ::c_int = 4;
2610 pub const KERN_MAXVNODES: ::c_int = 5;
2611 pub const KERN_MAXPROC: ::c_int = 6;
2612 pub const KERN_MAXFILES: ::c_int = 7;
2613 pub const KERN_ARGMAX: ::c_int = 8;
2614 pub const KERN_SECURELVL: ::c_int = 9;
2615 pub const KERN_HOSTNAME: ::c_int = 10;
2616 pub const KERN_HOSTID: ::c_int = 11;
2617 pub const KERN_CLOCKRATE: ::c_int = 12;
2618 pub const KERN_VNODE: ::c_int = 13;
2619 pub const KERN_PROC: ::c_int = 14;
2620 pub const KERN_FILE: ::c_int = 15;
2621 pub const KERN_PROF: ::c_int = 16;
2622 pub const KERN_POSIX1: ::c_int = 17;
2623 pub const KERN_NGROUPS: ::c_int = 18;
2624 pub const KERN_JOB_CONTROL: ::c_int = 19;
2625 pub const KERN_SAVED_IDS: ::c_int = 20;
2626 pub const KERN_BOOTTIME: ::c_int = 21;
2627 pub const KERN_NISDOMAINNAME: ::c_int = 22;
2628 pub const KERN_DOMAINNAME: ::c_int = KERN_NISDOMAINNAME;
2629 pub const KERN_MAXPARTITIONS: ::c_int = 23;
2630 pub const KERN_KDEBUG: ::c_int = 24;
2631 pub const KERN_UPDATEINTERVAL: ::c_int = 25;
2632 pub const KERN_OSRELDATE: ::c_int = 26;
2633 pub const KERN_NTP_PLL: ::c_int = 27;
2634 pub const KERN_BOOTFILE: ::c_int = 28;
2635 pub const KERN_MAXFILESPERPROC: ::c_int = 29;
2636 pub const KERN_MAXPROCPERUID: ::c_int = 30;
2637 pub const KERN_DUMPDEV: ::c_int = 31;
2638 pub const KERN_IPC: ::c_int = 32;
2639 pub const KERN_DUMMY: ::c_int = 33;
2640 pub const KERN_PS_STRINGS: ::c_int = 34;
2641 pub const KERN_USRSTACK32: ::c_int = 35;
2642 pub const KERN_LOGSIGEXIT: ::c_int = 36;
2643 pub const KERN_SYMFILE: ::c_int = 37;
2644 pub const KERN_PROCARGS: ::c_int = 38;
2645 pub const KERN_NETBOOT: ::c_int = 40;
2646 pub const KERN_SYSV: ::c_int = 42;
2647 pub const KERN_AFFINITY: ::c_int = 43;
2648 pub const KERN_TRANSLATE: ::c_int = 44;
2649 pub const KERN_CLASSIC: ::c_int = KERN_TRANSLATE;
2650 pub const KERN_EXEC: ::c_int = 45;
2651 pub const KERN_CLASSICHANDLER: ::c_int = KERN_EXEC;
2652 pub const KERN_AIOMAX: ::c_int = 46;
2653 pub const KERN_AIOPROCMAX: ::c_int = 47;
2654 pub const KERN_AIOTHREADS: ::c_int = 48;
2655 pub const KERN_COREFILE: ::c_int = 50;
2656 pub const KERN_COREDUMP: ::c_int = 51;
2657 pub const KERN_SUGID_COREDUMP: ::c_int = 52;
2658 pub const KERN_PROCDELAYTERM: ::c_int = 53;
2659 pub const KERN_SHREG_PRIVATIZABLE: ::c_int = 54;
2660 pub const KERN_LOW_PRI_WINDOW: ::c_int = 56;
2661 pub const KERN_LOW_PRI_DELAY: ::c_int = 57;
2662 pub const KERN_POSIX: ::c_int = 58;
2663 pub const KERN_USRSTACK64: ::c_int = 59;
2664 pub const KERN_NX_PROTECTION: ::c_int = 60;
2665 pub const KERN_TFP: ::c_int = 61;
2666 pub const KERN_PROCNAME: ::c_int = 62;
2667 pub const KERN_THALTSTACK: ::c_int = 63;
2668 pub const KERN_SPECULATIVE_READS: ::c_int = 64;
2669 pub const KERN_OSVERSION: ::c_int = 65;
2670 pub const KERN_SAFEBOOT: ::c_int = 66;
2671 pub const KERN_RAGEVNODE: ::c_int = 68;
2672 pub const KERN_TTY: ::c_int = 69;
2673 pub const KERN_CHECKOPENEVT: ::c_int = 70;
2674 pub const KERN_THREADNAME: ::c_int = 71;
2675 pub const KERN_MAXID: ::c_int = 72;
2676 pub const KERN_RAGE_PROC: ::c_int = 1;
2677 pub const KERN_RAGE_THREAD: ::c_int = 2;
2678 pub const KERN_UNRAGE_PROC: ::c_int = 3;
2679 pub const KERN_UNRAGE_THREAD: ::c_int = 4;
2680 pub const KERN_OPENEVT_PROC: ::c_int = 1;
2681 pub const KERN_UNOPENEVT_PROC: ::c_int = 2;
2682 pub const KERN_TFP_POLICY: ::c_int = 1;
2683 pub const KERN_TFP_POLICY_DENY: ::c_int = 0;
2684 pub const KERN_TFP_POLICY_DEFAULT: ::c_int = 2;
2685 pub const KERN_KDEFLAGS: ::c_int = 1;
2686 pub const KERN_KDDFLAGS: ::c_int = 2;
2687 pub const KERN_KDENABLE: ::c_int = 3;
2688 pub const KERN_KDSETBUF: ::c_int = 4;
2689 pub const KERN_KDGETBUF: ::c_int = 5;
2690 pub const KERN_KDSETUP: ::c_int = 6;
2691 pub const KERN_KDREMOVE: ::c_int = 7;
2692 pub const KERN_KDSETREG: ::c_int = 8;
2693 pub const KERN_KDGETREG: ::c_int = 9;
2694 pub const KERN_KDREADTR: ::c_int = 10;
2695 pub const KERN_KDPIDTR: ::c_int = 11;
2696 pub const KERN_KDTHRMAP: ::c_int = 12;
2697 pub const KERN_KDPIDEX: ::c_int = 14;
2698 pub const KERN_KDSETRTCDEC: ::c_int = 15;
2699 pub const KERN_KDGETENTROPY: ::c_int = 16;
2700 pub const KERN_KDWRITETR: ::c_int = 17;
2701 pub const KERN_KDWRITEMAP: ::c_int = 18;
2702 #[doc(hidden)]
2703 #[deprecated(since = "0.2.49", note ="Removed in MacOSX 10.12")]
2704 pub const KERN_KDENABLE_BG_TRACE: ::c_int = 19;
2705 #[doc(hidden)]
2706 #[deprecated(since = "0.2.49", note ="Removed in MacOSX 10.12")]
2707 pub const KERN_KDDISABLE_BG_TRACE: ::c_int = 20;
2708 pub const KERN_KDREADCURTHRMAP: ::c_int = 21;
2709 pub const KERN_KDSET_TYPEFILTER: ::c_int = 22;
2710 pub const KERN_KDBUFWAIT: ::c_int = 23;
2711 pub const KERN_KDCPUMAP: ::c_int = 24;
2712 pub const KERN_PROC_ALL: ::c_int = 0;
2713 pub const KERN_PROC_PID: ::c_int = 1;
2714 pub const KERN_PROC_PGRP: ::c_int = 2;
2715 pub const KERN_PROC_SESSION: ::c_int = 3;
2716 pub const KERN_PROC_TTY: ::c_int = 4;
2717 pub const KERN_PROC_UID: ::c_int = 5;
2718 pub const KERN_PROC_RUID: ::c_int = 6;
2719 pub const KERN_PROC_LCID: ::c_int = 7;
2720 pub const KIPC_MAXSOCKBUF: ::c_int = 1;
2721 pub const KIPC_SOCKBUF_WASTE: ::c_int = 2;
2722 pub const KIPC_SOMAXCONN: ::c_int = 3;
2723 pub const KIPC_MAX_LINKHDR: ::c_int = 4;
2724 pub const KIPC_MAX_PROTOHDR: ::c_int = 5;
2725 pub const KIPC_MAX_HDR: ::c_int = 6;
2726 pub const KIPC_MAX_DATALEN: ::c_int = 7;
2727 pub const KIPC_MBSTAT: ::c_int = 8;
2728 pub const KIPC_NMBCLUSTERS: ::c_int = 9;
2729 pub const KIPC_SOQLIMITCOMPAT: ::c_int = 10;
2730 pub const VM_METER: ::c_int = 1;
2731 pub const VM_LOADAVG: ::c_int = 2;
2732 pub const VM_MACHFACTOR: ::c_int = 4;
2733 pub const VM_SWAPUSAGE: ::c_int = 5;
2734 pub const VM_MAXID: ::c_int = 6;
2735 pub const HW_MACHINE: ::c_int = 1;
2736 pub const HW_MODEL: ::c_int = 2;
2737 pub const HW_NCPU: ::c_int = 3;
2738 pub const HW_BYTEORDER: ::c_int = 4;
2739 pub const HW_PHYSMEM: ::c_int = 5;
2740 pub const HW_USERMEM: ::c_int = 6;
2741 pub const HW_PAGESIZE: ::c_int = 7;
2742 pub const HW_DISKNAMES: ::c_int = 8;
2743 pub const HW_DISKSTATS: ::c_int = 9;
2744 pub const HW_EPOCH: ::c_int = 10;
2745 pub const HW_FLOATINGPT: ::c_int = 11;
2746 pub const HW_MACHINE_ARCH: ::c_int = 12;
2747 pub const HW_VECTORUNIT: ::c_int = 13;
2748 pub const HW_BUS_FREQ: ::c_int = 14;
2749 pub const HW_CPU_FREQ: ::c_int = 15;
2750 pub const HW_CACHELINE: ::c_int = 16;
2751 pub const HW_L1ICACHESIZE: ::c_int = 17;
2752 pub const HW_L1DCACHESIZE: ::c_int = 18;
2753 pub const HW_L2SETTINGS: ::c_int = 19;
2754 pub const HW_L2CACHESIZE: ::c_int = 20;
2755 pub const HW_L3SETTINGS: ::c_int = 21;
2756 pub const HW_L3CACHESIZE: ::c_int = 22;
2757 pub const HW_TB_FREQ: ::c_int = 23;
2758 pub const HW_MEMSIZE: ::c_int = 24;
2759 pub const HW_AVAILCPU: ::c_int = 25;
2760 pub const HW_MAXID: ::c_int = 26;
2761 pub const USER_CS_PATH: ::c_int = 1;
2762 pub const USER_BC_BASE_MAX: ::c_int = 2;
2763 pub const USER_BC_DIM_MAX: ::c_int = 3;
2764 pub const USER_BC_SCALE_MAX: ::c_int = 4;
2765 pub const USER_BC_STRING_MAX: ::c_int = 5;
2766 pub const USER_COLL_WEIGHTS_MAX: ::c_int = 6;
2767 pub const USER_EXPR_NEST_MAX: ::c_int = 7;
2768 pub const USER_LINE_MAX: ::c_int = 8;
2769 pub const USER_RE_DUP_MAX: ::c_int = 9;
2770 pub const USER_POSIX2_VERSION: ::c_int = 10;
2771 pub const USER_POSIX2_C_BIND: ::c_int = 11;
2772 pub const USER_POSIX2_C_DEV: ::c_int = 12;
2773 pub const USER_POSIX2_CHAR_TERM: ::c_int = 13;
2774 pub const USER_POSIX2_FORT_DEV: ::c_int = 14;
2775 pub const USER_POSIX2_FORT_RUN: ::c_int = 15;
2776 pub const USER_POSIX2_LOCALEDEF: ::c_int = 16;
2777 pub const USER_POSIX2_SW_DEV: ::c_int = 17;
2778 pub const USER_POSIX2_UPE: ::c_int = 18;
2779 pub const USER_STREAM_MAX: ::c_int = 19;
2780 pub const USER_TZNAME_MAX: ::c_int = 20;
2781 pub const USER_MAXID: ::c_int = 21;
2782 pub const CTL_DEBUG_NAME: ::c_int = 0;
2783 pub const CTL_DEBUG_VALUE: ::c_int = 1;
2784 pub const CTL_DEBUG_MAXID: ::c_int = 20;
2785
2786 pub const PRIO_DARWIN_THREAD: ::c_int = 3;
2787 pub const PRIO_DARWIN_PROCESS: ::c_int = 4;
2788 pub const PRIO_DARWIN_BG: ::c_int = 0x1000;
2789 pub const PRIO_DARWIN_NONUI: ::c_int = 0x1001;
2790
2791 pub const SEM_FAILED: *mut sem_t = -1isize as *mut ::sem_t;
2792
2793 pub const AI_PASSIVE: ::c_int = 0x00000001;
2794 pub const AI_CANONNAME: ::c_int = 0x00000002;
2795 pub const AI_NUMERICHOST: ::c_int = 0x00000004;
2796 pub const AI_NUMERICSERV: ::c_int = 0x00001000;
2797 pub const AI_MASK: ::c_int = AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST |
2798 AI_NUMERICSERV | AI_ADDRCONFIG;
2799 pub const AI_ALL: ::c_int = 0x00000100;
2800 pub const AI_V4MAPPED_CFG: ::c_int = 0x00000200;
2801 pub const AI_ADDRCONFIG: ::c_int = 0x00000400;
2802 pub const AI_V4MAPPED: ::c_int = 0x00000800;
2803 pub const AI_DEFAULT: ::c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG;
2804 pub const AI_UNUSABLE: ::c_int = 0x10000000;
2805
2806 pub const SIGEV_NONE: ::c_int = 0;
2807 pub const SIGEV_SIGNAL: ::c_int = 1;
2808 pub const SIGEV_THREAD: ::c_int = 3;
2809
2810 pub const AIO_CANCELED: ::c_int = 2;
2811 pub const AIO_NOTCANCELED: ::c_int = 4;
2812 pub const AIO_ALLDONE: ::c_int = 1;
2813 pub const AIO_LISTIO_MAX: ::c_int = 16;
2814 pub const LIO_NOP: ::c_int = 0;
2815 pub const LIO_WRITE: ::c_int = 2;
2816 pub const LIO_READ: ::c_int = 1;
2817 pub const LIO_WAIT: ::c_int = 2;
2818 pub const LIO_NOWAIT: ::c_int = 1;
2819
2820 pub const WEXITED: ::c_int = 0x00000004;
2821 pub const WSTOPPED: ::c_int = 0x00000008;
2822 pub const WCONTINUED: ::c_int = 0x00000010;
2823 pub const WNOWAIT: ::c_int = 0x00000020;
2824
2825 pub const P_ALL: idtype_t = 0;
2826 pub const P_PID: idtype_t = 1;
2827 pub const P_PGID: idtype_t = 2;
2828
2829 pub const XATTR_NOFOLLOW: ::c_int = 0x0001;
2830 pub const XATTR_CREATE: ::c_int = 0x0002;
2831 pub const XATTR_REPLACE: ::c_int = 0x0004;
2832 pub const XATTR_NOSECURITY: ::c_int = 0x0008;
2833 pub const XATTR_NODEFAULT: ::c_int = 0x0010;
2834 pub const XATTR_SHOWCOMPRESSION: ::c_int = 0x0020;
2835
2836 pub const NET_RT_IFLIST2: ::c_int = 0x0006;
2837
2838 // net/route.h
2839 pub const RTF_UP: ::c_int = 0x1;
2840 pub const RTF_GATEWAY: ::c_int = 0x2;
2841 pub const RTF_HOST: ::c_int = 0x4;
2842 pub const RTF_REJECT: ::c_int = 0x8;
2843 pub const RTF_DYNAMIC: ::c_int = 0x10;
2844 pub const RTF_MODIFIED: ::c_int = 0x20;
2845 pub const RTF_DONE: ::c_int = 0x40;
2846 pub const RTF_DELCLONE: ::c_int = 0x80;
2847 pub const RTF_CLONING: ::c_int = 0x100;
2848 pub const RTF_XRESOLVE: ::c_int = 0x200;
2849 pub const RTF_LLINFO: ::c_int = 0x400;
2850 pub const RTF_STATIC: ::c_int = 0x800;
2851 pub const RTF_BLACKHOLE: ::c_int = 0x1000;
2852 pub const RTF_NOIFREF: ::c_int = 0x2000;
2853 pub const RTF_PROTO2: ::c_int = 0x4000;
2854 pub const RTF_PROTO1: ::c_int = 0x8000;
2855 pub const RTF_PRCLONING: ::c_int = 0x10000;
2856 pub const RTF_WASCLONED: ::c_int = 0x20000;
2857 pub const RTF_PROTO3: ::c_int = 0x40000;
2858 pub const RTF_PINNED: ::c_int = 0x100000;
2859 pub const RTF_LOCAL: ::c_int = 0x200000;
2860 pub const RTF_BROADCAST: ::c_int = 0x400000;
2861 pub const RTF_MULTICAST: ::c_int = 0x800000;
2862 pub const RTF_IFSCOPE: ::c_int = 0x1000000;
2863 pub const RTF_CONDEMNED: ::c_int = 0x2000000;
2864 pub const RTF_IFREF: ::c_int = 0x4000000;
2865 pub const RTF_PROXY: ::c_int = 0x8000000;
2866 pub const RTF_ROUTER: ::c_int = 0x10000000;
2867
2868 pub const RTM_VERSION: ::c_int = 5;
2869
2870 // Message types
2871 pub const RTM_ADD: ::c_int = 0x1;
2872 pub const RTM_DELETE: ::c_int = 0x2;
2873 pub const RTM_CHANGE: ::c_int = 0x3;
2874 pub const RTM_GET: ::c_int = 0x4;
2875 pub const RTM_LOSING: ::c_int = 0x5;
2876 pub const RTM_REDIRECT: ::c_int = 0x6;
2877 pub const RTM_MISS: ::c_int = 0x7;
2878 pub const RTM_LOCK: ::c_int = 0x8;
2879 pub const RTM_OLDADD: ::c_int = 0x9;
2880 pub const RTM_OLDDEL: ::c_int = 0xa;
2881 pub const RTM_RESOLVE: ::c_int = 0xb;
2882 pub const RTM_NEWADDR: ::c_int = 0xc;
2883 pub const RTM_DELADDR: ::c_int = 0xd;
2884 pub const RTM_IFINFO: ::c_int = 0xe;
2885 pub const RTM_NEWMADDR: ::c_int = 0xf;
2886 pub const RTM_DELMADDR: ::c_int = 0x10;
2887 pub const RTM_IFINFO2: ::c_int = 0x12;
2888 pub const RTM_NEWMADDR2: ::c_int = 0x13;
2889 pub const RTM_GET2: ::c_int = 0x14;
2890
2891 // Bitmask values for rtm_inits and rmx_locks.
2892 pub const RTV_MTU: ::c_int = 0x1;
2893 pub const RTV_HOPCOUNT: ::c_int = 0x2;
2894 pub const RTV_EXPIRE: ::c_int = 0x4;
2895 pub const RTV_RPIPE: ::c_int = 0x8;
2896 pub const RTV_SPIPE: ::c_int = 0x10;
2897 pub const RTV_SSTHRESH: ::c_int = 0x20;
2898 pub const RTV_RTT: ::c_int = 0x40;
2899 pub const RTV_RTTVAR: ::c_int = 0x80;
2900
2901 // Bitmask values for rtm_addrs.
2902 pub const RTA_DST: ::c_int = 0x1;
2903 pub const RTA_GATEWAY: ::c_int = 0x2;
2904 pub const RTA_NETMASK: ::c_int = 0x4;
2905 pub const RTA_GENMASK: ::c_int = 0x8;
2906 pub const RTA_IFP: ::c_int = 0x10;
2907 pub const RTA_IFA: ::c_int = 0x20;
2908 pub const RTA_AUTHOR: ::c_int = 0x40;
2909 pub const RTA_BRD: ::c_int = 0x80;
2910
2911 // Index offsets for sockaddr array for alternate internal encoding.
2912 pub const RTAX_DST: ::c_int = 0;
2913 pub const RTAX_GATEWAY: ::c_int = 1;
2914 pub const RTAX_NETMASK: ::c_int = 2;
2915 pub const RTAX_GENMASK: ::c_int = 3;
2916 pub const RTAX_IFP: ::c_int = 4;
2917 pub const RTAX_IFA: ::c_int = 5;
2918 pub const RTAX_AUTHOR: ::c_int = 6;
2919 pub const RTAX_BRD: ::c_int = 7;
2920 pub const RTAX_MAX: ::c_int = 8;
2921
2922 pub const KERN_PROCARGS2: ::c_int = 49;
2923
2924 pub const PROC_PIDTASKALLINFO: ::c_int = 2;
2925 pub const PROC_PIDTASKINFO: ::c_int = 4;
2926 pub const PROC_PIDTHREADINFO: ::c_int = 5;
2927 pub const MAXCOMLEN: usize = 16;
2928 pub const MAXTHREADNAMESIZE: usize = 64;
2929
2930 pub const XUCRED_VERSION: ::c_uint = 0;
2931
2932 pub const LC_SEGMENT: u32 = 0x1;
2933 pub const LC_SEGMENT_64: u32 = 0x19;
2934
2935 pub const MH_MAGIC: u32 = 0xfeedface;
2936 pub const MH_MAGIC_64: u32 = 0xfeedfacf;
2937
2938 // net/if_utun.h
2939 pub const UTUN_OPT_FLAGS: ::c_int = 1;
2940 pub const UTUN_OPT_IFNAME: ::c_int = 2;
2941
2942 // net/bpf.h
2943 pub const DLT_NULL: ::c_uint = 0; // no link-layer encapsulation
2944 pub const DLT_EN10MB: ::c_uint = 1; // Ethernet (10Mb)
2945 pub const DLT_EN3MB: ::c_uint = 2; // Experimental Ethernet (3Mb)
2946 pub const DLT_AX25: ::c_uint = 3; // Amateur Radio AX.25
2947 pub const DLT_PRONET: ::c_uint = 4; // Proteon ProNET Token Ring
2948 pub const DLT_CHAOS: ::c_uint = 5; // Chaos
2949 pub const DLT_IEEE802: ::c_uint = 6; // IEEE 802 Networks
2950 pub const DLT_ARCNET: ::c_uint = 7; // ARCNET
2951 pub const DLT_SLIP: ::c_uint = 8; // Serial Line IP
2952 pub const DLT_PPP: ::c_uint = 9; // Point-to-point Protocol
2953 pub const DLT_FDDI: ::c_uint = 10; // FDDI
2954 pub const DLT_ATM_RFC1483: ::c_uint = 11; // LLC/SNAP encapsulated atm
2955 pub const DLT_RAW: ::c_uint = 12; // raw IP
2956 pub const DLT_LOOP: ::c_uint = 108;
2957
2958 // https://github.com/apple/darwin-xnu/blob/master/bsd/net/bpf.h#L100
2959 // sizeof(i32)
2960 pub const BPF_ALIGNMENT: ::c_int = 4;
2961
2962 // sys/spawn.h:
2963 pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01;
2964 pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02;
2965 pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x04;
2966 pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x08;
2967 pub const POSIX_SPAWN_SETEXEC: ::c_int = 0x40;
2968 pub const POSIX_SPAWN_START_SUSPENDED: ::c_int = 0x80;
2969 pub const POSIX_SPAWN_CLOEXEC_DEFAULT: ::c_int = 0x4000;
2970
2971 // sys/ipc.h:
2972 pub const IPC_CREAT: ::c_int = 0x200;
2973 pub const IPC_EXCL: ::c_int = 0x400;
2974 pub const IPC_NOWAIT: ::c_int = 0x800;
2975 pub const IPC_PRIVATE: key_t = 0;
2976
2977 pub const IPC_RMID: ::c_int = 0;
2978 pub const IPC_SET: ::c_int = 1;
2979 pub const IPC_STAT: ::c_int = 2;
2980
2981 pub const IPC_R: ::c_int = 0x100;
2982 pub const IPC_W: ::c_int = 0x80;
2983 pub const IPC_M: ::c_int = 0x1000;
2984
2985 // sys/sem.h
2986 pub const SEM_UNDO: ::c_int = 0o10000;
2987
2988 pub const GETNCNT: ::c_int = 3;
2989 pub const GETPID: ::c_int = 4;
2990 pub const GETVAL: ::c_int = 5;
2991 pub const GETALL: ::c_int = 6;
2992 pub const GETZCNT: ::c_int = 7;
2993 pub const SETVAL: ::c_int = 8;
2994 pub const SETALL: ::c_int = 9;
2995
2996 // sys/shm.h
2997 pub const SHM_RDONLY: ::c_int = 0x1000;
2998 pub const SHM_RND: ::c_int = 0x2000;
2999 pub const SHMLBA: ::c_int = 4096;
3000 pub const SHM_R: ::c_int = IPC_R;
3001 pub const SHM_W: ::c_int = IPC_W;
3002
3003 // Flags for chflags(2)
3004 pub const UF_SETTABLE: ::c_uint = 0x0000ffff;
3005 pub const UF_NODUMP: ::c_uint = 0x00000001;
3006 pub const UF_IMMUTABLE: ::c_uint = 0x00000002;
3007 pub const UF_APPEND: ::c_uint = 0x00000004;
3008 pub const UF_OPAQUE: ::c_uint = 0x00000008;
3009 pub const UF_COMPRESSED: ::c_uint = 0x00000020;
3010 pub const UF_TRACKED: ::c_uint = 0x00000040;
3011 pub const SF_SETTABLE: ::c_uint = 0xffff0000;
3012 pub const SF_ARCHIVED: ::c_uint = 0x00010000;
3013 pub const SF_IMMUTABLE: ::c_uint = 0x00020000;
3014 pub const SF_APPEND: ::c_uint = 0x00040000;
3015 pub const UF_HIDDEN: ::c_uint = 0x00008000;
3016
3017 cfg_if! {
3018 if #[cfg(libc_const_size_of)] {
3019 fn __DARWIN_ALIGN32(p: usize) -> usize {
3020 const __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::<u32>() - 1;
3021 p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32
3022 }
3023 } else {
3024 fn __DARWIN_ALIGN32(p: usize) -> usize {
3025 let __DARWIN_ALIGNBYTES32: usize = ::mem::size_of::<u32>() - 1;
3026 p + __DARWIN_ALIGNBYTES32 & !__DARWIN_ALIGNBYTES32
3027 }
3028 }
3029 }
3030
3031 f! {
3032 pub fn CMSG_NXTHDR(mhdr: *const ::msghdr,
3033 cmsg: *const ::cmsghdr) -> *mut ::cmsghdr {
3034 if cmsg.is_null() {
3035 return ::CMSG_FIRSTHDR(mhdr);
3036 };
3037 let cmsg_len = (*cmsg).cmsg_len as usize;
3038 let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len as usize);
3039 let max = (*mhdr).msg_control as usize
3040 + (*mhdr).msg_controllen as usize;
3041 if next + __DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) > max {
3042 0 as *mut ::cmsghdr
3043 } else {
3044 next as *mut ::cmsghdr
3045 }
3046 }
3047
3048 pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar {
3049 (cmsg as *mut ::c_uchar)
3050 .offset(__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) as isize)
3051 }
3052
3053 pub fn CMSG_SPACE(length: ::c_uint) -> ::c_uint {
3054 (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>())
3055 + __DARWIN_ALIGN32(length as usize))
3056 as ::c_uint
3057 }
3058
3059 pub fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
3060 (__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + length as usize)
3061 as ::c_uint
3062 }
3063
3064 pub fn WSTOPSIG(status: ::c_int) -> ::c_int {
3065 status >> 8
3066 }
3067
3068 pub fn _WSTATUS(status: ::c_int) -> ::c_int {
3069 status & 0x7f
3070 }
3071
3072 pub fn WIFCONTINUED(status: ::c_int) -> bool {
3073 _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) == 0x13
3074 }
3075
3076 pub fn WIFSIGNALED(status: ::c_int) -> bool {
3077 _WSTATUS(status) != _WSTOPPED && _WSTATUS(status) != 0
3078 }
3079
3080 pub fn WIFSTOPPED(status: ::c_int) -> bool {
3081 _WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) != 0x13
3082 }
3083 }
3084
3085 extern {
3086 pub fn setgrent();
3087 #[doc(hidden)]
3088 #[deprecated(since="0.2.49", note="Deprecated in MacOSX 10.5")]
3089 #[link_name = "daemon$1050"]
3090 pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int;
3091 #[doc(hidden)]
3092 #[deprecated(since="0.2.49", note="Deprecated in MacOSX 10.10")]
3093 pub fn sem_destroy(sem: *mut sem_t) -> ::c_int;
3094 #[doc(hidden)]
3095 #[deprecated(since="0.2.49", note="Deprecated in MacOSX 10.10")]
3096 pub fn sem_init(sem: *mut sem_t,
3097 pshared: ::c_int,
3098 value: ::c_uint)
3099 -> ::c_int;
3100 pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int;
3101 pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int;
3102 pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
3103 pub fn aio_error(aiocbp: *const aiocb) -> ::c_int;
3104 pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t;
3105 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
3106 link_name = "aio_suspend$UNIX2003")]
3107 pub fn aio_suspend(aiocb_list: *const *const aiocb, nitems: ::c_int,
3108 timeout: *const ::timespec) -> ::c_int;
3109 pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
3110 pub fn chflags(path: *const ::c_char, flags: ::c_uint) -> ::c_int;
3111 pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::c_int;
3112 pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
3113 pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
3114 pub fn lio_listio(mode: ::c_int, aiocb_list: *const *mut aiocb,
3115 nitems: ::c_int, sevp: *mut sigevent) -> ::c_int;
3116
3117 pub fn dirfd(dirp: *mut ::DIR) -> ::c_int;
3118
3119 pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int;
3120
3121 pub fn gettimeofday(tp: *mut ::timeval,
3122 tz: *mut ::c_void) -> ::c_int;
3123 pub fn getutxent() -> *mut utmpx;
3124 pub fn getutxid(ut: *const utmpx) -> *mut utmpx;
3125 pub fn getutxline(ut: *const utmpx) -> *mut utmpx;
3126 pub fn pututxline(ut: *const utmpx) -> *mut utmpx;
3127 pub fn setutxent();
3128 pub fn endutxent();
3129 pub fn utmpxname(file: *const ::c_char) -> ::c_int;
3130
3131 pub fn getnameinfo(sa: *const ::sockaddr,
3132 salen: ::socklen_t,
3133 host: *mut ::c_char,
3134 hostlen: ::socklen_t,
3135 serv: *mut ::c_char,
3136 sevlen: ::socklen_t,
3137 flags: ::c_int) -> ::c_int;
3138 pub fn mincore(addr: *const ::c_void, len: ::size_t,
3139 vec: *mut ::c_char) -> ::c_int;
3140 pub fn sysctlnametomib(name: *const ::c_char,
3141 mibp: *mut ::c_int,
3142 sizep: *mut ::size_t)
3143 -> ::c_int;
3144 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
3145 link_name = "mprotect$UNIX2003")]
3146 pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int)
3147 -> ::c_int;
3148 pub fn semget(key: key_t, nsems: ::c_int, semflg: ::c_int) -> ::c_int;
3149 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
3150 link_name = "semctl$UNIX2003")]
3151 pub fn semctl(semid: ::c_int,
3152 semnum: ::c_int,
3153 cmd: ::c_int, ...) -> ::c_int;
3154 pub fn semop(semid: ::c_int, sops: *mut sembuf, nsops: ::size_t) -> ::c_int;
3155 pub fn shm_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::c_int;
3156 pub fn ftok(pathname : *const c_char, proj_id : ::c_int) -> key_t;
3157 pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void,
3158 shmflg: ::c_int) -> *mut ::c_void;
3159 pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int;
3160 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
3161 link_name = "shmctl$UNIX2003")]
3162 pub fn shmctl(shmid: ::c_int, cmd: ::c_int,
3163 buf: *mut ::shmid_ds) -> ::c_int;
3164 pub fn shmget(key: key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int;
3165 pub fn sysctl(name: *mut ::c_int,
3166 namelen: ::c_uint,
3167 oldp: *mut ::c_void,
3168 oldlenp: *mut ::size_t,
3169 newp: *mut ::c_void,
3170 newlen: ::size_t)
3171 -> ::c_int;
3172 pub fn sysctlbyname(name: *const ::c_char,
3173 oldp: *mut ::c_void,
3174 oldlenp: *mut ::size_t,
3175 newp: *mut ::c_void,
3176 newlen: ::size_t)
3177 -> ::c_int;
3178 #[deprecated(since = "0.2.55", note = "Use the mach crate")]
3179 pub fn mach_absolute_time() -> u64;
3180 #[deprecated(since = "0.2.55", note = "Use the mach crate")]
3181 #[allow(deprecated)]
3182 pub fn mach_timebase_info(info: *mut ::mach_timebase_info) -> ::c_int;
3183 pub fn pthread_setname_np(name: *const ::c_char) -> ::c_int;
3184 pub fn pthread_get_stackaddr_np(thread: ::pthread_t) -> *mut ::c_void;
3185 pub fn pthread_get_stacksize_np(thread: ::pthread_t) -> ::size_t;
3186 pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t,
3187 pshared: ::c_int) -> ::c_int;
3188 pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t,
3189 pshared: *mut ::c_int) -> ::c_int;
3190 pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t,
3191 pshared: ::c_int) -> ::c_int;
3192 pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t,
3193 pshared: *mut ::c_int) -> ::c_int;
3194 pub fn pthread_rwlockattr_getpshared(attr: *const pthread_rwlockattr_t,
3195 val: *mut ::c_int) -> ::c_int;
3196 pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t,
3197 val: ::c_int) -> ::c_int;
3198 pub fn __error() -> *mut ::c_int;
3199 pub fn backtrace(buf: *mut *mut ::c_void,
3200 sz: ::c_int) -> ::c_int;
3201 #[cfg_attr(target_os = "macos", link_name = "statfs$INODE64")]
3202 pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int;
3203 #[cfg_attr(target_os = "macos", link_name = "fstatfs$INODE64")]
3204 pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int;
3205 pub fn kevent(kq: ::c_int,
3206 changelist: *const ::kevent,
3207 nchanges: ::c_int,
3208 eventlist: *mut ::kevent,
3209 nevents: ::c_int,
3210 timeout: *const ::timespec) -> ::c_int;
3211 pub fn kevent64(kq: ::c_int,
3212 changelist: *const ::kevent64_s,
3213 nchanges: ::c_int,
3214 eventlist: *mut ::kevent64_s,
3215 nevents: ::c_int,
3216 flags: ::c_uint,
3217 timeout: *const ::timespec) -> ::c_int;
3218 pub fn mount(src: *const ::c_char,
3219 target: *const ::c_char,
3220 flags: ::c_int,
3221 data: *mut ::c_void) -> ::c_int;
3222 pub fn ptrace(request: ::c_int,
3223 pid: ::pid_t,
3224 addr: *mut ::c_char,
3225 data: ::c_int) -> ::c_int;
3226 pub fn quotactl(special: *const ::c_char,
3227 cmd: ::c_int,
3228 id: ::c_int,
3229 data: *mut ::c_char) -> ::c_int;
3230 pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int;
3231 pub fn sendfile(fd: ::c_int,
3232 s: ::c_int,
3233 offset: ::off_t,
3234 len: *mut ::off_t,
3235 hdtr: *mut ::sf_hdtr,
3236 flags: ::c_int) -> ::c_int;
3237 pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int;
3238 pub fn utimensat(dirfd: ::c_int, path: *const ::c_char,
3239 times: *const ::timespec, flag: ::c_int) -> ::c_int;
3240 pub fn openpty(amaster: *mut ::c_int,
3241 aslave: *mut ::c_int,
3242 name: *mut ::c_char,
3243 termp: *mut termios,
3244 winp: *mut ::winsize) -> ::c_int;
3245 pub fn forkpty(amaster: *mut ::c_int,
3246 name: *mut ::c_char,
3247 termp: *mut termios,
3248 winp: *mut ::winsize) -> ::pid_t;
3249 pub fn login_tty(fd: ::c_int) -> ::c_int;
3250 pub fn duplocale(base: ::locale_t) -> ::locale_t;
3251 pub fn freelocale(loc: ::locale_t) -> ::c_int;
3252 pub fn localeconv_l(loc: ::locale_t) -> *mut lconv;
3253 pub fn newlocale(mask: ::c_int,
3254 locale: *const ::c_char,
3255 base: ::locale_t) -> ::locale_t;
3256 pub fn uselocale(loc: ::locale_t) -> ::locale_t;
3257 pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char;
3258 pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int;
3259 pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int;
3260 pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int;
3261 pub fn setdomainname(name: *const ::c_char, len: ::c_int) -> ::c_int;
3262 pub fn getxattr(path: *const ::c_char, name: *const ::c_char,
3263 value: *mut ::c_void, size: ::size_t, position: u32,
3264 flags: ::c_int) -> ::ssize_t;
3265 pub fn fgetxattr(filedes: ::c_int, name: *const ::c_char,
3266 value: *mut ::c_void, size: ::size_t, position: u32,
3267 flags: ::c_int) -> ::ssize_t;
3268 pub fn setxattr(path: *const ::c_char, name: *const ::c_char,
3269 value: *const ::c_void, size: ::size_t, position: u32,
3270 flags: ::c_int) -> ::c_int;
3271 pub fn fsetxattr(filedes: ::c_int, name: *const ::c_char,
3272 value: *const ::c_void, size: ::size_t, position: u32,
3273 flags: ::c_int) -> ::c_int;
3274 pub fn listxattr(path: *const ::c_char, list: *mut ::c_char,
3275 size: ::size_t, flags: ::c_int) -> ::ssize_t;
3276 pub fn flistxattr(filedes: ::c_int, list: *mut ::c_char,
3277 size: ::size_t, flags: ::c_int) -> ::ssize_t;
3278 pub fn removexattr(path: *const ::c_char, name: *const ::c_char,
3279 flags: ::c_int) -> ::c_int;
3280 pub fn renamex_np(from: *const ::c_char, to: *const ::c_char,
3281 flags: ::c_uint) -> ::c_int;
3282 pub fn renameatx_np(fromfd: ::c_int, from: *const ::c_char,
3283 tofd: ::c_int, to: *const ::c_char,
3284 flags: ::c_uint) -> ::c_int;
3285 pub fn fremovexattr(filedes: ::c_int, name: *const ::c_char,
3286 flags: ::c_int) -> ::c_int;
3287
3288 pub fn getgrouplist(name: *const ::c_char,
3289 basegid: ::c_int,
3290 groups: *mut ::c_int,
3291 ngroups: *mut ::c_int) -> ::c_int;
3292 pub fn initgroups(user: *const ::c_char, basegroup: ::c_int) -> ::c_int;
3293
3294 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
3295 link_name = "waitid$UNIX2003")]
3296 pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t,
3297 options: ::c_int) -> ::c_int;
3298 pub fn brk(addr: *const ::c_void) -> *mut ::c_void;
3299 pub fn sbrk(increment: ::c_int) -> *mut ::c_void;
3300 pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int;
3301 #[deprecated(since = "0.2.55", note = "Use the mach crate")]
3302 pub fn _dyld_image_count() -> u32;
3303 #[deprecated(since = "0.2.55", note = "Use the mach crate")]
3304 #[allow(deprecated)]
3305 pub fn _dyld_get_image_header(image_index: u32) -> *const mach_header;
3306 #[deprecated(since = "0.2.55", note = "Use the mach crate")]
3307 pub fn _dyld_get_image_vmaddr_slide(image_index: u32) -> ::intptr_t;
3308 #[deprecated(since = "0.2.55", note = "Use the mach crate")]
3309 pub fn _dyld_get_image_name(image_index: u32) -> *const ::c_char;
3310
3311 pub fn posix_spawn(pid: *mut ::pid_t,
3312 path: *const ::c_char,
3313 file_actions: *const ::posix_spawn_file_actions_t,
3314 attrp: *const ::posix_spawnattr_t,
3315 argv: *const *mut ::c_char,
3316 envp: *const *mut ::c_char) -> ::c_int;
3317 pub fn posix_spawnp(pid: *mut ::pid_t,
3318 file: *const ::c_char,
3319 file_actions: *const ::posix_spawn_file_actions_t,
3320 attrp: *const ::posix_spawnattr_t,
3321 argv: *const *mut ::c_char,
3322 envp: *const *mut ::c_char) -> ::c_int;
3323 pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int;
3324 pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int;
3325 pub fn posix_spawnattr_getsigdefault(attr: *const posix_spawnattr_t,
3326 default: *mut ::sigset_t) -> ::c_int;
3327 pub fn posix_spawnattr_setsigdefault(attr: *mut posix_spawnattr_t,
3328 default: *const ::sigset_t) -> ::c_int;
3329 pub fn posix_spawnattr_getsigmask(attr: *const posix_spawnattr_t,
3330 default: *mut ::sigset_t) -> ::c_int;
3331 pub fn posix_spawnattr_setsigmask(attr: *mut posix_spawnattr_t,
3332 default: *const ::sigset_t) -> ::c_int;
3333 pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t,
3334 flags: *mut ::c_short) -> ::c_int;
3335 pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t,
3336 flags: ::c_short) -> ::c_int;
3337 pub fn posix_spawnattr_getpgroup(attr: *const posix_spawnattr_t,
3338 flags: *mut ::pid_t) -> ::c_int;
3339 pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t,
3340 flags: ::pid_t) -> ::c_int;
3341
3342 pub fn posix_spawn_file_actions_init(
3343 actions: *mut posix_spawn_file_actions_t,
3344 ) -> ::c_int;
3345 pub fn posix_spawn_file_actions_destroy(
3346 actions: *mut posix_spawn_file_actions_t,
3347 ) -> ::c_int;
3348 pub fn posix_spawn_file_actions_addopen(
3349 actions: *mut posix_spawn_file_actions_t,
3350 fd: ::c_int,
3351 path: *const ::c_char,
3352 oflag: ::c_int,
3353 mode: ::mode_t,
3354 ) -> ::c_int;
3355 pub fn posix_spawn_file_actions_addclose(
3356 actions: *mut posix_spawn_file_actions_t,
3357 fd: ::c_int,
3358 ) -> ::c_int;
3359 pub fn posix_spawn_file_actions_adddup2(
3360 actions: *mut posix_spawn_file_actions_t,
3361 fd: ::c_int,
3362 newfd: ::c_int,
3363 ) -> ::c_int;
3364 pub fn uname(buf: *mut ::utsname) -> ::c_int;
3365 }
3366
3367 cfg_if! {
3368 if #[cfg(any(target_arch = "arm", target_arch = "x86"))] {
3369 mod b32;
3370 pub use self::b32::*;
3371 } else if #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] {
3372 mod b64;
3373 pub use self::b64::*;
3374 } else {
3375 // Unknown target_arch
3376 }
3377 }