From 7a1e86131361b5fae03517513d46c188399fa07b Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Sun, 22 Dec 2019 18:36:18 -0700 Subject: Fix the build on OpenBSD. We were assuming the wrong types for f_iosize and f_ffree in struct statfs on OpenBSD. Fixes #1125 --- src/sys/statfs.rs | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) (limited to 'src/sys/statfs.rs') diff --git a/src/sys/statfs.rs b/src/sys/statfs.rs index c71b5767..f463400e 100644 --- a/src/sys/statfs.rs +++ b/src/sys/statfs.rs @@ -106,11 +106,17 @@ impl Statfs { } /// Optimal transfer block size - #[cfg(any(target_os = "ios", target_os = "macos", target_os = "openbsd"))] + #[cfg(any(target_os = "ios", target_os = "macos"))] pub fn optimal_transfer_size(&self) -> i32 { self.0.f_iosize } + /// Optimal transfer block size + #[cfg(target_os = "openbsd")] + pub fn optimal_transfer_size(&self) -> u32 { + self.0.f_iosize + } + /// Optimal transfer block size #[cfg(all(target_os = "linux", target_arch = "s390x"))] pub fn optimal_transfer_size(&self) -> u32 { @@ -118,7 +124,10 @@ impl Statfs { } /// Optimal transfer block size - #[cfg(all(target_os = "linux", target_env = "musl"))] + #[cfg(any( + target_os = "android", + all(target_os = "linux", target_env = "musl") + ))] pub fn optimal_transfer_size(&self) -> libc::c_ulong { self.0.f_bsize } @@ -129,12 +138,6 @@ impl Statfs { self.0.f_bsize } - /// Optimal transfer block size - #[cfg(target_os = "android")] - pub fn optimal_transfer_size(&self) -> libc::c_ulong { - self.0.f_bsize - } - /// Optimal transfer block size #[cfg(target_os = "dragonfly")] pub fn optimal_transfer_size(&self) -> libc::c_long { @@ -375,7 +378,13 @@ impl Statfs { } /// Free file nodes in filesystem - #[cfg(any(target_os = "ios", target_os = "macos", target_os = "android"))] + #[cfg(any( + target_os = "android", + target_os = "ios", + all(target_os = "linux", target_env = "musl"), + target_os = "macos", + target_os = "openbsd" + ))] pub fn files_free(&self) -> u64 { self.0.f_ffree } @@ -387,17 +396,11 @@ impl Statfs { } /// Free file nodes in filesystem - #[cfg(any(target_os = "freebsd", target_os = "openbsd"))] + #[cfg(target_os = "freebsd")] pub fn files_free(&self) -> i64 { self.0.f_ffree } - /// Free file nodes in filesystem - #[cfg(all(target_os = "linux", target_env = "musl"))] - pub fn files_free(&self) -> u64 { - self.0.f_ffree - } - /// Free file nodes in filesystem #[cfg(not(any( target_os = "ios", -- cgit v1.2.3