3 pub type c_ulong
= u64;
4 pub type clockid_t
= ::c_int
;
6 pub type blkcnt_t
= i64;
7 pub type clock_t
= i64;
8 pub type daddr_t
= i64;
10 pub type fsblkcnt_t
= u64;
11 pub type fsfilcnt_t
= u64;
14 pub type major_t
= u32;
15 pub type minor_t
= u32;
16 pub type mode_t
= u32;
17 pub type nlink_t
= u32;
18 pub type rlim_t
= u64;
19 pub type speed_t
= u32;
20 pub type tcflag_t
= u32;
21 pub type time_t
= i64;
22 pub type wchar_t
= i32;
23 pub type nfds_t
= ::c_ulong
;
25 pub type suseconds_t
= ::c_long
;
27 pub type useconds_t
= ::c_uint
;
28 pub type socklen_t
= u32;
29 pub type sa_family_t
= u8;
30 pub type pthread_t
= ::uintptr_t
;
31 pub type pthread_key_t
= ::c_uint
;
32 pub type blksize_t
= u32;
33 pub type fflags_t
= u32;
39 pub sa_family
: sa_family_t
,
40 pub sa_data
: [::c_char
; 14],
43 pub struct sockaddr_in
{
44 pub sin_family
: sa_family_t
,
45 pub sin_port
: ::in_port_t
,
46 pub sin_addr
: ::in_addr
,
47 pub sin_zero
: [::c_char
; 8]
50 pub struct sockaddr_in6
{
51 pub sin6_family
: sa_family_t
,
52 pub sin6_port
: ::in_port_t
,
53 pub sin6_flowinfo
: u32,
54 pub sin6_addr
: ::in6_addr
,
55 pub sin6_scope_id
: u32,
56 pub __sin6_src_id
: u32
59 pub struct sockaddr_un
{
60 pub sun_family
: sa_family_t
,
61 pub sun_path
: [c_char
; 108]
65 pub pw_name
: *mut ::c_char
,
66 pub pw_passwd
: *mut ::c_char
,
69 pub pw_age
: *mut ::c_char
,
70 pub pw_comment
: *mut ::c_char
,
71 pub pw_gecos
: *mut ::c_char
,
72 pub pw_dir
: *mut ::c_char
,
73 pub pw_shell
: *mut ::c_char
77 pub ifa_next
: *mut ifaddrs
,
78 pub ifa_name
: *mut ::c_char
,
79 pub ifa_flags
: ::c_ulong
,
80 pub ifa_addr
: *mut ::sockaddr
,
81 pub ifa_netmask
: *mut ::sockaddr
,
82 pub ifa_dstaddr
: *mut ::sockaddr
,
83 pub ifa_data
: *mut ::c_void
99 pub sysname
: [::c_char
; 257],
100 pub nodename
: [::c_char
; 257],
101 pub release
: [::c_char
; 257],
102 pub version
: [::c_char
; 257],
103 pub machine
: [::c_char
; 257],
107 pub msg_name
: *mut ::c_void
,
108 pub msg_namelen
: ::socklen_t
,
109 pub msg_iov
: *mut ::iovec
,
110 pub msg_iovlen
: ::c_int
,
111 pub msg_control
: *mut ::c_void
,
112 pub msg_controllen
: ::socklen_t
,
113 pub msg_flags
: ::c_int
,
117 fds_bits
: [i32; FD_SETSIZE
/ 32],
120 pub struct pthread_attr_t
{
121 __pthread_attrp
: *mut ::c_void
124 pub struct pthread_mutex_t
{
125 __pthread_mutex_flag1
: u16,
126 __pthread_mutex_flag2
: u8,
127 __pthread_mutex_ceiling
: u8,
128 __pthread_mutex_type
: u16,
129 __pthread_mutex_magic
: u16,
130 __pthread_mutex_lock
: u64,
131 __pthread_mutex_data
: u64
134 pub struct pthread_mutexattr_t
{
135 __pthread_mutexattrp
: *mut ::c_void
138 pub struct pthread_cond_t
{
139 __pthread_cond_flag
: [u8; 4],
140 __pthread_cond_type
: u16,
141 __pthread_cond_magic
: u16,
142 __pthread_cond_data
: u64
145 pub struct pthread_rwlock_t
{
146 __pthread_rwlock_readers
: i32,
147 __pthread_rwlock_type
: u16,
148 __pthread_rwlock_magic
: u16,
149 __pthread_rwlock_mutex
: ::pthread_mutex_t
,
150 __pthread_rwlock_readercv
: ::pthread_cond_t
,
151 __pthread_rwlock_writercv
: ::pthread_cond_t
158 pub d_name
: [::c_char
; 1]
162 pub gl_pathc
: ::size_t
,
163 pub gl_pathv
: *mut *mut ::c_char
,
164 pub gl_offs
: ::size_t
,
165 __unused1
: *mut ::c_void
,
169 __unused5
: *mut ::c_void
,
170 __unused6
: *mut ::c_void
,
171 __unused7
: *mut ::c_void
,
172 __unused8
: *mut ::c_void
,
173 __unused9
: *mut ::c_void
,
174 __unused10
: *mut ::c_void
,
177 pub struct sockaddr_storage
{
178 pub ss_family
: ::sa_family_t
,
181 __ss_pad2
: [u8; 240],
184 pub struct addrinfo
{
185 pub ai_flags
: ::c_int
,
186 pub ai_family
: ::c_int
,
187 pub ai_socktype
: ::c_int
,
188 pub ai_protocol
: ::c_int
,
189 pub ai_addrlen
: ::socklen_t
,
190 pub ai_canonname
: *mut ::c_char
,
191 pub ai_addr
: *mut ::sockaddr
,
192 pub ai_next
: *mut addrinfo
,
195 pub struct sigset_t
{
199 pub struct siginfo_t
{
200 pub si_signo
: ::c_int
,
201 pub si_code
: ::c_int
,
202 pub si_errno
: ::c_int
,
204 pub si_addr
: *mut ::c_void
,
208 pub struct sigaction
{
209 pub sa_flags
: ::c_int
,
210 pub sa_sigaction
: ::sighandler_t
,
211 pub sa_mask
: sigset_t
,
215 pub ss_sp
: *mut ::c_void
,
216 pub ss_size
: ::size_t
,
217 pub ss_flags
: ::c_int
,
221 pub f_bsize
: ::c_ulong
,
222 pub f_frsize
: ::c_ulong
,
223 pub f_blocks
: ::fsblkcnt_t
,
224 pub f_bfree
: ::fsblkcnt_t
,
225 pub f_bavail
: ::fsblkcnt_t
,
226 pub f_files
: ::fsfilcnt_t
,
227 pub f_ffree
: ::fsfilcnt_t
,
228 pub f_favail
: ::fsfilcnt_t
,
229 pub f_fsid
: ::c_ulong
,
230 pub f_basetype
: [::c_char
; 16],
231 pub f_flag
: ::c_ulong
,
232 pub f_namemax
: ::c_ulong
,
233 pub f_fstr
: [::c_char
; 32]
236 pub struct sched_param
{
237 pub sched_priority
: ::c_int
,
238 sched_pad
: [::c_int
; 8]
242 pub dli_fname
: *const ::c_char
,
243 pub dli_fbase
: *mut ::c_void
,
244 pub dli_sname
: *const ::c_char
,
245 pub dli_saddr
: *mut ::c_void
,
251 pub st_mode
: ::mode_t
,
252 pub st_nlink
: ::nlink_t
,
255 pub st_rdev
: ::dev_t
,
256 pub st_size
: ::off_t
,
257 pub st_atime
: ::time_t
,
258 pub st_atime_nsec
: ::c_long
,
259 pub st_mtime
: ::time_t
,
260 pub st_mtime_nsec
: ::c_long
,
261 pub st_ctime
: ::time_t
,
262 pub st_ctime_nsec
: ::c_long
,
263 pub st_blksize
: ::blksize_t
,
264 pub st_blocks
: ::blkcnt_t
,
265 __unused
: [::c_char
; 16]
269 pub c_iflag
: ::tcflag_t
,
270 pub c_oflag
: ::tcflag_t
,
271 pub c_cflag
: ::tcflag_t
,
272 pub c_lflag
: ::tcflag_t
,
273 pub c_cc
: [::cc_t
; ::NCCS
]
277 pub const SA_ONSTACK
: ::c_int
= 0x00000001;
278 pub const SA_RESETHAND
: ::c_int
= 0x00000002;
279 pub const SA_RESTART
: ::c_int
= 0x00000004;
280 pub const SA_SIGINFO
: ::c_int
= 0x00000008;
281 pub const SA_NODEFER
: ::c_int
= 0x00000010;
282 pub const SA_NOCLDWAIT
: ::c_int
= 0x00010000;
283 pub const SA_NOCLDSTOP
: ::c_int
= 0x00020000;
285 pub const SS_ONSTACK
: ::c_int
= 1;
286 pub const SS_DISABLE
: ::c_int
= 2;
288 pub const FIONBIO
: ::c_int
= 0x8004667e;
290 pub const SIGCHLD
: ::c_int
= 18;
291 pub const SIGBUS
: ::c_int
= 10;
292 pub const SIG_SETMASK
: ::c_int
= 3;
294 pub const IPV6_MULTICAST_LOOP
: ::c_int
= 0x8;
295 pub const IPV6_V6ONLY
: ::c_int
= 0x27;
297 pub const FD_SETSIZE
: usize = 1024;
299 pub const ST_RDONLY
: ::c_ulong
= 1;
300 pub const ST_NOSUID
: ::c_ulong
= 2;
302 pub const NI_MAXHOST
: ::socklen_t
= 1025;
304 pub const EXIT_FAILURE
: ::c_int
= 1;
305 pub const EXIT_SUCCESS
: ::c_int
= 0;
306 pub const RAND_MAX
: ::c_int
= 32767;
307 pub const EOF
: ::c_int
= -1;
308 pub const SEEK_SET
: ::c_int
= 0;
309 pub const SEEK_CUR
: ::c_int
= 1;
310 pub const SEEK_END
: ::c_int
= 2;
311 pub const _IOFBF
: ::c_int
= 0;
312 pub const _IONBF
: ::c_int
= 4;
313 pub const _IOLBF
: ::c_int
= 64;
314 pub const BUFSIZ
: ::c_uint
= 1024;
315 pub const FOPEN_MAX
: ::c_uint
= 20;
316 pub const FILENAME_MAX
: ::c_uint
= 1024;
317 pub const L_tmpnam
: ::c_uint
= 25;
318 pub const TMP_MAX
: ::c_uint
= 17576;
320 pub const O_RDONLY
: ::c_int
= 0;
321 pub const O_WRONLY
: ::c_int
= 1;
322 pub const O_RDWR
: ::c_int
= 2;
323 pub const O_APPEND
: ::c_int
= 8;
324 pub const O_CREAT
: ::c_int
= 256;
325 pub const O_EXCL
: ::c_int
= 1024;
326 pub const O_NOCTTY
: ::c_int
= 2048;
327 pub const O_TRUNC
: ::c_int
= 512;
328 pub const O_CLOEXEC
: ::c_int
= 0x800000;
329 pub const O_ACCMODE
: ::c_int
= 0x600003;
330 pub const S_IFIFO
: mode_t
= 4096;
331 pub const S_IFCHR
: mode_t
= 8192;
332 pub const S_IFBLK
: mode_t
= 24576;
333 pub const S_IFDIR
: mode_t
= 16384;
334 pub const S_IFREG
: mode_t
= 32768;
335 pub const S_IFLNK
: mode_t
= 40960;
336 pub const S_IFSOCK
: mode_t
= 49152;
337 pub const S_IFMT
: mode_t
= 61440;
338 pub const S_IEXEC
: mode_t
= 64;
339 pub const S_IWRITE
: mode_t
= 128;
340 pub const S_IREAD
: mode_t
= 256;
341 pub const S_IRWXU
: mode_t
= 448;
342 pub const S_IXUSR
: mode_t
= 64;
343 pub const S_IWUSR
: mode_t
= 128;
344 pub const S_IRUSR
: mode_t
= 256;
345 pub const S_IRWXG
: mode_t
= 56;
346 pub const S_IXGRP
: mode_t
= 8;
347 pub const S_IWGRP
: mode_t
= 16;
348 pub const S_IRGRP
: mode_t
= 32;
349 pub const S_IRWXO
: mode_t
= 7;
350 pub const S_IXOTH
: mode_t
= 1;
351 pub const S_IWOTH
: mode_t
= 2;
352 pub const S_IROTH
: mode_t
= 4;
353 pub const F_OK
: ::c_int
= 0;
354 pub const R_OK
: ::c_int
= 4;
355 pub const W_OK
: ::c_int
= 2;
356 pub const X_OK
: ::c_int
= 1;
357 pub const STDIN_FILENO
: ::c_int
= 0;
358 pub const STDOUT_FILENO
: ::c_int
= 1;
359 pub const STDERR_FILENO
: ::c_int
= 2;
360 pub const F_LOCK
: ::c_int
= 1;
361 pub const F_TEST
: ::c_int
= 3;
362 pub const F_TLOCK
: ::c_int
= 2;
363 pub const F_ULOCK
: ::c_int
= 0;
364 pub const F_DUPFD_CLOEXEC
: ::c_int
= 37;
365 pub const SIGHUP
: ::c_int
= 1;
366 pub const SIGINT
: ::c_int
= 2;
367 pub const SIGQUIT
: ::c_int
= 3;
368 pub const SIGILL
: ::c_int
= 4;
369 pub const SIGABRT
: ::c_int
= 6;
370 pub const SIGFPE
: ::c_int
= 8;
371 pub const SIGKILL
: ::c_int
= 9;
372 pub const SIGSEGV
: ::c_int
= 11;
373 pub const SIGPIPE
: ::c_int
= 13;
374 pub const SIGALRM
: ::c_int
= 14;
375 pub const SIGTERM
: ::c_int
= 15;
377 pub const WNOHANG
: ::c_int
= 0x40;
379 pub const PROT_NONE
: ::c_int
= 0;
380 pub const PROT_READ
: ::c_int
= 1;
381 pub const PROT_WRITE
: ::c_int
= 2;
382 pub const PROT_EXEC
: ::c_int
= 4;
384 pub const MAP_SHARED
: ::c_int
= 0x0001;
385 pub const MAP_PRIVATE
: ::c_int
= 0x0002;
386 pub const MAP_FIXED
: ::c_int
= 0x0010;
387 pub const MAP_ANON
: ::c_int
= 0x0100;
389 pub const MAP_FAILED
: *mut ::c_void
= !0 as *mut ::c_void
;
391 pub const MCL_CURRENT
: ::c_int
= 0x0001;
392 pub const MCL_FUTURE
: ::c_int
= 0x0002;
394 pub const MS_SYNC
: ::c_int
= 0x0004;
395 pub const MS_ASYNC
: ::c_int
= 0x0001;
396 pub const MS_INVALIDATE
: ::c_int
= 0x0002;
398 pub const EPERM
: ::c_int
= 1;
399 pub const ENOENT
: ::c_int
= 2;
400 pub const ESRCH
: ::c_int
= 3;
401 pub const EINTR
: ::c_int
= 4;
402 pub const EIO
: ::c_int
= 5;
403 pub const ENXIO
: ::c_int
= 6;
404 pub const E2BIG
: ::c_int
= 7;
405 pub const ENOEXEC
: ::c_int
= 8;
406 pub const EBADF
: ::c_int
= 9;
407 pub const ECHILD
: ::c_int
= 10;
408 pub const EDEADLK
: ::c_int
= 45;
409 pub const ENOMEM
: ::c_int
= 12;
410 pub const EACCES
: ::c_int
= 13;
411 pub const EFAULT
: ::c_int
= 14;
412 pub const ENOTBLK
: ::c_int
= 15;
413 pub const EBUSY
: ::c_int
= 16;
414 pub const EEXIST
: ::c_int
= 17;
415 pub const EXDEV
: ::c_int
= 18;
416 pub const ENODEV
: ::c_int
= 19;
417 pub const ENOTDIR
: ::c_int
= 20;
418 pub const EISDIR
: ::c_int
= 21;
419 pub const EINVAL
: ::c_int
= 22;
420 pub const ENFILE
: ::c_int
= 23;
421 pub const EMFILE
: ::c_int
= 24;
422 pub const ENOTTY
: ::c_int
= 25;
423 pub const ETXTBSY
: ::c_int
= 26;
424 pub const EFBIG
: ::c_int
= 27;
425 pub const ENOSPC
: ::c_int
= 28;
426 pub const ESPIPE
: ::c_int
= 29;
427 pub const EROFS
: ::c_int
= 30;
428 pub const EMLINK
: ::c_int
= 31;
429 pub const EPIPE
: ::c_int
= 32;
430 pub const EDOM
: ::c_int
= 33;
431 pub const ERANGE
: ::c_int
= 34;
432 pub const EAGAIN
: ::c_int
= 11;
433 pub const EWOULDBLOCK
: ::c_int
= 11;
434 pub const EINPROGRESS
: ::c_int
= 150;
435 pub const EALREADY
: ::c_int
= 149;
436 pub const ENOTSOCK
: ::c_int
= 95;
437 pub const EDESTADDRREQ
: ::c_int
= 96;
438 pub const EMSGSIZE
: ::c_int
= 97;
439 pub const EPROTOTYPE
: ::c_int
= 98;
440 pub const ENOPROTOOPT
: ::c_int
= 99;
441 pub const EPROTONOSUPPORT
: ::c_int
= 120;
442 pub const ESOCKTNOSUPPORT
: ::c_int
= 121;
443 pub const EOPNOTSUPP
: ::c_int
= 122;
444 pub const EPFNOSUPPORT
: ::c_int
= 123;
445 pub const EAFNOSUPPORT
: ::c_int
= 124;
446 pub const EADDRINUSE
: ::c_int
= 125;
447 pub const EADDRNOTAVAIL
: ::c_int
= 126;
448 pub const ENETDOWN
: ::c_int
= 127;
449 pub const ENETUNREACH
: ::c_int
= 128;
450 pub const ENETRESET
: ::c_int
= 129;
451 pub const ECONNABORTED
: ::c_int
= 130;
452 pub const ECONNRESET
: ::c_int
= 131;
453 pub const ENOBUFS
: ::c_int
= 132;
454 pub const EISCONN
: ::c_int
= 133;
455 pub const ENOTCONN
: ::c_int
= 134;
456 pub const ESHUTDOWN
: ::c_int
= 143;
457 pub const ETOOMANYREFS
: ::c_int
= 144;
458 pub const ETIMEDOUT
: ::c_int
= 145;
459 pub const ECONNREFUSED
: ::c_int
= 146;
460 pub const ELOOP
: ::c_int
= 90;
461 pub const ENAMETOOLONG
: ::c_int
= 78;
462 pub const EHOSTDOWN
: ::c_int
= 147;
463 pub const EHOSTUNREACH
: ::c_int
= 148;
464 pub const ENOTEMPTY
: ::c_int
= 93;
465 pub const EUSERS
: ::c_int
= 94;
466 pub const EDQUOT
: ::c_int
= 49;
467 pub const ESTALE
: ::c_int
= 151;
468 pub const EREMOTE
: ::c_int
= 66;
469 pub const ENOLCK
: ::c_int
= 46;
470 pub const ENOSYS
: ::c_int
= 89;
471 pub const EIDRM
: ::c_int
= 36;
472 pub const ENOMSG
: ::c_int
= 35;
473 pub const EOVERFLOW
: ::c_int
= 79;
474 pub const ECANCELED
: ::c_int
= 47;
475 pub const EILSEQ
: ::c_int
= 88;
476 pub const EBADMSG
: ::c_int
= 77;
477 pub const EMULTIHOP
: ::c_int
= 74;
478 pub const ENOLINK
: ::c_int
= 67;
479 pub const EPROTO
: ::c_int
= 71;
481 pub const F_DUPFD
: ::c_int
= 0;
482 pub const F_GETFD
: ::c_int
= 1;
483 pub const F_SETFD
: ::c_int
= 2;
484 pub const F_GETFL
: ::c_int
= 3;
485 pub const F_SETFL
: ::c_int
= 4;
487 pub const SIGTRAP
: ::c_int
= 5;
489 pub const GLOB_APPEND
: ::c_int
= 32;
490 pub const GLOB_DOOFFS
: ::c_int
= 16;
491 pub const GLOB_ERR
: ::c_int
= 1;
492 pub const GLOB_MARK
: ::c_int
= 2;
493 pub const GLOB_NOCHECK
: ::c_int
= 8;
494 pub const GLOB_NOSORT
: ::c_int
= 4;
495 pub const GLOB_NOESCAPE
: ::c_int
= 64;
497 pub const GLOB_NOSPACE
: ::c_int
= -2;
498 pub const GLOB_ABORTED
: ::c_int
= -1;
499 pub const GLOB_NOMATCH
: ::c_int
= -3;
501 pub const POSIX_MADV_NORMAL
: ::c_int
= 0;
502 pub const POSIX_MADV_RANDOM
: ::c_int
= 1;
503 pub const POSIX_MADV_SEQUENTIAL
: ::c_int
= 2;
504 pub const POSIX_MADV_WILLNEED
: ::c_int
= 3;
505 pub const POSIX_MADV_DONTNEED
: ::c_int
= 4;
507 pub const _SC_IOV_MAX
: ::c_int
= 77;
508 pub const _SC_GETGR_R_SIZE_MAX
: ::c_int
= 569;
509 pub const _SC_GETPW_R_SIZE_MAX
: ::c_int
= 570;
510 pub const _SC_LOGIN_NAME_MAX
: ::c_int
= 571;
511 pub const _SC_MQ_PRIO_MAX
: ::c_int
= 30;
512 pub const _SC_THREAD_ATTR_STACKADDR
: ::c_int
= 577;
513 pub const _SC_THREAD_ATTR_STACKSIZE
: ::c_int
= 578;
514 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS
: ::c_int
= 568;
515 pub const _SC_THREAD_KEYS_MAX
: ::c_int
= 572;
516 pub const _SC_THREAD_PRIO_INHERIT
: ::c_int
= 580;
517 pub const _SC_THREAD_PRIO_PROTECT
: ::c_int
= 581;
518 pub const _SC_THREAD_PRIORITY_SCHEDULING
: ::c_int
= 579;
519 pub const _SC_THREAD_PROCESS_SHARED
: ::c_int
= 582;
520 pub const _SC_THREAD_SAFE_FUNCTIONS
: ::c_int
= 583;
521 pub const _SC_THREAD_STACK_MIN
: ::c_int
= 573;
522 pub const _SC_THREAD_THREADS_MAX
: ::c_int
= 574;
523 pub const _SC_THREADS
: ::c_int
= 576;
524 pub const _SC_TTY_NAME_MAX
: ::c_int
= 575;
525 pub const _SC_ATEXIT_MAX
: ::c_int
= 76;
526 pub const _SC_XOPEN_CRYPT
: ::c_int
= 62;
527 pub const _SC_XOPEN_ENH_I18N
: ::c_int
= 63;
528 pub const _SC_XOPEN_LEGACY
: ::c_int
= 717;
529 pub const _SC_XOPEN_REALTIME
: ::c_int
= 718;
530 pub const _SC_XOPEN_REALTIME_THREADS
: ::c_int
= 719;
531 pub const _SC_XOPEN_SHM
: ::c_int
= 64;
532 pub const _SC_XOPEN_UNIX
: ::c_int
= 78;
533 pub const _SC_XOPEN_VERSION
: ::c_int
= 12;
534 pub const _SC_XOPEN_XCU_VERSION
: ::c_int
= 67;
536 pub const PTHREAD_CREATE_JOINABLE
: ::c_int
= 0;
537 pub const PTHREAD_CREATE_DETACHED
: ::c_int
= 0x40;
538 pub const PTHREAD_PROCESS_SHARED
: ::c_int
= 1;
539 pub const PTHREAD_PROCESS_PRIVATE
: u16 = 0;
540 pub const PTHREAD_STACK_MIN
: ::size_t
= 4096;
542 pub const SIGSTKSZ
: ::size_t
= 8192;
544 // https://illumos.org/man/3c/clock_gettime
545 // https://github.com/illumos/illumos-gate/
546 // blob/HEAD/usr/src/lib/libc/amd64/sys/__clock_gettime.s
547 // clock_gettime(3c) doesn't seem to accept anything other than CLOCK_REALTIME
548 // or __CLOCK_REALTIME0
550 // https://github.com/illumos/illumos-gate/
551 // blob/HEAD/usr/src/uts/common/sys/time_impl.h
552 // Confusing! CLOCK_HIGHRES==CLOCK_MONOTONIC==4
553 // __CLOCK_REALTIME0==0 is an obsoleted version of CLOCK_REALTIME==3
554 pub const CLOCK_REALTIME
: clockid_t
= 3;
555 pub const CLOCK_MONOTONIC
: clockid_t
= 4;
557 pub const RLIMIT_CPU
: ::c_int
= 0;
558 pub const RLIMIT_FSIZE
: ::c_int
= 1;
559 pub const RLIMIT_DATA
: ::c_int
= 2;
560 pub const RLIMIT_STACK
: ::c_int
= 3;
561 pub const RLIMIT_CORE
: ::c_int
= 4;
562 pub const RLIMIT_NOFILE
: ::c_int
= 5;
563 pub const RLIMIT_VMEM
: ::c_int
= 6;
564 pub const RLIMIT_AS
: ::c_int
= RLIMIT_VMEM
;
566 pub const RLIM_NLIMITS
: rlim_t
= 7;
567 pub const RLIM_INFINITY
: rlim_t
= 0x7fffffff;
569 pub const RUSAGE_SELF
: ::c_int
= 0;
570 pub const RUSAGE_CHILDREN
: ::c_int
= -1;
572 pub const MADV_NORMAL
: ::c_int
= 0;
573 pub const MADV_RANDOM
: ::c_int
= 1;
574 pub const MADV_SEQUENTIAL
: ::c_int
= 2;
575 pub const MADV_WILLNEED
: ::c_int
= 3;
576 pub const MADV_DONTNEED
: ::c_int
= 4;
577 pub const MADV_FREE
: ::c_int
= 5;
579 pub const AF_INET
: ::c_int
= 2;
580 pub const AF_INET6
: ::c_int
= 26;
581 pub const AF_UNIX
: ::c_int
= 1;
582 pub const SOCK_DGRAM
: ::c_int
= 1;
583 pub const SOCK_STREAM
: ::c_int
= 2;
584 pub const SOCK_RAW
: ::c_int
= 4;
585 pub const IPPROTO_TCP
: ::c_int
= 6;
586 pub const IPPROTO_IP
: ::c_int
= 0;
587 pub const IPPROTO_IPV6
: ::c_int
= 41;
588 pub const IP_MULTICAST_TTL
: ::c_int
= 17;
589 pub const IP_MULTICAST_LOOP
: ::c_int
= 18;
590 pub const IP_TTL
: ::c_int
= 4;
591 pub const IP_HDRINCL
: ::c_int
= 2;
592 pub const IP_ADD_MEMBERSHIP
: ::c_int
= 19;
593 pub const IP_DROP_MEMBERSHIP
: ::c_int
= 20;
594 pub const IPV6_JOIN_GROUP
: ::c_int
= 9;
595 pub const IPV6_LEAVE_GROUP
: ::c_int
= 10;
597 pub const TCP_NODELAY
: ::c_int
= 1;
598 pub const TCP_KEEPIDLE
: ::c_int
= 34;
599 pub const SOL_SOCKET
: ::c_int
= 0xffff;
600 pub const SO_DEBUG
: ::c_int
= 0x01;
601 pub const SO_ACCEPTCONN
: ::c_int
= 0x0002;
602 pub const SO_REUSEADDR
: ::c_int
= 0x0004;
603 pub const SO_KEEPALIVE
: ::c_int
= 0x0008;
604 pub const SO_DONTROUTE
: ::c_int
= 0x0010;
605 pub const SO_BROADCAST
: ::c_int
= 0x0020;
606 pub const SO_USELOOPBACK
: ::c_int
= 0x0040;
607 pub const SO_LINGER
: ::c_int
= 0x0080;
608 pub const SO_OOBINLINE
: ::c_int
= 0x0100;
609 pub const SO_SNDBUF
: ::c_int
= 0x1001;
610 pub const SO_RCVBUF
: ::c_int
= 0x1002;
611 pub const SO_SNDLOWAT
: ::c_int
= 0x1003;
612 pub const SO_RCVLOWAT
: ::c_int
= 0x1004;
613 pub const SO_SNDTIMEO
: ::c_int
= 0x1005;
614 pub const SO_RCVTIMEO
: ::c_int
= 0x1006;
615 pub const SO_ERROR
: ::c_int
= 0x1007;
616 pub const SO_TYPE
: ::c_int
= 0x1008;
618 pub const IFF_LOOPBACK
: ::c_int
= 0x8;
620 pub const SHUT_RD
: ::c_int
= 0;
621 pub const SHUT_WR
: ::c_int
= 1;
622 pub const SHUT_RDWR
: ::c_int
= 2;
624 pub const LOCK_SH
: ::c_int
= 1;
625 pub const LOCK_EX
: ::c_int
= 2;
626 pub const LOCK_NB
: ::c_int
= 4;
627 pub const LOCK_UN
: ::c_int
= 8;
629 pub const O_SYNC
: ::c_int
= 16;
630 pub const O_NONBLOCK
: ::c_int
= 128;
632 pub const IPPROTO_RAW
: ::c_int
= 255;
634 pub const _SC_ARG_MAX
: ::c_int
= 1;
635 pub const _SC_CHILD_MAX
: ::c_int
= 2;
636 pub const _SC_CLK_TCK
: ::c_int
= 3;
637 pub const _SC_NGROUPS_MAX
: ::c_int
= 4;
638 pub const _SC_OPEN_MAX
: ::c_int
= 5;
639 pub const _SC_JOB_CONTROL
: ::c_int
= 6;
640 pub const _SC_SAVED_IDS
: ::c_int
= 7;
641 pub const _SC_VERSION
: ::c_int
= 8;
642 pub const _SC_PAGESIZE
: ::c_int
= 11;
643 pub const _SC_PAGE_SIZE
: ::c_int
= _SC_PAGESIZE
;
644 pub const _SC_NPROCESSORS_ONLN
: ::c_int
= 15;
645 pub const _SC_STREAM_MAX
: ::c_int
= 16;
646 pub const _SC_TZNAME_MAX
: ::c_int
= 17;
647 pub const _SC_AIO_LISTIO_MAX
: ::c_int
= 18;
648 pub const _SC_AIO_MAX
: ::c_int
= 19;
649 pub const _SC_BC_BASE_MAX
: ::c_int
= 54;
650 pub const _SC_BC_DIM_MAX
: ::c_int
= 55;
651 pub const _SC_BC_SCALE_MAX
: ::c_int
= 56;
652 pub const _SC_BC_STRING_MAX
: ::c_int
= 57;
653 pub const _SC_COLL_WEIGHTS_MAX
: ::c_int
= 58;
654 pub const _SC_EXPR_NEST_MAX
: ::c_int
= 59;
655 pub const _SC_LINE_MAX
: ::c_int
= 60;
656 pub const _SC_RE_DUP_MAX
: ::c_int
= 61;
657 pub const _SC_2_VERSION
: ::c_int
= 53;
658 pub const _SC_2_C_BIND
: ::c_int
= 45;
659 pub const _SC_2_C_DEV
: ::c_int
= 46;
660 pub const _SC_2_CHAR_TERM
: ::c_int
= 66;
661 pub const _SC_2_FORT_DEV
: ::c_int
= 48;
662 pub const _SC_2_FORT_RUN
: ::c_int
= 49;
663 pub const _SC_2_LOCALEDEF
: ::c_int
= 50;
664 pub const _SC_2_SW_DEV
: ::c_int
= 51;
665 pub const _SC_2_UPE
: ::c_int
= 52;
666 pub const _SC_ASYNCHRONOUS_IO
: ::c_int
= 21;
667 pub const _SC_MAPPED_FILES
: ::c_int
= 24;
668 pub const _SC_MEMLOCK
: ::c_int
= 25;
669 pub const _SC_MEMLOCK_RANGE
: ::c_int
= 26;
670 pub const _SC_MEMORY_PROTECTION
: ::c_int
= 27;
671 pub const _SC_MESSAGE_PASSING
: ::c_int
= 28;
672 pub const _SC_PRIORITIZED_IO
: ::c_int
= 31;
673 pub const _SC_PRIORITY_SCHEDULING
: ::c_int
= 32;
674 pub const _SC_REALTIME_SIGNALS
: ::c_int
= 33;
675 pub const _SC_SEMAPHORES
: ::c_int
= 35;
676 pub const _SC_FSYNC
: ::c_int
= 23;
677 pub const _SC_SHARED_MEMORY_OBJECTS
: ::c_int
= 38;
678 pub const _SC_SYNCHRONIZED_IO
: ::c_int
= 42;
679 pub const _SC_TIMERS
: ::c_int
= 43;
680 pub const _SC_AIO_PRIO_DELTA_MAX
: ::c_int
= 20;
681 pub const _SC_DELAYTIMER_MAX
: ::c_int
= 22;
682 pub const _SC_MQ_OPEN_MAX
: ::c_int
= 29;
683 pub const _SC_RTSIG_MAX
: ::c_int
= 34;
684 pub const _SC_SEM_NSEMS_MAX
: ::c_int
= 36;
685 pub const _SC_SEM_VALUE_MAX
: ::c_int
= 37;
686 pub const _SC_SIGQUEUE_MAX
: ::c_int
= 39;
687 pub const _SC_TIMER_MAX
: ::c_int
= 44;
689 pub const _MUTEX_MAGIC
: u16 = 0x4d58; // MX
690 pub const _COND_MAGIC
: u16 = 0x4356; // CV
691 pub const _RWL_MAGIC
: u16 = 0x5257; // RW
693 pub const NCCS
: usize = 19;
695 pub const PTHREAD_MUTEX_INITIALIZER
: pthread_mutex_t
= pthread_mutex_t
{
696 __pthread_mutex_flag1
: 0,
697 __pthread_mutex_flag2
: 0,
698 __pthread_mutex_ceiling
: 0,
699 __pthread_mutex_type
: PTHREAD_PROCESS_PRIVATE
,
700 __pthread_mutex_magic
: _MUTEX_MAGIC
,
701 __pthread_mutex_lock
: 0,
702 __pthread_mutex_data
: 0
704 pub const PTHREAD_COND_INITIALIZER
: pthread_cond_t
= pthread_cond_t
{
705 __pthread_cond_flag
: [0; 4],
706 __pthread_cond_type
: PTHREAD_PROCESS_PRIVATE
,
707 __pthread_cond_magic
: _COND_MAGIC
,
708 __pthread_cond_data
: 0
710 pub const PTHREAD_RWLOCK_INITIALIZER
: pthread_rwlock_t
= pthread_rwlock_t
{
711 __pthread_rwlock_readers
: 0,
712 __pthread_rwlock_type
: PTHREAD_PROCESS_PRIVATE
,
713 __pthread_rwlock_magic
: _RWL_MAGIC
,
714 __pthread_rwlock_mutex
: PTHREAD_MUTEX_INITIALIZER
,
715 __pthread_rwlock_readercv
: PTHREAD_COND_INITIALIZER
,
716 __pthread_rwlock_writercv
: PTHREAD_COND_INITIALIZER
718 pub const PTHREAD_MUTEX_RECURSIVE
: ::c_int
= 4;
721 pub fn FD_CLR(fd
: ::c_int
, set
: *mut fd_set
) -> () {
722 let fd
= fd
as usize;
723 (*set
).fds_bits
[fd
/ 32] &= !(1 << (fd
% 32));
727 pub fn FD_ISSET(fd
: ::c_int
, set
: *mut fd_set
) -> bool
{
728 let fd
= fd
as usize;
729 return ((*set
).fds_bits
[fd
/ 32] & (1 << (fd
% 32))) != 0
732 pub fn FD_SET(fd
: ::c_int
, set
: *mut fd_set
) -> () {
733 let fd
= fd
as usize;
734 (*set
).fds_bits
[fd
/ 32] |= 1 << (fd
% 32);
738 pub fn FD_ZERO(set
: *mut fd_set
) -> () {
739 for slot
in (*set
).fds_bits
.iter_mut() {
744 pub fn WIFEXITED(status
: ::c_int
) -> bool
{
748 pub fn WEXITSTATUS(status
: ::c_int
) -> ::c_int
{
752 pub fn WTERMSIG(status
: ::c_int
) -> ::c_int
{
758 pub fn stack_getbounds(sp
: *mut ::stack_t
) -> ::c_int
;
759 pub fn mincore(addr
: *const ::c_void
, len
: ::size_t
,
760 vec
: *mut c_char
) -> ::c_int
;
761 pub fn setgroups(ngroups
: ::c_int
,
762 ptr
: *const ::gid_t
) -> ::c_int
;
763 pub fn ioctl(fildes
: ::c_int
, request
: ::c_int
, ...) -> ::c_int
;
764 pub fn mprotect(addr
: *const ::c_void
, len
: ::size_t
, prot
: ::c_int
)
766 pub fn clock_getres(clk_id
: clockid_t
, tp
: *mut ::timespec
) -> ::c_int
;
767 pub fn clock_gettime(clk_id
: clockid_t
, tp
: *mut ::timespec
) -> ::c_int
;
768 pub fn getnameinfo(sa
: *const ::sockaddr
,
771 hostlen
: ::socklen_t
,
774 flags
: ::c_int
) -> ::c_int
;
775 pub fn getpwuid_r(uid
: ::uid_t
,
778 buflen
: ::size_t
) -> *const passwd
;
779 pub fn readdir(dirp
: *mut ::DIR
) -> *const ::dirent
;
780 pub fn fdatasync(fd
: ::c_int
) -> ::c_int
;