1 pub type rlim_t
= ::uintptr_t
;
2 pub type sa_family_t
= u8;
3 pub type pthread_key_t
= ::c_int
;
4 pub type nfds_t
= ::c_ulong
;
5 pub type tcflag_t
= ::c_uint
;
6 pub type speed_t
= ::c_uchar
;
8 pub type clock_t
= i32;
9 pub type clockid_t
= i32;
10 pub type suseconds_t
= i32;
11 pub type wchar_t
= i32;
14 pub type blkcnt_t
= i64;
15 pub type blksize_t
= i32;
17 pub type mode_t
= u32;
18 pub type nlink_t
= i32;
19 pub type useconds_t
= u32;
20 pub type socklen_t
= u32;
21 pub type pthread_t
= ::uintptr_t
;
22 pub type pthread_condattr_t
= ::uintptr_t
;
23 pub type pthread_mutexattr_t
= ::uintptr_t
;
24 pub type pthread_rwlockattr_t
= ::uintptr_t
;
25 pub type sigset_t
= u64;
26 pub type fsblkcnt_t
= i64;
27 pub type fsfilcnt_t
= i64;
28 pub type pthread_attr_t
= *mut ::c_void
;
29 pub type nl_item
= ::c_int
;
31 pub type idtype_t
= ::c_int
;
32 pub type fd_mask
= u32;
33 pub type regoff_t
= ::c_int
;
35 pub type msgqnum_t
= u32;
36 pub type msglen_t
= u32;
38 pub type Elf32_Addr
= u32;
39 pub type Elf32_Half
= u16;
40 pub type Elf32_Off
= u32;
41 pub type Elf32_Sword
= i32;
42 pub type Elf32_Word
= u32;
44 pub type Elf64_Addr
= u64;
45 pub type Elf64_Half
= u16;
46 pub type Elf64_Off
= u64;
47 pub type Elf64_Sword
= i32;
48 pub type Elf64_Sxword
= i64;
49 pub type Elf64_Word
= u32;
50 pub type Elf64_Xword
= u64;
52 pub type ENTRY
= entry
;
53 pub type ACTION
= ::c_int
;
55 pub type posix_spawnattr_t
= *mut ::c_void
;
56 pub type posix_spawn_file_actions_t
= *mut ::c_void
;
58 pub type StringList
= _stringlist
;
60 #[cfg_attr(feature = "extra_traits", derive(Debug))]
62 impl ::Copy
for timezone {}
63 impl ::Clone
for timezone
{
64 fn clone(&self) -> timezone
{
70 pub unsafe fn si_addr(&self) -> *mut ::c_void
{
74 pub unsafe fn si_pid(&self) -> ::pid_t
{
78 pub unsafe fn si_uid(&self) -> ::uid_t
{
82 pub unsafe fn si_status(&self) -> ::c_int
{
89 pub s_addr
: ::in_addr_t
,
93 pub imr_multiaddr
: in_addr
,
94 pub imr_interface
: in_addr
,
99 pub sa_family
: sa_family_t
,
100 pub sa_data
: [u8; 30],
103 pub struct sockaddr_in
{
105 pub sin_family
: sa_family_t
,
106 pub sin_port
: ::in_port_t
,
107 pub sin_addr
: ::in_addr
,
108 pub sin_zero
: [i8; 24],
111 pub struct sockaddr_in6
{
115 pub sin6_flowinfo
: u32,
116 pub sin6_addr
: ::in6_addr
,
117 pub sin6_scope_id
: u32,
120 pub struct addrinfo
{
121 pub ai_flags
: ::c_int
,
122 pub ai_family
: ::c_int
,
123 pub ai_socktype
: ::c_int
,
124 pub ai_protocol
: ::c_int
,
125 pub ai_addrlen
: socklen_t
,
126 pub ai_canonname
: *mut c_char
,
127 pub ai_addr
: *mut ::sockaddr
,
128 pub ai_next
: *mut addrinfo
,
132 pub ifa_next
: *mut ifaddrs
,
133 pub ifa_name
: *const ::c_char
,
134 pub ifa_flags
: ::c_uint
,
135 pub ifa_addr
: *mut ::sockaddr
,
136 pub ifa_netmask
: *mut ::sockaddr
,
137 pub ifa_dstaddr
: *mut ::sockaddr
,
138 pub ifa_data
: *mut ::c_void
,
142 // size for 1024 bits, and a fd_mask with size u32
143 fds_bits
: [fd_mask
; 32],
149 pub tm_hour
: ::c_int
,
150 pub tm_mday
: ::c_int
,
152 pub tm_year
: ::c_int
,
153 pub tm_wday
: ::c_int
,
154 pub tm_yday
: ::c_int
,
155 pub tm_isdst
: ::c_int
,
156 pub tm_gmtoff
: ::c_int
,
157 pub tm_zone
: *mut ::c_char
,
161 pub sysname
: [::c_char
; 32],
162 pub nodename
: [::c_char
; 32],
163 pub release
: [::c_char
; 32],
164 pub version
: [::c_char
; 32],
165 pub machine
: [::c_char
; 32],
169 pub decimal_point
: *mut ::c_char
,
170 pub thousands_sep
: *mut ::c_char
,
171 pub grouping
: *mut ::c_char
,
172 pub int_curr_symbol
: *mut ::c_char
,
173 pub currency_symbol
: *mut ::c_char
,
174 pub mon_decimal_point
: *mut ::c_char
,
175 pub mon_thousands_sep
: *mut ::c_char
,
176 pub mon_grouping
: *mut ::c_char
,
177 pub positive_sign
: *mut ::c_char
,
178 pub negative_sign
: *mut ::c_char
,
179 pub int_frac_digits
: ::c_char
,
180 pub frac_digits
: ::c_char
,
181 pub p_cs_precedes
: ::c_char
,
182 pub p_sep_by_space
: ::c_char
,
183 pub n_cs_precedes
: ::c_char
,
184 pub n_sep_by_space
: ::c_char
,
185 pub p_sign_posn
: ::c_char
,
186 pub n_sign_posn
: ::c_char
,
187 pub int_p_cs_precedes
: ::c_char
,
188 pub int_p_sep_by_space
: ::c_char
,
189 pub int_n_cs_precedes
: ::c_char
,
190 pub int_n_sep_by_space
: ::c_char
,
191 pub int_p_sign_posn
: ::c_char
,
192 pub int_n_sign_posn
: ::c_char
,
196 pub msg_name
: *mut ::c_void
,
197 pub msg_namelen
: socklen_t
,
198 pub msg_iov
: *mut ::iovec
,
199 pub msg_iovlen
: ::c_int
,
200 pub msg_control
: *mut ::c_void
,
201 pub msg_controllen
: socklen_t
,
202 pub msg_flags
: ::c_int
,
206 pub cmsg_len
: ::socklen_t
,
207 pub cmsg_level
: ::c_int
,
208 pub cmsg_type
: ::c_int
,
212 pub dli_fname
: *const ::c_char
,
213 pub dli_fbase
: *mut ::c_void
,
214 pub dli_sname
: *const ::c_char
,
215 pub dli_saddr
: *mut ::c_void
,
219 pub c_iflag
: ::tcflag_t
,
220 pub c_oflag
: ::tcflag_t
,
221 pub c_cflag
: ::tcflag_t
,
222 pub c_lflag
: ::tcflag_t
,
223 pub c_line
: ::c_char
,
224 pub c_ispeed
: ::speed_t
,
225 pub c_ospeed
: ::speed_t
,
226 pub c_cc
: [::cc_t
; ::NCCS
],
230 pub l_type
: ::c_short
,
231 pub l_whence
: ::c_short
,
232 pub l_start
: ::off_t
,
241 pub st_nlink
: nlink_t
,
246 pub st_blksize
: blksize_t
,
247 pub st_atime
: time_t
,
248 pub st_atime_nsec
: c_long
,
249 pub st_mtime
: time_t
,
250 pub st_mtime_nsec
: c_long
,
251 pub st_ctime
: time_t
,
252 pub st_ctime_nsec
: c_long
,
253 pub st_crtime
: time_t
,
254 pub st_crtime_nsec
: c_long
,
256 pub st_blocks
: blkcnt_t
,
260 pub gl_pathc
: ::size_t
,
262 pub gl_offs
: ::size_t
,
264 pub gl_pathv
: *mut *mut c_char
,
266 __unused3
: *mut ::c_void
,
267 __unused4
: *mut ::c_void
,
268 __unused5
: *mut ::c_void
,
269 __unused6
: *mut ::c_void
,
270 __unused7
: *mut ::c_void
,
271 __unused8
: *mut ::c_void
,
274 pub struct pthread_mutex_t
{
282 pub struct pthread_cond_t
{
285 mutex
: *mut ::c_void
,
290 pub struct pthread_rwlock_t
{
293 lock_sem
: i32, // this is actually a union
297 waiters
: [*mut ::c_void
; 2],
300 pub struct pthread_spinlock_t
{
305 pub pw_name
: *mut ::c_char
,
306 pub pw_passwd
: *mut ::c_char
,
309 pub pw_dir
: *mut ::c_char
,
310 pub pw_shell
: *mut ::c_char
,
311 pub pw_gecos
: *mut ::c_char
,
315 pub f_bsize
: ::c_ulong
,
316 pub f_frsize
: ::c_ulong
,
317 pub f_blocks
: ::fsblkcnt_t
,
318 pub f_bfree
: ::fsblkcnt_t
,
319 pub f_bavail
: ::fsblkcnt_t
,
320 pub f_files
: ::fsfilcnt_t
,
321 pub f_ffree
: ::fsfilcnt_t
,
322 pub f_favail
: ::fsfilcnt_t
,
323 pub f_fsid
: ::c_ulong
,
324 pub f_flag
: ::c_ulong
,
325 pub f_namemax
: ::c_ulong
,
329 pub ss_sp
: *mut ::c_void
,
330 pub ss_size
: ::size_t
,
331 pub ss_flags
: ::c_int
,
334 pub struct siginfo_t
{
335 pub si_signo
: ::c_int
,
336 pub si_code
: ::c_int
,
337 pub si_errno
: ::c_int
,
340 pub si_addr
: *mut ::c_void
,
341 pub si_status
: ::c_int
,
343 pub sigval
: *mut ::c_void
,
346 pub struct sigaction
{
347 pub sa_sigaction
: ::sighandler_t
, //actually a union with sa_handler
348 pub sa_mask
: ::sigset_t
,
349 pub sa_flags
: ::c_int
,
350 sa_userdata
: *mut ::c_void
,
355 pub named_sem_id
: i32, // actually a union with unnamed_sem (i32)
356 pub padding
: [i32; 2],
365 pub struct sockaddr_dl
{
374 pub sdl_data
: [u8; 46],
378 pub sp_namp
: *mut ::c_char
,
379 pub sp_pwdp
: *mut ::c_char
,
380 pub sp_lstchg
: ::c_int
,
383 pub sp_warn
: ::c_int
,
384 pub sp_inact
: ::c_int
,
385 pub sp_expire
: ::c_int
,
386 pub sp_flag
: ::c_int
,
390 __buffer
: *mut ::c_void
,
391 __allocated
: ::size_t
,
394 __fastmap
: *mut ::c_char
,
395 __translate
: *mut ::c_char
,
400 pub struct regmatch_t
{
405 pub struct msqid_ds
{
406 pub msg_perm
: ::ipc_perm
,
407 pub msg_qnum
: ::msgqnum_t
,
408 pub msg_qbytes
: ::msglen_t
,
409 pub msg_lspid
: ::pid_t
,
410 pub msg_lrpid
: ::pid_t
,
411 pub msg_stime
: ::time_t
,
412 pub msg_rtime
: ::time_t
,
413 pub msg_ctime
: ::time_t
,
416 pub struct ipc_perm
{
426 pub sem_num
: ::c_ushort
,
427 pub sem_op
: ::c_short
,
428 pub sem_flg
: ::c_short
,
432 pub key
: *mut ::c_char
,
433 pub data
: *mut ::c_void
,
437 pub name
: *const ::c_char
,
438 pub has_arg
: ::c_int
,
439 pub flag
: *mut ::c_int
,
443 pub struct _stringlist
{
444 pub sl_str
: *mut *mut ::c_char
,
445 pub sl_max
: ::size_t
,
446 pub sl_cur
: ::size_t
,
449 pub struct dl_phdr_info
{
450 pub dlpi_addr
: ::Elf_Addr
,
451 pub dlpi_name
: *const ::c_char
,
452 pub dlpi_phdr
: *const ::Elf_Phdr
,
453 pub dlpi_phnum
: ::Elf_Half
,
458 pub struct sockaddr_un
{
460 pub sun_family
: sa_family_t
,
461 pub sun_path
: [::c_char
; 126]
463 pub struct sockaddr_storage
{
465 pub ss_family
: sa_family_t
,
468 __ss_pad3
: [u8; 112],
475 pub d_reclen
: ::c_ushort
,
476 pub d_name
: [::c_char
; 1024], // Max length is _POSIX_PATH_MAX
479 pub struct sigevent
{
480 pub sigev_notify
: ::c_int
,
481 pub sigev_signo
: ::c_int
,
482 pub sigev_value
: ::sigval
,
483 __unused1
: *mut ::c_void
, // actually a function pointer
484 pub sigev_notify_attributes
: *mut ::pthread_attr_t
,
488 pub ut_type
: ::c_short
,
489 pub ut_tv
: ::timeval
,
490 pub ut_id
: [::c_char
; 8],
492 pub ut_user
: [::c_char
; 32],
493 pub ut_line
: [::c_char
; 16],
494 pub ut_host
: [::c_char
; 128],
495 __ut_reserved
: [::c_char
; 64],
500 if #[cfg(feature = "extra_traits")] {
501 impl PartialEq
for utmpx
{
502 fn eq(&self, other
: &utmpx
) -> bool
{
503 self.ut_type
== other
.ut_type
504 && self.ut_tv
== other
.ut_tv
505 && self.ut_id
== other
.ut_id
506 && self.ut_pid
== other
.ut_pid
507 && self.ut_user
== other
.ut_user
508 && self.ut_line
== other
.ut_line
509 && self.ut_host
.iter().zip(other
.ut_host
.iter()).all(|(a
,b
)| a
== b
)
510 && self.__ut_reserved
== other
.__ut_reserved
516 impl ::fmt
::Debug
for utmpx
{
517 fn fmt(&self, f
: &mut ::fmt
::Formatter
) -> ::fmt
::Result
{
518 f
.debug_struct("utmpx")
519 .field("ut_type", &self.ut_type
)
520 .field("ut_tv", &self.ut_tv
)
521 .field("ut_id", &self.ut_id
)
522 .field("ut_pid", &self.ut_pid
)
523 .field("ut_user", &self.ut_user
)
524 .field("ut_line", &self.ut_line
)
525 .field("ut_host", &self.ut_host
)
526 .field("__ut_reserved", &self.__ut_reserved
)
531 impl ::hash
::Hash
for utmpx
{
532 fn hash
<H
: ::hash
::Hasher
>(&self, state
: &mut H
) {
533 self.ut_type
.hash(state
);
534 self.ut_tv
.hash(state
);
535 self.ut_id
.hash(state
);
536 self.ut_pid
.hash(state
);
537 self.ut_user
.hash(state
);
538 self.ut_line
.hash(state
);
539 self.ut_host
.hash(state
);
540 self.__ut_reserved
.hash(state
);
543 impl PartialEq
for sockaddr_un
{
544 fn eq(&self, other
: &sockaddr_un
) -> bool
{
545 self.sun_len
== other
.sun_len
546 && self.sun_family
== other
.sun_family
550 .zip(other
.sun_path
.iter())
554 impl Eq
for sockaddr_un {}
555 impl ::fmt
::Debug
for sockaddr_un
{
556 fn fmt(&self, f
: &mut ::fmt
::Formatter
) -> ::fmt
::Result
{
557 f
.debug_struct("sockaddr_un")
558 .field("sun_len", &self.sun_len
)
559 .field("sun_family", &self.sun_family
)
560 // FIXME: .field("sun_path", &self.sun_path)
564 impl ::hash
::Hash
for sockaddr_un
{
565 fn hash
<H
: ::hash
::Hasher
>(&self, state
: &mut H
) {
566 self.sun_len
.hash(state
);
567 self.sun_family
.hash(state
);
568 self.sun_path
.hash(state
);
572 impl PartialEq
for sockaddr_storage
{
573 fn eq(&self, other
: &sockaddr_storage
) -> bool
{
574 self.ss_len
== other
.ss_len
575 && self.ss_family
== other
.ss_family
579 .zip(other
.__ss_pad1
.iter())
580 .all(|(a
, b
)| a
== b
)
581 && self.__ss_pad2
== other
.__ss_pad2
585 .zip(other
.__ss_pad3
.iter())
586 .all(|(a
, b
)| a
== b
)
589 impl Eq
for sockaddr_storage {}
590 impl ::fmt
::Debug
for sockaddr_storage
{
591 fn fmt(&self, f
: &mut ::fmt
::Formatter
) -> ::fmt
::Result
{
592 f
.debug_struct("sockaddr_storage")
593 .field("ss_len", &self.ss_len
)
594 .field("ss_family", &self.ss_family
)
595 .field("__ss_pad1", &self.__ss_pad1
)
596 .field("__ss_pad2", &self.__ss_pad2
)
597 // FIXME: .field("__ss_pad3", &self.__ss_pad3)
601 impl ::hash
::Hash
for sockaddr_storage
{
602 fn hash
<H
: ::hash
::Hasher
>(&self, state
: &mut H
) {
603 self.ss_len
.hash(state
);
604 self.ss_family
.hash(state
);
605 self.__ss_pad1
.hash(state
);
606 self.__ss_pad2
.hash(state
);
607 self.__ss_pad3
.hash(state
);
611 impl PartialEq
for dirent
{
612 fn eq(&self, other
: &dirent
) -> bool
{
613 self.d_dev
== other
.d_dev
614 && self.d_pdev
== other
.d_pdev
615 && self.d_ino
== other
.d_ino
616 && self.d_pino
== other
.d_pino
617 && self.d_reclen
== other
.d_reclen
621 .zip(other
.d_name
.iter())
625 impl Eq
for dirent {}
626 impl ::fmt
::Debug
for dirent
{
627 fn fmt(&self, f
: &mut ::fmt
::Formatter
) -> ::fmt
::Result
{
628 f
.debug_struct("dirent")
629 .field("d_dev", &self.d_dev
)
630 .field("d_pdev", &self.d_pdev
)
631 .field("d_ino", &self.d_ino
)
632 .field("d_pino", &self.d_pino
)
633 .field("d_reclen", &self.d_reclen
)
634 // FIXME: .field("d_name", &self.d_name)
638 impl ::hash
::Hash
for dirent
{
639 fn hash
<H
: ::hash
::Hasher
>(&self, state
: &mut H
) {
640 self.d_dev
.hash(state
);
641 self.d_pdev
.hash(state
);
642 self.d_ino
.hash(state
);
643 self.d_pino
.hash(state
);
644 self.d_reclen
.hash(state
);
645 self.d_name
.hash(state
);
649 impl PartialEq
for sigevent
{
650 fn eq(&self, other
: &sigevent
) -> bool
{
651 self.sigev_notify
== other
.sigev_notify
652 && self.sigev_signo
== other
.sigev_signo
653 && self.sigev_value
== other
.sigev_value
654 && self.sigev_notify_attributes
655 == other
.sigev_notify_attributes
658 impl Eq
for sigevent {}
659 impl ::fmt
::Debug
for sigevent
{
660 fn fmt(&self, f
: &mut ::fmt
::Formatter
) -> ::fmt
::Result
{
661 f
.debug_struct("sigevent")
662 .field("sigev_notify", &self.sigev_notify
)
663 .field("sigev_signo", &self.sigev_signo
)
664 .field("sigev_value", &self.sigev_value
)
665 .field("sigev_notify_attributes",
666 &self.sigev_notify_attributes
)
670 impl ::hash
::Hash
for sigevent
{
671 fn hash
<H
: ::hash
::Hasher
>(&self, state
: &mut H
) {
672 self.sigev_notify
.hash(state
);
673 self.sigev_signo
.hash(state
);
674 self.sigev_value
.hash(state
);
675 self.sigev_notify_attributes
.hash(state
);
681 pub const EXIT_FAILURE
: ::c_int
= 1;
682 pub const EXIT_SUCCESS
: ::c_int
= 0;
683 pub const RAND_MAX
: ::c_int
= 2147483647;
684 pub const EOF
: ::c_int
= -1;
685 pub const SEEK_SET
: ::c_int
= 0;
686 pub const SEEK_CUR
: ::c_int
= 1;
687 pub const SEEK_END
: ::c_int
= 2;
688 pub const L_SET
: ::c_int
= SEEK_SET
;
689 pub const L_INCR
: ::c_int
= SEEK_CUR
;
690 pub const L_XTND
: ::c_int
= SEEK_END
;
691 pub const _IOFBF
: ::c_int
= 0;
692 pub const _IONBF
: ::c_int
= 2;
693 pub const _IOLBF
: ::c_int
= 1;
695 pub const F_DUPFD
: ::c_int
= 0x0001;
696 pub const F_GETFD
: ::c_int
= 0x0002;
697 pub const F_SETFD
: ::c_int
= 0x0004;
698 pub const F_GETFL
: ::c_int
= 0x0008;
699 pub const F_SETFL
: ::c_int
= 0x0010;
700 pub const F_GETLK
: ::c_int
= 0x0020;
701 pub const F_SETLK
: ::c_int
= 0x0080;
702 pub const F_SETLKW
: ::c_int
= 0x0100;
703 pub const F_DUPFD_CLOEXEC
: ::c_int
= 0x0200;
705 pub const F_RDLCK
: ::c_int
= 0x0040;
706 pub const F_UNLCK
: ::c_int
= 0x0200;
707 pub const F_WRLCK
: ::c_int
= 0x0400;
709 pub const AT_FDCWD
: ::c_int
= -1;
710 pub const AT_SYMLINK_NOFOLLOW
: ::c_int
= 0x01;
711 pub const AT_SYMLINK_FOLLOW
: ::c_int
= 0x02;
712 pub const AT_REMOVEDIR
: ::c_int
= 0x04;
713 pub const AT_EACCESS
: ::c_int
= 0x08;
715 pub const POLLIN
: ::c_short
= 0x0001;
716 pub const POLLOUT
: ::c_short
= 0x0002;
717 pub const POLLRDNORM
: ::c_short
= POLLIN
;
718 pub const POLLWRNORM
: ::c_short
= POLLOUT
;
719 pub const POLLRDBAND
: ::c_short
= 0x0008;
720 pub const POLLWRBAND
: ::c_short
= 0x0010;
721 pub const POLLPRI
: ::c_short
= 0x0020;
722 pub const POLLERR
: ::c_short
= 0x0004;
723 pub const POLLHUP
: ::c_short
= 0x0080;
724 pub const POLLNVAL
: ::c_short
= 0x1000;
726 pub const PTHREAD_CREATE_JOINABLE
: ::c_int
= 0;
727 pub const PTHREAD_CREATE_DETACHED
: ::c_int
= 1;
729 pub const CLOCK_REALTIME
: ::c_int
= -1;
730 pub const CLOCK_MONOTONIC
: ::c_int
= 0;
731 pub const CLOCK_PROCESS_CPUTIME_ID
: ::c_int
= -2;
732 pub const CLOCK_THREAD_CPUTIME_ID
: ::c_int
= -3;
734 pub const RLIMIT_CORE
: ::c_int
= 0;
735 pub const RLIMIT_CPU
: ::c_int
= 1;
736 pub const RLIMIT_DATA
: ::c_int
= 2;
737 pub const RLIMIT_FSIZE
: ::c_int
= 3;
738 pub const RLIMIT_NOFILE
: ::c_int
= 4;
739 pub const RLIMIT_STACK
: ::c_int
= 5;
740 pub const RLIMIT_AS
: ::c_int
= 6;
741 pub const RLIM_INFINITY
: ::rlim_t
= 0xffffffff;
743 pub const RLIMIT_NOVMON
: ::c_int
= 7;
744 pub const RLIM_NLIMITS
: ::c_int
= 8;
746 pub const RUSAGE_SELF
: ::c_int
= 0;
748 pub const RTLD_LAZY
: ::c_int
= 0;
750 pub const NCCS
: usize = 11;
752 pub const O_RDONLY
: ::c_int
= 0x0000;
753 pub const O_WRONLY
: ::c_int
= 0x0001;
754 pub const O_RDWR
: ::c_int
= 0x0002;
755 pub const O_ACCMODE
: ::c_int
= 0x0003;
757 pub const O_EXCL
: ::c_int
= 0x0100;
758 pub const O_CREAT
: ::c_int
= 0x0200;
759 pub const O_TRUNC
: ::c_int
= 0x0400;
760 pub const O_NOCTTY
: ::c_int
= 0x1000;
761 pub const O_NOTRAVERSE
: ::c_int
= 0x2000;
763 pub const O_CLOEXEC
: ::c_int
= 0x00000040;
764 pub const O_NONBLOCK
: ::c_int
= 0x00000080;
765 pub const O_APPEND
: ::c_int
= 0x00000800;
766 pub const O_SYNC
: ::c_int
= 0x00010000;
767 pub const O_RSYNC
: ::c_int
= 0x00020000;
768 pub const O_DSYNC
: ::c_int
= 0x00040000;
769 pub const O_NOFOLLOW
: ::c_int
= 0x00080000;
770 pub const O_NOCACHE
: ::c_int
= 0x00100000;
771 pub const O_DIRECTORY
: ::c_int
= 0x00200000;
773 pub const S_IFIFO
: ::mode_t
= 4096;
774 pub const S_IFCHR
: ::mode_t
= 8192;
775 pub const S_IFBLK
: ::mode_t
= 24576;
776 pub const S_IFDIR
: ::mode_t
= 16384;
777 pub const S_IFREG
: ::mode_t
= 32768;
778 pub const S_IFLNK
: ::mode_t
= 40960;
779 pub const S_IFSOCK
: ::mode_t
= 49152;
780 pub const S_IFMT
: ::mode_t
= 61440;
782 pub const S_IRWXU
: ::mode_t
= 0o00700;
783 pub const S_IRUSR
: ::mode_t
= 0o00400;
784 pub const S_IWUSR
: ::mode_t
= 0o00200;
785 pub const S_IXUSR
: ::mode_t
= 0o00100;
786 pub const S_IRWXG
: ::mode_t
= 0o00070;
787 pub const S_IRGRP
: ::mode_t
= 0o00040;
788 pub const S_IWGRP
: ::mode_t
= 0o00020;
789 pub const S_IXGRP
: ::mode_t
= 0o00010;
790 pub const S_IRWXO
: ::mode_t
= 0o00007;
791 pub const S_IROTH
: ::mode_t
= 0o00004;
792 pub const S_IWOTH
: ::mode_t
= 0o00002;
793 pub const S_IXOTH
: ::mode_t
= 0o00001;
795 pub const F_OK
: ::c_int
= 0;
796 pub const R_OK
: ::c_int
= 4;
797 pub const W_OK
: ::c_int
= 2;
798 pub const X_OK
: ::c_int
= 1;
799 pub const STDIN_FILENO
: ::c_int
= 0;
800 pub const STDOUT_FILENO
: ::c_int
= 1;
801 pub const STDERR_FILENO
: ::c_int
= 2;
803 pub const SIGHUP
: ::c_int
= 1;
804 pub const SIGINT
: ::c_int
= 2;
805 pub const SIGQUIT
: ::c_int
= 3;
806 pub const SIGILL
: ::c_int
= 4;
807 pub const SIGCHLD
: ::c_int
= 5;
808 pub const SIGABRT
: ::c_int
= 6;
809 pub const SIGPIPE
: ::c_int
= 7;
810 pub const SIGFPE
: ::c_int
= 8;
811 pub const SIGKILL
: ::c_int
= 9;
812 pub const SIGSTOP
: ::c_int
= 10;
813 pub const SIGSEGV
: ::c_int
= 11;
814 pub const SIGCONT
: ::c_int
= 12;
815 pub const SIGTSTP
: ::c_int
= 13;
816 pub const SIGALRM
: ::c_int
= 14;
817 pub const SIGTERM
: ::c_int
= 15;
818 pub const SIGTTIN
: ::c_int
= 16;
819 pub const SIGTTOU
: ::c_int
= 17;
820 pub const SIGUSR1
: ::c_int
= 18;
821 pub const SIGUSR2
: ::c_int
= 19;
822 pub const SIGWINCH
: ::c_int
= 20;
823 pub const SIGKILLTHR
: ::c_int
= 21;
824 pub const SIGTRAP
: ::c_int
= 22;
825 pub const SIGPOLL
: ::c_int
= 23;
826 pub const SIGPROF
: ::c_int
= 24;
827 pub const SIGSYS
: ::c_int
= 25;
828 pub const SIGURG
: ::c_int
= 26;
829 pub const SIGVTALRM
: ::c_int
= 27;
830 pub const SIGXCPU
: ::c_int
= 28;
831 pub const SIGXFSZ
: ::c_int
= 29;
832 pub const SIGBUS
: ::c_int
= 30;
834 pub const SIG_BLOCK
: ::c_int
= 1;
835 pub const SIG_UNBLOCK
: ::c_int
= 2;
836 pub const SIG_SETMASK
: ::c_int
= 3;
838 pub const SIGEV_NONE
: ::c_int
= 0;
839 pub const SIGEV_SIGNAL
: ::c_int
= 1;
840 pub const SIGEV_THREAD
: ::c_int
= 2;
842 pub const EAI_AGAIN
: ::c_int
= 2;
843 pub const EAI_BADFLAGS
: ::c_int
= 3;
844 pub const EAI_FAIL
: ::c_int
= 4;
845 pub const EAI_FAMILY
: ::c_int
= 5;
846 pub const EAI_MEMORY
: ::c_int
= 6;
847 pub const EAI_NODATA
: ::c_int
= 7;
848 pub const EAI_NONAME
: ::c_int
= 8;
849 pub const EAI_SERVICE
: ::c_int
= 9;
850 pub const EAI_SOCKTYPE
: ::c_int
= 10;
851 pub const EAI_SYSTEM
: ::c_int
= 11;
852 pub const EAI_OVERFLOW
: ::c_int
= 14;
854 pub const PROT_NONE
: ::c_int
= 0;
855 pub const PROT_READ
: ::c_int
= 1;
856 pub const PROT_WRITE
: ::c_int
= 2;
857 pub const PROT_EXEC
: ::c_int
= 4;
859 pub const LC_ALL
: ::c_int
= 0;
860 pub const LC_COLLATE
: ::c_int
= 1;
861 pub const LC_CTYPE
: ::c_int
= 2;
862 pub const LC_MONETARY
: ::c_int
= 3;
863 pub const LC_NUMERIC
: ::c_int
= 4;
864 pub const LC_TIME
: ::c_int
= 5;
865 pub const LC_MESSAGES
: ::c_int
= 6;
867 // FIXME: Haiku does not have MAP_FILE, but libstd/os.rs requires it
868 pub const MAP_FILE
: ::c_int
= 0x00;
869 pub const MAP_SHARED
: ::c_int
= 0x01;
870 pub const MAP_PRIVATE
: ::c_int
= 0x02;
871 pub const MAP_FIXED
: ::c_int
= 0x04;
872 pub const MAP_ANONYMOUS
: ::c_int
= 0x08;
873 pub const MAP_NORESERVE
: ::c_int
= 0x10;
874 pub const MAP_ANON
: ::c_int
= MAP_ANONYMOUS
;
876 pub const MAP_FAILED
: *mut ::c_void
= !0 as *mut ::c_void
;
878 pub const MS_ASYNC
: ::c_int
= 0x01;
879 pub const MS_INVALIDATE
: ::c_int
= 0x04;
880 pub const MS_SYNC
: ::c_int
= 0x02;
882 pub const E2BIG
: ::c_int
= -2147454975;
883 pub const ECHILD
: ::c_int
= -2147454974;
884 pub const EDEADLK
: ::c_int
= -2147454973;
885 pub const EFBIG
: ::c_int
= -2147454972;
886 pub const EMLINK
: ::c_int
= -2147454971;
887 pub const ENFILE
: ::c_int
= -2147454970;
888 pub const ENODEV
: ::c_int
= -2147454969;
889 pub const ENOLCK
: ::c_int
= -2147454968;
890 pub const ENOSYS
: ::c_int
= -2147454967;
891 pub const ENOTTY
: ::c_int
= -2147454966;
892 pub const ENXIO
: ::c_int
= -2147454965;
893 pub const ESPIPE
: ::c_int
= -2147454964;
894 pub const ESRCH
: ::c_int
= -2147454963;
895 pub const EFPOS
: ::c_int
= -2147454962;
896 pub const ESIGPARM
: ::c_int
= -2147454961;
897 pub const EDOM
: ::c_int
= -2147454960;
898 pub const ERANGE
: ::c_int
= -2147454959;
899 pub const EPROTOTYPE
: ::c_int
= -2147454958;
900 pub const EPROTONOSUPPORT
: ::c_int
= -2147454957;
901 pub const EPFNOSUPPORT
: ::c_int
= -2147454956;
902 pub const EAFNOSUPPORT
: ::c_int
= -2147454955;
903 pub const EADDRINUSE
: ::c_int
= -2147454954;
904 pub const EADDRNOTAVAIL
: ::c_int
= -2147454953;
905 pub const ENETDOWN
: ::c_int
= -2147454952;
906 pub const ENETUNREACH
: ::c_int
= -2147454951;
907 pub const ENETRESET
: ::c_int
= -2147454950;
908 pub const ECONNABORTED
: ::c_int
= -2147454949;
909 pub const ECONNRESET
: ::c_int
= -2147454948;
910 pub const EISCONN
: ::c_int
= -2147454947;
911 pub const ENOTCONN
: ::c_int
= -2147454946;
912 pub const ESHUTDOWN
: ::c_int
= -2147454945;
913 pub const ECONNREFUSED
: ::c_int
= -2147454944;
914 pub const EHOSTUNREACH
: ::c_int
= -2147454943;
915 pub const ENOPROTOOPT
: ::c_int
= -2147454942;
916 pub const ENOBUFS
: ::c_int
= -2147454941;
917 pub const EINPROGRESS
: ::c_int
= -2147454940;
918 pub const EALREADY
: ::c_int
= -2147454939;
919 pub const EILSEQ
: ::c_int
= -2147454938;
920 pub const ENOMSG
: ::c_int
= -2147454937;
921 pub const ESTALE
: ::c_int
= -2147454936;
922 pub const EOVERFLOW
: ::c_int
= -2147454935;
923 pub const EMSGSIZE
: ::c_int
= -2147454934;
924 pub const EOPNOTSUPP
: ::c_int
= -2147454933;
925 pub const ENOTSOCK
: ::c_int
= -2147454932;
926 pub const EHOSTDOWN
: ::c_int
= -2147454931;
927 pub const EBADMSG
: ::c_int
= -2147454930;
928 pub const ECANCELED
: ::c_int
= -2147454929;
929 pub const EDESTADDRREQ
: ::c_int
= -2147454928;
930 pub const EDQUOT
: ::c_int
= -2147454927;
931 pub const EIDRM
: ::c_int
= -2147454926;
932 pub const EMULTIHOP
: ::c_int
= -2147454925;
933 pub const ENODATA
: ::c_int
= -2147454924;
934 pub const ENOLINK
: ::c_int
= -2147454923;
935 pub const ENOSR
: ::c_int
= -2147454922;
936 pub const ENOSTR
: ::c_int
= -2147454921;
937 pub const ENOTSUP
: ::c_int
= -2147454920;
938 pub const EPROTO
: ::c_int
= -2147454919;
939 pub const ETIME
: ::c_int
= -2147454918;
940 pub const ETXTBSY
: ::c_int
= -2147454917;
941 pub const ENOATTR
: ::c_int
= -2147454916;
944 pub const ENOMEM
: ::c_int
= -2147483648;
946 // POSIX errors that can be mapped to BeOS error codes
947 pub const EACCES
: ::c_int
= -2147483646;
948 pub const EINTR
: ::c_int
= -2147483638;
949 pub const EIO
: ::c_int
= -2147483647;
950 pub const EBUSY
: ::c_int
= -2147483634;
951 pub const EFAULT
: ::c_int
= -2147478783;
952 pub const ETIMEDOUT
: ::c_int
= -2147483639;
953 pub const EAGAIN
: ::c_int
= -2147483637;
954 pub const EWOULDBLOCK
: ::c_int
= -2147483637;
955 pub const EBADF
: ::c_int
= -2147459072;
956 pub const EEXIST
: ::c_int
= -2147459070;
957 pub const EINVAL
: ::c_int
= -2147483643;
958 pub const ENAMETOOLONG
: ::c_int
= -2147459068;
959 pub const ENOENT
: ::c_int
= -2147459069;
960 pub const EPERM
: ::c_int
= -2147483633;
961 pub const ENOTDIR
: ::c_int
= -2147459067;
962 pub const EISDIR
: ::c_int
= -2147459063;
963 pub const ENOTEMPTY
: ::c_int
= -2147459066;
964 pub const ENOSPC
: ::c_int
= -2147459065;
965 pub const EROFS
: ::c_int
= -2147459064;
966 pub const EMFILE
: ::c_int
= -2147459062;
967 pub const EXDEV
: ::c_int
= -2147459061;
968 pub const ELOOP
: ::c_int
= -2147459060;
969 pub const ENOEXEC
: ::c_int
= -2147478782;
970 pub const EPIPE
: ::c_int
= -2147459059;
972 pub const IPPROTO_RAW
: ::c_int
= 255;
974 // These are prefixed with POSIX_ on Haiku
975 pub const MADV_NORMAL
: ::c_int
= 1;
976 pub const MADV_SEQUENTIAL
: ::c_int
= 2;
977 pub const MADV_RANDOM
: ::c_int
= 3;
978 pub const MADV_WILLNEED
: ::c_int
= 4;
979 pub const MADV_DONTNEED
: ::c_int
= 5;
980 pub const MADV_FREE
: ::c_int
= 6;
982 // https://github.com/haiku/haiku/blob/HEAD/headers/posix/net/if.h#L80
983 pub const IFF_UP
: ::c_int
= 0x0001;
984 pub const IFF_BROADCAST
: ::c_int
= 0x0002; // valid broadcast address
985 pub const IFF_LOOPBACK
: ::c_int
= 0x0008;
986 pub const IFF_POINTOPOINT
: ::c_int
= 0x0010; // point-to-point link
987 pub const IFF_NOARP
: ::c_int
= 0x0040; // no address resolution
988 pub const IFF_AUTOUP
: ::c_int
= 0x0080; // auto dial
989 pub const IFF_PROMISC
: ::c_int
= 0x0100; // receive all packets
990 pub const IFF_ALLMULTI
: ::c_int
= 0x0200; // receive all multicast packets
991 pub const IFF_SIMPLEX
: ::c_int
= 0x0800; // doesn't receive own transmissions
992 pub const IFF_LINK
: ::c_int
= 0x1000; // has link
993 pub const IFF_AUTO_CONFIGURED
: ::c_int
= 0x2000;
994 pub const IFF_CONFIGURING
: ::c_int
= 0x4000;
995 pub const IFF_MULTICAST
: ::c_int
= 0x8000; // supports multicast
997 pub const AF_UNSPEC
: ::c_int
= 0;
998 pub const AF_INET
: ::c_int
= 1;
999 pub const AF_APPLETALK
: ::c_int
= 2;
1000 pub const AF_ROUTE
: ::c_int
= 3;
1001 pub const AF_LINK
: ::c_int
= 4;
1002 pub const AF_INET6
: ::c_int
= 5;
1003 pub const AF_DLI
: ::c_int
= 6;
1004 pub const AF_IPX
: ::c_int
= 7;
1005 pub const AF_NOTIFY
: ::c_int
= 8;
1006 pub const AF_LOCAL
: ::c_int
= 9;
1007 pub const AF_UNIX
: ::c_int
= AF_LOCAL
;
1008 pub const AF_BLUETOOTH
: ::c_int
= 10;
1010 pub const PF_UNSPEC
: ::c_int
= AF_UNSPEC
;
1011 pub const PF_INET
: ::c_int
= AF_INET
;
1012 pub const PF_ROUTE
: ::c_int
= AF_ROUTE
;
1013 pub const PF_LINK
: ::c_int
= AF_LINK
;
1014 pub const PF_INET6
: ::c_int
= AF_INET6
;
1015 pub const PF_LOCAL
: ::c_int
= AF_LOCAL
;
1016 pub const PF_UNIX
: ::c_int
= AF_UNIX
;
1017 pub const PF_BLUETOOTH
: ::c_int
= AF_BLUETOOTH
;
1019 pub const IP_OPTIONS
: ::c_int
= 1;
1020 pub const IP_HDRINCL
: ::c_int
= 2;
1021 pub const IP_TOS
: ::c_int
= 3;
1022 pub const IP_TTL
: ::c_int
= 4;
1023 pub const IP_RECVOPTS
: ::c_int
= 5;
1024 pub const IP_RECVRETOPTS
: ::c_int
= 6;
1025 pub const IP_RECVDSTADDR
: ::c_int
= 7;
1026 pub const IP_RETOPTS
: ::c_int
= 8;
1027 pub const IP_MULTICAST_IF
: ::c_int
= 9;
1028 pub const IP_MULTICAST_TTL
: ::c_int
= 10;
1029 pub const IP_MULTICAST_LOOP
: ::c_int
= 11;
1030 pub const IP_ADD_MEMBERSHIP
: ::c_int
= 12;
1031 pub const IP_DROP_MEMBERSHIP
: ::c_int
= 13;
1032 pub const IP_BLOCK_SOURCE
: ::c_int
= 14;
1033 pub const IP_UNBLOCK_SOURCE
: ::c_int
= 15;
1034 pub const IP_ADD_SOURCE_MEMBERSHIP
: ::c_int
= 16;
1035 pub const IP_DROP_SOURCE_MEMBERSHIP
: ::c_int
= 17;
1037 pub const TCP_NODELAY
: ::c_int
= 0x01;
1038 pub const TCP_MAXSEG
: ::c_int
= 0x02;
1039 pub const TCP_NOPUSH
: ::c_int
= 0x04;
1040 pub const TCP_NOOPT
: ::c_int
= 0x08;
1042 pub const IF_NAMESIZE
: ::size_t
= 32;
1043 pub const IFNAMSIZ
: ::size_t
= IF_NAMESIZE
;
1045 pub const IPV6_MULTICAST_IF
: ::c_int
= 24;
1046 pub const IPV6_MULTICAST_HOPS
: ::c_int
= 25;
1047 pub const IPV6_MULTICAST_LOOP
: ::c_int
= 26;
1048 pub const IPV6_UNICAST_HOPS
: ::c_int
= 27;
1049 pub const IPV6_JOIN_GROUP
: ::c_int
= 28;
1050 pub const IPV6_LEAVE_GROUP
: ::c_int
= 29;
1051 pub const IPV6_V6ONLY
: ::c_int
= 30;
1052 pub const IPV6_PKTINFO
: ::c_int
= 31;
1053 pub const IPV6_RECVPKTINFO
: ::c_int
= 32;
1054 pub const IPV6_HOPLIMIT
: ::c_int
= 33;
1055 pub const IPV6_RECVHOPLIMIT
: ::c_int
= 34;
1056 pub const IPV6_HOPOPTS
: ::c_int
= 35;
1057 pub const IPV6_DSTOPTS
: ::c_int
= 36;
1058 pub const IPV6_RTHDR
: ::c_int
= 37;
1060 pub const MSG_OOB
: ::c_int
= 0x0001;
1061 pub const MSG_PEEK
: ::c_int
= 0x0002;
1062 pub const MSG_DONTROUTE
: ::c_int
= 0x0004;
1063 pub const MSG_EOR
: ::c_int
= 0x0008;
1064 pub const MSG_TRUNC
: ::c_int
= 0x0010;
1065 pub const MSG_CTRUNC
: ::c_int
= 0x0020;
1066 pub const MSG_WAITALL
: ::c_int
= 0x0040;
1067 pub const MSG_DONTWAIT
: ::c_int
= 0x0080;
1068 pub const MSG_BCAST
: ::c_int
= 0x0100;
1069 pub const MSG_MCAST
: ::c_int
= 0x0200;
1070 pub const MSG_EOF
: ::c_int
= 0x0400;
1071 pub const MSG_NOSIGNAL
: ::c_int
= 0x0800;
1073 pub const SHUT_RD
: ::c_int
= 0;
1074 pub const SHUT_WR
: ::c_int
= 1;
1075 pub const SHUT_RDWR
: ::c_int
= 2;
1077 pub const LOCK_SH
: ::c_int
= 0x01;
1078 pub const LOCK_EX
: ::c_int
= 0x02;
1079 pub const LOCK_NB
: ::c_int
= 0x04;
1080 pub const LOCK_UN
: ::c_int
= 0x08;
1082 pub const MINSIGSTKSZ
: ::size_t
= 8192;
1083 pub const SIGSTKSZ
: ::size_t
= 16384;
1085 pub const IOV_MAX
: ::c_int
= 1024;
1086 pub const PATH_MAX
: ::c_int
= 1024;
1088 pub const SA_NOCLDSTOP
: ::c_int
= 0x01;
1089 pub const SA_NOCLDWAIT
: ::c_int
= 0x02;
1090 pub const SA_RESETHAND
: ::c_int
= 0x04;
1091 pub const SA_NODEFER
: ::c_int
= 0x08;
1092 pub const SA_RESTART
: ::c_int
= 0x10;
1093 pub const SA_ONSTACK
: ::c_int
= 0x20;
1094 pub const SA_SIGINFO
: ::c_int
= 0x40;
1095 pub const SA_NOMASK
: ::c_int
= SA_NODEFER
;
1096 pub const SA_STACK
: ::c_int
= SA_ONSTACK
;
1097 pub const SA_ONESHOT
: ::c_int
= SA_RESETHAND
;
1099 pub const SS_ONSTACK
: ::c_int
= 0x1;
1100 pub const SS_DISABLE
: ::c_int
= 0x2;
1102 pub const FD_SETSIZE
: usize = 1024;
1104 pub const RTLD_LOCAL
: ::c_int
= 0x0;
1105 pub const RTLD_NOW
: ::c_int
= 0x1;
1106 pub const RTLD_GLOBAL
: ::c_int
= 0x2;
1107 pub const RTLD_DEFAULT
: *mut ::c_void
= 0isize
as *mut ::c_void
;
1109 pub const BUFSIZ
: ::c_uint
= 8192;
1110 pub const FILENAME_MAX
: ::c_uint
= 256;
1111 pub const FOPEN_MAX
: ::c_uint
= 128;
1112 pub const L_tmpnam
: ::c_uint
= 512;
1113 pub const TMP_MAX
: ::c_uint
= 32768;
1115 pub const _PC_CHOWN_RESTRICTED
: ::c_int
= 1;
1116 pub const _PC_MAX_CANON
: ::c_int
= 2;
1117 pub const _PC_MAX_INPUT
: ::c_int
= 3;
1118 pub const _PC_NAME_MAX
: ::c_int
= 4;
1119 pub const _PC_NO_TRUNC
: ::c_int
= 5;
1120 pub const _PC_PATH_MAX
: ::c_int
= 6;
1121 pub const _PC_PIPE_BUF
: ::c_int
= 7;
1122 pub const _PC_VDISABLE
: ::c_int
= 8;
1123 pub const _PC_LINK_MAX
: ::c_int
= 25;
1124 pub const _PC_SYNC_IO
: ::c_int
= 26;
1125 pub const _PC_ASYNC_IO
: ::c_int
= 27;
1126 pub const _PC_PRIO_IO
: ::c_int
= 28;
1127 pub const _PC_SOCK_MAXBUF
: ::c_int
= 29;
1128 pub const _PC_FILESIZEBITS
: ::c_int
= 30;
1129 pub const _PC_REC_INCR_XFER_SIZE
: ::c_int
= 31;
1130 pub const _PC_REC_MAX_XFER_SIZE
: ::c_int
= 32;
1131 pub const _PC_REC_MIN_XFER_SIZE
: ::c_int
= 33;
1132 pub const _PC_REC_XFER_ALIGN
: ::c_int
= 34;
1133 pub const _PC_ALLOC_SIZE_MIN
: ::c_int
= 35;
1134 pub const _PC_SYMLINK_MAX
: ::c_int
= 36;
1135 pub const _PC_2_SYMLINKS
: ::c_int
= 37;
1136 pub const _PC_XATTR_EXISTS
: ::c_int
= 38;
1137 pub const _PC_XATTR_ENABLED
: ::c_int
= 39;
1139 pub const FIONBIO
: ::c_ulong
= 0xbe000000;
1140 pub const FIONREAD
: ::c_ulong
= 0xbe000001;
1141 pub const FIOSEEKDATA
: ::c_ulong
= 0xbe000002;
1142 pub const FIOSEEKHOLE
: ::c_ulong
= 0xbe000003;
1144 pub const _SC_ARG_MAX
: ::c_int
= 15;
1145 pub const _SC_CHILD_MAX
: ::c_int
= 16;
1146 pub const _SC_CLK_TCK
: ::c_int
= 17;
1147 pub const _SC_JOB_CONTROL
: ::c_int
= 18;
1148 pub const _SC_NGROUPS_MAX
: ::c_int
= 19;
1149 pub const _SC_OPEN_MAX
: ::c_int
= 20;
1150 pub const _SC_SAVED_IDS
: ::c_int
= 21;
1151 pub const _SC_STREAM_MAX
: ::c_int
= 22;
1152 pub const _SC_TZNAME_MAX
: ::c_int
= 23;
1153 pub const _SC_VERSION
: ::c_int
= 24;
1154 pub const _SC_GETGR_R_SIZE_MAX
: ::c_int
= 25;
1155 pub const _SC_GETPW_R_SIZE_MAX
: ::c_int
= 26;
1156 pub const _SC_PAGESIZE
: ::c_int
= 27;
1157 pub const _SC_PAGE_SIZE
: ::c_int
= 27;
1158 pub const _SC_SEM_NSEMS_MAX
: ::c_int
= 28;
1159 pub const _SC_SEM_VALUE_MAX
: ::c_int
= 29;
1160 pub const _SC_SEMAPHORES
: ::c_int
= 30;
1161 pub const _SC_THREADS
: ::c_int
= 31;
1162 pub const _SC_IOV_MAX
: ::c_int
= 32;
1163 pub const _SC_UIO_MAXIOV
: ::c_int
= 32;
1164 pub const _SC_NPROCESSORS_CONF
: ::c_int
= 34;
1165 pub const _SC_NPROCESSORS_ONLN
: ::c_int
= 35;
1166 pub const _SC_ATEXIT_MAX
: ::c_int
= 37;
1167 pub const _SC_PASS_MAX
: ::c_int
= 39;
1168 pub const _SC_PHYS_PAGES
: ::c_int
= 40;
1169 pub const _SC_AVPHYS_PAGES
: ::c_int
= 41;
1170 pub const _SC_PIPE
: ::c_int
= 42;
1171 pub const _SC_SELECT
: ::c_int
= 43;
1172 pub const _SC_POLL
: ::c_int
= 44;
1173 pub const _SC_MAPPED_FILES
: ::c_int
= 45;
1174 pub const _SC_THREAD_PROCESS_SHARED
: ::c_int
= 46;
1175 pub const _SC_THREAD_STACK_MIN
: ::c_int
= 47;
1176 pub const _SC_THREAD_ATTR_STACKADDR
: ::c_int
= 48;
1177 pub const _SC_THREAD_ATTR_STACKSIZE
: ::c_int
= 49;
1178 pub const _SC_THREAD_PRIORITY_SCHEDULING
: ::c_int
= 50;
1179 pub const _SC_REALTIME_SIGNALS
: ::c_int
= 51;
1180 pub const _SC_MEMORY_PROTECTION
: ::c_int
= 52;
1181 pub const _SC_SIGQUEUE_MAX
: ::c_int
= 53;
1182 pub const _SC_RTSIG_MAX
: ::c_int
= 54;
1183 pub const _SC_MONOTONIC_CLOCK
: ::c_int
= 55;
1184 pub const _SC_DELAYTIMER_MAX
: ::c_int
= 56;
1185 pub const _SC_TIMER_MAX
: ::c_int
= 57;
1186 pub const _SC_TIMERS
: ::c_int
= 58;
1187 pub const _SC_CPUTIME
: ::c_int
= 59;
1188 pub const _SC_THREAD_CPUTIME
: ::c_int
= 60;
1189 pub const _SC_HOST_NAME_MAX
: ::c_int
= 61;
1190 pub const _SC_REGEXP
: ::c_int
= 62;
1191 pub const _SC_SYMLOOP_MAX
: ::c_int
= 63;
1192 pub const _SC_SHELL
: ::c_int
= 64;
1193 pub const _SC_TTY_NAME_MAX
: ::c_int
= 65;
1195 pub const PTHREAD_STACK_MIN
: ::size_t
= 8192;
1197 pub const PTHREAD_MUTEX_INITIALIZER
: pthread_mutex_t
= pthread_mutex_t
{
1204 pub const PTHREAD_COND_INITIALIZER
: pthread_cond_t
= pthread_cond_t
{
1211 pub const PTHREAD_RWLOCK_INITIALIZER
: pthread_rwlock_t
= pthread_rwlock_t
{
1218 waiters
: [0 as *mut _
; 2],
1221 pub const PTHREAD_MUTEX_DEFAULT
: ::c_int
= 0;
1222 pub const PTHREAD_MUTEX_NORMAL
: ::c_int
= 1;
1223 pub const PTHREAD_MUTEX_ERRORCHECK
: ::c_int
= 2;
1224 pub const PTHREAD_MUTEX_RECURSIVE
: ::c_int
= 3;
1226 pub const FIOCLEX
: c_ulong
= 0; // FIXME: does not exist on Haiku!
1228 pub const RUSAGE_CHILDREN
: ::c_int
= -1;
1230 pub const SOCK_STREAM
: ::c_int
= 1;
1231 pub const SOCK_DGRAM
: ::c_int
= 2;
1232 pub const SOCK_RAW
: ::c_int
= 3;
1233 pub const SOCK_SEQPACKET
: ::c_int
= 5;
1235 pub const SOL_SOCKET
: ::c_int
= -1;
1236 pub const SO_ACCEPTCONN
: ::c_int
= 0x00000001;
1237 pub const SO_BROADCAST
: ::c_int
= 0x00000002;
1238 pub const SO_DEBUG
: ::c_int
= 0x00000004;
1239 pub const SO_DONTROUTE
: ::c_int
= 0x00000008;
1240 pub const SO_KEEPALIVE
: ::c_int
= 0x00000010;
1241 pub const SO_OOBINLINE
: ::c_int
= 0x00000020;
1242 pub const SO_REUSEADDR
: ::c_int
= 0x00000040;
1243 pub const SO_REUSEPORT
: ::c_int
= 0x00000080;
1244 pub const SO_USELOOPBACK
: ::c_int
= 0x00000100;
1245 pub const SO_LINGER
: ::c_int
= 0x00000200;
1246 pub const SO_SNDBUF
: ::c_int
= 0x40000001;
1247 pub const SO_SNDLOWAT
: ::c_int
= 0x40000002;
1248 pub const SO_SNDTIMEO
: ::c_int
= 0x40000003;
1249 pub const SO_RCVBUF
: ::c_int
= 0x40000004;
1250 pub const SO_RCVLOWAT
: ::c_int
= 0x40000005;
1251 pub const SO_RCVTIMEO
: ::c_int
= 0x40000006;
1252 pub const SO_ERROR
: ::c_int
= 0x40000007;
1253 pub const SO_TYPE
: ::c_int
= 0x40000008;
1254 pub const SO_NONBLOCK
: ::c_int
= 0x40000009;
1255 pub const SO_BINDTODEVICE
: ::c_int
= 0x4000000a;
1256 pub const SO_PEERCRED
: ::c_int
= 0x4000000b;
1258 pub const SCM_RIGHTS
: ::c_int
= 0x01;
1260 pub const SOMAXCONN
: ::c_int
= 32;
1262 pub const NI_MAXHOST
: ::size_t
= 1025;
1264 pub const WNOHANG
: ::c_int
= 0x01;
1265 pub const WUNTRACED
: ::c_int
= 0x02;
1266 pub const WCONTINUED
: ::c_int
= 0x04;
1267 pub const WEXITED
: ::c_int
= 0x08;
1268 pub const WSTOPPED
: ::c_int
= 0x10;
1269 pub const WNOWAIT
: ::c_int
= 0x20;
1271 // si_code values for SIGBUS signal
1272 pub const BUS_ADRALN
: ::c_int
= 40;
1273 pub const BUS_ADRERR
: ::c_int
= 41;
1274 pub const BUS_OBJERR
: ::c_int
= 42;
1276 // si_code values for SIGCHLD signal
1277 pub const CLD_EXITED
: ::c_int
= 60;
1278 pub const CLD_KILLED
: ::c_int
= 61;
1279 pub const CLD_DUMPED
: ::c_int
= 62;
1280 pub const CLD_TRAPPED
: ::c_int
= 63;
1281 pub const CLD_STOPPED
: ::c_int
= 64;
1282 pub const CLD_CONTINUED
: ::c_int
= 65;
1284 pub const P_ALL
: idtype_t
= 0;
1285 pub const P_PID
: idtype_t
= 1;
1286 pub const P_PGID
: idtype_t
= 2;
1288 pub const UTIME_OMIT
: c_long
= 1000000001;
1289 pub const UTIME_NOW
: c_long
= 1000000000;
1291 pub const VINTR
: usize = 0;
1292 pub const VQUIT
: usize = 1;
1293 pub const VERASE
: usize = 2;
1294 pub const VKILL
: usize = 3;
1295 pub const VEOF
: usize = 4;
1296 pub const VEOL
: usize = 5;
1297 pub const VMIN
: usize = 4;
1298 pub const VTIME
: usize = 5;
1299 pub const VEOL2
: usize = 6;
1300 pub const VSWTCH
: usize = 7;
1301 pub const VSTART
: usize = 8;
1302 pub const VSTOP
: usize = 9;
1303 pub const VSUSP
: usize = 10;
1305 pub const IGNBRK
: ::tcflag_t
= 0x01;
1306 pub const BRKINT
: ::tcflag_t
= 0x02;
1307 pub const IGNPAR
: ::tcflag_t
= 0x04;
1308 pub const PARMRK
: ::tcflag_t
= 0x08;
1309 pub const INPCK
: ::tcflag_t
= 0x10;
1310 pub const ISTRIP
: ::tcflag_t
= 0x20;
1311 pub const INLCR
: ::tcflag_t
= 0x40;
1312 pub const IGNCR
: ::tcflag_t
= 0x80;
1313 pub const ICRNL
: ::tcflag_t
= 0x100;
1314 pub const IUCLC
: ::tcflag_t
= 0x200;
1315 pub const IXON
: ::tcflag_t
= 0x400;
1316 pub const IXANY
: ::tcflag_t
= 0x800;
1317 pub const IXOFF
: ::tcflag_t
= 0x1000;
1319 pub const OPOST
: ::tcflag_t
= 0x00000001;
1320 pub const OLCUC
: ::tcflag_t
= 0x00000002;
1321 pub const ONLCR
: ::tcflag_t
= 0x00000004;
1322 pub const OCRNL
: ::tcflag_t
= 0x00000008;
1323 pub const ONOCR
: ::tcflag_t
= 0x00000010;
1324 pub const ONLRET
: ::tcflag_t
= 0x00000020;
1325 pub const OFILL
: ::tcflag_t
= 0x00000040;
1326 pub const OFDEL
: ::tcflag_t
= 0x00000080;
1327 pub const NLDLY
: ::tcflag_t
= 0x00000100;
1328 pub const NL0
: ::tcflag_t
= 0x00000000;
1329 pub const NL1
: ::tcflag_t
= 0x00000100;
1330 pub const CRDLY
: ::tcflag_t
= 0x00000600;
1331 pub const CR0
: ::tcflag_t
= 0x00000000;
1332 pub const CR1
: ::tcflag_t
= 0x00000200;
1333 pub const CR2
: ::tcflag_t
= 0x00000400;
1334 pub const CR3
: ::tcflag_t
= 0x00000600;
1335 pub const TABDLY
: ::tcflag_t
= 0x00001800;
1336 pub const TAB0
: ::tcflag_t
= 0x00000000;
1337 pub const TAB1
: ::tcflag_t
= 0x00000800;
1338 pub const TAB2
: ::tcflag_t
= 0x00001000;
1339 pub const TAB3
: ::tcflag_t
= 0x00001800;
1340 pub const BSDLY
: ::tcflag_t
= 0x00002000;
1341 pub const BS0
: ::tcflag_t
= 0x00000000;
1342 pub const BS1
: ::tcflag_t
= 0x00002000;
1343 pub const VTDLY
: ::tcflag_t
= 0x00004000;
1344 pub const VT0
: ::tcflag_t
= 0x00000000;
1345 pub const VT1
: ::tcflag_t
= 0x00004000;
1346 pub const FFDLY
: ::tcflag_t
= 0x00008000;
1347 pub const FF0
: ::tcflag_t
= 0x00000000;
1348 pub const FF1
: ::tcflag_t
= 0x00008000;
1350 pub const CSIZE
: ::tcflag_t
= 0x00000020;
1351 pub const CS5
: ::tcflag_t
= 0x00000000;
1352 pub const CS6
: ::tcflag_t
= 0x00000000;
1353 pub const CS7
: ::tcflag_t
= 0x00000000;
1354 pub const CS8
: ::tcflag_t
= 0x00000020;
1355 pub const CSTOPB
: ::tcflag_t
= 0x00000040;
1356 pub const CREAD
: ::tcflag_t
= 0x00000080;
1357 pub const PARENB
: ::tcflag_t
= 0x00000100;
1358 pub const PARODD
: ::tcflag_t
= 0x00000200;
1359 pub const HUPCL
: ::tcflag_t
= 0x00000400;
1360 pub const CLOCAL
: ::tcflag_t
= 0x00000800;
1361 pub const XLOBLK
: ::tcflag_t
= 0x00001000;
1362 pub const CTSFLOW
: ::tcflag_t
= 0x00002000;
1363 pub const RTSFLOW
: ::tcflag_t
= 0x00004000;
1364 pub const CRTSCTS
: ::tcflag_t
= RTSFLOW
| CTSFLOW
;
1366 pub const ISIG
: ::tcflag_t
= 0x00000001;
1367 pub const ICANON
: ::tcflag_t
= 0x00000002;
1368 pub const XCASE
: ::tcflag_t
= 0x00000004;
1369 pub const ECHO
: ::tcflag_t
= 0x00000008;
1370 pub const ECHOE
: ::tcflag_t
= 0x00000010;
1371 pub const ECHOK
: ::tcflag_t
= 0x00000020;
1372 pub const ECHONL
: ::tcflag_t
= 0x00000040;
1373 pub const NOFLSH
: ::tcflag_t
= 0x00000080;
1374 pub const TOSTOP
: ::tcflag_t
= 0x00000100;
1375 pub const IEXTEN
: ::tcflag_t
= 0x00000200;
1376 pub const ECHOCTL
: ::tcflag_t
= 0x00000400;
1377 pub const ECHOPRT
: ::tcflag_t
= 0x00000800;
1378 pub const ECHOKE
: ::tcflag_t
= 0x00001000;
1379 pub const FLUSHO
: ::tcflag_t
= 0x00002000;
1380 pub const PENDIN
: ::tcflag_t
= 0x00004000;
1382 pub const TCGB_CTS
: ::c_int
= 0x01;
1383 pub const TCGB_DSR
: ::c_int
= 0x02;
1384 pub const TCGB_RI
: ::c_int
= 0x04;
1385 pub const TCGB_DCD
: ::c_int
= 0x08;
1386 pub const TIOCM_CTS
: ::c_int
= TCGB_CTS
;
1387 pub const TIOCM_CD
: ::c_int
= TCGB_DCD
;
1388 pub const TIOCM_CAR
: ::c_int
= TIOCM_CD
;
1389 pub const TIOCM_RI
: ::c_int
= TCGB_RI
;
1390 pub const TIOCM_DSR
: ::c_int
= TCGB_DSR
;
1391 pub const TIOCM_DTR
: ::c_int
= 0x10;
1392 pub const TIOCM_RTS
: ::c_int
= 0x20;
1394 pub const B0
: speed_t
= 0x00;
1395 pub const B50
: speed_t
= 0x01;
1396 pub const B75
: speed_t
= 0x02;
1397 pub const B110
: speed_t
= 0x03;
1398 pub const B134
: speed_t
= 0x04;
1399 pub const B150
: speed_t
= 0x05;
1400 pub const B200
: speed_t
= 0x06;
1401 pub const B300
: speed_t
= 0x07;
1402 pub const B600
: speed_t
= 0x08;
1403 pub const B1200
: speed_t
= 0x09;
1404 pub const B1800
: speed_t
= 0x0A;
1405 pub const B2400
: speed_t
= 0x0B;
1406 pub const B4800
: speed_t
= 0x0C;
1407 pub const B9600
: speed_t
= 0x0D;
1408 pub const B19200
: speed_t
= 0x0E;
1409 pub const B38400
: speed_t
= 0x0F;
1410 pub const B57600
: speed_t
= 0x10;
1411 pub const B115200
: speed_t
= 0x11;
1412 pub const B230400
: speed_t
= 0x12;
1413 pub const B31250
: speed_t
= 0x13;
1415 pub const TCSANOW
: ::c_int
= 0x01;
1416 pub const TCSADRAIN
: ::c_int
= 0x02;
1417 pub const TCSAFLUSH
: ::c_int
= 0x04;
1419 pub const TCOOFF
: ::c_int
= 0x01;
1420 pub const TCOON
: ::c_int
= 0x02;
1421 pub const TCIOFF
: ::c_int
= 0x04;
1422 pub const TCION
: ::c_int
= 0x08;
1424 pub const TCIFLUSH
: ::c_int
= 0x01;
1425 pub const TCOFLUSH
: ::c_int
= 0x02;
1426 pub const TCIOFLUSH
: ::c_int
= 0x03;
1428 pub const TCGETA
: ::c_ulong
= 0x8000;
1429 pub const TCSETA
: ::c_ulong
= TCGETA
+ 1;
1430 pub const TCSETAF
: ::c_ulong
= TCGETA
+ 2;
1431 pub const TCSETAW
: ::c_ulong
= TCGETA
+ 3;
1432 pub const TCWAITEVENT
: ::c_ulong
= TCGETA
+ 4;
1433 pub const TCSBRK
: ::c_ulong
= TCGETA
+ 5;
1434 pub const TCFLSH
: ::c_ulong
= TCGETA
+ 6;
1435 pub const TCXONC
: ::c_ulong
= TCGETA
+ 7;
1436 pub const TCQUERYCONNECTED
: ::c_ulong
= TCGETA
+ 8;
1437 pub const TCGETBITS
: ::c_ulong
= TCGETA
+ 9;
1438 pub const TCSETDTR
: ::c_ulong
= TCGETA
+ 10;
1439 pub const TCSETRTS
: ::c_ulong
= TCGETA
+ 11;
1440 pub const TIOCGWINSZ
: ::c_ulong
= TCGETA
+ 12;
1441 pub const TIOCSWINSZ
: ::c_ulong
= TCGETA
+ 13;
1442 pub const TCVTIME
: ::c_ulong
= TCGETA
+ 14;
1443 pub const TIOCGPGRP
: ::c_ulong
= TCGETA
+ 15;
1444 pub const TIOCSPGRP
: ::c_ulong
= TCGETA
+ 16;
1445 pub const TIOCSCTTY
: ::c_ulong
= TCGETA
+ 17;
1446 pub const TIOCMGET
: ::c_ulong
= TCGETA
+ 18;
1447 pub const TIOCMSET
: ::c_ulong
= TCGETA
+ 19;
1448 pub const TIOCSBRK
: ::c_ulong
= TCGETA
+ 20;
1449 pub const TIOCCBRK
: ::c_ulong
= TCGETA
+ 21;
1450 pub const TIOCMBIS
: ::c_ulong
= TCGETA
+ 22;
1451 pub const TIOCMBIC
: ::c_ulong
= TCGETA
+ 23;
1453 pub const PRIO_PROCESS
: ::c_int
= 0;
1454 pub const PRIO_PGRP
: ::c_int
= 1;
1455 pub const PRIO_USER
: ::c_int
= 2;
1457 // utmpx entry types
1458 pub const EMPTY
: ::c_short
= 0;
1459 pub const BOOT_TIME
: ::c_short
= 1;
1460 pub const OLD_TIME
: ::c_short
= 2;
1461 pub const NEW_TIME
: ::c_short
= 3;
1462 pub const USER_PROCESS
: ::c_short
= 4;
1463 pub const INIT_PROCESS
: ::c_short
= 5;
1464 pub const LOGIN_PROCESS
: ::c_short
= 6;
1465 pub const DEAD_PROCESS
: ::c_short
= 7;
1467 pub const LOG_PID
: ::c_int
= 1 << 12;
1468 pub const LOG_CONS
: ::c_int
= 2 << 12;
1469 pub const LOG_ODELAY
: ::c_int
= 4 << 12;
1470 pub const LOG_NDELAY
: ::c_int
= 8 << 12;
1471 pub const LOG_SERIAL
: ::c_int
= 16 << 12;
1472 pub const LOG_PERROR
: ::c_int
= 32 << 12;
1473 pub const LOG_NOWAIT
: ::c_int
= 64 << 12;
1476 pub const POSIX_SPAWN_RESETIDS
: ::c_int
= 0x01;
1477 pub const POSIX_SPAWN_SETPGROUP
: ::c_int
= 0x02;
1478 pub const POSIX_SPAWN_SETSIGDEF
: ::c_int
= 0x10;
1479 pub const POSIX_SPAWN_SETSIGMASK
: ::c_int
= 0x20;
1480 pub const POSIX_SPAWN_SETSID
: ::c_int
= 0x40;
1483 {const}
fn CMSG_ALIGN(len
: usize) -> usize {
1484 len
+ ::mem
::size_of
::<usize>() - 1 & !(::mem
::size_of
::<usize>() - 1)
1489 pub fn CMSG_FIRSTHDR(mhdr
: *const msghdr
) -> *mut cmsghdr
{
1490 if (*mhdr
).msg_controllen
as usize >= ::mem
::size_of
::<cmsghdr
>() {
1491 (*mhdr
).msg_control
as *mut cmsghdr
1497 pub fn CMSG_DATA(cmsg
: *const ::cmsghdr
) -> *mut ::c_uchar
{
1498 (cmsg
as *mut ::c_uchar
)
1499 .offset(CMSG_ALIGN(::mem
::size_of
::<::cmsghdr
>()) as isize)
1502 pub {const}
fn CMSG_SPACE(length
: ::c_uint
) -> ::c_uint
{
1503 (CMSG_ALIGN(length
as usize) + CMSG_ALIGN(::mem
::size_of
::<cmsghdr
>()))
1507 pub {const}
fn CMSG_LEN(length
: ::c_uint
) -> ::c_uint
{
1508 CMSG_ALIGN(::mem
::size_of
::<cmsghdr
>()) as ::c_uint
+ length
1511 pub fn CMSG_NXTHDR(mhdr
: *const msghdr
,
1512 cmsg
: *const cmsghdr
) -> *mut cmsghdr
{
1514 return ::CMSG_FIRSTHDR(mhdr
);
1516 let next
= cmsg
as usize + CMSG_ALIGN((*cmsg
).cmsg_len
as usize)
1517 + CMSG_ALIGN(::mem
::size_of
::<::cmsghdr
>());
1518 let max
= (*mhdr
).msg_control
as usize
1519 + (*mhdr
).msg_controllen
as usize;
1523 (cmsg
as usize + CMSG_ALIGN((*cmsg
).cmsg_len
as usize))
1528 pub fn FD_CLR(fd
: ::c_int
, set
: *mut fd_set
) -> () {
1529 let fd
= fd
as usize;
1530 let size
= ::mem
::size_of_val(&(*set
).fds_bits
[0]) * 8;
1531 (*set
).fds_bits
[fd
/ size
] &= !(1 << (fd
% size
));
1535 pub fn FD_ISSET(fd
: ::c_int
, set
: *const fd_set
) -> bool
{
1536 let fd
= fd
as usize;
1537 let size
= ::mem
::size_of_val(&(*set
).fds_bits
[0]) * 8;
1538 return ((*set
).fds_bits
[fd
/ size
] & (1 << (fd
% size
))) != 0
1541 pub fn FD_SET(fd
: ::c_int
, set
: *mut fd_set
) -> () {
1542 let fd
= fd
as usize;
1543 let size
= ::mem
::size_of_val(&(*set
).fds_bits
[0]) * 8;
1544 (*set
).fds_bits
[fd
/ size
] |= 1 << (fd
% size
);
1548 pub fn FD_ZERO(set
: *mut fd_set
) -> () {
1549 for slot
in (*set
).fds_bits
.iter_mut() {
1556 pub {const}
fn WIFEXITED(status
: ::c_int
) -> bool
{
1557 (status
& !0xff) == 0
1560 pub {const}
fn WEXITSTATUS(status
: ::c_int
) -> ::c_int
{
1564 pub {const}
fn WIFSIGNALED(status
: ::c_int
) -> bool
{
1565 ((status
>> 8) & 0xff) != 0
1568 pub {const}
fn WTERMSIG(status
: ::c_int
) -> ::c_int
{
1569 (status
>> 8) & 0xff
1572 pub {const}
fn WIFSTOPPED(status
: ::c_int
) -> bool
{
1573 ((status
>> 16) & 0xff) != 0
1576 pub {const}
fn WSTOPSIG(status
: ::c_int
) -> ::c_int
{
1577 (status
>> 16) & 0xff
1580 // actually WIFCORED, but this is used everywhere else
1581 pub {const}
fn WCOREDUMP(status
: ::c_int
) -> bool
{
1582 (status
& 0x10000) != 0
1585 pub {const}
fn WIFCONTINUED(status
: ::c_int
) -> bool
{
1586 (status
& 0x20000) != 0
1591 pub fn getrlimit(resource
: ::c_int
, rlim
: *mut ::rlimit
) -> ::c_int
;
1592 pub fn setrlimit(resource
: ::c_int
, rlim
: *const ::rlimit
) -> ::c_int
;
1593 pub fn getpriority(which
: ::c_int
, who
: id_t
) -> ::c_int
;
1594 pub fn setpriority(which
: ::c_int
, who
: id_t
, priority
: ::c_int
) -> ::c_int
;
1596 pub fn endusershell();
1597 pub fn getpass(prompt
: *const ::c_char
) -> *mut ::c_char
;
1598 pub fn getusershell() -> *mut ::c_char
;
1599 pub fn issetugid() -> ::c_int
;
1600 pub fn setusershell();
1604 path
: *const ::c_char
,
1605 times
: *const ::timespec
,
1608 pub fn futimens(fd
: ::c_int
, times
: *const ::timespec
) -> ::c_int
;
1609 pub fn strerror_r(errnum
: ::c_int
, buf
: *mut c_char
, buflen
: ::size_t
) -> ::c_int
;
1610 pub fn _errnop() -> *mut ::c_int
;
1612 pub fn abs(i
: ::c_int
) -> ::c_int
;
1613 pub fn labs(i
: ::c_long
) -> ::c_long
;
1614 pub fn rand() -> ::c_int
;
1615 pub fn srand(seed
: ::c_uint
);
1616 pub fn getifaddrs(ifap
: *mut *mut ::ifaddrs
) -> ::c_int
;
1617 pub fn freeifaddrs(ifa
: *mut ::ifaddrs
);
1621 timeout
: *const ::timespec
,
1622 sigMask
: *const sigset_t
,
1625 pub fn getspent() -> *mut spwd
;
1629 bufferSize
: ::size_t
,
1630 res
: *mut *mut spwd
,
1634 pub fn getspnam(name
: *const ::c_char
) -> *mut spwd
;
1636 name
: *const ::c_char
,
1638 buffer
: *mut ::c_char
,
1639 bufferSize
: ::size_t
,
1640 res
: *mut *mut spwd
,
1642 pub fn sgetspent(line
: *const ::c_char
) -> *mut spwd
;
1644 line
: *const ::c_char
,
1646 buffer
: *mut ::c_char
,
1647 bufferSize
: ::size_t
,
1648 res
: *mut *mut spwd
,
1650 pub fn fgetspent(file
: *mut ::FILE
) -> *mut spwd
;
1654 buffer
: *mut ::c_char
,
1655 bufferSize
: ::size_t
,
1656 res
: *mut *mut spwd
,
1658 pub fn mkfifoat(dirfd
: ::c_int
, pathname
: *const ::c_char
, mode
: ::mode_t
) -> ::c_int
;
1661 pathname
: *const ::c_char
,
1665 pub fn sem_destroy(sem
: *mut sem_t
) -> ::c_int
;
1666 pub fn sem_init(sem
: *mut sem_t
, pshared
: ::c_int
, value
: ::c_uint
) -> ::c_int
;
1668 pub fn clock_getres(clk_id
: ::clockid_t
, tp
: *mut ::timespec
) -> ::c_int
;
1669 pub fn clock_gettime(clk_id
: ::clockid_t
, tp
: *mut ::timespec
) -> ::c_int
;
1670 pub fn clock_settime(clk_id
: ::clockid_t
, tp
: *const ::timespec
) -> ::c_int
;
1671 pub fn clock_getcpuclockid(pid
: ::pid_t
, clk_id
: *mut ::clockid_t
) -> ::c_int
;
1672 pub fn pthread_create(
1673 thread
: *mut ::pthread_t
,
1674 attr
: *const ::pthread_attr_t
,
1675 f
: extern "C" fn(*mut ::c_void
) -> *mut ::c_void
,
1676 value
: *mut ::c_void
,
1678 pub fn pthread_attr_getguardsize(
1679 attr
: *const ::pthread_attr_t
,
1680 guardsize
: *mut ::size_t
,
1682 pub fn pthread_attr_getstack(
1683 attr
: *const ::pthread_attr_t
,
1684 stackaddr
: *mut *mut ::c_void
,
1685 stacksize
: *mut ::size_t
,
1687 pub fn pthread_condattr_getclock(
1688 attr
: *const pthread_condattr_t
,
1689 clock_id
: *mut clockid_t
,
1691 pub fn pthread_condattr_setclock(
1692 attr
: *mut pthread_condattr_t
,
1693 clock_id
: ::clockid_t
,
1695 pub fn valloc(numBytes
: ::size_t
) -> *mut ::c_void
;
1696 pub fn malloc_usable_size(ptr
: *mut ::c_void
) -> ::size_t
;
1697 pub fn memalign(align
: ::size_t
, size
: ::size_t
) -> *mut ::c_void
;
1698 pub fn setgroups(ngroups
: ::c_int
, ptr
: *const ::gid_t
) -> ::c_int
;
1699 pub fn initgroups(name
: *const ::c_char
, basegid
: ::gid_t
) -> ::c_int
;
1700 pub fn ioctl(fd
: ::c_int
, request
: ::c_ulong
, ...) -> ::c_int
;
1701 pub fn mprotect(addr
: *mut ::c_void
, len
: ::size_t
, prot
: ::c_int
) -> ::c_int
;
1702 pub fn dirfd(dirp
: *mut ::DIR
) -> ::c_int
;
1704 sa
: *const ::sockaddr
,
1706 host
: *mut ::c_char
,
1707 hostlen
: ::socklen_t
,
1708 serv
: *mut ::c_char
,
1709 sevlen
: ::socklen_t
,
1712 pub fn pthread_mutex_timedlock(
1713 lock
: *mut pthread_mutex_t
,
1714 abstime
: *const ::timespec
,
1716 pub fn pthread_spin_init(lock
: *mut ::pthread_spinlock_t
, pshared
: ::c_int
) -> ::c_int
;
1717 pub fn pthread_spin_destroy(lock
: *mut ::pthread_spinlock_t
) -> ::c_int
;
1718 pub fn pthread_spin_lock(lock
: *mut ::pthread_spinlock_t
) -> ::c_int
;
1719 pub fn pthread_spin_trylock(lock
: *mut ::pthread_spinlock_t
) -> ::c_int
;
1720 pub fn pthread_spin_unlock(lock
: *mut ::pthread_spinlock_t
) -> ::c_int
;
1721 pub fn waitid(idtype
: idtype_t
, id
: id_t
, infop
: *mut ::siginfo_t
, options
: ::c_int
)
1725 pattern
: *const ::c_char
,
1727 errfunc
: ::Option
<extern "C" fn(epath
: *const ::c_char
, errno
: ::c_int
) -> ::c_int
>,
1728 pglob
: *mut ::glob_t
,
1730 pub fn globfree(pglob
: *mut ::glob_t
);
1731 pub fn gettimeofday(tp
: *mut ::timeval
, tz
: *mut ::c_void
) -> ::c_int
;
1732 pub fn posix_madvise(addr
: *mut ::c_void
, len
: ::size_t
, advice
: ::c_int
) -> ::c_int
;
1733 pub fn posix_fadvise(fd
: ::c_int
, offset
: ::off_t
, len
: ::off_t
, advice
: ::c_int
) -> ::c_int
;
1734 pub fn posix_fallocate(fd
: ::c_int
, offset
: ::off_t
, len
: ::off_t
) -> ::c_int
;
1736 pub fn shm_open(name
: *const ::c_char
, oflag
: ::c_int
, mode
: ::mode_t
) -> ::c_int
;
1737 pub fn shm_unlink(name
: *const ::c_char
) -> ::c_int
;
1739 pub fn seekdir(dirp
: *mut ::DIR
, loc
: ::c_long
);
1741 pub fn telldir(dirp
: *mut ::DIR
) -> ::c_long
;
1742 pub fn madvise(addr
: *mut ::c_void
, len
: ::size_t
, advice
: ::c_int
) -> ::c_int
;
1744 pub fn msync(addr
: *mut ::c_void
, len
: ::size_t
, flags
: ::c_int
) -> ::c_int
;
1751 addr
: *mut ::sockaddr
,
1752 addrlen
: *mut ::socklen_t
,
1754 pub fn mkstemps(template
: *mut ::c_char
, suffixlen
: ::c_int
) -> ::c_int
;
1755 pub fn nl_langinfo(item
: ::nl_item
) -> *mut ::c_char
;
1757 pub fn bind(socket
: ::c_int
, address
: *const ::sockaddr
, address_len
: ::socklen_t
) -> ::c_int
;
1759 pub fn writev(fd
: ::c_int
, iov
: *const ::iovec
, count
: ::c_int
) -> ::ssize_t
;
1760 pub fn readv(fd
: ::c_int
, iov
: *const ::iovec
, count
: ::c_int
) -> ::ssize_t
;
1762 pub fn sendmsg(fd
: ::c_int
, msg
: *const ::msghdr
, flags
: ::c_int
) -> ::ssize_t
;
1763 pub fn recvmsg(fd
: ::c_int
, msg
: *mut ::msghdr
, flags
: ::c_int
) -> ::ssize_t
;
1765 file
: *const ::c_char
,
1766 argv
: *const *const ::c_char
,
1767 environment
: *const *const ::c_char
,
1774 result
: *mut *mut ::group
,
1776 pub fn getgrouplist(
1777 user
: *const ::c_char
,
1779 grouplist
: *mut ::gid_t
,
1780 groupcount
: *mut ::c_int
,
1782 pub fn sigaltstack(ss
: *const stack_t
, oss
: *mut stack_t
) -> ::c_int
;
1783 pub fn sem_close(sem
: *mut sem_t
) -> ::c_int
;
1784 pub fn getdtablesize() -> ::c_int
;
1786 name
: *const ::c_char
,
1790 result
: *mut *mut ::group
,
1792 pub fn pthread_sigmask(how
: ::c_int
, set
: *const sigset_t
, oldset
: *mut sigset_t
) -> ::c_int
;
1793 pub fn sem_open(name
: *const ::c_char
, oflag
: ::c_int
, ...) -> *mut sem_t
;
1794 pub fn getgrnam(name
: *const ::c_char
) -> *mut ::group
;
1795 pub fn pthread_kill(thread
: ::pthread_t
, sig
: ::c_int
) -> ::c_int
;
1796 pub fn sem_unlink(name
: *const ::c_char
) -> ::c_int
;
1798 name
: *const ::c_char
,
1802 result
: *mut *mut passwd
,
1809 result
: *mut *mut passwd
,
1811 pub fn getpwent() -> *mut passwd
;
1815 pub fn getgrent() -> *mut ::group
;
1817 pub fn sigwait(set
: *const sigset_t
, sig
: *mut ::c_int
) -> ::c_int
;
1818 pub fn pthread_atfork(
1819 prepare
: ::Option
<unsafe extern "C" fn()>,
1820 parent
: ::Option
<unsafe extern "C" fn()>,
1821 child
: ::Option
<unsafe extern "C" fn()>,
1823 pub fn getgrgid(gid
: ::gid_t
) -> *mut ::group
;
1824 pub fn popen(command
: *const c_char
, mode
: *const c_char
) -> *mut ::FILE
;
1825 pub fn sethostname(name
: *const ::c_char
, len
: ::size_t
) -> ::c_int
;
1826 pub fn uname(buf
: *mut ::utsname
) -> ::c_int
;
1827 pub fn getutxent() -> *mut utmpx
;
1828 pub fn getutxid(ut
: *const utmpx
) -> *mut utmpx
;
1829 pub fn getutxline(ut
: *const utmpx
) -> *mut utmpx
;
1830 pub fn pututxline(ut
: *const utmpx
) -> *mut utmpx
;
1835 pathname
: *const ::c_char
,
1840 pub fn sigtimedwait(
1841 set
: *const sigset_t
,
1842 info
: *mut siginfo_t
,
1843 timeout
: *const ::timespec
,
1845 pub fn sigwaitinfo(set
: *const sigset_t
, info
: *mut siginfo_t
) -> ::c_int
;
1847 pub fn getitimer(which
: ::c_int
, curr_value
: *mut ::itimerval
) -> ::c_int
;
1850 new_value
: *const ::itimerval
,
1851 old_value
: *mut ::itimerval
,
1854 pub fn regcomp(preg
: *mut regex_t
, pattern
: *const ::c_char
, cflags
: ::c_int
) -> ::c_int
;
1857 preg
: *const regex_t
,
1858 input
: *const ::c_char
,
1860 pmatch
: *mut regmatch_t
,
1866 preg
: *const regex_t
,
1867 errbuf
: *mut ::c_char
,
1868 errbuf_size
: ::size_t
,
1871 pub fn regfree(preg
: *mut regex_t
);
1873 pub fn msgctl(msqid
: ::c_int
, cmd
: ::c_int
, buf
: *mut msqid_ds
) -> ::c_int
;
1874 pub fn msgget(key
: ::key_t
, msgflg
: ::c_int
) -> ::c_int
;
1877 msgp
: *mut ::c_void
,
1884 msgp
: *const ::c_void
,
1888 pub fn semget(key
: ::key_t
, nsems
: ::c_int
, semflg
: ::c_int
) -> ::c_int
;
1889 pub fn semctl(semid
: ::c_int
, semnum
: ::c_int
, cmd
: ::c_int
, ...) -> ::c_int
;
1890 pub fn semop(semid
: ::c_int
, sops
: *mut sembuf
, nsops
: ::size_t
) -> ::c_int
;
1891 pub fn ftok(pathname
: *const ::c_char
, proj_id
: ::c_int
) -> ::key_t
;
1893 pub fn memrchr(cx
: *const ::c_void
, c
: ::c_int
, n
: ::size_t
) -> *mut ::c_void
;
1896 key
: *const ::c_void
,
1897 base
: *mut ::c_void
,
1898 nelp
: *mut ::size_t
,
1900 compar
: ::Option
<unsafe extern "C" fn(*const ::c_void
, *const ::c_void
) -> ::c_int
>,
1903 key
: *const ::c_void
,
1904 base
: *const ::c_void
,
1905 nelp
: *mut ::size_t
,
1907 compar
: ::Option
<unsafe extern "C" fn(*const ::c_void
, *const ::c_void
) -> ::c_int
>,
1909 pub fn hcreate(nelt
: ::size_t
) -> ::c_int
;
1911 pub fn hsearch(entry
: ::ENTRY
, action
: ::ACTION
) -> *mut ::ENTRY
;
1913 pub fn drand48() -> ::c_double
;
1914 pub fn erand48(xseed
: *mut ::c_ushort
) -> ::c_double
;
1915 pub fn lrand48() -> ::c_long
;
1916 pub fn nrand48(xseed
: *mut ::c_ushort
) -> ::c_long
;
1917 pub fn mrand48() -> ::c_long
;
1918 pub fn jrand48(xseed
: *mut ::c_ushort
) -> ::c_long
;
1919 pub fn srand48(seed
: ::c_long
);
1920 pub fn seed48(xseed
: *mut ::c_ushort
) -> *mut ::c_ushort
;
1921 pub fn lcong48(p
: *mut ::c_ushort
);
1923 pub fn clearenv() -> ::c_int
;
1924 pub fn ctermid(s
: *mut ::c_char
) -> *mut ::c_char
;
1927 pub fn getpagesize() -> ::c_int
;
1929 pub fn brk(addr
: *mut ::c_void
) -> ::c_int
;
1930 pub fn sbrk(increment
: ::intptr_t
) -> *mut ::c_void
;
1934 path
: *const ::c_char
,
1935 file_actions
: *const ::posix_spawn_file_actions_t
,
1936 attrp
: *const ::posix_spawnattr_t
,
1937 argv
: *const *mut ::c_char
,
1938 envp
: *const *mut ::c_char
,
1940 pub fn posix_spawnp(
1942 file
: *const ::c_char
,
1943 file_actions
: *const ::posix_spawn_file_actions_t
,
1944 attrp
: *const ::posix_spawnattr_t
,
1945 argv
: *const *mut ::c_char
,
1946 envp
: *const *mut ::c_char
,
1949 pub fn posix_spawn_file_actions_init(file_actions
: *mut posix_spawn_file_actions_t
) -> ::c_int
;
1950 pub fn posix_spawn_file_actions_destroy(
1951 file_actions
: *mut posix_spawn_file_actions_t
,
1953 pub fn posix_spawn_file_actions_addopen(
1954 file_actions
: *mut posix_spawn_file_actions_t
,
1956 path
: *const ::c_char
,
1960 pub fn posix_spawn_file_actions_addclose(
1961 file_actions
: *mut posix_spawn_file_actions_t
,
1964 pub fn posix_spawn_file_actions_adddup2(
1965 file_actions
: *mut posix_spawn_file_actions_t
,
1970 pub fn posix_spawnattr_init(attr
: *mut posix_spawnattr_t
) -> ::c_int
;
1971 pub fn posix_spawnattr_destroy(attr
: *mut posix_spawnattr_t
) -> ::c_int
;
1972 pub fn posix_spawnattr_getflags(
1973 attr
: *const posix_spawnattr_t
,
1974 _flags
: *mut ::c_short
,
1976 pub fn posix_spawnattr_setflags(attr
: *mut posix_spawnattr_t
, flags
: ::c_short
) -> ::c_int
;
1977 pub fn posix_spawnattr_getpgroup(
1978 attr
: *const posix_spawnattr_t
,
1979 _pgroup
: *mut ::pid_t
,
1981 pub fn posix_spawnattr_setpgroup(attr
: *mut posix_spawnattr_t
, pgroup
: ::pid_t
) -> ::c_int
;
1982 pub fn posix_spawnattr_getsigdefault(
1983 attr
: *const posix_spawnattr_t
,
1984 sigdefault
: *mut ::sigset_t
,
1986 pub fn posix_spawnattr_setsigdefault(
1987 attr
: *mut posix_spawnattr_t
,
1988 sigdefault
: *const ::sigset_t
,
1990 pub fn posix_spawnattr_getsigmask(
1991 attr
: *const posix_spawnattr_t
,
1992 _sigmask
: *mut ::sigset_t
,
1994 pub fn posix_spawnattr_setsigmask(
1995 attr
: *mut posix_spawnattr_t
,
1996 sigmask
: *const ::sigset_t
,
2000 argv
: *const *mut c_char
,
2001 optstring
: *const c_char
,
2002 longopts
: *const option
,
2003 longindex
: *mut ::c_int
,
2005 pub fn strcasecmp_l(
2006 string1
: *const ::c_char
,
2007 string2
: *const ::c_char
,
2010 pub fn strncasecmp_l(
2011 string1
: *const ::c_char
,
2012 string2
: *const ::c_char
,
2018 #[link(name = "bsd")]
2020 pub fn lutimes(file
: *const ::c_char
, times
: *const ::timeval
) -> ::c_int
;
2021 pub fn daemon(nochdir
: ::c_int
, noclose
: ::c_int
) -> ::c_int
;
2023 amaster
: *mut ::c_int
,
2024 name
: *mut ::c_char
,
2025 termp
: *mut termios
,
2026 winp
: *mut ::winsize
,
2029 amaster
: *mut ::c_int
,
2030 aslave
: *mut ::c_int
,
2031 name
: *mut ::c_char
,
2032 termp
: *mut termios
,
2033 winp
: *mut ::winsize
,
2035 pub fn strsep(string
: *mut *mut ::c_char
, delimiters
: *const ::c_char
) -> *mut ::c_char
;
2036 pub fn explicit_bzero(buf
: *mut ::c_void
, len
: ::size_t
);
2037 pub fn login_tty(_fd
: ::c_int
) -> ::c_int
;
2039 pub fn sl_init() -> *mut StringList
;
2040 pub fn sl_add(sl
: *mut StringList
, n
: *mut ::c_char
) -> ::c_int
;
2041 pub fn sl_free(sl
: *mut StringList
, i
: ::c_int
);
2042 pub fn sl_find(sl
: *mut StringList
, n
: *mut ::c_char
) -> *mut ::c_char
;
2044 pub fn getprogname() -> *const ::c_char
;
2045 pub fn setprogname(progname
: *const ::c_char
);
2046 pub fn dl_iterate_phdr(
2048 unsafe extern "C" fn(
2049 info
: *mut dl_phdr_info
,
2051 data
: *mut ::c_void
,
2054 data
: *mut ::c_void
,
2058 #[link(name = "gnu")]
2061 source
: *const ::c_void
,
2062 sourceLength
: ::size_t
,
2063 search
: *const ::c_void
,
2064 searchLength
: ::size_t
,
2069 if #[cfg(target_pointer_width = "64")] {
2071 pub use self::b64
::*;
2074 pub use self::b32
::*;
2079 if #[cfg(target_arch = "x86")] {
2082 // pub use self::x86::*;
2083 } else if #[cfg(target_arch = "x86_64")] {
2085 pub use self::x86_64
::*;
2086 } else if #[cfg(target_arch = "aarch64")] {
2089 // pub use self::aarch64::*;
2094 pub use self::native
::*;