summaryrefslogtreecommitdiff
path: root/sysdeps/osf1
diff options
context:
space:
mode:
authorMartin Baulig <martin@home-of-linux.org>1998-08-07 12:59:00 +0000
committerMartin Baulig <martin@src.gnome.org>1998-08-07 12:59:00 +0000
commita510ed127175d2f0cb04a7c5c76dfe71e9ac3ad9 (patch)
treefac819e144a625cd80ed18cbee7bd858478fbfe3 /sysdeps/osf1
parent3b4e0378f962a485e7980e5089b6dcfee0298c5d (diff)
downloadlibgtop-a510ed127175d2f0cb04a7c5c76dfe71e9ac3ad9.tar.gz
Removed. New files. Added `libgtop_server'; this has been moved here from
1998-08-07 Martin Baulig <martin@home-of-linux.org> * src/server: Removed. * src/daemon/{server, version}.c: New files. * src/daemon/Makefile.am: Added `libgtop_server'; this has been moved here from `src/server' since it shares some source code files with the `libgtop_daemon'. * LIBGTOP-VERSION: Added `LIBGTOP_SERVER_VERSION'. * src/daemon/gnuserv.c, lib/open.c: Improved version check between client and server. * include/glibtop/output.h: Removed. * sysdeps/stub_suid: New directory. This is mainly used as example for people porting libgtop to other systems. * sysdeps/common/sysdeps_suid.c: New file. Defines `glibtop_init_hook_p'. * sysdeps/osf1/*.c (glibtop_init_<no-suid-feature>_s): New functions. (glibtop_init_<suid-feature>_p): New functions.
Diffstat (limited to 'sysdeps/osf1')
-rw-r--r--sysdeps/osf1/cpu.c10
-rw-r--r--sysdeps/osf1/loadavg.c10
-rw-r--r--sysdeps/osf1/mem.c14
-rw-r--r--sysdeps/osf1/msg_limits.c8
-rw-r--r--sysdeps/osf1/open_suid.c17
-rw-r--r--sysdeps/osf1/prockernel.c17
-rw-r--r--sysdeps/osf1/proclist.c10
-rw-r--r--sysdeps/osf1/procmem.c10
-rw-r--r--sysdeps/osf1/procsegment.c10
-rw-r--r--sysdeps/osf1/procsignal.c10
-rw-r--r--sysdeps/osf1/procstate.c10
-rw-r--r--sysdeps/osf1/proctime.c10
-rw-r--r--sysdeps/osf1/procuid.c10
-rw-r--r--sysdeps/osf1/sem_limits.c8
-rw-r--r--sysdeps/osf1/shm_limits.c8
-rw-r--r--sysdeps/osf1/swap.c10
-rw-r--r--sysdeps/osf1/uptime.c10
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));