Compare commits

..

9 Commits

Author SHA1 Message Date
Martin Baulig
321f5180f7 Fixing mistakes from previous checkin. 1998-06-11 23:53:16 +00:00
Martin Baulig
d9874dca81 Replaced call to gh_append2 ()' with gh_append ()'.
1998-06-12  Martin Baulig  <baulig@taurus.uni-trier.de>

	* sysdeps/guile/proclist.c: Replaced call to
	`gh_append2 ()' with `gh_append ()'.
1998-06-11 22:45:18 +00:00
Martin Baulig
0d744987ff removed that directory.
1998-06-05  Martin Baulig  <baulig@taurus.uni-trier.de>

        * support: removed that directory.

        * configure.in: we check whether '-lgnomesupport' is
        included in $GNOME_LIBS and add it together with
        $GNOME_LIBDIR to LIBSUPPORT in this case.

        Gnome (gnome-libs) is now required to build libgtop,
        added short comment to configure.in how to revert this
        change.

        * Makefile.am: removed `support' subdir.

I have now removed all the `support' stuff from libgtop. It uses
'-lgnomesupport' from gnome-libs when it's required. So you have to
build gnome-libs before you can build libgtop.

If all works well, this is my last checkin into the stable branch.
I will now continue working on the main trunk.

Martin
1998-06-05 15:06:54 +00:00
Martin Baulig
e6b544af80 Removed stuff from support directory. 1998-06-05 14:40:20 +00:00
Martin Baulig
266d62bc3c Added sample spec file for libgtop. 1998-06-03 17:30:56 +00:00
Martin Baulig
4c3fb58e3e New file.
* libgtop.spec: New file.

* Makefile.am (EXTRA_DIST): Added `autogen.sh' and
`libgtop.spec'.

