]> granicus.if.org Git - strace/blob - sysinfo.c
e37c4a2c657a8951406157ddc4d78d2f6fa45b0b
[strace] / sysinfo.c
1 #include "defs.h"
2 #include <sys/sysinfo.h>
3
4 int
5 sys_sysinfo(struct tcb *tcp)
6 {
7         struct sysinfo si;
8
9         if (exiting(tcp)) {
10                 if (syserror(tcp) || !verbose(tcp))
11                         tprintf("%#lx", tcp->u_arg[0]);
12                 else if (umove(tcp, tcp->u_arg[0], &si) < 0)
13                         tprints("{...}");
14                 else {
15                         tprintf("{uptime=%lu, loads=[%lu, %lu, %lu] ",
16                                 (long) si.uptime, (long) si.loads[0],
17                                 (long) si.loads[1], (long) si.loads[2]);
18                         tprintf("totalram=%lu, freeram=%lu, ",
19                                 (long) si.totalram, (long) si.freeram);
20                         tprintf("sharedram=%lu, bufferram=%lu} ",
21                                 (long) si.sharedram, (long) si.bufferram);
22                         tprintf("totalswap=%lu, freeswap=%lu, procs=%u}",
23                                 (long) si.totalswap, (long) si.freeswap,
24                                 (unsigned)si.procs);
25                 }
26         }
27         return 0;
28 }