blob: 46f4ed207a20cab55b09ecd530445379faed3afe [file] [log] [blame]
Dmitry V. Levin57d45a22014-09-29 23:13:05 +00001#include "defs.h"
Elvira Khabirova0ec7e212015-08-03 06:27:48 +03002#include DEF_MPERS_TYPE(sysinfo_t)
Dmitry V. Levin57d45a22014-09-29 23:13:05 +00003#include <sys/sysinfo.h>
Elvira Khabirova0ec7e212015-08-03 06:27:48 +03004typedef struct sysinfo sysinfo_t;
5#include MPERS_DEFS
Dmitry V. Levin57d45a22014-09-29 23:13:05 +00006
Dmitry V. Levina0bd3742015-04-07 01:36:50 +00007SYS_FUNC(sysinfo)
Dmitry V. Levin57d45a22014-09-29 23:13:05 +00008{
Elvira Khabirova0ec7e212015-08-03 06:27:48 +03009 sysinfo_t si;
Dmitry V. Levin57d45a22014-09-29 23:13:05 +000010
Dmitry V. Levin82a528d2014-09-29 23:29:56 +000011 if (entering(tcp))
12 return 0;
13
Dmitry V. Levinbe6d7912015-07-16 22:08:02 +000014 if (!umove_or_printaddr(tcp, tcp->u_arg[0], &si)) {
Dmitry V. Levin822892b2015-03-02 14:34:25 +000015 tprintf("{uptime=%llu"
16 ", loads=[%llu, %llu, %llu]"
17 ", totalram=%llu"
18 ", freeram=%llu"
19 ", sharedram=%llu"
20 ", bufferram=%llu"
21 ", totalswap=%llu"
22 ", freeswap=%llu"
Dmitry V. Levin82a528d2014-09-29 23:29:56 +000023 ", procs=%u"
Dmitry V. Levin822892b2015-03-02 14:34:25 +000024 ", totalhigh=%llu"
Dmitry V. Levin822892b2015-03-02 14:34:25 +000025 ", freehigh=%llu"
Dmitry V. Levin82a528d2014-09-29 23:29:56 +000026 ", mem_unit=%u"
Dmitry V. Levin82a528d2014-09-29 23:29:56 +000027 "}",
Dmitry V. Levin822892b2015-03-02 14:34:25 +000028 (unsigned long long) si.uptime
29 , (unsigned long long) si.loads[0]
30 , (unsigned long long) si.loads[1]
31 , (unsigned long long) si.loads[2]
32 , (unsigned long long) si.totalram
33 , (unsigned long long) si.freeram
34 , (unsigned long long) si.sharedram
35 , (unsigned long long) si.bufferram
36 , (unsigned long long) si.totalswap
37 , (unsigned long long) si.freeswap
Dmitry V. Levin82a528d2014-09-29 23:29:56 +000038 , (unsigned) si.procs
Dmitry V. Levin822892b2015-03-02 14:34:25 +000039 , (unsigned long long) si.totalhigh
Dmitry V. Levin822892b2015-03-02 14:34:25 +000040 , (unsigned long long) si.freehigh
Dmitry V. Levin82a528d2014-09-29 23:29:56 +000041 , si.mem_unit
Dmitry V. Levin82a528d2014-09-29 23:29:56 +000042 );
Dmitry V. Levin57d45a22014-09-29 23:13:05 +000043 }
Dmitry V. Levin82a528d2014-09-29 23:29:56 +000044
Dmitry V. Levin57d45a22014-09-29 23:13:05 +000045 return 0;
46}