diff options
Diffstat (limited to 'libc/src')
| -rw-r--r-- | libc/src/dox.rs | 5 | ||||
| -rw-r--r-- | libc/src/unix/bsd/apple/mod.rs | 25 | ||||
| -rw-r--r-- | libc/src/unix/bsd/freebsdlike/freebsd/mod.rs | 1 | ||||
| -rw-r--r-- | libc/src/unix/bsd/freebsdlike/mod.rs | 3 | ||||
| -rw-r--r-- | libc/src/unix/bsd/mod.rs | 7 | ||||
| -rw-r--r-- | libc/src/unix/bsd/netbsdlike/mod.rs | 2 | ||||
| -rw-r--r-- | libc/src/unix/bsd/netbsdlike/netbsd/mod.rs | 3 | ||||
| -rw-r--r-- | libc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs | 1 | ||||
| -rw-r--r-- | libc/src/unix/notbsd/android/mod.rs | 3 | ||||
| -rw-r--r-- | libc/src/unix/notbsd/linux/mips/mod.rs | 3 | ||||
| -rw-r--r-- | libc/src/unix/notbsd/linux/mod.rs | 3 | ||||
| -rw-r--r-- | libc/src/unix/notbsd/linux/s390x.rs | 3 | ||||
| -rw-r--r-- | libc/src/unix/notbsd/mod.rs | 13 | ||||
| -rw-r--r-- | libc/src/windows/gnu.rs | 7 | ||||
| -rw-r--r-- | libc/src/windows/mod.rs | 67 | ||||
| -rw-r--r-- | libc/src/windows/msvc.rs | 2 | 
16 files changed, 137 insertions, 11 deletions
| diff --git a/libc/src/dox.rs b/libc/src/dox.rs index 33a9c16..6296c6c 100644 --- a/libc/src/dox.rs +++ b/libc/src/dox.rs @@ -52,6 +52,11 @@ mod imp {      #[lang = "sized"]      pub trait Sized {} +    #[lang = "receiver"] +    pub trait Receiver {} +    impl<T: ?Sized> Receiver for &T {} +    impl<T: ?Sized> Receiver for &mut T {} +      macro_rules! each_int {          ($mac:ident) => {              $mac!(u8); diff --git a/libc/src/unix/bsd/apple/mod.rs b/libc/src/unix/bsd/apple/mod.rs index bb07cc4..3d9dd94 100644 --- a/libc/src/unix/bsd/apple/mod.rs +++ b/libc/src/unix/bsd/apple/mod.rs @@ -1570,11 +1570,16 @@ pub const SOCK_RDM: ::c_int = 4;  pub const SOCK_SEQPACKET: ::c_int = 5;  pub const IP_TTL: ::c_int = 4;  pub const IP_HDRINCL: ::c_int = 2; +pub const IP_RECVDSTADDR: ::c_int = 7;  pub const IP_ADD_MEMBERSHIP: ::c_int = 12;  pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IP_RECVIF: ::c_int = 20;  pub const IP_PKTINFO: ::c_int = 26; +pub const IP_RECVTOS: ::c_int = 27;  pub const IPV6_JOIN_GROUP: ::c_int = 12;  pub const IPV6_LEAVE_GROUP: ::c_int = 13; +pub const IPV6_RECVTCLASS: ::c_int = 35; +pub const IPV6_TCLASS: ::c_int = 36;  pub const IPV6_PKTINFO: ::c_int = 46;  pub const IPV6_RECVPKTINFO: ::c_int = 61; @@ -1914,6 +1919,13 @@ pub const IUTF8: ::tcflag_t = 0x00004000;  pub const CRTSCTS: ::tcflag_t = 0x00030000;  pub const NI_MAXHOST: ::socklen_t = 1025; +pub const NI_MAXSERV: ::socklen_t = 32; +pub const NI_NOFQDN: ::c_int = 0x00000001; +pub const NI_NUMERICHOST: ::c_int = 0x00000002; +pub const NI_NAMEREQD: ::c_int = 0x00000004; +pub const NI_NUMERICSERV: ::c_int = 0x00000008; +pub const NI_NUMERICSCOPE: ::c_int = 0x00000100; +pub const NI_DGRAM: ::c_int = 0x00000010;  pub const Q_GETQUOTA: ::c_int = 0x300;  pub const Q_SETQUOTA: ::c_int = 0x400; @@ -2147,6 +2159,19 @@ pub const PRIO_DARWIN_NONUI: ::c_int = 0x1001;  pub const SEM_FAILED: *mut sem_t = -1isize as *mut ::sem_t; +pub const AI_PASSIVE: ::c_int = 0x00000001; +pub const AI_CANONNAME: ::c_int = 0x00000002; +pub const AI_NUMERICHOST: ::c_int = 0x00000004; +pub const AI_NUMERICSERV: ::c_int = 0x00001000; +pub const AI_MASK: ::c_int = AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | +                             AI_NUMERICSERV | AI_ADDRCONFIG; +pub const AI_ALL: ::c_int = 0x00000100; +pub const AI_V4MAPPED_CFG: ::c_int = 0x00000200; +pub const AI_ADDRCONFIG: ::c_int = 0x00000400; +pub const AI_V4MAPPED: ::c_int = 0x00000800; +pub const AI_DEFAULT: ::c_int = AI_V4MAPPED_CFG | AI_ADDRCONFIG; +pub const AI_UNUSABLE: ::c_int = 0x10000000; +  pub const SIGEV_NONE: ::c_int = 0;  pub const SIGEV_SIGNAL: ::c_int = 1;  pub const SIGEV_THREAD: ::c_int = 3; diff --git a/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs b/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs index 1ead166..03b19eb 100644 --- a/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -803,6 +803,7 @@ pub const TCP_PCAP_OUT: ::c_int = 2048;  pub const TCP_PCAP_IN: ::c_int = 4096;  pub const IP_BINDANY: ::c_int = 24; +pub const IP_RECVTOS: ::c_int = 68;  pub const PF_SLOW: ::c_int = AF_SLOW;  pub const PF_SCLUSTER: ::c_int = AF_SCLUSTER; diff --git a/libc/src/unix/bsd/freebsdlike/mod.rs b/libc/src/unix/bsd/freebsdlike/mod.rs index cb3dba4..9829dde 100644 --- a/libc/src/unix/bsd/freebsdlike/mod.rs +++ b/libc/src/unix/bsd/freebsdlike/mod.rs @@ -664,10 +664,13 @@ pub const IP_RECVDSTADDR: ::c_int = 7;  pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR;  pub const IP_ADD_MEMBERSHIP: ::c_int = 12;  pub const IP_DROP_MEMBERSHIP: ::c_int = 13; +pub const IP_RECVIF: ::c_int = 20;  pub const IPV6_JOIN_GROUP: ::c_int = 12;  pub const IPV6_LEAVE_GROUP: ::c_int = 13;  pub const IPV6_RECVPKTINFO: ::c_int = 36;  pub const IPV6_PKTINFO: ::c_int = 46; +pub const IPV6_RECVTCLASS: ::c_int = 57; +pub const IPV6_TCLASS: ::c_int = 61;  pub const TCP_NOPUSH:    ::c_int = 4;  pub const TCP_NOOPT:     ::c_int = 8; diff --git a/libc/src/unix/bsd/mod.rs b/libc/src/unix/bsd/mod.rs index 770b9b9..03125c9 100644 --- a/libc/src/unix/bsd/mod.rs +++ b/libc/src/unix/bsd/mod.rs @@ -179,6 +179,7 @@ pub const SIG_SETMASK: ::c_int = 3;  pub const SIG_BLOCK: ::c_int = 0x1;  pub const SIG_UNBLOCK: ::c_int = 0x2; +pub const IP_TOS: ::c_int = 3;  pub const IP_MULTICAST_IF: ::c_int = 9;  pub const IP_MULTICAST_TTL: ::c_int = 10;  pub const IP_MULTICAST_LOOP: ::c_int = 11; @@ -189,6 +190,12 @@ pub const IPV6_MULTICAST_HOPS: ::c_int = 10;  pub const IPV6_MULTICAST_LOOP: ::c_int = 11;  pub const IPV6_V6ONLY: ::c_int = 27; +pub const IPTOS_ECN_NOTECT: u8 = 0x00; +pub const IPTOS_ECN_MASK: u8 = 0x03; +pub const IPTOS_ECN_ECT1: u8 = 0x01; +pub const IPTOS_ECN_ECT0: u8 = 0x02; +pub const IPTOS_ECN_CE: u8 = 0x03; +  pub const ST_RDONLY: ::c_ulong = 1;  pub const SCM_RIGHTS: ::c_int = 0x01; diff --git a/libc/src/unix/bsd/netbsdlike/mod.rs b/libc/src/unix/bsd/netbsdlike/mod.rs index bfd541d..abd014c 100644 --- a/libc/src/unix/bsd/netbsdlike/mod.rs +++ b/libc/src/unix/bsd/netbsdlike/mod.rs @@ -430,6 +430,8 @@ pub const IP_ADD_MEMBERSHIP: ::c_int = 12;  pub const IP_DROP_MEMBERSHIP: ::c_int = 13;  pub const IPV6_RECVPKTINFO: ::c_int = 36;  pub const IPV6_PKTINFO: ::c_int = 46; +pub const IPV6_RECVTCLASS: ::c_int = 57; +pub const IPV6_TCLASS: ::c_int = 61;  pub const SOL_SOCKET: ::c_int = 0xffff;  pub const SO_DEBUG: ::c_int = 0x01; diff --git a/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs b/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs index 55b8f4c..9c8173f 100644 --- a/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -393,6 +393,9 @@ pub const F_GETNOSIGPIPE: ::c_int = 13;  pub const F_SETNOSIGPIPE: ::c_int = 14;  pub const F_MAXFD: ::c_int = 11; +pub const IP_RECVDSTADDR: ::c_int = 7; +pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; +pub const IP_RECVIF: ::c_int = 20;  pub const IP_PKTINFO: ::c_int = 25;  pub const IP_RECVPKTINFO: ::c_int = 26;  pub const IPV6_JOIN_GROUP: ::c_int = 12; diff --git a/libc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs b/libc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs index 85f0a02..1c2e47d 100644 --- a/libc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs +++ b/libc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs @@ -319,6 +319,7 @@ pub const IPPROTO_DIVERT: ::c_int = 258;  pub const IP_RECVDSTADDR: ::c_int = 7;  pub const IP_SENDSRCADDR: ::c_int = IP_RECVDSTADDR; +pub const IP_RECVIF: ::c_int = 30;  // sys/netinet/in.h  pub const TCP_MD5SIG: ::c_int = 0x04; diff --git a/libc/src/unix/notbsd/android/mod.rs b/libc/src/unix/notbsd/android/mod.rs index 70052e1..972281c 100644 --- a/libc/src/unix/notbsd/android/mod.rs +++ b/libc/src/unix/notbsd/android/mod.rs @@ -666,6 +666,8 @@ pub const SO_RXQ_OVFL: ::c_int = 40;  pub const SO_PEEK_OFF: ::c_int = 42;  pub const SO_BUSY_POLL: ::c_int = 46; +pub const IPTOS_ECN_NOTECT: u8 = 0x00; +  pub const O_ACCMODE: ::c_int = 3;  pub const O_APPEND: ::c_int = 1024;  pub const O_CREAT: ::c_int = 64; @@ -1056,6 +1058,7 @@ pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY;  pub const MFD_CLOEXEC: ::c_uint = 0x0001;  pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; +pub const MFD_HUGETLB: ::c_uint = 0x0004;  // linux/netfilter.h  pub const NF_DROP: ::c_int = 0; diff --git a/libc/src/unix/notbsd/linux/mips/mod.rs b/libc/src/unix/notbsd/linux/mips/mod.rs index b000d6d..8809bef 100644 --- a/libc/src/unix/notbsd/linux/mips/mod.rs +++ b/libc/src/unix/notbsd/linux/mips/mod.rs @@ -537,6 +537,9 @@ pub const MAP_HUGETLB: ::c_int = 0x080000;  pub const EFD_NONBLOCK: ::c_int = 0x80; +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2;  pub const F_GETLK: ::c_int = 14;  pub const F_GETOWN: ::c_int = 23;  pub const F_SETOWN: ::c_int = 24; diff --git a/libc/src/unix/notbsd/linux/mod.rs b/libc/src/unix/notbsd/linux/mod.rs index 1aeceb1..8669a06 100644 --- a/libc/src/unix/notbsd/linux/mod.rs +++ b/libc/src/unix/notbsd/linux/mod.rs @@ -1320,6 +1320,7 @@ pub const CMSPAR: ::tcflag_t = 0o10000000000;  pub const MFD_CLOEXEC: ::c_uint = 0x0001;  pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002; +pub const MFD_HUGETLB: ::c_uint = 0x0004;  // these are used in the p_type field of Elf32_Phdr and Elf64_Phdr, which has  // the type Elf32Word and Elf64Word respectively. Luckily, both of those are u32 @@ -1611,6 +1612,8 @@ pub const SIOCSIFMAP: ::c_ulong = 0x00008971;  pub const IPTOS_TOS_MASK: u8 = 0x1E;  pub const IPTOS_PREC_MASK: u8 = 0xE0; +pub const IPTOS_ECN_NOT_ECT: u8 = 0x00; +  pub const RTF_UP: ::c_ushort = 0x0001;  pub const RTF_GATEWAY: ::c_ushort = 0x0002; diff --git a/libc/src/unix/notbsd/linux/s390x.rs b/libc/src/unix/notbsd/linux/s390x.rs index 9196f88..9e3814f 100644 --- a/libc/src/unix/notbsd/linux/s390x.rs +++ b/libc/src/unix/notbsd/linux/s390x.rs @@ -791,6 +791,9 @@ pub const MAP_HUGETLB: ::c_int = 0x040000;  pub const EFD_NONBLOCK: ::c_int = 0x800; +pub const F_RDLCK: ::c_int = 0; +pub const F_WRLCK: ::c_int = 1; +pub const F_UNLCK: ::c_int = 2;  pub const F_GETLK: ::c_int = 5;  pub const F_GETOWN: ::c_int = 9;  pub const F_SETOWN: ::c_int = 8; diff --git a/libc/src/unix/notbsd/mod.rs b/libc/src/unix/notbsd/mod.rs index 9557d1b..6ff0807 100644 --- a/libc/src/unix/notbsd/mod.rs +++ b/libc/src/unix/notbsd/mod.rs @@ -623,9 +623,11 @@ pub const SOCK_RDM: ::c_int = 4;  pub const IP_MULTICAST_IF: ::c_int = 32;  pub const IP_MULTICAST_TTL: ::c_int = 33;  pub const IP_MULTICAST_LOOP: ::c_int = 34; +pub const IP_TOS: ::c_int = 1;  pub const IP_TTL: ::c_int = 2;  pub const IP_HDRINCL: ::c_int = 3;  pub const IP_PKTINFO: ::c_int = 8; +pub const IP_RECVTOS: ::c_int = 13;  pub const IP_ADD_MEMBERSHIP: ::c_int = 35;  pub const IP_DROP_MEMBERSHIP: ::c_int = 36;  pub const IP_TRANSPARENT: ::c_int = 19; @@ -638,6 +640,8 @@ pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21;  pub const IPV6_V6ONLY: ::c_int = 26;  pub const IPV6_RECVPKTINFO: ::c_int = 49;  pub const IPV6_PKTINFO: ::c_int = 50; +pub const IPV6_RECVTCLASS: ::c_int = 66; +pub const IPV6_TCLASS: ::c_int = 67;  pub const TCP_NODELAY: ::c_int = 1;  pub const TCP_MAXSEG: ::c_int = 2; @@ -874,6 +878,11 @@ pub const IPTOS_PREC_IMMEDIATE: u8 = 0x40;  pub const IPTOS_PREC_PRIORITY: u8 = 0x20;  pub const IPTOS_PREC_ROUTINE: u8 = 0x00; +pub const IPTOS_ECN_MASK: u8 = 0x03; +pub const IPTOS_ECN_ECT1: u8 = 0x01; +pub const IPTOS_ECN_ECT0: u8 = 0x02; +pub const IPTOS_ECN_CE: u8 = 0x03; +  pub const IPOPT_COPY: u8 = 0x80;  pub const IPOPT_CLASS_MASK: u8 = 0x60;  pub const IPOPT_NUMBER_MASK: u8 = 0x1f; @@ -1087,6 +1096,10 @@ f! {      pub fn IPOPT_NUMBER(o: u8) -> u8 {          o & IPOPT_NUMBER_MASK      } + +    pub fn IPTOS_ECN(x: u8) -> u8 { +        x & ::IPTOS_ECN_MASK +    }  }  extern { diff --git a/libc/src/windows/gnu.rs b/libc/src/windows/gnu.rs index a67af15..45e7dda 100644 --- a/libc/src/windows/gnu.rs +++ b/libc/src/windows/gnu.rs @@ -1,8 +1,13 @@  pub const L_tmpnam: ::c_uint = 14;  pub const TMP_MAX: ::c_uint = 0x7fff; +// stdio file descriptor numbers +pub const STDIN_FILENO: ::c_int = 0; +pub const STDOUT_FILENO: ::c_int = 1; +pub const STDERR_FILENO: ::c_int = 2; +  extern {      pub fn strcasecmp(s1: *const ::c_char, s2: *const ::c_char) -> ::c_int;      pub fn strncasecmp(s1: *const ::c_char, s2: *const ::c_char, -                    n: ::size_t) -> ::c_int; +                       n: ::size_t) -> ::c_int;  } diff --git a/libc/src/windows/mod.rs b/libc/src/windows/mod.rs index f46eb36..4bea459 100644 --- a/libc/src/windows/mod.rs +++ b/libc/src/windows/mod.rs @@ -27,6 +27,7 @@ pub type ptrdiff_t = isize;  pub type intptr_t = isize;  pub type uintptr_t = usize;  pub type ssize_t = isize; +pub type sighandler_t = usize;  pub type c_char = i8;  pub type c_long = i32; @@ -49,6 +50,8 @@ pub type ino_t = u16;  pub enum timezone {}  pub type time64_t = i64; +pub type SOCKET = ::uintptr_t; +  s! {      // note this is the struct called stat64 in Windows. Not stat, nor stati64.      pub struct stat { @@ -72,15 +75,15 @@ s! {      }      pub struct tm { -        tm_sec: ::c_int, -        tm_min: ::c_int, -        tm_hour: ::c_int, -        tm_mday: ::c_int, -        tm_mon: ::c_int, -        tm_year: ::c_int, -        tm_wday: ::c_int, -        tm_yday: ::c_int, -        tm_isdst: ::c_int, +        pub tm_sec: ::c_int, +        pub tm_min: ::c_int, +        pub tm_hour: ::c_int, +        pub tm_mday: ::c_int, +        pub tm_mon: ::c_int, +        pub tm_year: ::c_int, +        pub tm_wday: ::c_int, +        pub tm_yday: ::c_int, +        pub tm_isdst: ::c_int,      }      pub struct timeval { @@ -92,6 +95,11 @@ s! {          pub tv_sec: time_t,          pub tv_nsec: c_long,      } + +    pub struct sockaddr { +        pub sa_family: c_ushort, +        pub sa_data: [c_char; 14], +    }  }  pub const INT_MIN: c_int = -2147483648; @@ -177,6 +185,16 @@ pub const ENOTEMPTY: ::c_int = 41;  pub const EILSEQ: ::c_int = 42;  pub const STRUNCATE: ::c_int = 80; +// signal codes +pub const SIGINT: ::c_int = 2; +pub const SIGILL: ::c_int = 4; +pub const SIGFPE: ::c_int = 8; +pub const SIGSEGV: ::c_int = 11; +pub const SIGTERM: ::c_int = 15; +pub const SIGABRT: ::c_int = 22; +pub const NSIG: ::c_int = 23; +pub const SIG_ERR: ::c_int = -1; +  // inline comment below appeases style checker  #[cfg(all(target_env = "msvc", feature = "rustc-dep-of-std"))] // " if "  #[link(name = "msvcrt", cfg(not(target_feature = "crt-static")))] @@ -287,6 +305,9 @@ extern {      pub fn rand() -> c_int;      pub fn srand(seed: c_uint); +    pub fn signal(signum: c_int, handler: sighandler_t) -> sighandler_t; +    pub fn raise(signum: c_int) -> c_int; +      #[link_name = "_chmod"]      pub fn chmod(path: *const c_char, mode: ::c_int) -> ::c_int;      #[link_name = "_wchmod"] @@ -369,6 +390,34 @@ extern {                        locale: *const wchar_t) -> *mut wchar_t;  } +extern "system" { +    pub fn listen(s: SOCKET, backlog: ::c_int) -> ::c_int; +    pub fn accept(s: SOCKET, addr: *mut ::sockaddr, +                  addrlen: *mut ::c_int) -> SOCKET; +    pub fn bind(s: SOCKET, name: *const ::sockaddr, +                namelen: ::c_int) -> ::c_int; +    pub fn connect(s: SOCKET, name: *const ::sockaddr, +                   namelen: ::c_int) -> ::c_int; +    pub fn getpeername(s: SOCKET, name: *mut ::sockaddr, +                       nameln: *mut ::c_int) -> ::c_int; +    pub fn getsockname(s: SOCKET, name: *mut ::sockaddr, +                       nameln: *mut ::c_int) -> ::c_int; +    pub fn getsockopt(s: SOCKET, level: ::c_int, optname: ::c_int, +                      optval: *mut ::c_char, +                      optlen: *mut ::c_int) -> ::c_int; +    pub fn recvfrom(s: SOCKET, buf: *mut  ::c_char, len: ::c_int, +                    flags: ::c_int, from: *mut ::sockaddr, +                    fromlen: *mut ::c_int) -> ::c_int; +    pub fn sendto(s: SOCKET, buf: *const  ::c_char, len: ::c_int, +                  flags: ::c_int, to: *const ::sockaddr, +                  tolen: ::c_int) -> ::c_int; +    pub fn setsockopt(s: SOCKET, level: ::c_int, optname: ::c_int, +                      optval: *const  ::c_char, +                      optlen: ::c_int) -> ::c_int; +    pub fn socket(af: ::c_int, socket_type: ::c_int, +                  protocol: ::c_int) -> SOCKET; +} +  cfg_if! {      if #[cfg(core_cvoid)] {          pub use core::ffi::c_void; diff --git a/libc/src/windows/msvc.rs b/libc/src/windows/msvc.rs index 9e2a9b9..1ebfcad 100644 --- a/libc/src/windows/msvc.rs +++ b/libc/src/windows/msvc.rs @@ -7,4 +7,4 @@ extern {      #[link_name = "_strnicmp"]      pub fn strnicmp(s1: *const ::c_char, s2: *const ::c_char,                      n: ::size_t) -> ::c_int; -}
\ No newline at end of file +} | 
