diff options
author | Martin Baulig <martin@src.gnome.org> | 1999-11-21 16:54:36 +0000 |
---|---|---|
committer | Martin Baulig <martin@src.gnome.org> | 1999-11-21 16:54:36 +0000 |
commit | 81176f81816226df3640b6e3f70cf9d72f40744f (patch) | |
tree | 6d5b9019ab5cc8fd03ff40b5c1e9cd0d35e16d42 /sysdeps | |
parent | cdc8e43a7983723c511dab6adc7f55f6aa995cb9 (diff) | |
download | libgtop-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.c | 17 | ||||
-rw-r--r-- | sysdeps/linux/loadavg.c | 19 | ||||
-rw-r--r-- | sysdeps/linux/mem.c | 18 | ||||
-rw-r--r-- | sysdeps/linux/msg_limits.c | 4 | ||||
-rw-r--r-- | sysdeps/linux/netload.c | 12 | ||||
-rw-r--r-- | sysdeps/linux/ppp.c | 4 | ||||
-rw-r--r-- | sysdeps/linux/procargs.c | 2 | ||||
-rw-r--r-- | sysdeps/linux/prockernel.c | 8 | ||||
-rw-r--r-- | sysdeps/linux/proclist.c | 2 | ||||
-rw-r--r-- | sysdeps/linux/procmap.c | 2 | ||||
-rw-r--r-- | sysdeps/linux/procmem.c | 10 | ||||
-rw-r--r-- | sysdeps/linux/procsegment.c | 10 | ||||
-rw-r--r-- | sysdeps/linux/procsignal.c | 8 | ||||
-rw-r--r-- | sysdeps/linux/procstate.c | 10 | ||||
-rw-r--r-- | sysdeps/linux/proctime.c | 12 | ||||
-rw-r--r-- | sysdeps/linux/procuid.c | 16 | ||||
-rw-r--r-- | sysdeps/linux/sem_limits.c | 4 | ||||
-rw-r--r-- | sysdeps/linux/shm_limits.c | 4 | ||||
-rw-r--r-- | sysdeps/linux/swap.c | 32 | ||||
-rw-r--r-- | sysdeps/linux/uptime.c | 17 |
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; } |