Squashed commit of the following:

Running libc-test: PASSED 3426 tests

commit 1a7ee714db34f17abd33dc9262d3e10275eec68d
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:30:56 2016 +0100

    Fix RLIM_POSIXLOCKS ->  RLIMIT_POSIXLOCKS

commit 09c49a97ebebf087486659ef8277610d99e5c7b3
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:29:24 2016 +0100

    Ignore signedness check for uuid_t on DragonFly

commit aab4d11f59917686280c271683bf00ff34c8040d
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:23:21 2016 +0100

    Move FreeBSD-only function into freebsd/mod.rs

commit 9921f030b103dbccb37930ab1d64cf1dd587bd48
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:21:42 2016 +0100

    Move POSIX_FADV_* to freebsd/mod.rs

commit 2921c2db1e3d0314375aa371936bd227cc6c6e2a
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:20:11 2016 +0100

    Fix signedness of blksize_t for DragonFly

commit 65e817baee9e01d2d7c86c6202c63ee46d218914
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:19:02 2016 +0100

    Fix Q_{GET,SET}QUOTA for DragonFly

commit a0d2d63ef88206d321222140ae6b3d92c93b51bd
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:17:27 2016 +0100

    Fix RLIMIT_* for DragonFly

commit d04a1600a7c66a792a481e1524a1652234a69939
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:12:09 2016 +0100

    Fix ELAST for DragonFly

commit d120b9278426a76ee106e91e6c999885c1f5c7f4
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:10:28 2016 +0100

    Fix F_GETLK, F_SETLK, F_SETLKW for DragonFly

commit 963f7da270a14f4d12ea1a52301e363ce745c897
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:08:51 2016 +0100

    Fix O_CLOEXEC for DragonFly

commit f4d6c9d5991d690c7cb4460790a8e37e713bc034
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:07:18 2016 +0100

    Fix RAND_MAX for DragonFly

commit ba48336da7be613a49702ad9de445ab3850ebb7c
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 13:04:48 2016 +0100

    Fix statvfs for DragonFly

commit 9ae480c60a7d77b31a17d34320464f4179e40a4a
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 12:51:47 2016 +0100

    Fix fd_set for DragonFly

commit a15e027838288c4980371c503252cca7e32356c0
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 12:42:24 2016 +0100

    Fix all remaining issues on DragonFly

    Missing functions and missing constats.

commit 3966e4fce0cb81bd0b3ed8cdf50611e6982f7767
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 12:27:14 2016 +0100

    Use a macro instead of a constant.

    When using a constant, the libc-test thinks this constant
    exists as an C equivalent.

commit 9b5659aaf54419f317250cb3a4692a1c14fdbc33
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 12:21:01 2016 +0100

    Use a constant in utsname

commit 50484eda3c978a9c0a9652f6fc619c41ad349c2d
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 12:17:55 2016 +0100

    Fix struct utsname

commit 832e94248fabc91574d6d42630168da3542c153f
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 12:07:08 2016 +0100

    DragonFly has different stat, dirent, clock_t, ino_t, nlink_t, blksize_t