* configure.in (LIBGTOP_INCS): is now identically to
`LIBGTOP_GUILE_INCS'.
1998-06-03 17:29:47 +00:00
Martin Baulig
223f986205 only including intl headers while compiling libgtop.
* include/glibtop/global.h: only including intl headers
while compiling libgtop.
1998-06-03 17:27:26 +00:00
Martin Baulig
ec0d751472 Committing Federico's changes into the stable branch. 1998-06-03 11:06:53 +00:00
Martin Baulig
005eaa8e95 *** empty log message *** 1998-06-02 23:13:30 +00:00
243 changed files with 3618 additions and 5040 deletions

184
ChangeLog
View File

@@ -1,101 +1,10 @@
1998-06-14 Martin Baulig <martin@home-of-linux.org>
* acconfig.h (HAVE_LINUX_TABLE): New tag.
* lib/lib.awk: New file.
Creates `lib.c' depending upon `features.def'.
* lib/<feature>.c: Removed.
* sysdeps/guile/guile.awk: New file.
Creates `guile.c' depending upon `features.def'.
* sysdeps/guile/*.c: Removed.
1998-06-13 Martin Baulig <martin@home-of-linux.org>
* features.def: List of features for `guile-names.awk'.
* sysdeps/guile/names/guile-names.awk: New file.
Creates `guile-names.c' depending upon `features.def'.
* sysdeps/guile/names/*.c: Removed.
* kernel: New directory. Contains some kernel code to
implement a new system call table () to fetch information
directly from the Linux kernel.
* sysdeps/kernel: New directory. Uses the table () function
from the `kernel' directory to fetch things directly from
the Linux kernel.
* sysdeps/Makefile.am (DIST_SUBDIRS): Added `kernel'.
* configure.in: Removed `build_CC' again.
1998-06-12 Martin Baulig <baulig@taurus.uni-trier.de> 1998-06-12 Martin Baulig <baulig@taurus.uni-trier.de>
* include/glibtop/sysdeps.h (glibtop_types_sysdeps):
Forgot to change declaration on Jun 6.
* sysdeps/names/sysdeps.c (glibtop_types_sysdeps):
Using numeric constants from `types.h' instead of string
constants; forgot to change this on Jun 6. Added information
about new `features' field of `_glibtop_sysdeps'.
* sysdeps/guile/names/*.c (glibtop_guile_types_*):
Using `gh_ulong2scm' instead of `gh_str02scm'.
* sysdeps/guile/proclist.c: Replaced call to * sysdeps/guile/proclist.c: Replaced call to
`gh_append2 ()' with `gh_append ()'. `gh_append2 ()' with `gh_append ()'.
* sysdeps/guile/names/*.c: dito. * sysdeps/guile/names/*.c: dito.
1998-06-08 Martin Baulig <martin@home-of-linux.org>
* support: Added again.
* Makefile.am (SUBDIRS): Added `support' again.
* configure.in: First, we check for gnome. If it is not
found, we run GNOME_SUPPORT_CHECKS; otherwise use
`$GNOME_LIBDIR -lgnomesupport'.
1998-06-07 Martin Baulig <martin@home-of-linux.org>
* examples/ChangeLog: New file.
* macros/gnome-libgtop-sysdeps.m4: Include
`glibtop_machine.h' for Linux.
* sysdeps/linux/glibtop_machine.h: New file.
* sysdeps/linux/*.c: Performance optimizations. We now use
`open' and `read' instead of `fopen' and `fscanf'.
* *.[ch]: Using single underscore instead of two underscores
for function prefixes (regexp: ``s,__([rspl])\b,_$1,g'') to
avoid ambiguity with mangled C++ names.
1998-06-06 Martin Baulig <martin@home-of-linux.org>
* sysdeps/osf1/glibtop_server.h: New file.
* sysdeps/osf1/*.c: renamed all functions implementing
features that don't need to be suid to '__s'.
* sysdeps/names/procdata.c: Removed that file.
* include/glibtop/*.h (glibtop_types_*): Changed declaration.
* glibtop.h: Added `#include <types.h>'.
* include/glibtop/types.h: New file - numeric constants
for `glibtop_types_<feature>'.
* sysdeps/names/*.c (glibtop_types_*): Using numeric
constants from `types.h' instead of string constants.
1998-06-05 Martin Baulig <baulig@taurus.uni-trier.de> 1998-06-05 Martin Baulig <baulig@taurus.uni-trier.de>
* support: removed that directory. * support: removed that directory.
@@ -127,99 +36,6 @@
* src/server/main.c: #include <locale.h> * src/server/main.c: #include <locale.h>
1998-06-02 Martin Baulig <baulig@merkur.uni-trier.de>
* lib/open.c (glibtop_open): renamed to `glibtop_open__l'.
* sysdeps/linux/open.c (glibtop_open): renamed to
`glibtop_open__r'.
* include/glibtop/open.h (GLIBTOP_OPEN_NO_OVERRIDE):
tells `glibtop_open' to use the default server and not
to check the environment variables.
* include/glibtop/sysdeps.h (_glibtop_sysdeps):
renamed 'dummy' member to 'features'.
* src/proxy/*: new directory - proxy server.
* include/glibtop/command.h (GLIBTOP_CMND_SYSDEPS):
added definition here.
* src/server/main.c (GLIBTOP_CMND_SYSDEPS): new
command to get glibtop_server_features.
1998-06-01 Martin Baulig <martin@home-of-linux.org>
* NEWS: added more detailed description of today's and
yesterday's changes.
* include/glibtop/*.h: to use the ChangeLog entry from May 28:
'__l' is a function defined in the client part;
'__s' is a function defined in the sysdeps part and
'__p' is a function that needs special priviledges.
'__r' is mapped either on '__p' or on '__s'.
the function without suffix is mapped on '__l'.
* sysdeps/common/sysdeps.c: now using '__r' functions,
they are #defined either as the '__p' or the '__s' ones.
* sysdeps/linux/*.c: changed call of 'glibtop_init__r',
it now takes two additional arguments.
* examples/{first.c, second.c}: now using 'glibtop_init'
instead of 'glibtop_init__r'.
* include/glibtop/sysdeps.h: added 'dummy' member so
'GLIBTOP_SYSDEPS_<feature>' now start with 1.
* include/glibtop/*.h: we now #define 'glibtop_get_<feature>'
as 'glibtop_get_<feature>__l' and 'glibtop_get_<feature>__r'
either as the '__p' or the '__s' function.
* lib/*.c: removed #if's - we now decide at runtime
whether to use the server or to call the appropriate
function for the sysdeps directory.
1998-05-28 Martin Baulig <baulig@merkur.uni-trier.de>
* src/server/main.c: we now use the '__p' functions,
but only if the appropriate 'GLIBTOP_SUID_<feature>'
has a non-zero value.
* configure.in (@machine_incs@): always use
`-I$(top_srcdir)/sysdeps/@sysdeps_dir@'; it's no
longer conditional.
* examples/Makefile.am: removed the '_linux' examples.
* sysdeps/linux/*.c: renamed all functions implementing
features to '__s'.
* lib/*.c: renamed all functions implementing features
to '__l'; we only emit code for those functions if the
corresponding 'GLIBTOP_SUID_<feature>' has a positive value.
* include/glibtop/*.h: added some new function suffixes:
'__l' is a function defined in the client part;
'__s' is a function defined in the sysdeps part and
'__p' is a function that needs special priviledges.
'__r' is mapped either on '__l' or on '__s'.
* sysdeps/linux/glibtop_server.h: New file -
defines system dependent constants 'GLIBTOP_SUID_<feature>'
being either 'GLIBTOP_SYSDEPS_<feature>'+1 depending upon
whether or not this feature requires using the server.
* lib/sysdeps.c: removed that file; it is no longer
needed.
1998-05-25 Martin Baulig <baulig@merkur.uni-trier.de>
* src/server/main.c: Fixed `broken pipe' error when server
is running SUID; accidentally uses setreuid () instead of
setregid ().
1998-05-24 Martin Baulig <martin@home-of-linux.org> 1998-05-24 Martin Baulig <martin@home-of-linux.org>
* sysdeps/sun4/{open.c, mem.c, glibtop_machine.h}: added * sysdeps/sun4/{open.c, mem.c, glibtop_machine.h}: added

View File

@@ -4,9 +4,9 @@ if GLIBTOP_EXAMPLES
examples_SUBDIRS = examples examples_SUBDIRS = examples
endif endif
built_SUBDIRS = include sysdeps lib src built_SUBDIRS = include sysdeps src lib
SUBDIRS = po intl support macros $(built_SUBDIRS) $(examples_SUBDIRS) SUBDIRS = po intl macros $(built_SUBDIRS) $(examples_SUBDIRS)
DIST_SUBDIRS = po intl macros include sysdeps src lib examples DIST_SUBDIRS = po intl macros include sysdeps src lib examples

111
NEWS
View File

@@ -1,116 +1,5 @@
$Id$ $Id$
Jun/01/1998
===========
* We have some new ``suffix rules'':
'__l' is a function defined in the client part;
'__s' is a function defined in the sysdeps part and
'__p' is a function that needs special priviledges.
'__r' is mapped either on '__p' or on '__s'.
the function without suffix is mapped on '__l'.
* We now decide at runtime whether or not using the server
is required for a particular function. All user programs
now call the '__l' function defined in '-lgtop' (in the lib
subdir). These functions either use 'glibtop_call__l' to
call the server or call the '__r' function.
* A function in the sysdeps directory now has the '__s' suffix
if it do not need any priviledges (and thus can be called directly
from client code) and the '__p' suffix otherwise (when it has to
be called from the server).
* If you call one of these functions:
-> use the '__p' suffix to be sure to get the SUID-safe one
(used in the server).
-> use the '__s' suffix to be sure to get a function that
doesn't need any priviledges.
-> use the '__r' suffix otherwise (it is mapped either on the
'__p' or on the '__s' one).
Only use the '__p' and '__s' functions in a 'GLIBTOP_SUID_<feature>'
conditional, otherwise you'll get undefined symbols !
* The server is now started from 'glibtop_init__r', but only when
it's really needed; for instance on DEC OSF/1 you only need it
for the proc* features - if you program only fetches the CPU usage,
now server will be started.
* Sorry, at the moment everything is a little bit unstable, I'm doing
heavy changes. I've just some great ideas which still need some work:
-> I want to have a SUID server that only implements those features
that need to be SUID; everything else uses the sysdeps code directly.
-> If a program only uses stuff that do not need the server, the
server will not be started at all.
-> I'm working on some kind of proxy server that can be used on a remote
host; in feature one can then use the MDI stuff from ghex in gtop to
have notebook pages displaying processes from different hosts.
* Well it is as much unstable that it only works under Linux at the moment.
1998-06-01 Martin Baulig <martin@home-of-linux.org>
* sysdeps/common/sysdeps.c: now using '__r' functions,
they are #defined either as the '__p' or the '__s' ones.
* sysdeps/linux/*.c: changed call of 'glibtop_init__r',
it now takes two additional arguments.
* examples/{first.c, second.c}: now using 'glibtop_init'
instead of 'glibtop_init__r'.
* include/glibtop/sysdeps.h: added 'dummy' member so
'GLIBTOP_SYSDEPS_<feature>' now start with 1.
* include/glibtop/*.h: we now #define 'glibtop_get_<feature>'
as 'glibtop_get_<feature>__l' and 'glibtop_get_<feature>__r'
either as the '__p' or the '__s' function.
* lib/*.c: removed #if's - we now decide at runtime
whether to use the server or to call the appropriate
function for the sysdeps directory.
1998-05-28 Martin Baulig <baulig@merkur.uni-trier.de>
* src/server/main.c: we now use the '__p' functions,
but only if the appropriate 'GLIBTOP_SUID_<feature>'
has a non-zero value.
* configure.in (@machine_incs@): always use
`-I$(top_srcdir)/sysdeps/@sysdeps_dir@'; it's no
longer conditional.
* examples/Makefile.am: removed the '_linux' examples.
* sysdeps/linux/*.c: renamed all functions implementing
features to '__s'.
* lib/*.c: renamed all functions implementing features
to '__l'; we only emit code for those functions if the
corresponding 'GLIBTOP_SUID_<feature>' has a positive value.
* include/glibtop/*.h: added some new function suffixes:
'__l' is a function defined in the client part;
'__s' is a function defined in the sysdeps part and
'__p' is a function that needs special priviledges.
'__r' is mapped either on '__l' or on '__s'.
* sysdeps/linux/glibtop_server.h: New file -
defines system dependent constants 'GLIBTOP_SUID_<feature>'
being either 'GLIBTOP_SYSDEPS_<feature>'+1 depending upon
whether or not this feature requires using the server.
* lib/sysdeps.c: removed that file; it is no longer
needed.
May/21/1998 May/21/1998
=========== ===========

View File

@@ -33,5 +33,3 @@
#undef GLIBTOP_EXAMPLES #undef GLIBTOP_EXAMPLES
#undef NEED_LIBGTOP #undef NEED_LIBGTOP
#undef HAVE_LINUX_TABLE

View File

@@ -4,17 +4,19 @@ dnl
AC_INIT(copyright.txt) AC_INIT(copyright.txt)
AM_CONFIG_HEADER(config.h) AM_CONFIG_HEADER(config.h)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE(libgtop, 0.01)
AM_MAINTAINER_MODE
AM_ACLOCAL_INCLUDE(macros) AM_ACLOCAL_INCLUDE(macros)
AC_ISC_POSIX AC_CANONICAL_HOST
AC_PROG_CC
AC_STDC_HEADERS
AC_ARG_PROGRAM
AC_CHECK_TOOL(CC,gcc) AC_CHECK_TOOL(CC,gcc)
AC_CHECK_TOOL(CXX,g++)
AC_CHECK_TOOL(RANLIB,ranlib) AC_CHECK_TOOL(RANLIB,ranlib)
AC_CHECK_TOOL(LD,ld)
AC_CHECK_TOOL(AS,as) AC_CHECK_TOOL(AS,as)
AC_CHECK_TOOL(AR,ar) AC_CHECK_TOOL(AR,ar)
AC_CHECK_TOOL(NM,nm) AC_CHECK_TOOL(NM,nm)
@@ -22,25 +24,8 @@ AC_CHECK_TOOL(NM,nm)
NM=`which $NM` NM=`which $NM`
export CC CXX RANLIB LD AS AR NM export CC CXX RANLIB LD AS AR NM
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
export cross_compiling
AM_PROG_LIBTOOL
AM_INIT_AUTOMAKE(libgtop, 0.01)
dnl If you want to use libgtop without gnome, comment the following line out. dnl If you want to use libgtop without gnome, comment the following line out.
GNOME_INIT_HOOK(gnome_found=yes) GNOME_INIT
if test "x$gnome_found" != xyes; then
GNOME_SUPPORT_CHECKS
else
AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false)
AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
fi
AC_LC_SYSDEPS AC_LC_SYSDEPS
@@ -50,7 +35,7 @@ if test x$libgtop_want_guile = xyes ; then
if test x$libgtop_want_names = xyes ; then if test x$libgtop_want_names = xyes ; then
AC_DEFINE(GLIBTOP_GUILE_NAMES) AC_DEFINE(GLIBTOP_GUILE_NAMES)
fi fi
guile_examples='third third_static' guile_examples='third third_static third_linux'
guile_subdirs='guile' guile_subdirs='guile'
else else
guile_examples= guile_examples=
@@ -64,6 +49,18 @@ fi
AC_SUBST(guile_examples) AC_SUBST(guile_examples)
AC_SUBST(guile_subdirs) AC_SUBST(guile_subdirs)
AC_ISC_POSIX
AC_PROG_CXX
AC_PROG_CC
AC_PROG_CPP
AC_STDC_HEADERS
AC_ARG_PROGRAM
AM_PROG_LEX
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
export cross_compiling
AM_PROG_LIBTOOL AM_PROG_LIBTOOL
dnl You need to uncomment the following line if you want to use libgtop without Gnome. dnl You need to uncomment the following line if you want to use libgtop without Gnome.
@@ -97,7 +94,7 @@ AC_TYPE_SIGNAL
AC_FUNC_STRFTIME AC_FUNC_STRFTIME
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname) AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
ALL_LINGUAS="fr" ALL_LINGUAS=""
AM_GNU_GETTEXT AM_GNU_GETTEXT
CFLAGS="$CFLAGS -D_IN_LIBGTOP" CFLAGS="$CFLAGS -D_IN_LIBGTOP"
@@ -177,7 +174,9 @@ if test "x$ac_cv_guile_found" = "xyes" ; then
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS $GUILE_LIBS" LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS $GUILE_LIBS"
fi fi
machine_incs='-I$(top_srcdir)/sysdeps/@sysdeps_dir@' if test "x$libgtop_use_machine_h" = "xyes" ; then
machine_incs='-I$(top_srcdir)/sysdeps/@sysdeps_dir@'
fi
AC_SUBST(machine_incs) AC_SUBST(machine_incs)
@@ -188,18 +187,6 @@ AC_SUBST(LIBGTOP_GUILE_INCS)
AC_SUBST(LIBGTOP_BINDIR) AC_SUBST(LIBGTOP_BINDIR)
AC_SUBST(LIBGTOP_SERVER) AC_SUBST(LIBGTOP_SERVER)
LIBSUPPORT=
SUPPORTINCS=
if test "$need_gnome_support" = yes; then
if test "x$gnome_found" = xyes ; then
LIBSUPPORT="$GNOME_LIBDIR -lgnomesupport"
SUPPORTINCS="$GNOME_INCLUDEDIR"
else
LIBSUPPORT='$(top_builddir)/support/libgnomesupport.la'
SUPPORTINCS='-DNEED_GNOMESUPPORT_H -I$(top_builddir)/support -I$(top_srcdir)/support'
fi
fi
AC_OUTPUT([ AC_OUTPUT([
Makefile Makefile
po/Makefile.in po/Makefile.in
@@ -215,11 +202,8 @@ sysdeps/stub/Makefile
sysdeps/sun4/Makefile sysdeps/sun4/Makefile
sysdeps/osf1/Makefile sysdeps/osf1/Makefile
sysdeps/linux/Makefile sysdeps/linux/Makefile
sysdeps/kernel/Makefile
src/Makefile src/Makefile
src/server/Makefile src/server/Makefile
src/proxy/Makefile
lib/Makefile lib/Makefile
examples/Makefile examples/Makefile
support/Makefile
macros/Makefile],[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile]) macros/Makefile],[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])

View File

@@ -1,11 +0,0 @@
1998-06-12 Martin Baulig <martin@home-of-linux.org>
* test.scm: New file.
1998-06-07 Martin Baulig <martin@home-of-linux.org>
* Makefile.am (CFLAGS): Disable optimize.
* first.c (PROFILE_COUNT): Number of times each function
should be called. Defaults to 1; to profile the code, you
can increase this when compiling.

View File

@@ -6,35 +6,46 @@ INCLUDES = -I$(top_builddir) -I$(top_srcdir) @machine_incs@ \
-I$(top_srcdir)/include -I$(top_srcdir)/intl @GUILE_INCS@ \ -I$(top_srcdir)/include -I$(top_srcdir)/intl @GUILE_INCS@ \
-DGTOPLOCALEDIR=\"$(datadir)/locale\" -D_GNU_SOURCE -DGTOPLOCALEDIR=\"$(datadir)/locale\" -D_GNU_SOURCE
CFLAGS = -Wall -W @CFLAGS@ -O0 CFLAGS = -Wall -W @CFLAGS@
DEFS = @DEFS@ DEFS = @DEFS@
bin_PROGRAMS = first first_static second second_static \ bin_PROGRAMS = first first_static first_linux \
second second_static second_linux \
@guile_examples@ @guile_examples@
EXTRA_PROGRAMS = third third_static EXTRA_PROGRAMS = third third_static third_linux
first_SOURCES = first.c first_SOURCES = first.c
first_LDADD = $(top_builddir)/sysdeps/common/libgtop_common.la \ first_LDADD = $(top_builddir)/sysdeps/common/libgtop_common.la \
$(top_builddir)/lib/libgtop.la \ $(top_builddir)/lib/libgtop.la \
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
@INTLLIBS@ @LIBSUPPORT@ @INTLLIBS@ @LIBSUPPORT@
first_static_SOURCES = $(first_SOURCES) first_static_SOURCES = $(first_SOURCES)
first_static_LDADD = $(first_LDADD) first_static_LDADD = $(first_LDADD)
first_static_LDFLAGS = -static first_static_LDFLAGS = -static
first_linux_SOURCES = $(first_SOURCES)
first_linux_LDADD = $(top_builddir)/sysdeps/common/libgtop_common.la \
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
@INTLLIBS@ @LIBSUPPORT@
first_linux_LDFLAGS = -static
second_SOURCES = second.c second_SOURCES = second.c
second_LDADD = $(top_builddir)/sysdeps/common/libgtop_common.la \ second_LDADD = $(top_builddir)/sysdeps/common/libgtop_common.la \
$(top_builddir)/lib/libgtop.la \ $(top_builddir)/lib/libgtop.la \
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
@INTLLIBS@ @LIBSUPPORT@ @INTLLIBS@ @LIBSUPPORT@
second_static_SOURCES = $(second_SOURCES) second_static_SOURCES = $(second_SOURCES)
second_static_LDADD = $(second_LDADD) second_static_LDADD = $(second_LDADD)
second_static_LDFLAGS = -static second_static_LDFLAGS = -static
second_linux_SOURCES = $(second_SOURCES)
second_linux_LDADD = $(top_builddir)/sysdeps/common/libgtop_common.la \
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
@INTLLIBS@ @LIBSUPPORT@
second_linux_LDFLAGS = -static
if GLIBTOP_NAMES if GLIBTOP_NAMES
third_guile_names_LIBS = $(top_builddir)/sysdeps/guile/names/libgtop_guile_names.la third_guile_names_LIBS = $(top_builddir)/sysdeps/guile/names/libgtop_guile_names.la
third_names_LIBS = $(top_builddir)/sysdeps/names/libgtop_names.la third_names_LIBS = $(top_builddir)/sysdeps/names/libgtop_names.la
@@ -43,11 +54,18 @@ endif
third_SOURCES = third.c third_SOURCES = third.c
third_LDADD = $(top_builddir)/sysdeps/guile/libgtop_guile.la \ third_LDADD = $(top_builddir)/sysdeps/guile/libgtop_guile.la \
$(third_guile_names_LIBS) $(third_names_LIBS) \ $(third_guile_names_LIBS) $(third_names_LIBS) \
$(top_builddir)/lib/libgtop.la \
$(top_builddir)/sysdeps/common/libgtop_common.la \ $(top_builddir)/sysdeps/common/libgtop_common.la \
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \ $(top_builddir)/lib/libgtop.la \
@GUILE_LIBS@ @INTLLIBS@ @LIBSUPPORT@ @GUILE_LIBS@ @INTLLIBS@ @LIBSUPPORT@
third_static_SOURCES = $(third_SOURCES) third_static_SOURCES = $(third_SOURCES)
third_static_LDADD = $(third_LDADD) third_static_LDADD = $(third_LDADD)
third_static_LDFLAGS = -static third_static_LDFLAGS = -static
third_linux_SOURCES = $(third_SOURCES)
third_linux_LDADD = $(top_builddir)/sysdeps/guile/libgtop_guile.la \
$(third_guile_names_LIBS) $(third_names_LIBS) \
$(top_builddir)/sysdeps/common/libgtop_common.la \
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
@GUILE_LIBS@ @INTLLIBS@ @LIBSUPPORT@
third_linux_LDFLAGS = -static

View File

@@ -29,70 +29,57 @@
#include <glibtop/union.h> #include <glibtop/union.h>
#include <glibtop/sysdeps.h> #include <glibtop/sysdeps.h>
#ifndef PROFILE_COUNT
#define PROFILE_COUNT 1
#endif
int int
main (int argc, char *argv []) main (int argc, char *argv [])
{ {
glibtop_union data; glibtop_union data;
glibtop_sysdeps sysdeps; glibtop_sysdeps sysdeps;
unsigned c, count, i, *ptr; unsigned i, *ptr;
pid_t pid, ppid; pid_t pid, ppid;
count = PROFILE_COUNT;
setlocale (LC_ALL, ""); setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, GTOPLOCALEDIR); bindtextdomain (PACKAGE, GTOPLOCALEDIR);
textdomain (PACKAGE); textdomain (PACKAGE);
glibtop_init (); glibtop_init__r (&glibtop_global_server);
for (c = 0; c < count; c++) glibtop_get_cpu (&data.cpu);
glibtop_get_cpu (&data.cpu);
fprintf (stderr, "CPU (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu\n", fprintf (stderr, "CPU (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu\n",
data.cpu.flags, data.cpu.total, data.cpu.user, data.cpu.nice, data.cpu.flags, data.cpu.total, data.cpu.user, data.cpu.nice,
data.cpu.sys, data.cpu.idle, data.cpu.frequency); data.cpu.sys, data.cpu.idle, data.cpu.frequency);
for (c = 0; c < count; c++) glibtop_get_mem (&data.mem);
glibtop_get_mem (&data.mem);
fprintf (stderr, "Memory (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n", fprintf (stderr, "Memory (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
data.mem.flags, data.mem.total, data.mem.used, data.mem.free, data.mem.flags, data.mem.total, data.mem.used, data.mem.free,
data.mem.shared, data.mem.buffer, data.mem.cached, data.mem.shared, data.mem.buffer, data.mem.cached,
data.mem.user, data.mem.locked); data.mem.user, data.mem.locked);
for (c = 0; c < count; c++) glibtop_get_swap (&data.swap);
glibtop_get_swap (&data.swap);
fprintf (stderr, "Swap (0x%08lx): %lu, %lu, %lu\n", data.swap.flags, fprintf (stderr, "Swap (0x%08lx): %lu, %lu, %lu\n", data.swap.flags,
data.swap.total, data.swap.used, data.swap.free); data.swap.total, data.swap.used, data.swap.free);
for (c = 0; c < count; c++) glibtop_get_uptime (&data.uptime);
glibtop_get_uptime (&data.uptime);
fprintf (stderr, "Uptime (0x%08lx): %f, %f\n", data.uptime.flags, fprintf (stderr, "Uptime (0x%08lx): %f, %f\n", data.uptime.flags,
data.uptime.uptime, data.uptime.idletime); data.uptime.uptime, data.uptime.idletime);
for (c = 0; c < count; c++) glibtop_get_loadavg (&data.loadavg);
glibtop_get_loadavg (&data.loadavg);
fprintf (stderr, "Loadavg (0x%08lx): %f, %f, %f\n", data.loadavg.flags, fprintf (stderr, "Loadavg (0x%08lx): %f, %f, %f\n", data.loadavg.flags,
data.loadavg.loadavg [0], data.loadavg.loadavg [1], data.loadavg.loadavg [0], data.loadavg.loadavg [1],
data.loadavg.loadavg [2]); data.loadavg.loadavg [2]);
for (c = 0; c < count; c++) glibtop_get_shm_limits (&data.shm_limits);
glibtop_get_shm_limits (&data.shm_limits);
fprintf (stderr, "Shm Limits (0x%08lx): %ld, %ld, %ld, %ld, %ld\n", fprintf (stderr, "Shm Limits (0x%08lx): %ld, %ld, %ld, %ld, %ld\n",
data.shm_limits.flags, data.shm_limits.shmmax, data.shm_limits.flags, data.shm_limits.shmmax,
data.shm_limits.shmmin, data.shm_limits.shmmni, data.shm_limits.shmmin, data.shm_limits.shmmni,
data.shm_limits.shmseg, data.shm_limits.shmall); data.shm_limits.shmseg, data.shm_limits.shmall);
for (c = 0; c < count; c++) glibtop_get_msg_limits (&data.msg_limits);
glibtop_get_msg_limits (&data.msg_limits);
fprintf (stderr, "Msg Limits (0x%08lx): %ld, %ld, %ld, %ld, %ld, %ld, %ld\n", fprintf (stderr, "Msg Limits (0x%08lx): %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
data.msg_limits.flags, data.msg_limits.msgpool, data.msg_limits.flags, data.msg_limits.msgpool,
@@ -100,8 +87,7 @@ main (int argc, char *argv [])
data.msg_limits.msgmnb, data.msg_limits.msgmni, data.msg_limits.msgmnb, data.msg_limits.msgmni,
data.msg_limits.msgssz, data.msg_limits.msgtql); data.msg_limits.msgssz, data.msg_limits.msgtql);
for (c = 0; c < count; c++) glibtop_get_sem_limits (&data.sem_limits);
glibtop_get_sem_limits (&data.sem_limits);
fprintf (stderr, "Sem Limits (0x%08lx): " fprintf (stderr, "Sem Limits (0x%08lx): "
"%ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n", "%ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
@@ -148,16 +134,14 @@ main (int argc, char *argv [])
fprintf (stderr, "\n"); fprintf (stderr, "\n");
for (c = 0; c < count; c++) glibtop_get_proc_state (&data.proc_state, pid);
glibtop_get_proc_state (&data.proc_state, pid);
fprintf (stderr, "Proc_State PID %5u (0x%08lx): '%s', %c, %u, %u\n", fprintf (stderr, "Proc_State PID %5u (0x%08lx): '%s', %c, %u, %u\n",
pid, data.proc_state.flags, data.proc_state.cmd, pid, data.proc_state.flags, data.proc_state.cmd,
data.proc_state.state, data.proc_state.uid, data.proc_state.state, data.proc_state.uid,
data.proc_state.gid); data.proc_state.gid);
for (c = 0; c < count; c++) glibtop_get_proc_uid (&data.proc_uid, pid);
glibtop_get_proc_uid (&data.proc_uid, pid);
fprintf (stderr, "Proc_Uid PID %5u (0x%08lx): " fprintf (stderr, "Proc_Uid PID %5u (0x%08lx): "
"%d %d %d %d %d %d %d %d %d %d %d %d\n", "%d %d %d %d %d %d %d %d %d %d %d %d\n",
@@ -169,8 +153,7 @@ main (int argc, char *argv [])
data.proc_uid.tpgid, data.proc_uid.priority, data.proc_uid.tpgid, data.proc_uid.priority,
data.proc_uid.nice); data.proc_uid.nice);
for (c = 0; c < count; c++) glibtop_get_proc_mem (&data.proc_mem, pid);
glibtop_get_proc_mem (&data.proc_mem, pid);
fprintf (stderr, "Proc_Mem PID %5u (0x%08lx): " fprintf (stderr, "Proc_Mem PID %5u (0x%08lx): "
"%ld %ld %ld %ld %ld %ld\n", pid, data.proc_mem.flags, "%ld %ld %ld %ld %ld %ld\n", pid, data.proc_mem.flags,
@@ -178,8 +161,7 @@ main (int argc, char *argv [])
data.proc_mem.resident, data.proc_mem.share, data.proc_mem.resident, data.proc_mem.share,
data.proc_mem.rss, data.proc_mem.rss_rlim); data.proc_mem.rss, data.proc_mem.rss_rlim);
for (c = 0; c < count; c++) glibtop_get_proc_time (&data.proc_time, pid);
glibtop_get_proc_time (&data.proc_time, pid);
fprintf (stderr, "Proc_Time PID %5u (0x%08lx): " fprintf (stderr, "Proc_Time PID %5u (0x%08lx): "
"%ld %ld %ld %ld %ld %ld %ld\n", pid, data.proc_time.flags, "%ld %ld %ld %ld %ld %ld %ld\n", pid, data.proc_time.flags,
@@ -188,16 +170,14 @@ main (int argc, char *argv [])
data.proc_time.cstime, data.proc_time.timeout, data.proc_time.cstime, data.proc_time.timeout,
data.proc_time.it_real_value); data.proc_time.it_real_value);
for (c = 0; c < count; c++) glibtop_get_proc_signal (&data.proc_signal, pid);
glibtop_get_proc_signal (&data.proc_signal, pid);
fprintf (stderr, "Proc_Signal PID %5u (0x%08lx): " fprintf (stderr, "Proc_Signal PID %5u (0x%08lx): "
"%d %d %d %d\n", pid, data.proc_signal.flags, "%d %d %d %d\n", pid, data.proc_signal.flags,
data.proc_signal.signal, data.proc_signal.blocked, data.proc_signal.signal, data.proc_signal.blocked,
data.proc_signal.sigignore, data.proc_signal.sigcatch); data.proc_signal.sigignore, data.proc_signal.sigcatch);
for (c = 0; c < count; c++) glibtop_get_proc_kernel (&data.proc_kernel, pid);
glibtop_get_proc_kernel (&data.proc_kernel, pid);
fprintf (stderr, "Proc_Kernel PID %5u (0x%08lx): " fprintf (stderr, "Proc_Kernel PID %5u (0x%08lx): "
"%lu %lu %lu %lu %lu %lu %lu %lu\n", pid, "%lu %lu %lu %lu %lu %lu %lu %lu\n", pid,
@@ -207,8 +187,7 @@ main (int argc, char *argv [])
data.proc_kernel.kstk_esp, data.proc_kernel.kstk_eip, data.proc_kernel.kstk_esp, data.proc_kernel.kstk_eip,
data.proc_kernel.wchan); data.proc_kernel.wchan);
for (c = 0; c < count; c++) glibtop_get_proc_segment (&data.proc_segment, pid);
glibtop_get_proc_segment (&data.proc_segment, pid);
fprintf (stderr, "Proc_Segment PID %5u (0x%08lx): " fprintf (stderr, "Proc_Segment PID %5u (0x%08lx): "
"%ld %ld %ld %ld %lu %lu %lu\n", pid, data.proc_segment.flags, "%ld %ld %ld %ld %lu %lu %lu\n", pid, data.proc_segment.flags,
@@ -219,16 +198,14 @@ main (int argc, char *argv [])
fprintf (stderr, "\n"); fprintf (stderr, "\n");
for (c = 0; c < count; c++) glibtop_get_proc_state (&data.proc_state, ppid);
glibtop_get_proc_state (&data.proc_state, ppid);
fprintf (stderr, "Proc_State PPID %5u (0x%08lx): '%s', %c, %u, %u\n", fprintf (stderr, "Proc_State PPID %5u (0x%08lx): '%s', %c, %u, %u\n",
ppid, data.proc_state.flags, data.proc_state.cmd, ppid, data.proc_state.flags, data.proc_state.cmd,
data.proc_state.state, data.proc_state.uid, data.proc_state.state, data.proc_state.uid,
data.proc_state.gid); data.proc_state.gid);
for (c = 0; c < count; c++) glibtop_get_proc_uid (&data.proc_uid, ppid);
glibtop_get_proc_uid (&data.proc_uid, ppid);
fprintf (stderr, "Proc_Uid PPID %5u (0x%08lx): " fprintf (stderr, "Proc_Uid PPID %5u (0x%08lx): "
"%d %d %d %d %d %d %d %d %d %d %d %d\n", "%d %d %d %d %d %d %d %d %d %d %d %d\n",
@@ -240,8 +217,7 @@ main (int argc, char *argv [])
data.proc_uid.tpgid, data.proc_uid.priority, data.proc_uid.tpgid, data.proc_uid.priority,
data.proc_uid.nice); data.proc_uid.nice);
for (c = 0; c < count; c++) glibtop_get_proc_mem (&data.proc_mem, ppid);
glibtop_get_proc_mem (&data.proc_mem, ppid);
fprintf (stderr, "Proc_Mem PPID %5u (0x%08lx): " fprintf (stderr, "Proc_Mem PPID %5u (0x%08lx): "
"%ld %ld %ld %ld %ld %ld\n", ppid, data.proc_mem.flags, "%ld %ld %ld %ld %ld %ld\n", ppid, data.proc_mem.flags,
@@ -249,8 +225,7 @@ main (int argc, char *argv [])
data.proc_mem.resident, data.proc_mem.share, data.proc_mem.resident, data.proc_mem.share,
data.proc_mem.rss, data.proc_mem.rss_rlim); data.proc_mem.rss, data.proc_mem.rss_rlim);
for (c = 0; c < count; c++) glibtop_get_proc_time (&data.proc_time, ppid);
glibtop_get_proc_time (&data.proc_time, ppid);
fprintf (stderr, "Proc_Time PPID %5u (0x%08lx): " fprintf (stderr, "Proc_Time PPID %5u (0x%08lx): "
"%ld %ld %ld %ld %ld %ld %ld\n", ppid, data.proc_time.flags, "%ld %ld %ld %ld %ld %ld %ld\n", ppid, data.proc_time.flags,
@@ -259,16 +234,14 @@ main (int argc, char *argv [])
data.proc_time.cstime, data.proc_time.timeout, data.proc_time.cstime, data.proc_time.timeout,
data.proc_time.it_real_value); data.proc_time.it_real_value);
for (c = 0; c < count; c++) glibtop_get_proc_signal (&data.proc_signal, ppid);
glibtop_get_proc_signal (&data.proc_signal, ppid);
fprintf (stderr, "Proc_Signal PPID %5u (0x%08lx): " fprintf (stderr, "Proc_Signal PPID %5u (0x%08lx): "
"%d %d %d %d\n", ppid, data.proc_signal.flags, "%d %d %d %d\n", ppid, data.proc_signal.flags,
data.proc_signal.signal, data.proc_signal.blocked, data.proc_signal.signal, data.proc_signal.blocked,
data.proc_signal.sigignore, data.proc_signal.sigcatch); data.proc_signal.sigignore, data.proc_signal.sigcatch);
for (c = 0; c < count; c++) glibtop_get_proc_kernel (&data.proc_kernel, ppid);
glibtop_get_proc_kernel (&data.proc_kernel, ppid);
fprintf (stderr, "Proc_Kernel PPID %5u (0x%08lx): " fprintf (stderr, "Proc_Kernel PPID %5u (0x%08lx): "
"%lu %lu %lu %lu %lu %lu %lu %lu\n", ppid, "%lu %lu %lu %lu %lu %lu %lu %lu\n", ppid,
@@ -278,8 +251,7 @@ main (int argc, char *argv [])
data.proc_kernel.kstk_esp, data.proc_kernel.kstk_eip, data.proc_kernel.kstk_esp, data.proc_kernel.kstk_eip,
data.proc_kernel.wchan); data.proc_kernel.wchan);
for (c = 0; c < count; c++) glibtop_get_proc_segment (&data.proc_segment, ppid);
glibtop_get_proc_segment (&data.proc_segment, ppid);
fprintf (stderr, "Proc_Segment PPID %5u (0x%08lx): " fprintf (stderr, "Proc_Segment PPID %5u (0x%08lx): "
"%ld %ld %ld %ld %lu %lu %lu\n", ppid, data.proc_segment.flags, "%ld %ld %ld %ld %lu %lu %lu\n", ppid, data.proc_segment.flags,
@@ -290,16 +262,14 @@ main (int argc, char *argv [])
fprintf (stderr, "\n"); fprintf (stderr, "\n");
for (c = 0; c < count; c++) glibtop_get_proc_state (&data.proc_state, 1);
glibtop_get_proc_state (&data.proc_state, 1);
fprintf (stderr, "Proc_State INIT %5u (0x%08lx): '%s', %c, %u, %u\n", fprintf (stderr, "Proc_State INIT %5u (0x%08lx): '%s', %c, %u, %u\n",
1, data.proc_state.flags, data.proc_state.cmd, 1, data.proc_state.flags, data.proc_state.cmd,
data.proc_state.state, data.proc_state.uid, data.proc_state.state, data.proc_state.uid,
data.proc_state.gid); data.proc_state.gid);
for (c = 0; c < count; c++) glibtop_get_proc_uid (&data.proc_uid, 1);
glibtop_get_proc_uid (&data.proc_uid, 1);
fprintf (stderr, "Proc_Uid INIT %5u (0x%08lx): " fprintf (stderr, "Proc_Uid INIT %5u (0x%08lx): "
"%d %d %d %d %d %d %d %d %d %d %d %d\n", "%d %d %d %d %d %d %d %d %d %d %d %d\n",
@@ -311,8 +281,7 @@ main (int argc, char *argv [])
data.proc_uid.tpgid, data.proc_uid.priority, data.proc_uid.tpgid, data.proc_uid.priority,
data.proc_uid.nice); data.proc_uid.nice);
for (c = 0; c < count; c++) glibtop_get_proc_mem (&data.proc_mem, 1);
glibtop_get_proc_mem (&data.proc_mem, 1);
fprintf (stderr, "Proc_Mem INIT %5u (0x%08lx): " fprintf (stderr, "Proc_Mem INIT %5u (0x%08lx): "
"%ld %ld %ld %ld %ld %ld\n", 1, data.proc_mem.flags, "%ld %ld %ld %ld %ld %ld\n", 1, data.proc_mem.flags,
@@ -320,8 +289,7 @@ main (int argc, char *argv [])
data.proc_mem.resident, data.proc_mem.share, data.proc_mem.resident, data.proc_mem.share,
data.proc_mem.rss, data.proc_mem.rss_rlim); data.proc_mem.rss, data.proc_mem.rss_rlim);
for (c = 0; c < count; c++) glibtop_get_proc_time (&data.proc_time, 1);
glibtop_get_proc_time (&data.proc_time, 1);
fprintf (stderr, "Proc_Time INIT %5u (0x%08lx): " fprintf (stderr, "Proc_Time INIT %5u (0x%08lx): "
"%ld %ld %ld %ld %ld %ld %ld\n", 1, data.proc_time.flags, "%ld %ld %ld %ld %ld %ld %ld\n", 1, data.proc_time.flags,
@@ -330,16 +298,14 @@ main (int argc, char *argv [])
data.proc_time.cstime, data.proc_time.timeout, data.proc_time.cstime, data.proc_time.timeout,
data.proc_time.it_real_value); data.proc_time.it_real_value);
for (c = 0; c < count; c++) glibtop_get_proc_signal (&data.proc_signal, 1);
glibtop_get_proc_signal (&data.proc_signal, 1);
fprintf (stderr, "Proc_Signal INIT %5u (0x%08lx): " fprintf (stderr, "Proc_Signal INIT %5u (0x%08lx): "
"%d %d %d %d\n", 1, data.proc_signal.flags, "%d %d %d %d\n", 1, data.proc_signal.flags,
data.proc_signal.signal, data.proc_signal.blocked, data.proc_signal.signal, data.proc_signal.blocked,
data.proc_signal.sigignore, data.proc_signal.sigcatch); data.proc_signal.sigignore, data.proc_signal.sigcatch);
for (c = 0; c < count; c++) glibtop_get_proc_kernel (&data.proc_kernel, 1);
glibtop_get_proc_kernel (&data.proc_kernel, 1);
fprintf (stderr, "Proc_Kernel INIT %5u (0x%08lx): " fprintf (stderr, "Proc_Kernel INIT %5u (0x%08lx): "
"%lu %lu %lu %lu %lu %lu %lu %lu\n", 1, "%lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
@@ -349,8 +315,7 @@ main (int argc, char *argv [])
data.proc_kernel.kstk_esp, data.proc_kernel.kstk_eip, data.proc_kernel.kstk_esp, data.proc_kernel.kstk_eip,
data.proc_kernel.wchan); data.proc_kernel.wchan);
for (c = 0; c < count; c++) glibtop_get_proc_segment (&data.proc_segment, 1);
glibtop_get_proc_segment (&data.proc_segment, 1);
fprintf (stderr, "Proc_Segment INIT %5u (0x%08lx): " fprintf (stderr, "Proc_Segment INIT %5u (0x%08lx): "
"%ld %ld %ld %ld %lu %lu %lu\n", 1, data.proc_segment.flags, "%ld %ld %ld %ld %lu %lu %lu\n", 1, data.proc_segment.flags,

View File

@@ -41,7 +41,7 @@ main (int argc, char *argv [])
bindtextdomain (PACKAGE, GTOPLOCALEDIR); bindtextdomain (PACKAGE, GTOPLOCALEDIR);
textdomain (PACKAGE); textdomain (PACKAGE);
glibtop_init (); glibtop_init__r (&glibtop_global_server);
glibtop_get_sysdeps (&sysdeps); glibtop_get_sysdeps (&sysdeps);

View File

@@ -1,80 +0,0 @@
(display (glibtop-names-sysdeps)) (newline)
(display (glibtop-labels-sysdeps)) (newline)
(display (glibtop-descriptions-sysdeps)) (newline)
(display (glibtop-types-sysdeps)) (newline)
(newline)
(display (glibtop-names-cpu)) (newline)
(display (glibtop-names-mem)) (newline)
(display (glibtop-names-swap)) (newline)
(display (glibtop-names-uptime)) (newline)
(display (glibtop-names-loadavg)) (newline)
(display (glibtop-names-shm_limits)) (newline)
(display (glibtop-names-msg_limits)) (newline)
(display (glibtop-names-sem_limits)) (newline)
(display (glibtop-names-proclist)) (newline)
(display (glibtop-names-proc_state)) (newline)
(display (glibtop-names-proc_uid)) (newline)
(display (glibtop-names-proc_mem)) (newline)
(display (glibtop-names-proc_time)) (newline)
(display (glibtop-names-proc_signal)) (newline)
(display (glibtop-names-proc_kernel)) (newline)
(display (glibtop-names-proc_segment)) (newline)
(newline)
(display (glibtop-labels-cpu)) (newline)
(display (glibtop-labels-mem)) (newline)
(display (glibtop-labels-swap)) (newline)
(display (glibtop-labels-uptime)) (newline)
(display (glibtop-labels-loadavg)) (newline)
(display (glibtop-labels-shm_limits)) (newline)
(display (glibtop-labels-msg_limits)) (newline)
(display (glibtop-labels-sem_limits)) (newline)
(display (glibtop-labels-proclist)) (newline)
(display (glibtop-labels-proc_state)) (newline)
(display (glibtop-labels-proc_uid)) (newline)
(display (glibtop-labels-proc_mem)) (newline)
(display (glibtop-labels-proc_time)) (newline)
(display (glibtop-labels-proc_signal)) (newline)
(display (glibtop-labels-proc_kernel)) (newline)
(display (glibtop-labels-proc_segment)) (newline)
(newline)
(display (glibtop-descriptions-cpu)) (newline)
(display (glibtop-descriptions-mem)) (newline)
(display (glibtop-descriptions-swap)) (newline)
(display (glibtop-descriptions-uptime)) (newline)
(display (glibtop-descriptions-loadavg)) (newline)
(display (glibtop-descriptions-shm_limits)) (newline)
(display (glibtop-descriptions-msg_limits)) (newline)
(display (glibtop-descriptions-sem_limits)) (newline)
(display (glibtop-descriptions-proclist)) (newline)
(display (glibtop-descriptions-proc_state)) (newline)
(display (glibtop-descriptions-proc_uid)) (newline)
(display (glibtop-descriptions-proc_mem)) (newline)
(display (glibtop-descriptions-proc_time)) (newline)
(display (glibtop-descriptions-proc_signal)) (newline)
(display (glibtop-descriptions-proc_kernel)) (newline)
(display (glibtop-descriptions-proc_segment)) (newline)
(newline)
(display (glibtop-types-cpu)) (newline)
(display (glibtop-types-mem)) (newline)
(display (glibtop-types-swap)) (newline)
(display (glibtop-types-uptime)) (newline)
(display (glibtop-types-loadavg)) (newline)
(display (glibtop-types-shm_limits)) (newline)
(display (glibtop-types-msg_limits)) (newline)
(display (glibtop-types-sem_limits)) (newline)
(display (glibtop-types-proclist)) (newline)
(display (glibtop-types-proc_state)) (newline)
(display (glibtop-types-proc_uid)) (newline)
(display (glibtop-types-proc_mem)) (newline)
(display (glibtop-types-proc_time)) (newline)
(display (glibtop-types-proc_signal)) (newline)
(display (glibtop-types-proc_kernel)) (newline)
(display (glibtop-types-proc_segment)) (newline)

View File

@@ -1,16 +0,0 @@
cpu ulong(total,user,nice,sys,idle,frequency)
mem ulong(total,used,free,shared,buffer,cached,user,locked)
swap ulong(total,used,free)
uptime double(uptime,idletime)
loadavg double(loadavg[0],loadavg[1],loadavg[2])
shm_limits ulong(shmmax,shmmin,shmmni,shmseg,shmall)
msg_limits ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql)
sem_limits ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem)
proclist ulong(number,size,total)
proc_state str(cmd):char(state):ulong(uid,gid)
proc_uid long(uid,euid,gid,egid,pid,ppid,pgrp,session,tty,tpgid,priority,nice)
proc_mem long(size,vsize,resident,share,rss,rss_rlim)
proc_time long(start_time,utime,stime,cutime,cstime,timeout,it_real_value)
proc_signal long(signal,blocked,sigignore,sigcatch)
proc_kernel ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,wchan)
proc_segment long(trs,lrs,drs,dt):ulong(start_code,end_code,start_stack)

View File

@@ -24,9 +24,6 @@
#include <glibtop/global.h> #include <glibtop/global.h>
#include <glibtop_server.h>
#include <glibtop/types.h>
#ifdef HAVE_GLIBTOP_MACHINE_H #ifdef HAVE_GLIBTOP_MACHINE_H
#include <glibtop_machine.h> #include <glibtop_machine.h>
#endif #endif
@@ -43,23 +40,14 @@ struct _glibtop
int output [2]; /* Pipe client -> server */ int output [2]; /* Pipe client -> server */
unsigned long os_version_code; /* Version code of the operating system */ unsigned long os_version_code; /* Version code of the operating system */
const char *name; /* Program name for error messages */ const char *name; /* Program name for error messages */
const char *server_command; /* Command used to invoke server */
const char *server_host; /* Host the server should run on */
const char *server_user; /* Name of the user on the target host */
const char *server_rsh; /* Command used to connect to the target host */
unsigned long features; /* Server is required for this features */
pid_t pid; /* PID of the server */ pid_t pid; /* PID of the server */
}; };
extern glibtop *glibtop_global_server; extern glibtop *glibtop_global_server;
extern const unsigned long glibtop_server_features; #define glibtop_init() glibtop_init__r(&glibtop_global_server);
#define glibtop_init() glibtop_init_r(&glibtop_global_server, 0, 0); extern glibtop *glibtop_init__r __P((glibtop **));
#define glibtop_close() glibtop_close_r(&glibtop_global_server);
extern glibtop *glibtop_init_r __P((glibtop **, const unsigned long, const unsigned));
#ifdef HAVE_GUILE #ifdef HAVE_GUILE

