New fields error_method', sysdeps' and `required'. I added an improved
1998-08-07 Martin Baulig <martin@home-of-linux.org> * glibtop.h (_glibtop): New fields `error_method', `sysdeps' and `required'. I added an improved error handling: the client can tell the libraries which fields are absolutely required for each features and if it fails to set one of them, this will create an error which is handled depending upon the `error_method'. * include/glibtop/open.h: Define some constants for `error_method'. * lib/sysdeps.c (glibtop_get_sysdeps_r): No longer actually call any sysdeps function, it now simply copies `server->sysdeps'. (_glibtop_init_hook_s): Added. List of functions to be called during `glibtop_init_s' set to `glibtop_init_<no-suid-feature>_s'. * include/glibtop/sysdeps.h (<glibtop/union.h>): Removed. (glibtop_init_func_t): New typedef. (_glibtop_init_hook_s): Added. * sysdeps/linux/*.c (glibtop_init_<feature>_s): New functions. (glibtop_get_proc_*): Zero is now a valid pid. * sysdeps/kernel/*.c (glibtop_init_<feature>_s): New functions. (glibtop_get_proc_*): Zero is now a valid pid. 1998-08-06 Martin Baulig <martin@home-of-linux.org>
This commit is contained in:
committed by
Martin Baulig
parent
09e1353d0d
commit
4b3fcf149a
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/sysdeps.h>
|
||||
#include <glibtop/union.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
@@ -60,8 +60,10 @@ struct _glibtop_cpu
|
||||
extern void glibtop_get_cpu_l __P((glibtop *, glibtop_cpu *));
|
||||
|
||||
#if GLIBTOP_SUID_CPU
|
||||
extern void glibtop_init_cpu_p __P((glibtop *));
|
||||
extern void glibtop_get_cpu_p __P((glibtop *, glibtop_cpu *));
|
||||
#else
|
||||
extern void glibtop_init_cpu_s __P((glibtop *));
|
||||
extern void glibtop_get_cpu_s __P((glibtop *, glibtop_cpu *));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -50,8 +50,10 @@ struct _glibtop_loadavg
|
||||
extern void glibtop_get_loadavg_l __P((glibtop *, glibtop_loadavg *));
|
||||
|
||||
#if GLIBTOP_SUID_LOADAVG
|
||||
extern void glibtop_init_loadavg_p __P((glibtop *));
|
||||
extern void glibtop_get_loadavg_p __P((glibtop *, glibtop_loadavg *));
|
||||
#else
|
||||
extern void glibtop_init_loadavg_s __P((glibtop *));
|
||||
extern void glibtop_get_loadavg_s __P((glibtop *, glibtop_loadavg *));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -64,8 +64,10 @@ struct _glibtop_mem
|
||||
extern void glibtop_get_mem_l __P((glibtop *, glibtop_mem *));
|
||||
|
||||
#if GLIBTOP_SUID_MEM
|
||||
extern void glibtop_init_mem_p __P((glibtop *));
|
||||
extern void glibtop_get_mem_p __P((glibtop *, glibtop_mem *));
|
||||
#else
|
||||
extern void glibtop_init_mem_s __P((glibtop *));
|
||||
extern void glibtop_get_mem_s __P((glibtop *, glibtop_mem *));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -62,8 +62,10 @@ struct _glibtop_msg_limits
|
||||
extern void glibtop_get_msg_limits_l __P((glibtop *, glibtop_msg_limits *));
|
||||
|
||||
#if GLIBTOP_SUID_MSG_LIMITS
|
||||
extern void glibtop_init_msg_limits_p __P((glibtop *));
|
||||
extern void glibtop_get_msg_limits_p __P((glibtop *, glibtop_msg_limits *));
|
||||
#else
|
||||
extern void glibtop_init_msg_limits_s __P((glibtop *));
|
||||
extern void glibtop_get_msg_limits_s __P((glibtop *, glibtop_msg_limits *));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -41,6 +41,13 @@ __BEGIN_DECLS
|
||||
#define GLIBTOP_METHOD_INET 3
|
||||
#define GLIBTOP_METHOD_UNIX 4
|
||||
|
||||
#define GLIBTOP_ERROR_METHOD_IGNORE 0
|
||||
#define GLIBTOP_ERROR_METHOD_WARN_ONCE 1
|
||||
#define GLIBTOP_ERROR_METHOD_WARN 2
|
||||
#define GLIBTOP_ERROR_METHOD_ABORT 3
|
||||
|
||||
#define GLIBTOP_ERROR_METHOD_DEFAULT GLIBTOP_ERROR_METHOD_WARN_ONCE
|
||||
|
||||
extern void glibtop_open_l __P((glibtop *, const char *, const unsigned long, const unsigned));
|
||||
|
||||
extern void glibtop_open_p __P((glibtop *, const char *, const unsigned long, const unsigned));
|
||||
|
||||
@@ -25,11 +25,12 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PARAM_METHOD 1
|
||||
#define GLIBTOP_PARAM_FEATURES 2
|
||||
#define GLIBTOP_PARAM_COMMAND 3
|
||||
#define GLIBTOP_PARAM_HOST 4
|
||||
#define GLIBTOP_PARAM_PORT 5
|
||||
#define GLIBTOP_PARAM_METHOD 1
|
||||
#define GLIBTOP_PARAM_FEATURES 2
|
||||
#define GLIBTOP_PARAM_COMMAND 3
|
||||
#define GLIBTOP_PARAM_HOST 4
|
||||
#define GLIBTOP_PARAM_PORT 5
|
||||
#define GLIBTOP_PARAM_ERROR_METHOD 6
|
||||
|
||||
#define glibtop_get_parameter(p1,p2,p3) glibtop_get_parameter_l(glibtop_global_server,p1,p2,p3)
|
||||
#define glibtop_set_parameter(p1,p2,p3) glibtop_set_parameter_l(glibtop_global_server,p1,p2,p3)
|
||||
|
||||
@@ -71,8 +71,10 @@ struct _glibtop_proc_kernel
|
||||
extern void glibtop_get_proc_kernel_l __P((glibtop *, glibtop_proc_kernel *, pid_t));
|
||||
|
||||
#if GLIBTOP_SUID_PROC_KERNEL
|
||||
extern void glibtop_init_proc_kernel_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_kernel_p __P((glibtop *, glibtop_proc_kernel *, pid_t));
|
||||
#else
|
||||
extern void glibtop_init_proc_kernel_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_kernel_s __P((glibtop *, glibtop_proc_kernel *, pid_t));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -54,8 +54,10 @@ struct _glibtop_proclist
|
||||
extern unsigned *glibtop_get_proclist_l __P((glibtop *, glibtop_proclist *));
|
||||
|
||||
#if GLIBTOP_SUID_PROCLIST
|
||||
extern void glibtop_init_proclist_p __P((glibtop *));
|
||||
extern unsigned *glibtop_get_proclist_p __P((glibtop *, glibtop_proclist *));
|
||||
#else
|
||||
extern void glibtop_init_proclist_s __P((glibtop *));
|
||||
extern unsigned *glibtop_get_proclist_s __P((glibtop *, glibtop_proclist *));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -64,8 +64,10 @@ struct _glibtop_proc_mem
|
||||
extern void glibtop_get_proc_mem_l __P((glibtop *, glibtop_proc_mem *, pid_t));
|
||||
|
||||
#if GLIBTOP_SUID_PROC_MEM
|
||||
extern void glibtop_init_proc_mem_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_mem_p __P((glibtop *, glibtop_proc_mem *, pid_t));
|
||||
#else
|
||||
extern void glibtop_init_proc_mem_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_mem_s __P((glibtop *, glibtop_proc_mem *, pid_t));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -65,8 +65,10 @@ struct _glibtop_proc_segment
|
||||
extern void glibtop_get_proc_segment_l __P((glibtop *, glibtop_proc_segment *, pid_t));
|
||||
|
||||
#if GLIBTOP_SUID_PROC_SEGMENT
|
||||
extern void glibtop_init_proc_segment_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_segment_p __P((glibtop *, glibtop_proc_segment *, pid_t));
|
||||
#else
|
||||
extern void glibtop_init_proc_segment_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_segment_s __P((glibtop *, glibtop_proc_segment *, pid_t));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -58,8 +58,10 @@ struct _glibtop_proc_signal
|
||||
extern void glibtop_get_proc_signal_l __P((glibtop *, glibtop_proc_signal *, pid_t));
|
||||
|
||||
#if GLIBTOP_SUID_PROC_SIGNAL
|
||||
extern void glibtop_init_proc_signal_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_signal_p __P((glibtop *, glibtop_proc_signal *, pid_t));
|
||||
#else
|
||||
extern void glibtop_init_proc_signal_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_signal_s __P((glibtop *, glibtop_proc_signal *, pid_t));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -65,8 +65,10 @@ struct _glibtop_proc_state
|
||||
extern void glibtop_get_proc_state_l __P((glibtop *, glibtop_proc_state *, pid_t));
|
||||
|
||||
#if GLIBTOP_SUID_PROC_STATE
|
||||
extern void glibtop_init_proc_state_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_state_p __P((glibtop *, glibtop_proc_state *, pid_t));
|
||||
#else
|
||||
extern void glibtop_init_proc_state_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_state_s __P((glibtop *, glibtop_proc_state *, pid_t));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -70,8 +70,10 @@ struct _glibtop_proc_time
|
||||
extern void glibtop_get_proc_time_l __P((glibtop *, glibtop_proc_time *, pid_t));
|
||||
|
||||
#if GLIBTOP_SUID_PROC_TIME
|
||||
extern void glibtop_init_proc_time_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_time_p __P((glibtop *, glibtop_proc_time *, pid_t));
|
||||
#else
|
||||
extern void glibtop_init_proc_time_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_time_s __P((glibtop *, glibtop_proc_time *, pid_t));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -74,8 +74,10 @@ struct _glibtop_proc_uid
|
||||
extern void glibtop_get_proc_uid_l __P((glibtop *, glibtop_proc_uid *, pid_t));
|
||||
|
||||
#if GLIBTOP_SUID_PROC_UID
|
||||
extern void glibtop_init_proc_uid_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_uid_p __P((glibtop *, glibtop_proc_uid *, pid_t));
|
||||
#else
|
||||
extern void glibtop_init_proc_uid_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_uid_s __P((glibtop *, glibtop_proc_uid *, pid_t));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -68,8 +68,10 @@ struct _glibtop_sem_limits
|
||||
extern void glibtop_get_sem_limits_l __P((glibtop *, glibtop_sem_limits *));
|
||||
|
||||
#if GLIBTOP_SUID_SEM_LIMITS
|
||||
extern void glibtop_init_sem_limits_p __P((glibtop *));
|
||||
extern void glibtop_get_sem_limits_p __P((glibtop *, glibtop_sem_limits *));
|
||||
#else
|
||||
extern void glibtop_init_sem_limits_s __P((glibtop *));
|
||||
extern void glibtop_get_sem_limits_s __P((glibtop *, glibtop_sem_limits *));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -58,8 +58,10 @@ struct _glibtop_shm_limits
|
||||
extern void glibtop_get_shm_limits_l __P((glibtop *, glibtop_shm_limits *));
|
||||
|
||||
#if GLIBTOP_SUID_SHM_LIMITS
|
||||
extern void glibtop_init_shm_limits_p __P((glibtop *));
|
||||
extern void glibtop_get_shm_limits_p __P((glibtop *, glibtop_shm_limits *));
|
||||
#else
|
||||
extern void glibtop_init_shm_limits_s __P((glibtop *));
|
||||
extern void glibtop_get_shm_limits_s __P((glibtop *, glibtop_shm_limits *));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -58,8 +58,10 @@ struct _glibtop_swap
|
||||
extern void glibtop_get_swap_l __P((glibtop *, glibtop_swap *));
|
||||
|
||||
#if GLIBTOP_SUID_SWAP
|
||||
extern void glibtop_init_swap_p __P((glibtop *));
|
||||
extern void glibtop_get_swap_p __P((glibtop *, glibtop_swap *));
|
||||
#else
|
||||
extern void glibtop_init_swap_s __P((glibtop *));
|
||||
extern void glibtop_get_swap_s __P((glibtop *, glibtop_swap *));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#define __GLIBTOP_SYSDEPS_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/union.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
@@ -51,6 +50,9 @@ __BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1)
|
||||
|
||||
typedef void (*glibtop_init_func_t) (glibtop *);
|
||||
extern glibtop_init_func_t _glibtop_init_hook_s [];
|
||||
|
||||
typedef struct _glibtop_sysdeps glibtop_sysdeps;
|
||||
|
||||
struct _glibtop_sysdeps
|
||||
|
||||
@@ -52,8 +52,10 @@ struct _glibtop_uptime
|
||||
extern void glibtop_get_uptime_l __P((glibtop *, glibtop_uptime *));
|
||||
|
||||
#if GLIBTOP_SUID_UPTIME
|
||||
extern void glibtop_init_uptime_p __P((glibtop *));
|
||||
extern void glibtop_get_uptime_p __P((glibtop *, glibtop_uptime *));
|
||||
#else
|
||||
extern void glibtop_init_uptime_s __P((glibtop *));
|
||||
extern void glibtop_get_uptime_s __P((glibtop *, glibtop_uptime *));
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user