sysinfo.c revision a0bd3749fc6fdf6364c1e269a4c02e8c153eb84b
1#include "defs.h" 2#include <sys/sysinfo.h> 3 4SYS_FUNC(sysinfo) 5{ 6 struct sysinfo si; 7 8 if (entering(tcp)) 9 return 0; 10 11 if (syserror(tcp) || !verbose(tcp) || 12 umove(tcp, tcp->u_arg[0], &si) < 0) { 13 tprintf("%#lx", tcp->u_arg[0]); 14 } else { 15 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" 23 ", procs=%u" 24#ifdef HAVE_STRUCT_SYSINFO_TOTALHIGH 25 ", totalhigh=%llu" 26#endif 27#ifdef HAVE_STRUCT_SYSINFO_FREEHIGH 28 ", freehigh=%llu" 29#endif 30#ifdef HAVE_STRUCT_SYSINFO_MEM_UNIT 31 ", mem_unit=%u" 32#endif 33 "}", 34 (unsigned long long) si.uptime 35 , (unsigned long long) si.loads[0] 36 , (unsigned long long) si.loads[1] 37 , (unsigned long long) si.loads[2] 38 , (unsigned long long) si.totalram 39 , (unsigned long long) si.freeram 40 , (unsigned long long) si.sharedram 41 , (unsigned long long) si.bufferram 42 , (unsigned long long) si.totalswap 43 , (unsigned long long) si.freeswap 44 , (unsigned) si.procs 45#ifdef HAVE_STRUCT_SYSINFO_TOTALHIGH 46 , (unsigned long long) si.totalhigh 47#endif 48#ifdef HAVE_STRUCT_SYSINFO_FREEHIGH 49 , (unsigned long long) si.freehigh 50#endif 51#ifdef HAVE_STRUCT_SYSINFO_MEM_UNIT 52 , si.mem_unit 53#endif 54 ); 55 } 56 57 return 0; 58} 59