View File

@@ -26,7 +26,7 @@
__BEGIN_DECLS __BEGIN_DECLS
extern void glibtop_close_r __P((glibtop *)); extern void glibtop_close __P((glibtop *));
__END_DECLS __END_DECLS

View File

@@ -29,7 +29,6 @@ __BEGIN_DECLS
#define GLIBTOP_CMND_QUIT 0 #define GLIBTOP_CMND_QUIT 0
#define GLIBTOP_CMND_SYSDEPS 1 #define GLIBTOP_CMND_SYSDEPS 1
#define GLIBTOP_CMND_CPU 2 #define GLIBTOP_CMND_CPU 2
#define GLIBTOP_CMND_MEM 3 #define GLIBTOP_CMND_MEM 3
#define GLIBTOP_CMND_SWAP 4 #define GLIBTOP_CMND_SWAP 4
@@ -59,10 +58,9 @@ struct _glibtop_command
size_t size; size_t size;
}; };
#define glibtop_call(p1, p2, p3, p4) glibtop_call_r(glibtop_global_server, p1, p2, p3, p4) #define glibtop_call(p1, p2, p3, p4) glibtop_call__r(glibtop_global_server, p1, p2, p3, p4)
extern void *glibtop_call_l __P((glibtop *, unsigned, size_t, void *, size_t, void *)); extern void *glibtop_call__r __P((glibtop *, unsigned, size_t, void *, size_t, void *));
extern void *glibtop_call_s __P((glibtop *, unsigned, size_t, void *, size_t, void *));
__END_DECLS __END_DECLS

View File

@@ -49,21 +49,9 @@ struct _glibtop_cpu
frequency; /* GLIBTOP_CPU_FREQUENCY */ frequency; /* GLIBTOP_CPU_FREQUENCY */
}; };
#define glibtop_get_cpu(cpu) glibtop_get_cpu_l(glibtop_global_server, cpu) #define glibtop_get_cpu(cpu) glibtop_get_cpu__r(glibtop_global_server, cpu)
#if GLIBTOP_SUID_CPU extern void glibtop_get_cpu__r __P((glibtop *, glibtop_cpu *));
#define glibtop_get_cpu_r glibtop_get_cpu_p
#else
#define glibtop_get_cpu_r glibtop_get_cpu_s
#endif
extern void glibtop_get_cpu_l __P((glibtop *, glibtop_cpu *));
#if GLIBTOP_SUID_CPU
extern void glibtop_get_cpu_p __P((glibtop *, glibtop_cpu *));
#else
extern void glibtop_get_cpu_s __P((glibtop *, glibtop_cpu *));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -89,7 +77,7 @@ extern SCM glibtop_guile_descriptions_cpu __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_cpu []; extern const char *glibtop_names_cpu [];
extern const unsigned glibtop_types_cpu []; extern const char *glibtop_types_cpu [];
extern const char *glibtop_labels_cpu []; extern const char *glibtop_labels_cpu [];
extern const char *glibtop_descriptions_cpu []; extern const char *glibtop_descriptions_cpu [];

View File

@@ -26,9 +26,9 @@
__BEGIN_DECLS __BEGIN_DECLS
#define glibtop_error(p1, args...) glibtop_error_r(glibtop_global_server , p1 , ## args) #define glibtop_error(p1, args...) glibtop_error__r(glibtop_global_server , p1 , ## args)
extern void glibtop_error_r __P((glibtop *, char *, ...)); extern void glibtop_error__r __P((glibtop *, char *, ...));
__END_DECLS __END_DECLS

View File

@@ -39,21 +39,9 @@ struct _glibtop_loadavg
double loadavg [3]; /* GLIBTOP_LOADAVG_LOADAVG */ double loadavg [3]; /* GLIBTOP_LOADAVG_LOADAVG */
}; };
#define glibtop_get_loadavg(loadavg) glibtop_get_loadavg_l(glibtop_global_server, loadavg) #define glibtop_get_loadavg(loadavg) glibtop_get_loadavg__r(glibtop_global_server, loadavg)
#if GLIBTOP_SUID_LOADAVG extern void glibtop_get_loadavg__r __P((glibtop *, glibtop_loadavg *));
#define glibtop_get_loadavg_r glibtop_get_loadavg_p
#else
#define glibtop_get_loadavg_r glibtop_get_loadavg_s
#endif
extern void glibtop_get_loadavg_l __P((glibtop *, glibtop_loadavg *));
#if GLIBTOP_SUID_LOADAVG
extern void glibtop_get_loadavg_p __P((glibtop *, glibtop_loadavg *));
#else
extern void glibtop_get_loadavg_s __P((glibtop *, glibtop_loadavg *));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -79,7 +67,7 @@ extern SCM glibtop_guile_descriptions_loadavg __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_loadavg []; extern const char *glibtop_names_loadavg [];
extern const unsigned glibtop_types_loadavg []; extern const char *glibtop_types_loadavg [];
extern const char *glibtop_labels_loadavg []; extern const char *glibtop_labels_loadavg [];
extern const char *glibtop_descriptions_loadavg []; extern const char *glibtop_descriptions_loadavg [];

View File

@@ -53,21 +53,9 @@ struct _glibtop_mem
locked; /* GLIBTOP_MEM_LOCKED */ locked; /* GLIBTOP_MEM_LOCKED */
}; };
#define glibtop_get_mem(mem) glibtop_get_mem_l(glibtop_global_server, mem) #define glibtop_get_mem(mem) glibtop_get_mem__r(glibtop_global_server, mem)
#if GLIBTOP_SUID_MEM extern void glibtop_get_mem__r __P((glibtop *, glibtop_mem *));
#define glibtop_get_mem_r glibtop_get_mem_p
#else
#define glibtop_get_mem_r glibtop_get_mem_s
#endif
extern void glibtop_get_mem_l __P((glibtop *, glibtop_mem *));
#if GLIBTOP_SUID_MEM
extern void glibtop_get_mem_p __P((glibtop *, glibtop_mem *));
#else
extern void glibtop_get_mem_s __P((glibtop *, glibtop_mem *));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -93,7 +81,7 @@ extern SCM glibtop_guile_descriptions_mem __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_mem []; extern const char *glibtop_names_mem [];
extern const unsigned glibtop_types_mem []; extern const char *glibtop_types_mem [];
extern const char *glibtop_labels_mem []; extern const char *glibtop_labels_mem [];
extern const char *glibtop_descriptions_mem []; extern const char *glibtop_descriptions_mem [];

View File

@@ -51,21 +51,9 @@ struct _glibtop_msg_limits
msgtql; /* GLIBTOP_IPC_MSGTQL */ msgtql; /* GLIBTOP_IPC_MSGTQL */
}; };
#define glibtop_get_msg_limits(msg) glibtop_get_msg_limits_l(glibtop_global_server, msg) #define glibtop_get_msg_limits(msg) glibtop_get_msg_limits__r(glibtop_global_server, msg)
#if GLIBTOP_SUID_MSG_LIMITS extern void glibtop_get_msg_limits__r __P((glibtop *, glibtop_msg_limits *));
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_p
#else
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_s
#endif
extern void glibtop_get_msg_limits_l __P((glibtop *, glibtop_msg_limits *));
#if GLIBTOP_SUID_MSG_LIMITS
extern void glibtop_get_msg_limits_p __P((glibtop *, glibtop_msg_limits *));
#else
extern void glibtop_get_msg_limits_s __P((glibtop *, glibtop_msg_limits *));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -91,7 +79,7 @@ extern SCM glibtop_guile_descriptions_msg_limits __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_msg_limits []; extern const char *glibtop_names_msg_limits [];
extern const unsigned glibtop_types_msg_limits []; extern const char *glibtop_types_msg_limits [];
extern const char *glibtop_labels_msg_limits []; extern const char *glibtop_labels_msg_limits [];
extern const char *glibtop_descriptions_msg_limits []; extern const char *glibtop_descriptions_msg_limits [];

View File

@@ -26,11 +26,7 @@
__BEGIN_DECLS __BEGIN_DECLS
#define GLIBTOP_OPEN_NO_OVERRIDE 1 extern void glibtop_open __P((glibtop *, const char *));
extern void glibtop_open_l __P((glibtop *, const char *, const unsigned long, const unsigned));
extern void glibtop_open_r __P((glibtop *, const char *, const unsigned long, const unsigned));
__END_DECLS __END_DECLS

View File

@@ -60,21 +60,9 @@ struct _glibtop_proc_kernel
* proc is sleeping in */ * proc is sleeping in */
}; };
#define glibtop_get_proc_kernel(p1, p2) glibtop_get_proc_kernel_l(glibtop_global_server, p1, p2) #define glibtop_get_proc_kernel(p1, p2) glibtop_get_proc_kernel__r(glibtop_global_server, p1, p2)
#if GLIBTOP_SUID_PROC_KERNEL extern void glibtop_get_proc_kernel__r __P((glibtop *, glibtop_proc_kernel *, pid_t));
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_p
#else
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_s
#endif
extern void glibtop_get_proc_kernel_l __P((glibtop *, glibtop_proc_kernel *, pid_t));
#if GLIBTOP_SUID_PROC_KERNEL
extern void glibtop_get_proc_kernel_p __P((glibtop *, glibtop_proc_kernel *, pid_t));
#else
extern void glibtop_get_proc_kernel_s __P((glibtop *, glibtop_proc_kernel *, pid_t));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -99,8 +87,8 @@ extern SCM glibtop_guile_descriptions_proc_kernel __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_types_proc_kernel [];
extern const char *glibtop_names_proc_kernel []; extern const char *glibtop_names_proc_kernel [];
extern const unsigned glibtop_types_proc_kernel [];
extern const char *glibtop_labels_proc_kernel []; extern const char *glibtop_labels_proc_kernel [];
extern const char *glibtop_descriptions_proc_kernel []; extern const char *glibtop_descriptions_proc_kernel [];

View File

@@ -43,21 +43,9 @@ struct _glibtop_proclist
size; /* GLIBTOP_PROCLIST_SIZE */ size; /* GLIBTOP_PROCLIST_SIZE */
}; };
#define glibtop_get_proclist(proclist) glibtop_get_proclist_l(glibtop_global_server, proclist) #define glibtop_get_proclist(proclist) glibtop_get_proclist__r(glibtop_global_server, proclist)
#if GLIBTOP_SUID_PROCLIST extern unsigned *glibtop_get_proclist__r __P((glibtop *, glibtop_proclist *));
#define glibtop_get_proclist_r glibtop_get_proclist_p
#else
#define glibtop_get_proclist_r glibtop_get_proclist_s
#endif
extern unsigned *glibtop_get_proclist_l __P((glibtop *, glibtop_proclist *));
#if GLIBTOP_SUID_PROCLIST
extern unsigned *glibtop_get_proclist_p __P((glibtop *, glibtop_proclist *));
#else
extern unsigned *glibtop_get_proclist_s __P((glibtop *, glibtop_proclist *));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -83,7 +71,7 @@ extern SCM glibtop_guile_descriptions_proclist __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_proclist []; extern const char *glibtop_names_proclist [];
extern const unsigned glibtop_types_proclist []; extern const char *glibtop_types_proclist [];
extern const char *glibtop_labels_proclist []; extern const char *glibtop_labels_proclist [];
extern const char *glibtop_descriptions_proclist []; extern const char *glibtop_descriptions_proclist [];

View File

@@ -53,21 +53,9 @@ struct _glibtop_proc_mem
* of the process; usually 2,147,483,647 */ * of the process; usually 2,147,483,647 */
}; };
#define glibtop_get_proc_mem(p1, p2) glibtop_get_proc_mem_l(glibtop_global_server, p1, p2) #define glibtop_get_proc_mem(p1, p2) glibtop_get_proc_mem__r(glibtop_global_server, p1, p2)
#if GLIBTOP_SUID_PROC_MEM extern void glibtop_get_proc_mem__r __P((glibtop *, glibtop_proc_mem *, pid_t));
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_p
#else
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_s
#endif
extern void glibtop_get_proc_mem_l __P((glibtop *, glibtop_proc_mem *, pid_t));
#if GLIBTOP_SUID_PROC_MEM
extern void glibtop_get_proc_mem_p __P((glibtop *, glibtop_proc_mem *, pid_t));
#else
extern void glibtop_get_proc_mem_s __P((glibtop *, glibtop_proc_mem *, pid_t));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -93,7 +81,7 @@ extern SCM glibtop_guile_descriptions_proc_mem __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_proc_mem []; extern const char *glibtop_names_proc_mem [];
extern const unsigned glibtop_types_proc_mem []; extern const char *glibtop_types_proc_mem [];
extern const char *glibtop_labels_proc_mem []; extern const char *glibtop_labels_proc_mem [];
extern const char *glibtop_descriptions_proc_mem []; extern const char *glibtop_descriptions_proc_mem [];

View File

@@ -54,21 +54,9 @@ struct _glibtop_proc_segment
start_stack; /* address of the bottom of stack segment */ start_stack; /* address of the bottom of stack segment */
}; };
#define glibtop_get_proc_segment(p1, p2) glibtop_get_proc_segment_l(glibtop_global_server, p1, p2) #define glibtop_get_proc_segment(p1, p2) glibtop_get_proc_segment__r(glibtop_global_server, p1, p2)
#if GLIBTOP_SUID_PROC_SEGMENT extern void glibtop_get_proc_segment__r __P((glibtop *, glibtop_proc_segment *, pid_t));
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_p
#else
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_s
#endif
extern void glibtop_get_proc_segment_l __P((glibtop *, glibtop_proc_segment *, pid_t));
#if GLIBTOP_SUID_PROC_SEGMENT
extern void glibtop_get_proc_segment_p __P((glibtop *, glibtop_proc_segment *, pid_t));
#else
extern void glibtop_get_proc_segment_s __P((glibtop *, glibtop_proc_segment *, pid_t));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -93,8 +81,8 @@ extern SCM glibtop_guile_descriptions_proc_segment __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_types_proc_segment [];
extern const char *glibtop_names_proc_segment []; extern const char *glibtop_names_proc_segment [];
extern const unsigned glibtop_types_proc_segment [];
extern const char *glibtop_labels_proc_segment []; extern const char *glibtop_labels_proc_segment [];
extern const char *glibtop_descriptions_proc_segment []; extern const char *glibtop_descriptions_proc_segment [];

View File

@@ -47,21 +47,9 @@ struct _glibtop_proc_signal
sigcatch; /* mask of caught signals */ sigcatch; /* mask of caught signals */
}; };
#define glibtop_get_proc_signal(p1, p2) glibtop_get_proc_signal_l(glibtop_global_server, p1, p2) #define glibtop_get_proc_signal(p1, p2) glibtop_get_proc_signal__r(glibtop_global_server, p1, p2)
#if GLIBTOP_SUID_PROC_SIGNAL extern void glibtop_get_proc_signal__r __P((glibtop *, glibtop_proc_signal *, pid_t));
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_p
#else
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_s
#endif
extern void glibtop_get_proc_signal_l __P((glibtop *, glibtop_proc_signal *, pid_t));
#if GLIBTOP_SUID_PROC_SIGNAL
extern void glibtop_get_proc_signal_p __P((glibtop *, glibtop_proc_signal *, pid_t));
#else
extern void glibtop_get_proc_signal_s __P((glibtop *, glibtop_proc_signal *, pid_t));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -87,7 +75,7 @@ extern SCM glibtop_guile_descriptions_proc_signal __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_proc_signal []; extern const char *glibtop_names_proc_signal [];
extern const unsigned glibtop_types_proc_signal []; extern const char *glibtop_types_proc_signal [];
extern const char *glibtop_labels_proc_signal []; extern const char *glibtop_labels_proc_signal [];
extern const char *glibtop_descriptions_proc_signal []; extern const char *glibtop_descriptions_proc_signal [];

View File

@@ -54,21 +54,9 @@ struct _glibtop_proc_state
gid; /* GID of process */ gid; /* GID of process */
}; };
#define glibtop_get_proc_state(p1, p2) glibtop_get_proc_state_l(glibtop_global_server, p1, p2) #define glibtop_get_proc_state(p1, p2) glibtop_get_proc_state__r(glibtop_global_server, p1, p2)
#if GLIBTOP_SUID_PROC_STATE extern void glibtop_get_proc_state__r __P((glibtop *, glibtop_proc_state *, pid_t));
#define glibtop_get_proc_state_r glibtop_get_proc_state_p
#else
#define glibtop_get_proc_state_r glibtop_get_proc_state_s
#endif
extern void glibtop_get_proc_state_l __P((glibtop *, glibtop_proc_state *, pid_t));
#if GLIBTOP_SUID_PROC_STATE
extern void glibtop_get_proc_state_p __P((glibtop *, glibtop_proc_state *, pid_t));
#else
extern void glibtop_get_proc_state_s __P((glibtop *, glibtop_proc_state *, pid_t));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -94,7 +82,7 @@ extern SCM glibtop_guile_descriptions_proc_state __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_proc_state []; extern const char *glibtop_names_proc_state [];
extern const unsigned glibtop_types_proc_state []; extern const char *glibtop_types_proc_state [];
extern const char *glibtop_labels_proc_state []; extern const char *glibtop_labels_proc_state [];
extern const char *glibtop_descriptions_proc_state []; extern const char *glibtop_descriptions_proc_state [];

View File

@@ -59,21 +59,9 @@ struct _glibtop_proc_time
* due to an interval timer. */ * due to an interval timer. */
}; };
#define glibtop_get_proc_time(p1, p2) glibtop_get_proc_time_l(glibtop_global_server, p1, p2) #define glibtop_get_proc_time(p1, p2) glibtop_get_proc_time__r(glibtop_global_server, p1, p2)
#if GLIBTOP_SUID_PROC_TIME extern void glibtop_get_proc_time__r __P((glibtop *, glibtop_proc_time *, pid_t));
#define glibtop_get_proc_time_r glibtop_get_proc_time_p
#else
#define glibtop_get_proc_time_r glibtop_get_proc_time_s
#endif
extern void glibtop_get_proc_time_l __P((glibtop *, glibtop_proc_time *, pid_t));
#if GLIBTOP_SUID_PROC_TIME
extern void glibtop_get_proc_time_p __P((glibtop *, glibtop_proc_time *, pid_t));
#else
extern void glibtop_get_proc_time_s __P((glibtop *, glibtop_proc_time *, pid_t));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -99,7 +87,7 @@ extern SCM glibtop_guile_descriptions_proc_time __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_proc_time []; extern const char *glibtop_names_proc_time [];
extern const unsigned glibtop_types_proc_time []; extern const char *glibtop_types_proc_time [];
extern const char *glibtop_labels_proc_time []; extern const char *glibtop_labels_proc_time [];
extern const char *glibtop_descriptions_proc_time []; extern const char *glibtop_descriptions_proc_time [];

View File

@@ -63,21 +63,9 @@ struct _glibtop_proc_uid
nice; /* standard unix nice level of process */ nice; /* standard unix nice level of process */
}; };
#define glibtop_get_proc_uid(p1, p2) glibtop_get_proc_uid_l(glibtop_global_server, p1, p2) #define glibtop_get_proc_uid(p1, p2) glibtop_get_proc_uid__r(glibtop_global_server, p1, p2)
#if GLIBTOP_SUID_PROC_UID extern void glibtop_get_proc_uid__r __P((glibtop *, glibtop_proc_uid *, pid_t));
#define glibtop_get_proc_uid_r glibtop_get_proc_uid_p
#else
#define glibtop_get_proc_uid_r glibtop_get_proc_uid_s
#endif
extern void glibtop_get_proc_uid_l __P((glibtop *, glibtop_proc_uid *, pid_t));
#if GLIBTOP_SUID_PROC_UID
extern void glibtop_get_proc_uid_p __P((glibtop *, glibtop_proc_uid *, pid_t));
#else
extern void glibtop_get_proc_uid_s __P((glibtop *, glibtop_proc_uid *, pid_t));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -103,7 +91,7 @@ extern SCM glibtop_guile_descriptions_proc_uid __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_proc_uid []; extern const char *glibtop_names_proc_uid [];
extern const unsigned glibtop_types_proc_uid []; extern const char *glibtop_types_proc_uid [];
extern const char *glibtop_labels_proc_uid []; extern const char *glibtop_labels_proc_uid [];
extern const char *glibtop_descriptions_proc_uid []; extern const char *glibtop_descriptions_proc_uid [];