commit f3152a369d75ae8c1558afa5a59aa55e33b33ec6
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 11:52:54 2016 +0100

    Move DragonFly related stuff into dragonfly/*

    Replicate x86_64.rs from FreeBSD. Need some twists.

commit 9fe35124064aa92303171d019004df119f948223
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 11:49:38 2016 +0100

    Move FreeBSD code under freebsd/*.

    Next commit will replicate some of the architecture dependent stuff
    for DragonFly.

commit e91983df8deb14004f7a0fe47878f0e4eb31198d
Author: Michael Neumann <mneumann@ntecs.de>
Date:   Sat Feb 20 11:44:25 2016 +0100

    struct utsname has a different size on DragonFly
This commit is contained in:
Michael Neumann 2016-02-20 13:34:01 +01:00
parent 054147a207
commit a6a64d17a0
10 changed files with 225 additions and 100 deletions

View File

@ -14,11 +14,12 @@ fn main() {
let apple = target.contains("apple");
let musl = target.contains("musl");
let freebsd = target.contains("freebsd");
let dragonfly = target.contains("dragonfly");
let mips = target.contains("mips");
let netbsd = target.contains("netbsd");
let openbsd = target.contains("openbsd");
let rumprun = target.contains("rumprun");
let bsdlike = freebsd || apple || netbsd || openbsd;
let bsdlike = freebsd || apple || netbsd || openbsd || dragonfly;
let mut cfg = ctest::TestGenerator::new();
// Pull in extra goodies on linux/mingw
@ -103,7 +104,7 @@ fn main() {
cfg.header("ifaddrs.h");
cfg.header("sys/statvfs.h");
if !openbsd && !freebsd {
if !openbsd && !freebsd && !dragonfly {
cfg.header("sys/quota.h");
}
@ -177,6 +178,12 @@ fn main() {
cfg.header("sys/syscall.h");
}
if dragonfly {
cfg.header("ufs/ufs/quota.h");
cfg.header("pthread_np.h");
cfg.header("sys/ioctl_compat.h");
}
cfg.type_name(move |ty, is_struct| {
match ty {
// Just pass all these through, no need for a "struct" prefix
@ -192,6 +199,9 @@ fn main() {
// OSX calls this something else
"sighandler_t" if bsdlike => "sig_t".to_string(),
// does not exist on DragonFly
"fflags_t" if dragonfly => "uint32_t".to_string(),
t if t.ends_with("_t") => t.to_string(),
// Windows uppercase structs don't have `struct` in front, there's a
@ -254,12 +264,13 @@ fn main() {
}
});
cfg.skip_signededness(|c| {
cfg.skip_signededness(move |c| {
match c {
"LARGE_INTEGER" |
"mach_timebase_info_data_t" |
"float" |
"double" => true,
"uuid_t" if dragonfly => true,
n if n.starts_with("pthread") => true,
// windows-isms
@ -321,7 +332,7 @@ fn main() {
"strerror_r" if linux => true, // actually xpg-something-or-other
// typed 2nd arg on linux and android
"gettimeofday" if linux || android || freebsd || openbsd => true,
"gettimeofday" if linux || android || freebsd || openbsd || dragonfly => true,
// not declared in newer android toolchains
"getdtablesize" if android => true,

View File

@ -1,11 +0,0 @@
pub type fsblkcnt_t = ::c_uint;
pub type fsfilcnt_t = ::c_uint;
pub const PTHREAD_STACK_MIN: ::size_t = 1024;
pub const KERN_PROC_PATHNAME: ::c_int = 9;
pub const SIGSTKSZ: ::size_t = 40960;
pub const MADV_INVAL: ::c_int = 10;
extern {
pub fn __dfly_error() -> *const ::c_int;
}

View File

@ -0,0 +1,76 @@
cfg_if! {
if #[cfg(target_arch = "x86_64")] {
mod x86_64;
pub use self::x86_64::*;
} else {
// ...
}
}
pub type clock_t = u64;
pub type ino_t = u64;
pub type nlink_t = u32;
pub type blksize_t = i64;
s! {
pub struct dirent {
pub d_fileno: ::ino_t,
pub d_namlen: u16,
pub d_type: u8,
__unused1: u8,
__unused2: u32,
pub d_name: [::c_char; 256],
}
pub struct uuid {
time_low: u32,
time_mid: u16,
time_hi_and_version: u16,
clock_seq_hi_and_reserved: u8,
clock_seq_low: u8,
node: [u8; 6],
}
pub struct statvfs {
pub f_bsize: ::c_ulong,
pub f_frsize: ::c_ulong,
pub f_blocks: ::fsblkcnt_t,
pub f_bfree: ::fsblkcnt_t,
pub f_bavail: ::fsblkcnt_t,
pub f_files: ::fsfilcnt_t,
pub f_ffree: ::fsfilcnt_t,
pub f_favail: ::fsfilcnt_t,
pub f_fsid: ::c_ulong,
pub f_flag: ::c_ulong,
pub f_namemax: ::c_ulong,
pub f_owner: ::uid_t,
pub f_type: ::c_uint,
pub f_syncreads: u64,
pub f_syncwrites: u64,
pub f_asyncreads: u64,
pub f_asyncwrites: u64,
pub f_fsid_uuid: ::uuid_t,
pub f_uid_uuid: ::uuid_t,
}
}
pub type uuid_t = ::uuid;
pub type fsblkcnt_t = u64;
pub type fsfilcnt_t = u64;
pub const RAND_MAX: ::c_int = 0x7fff_ffff;
pub const PTHREAD_STACK_MIN: ::size_t = 1024;
pub const KERN_PROC_PATHNAME: ::c_int = 9;
pub const SIGSTKSZ: ::size_t = 40960;
pub const MADV_INVAL: ::c_int = 10;
pub const O_CLOEXEC: ::c_int = 0x00020000;
pub const F_GETLK: ::c_int = 7;
pub const F_SETLK: ::c_int = 8;
pub const F_SETLKW: ::c_int = 9;
pub const ELAST: ::c_int = 99;
pub const RLIMIT_POSIXLOCKS: ::c_int = 11;
pub const RLIM_NLIMITS: ::rlim_t = 12;
pub const Q_GETQUOTA: ::c_int = 0x300;
pub const Q_SETQUOTA: ::c_int = 0x400;

View File

@ -0,0 +1,31 @@
pub type c_long = i64;
pub type c_ulong = u64;
pub type time_t = i64;
pub type suseconds_t = i64;
s! {
pub struct stat {
pub st_ino: ::ino_t,
pub st_nlink: ::nlink_t,
pub st_dev: ::dev_t,
pub st_mode: ::mode_t,
pub st_padding1: ::uint16_t,
pub st_uid: ::uid_t,
pub st_gid: ::gid_t,
pub st_rdev: ::dev_t,
pub st_atime: ::time_t,
pub st_atime_nsec: ::c_long,
pub st_mtime: ::time_t,
pub st_mtime_nsec: ::c_long,
pub st_ctime: ::time_t,
pub st_ctime_nsec: ::c_long,
pub st_size: ::off_t,
pub st_blocks: ::int64_t,
pub st_blksize: ::uint32_t,
pub st_flags: ::fflags_t,
pub st_gen: ::uint32_t,
pub st_lspare: ::int32_t,
pub st_qspare1: ::int64_t,
pub st_qspare2: ::int64_t,
}
}

View File

@ -1,13 +0,0 @@
pub type fsblkcnt_t = ::uint64_t;
pub type fsfilcnt_t = ::uint64_t;
pub const PTHREAD_STACK_MIN: ::size_t = 2048;
pub const KERN_PROC_PATHNAME: ::c_int = 12;
pub const SIGSTKSZ: ::size_t = 34816;
pub const SF_NODISKIO: ::c_int = 0x00000001;
pub const SF_MNOWAIT: ::c_int = 0x00000002;
pub const SF_SYNC: ::c_int = 0x00000004;
extern {
pub fn __error() -> *mut ::c_int;
}

View File

@ -0,0 +1,80 @@
cfg_if! {
if #[cfg(target_arch = "x86")] {
mod x86;
pub use self::x86::*;
} else if #[cfg(target_arch = "x86_64")] {
mod x86_64;
pub use self::x86_64::*;
} else {
// ...
}
}
pub type clock_t = i32;
pub type ino_t = u32;
pub type nlink_t = u16;
pub type blksize_t = u32;
s! {
pub struct dirent {
pub d_fileno: u32,
pub d_reclen: u16,
pub d_type: u8,
pub d_namlen: u8,
pub d_name: [::c_char; 256],
}
pub struct statvfs {
pub f_bavail: ::fsblkcnt_t,
pub f_bfree: ::fsblkcnt_t,
pub f_blocks: ::fsblkcnt_t,
pub f_favail: ::fsfilcnt_t,
pub f_ffree: ::fsfilcnt_t,
pub f_files: ::fsfilcnt_t,
pub f_bsize: ::c_ulong,
pub f_flag: ::c_ulong,
pub f_frsize: ::c_ulong,
pub f_fsid: ::c_ulong,
pub f_namemax: ::c_ulong,
}
}
pub type fsblkcnt_t = ::uint64_t;
pub type fsfilcnt_t = ::uint64_t;
pub const RAND_MAX: ::c_int = 0x7fff_fffd;
pub const PTHREAD_STACK_MIN: ::size_t = 2048;
pub const KERN_PROC_PATHNAME: ::c_int = 12;
pub const SIGSTKSZ: ::size_t = 34816;
pub const SF_NODISKIO: ::c_int = 0x00000001;
pub const SF_MNOWAIT: ::c_int = 0x00000002;
pub const SF_SYNC: ::c_int = 0x00000004;
pub const O_CLOEXEC: ::c_int = 0x00100000;
pub const F_GETLK: ::c_int = 11;
pub const F_SETLK: ::c_int = 12;
pub const F_SETLKW: ::c_int = 13;
pub const ELAST: ::c_int = 96;
pub const RLIMIT_NPTS: ::c_int = 11;
pub const RLIMIT_SWAP: ::c_int = 12;
pub const RLIM_NLIMITS: ::rlim_t = 13;
pub const Q_GETQUOTA: ::c_int = 0x700;
pub const Q_SETQUOTA: ::c_int = 0x800;
pub const POSIX_FADV_NORMAL: ::c_int = 0;
pub const POSIX_FADV_RANDOM: ::c_int = 1;
pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2;
pub const POSIX_FADV_WILLNEED: ::c_int = 3;
pub const POSIX_FADV_DONTNEED: ::c_int = 4;
pub const POSIX_FADV_NOREUSE: ::c_int = 5;
extern {
pub fn __error() -> *mut ::c_int;
pub fn posix_fallocate(fd: ::c_int, offset: ::off_t,
len: ::off_t) -> ::c_int;
pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t,
advise: ::c_int) -> ::c_int;
pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int;
pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int;
}

View File

@ -1,9 +1,5 @@
pub type clock_t = i32;
pub type dev_t = u32;
pub type ino_t = u32;
pub type mode_t = u16;
pub type nlink_t = u16;
pub type blksize_t = u32;
pub type fflags_t = u32;
pub type pthread_attr_t = *mut ::c_void;
pub type rlim_t = i64;
@ -18,14 +14,6 @@ pub type speed_t = ::c_uint;
pub enum timezone {}
s! {
pub struct dirent {
pub d_fileno: u32,
pub d_reclen: u16,
pub d_type: u8,
pub d_namlen: u8,
pub d_name: [::c_char; 256],
}
pub struct glob_t {
pub gl_pathc: ::size_t,
__unused1: ::size_t,
@ -88,20 +76,6 @@ s! {
pub ss_flags: ::c_int,
}
pub struct statvfs {
pub f_bavail: ::fsblkcnt_t,
pub f_bfree: ::fsblkcnt_t,
pub f_blocks: ::fsblkcnt_t,
pub f_favail: ::fsfilcnt_t,
pub f_ffree: ::fsfilcnt_t,
pub f_files: ::fsfilcnt_t,
pub f_bsize: ::c_ulong,
pub f_flag: ::c_ulong,
pub f_frsize: ::c_ulong,
pub f_fsid: ::c_ulong,
pub f_namemax: ::c_ulong,
}
pub struct sched_param {
pub sched_priority: ::c_int,
}
@ -137,6 +111,7 @@ s! {
pub l_pid: ::pid_t,
pub l_type: ::c_short,
pub l_whence: ::c_short,
#[cfg(not(target_os = "dragonfly"))]
pub l_sysid: ::c_int,
}
@ -150,7 +125,6 @@ s! {
pub const EXIT_FAILURE: ::c_int = 1;
pub const EXIT_SUCCESS: ::c_int = 0;
pub const RAND_MAX: ::c_int = 0x7fff_fffd;
pub const EOF: ::c_int = -1;
pub const SEEK_SET: ::c_int = 0;
pub const SEEK_CUR: ::c_int = 1;
@ -173,7 +147,6 @@ pub const O_CREAT: ::c_int = 512;
pub const O_EXCL: ::c_int = 2048;
pub const O_NOCTTY: ::c_int = 32768;
pub const O_TRUNC: ::c_int = 1024;
pub const O_CLOEXEC: ::c_int = 0x00100000;
pub const S_IFIFO: mode_t = 4096;
pub const S_IFCHR: mode_t = 8192;
pub const S_IFBLK: mode_t = 24576;
@ -209,9 +182,6 @@ pub const F_TEST: ::c_int = 3;
pub const F_TLOCK: ::c_int = 2;
pub const F_ULOCK: ::c_int = 0;
pub const F_DUPFD_CLOEXEC: ::c_int = 17;
pub const F_GETLK: ::c_int = 11;
pub const F_SETLK: ::c_int = 12;
pub const F_SETLKW: ::c_int = 13;
pub const SIGHUP: ::c_int = 1;
pub const SIGINT: ::c_int = 2;
pub const SIGQUIT: ::c_int = 3;
@ -337,7 +307,6 @@ pub const EBADMSG: ::c_int = 89;
pub const EMULTIHOP: ::c_int = 90;
pub const ENOLINK: ::c_int = 91;
pub const EPROTO: ::c_int = 92;
pub const ELAST: ::c_int = 96;
pub const F_DUPFD: ::c_int = 0;
pub const F_GETFD: ::c_int = 1;
@ -365,13 +334,6 @@ pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2;
pub const POSIX_MADV_WILLNEED: ::c_int = 3;
pub const POSIX_MADV_DONTNEED: ::c_int = 4;
pub const POSIX_FADV_NORMAL: ::c_int = 0;
pub const POSIX_FADV_RANDOM: ::c_int = 1;
pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2;
pub const POSIX_FADV_WILLNEED: ::c_int = 3;
pub const POSIX_FADV_DONTNEED: ::c_int = 4;
pub const POSIX_FADV_NOREUSE: ::c_int = 5;
pub const _SC_IOV_MAX: ::c_int = 56;
pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 70;
pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 71;
@ -420,14 +382,11 @@ pub const RLIMIT_NOFILE: ::c_int = 8;
pub const RLIMIT_SBSIZE: ::c_int = 9;
pub const RLIMIT_VMEM: ::c_int = 10;
pub const RLIMIT_AS: ::c_int = RLIMIT_VMEM;
pub const RLIMIT_NPTS: ::c_int = 11;
pub const RLIMIT_SWAP: ::c_int = 12;
pub const RLIM_NLIMITS: rlim_t = 13;
pub const RLIM_INFINITY: rlim_t = 0x7fff_ffff_ffff_ffff;
pub const RUSAGE_SELF: ::c_int = 0;
pub const RUSAGE_CHILDREN: ::c_int = -1;
#[cfg(not(target_os = "dragonfly"))]
pub const RUSAGE_THREAD: ::c_int = 1;
pub const MADV_NORMAL: ::c_int = 0;
@ -440,6 +399,7 @@ pub const MADV_NOSYNC: ::c_int = 6;
pub const MADV_AUTOSYNC: ::c_int = 7;
pub const MADV_NOCORE: ::c_int = 8;
pub const MADV_CORE: ::c_int = 9;
#[cfg(not(target_os = "dragonfly"))]
pub const MADV_PROTECT: ::c_int = 10;
pub const MINCORE_INCORE: ::c_int = 0x1;
@ -584,9 +544,6 @@ pub const ST_NOSUID: ::c_ulong = 2;
pub const NI_MAXHOST: ::size_t = 1025;
pub const Q_GETQUOTA: ::c_int = 0x700;
pub const Q_SETQUOTA: ::c_int = 0x800;
pub const RTLD_LOCAL: ::c_int = 0;
pub const RTLD_NODELETE: ::c_int = 0x1000;
pub const RTLD_NOLOAD: ::c_int = 0x2000;
@ -606,8 +563,12 @@ extern {
mibp: *mut ::c_int,
sizep: *mut ::size_t)
-> ::c_int;
#[cfg(not(target_os = "dragonfly"))]
pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int)
-> ::c_int;
#[cfg(target_os = "dragonfly")]
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int)
-> ::c_int;
pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t)
-> ::c_int;
pub fn sysctl(name: *const ::c_int,
@ -623,10 +584,12 @@ extern {
newp: *const ::c_void,
newlen: ::size_t)
-> ::c_int;
#[cfg(not(target_os = "dragonfly"))]
pub fn clock_gettime(clk_id: ::c_int, tp: *mut ::timespec) -> ::c_int;
#[cfg(target_os = "dragonfly")]
pub fn clock_gettime(clk_id: ::uint64_t, tp: *mut ::timespec) -> ::c_int;
pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char);
pub fn posix_fallocate(fd: ::c_int, offset: ::off_t,
len: ::off_t) -> ::c_int;
pub fn sched_setscheduler(pid: ::pid_t, policy: ::c_int, param: *const sched_param) -> ::c_int;
pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int;
pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void;
@ -637,23 +600,6 @@ extern {
hdtr: *mut ::sf_hdtr,
sbytes: *mut ::off_t,
flags: ::c_int) -> ::c_int;
pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t,
advise: ::c_int) -> ::c_int;
pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int;
pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int;
}
cfg_if! {
if #[cfg(target_arch = "x86")] {
mod x86;
pub use self::x86::*;
} else if #[cfg(target_arch = "x86_64")] {
mod x86_64;
pub use self::x86_64::*;
} else {
// ...
}
}
cfg_if! {

View File

@ -10,6 +10,11 @@ pub type sa_family_t = u8;
pub type pthread_t = ::uintptr_t;
pub type nfds_t = ::c_uint;
#[cfg(not(target_os = "dragonfly"))]
macro_rules! utsname_len { () => (256) }
#[cfg(target_os = "dragonfly")]
macro_rules! utsname_len { () => (32) }
s! {
pub struct sockaddr {
pub sa_len: u8,
@ -63,10 +68,10 @@ s! {
pub struct fd_set {
#[cfg(all(target_pointer_width = "64",
target_os = "freebsd"))]
any(target_os = "freebsd", target_os = "dragonfly")))]
fds_bits: [i64; FD_SETSIZE / 64],
#[cfg(not(all(target_pointer_width = "64",
target_os = "freebsd")))]
any(target_os = "freebsd", target_os = "dragonfly"))))]
fds_bits: [i32; FD_SETSIZE / 32],
}
@ -85,11 +90,11 @@ s! {
}
pub struct utsname {
pub sysname: [::c_char; 256],
pub nodename: [::c_char; 256],
pub release: [::c_char; 256],
pub version: [::c_char; 256],
pub machine: [::c_char; 256],
pub sysname: [::c_char; utsname_len!()],
pub nodename: [::c_char; utsname_len!()],
pub release: [::c_char; utsname_len!()],
pub version: [::c_char; utsname_len!()],
pub machine: [::c_char; utsname_len!()],
}
pub struct msghdr {