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:
Martin Baulig
1998-08-07 10:01:55 +00:00
committed by Martin Baulig
parent 09e1353d0d
commit 4b3fcf149a
61 changed files with 537 additions and 191 deletions

View File

@@ -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));