View File

@@ -29,8 +29,7 @@ __BEGIN_DECLS
#define glibtop_read(p1, p2) glibtop_read(glibtop_global_server, p1, p2) #define glibtop_read(p1, p2) glibtop_read(glibtop_global_server, p1, p2)
extern void glibtop_read_l __P((glibtop *, size_t, void *)); extern void glibtop_read__r __P((glibtop *, size_t, void *));
extern void glibtop_read_s __P((glibtop *, size_t, void *));
__END_DECLS __END_DECLS

View File

@@ -27,10 +27,9 @@
__BEGIN_DECLS __BEGIN_DECLS
#define glibtop_read_data() glibtop_read_data_r(glibtop_global_server) #define glibtop_read_data() glibtop_read_data__r(glibtop_global_server)
extern void *glibtop_read_data_l __P((glibtop *)); extern void *glibtop_read_data__r __P((glibtop *));
extern void *glibtop_read_data_s __P((glibtop *));
__END_DECLS __END_DECLS

View File

@@ -57,21 +57,9 @@ struct _glibtop_sem_limits
semaem; /* GLIBTOP_IPC_SEMAEM */ semaem; /* GLIBTOP_IPC_SEMAEM */
}; };
#define glibtop_get_sem_limits(sem) glibtop_get_sem_limits_l(glibtop_global_server, sem) #define glibtop_get_sem_limits(sem) glibtop_get_sem_limits__r(glibtop_global_server, sem)
#if GLIBTOP_SUID_SEM_LIMITS extern void glibtop_get_sem_limits__r __P((glibtop *, glibtop_sem_limits *));
#define glibtop_get_sem_limits_r glibtop_get_sem_limits_p
#else
#define glibtop_get_sem_limits_r glibtop_get_sem_limits_s
#endif
extern void glibtop_get_sem_limits_l __P((glibtop *, glibtop_sem_limits *));
#if GLIBTOP_SUID_SEM_LIMITS
extern void glibtop_get_sem_limits_p __P((glibtop *, glibtop_sem_limits *));
#else
extern void glibtop_get_sem_limits_s __P((glibtop *, glibtop_sem_limits *));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -97,7 +85,7 @@ extern SCM glibtop_guile_descriptions_sem_limits __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_sem_limits []; extern const char *glibtop_names_sem_limits [];
extern const unsigned glibtop_types_sem_limits []; extern const char *glibtop_types_sem_limits [];
extern const char *glibtop_labels_sem_limits []; extern const char *glibtop_labels_sem_limits [];
extern const char *glibtop_descriptions_sem_limits []; extern const char *glibtop_descriptions_sem_limits [];

View File

@@ -47,21 +47,9 @@ struct _glibtop_shm_limits
shmall; /* GLIBTOP_IPC_SHMALL */ shmall; /* GLIBTOP_IPC_SHMALL */
}; };
#define glibtop_get_shm_limits(shm) glibtop_get_shm_limits_l(glibtop_global_server, shm) #define glibtop_get_shm_limits(shm) glibtop_get_shm_limits__r(glibtop_global_server, shm)
#if GLIBTOP_SUID_SHM_LIMITS extern void glibtop_get_shm_limits__r __P((glibtop *, glibtop_shm_limits *));
#define glibtop_get_shm_limits_r glibtop_get_shm_limits_p
#else
#define glibtop_get_shm_limits_r glibtop_get_shm_limits_s
#endif
extern void glibtop_get_shm_limits_l __P((glibtop *, glibtop_shm_limits *));
#if GLIBTOP_SUID_SHM_LIMITS
extern void glibtop_get_shm_limits_p __P((glibtop *, glibtop_shm_limits *));
#else
extern void glibtop_get_shm_limits_s __P((glibtop *, glibtop_shm_limits *));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -87,7 +75,7 @@ extern SCM glibtop_guile_descriptions_shm_limits __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_shm_limits []; extern const char *glibtop_names_shm_limits [];
extern const unsigned glibtop_types_shm_limits []; extern const char *glibtop_types_shm_limits [];
extern const char *glibtop_labels_shm_limits []; extern const char *glibtop_labels_shm_limits [];
extern const char *glibtop_descriptions_shm_limits []; extern const char *glibtop_descriptions_shm_limits [];

View File

@@ -43,21 +43,9 @@ struct _glibtop_swap
free; /* GLIBTOP_SWAP_FREE */ free; /* GLIBTOP_SWAP_FREE */
}; };
#define glibtop_get_swap(swap) glibtop_get_swap_l(glibtop_global_server, swap) #define glibtop_get_swap(swap) glibtop_get_swap__r(glibtop_global_server, swap)
#if GLIBTOP_SUID_SWAP extern void glibtop_get_swap__r __P((glibtop *, glibtop_swap *));
#define glibtop_get_swap_r glibtop_get_swap_p
#else
#define glibtop_get_swap_r glibtop_get_swap_s
#endif
extern void glibtop_get_swap_l __P((glibtop *, glibtop_swap *));
#if GLIBTOP_SUID_SWAP
extern void glibtop_get_swap_p __P((glibtop *, glibtop_swap *));
#else
extern void glibtop_get_swap_s __P((glibtop *, glibtop_swap *));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -83,7 +71,7 @@ extern SCM glibtop_guile_descriptions_swap __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_swap []; extern const char *glibtop_names_swap [];
extern const unsigned glibtop_types_swap []; extern const char *glibtop_types_swap [];
extern const char *glibtop_labels_swap []; extern const char *glibtop_labels_swap [];
extern const char *glibtop_descriptions_swap []; extern const char *glibtop_descriptions_swap [];

View File

@@ -27,34 +27,30 @@
__BEGIN_DECLS __BEGIN_DECLS
#define GLIBTOP_SYSDEPS_FEATURES 0 #define GLIBTOP_SYSDEPS_CPU 0
#define GLIBTOP_SYSDEPS_CPU 1 #define GLIBTOP_SYSDEPS_MEM 1
#define GLIBTOP_SYSDEPS_MEM 2 #define GLIBTOP_SYSDEPS_SWAP 2
#define GLIBTOP_SYSDEPS_SWAP 3 #define GLIBTOP_SYSDEPS_UPTIME 3
#define GLIBTOP_SYSDEPS_UPTIME 4 #define GLIBTOP_SYSDEPS_LOADAVG 4
#define GLIBTOP_SYSDEPS_LOADAVG 5 #define GLIBTOP_SYSDEPS_SHM_LIMITS 5
#define GLIBTOP_SYSDEPS_SHM_LIMITS 6 #define GLIBTOP_SYSDEPS_MSG_LIMITS 6
#define GLIBTOP_SYSDEPS_MSG_LIMITS 7 #define GLIBTOP_SYSDEPS_SEM_LIMITS 7
#define GLIBTOP_SYSDEPS_SEM_LIMITS 8 #define GLIBTOP_SYSDEPS_PROCLIST 8
#define GLIBTOP_SYSDEPS_PROCLIST 9 #define GLIBTOP_SYSDEPS_PROC_STATE 9
#define GLIBTOP_SYSDEPS_PROC_STATE 10 #define GLIBTOP_SYSDEPS_PROC_UID 10
#define GLIBTOP_SYSDEPS_PROC_UID 11 #define GLIBTOP_SYSDEPS_PROC_MEM 11
#define GLIBTOP_SYSDEPS_PROC_MEM 12 #define GLIBTOP_SYSDEPS_PROC_TIME 12
#define GLIBTOP_SYSDEPS_PROC_TIME 13 #define GLIBTOP_SYSDEPS_PROC_SIGNAL 13
#define GLIBTOP_SYSDEPS_PROC_SIGNAL 14 #define GLIBTOP_SYSDEPS_PROC_KERNEL 14
#define GLIBTOP_SYSDEPS_PROC_KERNEL 15 #define GLIBTOP_SYSDEPS_PROC_SEGMENT 15
#define GLIBTOP_SYSDEPS_PROC_SEGMENT 16
#define GLIBTOP_MAX_SYSDEPS 17 #define GLIBTOP_MAX_SYSDEPS 16
#define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1)
typedef struct _glibtop_sysdeps glibtop_sysdeps; typedef struct _glibtop_sysdeps glibtop_sysdeps;
struct _glibtop_sysdeps struct _glibtop_sysdeps
{ {
unsigned long flags, unsigned long flags,
features, /* server features */
cpu, /* glibtop_cpu */ cpu, /* glibtop_cpu */
mem, /* glibtop_mem */ mem, /* glibtop_mem */
swap, /* glibtop_swap */ swap, /* glibtop_swap */
@@ -73,9 +69,9 @@ struct _glibtop_sysdeps
proc_segment; /* glibtop_proc_segment */ proc_segment; /* glibtop_proc_segment */
}; };
#define glibtop_get_sysdeps(sysdeps) glibtop_get_sysdeps_r(glibtop_global_server,sysdeps) #define glibtop_get_sysdeps(sysdeps) glibtop_get_sysdeps__r(glibtop_global_server,sysdeps)
extern void glibtop_get_sysdeps_r __P((glibtop *, glibtop_sysdeps *)); extern void glibtop_get_sysdeps__r __P((glibtop *, glibtop_sysdeps *));
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -101,7 +97,7 @@ extern SCM glibtop_guile_descriptions_sysdeps __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_sysdeps []; extern const char *glibtop_names_sysdeps [];
extern const unsigned glibtop_types_sysdeps []; extern const char *glibtop_types_sysdeps [];
extern const char *glibtop_labels_sysdeps []; extern const char *glibtop_labels_sysdeps [];
extern const char *glibtop_descriptions_sysdeps []; extern const char *glibtop_descriptions_sysdeps [];

View File

@@ -41,21 +41,9 @@ struct _glibtop_uptime
idletime; /* GLIBTOP_UPTIME_IDLETIME */ idletime; /* GLIBTOP_UPTIME_IDLETIME */
}; };
#define glibtop_get_uptime(uptime) glibtop_get_uptime_l(glibtop_global_server, uptime) #define glibtop_get_uptime(uptime) glibtop_get_uptime__r(glibtop_global_server, uptime)
#if GLIBTOP_SUID_UPTIME extern void glibtop_get_uptime__r __P((glibtop *, glibtop_uptime *));
#define glibtop_get_uptime_r glibtop_get_uptime_p
#else
#define glibtop_get_uptime_r glibtop_get_uptime_s
#endif
extern void glibtop_get_uptime_l __P((glibtop *, glibtop_uptime *));
#if GLIBTOP_SUID_UPTIME
extern void glibtop_get_uptime_p __P((glibtop *, glibtop_uptime *));
#else
extern void glibtop_get_uptime_s __P((glibtop *, glibtop_uptime *));
#endif
#ifdef HAVE_GUILE #ifdef HAVE_GUILE
@@ -81,7 +69,7 @@ extern SCM glibtop_guile_descriptions_uptime __P((void));
/* You need to link with -lgtop_names to get this stuff here. */ /* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_uptime []; extern const char *glibtop_names_uptime [];
extern const unsigned glibtop_types_uptime []; extern const char *glibtop_types_uptime [];
extern const char *glibtop_labels_uptime []; extern const char *glibtop_labels_uptime [];
extern const char *glibtop_descriptions_uptime []; extern const char *glibtop_descriptions_uptime [];

View File

@@ -29,8 +29,7 @@ __BEGIN_DECLS
#define glibtop_write(p1, p2) glibtop_write(glibtop_global_server, p1, p2) #define glibtop_write(p1, p2) glibtop_write(glibtop_global_server, p1, p2)
extern void glibtop_write_l __P((glibtop *, size_t, void *)); extern void glibtop_write__r __P((glibtop *, size_t, void *));
extern void glibtop_write_s __P((glibtop *, size_t, void *));
__END_DECLS __END_DECLS

View File

@@ -27,15 +27,15 @@
__BEGIN_DECLS __BEGIN_DECLS
#define glibtop_malloc(p1) glibtop_malloc_r(glibtop_global_server, p1) #define glibtop_malloc(p1) glibtop_malloc__r(glibtop_global_server, p1)
#define glibtop_calloc(p1, p2) glibtop_calloc_r(glibtop_global_server, p1, p2) #define glibtop_calloc(p1, p2) glibtop_calloc__r(glibtop_global_server, p1, p2)
#define glibtop_realloc(p1, p2) glibtop_realloc_r(glibtop_global_server, p1, p2) #define glibtop_realloc(p1, p2) glibtop_realloc__r(glibtop_global_server, p1, p2)
#define glibtop_free(p1) glibtop_free_r(glibtop_global_server, p1) #define glibtop_free(p1) glibtop_free__r(glibtop_global_server, p1)
extern void *glibtop_malloc_r __P((glibtop *, size_t)); extern void *glibtop_malloc__r __P((glibtop *, size_t));
extern void *glibtop_calloc_r __P((glibtop *, size_t, size_t)); extern void *glibtop_calloc__r __P((glibtop *, size_t, size_t));
extern void *glibtop_realloc_r __P((glibtop *, void *, size_t)); extern void *glibtop_realloc__r __P((glibtop *, void *, size_t));
extern void glibtop_free_r __P((glibtop *, void *)); extern void glibtop_free__r __P((glibtop *, void *));
__END_DECLS __END_DECLS

View File

@@ -1,13 +0,0 @@
#
# Makefile for the linux system information tables.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definition is now in the main makefile...
O_TARGET := table.o
O_OBJS := main.o
include $(TOPDIR)/Rules.make

View File

@@ -1,423 +0,0 @@
/*
* linux/table/table_impl.c
* Copyright (C) 1998 Martin Baulig
*/
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/kernel_stat.h>
#include <linux/tty.h>
#include <linux/user.h>
#include <linux/a.out.h>
#include <linux/string.h>
#include <linux/mman.h>
#include <linux/proc_fs.h>
#include <linux/ioport.h>
#include <linux/config.h>
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <linux/swap.h>
#include <asm/segment.h>
#include <asm/pgtable.h>
#include <asm/io.h>
#include <linux/table.h>
#include "version.h"
#if defined(__i386__)
# define KSTK_EIP(tsk) (((unsigned long *)tsk->kernel_stack_page)[1019])
# define KSTK_ESP(tsk) (((unsigned long *)tsk->kernel_stack_page)[1022])
#elif defined(__alpha__)
/*
* See arch/alpha/kernel/ptrace.c for details.
*/
# define PT_REG(reg) (PAGE_SIZE - sizeof(struct pt_regs) \
+ (long)&((struct pt_regs *)0)->reg)
# define KSTK_EIP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(pc)))
# define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->tss.usp)
#elif defined(__sparc__)
# define PT_REG(reg) (PAGE_SIZE - sizeof(struct pt_regs) \
+ (long)&((struct pt_regs *)0)->reg)
# define KSTK_EIP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(pc)))
# define KSTK_ESP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(u_regs[UREG_FP])))
#endif
static struct task_struct *
get_task (pid_t pid)
{
struct task_struct ** p;
p = task;
while (++p < task+NR_TASKS) {
if (*p && (*p)->pid == pid)
return *p;
}
return NULL;
}
static inline void statm_pte_range(pmd_t * pmd, unsigned long address, unsigned long size,
int * pages, int * shared, int * dirty, int * total)
{
pte_t * pte;
unsigned long end;
if (pmd_none(*pmd))
return;
if (pmd_bad(*pmd)) {
printk("statm_pte_range: bad pmd (%08lx)\n", pmd_val(*pmd));
pmd_clear(pmd);
return;
}
pte = pte_offset(pmd, address);
address &= ~PMD_MASK;
end = address + size;
if (end > PMD_SIZE)
end = PMD_SIZE;
do {
pte_t page = *pte;
address += PAGE_SIZE;
pte++;
if (pte_none(page))
continue;
++*total;
if (!pte_present(page))
continue;
++*pages;
if (pte_dirty(page))
++*dirty;
if (pte_page(page) >= high_memory)
continue;
if (mem_map[MAP_NR(pte_page(page))].count > 1)
++*shared;
} while (address < end);
}
static inline void statm_pmd_range(pgd_t * pgd, unsigned long address, unsigned long size,
int * pages, int * shared, int * dirty, int * total)
{
pmd_t * pmd;
unsigned long end;
if (pgd_none(*pgd))
return;
if (pgd_bad(*pgd)) {
printk("statm_pmd_range: bad pgd (%08lx)\n", pgd_val(*pgd));
pgd_clear(pgd);
return;
}
pmd = pmd_offset(pgd, address);
address &= ~PGDIR_MASK;
end = address + size;
if (end > PGDIR_SIZE)
end = PGDIR_SIZE;
do {
statm_pte_range(pmd, address, end - address, pages, shared, dirty, total);
address = (address + PMD_SIZE) & PMD_MASK;
pmd++;
} while (address < end);
}
static void statm_pgd_range(pgd_t * pgd, unsigned long address, unsigned long end,
int * pages, int * shared, int * dirty, int * total)
{
while (address < end) {
statm_pmd_range(pgd, address, end - address, pages, shared, dirty, total);
address = (address + PGDIR_SIZE) & PGDIR_MASK;
pgd++;
}
}
static unsigned long
get_wchan (struct task_struct *p)
{
if (!p || p == current || p->state == TASK_RUNNING)
return 0;
#if defined(__i386__)
{
unsigned long ebp, eip;
unsigned long stack_page;
int count = 0;
stack_page = p->kernel_stack_page;
if (!stack_page)
return 0;
ebp = p->tss.ebp;
do {
if (ebp < stack_page || ebp >= 4092+stack_page)
return 0;
eip = *(unsigned long *) (ebp+4);
if (eip < (unsigned long) interruptible_sleep_on
|| eip >= (unsigned long) add_timer)
return eip;
ebp = *(unsigned long *) ebp;
} while (count++ < 16);
}
#elif defined(__alpha__)
/*
* This one depends on the frame size of schedule(). Do a
* "disass schedule" in gdb to find the frame size. Also, the
* code assumes that sleep_on() follows immediately after
* interruptible_sleep_on() and that add_timer() follows
* immediately after interruptible_sleep(). Ugly, isn't it?
* Maybe adding a wchan field to task_struct would be better,
* after all...
*/
{
unsigned long schedule_frame;
unsigned long pc;
pc = thread_saved_pc(&p->tss);
if (pc >= (unsigned long) interruptible_sleep_on && pc < (unsigned long) add_timer) {
schedule_frame = ((unsigned long *)p->tss.ksp)[6];
return ((unsigned long *)schedule_frame)[12];
}
return pc;
}
#endif
return 0;
}
asmlinkage int
sys_table (int type, union table *buf, const void *param)
{
union table tbl;
struct sysinfo i;
struct task_struct *tsk = NULL;
pid_t pid;
int err;
if (type == TABLE_VERSION)
return _TABLE_VERSION;
if (!buf)
return -EFAULT;
memset (&tbl, 0, sizeof (union table));
/* For TABLE_PROC_*, read pid and get task_struct */
switch (type) {
case TABLE_PROC_UID:
case TABLE_PROC_MEM:
case TABLE_PROC_SEGMENT:
case TABLE_PROC_TIME:
case TABLE_PROC_STATE:
case TABLE_PROC_SIGNAL:
case TABLE_PROC_KERNEL:
err = verify_area (VERIFY_READ, param, sizeof (pid_t));
if (err)
return err;
memcpy_fromfs (&pid, param, sizeof (pid_t));
tsk = get_task (pid);
if (tsk == NULL)
return -ESRCH;
break;
}
/* Main function dispatcher */
switch (type) {
case TABLE_CPU:
tbl.cpu.total = jiffies;
tbl.cpu.user = kstat.cpu_user;
tbl.cpu.nice = kstat.cpu_nice;
tbl.cpu.sys = kstat.cpu_system;
tbl.cpu.idle = tbl.cpu.total - (tbl.cpu.user + tbl.cpu.nice + tbl.cpu.sys);
tbl.cpu.frequency = HZ;
break;
case TABLE_MEM:
si_meminfo (&i);
tbl.mem.total = i.totalram;
tbl.mem.used = i.totalram - i.freeram;
tbl.mem.free = i.freeram;
tbl.mem.shared = i.sharedram;
tbl.mem.buffer = i.bufferram;
tbl.mem.cached = page_cache_size << PAGE_SHIFT;
break;
case TABLE_SWAP:
si_swapinfo (&i);
tbl.swap.total = i.totalswap;
tbl.swap.used = i.totalswap - i.freeswap;
tbl.swap.free = i.freeswap;
break;
case TABLE_LOADAVG:
tbl.loadavg.loadavg [0] = (double) avenrun [0] / (1 << FSHIFT);
tbl.loadavg.loadavg [1] = (double) avenrun [1] / (1 << FSHIFT);
tbl.loadavg.loadavg [2] = (double) avenrun [2] / (1 << FSHIFT);
tbl.loadavg.nr_running = nr_running;
tbl.loadavg.nr_tasks = nr_tasks;
tbl.loadavg.last_pid = last_pid;
break;
case TABLE_UPTIME:
tbl.uptime.uptime = jiffies;
tbl.uptime.idle = task[0]->utime + task[0]->stime;
break;
case TABLE_PROC_STATE:
tbl.proc_state.state = tsk->state;
tbl.proc_state.flags = tsk->flags;
memcpy (tbl.proc_state.comm, tsk->comm, sizeof (tbl.proc_state.comm));
break;
case TABLE_PROC_UID:
tbl.proc_uid.uid = tsk->uid;
tbl.proc_uid.euid = tsk->euid;
tbl.proc_uid.suid = tsk->suid;
tbl.proc_uid.fsuid = tsk->fsuid;
tbl.proc_uid.gid = tsk->gid;
tbl.proc_uid.egid = tsk->egid;
tbl.proc_uid.sgid = tsk->sgid;
tbl.proc_uid.fsgid = tsk->fsgid;
tbl.proc_uid.pid = tsk->pid;
tbl.proc_uid.pgrp = tsk->pgrp;
tbl.proc_uid.ppid = tsk->p_pptr->pid;
tbl.proc_uid.session = tsk->session;
tbl.proc_uid.tty = tsk->tty ? kdev_t_to_nr (tsk->tty->device) : 0;
tbl.proc_uid.tpgid = tsk->tty ? tsk->tty->pgrp : -1;
tbl.proc_uid.priority = tsk->priority;
tbl.proc_uid.counter = tsk->counter;
tbl.proc_uid.def_priority = DEF_PRIORITY;
break;
case TABLE_PROC_SIGNAL:
tbl.proc_signal.signal = tsk->signal;
tbl.proc_signal.blocked = tsk->blocked;
if (tsk->sig) {
struct sigaction * action = tsk->sig->action;
unsigned long sig_ign = 0, sig_caught = 0;
unsigned long bit = 1;
int i;
for (i = 0; i < 32; i++) {
switch((unsigned long) action->sa_handler) {
case 0:
break;
case 1:
sig_ign |= bit;
break;
default:
sig_caught |= bit;
}
bit <<= 1;
action++;
}
tbl.proc_signal.ignored = sig_ign;
tbl.proc_signal.caught = sig_caught;
} else {
tbl.proc_signal.ignored = 0;
tbl.proc_signal.caught = 0;
}
break;
case TABLE_PROC_MEM:
if (tsk->mm && tsk->mm != &init_mm) {
tbl.proc_mem.context = tsk->mm->context;
tbl.proc_mem.start_code = tsk->mm->start_code;
tbl.proc_mem.end_code = tsk->mm->end_code;
tbl.proc_mem.start_data = tsk->mm-> start_data;
tbl.proc_mem.end_data = tsk->mm->end_data;
tbl.proc_mem.start_brk = tsk->mm->start_brk;
tbl.proc_mem.brk = tsk->mm->brk;
tbl.proc_mem.start_stack = tsk->mm->start_stack;
tbl.proc_mem.start_mmap = tsk->mm->start_mmap;
tbl.proc_mem.arg_start = tsk->mm->arg_start;
tbl.proc_mem.arg_end = tsk->mm->arg_end;
tbl.proc_mem.env_start = tsk->mm->env_start;
tbl.proc_mem.env_end = tsk->mm->env_end;
tbl.proc_mem.rss = tsk->mm->rss;
tbl.proc_mem.total_vm = tsk->mm->total_vm;
tbl.proc_mem.locked_vm = tsk->mm->locked_vm;
}
tbl.proc_mem.rlim = tsk->rlim ? tsk->rlim[RLIMIT_RSS].rlim_cur : 0;
break;
case TABLE_PROC_SEGMENT:
if (tsk->mm && tsk->mm != &init_mm) {
unsigned long vsize = 0;
int size = 0, resident = 0, share = 0;
int trs = 0, lrs = 0, drs = 0, dt = 0;
struct vm_area_struct * vma = tsk->mm->mmap;
while (vma) {
pgd_t *pgd = pgd_offset(tsk->mm, vma->vm_start);
int pages = 0, shared = 0, dirty = 0, total = 0;
vsize += vma->vm_end - vma->vm_start;
statm_pgd_range (pgd, vma->vm_start, vma->vm_end,
&pages, &shared, &dirty, &total);
resident += pages;
share += shared;
dt += dirty;
size += total;
if (vma->vm_flags & VM_EXECUTABLE)
trs += pages; /* text */
else if (vma->vm_flags & VM_GROWSDOWN)
drs += pages; /* stack */
else if (vma->vm_end > 0x60000000)
lrs += pages; /* library */
else
drs += pages;
vma = vma->vm_next;
}
tbl.proc_segment.vsize = vsize;
tbl.proc_segment.size = size;
tbl.proc_segment.resident = resident;
tbl.proc_segment.shared = share;
tbl.proc_segment.trs = trs;
tbl.proc_segment.lrs = lrs;
tbl.proc_segment.dt = dt;
}
break;
case TABLE_PROC_TIME:
tbl.proc_time.utime = tsk->utime;
tbl.proc_time.stime = tsk->stime;
tbl.proc_time.cutime = tsk->cutime;
tbl.proc_time.cstime = tsk->cstime;
tbl.proc_time.start_time = tsk->start_time;
tbl.proc_time.timeout = tsk->timeout;
tbl.proc_time.policy = tsk->policy;
tbl.proc_time.rt_priority = tsk->rt_priority;
tbl.proc_time.it_real_value = tsk->it_real_value;
tbl.proc_time.it_prof_value = tsk->it_prof_value;
tbl.proc_time.it_virt_value = tsk->it_virt_value;
tbl.proc_time.it_real_incr = tsk->it_real_incr;
tbl.proc_time.it_prof_incr = tsk->it_prof_incr;
tbl.proc_time.it_virt_incr = tsk->it_virt_incr;
break;
case TABLE_PROC_KERNEL:
tbl.proc_kernel.min_flt = tsk->min_flt;
tbl.proc_kernel.cmin_flt = tsk->cmin_flt;
tbl.proc_kernel.maj_flt = tsk->maj_flt;
tbl.proc_kernel.cmaj_flt = tsk->cmaj_flt;
tbl.proc_kernel.kesp = tsk->kernel_stack_page ? KSTK_EIP(tsk) : 0;
tbl.proc_kernel.keip = tsk->kernel_stack_page ? KSTK_ESP(tsk) : 0;
tbl.proc_kernel.nswap = tsk->nswap;
tbl.proc_kernel.cnswap = tsk->cnswap;
tbl.proc_kernel.wchan = get_wchan (tsk);
break;
default:
return -EINVAL;
}
err = verify_area (VERIFY_WRITE, buf, sizeof (struct table));
if (err)
return err;
memcpy_tofs (buf, &tbl, sizeof (union table));
return 0;
}

