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