3 pub type blkcnt_t
= i32;
4 pub type blksize_t
= i32;
5 pub type clock_t
= i32;
6 pub type clockid_t
= ::c_ulong
;
8 pub type fsblkcnt_t
= u64;
9 pub type fsfilcnt_t
= u32;
12 pub type key_t
= ::c_int
;
13 pub type loff_t
= ::c_longlong
;
14 pub type mode_t
= ::c_uint
;
15 pub type nfds_t
= u32;
16 pub type nlink_t
= ::c_ushort
;
18 pub type pthread_t
= ::c_ulong
;
19 pub type pthread_key_t
= ::c_uint
;
20 pub type rlim_t
= u32;
21 pub type sa_family_t
= u8;
22 pub type socklen_t
= u32;
23 pub type speed_t
= u32;
24 pub type suseconds_t
= i32;
25 pub type tcflag_t
= ::c_uint
;
26 pub type time_t
= i32;
27 pub type useconds_t
= u32;
31 pub sa_family
: sa_family_t
,
32 pub sa_data
: [::c_char
; 14],
35 pub struct sockaddr_in
{
36 pub sin_family
: sa_family_t
,
37 pub sin_port
: ::in_port_t
,
38 pub sin_addr
: ::in_addr
,
39 pub sin_zero
: [u8; 8],
42 pub struct sockaddr_in6
{ // Unverified
43 pub sin6_family
: sa_family_t
,
44 pub sin6_port
: ::in_port_t
,
45 pub sin6_flowinfo
: u32,
46 pub sin6_addr
: ::in6_addr
,
47 pub sin6_scope_id
: u32,
50 pub struct sockaddr_storage
{
51 pub ss_family
: sa_family_t
,
52 pub __ss_padding
: [u8; 26],
56 pub ai_flags
: ::c_int
,
57 pub ai_family
: ::c_int
,
58 pub ai_socktype
: ::c_int
,
59 pub ai_protocol
: ::c_int
,
60 pub ai_addrlen
: socklen_t
,
61 pub ai_canonname
: *mut ::c_char
,
62 pub ai_addr
: *mut sockaddr
,
63 pub ai_next
: *mut addrinfo
,
67 pub imr_multiaddr
: in_addr
,
68 pub imr_interface
: in_addr
,
73 pub l_linger
: ::c_int
,
77 pub s_addr
: ::in_addr_t
,
81 pub h_name
: *mut ::c_char
,
82 pub h_aliases
: *mut *mut ::c_char
,
83 pub h_addrtype
: ::c_int
,
84 pub h_length
: ::c_int
,
85 pub h_addr_list
: *mut *mut ::c_char
,
86 pub h_addr
: *mut ::c_char
,
96 pub decimal_point
: *mut ::c_char
,
97 pub thousands_sep
: *mut ::c_char
,
98 pub grouping
: *mut ::c_char
,
99 pub int_curr_symbol
: *mut ::c_char
,
100 pub currency_symbol
: *mut ::c_char
,
101 pub mon_decimal_point
: *mut ::c_char
,
102 pub mon_thousands_sep
: *mut ::c_char
,
103 pub mon_grouping
: *mut ::c_char
,
104 pub positive_sign
: *mut ::c_char
,
105 pub negative_sign
: *mut ::c_char
,
106 pub int_frac_digits
: ::c_char
,
107 pub frac_digits
: ::c_char
,
108 pub p_cs_precedes
: ::c_char
,
109 pub p_sep_by_space
: ::c_char
,
110 pub n_cs_precedes
: ::c_char
,
111 pub n_sep_by_space
: ::c_char
,
112 pub p_sign_posn
: ::c_char
,
113 pub n_sign_posn
: ::c_char
,
114 pub int_n_cs_precedes
: ::c_char
,
115 pub int_n_sep_by_space
: ::c_char
,
116 pub int_n_sign_posn
: ::c_char
,
117 pub int_p_cs_precedes
: ::c_char
,
118 pub int_p_sep_by_space
: ::c_char
,
119 pub int_p_sign_posn
: ::c_char
,
125 pub tm_hour
: ::c_int
,
126 pub tm_mday
: ::c_int
,
128 pub tm_year
: ::c_int
,
129 pub tm_wday
: ::c_int
,
130 pub tm_yday
: ::c_int
,
131 pub tm_isdst
: ::c_int
,
137 pub st_mode
: ::mode_t
,
138 pub st_nlink
: ::nlink_t
,
143 pub st_atime
: time_t
,
144 pub st_spare1
: ::c_long
,
145 pub st_mtime
: time_t
,
146 pub st_spare2
: ::c_long
,
147 pub st_ctime
: time_t
,
148 pub st_spare3
: ::c_long
,
149 pub st_blksize
: blksize_t
,
150 pub st_blocks
: blkcnt_t
,
151 pub st_spare4
: [::c_long
; 2usize
],
155 pub f_bsize
: ::c_ulong
,
156 pub f_frsize
: ::c_ulong
,
157 pub f_blocks
: fsblkcnt_t
,
158 pub f_bfree
: fsblkcnt_t
,
159 pub f_bavail
: fsblkcnt_t
,
160 pub f_files
: fsfilcnt_t
,
161 pub f_ffree
: fsfilcnt_t
,
162 pub f_favail
: fsfilcnt_t
,
163 pub f_fsid
: ::c_ulong
,
164 pub f_flag
: ::c_ulong
,
165 pub f_namemax
: ::c_ulong
,
168 pub struct sigset_t
{
169 __val
: [::c_ulong
; 16],
172 pub struct sigaction
{
173 pub sa_handler
: extern fn(arg1
: ::c_int
),
174 pub sa_mask
: sigset_t
,
175 pub sa_flags
: ::c_int
,
180 pub d_type
: ::c_uchar
,
181 pub d_name
: [::c_char
; 256usize
],
185 pub ss_sp
: *mut ::c_void
,
186 pub ss_flags
: ::c_int
,
190 pub struct fd_set
{ // Unverified
191 fds_bits
: [::c_ulong
; FD_SETSIZE
/ ULONG_SIZE
],
194 pub struct passwd
{ // Unverified
195 pub pw_name
: *mut ::c_char
,
196 pub pw_passwd
: *mut ::c_char
,
199 pub pw_gecos
: *mut ::c_char
,
200 pub pw_dir
: *mut ::c_char
,
201 pub pw_shell
: *mut ::c_char
,
204 pub struct termios
{ // Unverified
205 pub c_iflag
: ::tcflag_t
,
206 pub c_oflag
: ::tcflag_t
,
207 pub c_cflag
: ::tcflag_t
,
208 pub c_lflag
: ::tcflag_t
,
210 pub c_cc
: [::cc_t
; ::NCCS
],
213 pub struct sem_t
{ // Unverified
214 __size
: [::c_char
; 16],
217 pub struct Dl_info
{ // Unverified
218 pub dli_fname
: *const ::c_char
,
219 pub dli_fbase
: *mut ::c_void
,
220 pub dli_sname
: *const ::c_char
,
221 pub dli_saddr
: *mut ::c_void
,
224 pub struct utsname
{ // Unverified
225 pub sysname
: [::c_char
; 65],
226 pub nodename
: [::c_char
; 65],
227 pub release
: [::c_char
; 65],
228 pub version
: [::c_char
; 65],
229 pub machine
: [::c_char
; 65],
230 pub domainname
: [::c_char
; 65]
233 pub struct cpu_set_t
{ // Unverified
237 pub struct pthread_attr_t
{ // Unverified
241 pub struct pthread_mutex_t
{ // Unverified
242 #[cfg(any(target_arch = "mips", target_arch = "arm",
243 target_arch
= "powerpc"))]
244 __align
: [::c_long
; 0],
245 #[cfg(not(any(target_arch = "mips", target_arch = "arm",
246 target_arch
= "powerpc")))]
247 __align
: [::c_longlong
; 0],
248 size
: [u8; __SIZEOF_PTHREAD_MUTEX_T
],
251 pub struct pthread_rwlock_t
{ // Unverified
252 #[cfg(any(target_arch = "mips", target_arch = "arm",
253 target_arch
= "powerpc"))]
254 __align
: [::c_long
; 0],
255 #[cfg(not(any(target_arch = "mips", target_arch = "arm",
256 target_arch
= "powerpc")))]
257 __align
: [::c_longlong
; 0],
258 size
: [u8; __SIZEOF_PTHREAD_RWLOCK_T
],
261 pub struct pthread_mutexattr_t
{ // Unverified
262 #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64",
263 target_arch
= "mips64", target_arch
= "s390x",
264 target_arch
= "sparc64"))]
265 __align
: [::c_int
; 0],
266 #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64",
267 target_arch
= "mips64", target_arch
= "s390x",
268 target_arch
= "sparc64")))]
269 __align
: [::c_long
; 0],
270 size
: [u8; __SIZEOF_PTHREAD_MUTEXATTR_T
],
273 pub struct pthread_rwlockattr_t
{ // Unverified
278 pub struct pthread_cond_t
{ // Unverified
279 __align
: [::c_longlong
; 0],
280 size
: [u8; __SIZEOF_PTHREAD_COND_T
],
283 pub struct pthread_condattr_t
{ // Unverified
284 __align
: [::c_int
; 0],
285 size
: [u8; __SIZEOF_PTHREAD_CONDATTR_T
],
290 // unverified constants
291 pub const PTHREAD_MUTEX_INITIALIZER
: pthread_mutex_t
= pthread_mutex_t
{
293 size
: [0; __SIZEOF_PTHREAD_MUTEX_T
],
295 pub const PTHREAD_COND_INITIALIZER
: pthread_cond_t
= pthread_cond_t
{
297 size
: [0; __SIZEOF_PTHREAD_COND_T
],
299 pub const PTHREAD_RWLOCK_INITIALIZER
: pthread_rwlock_t
= pthread_rwlock_t
{
301 size
: [0; __SIZEOF_PTHREAD_RWLOCK_T
],
303 pub const NCCS
: usize = 32;
304 pub const __SIZEOF_PTHREAD_ATTR_T
: usize = 56;
305 pub const __SIZEOF_PTHREAD_MUTEX_T
: usize = 40;
306 pub const __SIZEOF_PTHREAD_MUTEXATTR_T
: usize = 4;
307 pub const __SIZEOF_PTHREAD_COND_T
: usize = 48;
308 pub const __SIZEOF_PTHREAD_CONDATTR_T
: usize = 4;
309 pub const __SIZEOF_PTHREAD_RWLOCK_T
: usize = 56;
310 pub const __SIZEOF_PTHREAD_RWLOCKATTR_T
: usize = 8;
311 pub const __SIZEOF_PTHREAD_BARRIER_T
: usize = 32;
312 pub const __SIZEOF_PTHREAD_BARRIERATTR_T
: usize = 4;
313 pub const __PTHREAD_MUTEX_HAVE_PREV
: usize = 1;
314 pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED
: usize = 1;
315 pub const PTHREAD_MUTEX_NORMAL
: ::c_int
= 0;
316 pub const PTHREAD_MUTEX_RECURSIVE
: ::c_int
= 1;
317 pub const PTHREAD_MUTEX_ERRORCHECK
: ::c_int
= 2;
318 pub const FD_SETSIZE
: usize = 1024;
319 // intentionally not public, only used for fd_set
320 const ULONG_SIZE
: usize = 32;
323 pub const EPERM
: ::c_int
= 1;
324 pub const ENOENT
: ::c_int
= 2;
325 pub const ESRCH
: ::c_int
= 3;
326 pub const EINTR
: ::c_int
= 4;
327 pub const EIO
: ::c_int
= 5;
328 pub const ENXIO
: ::c_int
= 6;
329 pub const E2BIG
: ::c_int
= 7;
330 pub const ENOEXEC
: ::c_int
= 8;
331 pub const EBADF
: ::c_int
= 9;
332 pub const ECHILD
: ::c_int
= 10;
333 pub const EAGAIN
: ::c_int
= 11;
334 pub const ENOMEM
: ::c_int
= 12;
335 pub const EACCES
: ::c_int
= 13;
336 pub const EFAULT
: ::c_int
= 14;
337 pub const EBUSY
: ::c_int
= 16;
338 pub const EEXIST
: ::c_int
= 17;
339 pub const EXDEV
: ::c_int
= 18;
340 pub const ENODEV
: ::c_int
= 19;
341 pub const ENOTDIR
: ::c_int
= 20;
342 pub const EISDIR
: ::c_int
= 21;
343 pub const EINVAL
: ::c_int
= 22;
344 pub const ENFILE
: ::c_int
= 23;
345 pub const EMFILE
: ::c_int
= 24;
346 pub const ENOTTY
: ::c_int
= 25;
347 pub const ETXTBSY
: ::c_int
= 26;
348 pub const EFBIG
: ::c_int
= 27;
349 pub const ENOSPC
: ::c_int
= 28;
350 pub const ESPIPE
: ::c_int
= 29;
351 pub const EROFS
: ::c_int
= 30;
352 pub const EMLINK
: ::c_int
= 31;
353 pub const EPIPE
: ::c_int
= 32;
354 pub const EDOM
: ::c_int
= 33;
355 pub const ERANGE
: ::c_int
= 34;
356 pub const ENOMSG
: ::c_int
= 35;
357 pub const EIDRM
: ::c_int
= 36;
358 pub const EDEADLK
: ::c_int
= 45;
359 pub const ENOLCK
: ::c_int
= 46;
360 pub const ENOSTR
: ::c_int
= 60;
361 pub const ENODATA
: ::c_int
= 61;
362 pub const ETIME
: ::c_int
= 62;
363 pub const ENOSR
: ::c_int
= 63;
364 pub const ENOLINK
: ::c_int
= 67;
365 pub const EPROTO
: ::c_int
= 71;
366 pub const EMULTIHOP
: ::c_int
= 74;
367 pub const EBADMSG
: ::c_int
= 77;
368 pub const EFTYPE
: ::c_int
= 79;
369 pub const ENOSYS
: ::c_int
= 88;
370 pub const ENOTEMPTY
: ::c_int
= 90;
371 pub const ENAMETOOLONG
: ::c_int
= 91;
372 pub const ELOOP
: ::c_int
= 92;
373 pub const EOPNOTSUPP
: ::c_int
= 95;
374 pub const EPFNOSUPPORT
: ::c_int
= 96;
375 pub const ECONNRESET
: ::c_int
= 104;
376 pub const ENOBUFS
: ::c_int
= 105;
377 pub const EAFNOSUPPORT
: ::c_int
= 106;
378 pub const EPROTOTYPE
: ::c_int
= 107;
379 pub const ENOTSOCK
: ::c_int
= 108;
380 pub const ENOPROTOOPT
: ::c_int
= 109;
381 pub const ECONNREFUSED
: ::c_int
= 111;
382 pub const EADDRINUSE
: ::c_int
= 112;
383 pub const ECONNABORTED
: ::c_int
= 113;
384 pub const ENETUNREACH
: ::c_int
= 114;
385 pub const ENETDOWN
: ::c_int
= 115;
386 pub const ETIMEDOUT
: ::c_int
= 116;
387 pub const EHOSTDOWN
: ::c_int
= 117;
388 pub const EHOSTUNREACH
: ::c_int
= 118;
389 pub const EINPROGRESS
: ::c_int
= 119;
390 pub const EALREADY
: ::c_int
= 120;
391 pub const EDESTADDRREQ
: ::c_int
= 121;
392 pub const EMSGSIZE
: ::c_int
= 122;
393 pub const EPROTONOSUPPORT
: ::c_int
= 123;
394 pub const EADDRNOTAVAIL
: ::c_int
= 125;
395 pub const ENETRESET
: ::c_int
= 126;
396 pub const EISCONN
: ::c_int
= 127;
397 pub const ENOTCONN
: ::c_int
= 128;
398 pub const ETOOMANYREFS
: ::c_int
= 129;
399 pub const EDQUOT
: ::c_int
= 132;
400 pub const ESTALE
: ::c_int
= 133;
401 pub const ENOTSUP
: ::c_int
= 134;
402 pub const EILSEQ
: ::c_int
= 138;
403 pub const EOVERFLOW
: ::c_int
= 139;
404 pub const ECANCELED
: ::c_int
= 140;
405 pub const ENOTRECOVERABLE
: ::c_int
= 141;
406 pub const EOWNERDEAD
: ::c_int
= 142;
407 pub const EWOULDBLOCK
: ::c_int
= 11;
409 pub const F_DUPFD
: ::c_int
= 0;
410 pub const F_GETFD
: ::c_int
= 1;
411 pub const F_SETFD
: ::c_int
= 2;
412 pub const F_GETFL
: ::c_int
= 3;
413 pub const F_SETFL
: ::c_int
= 4;
414 pub const F_GETOWN
: ::c_int
= 5;
415 pub const F_SETOWN
: ::c_int
= 6;
416 pub const F_GETLK
: ::c_int
= 7;
417 pub const F_SETLK
: ::c_int
= 8;
418 pub const F_SETLKW
: ::c_int
= 9;
419 pub const F_RGETLK
: ::c_int
= 10;
420 pub const F_RSETLK
: ::c_int
= 11;
421 pub const F_CNVT
: ::c_int
= 12;
422 pub const F_RSETLKW
: ::c_int
= 13;
423 pub const F_DUPFD_CLOEXEC
: ::c_int
= 14;
425 pub const O_RDONLY
: ::c_int
= 0;
426 pub const O_WRONLY
: ::c_int
= 1;
427 pub const O_RDWR
: ::c_int
= 2;
428 pub const O_APPEND
: ::c_int
= 8;
429 pub const O_CREAT
: ::c_int
= 512;
430 pub const O_TRUNC
: ::c_int
= 1024;
431 pub const O_EXCL
: ::c_int
= 2048;
432 pub const O_SYNC
: ::c_int
= 8192;
433 pub const O_NONBLOCK
: ::c_int
= 16384;
435 pub const O_ACCMODE
: ::c_int
= 3;
436 pub const O_CLOEXEC
: ::c_int
= 0x80000;
438 pub const POLLIN
: ::c_short
= 0x1;
439 pub const POLLPRI
: ::c_short
= 0x2;
440 pub const POLLOUT
: ::c_short
= 0x4;
441 pub const POLLERR
: ::c_short
= 0x8;
442 pub const POLLHUP
: ::c_short
= 0x10;
443 pub const POLLNVAL
: ::c_short
= 0x20;
445 pub const RTLD_LAZY
: ::c_int
= 0x1;
447 pub const STDIN_FILENO
: ::c_int
= 0;
448 pub const STDOUT_FILENO
: ::c_int
= 1;
449 pub const STDERR_FILENO
: ::c_int
= 2;
451 pub const SEEK_SET
: ::c_int
= 0;
452 pub const SEEK_CUR
: ::c_int
= 1;
453 pub const SEEK_END
: ::c_int
= 2;
455 pub const FIONBIO
: ::c_int
= 1;
457 pub const S_BLKSIZE
: ::mode_t
= 1024;
458 pub const S_IREAD
: ::mode_t
= 256;
459 pub const S_IWRITE
: ::mode_t
= 128;
460 pub const S_IEXEC
: ::mode_t
= 64;
461 pub const S_ENFMT
: ::mode_t
= 1024;
462 pub const S_IFMT
: ::mode_t
= 61440;
463 pub const S_IFDIR
: ::mode_t
= 16384;
464 pub const S_IFCHR
: ::mode_t
= 8192;
465 pub const S_IFBLK
: ::mode_t
= 24576;
466 pub const S_IFREG
: ::mode_t
= 32768;
467 pub const S_IFLNK
: ::mode_t
= 40960;
468 pub const S_IFSOCK
: ::mode_t
= 49152;
469 pub const S_IFIFO
: ::mode_t
= 4096;
470 pub const S_IRUSR
: ::mode_t
= 256;
471 pub const S_IWUSR
: ::mode_t
= 128;
472 pub const S_IXUSR
: ::mode_t
= 64;
473 pub const S_IRGRP
: ::mode_t
= 32;
474 pub const S_IWGRP
: ::mode_t
= 16;
475 pub const S_IXGRP
: ::mode_t
= 8;
476 pub const S_IROTH
: ::mode_t
= 4;
477 pub const S_IWOTH
: ::mode_t
= 2;
478 pub const S_IXOTH
: ::mode_t
= 1;
480 pub const SOL_SOCKET
: ::c_int
= 65535;
481 pub const SOL_TCP
: ::c_int
= 6;
483 pub const PF_UNSPEC
: ::c_int
= 0;
484 pub const PF_INET
: ::c_int
= 2;
485 pub const PF_INET6
: ::c_int
= 23;
487 pub const AF_UNSPEC
: ::c_int
= 0;
488 pub const AF_INET
: ::c_int
= 2;
489 pub const AF_INET6
: ::c_int
= 23;
491 pub const SOCK_STREAM
: ::c_int
= 1;
492 pub const SOCK_DGRAM
: ::c_int
= 2;
494 pub const MSG_OOB
: ::c_int
= 1;
495 pub const MSG_PEEK
: ::c_int
= 2;
496 pub const MSG_DONTWAIT
: ::c_int
= 4;
497 pub const MSG_DONTROUTE
: ::c_int
= 0;
498 pub const MSG_WAITALL
: ::c_int
= 0;
499 pub const MSG_MORE
: ::c_int
= 0;
500 pub const MSG_NOSIGNAL
: ::c_int
= 0;
502 pub const SHUT_RD
: ::c_int
= 0;
503 pub const SHUT_WR
: ::c_int
= 1;
504 pub const SHUT_RDWR
: ::c_int
= 2;
506 pub const SO_REUSEADDR
: ::c_int
= 4;
507 pub const SO_LINGER
: ::c_int
= 128;
508 pub const SO_OOBINLINE
: ::c_int
= 256;
509 pub const SO_SNDBUF
: ::c_int
= 4097;
510 pub const SO_RCVBUF
: ::c_int
= 4098;
511 pub const SO_SNDLOWAT
: ::c_int
= 4099;
512 pub const SO_RCVLOWAT
: ::c_int
= 4100;
513 pub const SO_TYPE
: ::c_int
= 4104;
514 pub const SO_ERROR
: ::c_int
= 4105;
516 pub const SOCK_CLOEXEC
: ::c_int
= O_CLOEXEC
;
518 pub const INET_ADDRSTRLEN
: ::c_int
= 16;
521 // com/bminor/newlib/blob/master/newlib/libc/sys/linux/include/net/if.h#L121
522 pub const IFF_UP
: ::c_int
= 0x1; // interface is up
523 pub const IFF_BROADCAST
: ::c_int
= 0x2; // broadcast address valid
524 pub const IFF_DEBUG
: ::c_int
= 0x4; // turn on debugging
525 pub const IFF_LOOPBACK
: ::c_int
= 0x8; // is a loopback net
526 pub const IFF_POINTOPOINT
: ::c_int
= 0x10; // interface is point-to-point link
527 pub const IFF_NOTRAILERS
: ::c_int
= 0x20; // avoid use of trailers
528 pub const IFF_RUNNING
: ::c_int
= 0x40; // resources allocated
529 pub const IFF_NOARP
: ::c_int
= 0x80; // no address resolution protocol
530 pub const IFF_PROMISC
: ::c_int
= 0x100; // receive all packets
531 pub const IFF_ALLMULTI
: ::c_int
= 0x200; // receive all multicast packets
532 pub const IFF_OACTIVE
: ::c_int
= 0x400; // transmission in progress
533 pub const IFF_SIMPLEX
: ::c_int
= 0x800; // can't hear own transmissions
534 pub const IFF_LINK0
: ::c_int
= 0x1000; // per link layer defined bit
535 pub const IFF_LINK1
: ::c_int
= 0x2000; // per link layer defined bit
536 pub const IFF_LINK2
: ::c_int
= 0x4000; // per link layer defined bit
537 pub const IFF_ALTPHYS
: ::c_int
= IFF_LINK2
; // use alternate physical connection
538 pub const IFF_MULTICAST
: ::c_int
= 0x8000; // supports multicast
540 pub const IPPROTO_IP
: ::c_int
= 0;
541 pub const IPPROTO_UDP
: ::c_int
= 17;
542 pub const IPPROTO_TCP
: ::c_int
= 6;
544 pub const TCP_NODELAY
: ::c_int
= 8193;
545 pub const TCP_MAXSEG
: ::c_int
= 8194;
547 pub const IP_TOS
: ::c_int
= 7;
548 pub const IP_TTL
: ::c_int
= 8;
549 pub const IP_MULTICAST_LOOP
: ::c_int
= 9;
550 pub const IP_MULTICAST_TTL
: ::c_int
= 10;
551 pub const IP_ADD_MEMBERSHIP
: ::c_int
= 11;
552 pub const IP_DROP_MEMBERSHIP
: ::c_int
= 12;
554 pub const HOST_NOT_FOUND
: ::c_int
= 1;
555 pub const NO_DATA
: ::c_int
= 2;
556 pub const NO_ADDRESS
: ::c_int
= 2;
557 pub const NO_RECOVERY
: ::c_int
= 3;
558 pub const TRY_AGAIN
: ::c_int
= 4;
560 pub const AI_PASSIVE
: ::c_int
= 1;
561 pub const AI_CANONNAME
: ::c_int
= 2;
562 pub const AI_NUMERICHOST
: ::c_int
= 4;
563 pub const AI_NUMERICSERV
: ::c_int
= 0;
564 pub const AI_ADDRCONFIG
: ::c_int
= 0;
566 pub const NI_MAXHOST
: ::c_int
= 1025;
567 pub const NI_MAXSERV
: ::c_int
= 32;
568 pub const NI_NOFQDN
: ::c_int
= 1;
569 pub const NI_NUMERICHOST
: ::c_int
= 2;
570 pub const NI_NAMEREQD
: ::c_int
= 4;
571 pub const NI_NUMERICSERV
: ::c_int
= 0;
572 pub const NI_DGRAM
: ::c_int
= 0;
574 pub const EAI_FAMILY
: ::c_int
= -303;
575 pub const EAI_MEMORY
: ::c_int
= -304;
576 pub const EAI_NONAME
: ::c_int
= -305;
577 pub const EAI_SOCKTYPE
: ::c_int
= -307;
580 pub fn FD_CLR(fd
: ::c_int
, set
: *mut fd_set
) -> () {
581 let bits
= mem
::size_of_val(&(*set
).fds_bits
[0]) * 8;
582 let fd
= fd
as usize;
583 (*set
).fds_bits
[fd
/ bits
] &= !(1 << (fd
% bits
));
587 pub fn FD_ISSET(fd
: ::c_int
, set
: *mut fd_set
) -> bool
{
588 let bits
= mem
::size_of_val(&(*set
).fds_bits
[0]) * 8;
589 let fd
= fd
as usize;
590 return ((*set
).fds_bits
[fd
/ bits
] & (1 << (fd
% bits
))) != 0
593 pub fn FD_SET(fd
: ::c_int
, set
: *mut fd_set
) -> () {
594 let bits
= mem
::size_of_val(&(*set
).fds_bits
[0]) * 8;
595 let fd
= fd
as usize;
596 (*set
).fds_bits
[fd
/ bits
] |= 1 << (fd
% bits
);
600 pub fn FD_ZERO(set
: *mut fd_set
) -> () {
601 for slot
in (*set
).fds_bits
.iter_mut() {
608 pub fn bind(fd
: ::c_int
, addr
: *const sockaddr
, len
: socklen_t
) -> ::c_int
;
609 pub fn closesocket(sockfd
: ::c_int
) -> ::c_int
;
610 pub fn ioctl(fd
: ::c_int
, request
: ::c_ulong
, ...) -> ::c_int
;
611 pub fn recvfrom(fd
: ::c_int
, buf
: *mut ::c_void
, n
: usize, flags
: ::c_int
,
612 addr
: *mut sockaddr
, addr_len
: *mut socklen_t
) -> isize;
613 pub fn getnameinfo(sa
: *const sockaddr
, salen
: socklen_t
,
614 host
: *mut ::c_char
, hostlen
: socklen_t
,
615 serv
: *mut ::c_char
, servlen
: socklen_t
,
616 flags
: ::c_int
) -> ::c_int
;
617 pub fn memalign(align
: ::size_t
, size
: ::size_t
) -> *mut ::c_void
;
618 pub fn fexecve(fd
: ::c_int
, argv
: *const *const ::c_char
,
619 envp
: *const *const ::c_char
)
621 #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrgid_r")]
622 pub fn getgrgid_r(uid
: ::uid_t
,
626 result
: *mut *mut ::group
) -> ::c_int
;
627 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
628 link_name
= "sigaltstack$UNIX2003")]
629 #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")]
630 pub fn sigaltstack(ss
: *const stack_t
,
631 oss
: *mut stack_t
) -> ::c_int
;
632 pub fn sem_close(sem
: *mut sem_t
) -> ::c_int
;
633 pub fn getdtablesize() -> ::c_int
;
634 #[cfg_attr(target_os = "solaris", link_name = "__posix_getgrnam_r")]
635 pub fn getgrnam_r(name
: *const ::c_char
,
639 result
: *mut *mut ::group
) -> ::c_int
;
640 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
641 link_name
= "pthread_sigmask$UNIX2003")]
642 pub fn pthread_sigmask(how
: ::c_int
, set
: *const sigset_t
,
643 oldset
: *mut sigset_t
) -> ::c_int
;
644 pub fn sem_open(name
: *const ::c_char
, oflag
: ::c_int
, ...) -> *mut sem_t
;
645 pub fn getgrnam(name
: *const ::c_char
) -> *mut ::group
;
646 pub fn pthread_kill(thread
: ::pthread_t
, sig
: ::c_int
) -> ::c_int
;
647 pub fn sem_unlink(name
: *const ::c_char
) -> ::c_int
;
648 pub fn daemon(nochdir
: ::c_int
, noclose
: ::c_int
) -> ::c_int
;
649 #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")]
650 #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwnam_r")]
651 pub fn getpwnam_r(name
: *const ::c_char
,
655 result
: *mut *mut passwd
) -> ::c_int
;
656 #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")]
657 #[cfg_attr(target_os = "solaris", link_name = "__posix_getpwuid_r")]
658 pub fn getpwuid_r(uid
: ::uid_t
,
662 result
: *mut *mut passwd
) -> ::c_int
;
663 #[cfg_attr(all(target_os = "macos", target_arch ="x86"),
664 link_name
= "sigwait$UNIX2003")]
665 #[cfg_attr(target_os = "solaris", link_name = "__posix_sigwait")]
666 pub fn sigwait(set
: *const sigset_t
,
667 sig
: *mut ::c_int
) -> ::c_int
;
668 pub fn pthread_atfork(prepare
: Option
<unsafe extern fn()>,
669 parent
: Option
<unsafe extern fn()>,
670 child
: Option
<unsafe extern fn()>) -> ::c_int
;
671 pub fn getgrgid(gid
: ::gid_t
) -> *mut ::group
;
672 #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
673 link_name
= "popen$UNIX2003")]
674 pub fn popen(command
: *const c_char
,
675 mode
: *const c_char
) -> *mut ::FILE
;
679 if #[cfg(target_arch = "arm")] {
681 pub use self::arm
::*;
682 } else if #[cfg(target_arch = "aarch64")] {
684 pub use self::aarch64
::*;
686 // Only tested on ARM so far. Other platforms might have different
687 // definitions for types and constants.
688 pub use target_arch_not_implemented
;