View File

@@ -1,154 +0,0 @@
#ifndef _LINUX_TABLE_H
#define _LINUX_TABLE_H
#ifdef _KERNEL
#include <linux/types.h>
#endif
#define TABLE_VERSION 0
#define TABLE_CPU 1
#define TABLE_MEM 2
#define TABLE_SWAP 3
#define TABLE_LOADAVG 4
#define TABLE_UPTIME 5
#define TABLE_PROC_UID 6
#define TABLE_PROC_MEM 7
#define TABLE_PROC_SEGMENT 8
#define TABLE_PROC_TIME 9
#define TABLE_PROC_STATE 10
#define TABLE_PROC_SIGNAL 11
#define TABLE_PROC_KERNEL 12
/* CPU Usage (in jiffies = 1/100th seconds) */
struct table_cpu
{
unsigned long total; /* Total CPU Time */
unsigned long user; /* CPU Time in User Mode */
unsigned long nice; /* CPU Time in User Mode (nice) */
unsigned long sys; /* CPU Time in System Mode */
unsigned long idle; /* CPU Time in the Idle Task */
unsigned long frequency; /* Tick frequency */
};
/* Memory Usage (in bytes) */
struct table_mem
{
unsigned long total; /* Total physical memory */
unsigned long used; /* Used memory size */
unsigned long free; /* Free memory size */
unsigned long shared; /* Shared memory size */
unsigned long buffer; /* Size of buffers */
unsigned long cached; /* Size of cached memory */
};
/* Swap Space (in bytes) */
struct table_swap
{
unsigned long total; /* Total swap space */
unsigned long used; /* Used swap space */
unsigned long free; /* Free swap space */
};
/* Load average */
struct table_loadavg
{
double loadavg [3];
unsigned nr_running;
unsigned nr_tasks;
unsigned last_pid;
};
/* Uptime */
struct table_uptime
{
unsigned long uptime;
unsigned long idle;
};
/* Information about processes. */
struct table_proc_state
{
long state;
unsigned long flags;
char comm[16];
};
struct table_proc_uid
{
int uid, euid, suid, fsuid;
int gid, egid, sgid, fsgid;
int pid, pgrp, ppid;
int session;
unsigned int tty;
int tpgid;
long priority;
long counter;
long def_priority;
};
struct table_proc_mem
{
unsigned long context;
unsigned long start_code, end_code, start_data, end_data;
unsigned long start_brk, brk, start_stack, start_mmap;
unsigned long arg_start, arg_end, env_start, env_end;
unsigned long rss, rlim, total_vm, locked_vm;
};
struct table_proc_segment
{
unsigned long vsize;
int size, resident, shared;
int trs, lrs, drs, dt;
};
struct table_proc_time
{
long utime, stime, cutime, cstime, start_time;
unsigned long timeout, policy, rt_priority;
unsigned long it_real_value, it_prof_value, it_virt_value;
unsigned long it_real_incr, it_prof_incr, it_virt_incr;
};
struct table_proc_signal
{
unsigned long signal;
unsigned long blocked; /* bitmap of masked signals */
unsigned long ignored; /* mask of ignored signals */
unsigned long caught; /* mask of caught signals */
};
struct table_proc_kernel
{
unsigned long keip, kesp, wchan;
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
unsigned long nswap, cnswap;
};
/* Union */
union table
{
struct table_cpu cpu;
struct table_mem mem;
struct table_swap swap;
struct table_loadavg loadavg;
struct table_uptime uptime;
struct table_proc_uid proc_uid;
struct table_proc_mem proc_mem;
struct table_proc_segment proc_segment;
struct table_proc_time proc_time;
struct table_proc_state proc_state;
struct table_proc_signal proc_signal;
struct table_proc_kernel proc_kernel;
};
#endif /* _LINUX_IPC_H */

View File

@@ -1,85 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <linux/unistd.h>
#include <linux/table.h>
#include <syscall.h>
static inline _syscall3 (int, table, int, type, union table *, tbl, const void *, param);
int
main (void)
{
union table tbl;
unsigned count;
int ret;
ret = table (TABLE_VERSION, NULL, NULL);
if (ret == -1) {
fprintf (stderr, "table(%u): %s\n", TABLE_VERSION, sys_errlist [errno]);
exit (-errno);
}
fprintf (stderr, "Table (%u) = %u\n", TABLE_VERSION, ret);
for (count = 0; count < 5; count++) {
ret = table (TABLE_CPU, &tbl, NULL);
if (ret == -1) {
fprintf (stderr, "table(%u): %s\n", TABLE_CPU, sys_errlist [errno]);
exit (-errno);
}
fprintf (stderr, "Table (%u) = %lu, %lu, %lu, %lu, %lu, %lu\n",
TABLE_CPU, tbl.cpu.total, tbl.cpu.user, tbl.cpu.nice,
tbl.cpu.sys, tbl.cpu.idle, tbl.cpu.frequency);
}
ret = table (TABLE_MEM, &tbl, NULL);
if (ret == -1) {
fprintf (stderr, "table(%u): %s\n", TABLE_MEM, sys_errlist [errno]);
exit (-errno);
}
fprintf (stderr, "Table (%u) = %lu, %lu, %lu, %lu, %lu, %lu\n",
TABLE_MEM, tbl.mem.total, tbl.mem.used, tbl.mem.free,
tbl.mem.shared, tbl.mem.buffer, tbl.mem.cached);
ret = table (TABLE_SWAP, &tbl, NULL);
if (ret == -1) {
fprintf (stderr, "table(%u): %s\n", TABLE_SWAP, sys_errlist [errno]);
exit (-errno);
}
fprintf (stderr, "Table (%u) = %lu, %lu, %lu\n",
TABLE_SWAP, tbl.swap.total, tbl.swap.used, tbl.swap.free);
ret = table (TABLE_LOADAVG, &tbl, NULL);
if (ret == -1) {
fprintf (stderr, "table(%u): %s\n", TABLE_LOADAVG, sys_errlist [errno]);
exit (-errno);
}
fprintf (stderr, "Table (%u) = (%lu, %lu, %lu) - %u, %u, %u\n",
TABLE_LOADAVG, tbl.loadavg.loadavg [0], tbl.loadavg.loadavg [1],
tbl.loadavg.loadavg [2], tbl.loadavg.nr_running,
tbl.loadavg.nr_tasks, tbl.loadavg.last_pid);
ret = table (TABLE_UPTIME, &tbl, NULL);
if (ret == -1) {
fprintf (stderr, "table(%u): %s\n", TABLE_UPTIME, sys_errlist [errno]);
exit (-errno);
}
fprintf (stderr, "Table (%u) = %lu, %lu\n",
TABLE_UPTIME, tbl.uptime.uptime, tbl.uptime.idle);
exit (0);
}

View File

@@ -1 +0,0 @@
#define _TABLE_VERSION 1

View File

@@ -32,4 +32,3 @@ sysinfo.lo
uptime.lo uptime.lo
write.lo write.lo
xmalloc.lo xmalloc.lo
lib.c

View File

@@ -8,14 +8,10 @@ CFLAGS = -Wall -W @CFLAGS@ -DGTOP_SERVER=\""@LIBGTOP_SERVER@"\"
lib_LTLIBRARIES = libgtop.la lib_LTLIBRARIES = libgtop.la
libgtop_la_SOURCES = init.c open.c close.c command.c read.c read_data.c write.c lib.c libgtop_la_SOURCES = init.c open.c close.c read.c read_data.c \
write.c command.c cpu.c mem.c swap.c uptime.c \
loadavg.c shm_limits.c msg_limits.c \
sem_limits.c proclist.c procstate.c procuid.c \
proctime.c procmem.c procsignal.c prockernel.c \
procsegment.c
BUILT_SOURCES = lib.c
lib.c: lib.awk $(top_builddir)/config.h $(top_builddir)/features.def
$(AWK) -f $(srcdir)/lib.awk < $(top_builddir)/features.def > lib-t
mv lib-t lib.c
EXTRA_DIST = lib.awk
CLEANFILES = lib.c

View File

@@ -24,7 +24,7 @@
/* Closes pipe to gtop server. */ /* Closes pipe to gtop server. */
void void
glibtop_close_r (glibtop *server) glibtop_close (glibtop *server)
{ {
kill (server->pid, SIGKILL); kill (server->pid, SIGKILL);
close (server->input [0]); close (server->input [0]);

View File

@@ -27,28 +27,28 @@
#include <glibtop/xmalloc.h> #include <glibtop/xmalloc.h>
void * void *
glibtop_call_l (glibtop *server, unsigned command, size_t send_size, void *send_buf, glibtop_call__r (glibtop *server, unsigned command, size_t send_size, void *send_buf,
size_t recv_size, void *recv_buf) size_t recv_size, void *recv_buf)
{ {
glibtop_command *cmnd; glibtop_command *cmnd;
void *ptr; void *ptr;
glibtop_init_r (&server, 0, 0); glibtop_init__r (&server);
cmnd = glibtop_calloc_r (server, 1, sizeof (glibtop_command)); cmnd = glibtop_calloc__r (server, 1, sizeof (glibtop_command));
memcpy (&cmnd->server, server, sizeof (glibtop)); memcpy (&cmnd->server, server, sizeof (glibtop));
cmnd->command = command; cmnd->command = command;
cmnd->size = send_size; cmnd->size = send_size;
glibtop_write_l (server, sizeof (glibtop_command), cmnd); glibtop_write__r (server, sizeof (glibtop_command), cmnd);
glibtop_write_l (server, send_size, send_buf); glibtop_write__r (server, send_size, send_buf);
glibtop_read_l (server, recv_size, recv_buf); glibtop_read__r (server, recv_size, recv_buf);
ptr = glibtop_read_data_l (server); ptr = glibtop_read_data__r (server);
glibtop_free_r (server, cmnd); glibtop_free__r (server, cmnd);
return ptr; return ptr;
} }

View File

@@ -19,13 +19,14 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#include <glibtop/version.h> #include <glibtop/cpu.h>
#include <glibtop/command.h>
/* Provides information about cpu usage. */
void void
glibtop_version (void) glibtop_get_cpu__r (glibtop *server, glibtop_cpu *buf)
{ {
char buffer [BUFSIZ]; glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_CPU, 0, NULL, sizeof (glibtop_cpu), buf);
sprintf (buffer, "%s server %s ready.\n", PACKAGE, VERSION);
glibtop_output (strlen (buffer), buffer);
} }

View File

@@ -26,16 +26,14 @@ static glibtop _glibtop_global_server;
glibtop *glibtop_global_server = NULL; glibtop *glibtop_global_server = NULL;
glibtop * glibtop *
glibtop_init_r (glibtop **server, const unsigned long features, glibtop_init__r (glibtop **server)
const unsigned flags)
{ {
if (*server != NULL) if (*server != NULL)
return *server; return *server;
if (glibtop_global_server == NULL) { if (glibtop_global_server == NULL) {
glibtop_global_server = &_glibtop_global_server; glibtop_global_server = &_glibtop_global_server;
glibtop_open_l (glibtop_global_server, "glibtop", glibtop_open (glibtop_global_server, "glibtop");
features, flags);
} }
return *server = glibtop_global_server; return *server = glibtop_global_server;

View File

@@ -1,52 +0,0 @@
BEGIN {
print "/* lib.c */";
print "/* This is a generated file. Please modify `lib.awk' */";
print "";
print "#include <glibtop.h>";
print "#include <glibtop/sysdeps.h>";
print "#include <glibtop/command.h>";
print "";
}
function output(feature) {
if (feature ~ /^proclist$/) {
print "unsigned *";
prefix = "return ";
} else {
prefix = "";
print "void";
}
if (feature ~ /^proc_/) {
param = ", pid_t pid";
} else {
param = "";
}
print "glibtop_get_"feature"_l (glibtop *server, glibtop_"feature" *buf"param")";
print "{";
print "\tglibtop_init_r (&server, GLIBTOP_SYSDEPS_"toupper(feature)", 0);";
print "";
print "\tif (server->features & GLIBTOP_SYSDEPS_"toupper(feature)") {";
if (feature ~ /^proc_/) {
print "\t\t"prefix"glibtop_call_l (server, GLIBTOP_CMND_"toupper(feature)", sizeof (pid_t),";
print "\t\t\t\t&pid, sizeof (glibtop_"feature"), buf);";
print "\t} else {";
print "\t\t"prefix"glibtop_get_"feature"_r (server, buf, pid);";
} else {
print "\t\t"prefix"glibtop_call_l (server, GLIBTOP_CMND_"toupper(feature)", 0, NULL,";
print "\t\t\t sizeof (glibtop_"feature"), buf);";
print "\t} else {";
print "\t\t"prefix"glibtop_get_"feature"_r (server, buf);";
}
print "\t}";
print "}";
print "";
}
/^(\w+)/ { output($1) }

View File

@@ -19,18 +19,15 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#ifndef __GLIBTOP_TYPES_H__ #include <config.h>
#define __GLIBTOP_TYPES_H__ #include <glibtop/loadavg.h>
#include <glibtop/command.h>
__BEGIN_DECLS /* Provides load averange. */
#define GLIBTOP_TYPE_LONG 1 void
#define GLIBTOP_TYPE_ULONG 2 glibtop_get_loadavg__r (glibtop *server, glibtop_loadavg *buf)
#define GLIBTOP_TYPE_DOUBLE 3 {
#define GLIBTOP_TYPE_INT 4 glibtop_init__r (&server);
#define GLIBTOP_TYPE_CHAR 5 glibtop_call__r (server, GLIBTOP_CMND_LOADAVG, 0, NULL, sizeof (glibtop_loadavg), buf);
#define GLIBTOP_TYPE_STRING 6 }
__END_DECLS
#endif

View File

@@ -19,13 +19,14 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#include <glibtop/output.h> #include <glibtop/mem.h>
#include <glibtop/command.h>
/* Provides information about memory usage. */
void void
glibtop_output (size_t size, const void *buf) glibtop_get_mem__r (glibtop *server, glibtop_mem *buf)
{ {
if (write (1, &size, sizeof (size_t)) < 0) glibtop_init__r (&server);
_exit (2); glibtop_call__r (server, GLIBTOP_CMND_MEM, 0, NULL, sizeof (glibtop_mem), buf);
if (write (1, buf, size) < 0)
_exit (2);
} }

32
lib/msg_limits.c Normal file
View File

@@ -0,0 +1,32 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop/msg_limits.h>
#include <glibtop/command.h>
/* Provides information about sysv ipc limits. */
void
glibtop_get_msg_limits__r (glibtop *server, glibtop_msg_limits *buf)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_MSG_LIMITS, 0, NULL, sizeof (glibtop_msg_limits), buf);
}

View File

@@ -19,138 +19,42 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/open.h> #include <glibtop/open.h>
#include <glibtop/sysdeps.h>
#include <glibtop/command.h>
#include <glibtop/xmalloc.h>
/* Opens pipe to gtop server. Returns 0 on success and -1 on error. */ /* Opens pipe to gtop server. Returns 0 on success and -1 on error. */
void void
glibtop_open_l (glibtop *server, const char *program_name, glibtop_open (glibtop *server, const char *program_name)
const unsigned long features, const unsigned flags)
{ {
char version [BUFSIZ], buffer [BUFSIZ]; char version [BUFSIZ], buffer [BUFSIZ];
char *server_command, *server_rsh, *temp;
char *server_host, *server_user;
glibtop_sysdeps sysdeps;
memset (server, 0, sizeof (glibtop)); memset (server, 0, sizeof (glibtop));
server->name = program_name; server->name = program_name;
/* Is the user allowed to override the server ? */
if ((flags & GLIBTOP_OPEN_NO_OVERRIDE) == 0) {
/* Try to get data from environment. */
temp = getenv ("LIBGTOP_SERVER") ?
getenv ("LIBGTOP_SERVER") : GTOP_SERVER;
server_command = glibtop_malloc_r (server, strlen (temp) + 1);
strcpy (server_command, temp);
temp = getenv ("LIBGTOP_RSH") ?
getenv ("LIBGTOP_RSH") : "rsh";
server_rsh = glibtop_malloc_r (server, strlen (temp) + 1);
strcpy (server_rsh, temp);
/* Extract host and user information. */
temp = strstr (server_command, ":");
if (temp) {
*temp = 0;
server_host = server_command;
server_command = temp+1;
temp = strstr (server_host, "@");
if (temp) {
*temp = 0;
server_user = server_host;
server_host = temp+1;
} else {
server_user = NULL;
}
} else {
server_host = NULL;
server_user = NULL;
}
/* Store everything in `server'. */
server->server_command = server_command;
server->server_host = server_host;
server->server_user = server_user;
server->server_rsh = server_rsh;
}
/* Get server features. */
if (server->server_host == NULL) {
server->features = glibtop_server_features;
if (server->features == 0)
return;
}
/* Fork and exec server. */
if (pipe (server->input) || pipe (server->output)) if (pipe (server->input) || pipe (server->output))
glibtop_error_r (server, _("cannot make a pipe: %s\n"), glibtop_error__r (server, _("cannot make a pipe: %s\n"), strerror (errno));
strerror (errno));
server->pid = fork (); server->pid = fork ();
if (server->pid < 0) { if (server->pid < 0) {
glibtop_error_r (server, _("%s: fork failed: %s\n"), glibtop_error__r (server, _("%s: fork failed: %s\n"), strerror (errno));
strerror (errno));
} else if (server->pid == 0) { } else if (server->pid == 0) {
close (0); close (1); /* close (2); */ close (0); close (1); /* close (2); */
close (server->input [0]); close (server->output [1]); close (server->input [0]); close (server->output [1]);
dup2 (server->input [1], 1); /* dup2 (server->input [1], 2); */ dup2 (server->input [1], 1); /* dup2 (server->input [1], 2); */
dup2 (server->output [0], 0); dup2 (server->output [0], 0);
execl (GTOP_SERVER, NULL);
if (server_host) {
if (server_user) {
execl (server->server_rsh, "-l",
server->server_user, server->server_host,
server->server_command, NULL);
} else {
execl (server->server_rsh,
server->server_host, server_command, NULL);
}
} else {
execl (server->server_command, NULL);
}
_exit (2); _exit (2);
} }
fprintf (stderr, "PID: %d\n", server->pid);
close (server->input [1]); close (server->input [1]);
close (server->output [0]); close (server->output [0]);
sprintf (version, "%s server %s ready.\n", PACKAGE, VERSION); sprintf (version, "%s server %s ready.\n", PACKAGE, VERSION);
glibtop_read_l (server, strlen (version), buffer); glibtop_read__r (server, strlen (version), buffer);
if (memcmp (version, buffer, strlen (version))) if (memcmp (version, buffer, strlen (version)))
glibtop_error_r (server, _("server version is not %s"), VERSION); glibtop_error__r (server, _("server version is not %s"), VERSION);
fprintf (stderr, "Calling GLITOP_CMND_SYSDEPS ...\n");
glibtop_call_l (server, GLIBTOP_CMND_SYSDEPS, 0, NULL,
sizeof (glibtop_sysdeps), &sysdeps);
server->features = sysdeps.features;
fprintf (stderr, "Features: %lu\n", server->features);
} }

35
lib/prockernel.c Normal file
View File

@@ -0,0 +1,35 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/prockernel.h>
#include <glibtop/command.h>
/* Provides detailed information about a process. */
void
glibtop_get_proc_kernel__r (glibtop *server, glibtop_proc_kernel *buf,
pid_t pid)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_PROC_KERNEL, sizeof (pid_t),
&pid, sizeof (glibtop_proc_kernel), buf);
}

32
lib/proclist.c Normal file
View File

@@ -0,0 +1,32 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop/proclist.h>
#include <glibtop/command.h>
/* Fetch list of currently running processes. */
unsigned *
glibtop_get_proclist__r (glibtop *server, glibtop_proclist *buf)
{
glibtop_init__r (&server);
return glibtop_call__r (server, GLIBTOP_CMND_PROCLIST, 0, NULL, sizeof (glibtop_proclist), buf);
}

