linux_api/
sysinfo.rs

1use crate::bindings;
2
3// Manually translated from linux/sysinfo.h.
4// bindgen incorrectly generates an IncompleteArrayField at the end.
5#[allow(non_camel_case_types)]
6#[repr(C)]
7#[derive(Debug, Copy, Clone)]
8pub struct linux_sysinfo {
9    /// Seconds since boot
10    pub uptime: bindings::linux___kernel_long_t,
11    /// 1, 5, and 15 minute load averages
12    pub loads: [bindings::linux___kernel_ulong_t; 3],
13    /// Total usable main memory size
14    pub totalram: bindings::linux___kernel_ulong_t,
15    /// Available memory size
16    pub freeram: bindings::linux___kernel_ulong_t,
17    /// Amount of shared memory
18    pub sharedram: bindings::linux___kernel_ulong_t,
19    /// Memory used by buffers
20    pub bufferram: bindings::linux___kernel_ulong_t,
21    /// Total swap space size
22    pub totalswap: bindings::linux___kernel_ulong_t,
23    /// swap space still available
24    pub freeswap: bindings::linux___kernel_ulong_t,
25    /// Number of current processes
26    pub procs: bindings::linux___u16,
27    /// Explicit padding for m68k
28    pub pad: bindings::linux___u16,
29    /// Total high memory size
30    pub totalhigh: bindings::linux___kernel_ulong_t,
31    /// Available high memory size
32    pub freehigh: bindings::linux___kernel_ulong_t,
33    /// Memory unit size in bytes
34    pub mem_unit: bindings::linux___u32,
35    /// Padding: libc5 uses this..
36    //
37    // Manually translated from
38    // `char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)];`
39    pub l_f: [core::ffi::c_char;
40        20 - 2 * core::mem::size_of::<bindings::linux___kernel_ulong_t>()
41            - core::mem::size_of::<bindings::linux___u32>()],
42}
43
44#[allow(non_camel_case_types)]
45pub type sysinfo = linux_sysinfo;
46unsafe impl shadow_pod::Pod for sysinfo {}