diff options
Diffstat (limited to 'sysdeps/osf1')
-rw-r--r-- | sysdeps/osf1/cpu.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/loadavg.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/mem.c | 14 | ||||
-rw-r--r-- | sysdeps/osf1/msg_limits.c | 8 | ||||
-rw-r--r-- | sysdeps/osf1/open_suid.c | 17 | ||||
-rw-r--r-- | sysdeps/osf1/prockernel.c | 17 | ||||
-rw-r--r-- | sysdeps/osf1/proclist.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/procmem.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/procsegment.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/procsignal.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/procstate.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/proctime.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/procuid.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/sem_limits.c | 8 | ||||
-rw-r--r-- | sysdeps/osf1/shm_limits.c | 8 | ||||
-rw-r--r-- | sysdeps/osf1/swap.c | 10 | ||||
-rw-r--r-- | sysdeps/osf1/uptime.c | 10 |
17 files changed, 164 insertions, 18 deletions
diff --git a/sysdeps/osf1/cpu.c b/sysdeps/osf1/cpu.c index 1258ac17..6eb74b42 100644 --- a/sysdeps/osf1/cpu.c +++ b/sysdeps/osf1/cpu.c @@ -28,6 +28,14 @@ static const unsigned long _glibtop_sysdeps_cpu = (1 << GLIBTOP_CPU_NICE) + (1 << GLIBTOP_CPU_SYS) + (1 << GLIBTOP_CPU_IDLE) + (1 << GLIBTOP_CPU_FREQUENCY); +/* Init function. */ + +void +glibtop_init_cpu_s (glibtop *server) +{ + server->sysdeps.cpu = _glibtop_sysdeps_cpu; +} + /* Provides information about cpu usage. */ void @@ -36,7 +44,7 @@ glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf) struct tbl_sysinfo sysinfo; int ret; - glibtop_init_s (&server, 0, 0); + glibtop_init_s (&server, GLIBTOP_SYSDEPS_CPU, 0); memset (buf, 0, sizeof (glibtop_cpu)); diff --git a/sysdeps/osf1/loadavg.c b/sysdeps/osf1/loadavg.c index 4bbf583f..b82a1825 100644 --- a/sysdeps/osf1/loadavg.c +++ b/sysdeps/osf1/loadavg.c @@ -26,6 +26,14 @@ static const unsigned long _glibtop_sysdeps_loadavg = (1 << GLIBTOP_LOADAVG_LOADAVG); +/* Init function. */ + +void +glibtop_init_loadavg_s (glibtop *server) +{ + server->sysdeps.loadavg = _glibtop_sysdeps_loadavg; +} + /* Provides load averange. */ void @@ -34,7 +42,7 @@ glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf) struct tbl_loadavg loadavg; int ret; - glibtop_init_s (&server, 0, 0); + glibtop_init_s (&server, GLIBTOP_SYSDEPS_LOADAVG, 0); memset (buf, 0, sizeof (glibtop_loadavg)); diff --git a/sysdeps/osf1/mem.c b/sysdeps/osf1/mem.c index edb24ca7..b6141a81 100644 --- a/sysdeps/osf1/mem.c +++ b/sysdeps/osf1/mem.c @@ -33,6 +33,14 @@ static const unsigned long _glibtop_sysdeps_mem = (1 << GLIBTOP_MEM_TOTAL) + (1 << GLIBTOP_MEM_USED) + (1 << GLIBTOP_MEM_FREE); +/* Init function. */ + +void +glibtop_init_mem_s (glibtop *server) +{ + server->sysdeps.mem = _glibtop_sysdeps_mem; +} + /* Provides information about memory usage. */ void @@ -40,7 +48,7 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf) { vm_statistics_data_t vmstats; - glibtop_init_s (&server, 0, 0); + glibtop_init_s (&server, GLIBTOP_SYSDEPS_MEM, 0); memset (buf, 0, sizeof (glibtop_mem)); @@ -54,6 +62,6 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf) /* [FIXME]: Is this correct? */ buf->total = (vmstats.active_count + vmstats.inactive_count + - vmstats.free_count + vmstats.wire_count) * - vmstats.pagesize; + vmstats.free_count + vmstats.wire_count) * + vmstats.pagesize; } diff --git a/sysdeps/osf1/msg_limits.c b/sysdeps/osf1/msg_limits.c index e0d33e13..a4d1fc54 100644 --- a/sysdeps/osf1/msg_limits.c +++ b/sysdeps/osf1/msg_limits.c @@ -28,6 +28,14 @@ static const unsigned long _glibtop_sysdeps_msg_limits = (1 << GLIBTOP_IPC_MSGMNB) + (1 << GLIBTOP_IPC_MSGMNI) + (1 << GLIBTOP_IPC_MSGTQL); +/* Init function. */ + +void +glibtop_init_msg_limits_s (glibtop *server) +{ + server->sysdeps.msg_limits = _glibtop_sysdeps_msg_limits; +} + /* Provides information about sysv ipc limits. */ void diff --git a/sysdeps/osf1/open_suid.c b/sysdeps/osf1/open_suid.c index f2e7a353..8eba2d8a 100644 --- a/sysdeps/osf1/open_suid.c +++ b/sysdeps/osf1/open_suid.c @@ -27,20 +27,31 @@ #include <unistd.h> #include <sys/types.h> -/* Opens pipe to gtop server. Returns 0 on success and -1 on error. */ - /* !!! THIS FUNCTION RUNS SUID ROOT - CHANGE WITH CAUTION !!! */ void glibtop_init_p (glibtop *server, const unsigned long features, const unsigned flags) { + glibtop_init_func_t *init_fkt; + if (server == NULL) glibtop_error_r (NULL, "glibtop_init_p (server == NULL)"); - glibtop_open_p (server, "glibtop", features, flags); + /* Do the initialization, but only if not already initialized. */ + + if ((server->flags & _GLIBTOP_INIT_STATE_INIT) == 0) { + glibtop_open_p (server, "glibtop", features, flags); + + for (init_fkt = _glibtop_init_hook_p; *init_fkt; init_fkt++) + (*init_fkt) (server); + + server->flags |= _GLIBTOP_INIT_STATE_INIT; + } } +/* !!! THIS FUNCTION RUNS SUID ROOT - CHANGE WITH CAUTION !!! */ + void glibtop_open_p (glibtop *server, const char *program_name, const unsigned long features, const unsigned flags) diff --git a/sysdeps/osf1/prockernel.c b/sysdeps/osf1/prockernel.c index 9312f924..4f183894 100644 --- a/sysdeps/osf1/prockernel.c +++ b/sysdeps/osf1/prockernel.c @@ -19,14 +19,29 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <config.h> +#include <glibtop.h> +#include <glibtop/error.h> #include <glibtop/prockernel.h> +#include <glibtop_suid.h> + +static const unsigned long _glibtop_sysdeps_proc_kernel = 0; + +/* Init function. */ + +void +glibtop_init_proc_kernel_p (glibtop *server) +{ + server->sysdeps.proc_kernel = _glibtop_sysdeps_proc_kernel; +} + /* Provides detailed information about a process. */ void glibtop_get_proc_kernel_p (glibtop *server, glibtop_proc_kernel *buf, pid_t pid) { + glibtop_init_p (server, GLIBTOP_SYSDEPS_PROC_KERNEL, 0); + memset (buf, 0, sizeof (glibtop_proc_kernel)); } diff --git a/sysdeps/osf1/proclist.c b/sysdeps/osf1/proclist.c index 79d9bcb5..0134c29b 100644 --- a/sysdeps/osf1/proclist.c +++ b/sysdeps/osf1/proclist.c @@ -30,6 +30,14 @@ static const unsigned long _glibtop_sysdeps_proclist = (1 << GLIBTOP_PROCLIST_TOTAL) + (1 << GLIBTOP_PROCLIST_NUMBER) + (1 << GLIBTOP_PROCLIST_SIZE); +/* Init function. */ + +void +glibtop_init_proclist_p (glibtop *server) +{ + server->sysdeps.proclist = _glibtop_sysdeps_proclist; +} + /* How many elements are there per proctable entry? */ #define ELEMENTS_PER_ENTRY 8 @@ -64,7 +72,7 @@ glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf) struct tbl_procinfo procinfo [8]; int entry, max_elements, k; - glibtop_init_p (server, 0, 0); + glibtop_init_p (server, GLIBTOP_SYSDEPS_PROCLIST, 0); memset (buf, 0, sizeof (glibtop_proclist)); diff --git a/sysdeps/osf1/procmem.c b/sysdeps/osf1/procmem.c index 34eb915d..98fde9e5 100644 --- a/sysdeps/osf1/procmem.c +++ b/sysdeps/osf1/procmem.c @@ -37,6 +37,14 @@ static const unsigned long _glibtop_sysdeps_proc_mem = (1 << GLIBTOP_PROC_MEM_VSIZE) + (1 << GLIBTOP_PROC_MEM_RESIDENT) + (1 << GLIBTOP_PROC_MEM_RSS); +/* Init function. */ + +void +glibtop_init_proc_mem_p (glibtop *server) +{ + server->sysdeps.proc_mem = _glibtop_sysdeps_proc_mem; +} + /* Provides detailed information about a process. */ void @@ -48,7 +56,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf, task_t thistask; struct user u; - glibtop_init_p (server, 0, 0); + glibtop_init_p (server, GLIBTOP_SYSDEPS_PROC_MEM, 0); memset (buf, 0, sizeof (glibtop_proc_mem)); diff --git a/sysdeps/osf1/procsegment.c b/sysdeps/osf1/procsegment.c index 59f98fad..e2312a2e 100644 --- a/sysdeps/osf1/procsegment.c +++ b/sysdeps/osf1/procsegment.c @@ -31,6 +31,14 @@ static const unsigned long _glibtop_sysdeps_proc_segment = (1 << GLIBTOP_PROC_SEGMENT_START_CODE) + (1 << GLIBTOP_PROC_SEGMENT_END_CODE) + (1 << GLIBTOP_PROC_SEGMENT_START_STACK); +/* Init function. */ + +void +glibtop_init_proc_segment_p (glibtop *server) +{ + server->sysdeps.proc_segment = _glibtop_sysdeps_proc_segment; +} + /* Provides detailed information about a process. */ void @@ -40,7 +48,7 @@ glibtop_get_proc_segment_p (glibtop *server, glibtop_proc_segment *buf, int ret; struct user u; - glibtop_init_p (server, 0, 0); + glibtop_init_p (server, GLIBTOP_SYSDEPS_PROC_SEGMENT, 0); memset (buf, 0, sizeof (glibtop_proc_segment)); diff --git a/sysdeps/osf1/procsignal.c b/sysdeps/osf1/procsignal.c index 1871a384..f10c712f 100644 --- a/sysdeps/osf1/procsignal.c +++ b/sysdeps/osf1/procsignal.c @@ -29,6 +29,14 @@ static const unsigned long _glibtop_sysdeps_proc_signal = (1 << GLIBTOP_PROC_SIGNAL_SIGNAL) + (1 << GLIBTOP_PROC_SIGNAL_BLOCKED) + (1 << GLIBTOP_PROC_SIGNAL_SIGIGNORE) + (1 << GLIBTOP_PROC_SIGNAL_SIGCATCH); +/* Init function. */ + +void +glibtop_init_proc_signal_p (glibtop *server) +{ + server->sysdeps.proc_signal = _glibtop_sysdeps_proc_signal; +} + /* Provides detailed information about a process. */ void @@ -38,7 +46,7 @@ glibtop_get_proc_signal_p (glibtop *server, glibtop_proc_signal *buf, struct tbl_procinfo procinfo; int ret; - glibtop_init_p (server, 0, 0); + glibtop_init_p (server, GLIBTOP_SYSDEPS_PROC_SIGNAL, 0); memset (buf, 0, sizeof (glibtop_proc_signal)); diff --git a/sysdeps/osf1/procstate.c b/sysdeps/osf1/procstate.c index d0debb36..6f583881 100644 --- a/sysdeps/osf1/procstate.c +++ b/sysdeps/osf1/procstate.c @@ -29,6 +29,14 @@ static const unsigned long _glibtop_sysdeps_proc_state = (1 << GLIBTOP_PROC_STATE_CMD) + (1 << GLIBTOP_PROC_STATE_STATE) + (1 << GLIBTOP_PROC_STATE_UID); +/* Init function. */ + +void +glibtop_init_proc_state_p (glibtop *server) +{ + server->sysdeps.proc_state = _glibtop_sysdeps_proc_state; +} + /* Provides detailed information about a process. */ void @@ -38,7 +46,7 @@ glibtop_get_proc_state_p (glibtop *server, glibtop_proc_state *buf, struct tbl_procinfo procinfo; int ret; - glibtop_init_p (server, 0, 0); + glibtop_init_p (server, GLIBTOP_SYSDEPS_PROC_STATE, 0); memset (buf, 0, sizeof (glibtop_proc_state)); diff --git a/sysdeps/osf1/proctime.c b/sysdeps/osf1/proctime.c index f1d0aa74..8e40d033 100644 --- a/sysdeps/osf1/proctime.c +++ b/sysdeps/osf1/proctime.c @@ -32,6 +32,14 @@ static const unsigned long _glibtop_sysdeps_proc_time = (1 << GLIBTOP_PROC_TIME_STIME) + (1 << GLIBTOP_PROC_TIME_CSTIME) + (1 << GLIBTOP_PROC_TIME_START_TIME); +/* Init function. */ + +void +glibtop_init_proc_time_p (glibtop *server) +{ + server->sysdeps.proc_time = _glibtop_sysdeps_proc_time; +} + /* Provides detailed information about a process. */ void @@ -41,7 +49,7 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf, struct user u; int ret; - glibtop_init_p (server, 0, 0); + glibtop_init_p (server, GLIBTOP_SYSDEPS_PROC_TIME, 0); memset (buf, 0, sizeof (glibtop_proc_time)); diff --git a/sysdeps/osf1/procuid.c b/sysdeps/osf1/procuid.c index 40dc3a05..b9cab01c 100644 --- a/sysdeps/osf1/procuid.c +++ b/sysdeps/osf1/procuid.c @@ -40,6 +40,14 @@ static const unsigned long _glibtop_sysdeps_proc_uid = (1 << GLIBTOP_PROC_UID_PGRP) + (1 << GLIBTOP_PROC_UID_SESSION) + (1 << GLIBTOP_PROC_UID_TTY) + (1 << GLIBTOP_PROC_UID_TPGID); +/* Init function. */ + +void +glibtop_init_proc_uid_p (glibtop *server) +{ + server->sysdeps.proc_uid = _glibtop_sysdeps_proc_uid; +} + void glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf, pid_t pid) @@ -49,7 +57,7 @@ glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf, int ret, info_count; task_t thistask; - glibtop_init_p (server, 0, 0); + glibtop_init_p (server, GLIBTOP_SYSDEPS_PROC_UID, 0); memset (buf, 0, sizeof (glibtop_proc_uid)); diff --git a/sysdeps/osf1/sem_limits.c b/sysdeps/osf1/sem_limits.c index 45c6e663..e807d194 100644 --- a/sysdeps/osf1/sem_limits.c +++ b/sysdeps/osf1/sem_limits.c @@ -28,6 +28,14 @@ static unsigned long _glibtop_sysdeps_sem_limits = (1 << GLIBTOP_IPC_SEMOPM) + (1 << GLIBTOP_IPC_SEMVMX) + (1 << GLIBTOP_IPC_SEMAEM); +/* Init function. */ + +void +glibtop_init_sem_limits_s (glibtop *server) +{ + server->sysdeps.sem_limits = _glibtop_sysdeps_sem_limits; +} + /* Provides information about sysv sem limits. */ void diff --git a/sysdeps/osf1/shm_limits.c b/sysdeps/osf1/shm_limits.c index 5cb55f23..94616d46 100644 --- a/sysdeps/osf1/shm_limits.c +++ b/sysdeps/osf1/shm_limits.c @@ -27,6 +27,14 @@ static unsigned long _glibtop_sysdeps_shm_limits = (1 << GLIBTOP_IPC_SHMMAX) + (1 << GLIBTOP_IPC_SHMMIN) + (1 << GLIBTOP_IPC_SHMMNI) + (1 << GLIBTOP_IPC_SHMSEG); +/* Init function. */ + +void +glibtop_init_shm_limits_s (glibtop *server) +{ + server->sysdeps.shm_limits = _glibtop_sysdeps_shm_limits; +} + /* Provides information about sysv ipc limits. */ void diff --git a/sysdeps/osf1/swap.c b/sysdeps/osf1/swap.c index 5f1b8c6a..da69799a 100644 --- a/sysdeps/osf1/swap.c +++ b/sysdeps/osf1/swap.c @@ -27,6 +27,14 @@ static unsigned long _glibtop_sysdeps_swap = (1 << GLIBTOP_SWAP_TOTAL) + (1 << GLIBTOP_SWAP_USED) + (1 << GLIBTOP_SWAP_FREE); +/* Init function. */ + +void +glibtop_init_swap_s (glibtop *server) +{ + server->sysdeps.swap = _glibtop_sysdeps_swap; +} + /* Provides information about swap usage. */ void @@ -35,7 +43,7 @@ glibtop_get_swap_s (glibtop *server, glibtop_swap *buf) struct tbl_swapinfo swapinfo; int i; - glibtop_init_s (&server, 0, 0); + glibtop_init_s (&server, GLIBTOP_SYSDEPS_SWAP, 0); memset (buf, 0, sizeof (glibtop_swap)); diff --git a/sysdeps/osf1/uptime.c b/sysdeps/osf1/uptime.c index d7f9e0af..9a310190 100644 --- a/sysdeps/osf1/uptime.c +++ b/sysdeps/osf1/uptime.c @@ -28,6 +28,14 @@ static unsigned long _glibtop_sysdeps_uptime = (1 << GLIBTOP_UPTIME_UPTIME); +/* Init function. */ + +void +glibtop_init_uptime_s (glibtop *server) +{ + server->sysdeps.uptime = _glibtop_sysdeps_uptime; +} + /* Provides uptime and idle time. */ void @@ -36,7 +44,7 @@ glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf) struct tbl_sysinfo sysinfo; int ret; - glibtop_init_s (&server, 0, 0); + glibtop_init_s (&server, GLIBTOP_SYSDEPS_UPTIME, 0); memset (buf, 0, sizeof (glibtop_uptime)); |