35
lib/procmem.c Normal file
View File

@@ -0,0 +1,35 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/procmem.h>
#include <glibtop/command.h>
/* Provides detailed information about a process. */
void
glibtop_get_proc_mem__r (glibtop *server, glibtop_proc_mem *buf,
pid_t pid)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_PROC_MEM, sizeof (pid_t),
&pid, sizeof (glibtop_proc_mem), buf);
}

35
lib/procsegment.c Normal file
View File

@@ -0,0 +1,35 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/procsegment.h>
#include <glibtop/command.h>
/* Provides detailed information about a process. */
void
glibtop_get_proc_segment__r (glibtop *server, glibtop_proc_segment *buf,
pid_t pid)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_PROC_SEGMENT, sizeof (pid_t),
&pid, sizeof (glibtop_proc_segment), buf);
}

35
lib/procsignal.c Normal file
View File

@@ -0,0 +1,35 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/procsignal.h>
#include <glibtop/command.h>
/* Provides detailed information about a process. */
void
glibtop_get_proc_signal__r (glibtop *server, glibtop_proc_signal *buf,
pid_t pid)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_PROC_SIGNAL, sizeof (pid_t),
&pid, sizeof (glibtop_proc_signal), buf);
}

35
lib/procstate.c Normal file
View File

@@ -0,0 +1,35 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/procstate.h>
#include <glibtop/command.h>
/* Provides detailed information about a process. */
void
glibtop_get_proc_state__r (glibtop *server, glibtop_proc_state *buf,
pid_t pid)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_PROC_STATE, sizeof (pid_t),
&pid, sizeof (glibtop_proc_state), buf);
}

35
lib/proctime.c Normal file
View File

@@ -0,0 +1,35 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/proctime.h>
#include <glibtop/command.h>
/* Provides detailed information about a process. */
void
glibtop_get_proc_time__r (glibtop *server, glibtop_proc_time *buf,
pid_t pid)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_PROC_TIME, sizeof (pid_t),
&pid, sizeof (glibtop_proc_time), buf);
}

35
lib/procuid.c Normal file
View File

@@ -0,0 +1,35 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/procuid.h>
#include <glibtop/command.h>
/* Provides detailed information about a process. */
void
glibtop_get_proc_uid__r (glibtop *server, glibtop_proc_uid *buf,
pid_t pid)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_PROC_UID, sizeof (pid_t),
&pid, sizeof (glibtop_proc_uid), buf);
}

View File

@@ -24,18 +24,18 @@
/* Reads some data from server. */ /* Reads some data from server. */
void void
glibtop_read_l (glibtop *server, size_t size, void *buf) glibtop_read__r (glibtop *server, size_t size, void *buf)
{ {
size_t ssize; size_t ssize;
glibtop_init_r (&server, 0, 0); glibtop_init__r (&server);
if (read (server->input [0], &ssize, sizeof (size_t)) < 0) if (read (server->input [0], &ssize, sizeof (size_t)) < 0)
glibtop_error_r (server, _("read size: %s"), strerror (errno)); glibtop_error__r (server, _("read size: %s"), strerror (errno));
if (size != ssize) if (size != ssize)
glibtop_error_r (server, _("got %d bytes but requested %d"), ssize, size); glibtop_error__r (server, _("got %d bytes but requested %d"), ssize, size);
if (read (server->input [0], buf, size) < 0) if (read (server->input [0], buf, size) < 0)
glibtop_error_r (server, _("read %d bytes: %s"), size, strerror (errno)); glibtop_error__r (server, _("read %d bytes: %s"), size, strerror (errno));
} }

View File

@@ -25,24 +25,24 @@
/* Reads some data from server. */ /* Reads some data from server. */
void * void *
glibtop_read_data_l (glibtop *server) glibtop_read_data__r (glibtop *server)
{ {
size_t size; size_t size;
void *ptr; void *ptr;
glibtop_init_r (&server, 0, 0); glibtop_init__r (&server);
if (read (server->input [0], &size, sizeof (size_t)) < 0) if (read (server->input [0], &size, sizeof (size_t)) < 0)
glibtop_error_r (server, _("read data size: %s"), glibtop_error__r (server, _("read data size: %s"), strerror (errno));
strerror (errno));
if (!size) return NULL; if (!size) return NULL;
ptr = glibtop_malloc_r (server, size); fprintf (stderr, "Server has %d bytes of data.\n", size);
ptr = glibtop_malloc__r (server, size);
if (read (server->input [0], ptr, size) < 0) if (read (server->input [0], ptr, size) < 0)
glibtop_error_r (server, _("read data %d bytes: %s"), glibtop_error__r (server, _("read data %d bytes: %s"), size, strerror (errno));
size, strerror (errno));
return ptr; return ptr;
} }

32
lib/sem_limits.c Normal file
View File

@@ -0,0 +1,32 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop/sem_limits.h>
#include <glibtop/command.h>
/* Provides information about sysv ipc limits. */
void
glibtop_get_sem_limits__r (glibtop *server, glibtop_sem_limits *buf)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_SEM_LIMITS, 0, NULL, sizeof (glibtop_sem_limits), buf);
}

32
lib/shm_limits.c Normal file
View File

@@ -0,0 +1,32 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop/shm_limits.h>
#include <glibtop/command.h>
/* Provides information about sysv ipc limits. */
void
glibtop_get_shm_limits__r (glibtop *server, glibtop_shm_limits *buf)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_SHM_LIMITS, 0, NULL, sizeof (glibtop_shm_limits), buf);
}

View File

@@ -19,10 +19,14 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#include <glibtop/close.h> #include <glibtop/swap.h>
#include <glibtop/command.h>
/* Closes pipe to gtop server. */ /* Provides information about swap usage. */
void void
glibtop_close_l (glibtop *server) glibtop_get_swap__r (glibtop *server, glibtop_swap *buf)
{ } {
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_SWAP, 0, NULL, sizeof (glibtop_swap), buf);
}

33
lib/uptime.c Normal file
View File

@@ -0,0 +1,33 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <config.h>
#include <glibtop/uptime.h>
#include <glibtop/command.h>
/* Provides uptime and idle time. */
void
glibtop_get_uptime__r (glibtop *server, glibtop_uptime *buf)
{
glibtop_init__r (&server);
glibtop_call__r (server, GLIBTOP_CMND_UPTIME, 0, NULL, sizeof (glibtop_uptime), buf);
}

View File

@@ -24,15 +24,15 @@
/* Writes some data to server. */ /* Writes some data to server. */
void void
glibtop_write_l (glibtop *server, size_t size, void *buf) glibtop_write__r (glibtop *server, size_t size, void *buf)
{ {
glibtop_init_r (&server, 0, 0); glibtop_init__r (&server);
if (write (server->output [1], &size, sizeof (size_t)) < 0) if (write (server->output [1], &size, sizeof (size_t)) < 0)
glibtop_error_r (server, _("write size: %s"), strerror (errno)); glibtop_error__r (server, _("write size: %s"), strerror (errno));
if (!size) return; if (!size) return;
if (write (server->output [1], buf, size) < 0) if (write (server->output [1], buf, size) < 0)
glibtop_error_r (server, _("write %d bytes: %s"), size, strerror (errno)); glibtop_error__r (server, _("write %d bytes: %s"), size, strerror (errno));
} }

View File

@@ -3,32 +3,39 @@
%define rel SNAP %define rel SNAP
%define prefix /usr %define prefix /usr
Summary: libgtop library Summary: GNOME Top Library
Name: libgtop Name: libgtop
Version: %ver Version: %ver
Release: %rel Release: %rel
Copyright: LGPL Copyright: LGPL
Group: X11/Libraries Group: X11/gnome
Source: ftp://ftp.gnome.org/pub/libgtop-%{ver}.tar.gz Source: ftp://ftp.gnome.org/pub/libgtop-%{ver}.tar.gz
BuildRoot: /tmp/libgtop-root BuildRoot: /tmp/libgtop-root
Packager: Michael Fulbright <msf@redhat.com> Obsoletes: gnome
URL: http://www.gnome.org Packager: Marc Ewing <marc@redhat.com>
Prereq: /sbin/install-info URL: http://www.gnome.org/
Docdir: %{prefix}/doc Docdir: %{prefix}/doc
%description %description
Library that fetches information about the running system such as cpu
and memory usage, active processes etc. On Linux systems, these information
are taken directly from the /proc filesystem. For other systems such as
Solaris, where such programs need to be suid root (or only setgid kmem/mem
on some systems), it provides a suid/setgid server that fetches those
information and a client-side library that talks to this server.
A library that fetches Main idea was to have the same interface for all operating systems,
information about the running system such as cpu and memory usage, thus all system dependent details are hidden in the implementation
active processes etc. On Linux systems, these information are taken of that server.
directly from the /proc filesystem.
%package devel
Summary: Libraries, includes, etc to use libgtop in GNOME applications
Group: X11/gnome
Requires: libgtop
Obsoletes: gnome
%changelog %description devel
Libraries, include files, etc you need to use libgtop in GNOME applications.
* Tue Jun 2 1998 Michael Fulbright <msf@redhat.com>
- first version of the RPM
%prep %prep
%setup %setup
@@ -36,9 +43,9 @@ directly from the /proc filesystem.
%build %build
# Needed for snapshot releases. # Needed for snapshot releases.
if [ ! -f configure ]; then if [ ! -f configure ]; then
CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --prefix=%prefix --disable-libgtop-examples CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --prefix=%prefix
else else
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix --disable-libgtop-examples CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix
fi fi
if [ "$SMP" != "" ]; then if [ "$SMP" != "" ]; then
@@ -53,29 +60,30 @@ rm -rf $RPM_BUILD_ROOT
make prefix=$RPM_BUILD_ROOT%{prefix} install make prefix=$RPM_BUILD_ROOT%{prefix} install
#
# msf - remove these as they are really supposed to come from gnome-libs
#
rm -f $RPM_BUILD_ROOT/%{prefix}/lib/libgnomesupport.a
rm -f $RPM_BUILD_ROOT/%{prefix}/lib/libgnomesupport.la
rm -f $RPM_BUILD_ROOT/%{prefix}/lib/libgnomesupport.so.0
rm -f $RPM_BUILD_ROOT/%{prefix}/lib/libgnomesupport.so.0.0.0
rm -fr $RPM_BUILD_ROOT/%{prefix}/include/libgtop
%clean %clean
#rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig %post
if ! grep %{prefix}/lib /etc/ld.so.conf > /dev/null ; then
echo "%{prefix}/lib" >> /etc/ld.so.conf
fi
/sbin/ldconfig
%postun -p /sbin/ldconfig %postun -p /sbin/ldconfig
%files %files
%defattr(-, root, root) %defattr(-, root, root)
%doc ANNOUNCE AUTHORS ChangeLog NEWS README README.LATEST copyright.txt doc %doc AUTHORS COPYING ChangeLog NEWS README
%{prefix}/bin/*
%{prefix}/lib/lib*.so.* %{prefix}/lib/lib*.so.*
%{prefix}/lib/libgtopConf.sh %{prefix}/bin/*
%files devel
%defattr(-, root, root)
%{prefix}/lib/lib*.so
%{prefix}/lib/*a %{prefix}/lib/*a
%{prefix}/lib/*.sh
%{prefix}/lib/libgtop
%{prefix}/include/* %{prefix}/include/*

View File

@@ -2,5 +2,4 @@ Makefile
Makefile.in Makefile.in
POTFILES POTFILES
cat-id-tbl.c cat-id-tbl.c
fr.gmo
libgtop.pot libgtop.pot

View File

@@ -1,7 +1,3 @@
Sun, 31 May 1998 22:38:59 +0200 Vincent Renardias <vincent@waw.com>
* fr.po: new file - ChangeLog isn't empty anymore _(;
1998-05-21 Martin Baulig <martin@home-of-linux.org> 1998-05-21 Martin Baulig <martin@home-of-linux.org>
* ChangeLog: new file - currently empty * ChangeLog: new file - currently empty

View File

@@ -1,8 +1,17 @@
lib/close.c lib/close.c
lib/command.c lib/command.c
lib/cpu.c
lib/mem.c
lib/open.c lib/open.c
lib/read.c lib/read.c
lib/swap.c
lib/write.c lib/write.c
lib/uptime.c
lib/loadavg.c
lib/shm_limits.c
lib/msg_limits.c
lib/sem_limits.c
lib/proclist.c
lib/read_data.c lib/read_data.c
acconfig.h acconfig.h
glibtop.h glibtop.h

402
po/fr.po
View File

@@ -1,402 +0,0 @@
# libgtop fr.po
# Copyright (C) 1998 Free Software Foundation, Inc.
# Vincent Renardias <vincent@waw.com>, 1998.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: libgtop VERSION\n"
"POT-Creation-Date: 1998-05-31 22:31+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Vincent Renardias <vincent@waw.com>\n"
"Language-Team: Vincent Renardias <vincent@waw.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#: lib/open.c:36
#, c-format
msgid "cannot make a pipe: %s\n"
msgstr ""
#: lib/open.c:41
#, c-format
msgid "%s: fork failed: %s\n"
msgstr ""
#: lib/open.c:59
#, c-format
msgid "server version is not %s"
msgstr ""
#: lib/read.c:34
#, c-format
msgid "read size: %s"
msgstr ""
#: lib/read.c:37
#, c-format
msgid "got %d bytes but requested %d"
msgstr ""
#: lib/read.c:40
#, c-format
msgid "read %d bytes: %s"
msgstr ""
#: lib/write.c:32
#, c-format
msgid "write size: %s"
msgstr ""
#: lib/write.c:37
#, c-format
msgid "write %d bytes: %s"
msgstr ""
#: lib/read_data.c:36
#, c-format
msgid "read data size: %s"
msgstr ""
#: lib/read_data.c:46
#, c-format
msgid "read data %d bytes: %s"
msgstr ""
#: sysdeps/common/xmalloc.c:32
#, c-format
msgid "malloc %d bytes: %s"
msgstr ""
#: sysdeps/common/xmalloc.c:44
#, c-format
msgid "calloc %d block (%d bytes each): %s"
msgstr ""
#: sysdeps/common/xmalloc.c:56
#, c-format
msgid "realloc %d bytes: %s"
msgstr ""
#: sysdeps/names/sysdeps.c:42 sysdeps/names/sysdeps.c:62
msgid "CPU Usage"
msgstr "Utilisation CPU"
#: sysdeps/names/sysdeps.c:43 sysdeps/names/sysdeps.c:63
msgid "Memory Usage"
msgstr "Utilisation M<>moire"
#: sysdeps/names/sysdeps.c:44 sysdeps/names/sysdeps.c:64
msgid "Swap Usage"
msgstr "Utilisation du Swap"
#: sysdeps/names/sysdeps.c:45 sysdeps/names/sysdeps.c:65
msgid "System Uptime"
msgstr ""
#: sysdeps/names/sysdeps.c:46 sysdeps/names/sysdeps.c:66
msgid "Load Averange"
msgstr "Charge moyenne"
#: sysdeps/names/sysdeps.c:47 sysdeps/names/sysdeps.c:67
msgid "Shared Memory Limits"
msgstr "Limites de la m<>moire partag<61>e"
#: sysdeps/names/sysdeps.c:48 sysdeps/names/sysdeps.c:68
msgid "Message Queue Limits"
msgstr "Limites de la queue de messages"
#: sysdeps/names/sysdeps.c:49 sysdeps/names/sysdeps.c:69
msgid "Semaphore Set Limits"
msgstr "Limites de l'ensemble de s<>maphores"
#: sysdeps/names/sysdeps.c:50 sysdeps/names/sysdeps.c:70
msgid "List of running Processes"
msgstr "Liste des taches en cours d'<27>x<EFBFBD>cution"
#: sysdeps/names/sysdeps.c:51 sysdeps/names/sysdeps.c:71
msgid "Process Status information"
msgstr ""
#: sysdeps/names/sysdeps.c:52 sysdeps/names/sysdeps.c:72
msgid "Process UID and TTY information"
msgstr ""
#: sysdeps/names/sysdeps.c:53 sysdeps/names/sysdeps.c:73
msgid "Process Memory information"
msgstr ""
#: sysdeps/names/sysdeps.c:54 sysdeps/names/sysdeps.c:74
msgid "Process Time information"
msgstr ""
#: sysdeps/names/sysdeps.c:55 sysdeps/names/sysdeps.c:75
msgid "Process Signal information"
msgstr ""
#: sysdeps/names/sysdeps.c:56 sysdeps/names/sysdeps.c:76
msgid "Process Kernel Data information"
msgstr ""
#: sysdeps/names/sysdeps.c:57 sysdeps/names/sysdeps.c:77
msgid "Process Segment information"
msgstr ""
#: sysdeps/names/cpu.c:37
msgid "Total CPU Time"
msgstr "Temps CPU Total"
#: sysdeps/names/cpu.c:38
msgid "CPU Time in User Mode"
msgstr "Temps CPU en mode utilisateur"
#: sysdeps/names/cpu.c:39
msgid "CPU Time in User Mode (nice)"
msgstr ""
#: sysdeps/names/cpu.c:40
msgid "CPU Time in System Mode"
msgstr "Temps CPU en mode syst<73>me"
#: sysdeps/names/cpu.c:41
msgid "CPU Time in the Idle Task"
msgstr "Temps CPU pour la tache inactive"
#: sysdeps/names/cpu.c:42
msgid "Tick Frequency"
msgstr ""
#: sysdeps/names/cpu.c:47
msgid "The number of jiffies (1/100ths of a second) since system boot"
msgstr "Nombre de jiffies (1/100e de seconde) depuis le boot du syst<73>me"
#: sysdeps/names/cpu.c:49
msgid ""
"The number of jiffies (1/100ths of a second) that the system spent in user "
"mode"
msgstr ""
#: sysdeps/names/cpu.c:51
msgid ""
"The number of jiffies (1/100ths of a second) that the system spent in user "
"mode with low priority (nice)"
msgstr ""
#: sysdeps/names/cpu.c:53
msgid ""
"The number of jiffies (1/100ths of a second) that the system spent in system "
"mode"
msgstr ""
#: sysdeps/names/cpu.c:55
msgid ""
"The number of jiffies (1/100ths of a second) that the system spend in the "
"idle task"
msgstr ""
#: sysdeps/names/cpu.c:57
msgid ""
"All of the above values are in jiffies (1/100ths of a second) unless "
"otherwise stated in this field (i.e. 'frequency != 100')"
msgstr ""
#: sysdeps/names/loadavg.c:36
msgid "Load Average"
msgstr "Charge Moyenne"
#: sysdeps/names/loadavg.c:41
msgid "Number of jobs running simultaneously averaged over 1, 5 and 15 minutes"
msgstr ""
#: sysdeps/names/mem.c:39
msgid "Total Memory"
msgstr "M<>moire Totale"
#: sysdeps/names/mem.c:40
msgid "Used Memory"
msgstr "M<>moire Utilis<69>e"
#: sysdeps/names/mem.c:41
msgid "Free Memory"
msgstr "M<>moire Libre"
#: sysdeps/names/mem.c:42
msgid "Shared Memory"
msgstr "M<>moire Partag<61>e"
#: sysdeps/names/mem.c:43
msgid "Buffers"
msgstr "Tampons"
#: sysdeps/names/mem.c:44
msgid "Cached"
msgstr ""
#: sysdeps/names/mem.c:45
msgid "User"
msgstr "Utilisateur"
#: sysdeps/names/mem.c:46
msgid "Locked"
msgstr "V<>rouill<6C>"
#: sysdeps/names/mem.c:51
msgid "Total physical memory in kB"
msgstr "M<>moire physique totalle en Ko"
#: sysdeps/names/mem.c:52
msgid "Used memory size in kB"
msgstr ""
#: sysdeps/names/mem.c:53
msgid "Free memory size in kB"
msgstr ""
#: sysdeps/names/mem.c:54
msgid "Shared memory size in kB"
msgstr ""
#: sysdeps/names/mem.c:55
msgid "Size of buffers kB"
msgstr ""
#: sysdeps/names/mem.c:56
msgid "Size of cached memory in kB"
msgstr ""
#: sysdeps/names/mem.c:57
msgid "Memory used from user processes in kB"
msgstr ""
#: sysdeps/names/mem.c:58
msgid "Memory in locked pages in kB"
msgstr ""
#: sysdeps/names/swap.c:36 sysdeps/names/swap.c:43
msgid "Total Swap Space"
msgstr ""
#: sysdeps/names/swap.c:37 sysdeps/names/swap.c:44
msgid "Used Swap Space"
msgstr ""
#: sysdeps/names/swap.c:38 sysdeps/names/swap.c:45
msgid "Free Swap Space"
msgstr ""
#: sysdeps/names/uptime.c:36
msgid "Uptime"
msgstr ""
#: sysdeps/names/uptime.c:37
msgid "Idletime"
msgstr ""
#: sysdeps/names/uptime.c:42
msgid "Time in seconds since system boot"
msgstr ""
#: sysdeps/names/uptime.c:43
msgid "Time in seconds the system spent in the idle task since system boot"
msgstr ""
#: sysdeps/names/shm_limits.c:37 sysdeps/names/shm_limits.c:46
msgid "Max segment size"
msgstr ""
#: sysdeps/names/shm_limits.c:38 sysdeps/names/shm_limits.c:47
msgid "Min segment size"
msgstr ""
#: sysdeps/names/shm_limits.c:39 sysdeps/names/shm_limits.c:48
msgid "Max number of segments"
msgstr ""
#: sysdeps/names/shm_limits.c:40 sysdeps/names/shm_limits.c:49
msgid "Max shared segments per process"
msgstr ""
#: sysdeps/names/shm_limits.c:41 sysdeps/names/shm_limits.c:50
msgid "Max total shared memory"
msgstr ""
#: sysdeps/names/msg_limits.c:37 sysdeps/names/msg_limits.c:48
msgid "Size in kilobytes of message pool"
msgstr ""
#: sysdeps/names/msg_limits.c:38 sysdeps/names/msg_limits.c:49
msgid "Number of entries in message map"
msgstr ""
#: sysdeps/names/msg_limits.c:39 sysdeps/names/msg_limits.c:50
msgid "Max size of message"
msgstr ""
#: sysdeps/names/msg_limits.c:40 sysdeps/names/msg_limits.c:51
msgid "Default max size of queue"
msgstr ""
#: sysdeps/names/msg_limits.c:41 sysdeps/names/msg_limits.c:52
msgid "Max queues system wide"
msgstr ""
#: sysdeps/names/msg_limits.c:42 sysdeps/names/msg_limits.c:53
msgid "Message segment size"
msgstr ""
#: sysdeps/names/msg_limits.c:43 sysdeps/names/msg_limits.c:54
msgid "Number of system message headers"
msgstr ""
#: sysdeps/names/sem_limits.c:39 sysdeps/names/sem_limits.c:53
msgid "Number of entries in semaphore map"
msgstr ""
#: sysdeps/names/sem_limits.c:40 sysdeps/names/sem_limits.c:54
msgid "Max number of arrays"
msgstr ""
#: sysdeps/names/sem_limits.c:41 sysdeps/names/sem_limits.c:55
msgid "Max semaphores system wide"
msgstr ""
#: sysdeps/names/sem_limits.c:42 sysdeps/names/sem_limits.c:56
msgid "Number of undo structures system wide"
msgstr ""
#: sysdeps/names/sem_limits.c:43 sysdeps/names/sem_limits.c:57
msgid "Max semaphores per array"
msgstr ""
#: sysdeps/names/sem_limits.c:44 sysdeps/names/sem_limits.c:58
msgid "Max ops per semop call"
msgstr ""
#: sysdeps/names/sem_limits.c:45 sysdeps/names/sem_limits.c:59
msgid "Max number of undo entries per process"
msgstr ""
#: sysdeps/names/sem_limits.c:46 sysdeps/names/sem_limits.c:60
msgid "sizeof struct sem_undo"
msgstr ""
#: sysdeps/names/sem_limits.c:47 sysdeps/names/sem_limits.c:61
msgid "Semaphore max value"
msgstr ""
#: sysdeps/names/sem_limits.c:48 sysdeps/names/sem_limits.c:62
msgid "Adjust on exit max value"
msgstr ""
#: sysdeps/names/proclist.c:36 sysdeps/names/proclist.c:43
msgid "Number of list elements"
msgstr ""
#: sysdeps/names/proclist.c:37 sysdeps/names/proclist.c:44
msgid "Total size of list"
msgstr "Taille totalle de la liste"
#: sysdeps/names/proclist.c:38 sysdeps/names/proclist.c:45
msgid "Size of a single list element"
msgstr ""

View File

@@ -1 +1 @@
SUBDIRS = server proxy SUBDIRS = server

View File

@@ -1,5 +0,0 @@
.deps
.libs
Makefile
Makefile.in
gtop_proxy

View File

@@ -1,16 +0,0 @@
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
INCLUDES = -I$(top_builddir) -I$(top_srcdir) @machine_incs@ \
-I$(top_srcdir)/include -I$(top_srcdir)/intl @GUILE_INCS@ \
-DGTOPLOCALEDIR=\"$(datadir)/locale\" -D_GNU_SOURCE
CFLAGS = -Wall -W @CFLAGS@ -DGTOP_SERVER=\""@LIBGTOP_SERVER@"\"
bin_PROGRAMS = gtop_proxy
gtop_proxy_SOURCES = main.c output.c version.c
gtop_proxy_LDADD = $(top_builddir)/lib/libgtop.la \
$(top_builddir)/sysdeps/common/libgtop_common.la \
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
@INTLLIBS@ @LIBSUPPORT@
gtop_proxy_LDFLAGS = -static

View File

@@ -1,234 +0,0 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop/command.h>
#include <glibtop/version.h>
#include <glibtop/xmalloc.h>
#include <glibtop/union.h>
#include <glibtop/open.h>
#include <fcntl.h>
#include <locale.h>
#if defined(HAVE_GETDTABLESIZE)
#define GET_MAX_FDS() getdtablesize()
#else
/* Fallthrough case - please add other #elif cases above
for different OS's as necessary */
#define GET_MAX_FDS() 256
#endif
int
main(int argc, char *argv[])
{
pid_t pid;
int fd, max_fd, nread;
size_t size, dsize;
char parameter [BUFSIZ];
glibtop_union data;
glibtop_command cmnd;
glibtop_sysdeps sysdeps;
glibtop server;
void *ptr;
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
textdomain (PACKAGE);
glibtop_version ();
glibtop_open_l (&server, argv [0], 0, GLIBTOP_OPEN_NO_OVERRIDE);
/* close all file descriptors except ones used by the pipes (0 and 1). */
max_fd = GET_MAX_FDS();
for(fd = 3 /* The first fd after the pipes */; fd < max_fd; fd++)
close(fd);
while(1) {
/* block on read from client */
/* fprintf (stderr, "waiting for input ...\n"); */
nread = read (0, &size, sizeof (size_t));
/* will return 0 if parent exits. */
if (nread == 0)
_exit(0);
if (nread != sizeof (size_t))
_exit(1);
if (size != sizeof (glibtop_command))
_exit(2);
nread = read (0, &cmnd, size);
/* will return 0 if parent exits. */
if (nread == 0)
_exit(0);
if (nread < 0)
_exit(1);
nread = read (0, &dsize, sizeof (size_t));
/* will return 0 if parent exits. */
if (nread == 0)
_exit(0);
if (nread < 0)
_exit(1);
if (dsize >= BUFSIZ)
_exit(3);
memset (parameter, 0, sizeof (parameter));
if (dsize) {
nread = read (0, parameter, dsize);
/* will return 0 if parent exits. */
if (nread == 0)
_exit(0);
if (nread < 0)
_exit(1);
}
switch (cmnd.command) {
case GLIBTOP_CMND_SYSDEPS:
sysdeps.features = GLIBTOP_SYSDEPS_ALL;
glibtop_output (sizeof (glibtop_sysdeps), &sysdeps);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_CPU:
glibtop_get_cpu_l (&server, &data.cpu);
glibtop_output (sizeof (glibtop_cpu), &data.cpu);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_MEM:
glibtop_get_mem_l (&server, &data.mem);
glibtop_output (sizeof (glibtop_mem), &data.mem);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_SWAP:
glibtop_get_swap_l (&server, &data.swap);
glibtop_output (sizeof (glibtop_swap), &data.swap);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_UPTIME:
glibtop_get_uptime_l (&server, &data.uptime);
glibtop_output (sizeof (glibtop_uptime), &data.uptime);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_LOADAVG:
glibtop_get_loadavg_l (&server, &data.loadavg);
glibtop_output (sizeof (glibtop_loadavg), &data.loadavg);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_SHM_LIMITS:
glibtop_get_shm_limits_l (&server, &data.shm_limits);
glibtop_output (sizeof (glibtop_shm_limits),
&data.shm_limits);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_MSG_LIMITS:
glibtop_get_msg_limits_l (&server, &data.msg_limits);
glibtop_output (sizeof (glibtop_msg_limits),
&data.msg_limits);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_SEM_LIMITS:
glibtop_get_sem_limits_l (&server, &data.sem_limits);
glibtop_output (sizeof (glibtop_sem_limits),
&data.sem_limits);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_PROCLIST:
ptr = glibtop_get_proclist_l (&server, &data.proclist);
glibtop_output (sizeof (glibtop_proclist),
&data.proclist);
glibtop_output (data.proclist.total, ptr);
glibtop_free_r (&server, ptr);
break;
case GLIBTOP_CMND_PROC_STATE:
memcpy (&pid, parameter, sizeof (pid_t));
glibtop_get_proc_state_l
(&server, &data.proc_state, pid);
glibtop_output (sizeof (glibtop_proc_state),
&data.proc_state);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_PROC_UID:
memcpy (&pid, parameter, sizeof (pid_t));
glibtop_get_proc_uid_l
(&server, &data.proc_uid, pid);
glibtop_output (sizeof (glibtop_proc_uid),
&data.proc_uid);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_PROC_MEM:
memcpy (&pid, parameter, sizeof (pid_t));
glibtop_get_proc_mem_l
(&server, &data.proc_mem, pid);
glibtop_output (sizeof (glibtop_proc_mem),
&data.proc_mem);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_PROC_TIME:
memcpy (&pid, parameter, sizeof (pid_t));
glibtop_get_proc_time_l
(&server, &data.proc_time, pid);
glibtop_output (sizeof (glibtop_proc_time),
&data.proc_time);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_PROC_SIGNAL:
memcpy (&pid, parameter, sizeof (pid_t));
glibtop_get_proc_signal_l
(&server, &data.proc_signal, pid);
glibtop_output (sizeof (glibtop_proc_signal),
&data.proc_signal);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_PROC_KERNEL:
memcpy (&pid, parameter, sizeof (pid_t));
glibtop_get_proc_kernel_l
(&server, &data.proc_kernel, pid);
glibtop_output (sizeof (glibtop_proc_kernel),
&data.proc_kernel);
glibtop_output (0, NULL);
break;
case GLIBTOP_CMND_PROC_SEGMENT:
memcpy (&pid, parameter, sizeof (pid_t));
glibtop_get_proc_segment_l
(&server, &data.proc_segment, pid);
glibtop_output (sizeof (glibtop_proc_segment),
&data.proc_segment);
glibtop_output (0, NULL);
break;
}
}
_exit(0);
}

