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