]> git.proxmox.com Git - rustc.git/blame - vendor/libc/src/unix/linux_like/android/mod.rs
New upstream version 1.38.0+dfsg1
[rustc.git] / vendor / libc / src / unix / linux_like / android / mod.rs
CommitLineData
476ff2be
SL
1//! Android-specific definitions for linux-like values
2
476ff2be
SL
3pub type clock_t = ::c_long;
4pub type time_t = ::c_long;
5pub type suseconds_t = ::c_long;
476ff2be
SL
6pub type off_t = ::c_long;
7pub type blkcnt_t = ::c_ulong;
8pub type blksize_t = ::c_ulong;
9pub type nlink_t = u32;
10pub type useconds_t = u32;
476ff2be
SL
11pub type pthread_t = ::c_long;
12pub type pthread_mutexattr_t = ::c_long;
041b39d2 13pub type pthread_rwlockattr_t = ::c_long;
476ff2be 14pub type pthread_condattr_t = ::c_long;
416331ca 15pub type pthread_key_t = ::c_int;
476ff2be
SL
16pub type fsfilcnt_t = ::c_ulong;
17pub type fsblkcnt_t = ::c_ulong;
18pub type nfds_t = ::c_uint;
19pub type rlim_t = ::c_ulong;
20pub type dev_t = ::c_ulong;
21pub type ino_t = ::c_ulong;
22pub type __CPU_BITTYPE = ::c_ulong;
8bb4bdeb 23pub type idtype_t = ::c_int;
ea8adc8c 24pub type loff_t = ::c_longlong;
476ff2be
SL
25
26s! {
476ff2be
SL
27 pub struct stack_t {
28 pub ss_sp: *mut ::c_void,
29 pub ss_flags: ::c_int,
30 pub ss_size: ::size_t
31 }
32
476ff2be
SL
33 pub struct __fsid_t {
34 __val: [::c_int; 2],
35 }
36
37 pub struct msghdr {
38 pub msg_name: *mut ::c_void,
8bb4bdeb 39 pub msg_namelen: ::socklen_t,
476ff2be
SL
40 pub msg_iov: *mut ::iovec,
41 pub msg_iovlen: ::size_t,
42 pub msg_control: *mut ::c_void,
43 pub msg_controllen: ::size_t,
44 pub msg_flags: ::c_int,
45 }
46
8bb4bdeb
XL
47 pub struct cmsghdr {
48 pub cmsg_len: ::size_t,
49 pub cmsg_level: ::c_int,
50 pub cmsg_type: ::c_int,
51 }
52
476ff2be
SL
53 pub struct termios {
54 pub c_iflag: ::tcflag_t,
55 pub c_oflag: ::tcflag_t,
56 pub c_cflag: ::tcflag_t,
57 pub c_lflag: ::tcflag_t,
58 pub c_line: ::cc_t,
59 pub c_cc: [::cc_t; ::NCCS],
60 }
61
abe05a73
XL
62 pub struct termios2 {
63 pub c_iflag: ::tcflag_t,
64 pub c_oflag: ::tcflag_t,
65 pub c_cflag: ::tcflag_t,
66 pub c_lflag: ::tcflag_t,
67 pub c_line: ::cc_t,
68 pub c_cc: [::cc_t; 19],
69 pub c_ispeed: ::speed_t,
70 pub c_ospeed: ::speed_t,
71 }
72
476ff2be
SL
73 pub struct flock {
74 pub l_type: ::c_short,
75 pub l_whence: ::c_short,
76 pub l_start: ::off_t,
77 pub l_len: ::off_t,
78 pub l_pid: ::pid_t,
79 }
80
81 pub struct cpu_set_t {
82 #[cfg(target_pointer_width = "64")]
83 __bits: [__CPU_BITTYPE; 16],
84 #[cfg(target_pointer_width = "32")]
85 __bits: [__CPU_BITTYPE; 1],
86 }
87
88 pub struct sem_t {
89 count: ::c_uint,
8bb4bdeb
XL
90 #[cfg(target_pointer_width = "64")]
91 __reserved: [::c_int; 3],
476ff2be
SL
92 }
93
476ff2be
SL
94 pub struct exit_status {
95 pub e_termination: ::c_short,
96 pub e_exit: ::c_short,
97 }
98
8bb4bdeb
XL
99 pub struct statvfs {
100 pub f_bsize: ::c_ulong,
101 pub f_frsize: ::c_ulong,
102 pub f_blocks: ::fsblkcnt_t,
103 pub f_bfree: ::fsblkcnt_t,
104 pub f_bavail: ::fsblkcnt_t,
105 pub f_files: ::fsfilcnt_t,
106 pub f_ffree: ::fsfilcnt_t,
107 pub f_favail: ::fsfilcnt_t,
108 pub f_fsid: ::c_ulong,
109 pub f_flag: ::c_ulong,
110 pub f_namemax: ::c_ulong,
111 #[cfg(target_pointer_width = "64")]
112 __f_reserved: [u32; 6],
113 }
3b2f2976
XL
114
115 pub struct signalfd_siginfo {
416331ca
XL
116 pub ssi_signo: u32,
117 pub ssi_errno: i32,
118 pub ssi_code: i32,
119 pub ssi_pid: u32,
120 pub ssi_uid: u32,
121 pub ssi_fd: i32,
122 pub ssi_tid: u32,
123 pub ssi_band: u32,
124 pub ssi_overrun: u32,
125 pub ssi_trapno: u32,
126 pub ssi_status: i32,
127 pub ssi_int: i32,
3b2f2976
XL
128 pub ssi_ptr: ::c_ulonglong,
129 pub ssi_utime: ::c_ulonglong,
130 pub ssi_stime: ::c_ulonglong,
131 pub ssi_addr: ::c_ulonglong,
416331ca
XL
132 pub ssi_addr_lsb: u16,
133 _pad2: u16,
134 pub ssi_syscall: i32,
135 pub ssi_call_addr: u64,
136 pub ssi_arch: u32,
137 _pad: [u8; 28],
3b2f2976 138 }
abe05a73
XL
139
140 pub struct ucred {
141 pub pid: ::pid_t,
142 pub uid: ::uid_t,
143 pub gid: ::gid_t,
144 }
2c00a5a8
XL
145
146 pub struct genlmsghdr {
8faf50e0
XL
147 pub cmd: u8,
148 pub version: u8,
149 pub reserved: u16,
2c00a5a8
XL
150 }
151
152 pub struct nlmsghdr {
8faf50e0
XL
153 pub nlmsg_len: u32,
154 pub nlmsg_type: u16,
155 pub nlmsg_flags: u16,
156 pub nlmsg_seq: u32,
157 pub nlmsg_pid: u32,
2c00a5a8
XL
158 }
159
160 pub struct nlmsgerr {
8faf50e0
XL
161 pub error: ::c_int,
162 pub msg: nlmsghdr,
2c00a5a8
XL
163 }
164
165 pub struct nl_pktinfo {
8faf50e0 166 pub group: u32,
2c00a5a8
XL
167 }
168
169 pub struct nl_mmap_req {
8faf50e0
XL
170 pub nm_block_size: ::c_uint,
171 pub nm_block_nr: ::c_uint,
172 pub nm_frame_size: ::c_uint,
173 pub nm_frame_nr: ::c_uint,
2c00a5a8
XL
174 }
175
176 pub struct nl_mmap_hdr {
8faf50e0
XL
177 pub nm_status: ::c_uint,
178 pub nm_len: ::c_uint,
179 pub nm_group: u32,
180 pub nm_pid: u32,
181 pub nm_uid: u32,
182 pub nm_gid: u32,
2c00a5a8
XL
183 }
184
185 pub struct nlattr {
8faf50e0
XL
186 pub nla_len: u16,
187 pub nla_type: u16,
188 }
189
190 pub struct in6_pktinfo {
191 pub ipi6_addr: ::in6_addr,
192 pub ipi6_ifindex: ::c_int,
2c00a5a8 193 }
532ac7d7
XL
194
195 pub struct inotify_event {
196 pub wd: ::c_int,
416331ca
XL
197 pub mask: u32,
198 pub cookie: u32,
199 pub len: u32
532ac7d7
XL
200 }
201}
202
203s_no_extra_traits!{
416331ca
XL
204 pub struct sockaddr_nl {
205 pub nl_family: ::sa_family_t,
206 nl_pad: ::c_ushort,
207 pub nl_pid: u32,
208 pub nl_groups: u32
209 }
210
532ac7d7
XL
211 pub struct dirent {
212 pub d_ino: u64,
213 pub d_off: i64,
214 pub d_reclen: ::c_ushort,
215 pub d_type: ::c_uchar,
216 pub d_name: [::c_char; 256],
217 }
218
219 pub struct dirent64 {
220 pub d_ino: u64,
221 pub d_off: i64,
222 pub d_reclen: ::c_ushort,
223 pub d_type: ::c_uchar,
224 pub d_name: [::c_char; 256],
225 }
226
227 pub struct siginfo_t {
228 pub si_signo: ::c_int,
229 pub si_errno: ::c_int,
230 pub si_code: ::c_int,
231 pub _pad: [::c_int; 29],
232 _align: [usize; 0],
233 }
234
235 pub struct lastlog {
236 ll_time: ::time_t,
237 ll_line: [::c_char; UT_LINESIZE],
238 ll_host: [::c_char; UT_HOSTSIZE],
239 }
240
241 pub struct utmp {
242 pub ut_type: ::c_short,
243 pub ut_pid: ::pid_t,
244 pub ut_line: [::c_char; UT_LINESIZE],
245 pub ut_id: [::c_char; 4],
246 pub ut_user: [::c_char; UT_NAMESIZE],
247 pub ut_host: [::c_char; UT_HOSTSIZE],
248 pub ut_exit: exit_status,
249 pub ut_session: ::c_long,
250 pub ut_tv: ::timeval,
416331ca 251 pub ut_addr_v6: [i32; 4],
532ac7d7
XL
252 unused: [::c_char; 20],
253 }
254
255 pub struct sockaddr_alg {
256 pub salg_family: ::sa_family_t,
257 pub salg_type: [::c_uchar; 14],
258 pub salg_feat: u32,
259 pub salg_mask: u32,
260 pub salg_name: [::c_uchar; 64],
261 }
262
263 pub struct af_alg_iv {
264 pub ivlen: u32,
265 pub iv: [::c_uchar; 0],
266 }
267}
268
269cfg_if! {
270 if #[cfg(feature = "extra_traits")] {
416331ca
XL
271 impl PartialEq for sockaddr_nl {
272 fn eq(&self, other: &sockaddr_nl) -> bool {
273 self.nl_family == other.nl_family &&
274 self.nl_pid == other.nl_pid &&
275 self.nl_groups == other.nl_groups
276 }
277 }
278 impl Eq for sockaddr_nl {}
279 impl ::fmt::Debug for sockaddr_nl {
280 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
281 f.debug_struct("sockaddr_nl")
282 .field("nl_family", &self.nl_family)
283 .field("nl_pid", &self.nl_pid)
284 .field("nl_groups", &self.nl_groups)
285 .finish()
286 }
287 }
288 impl ::hash::Hash for sockaddr_nl {
289 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
290 self.nl_family.hash(state);
291 self.nl_pid.hash(state);
292 self.nl_groups.hash(state);
293 }
294 }
295
532ac7d7
XL
296 impl PartialEq for dirent {
297 fn eq(&self, other: &dirent) -> bool {
298 self.d_ino == other.d_ino
299 && self.d_off == other.d_off
300 && self.d_reclen == other.d_reclen
301 && self.d_type == other.d_type
302 && self
303 .d_name
304 .iter()
305 .zip(other.d_name.iter())
306 .all(|(a,b)| a == b)
307 }
308 }
309
310 impl Eq for dirent {}
311
312 impl ::fmt::Debug for dirent {
313 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
314 f.debug_struct("dirent")
315 .field("d_ino", &self.d_ino)
316 .field("d_off", &self.d_off)
317 .field("d_reclen", &self.d_reclen)
318 .field("d_type", &self.d_type)
319 // FIXME: .field("d_name", &self.d_name)
320 .finish()
321 }
322 }
323
324 impl ::hash::Hash for dirent {
325 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
326 self.d_ino.hash(state);
327 self.d_off.hash(state);
328 self.d_reclen.hash(state);
329 self.d_type.hash(state);
330 self.d_name.hash(state);
331 }
332 }
333
334 impl PartialEq for dirent64 {
335 fn eq(&self, other: &dirent64) -> bool {
336 self.d_ino == other.d_ino
337 && self.d_off == other.d_off
338 && self.d_reclen == other.d_reclen
339 && self.d_type == other.d_type
340 && self
341 .d_name
342 .iter()
343 .zip(other.d_name.iter())
344 .all(|(a,b)| a == b)
345 }
346 }
347
348 impl Eq for dirent64 {}
349
350 impl ::fmt::Debug for dirent64 {
351 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
352 f.debug_struct("dirent64")
353 .field("d_ino", &self.d_ino)
354 .field("d_off", &self.d_off)
355 .field("d_reclen", &self.d_reclen)
356 .field("d_type", &self.d_type)
357 // FIXME: .field("d_name", &self.d_name)
358 .finish()
359 }
360 }
361
362 impl ::hash::Hash for dirent64 {
363 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
364 self.d_ino.hash(state);
365 self.d_off.hash(state);
366 self.d_reclen.hash(state);
367 self.d_type.hash(state);
368 self.d_name.hash(state);
369 }
370 }
371
372 impl PartialEq for siginfo_t {
373 fn eq(&self, other: &siginfo_t) -> bool {
374 self.si_signo == other.si_signo
375 && self.si_errno == other.si_errno
376 && self.si_code == other.si_code
377 // Ignore _pad
378 // Ignore _align
379 }
380 }
381
382 impl Eq for siginfo_t {}
383
384 impl ::fmt::Debug for siginfo_t {
385 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
386 f.debug_struct("siginfo_t")
387 .field("si_signo", &self.si_signo)
388 .field("si_errno", &self.si_errno)
389 .field("si_code", &self.si_code)
390 // Ignore _pad
391 // Ignore _align
392 .finish()
393 }
394 }
395
396 impl ::hash::Hash for siginfo_t {
397 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
398 self.si_signo.hash(state);
399 self.si_errno.hash(state);
400 self.si_code.hash(state);
401 // Ignore _pad
402 // Ignore _align
403 }
404 }
405
406 impl PartialEq for lastlog {
407 fn eq(&self, other: &lastlog) -> bool {
408 self.ll_time == other.ll_time
409 && self
410 .ll_line
411 .iter()
412 .zip(other.ll_line.iter())
413 .all(|(a,b)| a == b)
414 && self
415 .ll_host
416 .iter()
417 .zip(other.ll_host.iter())
418 .all(|(a,b)| a == b)
419 }
420 }
421
422 impl Eq for lastlog {}
423
424 impl ::fmt::Debug for lastlog {
425 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
426 f.debug_struct("lastlog")
427 .field("ll_time", &self.ll_time)
428 .field("ll_line", &self.ll_line)
429 // FIXME: .field("ll_host", &self.ll_host)
430 .finish()
431 }
432 }
433
434 impl ::hash::Hash for lastlog {
435 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
436 self.ll_time.hash(state);
437 self.ll_line.hash(state);
438 self.ll_host.hash(state);
439 }
440 }
441
442 impl PartialEq for utmp {
443 fn eq(&self, other: &utmp) -> bool {
444 self.ut_type == other.ut_type
445 && self.ut_pid == other.ut_pid
446 && self
447 .ut_line
448 .iter()
449 .zip(other.ut_line.iter())
450 .all(|(a,b)| a == b)
451 && self.ut_id == other.ut_id
452 && self
453 .ut_user
454 .iter()
455 .zip(other.ut_user.iter())
456 .all(|(a,b)| a == b)
457 && self
458 .ut_host
459 .iter()
460 .zip(other.ut_host.iter())
461 .all(|(a,b)| a == b)
462 && self.ut_exit == other.ut_exit
463 && self.ut_session == other.ut_session
464 && self.ut_tv == other.ut_tv
465 && self.ut_addr_v6 == other.ut_addr_v6
466 && self.unused == other.unused
467 }
468 }
469
470 impl Eq for utmp {}
471
472 impl ::fmt::Debug for utmp {
473 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
474 f.debug_struct("utmp")
475 .field("ut_type", &self.ut_type)
476 .field("ut_pid", &self.ut_pid)
477 .field("ut_line", &self.ut_line)
478 .field("ut_id", &self.ut_id)
479 .field("ut_user", &self.ut_user)
480 // FIXME: .field("ut_host", &self.ut_host)
481 .field("ut_exit", &self.ut_exit)
482 .field("ut_session", &self.ut_session)
483 .field("ut_tv", &self.ut_tv)
484 .field("ut_addr_v6", &self.ut_addr_v6)
485 .field("unused", &self.unused)
486 .finish()
487 }
488 }
489
490 impl ::hash::Hash for utmp {
491 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
492 self.ut_type.hash(state);
493 self.ut_pid.hash(state);
494 self.ut_line.hash(state);
495 self.ut_id.hash(state);
496 self.ut_user.hash(state);
497 self.ut_host.hash(state);
498 self.ut_exit.hash(state);
499 self.ut_session.hash(state);
500 self.ut_tv.hash(state);
501 self.ut_addr_v6.hash(state);
502 self.unused.hash(state);
503 }
504 }
505
506 impl PartialEq for sockaddr_alg {
507 fn eq(&self, other: &sockaddr_alg) -> bool {
508 self.salg_family == other.salg_family
509 && self
510 .salg_type
511 .iter()
512 .zip(other.salg_type.iter())
513 .all(|(a, b)| a == b)
514 && self.salg_feat == other.salg_feat
515 && self.salg_mask == other.salg_mask
516 && self
517 .salg_name
518 .iter()
519 .zip(other.salg_name.iter())
520 .all(|(a, b)| a == b)
521 }
522 }
523
524 impl Eq for sockaddr_alg {}
525
526 impl ::fmt::Debug for sockaddr_alg {
527 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
528 f.debug_struct("sockaddr_alg")
529 .field("salg_family", &self.salg_family)
530 .field("salg_type", &self.salg_type)
531 .field("salg_feat", &self.salg_feat)
532 .field("salg_mask", &self.salg_mask)
533 .field("salg_name", &&self.salg_name[..])
534 .finish()
535 }
536 }
537
538 impl ::hash::Hash for sockaddr_alg {
539 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
540 self.salg_family.hash(state);
541 self.salg_type.hash(state);
542 self.salg_feat.hash(state);
543 self.salg_mask.hash(state);
544 self.salg_name.hash(state);
545 }
546 }
547
548 impl af_alg_iv {
549 fn as_slice(&self) -> &[u8] {
550 unsafe {
551 ::core::slice::from_raw_parts(
552 self.iv.as_ptr(),
553 self.ivlen as usize
554 )
555 }
556 }
557 }
558
559 impl PartialEq for af_alg_iv {
560 fn eq(&self, other: &af_alg_iv) -> bool {
561 *self.as_slice() == *other.as_slice()
562 }
563 }
564
565 impl Eq for af_alg_iv {}
566
567 impl ::fmt::Debug for af_alg_iv {
568 fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
569 f.debug_struct("af_alg_iv")
570 .field("iv", &self.as_slice())
571 .finish()
572 }
573 }
574
575 impl ::hash::Hash for af_alg_iv {
576 fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
577 self.as_slice().hash(state);
578 }
579 }
580 }
476ff2be
SL
581}
582
416331ca
XL
583pub const MADV_SOFT_OFFLINE: ::c_int = 101;
584pub const MS_NOUSER: ::c_ulong = 0xffffffff80000000;
585pub const MS_RMT_MASK: ::c_ulong = 0x02800051;
586
8bb4bdeb 587pub const O_TRUNC: ::c_int = 512;
8bb4bdeb 588pub const O_CLOEXEC: ::c_int = 0x80000;
ea8adc8c
XL
589pub const O_PATH: ::c_int = 0o10000000;
590pub const O_NOATIME: ::c_int = 0o1000000;
8bb4bdeb
XL
591
592pub const EBFONT: ::c_int = 59;
593pub const ENOSTR: ::c_int = 60;
594pub const ENODATA: ::c_int = 61;
595pub const ETIME: ::c_int = 62;
596pub const ENOSR: ::c_int = 63;
597pub const ENONET: ::c_int = 64;
598pub const ENOPKG: ::c_int = 65;
599pub const EREMOTE: ::c_int = 66;
600pub const ENOLINK: ::c_int = 67;
601pub const EADV: ::c_int = 68;
602pub const ESRMNT: ::c_int = 69;
603pub const ECOMM: ::c_int = 70;
604pub const EPROTO: ::c_int = 71;
605pub const EDOTDOT: ::c_int = 73;
606
8bb4bdeb 607pub const EPOLL_CLOEXEC: ::c_int = 0x80000;
041b39d2
XL
608pub const EPOLLONESHOT: ::c_int = 0x40000000;
609pub const EPOLLRDHUP: ::c_int = 0x00002000;
610pub const EPOLLWAKEUP: ::c_int = 0x20000000;
8bb4bdeb
XL
611
612pub const EFD_CLOEXEC: ::c_int = 0x80000;
613
476ff2be
SL
614pub const USER_PROCESS: ::c_short = 7;
615
416331ca
XL
616pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08;
617
476ff2be 618pub const BUFSIZ: ::c_uint = 1024;
416331ca 619pub const FILENAME_MAX: ::c_uint = 4096;
476ff2be
SL
620pub const FOPEN_MAX: ::c_uint = 20;
621pub const POSIX_FADV_DONTNEED: ::c_int = 4;
622pub const POSIX_FADV_NOREUSE: ::c_int = 5;
416331ca 623pub const L_tmpnam: ::c_uint = 4096;
476ff2be
SL
624pub const TMP_MAX: ::c_uint = 308915776;
625pub const _PC_LINK_MAX: ::c_int = 1;
626pub const _PC_MAX_CANON: ::c_int = 2;
627pub const _PC_MAX_INPUT: ::c_int = 3;
628pub const _PC_NAME_MAX: ::c_int = 4;
629pub const _PC_PATH_MAX: ::c_int = 5;
630pub const _PC_PIPE_BUF: ::c_int = 6;
041b39d2
XL
631pub const _PC_2_SYMLINKS: ::c_int = 7;
632pub const _PC_ALLOC_SIZE_MIN: ::c_int = 8;
633pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 9;
634pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 10;
635pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 11;
636pub const _PC_REC_XFER_ALIGN: ::c_int = 12;
637pub const _PC_SYMLINK_MAX: ::c_int = 13;
476ff2be
SL
638pub const _PC_CHOWN_RESTRICTED: ::c_int = 14;
639pub const _PC_NO_TRUNC: ::c_int = 15;
640pub const _PC_VDISABLE: ::c_int = 16;
041b39d2
XL
641pub const _PC_ASYNC_IO: ::c_int = 17;
642pub const _PC_PRIO_IO: ::c_int = 18;
643pub const _PC_SYNC_IO: ::c_int = 19;
476ff2be
SL
644
645pub const FIONBIO: ::c_int = 0x5421;
646
647pub const _SC_ARG_MAX: ::c_int = 0;
648pub const _SC_BC_BASE_MAX: ::c_int = 1;
649pub const _SC_BC_DIM_MAX: ::c_int = 2;
650pub const _SC_BC_SCALE_MAX: ::c_int = 3;
651pub const _SC_BC_STRING_MAX: ::c_int = 4;
652pub const _SC_CHILD_MAX: ::c_int = 5;
653pub const _SC_CLK_TCK: ::c_int = 6;
654pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 7;
655pub const _SC_EXPR_NEST_MAX: ::c_int = 8;
656pub const _SC_LINE_MAX: ::c_int = 9;
657pub const _SC_NGROUPS_MAX: ::c_int = 10;
658pub const _SC_OPEN_MAX: ::c_int = 11;
041b39d2 659pub const _SC_PASS_MAX: ::c_int = 12;
476ff2be
SL
660pub const _SC_2_C_BIND: ::c_int = 13;
661pub const _SC_2_C_DEV: ::c_int = 14;
662pub const _SC_2_C_VERSION: ::c_int = 15;
663pub const _SC_2_CHAR_TERM: ::c_int = 16;
664pub const _SC_2_FORT_DEV: ::c_int = 17;
665pub const _SC_2_FORT_RUN: ::c_int = 18;
666pub const _SC_2_LOCALEDEF: ::c_int = 19;
667pub const _SC_2_SW_DEV: ::c_int = 20;
668pub const _SC_2_UPE: ::c_int = 21;
669pub const _SC_2_VERSION: ::c_int = 22;
670pub const _SC_JOB_CONTROL: ::c_int = 23;
671pub const _SC_SAVED_IDS: ::c_int = 24;
672pub const _SC_VERSION: ::c_int = 25;
673pub const _SC_RE_DUP_MAX: ::c_int = 26;
674pub const _SC_STREAM_MAX: ::c_int = 27;
675pub const _SC_TZNAME_MAX: ::c_int = 28;
676pub const _SC_XOPEN_CRYPT: ::c_int = 29;
677pub const _SC_XOPEN_ENH_I18N: ::c_int = 30;
678pub const _SC_XOPEN_SHM: ::c_int = 31;
679pub const _SC_XOPEN_VERSION: ::c_int = 32;
680pub const _SC_XOPEN_XCU_VERSION: ::c_int = 33;
681pub const _SC_XOPEN_REALTIME: ::c_int = 34;
682pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 35;
683pub const _SC_XOPEN_LEGACY: ::c_int = 36;
684pub const _SC_ATEXIT_MAX: ::c_int = 37;
685pub const _SC_IOV_MAX: ::c_int = 38;
686pub const _SC_PAGESIZE: ::c_int = 39;
687pub const _SC_PAGE_SIZE: ::c_int = 40;
688pub const _SC_XOPEN_UNIX: ::c_int = 41;
041b39d2
XL
689pub const _SC_XBS5_ILP32_OFF32: ::c_int = 42;
690pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 43;
691pub const _SC_XBS5_LP64_OFF64: ::c_int = 44;
692pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 45;
693pub const _SC_AIO_LISTIO_MAX: ::c_int = 46;
694pub const _SC_AIO_MAX: ::c_int = 47;
695pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 48;
696pub const _SC_DELAYTIMER_MAX: ::c_int = 49;
697pub const _SC_MQ_OPEN_MAX: ::c_int = 50;
476ff2be 698pub const _SC_MQ_PRIO_MAX: ::c_int = 51;
041b39d2
XL
699pub const _SC_RTSIG_MAX: ::c_int = 52;
700pub const _SC_SEM_NSEMS_MAX: ::c_int = 53;
701pub const _SC_SEM_VALUE_MAX: ::c_int = 54;
702pub const _SC_SIGQUEUE_MAX: ::c_int = 55;
703pub const _SC_TIMER_MAX: ::c_int = 56;
704pub const _SC_ASYNCHRONOUS_IO: ::c_int = 57;
705pub const _SC_FSYNC: ::c_int = 58;
706pub const _SC_MAPPED_FILES: ::c_int = 59;
707pub const _SC_MEMLOCK: ::c_int = 60;
708pub const _SC_MEMLOCK_RANGE: ::c_int = 61;
709pub const _SC_MEMORY_PROTECTION: ::c_int = 62;
710pub const _SC_MESSAGE_PASSING: ::c_int = 63;
711pub const _SC_PRIORITIZED_IO: ::c_int = 64;
712pub const _SC_PRIORITY_SCHEDULING: ::c_int = 65;
713pub const _SC_REALTIME_SIGNALS: ::c_int = 66;
714pub const _SC_SEMAPHORES: ::c_int = 67;
715pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 68;
716pub const _SC_SYNCHRONIZED_IO: ::c_int = 69;
717pub const _SC_TIMERS: ::c_int = 70;
476ff2be
SL
718pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 71;
719pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 72;
720pub const _SC_LOGIN_NAME_MAX: ::c_int = 73;
721pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 74;
722pub const _SC_THREAD_KEYS_MAX: ::c_int = 75;
723pub const _SC_THREAD_STACK_MIN: ::c_int = 76;
724pub const _SC_THREAD_THREADS_MAX: ::c_int = 77;
725pub const _SC_TTY_NAME_MAX: ::c_int = 78;
726pub const _SC_THREADS: ::c_int = 79;
727pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 80;
728pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 81;
729pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 82;
730pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 83;
731pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 84;
732pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 85;
041b39d2 733pub const _SC_NPROCESSORS_CONF: ::c_int = 96;
476ff2be 734pub const _SC_NPROCESSORS_ONLN: ::c_int = 97;
041b39d2
XL
735pub const _SC_PHYS_PAGES: ::c_int = 98;
736pub const _SC_AVPHYS_PAGES: ::c_int = 99;
737pub const _SC_MONOTONIC_CLOCK: ::c_int = 100;
476ff2be 738
8faf50e0
XL
739pub const _SC_2_PBS: ::c_int = 101;
740pub const _SC_2_PBS_ACCOUNTING: ::c_int = 102;
741pub const _SC_2_PBS_CHECKPOINT: ::c_int = 103;
742pub const _SC_2_PBS_LOCATE: ::c_int = 104;
743pub const _SC_2_PBS_MESSAGE: ::c_int = 105;
744pub const _SC_2_PBS_TRACK: ::c_int = 106;
745pub const _SC_ADVISORY_INFO: ::c_int = 107;
746pub const _SC_BARRIERS: ::c_int = 108;
747pub const _SC_CLOCK_SELECTION: ::c_int = 109;
748pub const _SC_CPUTIME: ::c_int = 110;
749pub const _SC_HOST_NAME_MAX: ::c_int = 111;
750pub const _SC_IPV6: ::c_int = 112;
751pub const _SC_RAW_SOCKETS: ::c_int = 113;
752pub const _SC_READER_WRITER_LOCKS: ::c_int = 114;
753pub const _SC_REGEXP: ::c_int = 115;
754pub const _SC_SHELL: ::c_int = 116;
755pub const _SC_SPAWN: ::c_int = 117;
756pub const _SC_SPIN_LOCKS: ::c_int = 118;
757pub const _SC_SPORADIC_SERVER: ::c_int = 119;
758pub const _SC_SS_REPL_MAX: ::c_int = 120;
759pub const _SC_SYMLOOP_MAX: ::c_int = 121;
760pub const _SC_THREAD_CPUTIME: ::c_int = 122;
761pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 123;
762pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 124;
763pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 125;
764pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 126;
765pub const _SC_TIMEOUTS: ::c_int = 127;
766pub const _SC_TRACE: ::c_int = 128;
767pub const _SC_TRACE_EVENT_FILTER: ::c_int = 129;
768pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 130;
769pub const _SC_TRACE_INHERIT: ::c_int = 131;
770pub const _SC_TRACE_LOG: ::c_int = 132;
771pub const _SC_TRACE_NAME_MAX: ::c_int = 133;
772pub const _SC_TRACE_SYS_MAX: ::c_int = 134;
773pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 135;
774pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 136;
775pub const _SC_V7_ILP32_OFF32: ::c_int = 137;
776pub const _SC_V7_ILP32_OFFBIG: ::c_int = 138;
777pub const _SC_V7_LP64_OFF64: ::c_int = 139;
778pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 140;
779pub const _SC_XOPEN_STREAMS: ::c_int = 141;
780pub const _SC_XOPEN_UUCP: ::c_int = 142;
781
476ff2be
SL
782pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0;
783pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1;
784pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2;
785pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL;
786
787pub const FIOCLEX: ::c_int = 0x5451;
416331ca 788pub const FIONCLEX: ::c_int = 0x5450;
476ff2be 789
476ff2be
SL
790pub const SIGCHLD: ::c_int = 17;
791pub const SIGBUS: ::c_int = 7;
792pub const SIGUSR1: ::c_int = 10;
793pub const SIGUSR2: ::c_int = 12;
794pub const SIGCONT: ::c_int = 18;
795pub const SIGSTOP: ::c_int = 19;
796pub const SIGTSTP: ::c_int = 20;
797pub const SIGURG: ::c_int = 23;
798pub const SIGIO: ::c_int = 29;
799pub const SIGSYS: ::c_int = 31;
800pub const SIGSTKFLT: ::c_int = 16;
416331ca
XL
801#[deprecated(
802 since = "0.2.55",
803 note = "Use SIGSYS instead"
804)]
476ff2be
SL
805pub const SIGUNUSED: ::c_int = 31;
806pub const SIGTTIN: ::c_int = 21;
807pub const SIGTTOU: ::c_int = 22;
808pub const SIGXCPU: ::c_int = 24;
809pub const SIGXFSZ: ::c_int = 25;
810pub const SIGVTALRM: ::c_int = 26;
811pub const SIGPROF: ::c_int = 27;
812pub const SIGWINCH: ::c_int = 28;
813pub const SIGPOLL: ::c_int = 29;
814pub const SIGPWR: ::c_int = 30;
815pub const SIG_SETMASK: ::c_int = 2;
816pub const SIG_BLOCK: ::c_int = 0x000000;
817pub const SIG_UNBLOCK: ::c_int = 0x01;
818
819pub const RUSAGE_CHILDREN: ::c_int = -1;
820
821pub const LC_PAPER: ::c_int = 7;
822pub const LC_NAME: ::c_int = 8;
823pub const LC_ADDRESS: ::c_int = 9;
824pub const LC_TELEPHONE: ::c_int = 10;
825pub const LC_MEASUREMENT: ::c_int = 11;
826pub const LC_IDENTIFICATION: ::c_int = 12;
827pub const LC_PAPER_MASK: ::c_int = (1 << LC_PAPER);
828pub const LC_NAME_MASK: ::c_int = (1 << LC_NAME);
829pub const LC_ADDRESS_MASK: ::c_int = (1 << LC_ADDRESS);
830pub const LC_TELEPHONE_MASK: ::c_int = (1 << LC_TELEPHONE);
831pub const LC_MEASUREMENT_MASK: ::c_int = (1 << LC_MEASUREMENT);
832pub const LC_IDENTIFICATION_MASK: ::c_int = (1 << LC_IDENTIFICATION);
833pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK
834 | ::LC_NUMERIC_MASK
835 | ::LC_TIME_MASK
836 | ::LC_COLLATE_MASK
837 | ::LC_MONETARY_MASK
838 | ::LC_MESSAGES_MASK
839 | LC_PAPER_MASK
840 | LC_NAME_MASK
841 | LC_ADDRESS_MASK
842 | LC_TELEPHONE_MASK
843 | LC_MEASUREMENT_MASK
844 | LC_IDENTIFICATION_MASK;
845
846pub const MAP_ANON: ::c_int = 0x0020;
847pub const MAP_ANONYMOUS: ::c_int = 0x0020;
848pub const MAP_GROWSDOWN: ::c_int = 0x0100;
849pub const MAP_DENYWRITE: ::c_int = 0x0800;
850pub const MAP_EXECUTABLE: ::c_int = 0x01000;
851pub const MAP_LOCKED: ::c_int = 0x02000;
852pub const MAP_NORESERVE: ::c_int = 0x04000;
853pub const MAP_POPULATE: ::c_int = 0x08000;
854pub const MAP_NONBLOCK: ::c_int = 0x010000;
855pub const MAP_STACK: ::c_int = 0x020000;
856
857pub const EDEADLK: ::c_int = 35;
858pub const ENAMETOOLONG: ::c_int = 36;
859pub const ENOLCK: ::c_int = 37;
860pub const ENOSYS: ::c_int = 38;
861pub const ENOTEMPTY: ::c_int = 39;
862pub const ELOOP: ::c_int = 40;
863pub const ENOMSG: ::c_int = 42;
864pub const EIDRM: ::c_int = 43;
865pub const ECHRNG: ::c_int = 44;
866pub const EL2NSYNC: ::c_int = 45;
867pub const EL3HLT: ::c_int = 46;
868pub const EL3RST: ::c_int = 47;
869pub const ELNRNG: ::c_int = 48;
870pub const EUNATCH: ::c_int = 49;
871pub const ENOCSI: ::c_int = 50;
872pub const EL2HLT: ::c_int = 51;
873pub const EBADE: ::c_int = 52;
874pub const EBADR: ::c_int = 53;
875pub const EXFULL: ::c_int = 54;
876pub const ENOANO: ::c_int = 55;
877pub const EBADRQC: ::c_int = 56;
878pub const EBADSLT: ::c_int = 57;
879
880pub const EMULTIHOP: ::c_int = 72;
881pub const EBADMSG: ::c_int = 74;
882pub const EOVERFLOW: ::c_int = 75;
883pub const ENOTUNIQ: ::c_int = 76;
884pub const EBADFD: ::c_int = 77;
885pub const EREMCHG: ::c_int = 78;
886pub const ELIBACC: ::c_int = 79;
887pub const ELIBBAD: ::c_int = 80;
888pub const ELIBSCN: ::c_int = 81;
889pub const ELIBMAX: ::c_int = 82;
890pub const ELIBEXEC: ::c_int = 83;
891pub const EILSEQ: ::c_int = 84;
892pub const ERESTART: ::c_int = 85;
893pub const ESTRPIPE: ::c_int = 86;
894pub const EUSERS: ::c_int = 87;
895pub const ENOTSOCK: ::c_int = 88;
896pub const EDESTADDRREQ: ::c_int = 89;
897pub const EMSGSIZE: ::c_int = 90;
898pub const EPROTOTYPE: ::c_int = 91;
899pub const ENOPROTOOPT: ::c_int = 92;
900pub const EPROTONOSUPPORT: ::c_int = 93;
901pub const ESOCKTNOSUPPORT: ::c_int = 94;
902pub const EOPNOTSUPP: ::c_int = 95;
8bb4bdeb 903pub const ENOTSUP: ::c_int = EOPNOTSUPP;
476ff2be
SL
904pub const EPFNOSUPPORT: ::c_int = 96;
905pub const EAFNOSUPPORT: ::c_int = 97;
906pub const EADDRINUSE: ::c_int = 98;
907pub const EADDRNOTAVAIL: ::c_int = 99;
908pub const ENETDOWN: ::c_int = 100;
909pub const ENETUNREACH: ::c_int = 101;
910pub const ENETRESET: ::c_int = 102;
911pub const ECONNABORTED: ::c_int = 103;
912pub const ECONNRESET: ::c_int = 104;
913pub const ENOBUFS: ::c_int = 105;
914pub const EISCONN: ::c_int = 106;
915pub const ENOTCONN: ::c_int = 107;
916pub const ESHUTDOWN: ::c_int = 108;
917pub const ETOOMANYREFS: ::c_int = 109;
918pub const ETIMEDOUT: ::c_int = 110;
919pub const ECONNREFUSED: ::c_int = 111;
920pub const EHOSTDOWN: ::c_int = 112;
921pub const EHOSTUNREACH: ::c_int = 113;
922pub const EALREADY: ::c_int = 114;
923pub const EINPROGRESS: ::c_int = 115;
924pub const ESTALE: ::c_int = 116;
925pub const EUCLEAN: ::c_int = 117;
926pub const ENOTNAM: ::c_int = 118;
927pub const ENAVAIL: ::c_int = 119;
928pub const EISNAM: ::c_int = 120;
929pub const EREMOTEIO: ::c_int = 121;
930pub const EDQUOT: ::c_int = 122;
931pub const ENOMEDIUM: ::c_int = 123;
932pub const EMEDIUMTYPE: ::c_int = 124;
933pub const ECANCELED: ::c_int = 125;
934pub const ENOKEY: ::c_int = 126;
935pub const EKEYEXPIRED: ::c_int = 127;
936pub const EKEYREVOKED: ::c_int = 128;
937pub const EKEYREJECTED: ::c_int = 129;
938pub const EOWNERDEAD: ::c_int = 130;
939pub const ENOTRECOVERABLE: ::c_int = 131;
940
941pub const SOCK_STREAM: ::c_int = 1;
942pub const SOCK_DGRAM: ::c_int = 2;
943pub const SOCK_SEQPACKET: ::c_int = 5;
abe05a73
XL
944pub const SOCK_DCCP: ::c_int = 6;
945pub const SOCK_PACKET: ::c_int = 10;
476ff2be
SL
946
947pub const SOL_SOCKET: ::c_int = 1;
8bb4bdeb
XL
948pub const SOL_SCTP: ::c_int = 132;
949pub const SOL_IPX: ::c_int = 256;
950pub const SOL_AX25: ::c_int = 257;
951pub const SOL_ATALK: ::c_int = 258;
952pub const SOL_NETROM: ::c_int = 259;
953pub const SOL_ROSE: ::c_int = 260;
954
abe05a73
XL
955/* DCCP socket options */
956pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1;
957pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2;
958pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3;
959pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4;
960pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5;
961pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6;
962pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10;
963pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11;
964pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12;
965pub const DCCP_SOCKOPT_CCID: ::c_int = 13;
966pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14;
967pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15;
968pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16;
969pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17;
970pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128;
971pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192;
972
973/// maximum number of services provided on the same listening port
974pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32;
975
476ff2be
SL
976pub const SO_REUSEADDR: ::c_int = 2;
977pub const SO_TYPE: ::c_int = 3;
978pub const SO_ERROR: ::c_int = 4;
979pub const SO_DONTROUTE: ::c_int = 5;
980pub const SO_BROADCAST: ::c_int = 6;
981pub const SO_SNDBUF: ::c_int = 7;
982pub const SO_RCVBUF: ::c_int = 8;
983pub const SO_KEEPALIVE: ::c_int = 9;
984pub const SO_OOBINLINE: ::c_int = 10;
041b39d2 985pub const SO_PRIORITY: ::c_int = 12;
476ff2be 986pub const SO_LINGER: ::c_int = 13;
041b39d2 987pub const SO_BSDCOMPAT: ::c_int = 14;
476ff2be 988pub const SO_REUSEPORT: ::c_int = 15;
041b39d2
XL
989pub const SO_PASSCRED: ::c_int = 16;
990pub const SO_PEERCRED: ::c_int = 17;
476ff2be
SL
991pub const SO_RCVLOWAT: ::c_int = 18;
992pub const SO_SNDLOWAT: ::c_int = 19;
993pub const SO_RCVTIMEO: ::c_int = 20;
994pub const SO_SNDTIMEO: ::c_int = 21;
041b39d2
XL
995pub const SO_BINDTODEVICE: ::c_int = 25;
996pub const SO_TIMESTAMP: ::c_int = 29;
476ff2be 997pub const SO_ACCEPTCONN: ::c_int = 30;
041b39d2 998pub const SO_SNDBUFFORCE: ::c_int = 32;
3b2f2976 999pub const SO_RCVBUFFORCE: ::c_int = 33;
041b39d2
XL
1000pub const SO_MARK: ::c_int = 36;
1001pub const SO_PROTOCOL: ::c_int = 38;
1002pub const SO_DOMAIN: ::c_int = 39;
1003pub const SO_RXQ_OVFL: ::c_int = 40;
1004pub const SO_PEEK_OFF: ::c_int = 42;
1005pub const SO_BUSY_POLL: ::c_int = 46;
476ff2be 1006
0731742a
XL
1007pub const IPTOS_ECN_NOTECT: u8 = 0x00;
1008
476ff2be
SL
1009pub const O_ACCMODE: ::c_int = 3;
1010pub const O_APPEND: ::c_int = 1024;
1011pub const O_CREAT: ::c_int = 64;
1012pub const O_EXCL: ::c_int = 128;
1013pub const O_NOCTTY: ::c_int = 256;
1014pub const O_NONBLOCK: ::c_int = 2048;
1015pub const O_SYNC: ::c_int = 0x101000;
476ff2be
SL
1016pub const O_ASYNC: ::c_int = 0x2000;
1017pub const O_NDELAY: ::c_int = 0x800;
041b39d2 1018pub const O_DSYNC: ::c_int = 4096;
476ff2be
SL
1019
1020pub const NI_MAXHOST: ::size_t = 1025;
1021
1022pub const NCCS: usize = 19;
1023pub const TCSBRKP: ::c_int = 0x5425;
1024pub const TCSANOW: ::c_int = 0;
1025pub const TCSADRAIN: ::c_int = 0x1;
1026pub const TCSAFLUSH: ::c_int = 0x2;
476ff2be
SL
1027pub const VEOF: usize = 4;
1028pub const VEOL: usize = 11;
1029pub const VEOL2: usize = 16;
1030pub const VMIN: usize = 6;
1031pub const IEXTEN: ::tcflag_t = 0x00008000;
1032pub const TOSTOP: ::tcflag_t = 0x00000100;
1033pub const FLUSHO: ::tcflag_t = 0x00001000;
041b39d2 1034pub const EXTPROC: ::tcflag_t = 0o200000;
476ff2be
SL
1035
1036pub const ADFS_SUPER_MAGIC: ::c_long = 0x0000adf5;
1037pub const AFFS_SUPER_MAGIC: ::c_long = 0x0000adff;
1038pub const CODA_SUPER_MAGIC: ::c_long = 0x73757245;
1039pub const CRAMFS_MAGIC: ::c_long = 0x28cd3d45;
1040pub const EFS_SUPER_MAGIC: ::c_long = 0x00414a53;
1041pub const EXT2_SUPER_MAGIC: ::c_long = 0x0000ef53;
1042pub const EXT3_SUPER_MAGIC: ::c_long = 0x0000ef53;
1043pub const EXT4_SUPER_MAGIC: ::c_long = 0x0000ef53;
1044pub const HPFS_SUPER_MAGIC: ::c_long = 0xf995e849;
1045pub const HUGETLBFS_MAGIC: ::c_long = 0x958458f6;
1046pub const ISOFS_SUPER_MAGIC: ::c_long = 0x00009660;
1047pub const JFFS2_SUPER_MAGIC: ::c_long = 0x000072b6;
1048pub const MINIX_SUPER_MAGIC: ::c_long = 0x0000137f;
1049pub const MINIX_SUPER_MAGIC2: ::c_long = 0x0000138f;
1050pub const MINIX2_SUPER_MAGIC: ::c_long = 0x00002468;
1051pub const MINIX2_SUPER_MAGIC2: ::c_long = 0x00002478;
1052pub const MSDOS_SUPER_MAGIC: ::c_long = 0x00004d44;
1053pub const NCP_SUPER_MAGIC: ::c_long = 0x0000564c;
1054pub const NFS_SUPER_MAGIC: ::c_long = 0x00006969;
1055pub const OPENPROM_SUPER_MAGIC: ::c_long = 0x00009fa1;
1056pub const PROC_SUPER_MAGIC: ::c_long = 0x00009fa0;
1057pub const QNX4_SUPER_MAGIC: ::c_long = 0x0000002f;
1058pub const REISERFS_SUPER_MAGIC: ::c_long = 0x52654973;
1059pub const SMB_SUPER_MAGIC: ::c_long = 0x0000517b;
1060pub const TMPFS_MAGIC: ::c_long = 0x01021994;
1061pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2;
1062
476ff2be
SL
1063pub const MAP_HUGETLB: ::c_int = 0x040000;
1064
1065pub const PTRACE_TRACEME: ::c_int = 0;
1066pub const PTRACE_PEEKTEXT: ::c_int = 1;
1067pub const PTRACE_PEEKDATA: ::c_int = 2;
1068pub const PTRACE_PEEKUSER: ::c_int = 3;
1069pub const PTRACE_POKETEXT: ::c_int = 4;
1070pub const PTRACE_POKEDATA: ::c_int = 5;
1071pub const PTRACE_POKEUSER: ::c_int = 6;
1072pub const PTRACE_CONT: ::c_int = 7;
1073pub const PTRACE_KILL: ::c_int = 8;
1074pub const PTRACE_SINGLESTEP: ::c_int = 9;
1075pub const PTRACE_ATTACH: ::c_int = 16;
1076pub const PTRACE_DETACH: ::c_int = 17;
1077pub const PTRACE_SYSCALL: ::c_int = 24;
1078pub const PTRACE_SETOPTIONS: ::c_int = 0x4200;
1079pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201;
1080pub const PTRACE_GETSIGINFO: ::c_int = 0x4202;
1081pub const PTRACE_SETSIGINFO: ::c_int = 0x4203;
476ff2be
SL
1082
1083pub const EFD_NONBLOCK: ::c_int = 0x800;
1084
1085pub const F_GETLK: ::c_int = 5;
1086pub const F_GETOWN: ::c_int = 9;
1087pub const F_SETOWN: ::c_int = 8;
1088pub const F_SETLK: ::c_int = 6;
1089pub const F_SETLKW: ::c_int = 7;
69743fb6
XL
1090pub const F_RDLCK: ::c_int = 0;
1091pub const F_WRLCK: ::c_int = 1;
1092pub const F_UNLCK: ::c_int = 2;
1093
416331ca
XL
1094pub const RLIMIT_CPU: ::c_int = 0;
1095pub const RLIMIT_FSIZE: ::c_int = 1;
1096pub const RLIMIT_DATA: ::c_int = 2;
1097pub const RLIMIT_STACK: ::c_int = 3;
1098pub const RLIMIT_CORE: ::c_int = 4;
1099pub const RLIMIT_LOCKS: ::c_int = 10;
1100pub const RLIMIT_SIGPENDING: ::c_int = 11;
1101pub const RLIMIT_MSGQUEUE: ::c_int = 12;
1102pub const RLIMIT_NICE: ::c_int = 13;
1103pub const RLIMIT_RTPRIO: ::c_int = 14;
1104
476ff2be
SL
1105pub const TCGETS: ::c_int = 0x5401;
1106pub const TCSETS: ::c_int = 0x5402;
1107pub const TCSETSW: ::c_int = 0x5403;
1108pub const TCSETSF: ::c_int = 0x5404;
1109pub const TCGETA: ::c_int = 0x5405;
1110pub const TCSETA: ::c_int = 0x5406;
1111pub const TCSETAW: ::c_int = 0x5407;
1112pub const TCSETAF: ::c_int = 0x5408;
1113pub const TCSBRK: ::c_int = 0x5409;
1114pub const TCXONC: ::c_int = 0x540A;
1115pub const TCFLSH: ::c_int = 0x540B;
1116pub const TIOCGSOFTCAR: ::c_int = 0x5419;
1117pub const TIOCSSOFTCAR: ::c_int = 0x541A;
1118pub const TIOCINQ: ::c_int = 0x541B;
1119pub const TIOCLINUX: ::c_int = 0x541C;
1120pub const TIOCGSERIAL: ::c_int = 0x541E;
1121pub const TIOCEXCL: ::c_int = 0x540C;
1122pub const TIOCNXCL: ::c_int = 0x540D;
1123pub const TIOCSCTTY: ::c_int = 0x540E;
1124pub const TIOCGPGRP: ::c_int = 0x540F;
1125pub const TIOCSPGRP: ::c_int = 0x5410;
1126pub const TIOCOUTQ: ::c_int = 0x5411;
1127pub const TIOCSTI: ::c_int = 0x5412;
1128pub const TIOCGWINSZ: ::c_int = 0x5413;
1129pub const TIOCSWINSZ: ::c_int = 0x5414;
1130pub const TIOCMGET: ::c_int = 0x5415;
1131pub const TIOCMBIS: ::c_int = 0x5416;
1132pub const TIOCMBIC: ::c_int = 0x5417;
1133pub const TIOCMSET: ::c_int = 0x5418;
1134pub const FIONREAD: ::c_int = 0x541B;
1135pub const TIOCCONS: ::c_int = 0x541D;
1136
2c00a5a8
XL
1137pub const ST_RDONLY: ::c_ulong = 1;
1138pub const ST_NOSUID: ::c_ulong = 2;
1139pub const ST_NODEV: ::c_ulong = 4;
1140pub const ST_NOEXEC: ::c_ulong = 8;
1141pub const ST_SYNCHRONOUS: ::c_ulong = 16;
1142pub const ST_MANDLOCK: ::c_ulong = 64;
1143pub const ST_NOATIME: ::c_ulong = 1024;
1144pub const ST_NODIRATIME: ::c_ulong = 2048;
1145pub const ST_RELATIME: ::c_ulong = 4096;
1146
476ff2be 1147pub const RTLD_NOLOAD: ::c_int = 0x4;
476ff2be
SL
1148
1149pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t;
1150
1151pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead;
1152pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793;
1153pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278;
1154pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448;
1155pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216;
1156
1157pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567;
1158pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123;
1159pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF;
1160pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000;
1161pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC;
1162pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4;
1163pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2;
1164pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543;
1165
1166pub const MCL_CURRENT: ::c_int = 0x0001;
1167pub const MCL_FUTURE: ::c_int = 0x0002;
1168
476ff2be 1169pub const CBAUD: ::tcflag_t = 0o0010017;
416331ca
XL
1170pub const TAB1: ::tcflag_t = 0x00000800;
1171pub const TAB2: ::tcflag_t = 0x00001000;
1172pub const TAB3: ::tcflag_t = 0x00001800;
1173pub const CR1: ::tcflag_t = 0x00000200;
1174pub const CR2: ::tcflag_t = 0x00000400;
1175pub const CR3: ::tcflag_t = 0x00000600;
1176pub const FF1: ::tcflag_t = 0x00008000;
1177pub const BS1: ::tcflag_t = 0x00002000;
1178pub const VT1: ::tcflag_t = 0x00004000;
476ff2be
SL
1179pub const VWERASE: usize = 14;
1180pub const VREPRINT: usize = 12;
1181pub const VSUSP: usize = 10;
1182pub const VSTART: usize = 8;
1183pub const VSTOP: usize = 9;
1184pub const VDISCARD: usize = 13;
1185pub const VTIME: usize = 5;
1186pub const IXON: ::tcflag_t = 0x00000400;
1187pub const IXOFF: ::tcflag_t = 0x00001000;
1188pub const ONLCR: ::tcflag_t = 0x4;
1189pub const CSIZE: ::tcflag_t = 0x00000030;
1190pub const CS6: ::tcflag_t = 0x00000010;
1191pub const CS7: ::tcflag_t = 0x00000020;
1192pub const CS8: ::tcflag_t = 0x00000030;
1193pub const CSTOPB: ::tcflag_t = 0x00000040;
1194pub const CREAD: ::tcflag_t = 0x00000080;
1195pub const PARENB: ::tcflag_t = 0x00000100;
1196pub const PARODD: ::tcflag_t = 0x00000200;
1197pub const HUPCL: ::tcflag_t = 0x00000400;
1198pub const CLOCAL: ::tcflag_t = 0x00000800;
1199pub const ECHOKE: ::tcflag_t = 0x00000800;
1200pub const ECHOE: ::tcflag_t = 0x00000010;
1201pub const ECHOK: ::tcflag_t = 0x00000020;
1202pub const ECHONL: ::tcflag_t = 0x00000040;
1203pub const ECHOPRT: ::tcflag_t = 0x00000400;
1204pub const ECHOCTL: ::tcflag_t = 0x00000200;
1205pub const ISIG: ::tcflag_t = 0x00000001;
1206pub const ICANON: ::tcflag_t = 0x00000002;
1207pub const PENDIN: ::tcflag_t = 0x00004000;
1208pub const NOFLSH: ::tcflag_t = 0x00000080;
041b39d2
XL
1209pub const VSWTC: usize = 7;
1210pub const OLCUC: ::tcflag_t = 0o000002;
1211pub const NLDLY: ::tcflag_t = 0o000400;
1212pub const CRDLY: ::tcflag_t = 0o003000;
1213pub const TABDLY: ::tcflag_t = 0o014000;
1214pub const BSDLY: ::tcflag_t = 0o020000;
1215pub const FFDLY: ::tcflag_t = 0o100000;
1216pub const VTDLY: ::tcflag_t = 0o040000;
1217pub const XTABS: ::tcflag_t = 0o014000;
476ff2be 1218
8bb4bdeb
XL
1219pub const B0: ::speed_t = 0o000000;
1220pub const B50: ::speed_t = 0o000001;
1221pub const B75: ::speed_t = 0o000002;
1222pub const B110: ::speed_t = 0o000003;
1223pub const B134: ::speed_t = 0o000004;
1224pub const B150: ::speed_t = 0o000005;
1225pub const B200: ::speed_t = 0o000006;
1226pub const B300: ::speed_t = 0o000007;
1227pub const B600: ::speed_t = 0o000010;
1228pub const B1200: ::speed_t = 0o000011;
1229pub const B1800: ::speed_t = 0o000012;
1230pub const B2400: ::speed_t = 0o000013;
1231pub const B4800: ::speed_t = 0o000014;
1232pub const B9600: ::speed_t = 0o000015;
1233pub const B19200: ::speed_t = 0o000016;
1234pub const B38400: ::speed_t = 0o000017;
1235pub const EXTA: ::speed_t = B19200;
1236pub const EXTB: ::speed_t = B38400;
abe05a73 1237pub const BOTHER: ::speed_t = 0o010000;
8bb4bdeb
XL
1238pub const B57600: ::speed_t = 0o010001;
1239pub const B115200: ::speed_t = 0o010002;
1240pub const B230400: ::speed_t = 0o010003;
1241pub const B460800: ::speed_t = 0o010004;
1242pub const B500000: ::speed_t = 0o010005;
1243pub const B576000: ::speed_t = 0o010006;
1244pub const B921600: ::speed_t = 0o010007;
1245pub const B1000000: ::speed_t = 0o010010;
1246pub const B1152000: ::speed_t = 0o010011;
1247pub const B1500000: ::speed_t = 0o010012;
1248pub const B2000000: ::speed_t = 0o010013;
1249pub const B2500000: ::speed_t = 0o010014;
1250pub const B3000000: ::speed_t = 0o010015;
1251pub const B3500000: ::speed_t = 0o010016;
1252pub const B4000000: ::speed_t = 0o010017;
1253
2c00a5a8
XL
1254pub const EAI_AGAIN: ::c_int = 2;
1255pub const EAI_BADFLAGS: ::c_int = 3;
1256pub const EAI_FAIL: ::c_int = 4;
1257pub const EAI_FAMILY: ::c_int = 5;
1258pub const EAI_MEMORY: ::c_int = 6;
1259pub const EAI_NODATA: ::c_int = 7;
1260pub const EAI_NONAME: ::c_int = 8;
1261pub const EAI_SERVICE: ::c_int = 9;
1262pub const EAI_SOCKTYPE: ::c_int = 10;
476ff2be 1263pub const EAI_SYSTEM: ::c_int = 11;
2c00a5a8 1264pub const EAI_OVERFLOW: ::c_int = 14;
476ff2be
SL
1265
1266pub const NETLINK_ROUTE: ::c_int = 0;
1267pub const NETLINK_UNUSED: ::c_int = 1;
1268pub const NETLINK_USERSOCK: ::c_int = 2;
1269pub const NETLINK_FIREWALL: ::c_int = 3;
1270pub const NETLINK_SOCK_DIAG: ::c_int = 4;
1271pub const NETLINK_NFLOG: ::c_int = 5;
1272pub const NETLINK_XFRM: ::c_int = 6;
1273pub const NETLINK_SELINUX: ::c_int = 7;
1274pub const NETLINK_ISCSI: ::c_int = 8;
1275pub const NETLINK_AUDIT: ::c_int = 9;
1276pub const NETLINK_FIB_LOOKUP: ::c_int = 10;
1277pub const NETLINK_CONNECTOR: ::c_int = 11;
1278pub const NETLINK_NETFILTER: ::c_int = 12;
1279pub const NETLINK_IP6_FW: ::c_int = 13;
1280pub const NETLINK_DNRTMSG: ::c_int = 14;
1281pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15;
1282pub const NETLINK_GENERIC: ::c_int = 16;
1283pub const NETLINK_SCSITRANSPORT: ::c_int = 18;
1284pub const NETLINK_ECRYPTFS: ::c_int = 19;
1285pub const NETLINK_RDMA: ::c_int = 20;
1286pub const NETLINK_CRYPTO: ::c_int = 21;
1287pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG;
1288
1289pub const MAX_LINKS: ::c_int = 32;
1290
1291pub const NLM_F_REQUEST: ::c_int = 1;
1292pub const NLM_F_MULTI: ::c_int = 2;
1293pub const NLM_F_ACK: ::c_int = 4;
1294pub const NLM_F_ECHO: ::c_int = 8;
1295pub const NLM_F_DUMP_INTR: ::c_int = 16;
1296
1297pub const NLM_F_ROOT: ::c_int = 0x100;
1298pub const NLM_F_MATCH: ::c_int = 0x200;
1299pub const NLM_F_ATOMIC: ::c_int = 0x400;
1300pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH;
1301
1302pub const NLM_F_REPLACE: ::c_int = 0x100;
1303pub const NLM_F_EXCL: ::c_int = 0x200;
1304pub const NLM_F_CREATE: ::c_int = 0x400;
1305pub const NLM_F_APPEND: ::c_int = 0x800;
1306
1307pub const NLMSG_NOOP: ::c_int = 0x1;
1308pub const NLMSG_ERROR: ::c_int = 0x2;
1309pub const NLMSG_DONE: ::c_int = 0x3;
1310pub const NLMSG_OVERRUN: ::c_int = 0x4;
1311pub const NLMSG_MIN_TYPE: ::c_int = 0x10;
1312
2c00a5a8
XL
1313pub const GENL_NAMSIZ: ::c_int = 16;
1314
1315pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE;
1316pub const GENL_MAX_ID: ::c_int = 1023;
1317
1318pub const GENL_ADMIN_PERM: ::c_int = 0x01;
1319pub const GENL_CMD_CAP_DO: ::c_int = 0x02;
1320pub const GENL_CMD_CAP_DUMP: ::c_int = 0x04;
1321pub const GENL_CMD_CAP_HASPOL: ::c_int = 0x08;
1322pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10;
1323
1324pub const GENL_ID_CTRL: ::c_int = NLMSG_MIN_TYPE;
1325pub const GENL_ID_VFS_DQUOT: ::c_int = NLMSG_MIN_TYPE + 1;
1326pub const GENL_ID_PMCRAID: ::c_int = NLMSG_MIN_TYPE + 2;
1327
1328pub const CTRL_CMD_UNSPEC: ::c_int = 0;
1329pub const CTRL_CMD_NEWFAMILY: ::c_int = 1;
1330pub const CTRL_CMD_DELFAMILY: ::c_int = 2;
1331pub const CTRL_CMD_GETFAMILY: ::c_int = 3;
1332pub const CTRL_CMD_NEWOPS: ::c_int = 4;
1333pub const CTRL_CMD_DELOPS: ::c_int = 5;
1334pub const CTRL_CMD_GETOPS: ::c_int = 6;
1335pub const CTRL_CMD_NEWMCAST_GRP: ::c_int = 7;
1336pub const CTRL_CMD_DELMCAST_GRP: ::c_int = 8;
1337pub const CTRL_CMD_GETMCAST_GRP: ::c_int = 9;
1338
1339pub const CTRL_ATTR_UNSPEC: ::c_int = 0;
1340pub const CTRL_ATTR_FAMILY_ID: ::c_int = 1;
1341pub const CTRL_ATTR_FAMILY_NAME: ::c_int = 2;
1342pub const CTRL_ATTR_VERSION: ::c_int = 3;
1343pub const CTRL_ATTR_HDRSIZE: ::c_int = 4;
1344pub const CTRL_ATTR_MAXATTR: ::c_int = 5;
1345pub const CTRL_ATTR_OPS: ::c_int = 6;
1346pub const CTRL_ATTR_MCAST_GROUPS: ::c_int = 7;
1347
1348pub const CTRL_ATTR_OP_UNSPEC: ::c_int = 0;
1349pub const CTRL_ATTR_OP_ID: ::c_int = 1;
1350pub const CTRL_ATTR_OP_FLAGS: ::c_int = 2;
1351
1352pub const CTRL_ATTR_MCAST_GRP_UNSPEC: ::c_int = 0;
1353pub const CTRL_ATTR_MCAST_GRP_NAME: ::c_int = 1;
1354pub const CTRL_ATTR_MCAST_GRP_ID: ::c_int = 2;
1355
476ff2be
SL
1356pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1;
1357pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2;
1358pub const NETLINK_PKTINFO: ::c_int = 3;
1359pub const NETLINK_BROADCAST_ERROR: ::c_int = 4;
1360pub const NETLINK_NO_ENOBUFS: ::c_int = 5;
1361pub const NETLINK_RX_RING: ::c_int = 6;
1362pub const NETLINK_TX_RING: ::c_int = 7;
1363
ff7c6d11
XL
1364pub const GRND_NONBLOCK: ::c_uint = 0x0001;
1365pub const GRND_RANDOM: ::c_uint = 0x0002;
1366
2c00a5a8
XL
1367pub const SECCOMP_MODE_DISABLED: ::c_uint = 0;
1368pub const SECCOMP_MODE_STRICT: ::c_uint = 1;
1369pub const SECCOMP_MODE_FILTER: ::c_uint = 2;
1370
476ff2be
SL
1371pub const NLA_F_NESTED: ::c_int = 1 << 15;
1372pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14;
1373pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER);
1374
2c00a5a8
XL
1375pub const NLA_ALIGNTO: ::c_int = 4;
1376
8bb4bdeb 1377pub const SIGEV_THREAD_ID: ::c_int = 4;
476ff2be 1378
041b39d2
XL
1379pub const CIBAUD: ::tcflag_t = 0o02003600000;
1380pub const CBAUDEX: ::tcflag_t = 0o010000;
1381
1382pub const TIOCM_LE: ::c_int = 0x001;
1383pub const TIOCM_DTR: ::c_int = 0x002;
1384pub const TIOCM_RTS: ::c_int = 0x004;
1385pub const TIOCM_ST: ::c_int = 0x008;
1386pub const TIOCM_SR: ::c_int = 0x010;
1387pub const TIOCM_CTS: ::c_int = 0x020;
1388pub const TIOCM_CAR: ::c_int = 0x040;
1389pub const TIOCM_RNG: ::c_int = 0x080;
1390pub const TIOCM_DSR: ::c_int = 0x100;
1391pub const TIOCM_CD: ::c_int = TIOCM_CAR;
1392pub const TIOCM_RI: ::c_int = TIOCM_RNG;
1393
3b2f2976
XL
1394pub const POLLWRNORM: ::c_short = 0x100;
1395pub const POLLWRBAND: ::c_short = 0x200;
1396
1397pub const SFD_CLOEXEC: ::c_int = O_CLOEXEC;
1398pub const SFD_NONBLOCK: ::c_int = O_NONBLOCK;
1399
ea8adc8c
XL
1400pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
1401
1402pub const SO_ORIGINAL_DST: ::c_int = 80;
532ac7d7
XL
1403pub const IP_ORIGDSTADDR : ::c_int = 20;
1404pub const IP_RECVORIGDSTADDR : ::c_int = IP_ORIGDSTADDR;
1405pub const IPV6_ORIGDSTADDR : ::c_int = 74;
1406pub const IPV6_RECVORIGDSTADDR : ::c_int = IPV6_ORIGDSTADDR;
1407pub const IPV6_FLOWINFO: ::c_int = 11;
1408pub const IPV6_FLOWLABEL_MGR: ::c_int = 32;
1409pub const IPV6_FLOWINFO_SEND: ::c_int = 33;
1410pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff;
1411pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000;
ea8adc8c
XL
1412pub const IUTF8: ::tcflag_t = 0x00004000;
1413pub const CMSPAR: ::tcflag_t = 0o10000000000;
1414pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY;
1415
ff7c6d11
XL
1416pub const MFD_CLOEXEC: ::c_uint = 0x0001;
1417pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002;
0731742a 1418pub const MFD_HUGETLB: ::c_uint = 0x0004;
ff7c6d11 1419
2c00a5a8
XL
1420// linux/netfilter.h
1421pub const NF_DROP: ::c_int = 0;
1422pub const NF_ACCEPT: ::c_int = 1;
1423pub const NF_STOLEN: ::c_int = 2;
1424pub const NF_QUEUE: ::c_int = 3;
1425pub const NF_REPEAT: ::c_int = 4;
1426pub const NF_STOP: ::c_int = 5;
1427pub const NF_MAX_VERDICT: ::c_int = NF_STOP;
1428
1429pub const NF_VERDICT_MASK: ::c_int = 0x000000ff;
1430pub const NF_VERDICT_FLAG_QUEUE_BYPASS: ::c_int = 0x00008000;
1431
1432pub const NF_VERDICT_QMASK: ::c_int = 0xffff0000;
1433pub const NF_VERDICT_QBITS: ::c_int = 16;
1434
1435pub const NF_VERDICT_BITS: ::c_int = 16;
1436
1437pub const NF_INET_PRE_ROUTING: ::c_int = 0;
1438pub const NF_INET_LOCAL_IN: ::c_int = 1;
1439pub const NF_INET_FORWARD: ::c_int = 2;
1440pub const NF_INET_LOCAL_OUT: ::c_int = 3;
1441pub const NF_INET_POST_ROUTING: ::c_int = 4;
1442pub const NF_INET_NUMHOOKS: ::c_int = 5;
1443
1444pub const NF_NETDEV_INGRESS: ::c_int = 0;
1445pub const NF_NETDEV_NUMHOOKS: ::c_int = 1;
1446
1447pub const NFPROTO_UNSPEC: ::c_int = 0;
1448pub const NFPROTO_INET: ::c_int = 1;
1449pub const NFPROTO_IPV4: ::c_int = 2;
1450pub const NFPROTO_ARP: ::c_int = 3;
1451pub const NFPROTO_NETDEV: ::c_int = 5;
1452pub const NFPROTO_BRIDGE: ::c_int = 7;
1453pub const NFPROTO_IPV6: ::c_int = 10;
1454pub const NFPROTO_DECNET: ::c_int = 12;
1455pub const NFPROTO_NUMPROTO: ::c_int = 13;
1456
1457// linux/netfilter_ipv4.h
1458pub const NF_IP_PRE_ROUTING: ::c_int = 0;
1459pub const NF_IP_LOCAL_IN: ::c_int = 1;
1460pub const NF_IP_FORWARD: ::c_int = 2;
1461pub const NF_IP_LOCAL_OUT: ::c_int = 3;
1462pub const NF_IP_POST_ROUTING: ::c_int = 4;
1463pub const NF_IP_NUMHOOKS: ::c_int = 5;
1464
1465pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN;
1466pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400;
1467pub const NF_IP_PRI_RAW: ::c_int = -300;
1468pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225;
1469pub const NF_IP_PRI_CONNTRACK: ::c_int = -200;
1470pub const NF_IP_PRI_MANGLE: ::c_int = -150;
1471pub const NF_IP_PRI_NAT_DST: ::c_int = -100;
1472pub const NF_IP_PRI_FILTER: ::c_int = 0;
1473pub const NF_IP_PRI_SECURITY: ::c_int = 50;
1474pub const NF_IP_PRI_NAT_SRC: ::c_int = 100;
1475pub const NF_IP_PRI_SELINUX_LAST: ::c_int = 225;
1476pub const NF_IP_PRI_CONNTRACK_HELPER: ::c_int = 300;
1477pub const NF_IP_PRI_CONNTRACK_CONFIRM: ::c_int = ::INT_MAX;
1478pub const NF_IP_PRI_LAST: ::c_int = ::INT_MAX;
1479
1480// linux/netfilter_ipv6.h
1481pub const NF_IP6_PRE_ROUTING: ::c_int = 0;
1482pub const NF_IP6_LOCAL_IN: ::c_int = 1;
1483pub const NF_IP6_FORWARD: ::c_int = 2;
1484pub const NF_IP6_LOCAL_OUT: ::c_int = 3;
1485pub const NF_IP6_POST_ROUTING: ::c_int = 4;
1486pub const NF_IP6_NUMHOOKS: ::c_int = 5;
1487
1488pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN;
1489pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400;
1490pub const NF_IP6_PRI_RAW: ::c_int = -300;
1491pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225;
1492pub const NF_IP6_PRI_CONNTRACK: ::c_int = -200;
1493pub const NF_IP6_PRI_MANGLE: ::c_int = -150;
1494pub const NF_IP6_PRI_NAT_DST: ::c_int = -100;
1495pub const NF_IP6_PRI_FILTER: ::c_int = 0;
1496pub const NF_IP6_PRI_SECURITY: ::c_int = 50;
1497pub const NF_IP6_PRI_NAT_SRC: ::c_int = 100;
1498pub const NF_IP6_PRI_SELINUX_LAST: ::c_int = 225;
1499pub const NF_IP6_PRI_CONNTRACK_HELPER: ::c_int = 300;
1500pub const NF_IP6_PRI_LAST: ::c_int = ::INT_MAX;
1501
1502// linux/netfilter/nf_tables.h
416331ca
XL
1503pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256;
1504pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256;
1505pub const NFT_SET_MAXNAMELEN: ::c_int = 256;
1506pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256;
2c00a5a8
XL
1507pub const NFT_USERDATA_MAXLEN: ::c_int = 256;
1508
1509pub const NFT_REG_VERDICT: ::c_int = 0;
1510pub const NFT_REG_1: ::c_int = 1;
1511pub const NFT_REG_2: ::c_int = 2;
1512pub const NFT_REG_3: ::c_int = 3;
1513pub const NFT_REG_4: ::c_int = 4;
1514pub const __NFT_REG_MAX: ::c_int = 5;
1515pub const NFT_REG32_00: ::c_int = 8;
1516pub const NFT_REG32_01: ::c_int = 9;
1517pub const NFT_REG32_02: ::c_int = 10;
1518pub const NFT_REG32_03: ::c_int = 11;
1519pub const NFT_REG32_04: ::c_int = 12;
1520pub const NFT_REG32_05: ::c_int = 13;
1521pub const NFT_REG32_06: ::c_int = 14;
1522pub const NFT_REG32_07: ::c_int = 15;
1523pub const NFT_REG32_08: ::c_int = 16;
1524pub const NFT_REG32_09: ::c_int = 17;
1525pub const NFT_REG32_10: ::c_int = 18;
1526pub const NFT_REG32_11: ::c_int = 19;
1527pub const NFT_REG32_12: ::c_int = 20;
1528pub const NFT_REG32_13: ::c_int = 21;
1529pub const NFT_REG32_14: ::c_int = 22;
1530pub const NFT_REG32_15: ::c_int = 23;
1531
1532pub const NFT_REG_SIZE: ::c_int = 16;
1533pub const NFT_REG32_SIZE: ::c_int = 4;
1534
1535pub const NFT_CONTINUE: ::c_int = -1;
1536pub const NFT_BREAK: ::c_int = -2;
1537pub const NFT_JUMP: ::c_int = -3;
1538pub const NFT_GOTO: ::c_int = -4;
1539pub const NFT_RETURN: ::c_int = -5;
1540
1541pub const NFT_MSG_NEWTABLE: ::c_int = 0;
1542pub const NFT_MSG_GETTABLE: ::c_int = 1;
1543pub const NFT_MSG_DELTABLE: ::c_int = 2;
1544pub const NFT_MSG_NEWCHAIN: ::c_int = 3;
1545pub const NFT_MSG_GETCHAIN: ::c_int = 4;
1546pub const NFT_MSG_DELCHAIN: ::c_int = 5;
1547pub const NFT_MSG_NEWRULE: ::c_int = 6;
1548pub const NFT_MSG_GETRULE: ::c_int = 7;
1549pub const NFT_MSG_DELRULE: ::c_int = 8;
1550pub const NFT_MSG_NEWSET: ::c_int = 9;
1551pub const NFT_MSG_GETSET: ::c_int = 10;
1552pub const NFT_MSG_DELSET: ::c_int = 11;
1553pub const NFT_MSG_NEWSETELEM: ::c_int = 12;
1554pub const NFT_MSG_GETSETELEM: ::c_int = 13;
1555pub const NFT_MSG_DELSETELEM: ::c_int = 14;
1556pub const NFT_MSG_NEWGEN: ::c_int = 15;
1557pub const NFT_MSG_GETGEN: ::c_int = 16;
1558pub const NFT_MSG_TRACE: ::c_int = 17;
1559pub const NFT_MSG_NEWOBJ: ::c_int = 18;
1560pub const NFT_MSG_GETOBJ: ::c_int = 19;
1561pub const NFT_MSG_DELOBJ: ::c_int = 20;
1562pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21;
416331ca 1563pub const NFT_MSG_MAX: ::c_int = 25;
2c00a5a8
XL
1564
1565pub const NFT_SET_ANONYMOUS: ::c_int = 0x1;
1566pub const NFT_SET_CONSTANT: ::c_int = 0x2;
1567pub const NFT_SET_INTERVAL: ::c_int = 0x4;
1568pub const NFT_SET_MAP: ::c_int = 0x8;
1569pub const NFT_SET_TIMEOUT: ::c_int = 0x10;
1570pub const NFT_SET_EVAL: ::c_int = 0x20;
1571
1572pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0;
1573pub const NFT_SET_POL_MEMORY: ::c_int = 1;
1574
1575pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1;
1576
1577pub const NFT_DATA_VALUE: ::c_uint = 0;
1578pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00;
1579
1580pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00;
1581
1582pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64;
1583
1584pub const NFT_BYTEORDER_NTOH: ::c_int = 0;
1585pub const NFT_BYTEORDER_HTON: ::c_int = 1;
1586
1587pub const NFT_CMP_EQ: ::c_int = 0;
1588pub const NFT_CMP_NEQ: ::c_int = 1;
1589pub const NFT_CMP_LT: ::c_int = 2;
1590pub const NFT_CMP_LTE: ::c_int = 3;
1591pub const NFT_CMP_GT: ::c_int = 4;
1592pub const NFT_CMP_GTE: ::c_int = 5;
1593
1594pub const NFT_RANGE_EQ: ::c_int = 0;
1595pub const NFT_RANGE_NEQ: ::c_int = 1;
1596
1597pub const NFT_LOOKUP_F_INV: ::c_int = (1 << 0);
1598
1599pub const NFT_DYNSET_OP_ADD: ::c_int = 0;
1600pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1;
1601
1602pub const NFT_DYNSET_F_INV: ::c_int = (1 << 0);
1603
1604pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0;
1605pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1;
1606pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2;
1607
1608pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0;
1609pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1;
1610
1611pub const NFT_META_LEN: ::c_int = 0;
1612pub const NFT_META_PROTOCOL: ::c_int = 1;
1613pub const NFT_META_PRIORITY: ::c_int = 2;
1614pub const NFT_META_MARK: ::c_int = 3;
1615pub const NFT_META_IIF: ::c_int = 4;
1616pub const NFT_META_OIF: ::c_int = 5;
1617pub const NFT_META_IIFNAME: ::c_int = 6;
1618pub const NFT_META_OIFNAME: ::c_int = 7;
1619pub const NFT_META_IIFTYPE: ::c_int = 8;
1620pub const NFT_META_OIFTYPE: ::c_int = 9;
1621pub const NFT_META_SKUID: ::c_int = 10;
1622pub const NFT_META_SKGID: ::c_int = 11;
1623pub const NFT_META_NFTRACE: ::c_int = 12;
1624pub const NFT_META_RTCLASSID: ::c_int = 13;
1625pub const NFT_META_SECMARK: ::c_int = 14;
1626pub const NFT_META_NFPROTO: ::c_int = 15;
1627pub const NFT_META_L4PROTO: ::c_int = 16;
1628pub const NFT_META_BRI_IIFNAME: ::c_int = 17;
1629pub const NFT_META_BRI_OIFNAME: ::c_int = 18;
1630pub const NFT_META_PKTTYPE: ::c_int = 19;
1631pub const NFT_META_CPU: ::c_int = 20;
1632pub const NFT_META_IIFGROUP: ::c_int = 21;
1633pub const NFT_META_OIFGROUP: ::c_int = 22;
1634pub const NFT_META_CGROUP: ::c_int = 23;
1635pub const NFT_META_PRANDOM: ::c_int = 24;
1636
1637pub const NFT_CT_STATE: ::c_int = 0;
1638pub const NFT_CT_DIRECTION: ::c_int = 1;
1639pub const NFT_CT_STATUS: ::c_int = 2;
1640pub const NFT_CT_MARK: ::c_int = 3;
1641pub const NFT_CT_SECMARK: ::c_int = 4;
1642pub const NFT_CT_EXPIRATION: ::c_int = 5;
1643pub const NFT_CT_HELPER: ::c_int = 6;
1644pub const NFT_CT_L3PROTOCOL: ::c_int = 7;
1645pub const NFT_CT_SRC: ::c_int = 8;
1646pub const NFT_CT_DST: ::c_int = 9;
1647pub const NFT_CT_PROTOCOL: ::c_int = 10;
1648pub const NFT_CT_PROTO_SRC: ::c_int = 11;
1649pub const NFT_CT_PROTO_DST: ::c_int = 12;
1650pub const NFT_CT_LABELS: ::c_int = 13;
1651pub const NFT_CT_PKTS: ::c_int = 14;
1652pub const NFT_CT_BYTES: ::c_int = 15;
1653
1654pub const NFT_LIMIT_PKTS: ::c_int = 0;
1655pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1;
1656
1657pub const NFT_LIMIT_F_INV: ::c_int = (1 << 0);
1658
1659pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01;
1660pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02;
1661pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03;
1662
1663pub const NFT_QUOTA_F_INV: ::c_int = (1 << 0);
1664
1665pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0;
1666pub const NFT_REJECT_TCP_RST: ::c_int = 1;
1667pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2;
1668
1669pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0;
1670pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1;
1671pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2;
1672pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3;
1673
1674pub const NFT_NAT_SNAT: ::c_int = 0;
1675pub const NFT_NAT_DNAT: ::c_int = 1;
1676
1677pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0;
1678pub const NFT_TRACETYPE_POLICY: ::c_int = 1;
1679pub const NFT_TRACETYPE_RETURN: ::c_int = 2;
1680pub const NFT_TRACETYPE_RULE: ::c_int = 3;
1681
1682pub const NFT_NG_INCREMENTAL: ::c_int = 0;
1683pub const NFT_NG_RANDOM: ::c_int = 1;
1684
1685pub const IFF_TUN: ::c_int = 0x0001;
1686pub const IFF_TAP: ::c_int = 0x0002;
1687pub const IFF_NO_PI: ::c_int = 0x1000;
1688
1689// start android/platform/bionic/libc/kernel/uapi/linux/if_ether.h
1690// from https://android.googlesource.com/
1691// platform/bionic/+/master/libc/kernel/uapi/linux/if_ether.h
1692pub const ETH_ALEN: ::c_int = 6;
1693pub const ETH_HLEN: ::c_int = 14;
1694pub const ETH_ZLEN: ::c_int = 60;
1695pub const ETH_DATA_LEN: ::c_int = 1500;
1696pub const ETH_FRAME_LEN: ::c_int = 1514;
1697pub const ETH_FCS_LEN: ::c_int = 4;
1698pub const ETH_MIN_MTU: ::c_int = 68;
1699pub const ETH_MAX_MTU: ::c_int = 0xFFFF;
1700pub const ETH_P_LOOP: ::c_int = 0x0060;
1701pub const ETH_P_PUP: ::c_int = 0x0200;
1702pub const ETH_P_PUPAT: ::c_int = 0x0201;
1703pub const ETH_P_TSN: ::c_int = 0x22F0;
1704pub const ETH_P_IP: ::c_int = 0x0800;
1705pub const ETH_P_X25: ::c_int = 0x0805;
1706pub const ETH_P_ARP: ::c_int = 0x0806;
1707pub const ETH_P_BPQ: ::c_int = 0x08FF;
1708pub const ETH_P_IEEEPUP: ::c_int = 0x0a00;
1709pub const ETH_P_IEEEPUPAT: ::c_int = 0x0a01;
1710pub const ETH_P_BATMAN: ::c_int = 0x4305;
1711pub const ETH_P_DEC: ::c_int = 0x6000;
1712pub const ETH_P_DNA_DL: ::c_int = 0x6001;
1713pub const ETH_P_DNA_RC: ::c_int = 0x6002;
1714pub const ETH_P_DNA_RT: ::c_int = 0x6003;
1715pub const ETH_P_LAT: ::c_int = 0x6004;
1716pub const ETH_P_DIAG: ::c_int = 0x6005;
1717pub const ETH_P_CUST: ::c_int = 0x6006;
1718pub const ETH_P_SCA: ::c_int = 0x6007;
1719pub const ETH_P_TEB: ::c_int = 0x6558;
1720pub const ETH_P_RARP: ::c_int = 0x8035;
1721pub const ETH_P_ATALK: ::c_int = 0x809B;
1722pub const ETH_P_AARP: ::c_int = 0x80F3;
1723pub const ETH_P_8021Q: ::c_int = 0x8100;
1724/* see rust-lang/libc#924 pub const ETH_P_ERSPAN: ::c_int = 0x88BE;*/
1725pub const ETH_P_IPX: ::c_int = 0x8137;
1726pub const ETH_P_IPV6: ::c_int = 0x86DD;
1727pub const ETH_P_PAUSE: ::c_int = 0x8808;
1728pub const ETH_P_SLOW: ::c_int = 0x8809;
1729pub const ETH_P_WCCP: ::c_int = 0x883E;
1730pub const ETH_P_MPLS_UC: ::c_int = 0x8847;
1731pub const ETH_P_MPLS_MC: ::c_int = 0x8848;
1732pub const ETH_P_ATMMPOA: ::c_int = 0x884c;
1733pub const ETH_P_PPP_DISC: ::c_int = 0x8863;
1734pub const ETH_P_PPP_SES: ::c_int = 0x8864;
1735pub const ETH_P_LINK_CTL: ::c_int = 0x886c;
1736pub const ETH_P_ATMFATE: ::c_int = 0x8884;
1737pub const ETH_P_PAE: ::c_int = 0x888E;
1738pub const ETH_P_AOE: ::c_int = 0x88A2;
1739pub const ETH_P_8021AD: ::c_int = 0x88A8;
1740pub const ETH_P_802_EX1: ::c_int = 0x88B5;
1741pub const ETH_P_TIPC: ::c_int = 0x88CA;
1742pub const ETH_P_MACSEC: ::c_int = 0x88E5;
1743pub const ETH_P_8021AH: ::c_int = 0x88E7;
1744pub const ETH_P_MVRP: ::c_int = 0x88F5;
1745pub const ETH_P_1588: ::c_int = 0x88F7;
1746pub const ETH_P_NCSI: ::c_int = 0x88F8;
1747pub const ETH_P_PRP: ::c_int = 0x88FB;
1748pub const ETH_P_FCOE: ::c_int = 0x8906;
1749/* see rust-lang/libc#924 pub const ETH_P_IBOE: ::c_int = 0x8915;*/
1750pub const ETH_P_TDLS: ::c_int = 0x890D;
1751pub const ETH_P_FIP: ::c_int = 0x8914;
1752pub const ETH_P_80221: ::c_int = 0x8917;
1753pub const ETH_P_HSR: ::c_int = 0x892F;
1754/* see rust-lang/libc#924 pub const ETH_P_NSH: ::c_int = 0x894F;*/
1755pub const ETH_P_LOOPBACK: ::c_int = 0x9000;
1756pub const ETH_P_QINQ1: ::c_int = 0x9100;
1757pub const ETH_P_QINQ2: ::c_int = 0x9200;
1758pub const ETH_P_QINQ3: ::c_int = 0x9300;
1759pub const ETH_P_EDSA: ::c_int = 0xDADA;
1760/* see rust-lang/libc#924 pub const ETH_P_IFE: ::c_int = 0xED3E;*/
1761pub const ETH_P_AF_IUCV: ::c_int = 0xFBFB;
1762pub const ETH_P_802_3_MIN: ::c_int = 0x0600;
1763pub const ETH_P_802_3: ::c_int = 0x0001;
1764pub const ETH_P_AX25: ::c_int = 0x0002;
1765pub const ETH_P_ALL: ::c_int = 0x0003;
1766pub const ETH_P_802_2: ::c_int = 0x0004;
1767pub const ETH_P_SNAP: ::c_int = 0x0005;
1768pub const ETH_P_DDCMP: ::c_int = 0x0006;
1769pub const ETH_P_WAN_PPP: ::c_int = 0x0007;
1770pub const ETH_P_PPP_MP: ::c_int = 0x0008;
1771pub const ETH_P_LOCALTALK: ::c_int = 0x0009;
1772pub const ETH_P_CAN: ::c_int = 0x000C;
1773pub const ETH_P_CANFD: ::c_int = 0x000D;
1774pub const ETH_P_PPPTALK: ::c_int = 0x0010;
1775pub const ETH_P_TR_802_2: ::c_int = 0x0011;
1776pub const ETH_P_MOBITEX: ::c_int = 0x0015;
1777pub const ETH_P_CONTROL: ::c_int = 0x0016;
1778pub const ETH_P_IRDA: ::c_int = 0x0017;
1779pub const ETH_P_ECONET: ::c_int = 0x0018;
1780pub const ETH_P_HDLC: ::c_int = 0x0019;
1781pub const ETH_P_ARCNET: ::c_int = 0x001A;
1782pub const ETH_P_DSA: ::c_int = 0x001B;
1783pub const ETH_P_TRAILER: ::c_int = 0x001C;
1784pub const ETH_P_PHONET: ::c_int = 0x00F5;
1785pub const ETH_P_IEEE802154: ::c_int = 0x00F6;
1786pub const ETH_P_CAIF: ::c_int = 0x00F7;
1787pub const ETH_P_XDSA: ::c_int = 0x00F8;
1788/* see rust-lang/libc#924 pub const ETH_P_MAP: ::c_int = 0x00F9;*/
1789// end android/platform/bionic/libc/kernel/uapi/linux/if_ether.h
1790
8faf50e0
XL
1791pub const SIOCADDRT: ::c_ulong = 0x0000890B;
1792pub const SIOCDELRT: ::c_ulong = 0x0000890C;
1793pub const SIOCGIFNAME: ::c_ulong = 0x00008910;
1794pub const SIOCSIFLINK: ::c_ulong = 0x00008911;
1795pub const SIOCGIFCONF: ::c_ulong = 0x00008912;
1796pub const SIOCGIFFLAGS: ::c_ulong = 0x00008913;
1797pub const SIOCSIFFLAGS: ::c_ulong = 0x00008914;
1798pub const SIOCGIFADDR: ::c_ulong = 0x00008915;
1799pub const SIOCSIFADDR: ::c_ulong = 0x00008916;
1800pub const SIOCGIFDSTADDR: ::c_ulong = 0x00008917;
1801pub const SIOCSIFDSTADDR: ::c_ulong = 0x00008918;
1802pub const SIOCGIFBRDADDR: ::c_ulong = 0x00008919;
1803pub const SIOCSIFBRDADDR: ::c_ulong = 0x0000891A;
1804pub const SIOCGIFNETMASK: ::c_ulong = 0x0000891B;
1805pub const SIOCSIFNETMASK: ::c_ulong = 0x0000891C;
1806pub const SIOCGIFMETRIC: ::c_ulong = 0x0000891D;
1807pub const SIOCSIFMETRIC: ::c_ulong = 0x0000891E;
1808pub const SIOCGIFMEM: ::c_ulong = 0x0000891F;
1809pub const SIOCSIFMEM: ::c_ulong = 0x00008920;
1810pub const SIOCGIFMTU: ::c_ulong = 0x00008921;
1811pub const SIOCSIFMTU: ::c_ulong = 0x00008922;
1812pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924;
1813pub const SIOCGIFENCAP: ::c_ulong = 0x00008925;
1814pub const SIOCSIFENCAP: ::c_ulong = 0x00008926;
1815pub const SIOCGIFHWADDR: ::c_ulong = 0x00008927;
1816pub const SIOCGIFSLAVE: ::c_ulong = 0x00008929;
1817pub const SIOCSIFSLAVE: ::c_ulong = 0x00008930;
1818pub const SIOCADDMULTI: ::c_ulong = 0x00008931;
1819pub const SIOCDELMULTI: ::c_ulong = 0x00008932;
1820pub const SIOCDARP: ::c_ulong = 0x00008953;
1821pub const SIOCGARP: ::c_ulong = 0x00008954;
1822pub const SIOCSARP: ::c_ulong = 0x00008955;
1823pub const SIOCDRARP: ::c_ulong = 0x00008960;
1824pub const SIOCGRARP: ::c_ulong = 0x00008961;
1825pub const SIOCSRARP: ::c_ulong = 0x00008962;
1826pub const SIOCGIFMAP: ::c_ulong = 0x00008970;
1827pub const SIOCSIFMAP: ::c_ulong = 0x00008971;
1828
b7449926
XL
1829// linux/module.h
1830pub const MODULE_INIT_IGNORE_MODVERSIONS: ::c_uint = 0x0001;
1831pub const MODULE_INIT_IGNORE_VERMAGIC: ::c_uint = 0x0002;
1832
416331ca
XL
1833#[deprecated(
1834 since = "0.2.55",
1835 note = "ENOATTR is not available on Android; use ENODATA instead"
1836)]
b7449926
XL
1837pub const ENOATTR: ::c_int = ::ENODATA;
1838
532ac7d7
XL
1839// linux/if_alg.h
1840pub const ALG_SET_KEY: ::c_int = 1;
1841pub const ALG_SET_IV: ::c_int = 2;
1842pub const ALG_SET_OP: ::c_int = 3;
1843pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4;
1844pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5;
1845
1846pub const ALG_OP_DECRYPT: ::c_int = 0;
1847pub const ALG_OP_ENCRYPT: ::c_int = 1;
1848
1849// uapi/linux/inotify.h
416331ca
XL
1850pub const IN_ACCESS: u32 = 0x0000_0001;
1851pub const IN_MODIFY: u32 = 0x0000_0002;
1852pub const IN_ATTRIB: u32 = 0x0000_0004;
1853pub const IN_CLOSE_WRITE: u32 = 0x0000_0008;
1854pub const IN_CLOSE_NOWRITE: u32 = 0x0000_0010;
1855pub const IN_CLOSE: u32 = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE);
1856pub const IN_OPEN: u32 = 0x0000_0020;
1857pub const IN_MOVED_FROM: u32 = 0x0000_0040;
1858pub const IN_MOVED_TO: u32 = 0x0000_0080;
1859pub const IN_MOVE: u32 = (IN_MOVED_FROM | IN_MOVED_TO);
1860pub const IN_CREATE: u32 = 0x0000_0100;
1861pub const IN_DELETE: u32 = 0x0000_0200;
1862pub const IN_DELETE_SELF: u32 = 0x0000_0400;
1863pub const IN_MOVE_SELF: u32 = 0x0000_0800;
1864pub const IN_UNMOUNT: u32 = 0x0000_2000;
1865pub const IN_Q_OVERFLOW: u32 = 0x0000_4000;
1866pub const IN_IGNORED: u32 = 0x0000_8000;
1867pub const IN_ONLYDIR: u32 = 0x0100_0000;
1868pub const IN_DONT_FOLLOW: u32 = 0x0200_0000;
1869// pub const IN_EXCL_UNLINK: u32 = 0x0400_0000;
1870
1871// pub const IN_MASK_CREATE: u32 = 0x1000_0000;
1872// pub const IN_MASK_ADD: u32 = 0x2000_0000;
1873pub const IN_ISDIR: u32 = 0x4000_0000;
1874pub const IN_ONESHOT: u32 = 0x8000_0000;
1875
1876pub const IN_ALL_EVENTS: u32 = (
532ac7d7
XL
1877 IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE |
1878 IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM |
1879 IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF |
1880 IN_MOVE_SELF
1881);
1882
1883pub const IN_CLOEXEC: ::c_int = O_CLOEXEC;
1884pub const IN_NONBLOCK: ::c_int = O_NONBLOCK;
1885
416331ca
XL
1886pub const FUTEX_WAIT: ::c_int = 0;
1887pub const FUTEX_WAKE: ::c_int = 1;
1888pub const FUTEX_FD: ::c_int = 2;
1889pub const FUTEX_REQUEUE: ::c_int = 3;
1890pub const FUTEX_CMP_REQUEUE: ::c_int = 4;
1891pub const FUTEX_WAKE_OP: ::c_int = 5;
1892pub const FUTEX_LOCK_PI: ::c_int = 6;
1893pub const FUTEX_UNLOCK_PI: ::c_int = 7;
1894pub const FUTEX_TRYLOCK_PI: ::c_int = 8;
1895pub const FUTEX_WAIT_BITSET: ::c_int = 9;
1896pub const FUTEX_WAKE_BITSET: ::c_int = 10;
1897pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11;
1898pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12;
1899
1900pub const FUTEX_PRIVATE_FLAG: ::c_int = 128;
1901pub const FUTEX_CLOCK_REALTIME: ::c_int = 256;
1902pub const FUTEX_CMD_MASK: ::c_int =
1903 !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME);
1904
8bb4bdeb 1905f! {
532ac7d7
XL
1906 pub fn CMSG_NXTHDR(mhdr: *const msghdr,
1907 cmsg: *const cmsghdr) -> *mut cmsghdr {
1908 let next = (cmsg as usize
1909 + super::CMSG_ALIGN((*cmsg).cmsg_len as usize))
1910 as *mut cmsghdr;
1911 let max = (*mhdr).msg_control as usize
1912 + (*mhdr).msg_controllen as usize;
1913 if (next.offset(1)) as usize > max {
1914 0 as *mut cmsghdr
1915 } else {
1916 next as *mut cmsghdr
1917 }
1918 }
1919
476ff2be
SL
1920 pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () {
1921 for slot in cpuset.__bits.iter_mut() {
1922 *slot = 0;
1923 }
1924 }
1925
1926 pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () {
532ac7d7 1927 let size_in___bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]);
476ff2be
SL
1928 let (idx, offset) = (cpu / size_in___bits, cpu % size_in___bits);
1929 cpuset.__bits[idx] |= 1 << offset;
1930 ()
1931 }
1932
1933 pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () {
532ac7d7 1934 let size_in___bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]);
476ff2be
SL
1935 let (idx, offset) = (cpu / size_in___bits, cpu % size_in___bits);
1936 cpuset.__bits[idx] &= !(1 << offset);
1937 ()
1938 }
1939
1940 pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool {
532ac7d7 1941 let size_in___bits = 8 * ::mem::size_of_val(&cpuset.__bits[0]);
476ff2be
SL
1942 let (idx, offset) = (cpu / size_in___bits, cpu % size_in___bits);
1943 0 != (cpuset.__bits[idx] & (1 << offset))
1944 }
1945
1946 pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool {
1947 set1.__bits == set2.__bits
1948 }
041b39d2
XL
1949 pub fn major(dev: ::dev_t) -> ::c_int {
1950 ((dev >> 8) & 0xfff) as ::c_int
1951 }
1952 pub fn minor(dev: ::dev_t) -> ::c_int {
1953 ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as ::c_int
1954 }
1955 pub fn makedev(ma: ::c_int, mi: ::c_int) -> ::dev_t {
1956 let ma = ma as ::dev_t;
1957 let mi = mi as ::dev_t;
1958 ((ma & 0xfff) << 8) | (mi & 0xff) | ((mi & 0xfff00) << 12)
1959 }
2c00a5a8
XL
1960
1961 pub fn NLA_ALIGN(len: ::c_int) -> ::c_int {
1962 return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1)
1963 }
476ff2be
SL
1964}
1965
1966extern {
416331ca
XL
1967 pub fn getrlimit64(resource: ::c_int,
1968 rlim: *mut rlimit64) -> ::c_int;
1969 pub fn setrlimit64(resource: ::c_int,
1970 rlim: *const rlimit64) -> ::c_int;
1971 pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int;
1972 pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int;
1973 pub fn strerror_r(errnum: ::c_int, buf: *mut c_char,
1974 buflen: ::size_t) -> ::c_int;
1975
1976 pub fn gettimeofday(tp: *mut ::timeval,
1977 tz: *mut ::timezone) -> ::c_int;
1978 pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int)
476ff2be
SL
1979 -> ::c_int;
1980 pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
416331ca 1981 pub fn msync(addr: *mut ::c_void, len: ::size_t,
476ff2be 1982 flags: ::c_int) -> ::c_int;
416331ca 1983 pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int)
476ff2be 1984 -> ::c_int;
476ff2be 1985 pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t,
416331ca 1986 flags: ::c_int, addr: *mut ::sockaddr,
476ff2be
SL
1987 addrlen: *mut ::socklen_t) -> ::ssize_t;
1988 pub fn getnameinfo(sa: *const ::sockaddr,
1989 salen: ::socklen_t,
1990 host: *mut ::c_char,
1991 hostlen: ::size_t,
1992 serv: *mut ::c_char,
1993 sevlen: ::size_t,
1994 flags: ::c_int) -> ::c_int;
1995 pub fn ptrace(request: ::c_int, ...) -> ::c_long;
416331ca
XL
1996 pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int;
1997 pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int;
476ff2be
SL
1998 pub fn __sched_cpualloc(count: ::size_t) -> *mut ::cpu_set_t;
1999 pub fn __sched_cpufree(set: *mut ::cpu_set_t);
416331ca
XL
2000 pub fn __sched_cpucount(setsize: ::size_t,
2001 set: *const cpu_set_t) -> ::c_int;
476ff2be
SL
2002 pub fn sched_getcpu() -> ::c_int;
2003
2004 pub fn utmpname(name: *const ::c_char) -> ::c_int;
2005 pub fn setutent();
2006 pub fn getutent() -> *mut utmp;
8bb4bdeb
XL
2007
2008 pub fn posix_fallocate(fd: ::c_int, offset: ::off_t,
2009 len: ::off_t) -> ::c_int;
3b2f2976
XL
2010 pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int)
2011 -> ::c_int;
ea8adc8c
XL
2012 pub fn syscall(num: ::c_long, ...) -> ::c_long;
2013 pub fn sched_getaffinity(pid: ::pid_t,
2014 cpusetsize: ::size_t,
2015 cpuset: *mut cpu_set_t) -> ::c_int;
2016 pub fn sched_setaffinity(pid: ::pid_t,
2017 cpusetsize: ::size_t,
2018 cpuset: *const cpu_set_t) -> ::c_int;
2019 pub fn epoll_create(size: ::c_int) -> ::c_int;
2020 pub fn epoll_create1(flags: ::c_int) -> ::c_int;
2021 pub fn epoll_wait(epfd: ::c_int,
2022 events: *mut ::epoll_event,
2023 maxevents: ::c_int,
2024 timeout: ::c_int) -> ::c_int;
2025 pub fn epoll_ctl(epfd: ::c_int,
2026 op: ::c_int,
2027 fd: ::c_int,
2028 event: *mut ::epoll_event) -> ::c_int;
2029 pub fn pthread_getschedparam(native: ::pthread_t,
2030 policy: *mut ::c_int,
2031 param: *mut ::sched_param) -> ::c_int;
2032 pub fn unshare(flags: ::c_int) -> ::c_int;
2033 pub fn umount(target: *const ::c_char) -> ::c_int;
2034 pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int;
2035 pub fn tee(fd_in: ::c_int,
2036 fd_out: ::c_int,
2037 len: ::size_t,
2038 flags: ::c_uint) -> ::ssize_t;
2039 pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int;
2040 pub fn splice(fd_in: ::c_int,
2041 off_in: *mut ::loff_t,
2042 fd_out: ::c_int,
2043 off_out: *mut ::loff_t,
2044 len: ::size_t,
2045 flags: ::c_uint) -> ::ssize_t;
2046 pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
2047 pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int;
2048 pub fn sem_timedwait(sem: *mut sem_t,
2049 abstime: *const ::timespec) -> ::c_int;
8faf50e0
XL
2050 pub fn sem_getvalue(sem: *mut sem_t,
2051 sval: *mut ::c_int) -> ::c_int;
ea8adc8c
XL
2052 pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int;
2053 pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int;
2054 pub fn swapoff(puath: *const ::c_char) -> ::c_int;
2055 pub fn vmsplice(fd: ::c_int,
2056 iov: *const ::iovec,
2057 nr_segs: ::size_t,
2058 flags: ::c_uint) -> ::ssize_t;
2059 pub fn mount(src: *const ::c_char,
2060 target: *const ::c_char,
2061 fstype: *const ::c_char,
2062 flags: ::c_ulong,
2063 data: *const ::c_void) -> ::c_int;
416331ca 2064 pub fn personality(persona: ::c_uint) -> ::c_int;
ea8adc8c
XL
2065 pub fn prctl(option: ::c_int, ...) -> ::c_int;
2066 pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int;
2067 pub fn ppoll(fds: *mut ::pollfd,
2068 nfds: nfds_t,
2069 timeout: *const ::timespec,
2070 sigmask: *const sigset_t) -> ::c_int;
2071 pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t,
2072 abstime: *const ::timespec) -> ::c_int;
2073 pub fn clone(cb: extern fn(*mut ::c_void) -> ::c_int,
2074 child_stack: *mut ::c_void,
2075 flags: ::c_int,
2076 arg: *mut ::c_void, ...) -> ::c_int;
2077 pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int;
2078 pub fn clock_nanosleep(clk_id: ::clockid_t,
2079 flags: ::c_int,
2080 rqtp: *const ::timespec,
2081 rmtp: *mut ::timespec) -> ::c_int;
2082 pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t,
2083 guardsize: *mut ::size_t) -> ::c_int;
2084 pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int;
2085 pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int;
2086 pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t,
2087 pshared: *mut ::c_int) -> ::c_int;
2088 pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int;
2089 pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int;
2090 pub fn pthread_setschedparam(native: ::pthread_t,
2091 policy: ::c_int,
2092 param: *const ::sched_param) -> ::c_int;
2093 pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int;
2094 pub fn sched_setscheduler(pid: ::pid_t,
2095 policy: ::c_int,
2096 param: *const ::sched_param) -> ::c_int;
2097 pub fn sendfile(out_fd: ::c_int,
2098 in_fd: ::c_int,
2099 offset: *mut off_t,
2100 count: ::size_t) -> ::ssize_t;
abe05a73
XL
2101 pub fn setfsgid(gid: ::gid_t) -> ::c_int;
2102 pub fn setfsuid(uid: ::uid_t) -> ::c_int;
ea8adc8c
XL
2103 pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int;
2104 #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrgid_r")]
48663c56 2105 pub fn getgrgid_r(gid: ::gid_t,
ea8adc8c
XL
2106 grp: *mut ::group,
2107 buf: *mut ::c_char,
2108 buflen: ::size_t,
2109 result: *mut *mut ::group) -> ::c_int;
2110 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
2111 link_name = "sigaltstack$UNIX2003")]
2112 #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")]
2113 pub fn sigaltstack(ss: *const stack_t,
2114 oss: *mut stack_t) -> ::c_int;
2115 pub fn sem_close(sem: *mut sem_t) -> ::c_int;
ea8adc8c
XL
2116 #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrnam_r")]
2117 pub fn getgrnam_r(name: *const ::c_char,
2118 grp: *mut ::group,
2119 buf: *mut ::c_char,
2120 buflen: ::size_t,
2121 result: *mut *mut ::group) -> ::c_int;
2122 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
2123 link_name = "pthread_sigmask$UNIX2003")]
2124 pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t,
2125 oldset: *mut sigset_t) -> ::c_int;
2126 pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t;
2127 pub fn getgrnam(name: *const ::c_char) -> *mut ::group;
2128 pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int;
2129 pub fn sem_unlink(name: *const ::c_char) -> ::c_int;
2130 pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int;
2131 #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")]
2132 #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwnam_r")]
2133 pub fn getpwnam_r(name: *const ::c_char,
2134 pwd: *mut passwd,
2135 buf: *mut ::c_char,
2136 buflen: ::size_t,
2137 result: *mut *mut passwd) -> ::c_int;
2138 #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")]
2139 #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwuid_r")]
2140 pub fn getpwuid_r(uid: ::uid_t,
2141 pwd: *mut passwd,
2142 buf: *mut ::c_char,
2143 buflen: ::size_t,
2144 result: *mut *mut passwd) -> ::c_int;
2145 #[cfg_attr(all(target_os = "macos", target_arch ="x86"),
2146 link_name = "sigwait$UNIX2003")]
2147 #[cfg_attr(target_os = "solaris", link_name = "__posix_sigwait")]
2148 pub fn sigwait(set: *const sigset_t,
2149 sig: *mut ::c_int) -> ::c_int;
532ac7d7
XL
2150 pub fn pthread_atfork(prepare: ::Option<unsafe extern fn()>,
2151 parent: ::Option<unsafe extern fn()>,
2152 child: ::Option<unsafe extern fn()>) -> ::c_int;
ea8adc8c
XL
2153 pub fn getgrgid(gid: ::gid_t) -> *mut ::group;
2154 pub fn getgrouplist(user: *const ::c_char,
2155 group: ::gid_t,
2156 groups: *mut ::gid_t,
2157 ngroups: *mut ::c_int) -> ::c_int;
2158 pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int;
2159 pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t,
2160 pshared: *mut ::c_int) -> ::c_int;
2161 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
2162 link_name = "popen$UNIX2003")]
2163 pub fn popen(command: *const c_char,
2164 mode: *const c_char) -> *mut ::FILE;
2165 pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char,
2166 mode: ::c_int, flags: ::c_int) -> ::c_int;
2167 pub fn pthread_create(native: *mut ::pthread_t,
2168 attr: *const ::pthread_attr_t,
2169 f: extern fn(*mut ::c_void) -> *mut ::c_void,
2170 value: *mut ::c_void) -> ::c_int;
ff7c6d11 2171 pub fn __errno() -> *mut ::c_int;
416331ca 2172 pub fn inotify_rm_watch(fd: ::c_int, wd: u32) -> ::c_int;
532ac7d7
XL
2173 pub fn sendmmsg(sockfd: ::c_int, msgvec: *const ::mmsghdr, vlen: ::c_uint,
2174 flags: ::c_int) -> ::c_int;
2175 pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint,
2176 flags: ::c_int, timeout: *const ::timespec) -> ::c_int;
2177 pub fn inotify_init() -> ::c_int;
2178 pub fn inotify_init1(flags: ::c_int) -> ::c_int;
2179 pub fn inotify_add_watch(fd: ::c_int,
2180 path: *const ::c_char,
416331ca 2181 mask: u32) -> ::c_int;
476ff2be
SL
2182}
2183
2184cfg_if! {
2185 if #[cfg(target_pointer_width = "32")] {
2186 mod b32;
2187 pub use self::b32::*;
2188 } else if #[cfg(target_pointer_width = "64")] {
2189 mod b64;
2190 pub use self::b64::*;
2191 } else {
2192 // Unknown target_pointer_width
2193 }
2194}
416331ca
XL
2195
2196impl siginfo_t {
2197 pub unsafe fn si_value(&self) -> ::sigval {
2198 #[repr(C)]
2199 struct siginfo_timer {
2200 _si_signo: ::c_int,
2201 _si_errno: ::c_int,
2202 _si_code: ::c_int,
2203 _si_tid: ::c_int,
2204 _si_overrun: ::c_int,
2205 si_sigval: ::sigval,
2206 }
2207 (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval
2208 }
2209}