Reflect latest interface changes; especially all functions now return

appropriate error return values on error.
This commit is contained in:
Martin Baulig
1999-12-25 18:54:52 +00:00
parent 1979cb8104
commit dbb5f9b636
8 changed files with 49 additions and 16 deletions

View File

@@ -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;
} }

View File

@@ -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;
} }

View File

@@ -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;
} }

View File

@@ -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;
} }

View File

@@ -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;
} }

View File

@@ -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;
} }

View File

@@ -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;
} }

View File

@@ -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;
} }