#include "defs.h" #include int sys_sysinfo(struct tcb *tcp) { struct sysinfo si; if (entering(tcp)) return 0; if (syserror(tcp) || !verbose(tcp) || umove(tcp, tcp->u_arg[0], &si) < 0) { tprintf("%#lx", tcp->u_arg[0]); } else { tprintf("{uptime=%lu" ", loads=[%lu, %lu, %lu]" ", totalram=%lu" ", freeram=%lu" ", sharedram=%lu" ", bufferram=%lu" ", totalswap=%lu" ", freeswap=%lu" ", procs=%u" #ifdef HAVE_STRUCT_SYSINFO_TOTALHIGH ", totalhigh=%lu" #endif #ifdef HAVE_STRUCT_SYSINFO_FREEHIGH ", freehigh=%lu" #endif #ifdef HAVE_STRUCT_SYSINFO_MEM_UNIT ", mem_unit=%u" #endif "}", si.uptime , si.loads[0], si.loads[1], si.loads[2] , si.totalram , si.freeram , si.sharedram , si.bufferram , si.totalswap , si.freeswap , (unsigned) si.procs #ifdef HAVE_STRUCT_SYSINFO_TOTALHIGH , si.totalhigh #endif #ifdef HAVE_STRUCT_SYSINFO_FREEHIGH , si.freehigh #endif #ifdef HAVE_STRUCT_SYSINFO_MEM_UNIT , si.mem_unit #endif ); } return 0; }