From dbb5f9b63646a0a29fcd1c3f735cb219d17044a3 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Sat, 25 Dec 1999 18:54:52 +0000 Subject: [PATCH] Reflect latest interface changes; especially all functions now return appropriate error return values on error. --- sysdeps/solaris/cpu.c | 6 +++++- sysdeps/solaris/loadavg.c | 14 +++++++++----- sysdeps/solaris/mem.c | 6 +++++- sysdeps/solaris/msg_limits.c | 8 ++++++-- sysdeps/solaris/sem_limits.c | 8 ++++++-- sysdeps/solaris/shm_limits.c | 8 ++++++-- sysdeps/solaris/swap.c | 9 +++++++-- sysdeps/solaris/uptime.c | 6 +++++- 8 files changed, 49 insertions(+), 16 deletions(-) diff --git a/sysdeps/solaris/cpu.c b/sysdeps/solaris/cpu.c index 5c4a3529..74371800 100644 --- a/sysdeps/solaris/cpu.c +++ b/sysdeps/solaris/cpu.c @@ -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; } diff --git a/sysdeps/solaris/loadavg.c b/sysdeps/solaris/loadavg.c index a635ef1a..fc38415b 100644 --- a/sysdeps/solaris/loadavg.c +++ b/sysdeps/solaris/loadavg.c @@ -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; } diff --git a/sysdeps/solaris/mem.c b/sysdeps/solaris/mem.c index d3ee8c68..8f0fbf53 100644 --- a/sysdeps/solaris/mem.c +++ b/sysdeps/solaris/mem.c @@ -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; } diff --git a/sysdeps/solaris/msg_limits.c b/sysdeps/solaris/msg_limits.c index 8ace50fd..c4cc986e 100644 --- a/sysdeps/solaris/msg_limits.c +++ b/sysdeps/solaris/msg_limits.c @@ -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; } diff --git a/sysdeps/solaris/sem_limits.c b/sysdeps/solaris/sem_limits.c index a5e10fd0..2572343a 100644 --- a/sysdeps/solaris/sem_limits.c +++ b/sysdeps/solaris/sem_limits.c @@ -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; } diff --git a/sysdeps/solaris/shm_limits.c b/sysdeps/solaris/shm_limits.c index c9edab18..05da3888 100644 --- a/sysdeps/solaris/shm_limits.c +++ b/sysdeps/solaris/shm_limits.c @@ -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; } diff --git a/sysdeps/solaris/swap.c b/sysdeps/solaris/swap.c index d31fbb48..49443e41 100644 --- a/sysdeps/solaris/swap.c +++ b/sysdeps/solaris/swap.c @@ -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; } diff --git a/sysdeps/solaris/uptime.c b/sysdeps/solaris/uptime.c index 17144099..faf13094 100644 --- a/sysdeps/solaris/uptime.c +++ b/sysdeps/solaris/uptime.c @@ -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; }