diff options
author | Benoît Dejean <bdejean@src.gnome.org> | 2004-10-11 18:01:25 +0000 |
---|---|---|
committer | Benoît Dejean <bdejean@src.gnome.org> | 2004-10-11 18:01:25 +0000 |
commit | b3dfc1d1d210f610cfa5b0303a4a317fad8ffdf0 (patch) | |
tree | f55d6ff96b2256b88aaf2426ccf4f5bc617ec034 /sysdeps/solaris/loadavg.c | |
parent | 13025c6c5f99287644cafbc79d37311f7fa3f893 (diff) | |
download | libgtop-b3dfc1d1d210f610cfa5b0303a4a317fad8ffdf0.tar.gz |
Updated. Lots of cleanup.
* cpu.c: (glibtop_init_cpu_s), (glibtop_get_cpu_s):
* loadavg.c: (glibtop_get_loadavg_s):
* mem.c: (glibtop_init_mem_s), (glibtop_get_mem_s):
* open.c: (glibtop_get_kstats), (glibtop_open_s):
* procargs.c: (glibtop_get_proc_args_s):
* procdata.c: (glibtop_get_proc_data_psinfo_s),
(glibtop_get_proc_data_usage_s), (glibtop_get_proc_credentials_s),
(glibtop_get_proc_status_s):
* proclist.c: (glibtop_get_proclist_s):
* procmap.c: (glibtop_get_proc_map_s):
* procmem.c: (glibtop_get_proc_mem_s):
* procstate.c: (glibtop_get_proc_state_s):
* safeio.c:
* safeio.h:
* shm_limits.c: (glibtop_init_shm_limits_p),
(glibtop_get_shm_limits_p):
* swap.c: (glibtop_get_swap_s):
* uptime.c: (glibtop_get_uptime_s): Updated. Lots of cleanup.
Diffstat (limited to 'sysdeps/solaris/loadavg.c')
-rw-r--r-- | sysdeps/solaris/loadavg.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/sysdeps/solaris/loadavg.c b/sysdeps/solaris/loadavg.c index 39f4f445..8a3dd834 100644 --- a/sysdeps/solaris/loadavg.c +++ b/sysdeps/solaris/loadavg.c @@ -51,37 +51,43 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf) #ifndef HAVE_GETLOADAVG kstat_ctl_t *kc; kstat_t *ksp; - int i; - static const char *avestrings[] = { "avenrun_1min", - "avenrun_5min", - "avenrun_15min" }; + size_t i; + static const char avestrings[][14] = { "avenrun_1min", + "avenrun_5min", + "avenrun_15min" }; #endif memset (buf, 0, sizeof (glibtop_loadavg)); #ifdef HAVE_GETLOADAVG - if (getloadavg (buf->loadavg, 3)) + if (getloadavg (buf->loadavg, 3) != 3) return; + #else if(!(kc = server->machine.kc)) return; + switch(kstat_chain_update(kc)) { case -1: assert(0); /* Debugging, shouldn't happen */ case 0: break; default: glibtop_get_kstats(server); } + if(!(ksp = server->machine.system)) return; + if(kstat_read(kc, ksp, NULL) < 0) return; + for(i = 0; i < 3; ++i) /* Do we have a countof macro? */ { - kstat_named_t *kn; + kstat_named_t *kn; kn = (kstat_named_t *)kstat_data_lookup(ksp, avestrings[i]); if(kn) buf->loadavg[i] = (double)kn->value.ul / FSCALE; } -#endif +#endif /* HAVE_GETLOADAVG */ + buf->flags = _glibtop_sysdeps_loadavg; } |