summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorMartin Baulig <martin@src.gnome.org>1999-11-21 16:54:36 +0000
committerMartin Baulig <martin@src.gnome.org>1999-11-21 16:54:36 +0000
commit81176f81816226df3640b6e3f70cf9d72f40744f (patch)
tree6d5b9019ab5cc8fd03ff40b5c1e9cd0d35e16d42 /sysdeps
parentcdc8e43a7983723c511dab6adc7f55f6aa995cb9 (diff)
downloadlibgtop-81176f81816226df3640b6e3f70cf9d72f40744f.tar.gz
Reflect latest interface changes; return 0 on success and -1 on error.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/linux/cpu.c17
-rw-r--r--sysdeps/linux/loadavg.c19
-rw-r--r--sysdeps/linux/mem.c18
-rw-r--r--sysdeps/linux/msg_limits.c4
-rw-r--r--sysdeps/linux/netload.c12
-rw-r--r--sysdeps/linux/ppp.c4
-rw-r--r--sysdeps/linux/procargs.c2
-rw-r--r--sysdeps/linux/prockernel.c8
-rw-r--r--sysdeps/linux/proclist.c2
-rw-r--r--sysdeps/linux/procmap.c2
-rw-r--r--sysdeps/linux/procmem.c10
-rw-r--r--sysdeps/linux/procsegment.c10
-rw-r--r--sysdeps/linux/procsignal.c8
-rw-r--r--sysdeps/linux/procstate.c10
-rw-r--r--sysdeps/linux/proctime.c12
-rw-r--r--sysdeps/linux/procuid.c16
-rw-r--r--sysdeps/linux/sem_limits.c4
-rw-r--r--sysdeps/linux/shm_limits.c4
-rw-r--r--sysdeps/linux/swap.c32
-rw-r--r--sysdeps/linux/uptime.c17
20 files changed, 158 insertions, 53 deletions
diff --git a/sysdeps/linux/cpu.c b/sysdeps/linux/cpu.c
index 37caf855..de28f28d 100644
--- a/sysdeps/linux/cpu.c
+++ b/sysdeps/linux/cpu.c
@@ -44,6 +44,8 @@ glibtop_init_cpu_s (glibtop *server)
if (server->ncpu)
server->sysdeps.cpu |= _glibtop_sysdeps_cpu_smp;
+
+ return 0;
}
/* Provides information about cpu usage. */
@@ -62,12 +64,17 @@ glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
memset (buf, 0, sizeof (glibtop_cpu));
fd = open (FILENAME, O_RDONLY);
- if (fd < 0)
- glibtop_error_io_r (server, "open (%s)", FILENAME);
+ if (fd < 0) {
+ glibtop_warn_io_r (server, "open (%s)", FILENAME);
+ return -1;
+ }
len = read (fd, buffer, BUFSIZ-1);
- if (len < 0)
- glibtop_error_io_r (server, "read (%s)", FILENAME);
+ if (len < 0) {
+ close (fd);
+ glibtop_warn_io_r (server, "read (%s)", FILENAME);
+ return -1;
+ }
close (fd);
@@ -108,4 +115,6 @@ glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
}
buf->flags |= _glibtop_sysdeps_cpu_smp;
+
+ return 0;
}
diff --git a/sysdeps/linux/loadavg.c b/sysdeps/linux/loadavg.c
index e4d43c98..55cc9284 100644
--- a/sysdeps/linux/loadavg.c
+++ b/sysdeps/linux/loadavg.c
@@ -39,6 +39,8 @@ int
glibtop_init_loadavg_s (glibtop *server)
{
server->sysdeps.loadavg = _glibtop_sysdeps_loadavg;
+
+ return 0;
}
/* Provides load load averange. */
@@ -56,12 +58,17 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf)
memset (buf, 0, sizeof (glibtop_loadavg));
fd = open (FILENAME, O_RDONLY);
- if (fd < 0)
- glibtop_error_io_r (server, "open (%s)", FILENAME);
+ if (fd < 0) {
+ glibtop_warn_io_r (server, "open (%s)", FILENAME);
+ return -1;
+ }
len = read (fd, buffer, BUFSIZ-1);
- if (len < 0)
- glibtop_error_io_r (server, "read (%s)", FILENAME);
+ if (len < 0) {
+ close (fd);
+ glibtop_warn_io_r (server, "read (%s)", FILENAME);
+ return -1;
+ }
close (fd);
@@ -82,7 +89,7 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf)
if (*p == '/')
break;
if (!isdigit (*p))
- return;
+ return 0;
p++;
}
@@ -91,4 +98,6 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf)
buf->last_pid = strtoul (p, &p, 0);
buf->flags |= _glibtop_sysdeps_loadavg_tasks;
+
+ return 0;
}
diff --git a/sysdeps/linux/mem.c b/sysdeps/linux/mem.c
index 317960d8..3ade560c 100644
--- a/sysdeps/linux/mem.c
+++ b/sysdeps/linux/mem.c
@@ -37,6 +37,8 @@ int
glibtop_init_mem_s (glibtop *server)
{
server->sysdeps.mem = _glibtop_sysdeps_mem;
+
+ return 0;
}
/* Provides information about memory usage. */
@@ -54,12 +56,18 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
memset (buf, 0, sizeof (glibtop_mem));
fd = open (FILENAME, O_RDONLY);
- if (fd < 0)
- glibtop_error_io_r (server, "open (%s)", FILENAME);
+ if (fd < 0) {
+ glibtop_warn_io_r (server, "open (%s)", FILENAME);
+ return -1;
+
+ }
len = read (fd, buffer, BUFSIZ-1);
- if (len < 0)
- glibtop_error_io_r (server, "read (%s)", FILENAME);
+ if (len < 0) {
+ close (fd);
+ glibtop_warn_io_r (server, "read (%s)", FILENAME);
+ return -1;
+ }
close (fd);
@@ -78,4 +86,6 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
buf->user = buf->total - buf->free - buf->shared - buf->buffer;
buf->flags = _glibtop_sysdeps_mem;
+
+ return 0;
}
diff --git a/sysdeps/linux/msg_limits.c b/sysdeps/linux/msg_limits.c
index cd691ba8..150b6f55 100644
--- a/sysdeps/linux/msg_limits.c
+++ b/sysdeps/linux/msg_limits.c
@@ -38,6 +38,8 @@ int
glibtop_init_msg_limits_s (glibtop *server)
{
server->sysdeps.msg_limits = _glibtop_sysdeps_msg_limits;
+
+ return 0;
}
/* Provides information about sysv ipc limits. */
@@ -62,4 +64,6 @@ glibtop_get_msg_limits_s (glibtop *server, glibtop_msg_limits *buf)
buf->msgmni = msginfo.msgmni;
buf->msgssz = msginfo.msgssz;
buf->msgtql = msginfo.msgtql;
+
+ return 0;
}
diff --git a/sysdeps/linux/netload.c b/sysdeps/linux/netload.c
index a5c3f43a..29dd6f07 100644
--- a/sysdeps/linux/netload.c
+++ b/sysdeps/linux/netload.c
@@ -95,6 +95,8 @@ glibtop_init_netload_s (glibtop *server)
_glibtop_sysdeps_netload_data |
_glibtop_sysdeps_netload_bytes |
_glibtop_sysdeps_netload_packets;
+
+ return 0;
}
/* Provides network statistics. */
@@ -253,7 +255,7 @@ glibtop_get_netload_s (glibtop *server, glibtop_netload *buf,
fclose (f);
- if (success) return;
+ if (success) return 0;
}
}
@@ -261,7 +263,7 @@ glibtop_get_netload_s (glibtop *server, glibtop_netload *buf,
* it was not enabled for the requested interface. */
f = fopen ("/proc/net/dev", "r");
- if (!f) return;
+ if (!f) return -1;
/* Skip over the header line. */
fgets (buffer, BUFSIZ-1, f);
@@ -273,7 +275,7 @@ glibtop_get_netload_s (glibtop *server, glibtop_netload *buf,
p = strchr (buffer, '|');
if (!p) {
fclose (f);
- return;
+ return -1;
}
/* Do we already have byte counters ? */
@@ -290,7 +292,7 @@ glibtop_get_netload_s (glibtop *server, glibtop_netload *buf,
}
/* Should never happen. */
- if (fields < 2) return;
+ if (fields < 2) return -1;
fields--;
while (fgets (buffer, BUFSIZ-1, f)) {
@@ -348,4 +350,6 @@ glibtop_get_netload_s (glibtop *server, glibtop_netload *buf,
}
fclose (f);
+
+ return 0;
}
diff --git a/sysdeps/linux/ppp.c b/sysdeps/linux/ppp.c
index 754f7486..8830c84d 100644
--- a/sysdeps/linux/ppp.c
+++ b/sysdeps/linux/ppp.c
@@ -45,6 +45,8 @@ int
glibtop_init_ppp_s (glibtop *server)
{
server->sysdeps.ppp = _glibtop_sysdeps_ppp;
+
+ return 0;
}
static int
@@ -198,4 +200,6 @@ glibtop_get_ppp_s (glibtop *server, glibtop_ppp *buf, unsigned short device)
buf->flags |= (1L << GLIBTOP_PPP_BYTES_IN) |
(1L << GLIBTOP_PPP_BYTES_OUT);
}
+
+ return 0;
}
diff --git a/sysdeps/linux/procargs.c b/sysdeps/linux/procargs.c
index 66e68fa3..aa2019ee 100644
--- a/sysdeps/linux/procargs.c
+++ b/sysdeps/linux/procargs.c
@@ -35,6 +35,8 @@ int
glibtop_init_proc_args_s (glibtop *server)
{
server->sysdeps.proc_args = _glibtop_sysdeps_proc_args;
+
+ return 0;
}
/* Provides detailed information about a process. */
diff --git a/sysdeps/linux/prockernel.c b/sysdeps/linux/prockernel.c
index b61afc34..7908ab82 100644
--- a/sysdeps/linux/prockernel.c
+++ b/sysdeps/linux/prockernel.c
@@ -37,6 +37,8 @@ int
glibtop_init_proc_kernel_s (glibtop *server)
{
server->sysdeps.proc_kernel = _glibtop_sysdeps_proc_kernel;
+
+ return 0;
}
/* Provides detailed information about a process. */
@@ -51,10 +53,10 @@ glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, pid_t pid)
memset (buf, 0, sizeof (glibtop_proc_kernel));
if (proc_stat_to_buffer (buffer, pid))
- return;
+ return -1;
p = proc_stat_after_cmd (buffer);
- if (!p) return;
+ if (!p) return -1;
p = skip_multiple_token (p, 6);
@@ -74,4 +76,6 @@ glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, pid_t pid)
buf->nwchan = strtoul (p, &p, 0);
buf->flags = _glibtop_sysdeps_proc_kernel;
+
+ return 0;
}
diff --git a/sysdeps/linux/proclist.c b/sysdeps/linux/proclist.c
index 528ed6a7..84e33e77 100644
--- a/sysdeps/linux/proclist.c
+++ b/sysdeps/linux/proclist.c
@@ -43,6 +43,8 @@ int
glibtop_init_proclist_s (glibtop *server)
{
server->sysdeps.proclist = _glibtop_sysdeps_proclist;
+
+ return 0;
}
#define BLOCK_COUNT 256
diff --git a/sysdeps/linux/procmap.c b/sysdeps/linux/procmap.c
index 7306ff39..58150eca 100644
--- a/sysdeps/linux/procmap.c
+++ b/sysdeps/linux/procmap.c
@@ -42,6 +42,8 @@ int
glibtop_init_proc_map_s (glibtop *server)
{
server->sysdeps.proc_map = _glibtop_sysdeps_proc_map;
+
+ return 0;
}
/* Provides detailed information about a process. */
diff --git a/sysdeps/linux/procmem.c b/sysdeps/linux/procmem.c
index 3d5e892e..ba27e8be 100644
--- a/sysdeps/linux/procmem.c
+++ b/sysdeps/linux/procmem.c
@@ -61,6 +61,8 @@ glibtop_init_proc_mem_s (glibtop *server)
pageshift++;
pagesize >>= 1;
}
+
+ return 0;
}
/* Provides detailed information about a process. */
@@ -75,10 +77,10 @@ glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid)
memset (buf, 0, sizeof (glibtop_proc_mem));
if (proc_stat_to_buffer (buffer, pid))
- return;
+ return -1;
p = proc_stat_after_cmd (buffer);
- if (!p) return;
+ if (!p) return -1;
p = skip_multiple_token (p, 20);
@@ -89,7 +91,7 @@ glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid)
buf->flags = _glibtop_sysdeps_proc_mem;
if (proc_statm_to_buffer (buffer, pid))
- return;
+ return -1;
buf->size = strtoul (buffer, &p, 0);
buf->resident = strtoul (p, &p, 0);
@@ -101,4 +103,6 @@ glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid)
buf->rss <<= pageshift;
buf->flags |= _glibtop_sysdeps_proc_mem_statm;
+
+ return 0;
}
diff --git a/sysdeps/linux/procsegment.c b/sysdeps/linux/procsegment.c
index bfc01b54..cba0afd3 100644
--- a/sysdeps/linux/procsegment.c
+++ b/sysdeps/linux/procsegment.c
@@ -65,6 +65,8 @@ glibtop_init_proc_segment_s (glibtop *server)
pageshift++;
pagesize >>= 1;
}
+
+ return 0;
}
/* Provides detailed information about a process. */
@@ -80,10 +82,10 @@ glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf,
memset (buf, 0, sizeof (glibtop_proc_segment));
if (proc_stat_to_buffer (buffer, pid))
- return;
+ return -1;
p = proc_stat_after_cmd (buffer);
- if (!p) return;
+ if (!p) return -1;
p = skip_multiple_token (p, 23);
@@ -94,7 +96,7 @@ glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf,
buf->flags = _glibtop_sysdeps_proc_segment;
if (proc_statm_to_buffer (buffer, pid))
- return;
+ return 0;
p = skip_multiple_token (buffer, 3);
@@ -112,4 +114,6 @@ glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf,
buf->dirty_size <<= pageshift;
buf->flags |= _glibtop_sysdeps_proc_segment_statm;
+
+ return 0;
}
diff --git a/sysdeps/linux/procsignal.c b/sysdeps/linux/procsignal.c
index e4941fad..1052ef36 100644
--- a/sysdeps/linux/procsignal.c
+++ b/sysdeps/linux/procsignal.c
@@ -35,6 +35,8 @@ int
glibtop_init_proc_signal_s (glibtop *server)
{
server->sysdeps.proc_signal = _glibtop_sysdeps_proc_signal;
+
+ return 0;
}
/* Provides detailed information about a process. */
@@ -49,10 +51,10 @@ glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf, pid_t pid)
memset (buf, 0, sizeof (glibtop_proc_signal));
if (proc_stat_to_buffer (buffer, pid))
- return;
+ return -1;
p = proc_stat_after_cmd (buffer);
- if (!p) return;
+ if (!p) return -1;
p = skip_multiple_token (p, 28);
@@ -62,4 +64,6 @@ glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf, pid_t pid)
buf->sigcatch [0] = strtoul (p, &p, 0);
buf->flags = _glibtop_sysdeps_proc_signal;
+
+ return 0;
}
diff --git a/sysdeps/linux/procstate.c b/sysdeps/linux/procstate.c
index 814311f6..11ed9d09 100644
--- a/sysdeps/linux/procstate.c
+++ b/sysdeps/linux/procstate.c
@@ -40,6 +40,8 @@ glibtop_init_proc_state_s (glibtop *server)
{
server->sysdeps.proc_state = _glibtop_sysdeps_proc_state |
_glibtop_sysdeps_proc_state_uid;
+
+ return 0;
}
/* Provides detailed information about a process. */
@@ -62,7 +64,7 @@ glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid)
sprintf (buffer, "/proc/%d/stat", pid);
if (stat (buffer, &statb))
- return;
+ return -1;
/* For security reasons we use stat () since it is
* more failsafe than parsing the file. */
@@ -75,7 +77,7 @@ glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid)
/* Now we read the remaining fields. */
if (proc_stat_to_buffer (buffer, pid))
- return;
+ return -1;
p = strrchr (buffer, ')'); *p = '\0';
state = p [2];
@@ -109,8 +111,10 @@ glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid)
buf->state = GLIBTOP_PROCESS_SWAPPING;
break;
default:
- return;
+ return -1;
}
buf->flags |= (1L << GLIBTOP_PROC_STATE_STATE);
+
+ return 0;
}
diff --git a/sysdeps/linux/proctime.c b/sysdeps/linux/proctime.c
index daab9501..f32750a4 100644
--- a/sysdeps/linux/proctime.c
+++ b/sysdeps/linux/proctime.c
@@ -43,6 +43,8 @@ glibtop_init_proc_time_s (glibtop *server)
if (server->ncpu)
server->sysdeps.proc_time |= _glibtop_sysdeps_proc_time_smp;
+
+ return 0;
}
/* Provides detailed information about a process. */
@@ -58,10 +60,10 @@ glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid)
memset (buf, 0, sizeof (glibtop_proc_time));
if (proc_stat_to_buffer (buffer, pid))
- return;
+ return -1;
p = proc_stat_after_cmd (buffer);
- if (!p) return;
+ if (!p) return -1;
p = skip_multiple_token (p, 11);
@@ -81,10 +83,10 @@ glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid)
buf->flags = _glibtop_sysdeps_proc_time;
if (!server->ncpu)
- return;
+ return 0;
if (proc_file_to_buffer (buffer, "/proc/%d/cpu", pid))
- return;
+ return -1;
p = skip_token (buffer);
buf->utime = strtoul (p, &p, 0);
@@ -100,4 +102,6 @@ glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid)
}
buf->flags |= _glibtop_sysdeps_proc_time_smp;
+
+ return 0;
}
diff --git a/sysdeps/linux/procuid.c b/sysdeps/linux/procuid.c
index c8c79c10..7b0d6b45 100644
--- a/sysdeps/linux/procuid.c
+++ b/sysdeps/linux/procuid.c
@@ -44,6 +44,8 @@ glibtop_init_proc_uid_s (glibtop *server)
{
server->sysdeps.proc_uid = _glibtop_sysdeps_proc_uid |
_glibtop_sysdeps_proc_uid_stat;
+
+ return 0;
}
/* Provides detailed information about a process. */
@@ -58,12 +60,12 @@ glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid)
memset (buf, 0, sizeof (glibtop_proc_uid));
if (proc_status_to_buffer (buffer, pid))
- return;
+ return -1;
/* Search substring 'Pid:' */
p = strstr (buffer, "\nPid:");
- if (!p) return;
+ if (!p) return -1;
p = skip_token (p); /* "Pid:" */
buf->pid = strtoul (p, &p, 0);
@@ -74,7 +76,7 @@ glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid)
/* Maybe future Linux versions place something between
* "PPid" and "Uid", so we catch this here. */
p = strstr (p, "\nUid:");
- if (!p) return;
+ if (!p) return -1;
p = skip_token (p); /* "Uid:" */
buf->uid = strtoul (p, &p, 0);
@@ -83,7 +85,7 @@ glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid)
/* We don't know how many entries on the "Uid:" line
* future Linux version will have, so we catch this here. */
p = strstr (p, "\nGid:");
- if (!p) return;
+ if (!p) return -1;
p = skip_token (p); /* "Gid:" */
buf->gid = strtoul (p, &p, 0);
@@ -92,10 +94,10 @@ glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid)
buf->flags = _glibtop_sysdeps_proc_uid;
if (proc_stat_to_buffer (buffer, pid))
- return;
+ return -1;
p = proc_stat_after_cmd (buffer);
- if (!p) return;
+ if (!p) return -1;
p = skip_multiple_token (p, 2);
@@ -123,4 +125,6 @@ glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid)
buf->tty = 4*0x100 + buf->tty;
buf->flags |= _glibtop_sysdeps_proc_uid_stat;
+
+ return 0;
}
diff --git a/sysdeps/linux/sem_limits.c b/sysdeps/linux/sem_limits.c
index 4cc29b2d..7dbfd132 100644
--- a/sysdeps/linux/sem_limits.c
+++ b/sysdeps/linux/sem_limits.c
@@ -54,6 +54,8 @@ int
glibtop_init_sem_limits_s (glibtop *server)
{
server->sysdeps.sem_limits = _glibtop_sysdeps_sem_limits;
+
+ return 0;
}
/* Provides information about sysv ipc limits. */
@@ -83,4 +85,6 @@ glibtop_get_sem_limits_s (glibtop *server, glibtop_sem_limits *buf)
buf->semusz = seminfo.semusz;
buf->semvmx = seminfo.semvmx;
buf->semaem = seminfo.semaem;
+
+ return 0;
}
diff --git a/sysdeps/linux/shm_limits.c b/sysdeps/linux/shm_limits.c
index 67c0f87a..2845fc16 100644
--- a/sysdeps/linux/shm_limits.c
+++ b/sysdeps/linux/shm_limits.c
@@ -37,6 +37,8 @@ int
glibtop_init_shm_limits_s (glibtop *server)
{
server->sysdeps.shm_limits = _glibtop_sysdeps_shm_limits;
+
+ return 0;
}
/* Provides information about sysv ipc limits. */
@@ -59,4 +61,6 @@ glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf)
buf->shmmni = shminfo.shmmni;
buf->shmseg = shminfo.shmseg;
buf->shmall = shminfo.shmall;
+
+ return 0;
}
diff --git a/sysdeps/linux/swap.c b/sysdeps/linux/swap.c
index 94714abc..76003f36 100644
--- a/sysdeps/linux/swap.c
+++ b/sysdeps/linux/swap.c
@@ -41,6 +41,8 @@ glibtop_init_swap_s (glibtop *server)
{
server->sysdeps.swap = _glibtop_sysdeps_swap |
_glibtop_sysdeps_swap_paging;
+
+ return 0;
}
/* Provides information about swap usage. */
@@ -59,12 +61,17 @@ glibtop_get_swap_s (glibtop *server, glibtop_swap *buf)
memset (buf, 0, sizeof (glibtop_swap));
fd = open (MEMINFO, O_RDONLY);
- if (fd < 0)
- glibtop_error_io_r (server, "open (%s)", MEMINFO);
+ if (fd < 0) {
+ glibtop_warn_io_r (server, "open (%s)", MEMINFO);
+ return -1;
+ }
len = read (fd, buffer, BUFSIZ-1);
- if (len < 0)
- glibtop_error_io_r (server, "read (%s)", MEMINFO);
+ if (len < 0) {
+ close (fd);
+ glibtop_warn_io_r (server, "read (%s)", MEMINFO);
+ return -1;
+ }
close (fd);
@@ -81,19 +88,24 @@ glibtop_get_swap_s (glibtop *server, glibtop_swap *buf)
buf->flags = _glibtop_sysdeps_swap;
fd = open (PROC_STAT, O_RDONLY);
- if (fd < 0)
- glibtop_error_io_r (server, "open (%s)", PROC_STAT);
+ if (fd < 0) {
+ glibtop_warn_io_r (server, "open (%s)", PROC_STAT);
+ return -1;
+ }
len = read (fd, buffer, BUFSIZ-1);
- if (len < 0)
- glibtop_error_io_r (server, "read (%s)", PROC_STAT);
+ if (len < 0) {
+ close (fd);
+ glibtop_warn_io_r (server, "read (%s)", PROC_STAT);
+ return -1;
+ }
close (fd);
buffer [len] = '\0';
p = strstr (buffer, "\nswap");
- if (p == NULL) return;
+ if (p == NULL) return 0;
p = skip_token (p);
@@ -101,4 +113,6 @@ glibtop_get_swap_s (glibtop *server, glibtop_swap *buf)
buf->pageout = strtoul (p, &p, 0);
buf->flags |= _glibtop_sysdeps_swap_paging;
+
+ return 0;
}
diff --git a/sysdeps/linux/uptime.c b/sysdeps/linux/uptime.c
index d8707be6..fcae7513 100644
--- a/sysdeps/linux/uptime.c
+++ b/sysdeps/linux/uptime.c
@@ -34,6 +34,8 @@ int
glibtop_init_uptime_s (glibtop *server)
{
server->sysdeps.uptime = _glibtop_sysdeps_uptime;
+
+ return 0;
}
/* Provides uptime and idle time. */
@@ -51,12 +53,17 @@ glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf)
memset (buf, 0, sizeof (glibtop_uptime));
fd = open (FILENAME, O_RDONLY);
- if (fd < 0)
- glibtop_error_io_r (server, "open (%s)", FILENAME);
+ if (fd < 0) {
+ glibtop_warn_io_r (server, "open (%s)", FILENAME);
+ return -1;
+ }
len = read (fd, buffer, BUFSIZ-1);
- if (len < 0)
- glibtop_error_io_r (server, "read (%s)", FILENAME);
+ if (len < 0) {
+ close (fd);
+ glibtop_warn_io_r (server, "read (%s)", FILENAME);
+ return -1;
+ }
close (fd);
@@ -66,4 +73,6 @@ glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf)
buf->idletime = strtod (p, &p);
buf->flags = _glibtop_sysdeps_uptime;
+
+ return 0;
}