1use core::ffi::{c_uint, c_ulong};
2
3#[repr(C)]
6#[derive(Debug, Clone, Copy)]
7pub struct SysInfo {
8 pub uptime: c_ulong,
10 pub loads: [c_ulong; 3],
12 pub totalram: c_ulong,
14 pub freeram: c_ulong,
16 pub sharedram: c_ulong,
18 pub bufferram: c_ulong,
20 pub totalswap: c_ulong,
22 pub freeswap: c_ulong,
24 pub procs: u16,
26 pub totalhigh: c_ulong,
28 pub freehigh: c_ulong,
30 pub mem_unit: c_uint,
32 pub _reserved: [u8; 256],
34}
35
36impl SysInfo {
37 pub fn new() -> Self {
39 Self {
40 uptime: 0,
41 loads: [0; 3],
42 totalram: 0,
43 freeram: 0,
44 sharedram: 0,
45 bufferram: 0,
46 totalswap: 0,
47 freeswap: 0,
48 procs: 0,
49 totalhigh: 0,
50 freehigh: 0,
51 mem_unit: 0,
52 _reserved: [0; 256],
53 }
54 }
55}