]> granicus.if.org Git - strace/blob - sysinfo.c
bfin, csky, m68k, sh: fix build regression
[strace] / sysinfo.c
1 /*
2  * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
3  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
4  * Copyright (c) 1993-1996 Rick Sladkey <jrs@world.std.com>
5  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
6  * Copyright (c) 2012 H.J. Lu <hongjiu.lu@intel.com>
7  * Copyright (c) 2012 Denys Vlasenko <vda.linux@googlemail.com>
8  * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
9  * Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com>
10  * Copyright (c) 2014-2018 The strace developers.
11  * All rights reserved.
12  *
13  * SPDX-License-Identifier: LGPL-2.1-or-later
14  */
15
16 #include "defs.h"
17 #include DEF_MPERS_TYPE(sysinfo_t)
18 #include <sys/sysinfo.h>
19 typedef struct sysinfo sysinfo_t;
20 #include MPERS_DEFS
21
22 SYS_FUNC(sysinfo)
23 {
24         sysinfo_t si;
25
26         if (entering(tcp))
27                 return 0;
28
29         if (!umove_or_printaddr(tcp, tcp->u_arg[0], &si)) {
30                 tprintf("{uptime=%llu"
31                         ", loads=[%llu, %llu, %llu]"
32                         ", totalram=%llu"
33                         ", freeram=%llu"
34                         ", sharedram=%llu"
35                         ", bufferram=%llu"
36                         ", totalswap=%llu"
37                         ", freeswap=%llu"
38                         ", procs=%u"
39                         ", totalhigh=%llu"
40                         ", freehigh=%llu"
41                         ", mem_unit=%u"
42                         "}",
43                         zero_extend_signed_to_ull(si.uptime)
44                         , zero_extend_signed_to_ull(si.loads[0])
45                         , zero_extend_signed_to_ull(si.loads[1])
46                         , zero_extend_signed_to_ull(si.loads[2])
47                         , zero_extend_signed_to_ull(si.totalram)
48                         , zero_extend_signed_to_ull(si.freeram)
49                         , zero_extend_signed_to_ull(si.sharedram)
50                         , zero_extend_signed_to_ull(si.bufferram)
51                         , zero_extend_signed_to_ull(si.totalswap)
52                         , zero_extend_signed_to_ull(si.freeswap)
53                         , (unsigned) si.procs
54                         , zero_extend_signed_to_ull(si.totalhigh)
55                         , zero_extend_signed_to_ull(si.freehigh)
56                         , si.mem_unit
57                         );
58         }
59
60         return 0;
61 }