1 // Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
11 // Do not remove on snapshot creation. Needed for bootstrap. (Issue #22364)
12 #![cfg_attr(stage0, feature(custom_attribute))]
13 #![crate_name = "libc"]
14 #![crate_type = "rlib"]
15 #![cfg_attr(not(feature = "cargo-build"),
16 unstable(feature = "libc", reason = "use `libc` from crates.io",
18 #![cfg_attr(not(feature = "cargo-build"), feature(staged_api, no_std))]
19 #![cfg_attr(not(feature = "cargo-build"), staged_api)]
20 #![cfg_attr(not(feature = "cargo-build"), no_std)]
21 #![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
22 html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
23 html_root_url = "https://doc.rust-lang.org/nightly/",
24 html_playground_url = "https://play.rust-lang.org/",
25 issue_tracker_base_url = "https://github.com/rust-lang/rust/issues/")]
26 #![cfg_attr(test, feature(test))]
27 #![feature(cfg_target_vendor)]
29 //! Bindings for the C standard library and other platform libraries
31 //! **NOTE:** These are *architecture and libc* specific. On Linux, these
32 //! bindings are only correct for glibc.
34 //! This module contains bindings to the C standard library, organized into
35 //! modules by their defining standard. Additionally, it contains some assorted
36 //! platform-specific definitions. For convenience, most functions and types
37 //! are reexported, so `use libc::*` will import the available C bindings as
38 //! appropriate for the target platform. The exact set of functions available
39 //! are platform specific.
41 //! *Note:* Because these definitions are platform-specific, some may not appear
42 //! in the generated documentation.
44 //! We consider the following specs reasonably normative with respect to
45 //! interoperating with the C standard library (libc/msvcrt):
47 //! * ISO 9899:1990 ('C95', 'ANSI C', 'Standard C'), NA1, 1995.
48 //! * ISO 9899:1999 ('C99' or 'C9x').
49 //! * ISO 9945:1988 / IEEE 1003.1-1988 ('POSIX.1').
50 //! * ISO 9945:2001 / IEEE 1003.1-2001 ('POSIX:2001', 'SUSv3').
51 //! * ISO 9945:2008 / IEEE 1003.1-2008 ('POSIX:2008', 'SUSv4').
53 //! Note that any reference to the 1996 revision of POSIX, or any revs between
54 //! 1990 (when '88 was approved at ISO) and 2001 (when the next actual
55 //! revision-revision happened), are merely additions of other chapters (1b and
56 //! 1c) outside the core interfaces.
58 //! Despite having several names each, these are *reasonably* coherent
59 //! point-in-time, list-of-definition sorts of specs. You can get each under a
60 //! variety of names but will wind up with the same definition in each case.
62 //! See standards(7) in linux-manpages for more details.
64 //! Our interface to these libraries is complicated by the non-universality of
65 //! conformance to any of them. About the only thing universally supported is
66 //! the first (C95), beyond that definitions quickly become absent on various
69 //! We therefore wind up dividing our module-space up (mostly for the sake of
70 //! sanity while editing, filling-in-details and eliminating duplication) into
71 //! definitions common-to-all (held in modules named c95, c99, posix88, posix01
72 //! and posix08) and definitions that appear only on *some* platforms (named
73 //! 'extra'). This would be things like significant OSX foundation kit, or Windows
74 //! library kernel32.dll, or various fancy glibc, Linux or BSD extensions.
76 //! In addition to the per-platform 'extra' modules, we define a module of
77 //! 'common BSD' libc routines that never quite made it into POSIX but show up
78 //! in multiple derived systems. This is the 4.4BSD r2 / 1995 release, the final
79 //! one from Berkeley after the lawsuits died down and the CSRG dissolved.
81 #![allow(bad_style, raw_pointer_derive)]
82 #![cfg_attr(target_os = "nacl", allow(unused_imports))]
83 #[cfg(feature = "cargo-build")] extern crate std as core;
85 #[cfg(test)] extern crate std;
86 #[cfg(test)] extern crate test;
88 // Explicit export lists for the intersection (provided here) mean that
89 // you can write more-platform-agnostic code if you stick to just these
92 pub use types::common::c95::*;
93 pub use types::common::c99::*;
94 pub use types::common::posix88::*;
95 pub use types::os::common::posix01::*;
96 pub use types::os::common::bsd44::*;
97 pub use types::os::arch::c95::*;
98 pub use types::os::arch::c99::*;
99 pub use types::os::arch::posix88::*;
100 pub use types::os::arch::posix01::*;
101 pub use types::os::arch::extra::*;
103 pub use consts::os::c95::*;
104 pub use consts::os::posix88::*;
105 pub use consts::os::posix01::*;
106 pub use consts::os::posix08::*;
107 pub use consts::os::bsd44::*;
108 pub use consts::os::extra::*;
110 pub use funcs::c95::ctype::*;
111 pub use funcs::c95::stdio::*;
112 pub use funcs::c95::stdlib::*;
113 pub use funcs::c95::string::*;
114 pub use funcs::posix88::fcntl::*;
115 pub use funcs::posix88::stat_::*;
116 pub use funcs::posix88::stdio::*;
117 pub use funcs::posix88::unistd::*;
119 pub use funcs::bsd43::*;
121 // But we also reexport most everything
122 // if you're interested in writing platform-specific code.
124 // FIXME: This is a mess, but the design of this entire module needs to be
125 // reconsidered, so I'm not inclined to do better right now. As part of
126 // #11870 I removed all the pub globs here, leaving explicit reexports
127 // of everything that is actually used in-tree.
129 // So the following exports don't follow any particular plan.
131 #[cfg(unix)] pub use consts::os::sysconf::*;
133 #[cfg(unix)] pub use funcs::posix88::mman::*;
134 #[cfg(unix)] pub use funcs::posix88::dirent::*;
135 #[cfg(unix)] pub use funcs::posix88::net::*;
136 #[cfg(unix)] pub use funcs::posix01::stat_::*;
137 #[cfg(unix)] pub use funcs::posix01::unistd::*;
138 #[cfg(unix)] pub use funcs::posix01::resource::*;
141 #[cfg(windows)] pub use funcs::extra::kernel32::*;
142 #[cfg(windows)] pub use funcs::extra::winsock::*;
143 #[cfg(windows)] pub use funcs::extra::msvcrt::*;
145 // On NaCl, these libraries are static. Thus it would be a Bad Idea to link them
146 // in when creating a test crate.
147 #[cfg(not(any(windows,
149 all(target_os = "nacl", test),
150 all(target_os = "netbsd", target_vendor = "rumprun"))))]
155 // When compiling rust with musl, statically include libc.a in liblibc.rlib.
156 // A cargo build of the libc crate will therefore automatically pick up the
157 // libc.a symbols because liblibc is transitively linked to by the stdlib.
158 #[cfg(all(target_env = "musl", not(feature = "cargo-build"), not(test)))]
159 #[link(name = "c", kind = "static")]
162 #[cfg(all(windows, target_env = "msvc"))]
163 #[link(name = "kernel32")]
164 #[link(name = "shell32")]
165 #[link(name = "msvcrt")]
168 // libnacl provides functions that require a trip through the IRT to work.
169 // ie: _exit, mmap, nanosleep, etc. Anything that would otherwise require a trip
171 #[cfg(all(target_os = "nacl", not(feature = "cargo-build"), not(test)))]
172 #[link(name = "nacl", kind = "static")]
175 // pnaclmm provides a number of functions that the toolchain's Clang emits calls
176 // to when codegening atomic ops. All the functions within wrap various atomic
178 // Yes, it could be linked by rustc explicitly, however by linking it here
179 // instead we save a bit of time where bins are involved (by not running the
180 // optimizations on the whole pnaclmm foreach binary built).
181 #[cfg(all(target_os = "nacl", not(feature = "cargo-build"), not(test)))]
182 #[link(name = "pnaclmm", kind = "static")]
187 // Types tend to vary *per architecture* so we pull their definitions out
190 // Standard types that are opaque or common, so are not per-target.
193 /// Type used to construct void pointers for use with C.
195 /// This type is only useful as a pointer target. Do not use it as a
196 /// return type for FFI functions which have the `void` return type in
197 /// C. Use the unit type `()` or omit the return type instead.
199 /// For LLVM to recognize the void pointer type and by extension
200 /// functions like malloc(), we need to have it represented as i8*
201 /// in LLVM bitcode. The enum used here ensures this. We need two
202 /// variants, because the compiler complains about the `repr`
203 /// attribute otherwise.
216 pub type int8_t = i8;
217 pub type int16_t = i16;
218 pub type int32_t = i32;
219 pub type int64_t = i64;
220 pub type uint8_t = u8;
221 pub type uint16_t = u16;
222 pub type uint32_t = u32;
223 pub type uint64_t = u64;
234 // Standard types that are scalar but vary by OS and arch.
236 #[cfg(any(target_os = "linux", target_os = "android", target_os = "nacl"))]
240 use types::common::c95::{c_void};
241 use types::os::arch::c95::{c_char, c_ulong, size_t,
242 time_t, suseconds_t, c_long};
244 #[cfg(not(target_os = "nacl"))]
245 pub type pthread_t = c_ulong;
246 #[cfg(target_os = "nacl")]
247 pub type pthread_t = *mut c_void;
248 pub type rlim_t = u64;
251 #[derive(Copy, Clone)] pub struct glob_t {
252 pub gl_pathc: size_t,
253 pub gl_pathv: *mut *mut c_char,
256 pub __unused1: *mut c_void,
257 pub __unused2: *mut c_void,
258 pub __unused3: *mut c_void,
259 pub __unused4: *mut c_void,
260 pub __unused5: *mut c_void,
264 #[derive(Copy, Clone)] pub struct timeval {
266 pub tv_usec: suseconds_t,
270 #[derive(Copy, Clone)] pub struct timespec {
277 pub type sighandler_t = size_t;
280 #[derive(Copy, Clone)]
282 pub rlim_cur: rlim_t,
283 pub rlim_max: rlim_t,
288 use types::os::common::posix01::timeval;
289 use types::os::arch::c95::c_long;
290 // This is also specified in POSIX 2001, but only has two fields. All implementors
291 // implement BSD 4.3 version.
293 #[derive(Copy, Clone)]
295 pub ru_utime: timeval,
296 pub ru_stime: timeval,
297 pub ru_maxrss: c_long,
298 pub ru_ixrss: c_long,
299 pub ru_idrss: c_long,
300 pub ru_isrss: c_long,
301 pub ru_minflt: c_long,
302 pub ru_majflt: c_long,
303 pub ru_nswap: c_long,
304 pub ru_inblock: c_long,
305 pub ru_oublock: c_long,
306 pub ru_msgsnd: c_long,
307 pub ru_msgrcv: c_long,
308 pub ru_nsignals: c_long,
309 pub ru_nvcsw: c_long,
310 pub ru_nivcsw: c_long
315 use types::common::c95::{c_void};
316 use types::os::arch::c95::{c_char, c_int, c_uint};
318 pub type socklen_t = u32;
319 pub type sa_family_t = u16;
320 pub type in_port_t = u16;
321 pub type in_addr_t = u32;
323 #[derive(Copy, Clone)] pub struct sockaddr {
324 pub sa_family: sa_family_t,
325 pub sa_data: [u8; 14],
328 #[derive(Copy)] pub struct sockaddr_storage {
329 pub ss_family: sa_family_t,
330 pub __ss_align: isize,
331 #[cfg(target_pointer_width = "32")]
332 pub __ss_pad2: [u8; 128 - 2 * 4],
333 #[cfg(target_pointer_width = "64")]
334 pub __ss_pad2: [u8; 128 - 2 * 8],
336 impl ::core::clone::Clone for sockaddr_storage {
337 fn clone(&self) -> sockaddr_storage { *self }
340 #[derive(Copy, Clone)] pub struct sockaddr_in {
341 pub sin_family: sa_family_t,
342 pub sin_port: in_port_t,
343 pub sin_addr: in_addr,
344 pub sin_zero: [u8; 8],
347 #[derive(Copy, Clone)] pub struct in_addr {
348 pub s_addr: in_addr_t,
351 #[derive(Copy, Clone)] pub struct sockaddr_in6 {
352 pub sin6_family: sa_family_t,
353 pub sin6_port: in_port_t,
354 pub sin6_flowinfo: u32,
355 pub sin6_addr: in6_addr,
356 pub sin6_scope_id: u32,
359 #[derive(Copy, Clone)] pub struct in6_addr {
360 pub s6_addr: [u16; 8]
363 #[derive(Copy, Clone)] pub struct ip_mreq {
364 pub imr_multiaddr: in_addr,
365 pub imr_interface: in_addr,
368 #[derive(Copy, Clone)] pub struct ip6_mreq {
369 pub ipv6mr_multiaddr: in6_addr,
370 pub ipv6mr_interface: c_uint,
373 #[derive(Copy, Clone)] pub struct addrinfo {
375 pub ai_family: c_int,
376 pub ai_socktype: c_int,
377 pub ai_protocol: c_int,
378 pub ai_addrlen: socklen_t,
380 #[cfg(target_os = "linux")]
381 pub ai_addr: *mut sockaddr,
383 #[cfg(target_os = "linux")]
384 pub ai_canonname: *mut c_char,
386 #[cfg(any(target_os = "android", target_os = "nacl"))]
387 pub ai_canonname: *mut c_char,
389 #[cfg(any(target_os = "android", target_os = "nacl"))]
390 pub ai_addr: *mut sockaddr,
392 pub ai_next: *mut addrinfo,
395 #[derive(Copy)] pub struct sockaddr_un {
396 pub sun_family: sa_family_t,
397 pub sun_path: [c_char; 108]
399 impl ::core::clone::Clone for sockaddr_un {
400 fn clone(&self) -> sockaddr_un { *self }
404 #[derive(Copy, Clone)] pub struct ifaddrs {
405 pub ifa_next: *mut ifaddrs,
406 pub ifa_name: *mut c_char,
407 pub ifa_flags: c_uint,
408 pub ifa_addr: *mut sockaddr,
409 pub ifa_netmask: *mut sockaddr,
410 pub ifa_ifu: *mut sockaddr, // FIXME This should be a union
411 pub ifa_data: *mut c_void
417 #[cfg(any(target_arch = "x86",
419 target_arch = "mips",
420 target_arch = "mipsel",
421 target_arch = "powerpc",
422 target_arch = "le32"))]
425 pub type c_char = i8;
426 pub type c_schar = i8;
427 pub type c_uchar = u8;
428 pub type c_short = i16;
429 pub type c_ushort = u16;
430 pub type c_int = i32;
431 pub type c_uint = u32;
432 pub type c_long = i32;
433 pub type c_ulong = u32;
434 pub type c_float = f32;
435 pub type c_double = f64;
436 pub type size_t = u32;
437 pub type ptrdiff_t = i32;
438 pub type clock_t = i32;
439 pub type time_t = i32;
440 pub type suseconds_t = i32;
441 pub type wchar_t = i32;
444 pub type c_longlong = i64;
445 pub type c_ulonglong = u64;
446 pub type intptr_t = i32;
447 pub type uintptr_t = u32;
448 pub type intmax_t = i64;
449 pub type uintmax_t = u64;
451 #[cfg(any(target_arch = "mips",
452 target_arch = "mipsel",
453 target_arch = "powerpc",
454 target_arch = "le32",
455 all(any(target_arch = "arm", target_arch = "x86"),
456 not(target_os = "android"))))]
458 pub type off_t = i32;
459 pub type dev_t = u64;
460 pub type ino_t = u32;
461 pub type pid_t = i32;
462 pub type uid_t = u32;
463 pub type gid_t = u32;
464 pub type useconds_t = u32;
465 pub type mode_t = u32;
466 pub type ssize_t = i32;
468 #[cfg(all(any(target_arch = "arm", target_arch = "x86"),
469 target_os = "android"))]
471 pub type off_t = i32;
472 pub type dev_t = u32;
473 pub type ino_t = u32;
475 pub type pid_t = i32;
476 pub type uid_t = u32;
477 pub type gid_t = u32;
478 pub type useconds_t = u32;
480 pub type mode_t = u16;
481 pub type ssize_t = i32;
483 #[cfg(any(all(any(target_arch = "arm", target_arch = "x86"),
484 not(target_os = "android")),
485 target_arch = "le32",
486 target_arch = "powerpc"))]
488 use types::os::arch::c95::{c_short, c_long, time_t};
489 use types::os::arch::posix88::{dev_t, gid_t, ino_t};
490 use types::os::arch::posix88::{mode_t, off_t};
491 use types::os::arch::posix88::{uid_t};
493 pub type nlink_t = u32;
494 pub type blksize_t = i32;
495 pub type blkcnt_t = i32;
498 #[derive(Copy, Clone)] pub struct stat {
503 pub st_nlink: nlink_t,
509 pub st_blksize: blksize_t,
510 pub st_blocks: blkcnt_t,
511 pub st_atime: time_t,
512 pub st_atime_nsec: c_long,
513 pub st_mtime: time_t,
514 pub st_mtime_nsec: c_long,
515 pub st_ctime: time_t,
516 pub st_ctime_nsec: c_long,
517 pub __unused4: c_long,
518 pub __unused5: c_long,
522 #[derive(Copy, Clone)] pub struct utimbuf {
528 #[derive(Copy, Clone)] pub struct pthread_attr_t {
533 #[cfg(all(any(target_arch = "arm", target_arch = "x86"),
534 target_os = "android"))]
536 use types::os::arch::c95::{c_uchar, c_uint, c_ulong, c_long, time_t};
537 use types::os::arch::c99::{c_longlong, c_ulonglong};
538 use types::os::arch::posix88::{uid_t, gid_t};
540 pub type nlink_t = u16;
541 pub type blksize_t = u32;
542 pub type blkcnt_t = u32;
545 #[derive(Copy, Clone)] pub struct stat {
546 pub st_dev: c_ulonglong,
547 pub __pad0: [c_uchar; 4],
548 pub __st_ino: c_long,
550 pub st_nlink: c_uint,
553 pub st_rdev: c_ulonglong,
554 pub __pad3: [c_uchar; 4],
555 pub st_size: c_longlong,
556 pub st_blksize: c_ulong,
557 pub st_blocks: c_ulonglong,
558 pub st_atime: time_t,
559 pub st_atime_nsec: c_ulong,
560 pub st_mtime: time_t,
561 pub st_mtime_nsec: c_ulong,
562 pub st_ctime: time_t,
563 pub st_ctime_nsec: c_ulong,
564 pub st_ino: c_ulonglong,
568 #[derive(Copy, Clone)] pub struct utimbuf {
574 #[derive(Copy, Clone)] pub struct pthread_attr_t {
579 #[cfg(any(target_arch = "mips",
580 target_arch = "mipsel"))]
582 use types::os::arch::c95::{c_long, c_ulong, time_t};
583 use types::os::arch::posix88::{gid_t, ino_t};
584 use types::os::arch::posix88::{mode_t, off_t};
585 use types::os::arch::posix88::{uid_t};
587 pub type nlink_t = u32;
588 pub type blksize_t = i32;
589 pub type blkcnt_t = i32;
592 #[derive(Copy, Clone)] pub struct stat {
594 pub st_pad1: [c_long; 3],
597 pub st_nlink: nlink_t,
600 pub st_rdev: c_ulong,
601 pub st_pad2: [c_long; 2],
604 pub st_atime: time_t,
605 pub st_atime_nsec: c_long,
606 pub st_mtime: time_t,
607 pub st_mtime_nsec: c_long,
608 pub st_ctime: time_t,
609 pub st_ctime_nsec: c_long,
610 pub st_blksize: blksize_t,
611 pub st_blocks: blkcnt_t,
612 pub st_pad5: [c_long; 14],
616 #[derive(Copy, Clone)] pub struct utimbuf {
622 #[derive(Copy, Clone)] pub struct pthread_attr_t {
629 use types::os::arch::c95::{c_ushort, c_int, c_uchar};
631 #[derive(Copy, Clone)] pub struct sockaddr_ll {
632 pub sll_family: c_ushort,
633 pub sll_protocol: c_ushort,
634 pub sll_ifindex: c_int,
635 pub sll_hatype: c_ushort,
636 pub sll_pkttype: c_uchar,
637 pub sll_halen: c_uchar,
638 pub sll_addr: [c_uchar; 8]
644 #[cfg(any(target_arch = "x86_64",
645 target_arch = "aarch64"))]
648 #[cfg(not(target_arch = "aarch64"))]
649 pub type c_char = i8;
650 #[cfg(target_arch = "aarch64")]
651 pub type c_char = u8;
652 pub type c_schar = i8;
653 pub type c_uchar = u8;
654 pub type c_short = i16;
655 pub type c_ushort = u16;
656 pub type c_int = i32;
657 pub type c_uint = u32;
658 pub type c_long = i64;
659 pub type c_ulong = u64;
660 pub type c_float = f32;
661 pub type c_double = f64;
662 pub type size_t = u64;
663 pub type ptrdiff_t = i64;
664 pub type clock_t = i64;
665 pub type time_t = i64;
666 pub type suseconds_t = i64;
667 #[cfg(not(target_arch = "aarch64"))]
668 pub type wchar_t = i32;
669 #[cfg(target_arch = "aarch64")]
670 pub type wchar_t = u32;
673 pub type c_longlong = i64;
674 pub type c_ulonglong = u64;
675 pub type intptr_t = i64;
676 pub type uintptr_t = u64;
677 pub type intmax_t = i64;
678 pub type uintmax_t = u64;
681 pub type off_t = i64;
682 pub type dev_t = u64;
683 pub type ino_t = u64;
684 pub type pid_t = i32;
685 pub type uid_t = u32;
686 pub type gid_t = u32;
687 pub type useconds_t = u32;
688 pub type mode_t = u32;
689 pub type ssize_t = i64;
691 #[cfg(not(target_arch = "aarch64"))]
693 use types::os::arch::c95::{c_int, c_long, time_t};
694 use types::os::arch::posix88::{dev_t, gid_t, ino_t};
695 use types::os::arch::posix88::{mode_t, off_t};
696 use types::os::arch::posix88::{uid_t};
698 pub type nlink_t = u64;
699 pub type blksize_t = i64;
700 pub type blkcnt_t = i64;
703 #[derive(Copy, Clone)] pub struct stat {
706 pub st_nlink: nlink_t,
713 pub st_blksize: blksize_t,
714 pub st_blocks: blkcnt_t,
715 pub st_atime: time_t,
716 pub st_atime_nsec: c_long,
717 pub st_mtime: time_t,
718 pub st_mtime_nsec: c_long,
719 pub st_ctime: time_t,
720 pub st_ctime_nsec: c_long,
721 pub __unused: [c_long; 3],
725 #[derive(Copy, Clone)] pub struct utimbuf {
731 #[derive(Copy, Clone)] pub struct pthread_attr_t {
735 #[cfg(target_arch = "aarch64")]
737 use types::os::arch::c95::{c_int, c_long, time_t};
738 use types::os::arch::posix88::{dev_t, gid_t, ino_t};
739 use types::os::arch::posix88::{mode_t, off_t};
740 use types::os::arch::posix88::{uid_t};
742 pub type nlink_t = u32;
743 pub type blksize_t = i32;
744 pub type blkcnt_t = i64;
747 #[derive(Copy, Clone)] pub struct stat {
751 pub st_nlink: nlink_t,
757 pub st_blksize: blksize_t,
759 pub st_blocks: blkcnt_t,
760 pub st_atime: time_t,
761 pub st_atime_nsec: c_long,
762 pub st_mtime: time_t,
763 pub st_mtime_nsec: c_long,
764 pub st_ctime: time_t,
765 pub st_ctime_nsec: c_long,
766 pub __unused: [c_int; 2],
770 #[derive(Copy, Clone)] pub struct utimbuf {
776 #[derive(Copy, Clone)] pub struct pthread_attr_t {
785 use types::os::arch::c95::{c_ushort, c_int, c_uchar};
786 #[derive(Copy, Clone)] pub struct sockaddr_ll {
787 pub sll_family: c_ushort,
788 pub sll_protocol: c_ushort,
789 pub sll_ifindex: c_int,
790 pub sll_hatype: c_ushort,
791 pub sll_pkttype: c_uchar,
792 pub sll_halen: c_uchar,
793 pub sll_addr: [c_uchar; 8]
800 #[cfg(target_os = "freebsd")]
804 use types::common::c95::{c_void};
805 use types::os::arch::c95::{c_char, c_int, size_t,
806 time_t, suseconds_t, c_long};
807 use types::os::arch::c99::{uintptr_t};
809 pub type pthread_t = uintptr_t;
810 pub type rlim_t = i64;
813 #[derive(Copy, Clone)] pub struct glob_t {
814 pub gl_pathc: size_t,
815 pub __unused1: size_t,
817 pub __unused2: c_int,
818 pub gl_pathv: *mut *mut c_char,
820 pub __unused3: *mut c_void,
822 pub __unused4: *mut c_void,
823 pub __unused5: *mut c_void,
824 pub __unused6: *mut c_void,
825 pub __unused7: *mut c_void,
826 pub __unused8: *mut c_void,
830 #[derive(Copy, Clone)] pub struct timeval {
832 pub tv_usec: suseconds_t,
836 #[derive(Copy, Clone)] pub struct timespec {
843 pub type sighandler_t = size_t;
846 #[derive(Copy, Clone)]
848 pub rlim_cur: rlim_t,
849 pub rlim_max: rlim_t,
854 use types::os::common::posix01::timeval;
855 use types::os::arch::c95::c_long;
857 #[derive(Copy, Clone)]
859 pub ru_utime: timeval,
860 pub ru_stime: timeval,
861 pub ru_maxrss: c_long,
862 pub ru_ixrss: c_long,
863 pub ru_idrss: c_long,
864 pub ru_isrss: c_long,
865 pub ru_minflt: c_long,
866 pub ru_majflt: c_long,
867 pub ru_nswap: c_long,
868 pub ru_inblock: c_long,
869 pub ru_oublock: c_long,
870 pub ru_msgsnd: c_long,
871 pub ru_msgrcv: c_long,
872 pub ru_nsignals: c_long,
873 pub ru_nvcsw: c_long,
874 pub ru_nivcsw: c_long
879 use types::common::c95::{c_void};
880 use types::os::arch::c95::{c_char, c_int, c_uint};
882 pub type socklen_t = u32;
883 pub type sa_family_t = u8;
884 pub type in_port_t = u16;
885 pub type in_addr_t = u32;
887 #[derive(Copy, Clone)] pub struct sockaddr {
889 pub sa_family: sa_family_t,
890 pub sa_data: [u8; 14],
893 #[derive(Copy)] pub struct sockaddr_storage {
895 pub ss_family: sa_family_t,
896 pub __ss_pad1: [u8; 6],
898 pub __ss_pad2: [u8; 112],
900 impl ::core::clone::Clone for sockaddr_storage {
901 fn clone(&self) -> sockaddr_storage { *self }
904 #[derive(Copy, Clone)] pub struct sockaddr_in {
906 pub sin_family: sa_family_t,
907 pub sin_port: in_port_t,
908 pub sin_addr: in_addr,
909 pub sin_zero: [u8; 8],
912 #[derive(Copy, Clone)] pub struct in_addr {
913 pub s_addr: in_addr_t,
916 #[derive(Copy, Clone)] pub struct sockaddr_in6 {
918 pub sin6_family: sa_family_t,
919 pub sin6_port: in_port_t,
920 pub sin6_flowinfo: u32,
921 pub sin6_addr: in6_addr,
922 pub sin6_scope_id: u32,
925 #[derive(Copy, Clone)] pub struct in6_addr {
926 pub s6_addr: [u16; 8]
929 #[derive(Copy, Clone)] pub struct ip_mreq {
930 pub imr_multiaddr: in_addr,
931 pub imr_interface: in_addr,
934 #[derive(Copy, Clone)] pub struct ip6_mreq {
935 pub ipv6mr_multiaddr: in6_addr,
936 pub ipv6mr_interface: c_uint,
939 #[derive(Copy, Clone)] pub struct addrinfo {
941 pub ai_family: c_int,
942 pub ai_socktype: c_int,
943 pub ai_protocol: c_int,
944 pub ai_addrlen: socklen_t,
945 pub ai_canonname: *mut c_char,
946 pub ai_addr: *mut sockaddr,
947 pub ai_next: *mut addrinfo,
950 #[derive(Copy)] pub struct sockaddr_un {
952 pub sun_family: sa_family_t,
953 pub sun_path: [c_char; 104]
955 impl ::core::clone::Clone for sockaddr_un {
956 fn clone(&self) -> sockaddr_un { *self }
959 #[derive(Copy, Clone)] pub struct ifaddrs {
960 pub ifa_next: *mut ifaddrs,
961 pub ifa_name: *mut c_char,
962 pub ifa_flags: c_uint,
963 pub ifa_addr: *mut sockaddr,
964 pub ifa_netmask: *mut sockaddr,
965 pub ifa_dstaddr: *mut sockaddr,
966 pub ifa_data: *mut c_void
973 #[cfg(target_arch = "x86")]
976 pub type c_char = i8;
977 pub type c_schar = i8;
978 pub type c_uchar = u8;
979 pub type c_short = i16;
980 pub type c_ushort = u16;
981 pub type c_int = i32;
982 pub type c_uint = u32;
983 pub type c_long = i32;
984 pub type c_ulong = u32;
985 pub type c_float = f32;
986 pub type c_double = f64;
987 pub type size_t = u32;
988 pub type ptrdiff_t = i32;
989 pub type clock_t = i32;
990 pub type time_t = i32;
991 pub type suseconds_t = i32;
992 pub type wchar_t = i32;
995 pub type c_longlong = i64;
996 pub type c_ulonglong = u64;
997 pub type intptr_t = i32;
998 pub type uintptr_t = u32;
999 pub type intmax_t = i64;
1000 pub type uintmax_t = u64;
1003 pub type off_t = i64;
1004 pub type dev_t = u32;
1005 pub type ino_t = u32;
1006 pub type pid_t = i32;
1007 pub type uid_t = u32;
1008 pub type gid_t = u32;
1009 pub type useconds_t = u32;
1010 pub type mode_t = u16;
1011 pub type ssize_t = i32;
1014 use types::common::c95::{c_void};
1015 use types::common::c99::{uint32_t, int32_t};
1016 use types::os::arch::c95::{c_long, time_t};
1017 use types::os::arch::posix88::{dev_t, gid_t, ino_t};
1018 use types::os::arch::posix88::{mode_t, off_t};
1019 use types::os::arch::posix88::{uid_t};
1021 pub type nlink_t = u16;
1022 pub type blksize_t = u32;
1023 pub type blkcnt_t = i64;
1024 pub type fflags_t = u32;
1026 #[derive(Copy, Clone)] pub struct stat {
1029 pub st_mode: mode_t,
1030 pub st_nlink: nlink_t,
1034 pub st_atime: time_t,
1035 pub st_atime_nsec: c_long,
1036 pub st_mtime: time_t,
1037 pub st_mtime_nsec: c_long,
1038 pub st_ctime: time_t,
1039 pub st_ctime_nsec: c_long,
1041 pub st_blocks: blkcnt_t,
1042 pub st_blksize: blksize_t,
1043 pub st_flags: fflags_t,
1044 pub st_gen: uint32_t,
1045 pub st_lspare: int32_t,
1046 pub st_birthtime: time_t,
1047 pub st_birthtime_nsec: c_long,
1048 pub __unused: [u8; 8],
1052 #[derive(Copy, Clone)] pub struct utimbuf {
1054 pub modtime: time_t,
1057 pub type pthread_attr_t = *mut c_void;
1067 #[cfg(target_arch = "x86_64")]
1070 pub type c_char = i8;
1071 pub type c_schar = i8;
1072 pub type c_uchar = u8;
1073 pub type c_short = i16;
1074 pub type c_ushort = u16;
1075 pub type c_int = i32;
1076 pub type c_uint = u32;
1077 pub type c_long = i64;
1078 pub type c_ulong = u64;
1079 pub type c_float = f32;
1080 pub type c_double = f64;
1081 pub type size_t = u64;
1082 pub type ptrdiff_t = i64;
1083 pub type clock_t = i32;
1084 pub type time_t = i64;
1085 pub type suseconds_t = i64;
1086 pub type wchar_t = i32;
1089 pub type c_longlong = i64;
1090 pub type c_ulonglong = u64;
1091 pub type intptr_t = i64;
1092 pub type uintptr_t = u64;
1093 pub type intmax_t = i64;
1094 pub type uintmax_t = u64;
1097 pub type off_t = i64;
1098 pub type dev_t = u32;
1099 pub type ino_t = u32;
1100 pub type pid_t = i32;
1101 pub type uid_t = u32;
1102 pub type gid_t = u32;
1103 pub type useconds_t = u32;
1104 pub type mode_t = u16;
1105 pub type ssize_t = i64;
1108 use types::common::c95::{c_void};
1109 use types::common::c99::{uint32_t, int32_t};
1110 use types::os::arch::c95::{c_long, time_t};
1111 use types::os::arch::posix88::{dev_t, gid_t, ino_t};
1112 use types::os::arch::posix88::{mode_t, off_t};
1113 use types::os::arch::posix88::{uid_t};
1115 pub type nlink_t = u16;
1116 pub type blksize_t = u32;
1117 pub type blkcnt_t = i64;
1118 pub type fflags_t = u32;
1120 #[derive(Copy, Clone)] pub struct stat {
1123 pub st_mode: mode_t,
1124 pub st_nlink: nlink_t,
1128 pub st_atime: time_t,
1129 pub st_atime_nsec: c_long,
1130 pub st_mtime: time_t,
1131 pub st_mtime_nsec: c_long,
1132 pub st_ctime: time_t,
1133 pub st_ctime_nsec: c_long,
1135 pub st_blocks: blkcnt_t,
1136 pub st_blksize: blksize_t,
1137 pub st_flags: fflags_t,
1138 pub st_gen: uint32_t,
1139 pub st_lspare: int32_t,
1140 pub st_birthtime: time_t,
1141 pub st_birthtime_nsec: c_long,
1145 #[derive(Copy, Clone)] pub struct utimbuf {
1147 pub modtime: time_t,
1150 pub type pthread_attr_t = *mut c_void;
1161 #[cfg(target_os = "dragonfly")]
1165 use types::common::c95::{c_void};
1166 use types::os::arch::c95::{c_char, c_int, size_t,
1167 time_t, suseconds_t, c_long};
1168 use types::os::arch::c99::{uintptr_t};
1170 pub type pthread_t = uintptr_t;
1171 pub type rlim_t = i64;
1174 #[derive(Copy, Clone)] pub struct glob_t {
1175 pub gl_pathc: size_t,
1176 pub __unused1: size_t,
1177 pub gl_offs: size_t,
1178 pub __unused2: c_int,
1179 pub gl_pathv: *mut *mut c_char,
1181 pub __unused3: *mut c_void,
1183 pub __unused4: *mut c_void,
1184 pub __unused5: *mut c_void,
1185 pub __unused6: *mut c_void,
1186 pub __unused7: *mut c_void,
1187 pub __unused8: *mut c_void,
1191 #[derive(Copy, Clone)] pub struct timeval {
1193 pub tv_usec: suseconds_t,
1197 #[derive(Copy, Clone)] pub struct timespec {
1199 pub tv_nsec: c_long,
1202 pub enum timezone {}
1204 pub type sighandler_t = size_t;
1207 #[derive(Copy, Clone)]
1209 pub rlim_cur: rlim_t,
1210 pub rlim_max: rlim_t,
1215 use types::os::common::posix01::timeval;
1216 use types::os::arch::c95::c_long;
1218 #[derive(Copy, Clone)]
1220 pub ru_utime: timeval,
1221 pub ru_stime: timeval,
1222 pub ru_maxrss: c_long,
1223 pub ru_ixrss: c_long,
1224 pub ru_idrss: c_long,
1225 pub ru_isrss: c_long,
1226 pub ru_minflt: c_long,
1227 pub ru_majflt: c_long,
1228 pub ru_nswap: c_long,
1229 pub ru_inblock: c_long,
1230 pub ru_oublock: c_long,
1231 pub ru_msgsnd: c_long,
1232 pub ru_msgrcv: c_long,
1233 pub ru_nsignals: c_long,
1234 pub ru_nvcsw: c_long,
1235 pub ru_nivcsw: c_long
1240 use types::common::c95::{c_void};
1241 use types::os::arch::c95::{c_char, c_int, c_uint};
1243 pub type socklen_t = u32;
1244 pub type sa_family_t = u8;
1245 pub type in_port_t = u16;
1246 pub type in_addr_t = u32;
1248 #[derive(Copy, Clone)] pub struct sockaddr {
1250 pub sa_family: sa_family_t,
1251 pub sa_data: [u8; 14],
1254 #[derive(Copy)] pub struct sockaddr_storage {
1256 pub ss_family: sa_family_t,
1257 pub __ss_pad1: [u8; 6],
1258 pub __ss_align: i64,
1259 pub __ss_pad2: [u8; 112],
1261 impl ::core::clone::Clone for sockaddr_storage {
1262 fn clone(&self) -> sockaddr_storage { *self }
1265 #[derive(Copy, Clone)] pub struct sockaddr_in {
1267 pub sin_family: sa_family_t,
1268 pub sin_port: in_port_t,
1269 pub sin_addr: in_addr,
1270 pub sin_zero: [u8; 8],
1273 #[derive(Copy, Clone)] pub struct in_addr {
1274 pub s_addr: in_addr_t,
1277 #[derive(Copy, Clone)] pub struct sockaddr_in6 {
1279 pub sin6_family: sa_family_t,
1280 pub sin6_port: in_port_t,
1281 pub sin6_flowinfo: u32,
1282 pub sin6_addr: in6_addr,
1283 pub sin6_scope_id: u32,
1286 #[derive(Copy, Clone)] pub struct in6_addr {
1287 pub s6_addr: [u16; 8]
1290 #[derive(Copy, Clone)] pub struct ip_mreq {
1291 pub imr_multiaddr: in_addr,
1292 pub imr_interface: in_addr,
1295 #[derive(Copy, Clone)] pub struct ip6_mreq {
1296 pub ipv6mr_multiaddr: in6_addr,
1297 pub ipv6mr_interface: c_uint,
1300 #[derive(Copy, Clone)] pub struct addrinfo {
1301 pub ai_flags: c_int,
1302 pub ai_family: c_int,
1303 pub ai_socktype: c_int,
1304 pub ai_protocol: c_int,
1305 pub ai_addrlen: socklen_t,
1306 pub ai_canonname: *mut c_char,
1307 pub ai_addr: *mut sockaddr,
1308 pub ai_next: *mut addrinfo,
1311 #[derive(Copy)] pub struct sockaddr_un {
1313 pub sun_family: sa_family_t,
1314 pub sun_path: [c_char; 104]
1316 impl ::core::clone::Clone for sockaddr_un {
1317 fn clone(&self) -> sockaddr_un { *self }
1320 #[derive(Copy, Clone)] pub struct ifaddrs {
1321 pub ifa_next: *mut ifaddrs,
1322 pub ifa_name: *mut c_char,
1323 pub ifa_flags: c_uint,
1324 pub ifa_addr: *mut sockaddr,
1325 pub ifa_netmask: *mut sockaddr,
1326 pub ifa_dstaddr: *mut sockaddr,
1327 pub ifa_data: *mut c_void
1333 #[cfg(target_arch = "x86_64")]
1336 pub type c_char = i8;
1337 pub type c_schar = i8;
1338 pub type c_uchar = u8;
1339 pub type c_short = i16;
1340 pub type c_ushort = u16;
1341 pub type c_int = i32;
1342 pub type c_uint = u32;
1343 pub type c_long = i64;
1344 pub type c_ulong = u64;
1345 pub type c_float = f32;
1346 pub type c_double = f64;
1347 pub type size_t = u64;
1348 pub type ptrdiff_t = i64;
1349 pub type clock_t = i32;
1350 pub type time_t = i64;
1351 pub type suseconds_t = i64;
1352 pub type wchar_t = i32;
1355 pub type c_longlong = i64;
1356 pub type c_ulonglong = u64;
1357 pub type intptr_t = i64;
1358 pub type uintptr_t = u64;
1359 pub type intmax_t = i64;
1360 pub type uintmax_t = u64;
1363 pub type off_t = i64;
1364 pub type dev_t = u32;
1365 pub type pid_t = i32;
1366 pub type uid_t = u32;
1367 pub type gid_t = u32;
1368 pub type useconds_t = u32;
1369 pub type mode_t = u16;
1370 pub type ssize_t = i64;
1373 use types::common::c95::{c_void};
1374 use types::common::c99::{uint16_t, uint32_t, int32_t, uint64_t, int64_t};
1375 use types::os::arch::c95::{c_long, time_t};
1376 use types::os::arch::posix88::{dev_t, gid_t};
1377 use types::os::arch::posix88::{mode_t, off_t};
1378 use types::os::arch::posix88::{uid_t};
1380 pub type nlink_t = u16;
1381 pub type blksize_t = uint32_t;
1382 pub type ino_t = uint64_t;
1383 pub type blkcnt_t = i64;
1384 pub type fflags_t = u32;
1387 #[derive(Copy, Clone)] pub struct stat {
1389 pub st_nlink: nlink_t,
1391 pub st_mode: mode_t,
1392 pub st_padding1: uint16_t,
1396 pub st_atime: time_t,
1397 pub st_atime_nsec: c_long,
1398 pub st_mtime: time_t,
1399 pub st_mtime_nsec: c_long,
1400 pub st_ctime: time_t,
1401 pub st_ctime_nsec: c_long,
1403 pub st_blocks: blkcnt_t,
1404 pub st_blksize: blksize_t,
1405 pub st_flags: fflags_t,
1406 pub st_gen: uint32_t,
1407 pub st_lspare: int32_t,
1408 pub st_qspare1: int64_t,
1409 pub st_qspare2: int64_t,
1412 #[derive(Copy, Clone)] pub struct utimbuf {
1414 pub modtime: time_t,
1417 pub type pthread_attr_t = *mut c_void;
1428 #[cfg(any(target_os = "bitrig", target_os = "netbsd", target_os ="openbsd"))]
1432 use types::common::c95::{c_void};
1433 use types::os::arch::c95::{c_char, c_int, size_t,
1434 time_t, suseconds_t, c_long};
1435 use types::os::arch::c99::{uintptr_t};
1437 pub type pthread_t = uintptr_t;
1438 pub type rlim_t = u64;
1440 #[cfg(target_os = "bitrig")]
1442 #[derive(Copy, Clone)] pub struct glob_t {
1443 pub gl_pathc: c_int,
1444 pub gl_matchc: c_int,
1446 pub gl_flags: c_int,
1447 pub gl_pathv: *mut *mut c_char,
1448 pub __unused1: *mut c_void,
1449 pub __unused2: *mut c_void,
1450 pub __unused3: *mut c_void,
1451 pub __unused4: *mut c_void,
1452 pub __unused5: *mut c_void,
1453 pub __unused6: *mut c_void,
1454 pub __unused7: *mut c_void,
1457 #[cfg(target_os = "netbsd")]
1459 #[derive(Copy, Clone)] pub struct glob_t {
1460 pub gl_pathc: size_t,
1461 pub gl_matchc: size_t,
1462 pub gl_offs: size_t,
1463 pub gl_flags: c_int,
1464 pub gl_pathv: *mut *mut c_char,
1465 pub __unused1: *mut c_void,
1466 pub __unused2: *mut c_void,
1467 pub __unused3: *mut c_void,
1468 pub __unused4: *mut c_void,
1469 pub __unused5: *mut c_void,
1470 pub __unused6: *mut c_void,
1473 #[cfg(target_os = "openbsd")]
1475 #[derive(Copy, Clone)] pub struct glob_t {
1476 pub gl_pathc: c_int,
1477 pub __unused1: c_int,
1479 pub __unused2: c_int,
1480 pub gl_pathv: *mut *mut c_char,
1482 pub __unused3: *mut c_void,
1484 pub __unused4: *mut c_void,
1485 pub __unused5: *mut c_void,
1486 pub __unused6: *mut c_void,
1487 pub __unused7: *mut c_void,
1488 pub __unused8: *mut c_void,
1489 pub __unused9: *mut c_void,
1493 #[derive(Copy, Clone)] pub struct timeval {
1495 pub tv_usec: suseconds_t,
1499 #[derive(Copy, Clone)] pub struct timespec {
1501 pub tv_nsec: c_long,
1504 pub enum timezone {}
1506 pub type sighandler_t = size_t;
1509 #[derive(Copy, Clone)]
1511 pub rlim_cur: rlim_t,
1512 pub rlim_max: rlim_t,
1517 use types::os::common::posix01::timeval;
1518 use types::os::arch::c95::c_long;
1520 #[derive(Copy, Clone)]
1522 pub ru_utime: timeval,
1523 pub ru_stime: timeval,
1524 pub ru_maxrss: c_long,
1525 pub ru_ixrss: c_long,
1526 pub ru_idrss: c_long,
1527 pub ru_isrss: c_long,
1528 pub ru_minflt: c_long,
1529 pub ru_majflt: c_long,
1530 pub ru_nswap: c_long,
1531 pub ru_inblock: c_long,
1532 pub ru_oublock: c_long,
1533 pub ru_msgsnd: c_long,
1534 pub ru_msgrcv: c_long,
1535 pub ru_nsignals: c_long,
1536 pub ru_nvcsw: c_long,
1537 pub ru_nivcsw: c_long
1542 use types::common::c95::{c_void};
1543 use types::os::arch::c95::{c_char, c_int, c_uint};
1545 pub type socklen_t = u32;
1546 pub type sa_family_t = u8;
1547 pub type in_port_t = u16;
1548 pub type in_addr_t = u32;
1550 #[derive(Copy, Clone)] pub struct sockaddr {
1552 pub sa_family: sa_family_t,
1553 pub sa_data: [u8; 14],
1556 #[derive(Copy)] pub struct sockaddr_storage {
1558 pub ss_family: sa_family_t,
1559 pub __ss_pad1: [u8; 6],
1561 pub __ss_pad3: [u8; 240],
1563 impl ::core::clone::Clone for sockaddr_storage {
1564 fn clone(&self) -> sockaddr_storage { *self }
1567 #[derive(Copy, Clone)] pub struct sockaddr_in {
1569 pub sin_family: sa_family_t,
1570 pub sin_port: in_port_t,
1571 pub sin_addr: in_addr,
1572 pub sin_zero: [u8; 8],
1575 #[derive(Copy, Clone)] pub struct in_addr {
1576 pub s_addr: in_addr_t,
1579 #[derive(Copy, Clone)] pub struct sockaddr_in6 {
1581 pub sin6_family: sa_family_t,
1582 pub sin6_port: in_port_t,
1583 pub sin6_flowinfo: u32,
1584 pub sin6_addr: in6_addr,
1585 pub sin6_scope_id: u32,
1588 #[derive(Copy, Clone)] pub struct in6_addr {
1589 pub s6_addr: [u16; 8]
1592 #[derive(Copy, Clone)] pub struct ip_mreq {
1593 pub imr_multiaddr: in_addr,
1594 pub imr_interface: in_addr,
1597 #[derive(Copy, Clone)] pub struct ip6_mreq {
1598 pub ipv6mr_multiaddr: in6_addr,
1599 pub ipv6mr_interface: c_uint,
1601 #[cfg(not(target_os = "netbsd"))]
1603 #[derive(Copy, Clone)] pub struct addrinfo {
1604 pub ai_flags: c_int,
1605 pub ai_family: c_int,
1606 pub ai_socktype: c_int,
1607 pub ai_protocol: c_int,
1608 pub ai_addrlen: socklen_t,
1609 pub ai_addr: *mut sockaddr,
1610 pub ai_canonname: *mut c_char,
1611 pub ai_next: *mut addrinfo,
1613 #[cfg(target_os = "netbsd")]
1615 #[derive(Copy, Clone)] pub struct addrinfo {
1616 pub ai_flags: c_int,
1617 pub ai_family: c_int,
1618 pub ai_socktype: c_int,
1619 pub ai_protocol: c_int,
1620 pub ai_addrlen: socklen_t,
1621 pub ai_canonname: *mut c_char,
1622 pub ai_addr: *mut sockaddr,
1623 pub ai_next: *mut addrinfo,
1626 #[derive(Copy)] pub struct sockaddr_un {
1628 pub sun_family: sa_family_t,
1629 pub sun_path: [c_char; 104]
1631 impl ::core::clone::Clone for sockaddr_un {
1632 fn clone(&self) -> sockaddr_un { *self }
1635 #[derive(Copy, Clone)] pub struct ifaddrs {
1636 pub ifa_next: *mut ifaddrs,
1637 pub ifa_name: *mut c_char,
1638 pub ifa_flags: c_uint,
1639 pub ifa_addr: *mut sockaddr,
1640 pub ifa_netmask: *mut sockaddr,
1641 pub ifa_dstaddr: *mut sockaddr,
1642 pub ifa_data: *mut c_void
1647 #[cfg(target_arch = "x86_64")]
1650 pub type c_char = i8;
1651 pub type c_schar = i8;
1652 pub type c_uchar = u8;
1653 pub type c_short = i16;
1654 pub type c_ushort = u16;
1655 pub type c_int = i32;
1656 pub type c_uint = u32;
1657 pub type c_long = i64;
1658 pub type c_ulong = u64;
1659 pub type c_float = f32;
1660 pub type c_double = f64;
1661 pub type size_t = u64;
1662 pub type ptrdiff_t = i64;
1663 pub type clock_t = i64;
1664 pub type time_t = i64;
1665 pub type suseconds_t = i64;
1666 pub type wchar_t = i32;
1669 pub type c_longlong = i64;
1670 pub type c_ulonglong = u64;
1671 pub type intptr_t = i64;
1672 pub type uintptr_t = u64;
1673 pub type intmax_t = i64;
1674 pub type uintmax_t = u64;
1677 use types::os::arch::c95::{c_long};
1678 pub type off_t = i64;
1679 pub type dev_t = i32;
1680 pub type pid_t = i32;
1681 pub type uid_t = u32;
1682 pub type gid_t = u32;
1683 pub type useconds_t = u32;
1684 pub type mode_t = u32;
1685 pub type ssize_t = c_long;
1688 use types::common::c95::{c_void};
1689 use types::common::c99::{uint32_t, uint64_t};
1690 use types::os::arch::c95::{c_long, time_t};
1691 use types::os::arch::posix88::{dev_t, gid_t};
1692 use types::os::arch::posix88::{mode_t, off_t};
1693 use types::os::arch::posix88::{uid_t};
1694 #[cfg(target_os = "netbsd")]
1695 use types::os::arch::c95::{c_int, c_uint};
1697 pub type nlink_t = uint32_t;
1698 pub type blksize_t = uint32_t;
1699 pub type ino_t = uint64_t;
1700 pub type blkcnt_t = i64;
1701 pub type fflags_t = u32; // type not declared, but struct stat have u_int32_t
1703 #[cfg(not(target_os = "netbsd"))]
1705 #[derive(Copy, Clone)] pub struct stat {
1706 pub st_mode: mode_t,
1709 pub st_nlink: nlink_t,
1713 pub st_atime: time_t,
1714 pub st_atime_nsec: c_long,
1715 pub st_mtime: time_t,
1716 pub st_mtime_nsec: c_long,
1717 pub st_ctime: time_t,
1718 pub st_ctime_nsec: c_long,
1720 pub st_blocks: blkcnt_t,
1721 pub st_blksize: blksize_t,
1722 pub st_flags: fflags_t,
1723 pub st_gen: uint32_t,
1724 pub st_birthtime: time_t,
1725 pub st_birthtime_nsec: c_long,
1727 #[cfg(target_os = "netbsd")]
1729 #[derive(Copy, Clone)] pub struct stat {
1730 pub st_mode: mode_t,
1733 pub st_nlink: nlink_t,
1737 pub st_atime: time_t,
1738 pub st_atime_nsec: c_long,
1739 pub st_mtime: time_t,
1740 pub st_mtime_nsec: c_long,
1741 pub st_ctime: time_t,
1742 pub st_ctime_nsec: c_long,
1743 pub st_birthtime: time_t,
1744 pub st_birthtime_nsec: c_long,
1746 pub st_blocks: blkcnt_t,
1747 pub st_blksize: blksize_t,
1748 pub st_flags: fflags_t,
1749 pub st_gen: uint32_t,
1750 st_spare: [uint32_t; 2],
1754 #[derive(Copy, Clone)] pub struct utimbuf {
1756 pub modtime: time_t,
1759 #[cfg(not(target_os = "netbsd"))]
1760 pub type pthread_attr_t = *mut c_void;
1761 #[cfg(target_os = "netbsd")]
1763 #[derive(Copy, Clone)] pub struct pthread_attr_t {
1766 pta_private: *mut c_void,
1778 #[cfg(target_os = "windows")]
1782 use types::os::arch::c95::{c_short, time_t, c_long};
1783 use types::os::arch::extra::{int64, time64_t};
1784 use types::os::arch::posix88::{dev_t, ino_t};
1786 // pub Note: this is the struct called stat64 in Windows. Not stat,
1789 #[derive(Copy, Clone)] pub struct stat {
1793 pub st_nlink: c_short,
1794 pub st_uid: c_short,
1795 pub st_gid: c_short,
1798 pub st_atime: time64_t,
1799 pub st_mtime: time64_t,
1800 pub st_ctime: time64_t,
1803 // note that this is called utimbuf64 in Windows
1805 #[derive(Copy, Clone)] pub struct utimbuf {
1806 pub actime: time64_t,
1807 pub modtime: time64_t,
1811 #[derive(Copy, Clone)] pub struct timeval {
1813 pub tv_usec: c_long,
1817 #[derive(Copy, Clone)] pub struct timespec {
1819 pub tv_nsec: c_long,
1822 pub enum timezone {}
1826 use types::os::arch::c95::{c_char, c_int, c_uint, size_t};
1827 use types::os::arch::c99::uintptr_t;
1829 pub type SOCKET = uintptr_t;
1830 pub type socklen_t = c_int;
1831 pub type sa_family_t = u16;
1832 pub type in_port_t = u16;
1833 pub type in_addr_t = u32;
1835 #[derive(Copy, Clone)] pub struct sockaddr {
1836 pub sa_family: sa_family_t,
1837 pub sa_data: [u8; 14],
1840 #[derive(Copy)] pub struct sockaddr_storage {
1841 pub ss_family: sa_family_t,
1842 pub __ss_pad1: [u8; 6],
1843 pub __ss_align: i64,
1844 pub __ss_pad2: [u8; 112],
1846 impl ::core::clone::Clone for sockaddr_storage {
1847 fn clone(&self) -> sockaddr_storage { *self }
1850 #[derive(Copy, Clone)] pub struct sockaddr_in {
1851 pub sin_family: sa_family_t,
1852 pub sin_port: in_port_t,
1853 pub sin_addr: in_addr,
1854 pub sin_zero: [u8; 8],
1857 #[derive(Copy, Clone)] pub struct in_addr {
1858 pub s_addr: in_addr_t,
1861 #[derive(Copy, Clone)] pub struct sockaddr_in6 {
1862 pub sin6_family: sa_family_t,
1863 pub sin6_port: in_port_t,
1864 pub sin6_flowinfo: u32,
1865 pub sin6_addr: in6_addr,
1866 pub sin6_scope_id: u32,
1869 #[derive(Copy, Clone)] pub struct in6_addr {
1870 pub s6_addr: [u16; 8]
1873 #[derive(Copy, Clone)] pub struct ip_mreq {
1874 pub imr_multiaddr: in_addr,
1875 pub imr_interface: in_addr,
1878 #[derive(Copy, Clone)] pub struct ip6_mreq {
1879 pub ipv6mr_multiaddr: in6_addr,
1880 pub ipv6mr_interface: c_uint,
1883 #[derive(Copy, Clone)] pub struct addrinfo {
1884 pub ai_flags: c_int,
1885 pub ai_family: c_int,
1886 pub ai_socktype: c_int,
1887 pub ai_protocol: c_int,
1888 pub ai_addrlen: size_t,
1889 pub ai_canonname: *mut c_char,
1890 pub ai_addr: *mut sockaddr,
1891 pub ai_next: *mut addrinfo,
1894 #[derive(Copy)] pub struct sockaddr_un {
1895 pub sun_family: sa_family_t,
1896 pub sun_path: [c_char; 108]
1898 impl ::core::clone::Clone for sockaddr_un {
1899 fn clone(&self) -> sockaddr_un { *self }
1906 pub type c_char = i8;
1907 pub type c_schar = i8;
1908 pub type c_uchar = u8;
1909 pub type c_short = i16;
1910 pub type c_ushort = u16;
1911 pub type c_int = i32;
1912 pub type c_uint = u32;
1913 pub type c_long = i32;
1914 pub type c_ulong = u32;
1915 pub type c_float = f32;
1916 pub type c_double = f64;
1918 #[cfg(target_arch = "x86")]
1919 pub type size_t = u32;
1920 #[cfg(target_arch = "x86_64")]
1921 pub type size_t = u64;
1923 #[cfg(target_arch = "x86")]
1924 pub type ptrdiff_t = i32;
1925 #[cfg(target_arch = "x86_64")]
1926 pub type ptrdiff_t = i64;
1928 pub type clock_t = i32;
1930 #[cfg(target_arch = "x86")]
1931 pub type time_t = i32;
1932 #[cfg(target_arch = "x86_64")]
1933 pub type time_t = i64;
1935 #[cfg(target_arch = "x86")]
1936 pub type suseconds_t = i32;
1937 #[cfg(target_arch = "x86_64")]
1938 pub type suseconds_t = i64;
1940 pub type wchar_t = u16;
1944 pub type c_longlong = i64;
1945 pub type c_ulonglong = u64;
1947 #[cfg(target_arch = "x86")]
1948 pub type intptr_t = i32;
1949 #[cfg(target_arch = "x86_64")]
1950 pub type intptr_t = i64;
1952 #[cfg(target_arch = "x86")]
1953 pub type uintptr_t = u32;
1954 #[cfg(target_arch = "x86_64")]
1955 pub type uintptr_t = u64;
1957 pub type intmax_t = i64;
1958 pub type uintmax_t = u64;
1962 pub type off_t = i32;
1963 pub type dev_t = u32;
1964 pub type ino_t = u16;
1966 pub type pid_t = u32;
1968 pub type useconds_t = u32;
1969 pub type mode_t = u16;
1971 #[cfg(target_arch = "x86")]
1972 pub type ssize_t = i32;
1973 #[cfg(target_arch = "x86_64")]
1974 pub type ssize_t = i64;
1984 use consts::os::extra::{MAX_PROTOCOL_CHAIN,
1986 use types::common::c95::c_void;
1987 use types::os::arch::c95::{c_char, c_int, c_uint, size_t};
1988 use types::os::arch::c95::{c_long, c_ulong};
1989 use types::os::arch::c95::{wchar_t};
1990 use types::os::arch::c99::{c_ulonglong, c_longlong, uintptr_t};
1992 pub type BOOL = c_int;
1994 pub type BOOLEAN = BYTE;
1995 pub type CCHAR = c_char;
1996 pub type CHAR = c_char;
1998 pub type DWORD = c_ulong;
1999 pub type DWORDLONG = c_ulonglong;
2001 pub type HANDLE = LPVOID;
2002 pub type HINSTANCE = HANDLE;
2003 pub type HMODULE = HINSTANCE;
2005 pub type LONG = c_long;
2006 pub type PLONG = *mut c_long;
2008 #[cfg(target_arch = "x86")]
2009 pub type LONG_PTR = c_long;
2010 #[cfg(target_arch = "x86_64")]
2011 pub type LONG_PTR = i64;
2013 pub type LARGE_INTEGER = c_longlong;
2014 pub type PLARGE_INTEGER = *mut c_longlong;
2016 pub type LPCWSTR = *const WCHAR;
2017 pub type LPCSTR = *const CHAR;
2019 pub type LPWSTR = *mut WCHAR;
2020 pub type LPSTR = *mut CHAR;
2022 pub type LPWCH = *mut WCHAR;
2023 pub type LPCH = *mut CHAR;
2026 #[derive(Copy, Clone)] pub struct SECURITY_ATTRIBUTES {
2028 pub lpSecurityDescriptor: LPVOID,
2029 pub bInheritHandle: BOOL,
2031 pub type LPSECURITY_ATTRIBUTES = *mut SECURITY_ATTRIBUTES;
2033 pub type LPVOID = *mut c_void;
2034 pub type LPCVOID = *const c_void;
2035 pub type LPBYTE = *mut BYTE;
2036 pub type LPWORD = *mut WORD;
2037 pub type LPDWORD = *mut DWORD;
2038 pub type LPHANDLE = *mut HANDLE;
2040 pub type LRESULT = LONG_PTR;
2041 pub type PBOOL = *mut BOOL;
2042 pub type WCHAR = wchar_t;
2043 pub type WORD = u16;
2044 pub type SIZE_T = size_t;
2046 pub type time64_t = i64;
2047 pub type int64 = i64;
2050 #[derive(Copy, Clone)] pub struct STARTUPINFO {
2052 pub lpReserved: LPWSTR,
2053 pub lpDesktop: LPWSTR,
2054 pub lpTitle: LPWSTR,
2059 pub dwXCountChars: DWORD,
2060 pub dwYCountCharts: DWORD,
2061 pub dwFillAttribute: DWORD,
2063 pub wShowWindow: WORD,
2064 pub cbReserved2: WORD,
2065 pub lpReserved2: LPBYTE,
2066 pub hStdInput: HANDLE,
2067 pub hStdOutput: HANDLE,
2068 pub hStdError: HANDLE,
2070 pub type LPSTARTUPINFO = *mut STARTUPINFO;
2073 #[derive(Copy, Clone)] pub struct PROCESS_INFORMATION {
2074 pub hProcess: HANDLE,
2075 pub hThread: HANDLE,
2076 pub dwProcessId: DWORD,
2077 pub dwThreadId: DWORD,
2079 pub type LPPROCESS_INFORMATION = *mut PROCESS_INFORMATION;
2082 #[derive(Copy, Clone)] pub struct SYSTEM_INFO {
2083 pub wProcessorArchitecture: WORD,
2084 pub wReserved: WORD,
2085 pub dwPageSize: DWORD,
2086 pub lpMinimumApplicationAddress: LPVOID,
2087 pub lpMaximumApplicationAddress: LPVOID,
2088 pub dwActiveProcessorMask: uintptr_t,
2089 pub dwNumberOfProcessors: DWORD,
2090 pub dwProcessorType: DWORD,
2091 pub dwAllocationGranularity: DWORD,
2092 pub wProcessorLevel: WORD,
2093 pub wProcessorRevision: WORD,
2095 pub type LPSYSTEM_INFO = *mut SYSTEM_INFO;
2098 #[derive(Copy, Clone)] pub struct MEMORY_BASIC_INFORMATION {
2099 pub BaseAddress: LPVOID,
2100 pub AllocationBase: LPVOID,
2101 pub AllocationProtect: DWORD,
2102 pub RegionSize: SIZE_T,
2107 pub type LPMEMORY_BASIC_INFORMATION = *mut MEMORY_BASIC_INFORMATION;
2110 #[derive(Copy, Clone)] pub struct OVERLAPPED {
2111 pub Internal: *mut c_ulong,
2112 pub InternalHigh: *mut c_ulong,
2114 pub OffsetHigh: DWORD,
2118 pub type LPOVERLAPPED = *mut OVERLAPPED;
2121 #[derive(Copy, Clone)] pub struct FILETIME {
2122 pub dwLowDateTime: DWORD,
2123 pub dwHighDateTime: DWORD,
2126 pub type LPFILETIME = *mut FILETIME;
2129 #[derive(Copy, Clone)] pub struct GUID {
2133 pub Data4: [BYTE; 8],
2137 #[derive(Copy, Clone)] pub struct WSAPROTOCOLCHAIN {
2138 pub ChainLen: c_int,
2139 pub ChainEntries: [DWORD; MAX_PROTOCOL_CHAIN as usize],
2142 pub type LPWSAPROTOCOLCHAIN = *mut WSAPROTOCOLCHAIN;
2145 #[derive(Copy)] pub struct WSAPROTOCOL_INFO {
2146 pub dwServiceFlags1: DWORD,
2147 pub dwServiceFlags2: DWORD,
2148 pub dwServiceFlags3: DWORD,
2149 pub dwServiceFlags4: DWORD,
2150 pub dwProviderFlags: DWORD,
2151 pub ProviderId: GUID,
2152 pub dwCatalogEntryId: DWORD,
2153 pub ProtocolChain: WSAPROTOCOLCHAIN,
2154 pub iVersion: c_int,
2155 pub iAddressFamily: c_int,
2156 pub iMaxSockAddr: c_int,
2157 pub iMinSockAddr: c_int,
2158 pub iSocketType: c_int,
2159 pub iProtocol: c_int,
2160 pub iProtocolMaxOffset: c_int,
2161 pub iNetworkByteOrder: c_int,
2162 pub iSecurityScheme: c_int,
2163 pub dwMessageSize: DWORD,
2164 pub dwProviderReserved: DWORD,
2165 pub szProtocol: [u8; WSAPROTOCOL_LEN as usize + 1],
2167 impl ::core::clone::Clone for WSAPROTOCOL_INFO {
2168 fn clone(&self) -> WSAPROTOCOL_INFO { *self }
2171 pub type LPWSAPROTOCOL_INFO = *mut WSAPROTOCOL_INFO;
2173 pub type GROUP = c_uint;
2176 #[derive(Copy)] pub struct WIN32_FIND_DATAW {
2177 pub dwFileAttributes: DWORD,
2178 pub ftCreationTime: FILETIME,
2179 pub ftLastAccessTime: FILETIME,
2180 pub ftLastWriteTime: FILETIME,
2181 pub nFileSizeHigh: DWORD,
2182 pub nFileSizeLow: DWORD,
2183 pub dwReserved0: DWORD,
2184 pub dwReserved1: DWORD,
2185 pub cFileName: [wchar_t; 260], // #define MAX_PATH 260
2186 pub cAlternateFileName: [wchar_t; 14],
2188 impl ::core::clone::Clone for WIN32_FIND_DATAW {
2189 fn clone(&self) -> WIN32_FIND_DATAW { *self }
2192 pub type LPWIN32_FIND_DATAW = *mut WIN32_FIND_DATAW;
2197 #[cfg(any(target_os = "macos", target_os = "ios"))]
2201 use types::common::c95::c_void;
2202 use types::os::arch::c95::{c_char, c_int, size_t, time_t};
2203 use types::os::arch::c95::{suseconds_t, c_long};
2204 use types::os::arch::c99::{uintptr_t};
2206 pub type pthread_t = uintptr_t;
2207 pub type rlim_t = u64;
2210 #[derive(Copy, Clone)] pub struct glob_t {
2211 pub gl_pathc: size_t,
2212 pub __unused1: c_int,
2213 pub gl_offs: size_t,
2214 pub __unused2: c_int,
2215 pub gl_pathv: *mut *mut c_char,
2217 pub __unused3: *mut c_void,
2219 pub __unused4: *mut c_void,
2220 pub __unused5: *mut c_void,
2221 pub __unused6: *mut c_void,
2222 pub __unused7: *mut c_void,
2223 pub __unused8: *mut c_void,
2227 #[derive(Copy, Clone)] pub struct timeval {
2229 pub tv_usec: suseconds_t,
2233 #[derive(Copy, Clone)] pub struct timespec {
2235 pub tv_nsec: c_long,
2238 pub enum timezone {}
2240 pub type sighandler_t = size_t;
2243 #[derive(Copy, Clone)]
2245 pub rlim_cur: rlim_t,
2246 pub rlim_max: rlim_t,
2251 use types::os::common::posix01::timeval;
2252 use types::os::arch::c95::c_long;
2254 #[derive(Copy, Clone)]
2256 pub ru_utime: timeval,
2257 pub ru_stime: timeval,
2258 pub ru_maxrss: c_long,
2259 pub ru_ixrss: c_long,
2260 pub ru_idrss: c_long,
2261 pub ru_isrss: c_long,
2262 pub ru_minflt: c_long,
2263 pub ru_majflt: c_long,
2264 pub ru_nswap: c_long,
2265 pub ru_inblock: c_long,
2266 pub ru_oublock: c_long,
2267 pub ru_msgsnd: c_long,
2268 pub ru_msgrcv: c_long,
2269 pub ru_nsignals: c_long,
2270 pub ru_nvcsw: c_long,
2271 pub ru_nivcsw: c_long
2276 use types::common::c95::{c_void};
2277 use types::os::arch::c95::{c_char, c_int, c_uint};
2279 pub type socklen_t = u32;
2280 pub type sa_family_t = u8;
2281 pub type in_port_t = u16;
2282 pub type in_addr_t = u32;
2284 #[derive(Copy, Clone)] pub struct sockaddr {
2286 pub sa_family: sa_family_t,
2287 pub sa_data: [u8; 14],
2291 #[derive(Copy)] pub struct sockaddr_storage {
2293 pub ss_family: sa_family_t,
2294 pub __ss_pad1: [u8; 6],
2295 pub __ss_align: i64,
2296 pub __ss_pad2: [u8; 112],
2298 impl ::core::clone::Clone for sockaddr_storage {
2299 fn clone(&self) -> sockaddr_storage { *self }
2303 #[derive(Copy, Clone)] pub struct sockaddr_in {
2305 pub sin_family: sa_family_t,
2306 pub sin_port: in_port_t,
2307 pub sin_addr: in_addr,
2308 pub sin_zero: [u8; 8],
2312 #[derive(Copy, Clone)] pub struct in_addr {
2313 pub s_addr: in_addr_t,
2317 #[derive(Copy, Clone)] pub struct sockaddr_in6 {
2319 pub sin6_family: sa_family_t,
2320 pub sin6_port: in_port_t,
2321 pub sin6_flowinfo: u32,
2322 pub sin6_addr: in6_addr,
2323 pub sin6_scope_id: u32,
2327 #[derive(Copy, Clone)] pub struct in6_addr {
2328 pub s6_addr: [u16; 8]
2332 #[derive(Copy, Clone)] pub struct ip_mreq {
2333 pub imr_multiaddr: in_addr,
2334 pub imr_interface: in_addr,
2338 #[derive(Copy, Clone)] pub struct ip6_mreq {
2339 pub ipv6mr_multiaddr: in6_addr,
2340 pub ipv6mr_interface: c_uint,
2344 #[derive(Copy, Clone)] pub struct addrinfo {
2345 pub ai_flags: c_int,
2346 pub ai_family: c_int,
2347 pub ai_socktype: c_int,
2348 pub ai_protocol: c_int,
2349 pub ai_addrlen: socklen_t,
2350 pub ai_canonname: *mut c_char,
2351 pub ai_addr: *mut sockaddr,
2352 pub ai_next: *mut addrinfo,
2356 #[derive(Copy)] pub struct sockaddr_un {
2358 pub sun_family: sa_family_t,
2359 pub sun_path: [c_char; 104]
2361 impl ::core::clone::Clone for sockaddr_un {
2362 fn clone(&self) -> sockaddr_un { *self }
2366 #[derive(Copy, Clone)] pub struct ifaddrs {
2367 pub ifa_next: *mut ifaddrs,
2368 pub ifa_name: *mut c_char,
2369 pub ifa_flags: c_uint,
2370 pub ifa_addr: *mut sockaddr,
2371 pub ifa_netmask: *mut sockaddr,
2372 pub ifa_dstaddr: *mut sockaddr,
2373 pub ifa_data: *mut c_void
2378 #[cfg(any(target_arch = "arm", target_arch = "x86"))]
2381 pub type c_char = i8;
2382 pub type c_schar = i8;
2383 pub type c_uchar = u8;
2384 pub type c_short = i16;
2385 pub type c_ushort = u16;
2386 pub type c_int = i32;
2387 pub type c_uint = u32;
2388 pub type c_long = i32;
2389 pub type c_ulong = u32;
2390 pub type c_float = f32;
2391 pub type c_double = f64;
2392 pub type size_t = u32;
2393 pub type ptrdiff_t = i32;
2394 pub type clock_t = c_ulong;
2395 pub type time_t = c_long;
2396 pub type suseconds_t = i32;
2397 pub type wchar_t = i32;
2400 pub type c_longlong = i64;
2401 pub type c_ulonglong = u64;
2402 pub type intptr_t = i32;
2403 pub type uintptr_t = u32;
2404 pub type intmax_t = i64;
2405 pub type uintmax_t = u64;
2408 use types::os::arch::c95::c_long;
2410 pub type off_t = i64;
2411 pub type dev_t = i32;
2412 pub type ino_t = u64;
2413 pub type pid_t = i32;
2414 pub type uid_t = u32;
2415 pub type gid_t = u32;
2416 pub type useconds_t = u32;
2417 pub type mode_t = u16;
2418 pub type ssize_t = c_long;
2421 use types::common::c99::{int32_t, int64_t, uint32_t};
2422 use types::os::arch::c95::{c_char, c_long, time_t};
2423 use types::os::arch::posix88::{dev_t, gid_t, ino_t,
2424 mode_t, off_t, uid_t};
2426 pub type nlink_t = u16;
2427 pub type blksize_t = i32;
2428 pub type blkcnt_t = i64;
2431 #[derive(Copy, Clone)] pub struct stat {
2433 pub st_mode: mode_t,
2434 pub st_nlink: nlink_t,
2439 pub st_atime: time_t,
2440 pub st_atime_nsec: c_long,
2441 pub st_mtime: time_t,
2442 pub st_mtime_nsec: c_long,
2443 pub st_ctime: time_t,
2444 pub st_ctime_nsec: c_long,
2445 pub st_birthtime: time_t,
2446 pub st_birthtime_nsec: c_long,
2448 pub st_blocks: blkcnt_t,
2449 pub st_blksize: blksize_t,
2450 pub st_flags: uint32_t,
2451 pub st_gen: uint32_t,
2452 pub st_lspare: int32_t,
2453 pub st_qspare: [int64_t; 2],
2457 #[derive(Copy, Clone)] pub struct utimbuf {
2459 pub modtime: time_t,
2463 #[derive(Copy)] pub struct pthread_attr_t {
2465 pub __opaque: [c_char; 36]
2467 impl ::core::clone::Clone for pthread_attr_t {
2468 fn clone(&self) -> pthread_attr_t { *self }
2477 #[derive(Copy, Clone)] pub struct mach_timebase_info {
2482 pub type mach_timebase_info_data_t = mach_timebase_info;
2486 #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
2489 pub type c_char = i8;
2490 pub type c_schar = i8;
2491 pub type c_uchar = u8;
2492 pub type c_short = i16;
2493 pub type c_ushort = u16;
2494 pub type c_int = i32;
2495 pub type c_uint = u32;
2496 pub type c_long = i64;
2497 pub type c_ulong = u64;
2498 pub type c_float = f32;
2499 pub type c_double = f64;
2500 pub type size_t = u64;
2501 pub type ptrdiff_t = i64;
2502 pub type clock_t = c_ulong;
2503 pub type time_t = c_long;
2504 pub type suseconds_t = i32;
2505 pub type wchar_t = i32;
2508 pub type c_longlong = i64;
2509 pub type c_ulonglong = u64;
2510 pub type intptr_t = i64;
2511 pub type uintptr_t = u64;
2512 pub type intmax_t = i64;
2513 pub type uintmax_t = u64;
2516 use types::os::arch::c95::c_long;
2518 pub type off_t = i64;
2519 pub type dev_t = i32;
2520 pub type ino_t = u64;
2521 pub type pid_t = i32;
2522 pub type uid_t = u32;
2523 pub type gid_t = u32;
2524 pub type useconds_t = u32;
2525 pub type mode_t = u16;
2526 pub type ssize_t = c_long;
2529 use types::common::c99::{int32_t, int64_t};
2530 use types::common::c99::{uint32_t};
2531 use types::os::arch::c95::{c_char, c_long, time_t};
2532 use types::os::arch::posix88::{dev_t, gid_t, ino_t};
2533 use types::os::arch::posix88::{mode_t, off_t, uid_t};
2535 pub type nlink_t = u16;
2536 pub type blksize_t = i32;
2537 pub type blkcnt_t = i64;
2540 #[derive(Copy, Clone)] pub struct stat {
2542 pub st_mode: mode_t,
2543 pub st_nlink: nlink_t,
2548 pub st_atime: time_t,
2549 pub st_atime_nsec: c_long,
2550 pub st_mtime: time_t,
2551 pub st_mtime_nsec: c_long,
2552 pub st_ctime: time_t,
2553 pub st_ctime_nsec: c_long,
2554 pub st_birthtime: time_t,
2555 pub st_birthtime_nsec: c_long,
2557 pub st_blocks: blkcnt_t,
2558 pub st_blksize: blksize_t,
2559 pub st_flags: uint32_t,
2560 pub st_gen: uint32_t,
2561 pub st_lspare: int32_t,
2562 pub st_qspare: [int64_t; 2],
2566 #[derive(Copy, Clone)] pub struct utimbuf {
2568 pub modtime: time_t,
2572 #[derive(Copy)] pub struct pthread_attr_t {
2574 pub __opaque: [c_char; 56]
2576 impl ::core::clone::Clone for pthread_attr_t {
2577 fn clone(&self) -> pthread_attr_t { *self }
2586 #[derive(Copy, Clone)] pub struct mach_timebase_info {
2591 pub type mach_timebase_info_data_t = mach_timebase_info;
2598 // Consts tend to vary per OS so we pull their definitions out
2599 // into this module.
2601 #[cfg(target_os = "windows")]
2604 use types::os::arch::c95::{c_int, c_uint};
2606 pub const EXIT_FAILURE : c_int = 1;
2607 pub const EXIT_SUCCESS : c_int = 0;
2608 pub const RAND_MAX : c_int = 32767;
2609 pub const EOF : c_int = -1;
2610 pub const SEEK_SET : c_int = 0;
2611 pub const SEEK_CUR : c_int = 1;
2612 pub const SEEK_END : c_int = 2;
2613 pub const _IOFBF : c_int = 0;
2614 pub const _IONBF : c_int = 4;
2615 pub const _IOLBF : c_int = 64;
2616 pub const BUFSIZ : c_uint = 512;
2617 pub const FOPEN_MAX : c_uint = 20;
2618 pub const FILENAME_MAX : c_uint = 260;
2619 pub const L_tmpnam : c_uint = 16;
2620 pub const TMP_MAX : c_uint = 32767;
2622 pub const WSAEINTR: c_int = 10004;
2623 pub const WSAEBADF: c_int = 10009;
2624 pub const WSAEACCES: c_int = 10013;
2625 pub const WSAEFAULT: c_int = 10014;
2626 pub const WSAEINVAL: c_int = 10022;
2627 pub const WSAEMFILE: c_int = 10024;
2628 pub const WSAEWOULDBLOCK: c_int = 10035;
2629 pub const WSAEINPROGRESS: c_int = 10036;
2630 pub const WSAEALREADY: c_int = 10037;
2631 pub const WSAENOTSOCK: c_int = 10038;
2632 pub const WSAEDESTADDRREQ: c_int = 10039;
2633 pub const WSAEMSGSIZE: c_int = 10040;
2634 pub const WSAEPROTOTYPE: c_int = 10041;
2635 pub const WSAENOPROTOOPT: c_int = 10042;
2636 pub const WSAEPROTONOSUPPORT: c_int = 10043;
2637 pub const WSAESOCKTNOSUPPORT: c_int = 10044;
2638 pub const WSAEOPNOTSUPP: c_int = 10045;
2639 pub const WSAEPFNOSUPPORT: c_int = 10046;
2640 pub const WSAEAFNOSUPPORT: c_int = 10047;
2641 pub const WSAEADDRINUSE: c_int = 10048;
2642 pub const WSAEADDRNOTAVAIL: c_int = 10049;
2643 pub const WSAENETDOWN: c_int = 10050;
2644 pub const WSAENETUNREACH: c_int = 10051;
2645 pub const WSAENETRESET: c_int = 10052;
2646 pub const WSAECONNABORTED: c_int = 10053;
2647 pub const WSAECONNRESET: c_int = 10054;
2648 pub const WSAENOBUFS: c_int = 10055;
2649 pub const WSAEISCONN: c_int = 10056;
2650 pub const WSAENOTCONN: c_int = 10057;
2651 pub const WSAESHUTDOWN: c_int = 10058;
2652 pub const WSAETOOMANYREFS: c_int = 10059;
2653 pub const WSAETIMEDOUT: c_int = 10060;
2654 pub const WSAECONNREFUSED: c_int = 10061;
2655 pub const WSAELOOP: c_int = 10062;
2656 pub const WSAENAMETOOLONG: c_int = 10063;
2657 pub const WSAEHOSTDOWN: c_int = 10064;
2658 pub const WSAEHOSTUNREACH: c_int = 10065;
2659 pub const WSAENOTEMPTY: c_int = 10066;
2660 pub const WSAEPROCLIM: c_int = 10067;
2661 pub const WSAEUSERS: c_int = 10068;
2662 pub const WSAEDQUOT: c_int = 10069;
2663 pub const WSAESTALE: c_int = 10070;
2664 pub const WSAEREMOTE: c_int = 10071;
2665 pub const WSASYSNOTREADY: c_int = 10091;
2666 pub const WSAVERNOTSUPPORTED: c_int = 10092;
2667 pub const WSANOTINITIALISED: c_int = 10093;
2668 pub const WSAEDISCON: c_int = 10101;
2669 pub const WSAENOMORE: c_int = 10102;
2670 pub const WSAECANCELLED: c_int = 10103;
2671 pub const WSAEINVALIDPROCTABLE: c_int = 10104;
2672 pub const WSAEINVALIDPROVIDER: c_int = 10105;
2673 pub const WSAEPROVIDERFAILEDINIT: c_int = 10106;
2678 use types::os::arch::c95::c_int;
2679 use types::os::arch::posix88::mode_t;
2681 pub const O_RDONLY : c_int = 0;
2682 pub const O_WRONLY : c_int = 1;
2683 pub const O_RDWR : c_int = 2;
2684 pub const O_APPEND : c_int = 8;
2685 pub const O_CREAT : c_int = 256;
2686 pub const O_EXCL : c_int = 1024;
2687 pub const O_TRUNC : c_int = 512;
2688 pub const S_IFIFO : c_int = 4096;
2689 pub const S_IFCHR : c_int = 8192;
2690 pub const S_IFBLK : c_int = 12288;
2691 pub const S_IFDIR : c_int = 16384;
2692 pub const S_IFREG : c_int = 32768;
2693 pub const S_IFLNK : c_int = 40960;
2694 pub const S_IFSOCK : mode_t = 49152;
2695 pub const S_IFMT : c_int = 61440;
2696 pub const S_IEXEC : c_int = 64;
2697 pub const S_IWRITE : c_int = 128;
2698 pub const S_IREAD : c_int = 256;
2699 pub const S_IRWXU : c_int = 448;
2700 pub const S_IXUSR : c_int = 64;
2701 pub const S_IWUSR : c_int = 128;
2702 pub const S_IRUSR : c_int = 256;
2703 pub const S_IRWXG : mode_t = 56;
2704 pub const S_IXGRP : mode_t = 8;
2705 pub const S_IWGRP : mode_t = 16;
2706 pub const S_IRGRP : mode_t = 32;
2707 pub const S_IRWXO : mode_t = 7;
2708 pub const S_IXOTH : mode_t = 1;
2709 pub const S_IWOTH : mode_t = 2;
2710 pub const S_IROTH : mode_t = 4;
2711 pub const F_OK : c_int = 0;
2712 pub const R_OK : c_int = 4;
2713 pub const W_OK : c_int = 2;
2714 pub const X_OK : c_int = 1;
2715 pub const STDIN_FILENO : c_int = 0;
2716 pub const STDOUT_FILENO : c_int = 1;
2717 pub const STDERR_FILENO : c_int = 2;
2724 use types::os::arch::c95::c_int;
2726 pub const AF_INET: c_int = 2;
2727 pub const AF_INET6: c_int = 23;
2728 pub const SOCK_STREAM: c_int = 1;
2729 pub const SOCK_DGRAM: c_int = 2;
2730 pub const SOCK_RAW: c_int = 3;
2731 pub const IPPROTO_TCP: c_int = 6;
2732 pub const IPPROTO_IP: c_int = 0;
2733 pub const IPPROTO_IPV6: c_int = 41;
2734 pub const IP_MULTICAST_TTL: c_int = 10;
2735 pub const IP_MULTICAST_LOOP: c_int = 11;
2736 pub const IP_ADD_MEMBERSHIP: c_int = 12;
2737 pub const IP_DROP_MEMBERSHIP: c_int = 13;
2738 pub const IPV6_ADD_MEMBERSHIP: c_int = 5;
2739 pub const IPV6_DROP_MEMBERSHIP: c_int = 6;
2740 pub const IP_TTL: c_int = 4;
2741 pub const IP_HDRINCL: c_int = 2;
2743 pub const TCP_NODELAY: c_int = 0x0001;
2744 pub const SOL_SOCKET: c_int = 0xffff;
2746 pub const SO_DEBUG: c_int = 0x0001;
2747 pub const SO_ACCEPTCONN: c_int = 0x0002;
2748 pub const SO_REUSEADDR: c_int = 0x0004;
2749 pub const SO_KEEPALIVE: c_int = 0x0008;
2750 pub const SO_DONTROUTE: c_int = 0x0010;
2751 pub const SO_BROADCAST: c_int = 0x0020;
2752 pub const SO_USELOOPBACK: c_int = 0x0040;
2753 pub const SO_LINGER: c_int = 0x0080;
2754 pub const SO_OOBINLINE: c_int = 0x0100;
2755 pub const SO_SNDBUF: c_int = 0x1001;
2756 pub const SO_RCVBUF: c_int = 0x1002;
2757 pub const SO_SNDLOWAT: c_int = 0x1003;
2758 pub const SO_RCVLOWAT: c_int = 0x1004;
2759 pub const SO_SNDTIMEO: c_int = 0x1005;
2760 pub const SO_RCVTIMEO: c_int = 0x1006;
2761 pub const SO_ERROR: c_int = 0x1007;
2762 pub const SO_TYPE: c_int = 0x1008;
2764 pub const IFF_LOOPBACK: c_int = 4;
2766 pub const SHUT_RD: c_int = 0;
2767 pub const SHUT_WR: c_int = 1;
2768 pub const SHUT_RDWR: c_int = 2;
2771 use types::os::common::bsd44::SOCKET;
2772 use types::os::arch::c95::{c_int, c_long};
2773 use types::os::arch::extra::{WORD, DWORD, BOOL, HANDLE};
2775 pub const TRUE : BOOL = 1;
2776 pub const FALSE : BOOL = 0;
2778 pub const O_TEXT : c_int = 16384;
2779 pub const O_BINARY : c_int = 32768;
2780 pub const O_NOINHERIT: c_int = 128;
2782 pub const ERROR_SUCCESS : c_int = 0;
2783 pub const ERROR_INVALID_FUNCTION: c_int = 1;
2784 pub const ERROR_FILE_NOT_FOUND: c_int = 2;
2785 pub const ERROR_ACCESS_DENIED: c_int = 5;
2786 pub const ERROR_INVALID_HANDLE : c_int = 6;
2787 pub const ERROR_BROKEN_PIPE: c_int = 109;
2788 pub const ERROR_DISK_FULL : c_int = 112;
2789 pub const ERROR_CALL_NOT_IMPLEMENTED : c_int = 120;
2790 pub const ERROR_INSUFFICIENT_BUFFER : c_int = 122;
2791 pub const ERROR_INVALID_NAME : c_int = 123;
2792 pub const ERROR_ALREADY_EXISTS : c_int = 183;
2793 pub const ERROR_PIPE_BUSY: c_int = 231;
2794 pub const ERROR_NO_DATA: c_int = 232;
2795 pub const ERROR_INVALID_ADDRESS : c_int = 487;
2796 pub const ERROR_PIPE_CONNECTED: c_int = 535;
2797 pub const ERROR_NOTHING_TO_TERMINATE: c_int = 758;
2798 pub const ERROR_OPERATION_ABORTED: c_int = 995;
2799 pub const ERROR_IO_PENDING: c_int = 997;
2800 pub const ERROR_FILE_INVALID : c_int = 1006;
2801 pub const ERROR_NOT_FOUND: c_int = 1168;
2802 pub const INVALID_HANDLE_VALUE: HANDLE = !0 as HANDLE;
2804 pub const DELETE : DWORD = 0x00010000;
2805 pub const READ_CONTROL : DWORD = 0x00020000;
2806 pub const SYNCHRONIZE : DWORD = 0x00100000;
2807 pub const WRITE_DAC : DWORD = 0x00040000;
2808 pub const WRITE_OWNER : DWORD = 0x00080000;
2810 pub const PROCESS_CREATE_PROCESS : DWORD = 0x0080;
2811 pub const PROCESS_CREATE_THREAD : DWORD = 0x0002;
2812 pub const PROCESS_DUP_HANDLE : DWORD = 0x0040;
2813 pub const PROCESS_QUERY_INFORMATION : DWORD = 0x0400;
2814 pub const PROCESS_QUERY_LIMITED_INFORMATION : DWORD = 0x1000;
2815 pub const PROCESS_SET_INFORMATION : DWORD = 0x0200;
2816 pub const PROCESS_SET_QUOTA : DWORD = 0x0100;
2817 pub const PROCESS_SUSPEND_RESUME : DWORD = 0x0800;
2818 pub const PROCESS_TERMINATE : DWORD = 0x0001;
2819 pub const PROCESS_VM_OPERATION : DWORD = 0x0008;
2820 pub const PROCESS_VM_READ : DWORD = 0x0010;
2821 pub const PROCESS_VM_WRITE : DWORD = 0x0020;
2823 pub const STARTF_FORCEONFEEDBACK : DWORD = 0x00000040;
2824 pub const STARTF_FORCEOFFFEEDBACK : DWORD = 0x00000080;
2825 pub const STARTF_PREVENTPINNING : DWORD = 0x00002000;
2826 pub const STARTF_RUNFULLSCREEN : DWORD = 0x00000020;
2827 pub const STARTF_TITLEISAPPID : DWORD = 0x00001000;
2828 pub const STARTF_TITLEISLINKNAME : DWORD = 0x00000800;
2829 pub const STARTF_USECOUNTCHARS : DWORD = 0x00000008;
2830 pub const STARTF_USEFILLATTRIBUTE : DWORD = 0x00000010;
2831 pub const STARTF_USEHOTKEY : DWORD = 0x00000200;
2832 pub const STARTF_USEPOSITION : DWORD = 0x00000004;
2833 pub const STARTF_USESHOWWINDOW : DWORD = 0x00000001;
2834 pub const STARTF_USESIZE : DWORD = 0x00000002;
2835 pub const STARTF_USESTDHANDLES : DWORD = 0x00000100;
2837 pub const WAIT_ABANDONED : DWORD = 0x00000080;
2838 pub const WAIT_OBJECT_0 : DWORD = 0x00000000;
2839 pub const WAIT_TIMEOUT : DWORD = 0x00000102;
2840 pub const WAIT_FAILED : DWORD = !0;
2842 pub const DUPLICATE_CLOSE_SOURCE : DWORD = 0x00000001;
2843 pub const DUPLICATE_SAME_ACCESS : DWORD = 0x00000002;
2845 pub const INFINITE : DWORD = !0;
2846 pub const STILL_ACTIVE : DWORD = 259;
2848 pub const MEM_COMMIT : DWORD = 0x00001000;
2849 pub const MEM_RESERVE : DWORD = 0x00002000;
2850 pub const MEM_DECOMMIT : DWORD = 0x00004000;
2851 pub const MEM_RELEASE : DWORD = 0x00008000;
2852 pub const MEM_RESET : DWORD = 0x00080000;
2853 pub const MEM_RESET_UNDO : DWORD = 0x1000000;
2854 pub const MEM_LARGE_PAGES : DWORD = 0x20000000;
2855 pub const MEM_PHYSICAL : DWORD = 0x00400000;
2856 pub const MEM_TOP_DOWN : DWORD = 0x00100000;
2857 pub const MEM_WRITE_WATCH : DWORD = 0x00200000;
2859 pub const PAGE_EXECUTE : DWORD = 0x10;
2860 pub const PAGE_EXECUTE_READ : DWORD = 0x20;
2861 pub const PAGE_EXECUTE_READWRITE : DWORD = 0x40;
2862 pub const PAGE_EXECUTE_WRITECOPY : DWORD = 0x80;
2863 pub const PAGE_NOACCESS : DWORD = 0x01;
2864 pub const PAGE_READONLY : DWORD = 0x02;
2865 pub const PAGE_READWRITE : DWORD = 0x04;
2866 pub const PAGE_WRITECOPY : DWORD = 0x08;
2867 pub const PAGE_GUARD : DWORD = 0x100;
2868 pub const PAGE_NOCACHE : DWORD = 0x200;
2869 pub const PAGE_WRITECOMBINE : DWORD = 0x400;
2871 pub const SEC_COMMIT : DWORD = 0x8000000;
2872 pub const SEC_IMAGE : DWORD = 0x1000000;
2873 pub const SEC_IMAGE_NO_EXECUTE : DWORD = 0x11000000;
2874 pub const SEC_LARGE_PAGES : DWORD = 0x80000000;
2875 pub const SEC_NOCACHE : DWORD = 0x10000000;
2876 pub const SEC_RESERVE : DWORD = 0x4000000;
2877 pub const SEC_WRITECOMBINE : DWORD = 0x40000000;
2879 pub const FILE_MAP_ALL_ACCESS : DWORD = 0xf001f;
2880 pub const FILE_MAP_READ : DWORD = 0x4;
2881 pub const FILE_MAP_WRITE : DWORD = 0x2;
2882 pub const FILE_MAP_COPY : DWORD = 0x1;
2883 pub const FILE_MAP_EXECUTE : DWORD = 0x20;
2885 pub const PROCESSOR_ARCHITECTURE_INTEL : WORD = 0;
2886 pub const PROCESSOR_ARCHITECTURE_ARM : WORD = 5;
2887 pub const PROCESSOR_ARCHITECTURE_IA64 : WORD = 6;
2888 pub const PROCESSOR_ARCHITECTURE_AMD64 : WORD = 9;
2889 pub const PROCESSOR_ARCHITECTURE_UNKNOWN : WORD = 0xffff;
2891 pub const MOVEFILE_COPY_ALLOWED: DWORD = 2;
2892 pub const MOVEFILE_CREATE_HARDLINK: DWORD = 16;
2893 pub const MOVEFILE_DELAY_UNTIL_REBOOT: DWORD = 4;
2894 pub const MOVEFILE_FAIL_IF_NOT_TRACKABLE: DWORD = 32;
2895 pub const MOVEFILE_REPLACE_EXISTING: DWORD = 1;
2896 pub const MOVEFILE_WRITE_THROUGH: DWORD = 8;
2898 pub const SYMBOLIC_LINK_FLAG_DIRECTORY: DWORD = 1;
2900 pub const FILE_SHARE_DELETE: DWORD = 0x4;
2901 pub const FILE_SHARE_READ: DWORD = 0x1;
2902 pub const FILE_SHARE_WRITE: DWORD = 0x2;
2904 pub const CREATE_ALWAYS: DWORD = 2;
2905 pub const CREATE_NEW: DWORD = 1;
2906 pub const OPEN_ALWAYS: DWORD = 4;
2907 pub const OPEN_EXISTING: DWORD = 3;
2908 pub const TRUNCATE_EXISTING: DWORD = 5;
2910 pub const FILE_APPEND_DATA: DWORD = 0x00000004;
2911 pub const FILE_READ_DATA: DWORD = 0x00000001;
2912 pub const FILE_WRITE_DATA: DWORD = 0x00000002;
2914 pub const FILE_ATTRIBUTE_ARCHIVE: DWORD = 0x20;
2915 pub const FILE_ATTRIBUTE_COMPRESSED: DWORD = 0x800;
2916 pub const FILE_ATTRIBUTE_DEVICE: DWORD = 0x40;
2917 pub const FILE_ATTRIBUTE_DIRECTORY: DWORD = 0x10;
2918 pub const FILE_ATTRIBUTE_ENCRYPTED: DWORD = 0x4000;
2919 pub const FILE_ATTRIBUTE_HIDDEN: DWORD = 0x2;
2920 pub const FILE_ATTRIBUTE_INTEGRITY_STREAM: DWORD = 0x8000;
2921 pub const FILE_ATTRIBUTE_NORMAL: DWORD = 0x80;
2922 pub const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: DWORD = 0x2000;
2923 pub const FILE_ATTRIBUTE_NO_SCRUB_DATA: DWORD = 0x20000;
2924 pub const FILE_ATTRIBUTE_OFFLINE: DWORD = 0x1000;
2925 pub const FILE_ATTRIBUTE_READONLY: DWORD = 0x1;
2926 pub const FILE_ATTRIBUTE_REPARSE_POINT: DWORD = 0x400;
2927 pub const FILE_ATTRIBUTE_SPARSE_FILE: DWORD = 0x200;
2928 pub const FILE_ATTRIBUTE_SYSTEM: DWORD = 0x4;
2929 pub const FILE_ATTRIBUTE_TEMPORARY: DWORD = 0x100;
2930 pub const FILE_ATTRIBUTE_VIRTUAL: DWORD = 0x10000;
2932 pub const FILE_FLAG_BACKUP_SEMANTICS: DWORD = 0x02000000;
2933 pub const FILE_FLAG_DELETE_ON_CLOSE: DWORD = 0x04000000;
2934 pub const FILE_FLAG_NO_BUFFERING: DWORD = 0x20000000;
2935 pub const FILE_FLAG_OPEN_NO_RECALL: DWORD = 0x00100000;
2936 pub const FILE_FLAG_OPEN_REPARSE_POINT: DWORD = 0x00200000;
2937 pub const FILE_FLAG_OVERLAPPED: DWORD = 0x40000000;
2938 pub const FILE_FLAG_POSIX_SEMANTICS: DWORD = 0x0100000;
2939 pub const FILE_FLAG_RANDOM_ACCESS: DWORD = 0x10000000;
2940 pub const FILE_FLAG_SESSION_AWARE: DWORD = 0x00800000;
2941 pub const FILE_FLAG_SEQUENTIAL_SCAN: DWORD = 0x08000000;
2942 pub const FILE_FLAG_WRITE_THROUGH: DWORD = 0x80000000;
2943 pub const FILE_FLAG_FIRST_PIPE_INSTANCE: DWORD = 0x00080000;
2945 pub const FILE_NAME_NORMALIZED: DWORD = 0x0;
2946 pub const FILE_NAME_OPENED: DWORD = 0x8;
2948 pub const VOLUME_NAME_DOS: DWORD = 0x0;
2949 pub const VOLUME_NAME_GUID: DWORD = 0x1;
2950 pub const VOLUME_NAME_NONE: DWORD = 0x4;
2951 pub const VOLUME_NAME_NT: DWORD = 0x2;
2953 pub const GENERIC_READ: DWORD = 0x80000000;
2954 pub const GENERIC_WRITE: DWORD = 0x40000000;
2955 pub const GENERIC_EXECUTE: DWORD = 0x20000000;
2956 pub const GENERIC_ALL: DWORD = 0x10000000;
2957 pub const FILE_WRITE_ATTRIBUTES: DWORD = 0x00000100;
2958 pub const FILE_READ_ATTRIBUTES: DWORD = 0x00000080;
2960 pub const STANDARD_RIGHTS_READ: DWORD = 0x20000;
2961 pub const STANDARD_RIGHTS_WRITE: DWORD = 0x20000;
2962 pub const FILE_WRITE_EA: DWORD = 0x00000010;
2963 pub const FILE_READ_EA: DWORD = 0x00000008;
2964 pub const FILE_GENERIC_READ: DWORD =
2965 STANDARD_RIGHTS_READ | FILE_READ_DATA |
2966 FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE;
2967 pub const FILE_GENERIC_WRITE: DWORD =
2968 STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA |
2969 FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA |
2972 pub const FILE_BEGIN: DWORD = 0;
2973 pub const FILE_CURRENT: DWORD = 1;
2974 pub const FILE_END: DWORD = 2;
2976 pub const MAX_PROTOCOL_CHAIN: DWORD = 7;
2977 pub const WSAPROTOCOL_LEN: DWORD = 255;
2978 pub const INVALID_SOCKET: SOCKET = !0;
2980 pub const DETACHED_PROCESS: DWORD = 0x00000008;
2981 pub const CREATE_NEW_PROCESS_GROUP: DWORD = 0x00000200;
2982 pub const CREATE_UNICODE_ENVIRONMENT: DWORD = 0x00000400;
2984 pub const PIPE_ACCESS_DUPLEX: DWORD = 0x00000003;
2985 pub const PIPE_ACCESS_INBOUND: DWORD = 0x00000001;
2986 pub const PIPE_ACCESS_OUTBOUND: DWORD = 0x00000002;
2987 pub const PIPE_TYPE_BYTE: DWORD = 0x00000000;
2988 pub const PIPE_TYPE_MESSAGE: DWORD = 0x00000004;
2989 pub const PIPE_READMODE_BYTE: DWORD = 0x00000000;
2990 pub const PIPE_READMODE_MESSAGE: DWORD = 0x00000002;
2991 pub const PIPE_WAIT: DWORD = 0x00000000;
2992 pub const PIPE_NOWAIT: DWORD = 0x00000001;
2993 pub const PIPE_ACCEPT_REMOTE_CLIENTS: DWORD = 0x00000000;
2994 pub const PIPE_REJECT_REMOTE_CLIENTS: DWORD = 0x00000008;
2995 pub const PIPE_UNLIMITED_INSTANCES: DWORD = 255;
2997 pub const IPPROTO_RAW: c_int = 255;
2999 pub const FIONBIO: c_long = -0x7FFB9982;
3006 #[cfg(any(target_os = "linux", target_os = "android", target_os = "nacl"))]
3009 use types::os::arch::c95::{c_int, c_uint};
3011 pub const EXIT_FAILURE : c_int = 1;
3012 pub const EXIT_SUCCESS : c_int = 0;
3013 pub const RAND_MAX : c_int = 2147483647;
3014 pub const EOF : c_int = -1;
3015 pub const SEEK_SET : c_int = 0;
3016 pub const SEEK_CUR : c_int = 1;
3017 pub const SEEK_END : c_int = 2;
3018 pub const _IOFBF : c_int = 0;
3019 pub const _IONBF : c_int = 2;
3020 pub const _IOLBF : c_int = 1;
3021 pub const BUFSIZ : c_uint = 8192;
3022 pub const FOPEN_MAX : c_uint = 16;
3023 pub const FILENAME_MAX : c_uint = 4096;
3024 pub const L_tmpnam : c_uint = 20;
3025 pub const TMP_MAX : c_uint = 238328;
3029 #[cfg(any(target_arch = "x86",
3030 target_arch = "x86_64",
3031 target_arch = "arm",
3032 target_arch = "aarch64",
3033 target_arch = "le32",
3034 target_arch = "powerpc"))]
3036 use types::os::arch::c95::c_int;
3037 use types::common::c95::c_void;
3038 use types::os::arch::posix88::mode_t;
3040 pub const O_RDONLY : c_int = 0;
3041 pub const O_WRONLY : c_int = 1;
3042 pub const O_RDWR : c_int = 2;
3043 pub const O_APPEND : c_int = 1024;
3044 pub const O_CREAT : c_int = 64;
3045 pub const O_EXCL : c_int = 128;
3046 pub const O_NOCTTY : c_int = 256;
3047 pub const O_TRUNC : c_int = 512;
3048 pub const S_IFIFO : mode_t = 4096;
3049 pub const S_IFCHR : mode_t = 8192;
3050 pub const S_IFBLK : mode_t = 24576;
3051 pub const S_IFDIR : mode_t = 16384;
3052 pub const S_IFREG : mode_t = 32768;
3053 pub const S_IFLNK : mode_t = 40960;
3054 pub const S_IFSOCK : mode_t = 49152;
3055 pub const S_IFMT : mode_t = 61440;
3056 pub const S_IEXEC : mode_t = 64;
3057 pub const S_IWRITE : mode_t = 128;
3058 pub const S_IREAD : mode_t = 256;
3059 pub const S_IRWXU : mode_t = 448;
3060 pub const S_IXUSR : mode_t = 64;
3061 pub const S_IWUSR : mode_t = 128;
3062 pub const S_IRUSR : mode_t = 256;
3063 pub const S_IRWXG : mode_t = 56;
3064 pub const S_IXGRP : mode_t = 8;
3065 pub const S_IWGRP : mode_t = 16;
3066 pub const S_IRGRP : mode_t = 32;
3067 pub const S_IRWXO : mode_t = 7;
3068 pub const S_IXOTH : mode_t = 1;
3069 pub const S_IWOTH : mode_t = 2;
3070 pub const S_IROTH : mode_t = 4;
3071 pub const F_OK : c_int = 0;
3072 pub const R_OK : c_int = 4;
3073 pub const W_OK : c_int = 2;
3074 pub const X_OK : c_int = 1;
3075 pub const STDIN_FILENO : c_int = 0;
3076 pub const STDOUT_FILENO : c_int = 1;
3077 pub const STDERR_FILENO : c_int = 2;
3078 pub const F_LOCK : c_int = 1;
3079 pub const F_TEST : c_int = 3;
3080 pub const F_TLOCK : c_int = 2;
3081 pub const F_ULOCK : c_int = 0;
3082 pub const SIGHUP : c_int = 1;
3083 pub const SIGINT : c_int = 2;
3084 pub const SIGQUIT : c_int = 3;
3085 pub const SIGILL : c_int = 4;
3086 pub const SIGABRT : c_int = 6;
3087 pub const SIGFPE : c_int = 8;
3088 pub const SIGKILL : c_int = 9;
3089 pub const SIGSEGV : c_int = 11;
3090 pub const SIGPIPE : c_int = 13;
3091 pub const SIGALRM : c_int = 14;
3092 pub const SIGTERM : c_int = 15;
3094 pub const PROT_NONE : c_int = 0;
3095 pub const PROT_READ : c_int = 1;
3096 pub const PROT_WRITE : c_int = 2;
3097 pub const PROT_EXEC : c_int = 4;
3099 pub const MAP_FILE : c_int = 0x0000;
3100 pub const MAP_SHARED : c_int = 0x0001;
3101 pub const MAP_PRIVATE : c_int = 0x0002;
3102 pub const MAP_FIXED : c_int = 0x0010;
3103 pub const MAP_ANON : c_int = 0x0020;
3105 pub const MAP_FAILED : *mut c_void = !0 as *mut c_void;
3107 pub const MCL_CURRENT : c_int = 0x0001;
3108 pub const MCL_FUTURE : c_int = 0x0002;
3110 pub const MS_ASYNC : c_int = 0x0001;
3111 pub const MS_INVALIDATE : c_int = 0x0002;
3112 pub const MS_SYNC : c_int = 0x0004;
3114 pub const EPERM : c_int = 1;
3115 pub const ENOENT : c_int = 2;
3116 pub const ESRCH : c_int = 3;
3117 pub const EINTR : c_int = 4;
3118 pub const EIO : c_int = 5;
3119 pub const ENXIO : c_int = 6;
3120 pub const E2BIG : c_int = 7;
3121 pub const ENOEXEC : c_int = 8;
3122 pub const EBADF : c_int = 9;
3123 pub const ECHILD : c_int = 10;
3124 pub const EAGAIN : c_int = 11;
3125 pub const ENOMEM : c_int = 12;
3126 pub const EACCES : c_int = 13;
3127 pub const EFAULT : c_int = 14;
3128 pub const ENOTBLK : c_int = 15;
3129 pub const EBUSY : c_int = 16;
3130 pub const EEXIST : c_int = 17;
3131 pub const EXDEV : c_int = 18;
3132 pub const ENODEV : c_int = 19;
3133 pub const ENOTDIR : c_int = 20;
3134 pub const EISDIR : c_int = 21;
3135 pub const EINVAL : c_int = 22;
3136 pub const ENFILE : c_int = 23;
3137 pub const EMFILE : c_int = 24;
3138 pub const ENOTTY : c_int = 25;
3139 pub const ETXTBSY : c_int = 26;
3140 pub const EFBIG : c_int = 27;
3141 pub const ENOSPC : c_int = 28;
3142 pub const ESPIPE : c_int = 29;
3143 pub const EROFS : c_int = 30;
3144 pub const EMLINK : c_int = 31;
3145 pub const EPIPE : c_int = 32;
3146 pub const EDOM : c_int = 33;
3147 pub const ERANGE : c_int = 34;
3149 pub const EDEADLK: c_int = 35;
3150 pub const ENAMETOOLONG: c_int = 36;
3151 pub const ENOLCK: c_int = 37;
3152 pub const ENOSYS: c_int = 38;
3153 pub const ENOTEMPTY: c_int = 39;
3154 pub const ELOOP: c_int = 40;
3155 pub const EWOULDBLOCK: c_int = EAGAIN;
3156 pub const ENOMSG: c_int = 42;
3157 pub const EIDRM: c_int = 43;
3158 pub const ECHRNG: c_int = 44;
3159 pub const EL2NSYNC: c_int = 45;
3160 pub const EL3HLT: c_int = 46;
3161 pub const EL3RST: c_int = 47;
3162 pub const ELNRNG: c_int = 48;
3163 pub const EUNATCH: c_int = 49;
3164 pub const ENOCSI: c_int = 50;
3165 pub const EL2HLT: c_int = 51;
3166 pub const EBADE: c_int = 52;
3167 pub const EBADR: c_int = 53;
3168 pub const EXFULL: c_int = 54;
3169 pub const ENOANO: c_int = 55;
3170 pub const EBADRQC: c_int = 56;
3171 pub const EBADSLT: c_int = 57;
3173 pub const EDEADLOCK: c_int = EDEADLK;
3175 pub const EBFONT: c_int = 59;
3176 pub const ENOSTR: c_int = 60;
3177 pub const ENODATA: c_int = 61;
3178 pub const ETIME: c_int = 62;
3179 pub const ENOSR: c_int = 63;
3180 pub const ENONET: c_int = 64;
3181 pub const ENOPKG: c_int = 65;
3182 pub const EREMOTE: c_int = 66;
3183 pub const ENOLINK: c_int = 67;
3184 pub const EADV: c_int = 68;
3185 pub const ESRMNT: c_int = 69;
3186 pub const ECOMM: c_int = 70;
3187 pub const EPROTO: c_int = 71;
3188 pub const EMULTIHOP: c_int = 72;
3189 pub const EDOTDOT: c_int = 73;
3190 pub const EBADMSG: c_int = 74;
3191 pub const EOVERFLOW: c_int = 75;
3192 pub const ENOTUNIQ: c_int = 76;
3193 pub const EBADFD: c_int = 77;
3194 pub const EREMCHG: c_int = 78;
3195 pub const ELIBACC: c_int = 79;
3196 pub const ELIBBAD: c_int = 80;
3197 pub const ELIBSCN: c_int = 81;
3198 pub const ELIBMAX: c_int = 82;
3199 pub const ELIBEXEC: c_int = 83;
3200 pub const EILSEQ: c_int = 84;
3201 pub const ERESTART: c_int = 85;
3202 pub const ESTRPIPE: c_int = 86;
3203 pub const EUSERS: c_int = 87;
3204 pub const ENOTSOCK: c_int = 88;
3205 pub const EDESTADDRREQ: c_int = 89;
3206 pub const EMSGSIZE: c_int = 90;
3207 pub const EPROTOTYPE: c_int = 91;
3208 pub const ENOPROTOOPT: c_int = 92;
3209 pub const EPROTONOSUPPORT: c_int = 93;
3210 pub const ESOCKTNOSUPPORT: c_int = 94;
3211 pub const EOPNOTSUPP: c_int = 95;
3212 pub const EPFNOSUPPORT: c_int = 96;
3213 pub const EAFNOSUPPORT: c_int = 97;
3214 pub const EADDRINUSE: c_int = 98;
3215 pub const EADDRNOTAVAIL: c_int = 99;
3216 pub const ENETDOWN: c_int = 100;
3217 pub const ENETUNREACH: c_int = 101;
3218 pub const ENETRESET: c_int = 102;
3219 pub const ECONNABORTED: c_int = 103;
3220 pub const ECONNRESET: c_int = 104;
3221 pub const ENOBUFS: c_int = 105;
3222 pub const EISCONN: c_int = 106;
3223 pub const ENOTCONN: c_int = 107;
3224 pub const ESHUTDOWN: c_int = 108;
3225 pub const ETOOMANYREFS: c_int = 109;
3226 pub const ETIMEDOUT: c_int = 110;
3227 pub const ECONNREFUSED: c_int = 111;
3228 pub const EHOSTDOWN: c_int = 112;
3229 pub const EHOSTUNREACH: c_int = 113;
3230 pub const EALREADY: c_int = 114;
3231 pub const EINPROGRESS: c_int = 115;
3232 pub const ESTALE: c_int = 116;
3233 pub const EUCLEAN: c_int = 117;
3234 pub const ENOTNAM: c_int = 118;
3235 pub const ENAVAIL: c_int = 119;
3236 pub const EISNAM: c_int = 120;
3237 pub const EREMOTEIO: c_int = 121;
3238 pub const EDQUOT: c_int = 122;
3240 pub const ENOMEDIUM: c_int = 123;
3241 pub const EMEDIUMTYPE: c_int = 124;
3242 pub const ECANCELED: c_int = 125;
3243 pub const ENOKEY: c_int = 126;
3244 pub const EKEYEXPIRED: c_int = 127;
3245 pub const EKEYREVOKED: c_int = 128;
3246 pub const EKEYREJECTED: c_int = 129;
3248 pub const EOWNERDEAD: c_int = 130;
3249 pub const ENOTRECOVERABLE: c_int = 131;
3251 pub const ERFKILL: c_int = 132;
3253 pub const EHWPOISON: c_int = 133;
3256 #[cfg(any(target_arch = "mips",
3257 target_arch = "mipsel"))]
3259 use types::os::arch::c95::c_int;
3260 use types::common::c95::c_void;
3261 use types::os::arch::posix88::mode_t;
3263 pub const O_RDONLY : c_int = 0;
3264 pub const O_WRONLY : c_int = 1;
3265 pub const O_RDWR : c_int = 2;
3266 pub const O_APPEND : c_int = 8;
3267 pub const O_CREAT : c_int = 256;
3268 pub const O_EXCL : c_int = 1024;
3269 pub const O_NOCTTY : c_int = 2048;
3270 pub const O_TRUNC : c_int = 512;
3271 pub const S_IFIFO : mode_t = 4096;
3272 pub const S_IFCHR : mode_t = 8192;
3273 pub const S_IFBLK : mode_t = 24576;
3274 pub const S_IFDIR : mode_t = 16384;
3275 pub const S_IFREG : mode_t = 32768;
3276 pub const S_IFLNK : mode_t = 40960;
3277 pub const S_IFSOCK : mode_t = 49152;
3278 pub const S_IFMT : mode_t = 61440;
3279 pub const S_IEXEC : mode_t = 64;
3280 pub const S_IWRITE : mode_t = 128;
3281 pub const S_IREAD : mode_t = 256;
3282 pub const S_IRWXU : mode_t = 448;
3283 pub const S_IXUSR : mode_t = 64;
3284 pub const S_IWUSR : mode_t = 128;
3285 pub const S_IRUSR : mode_t = 256;
3286 pub const S_IRWXG : mode_t = 56;
3287 pub const S_IXGRP : mode_t = 8;
3288 pub const S_IWGRP : mode_t = 16;
3289 pub const S_IRGRP : mode_t = 32;
3290 pub const S_IRWXO : mode_t = 7;
3291 pub const S_IXOTH : mode_t = 1;
3292 pub const S_IWOTH : mode_t = 2;
3293 pub const S_IROTH : mode_t = 4;
3294 pub const F_OK : c_int = 0;
3295 pub const R_OK : c_int = 4;
3296 pub const W_OK : c_int = 2;
3297 pub const X_OK : c_int = 1;
3298 pub const STDIN_FILENO : c_int = 0;
3299 pub const STDOUT_FILENO : c_int = 1;
3300 pub const STDERR_FILENO : c_int = 2;
3301 pub const F_LOCK : c_int = 1;
3302 pub const F_TEST : c_int = 3;
3303 pub const F_TLOCK : c_int = 2;
3304 pub const F_ULOCK : c_int = 0;
3305 pub const SIGHUP : c_int = 1;
3306 pub const SIGINT : c_int = 2;
3307 pub const SIGQUIT : c_int = 3;
3308 pub const SIGILL : c_int = 4;
3309 pub const SIGABRT : c_int = 6;
3310 pub const SIGFPE : c_int = 8;
3311 pub const SIGKILL : c_int = 9;
3312 pub const SIGSEGV : c_int = 11;
3313 pub const SIGPIPE : c_int = 13;
3314 pub const SIGALRM : c_int = 14;
3315 pub const SIGTERM : c_int = 15;
3317 pub const PROT_NONE : c_int = 0;
3318 pub const PROT_READ : c_int = 1;
3319 pub const PROT_WRITE : c_int = 2;
3320 pub const PROT_EXEC : c_int = 4;
3322 pub const MAP_FILE : c_int = 0x0000;
3323 pub const MAP_SHARED : c_int = 0x0001;
3324 pub const MAP_PRIVATE : c_int = 0x0002;
3325 pub const MAP_FIXED : c_int = 0x0010;
3326 pub const MAP_ANON : c_int = 0x0800;
3328 pub const MAP_FAILED : *mut c_void = !0 as *mut c_void;
3330 pub const MCL_CURRENT : c_int = 0x0001;
3331 pub const MCL_FUTURE : c_int = 0x0002;
3333 pub const MS_ASYNC : c_int = 0x0001;
3334 pub const MS_INVALIDATE : c_int = 0x0002;
3335 pub const MS_SYNC : c_int = 0x0004;
3337 pub const EPERM : c_int = 1;
3338 pub const ENOENT : c_int = 2;
3339 pub const ESRCH : c_int = 3;
3340 pub const EINTR : c_int = 4;
3341 pub const EIO : c_int = 5;
3342 pub const ENXIO : c_int = 6;
3343 pub const E2BIG : c_int = 7;
3344 pub const ENOEXEC : c_int = 8;
3345 pub const EBADF : c_int = 9;
3346 pub const ECHILD : c_int = 10;
3347 pub const EAGAIN : c_int = 11;
3348 pub const ENOMEM : c_int = 12;
3349 pub const EACCES : c_int = 13;
3350 pub const EFAULT : c_int = 14;
3351 pub const ENOTBLK : c_int = 15;
3352 pub const EBUSY : c_int = 16;
3353 pub const EEXIST : c_int = 17;
3354 pub const EXDEV : c_int = 18;
3355 pub const ENODEV : c_int = 19;
3356 pub const ENOTDIR : c_int = 20;
3357 pub const EISDIR : c_int = 21;
3358 pub const EINVAL : c_int = 22;
3359 pub const ENFILE : c_int = 23;
3360 pub const EMFILE : c_int = 24;
3361 pub const ENOTTY : c_int = 25;
3362 pub const ETXTBSY : c_int = 26;
3363 pub const EFBIG : c_int = 27;
3364 pub const ENOSPC : c_int = 28;
3365 pub const ESPIPE : c_int = 29;
3366 pub const EROFS : c_int = 30;
3367 pub const EMLINK : c_int = 31;
3368 pub const EPIPE : c_int = 32;
3369 pub const EDOM : c_int = 33;
3370 pub const ERANGE : c_int = 34;
3372 pub const ENOMSG: c_int = 35;
3373 pub const EIDRM: c_int = 36;
3374 pub const ECHRNG: c_int = 37;
3375 pub const EL2NSYNC: c_int = 38;
3376 pub const EL3HLT: c_int = 39;
3377 pub const EL3RST: c_int = 40;
3378 pub const ELNRNG: c_int = 41;
3379 pub const EUNATCH: c_int = 42;
3380 pub const ENOCSI: c_int = 43;
3381 pub const EL2HLT: c_int = 44;
3382 pub const EDEADLK: c_int = 45;
3383 pub const ENOLCK: c_int = 46;
3384 pub const EBADE: c_int = 50;
3385 pub const EBADR: c_int = 51;
3386 pub const EXFULL: c_int = 52;
3387 pub const ENOANO: c_int = 53;
3388 pub const EBADRQC: c_int = 54;
3389 pub const EBADSLT: c_int = 55;
3390 pub const EDEADLOCK: c_int = 56;
3391 pub const EBFONT: c_int = 59;
3392 pub const ENOSTR: c_int = 60;
3393 pub const ENODATA: c_int = 61;
3394 pub const ETIME: c_int = 62;
3395 pub const ENOSR: c_int = 63;
3396 pub const ENONET: c_int = 64;
3397 pub const ENOPKG: c_int = 65;
3398 pub const EREMOTE: c_int = 66;
3399 pub const ENOLINK: c_int = 67;
3400 pub const EADV: c_int = 68;
3401 pub const ESRMNT: c_int = 69;
3402 pub const ECOMM: c_int = 70;
3403 pub const EPROTO: c_int = 71;
3404 pub const EDOTDOT: c_int = 73;
3405 pub const EMULTIHOP: c_int = 74;
3406 pub const EBADMSG: c_int = 77;
3407 pub const ENAMETOOLONG: c_int = 78;
3408 pub const EOVERFLOW: c_int = 79;
3409 pub const ENOTUNIQ: c_int = 80;
3410 pub const EBADFD: c_int = 81;
3411 pub const EREMCHG: c_int = 82;
3412 pub const ELIBACC: c_int = 83;
3413 pub const ELIBBAD: c_int = 84;
3414 pub const ELIBSCN: c_int = 95;
3415 pub const ELIBMAX: c_int = 86;
3416 pub const ELIBEXEC: c_int = 87;
3417 pub const EILSEQ: c_int = 88;
3418 pub const ENOSYS: c_int = 89;
3419 pub const ELOOP: c_int = 90;
3420 pub const ERESTART: c_int = 91;
3421 pub const ESTRPIPE: c_int = 92;
3422 pub const ENOTEMPTY: c_int = 93;
3423 pub const EUSERS: c_int = 94;
3424 pub const ENOTSOCK: c_int = 95;
3425 pub const EDESTADDRREQ: c_int = 96;
3426 pub const EMSGSIZE: c_int = 97;
3427 pub const EPROTOTYPE: c_int = 98;
3428 pub const ENOPROTOOPT: c_int = 99;
3429 pub const EPROTONOSUPPORT: c_int = 120;
3430 pub const ESOCKTNOSUPPORT: c_int = 121;
3431 pub const EOPNOTSUPP: c_int = 122;
3432 pub const EPFNOSUPPORT: c_int = 123;
3433 pub const EAFNOSUPPORT: c_int = 124;
3434 pub const EADDRINUSE: c_int = 125;
3435 pub const EADDRNOTAVAIL: c_int = 126;
3436 pub const ENETDOWN: c_int = 127;
3437 pub const ENETUNREACH: c_int = 128;
3438 pub const ENETRESET: c_int = 129;
3439 pub const ECONNABORTED: c_int = 130;
3440 pub const ECONNRESET: c_int = 131;
3441 pub const ENOBUFS: c_int = 132;
3442 pub const EISCONN: c_int = 133;
3443 pub const ENOTCONN: c_int = 134;
3444 pub const EUCLEAN: c_int = 135;
3445 pub const ENOTNAM: c_int = 137;
3446 pub const ENAVAIL: c_int = 138;
3447 pub const EISNAM: c_int = 139;
3448 pub const EREMOTEIO: c_int = 140;
3449 pub const ESHUTDOWN: c_int = 143;
3450 pub const ETOOMANYREFS: c_int = 144;
3451 pub const ETIMEDOUT: c_int = 145;
3452 pub const ECONNREFUSED: c_int = 146;
3453 pub const EHOSTDOWN: c_int = 147;
3454 pub const EHOSTUNREACH: c_int = 148;
3455 pub const EWOULDBLOCK: c_int = EAGAIN;
3456 pub const EALREADY: c_int = 149;
3457 pub const EINPROGRESS: c_int = 150;
3458 pub const ESTALE: c_int = 151;
3459 pub const ECANCELED: c_int = 158;
3461 pub const ENOMEDIUM: c_int = 159;
3462 pub const EMEDIUMTYPE: c_int = 160;
3463 pub const ENOKEY: c_int = 161;
3464 pub const EKEYEXPIRED: c_int = 162;
3465 pub const EKEYREVOKED: c_int = 163;
3466 pub const EKEYREJECTED: c_int = 164;
3468 pub const EOWNERDEAD: c_int = 165;
3469 pub const ENOTRECOVERABLE: c_int = 166;
3471 pub const ERFKILL: c_int = 167;
3473 pub const EHWPOISON: c_int = 168;
3475 pub const EDQUOT: c_int = 1133;
3477 #[cfg(not(target_os = "nacl"))]
3479 use types::os::arch::c95::{c_int, size_t};
3480 use types::os::common::posix01::rlim_t;
3482 pub const F_DUPFD : c_int = 0;
3483 pub const F_GETFD : c_int = 1;
3484 pub const F_SETFD : c_int = 2;
3485 pub const F_GETFL : c_int = 3;
3486 pub const F_SETFL : c_int = 4;
3488 pub const O_ACCMODE : c_int = 3;
3490 pub const SIGTRAP : c_int = 5;
3491 pub const SIG_IGN: size_t = 1;
3493 pub const GLOB_ERR : c_int = 1 << 0;
3494 pub const GLOB_MARK : c_int = 1 << 1;
3495 pub const GLOB_NOSORT : c_int = 1 << 2;
3496 pub const GLOB_DOOFFS : c_int = 1 << 3;
3497 pub const GLOB_NOCHECK : c_int = 1 << 4;
3498 pub const GLOB_APPEND : c_int = 1 << 5;
3499 pub const GLOB_NOESCAPE : c_int = 1 << 6;
3501 pub const GLOB_NOSPACE : c_int = 1;
3502 pub const GLOB_ABORTED : c_int = 2;
3503 pub const GLOB_NOMATCH : c_int = 3;
3505 pub const POSIX_MADV_NORMAL : c_int = 0;
3506 pub const POSIX_MADV_RANDOM : c_int = 1;
3507 pub const POSIX_MADV_SEQUENTIAL : c_int = 2;
3508 pub const POSIX_MADV_WILLNEED : c_int = 3;
3509 pub const POSIX_MADV_DONTNEED : c_int = 4;
3511 pub const _SC_MQ_PRIO_MAX : c_int = 28;
3512 pub const _SC_IOV_MAX : c_int = 60;
3513 pub const _SC_GETGR_R_SIZE_MAX : c_int = 69;
3514 pub const _SC_GETPW_R_SIZE_MAX : c_int = 70;
3515 pub const _SC_LOGIN_NAME_MAX : c_int = 71;
3516 pub const _SC_TTY_NAME_MAX : c_int = 72;
3517 pub const _SC_THREADS : c_int = 67;
3518 pub const _SC_THREAD_SAFE_FUNCTIONS : c_int = 68;
3519 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS : c_int = 73;
3520 pub const _SC_THREAD_KEYS_MAX : c_int = 74;
3521 pub const _SC_THREAD_STACK_MIN : c_int = 75;
3522 pub const _SC_THREAD_THREADS_MAX : c_int = 76;
3523 pub const _SC_THREAD_ATTR_STACKADDR : c_int = 77;
3524 pub const _SC_THREAD_ATTR_STACKSIZE : c_int = 78;
3525 pub const _SC_THREAD_PRIORITY_SCHEDULING : c_int = 79;
3526 pub const _SC_THREAD_PRIO_INHERIT : c_int = 80;
3527 pub const _SC_THREAD_PRIO_PROTECT : c_int = 81;
3528 pub const _SC_THREAD_PROCESS_SHARED : c_int = 82;
3529 pub const _SC_ATEXIT_MAX : c_int = 87;
3530 pub const _SC_XOPEN_VERSION : c_int = 89;
3531 pub const _SC_XOPEN_XCU_VERSION : c_int = 90;
3532 pub const _SC_XOPEN_UNIX : c_int = 91;
3533 pub const _SC_XOPEN_CRYPT : c_int = 92;
3534 pub const _SC_XOPEN_ENH_I18N : c_int = 93;
3535 pub const _SC_XOPEN_SHM : c_int = 94;
3536 pub const _SC_XOPEN_LEGACY : c_int = 129;
3537 pub const _SC_XOPEN_REALTIME : c_int = 130;
3538 pub const _SC_XOPEN_REALTIME_THREADS : c_int = 131;
3542 pub const PTHREAD_CREATE_JOINABLE: c_int = 0;
3543 pub const PTHREAD_CREATE_DETACHED: c_int = 1;
3545 #[cfg(target_os = "android")]
3546 pub const PTHREAD_STACK_MIN: size_t = 8192;
3548 #[cfg(all(target_os = "linux",
3549 any(target_arch = "arm",
3550 target_arch = "x86",
3551 target_arch = "x86_64")))]
3552 pub const PTHREAD_STACK_MIN: size_t = 16384;
3554 #[cfg(all(target_os = "linux",
3555 any(target_arch = "mips",
3556 target_arch = "mipsel",
3557 target_arch = "aarch64",
3558 target_arch = "powerpc")))]
3559 pub const PTHREAD_STACK_MIN: size_t = 131072;
3561 pub const CLOCK_REALTIME: c_int = 0;
3562 pub const CLOCK_MONOTONIC: c_int = 1;
3564 pub const RLIMIT_CPU: c_int = 0;
3565 pub const RLIMIT_FSIZE: c_int = 1;
3566 pub const RLIMIT_DATA: c_int = 2;
3567 pub const RLIMIT_STACK: c_int = 3;
3568 pub const RLIMIT_CORE: c_int = 4;
3569 pub const RLIMIT_RSS: c_int = 5;
3570 pub const RLIMIT_NOFILE: c_int = 7;
3571 pub const RLIMIT_AS: c_int = 9;
3572 pub const RLIMIT_NPROC: c_int = 6;
3573 pub const RLIMIT_MEMLOCK: c_int = 8;
3574 pub const RLIMIT_LOCKS: c_int = 10;
3575 pub const RLIMIT_SIGPENDING: c_int = 11;
3576 pub const RLIMIT_MSGQUEUE: c_int = 12;
3577 pub const RLIMIT_NICE: c_int = 13;
3578 pub const RLIMIT_RTPRIO: c_int = 14;
3579 pub const RLIMIT_RTTIME: c_int = 15;
3580 pub const RLIMIT_NLIMITS: c_int = 16;
3581 pub const RLIM_INFINITY: rlim_t = 0xffff_ffff_ffff_ffff;
3582 pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY;
3583 pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY;
3585 pub const RUSAGE_SELF: c_int = 0;
3586 pub const RUSAGE_CHILDREN: c_int = -1;
3587 pub const RUSAGE_THREAD: c_int = 1;
3589 #[cfg(target_os = "nacl")]
3591 use types::os::arch::c95::{c_int, size_t};
3592 use types::os::common::posix01::rlim_t;
3594 pub const F_DUPFD : c_int = 0;
3595 pub const F_GETFD : c_int = 1;
3596 pub const F_SETFD : c_int = 2;
3597 pub const F_GETFL : c_int = 3;
3598 pub const F_SETFL : c_int = 4;
3600 pub const SIGTRAP : c_int = 5;
3601 pub const SIG_IGN: size_t = 1;
3603 pub const GLOB_ERR : c_int = 1 << 0;
3604 pub const GLOB_MARK : c_int = 1 << 1;
3605 pub const GLOB_NOSORT : c_int = 1 << 2;
3606 pub const GLOB_DOOFFS : c_int = 1 << 3;
3607 pub const GLOB_NOCHECK : c_int = 1 << 4;
3608 pub const GLOB_APPEND : c_int = 1 << 5;
3609 pub const GLOB_NOESCAPE : c_int = 1 << 6;
3611 pub const GLOB_NOSPACE : c_int = 1;
3612 pub const GLOB_ABORTED : c_int = 2;
3613 pub const GLOB_NOMATCH : c_int = 3;
3615 pub const POSIX_MADV_NORMAL : c_int = 0;
3616 pub const POSIX_MADV_RANDOM : c_int = 1;
3617 pub const POSIX_MADV_SEQUENTIAL : c_int = 2;
3618 pub const POSIX_MADV_WILLNEED : c_int = 3;
3619 pub const POSIX_MADV_DONTNEED : c_int = 4;
3621 pub const _SC_MQ_PRIO_MAX : c_int = 28;
3622 pub const _SC_IOV_MAX : c_int = 60;
3623 pub const _SC_GETGR_R_SIZE_MAX : c_int = 69;
3624 pub const _SC_GETPW_R_SIZE_MAX : c_int = 70;
3625 pub const _SC_LOGIN_NAME_MAX : c_int = 71;
3626 pub const _SC_TTY_NAME_MAX : c_int = 72;
3627 pub const _SC_THREADS : c_int = 67;
3628 pub const _SC_THREAD_SAFE_FUNCTIONS : c_int = 68;
3629 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS : c_int = 73;
3630 pub const _SC_THREAD_KEYS_MAX : c_int = 74;
3631 pub const _SC_THREAD_STACK_MIN : c_int = 75;
3632 pub const _SC_THREAD_THREADS_MAX : c_int = 76;
3633 pub const _SC_THREAD_ATTR_STACKADDR : c_int = 77;
3634 pub const _SC_THREAD_ATTR_STACKSIZE : c_int = 78;
3635 pub const _SC_THREAD_PRIORITY_SCHEDULING : c_int = 79;
3636 pub const _SC_THREAD_PRIO_INHERIT : c_int = 80;
3637 pub const _SC_THREAD_PRIO_PROTECT : c_int = 81;
3638 pub const _SC_THREAD_PROCESS_SHARED : c_int = 82;
3639 pub const _SC_ATEXIT_MAX : c_int = 87;
3640 pub const _SC_XOPEN_VERSION : c_int = 89;
3641 pub const _SC_XOPEN_XCU_VERSION : c_int = 90;
3642 pub const _SC_XOPEN_UNIX : c_int = 91;
3643 pub const _SC_XOPEN_CRYPT : c_int = 92;
3644 pub const _SC_XOPEN_ENH_I18N : c_int = 93;
3645 pub const _SC_XOPEN_SHM : c_int = 94;
3646 pub const _SC_XOPEN_LEGACY : c_int = 129;
3647 pub const _SC_XOPEN_REALTIME : c_int = 130;
3648 pub const _SC_XOPEN_REALTIME_THREADS : c_int = 131;
3650 pub const PTHREAD_CREATE_JOINABLE: c_int = 1;
3651 pub const PTHREAD_CREATE_DETACHED: c_int = 0;
3653 pub const PTHREAD_STACK_MIN: size_t = 1024;
3655 pub const CLOCK_REALTIME: c_int = 0;
3656 pub const CLOCK_MONOTONIC: c_int = 1;
3658 pub const RLIMIT_CPU: c_int = 0;
3659 pub const RLIMIT_FSIZE: c_int = 1;
3660 pub const RLIMIT_DATA: c_int = 2;
3661 pub const RLIMIT_STACK: c_int = 3;
3662 pub const RLIMIT_CORE: c_int = 4;
3663 pub const RLIMIT_RSS: c_int = 5;
3664 pub const RLIMIT_NOFILE: c_int = 7;
3665 pub const RLIMIT_AS: c_int = 9;
3666 pub const RLIMIT_NPROC: c_int = 6;
3667 pub const RLIMIT_MEMLOCK: c_int = 8;
3668 pub const RLIMIT_LOCKS: c_int = 10;
3669 pub const RLIMIT_SIGPENDING: c_int = 11;
3670 pub const RLIMIT_MSGQUEUE: c_int = 12;
3671 pub const RLIMIT_NICE: c_int = 13;
3672 pub const RLIMIT_RTPRIO: c_int = 14;
3673 pub const RLIMIT_RTTIME: c_int = 15;
3674 pub const RLIMIT_NLIMITS: c_int = 16;
3676 pub const RLIM_INFINITY: rlim_t = 0xffff_ffff_ffff_ffff;
3677 pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY;
3678 pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY;
3680 pub const RUSAGE_SELF: c_int = 0;
3681 pub const RUSAGE_CHILDREN: c_int = -1;
3682 pub const RUSAGE_THREAD: c_int = 1;
3685 use types::os::arch::c95::c_int;
3686 pub const O_CLOEXEC: c_int = 0x80000;
3687 pub const F_DUPFD_CLOEXEC: c_int = 1030;
3689 #[cfg(any(target_arch = "arm",
3690 target_arch = "aarch64",
3691 target_arch = "x86",
3692 target_arch = "x86_64",
3693 target_arch = "le32",
3694 target_arch = "powerpc"))]
3696 use types::os::arch::c95::c_int;
3698 pub const MADV_NORMAL : c_int = 0;
3699 pub const MADV_RANDOM : c_int = 1;
3700 pub const MADV_SEQUENTIAL : c_int = 2;
3701 pub const MADV_WILLNEED : c_int = 3;
3702 pub const MADV_DONTNEED : c_int = 4;
3703 pub const MADV_REMOVE : c_int = 9;
3704 pub const MADV_DONTFORK : c_int = 10;
3705 pub const MADV_DOFORK : c_int = 11;
3706 pub const MADV_MERGEABLE : c_int = 12;
3707 pub const MADV_UNMERGEABLE : c_int = 13;
3708 pub const MADV_HWPOISON : c_int = 100;
3710 pub const IFF_LOOPBACK: c_int = 0x8;
3712 pub const AF_UNIX: c_int = 1;
3713 pub const AF_INET: c_int = 2;
3714 pub const AF_INET6: c_int = 10;
3715 pub const SOCK_STREAM: c_int = 1;
3716 pub const SOCK_DGRAM: c_int = 2;
3717 pub const SOCK_RAW: c_int = 3;
3718 pub const IPPROTO_TCP: c_int = 6;
3719 pub const IPPROTO_IP: c_int = 0;
3720 pub const IPPROTO_IPV6: c_int = 41;
3721 pub const IP_MULTICAST_TTL: c_int = 33;
3722 pub const IP_MULTICAST_LOOP: c_int = 34;
3723 pub const IP_TTL: c_int = 2;
3724 pub const IP_HDRINCL: c_int = 3;
3725 pub const IP_ADD_MEMBERSHIP: c_int = 35;
3726 pub const IP_DROP_MEMBERSHIP: c_int = 36;
3727 pub const IPV6_ADD_MEMBERSHIP: c_int = 20;
3728 pub const IPV6_DROP_MEMBERSHIP: c_int = 21;
3730 pub const TCP_NODELAY: c_int = 1;
3731 pub const TCP_MAXSEG: c_int = 2;
3732 pub const TCP_CORK: c_int = 3;
3733 pub const TCP_KEEPIDLE: c_int = 4;
3734 pub const TCP_KEEPINTVL: c_int = 5;
3735 pub const TCP_KEEPCNT: c_int = 6;
3736 pub const TCP_SYNCNT: c_int = 7;
3737 pub const TCP_LINGER2: c_int = 8;
3738 pub const TCP_DEFER_ACCEPT: c_int = 9;
3739 pub const TCP_WINDOW_CLAMP: c_int = 10;
3740 pub const TCP_INFO: c_int = 11;
3741 pub const TCP_QUICKACK: c_int = 12;
3742 pub const TCP_CONGESTION: c_int = 13;
3743 pub const TCP_MD5SIG: c_int = 14;
3744 pub const TCP_COOKIE_TRANSACTIONS: c_int = 15;
3745 pub const TCP_THIN_LINEAR_TIMEOUTS: c_int = 16;
3746 pub const TCP_THIN_DUPACK: c_int = 17;
3747 pub const TCP_USER_TIMEOUT: c_int = 18;
3748 pub const TCP_REPAIR: c_int = 19;
3749 pub const TCP_REPAIR_QUEUE: c_int = 20;
3750 pub const TCP_QUEUE_SEQ: c_int = 21;
3751 pub const TCP_REPAIR_OPTIONS: c_int = 22;
3752 pub const TCP_FASTOPEN: c_int = 23;
3753 pub const TCP_TIMESTAMP: c_int = 24;
3755 pub const SOL_SOCKET: c_int = 1;
3757 pub const SO_DEBUG: c_int = 1;
3758 pub const SO_REUSEADDR: c_int = 2;
3759 pub const SO_TYPE: c_int = 3;
3760 pub const SO_ERROR: c_int = 4;
3761 pub const SO_DONTROUTE: c_int = 5;
3762 pub const SO_BROADCAST: c_int = 6;
3763 pub const SO_SNDBUF: c_int = 7;
3764 pub const SO_RCVBUF: c_int = 8;
3765 pub const SO_KEEPALIVE: c_int = 9;
3766 pub const SO_OOBINLINE: c_int = 10;
3767 pub const SO_LINGER: c_int = 13;
3768 pub const SO_REUSEPORT: c_int = 15;
3769 pub const SO_RCVLOWAT: c_int = 18;
3770 pub const SO_SNDLOWAT: c_int = 19;
3771 pub const SO_RCVTIMEO: c_int = 20;
3772 pub const SO_SNDTIMEO: c_int = 21;
3773 pub const SO_ACCEPTCONN: c_int = 30;
3775 pub const SHUT_RD: c_int = 0;
3776 pub const SHUT_WR: c_int = 1;
3777 pub const SHUT_RDWR: c_int = 2;
3779 pub const LOCK_SH: c_int = 1;
3780 pub const LOCK_EX: c_int = 2;
3781 pub const LOCK_NB: c_int = 4;
3782 pub const LOCK_UN: c_int = 8;
3784 #[cfg(any(target_arch = "mips",
3785 target_arch = "mipsel"))]
3787 use types::os::arch::c95::c_int;
3789 pub const MADV_NORMAL : c_int = 0;
3790 pub const MADV_RANDOM : c_int = 1;
3791 pub const MADV_SEQUENTIAL : c_int = 2;
3792 pub const MADV_WILLNEED : c_int = 3;
3793 pub const MADV_DONTNEED : c_int = 4;
3794 pub const MADV_REMOVE : c_int = 9;
3795 pub const MADV_DONTFORK : c_int = 10;
3796 pub const MADV_DOFORK : c_int = 11;
3797 pub const MADV_MERGEABLE : c_int = 12;
3798 pub const MADV_UNMERGEABLE : c_int = 13;
3799 pub const MADV_HWPOISON : c_int = 100;
3801 pub const AF_UNIX: c_int = 1;
3802 pub const AF_INET: c_int = 2;
3803 pub const AF_INET6: c_int = 10;
3804 pub const SOCK_STREAM: c_int = 2;
3805 pub const SOCK_DGRAM: c_int = 1;
3806 pub const SOCK_RAW: c_int = 3;
3807 pub const IPPROTO_TCP: c_int = 6;
3808 pub const IPPROTO_IP: c_int = 0;
3809 pub const IPPROTO_IPV6: c_int = 41;
3810 pub const IP_MULTICAST_TTL: c_int = 33;
3811 pub const IP_MULTICAST_LOOP: c_int = 34;
3812 pub const IP_TTL: c_int = 2;
3813 pub const IP_HDRINCL: c_int = 3;
3814 pub const IP_ADD_MEMBERSHIP: c_int = 35;
3815 pub const IP_DROP_MEMBERSHIP: c_int = 36;
3816 pub const IPV6_ADD_MEMBERSHIP: c_int = 20;
3817 pub const IPV6_DROP_MEMBERSHIP: c_int = 21;
3819 pub const TCP_NODELAY: c_int = 1;
3820 pub const TCP_MAXSEG: c_int = 2;
3821 pub const TCP_CORK: c_int = 3;
3822 pub const TCP_KEEPIDLE: c_int = 4;
3823 pub const TCP_KEEPINTVL: c_int = 5;
3824 pub const TCP_KEEPCNT: c_int = 6;
3825 pub const TCP_SYNCNT: c_int = 7;
3826 pub const TCP_LINGER2: c_int = 8;
3827 pub const TCP_DEFER_ACCEPT: c_int = 9;
3828 pub const TCP_WINDOW_CLAMP: c_int = 10;
3829 pub const TCP_INFO: c_int = 11;
3830 pub const TCP_QUICKACK: c_int = 12;
3831 pub const TCP_CONGESTION: c_int = 13;
3832 pub const TCP_MD5SIG: c_int = 14;
3833 pub const TCP_COOKIE_TRANSACTIONS: c_int = 15;
3834 pub const TCP_THIN_LINEAR_TIMEOUTS: c_int = 16;
3835 pub const TCP_THIN_DUPACK: c_int = 17;
3836 pub const TCP_USER_TIMEOUT: c_int = 18;
3837 pub const TCP_REPAIR: c_int = 19;
3838 pub const TCP_REPAIR_QUEUE: c_int = 20;
3839 pub const TCP_QUEUE_SEQ: c_int = 21;
3840 pub const TCP_REPAIR_OPTIONS: c_int = 22;
3841 pub const TCP_FASTOPEN: c_int = 23;
3842 pub const TCP_TIMESTAMP: c_int = 24;
3844 pub const SOL_SOCKET: c_int = 65535;
3846 pub const SO_DEBUG: c_int = 0x0001;
3847 pub const SO_REUSEADDR: c_int = 0x0004;
3848 pub const SO_KEEPALIVE: c_int = 0x0008;
3849 pub const SO_DONTROUTE: c_int = 0x0010;
3850 pub const SO_BROADCAST: c_int = 0x0020;
3851 pub const SO_LINGER: c_int = 0x0080;
3852 pub const SO_OOBINLINE: c_int = 0x100;
3853 pub const SO_REUSEPORT: c_int = 0x0200;
3854 pub const SO_SNDBUF: c_int = 0x1001;
3855 pub const SO_RCVBUF: c_int = 0x1002;
3856 pub const SO_SNDLOWAT: c_int = 0x1003;
3857 pub const SO_RCVLOWAT: c_int = 0x1004;
3858 pub const SO_SNDTIMEO: c_int = 0x1005;
3859 pub const SO_RCVTIMEO: c_int = 0x1006;
3860 pub const SO_ERROR: c_int = 0x1007;
3861 pub const SO_TYPE: c_int = 0x1008;
3862 pub const SO_ACCEPTCONN: c_int = 0x1009;
3864 pub const SHUT_RD: c_int = 0;
3865 pub const SHUT_WR: c_int = 1;
3866 pub const SHUT_RDWR: c_int = 2;
3868 pub const LOCK_SH: c_int = 1;
3869 pub const LOCK_EX: c_int = 2;
3870 pub const LOCK_NB: c_int = 4;
3871 pub const LOCK_UN: c_int = 8;
3873 #[cfg(any(target_arch = "x86",
3874 target_arch = "x86_64",
3875 target_arch = "arm",
3876 target_arch = "aarch64",
3877 target_arch = "le32",
3878 target_arch = "powerpc"))]
3880 use types::os::arch::c95::c_int;
3882 pub const AF_PACKET : c_int = 17;
3883 pub const IPPROTO_RAW : c_int = 255;
3885 pub const O_RSYNC : c_int = 1052672;
3886 pub const O_DSYNC : c_int = 4096;
3887 pub const O_NONBLOCK : c_int = 2048;
3888 pub const O_SYNC : c_int = 1052672;
3890 pub const PROT_GROWSDOWN : c_int = 0x010000000;
3891 pub const PROT_GROWSUP : c_int = 0x020000000;
3893 pub const MAP_TYPE : c_int = 0x000f;
3894 pub const MAP_ANONYMOUS : c_int = 0x0020;
3895 pub const MAP_32BIT : c_int = 0x0040;
3896 pub const MAP_GROWSDOWN : c_int = 0x0100;
3897 pub const MAP_DENYWRITE : c_int = 0x0800;
3898 pub const MAP_EXECUTABLE : c_int = 0x01000;
3899 pub const MAP_LOCKED : c_int = 0x02000;
3900 pub const MAP_NORESERVE : c_int = 0x04000;
3901 pub const MAP_POPULATE : c_int = 0x08000;
3902 pub const MAP_NONBLOCK : c_int = 0x010000;
3903 pub const MAP_STACK : c_int = 0x020000;
3905 pub const PATH_MAX: c_int = 4096;
3907 #[cfg(any(target_arch = "mips",
3908 target_arch = "mipsel"))]
3910 use types::os::arch::c95::c_int;
3912 pub const AF_PACKET : c_int = 17;
3913 pub const IPPROTO_RAW : c_int = 255;
3915 pub const O_RSYNC : c_int = 16400;
3916 pub const O_DSYNC : c_int = 16;
3917 pub const O_NONBLOCK : c_int = 128;
3918 pub const O_SYNC : c_int = 16400;
3920 pub const PROT_GROWSDOWN : c_int = 0x01000000;
3921 pub const PROT_GROWSUP : c_int = 0x02000000;
3923 pub const MAP_TYPE : c_int = 0x000f;
3924 pub const MAP_ANONYMOUS : c_int = 0x0800;
3925 pub const MAP_GROWSDOWN : c_int = 0x01000;
3926 pub const MAP_DENYWRITE : c_int = 0x02000;
3927 pub const MAP_EXECUTABLE : c_int = 0x04000;
3928 pub const MAP_LOCKED : c_int = 0x08000;
3929 pub const MAP_NORESERVE : c_int = 0x0400;
3930 pub const MAP_POPULATE : c_int = 0x010000;
3931 pub const MAP_NONBLOCK : c_int = 0x020000;
3932 pub const MAP_STACK : c_int = 0x040000;
3934 pub const PATH_MAX: c_int = 4096;
3936 #[cfg(target_os = "linux")]
3938 use types::os::arch::c95::c_int;
3940 pub const _SC_ARG_MAX : c_int = 0;
3941 pub const _SC_CHILD_MAX : c_int = 1;
3942 pub const _SC_CLK_TCK : c_int = 2;
3943 pub const _SC_NGROUPS_MAX : c_int = 3;
3944 pub const _SC_OPEN_MAX : c_int = 4;
3945 pub const _SC_STREAM_MAX : c_int = 5;
3946 pub const _SC_TZNAME_MAX : c_int = 6;
3947 pub const _SC_JOB_CONTROL : c_int = 7;
3948 pub const _SC_SAVED_IDS : c_int = 8;
3949 pub const _SC_REALTIME_SIGNALS : c_int = 9;
3950 pub const _SC_PRIORITY_SCHEDULING : c_int = 10;
3951 pub const _SC_TIMERS : c_int = 11;
3952 pub const _SC_ASYNCHRONOUS_IO : c_int = 12;
3953 pub const _SC_PRIORITIZED_IO : c_int = 13;
3954 pub const _SC_SYNCHRONIZED_IO : c_int = 14;
3955 pub const _SC_FSYNC : c_int = 15;
3956 pub const _SC_MAPPED_FILES : c_int = 16;
3957 pub const _SC_MEMLOCK : c_int = 17;
3958 pub const _SC_MEMLOCK_RANGE : c_int = 18;
3959 pub const _SC_MEMORY_PROTECTION : c_int = 19;
3960 pub const _SC_MESSAGE_PASSING : c_int = 20;
3961 pub const _SC_SEMAPHORES : c_int = 21;
3962 pub const _SC_SHARED_MEMORY_OBJECTS : c_int = 22;
3963 pub const _SC_AIO_LISTIO_MAX : c_int = 23;
3964 pub const _SC_AIO_MAX : c_int = 24;
3965 pub const _SC_AIO_PRIO_DELTA_MAX : c_int = 25;
3966 pub const _SC_DELAYTIMER_MAX : c_int = 26;
3967 pub const _SC_MQ_OPEN_MAX : c_int = 27;
3968 pub const _SC_VERSION : c_int = 29;
3969 pub const _SC_PAGESIZE : c_int = 30;
3970 pub const _SC_RTSIG_MAX : c_int = 31;
3971 pub const _SC_SEM_NSEMS_MAX : c_int = 32;
3972 pub const _SC_SEM_VALUE_MAX : c_int = 33;
3973 pub const _SC_SIGQUEUE_MAX : c_int = 34;
3974 pub const _SC_TIMER_MAX : c_int = 35;
3975 pub const _SC_BC_BASE_MAX : c_int = 36;
3976 pub const _SC_BC_DIM_MAX : c_int = 37;
3977 pub const _SC_BC_SCALE_MAX : c_int = 38;
3978 pub const _SC_BC_STRING_MAX : c_int = 39;
3979 pub const _SC_COLL_WEIGHTS_MAX : c_int = 40;
3980 pub const _SC_EXPR_NEST_MAX : c_int = 42;
3981 pub const _SC_LINE_MAX : c_int = 43;
3982 pub const _SC_RE_DUP_MAX : c_int = 44;
3983 pub const _SC_2_VERSION : c_int = 46;
3984 pub const _SC_2_C_BIND : c_int = 47;
3985 pub const _SC_2_C_DEV : c_int = 48;
3986 pub const _SC_2_FORT_DEV : c_int = 49;
3987 pub const _SC_2_FORT_RUN : c_int = 50;
3988 pub const _SC_2_SW_DEV : c_int = 51;
3989 pub const _SC_2_LOCALEDEF : c_int = 52;
3990 pub const _SC_NPROCESSORS_ONLN : c_int = 84;
3991 pub const _SC_2_CHAR_TERM : c_int = 95;
3992 pub const _SC_2_C_VERSION : c_int = 96;
3993 pub const _SC_2_UPE : c_int = 97;
3994 pub const _SC_XBS5_ILP32_OFF32 : c_int = 125;
3995 pub const _SC_XBS5_ILP32_OFFBIG : c_int = 126;
3996 pub const _SC_XBS5_LPBIG_OFFBIG : c_int = 128;
3998 pub const _PC_NAME_MAX: c_int = 3;
3999 pub const _PC_PATH_MAX: c_int = 4;
4001 #[cfg(target_os = "nacl")]
4003 use types::os::arch::c95::c_int;
4005 pub static _SC_SENDMSG_MAX_SIZE : c_int = 0;
4006 pub static _SC_NPROCESSORS_ONLN : c_int = 1;
4007 pub static _SC_PAGESIZE : c_int = 2;
4009 pub const _PC_NAME_MAX: c_int = 3;
4010 pub const _PC_PATH_MAX: c_int = 4;
4013 #[cfg(target_os = "android")]
4015 use types::os::arch::c95::c_int;
4017 pub const _SC_ARG_MAX : c_int = 0;
4018 pub const _SC_BC_BASE_MAX : c_int = 1;
4019 pub const _SC_BC_DIM_MAX : c_int = 2;
4020 pub const _SC_BC_SCALE_MAX : c_int = 3;
4021 pub const _SC_BC_STRING_MAX : c_int = 4;
4022 pub const _SC_CHILD_MAX : c_int = 5;
4023 pub const _SC_CLK_TCK : c_int = 6;
4024 pub const _SC_COLL_WEIGHTS_MAX : c_int = 7;
4025 pub const _SC_EXPR_NEST_MAX : c_int = 8;
4026 pub const _SC_LINE_MAX : c_int = 9;
4027 pub const _SC_NGROUPS_MAX : c_int = 10;
4028 pub const _SC_OPEN_MAX : c_int = 11;
4029 pub const _SC_2_C_BIND : c_int = 13;
4030 pub const _SC_2_C_DEV : c_int = 14;
4031 pub const _SC_2_C_VERSION : c_int = 15;
4032 pub const _SC_2_CHAR_TERM : c_int = 16;
4033 pub const _SC_2_FORT_DEV : c_int = 17;
4034 pub const _SC_2_FORT_RUN : c_int = 18;
4035 pub const _SC_2_LOCALEDEF : c_int = 19;
4036 pub const _SC_2_SW_DEV : c_int = 20;
4037 pub const _SC_2_UPE : c_int = 21;
4038 pub const _SC_2_VERSION : c_int = 22;
4039 pub const _SC_JOB_CONTROL : c_int = 23;
4040 pub const _SC_SAVED_IDS : c_int = 24;
4041 pub const _SC_VERSION : c_int = 25;
4042 pub const _SC_RE_DUP_MAX : c_int = 26;
4043 pub const _SC_STREAM_MAX : c_int = 27;
4044 pub const _SC_TZNAME_MAX : c_int = 28;
4045 pub const _SC_PAGESIZE : c_int = 39;
4047 pub const _PC_NAME_MAX: c_int = 4;
4048 pub const _PC_PATH_MAX: c_int = 5;
4052 #[cfg(any(target_os = "freebsd",
4053 target_os = "dragonfly"))]
4056 use types::os::arch::c95::{c_int, c_uint};
4058 pub const EXIT_FAILURE : c_int = 1;
4059 pub const EXIT_SUCCESS : c_int = 0;
4060 pub const RAND_MAX : c_int = 2147483647;
4061 pub const EOF : c_int = -1;
4062 pub const SEEK_SET : c_int = 0;
4063 pub const SEEK_CUR : c_int = 1;
4064 pub const SEEK_END : c_int = 2;
4065 pub const _IOFBF : c_int = 0;
4066 pub const _IONBF : c_int = 2;
4067 pub const _IOLBF : c_int = 1;
4068 pub const BUFSIZ : c_uint = 1024;
4069 pub const FOPEN_MAX : c_uint = 20;
4070 pub const FILENAME_MAX : c_uint = 1024;
4071 pub const L_tmpnam : c_uint = 1024;
4072 pub const TMP_MAX : c_uint = 308915776;
4077 use types::common::c95::c_void;
4078 use types::os::arch::c95::c_int;
4079 use types::os::arch::posix88::mode_t;
4081 pub const O_RDONLY : c_int = 0;
4082 pub const O_WRONLY : c_int = 1;
4083 pub const O_RDWR : c_int = 2;
4084 pub const O_APPEND : c_int = 8;
4085 pub const O_CREAT : c_int = 512;
4086 pub const O_EXCL : c_int = 2048;
4087 pub const O_NOCTTY : c_int = 32768;
4088 pub const O_TRUNC : c_int = 1024;
4089 pub const S_IFIFO : mode_t = 4096;
4090 pub const S_IFCHR : mode_t = 8192;
4091 pub const S_IFBLK : mode_t = 24576;
4092 pub const S_IFDIR : mode_t = 16384;
4093 pub const S_IFREG : mode_t = 32768;
4094 pub const S_IFLNK : mode_t = 40960;
4095 pub const S_IFSOCK : mode_t = 49152;
4096 pub const S_IFMT : mode_t = 61440;
4097 pub const S_IEXEC : mode_t = 64;
4098 pub const S_IWRITE : mode_t = 128;
4099 pub const S_IREAD : mode_t = 256;
4100 pub const S_IRWXU : mode_t = 448;
4101 pub const S_IXUSR : mode_t = 64;
4102 pub const S_IWUSR : mode_t = 128;
4103 pub const S_IRUSR : mode_t = 256;
4104 pub const S_IRWXG : mode_t = 56;
4105 pub const S_IXGRP : mode_t = 8;
4106 pub const S_IWGRP : mode_t = 16;
4107 pub const S_IRGRP : mode_t = 32;
4108 pub const S_IRWXO : mode_t = 7;
4109 pub const S_IXOTH : mode_t = 1;
4110 pub const S_IWOTH : mode_t = 2;
4111 pub const S_IROTH : mode_t = 4;
4112 pub const F_OK : c_int = 0;
4113 pub const R_OK : c_int = 4;
4114 pub const W_OK : c_int = 2;
4115 pub const X_OK : c_int = 1;
4116 pub const STDIN_FILENO : c_int = 0;
4117 pub const STDOUT_FILENO : c_int = 1;
4118 pub const STDERR_FILENO : c_int = 2;
4119 pub const F_LOCK : c_int = 1;
4120 pub const F_TEST : c_int = 3;
4121 pub const F_TLOCK : c_int = 2;
4122 pub const F_ULOCK : c_int = 0;
4123 pub const SIGHUP : c_int = 1;
4124 pub const SIGINT : c_int = 2;
4125 pub const SIGQUIT : c_int = 3;
4126 pub const SIGILL : c_int = 4;
4127 pub const SIGABRT : c_int = 6;
4128 pub const SIGFPE : c_int = 8;
4129 pub const SIGKILL : c_int = 9;
4130 pub const SIGSEGV : c_int = 11;
4131 pub const SIGPIPE : c_int = 13;
4132 pub const SIGALRM : c_int = 14;
4133 pub const SIGTERM : c_int = 15;
4135 pub const PROT_NONE : c_int = 0;
4136 pub const PROT_READ : c_int = 1;
4137 pub const PROT_WRITE : c_int = 2;
4138 pub const PROT_EXEC : c_int = 4;
4140 pub const MAP_FILE : c_int = 0x0000;
4141 pub const MAP_SHARED : c_int = 0x0001;
4142 pub const MAP_PRIVATE : c_int = 0x0002;
4143 pub const MAP_FIXED : c_int = 0x0010;
4144 pub const MAP_ANON : c_int = 0x1000;
4146 pub const MAP_FAILED : *mut c_void = !0 as *mut c_void;
4148 pub const MCL_CURRENT : c_int = 0x0001;
4149 pub const MCL_FUTURE : c_int = 0x0002;
4151 pub const MS_SYNC : c_int = 0x0000;
4152 pub const MS_ASYNC : c_int = 0x0001;
4153 pub const MS_INVALIDATE : c_int = 0x0002;
4155 pub const EPERM : c_int = 1;
4156 pub const ENOENT : c_int = 2;
4157 pub const ESRCH : c_int = 3;
4158 pub const EINTR : c_int = 4;
4159 pub const EIO : c_int = 5;
4160 pub const ENXIO : c_int = 6;
4161 pub const E2BIG : c_int = 7;
4162 pub const ENOEXEC : c_int = 8;
4163 pub const EBADF : c_int = 9;
4164 pub const ECHILD : c_int = 10;
4165 pub const EDEADLK : c_int = 11;
4166 pub const ENOMEM : c_int = 12;
4167 pub const EACCES : c_int = 13;
4168 pub const EFAULT : c_int = 14;
4169 pub const ENOTBLK : c_int = 15;
4170 pub const EBUSY : c_int = 16;
4171 pub const EEXIST : c_int = 17;
4172 pub const EXDEV : c_int = 18;
4173 pub const ENODEV : c_int = 19;
4174 pub const ENOTDIR : c_int = 20;
4175 pub const EISDIR : c_int = 21;
4176 pub const EINVAL : c_int = 22;
4177 pub const ENFILE : c_int = 23;
4178 pub const EMFILE : c_int = 24;
4179 pub const ENOTTY : c_int = 25;
4180 pub const ETXTBSY : c_int = 26;
4181 pub const EFBIG : c_int = 27;
4182 pub const ENOSPC : c_int = 28;
4183 pub const ESPIPE : c_int = 29;
4184 pub const EROFS : c_int = 30;
4185 pub const EMLINK : c_int = 31;
4186 pub const EPIPE : c_int = 32;
4187 pub const EDOM : c_int = 33;
4188 pub const ERANGE : c_int = 34;
4189 pub const EAGAIN : c_int = 35;
4190 pub const EWOULDBLOCK : c_int = 35;
4191 pub const EINPROGRESS : c_int = 36;
4192 pub const EALREADY : c_int = 37;
4193 pub const ENOTSOCK : c_int = 38;
4194 pub const EDESTADDRREQ : c_int = 39;
4195 pub const EMSGSIZE : c_int = 40;
4196 pub const EPROTOTYPE : c_int = 41;
4197 pub const ENOPROTOOPT : c_int = 42;
4198 pub const EPROTONOSUPPORT : c_int = 43;
4199 pub const ESOCKTNOSUPPORT : c_int = 44;
4200 pub const EOPNOTSUPP : c_int = 45;
4201 pub const EPFNOSUPPORT : c_int = 46;
4202 pub const EAFNOSUPPORT : c_int = 47;
4203 pub const EADDRINUSE : c_int = 48;
4204 pub const EADDRNOTAVAIL : c_int = 49;
4205 pub const ENETDOWN : c_int = 50;
4206 pub const ENETUNREACH : c_int = 51;
4207 pub const ENETRESET : c_int = 52;
4208 pub const ECONNABORTED : c_int = 53;
4209 pub const ECONNRESET : c_int = 54;
4210 pub const ENOBUFS : c_int = 55;
4211 pub const EISCONN : c_int = 56;
4212 pub const ENOTCONN : c_int = 57;
4213 pub const ESHUTDOWN : c_int = 58;
4214 pub const ETOOMANYREFS : c_int = 59;
4215 pub const ETIMEDOUT : c_int = 60;
4216 pub const ECONNREFUSED : c_int = 61;
4217 pub const ELOOP : c_int = 62;
4218 pub const ENAMETOOLONG : c_int = 63;
4219 pub const EHOSTDOWN : c_int = 64;
4220 pub const EHOSTUNREACH : c_int = 65;
4221 pub const ENOTEMPTY : c_int = 66;
4222 pub const EPROCLIM : c_int = 67;
4223 pub const EUSERS : c_int = 68;
4224 pub const EDQUOT : c_int = 69;
4225 pub const ESTALE : c_int = 70;
4226 pub const EREMOTE : c_int = 71;
4227 pub const EBADRPC : c_int = 72;
4228 pub const ERPCMISMATCH : c_int = 73;
4229 pub const EPROGUNAVAIL : c_int = 74;
4230 pub const EPROGMISMATCH : c_int = 75;
4231 pub const EPROCUNAVAIL : c_int = 76;
4232 pub const ENOLCK : c_int = 77;
4233 pub const ENOSYS : c_int = 78;
4234 pub const EFTYPE : c_int = 79;
4235 pub const EAUTH : c_int = 80;
4236 pub const ENEEDAUTH : c_int = 81;
4237 pub const EIDRM : c_int = 82;
4238 pub const ENOMSG : c_int = 83;
4239 pub const EOVERFLOW : c_int = 84;
4240 pub const ECANCELED : c_int = 85;
4241 pub const EILSEQ : c_int = 86;
4242 pub const ENOATTR : c_int = 87;
4243 pub const EDOOFUS : c_int = 88;
4244 pub const EBADMSG : c_int = 89;
4245 pub const EMULTIHOP : c_int = 90;
4246 pub const ENOLINK : c_int = 91;
4247 pub const EPROTO : c_int = 92;
4248 pub const ENOMEDIUM : c_int = 93;
4249 pub const EUNUSED94 : c_int = 94;
4250 pub const EUNUSED95 : c_int = 95;
4251 pub const EUNUSED96 : c_int = 96;
4252 pub const EUNUSED97 : c_int = 97;
4253 pub const EUNUSED98 : c_int = 98;
4254 pub const EASYNC : c_int = 99;
4255 pub const ELAST : c_int = 99;
4258 use types::os::arch::c95::{c_int, size_t};
4259 use types::os::common::posix01::rlim_t;
4261 pub const F_DUPFD : c_int = 0;
4262 pub const F_GETFD : c_int = 1;
4263 pub const F_SETFD : c_int = 2;
4264 pub const F_GETFL : c_int = 3;
4265 pub const F_SETFL : c_int = 4;
4267 pub const SIGTRAP : c_int = 5;
4268 pub const SIG_IGN: size_t = 1;
4270 pub const GLOB_APPEND : c_int = 0x0001;
4271 pub const GLOB_DOOFFS : c_int = 0x0002;
4272 pub const GLOB_ERR : c_int = 0x0004;
4273 pub const GLOB_MARK : c_int = 0x0008;
4274 pub const GLOB_NOCHECK : c_int = 0x0010;
4275 pub const GLOB_NOSORT : c_int = 0x0020;
4276 pub const GLOB_NOESCAPE : c_int = 0x2000;
4278 pub const GLOB_NOSPACE : c_int = -1;
4279 pub const GLOB_ABORTED : c_int = -2;
4280 pub const GLOB_NOMATCH : c_int = -3;
4282 pub const POSIX_MADV_NORMAL : c_int = 0;
4283 pub const POSIX_MADV_RANDOM : c_int = 1;
4284 pub const POSIX_MADV_SEQUENTIAL : c_int = 2;
4285 pub const POSIX_MADV_WILLNEED : c_int = 3;
4286 pub const POSIX_MADV_DONTNEED : c_int = 4;
4288 pub const _SC_IOV_MAX : c_int = 56;
4289 pub const _SC_GETGR_R_SIZE_MAX : c_int = 70;
4290 pub const _SC_GETPW_R_SIZE_MAX : c_int = 71;
4291 pub const _SC_LOGIN_NAME_MAX : c_int = 73;
4292 pub const _SC_MQ_PRIO_MAX : c_int = 75;
4293 pub const _SC_THREAD_ATTR_STACKADDR : c_int = 82;
4294 pub const _SC_THREAD_ATTR_STACKSIZE : c_int = 83;
4295 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS : c_int = 85;
4296 pub const _SC_THREAD_KEYS_MAX : c_int = 86;
4297 pub const _SC_THREAD_PRIO_INHERIT : c_int = 87;
4298 pub const _SC_THREAD_PRIO_PROTECT : c_int = 88;
4299 pub const _SC_THREAD_PRIORITY_SCHEDULING : c_int = 89;
4300 pub const _SC_THREAD_PROCESS_SHARED : c_int = 90;
4301 pub const _SC_THREAD_SAFE_FUNCTIONS : c_int = 91;
4302 pub const _SC_THREAD_STACK_MIN : c_int = 93;
4303 pub const _SC_THREAD_THREADS_MAX : c_int = 94;
4304 pub const _SC_THREADS : c_int = 96;
4305 pub const _SC_TTY_NAME_MAX : c_int = 101;
4306 pub const _SC_ATEXIT_MAX : c_int = 107;
4307 pub const _SC_XOPEN_CRYPT : c_int = 108;
4308 pub const _SC_XOPEN_ENH_I18N : c_int = 109;
4309 pub const _SC_XOPEN_LEGACY : c_int = 110;
4310 pub const _SC_XOPEN_REALTIME : c_int = 111;
4311 pub const _SC_XOPEN_REALTIME_THREADS : c_int = 112;
4312 pub const _SC_XOPEN_SHM : c_int = 113;
4313 pub const _SC_XOPEN_UNIX : c_int = 115;
4314 pub const _SC_XOPEN_VERSION : c_int = 116;
4315 pub const _SC_XOPEN_XCU_VERSION : c_int = 117;
4317 pub const PTHREAD_CREATE_JOINABLE: c_int = 0;
4318 pub const PTHREAD_CREATE_DETACHED: c_int = 1;
4320 #[cfg(target_arch = "arm")]
4321 pub const PTHREAD_STACK_MIN: size_t = 4096;
4323 #[cfg(all(target_os = "freebsd",
4324 any(target_arch = "mips",
4325 target_arch = "mipsel",
4326 target_arch = "x86",
4327 target_arch = "x86_64")))]
4328 pub const PTHREAD_STACK_MIN: size_t = 2048;
4330 #[cfg(target_os = "dragonfly")]
4331 pub const PTHREAD_STACK_MIN: size_t = 1024;
4333 pub const CLOCK_REALTIME: c_int = 0;
4334 pub const CLOCK_MONOTONIC: c_int = 4;
4336 pub const RLIMIT_CPU: c_int = 0;
4337 pub const RLIMIT_FSIZE: c_int = 1;
4338 pub const RLIMIT_DATA: c_int = 2;
4339 pub const RLIMIT_STACK: c_int = 3;
4340 pub const RLIMIT_CORE: c_int = 4;
4341 pub const RLIMIT_RSS: c_int = 5;
4342 pub const RLIMIT_MEMLOCK: c_int = 6;
4343 pub const RLIMIT_NPROC: c_int = 7;
4344 pub const RLIMIT_NOFILE: c_int = 8;
4345 pub const RLIMIT_SBSIZE: c_int = 9;
4346 pub const RLIMIT_VMEM: c_int = 10;
4347 pub const RLIMIT_AS: c_int = RLIMIT_VMEM;
4348 pub const RLIMIT_NPTS: c_int = 11;
4349 pub const RLIMIT_SWAP: c_int = 12;
4350 pub const RLIMIT_KQUEUES: c_int = 13;
4352 pub const RLIM_NLIMITS: rlim_t = 14;
4353 pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff;
4355 pub const RUSAGE_SELF: c_int = 0;
4356 pub const RUSAGE_CHILDREN: c_int = -1;
4357 pub const RUSAGE_THREAD: c_int = 1;
4359 #[cfg(target_os = "freebsd")]
4361 use types::os::arch::c95::c_int;
4362 pub const O_CLOEXEC: c_int = 0x100000;
4363 pub const F_DUPFD_CLOEXEC: c_int = 17;
4365 #[cfg(target_os = "dragonfly")]
4367 use types::os::arch::c95::c_int;
4368 pub const O_CLOEXEC: c_int = 0x20000;
4369 pub const F_DUPFD_CLOEXEC: c_int = 17;
4372 use types::os::arch::c95::c_int;
4374 pub const MADV_NORMAL : c_int = 0;
4375 pub const MADV_RANDOM : c_int = 1;
4376 pub const MADV_SEQUENTIAL : c_int = 2;
4377 pub const MADV_WILLNEED : c_int = 3;
4378 pub const MADV_DONTNEED : c_int = 4;
4379 pub const MADV_FREE : c_int = 5;
4380 pub const MADV_NOSYNC : c_int = 6;
4381 pub const MADV_AUTOSYNC : c_int = 7;
4382 pub const MADV_NOCORE : c_int = 8;
4383 pub const MADV_CORE : c_int = 9;
4384 pub const MADV_PROTECT : c_int = 10;
4386 pub const MINCORE_INCORE : c_int = 0x1;
4387 pub const MINCORE_REFERENCED : c_int = 0x2;
4388 pub const MINCORE_MODIFIED : c_int = 0x4;
4389 pub const MINCORE_REFERENCED_OTHER : c_int = 0x8;
4390 pub const MINCORE_MODIFIED_OTHER : c_int = 0x10;
4391 pub const MINCORE_SUPER : c_int = 0x20;
4393 pub const AF_INET: c_int = 2;
4394 pub const AF_INET6: c_int = 28;
4395 pub const AF_UNIX: c_int = 1;
4396 pub const SOCK_STREAM: c_int = 1;
4397 pub const SOCK_DGRAM: c_int = 2;
4398 pub const SOCK_RAW: c_int = 3;
4399 pub const IPPROTO_TCP: c_int = 6;
4400 pub const IPPROTO_IP: c_int = 0;
4401 pub const IPPROTO_IPV6: c_int = 41;
4402 pub const IP_MULTICAST_TTL: c_int = 10;
4403 pub const IP_MULTICAST_LOOP: c_int = 11;
4404 pub const IP_TTL: c_int = 4;
4405 pub const IP_HDRINCL: c_int = 2;
4406 pub const IP_ADD_MEMBERSHIP: c_int = 12;
4407 pub const IP_DROP_MEMBERSHIP: c_int = 13;
4408 pub const IPV6_ADD_MEMBERSHIP: c_int = 12;
4409 pub const IPV6_DROP_MEMBERSHIP: c_int = 13;
4411 pub const TCP_NODELAY: c_int = 1;
4412 pub const TCP_KEEPIDLE: c_int = 256;
4413 pub const SOL_SOCKET: c_int = 0xffff;
4414 pub const SO_DEBUG: c_int = 0x01;
4415 pub const SO_ACCEPTCONN: c_int = 0x0002;
4416 pub const SO_REUSEADDR: c_int = 0x0004;
4417 pub const SO_KEEPALIVE: c_int = 0x0008;
4418 pub const SO_DONTROUTE: c_int = 0x0010;
4419 pub const SO_BROADCAST: c_int = 0x0020;
4420 pub const SO_USELOOPBACK: c_int = 0x0040;
4421 pub const SO_LINGER: c_int = 0x0080;
4422 pub const SO_OOBINLINE: c_int = 0x0100;
4423 pub const SO_REUSEPORT: c_int = 0x0200;
4424 pub const SO_SNDBUF: c_int = 0x1001;
4425 pub const SO_RCVBUF: c_int = 0x1002;
4426 pub const SO_SNDLOWAT: c_int = 0x1003;
4427 pub const SO_RCVLOWAT: c_int = 0x1004;
4428 pub const SO_SNDTIMEO: c_int = 0x1005;
4429 pub const SO_RCVTIMEO: c_int = 0x1006;
4430 pub const SO_ERROR: c_int = 0x1007;
4431 pub const SO_TYPE: c_int = 0x1008;
4433 pub const IFF_LOOPBACK: c_int = 0x8;
4435 pub const SHUT_RD: c_int = 0;
4436 pub const SHUT_WR: c_int = 1;
4437 pub const SHUT_RDWR: c_int = 2;
4439 pub const LOCK_SH: c_int = 1;
4440 pub const LOCK_EX: c_int = 2;
4441 pub const LOCK_NB: c_int = 4;
4442 pub const LOCK_UN: c_int = 8;
4445 use types::os::arch::c95::c_int;
4447 pub const O_SYNC : c_int = 128;
4448 pub const O_NONBLOCK : c_int = 4;
4449 pub const CTL_KERN: c_int = 1;
4450 pub const KERN_PROC: c_int = 14;
4451 #[cfg(target_os = "freebsd")]
4452 pub const KERN_PROC_PATHNAME: c_int = 12;
4453 #[cfg(target_os = "dragonfly")]
4454 pub const KERN_PROC_PATHNAME: c_int = 9;
4456 pub const MAP_COPY : c_int = 0x0002;
4457 pub const MAP_RENAME : c_int = 0x0020;
4458 pub const MAP_NORESERVE : c_int = 0x0040;
4459 pub const MAP_HASSEMAPHORE : c_int = 0x0200;
4460 pub const MAP_STACK : c_int = 0x0400;
4461 pub const MAP_NOSYNC : c_int = 0x0800;
4462 pub const MAP_NOCORE : c_int = 0x020000;
4464 pub const IPPROTO_RAW : c_int = 255;
4467 use types::os::arch::c95::c_int;
4469 pub const _SC_ARG_MAX : c_int = 1;
4470 pub const _SC_CHILD_MAX : c_int = 2;
4471 pub const _SC_CLK_TCK : c_int = 3;
4472 pub const _SC_NGROUPS_MAX : c_int = 4;
4473 pub const _SC_OPEN_MAX : c_int = 5;
4474 pub const _SC_JOB_CONTROL : c_int = 6;
4475 pub const _SC_SAVED_IDS : c_int = 7;
4476 pub const _SC_VERSION : c_int = 8;
4477 pub const _SC_BC_BASE_MAX : c_int = 9;
4478 pub const _SC_BC_DIM_MAX : c_int = 10;
4479 pub const _SC_BC_SCALE_MAX : c_int = 11;
4480 pub const _SC_BC_STRING_MAX : c_int = 12;
4481 pub const _SC_COLL_WEIGHTS_MAX : c_int = 13;
4482 pub const _SC_EXPR_NEST_MAX : c_int = 14;
4483 pub const _SC_LINE_MAX : c_int = 15;
4484 pub const _SC_RE_DUP_MAX : c_int = 16;
4485 pub const _SC_2_VERSION : c_int = 17;
4486 pub const _SC_2_C_BIND : c_int = 18;
4487 pub const _SC_2_C_DEV : c_int = 19;
4488 pub const _SC_2_CHAR_TERM : c_int = 20;
4489 pub const _SC_2_FORT_DEV : c_int = 21;
4490 pub const _SC_2_FORT_RUN : c_int = 22;
4491 pub const _SC_2_LOCALEDEF : c_int = 23;
4492 pub const _SC_2_SW_DEV : c_int = 24;
4493 pub const _SC_2_UPE : c_int = 25;
4494 pub const _SC_STREAM_MAX : c_int = 26;
4495 pub const _SC_TZNAME_MAX : c_int = 27;
4496 pub const _SC_ASYNCHRONOUS_IO : c_int = 28;
4497 pub const _SC_MAPPED_FILES : c_int = 29;
4498 pub const _SC_MEMLOCK : c_int = 30;
4499 pub const _SC_MEMLOCK_RANGE : c_int = 31;
4500 pub const _SC_MEMORY_PROTECTION : c_int = 32;
4501 pub const _SC_MESSAGE_PASSING : c_int = 33;
4502 pub const _SC_PRIORITIZED_IO : c_int = 34;
4503 pub const _SC_PRIORITY_SCHEDULING : c_int = 35;
4504 pub const _SC_REALTIME_SIGNALS : c_int = 36;
4505 pub const _SC_SEMAPHORES : c_int = 37;
4506 pub const _SC_FSYNC : c_int = 38;
4507 pub const _SC_SHARED_MEMORY_OBJECTS : c_int = 39;
4508 pub const _SC_SYNCHRONIZED_IO : c_int = 40;
4509 pub const _SC_TIMERS : c_int = 41;
4510 pub const _SC_AIO_LISTIO_MAX : c_int = 42;
4511 pub const _SC_AIO_MAX : c_int = 43;
4512 pub const _SC_AIO_PRIO_DELTA_MAX : c_int = 44;
4513 pub const _SC_DELAYTIMER_MAX : c_int = 45;
4514 pub const _SC_MQ_OPEN_MAX : c_int = 46;
4515 pub const _SC_PAGESIZE : c_int = 47;
4516 pub const _SC_RTSIG_MAX : c_int = 48;
4517 pub const _SC_SEM_NSEMS_MAX : c_int = 49;
4518 pub const _SC_SEM_VALUE_MAX : c_int = 50;
4519 pub const _SC_SIGQUEUE_MAX : c_int = 51;
4520 pub const _SC_TIMER_MAX : c_int = 52;
4522 pub const _PC_NAME_MAX: c_int = 4;
4523 pub const _PC_PATH_MAX: c_int = 5;
4527 #[cfg(any(target_os = "bitrig", target_os = "openbsd"))]
4530 use types::os::arch::c95::{c_int, c_uint};
4532 pub const EXIT_FAILURE : c_int = 1;
4533 pub const EXIT_SUCCESS : c_int = 0;
4534 pub const RAND_MAX : c_int = 2147483647;
4535 pub const EOF : c_int = -1;
4536 pub const SEEK_SET : c_int = 0;
4537 pub const SEEK_CUR : c_int = 1;
4538 pub const SEEK_END : c_int = 2;
4539 pub const _IOFBF : c_int = 0;
4540 pub const _IONBF : c_int = 2;
4541 pub const _IOLBF : c_int = 1;
4542 pub const BUFSIZ : c_uint = 1024;
4543 pub const FOPEN_MAX : c_uint = 20;
4544 pub const FILENAME_MAX : c_uint = 1024;
4545 pub const L_tmpnam : c_uint = 1024;
4546 pub const TMP_MAX : c_uint = 308915776;
4551 use types::common::c95::c_void;
4552 use types::os::arch::c95::c_int;
4553 use types::os::arch::posix88::mode_t;
4555 pub const O_RDONLY : c_int = 0;
4556 pub const O_WRONLY : c_int = 1;
4557 pub const O_RDWR : c_int = 2;
4558 pub const O_APPEND : c_int = 8;
4559 pub const O_CREAT : c_int = 512;
4560 pub const O_EXCL : c_int = 2048;
4561 pub const O_NOCTTY : c_int = 32768;
4562 pub const O_TRUNC : c_int = 1024;
4563 pub const S_IFIFO : mode_t = 4096;
4564 pub const S_IFCHR : mode_t = 8192;
4565 pub const S_IFBLK : mode_t = 24576;
4566 pub const S_IFDIR : mode_t = 16384;
4567 pub const S_IFREG : mode_t = 32768;
4568 pub const S_IFLNK : mode_t = 40960;
4569 pub const S_IFSOCK : mode_t = 49152;
4570 pub const S_IFMT : mode_t = 61440;
4571 pub const S_IEXEC : mode_t = 64;
4572 pub const S_IWRITE : mode_t = 128;
4573 pub const S_IREAD : mode_t = 256;
4574 pub const S_IRWXU : mode_t = 448;
4575 pub const S_IXUSR : mode_t = 64;
4576 pub const S_IWUSR : mode_t = 128;
4577 pub const S_IRUSR : mode_t = 256;
4578 pub const S_IRWXG : mode_t = 56;
4579 pub const S_IXGRP : mode_t = 8;
4580 pub const S_IWGRP : mode_t = 16;
4581 pub const S_IRGRP : mode_t = 32;
4582 pub const S_IRWXO : mode_t = 7;
4583 pub const S_IXOTH : mode_t = 1;
4584 pub const S_IWOTH : mode_t = 2;
4585 pub const S_IROTH : mode_t = 4;
4586 pub const F_OK : c_int = 0;
4587 pub const R_OK : c_int = 4;
4588 pub const W_OK : c_int = 2;
4589 pub const X_OK : c_int = 1;
4590 pub const STDIN_FILENO : c_int = 0;
4591 pub const STDOUT_FILENO : c_int = 1;
4592 pub const STDERR_FILENO : c_int = 2;
4593 pub const F_LOCK : c_int = 1;
4594 pub const F_TEST : c_int = 3;
4595 pub const F_TLOCK : c_int = 2;
4596 pub const F_ULOCK : c_int = 0;
4597 pub const SIGHUP : c_int = 1;
4598 pub const SIGINT : c_int = 2;
4599 pub const SIGQUIT : c_int = 3;
4600 pub const SIGILL : c_int = 4;
4601 pub const SIGABRT : c_int = 6;
4602 pub const SIGFPE : c_int = 8;
4603 pub const SIGKILL : c_int = 9;
4604 pub const SIGSEGV : c_int = 11;
4605 pub const SIGPIPE : c_int = 13;
4606 pub const SIGALRM : c_int = 14;
4607 pub const SIGTERM : c_int = 15;
4609 pub const PROT_NONE : c_int = 0;
4610 pub const PROT_READ : c_int = 1;
4611 pub const PROT_WRITE : c_int = 2;
4612 pub const PROT_EXEC : c_int = 4;
4614 pub const MAP_FILE : c_int = 0x0000;
4615 pub const MAP_SHARED : c_int = 0x0001;
4616 pub const MAP_PRIVATE : c_int = 0x0002;
4617 pub const MAP_FIXED : c_int = 0x0010;
4618 pub const MAP_ANON : c_int = 0x1000;
4620 pub const MAP_FAILED : *mut c_void = !0 as *mut c_void;
4622 pub const MCL_CURRENT : c_int = 0x0001;
4623 pub const MCL_FUTURE : c_int = 0x0002;
4625 pub const MS_ASYNC : c_int = 0x0001;
4626 pub const MS_SYNC : c_int = 0x0002;
4627 pub const MS_INVALIDATE : c_int = 0x0004;
4629 pub const EPERM : c_int = 1;
4630 pub const ENOENT : c_int = 2;
4631 pub const ESRCH : c_int = 3;
4632 pub const EINTR : c_int = 4;
4633 pub const EIO : c_int = 5;
4634 pub const ENXIO : c_int = 6;
4635 pub const E2BIG : c_int = 7;
4636 pub const ENOEXEC : c_int = 8;
4637 pub const EBADF : c_int = 9;
4638 pub const ECHILD : c_int = 10;
4639 pub const EDEADLK : c_int = 11;
4640 pub const ENOMEM : c_int = 12;
4641 pub const EACCES : c_int = 13;
4642 pub const EFAULT : c_int = 14;
4643 pub const ENOTBLK : c_int = 15;
4644 pub const EBUSY : c_int = 16;
4645 pub const EEXIST : c_int = 17;
4646 pub const EXDEV : c_int = 18;
4647 pub const ENODEV : c_int = 19;
4648 pub const ENOTDIR : c_int = 20;
4649 pub const EISDIR : c_int = 21;
4650 pub const EINVAL : c_int = 22;
4651 pub const ENFILE : c_int = 23;
4652 pub const EMFILE : c_int = 24;
4653 pub const ENOTTY : c_int = 25;
4654 pub const ETXTBSY : c_int = 26;
4655 pub const EFBIG : c_int = 27;
4656 pub const ENOSPC : c_int = 28;
4657 pub const ESPIPE : c_int = 29;
4658 pub const EROFS : c_int = 30;
4659 pub const EMLINK : c_int = 31;
4660 pub const EPIPE : c_int = 32;
4661 pub const EDOM : c_int = 33;
4662 pub const ERANGE : c_int = 34;
4663 pub const EAGAIN : c_int = 35;
4664 pub const EWOULDBLOCK : c_int = 35;
4665 pub const EINPROGRESS : c_int = 36;
4666 pub const EALREADY : c_int = 37;
4667 pub const ENOTSOCK : c_int = 38;
4668 pub const EDESTADDRREQ : c_int = 39;
4669 pub const EMSGSIZE : c_int = 40;
4670 pub const EPROTOTYPE : c_int = 41;
4671 pub const ENOPROTOOPT : c_int = 42;
4672 pub const EPROTONOSUPPORT : c_int = 43;
4673 pub const ESOCKTNOSUPPORT : c_int = 44;
4674 pub const EOPNOTSUPP : c_int = 45;
4675 pub const EPFNOSUPPORT : c_int = 46;
4676 pub const EAFNOSUPPORT : c_int = 47;
4677 pub const EADDRINUSE : c_int = 48;
4678 pub const EADDRNOTAVAIL : c_int = 49;
4679 pub const ENETDOWN : c_int = 50;
4680 pub const ENETUNREACH : c_int = 51;
4681 pub const ENETRESET : c_int = 52;
4682 pub const ECONNABORTED : c_int = 53;
4683 pub const ECONNRESET : c_int = 54;
4684 pub const ENOBUFS : c_int = 55;
4685 pub const EISCONN : c_int = 56;
4686 pub const ENOTCONN : c_int = 57;
4687 pub const ESHUTDOWN : c_int = 58;
4688 pub const ETOOMANYREFS : c_int = 59;
4689 pub const ETIMEDOUT : c_int = 60;
4690 pub const ECONNREFUSED : c_int = 61;
4691 pub const ELOOP : c_int = 62;
4692 pub const ENAMETOOLONG : c_int = 63;
4693 pub const EHOSTDOWN : c_int = 64;
4694 pub const EHOSTUNREACH : c_int = 65;
4695 pub const ENOTEMPTY : c_int = 66;
4696 pub const EPROCLIM : c_int = 67;
4697 pub const EUSERS : c_int = 68;
4698 pub const EDQUOT : c_int = 69;
4699 pub const ESTALE : c_int = 70;
4700 pub const EREMOTE : c_int = 71;
4701 pub const EBADRPC : c_int = 72;
4702 pub const ERPCMISMATCH : c_int = 73;
4703 pub const EPROGUNAVAIL : c_int = 74;
4704 pub const EPROGMISMATCH : c_int = 75;
4705 pub const EPROCUNAVAIL : c_int = 76;
4706 pub const ENOLCK : c_int = 77;
4707 pub const ENOSYS : c_int = 78;
4708 pub const EFTYPE : c_int = 79;
4709 pub const EAUTH : c_int = 80;
4710 pub const ENEEDAUTH : c_int = 81;
4711 pub const EIPSEC : c_int = 82;
4712 pub const ENOATTR : c_int = 83;
4713 pub const EILSEQ : c_int = 84;
4714 pub const ENOMEDIUM : c_int = 85;
4715 pub const EMEDIUMTYPE : c_int = 86;
4716 pub const EOVERFLOW : c_int = 87;
4717 pub const ECANCELED : c_int = 88;
4718 pub const EIDRM : c_int = 89;
4719 pub const ENOMSG : c_int = 90;
4720 pub const ENOTSUP : c_int = 91;
4721 pub const ELAST : c_int = 91; // must be equal to largest errno
4724 use types::os::arch::c95::{c_int, size_t};
4725 use types::os::common::posix01::rlim_t;
4727 pub const F_DUPFD : c_int = 0;
4728 pub const F_GETFD : c_int = 1;
4729 pub const F_SETFD : c_int = 2;
4730 pub const F_GETFL : c_int = 3;
4731 pub const F_SETFL : c_int = 4;
4732 pub const F_GETOWN : c_int = 5;
4733 pub const F_SETOWN : c_int = 6;
4734 pub const F_GETLK : c_int = 7;
4735 pub const F_SETLK : c_int = 8;
4736 pub const F_SETLKW : c_int = 9;
4738 pub const SIGTRAP : c_int = 5;
4739 pub const SIG_IGN: size_t = 1;
4741 pub const GLOB_APPEND : c_int = 0x0001;
4742 pub const GLOB_DOOFFS : c_int = 0x0002;
4743 pub const GLOB_ERR : c_int = 0x0004;
4744 pub const GLOB_MARK : c_int = 0x0008;
4745 pub const GLOB_NOCHECK : c_int = 0x0010;
4746 pub const GLOB_NOSORT : c_int = 0x0020;
4747 pub const GLOB_NOESCAPE : c_int = 0x1000;
4749 pub const GLOB_NOSPACE : c_int = -1;
4750 pub const GLOB_ABORTED : c_int = -2;
4751 pub const GLOB_NOMATCH : c_int = -3;
4752 pub const GLOB_NOSYS : c_int = -4;
4754 pub const POSIX_MADV_NORMAL : c_int = 0;
4755 pub const POSIX_MADV_RANDOM : c_int = 1;
4756 pub const POSIX_MADV_SEQUENTIAL : c_int = 2;
4757 pub const POSIX_MADV_WILLNEED : c_int = 3;
4758 pub const POSIX_MADV_DONTNEED : c_int = 4;
4760 pub const _SC_IOV_MAX : c_int = 51;
4761 pub const _SC_GETGR_R_SIZE_MAX : c_int = 100;
4762 pub const _SC_GETPW_R_SIZE_MAX : c_int = 101;
4763 pub const _SC_LOGIN_NAME_MAX : c_int = 102;
4764 pub const _SC_MQ_PRIO_MAX : c_int = 59;
4765 pub const _SC_THREAD_ATTR_STACKADDR : c_int = 77;
4766 pub const _SC_THREAD_ATTR_STACKSIZE : c_int = 78;
4767 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS : c_int = 80;
4768 pub const _SC_THREAD_KEYS_MAX : c_int = 81;
4769 pub const _SC_THREAD_PRIO_INHERIT : c_int = 82;
4770 pub const _SC_THREAD_PRIO_PROTECT : c_int = 83;
4771 pub const _SC_THREAD_PRIORITY_SCHEDULING : c_int = 84;
4772 pub const _SC_THREAD_PROCESS_SHARED : c_int = 85;
4773 pub const _SC_THREAD_SAFE_FUNCTIONS : c_int = 103;
4774 pub const _SC_THREAD_STACK_MIN : c_int = 89;
4775 pub const _SC_THREAD_THREADS_MAX : c_int = 90;
4776 pub const _SC_THREADS : c_int = 91;
4777 pub const _SC_TTY_NAME_MAX : c_int = 107;
4778 pub const _SC_ATEXIT_MAX : c_int = 46;
4779 pub const _SC_XOPEN_CRYPT : c_int = 117;
4780 pub const _SC_XOPEN_ENH_I18N : c_int = 118;
4781 pub const _SC_XOPEN_LEGACY : c_int = 119;
4782 pub const _SC_XOPEN_REALTIME : c_int = 120;
4783 pub const _SC_XOPEN_REALTIME_THREADS : c_int = 121;
4784 pub const _SC_XOPEN_SHM : c_int = 30;
4785 pub const _SC_XOPEN_UNIX : c_int = 123;
4786 pub const _SC_XOPEN_VERSION : c_int = 125;
4788 pub const PTHREAD_CREATE_JOINABLE : c_int = 0;
4789 pub const PTHREAD_CREATE_DETACHED : c_int = 1;
4790 pub const PTHREAD_STACK_MIN : size_t = 2048;
4792 pub const CLOCK_REALTIME : c_int = 0;
4793 pub const CLOCK_MONOTONIC : c_int = 3;
4795 pub const RLIMIT_CPU: c_int = 0;
4796 pub const RLIMIT_FSIZE: c_int = 1;
4797 pub const RLIMIT_DATA: c_int = 2;
4798 pub const RLIMIT_STACK: c_int = 3;
4799 pub const RLIMIT_CORE: c_int = 4;
4800 pub const RLIMIT_RSS: c_int = 5;
4801 pub const RLIMIT_MEMLOCK: c_int = 6;
4802 pub const RLIMIT_NPROC: c_int = 7;
4803 pub const RLIMIT_NOFILE: c_int = 8;
4804 pub const RLIM_NLIMITS: c_int = 9;
4806 pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff;
4807 pub const RLIM_SAVED_MAX: rlim_t = RLIM_INFINITY;
4808 pub const RLIM_SAVED_CUR: rlim_t = RLIM_INFINITY;
4810 pub const RUSAGE_SELF: c_int = 0;
4811 pub const RUSAGE_CHILDREN: c_int = -1;
4812 pub const RUSAGE_THREAD: c_int = 1;
4815 use types::os::arch::c95::c_int;
4816 pub const O_CLOEXEC: c_int = 0x10000;
4817 pub const F_DUPFD_CLOEXEC: c_int = 10;
4820 use types::os::arch::c95::c_int;
4822 pub const MADV_NORMAL : c_int = 0;
4823 pub const MADV_RANDOM : c_int = 1;
4824 pub const MADV_SEQUENTIAL : c_int = 2;
4825 pub const MADV_WILLNEED : c_int = 3;
4826 pub const MADV_DONTNEED : c_int = 4;
4827 pub const MADV_FREE : c_int = 6;
4829 pub const AF_UNIX: c_int = 1;
4830 pub const AF_INET: c_int = 2;
4831 pub const AF_INET6: c_int = 24;
4832 pub const SOCK_STREAM: c_int = 1;
4833 pub const SOCK_DGRAM: c_int = 2;
4834 pub const SOCK_RAW: c_int = 3;
4835 pub const IPPROTO_TCP: c_int = 6;
4836 pub const IPPROTO_IP: c_int = 0;
4837 pub const IPPROTO_IPV6: c_int = 41;
4838 pub const IP_MULTICAST_TTL: c_int = 10;
4839 pub const IP_MULTICAST_LOOP: c_int = 11;
4840 pub const IP_TTL: c_int = 4;
4841 pub const IP_HDRINCL: c_int = 2;
4842 pub const IP_ADD_MEMBERSHIP: c_int = 12;
4843 pub const IP_DROP_MEMBERSHIP: c_int = 13;
4844 pub const IPV6_ADD_MEMBERSHIP: c_int = 12; // don't exist
4845 pub const IPV6_DROP_MEMBERSHIP: c_int = 13; // don't exist
4847 pub const TCP_NODELAY: c_int = 0x01;
4848 pub const SOL_SOCKET: c_int = 0xffff;
4849 pub const SO_DEBUG: c_int = 0x01;
4850 pub const SO_ACCEPTCONN: c_int = 0x0002;
4851 pub const SO_REUSEADDR: c_int = 0x0004;
4852 pub const SO_KEEPALIVE: c_int = 0x0008;
4853 pub const SO_DONTROUTE: c_int = 0x0010;
4854 pub const SO_BROADCAST: c_int = 0x0020;
4855 pub const SO_USELOOPBACK: c_int = 0x0040;
4856 pub const SO_LINGER: c_int = 0x0080;
4857 pub const SO_OOBINLINE: c_int = 0x0100;
4858 pub const SO_REUSEPORT: c_int = 0x0200;
4859 pub const SO_SNDBUF: c_int = 0x1001;
4860 pub const SO_RCVBUF: c_int = 0x1002;
4861 pub const SO_SNDLOWAT: c_int = 0x1003;
4862 pub const SO_RCVLOWAT: c_int = 0x1004;
4863 pub const SO_SNDTIMEO: c_int = 0x1005;
4864 pub const SO_RCVTIMEO: c_int = 0x1006;
4865 pub const SO_ERROR: c_int = 0x1007;
4866 pub const SO_TYPE: c_int = 0x1008;
4868 pub const IFF_LOOPBACK: c_int = 0x8;
4870 pub const SHUT_RD: c_int = 0;
4871 pub const SHUT_WR: c_int = 1;
4872 pub const SHUT_RDWR: c_int = 2;
4874 pub const LOCK_SH: c_int = 1;
4875 pub const LOCK_EX: c_int = 2;
4876 pub const LOCK_NB: c_int = 4;
4877 pub const LOCK_UN: c_int = 8;
4880 use types::os::arch::c95::c_int;
4882 pub const O_DSYNC : c_int = 128; // same as SYNC
4883 pub const O_SYNC : c_int = 128;
4884 pub const O_NONBLOCK : c_int = 4;
4885 pub const CTL_KERN : c_int = 1;
4886 pub const KERN_PROC : c_int = 66;
4888 pub const MAP_COPY : c_int = 0x0002;
4889 pub const MAP_RENAME : c_int = 0x0000;
4890 pub const MAP_NORESERVE : c_int = 0x0000;
4891 pub const MAP_NOEXTEND : c_int = 0x0000;
4892 pub const MAP_HASSEMAPHORE : c_int = 0x0000;
4894 pub const IPPROTO_RAW : c_int = 255;
4896 pub const PATH_MAX: c_int = 1024;
4899 use types::os::arch::c95::c_int;
4901 pub const _SC_ARG_MAX : c_int = 1;
4902 pub const _SC_CHILD_MAX : c_int = 2;
4903 pub const _SC_CLK_TCK : c_int = 3;
4904 pub const _SC_NGROUPS_MAX : c_int = 4;
4905 pub const _SC_OPEN_MAX : c_int = 5;
4906 pub const _SC_JOB_CONTROL : c_int = 6;
4907 pub const _SC_SAVED_IDS : c_int = 7;
4908 pub const _SC_VERSION : c_int = 8;
4909 pub const _SC_BC_BASE_MAX : c_int = 9;
4910 pub const _SC_BC_DIM_MAX : c_int = 10;
4911 pub const _SC_BC_SCALE_MAX : c_int = 11;
4912 pub const _SC_BC_STRING_MAX : c_int = 12;
4913 pub const _SC_COLL_WEIGHTS_MAX : c_int = 13;
4914 pub const _SC_EXPR_NEST_MAX : c_int = 14;
4915 pub const _SC_LINE_MAX : c_int = 15;
4916 pub const _SC_RE_DUP_MAX : c_int = 16;
4917 pub const _SC_2_VERSION : c_int = 17;
4918 pub const _SC_2_C_BIND : c_int = 18;
4919 pub const _SC_2_C_DEV : c_int = 19;
4920 pub const _SC_2_CHAR_TERM : c_int = 20;
4921 pub const _SC_2_FORT_DEV : c_int = 21;
4922 pub const _SC_2_FORT_RUN : c_int = 22;
4923 pub const _SC_2_LOCALEDEF : c_int = 23;
4924 pub const _SC_2_SW_DEV : c_int = 24;
4925 pub const _SC_2_UPE : c_int = 25;
4926 pub const _SC_STREAM_MAX : c_int = 26;
4927 pub const _SC_TZNAME_MAX : c_int = 27;
4928 pub const _SC_PAGESIZE : c_int = 28;
4929 pub const _SC_FSYNC : c_int = 29;
4930 pub const _SC_SEM_NSEMS_MAX : c_int = 31;
4931 pub const _SC_SEM_VALUE_MAX : c_int = 32;
4932 pub const _SC_AIO_LISTIO_MAX : c_int = 42;
4933 pub const _SC_AIO_MAX : c_int = 43;
4934 pub const _SC_AIO_PRIO_DELTA_MAX : c_int = 44;
4935 pub const _SC_ASYNCHRONOUS_IO : c_int = 45;
4936 pub const _SC_DELAYTIMER_MAX : c_int = 50;
4937 pub const _SC_MAPPED_FILES : c_int = 53;
4938 pub const _SC_MEMLOCK : c_int = 54;
4939 pub const _SC_MEMLOCK_RANGE : c_int = 55;
4940 pub const _SC_MEMORY_PROTECTION : c_int = 56;
4941 pub const _SC_MESSAGE_PASSING : c_int = 57;
4942 pub const _SC_MQ_OPEN_MAX : c_int = 58;
4943 pub const _SC_PRIORITIZED_IO : c_int = 60;
4944 pub const _SC_PRIORITY_SCHEDULING : c_int = 61;
4945 pub const _SC_REALTIME_SIGNALS : c_int = 64;
4946 pub const _SC_RTSIG_MAX : c_int = 66;
4947 pub const _SC_SEMAPHORES : c_int = 67;
4948 pub const _SC_SHARED_MEMORY_OBJECTS : c_int = 68;
4949 pub const _SC_SIGQUEUE_MAX : c_int = 70;
4950 pub const _SC_SYNCHRONIZED_IO : c_int = 75;
4951 pub const _SC_TIMER_MAX : c_int = 93;
4952 pub const _SC_TIMERS : c_int = 94;
4954 pub const _PC_NAME_MAX: c_int = 4;
4955 pub const _PC_PATH_MAX: c_int = 5;
4959 #[cfg(target_os = "netbsd")]
4962 use types::os::arch::c95::{c_int, c_uint};
4964 pub const EXIT_FAILURE : c_int = 1;
4965 pub const EXIT_SUCCESS : c_int = 0;
4966 pub const RAND_MAX : c_int = 2147483647;
4967 pub const EOF : c_int = -1;
4968 pub const SEEK_SET : c_int = 0;
4969 pub const SEEK_CUR : c_int = 1;
4970 pub const SEEK_END : c_int = 2;
4971 pub const _IOFBF : c_int = 0;
4972 pub const _IONBF : c_int = 2;
4973 pub const _IOLBF : c_int = 1;
4974 pub const BUFSIZ : c_uint = 1024;
4975 pub const FOPEN_MAX : c_uint = 20;
4976 pub const FILENAME_MAX : c_uint = 1024;
4977 pub const L_tmpnam : c_uint = 1024;
4978 pub const TMP_MAX : c_uint = 308915776;
4983 use types::common::c95::c_void;
4984 use types::os::arch::c95::c_int;
4985 use types::os::arch::posix88::mode_t;
4987 pub const O_RDONLY : c_int = 0;
4988 pub const O_WRONLY : c_int = 1;
4989 pub const O_RDWR : c_int = 2;
4990 pub const O_APPEND : c_int = 8;
4991 pub const O_CREAT : c_int = 512;
4992 pub const O_EXCL : c_int = 2048;
4993 pub const O_NOCTTY : c_int = 32768;
4994 pub const O_TRUNC : c_int = 1024;
4995 pub const S_IFIFO : mode_t = 4096;
4996 pub const S_IFCHR : mode_t = 8192;
4997 pub const S_IFBLK : mode_t = 24576;
4998 pub const S_IFDIR : mode_t = 16384;
4999 pub const S_IFREG : mode_t = 32768;
5000 pub const S_IFLNK : mode_t = 40960;
5001 pub const S_IFSOCK : mode_t = 49152;
5002 pub const S_IFMT : mode_t = 61440;
5003 pub const S_IEXEC : mode_t = 64;
5004 pub const S_IWRITE : mode_t = 128;
5005 pub const S_IREAD : mode_t = 256;
5006 pub const S_IRWXU : mode_t = 448;
5007 pub const S_IXUSR : mode_t = 64;
5008 pub const S_IWUSR : mode_t = 128;
5009 pub const S_IRUSR : mode_t = 256;
5010 pub const S_IRWXG : mode_t = 56;
5011 pub const S_IXGRP : mode_t = 8;
5012 pub const S_IWGRP : mode_t = 16;
5013 pub const S_IRGRP : mode_t = 32;
5014 pub const S_IRWXO : mode_t = 7;
5015 pub const S_IXOTH : mode_t = 1;
5016 pub const S_IWOTH : mode_t = 2;
5017 pub const S_IROTH : mode_t = 4;
5018 pub const F_OK : c_int = 0;
5019 pub const R_OK : c_int = 4;
5020 pub const W_OK : c_int = 2;
5021 pub const X_OK : c_int = 1;
5022 pub const STDIN_FILENO : c_int = 0;
5023 pub const STDOUT_FILENO : c_int = 1;
5024 pub const STDERR_FILENO : c_int = 2;
5025 pub const F_LOCK : c_int = 1;
5026 pub const F_TEST : c_int = 3;
5027 pub const F_TLOCK : c_int = 2;
5028 pub const F_ULOCK : c_int = 0;
5029 pub const SIGHUP : c_int = 1;
5030 pub const SIGINT : c_int = 2;
5031 pub const SIGQUIT : c_int = 3;
5032 pub const SIGILL : c_int = 4;
5033 pub const SIGABRT : c_int = 6;
5034 pub const SIGFPE : c_int = 8;
5035 pub const SIGKILL : c_int = 9;
5036 pub const SIGSEGV : c_int = 11;
5037 pub const SIGPIPE : c_int = 13;
5038 pub const SIGALRM : c_int = 14;
5039 pub const SIGTERM : c_int = 15;
5041 pub const PROT_NONE : c_int = 0;
5042 pub const PROT_READ : c_int = 1;
5043 pub const PROT_WRITE : c_int = 2;
5044 pub const PROT_EXEC : c_int = 4;
5046 pub const MAP_FILE : c_int = 0;
5047 pub const MAP_SHARED : c_int = 1;
5048 pub const MAP_PRIVATE : c_int = 2;
5049 pub const MAP_FIXED : c_int = 16;
5050 pub const MAP_ANON : c_int = 4096;
5052 pub const MAP_FAILED : *mut c_void = !0 as *mut c_void;
5054 pub const MCL_CURRENT : c_int = 1;
5055 pub const MCL_FUTURE : c_int = 2;
5057 pub const MS_ASYNC : c_int = 1;
5058 pub const MS_SYNC : c_int = 4;
5059 pub const MS_INVALIDATE : c_int = 2;
5061 pub const EPERM : c_int = 1;
5062 pub const ENOENT : c_int = 2;
5063 pub const ESRCH : c_int = 3;
5064 pub const EINTR : c_int = 4;
5065 pub const EIO : c_int = 5;
5066 pub const ENXIO : c_int = 6;
5067 pub const E2BIG : c_int = 7;
5068 pub const ENOEXEC : c_int = 8;
5069 pub const EBADF : c_int = 9;
5070 pub const ECHILD : c_int = 10;
5071 pub const EDEADLK : c_int = 11;
5072 pub const ENOMEM : c_int = 12;
5073 pub const EACCES : c_int = 13;
5074 pub const EFAULT : c_int = 14;
5075 pub const ENOTBLK : c_int = 15;
5076 pub const EBUSY : c_int = 16;
5077 pub const EEXIST : c_int = 17;
5078 pub const EXDEV : c_int = 18;
5079 pub const ENODEV : c_int = 19;
5080 pub const ENOTDIR : c_int = 20;
5081 pub const EISDIR : c_int = 21;
5082 pub const EINVAL : c_int = 22;
5083 pub const ENFILE : c_int = 23;
5084 pub const EMFILE : c_int = 24;
5085 pub const ENOTTY : c_int = 25;
5086 pub const ETXTBSY : c_int = 26;
5087 pub const EFBIG : c_int = 27;
5088 pub const ENOSPC : c_int = 28;
5089 pub const ESPIPE : c_int = 29;
5090 pub const EROFS : c_int = 30;
5091 pub const EMLINK : c_int = 31;
5092 pub const EPIPE : c_int = 32;
5093 pub const EDOM : c_int = 33;
5094 pub const ERANGE : c_int = 34;
5095 pub const EAGAIN : c_int = 35;
5096 pub const EWOULDBLOCK : c_int = 35;
5097 pub const EINPROGRESS : c_int = 36;
5098 pub const EALREADY : c_int = 37;
5099 pub const ENOTSOCK : c_int = 38;
5100 pub const EDESTADDRREQ : c_int = 39;
5101 pub const EMSGSIZE : c_int = 40;
5102 pub const EPROTOTYPE : c_int = 41;
5103 pub const ENOPROTOOPT : c_int = 42;
5104 pub const EPROTONOSUPPORT : c_int = 43;
5105 pub const ESOCKTNOSUPPORT : c_int = 44;
5106 pub const EOPNOTSUPP : c_int = 45;
5107 pub const EPFNOSUPPORT : c_int = 46;
5108 pub const EAFNOSUPPORT : c_int = 47;
5109 pub const EADDRINUSE : c_int = 48;
5110 pub const EADDRNOTAVAIL : c_int = 49;
5111 pub const ENETDOWN : c_int = 50;
5112 pub const ENETUNREACH : c_int = 51;
5113 pub const ENETRESET : c_int = 52;
5114 pub const ECONNABORTED : c_int = 53;
5115 pub const ECONNRESET : c_int = 54;
5116 pub const ENOBUFS : c_int = 55;
5117 pub const EISCONN : c_int = 56;
5118 pub const ENOTCONN : c_int = 57;
5119 pub const ESHUTDOWN : c_int = 58;
5120 pub const ETOOMANYREFS : c_int = 59;
5121 pub const ETIMEDOUT : c_int = 60;
5122 pub const ECONNREFUSED : c_int = 61;
5123 pub const ELOOP : c_int = 62;
5124 pub const ENAMETOOLONG : c_int = 63;
5125 pub const EHOSTDOWN : c_int = 64;
5126 pub const EHOSTUNREACH : c_int = 65;
5127 pub const ENOTEMPTY : c_int = 66;
5128 pub const EPROCLIM : c_int = 67;
5129 pub const EUSERS : c_int = 68;
5130 pub const EDQUOT : c_int = 69;
5131 pub const ESTALE : c_int = 70;
5132 pub const EREMOTE : c_int = 71;
5133 pub const EBADRPC : c_int = 72;
5134 pub const ERPCMISMATCH : c_int = 73;
5135 pub const EPROGUNAVAIL : c_int = 74;
5136 pub const EPROGMISMATCH : c_int = 75;
5137 pub const EPROCUNAVAIL : c_int = 76;
5138 pub const ENOLCK : c_int = 77;
5139 pub const ENOSYS : c_int = 78;
5140 pub const EFTYPE : c_int = 79;
5141 pub const EAUTH : c_int = 80;
5142 pub const ENEEDAUTH : c_int = 81;
5143 pub const ENOATTR : c_int = 93;
5144 pub const EILSEQ : c_int = 85;
5145 pub const EOVERFLOW : c_int = 84;
5146 pub const ECANCELED : c_int = 87;
5147 pub const EIDRM : c_int = 82;
5148 pub const ENOMSG : c_int = 83;
5149 pub const ENOTSUP : c_int = 86;
5150 pub const ELAST : c_int = 96;
5153 use types::os::arch::c95::{c_int, size_t};
5154 use types::os::common::posix01::rlim_t;
5156 pub const F_DUPFD : c_int = 0;
5157 pub const F_GETFD : c_int = 1;
5158 pub const F_SETFD : c_int = 2;
5159 pub const F_GETFL : c_int = 3;
5160 pub const F_SETFL : c_int = 4;
5161 pub const F_GETOWN : c_int = 5;
5162 pub const F_SETOWN : c_int = 6;
5163 pub const F_GETLK : c_int = 7;
5164 pub const F_SETLK : c_int = 8;
5165 pub const F_SETLKW : c_int = 9;
5167 pub const SIGTRAP : c_int = 5;
5168 pub const SIG_IGN : size_t = 1;
5170 pub const GLOB_APPEND : c_int = 1;
5171 pub const GLOB_DOOFFS : c_int = 2;
5172 pub const GLOB_ERR : c_int = 4;
5173 pub const GLOB_MARK : c_int = 8;
5174 pub const GLOB_NOCHECK : c_int = 16;
5175 pub const GLOB_NOSORT : c_int = 32;
5176 pub const GLOB_NOESCAPE : c_int = 4096;
5178 pub const GLOB_NOSPACE : c_int = -1;
5179 pub const GLOB_ABORTED : c_int = -2;
5180 pub const GLOB_NOMATCH : c_int = -3;
5181 pub const GLOB_NOSYS : c_int = -4;
5183 pub const POSIX_MADV_NORMAL : c_int = 0;
5184 pub const POSIX_MADV_RANDOM : c_int = 1;
5185 pub const POSIX_MADV_SEQUENTIAL : c_int = 2;
5186 pub const POSIX_MADV_WILLNEED : c_int = 3;
5187 pub const POSIX_MADV_DONTNEED : c_int = 4;
5189 pub const _SC_IOV_MAX : c_int = 32;
5190 pub const _SC_GETGR_R_SIZE_MAX : c_int = 47;
5191 pub const _SC_GETPW_R_SIZE_MAX : c_int = 48;
5192 pub const _SC_LOGIN_NAME_MAX : c_int = 37;
5193 pub const _SC_MQ_PRIO_MAX : c_int = 55;
5194 pub const _SC_THREAD_ATTR_STACKADDR : c_int = 61;
5195 pub const _SC_THREAD_ATTR_STACKSIZE : c_int = 62;
5196 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS : c_int = 57;
5197 pub const _SC_THREAD_KEYS_MAX : c_int = 58;
5198 pub const _SC_THREAD_PRIO_INHERIT : c_int = 64;
5199 pub const _SC_THREAD_PRIO_PROTECT : c_int = 65;
5200 pub const _SC_THREAD_PRIORITY_SCHEDULING : c_int = 63;
5201 pub const _SC_THREAD_PROCESS_SHARED : c_int = 66;
5202 pub const _SC_THREAD_SAFE_FUNCTIONS : c_int = 67;
5203 pub const _SC_THREAD_STACK_MIN : c_int = 59;
5204 pub const _SC_THREAD_THREADS_MAX : c_int = 60;
5205 pub const _SC_THREADS : c_int = 41;
5206 pub const _SC_TTY_NAME_MAX : c_int = 68;
5207 pub const _SC_ATEXIT_MAX : c_int = 40;
5208 pub const _SC_XOPEN_SHM : c_int = 30;
5210 pub const PTHREAD_CREATE_JOINABLE : c_int = 0;
5211 pub const PTHREAD_CREATE_DETACHED : c_int = 1;
5212 pub const PTHREAD_STACK_MIN : size_t = 2048;
5214 pub const CLOCK_REALTIME : c_int = 0;
5215 pub const CLOCK_MONOTONIC : c_int = 3;
5217 pub const RLIMIT_CPU : c_int = 0;
5218 pub const RLIMIT_FSIZE : c_int = 1;
5219 pub const RLIMIT_DATA : c_int = 2;
5220 pub const RLIMIT_STACK : c_int = 3;
5221 pub const RLIMIT_CORE : c_int = 4;
5222 pub const RLIMIT_RSS : c_int = 5;
5223 pub const RLIMIT_MEMLOCK : c_int = 6;
5224 pub const RLIMIT_NPROC : c_int = 7;
5225 pub const RLIMIT_NOFILE : c_int = 8;
5226 pub const RLIM_NLIMITS : c_int = 9;
5228 pub const RLIM_INFINITY : rlim_t = 0x7fff_ffff_ffff_ffff;
5229 pub const RLIM_SAVED_MAX : rlim_t = RLIM_INFINITY;
5230 pub const RLIM_SAVED_CUR : rlim_t = RLIM_INFINITY;
5232 pub const RUSAGE_SELF : c_int = 0;
5233 pub const RUSAGE_CHILDREN : c_int = -1;
5234 pub const RUSAGE_THREAD : c_int = 1;
5237 use types::os::arch::c95::c_int;
5238 pub const O_CLOEXEC: c_int = 0x400000;
5239 pub const F_DUPFD_CLOEXEC: c_int = 12;
5242 use types::os::arch::c95::c_int;
5244 pub const MADV_NORMAL : c_int = 0;
5245 pub const MADV_RANDOM : c_int = 1;
5246 pub const MADV_SEQUENTIAL : c_int = 2;
5247 pub const MADV_WILLNEED : c_int = 3;
5248 pub const MADV_DONTNEED : c_int = 4;
5249 pub const MADV_FREE : c_int = 6;
5251 pub const AF_UNIX : c_int = 1;
5252 pub const AF_INET : c_int = 2;
5253 pub const AF_INET6 : c_int = 24;
5254 pub const SOCK_STREAM : c_int = 1;
5255 pub const SOCK_DGRAM : c_int = 2;
5256 pub const SOCK_RAW : c_int = 3;
5257 pub const IPPROTO_TCP : c_int = 6;
5258 pub const IPPROTO_IP : c_int = 0;
5259 pub const IPPROTO_IPV6 : c_int = 41;
5260 pub const IP_MULTICAST_TTL : c_int = 10;
5261 pub const IP_MULTICAST_LOOP : c_int = 11;
5262 pub const IP_TTL : c_int = 4;
5263 pub const IP_HDRINCL : c_int = 2;
5264 pub const IP_ADD_MEMBERSHIP : c_int = 12;
5265 pub const IP_DROP_MEMBERSHIP : c_int = 13;
5267 pub const TCP_NODELAY : c_int = 1;
5268 pub const SOL_SOCKET : c_int = 65535;
5269 pub const SO_DEBUG : c_int = 1;
5270 pub const SO_ACCEPTCONN : c_int = 2;
5271 pub const SO_REUSEADDR : c_int = 4;
5272 pub const SO_KEEPALIVE : c_int = 8;
5273 pub const SO_DONTROUTE : c_int = 16;
5274 pub const SO_BROADCAST : c_int = 32;
5275 pub const SO_USELOOPBACK : c_int = 64;
5276 pub const SO_LINGER : c_int = 128;
5277 pub const SO_OOBINLINE : c_int = 256;
5278 pub const SO_REUSEPORT : c_int = 512;
5279 pub const SO_SNDBUF : c_int = 4097;
5280 pub const SO_RCVBUF : c_int = 4098;
5281 pub const SO_SNDLOWAT : c_int = 4099;
5282 pub const SO_RCVLOWAT : c_int = 4100;
5283 pub const SO_SNDTIMEO : c_int = 4107;
5284 pub const SO_RCVTIMEO : c_int = 4108;
5285 pub const SO_ERROR : c_int = 4103;
5286 pub const SO_TYPE : c_int = 4104;
5288 pub const IFF_LOOPBACK : c_int = 0x8;
5290 pub const SHUT_RD : c_int = 0;
5291 pub const SHUT_WR : c_int = 1;
5292 pub const SHUT_RDWR : c_int = 2;
5294 pub const LOCK_SH : c_int = 1;
5295 pub const LOCK_EX : c_int = 2;
5296 pub const LOCK_NB : c_int = 4;
5297 pub const LOCK_UN : c_int = 8;
5300 use types::os::arch::c95::c_int;
5303 pub const MAP_RENAME : c_int = 32;
5304 pub const MAP_NORESERVE : c_int = 64;
5305 pub const MAP_HASSEMAPHORE : c_int = 512;
5307 pub const IPPROTO_RAW : c_int = 255;
5309 pub const PATH_MAX : c_int = 1024;
5312 use types::os::arch::c95::c_int;
5314 pub const _SC_ARG_MAX : c_int = 1;
5315 pub const _SC_CHILD_MAX : c_int = 2;
5316 pub const _SC_CLK_TCK : c_int = 39;
5317 pub const _SC_NGROUPS_MAX : c_int = 4;
5318 pub const _SC_OPEN_MAX : c_int = 5;
5319 pub const _SC_JOB_CONTROL : c_int = 6;
5320 pub const _SC_SAVED_IDS : c_int = 7;
5321 pub const _SC_VERSION : c_int = 8;
5322 pub const _SC_BC_BASE_MAX : c_int = 9;
5323 pub const _SC_BC_DIM_MAX : c_int = 10;
5324 pub const _SC_BC_SCALE_MAX : c_int = 11;
5325 pub const _SC_BC_STRING_MAX : c_int = 12;
5326 pub const _SC_COLL_WEIGHTS_MAX : c_int = 13;
5327 pub const _SC_EXPR_NEST_MAX : c_int = 14;
5328 pub const _SC_LINE_MAX : c_int = 15;
5329 pub const _SC_RE_DUP_MAX : c_int = 16;
5330 pub const _SC_2_VERSION : c_int = 17;
5331 pub const _SC_2_C_BIND : c_int = 18;
5332 pub const _SC_2_C_DEV : c_int = 19;
5333 pub const _SC_2_CHAR_TERM : c_int = 20;
5334 pub const _SC_2_FORT_DEV : c_int = 21;
5335 pub const _SC_2_FORT_RUN : c_int = 22;
5336 pub const _SC_2_LOCALEDEF : c_int = 23;
5337 pub const _SC_2_SW_DEV : c_int = 24;
5338 pub const _SC_2_UPE : c_int = 25;
5339 pub const _SC_STREAM_MAX : c_int = 26;
5340 pub const _SC_TZNAME_MAX : c_int = 27;
5341 pub const _SC_PAGESIZE : c_int = 28;
5342 pub const _SC_FSYNC : c_int = 29;
5343 pub const _SC_AIO_LISTIO_MAX : c_int = 51;
5344 pub const _SC_AIO_MAX : c_int = 52;
5345 pub const _SC_ASYNCHRONOUS_IO : c_int = 50;
5346 pub const _SC_MAPPED_FILES : c_int = 33;
5347 pub const _SC_MEMLOCK : c_int = 34;
5348 pub const _SC_MEMLOCK_RANGE : c_int = 35;
5349 pub const _SC_MEMORY_PROTECTION : c_int = 36;
5350 pub const _SC_MESSAGE_PASSING : c_int = 53;
5351 pub const _SC_MQ_OPEN_MAX : c_int = 54;
5352 pub const _SC_PRIORITY_SCHEDULING : c_int = 56;
5353 pub const _SC_SEMAPHORES : c_int = 42;
5354 pub const _SC_SHARED_MEMORY_OBJECTS : c_int = 87;
5355 pub const _SC_SYNCHRONIZED_IO : c_int = 31;
5356 pub const _SC_TIMERS : c_int = 44;
5358 pub const _PC_NAME_MAX : c_int = 4;
5359 pub const _PC_PATH_MAX : c_int = 5;
5363 #[cfg(any(target_os = "macos", target_os = "ios"))]
5366 use types::os::arch::c95::{c_int, c_uint};
5368 pub const EXIT_FAILURE : c_int = 1;
5369 pub const EXIT_SUCCESS : c_int = 0;
5370 pub const RAND_MAX : c_int = 2147483647;
5371 pub const EOF : c_int = -1;
5372 pub const SEEK_SET : c_int = 0;
5373 pub const SEEK_CUR : c_int = 1;
5374 pub const SEEK_END : c_int = 2;
5375 pub const _IOFBF : c_int = 0;
5376 pub const _IONBF : c_int = 2;
5377 pub const _IOLBF : c_int = 1;
5378 pub const BUFSIZ : c_uint = 1024;
5379 pub const FOPEN_MAX : c_uint = 20;
5380 pub const FILENAME_MAX : c_uint = 1024;
5381 pub const L_tmpnam : c_uint = 1024;
5382 pub const TMP_MAX : c_uint = 308915776;
5387 use types::common::c95::c_void;
5388 use types::os::arch::c95::c_int;
5389 use types::os::arch::posix88::mode_t;
5391 pub const O_RDONLY : c_int = 0;
5392 pub const O_WRONLY : c_int = 1;
5393 pub const O_RDWR : c_int = 2;
5394 pub const O_APPEND : c_int = 8;
5395 pub const O_CREAT : c_int = 512;
5396 pub const O_EXCL : c_int = 2048;
5397 pub const O_NOCTTY : c_int = 131072;
5398 pub const O_TRUNC : c_int = 1024;
5399 pub const S_IFIFO : mode_t = 4096;
5400 pub const S_IFCHR : mode_t = 8192;
5401 pub const S_IFBLK : mode_t = 24576;
5402 pub const S_IFDIR : mode_t = 16384;
5403 pub const S_IFREG : mode_t = 32768;
5404 pub const S_IFLNK : mode_t = 40960;
5405 pub const S_IFSOCK : mode_t = 49152;
5406 pub const S_IFMT : mode_t = 61440;
5407 pub const S_IEXEC : mode_t = 64;
5408 pub const S_IWRITE : mode_t = 128;
5409 pub const S_IREAD : mode_t = 256;
5410 pub const S_IRWXU : mode_t = 448;
5411 pub const S_IXUSR : mode_t = 64;
5412 pub const S_IWUSR : mode_t = 128;
5413 pub const S_IRUSR : mode_t = 256;
5414 pub const S_IRWXG : mode_t = 56;
5415 pub const S_IXGRP : mode_t = 8;
5416 pub const S_IWGRP : mode_t = 16;
5417 pub const S_IRGRP : mode_t = 32;
5418 pub const S_IRWXO : mode_t = 7;
5419 pub const S_IXOTH : mode_t = 1;
5420 pub const S_IWOTH : mode_t = 2;
5421 pub const S_IROTH : mode_t = 4;
5422 pub const F_OK : c_int = 0;
5423 pub const R_OK : c_int = 4;
5424 pub const W_OK : c_int = 2;
5425 pub const X_OK : c_int = 1;
5426 pub const STDIN_FILENO : c_int = 0;
5427 pub const STDOUT_FILENO : c_int = 1;
5428 pub const STDERR_FILENO : c_int = 2;
5429 pub const F_LOCK : c_int = 1;
5430 pub const F_TEST : c_int = 3;
5431 pub const F_TLOCK : c_int = 2;
5432 pub const F_ULOCK : c_int = 0;
5433 pub const SIGHUP : c_int = 1;
5434 pub const SIGINT : c_int = 2;
5435 pub const SIGQUIT : c_int = 3;
5436 pub const SIGILL : c_int = 4;
5437 pub const SIGABRT : c_int = 6;
5438 pub const SIGFPE : c_int = 8;
5439 pub const SIGKILL : c_int = 9;
5440 pub const SIGSEGV : c_int = 11;
5441 pub const SIGPIPE : c_int = 13;
5442 pub const SIGALRM : c_int = 14;
5443 pub const SIGTERM : c_int = 15;
5445 pub const PROT_NONE : c_int = 0;
5446 pub const PROT_READ : c_int = 1;
5447 pub const PROT_WRITE : c_int = 2;
5448 pub const PROT_EXEC : c_int = 4;
5450 pub const MAP_FILE : c_int = 0x0000;
5451 pub const MAP_SHARED : c_int = 0x0001;
5452 pub const MAP_PRIVATE : c_int = 0x0002;
5453 pub const MAP_FIXED : c_int = 0x0010;
5454 pub const MAP_ANON : c_int = 0x1000;
5456 pub const MAP_FAILED : *mut c_void = !0 as *mut c_void;
5458 pub const MCL_CURRENT : c_int = 0x0001;
5459 pub const MCL_FUTURE : c_int = 0x0002;
5461 pub const MS_ASYNC : c_int = 0x0001;
5462 pub const MS_INVALIDATE : c_int = 0x0002;
5463 pub const MS_SYNC : c_int = 0x0010;
5465 pub const MS_KILLPAGES : c_int = 0x0004;
5466 pub const MS_DEACTIVATE : c_int = 0x0008;
5468 pub const EPERM : c_int = 1;
5469 pub const ENOENT : c_int = 2;
5470 pub const ESRCH : c_int = 3;
5471 pub const EINTR : c_int = 4;
5472 pub const EIO : c_int = 5;
5473 pub const ENXIO : c_int = 6;
5474 pub const E2BIG : c_int = 7;
5475 pub const ENOEXEC : c_int = 8;
5476 pub const EBADF : c_int = 9;
5477 pub const ECHILD : c_int = 10;
5478 pub const EDEADLK : c_int = 11;
5479 pub const ENOMEM : c_int = 12;
5480 pub const EACCES : c_int = 13;
5481 pub const EFAULT : c_int = 14;
5482 pub const ENOTBLK : c_int = 15;
5483 pub const EBUSY : c_int = 16;
5484 pub const EEXIST : c_int = 17;
5485 pub const EXDEV : c_int = 18;
5486 pub const ENODEV : c_int = 19;
5487 pub const ENOTDIR : c_int = 20;
5488 pub const EISDIR : c_int = 21;
5489 pub const EINVAL : c_int = 22;
5490 pub const ENFILE : c_int = 23;
5491 pub const EMFILE : c_int = 24;
5492 pub const ENOTTY : c_int = 25;
5493 pub const ETXTBSY : c_int = 26;
5494 pub const EFBIG : c_int = 27;
5495 pub const ENOSPC : c_int = 28;
5496 pub const ESPIPE : c_int = 29;
5497 pub const EROFS : c_int = 30;
5498 pub const EMLINK : c_int = 31;
5499 pub const EPIPE : c_int = 32;
5500 pub const EDOM : c_int = 33;
5501 pub const ERANGE : c_int = 34;
5502 pub const EAGAIN : c_int = 35;
5503 pub const EWOULDBLOCK : c_int = EAGAIN;
5504 pub const EINPROGRESS : c_int = 36;
5505 pub const EALREADY : c_int = 37;
5506 pub const ENOTSOCK : c_int = 38;
5507 pub const EDESTADDRREQ : c_int = 39;
5508 pub const EMSGSIZE : c_int = 40;
5509 pub const EPROTOTYPE : c_int = 41;
5510 pub const ENOPROTOOPT : c_int = 42;
5511 pub const EPROTONOSUPPORT : c_int = 43;
5512 pub const ESOCKTNOSUPPORT : c_int = 44;
5513 pub const ENOTSUP : c_int = 45;
5514 pub const EPFNOSUPPORT : c_int = 46;
5515 pub const EAFNOSUPPORT : c_int = 47;
5516 pub const EADDRINUSE : c_int = 48;
5517 pub const EADDRNOTAVAIL : c_int = 49;
5518 pub const ENETDOWN : c_int = 50;
5519 pub const ENETUNREACH : c_int = 51;
5520 pub const ENETRESET : c_int = 52;
5521 pub const ECONNABORTED : c_int = 53;
5522 pub const ECONNRESET : c_int = 54;
5523 pub const ENOBUFS : c_int = 55;
5524 pub const EISCONN : c_int = 56;
5525 pub const ENOTCONN : c_int = 57;
5526 pub const ESHUTDOWN : c_int = 58;
5527 pub const ETOOMANYREFS : c_int = 59;
5528 pub const ETIMEDOUT : c_int = 60;
5529 pub const ECONNREFUSED : c_int = 61;
5530 pub const ELOOP : c_int = 62;
5531 pub const ENAMETOOLONG : c_int = 63;
5532 pub const EHOSTDOWN : c_int = 64;
5533 pub const EHOSTUNREACH : c_int = 65;
5534 pub const ENOTEMPTY : c_int = 66;
5535 pub const EPROCLIM : c_int = 67;
5536 pub const EUSERS : c_int = 68;
5537 pub const EDQUOT : c_int = 69;
5538 pub const ESTALE : c_int = 70;
5539 pub const EREMOTE : c_int = 71;
5540 pub const EBADRPC : c_int = 72;
5541 pub const ERPCMISMATCH : c_int = 73;
5542 pub const EPROGUNAVAIL : c_int = 74;
5543 pub const EPROGMISMATCH : c_int = 75;
5544 pub const EPROCUNAVAIL : c_int = 76;
5545 pub const ENOLCK : c_int = 77;
5546 pub const ENOSYS : c_int = 78;
5547 pub const EFTYPE : c_int = 79;
5548 pub const EAUTH : c_int = 80;
5549 pub const ENEEDAUTH : c_int = 81;
5550 pub const EPWROFF : c_int = 82;
5551 pub const EDEVERR : c_int = 83;
5552 pub const EOVERFLOW : c_int = 84;
5553 pub const EBADEXEC : c_int = 85;
5554 pub const EBADARCH : c_int = 86;
5555 pub const ESHLIBVERS : c_int = 87;
5556 pub const EBADMACHO : c_int = 88;
5557 pub const ECANCELED : c_int = 89;
5558 pub const EIDRM : c_int = 90;
5559 pub const ENOMSG : c_int = 91;
5560 pub const EILSEQ : c_int = 92;
5561 pub const ENOATTR : c_int = 93;
5562 pub const EBADMSG : c_int = 94;
5563 pub const EMULTIHOP : c_int = 95;
5564 pub const ENODATA : c_int = 96;
5565 pub const ENOLINK : c_int = 97;
5566 pub const ENOSR : c_int = 98;
5567 pub const ENOSTR : c_int = 99;
5568 pub const EPROTO : c_int = 100;
5569 pub const ETIME : c_int = 101;
5570 pub const EOPNOTSUPP : c_int = 102;
5571 pub const ENOPOLICY : c_int = 103;
5572 pub const ENOTRECOVERABLE : c_int = 104;
5573 pub const EOWNERDEAD : c_int = 105;
5574 pub const EQFULL : c_int = 106;
5575 pub const ELAST : c_int = 106;
5578 use types::os::arch::c95::{c_int, size_t};
5579 use types::os::common::posix01::rlim_t;
5581 pub const F_DUPFD : c_int = 0;
5582 pub const F_GETFD : c_int = 1;
5583 pub const F_SETFD : c_int = 2;
5584 pub const F_GETFL : c_int = 3;
5585 pub const F_SETFL : c_int = 4;
5587 pub const O_ACCMODE : c_int = 3;
5589 pub const SIGTRAP : c_int = 5;
5590 pub const SIG_IGN: size_t = 1;
5592 pub const GLOB_APPEND : c_int = 0x0001;
5593 pub const GLOB_DOOFFS : c_int = 0x0002;
5594 pub const GLOB_ERR : c_int = 0x0004;
5595 pub const GLOB_MARK : c_int = 0x0008;
5596 pub const GLOB_NOCHECK : c_int = 0x0010;
5597 pub const GLOB_NOSORT : c_int = 0x0020;
5598 pub const GLOB_NOESCAPE : c_int = 0x2000;
5600 pub const GLOB_NOSPACE : c_int = -1;
5601 pub const GLOB_ABORTED : c_int = -2;
5602 pub const GLOB_NOMATCH : c_int = -3;
5604 pub const POSIX_MADV_NORMAL : c_int = 0;
5605 pub const POSIX_MADV_RANDOM : c_int = 1;
5606 pub const POSIX_MADV_SEQUENTIAL : c_int = 2;
5607 pub const POSIX_MADV_WILLNEED : c_int = 3;
5608 pub const POSIX_MADV_DONTNEED : c_int = 4;
5610 pub const _SC_IOV_MAX : c_int = 56;
5611 pub const _SC_GETGR_R_SIZE_MAX : c_int = 70;
5612 pub const _SC_GETPW_R_SIZE_MAX : c_int = 71;
5613 pub const _SC_LOGIN_NAME_MAX : c_int = 73;
5614 pub const _SC_MQ_PRIO_MAX : c_int = 75;
5615 pub const _SC_THREAD_ATTR_STACKADDR : c_int = 82;
5616 pub const _SC_THREAD_ATTR_STACKSIZE : c_int = 83;
5617 pub const _SC_THREAD_DESTRUCTOR_ITERATIONS : c_int = 85;
5618 pub const _SC_THREAD_KEYS_MAX : c_int = 86;
5619 pub const _SC_THREAD_PRIO_INHERIT : c_int = 87;
5620 pub const _SC_THREAD_PRIO_PROTECT : c_int = 88;
5621 pub const _SC_THREAD_PRIORITY_SCHEDULING : c_int = 89;
5622 pub const _SC_THREAD_PROCESS_SHARED : c_int = 90;
5623 pub const _SC_THREAD_SAFE_FUNCTIONS : c_int = 91;
5624 pub const _SC_THREAD_STACK_MIN : c_int = 93;
5625 pub const _SC_THREAD_THREADS_MAX : c_int = 94;
5626 pub const _SC_THREADS : c_int = 96;
5627 pub const _SC_TTY_NAME_MAX : c_int = 101;
5628 pub const _SC_ATEXIT_MAX : c_int = 107;
5629 pub const _SC_XOPEN_CRYPT : c_int = 108;
5630 pub const _SC_XOPEN_ENH_I18N : c_int = 109;
5631 pub const _SC_XOPEN_LEGACY : c_int = 110;
5632 pub const _SC_XOPEN_REALTIME : c_int = 111;
5633 pub const _SC_XOPEN_REALTIME_THREADS : c_int = 112;
5634 pub const _SC_XOPEN_SHM : c_int = 113;
5635 pub const _SC_XOPEN_UNIX : c_int = 115;
5636 pub const _SC_XOPEN_VERSION : c_int = 116;
5637 pub const _SC_XOPEN_XCU_VERSION : c_int = 121;
5639 pub const PTHREAD_CREATE_JOINABLE: c_int = 1;
5640 pub const PTHREAD_CREATE_DETACHED: c_int = 2;
5641 pub const PTHREAD_STACK_MIN: size_t = 8192;
5643 pub const RLIMIT_CPU: c_int = 0;
5644 pub const RLIMIT_FSIZE: c_int = 1;
5645 pub const RLIMIT_DATA: c_int = 2;
5646 pub const RLIMIT_STACK: c_int = 3;
5647 pub const RLIMIT_CORE: c_int = 4;
5648 pub const RLIMIT_AS: c_int = 5;
5649 pub const RLIMIT_MEMLOCK: c_int = 6;
5650 pub const RLIMIT_NPROC: c_int = 7;
5651 pub const RLIMIT_NOFILE: c_int = 8;
5652 pub const RLIM_NLIMITS: c_int = 9;
5653 pub const _RLIMIT_POSIX_FLAG: c_int = 0x1000;
5655 pub const RLIM_INFINITY: rlim_t = 0xffff_ffff_ffff_ffff;
5657 pub const RUSAGE_SELF: c_int = 0;
5658 pub const RUSAGE_CHILDREN: c_int = -1;
5659 pub const RUSAGE_THREAD: c_int = 1;
5662 use types::os::arch::c95::c_int;
5663 pub const O_CLOEXEC: c_int = 0x1000000;
5664 pub const F_DUPFD_CLOEXEC: c_int = 67;
5667 use types::os::arch::c95::c_int;
5669 pub const MADV_NORMAL : c_int = 0;
5670 pub const MADV_RANDOM : c_int = 1;
5671 pub const MADV_SEQUENTIAL : c_int = 2;
5672 pub const MADV_WILLNEED : c_int = 3;
5673 pub const MADV_DONTNEED : c_int = 4;
5674 pub const MADV_FREE : c_int = 5;
5675 pub const MADV_ZERO_WIRED_PAGES : c_int = 6;
5676 pub const MADV_FREE_REUSABLE : c_int = 7;
5677 pub const MADV_FREE_REUSE : c_int = 8;
5678 pub const MADV_CAN_REUSE : c_int = 9;
5680 pub const MINCORE_INCORE : c_int = 0x1;
5681 pub const MINCORE_REFERENCED : c_int = 0x2;
5682 pub const MINCORE_MODIFIED : c_int = 0x4;
5683 pub const MINCORE_REFERENCED_OTHER : c_int = 0x8;
5684 pub const MINCORE_MODIFIED_OTHER : c_int = 0x10;
5686 pub const AF_UNIX: c_int = 1;
5687 pub const AF_INET: c_int = 2;
5688 pub const AF_INET6: c_int = 30;
5689 pub const SOCK_STREAM: c_int = 1;
5690 pub const SOCK_DGRAM: c_int = 2;
5691 pub const SOCK_RAW: c_int = 3;
5692 pub const IPPROTO_TCP: c_int = 6;
5693 pub const IPPROTO_IP: c_int = 0;
5694 pub const IPPROTO_IPV6: c_int = 41;
5695 pub const IP_MULTICAST_TTL: c_int = 10;
5696 pub const IP_MULTICAST_LOOP: c_int = 11;
5697 pub const IP_TTL: c_int = 4;
5698 pub const IP_HDRINCL: c_int = 2;
5699 pub const IP_ADD_MEMBERSHIP: c_int = 12;
5700 pub const IP_DROP_MEMBERSHIP: c_int = 13;
5701 pub const IPV6_ADD_MEMBERSHIP: c_int = 12;
5702 pub const IPV6_DROP_MEMBERSHIP: c_int = 13;
5704 pub const TCP_NODELAY: c_int = 0x01;
5705 pub const TCP_KEEPALIVE: c_int = 0x10;
5706 pub const SOL_SOCKET: c_int = 0xffff;
5708 pub const SO_DEBUG: c_int = 0x01;
5709 pub const SO_ACCEPTCONN: c_int = 0x0002;
5710 pub const SO_REUSEADDR: c_int = 0x0004;
5711 pub const SO_KEEPALIVE: c_int = 0x0008;
5712 pub const SO_DONTROUTE: c_int = 0x0010;
5713 pub const SO_BROADCAST: c_int = 0x0020;
5714 pub const SO_USELOOPBACK: c_int = 0x0040;
5715 pub const SO_LINGER: c_int = 0x0080;
5716 pub const SO_OOBINLINE: c_int = 0x0100;
5717 pub const SO_REUSEPORT: c_int = 0x0200;
5718 pub const SO_SNDBUF: c_int = 0x1001;
5719 pub const SO_RCVBUF: c_int = 0x1002;
5720 pub const SO_SNDLOWAT: c_int = 0x1003;
5721 pub const SO_RCVLOWAT: c_int = 0x1004;
5722 pub const SO_SNDTIMEO: c_int = 0x1005;
5723 pub const SO_RCVTIMEO: c_int = 0x1006;
5724 pub const SO_ERROR: c_int = 0x1007;
5725 pub const SO_TYPE: c_int = 0x1008;
5727 pub const IFF_LOOPBACK: c_int = 0x8;
5729 pub const SHUT_RD: c_int = 0;
5730 pub const SHUT_WR: c_int = 1;
5731 pub const SHUT_RDWR: c_int = 2;
5733 pub const LOCK_SH: c_int = 1;
5734 pub const LOCK_EX: c_int = 2;
5735 pub const LOCK_NB: c_int = 4;
5736 pub const LOCK_UN: c_int = 8;
5739 use types::os::arch::c95::c_int;
5741 pub const O_DSYNC : c_int = 4194304;
5742 pub const O_SYNC : c_int = 128;
5743 pub const O_NONBLOCK : c_int = 4;
5744 pub const F_GETPATH : c_int = 50;
5745 pub const F_FULLFSYNC : c_int = 51;
5747 pub const MAP_COPY : c_int = 0x0002;
5748 pub const MAP_RENAME : c_int = 0x0020;
5749 pub const MAP_NORESERVE : c_int = 0x0040;
5750 pub const MAP_NOEXTEND : c_int = 0x0100;
5751 pub const MAP_HASSEMAPHORE : c_int = 0x0200;
5752 pub const MAP_NOCACHE : c_int = 0x0400;
5753 pub const MAP_JIT : c_int = 0x0800;
5754 pub const MAP_STACK : c_int = 0;
5756 pub const IPPROTO_RAW : c_int = 255;
5758 pub const SO_NREAD: c_int = 0x1020;
5759 pub const SO_NKE: c_int = 0x1021;
5760 pub const SO_NOSIGPIPE: c_int = 0x1022;
5761 pub const SO_NOADDRERR: c_int = 0x1023;
5762 pub const SO_NWRITE: c_int = 0x1024;
5763 pub const SO_DONTTRUNC: c_int = 0x2000;
5764 pub const SO_WANTMORE: c_int = 0x4000;
5765 pub const SO_WANTOOBFLAG: c_int = 0x8000;
5767 pub const PATH_MAX: c_int = 1024;
5770 use types::os::arch::c95::c_int;
5772 pub const _SC_ARG_MAX : c_int = 1;
5773 pub const _SC_CHILD_MAX : c_int = 2;
5774 pub const _SC_CLK_TCK : c_int = 3;
5775 pub const _SC_NGROUPS_MAX : c_int = 4;
5776 pub const _SC_OPEN_MAX : c_int = 5;
5777 pub const _SC_JOB_CONTROL : c_int = 6;
5778 pub const _SC_SAVED_IDS : c_int = 7;
5779 pub const _SC_VERSION : c_int = 8;
5780 pub const _SC_BC_BASE_MAX : c_int = 9;
5781 pub const _SC_BC_DIM_MAX : c_int = 10;
5782 pub const _SC_BC_SCALE_MAX : c_int = 11;
5783 pub const _SC_BC_STRING_MAX : c_int = 12;
5784 pub const _SC_COLL_WEIGHTS_MAX : c_int = 13;
5785 pub const _SC_EXPR_NEST_MAX : c_int = 14;
5786 pub const _SC_LINE_MAX : c_int = 15;
5787 pub const _SC_RE_DUP_MAX : c_int = 16;
5788 pub const _SC_2_VERSION : c_int = 17;
5789 pub const _SC_2_C_BIND : c_int = 18;
5790 pub const _SC_2_C_DEV : c_int = 19;
5791 pub const _SC_2_CHAR_TERM : c_int = 20;
5792 pub const _SC_2_FORT_DEV : c_int = 21;
5793 pub const _SC_2_FORT_RUN : c_int = 22;
5794 pub const _SC_2_LOCALEDEF : c_int = 23;
5795 pub const _SC_2_SW_DEV : c_int = 24;
5796 pub const _SC_2_UPE : c_int = 25;
5797 pub const _SC_STREAM_MAX : c_int = 26;
5798 pub const _SC_TZNAME_MAX : c_int = 27;
5799 pub const _SC_ASYNCHRONOUS_IO : c_int = 28;
5800 pub const _SC_PAGESIZE : c_int = 29;
5801 pub const _SC_MEMLOCK : c_int = 30;
5802 pub const _SC_MEMLOCK_RANGE : c_int = 31;
5803 pub const _SC_MEMORY_PROTECTION : c_int = 32;
5804 pub const _SC_MESSAGE_PASSING : c_int = 33;
5805 pub const _SC_PRIORITIZED_IO : c_int = 34;
5806 pub const _SC_PRIORITY_SCHEDULING : c_int = 35;
5807 pub const _SC_REALTIME_SIGNALS : c_int = 36;
5808 pub const _SC_SEMAPHORES : c_int = 37;
5809 pub const _SC_FSYNC : c_int = 38;
5810 pub const _SC_SHARED_MEMORY_OBJECTS : c_int = 39;
5811 pub const _SC_SYNCHRONIZED_IO : c_int = 40;
5812 pub const _SC_TIMERS : c_int = 41;
5813 pub const _SC_AIO_LISTIO_MAX : c_int = 42;
5814 pub const _SC_AIO_MAX : c_int = 43;
5815 pub const _SC_AIO_PRIO_DELTA_MAX : c_int = 44;
5816 pub const _SC_DELAYTIMER_MAX : c_int = 45;
5817 pub const _SC_MQ_OPEN_MAX : c_int = 46;
5818 pub const _SC_MAPPED_FILES : c_int = 47;
5819 pub const _SC_RTSIG_MAX : c_int = 48;
5820 pub const _SC_SEM_NSEMS_MAX : c_int = 49;
5821 pub const _SC_SEM_VALUE_MAX : c_int = 50;
5822 pub const _SC_SIGQUEUE_MAX : c_int = 51;
5823 pub const _SC_TIMER_MAX : c_int = 52;
5824 pub const _SC_NPROCESSORS_CONF : c_int = 57;
5825 pub const _SC_NPROCESSORS_ONLN : c_int = 58;
5826 pub const _SC_2_PBS : c_int = 59;
5827 pub const _SC_2_PBS_ACCOUNTING : c_int = 60;
5828 pub const _SC_2_PBS_CHECKPOINT : c_int = 61;
5829 pub const _SC_2_PBS_LOCATE : c_int = 62;
5830 pub const _SC_2_PBS_MESSAGE : c_int = 63;
5831 pub const _SC_2_PBS_TRACK : c_int = 64;
5832 pub const _SC_ADVISORY_INFO : c_int = 65;
5833 pub const _SC_BARRIERS : c_int = 66;
5834 pub const _SC_CLOCK_SELECTION : c_int = 67;
5835 pub const _SC_CPUTIME : c_int = 68;
5836 pub const _SC_FILE_LOCKING : c_int = 69;
5837 pub const _SC_HOST_NAME_MAX : c_int = 72;
5838 pub const _SC_MONOTONIC_CLOCK : c_int = 74;
5839 pub const _SC_READER_WRITER_LOCKS : c_int = 76;
5840 pub const _SC_REGEXP : c_int = 77;
5841 pub const _SC_SHELL : c_int = 78;
5842 pub const _SC_SPAWN : c_int = 79;
5843 pub const _SC_SPIN_LOCKS : c_int = 80;
5844 pub const _SC_SPORADIC_SERVER : c_int = 81;
5845 pub const _SC_THREAD_CPUTIME : c_int = 84;
5846 pub const _SC_THREAD_SPORADIC_SERVER : c_int = 92;
5847 pub const _SC_TIMEOUTS : c_int = 95;
5848 pub const _SC_TRACE : c_int = 97;
5849 pub const _SC_TRACE_EVENT_FILTER : c_int = 98;
5850 pub const _SC_TRACE_INHERIT : c_int = 99;
5851 pub const _SC_TRACE_LOG : c_int = 100;
5852 pub const _SC_TYPED_MEMORY_OBJECTS : c_int = 102;
5853 pub const _SC_V6_ILP32_OFF32 : c_int = 103;
5854 pub const _SC_V6_ILP32_OFFBIG : c_int = 104;
5855 pub const _SC_V6_LP64_OFF64 : c_int = 105;
5856 pub const _SC_V6_LPBIG_OFFBIG : c_int = 106;
5857 pub const _SC_IPV6 : c_int = 118;
5858 pub const _SC_RAW_SOCKETS : c_int = 119;
5859 pub const _SC_SYMLOOP_MAX : c_int = 120;
5860 pub const _SC_PAGE_SIZE : c_int = _SC_PAGESIZE;
5861 pub const _SC_XOPEN_STREAMS : c_int = 114;
5862 pub const _SC_XBS5_ILP32_OFF32 : c_int = 122;
5863 pub const _SC_XBS5_ILP32_OFFBIG : c_int = 123;
5864 pub const _SC_XBS5_LP64_OFF64 : c_int = 124;
5865 pub const _SC_XBS5_LPBIG_OFFBIG : c_int = 125;
5866 pub const _SC_SS_REPL_MAX : c_int = 126;
5867 pub const _SC_TRACE_EVENT_NAME_MAX : c_int = 127;
5868 pub const _SC_TRACE_NAME_MAX : c_int = 128;
5869 pub const _SC_TRACE_SYS_MAX : c_int = 129;
5870 pub const _SC_TRACE_USER_EVENT_MAX : c_int = 130;
5871 pub const _SC_PASS_MAX : c_int = 131;
5873 pub const _PC_NAME_MAX: c_int = 4;
5874 pub const _PC_PATH_MAX: c_int = 5;
5881 // Thankfully most of c95 is universally available and does not vary by OS
5882 // or anything. The same is not true of POSIX.
5886 use types::os::arch::c95::{c_char, c_int};
5889 pub fn isalnum(c: c_int) -> c_int;
5890 pub fn isalpha(c: c_int) -> c_int;
5891 pub fn iscntrl(c: c_int) -> c_int;
5892 pub fn isdigit(c: c_int) -> c_int;
5893 pub fn isgraph(c: c_int) -> c_int;
5894 pub fn islower(c: c_int) -> c_int;
5895 pub fn isprint(c: c_int) -> c_int;
5896 pub fn ispunct(c: c_int) -> c_int;
5897 pub fn isspace(c: c_int) -> c_int;
5898 pub fn isupper(c: c_int) -> c_int;
5899 pub fn isxdigit(c: c_int) -> c_int;
5900 pub fn tolower(c: c_char) -> c_char;
5901 pub fn toupper(c: c_char) -> c_char;
5906 use types::common::c95::{FILE, c_void, fpos_t};
5907 use types::os::arch::c95::{c_char, c_int, c_long, size_t};
5910 pub fn fopen(filename: *const c_char,
5911 mode: *const c_char) -> *mut FILE;
5912 pub fn freopen(filename: *const c_char, mode: *const c_char,
5915 pub fn fflush(file: *mut FILE) -> c_int;
5916 pub fn fclose(file: *mut FILE) -> c_int;
5917 pub fn remove(filename: *const c_char) -> c_int;
5918 pub fn rename(oldname: *const c_char,
5919 newname: *const c_char) -> c_int;
5920 pub fn tmpfile() -> *mut FILE;
5921 pub fn setvbuf(stream: *mut FILE,
5922 buffer: *mut c_char,
5926 pub fn setbuf(stream: *mut FILE, buf: *mut c_char);
5927 // Omitted: printf and scanf variants.
5928 pub fn fgetc(stream: *mut FILE) -> c_int;
5929 pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE)
5931 pub fn fputc(c: c_int, stream: *mut FILE) -> c_int;
5932 pub fn fputs(s: *const c_char, stream: *mut FILE)-> c_int;
5933 // Omitted: getc, getchar (might be macros).
5935 // Omitted: gets, so ridiculously unsafe that it should not
5938 // Omitted: putc, putchar (might be macros).
5939 pub fn puts(s: *const c_char) -> c_int;
5940 pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int;
5941 pub fn fread(ptr: *mut c_void,
5946 pub fn fwrite(ptr: *const c_void,
5951 pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int)
5953 pub fn ftell(stream: *mut FILE) -> c_long;
5954 pub fn rewind(stream: *mut FILE);
5955 pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int;
5956 pub fn fsetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int;
5957 pub fn feof(stream: *mut FILE) -> c_int;
5958 pub fn ferror(stream: *mut FILE) -> c_int;
5959 pub fn perror(s: *const c_char);
5964 use types::common::c95::c_void;
5965 use types::os::arch::c95::{c_char, c_double, c_int};
5966 use types::os::arch::c95::{c_long, c_uint, c_ulong};
5967 use types::os::arch::c95::{size_t};
5970 pub fn abs(i: c_int) -> c_int;
5971 pub fn labs(i: c_long) -> c_long;
5972 // Omitted: div, ldiv (return pub type incomplete).
5973 pub fn atof(s: *const c_char) -> c_double;
5974 pub fn atoi(s: *const c_char) -> c_int;
5975 pub fn strtod(s: *const c_char,
5976 endp: *mut *mut c_char) -> c_double;
5977 pub fn strtol(s: *const c_char,
5978 endp: *mut *mut c_char, base: c_int) -> c_long;
5979 pub fn strtoul(s: *const c_char, endp: *mut *mut c_char,
5980 base: c_int) -> c_ulong;
5981 pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void;
5982 pub fn malloc(size: size_t) -> *mut c_void;
5983 pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void;
5984 pub fn free(p: *mut c_void);
5986 /// Exits the running program in a possibly dangerous manner.
5990 /// While this forces your program to exit, it does so in a way that has
5991 /// consequences. This will skip all unwinding code, which means that anything
5992 /// relying on unwinding for cleanup (such as flushing and closing a buffer to a
5993 /// file) may act in an unexpected way.
5997 /// ```no_run,ignore
5998 /// extern crate libc;
6006 pub fn exit(status: c_int) -> !;
6007 pub fn _exit(status: c_int) -> !;
6008 pub fn atexit(cb: extern fn()) -> c_int;
6009 pub fn system(s: *const c_char) -> c_int;
6010 pub fn getenv(s: *const c_char) -> *mut c_char;
6011 // Omitted: bsearch, qsort
6012 pub fn rand() -> c_int;
6013 pub fn srand(seed: c_uint);
6018 use types::common::c95::c_void;
6019 use types::os::arch::c95::{c_char, c_int, size_t};
6020 use types::os::arch::c95::{wchar_t};
6023 pub fn strcpy(dst: *mut c_char,
6024 src: *const c_char) -> *mut c_char;
6025 pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t)
6027 pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char;
6028 pub fn strncat(s: *mut c_char, ct: *const c_char,
6029 n: size_t) -> *mut c_char;
6030 pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int;
6031 pub fn strncmp(cs: *const c_char, ct: *const c_char,
6032 n: size_t) -> c_int;
6033 pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int;
6034 pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char;
6035 pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char;
6036 pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t;
6037 pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t;
6038 pub fn strpbrk(cs: *const c_char,
6039 ct: *const c_char) -> *mut c_char;
6040 pub fn strstr(cs: *const c_char,
6041 ct: *const c_char) -> *mut c_char;
6042 pub fn strlen(cs: *const c_char) -> size_t;
6043 pub fn strerror(n: c_int) -> *mut c_char;
6044 pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char;
6045 pub fn strxfrm(s: *mut c_char, ct: *const c_char,
6046 n: size_t) -> size_t;
6047 pub fn wcslen(buf: *const wchar_t) -> size_t;
6049 // Omitted: memcpy, memmove, memset (provided by LLVM)
6051 // These are fine to execute on the Rust stack. They must be,
6052 // in fact, because LLVM generates calls to them!
6053 pub fn memcmp(cx: *const c_void, ct: *const c_void,
6054 n: size_t) -> c_int;
6055 pub fn memchr(cx: *const c_void, c: c_int,
6056 n: size_t) -> *mut c_void;
6061 // Microsoft helpfully underscore-qualifies all of its POSIX-like symbols
6062 // to make sure you don't use them accidentally. It also randomly deviates
6063 // from the exact signatures you might otherwise expect, and omits much,
6064 // so be careful when trying to write portable code; it won't always work
6065 // with the same POSIX functions and types as other platforms.
6067 #[cfg(target_os = "windows")]
6070 use types::os::common::posix01::{stat, utimbuf};
6071 use types::os::arch::c95::{c_int, c_char, wchar_t};
6074 #[link_name = "_chmod"]
6075 pub fn chmod(path: *const c_char, mode: c_int) -> c_int;
6076 #[link_name = "_wchmod"]
6077 pub fn wchmod(path: *const wchar_t, mode: c_int) -> c_int;
6078 #[link_name = "_mkdir"]
6079 pub fn mkdir(path: *const c_char) -> c_int;
6080 #[link_name = "_wrmdir"]
6081 pub fn wrmdir(path: *const wchar_t) -> c_int;
6082 #[link_name = "_fstat64"]
6083 pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int;
6084 #[link_name = "_stat64"]
6085 pub fn stat(path: *const c_char, buf: *mut stat) -> c_int;
6086 #[link_name = "_wstat64"]
6087 pub fn wstat(path: *const wchar_t, buf: *mut stat) -> c_int;
6088 #[link_name = "_wutime64"]
6089 pub fn wutime(file: *const wchar_t, buf: *mut utimbuf) -> c_int;
6094 use types::common::c95::FILE;
6095 use types::os::arch::c95::{c_int, c_char};
6098 #[link_name = "_popen"]
6099 pub fn popen(command: *const c_char,
6100 mode: *const c_char) -> *mut FILE;
6101 #[link_name = "_pclose"]
6102 pub fn pclose(stream: *mut FILE) -> c_int;
6103 #[link_name = "_fdopen"]
6104 pub fn fdopen(fd: c_int, mode: *const c_char) -> *mut FILE;
6105 #[link_name = "_fileno"]
6106 pub fn fileno(stream: *mut FILE) -> c_int;
6111 use types::os::arch::c95::{c_int, c_char, wchar_t};
6113 #[link_name = "_open"]
6114 pub fn open(path: *const c_char, oflag: c_int, mode: c_int)
6116 #[link_name = "_wopen"]
6117 pub fn wopen(path: *const wchar_t, oflag: c_int, mode: c_int)
6119 #[link_name = "_creat"]
6120 pub fn creat(path: *const c_char, mode: c_int) -> c_int;
6125 // Not supplied at all.
6129 use types::common::c95::c_void;
6130 use types::os::arch::c95::{c_int, c_uint, c_char,
6132 use types::os::arch::c99::intptr_t;
6135 #[link_name = "_access"]
6136 pub fn access(path: *const c_char, amode: c_int) -> c_int;
6137 #[link_name = "_chdir"]
6138 pub fn chdir(dir: *const c_char) -> c_int;
6139 #[link_name = "_close"]
6140 pub fn close(fd: c_int) -> c_int;
6141 #[link_name = "_dup"]
6142 pub fn dup(fd: c_int) -> c_int;
6143 #[link_name = "_dup2"]
6144 pub fn dup2(src: c_int, dst: c_int) -> c_int;
6145 #[link_name = "_execv"]
6146 pub fn execv(prog: *const c_char,
6147 argv: *const *const c_char) -> intptr_t;
6148 #[link_name = "_execve"]
6149 pub fn execve(prog: *const c_char, argv: *const *const c_char,
6150 envp: *const *const c_char)
6152 #[link_name = "_execvp"]
6153 pub fn execvp(c: *const c_char,
6154 argv: *const *const c_char) -> c_int;
6155 #[link_name = "_execvpe"]
6156 pub fn execvpe(c: *const c_char, argv: *const *const c_char,
6157 envp: *const *const c_char) -> c_int;
6158 #[link_name = "_getcwd"]
6159 pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char;
6160 #[link_name = "_getpid"]
6161 pub fn getpid() -> c_int;
6162 #[link_name = "_isatty"]
6163 pub fn isatty(fd: c_int) -> c_int;
6164 #[link_name = "_lseek"]
6165 pub fn lseek(fd: c_int, offset: c_long, origin: c_int)
6167 #[link_name = "_pipe"]
6168 pub fn pipe(fds: *mut c_int, psize: c_uint, textmode: c_int)
6170 #[link_name = "_read"]
6171 pub fn read(fd: c_int, buf: *mut c_void, count: c_uint)
6173 #[link_name = "_rmdir"]
6174 pub fn rmdir(path: *const c_char) -> c_int;
6175 #[link_name = "_unlink"]
6176 pub fn unlink(c: *const c_char) -> c_int;
6177 #[link_name = "_write"]
6178 pub fn write(fd: c_int, buf: *const c_void,
6179 count: c_uint) -> c_int;
6187 #[cfg(any(target_os = "linux",
6188 target_os = "android",
6189 target_os = "macos",
6191 target_os = "freebsd",
6192 target_os = "dragonfly",
6193 target_os = "bitrig",
6194 target_os = "netbsd",
6195 target_os = "openbsd",
6196 target_os = "nacl"))]
6199 use types::os::arch::c95::{c_char, c_int};
6200 use types::os::arch::posix01::stat;
6201 use types::os::arch::posix88::mode_t;
6204 pub fn chmod(path: *const c_char, mode: mode_t) -> c_int;
6205 pub fn fchmod(fd: c_int, mode: mode_t) -> c_int;
6207 #[cfg_attr(target_os = "macos", link_name = "fstat64")]
6208 #[cfg_attr(target_os = "netbsd", link_name = "__fstat50")]
6209 pub fn fstat(fildes: c_int, buf: *mut stat) -> c_int;
6211 pub fn mkdir(path: *const c_char, mode: mode_t) -> c_int;
6212 #[cfg(not(target_os = "nacl"))]
6213 pub fn mkfifo(path: *const c_char, mode: mode_t) -> c_int;
6215 #[cfg_attr(target_os = "macos", link_name = "stat64")]
6216 #[cfg_attr(target_os = "netbsd", link_name = "__stat50")]
6217 pub fn stat(path: *const c_char, buf: *mut stat) -> c_int;
6222 use types::common::c95::FILE;
6223 use types::os::arch::c95::{c_char, c_int};
6226 pub fn popen(command: *const c_char,
6227 mode: *const c_char) -> *mut FILE;
6228 pub fn pclose(stream: *mut FILE) -> c_int;
6229 pub fn fdopen(fd: c_int, mode: *const c_char) -> *mut FILE;
6230 pub fn fileno(stream: *mut FILE) -> c_int;
6235 use types::os::arch::c95::{c_char, c_int};
6236 use types::os::arch::posix88::mode_t;
6240 #[cfg(any(target_os = "macos",
6241 target_os = "ios"))]
6242 pub fn open(path: *const ::c_char, oflag: ::c_int, ...)
6245 #[cfg(not(any(target_os = "macos",
6246 target_os = "ios")))]
6247 pub fn open(path: *const ::c_char, oflag: ::c_int, mode: ::mode_t)
6252 #[cfg(any(target_os = "macos",
6253 target_os = "ios"))]
6255 pub unsafe extern fn open(path: *const c_char, oflag: c_int, mode: mode_t) -> c_int {
6256 use types::os::arch::c95::c_uint;
6257 open_shim::open(path, oflag, mode as c_uint)
6260 #[cfg(not(any(target_os = "macos",
6261 target_os = "ios")))]
6263 pub unsafe extern fn open(path: *const c_char, oflag: c_int, mode: mode_t) -> c_int {
6264 open_shim::open(path, oflag, mode)
6268 pub fn creat(path: *const c_char, mode: mode_t) -> c_int;
6269 pub fn fcntl(fd: c_int, cmd: c_int, ...) -> c_int;
6274 use types::common::posix88::{DIR, dirent_t};
6275 use types::os::arch::c95::{c_char, c_int, c_long};
6277 // NB: On OS X opendir and readdir have two versions,
6278 // one for 32-bit kernelspace and one for 64.
6279 // We should be linking to the 64-bit ones, called
6280 // opendir$INODE64, etc. but for some reason rustc
6281 // doesn't link it correctly on i686, so we're going
6282 // through a C function that mysteriously does work.
6285 #[link_name="rust_opendir"]
6286 pub fn opendir(dirname: *const c_char) -> *mut DIR;
6287 #[link_name="rust_readdir_r"]
6288 pub fn readdir_r(dirp: *mut DIR, entry: *mut dirent_t,
6289 result: *mut *mut dirent_t) -> c_int;
6293 pub fn closedir(dirp: *mut DIR) -> c_int;
6294 pub fn rewinddir(dirp: *mut DIR);
6295 pub fn seekdir(dirp: *mut DIR, loc: c_long);
6296 pub fn telldir(dirp: *mut DIR) -> c_long;
6301 use types::common::c95::c_void;
6302 use types::os::arch::c95::{c_char, c_int, c_long, c_uint};
6303 use types::os::arch::c95::{size_t};
6304 use types::os::common::posix01::timespec;
6305 use types::os::arch::posix01::utimbuf;
6306 use types::os::arch::posix88::{gid_t, off_t, pid_t};
6307 use types::os::arch::posix88::{ssize_t, uid_t};
6309 #[cfg(not(target_os = "nacl"))]
6311 pub fn access(path: *const c_char, amode: c_int) -> c_int;
6312 pub fn alarm(seconds: c_uint) -> c_uint;
6313 pub fn chdir(dir: *const c_char) -> c_int;
6314 pub fn chown(path: *const c_char, uid: uid_t,
6315 gid: gid_t) -> c_int;
6316 pub fn close(fd: c_int) -> c_int;
6317 pub fn dup(fd: c_int) -> c_int;
6318 pub fn dup2(src: c_int, dst: c_int) -> c_int;
6319 pub fn execv(prog: *const c_char,
6320 argv: *const *const c_char) -> c_int;
6321 pub fn execve(prog: *const c_char, argv: *const *const c_char,
6322 envp: *const *const c_char)
6324 pub fn execvp(c: *const c_char,
6325 argv: *const *const c_char) -> c_int;
6326 pub fn fork() -> pid_t;
6327 pub fn fpathconf(filedes: c_int, name: c_int) -> c_long;
6328 pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char;
6329 pub fn getegid() -> gid_t;
6330 pub fn geteuid() -> uid_t;
6331 pub fn getgid() -> gid_t;
6332 pub fn getgroups(ngroups_max: c_int, groups: *mut gid_t)
6334 pub fn getlogin() -> *mut c_char;
6335 // GNU getopt(3) modifies its arguments despite the
6336 // char * const [] prototype; see the manpage.
6337 pub fn getopt(argc: c_int, argv: *mut *mut c_char,
6338 optstr: *const c_char) -> c_int;
6339 pub fn getpgrp() -> pid_t;
6340 pub fn getpid() -> pid_t;
6341 pub fn getppid() -> pid_t;
6342 pub fn getuid() -> uid_t;
6343 pub fn getsid(pid: pid_t) -> pid_t;
6344 pub fn isatty(fd: c_int) -> c_int;
6345 pub fn link(src: *const c_char, dst: *const c_char) -> c_int;
6346 pub fn lseek(fd: c_int, offset: off_t, whence: c_int)
6348 pub fn pathconf(path: *mut c_char, name: c_int) -> c_long;
6349 pub fn pause() -> c_int;
6350 pub fn pipe(fds: *mut c_int) -> c_int;
6351 pub fn read(fd: c_int, buf: *mut c_void, count: size_t)
6353 pub fn rmdir(path: *const c_char) -> c_int;
6354 pub fn setgid(gid: gid_t) -> c_int;
6355 pub fn setpgid(pid: pid_t, pgid: pid_t) -> c_int;
6356 pub fn setsid() -> pid_t;
6357 pub fn setuid(uid: uid_t) -> c_int;
6358 pub fn sleep(secs: c_uint) -> c_uint;
6359 pub fn usleep(secs: c_uint) -> c_int;
6360 #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")]
6361 pub fn nanosleep(rqtp: *const timespec,
6362 rmtp: *mut timespec) -> c_int;
6363 pub fn sysconf(name: c_int) -> c_long;
6364 pub fn tcgetpgrp(fd: c_int) -> pid_t;
6365 pub fn ttyname(fd: c_int) -> *mut c_char;
6366 pub fn unlink(c: *const c_char) -> c_int;
6367 pub fn wait(status: *const c_int) -> pid_t;
6368 pub fn waitpid(pid: pid_t, status: *const c_int, options: c_int)
6370 pub fn write(fd: c_int, buf: *const c_void, count: size_t)
6372 pub fn pread(fd: c_int, buf: *mut c_void, count: size_t,
6373 offset: off_t) -> ssize_t;
6374 pub fn pwrite(fd: c_int, buf: *const c_void, count: size_t,
6375 offset: off_t) -> ssize_t;
6376 #[cfg_attr(target_os = "netbsd", link_name = "__utime50")]
6377 pub fn utime(file: *const c_char, buf: *const utimbuf) -> c_int;
6379 #[cfg(target_os = "nacl")]
6381 pub fn access(path: *const c_char, amode: c_int) -> c_int;
6382 pub fn chdir(dir: *const c_char) -> c_int;
6383 pub fn chown(path: *const c_char, uid: uid_t,
6384 gid: gid_t) -> c_int;
6385 pub fn close(fd: c_int) -> c_int;
6386 pub fn dup(fd: c_int) -> c_int;
6387 pub fn dup2(src: c_int, dst: c_int) -> c_int;
6388 pub fn execv(prog: *const c_char,
6389 argv: *const *const c_char) -> c_int;
6390 pub fn execve(prog: *const c_char, argv: *const *const c_char,
6391 envp: *const *const c_char)
6393 pub fn execvp(c: *const c_char,
6394 argv: *const *const c_char) -> c_int;
6395 pub fn fork() -> pid_t;
6396 pub fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char;
6397 pub fn getegid() -> gid_t;
6398 pub fn geteuid() -> uid_t;
6399 pub fn getgid() -> gid_t;
6400 pub fn getlogin() -> *mut c_char;
6401 pub fn getopt(argc: c_int, argv: *const *const c_char,
6402 optstr: *const c_char) -> c_int;
6403 pub fn getuid() -> uid_t;
6404 pub fn getsid(pid: pid_t) -> pid_t;
6405 pub fn isatty(fd: c_int) -> c_int;
6406 pub fn link(src: *const c_char, dst: *const c_char) -> c_int;
6407 pub fn lseek(fd: c_int, offset: off_t, whence: c_int)
6409 pub fn pipe(fds: *mut c_int) -> c_int;
6410 pub fn read(fd: c_int, buf: *mut c_void, count: size_t)
6412 pub fn rmdir(path: *const c_char) -> c_int;
6413 pub fn setgid(gid: gid_t) -> c_int;
6414 pub fn setuid(uid: uid_t) -> c_int;
6415 pub fn sleep(secs: c_uint) -> c_uint;
6416 pub fn usleep(secs: c_uint) -> c_int;
6417 pub fn nanosleep(rqtp: *const timespec,
6418 rmtp: *mut timespec) -> c_int;
6419 pub fn sysconf(name: c_int) -> c_long;
6420 pub fn ttyname(fd: c_int) -> *mut c_char;
6421 pub fn unlink(c: *const c_char) -> c_int;
6422 pub fn wait(status: *const c_int) -> pid_t;
6423 pub fn waitpid(pid: pid_t, status: *const c_int, options: c_int)
6425 pub fn write(fd: c_int, buf: *const c_void, count: size_t)
6427 pub fn pread(fd: c_int, buf: *mut c_void, count: size_t,
6428 offset: off_t) -> ssize_t;
6429 pub fn pwrite(fd: c_int, buf: *const c_void, count: size_t,
6430 offset: off_t) -> ssize_t;
6431 pub fn utime(file: *const c_char, buf: *const utimbuf) -> c_int;
6436 use types::os::arch::c95::{c_int};
6437 use types::os::arch::posix88::{pid_t};
6440 pub fn kill(pid: pid_t, sig: c_int) -> c_int;
6445 use types::common::c95::{c_void};
6446 use types::os::arch::c95::{size_t, c_int, c_char};
6447 use types::os::arch::posix88::{mode_t, off_t};
6449 #[cfg(not(target_os = "nacl"))]
6451 pub fn mlock(addr: *const c_void, len: size_t) -> c_int;
6452 pub fn munlock(addr: *const c_void, len: size_t) -> c_int;
6453 pub fn mlockall(flags: c_int) -> c_int;
6454 pub fn munlockall() -> c_int;
6456 pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int)
6459 #[cfg_attr(target_os = "netbsd", link_name = "__msync13")]
6460 pub fn msync(addr: *mut c_void, len: size_t, flags: c_int)
6463 pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t)
6465 pub fn shm_unlink(name: *const c_char) -> c_int;
6469 pub fn mmap(addr: *mut c_void,
6476 pub fn munmap(addr: *mut c_void, len: size_t) -> c_int;
6482 use types::os::arch::c95::{c_char, c_uint};
6485 pub fn if_nametoindex(ifname: *const c_char) -> c_uint;
6491 #[cfg(any(target_os = "linux",
6492 target_os = "android",
6493 target_os = "macos",
6495 target_os = "freebsd",
6496 target_os = "dragonfly",
6497 target_os = "bitrig",
6498 target_os = "netbsd",
6499 target_os = "openbsd",
6500 target_os = "nacl"))]
6503 use types::os::arch::c95::{c_char, c_int};
6504 use types::os::arch::posix01::stat;
6507 #[cfg_attr(target_os = "macos", link_name = "lstat64")]
6508 #[cfg_attr(target_os = "netbsd", link_name = "__lstat50")]
6509 pub fn lstat(path: *const c_char, buf: *mut stat) -> c_int;
6514 use types::os::arch::c95::{c_char, c_int, size_t};
6515 use types::os::arch::posix88::{ssize_t, off_t};
6518 pub fn readlink(path: *const c_char,
6523 pub fn fsync(fd: c_int) -> c_int;
6525 #[cfg(any(target_os = "linux", target_os = "android"))]
6526 pub fn fdatasync(fd: c_int) -> c_int;
6528 pub fn setenv(name: *const c_char, val: *const c_char,
6529 overwrite: c_int) -> c_int;
6530 #[cfg_attr(target_os = "netbsd", link_name = "__unsetenv13")]
6531 pub fn unsetenv(name: *const c_char) -> c_int;
6532 #[cfg_attr(target_os = "netbsd", link_name = "__putenv50")]
6533 pub fn putenv(string: *mut c_char) -> c_int;
6535 pub fn symlink(path1: *const c_char,
6536 path2: *const c_char) -> c_int;
6538 pub fn ftruncate(fd: c_int, length: off_t) -> c_int;
6543 use types::os::arch::c95::c_int;
6544 use types::os::common::posix01::sighandler_t;
6546 #[cfg(not(all(target_os = "android", any(target_arch = "arm",
6547 target_arch = "x86"))))]
6549 pub fn signal(signum: c_int,
6550 handler: sighandler_t) -> sighandler_t;
6553 #[cfg(all(target_os = "android", any(target_arch = "arm",
6554 target_arch = "x86")))]
6556 #[link_name = "bsd_signal"]
6557 pub fn signal(signum: c_int,
6558 handler: sighandler_t) -> sighandler_t;
6563 use types::os::arch::c95::{c_char, c_int};
6564 use types::os::common::posix01::{glob_t};
6567 #[cfg_attr(target_os = "netbsd", link_name = "__glob30")]
6568 pub fn glob(pattern: *const c_char,
6570 errfunc: ::core::option::Option<extern "C" fn(epath: *const c_char,
6571 errno: c_int) -> c_int>,
6572 pglob: *mut glob_t);
6573 #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")]
6574 pub fn globfree(pglob: *mut glob_t);
6579 use types::common::c95::{c_void};
6580 use types::os::arch::c95::{c_int, size_t};
6582 #[cfg(not(target_os = "nacl"))]
6584 pub fn posix_madvise(addr: *mut c_void,
6592 use types::os::arch::c95::c_int;
6593 use types::os::common::posix01::rlimit;
6594 use types::os::common::bsd43::rusage;
6596 pub fn getrlimit(resource: c_int, rlim: *mut rlimit) -> c_int;
6597 pub fn setrlimit(resource: c_int, rlim: *const rlimit) -> c_int;
6598 #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")]
6599 pub fn getrusage(resource: c_int, usage: *mut rusage) -> c_int;
6604 #[cfg(target_os = "windows")]
6623 #[cfg(any(target_os = "android",
6624 target_os = "bitrig",
6625 target_os = "dragonfly",
6627 target_os = "freebsd",
6628 target_os = "linux",
6629 target_os = "macos",
6631 target_os = "netbsd",
6632 target_os = "openbsd",
6633 target_os = "windows"))]
6639 #[cfg(not(windows))]
6641 use types::common::c95::{c_void};
6642 use types::os::common::bsd44::{socklen_t, sockaddr, ifaddrs};
6643 use types::os::arch::c95::{c_int, size_t};
6644 use types::os::arch::posix88::ssize_t;
6647 #[cfg_attr(target_os = "netbsd", link_name = "__socket30")]
6648 pub fn socket(domain: c_int, ty: c_int, protocol: c_int) -> c_int;
6650 pub fn connect(socket: c_int, address: *const sockaddr,
6651 len: socklen_t) -> c_int;
6652 pub fn bind(socket: c_int, address: *const sockaddr,
6653 address_len: socklen_t) -> c_int;
6654 pub fn listen(socket: c_int, backlog: c_int) -> c_int;
6655 pub fn accept(socket: c_int, address: *mut sockaddr,
6656 address_len: *mut socklen_t) -> c_int;
6657 pub fn getpeername(socket: c_int, address: *mut sockaddr,
6658 address_len: *mut socklen_t) -> c_int;
6659 pub fn getsockname(socket: c_int, address: *mut sockaddr,
6660 address_len: *mut socklen_t) -> c_int;
6661 pub fn setsockopt(socket: c_int, level: c_int, name: c_int,
6662 value: *const c_void,
6663 option_len: socklen_t) -> c_int;
6664 pub fn recv(socket: c_int, buf: *mut c_void, len: size_t,
6665 flags: c_int) -> ssize_t;
6666 pub fn send(socket: c_int, buf: *const c_void, len: size_t,
6667 flags: c_int) -> ssize_t;
6668 pub fn recvfrom(socket: c_int, buf: *mut c_void, len: size_t,
6669 flags: c_int, addr: *mut sockaddr,
6670 addrlen: *mut socklen_t) -> ssize_t;
6671 pub fn sendto(socket: c_int, buf: *const c_void, len: size_t,
6672 flags: c_int, addr: *const sockaddr,
6673 addrlen: socklen_t) -> ssize_t;
6674 pub fn getifaddrs(ifap: *mut *mut ifaddrs) -> c_int;
6675 pub fn freeifaddrs(ifa: *mut ifaddrs);
6676 pub fn shutdown(socket: c_int, how: c_int) -> c_int;
6682 use types::common::c95::{c_void};
6683 use types::os::common::bsd44::{socklen_t, sockaddr, SOCKET};
6684 use types::os::arch::c95::c_int;
6687 pub fn socket(domain: c_int, ty: c_int, protocol: c_int) -> SOCKET;
6688 pub fn connect(socket: SOCKET, address: *const sockaddr,
6689 len: socklen_t) -> c_int;
6690 pub fn bind(socket: SOCKET, address: *const sockaddr,
6691 address_len: socklen_t) -> c_int;
6692 pub fn listen(socket: SOCKET, backlog: c_int) -> c_int;
6693 pub fn accept(socket: SOCKET, address: *mut sockaddr,
6694 address_len: *mut socklen_t) -> SOCKET;
6695 pub fn getpeername(socket: SOCKET, address: *mut sockaddr,
6696 address_len: *mut socklen_t) -> c_int;
6697 pub fn getsockname(socket: SOCKET, address: *mut sockaddr,
6698 address_len: *mut socklen_t) -> c_int;
6699 pub fn setsockopt(socket: SOCKET, level: c_int, name: c_int,
6700 value: *const c_void,
6701 option_len: socklen_t) -> c_int;
6702 pub fn closesocket(socket: SOCKET) -> c_int;
6703 pub fn recv(socket: SOCKET, buf: *mut c_void, len: c_int,
6704 flags: c_int) -> c_int;
6705 pub fn send(socket: SOCKET, buf: *const c_void, len: c_int,
6706 flags: c_int) -> c_int;
6707 pub fn recvfrom(socket: SOCKET, buf: *mut c_void, len: c_int,
6708 flags: c_int, addr: *mut sockaddr,
6709 addrlen: *mut c_int) -> c_int;
6710 pub fn sendto(socket: SOCKET, buf: *const c_void, len: c_int,
6711 flags: c_int, addr: *const sockaddr,
6712 addrlen: c_int) -> c_int;
6713 pub fn shutdown(socket: SOCKET, how: c_int) -> c_int;
6717 #[cfg(any(target_os = "macos",
6719 target_os = "freebsd",
6720 target_os = "dragonfly",
6721 target_os = "bitrig",
6722 target_os = "netbsd",
6723 target_os = "openbsd"))]
6725 use types::common::c95::{c_void};
6726 use types::os::arch::c95::{c_char, c_uchar, c_int, c_uint, c_ulong, size_t};
6729 pub fn ioctl(fd: c_int, request: c_ulong, ...) -> c_int;
6730 pub fn sysctl(name: *mut c_int,
6733 oldlenp: *mut size_t,
6737 pub fn sysctlbyname(name: *const c_char,
6739 oldlenp: *mut size_t,
6743 pub fn sysctlnametomib(name: *const c_char,
6747 pub fn getdtablesize() -> c_int;
6748 pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int)
6750 pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar)
6752 pub fn realpath(pathname: *const c_char, resolved: *mut c_char)
6754 pub fn flock(fd: c_int, operation: c_int) -> c_int;
6758 #[cfg(any(target_os = "linux", target_os = "android"))]
6760 use types::common::c95::{c_void};
6761 use types::os::arch::c95::{c_uchar, c_int, size_t};
6762 #[cfg(not(feature = "cargo-build"))]
6763 use types::os::arch::c95::c_ulong;
6766 #[cfg(not(all(target_os = "android", target_arch = "aarch64")))]
6767 pub fn getdtablesize() -> c_int;
6769 // Note that the correct signature of ioctl broke some crates on
6770 // crates.io, so for now we keep the broken signature for crates.io
6771 // but we fix it locally in the main Rust distribution. Once a new
6772 // major version of libc is released on crates.io this #[cfg] should
6774 #[cfg(feature = "cargo-build")]
6775 pub fn ioctl(fd: c_int, request: c_int, ...) -> c_int;
6776 #[cfg(not(feature = "cargo-build"))]
6777 pub fn ioctl(fd: c_int, request: c_ulong, ...) -> c_int;
6778 pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int)
6780 pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar)
6782 pub fn flock(fd: c_int, operation: c_int) -> c_int;
6786 #[cfg(target_os = "nacl")]
6788 use types::os::arch::c95::c_int;
6790 pub fn getdtablesize() -> c_int;
6794 #[cfg(target_os = "windows")]
6798 #[cfg(any(target_os = "macos", target_os = "ios"))]
6800 use types::os::arch::c95::{c_char, c_int};
6803 pub fn _NSGetExecutablePath(buf: *mut c_char, bufsize: *mut u32)
6808 #[cfg(any(target_os = "freebsd",
6809 target_os = "dragonfly",
6810 target_os = "bitrig",
6811 target_os = "netbsd",
6812 target_os = "openbsd"))]
6816 #[cfg(any(target_os = "linux", target_os = "android", target_os = "nacl"))]
6821 #[cfg(target_os = "windows")]
6825 use types::os::arch::c95::{c_uint};
6826 use types::os::arch::extra::{BOOL, DWORD, SIZE_T, HMODULE,
6828 LPWCH, LPDWORD, LPVOID,
6829 LPCVOID, LPOVERLAPPED,
6830 LPSECURITY_ATTRIBUTES,
6832 LPPROCESS_INFORMATION,
6833 LPMEMORY_BASIC_INFORMATION,
6834 LPSYSTEM_INFO, HANDLE, LPHANDLE,
6835 LARGE_INTEGER, PLARGE_INTEGER,
6836 LPFILETIME, LPWIN32_FIND_DATAW};
6839 pub fn GetEnvironmentVariableW(n: LPCWSTR,
6843 pub fn SetEnvironmentVariableW(n: LPCWSTR, v: LPCWSTR)
6845 pub fn GetEnvironmentStringsW() -> LPWCH;
6846 pub fn FreeEnvironmentStringsW(env_ptr: LPWCH) -> BOOL;
6847 pub fn GetModuleFileNameW(hModule: HMODULE,
6851 pub fn CreateDirectoryW(lpPathName: LPCWSTR,
6852 lpSecurityAttributes:
6853 LPSECURITY_ATTRIBUTES)
6855 pub fn CopyFileW(lpExistingFileName: LPCWSTR,
6856 lpNewFileName: LPCWSTR,
6857 bFailIfExists: BOOL)
6859 pub fn DeleteFileW(lpPathName: LPCWSTR) -> BOOL;
6860 pub fn RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL;
6861 pub fn GetCurrentDirectoryW(nBufferLength: DWORD,
6864 pub fn SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL;
6865 pub fn GetLastError() -> DWORD;
6866 pub fn FindFirstFileW(fileName: LPCWSTR, findFileData: LPWIN32_FIND_DATAW)
6868 pub fn FindNextFileW(findFile: HANDLE, findFileData: LPWIN32_FIND_DATAW)
6870 pub fn FindClose(findFile: HANDLE) -> BOOL;
6871 pub fn DuplicateHandle(hSourceProcessHandle: HANDLE,
6872 hSourceHandle: HANDLE,
6873 hTargetProcessHandle: HANDLE,
6874 lpTargetHandle: LPHANDLE,
6875 dwDesiredAccess: DWORD,
6876 bInheritHandle: BOOL,
6879 pub fn CloseHandle(hObject: HANDLE) -> BOOL;
6880 pub fn OpenProcess(dwDesiredAccess: DWORD,
6881 bInheritHandle: BOOL,
6884 pub fn GetCurrentProcess() -> HANDLE;
6885 pub fn CreateProcessW(lpApplicationName: LPCWSTR,
6886 lpCommandLine: LPWSTR,
6887 lpProcessAttributes:
6888 LPSECURITY_ATTRIBUTES,
6890 LPSECURITY_ATTRIBUTES,
6891 bInheritHandles: BOOL,
6892 dwCreationFlags: DWORD,
6893 lpEnvironment: LPVOID,
6894 lpCurrentDirectory: LPCWSTR,
6895 lpStartupInfo: LPSTARTUPINFO,
6896 lpProcessInformation:
6897 LPPROCESS_INFORMATION)
6899 pub fn WaitForSingleObject(hHandle: HANDLE,
6900 dwMilliseconds: DWORD)
6902 pub fn TerminateProcess(hProcess: HANDLE, uExitCode: c_uint)
6904 pub fn GetExitCodeProcess(hProcess: HANDLE,
6905 lpExitCode: LPDWORD)
6907 pub fn GetSystemInfo(lpSystemInfo: LPSYSTEM_INFO);
6908 pub fn VirtualAlloc(lpAddress: LPVOID,
6910 flAllocationType: DWORD,
6913 pub fn VirtualFree(lpAddress: LPVOID,
6917 pub fn VirtualLock(lpAddress: LPVOID, dwSize: SIZE_T) -> BOOL;
6918 pub fn VirtualUnlock(lpAddress: LPVOID, dwSize: SIZE_T)
6920 pub fn VirtualProtect(lpAddress: LPVOID,
6922 flNewProtect: DWORD,
6923 lpflOldProtect: LPDWORD)
6925 pub fn VirtualQuery(lpAddress: LPCVOID,
6926 lpBuffer: LPMEMORY_BASIC_INFORMATION,
6929 pub fn CreateFileMappingW(hFile: HANDLE,
6930 lpAttributes: LPSECURITY_ATTRIBUTES,
6932 dwMaximumSizeHigh: DWORD,
6933 dwMaximumSizeLow: DWORD,
6936 pub fn MapViewOfFile(hFileMappingObject: HANDLE,
6937 dwDesiredAccess: DWORD,
6938 dwFileOffsetHigh: DWORD,
6939 dwFileOffsetLow: DWORD,
6940 dwNumberOfBytesToMap: SIZE_T)
6942 pub fn UnmapViewOfFile(lpBaseAddress: LPCVOID) -> BOOL;
6943 pub fn MoveFileExW(lpExistingFileName: LPCWSTR,
6944 lpNewFileName: LPCWSTR,
6945 dwFlags: DWORD) -> BOOL;
6946 pub fn CreateHardLinkW(lpSymlinkFileName: LPCWSTR,
6947 lpTargetFileName: LPCWSTR,
6948 lpSecurityAttributes: LPSECURITY_ATTRIBUTES)
6950 pub fn FlushFileBuffers(hFile: HANDLE) -> BOOL;
6951 pub fn CreateFileW(lpFileName: LPCWSTR,
6952 dwDesiredAccess: DWORD,
6954 lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
6955 dwCreationDisposition: DWORD,
6956 dwFlagsAndAttributes: DWORD,
6957 hTemplateFile: HANDLE) -> HANDLE;
6958 pub fn ReadFile(hFile: HANDLE,
6960 nNumberOfBytesToRead: DWORD,
6961 lpNumberOfBytesRead: LPDWORD,
6962 lpOverlapped: LPOVERLAPPED) -> BOOL;
6963 pub fn WriteFile(hFile: HANDLE,
6965 nNumberOfBytesToWrite: DWORD,
6966 lpNumberOfBytesWritten: LPDWORD,
6967 lpOverlapped: LPOVERLAPPED) -> BOOL;
6968 pub fn SetFilePointerEx(hFile: HANDLE,
6969 liDistanceToMove: LARGE_INTEGER,
6970 lpNewFilePointer: PLARGE_INTEGER,
6971 dwMoveMethod: DWORD) -> BOOL;
6972 pub fn SetEndOfFile(hFile: HANDLE) -> BOOL;
6974 pub fn GetSystemTimeAsFileTime(
6975 lpSystemTimeAsFileTime: LPFILETIME);
6977 pub fn QueryPerformanceFrequency(
6978 lpFrequency: *mut LARGE_INTEGER) -> BOOL;
6979 pub fn QueryPerformanceCounter(
6980 lpPerformanceCount: *mut LARGE_INTEGER) -> BOOL;
6982 pub fn GetCurrentProcessId() -> DWORD;
6983 pub fn CreateNamedPipeW(
6987 nMaxInstances: DWORD,
6988 nOutBufferSize: DWORD,
6989 nInBufferSize: DWORD,
6990 nDefaultTimeOut: DWORD,
6991 lpSecurityAttributes: LPSECURITY_ATTRIBUTES
6993 pub fn ConnectNamedPipe(hNamedPipe: HANDLE,
6994 lpOverlapped: LPOVERLAPPED) -> BOOL;
6995 pub fn WaitNamedPipeW(lpNamedPipeName: LPCWSTR,
6996 nTimeOut: DWORD) -> BOOL;
6997 pub fn SetNamedPipeHandleState(hNamedPipe: HANDLE,
6999 lpMaxCollectionCount: LPDWORD,
7000 lpCollectDataTimeout: LPDWORD)
7002 pub fn CreateEventW(lpEventAttributes: LPSECURITY_ATTRIBUTES,
7004 bInitialState: BOOL,
7005 lpName: LPCWSTR) -> HANDLE;
7006 pub fn GetOverlappedResult(hFile: HANDLE,
7007 lpOverlapped: LPOVERLAPPED,
7008 lpNumberOfBytesTransferred: LPDWORD,
7009 bWait: BOOL) -> BOOL;
7010 pub fn DisconnectNamedPipe(hNamedPipe: HANDLE) -> BOOL;
7015 use types::os::arch::c95::{c_int, c_long};
7016 use types::os::arch::c99::intptr_t;
7019 #[link_name = "_commit"]
7020 pub fn commit(fd: c_int) -> c_int;
7022 #[link_name = "_get_osfhandle"]
7023 pub fn get_osfhandle(fd: c_int) -> c_long;
7025 #[link_name = "_open_osfhandle"]
7026 pub fn open_osfhandle(osfhandle: intptr_t,
7027 flags: c_int) -> c_int;
7032 use types::os::arch::c95::{c_int, c_long, c_ulong};
7033 use types::os::common::bsd44::SOCKET;
7036 pub fn ioctlsocket(s: SOCKET, cmd: c_long, argp: *mut c_ulong) -> c_int;
7042 #[test] fn work_on_windows() { } // FIXME #10872 needed for a happy windows