View File

@@ -74,7 +74,7 @@ int main(int argc, char *argv[])
setreuid (uid, euid); setregid (gid, egid); setreuid (uid, euid); setregid (gid, egid);
glibtop_open_r (&server, argv [0], 0, 0); glibtop_open (&server, argv [0]);
if (setreuid (euid, uid)) _exit (1); if (setreuid (euid, uid)) _exit (1);
@@ -142,146 +142,112 @@ int main(int argc, char *argv[])
switch (cmnd.command) { switch (cmnd.command) {
case GLIBTOP_CMND_SYSDEPS: case GLIBTOP_CMND_SYSDEPS:
sysdeps.features = GLIBTOP_SYSDEPS_ALL; glibtop_get_sysdeps__r (&server, &sysdeps);
glibtop_output (sizeof (glibtop_sysdeps), &sysdeps); glibtop_output (sizeof (glibtop_sysdeps), &sysdeps);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_CPU: case GLIBTOP_CMND_CPU:
#if GLIBTOP_SUID_CPU glibtop_get_cpu__r (&server, &data.cpu);
glibtop_get_cpu_p (&server, &data.cpu);
#endif
glibtop_output (sizeof (glibtop_cpu), &data.cpu); glibtop_output (sizeof (glibtop_cpu), &data.cpu);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_MEM: case GLIBTOP_CMND_MEM:
#if GLIBTOP_SUID_MEM glibtop_get_mem__r (&server, &data.mem);
glibtop_get_mem_p (&server, &data.mem);
#endif
glibtop_output (sizeof (glibtop_mem), &data.mem); glibtop_output (sizeof (glibtop_mem), &data.mem);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_SWAP: case GLIBTOP_CMND_SWAP:
#if GLIBTOP_SUID_SWAP glibtop_get_swap__r (&server, &data.swap);
glibtop_get_swap_p (&server, &data.swap);
#endif
glibtop_output (sizeof (glibtop_swap), &data.swap); glibtop_output (sizeof (glibtop_swap), &data.swap);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_UPTIME: case GLIBTOP_CMND_UPTIME:
#if GLIBTOP_SUID_UPTIME glibtop_get_uptime__r (&server, &data.uptime);
glibtop_get_uptime_p (&server, &data.uptime);
#endif
glibtop_output (sizeof (glibtop_uptime), &data.uptime); glibtop_output (sizeof (glibtop_uptime), &data.uptime);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_LOADAVG: case GLIBTOP_CMND_LOADAVG:
#if GLIBTOP_SUID_LOADAVG glibtop_get_loadavg__r (&server, &data.loadavg);
glibtop_get_loadavg_p (&server, &data.loadavg);
#endif
glibtop_output (sizeof (glibtop_loadavg), &data.loadavg); glibtop_output (sizeof (glibtop_loadavg), &data.loadavg);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_SHM_LIMITS: case GLIBTOP_CMND_SHM_LIMITS:
#if GLIBTOP_SUID_SHM_LIMITS glibtop_get_shm_limits__r (&server, &data.shm_limits);
glibtop_get_shm_limits_p (&server, &data.shm_limits);
#endif
glibtop_output (sizeof (glibtop_shm_limits), glibtop_output (sizeof (glibtop_shm_limits),
&data.shm_limits); &data.shm_limits);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_MSG_LIMITS: case GLIBTOP_CMND_MSG_LIMITS:
#if GLIBTOP_SUID_MSG_LIMITS glibtop_get_msg_limits__r (&server, &data.msg_limits);
glibtop_get_msg_limits_p (&server, &data.msg_limits);
#endif
glibtop_output (sizeof (glibtop_msg_limits), glibtop_output (sizeof (glibtop_msg_limits),
&data.msg_limits); &data.msg_limits);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_SEM_LIMITS: case GLIBTOP_CMND_SEM_LIMITS:
#if GLIBTOP_SUID_SEM_LIMITS glibtop_get_sem_limits__r (&server, &data.sem_limits);
glibtop_get_sem_limits_p (&server, &data.sem_limits);
#endif
glibtop_output (sizeof (glibtop_sem_limits), glibtop_output (sizeof (glibtop_sem_limits),
&data.sem_limits); &data.sem_limits);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_PROCLIST: case GLIBTOP_CMND_PROCLIST:
#if GLIBTOP_SUID_PROCLIST ptr = glibtop_get_proclist__r (&server, &data.proclist);
ptr = glibtop_get_proclist_p (&server, &data.proclist);
#else
ptr = NULL;
#endif
glibtop_output (sizeof (glibtop_proclist), glibtop_output (sizeof (glibtop_proclist),
&data.proclist); &data.proclist);
glibtop_output (data.proclist.total, ptr); glibtop_output (data.proclist.total, ptr);
glibtop_free_r (&server, ptr); glibtop_free__r (&server, ptr);
break; break;
case GLIBTOP_CMND_PROC_STATE: case GLIBTOP_CMND_PROC_STATE:
memcpy (&pid, parameter, sizeof (pid_t)); memcpy (&pid, parameter, sizeof (pid_t));
#if GLIBTOP_SUID_PROC_STATE glibtop_get_proc_state__r
glibtop_get_proc_state_p
(&server, &data.proc_state, pid); (&server, &data.proc_state, pid);
#endif
glibtop_output (sizeof (glibtop_proc_state), glibtop_output (sizeof (glibtop_proc_state),
&data.proc_state); &data.proc_state);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_PROC_UID: case GLIBTOP_CMND_PROC_UID:
memcpy (&pid, parameter, sizeof (pid_t)); memcpy (&pid, parameter, sizeof (pid_t));
#if GLIBTOP_SUID_PROC_UID glibtop_get_proc_uid__r
glibtop_get_proc_uid_p
(&server, &data.proc_uid, pid); (&server, &data.proc_uid, pid);
#endif
glibtop_output (sizeof (glibtop_proc_uid), glibtop_output (sizeof (glibtop_proc_uid),
&data.proc_uid); &data.proc_uid);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_PROC_MEM: case GLIBTOP_CMND_PROC_MEM:
memcpy (&pid, parameter, sizeof (pid_t)); memcpy (&pid, parameter, sizeof (pid_t));
#if GLIBTOP_SUID_PROC_MEM glibtop_get_proc_mem__r
glibtop_get_proc_mem_p
(&server, &data.proc_mem, pid); (&server, &data.proc_mem, pid);
#endif
glibtop_output (sizeof (glibtop_proc_mem), glibtop_output (sizeof (glibtop_proc_mem),
&data.proc_mem); &data.proc_mem);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_PROC_TIME: case GLIBTOP_CMND_PROC_TIME:
memcpy (&pid, parameter, sizeof (pid_t)); memcpy (&pid, parameter, sizeof (pid_t));
#if GLIBTOP_SUID_PROC_TIME glibtop_get_proc_time__r
glibtop_get_proc_time_p
(&server, &data.proc_time, pid); (&server, &data.proc_time, pid);
#endif
glibtop_output (sizeof (glibtop_proc_time), glibtop_output (sizeof (glibtop_proc_time),
&data.proc_time); &data.proc_time);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_PROC_SIGNAL: case GLIBTOP_CMND_PROC_SIGNAL:
memcpy (&pid, parameter, sizeof (pid_t)); memcpy (&pid, parameter, sizeof (pid_t));
#if GLIBTOP_SUID_PROC_SIGNAL glibtop_get_proc_signal__r
glibtop_get_proc_signal_p
(&server, &data.proc_signal, pid); (&server, &data.proc_signal, pid);
#endif
glibtop_output (sizeof (glibtop_proc_signal), glibtop_output (sizeof (glibtop_proc_signal),
&data.proc_signal); &data.proc_signal);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_PROC_KERNEL: case GLIBTOP_CMND_PROC_KERNEL:
memcpy (&pid, parameter, sizeof (pid_t)); memcpy (&pid, parameter, sizeof (pid_t));
#if GLIBTOP_SUID_PROC_KERNEL glibtop_get_proc_kernel__r
glibtop_get_proc_kernel_p
(&server, &data.proc_kernel, pid); (&server, &data.proc_kernel, pid);
#endif
glibtop_output (sizeof (glibtop_proc_kernel), glibtop_output (sizeof (glibtop_proc_kernel),
&data.proc_kernel); &data.proc_kernel);
glibtop_output (0, NULL); glibtop_output (0, NULL);
break; break;
case GLIBTOP_CMND_PROC_SEGMENT: case GLIBTOP_CMND_PROC_SEGMENT:
memcpy (&pid, parameter, sizeof (pid_t)); memcpy (&pid, parameter, sizeof (pid_t));
#if GLIBTOP_SUID_PROC_SEGMENT glibtop_get_proc_segment__r
glibtop_get_proc_segment_p
(&server, &data.proc_segment, pid); (&server, &data.proc_segment, pid);
#endif
glibtop_output (sizeof (glibtop_proc_segment), glibtop_output (sizeof (glibtop_proc_segment),
&data.proc_segment); &data.proc_segment);
glibtop_output (0, NULL); glibtop_output (0, NULL);

View File

@@ -12,4 +12,4 @@ endif
SUBDIRS = @sysdeps_dir@ common $(names_SUBDIRS) $(guile_SUBDIRS) SUBDIRS = @sysdeps_dir@ common $(names_SUBDIRS) $(guile_SUBDIRS)
DIST_SUBDIRS = common guile linux kernel names osf1 stub sun4 DIST_SUBDIRS = common guile linux names osf1 stub sun4

View File

@@ -24,7 +24,7 @@
/* Prints error message and exits. */ /* Prints error message and exits. */
void void
glibtop_error_r (glibtop *server, char *format, ...) glibtop_error__r (glibtop *server, char *format, ...)
{ {
va_list ap; va_list ap;

View File

@@ -21,80 +21,60 @@
#include <glibtop/union.h> #include <glibtop/union.h>
#include <glibtop/sysdeps.h> #include <glibtop/sysdeps.h>
const unsigned long glibtop_server_features =
GLIBTOP_SUID_CPU +
GLIBTOP_SUID_MEM +
GLIBTOP_SUID_SWAP +
GLIBTOP_SUID_UPTIME +
GLIBTOP_SUID_LOADAVG +
GLIBTOP_SUID_SHM_LIMITS +
GLIBTOP_SUID_MSG_LIMITS +
GLIBTOP_SUID_SEM_LIMITS +
GLIBTOP_SUID_PROCLIST +
GLIBTOP_SUID_PROC_STATE +
GLIBTOP_SUID_PROC_UID +
GLIBTOP_SUID_PROC_MEM +
GLIBTOP_SUID_PROC_TIME +
GLIBTOP_SUID_PROC_SIGNAL +
GLIBTOP_SUID_PROC_KERNEL +
GLIBTOP_SUID_PROC_SEGMENT;
/* Checks which features are implemented. */ /* Checks which features are implemented. */
void void
glibtop_get_sysdeps_r (glibtop *server, glibtop_sysdeps *buf) glibtop_get_sysdeps__r (glibtop *server, glibtop_sysdeps *buf)
{ {
glibtop_union data; glibtop_union data;
memset (buf, 0, sizeof (glibtop_sysdeps)); memset (buf, 0, sizeof (glibtop_sysdeps));
buf->features = glibtop_server_features;
/* Call all system dependent functions to check which values /* Call all system dependent functions to check which values
* they return. */ * they return. */
glibtop_get_cpu_r (server, &data.cpu); glibtop_get_cpu__r (server, &data.cpu);
buf->cpu = data.cpu.flags; buf->cpu = data.cpu.flags;
glibtop_get_mem_r (server, &data.mem); glibtop_get_mem__r (server, &data.mem);
buf->mem = data.mem.flags; buf->mem = data.mem.flags;
glibtop_get_swap_r (server, &data.swap); glibtop_get_swap__r (server, &data.swap);
buf->swap = data.swap.flags; buf->swap = data.swap.flags;
glibtop_get_uptime_r (server, &data.uptime); glibtop_get_uptime__r (server, &data.uptime);
buf->uptime = data.uptime.flags; buf->uptime = data.uptime.flags;
glibtop_get_loadavg_r (server, &data.loadavg); glibtop_get_loadavg__r (server, &data.loadavg);
buf->loadavg = data.loadavg.flags; buf->loadavg = data.loadavg.flags;
glibtop_get_shm_limits_r (server, &data.shm_limits); glibtop_get_shm_limits__r (server, &data.shm_limits);
buf->shm_limits = data.shm_limits.flags; buf->shm_limits = data.shm_limits.flags;
glibtop_get_msg_limits_r (server, &data.msg_limits); glibtop_get_msg_limits__r (server, &data.msg_limits);
buf->msg_limits = data.msg_limits.flags; buf->msg_limits = data.msg_limits.flags;
glibtop_get_sem_limits_r (server, &data.sem_limits); glibtop_get_sem_limits__r (server, &data.sem_limits);
buf->sem_limits = data.sem_limits.flags; buf->sem_limits = data.sem_limits.flags;
glibtop_get_proclist_r (server, &data.proclist); glibtop_get_proclist__r (server, &data.proclist);
buf->proclist = data.proclist.flags; buf->proclist = data.proclist.flags;
glibtop_get_proc_state_r (server, &data.proc_state, 0); glibtop_get_proc_state__r (server, &data.proc_state, 0);
buf->proc_state = data.proc_state.flags; buf->proc_state = data.proc_state.flags;
glibtop_get_proc_uid_r (server, &data.proc_uid, 0); glibtop_get_proc_uid__r (server, &data.proc_uid, 0);
buf->proc_uid = data.proc_uid.flags; buf->proc_uid = data.proc_uid.flags;
glibtop_get_proc_mem_r (server, &data.proc_mem, 0); glibtop_get_proc_mem__r (server, &data.proc_mem, 0);
buf->proc_mem = data.proc_mem.flags; buf->proc_mem = data.proc_mem.flags;
glibtop_get_proc_time_r (server, &data.proc_time, 0); glibtop_get_proc_time__r (server, &data.proc_time, 0);
buf->proc_time = data.proc_time.flags; buf->proc_time = data.proc_time.flags;
glibtop_get_proc_kernel_r (server, &data.proc_kernel, 0); glibtop_get_proc_kernel__r (server, &data.proc_kernel, 0);
buf->proc_kernel = data.proc_kernel.flags; buf->proc_kernel = data.proc_kernel.flags;
glibtop_get_proc_segment_r (server, &data.proc_segment, 0); glibtop_get_proc_segment__r (server, &data.proc_segment, 0);
buf->proc_segment = data.proc_segment.flags; buf->proc_segment = data.proc_segment.flags;
} }

View File

@@ -24,43 +24,43 @@
/* Wrappers to malloc, calloc, realloc ... */ /* Wrappers to malloc, calloc, realloc ... */
void * void *
glibtop_malloc_r (glibtop *server, size_t size) glibtop_malloc__r (glibtop *server, size_t size)
{ {
void *buf = malloc (size); void *buf = malloc (size);
if (!buf) if (!buf)
glibtop_error_r (server, _("malloc %d bytes: %s"), glibtop_error__r (server, _("malloc %d bytes: %s"),
size, strerror (errno)); size, strerror (errno));
return buf; return buf;
} }
void * void *
glibtop_calloc_r (glibtop *server, size_t nmemb, size_t size) glibtop_calloc__r (glibtop *server, size_t nmemb, size_t size)
{ {
void *buf = calloc (nmemb, size); void *buf = calloc (nmemb, size);
if (!buf) if (!buf)
glibtop_error_r (server, _("calloc %d block (%d bytes each): %s"), glibtop_error__r (server, _("calloc %d block (%d bytes each): %s"),
nmemb, size, strerror (errno)); nmemb, size, strerror (errno));
return buf; return buf;
} }
void * void *
glibtop_realloc_r (glibtop *server, void *ptr, size_t size) glibtop_realloc__r (glibtop *server, void *ptr, size_t size)
{ {
void *buf = realloc (ptr, size); void *buf = realloc (ptr, size);
if (!buf) if (!buf)
glibtop_error_r (server, _("realloc %d bytes: %s"), glibtop_error__r (server, _("realloc %d bytes: %s"),
size, strerror (errno)); size, strerror (errno));
return buf; return buf;
} }
void void
glibtop_free_r (glibtop *server, void *ptr) glibtop_free__r (glibtop *server, void *ptr)
{ {
if (ptr) free (ptr); if (ptr) free (ptr);
} }

View File

@@ -23,4 +23,3 @@ so_locations
swap.lo swap.lo
sysdeps.lo sysdeps.lo
uptime.lo uptime.lo
guile.c

View File

@@ -14,14 +14,8 @@ CFLAGS = -Wall -W @CFLAGS@
lib_LTLIBRARIES = libgtop_guile.la lib_LTLIBRARIES = libgtop_guile.la
libgtop_guile_la_SOURCES = guile.c libgtop_guile_la_SOURCES = boot.c sysdeps.c cpu.c mem.c swap.c uptime.c \
loadavg.c shm_limits.c msg_limits.c \
BUILT_SOURCES = guile.c sem_limits.c proclist.c procstate.c procuid.c \
proctime.c procmem.c procsignal.c prockernel.c \
guile.c: guile.awk $(top_builddir)/config.h $(top_builddir)/features.def procsegment.c
$(AWK) -f $(srcdir)/guile.awk < $(top_builddir)/features.def > gnc-t
mv gnc-t guile.c
EXTRA_DIST = guile.awk
CLEANFILES = guile.c

66
sysdeps/guile/boot.c Normal file
View File

@@ -0,0 +1,66 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/sysdeps.h>
#include <guile/gh.h>
void
glibtop_boot_guile (void)
{
gh_new_procedure0_0
("glibtop-get-cpu", glibtop_guile_get_cpu);
gh_new_procedure0_0
("glibtop-get-mem", glibtop_guile_get_mem);
gh_new_procedure0_0
("glibtop-get-swap", glibtop_guile_get_swap);
gh_new_procedure0_0
("glibtop-get-uptime", glibtop_guile_get_uptime);
gh_new_procedure0_0
("glibtop-get-loadavg", glibtop_guile_get_loadavg);
gh_new_procedure0_0
("glibtop-get-shm_limits",glibtop_guile_get_shm_limits);
gh_new_procedure0_0
("glibtop-get-msg_limits", glibtop_guile_get_msg_limits);
gh_new_procedure0_0
("glibtop-get-sem_limits", glibtop_guile_get_sem_limits);
gh_new_procedure0_0
("glibtop-get-sysdeps", glibtop_guile_get_sysdeps);
gh_new_procedure0_0
("glibtop-get-proclist", glibtop_guile_get_proclist);
gh_new_procedure1_0
("glibtop-get-proc_state", glibtop_guile_get_proc_state);
gh_new_procedure1_0
("glibtop-get-proc_uid", glibtop_guile_get_proc_uid);
gh_new_procedure1_0
("glibtop-get-proc_mem", glibtop_guile_get_proc_mem);
gh_new_procedure1_0
("glibtop-get-proc_time", glibtop_guile_get_proc_time);
gh_new_procedure1_0
("glibtop-get-proc_signal", glibtop_guile_get_proc_signal);
gh_new_procedure1_0
("glibtop-get-proc_kernel", glibtop_guile_get_proc_kernel);
gh_new_procedure1_0
("glibtop-get-proc_segment", glibtop_guile_get_proc_segment);
}

41
sysdeps/guile/cpu.c Normal file
View File

@@ -0,0 +1,41 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/cpu.h>
#include <guile/gh.h>
SCM glibtop_guile_get_cpu (void)
{
glibtop_cpu cpu;
glibtop_get_cpu (&cpu);
return gh_list (gh_ulong2scm (cpu.flags),
gh_ulong2scm (cpu.total),
gh_ulong2scm (cpu.user),
gh_ulong2scm (cpu.nice),
gh_ulong2scm (cpu.sys),
gh_ulong2scm (cpu.idle),
gh_ulong2scm (cpu.frequency),
SCM_UNDEFINED);
}

View File

@@ -1,87 +0,0 @@
BEGIN {
print "/* guile.c */";
print "/* This is a generated file. Please modify `guile.awk' */";
print "";
print "#include <glibtop.h>";
print "#include <glibtop/xmalloc.h>";
print "#include <glibtop/sysdeps.h>";
print "";
print "#include <guile/gh.h>";
print "";
convert["long"] = "gh_long2scm ";
convert["ulong"] = "gh_ulong2scm ";
convert["double"] = "gh_double2scm";
convert["str"] = "gh_str02scm ";
convert["char"] = "gh_char2scm ";
}
/^(\w+)/ {
features[$1] = $1;
if ($1 ~ /^proclist$/) {
output = "SCM\nglibtop_guile_get_proclist (void)\n{\n";
output = output"\tglibtop_proclist proclist;\n\tunsigned i, *ptr;\n";
output = output"\tSCM list;\n\n\tptr = glibtop_get_proclist (&proclist);\n\n";
output = output"\tlist = gh_list (gh_ulong2scm ("$1".flags),\n\t\t\t";
} else {
if ($1 ~ /^proc_/) {
output = "SCM\nglibtop_guile_get_"$1" (SCM pid)\n{\n";
output = output"\tglibtop_"$1" "$1";\n\n";
output = output"\tglibtop_get_"$1" (&"$1", (pid_t) gh_scm2long (pid));\n\n";
} else {
output = "SCM\nglibtop_guile_get_"$1" (void)\n{\n";
output = output"\tglibtop_"$1" "$1";\n\n";
output = output"\tglibtop_get_"$1" (&"$1");\n\n";
}
output = output"\treturn gh_list (gh_ulong2scm ("$1".flags),\n\t\t\t";
}
nr_elements = split ($2, elements, /:/);
for (element = 1; element <= nr_elements; element++) {
list = elements[element];
type = elements[element];
sub(/\(.*/, "", type);
sub(/^\w+\(/, "", list); sub(/\)$/, "", list);
count = split (list, fields, /,/);
for (field = 1; field <= count; field++) {
output = output""convert[type]" ("$1"."fields[field]"),\n\t\t\t";
}
}
output = output"SCM_UNDEFINED);";
print output;
if ($1 ~ /^proclist$/) {
print "";
print "\tif (ptr) {";
print "\t\tfor (i = 0; i < proclist.number; i++)";
print "\t\t\tlist = gh_append";
print "\t\t\t\t(gh_list (list,";
print "\t\t\t\t\t gh_list (gh_ulong2scm ((unsigned long) ptr [i])),";
print "\t\t\t\t\t SCM_UNDEFINED));";
print "\t}";
print "";
print "\tglibtop_free (ptr);";
print "";
print "\treturn list;";
}
print "}";
print "";
}
END {
print "void";
print "glibtop_boot_guile (void)";
print "{";
for (feature in features) {
if (feature ~ /^proc_/) {
print "\tgh_new_procedure1_0";
} else {
print "\tgh_new_procedure0_0";
}
print "\t\t(\"glibtop-get-"feature"\", glibtop_guile_get_"feature");";
}
print "}";
}

38
sysdeps/guile/loadavg.c Normal file
View File

@@ -0,0 +1,38 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/loadavg.h>
#include <guile/gh.h>
SCM glibtop_guile_get_loadavg (void)
{
glibtop_loadavg loadavg;
glibtop_get_loadavg (&loadavg);
return gh_list (gh_ulong2scm (loadavg.flags),
gh_double2scm (loadavg.loadavg [0]),
gh_double2scm (loadavg.loadavg [1]),
gh_double2scm (loadavg.loadavg [2]),
SCM_UNDEFINED);
}

43
sysdeps/guile/mem.c Normal file
View File

@@ -0,0 +1,43 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/mem.h>
#include <guile/gh.h>
SCM glibtop_guile_get_mem (void)
{
glibtop_mem mem;
glibtop_get_mem (&mem);
return gh_list (gh_ulong2scm (mem.flags),
gh_ulong2scm (mem.total),
gh_ulong2scm (mem.used),
gh_ulong2scm (mem.free),
gh_ulong2scm (mem.shared),
gh_ulong2scm (mem.buffer),
gh_ulong2scm (mem.cached),
gh_ulong2scm (mem.user),
gh_ulong2scm (mem.locked),
SCM_UNDEFINED);
}

View File

@@ -0,0 +1,42 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/msg_limits.h>
#include <guile/gh.h>
SCM glibtop_guile_get_msg_limits (void)
{
glibtop_msg_limits msg_limits;
glibtop_get_msg_limits (&msg_limits);
return gh_list (gh_ulong2scm (msg_limits.flags),
gh_ulong2scm (msg_limits.msgpool),
gh_ulong2scm (msg_limits.msgmap),
gh_ulong2scm (msg_limits.msgmax),
gh_ulong2scm (msg_limits.msgmnb),
gh_ulong2scm (msg_limits.msgmni),
gh_ulong2scm (msg_limits.msgssz),
gh_ulong2scm (msg_limits.msgtql),
SCM_UNDEFINED);
}

View File

@@ -24,4 +24,3 @@ so_locations
swap.lo swap.lo
sysdeps.lo sysdeps.lo
uptime.lo uptime.lo
guile-names.c

View File

@@ -8,15 +8,9 @@ CFLAGS = -Wall -W @CFLAGS@
lib_LTLIBRARIES = libgtop_guile_names.la lib_LTLIBRARIES = libgtop_guile_names.la
libgtop_guile_names_la_SOURCES = guile-names.c libgtop_guile_names_la_SOURCES = boot.c sysdeps.c cpu.c mem.c swap.c uptime.c \
loadavg.c shm_limits.c msg_limits.c \
BUILT_SOURCES = guile-names.c sem_limits.c proclist.c procstate.c procuid.c \
proctime.c procmem.c procsignal.c prockernel.c \
guile-names.c: guile-names.awk $(top_builddir)/config.h $(top_builddir)/features.def procsegment.c
$(AWK) -f $(srcdir)/guile-names.awk < $(top_builddir)/features.def > gnc-t
mv gnc-t guile-names.c
EXTRA_DIST = guile-names.awk
CLEANFILES = guile-names.c

174
sysdeps/guile/names/boot.c Normal file
View File

@@ -0,0 +1,174 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/sysdeps.h>
#include <guile/gh.h>
void
glibtop_boot_guile_names (void)
{
gh_new_procedure0_0
("glibtop-names-cpu", glibtop_guile_names_cpu);
gh_new_procedure0_0
("glibtop-names-mem", glibtop_guile_names_mem);
gh_new_procedure0_0
("glibtop-names-swap", glibtop_guile_names_swap);
gh_new_procedure0_0
("glibtop-names-uptime", glibtop_guile_names_uptime);
gh_new_procedure0_0
("glibtop-names-loadavg", glibtop_guile_names_loadavg);
gh_new_procedure0_0
("glibtop-names-shm_limits", glibtop_guile_names_shm_limits);
gh_new_procedure0_0
("glibtop-names-msg_limits", glibtop_guile_names_msg_limits);
gh_new_procedure0_0
("glibtop-names-sem_limits", glibtop_guile_names_sem_limits);
gh_new_procedure0_0
("glibtop-names-sysdeps", glibtop_guile_names_sysdeps);
gh_new_procedure0_0
("glibtop-names-proclist", glibtop_guile_names_proclist);
gh_new_procedure0_0
("glibtop-names-proc_state", glibtop_guile_names_proc_state);
gh_new_procedure0_0
("glibtop-names-proc_uid", glibtop_guile_names_proc_uid);
gh_new_procedure0_0
("glibtop-names-proc_mem", glibtop_guile_names_proc_mem);
gh_new_procedure0_0
("glibtop-names-proc_time", glibtop_guile_names_proc_time);
gh_new_procedure0_0
("glibtop-names-proc_signal", glibtop_guile_names_proc_signal);
gh_new_procedure0_0
("glibtop-names-proc_kernel", glibtop_guile_names_proc_kernel);
gh_new_procedure0_0
("glibtop-names-proc_segment", glibtop_guile_names_proc_segment);
gh_new_procedure0_0
("glibtop-types-cpu", glibtop_guile_types_cpu);
gh_new_procedure0_0
("glibtop-types-mem", glibtop_guile_types_mem);
gh_new_procedure0_0
("glibtop-types-swap", glibtop_guile_types_swap);
gh_new_procedure0_0
("glibtop-types-uptime", glibtop_guile_types_uptime);
gh_new_procedure0_0
("glibtop-types-loadavg", glibtop_guile_types_loadavg);
gh_new_procedure0_0
("glibtop-types-shm_limits", glibtop_guile_types_shm_limits);
gh_new_procedure0_0
("glibtop-types-msg_limits", glibtop_guile_types_msg_limits);
gh_new_procedure0_0
("glibtop-types-sem_limits", glibtop_guile_types_sem_limits);
gh_new_procedure0_0
("glibtop-types-sysdeps", glibtop_guile_types_sysdeps);
gh_new_procedure0_0
("glibtop-types-proclist", glibtop_guile_types_proclist);
gh_new_procedure0_0
("glibtop-types-proc_state", glibtop_guile_types_proc_state);
gh_new_procedure0_0
("glibtop-types-proc_uid", glibtop_guile_types_proc_uid);
gh_new_procedure0_0
("glibtop-types-proc_mem", glibtop_guile_types_proc_mem);
gh_new_procedure0_0
("glibtop-types-proc_time", glibtop_guile_types_proc_time);
gh_new_procedure0_0
("glibtop-types-proc_signal", glibtop_guile_types_proc_signal);
gh_new_procedure0_0
("glibtop-types-proc_kernel", glibtop_guile_types_proc_kernel);
gh_new_procedure0_0
("glibtop-types-proc_segment", glibtop_guile_types_proc_segment);
gh_new_procedure0_0
("glibtop-labels-cpu", glibtop_guile_labels_cpu);
gh_new_procedure0_0
("glibtop-labels-mem", glibtop_guile_labels_mem);
gh_new_procedure0_0
("glibtop-labels-swap", glibtop_guile_labels_swap);
gh_new_procedure0_0
("glibtop-labels-uptime", glibtop_guile_labels_uptime);
gh_new_procedure0_0
("glibtop-labels-loadavg", glibtop_guile_labels_loadavg);
gh_new_procedure0_0
("glibtop-labels-shm_limits", glibtop_guile_labels_shm_limits);
gh_new_procedure0_0
("glibtop-labels-msg_limits", glibtop_guile_labels_msg_limits);
gh_new_procedure0_0
("glibtop-labels-sem_limits", glibtop_guile_labels_sem_limits);
gh_new_procedure0_0
("glibtop-labels-sysdeps", glibtop_guile_labels_sysdeps);
gh_new_procedure0_0
("glibtop-labels-proclist", glibtop_guile_labels_proclist);
gh_new_procedure0_0
("glibtop-labels-proc_state", glibtop_guile_labels_proc_state);
gh_new_procedure0_0
("glibtop-labels-proc_uid", glibtop_guile_labels_proc_uid);
gh_new_procedure0_0
("glibtop-labels-proc_mem", glibtop_guile_labels_proc_mem);
gh_new_procedure0_0
("glibtop-labels-proc_time", glibtop_guile_labels_proc_time);
gh_new_procedure0_0
("glibtop-labels-proc_signal", glibtop_guile_labels_proc_signal);
gh_new_procedure0_0
("glibtop-labels-proc_kernel", glibtop_guile_labels_proc_kernel);
gh_new_procedure0_0
("glibtop-labels-proc_segment", glibtop_guile_labels_proc_segment);
gh_new_procedure0_0
("glibtop-descriptions-cpu", glibtop_guile_descriptions_cpu);
gh_new_procedure0_0
("glibtop-descriptions-mem", glibtop_guile_descriptions_mem);
gh_new_procedure0_0
("glibtop-descriptions-swap", glibtop_guile_descriptions_swap);
gh_new_procedure0_0
("glibtop-descriptions-uptime", glibtop_guile_descriptions_uptime);
gh_new_procedure0_0
("glibtop-descriptions-loadavg", glibtop_guile_descriptions_loadavg);
gh_new_procedure0_0
("glibtop-descriptions-shm_limits", glibtop_guile_descriptions_shm_limits);
gh_new_procedure0_0
("glibtop-descriptions-msg_limits", glibtop_guile_descriptions_msg_limits);
gh_new_procedure0_0
("glibtop-descriptions-sem_limits", glibtop_guile_descriptions_sem_limits);
gh_new_procedure0_0
("glibtop-descriptions-sysdeps", glibtop_guile_descriptions_sysdeps);
gh_new_procedure0_0
("glibtop-descriptions-proclist", glibtop_guile_descriptions_proclist);
gh_new_procedure0_0
("glibtop-descriptions-proc_state", glibtop_guile_descriptions_proc_state);
gh_new_procedure0_0
("glibtop-descriptions-proc_uid", glibtop_guile_descriptions_proc_uid);
gh_new_procedure0_0
("glibtop-descriptions-proc_mem", glibtop_guile_descriptions_proc_mem);
gh_new_procedure0_0
("glibtop-descriptions-proc_time", glibtop_guile_descriptions_proc_time);
gh_new_procedure0_0
("glibtop-descriptions-proc_signal", glibtop_guile_descriptions_proc_signal);
gh_new_procedure0_0
("glibtop-descriptions-proc_kernel", glibtop_guile_descriptions_proc_kernel);
gh_new_procedure0_0
("glibtop-descriptions-proc_segment", glibtop_guile_descriptions_proc_segment);
}

95
sysdeps/guile/names/cpu.c Normal file
View File

@@ -0,0 +1,95 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/cpu.h>
#include <guile/gh.h>
SCM
glibtop_guile_names_cpu (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_CPU; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_names_cpu [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_types_cpu (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_CPU; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_types_cpu [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_labels_cpu (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_CPU; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_labels_cpu [i]))),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_descriptions_cpu (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_CPU; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_descriptions_cpu [i]))),
SCM_UNDEFINED));
return list;
}

View File

@@ -1,121 +0,0 @@
BEGIN {
print "/* guile_names.c */";
print "/* This is a generated file. Please modify `guile-names.awk' */";
print "";
print "#include <glibtop.h>";
print "#include <glibtop/sysdeps.h>";
print "";
print "#include <guile/gh.h>";
print "";
}
function output(feature) {
print "SCM";
print "glibtop_guile_names_"feature" (void)";
print "{";
print "\tint i;";
print "\tSCM list;";
print "";
print "\tlist = gh_list (SCM_UNDEFINED);";
print "";
print "\tfor (i = 0; i < GLIBTOP_MAX_"toupper(feature)"; i++)";
print "\t\tlist = gh_append";
print "\t\t\t(gh_list (list,";
print "\t\t\t\t gh_list (gh_str02scm ((char *) glibtop_names_"feature" [i])),";
print "\t\t\t\t SCM_UNDEFINED));";
print "";
print "\treturn list;";
print "}";
print "";
print "SCM";
print "glibtop_guile_types_"feature" (void)";
print "{";
print "\tint i;";
print "\tSCM list;";
print "";
print "\tlist = gh_list (SCM_UNDEFINED);";
print "";
print "\tfor (i = 0; i < GLIBTOP_MAX_"toupper(feature)"; i++)";
print "\t\tlist = gh_append";
print "\t\t\t(gh_list (list,";
print "\t\t\t\t gh_list (gh_ulong2scm (glibtop_types_"feature" [i])),";
print "\t\t\t\t SCM_UNDEFINED));";
print "";
print "\treturn list;";
print "}";
print "";
print "SCM";
print "glibtop_guile_labels_"feature" (void)";
print "{";
print "\tint i;";
print "\tSCM list;";
print "";
print "\tlist = gh_list (SCM_UNDEFINED);";
print "";
print "\tfor (i = 0; i < GLIBTOP_MAX_"toupper(feature)"; i++)";
print "\t\tlist = gh_append";
print "\t\t\t(gh_list (list,";
print "\t\t\t\t gh_list (gh_str02scm (gettext";
print "\t\t\t\t\t\t\t(glibtop_labels_"feature" [i]))),";
print "\t\t\t\t SCM_UNDEFINED));";
print "";
print "\treturn list;";
print "}";
print "";
print "SCM";
print "glibtop_guile_descriptions_"feature" (void)";
print "{";
print "\tint i;";
print "\tSCM list;";
print "";
print "\tlist = gh_list (SCM_UNDEFINED);";
print "";
print "\tfor (i = 0; i < GLIBTOP_MAX_"toupper(feature)"; i++)";
print "\t\tlist = gh_append";
print "\t\t\t(gh_list (list,";
print "\t\t\t\t gh_list (gh_str02scm (gettext";
print "\t\t\t\t\t\t\t(glibtop_descriptions_"feature" [i]))),";
print "\t\t\t\t SCM_UNDEFINED));";
print "";
print "\treturn list;";
print "}";
print "";
}
/^(\w+)/ { features[$1] = $1 }
END {
for (feature in features) {
output(feature);
}
print "void";
print "glibtop_boot_guile_names (void)";
print "{";
for (feature in features) {
print "\tgh_new_procedure0_0";
print "\t\t(\"glibtop-names-"feature"\", glibtop_guile_names_"feature");";
print "";
print "\tgh_new_procedure0_0";
print "\t\t(\"glibtop-types-"feature"\", glibtop_guile_types_"feature");";
print "";
print "\tgh_new_procedure0_0";
print "\t\t(\"glibtop-labels-"feature"\", glibtop_guile_labels_"feature");";
print "";
print "\tgh_new_procedure0_0";
print "\t\t(\"glibtop-descriptions-"feature"\", glibtop_guile_descriptions_"feature");";
}
print "}";
}

View File

@@ -0,0 +1,95 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/loadavg.h>
#include <guile/gh.h>
SCM
glibtop_guile_names_loadavg (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_LOADAVG; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_names_loadavg [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_types_loadavg (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_LOADAVG; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_types_loadavg [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_labels_loadavg (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_LOADAVG; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_labels_loadavg [i]))),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_descriptions_loadavg (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_LOADAVG; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_descriptions_loadavg [i]))),
SCM_UNDEFINED));
return list;
}

