diff options
author | наб <nabijaczleweli@nabijaczleweli.xyz> | 2020-12-27 18:00:29 +0100 |
---|---|---|
committer | наб <nabijaczleweli@nabijaczleweli.xyz> | 2021-02-15 18:59:47 +0100 |
commit | 1f69c1da2facf7d5d14d290081d58813744c687e (patch) | |
tree | b714f8c05bbc6ab6a956fa139758f0f65fc08d55 | |
parent | 2abfdb4123f55e3475d8c1b10436682b511de09b (diff) | |
download | nix-1f69c1da2facf7d5d14d290081d58813744c687e.zip |
Port sysinfo to x32
-rw-r--r-- | src/sys/sysinfo.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/sys/sysinfo.rs b/src/sys/sysinfo.rs index f4b82798..222a2fc0 100644 --- a/src/sys/sysinfo.rs +++ b/src/sys/sysinfo.rs @@ -10,6 +10,12 @@ use crate::errno::Errno; #[repr(transparent)] pub struct SysInfo(libc::sysinfo); +// The fields are c_ulong on 32-bit linux, u64 on 64-bit linux; x32's ulong is u32 +#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] +type mem_blocks_t = u64; +#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] +type mem_blocks_t = libc::c_ulong; + impl SysInfo { /// Returns the load average tuple. /// @@ -58,7 +64,7 @@ impl SysInfo { self.scale_mem(self.0.freeram) } - fn scale_mem(&self, units: libc::c_ulong) -> u64 { + fn scale_mem(&self, units: mem_blocks_t) -> u64 { units as u64 * self.0.mem_unit as u64 } } |