Reflect latest interface changes; especially all functions now return
appropriate error return values on error.
This commit is contained in:
@@ -43,6 +43,8 @@ int
|
||||
glibtop_init_cpu_s (glibtop *server)
|
||||
{
|
||||
server->sysdeps.cpu = _glibtop_sysdeps_cpu;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Provides information about cpu usage. */
|
||||
@@ -59,7 +61,7 @@ glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
|
||||
memset (buf, 0, sizeof (glibtop_cpu));
|
||||
|
||||
if(!kc)
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
switch(kstat_chain_update(kc))
|
||||
{
|
||||
case -1: assert(0); /* Debugging purposes, shouldn't happen */
|
||||
@@ -103,4 +105,6 @@ glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
|
||||
buf->frequency = server->_priv->machine.ticks;
|
||||
|
||||
buf->flags = _glibtop_sysdeps_cpu;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -41,6 +41,8 @@ int
|
||||
glibtop_init_loadavg_s (glibtop *server)
|
||||
{
|
||||
server->sysdeps.loadavg = _glibtop_sysdeps_loadavg;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Provides load average. */
|
||||
@@ -59,11 +61,11 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf)
|
||||
memset (buf, 0, sizeof (glibtop_loadavg));
|
||||
|
||||
#ifdef HAVE_GETLOADAVG
|
||||
if (getloadavg (buf->loadavg, 3))
|
||||
return;
|
||||
if (getloadavg (buf->loadavg, 3) < 0)
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
#else
|
||||
if(!(kc = server->_priv->machine.kc))
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
switch(kstat_chain_update(kc))
|
||||
{
|
||||
case -1: assert(0); /* Debugging, shouldn't happen */
|
||||
@@ -71,9 +73,9 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf)
|
||||
default: glibtop_get_kstats(server);
|
||||
}
|
||||
if(!(ksp = server->_priv->machine.system))
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
if(kstat_read(kc, ksp, NULL) < 0)
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
for(i = 0; i < 3; ++i) /* Do we have a countof macro? */
|
||||
{
|
||||
kstat_named_t *kn;
|
||||
@@ -84,4 +86,6 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf)
|
||||
}
|
||||
#endif
|
||||
buf->flags = _glibtop_sysdeps_loadavg;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -45,6 +45,8 @@ glibtop_init_mem_s (glibtop *server)
|
||||
{
|
||||
server->sysdeps.mem = _glibtop_sysdeps_mem_os_sysconf +
|
||||
_glibtop_sysdeps_mem_os_kstat + _glibtop_sysdeps_mem_bunyip;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Provides information about memory usage. */
|
||||
@@ -67,7 +69,7 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
|
||||
buf->flags = _glibtop_sysdeps_mem_os_sysconf;
|
||||
|
||||
if(!kc)
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
switch(kstat_chain_update(kc))
|
||||
{
|
||||
case -1: assert(0); /* Debugging purposes, shouldn't happen */
|
||||
@@ -124,4 +126,6 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
|
||||
#endif
|
||||
buf->flags += _glibtop_sysdeps_mem_bunyip;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -45,6 +45,8 @@ glibtop_init_msg_limits_p (glibtop *server)
|
||||
server->sysdeps.msg_limits = _glibtop_sysdeps_msg_limits;
|
||||
else
|
||||
server->sysdeps.msg_limits = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Provides information about sysv ipc limits. */
|
||||
@@ -58,10 +60,10 @@ glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf)
|
||||
memset (buf, 0, sizeof (glibtop_msg_limits));
|
||||
|
||||
if(!(server->sysdeps.msg_limits))
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
if(kvm_read(kd, nlst[0].n_value, (void *)&minfo,
|
||||
sizeof(struct msginfo)) != sizeof(struct msginfo))
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
|
||||
buf->msgmap = minfo.msgmap;
|
||||
buf->msgmax = minfo.msgmax;
|
||||
@@ -71,4 +73,6 @@ glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf)
|
||||
buf->msgtql = minfo.msgtql;
|
||||
buf->msgpool = minfo.msgmni * minfo.msgmnb >> 10;
|
||||
buf->flags = _glibtop_sysdeps_msg_limits;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -46,6 +46,8 @@ glibtop_init_sem_limits_p (glibtop *server)
|
||||
server->sysdeps.sem_limits = _glibtop_sysdeps_sem_limits;
|
||||
else
|
||||
server->sysdeps.sem_limits = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Provides information about sysv sem limits. */
|
||||
@@ -59,10 +61,10 @@ glibtop_get_sem_limits_p (glibtop *server, glibtop_sem_limits *buf)
|
||||
memset (buf, 0, sizeof (glibtop_sem_limits));
|
||||
|
||||
if(!(server->sysdeps.sem_limits))
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
if(kvm_read(kd, nlst[0].n_value, (void *)&sinfo,
|
||||
sizeof(struct seminfo)) != sizeof(struct seminfo))
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
buf->semmap = sinfo.semmap;
|
||||
buf->semmni = sinfo.semmni;
|
||||
buf->semmns = sinfo.semmns;
|
||||
@@ -74,4 +76,6 @@ glibtop_get_sem_limits_p (glibtop *server, glibtop_sem_limits *buf)
|
||||
buf->semvmx = sinfo.semvmx;
|
||||
buf->semaem = sinfo.semaem;
|
||||
buf->flags = _glibtop_sysdeps_sem_limits;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -43,6 +43,8 @@ glibtop_init_shm_limits_p (glibtop *server)
|
||||
server->sysdeps.shm_limits = _glibtop_sysdeps_shm_limits;
|
||||
else
|
||||
server->sysdeps.shm_limits = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Provides information about sysv ipc limits. */
|
||||
@@ -56,13 +58,15 @@ glibtop_get_shm_limits_p (glibtop *server, glibtop_shm_limits *buf)
|
||||
memset (buf, 0, sizeof (glibtop_shm_limits));
|
||||
|
||||
if(!(server->sysdeps.shm_limits))
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
if(kvm_read(kd, nlst[0].n_value, (void *)&sinfo,
|
||||
sizeof(struct shminfo)) != sizeof(struct shminfo))
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
buf->shmmax = sinfo.shmmax;
|
||||
buf->shmmin = sinfo.shmmin;
|
||||
buf->shmmni = sinfo.shmmni;
|
||||
buf->shmseg = sinfo.shmseg;
|
||||
buf->flags = _glibtop_sysdeps_shm_limits;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -40,6 +40,8 @@ int
|
||||
glibtop_init_swap_s (glibtop *server)
|
||||
{
|
||||
server->sysdeps.swap = _glibtop_sysdeps_swap;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Provides information about swap usage. */
|
||||
@@ -56,7 +58,8 @@ glibtop_get_swap_s (glibtop *server, glibtop_swap *buf)
|
||||
|
||||
memset (buf, 0, sizeof (glibtop_swap));
|
||||
|
||||
if (!ksp) return;
|
||||
if (!ksp)
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
|
||||
switch(kstat_chain_update(kc))
|
||||
{
|
||||
@@ -68,7 +71,7 @@ glibtop_get_swap_s (glibtop *server, glibtop_swap *buf)
|
||||
|
||||
if (ret == -1) {
|
||||
glibtop_warn_io_r (server, "kstat_read (vminfo)");
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
}
|
||||
|
||||
rate = (ksp->ks_snaptime - server->_priv->machine.vminfo_snaptime) / 1E+9;
|
||||
@@ -86,4 +89,6 @@ glibtop_get_swap_s (glibtop *server, glibtop_swap *buf)
|
||||
buf->free = buf->total - buf->used;
|
||||
|
||||
buf->flags = _glibtop_sysdeps_swap;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -35,6 +35,8 @@ int
|
||||
glibtop_init_uptime_s (glibtop *server)
|
||||
{
|
||||
server->sysdeps.uptime = _glibtop_sysdeps_uptime;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Provides uptime and idle time. */
|
||||
@@ -45,9 +47,11 @@ glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf)
|
||||
memset (buf, 0, sizeof (glibtop_uptime));
|
||||
|
||||
if(!(server->_priv->machine.boot))
|
||||
return;
|
||||
return -GLIBTOP_ERROR_INCOMPATIBLE_KERNEL;
|
||||
buf->boot_time = server->_priv->machine.boot;
|
||||
buf->uptime = time(NULL) - server->_priv->machine.boot;
|
||||
|
||||
buf->flags = _glibtop_sysdeps_uptime;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user