95
sysdeps/guile/names/mem.c Normal file
View File

@@ -0,0 +1,95 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/mem.h>
#include <guile/gh.h>
SCM
glibtop_guile_names_mem (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_MEM; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_names_mem [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_types_mem (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_MEM; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_types_mem [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_labels_mem (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_MEM; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_labels_mem [i]))),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_descriptions_mem (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_MEM; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_descriptions_mem [i]))),
SCM_UNDEFINED));
return list;
}

View File

@@ -0,0 +1,95 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/msg_limits.h>
#include <guile/gh.h>
SCM
glibtop_guile_names_msg_limits (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_MSG_LIMITS; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_names_msg_limits [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_types_msg_limits (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_MSG_LIMITS; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_types_msg_limits [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_labels_msg_limits (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_MSG_LIMITS; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_labels_msg_limits [i]))),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_descriptions_msg_limits (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_MSG_LIMITS; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_descriptions_msg_limits [i]))),
SCM_UNDEFINED));
return list;
}

View File

@@ -0,0 +1,95 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/prockernel.h>
#include <guile/gh.h>
SCM
glibtop_guile_names_proc_kernel (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_PROC_KERNEL; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_names_proc_kernel [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_types_proc_kernel (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_PROC_KERNEL; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_types_proc_kernel [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_labels_proc_kernel (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_PROC_KERNEL; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_labels_proc_kernel [i]))),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_descriptions_proc_kernel (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_PROC_KERNEL; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_descriptions_proc_kernel [i]))),
SCM_UNDEFINED));
return list;
}

View File

@@ -0,0 +1,96 @@
/* $Id$ */
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the Gnome Top Library.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
The Gnome Top Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Top Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <glibtop.h>
#include <glibtop/xmalloc.h>
#include <glibtop/proclist.h>
#include <guile/gh.h>
SCM
glibtop_guile_names_proclist (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_PROCLIST; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_names_proclist [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_types_proclist (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_PROCLIST; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (glibtop_types_proclist [i])),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_labels_proclist (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_PROCLIST; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_labels_proclist [i]))),
SCM_UNDEFINED));
return list;
}
SCM
glibtop_guile_descriptions_proclist (void)
{
int i;
SCM list;
list = gh_list (SCM_UNDEFINED);
for (i = 0; i < GLIBTOP_MAX_PROCLIST; i++)
list = gh_append
(gh_list (list,
gh_list (gh_str02scm (gettext
(glibtop_descriptions_proclist [i]))),
SCM_UNDEFINED));
return list;
}

Some files were not shown because too many files have changed in this diff Show More