The LibGTop examples have been moved into their own top-level module
1999-10-24 Martin Baulig <martin@home-of-linux.org> The LibGTop examples have been moved into their own top-level module libgtop-examples. * examples/*: Removed. * configure.in: Removed all checks for the examples. * libgtop-sysdeps.m4: Removed --with-libgtop-examples parameter. * Makefile.am: Removed examples from the subdir list.
This commit is contained in:
committed by
Martin Baulig
parent
0adc3bd9ab
commit
3c3dfcd77d
10
ChangeLog
10
ChangeLog
@@ -1,3 +1,13 @@
|
|||||||
|
1999-10-24 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
The LibGTop examples have been moved into their own top-level
|
||||||
|
module libgtop-examples.
|
||||||
|
|
||||||
|
* examples/*: Removed.
|
||||||
|
* configure.in: Removed all checks for the examples.
|
||||||
|
* libgtop-sysdeps.m4: Removed --with-libgtop-examples parameter.
|
||||||
|
* Makefile.am: Removed examples from the subdir list.
|
||||||
|
|
||||||
1999-10-24 Martin Baulig <martin@home-of-linux.org>
|
1999-10-24 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
* libgtop-sysdeps.m4: Check for <osreldate.h> on *BSD* systems.
|
* libgtop-sysdeps.m4: Check for <osreldate.h> on *BSD* systems.
|
||||||
|
10
Makefile.am
10
Makefile.am
@@ -1,17 +1,10 @@
|
|||||||
## Process this file with automake to produce Makefile.in.
|
## Process this file with automake to produce Makefile.in.
|
||||||
|
|
||||||
if EXAMPLES
|
|
||||||
examples_SUBDIRS = examples
|
|
||||||
else
|
|
||||||
examples_SUBDIRS =
|
|
||||||
endif
|
|
||||||
|
|
||||||
if BUILD_GNOME_SUPPORT
|
if BUILD_GNOME_SUPPORT
|
||||||
support = support
|
support = support
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SUBDIRS = po intl $(support) macros misc include sysdeps lib src \
|
SUBDIRS = po intl $(support) macros misc include sysdeps lib src doc
|
||||||
$(examples_SUBDIRS) doc
|
|
||||||
|
|
||||||
include_HEADERS = glibtop.h
|
include_HEADERS = glibtop.h
|
||||||
configincludedir = $(pkglibdir)/include
|
configincludedir = $(pkglibdir)/include
|
||||||
@@ -85,7 +78,6 @@ libgtopConf.sh: libgtopConf.sh.in Makefile
|
|||||||
-e 's#\@libgtop_need_server\@#$(libgtop_need_server)#g' \
|
-e 's#\@libgtop_need_server\@#$(libgtop_need_server)#g' \
|
||||||
-e 's#\@libgtop_use_machine_h\@#$(libgtop_use_machine_h)#g' \
|
-e 's#\@libgtop_use_machine_h\@#$(libgtop_use_machine_h)#g' \
|
||||||
-e 's#\@libgtop_guile_found\@#$(libgtop_guile_found)#g' \
|
-e 's#\@libgtop_guile_found\@#$(libgtop_guile_found)#g' \
|
||||||
-e 's#\@libgtop_want_examples\@#$(libgtop_want_examples)#g' \
|
|
||||||
< $(srcdir)/libgtopConf.sh.in > libgtopConf.tmp \
|
< $(srcdir)/libgtopConf.sh.in > libgtopConf.tmp \
|
||||||
&& mv libgtopConf.tmp libgtopConf.sh
|
&& mv libgtopConf.tmp libgtopConf.sh
|
||||||
|
|
||||||
|
24
configure.in
24
configure.in
@@ -1,5 +1,5 @@
|
|||||||
dnl
|
dnl
|
||||||
dnl Configure script for the Gnome library
|
dnl Configure script for LibGTop
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_INIT(copyright.txt)
|
AC_INIT(copyright.txt)
|
||||||
@@ -143,36 +143,15 @@ if test x$ac_cv_guile_found = xyes ; then
|
|||||||
AC_DEFINE(GLIBTOP_GUILE)
|
AC_DEFINE(GLIBTOP_GUILE)
|
||||||
AC_DEFINE(GLIBTOP_GUILE_NAMES)
|
AC_DEFINE(GLIBTOP_GUILE_NAMES)
|
||||||
libgtop_guile_found=yes
|
libgtop_guile_found=yes
|
||||||
guile_examples='third'
|
|
||||||
guile_static_examples='third_static'
|
|
||||||
guile_subdirs='guile'
|
guile_subdirs='guile'
|
||||||
else
|
else
|
||||||
libgtop_guile_found=no
|
libgtop_guile_found=no
|
||||||
guile_examples=
|
|
||||||
guile_static_examples=
|
|
||||||
guile_subdirs=
|
guile_subdirs=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$libgtop_smp = xyes ; then
|
|
||||||
smp_examples='smp'
|
|
||||||
smp_static_examples='smp_static'
|
|
||||||
else
|
|
||||||
smp_examples=
|
|
||||||
smp_static_examples=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$enable_static" != xno; then
|
|
||||||
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $guile_static_examples $smp_static_examples"
|
|
||||||
else
|
|
||||||
static_targets=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
|
AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
|
||||||
AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes)
|
AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes)
|
||||||
|
|
||||||
AC_SUBST(static_targets)
|
|
||||||
AC_SUBST(smp_examples)
|
|
||||||
AC_SUBST(guile_examples)
|
|
||||||
AC_SUBST(guile_subdirs)
|
AC_SUBST(guile_subdirs)
|
||||||
|
|
||||||
AM_PROG_LIBTOOL
|
AM_PROG_LIBTOOL
|
||||||
@@ -595,7 +574,6 @@ src/Makefile
|
|||||||
src/daemon/Makefile
|
src/daemon/Makefile
|
||||||
src/inodedb/Makefile
|
src/inodedb/Makefile
|
||||||
lib/Makefile
|
lib/Makefile
|
||||||
examples/Makefile
|
|
||||||
doc/Makefile
|
doc/Makefile
|
||||||
support/Makefile
|
support/Makefile
|
||||||
macros/Makefile])
|
macros/Makefile])
|
||||||
|
@@ -1,16 +0,0 @@
|
|||||||
.deps
|
|
||||||
.libs
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
first
|
|
||||||
first_linux
|
|
||||||
first_static
|
|
||||||
second
|
|
||||||
third
|
|
||||||
third_linux
|
|
||||||
third_static
|
|
||||||
second_static
|
|
||||||
second_linux
|
|
||||||
smp_static sysdeps_static netload_static procmap_static mountlist_static
|
|
||||||
smp sysdeps netload procmap mountlist
|
|
||||||
timings timings_static
|
|
@@ -1,92 +0,0 @@
|
|||||||
1999-05-28 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c, second.c, sysdeps.c: Use LibGTop version conditionals
|
|
||||||
so we can more easily merge the code into LIBGTOP_STABLE_1_0.
|
|
||||||
|
|
||||||
1999-05-08 Drazen Kacar <dave@srce.hr>
|
|
||||||
|
|
||||||
* mountlist.c: Changed pfintf formats to "%lld" when printing
|
|
||||||
u_int64_t. This is still utterly unportable, but will
|
|
||||||
hopefully work on all supported architectures. For now.
|
|
||||||
|
|
||||||
1999-05-07 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* timings.c (timersub): Renamed this to `libgtop_timersub' and define
|
|
||||||
it on all systems.
|
|
||||||
|
|
||||||
Fri Apr 9 00:14:52 1999 Timur Bakeyev <timur@gnu.org>
|
|
||||||
|
|
||||||
* timings.c: Added timersub defenition, to make code compilable on
|
|
||||||
BSDI.
|
|
||||||
|
|
||||||
1999-03-24 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* timings.c: New example.
|
|
||||||
|
|
||||||
1999-03-17 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c, second.c: Fixed a bug that caused a core dump when
|
|
||||||
the sysdeps code does not return all data.
|
|
||||||
|
|
||||||
1998-11-22 Martin Baulig <baulig@taurus.uni-trier.de>
|
|
||||||
|
|
||||||
* netload.c: Call inet_ntoa () to get address and subnet
|
|
||||||
in quatted dot notation (like 136.199.14.201) and not just
|
|
||||||
as a number (like 0xc90ec788).
|
|
||||||
|
|
||||||
1998-11-02 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* sysdeps.c: New example.
|
|
||||||
|
|
||||||
1998-10-26 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* netload.c: New file. Gets network load for the interface
|
|
||||||
given as command line argument.
|
|
||||||
|
|
||||||
1998-10-26 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c (glibtop_get_proc_args): Get command line arguments.
|
|
||||||
* second.c: Likewise.
|
|
||||||
|
|
||||||
1998-10-25 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c (glibtop_get_ppp): Get PPP/ISDN statistics.
|
|
||||||
|
|
||||||
1998-09-28 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am: Install everything in $(libexecdir)/libgtop.
|
|
||||||
|
|
||||||
1998-09-09 Martin Baulig <baulig@Stud.Informatik.uni-trier.de>
|
|
||||||
|
|
||||||
* smp.c: New file. Nice tool to show CPU statistics on SMP systems.
|
|
||||||
|
|
||||||
1998-08-25 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c, second.c, procmap.c: Fixed some compiler warnings.
|
|
||||||
|
|
||||||
1998-08-18 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* procmap.c: We now display filenames when compiled
|
|
||||||
`--with-libgtop-inodedb'.
|
|
||||||
|
|
||||||
1998-08-12 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* second.c: Works a little bit more like `ps' - you can
|
|
||||||
give an optional command line argument to get information
|
|
||||||
about a single process.
|
|
||||||
|
|
||||||
1998-07-22 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* mountlist.c: New file.
|
|
||||||
|
|
||||||
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.
|
|
@@ -1,121 +0,0 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
|
||||||
|
|
||||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
INCLUDES = @INCLUDES@
|
|
||||||
|
|
||||||
DEFS = @DEFS@
|
|
||||||
|
|
||||||
# We install it in `libexec' since this will make it more easy
|
|
||||||
# to put the examples into an extra RPM package.
|
|
||||||
|
|
||||||
libgtopdir = $(libexecdir)/libgtop
|
|
||||||
|
|
||||||
libgtop_PROGRAMS = first second\
|
|
||||||
mountlist procmap netload sysdeps timings \
|
|
||||||
@static_targets@ @guile_examples@ @smp_examples@
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS = first_static second_static \
|
|
||||||
mountlist_static procmap_static \
|
|
||||||
third third_static smp smp_static \
|
|
||||||
netload_static sysdeps_static \
|
|
||||||
timings_static
|
|
||||||
|
|
||||||
first_SOURCES = first.c
|
|
||||||
first_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
first_static_SOURCES = $(first_SOURCES)
|
|
||||||
first_static_LDADD = $(first_LDADD)
|
|
||||||
first_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
second_SOURCES = second.c
|
|
||||||
second_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
second_static_SOURCES = $(second_SOURCES)
|
|
||||||
second_static_LDADD = $(second_LDADD)
|
|
||||||
second_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
procmap_SOURCES = procmap.c
|
|
||||||
procmap_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procmap_static_SOURCES = $(procmap_SOURCES)
|
|
||||||
procmap_static_LDADD = $(procmap_LDADD)
|
|
||||||
procmap_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
netload_SOURCES = netload.c
|
|
||||||
netload_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
netload_static_SOURCES = $(netload_SOURCES)
|
|
||||||
netload_static_LDADD = $(netload_LDADD)
|
|
||||||
netload_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
sysdeps_SOURCES = sysdeps.c
|
|
||||||
sysdeps_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
sysdeps_static_SOURCES = $(sysdeps_SOURCES)
|
|
||||||
sysdeps_static_LDADD = $(sysdeps_LDADD)
|
|
||||||
sysdeps_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
third_guile_names_LIBS = $(top_builddir)/sysdeps/guile/names/libgtop_guile_names.la
|
|
||||||
third_names_LIBS = $(top_builddir)/sysdeps/names/libgtop_names.la
|
|
||||||
|
|
||||||
third_SOURCES = third.c
|
|
||||||
third_LDADD = $(top_builddir)/sysdeps/guile/libgtop_guile.la \
|
|
||||||
$(third_guile_names_LIBS) $(third_names_LIBS) \
|
|
||||||
$(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@GUILE_LIBS@ @LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
third_static_SOURCES = $(third_SOURCES)
|
|
||||||
third_static_LDADD = $(third_LDADD)
|
|
||||||
third_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
mountlist_SOURCES = mountlist.c
|
|
||||||
mountlist_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
mountlist_static_SOURCES= $(mountlist_SOURCES)
|
|
||||||
mountlist_static_LDADD = $(mountlist_LDADD)
|
|
||||||
mountlist_static_LDFLAGS= -static
|
|
||||||
|
|
||||||
|
|
||||||
smp_SOURCES = smp.c
|
|
||||||
smp_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
smp_static_SOURCES = $(smp_SOURCES)
|
|
||||||
smp_static_LDADD = $(smp_LDADD)
|
|
||||||
smp_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
timings_SOURCES = timings.c
|
|
||||||
timings_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
timings_static_SOURCES = $(timings_SOURCES)
|
|
||||||
timings_static_LDADD = $(timings_LDADD)
|
|
||||||
timings_static_LDFLAGS = -static
|
|
||||||
|
|
813
examples/first.c
813
examples/first.c
@@ -1,813 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop 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 General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
#include <sys/resource.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_union data;
|
|
||||||
glibtop_sysdeps sysdeps;
|
|
||||||
unsigned c, method, count, port, i, *ptr;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
pid_t pid, ppid;
|
|
||||||
char *args;
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_cpu (&data.cpu);
|
|
||||||
|
|
||||||
printf ("CPU (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.cpu.flags,
|
|
||||||
(unsigned long) data.cpu.total,
|
|
||||||
(unsigned long) data.cpu.user,
|
|
||||||
(unsigned long) data.cpu.nice,
|
|
||||||
(unsigned long) data.cpu.sys,
|
|
||||||
(unsigned long) data.cpu.idle,
|
|
||||||
(unsigned long) data.cpu.frequency);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_mem (&data.mem);
|
|
||||||
|
|
||||||
printf ("Memory (0x%08lx): "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.mem.flags,
|
|
||||||
(unsigned long) data.mem.total,
|
|
||||||
(unsigned long) data.mem.used,
|
|
||||||
(unsigned long) data.mem.free,
|
|
||||||
(unsigned long) data.mem.shared,
|
|
||||||
(unsigned long) data.mem.buffer,
|
|
||||||
(unsigned long) data.mem.cached,
|
|
||||||
(unsigned long) data.mem.user,
|
|
||||||
(unsigned long) data.mem.locked);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_swap (&data.swap);
|
|
||||||
|
|
||||||
printf ("Swap (0x%08lx): %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.swap.flags,
|
|
||||||
(unsigned long) data.swap.total,
|
|
||||||
(unsigned long) data.swap.used,
|
|
||||||
(unsigned long) data.swap.free,
|
|
||||||
(unsigned long) data.swap.pagein,
|
|
||||||
(unsigned long) data.swap.pageout);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_uptime (&data.uptime);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Uptime (0x%08lx): %f, %f, %lu\n",
|
|
||||||
(unsigned long) data.uptime.flags,
|
|
||||||
data.uptime.uptime, data.uptime.idletime,
|
|
||||||
(unsigned long) data.uptime.boot_time);
|
|
||||||
#else
|
|
||||||
printf ("Uptime (0x%08lx): %f, %f\n",
|
|
||||||
(unsigned long) data.uptime.flags,
|
|
||||||
data.uptime.uptime, data.uptime.idletime);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_loadavg (&data.loadavg);
|
|
||||||
|
|
||||||
printf ("Loadavg (0x%08lx): %f, %f, %f - %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.loadavg.flags,
|
|
||||||
(double) data.loadavg.loadavg [0],
|
|
||||||
(double) data.loadavg.loadavg [1],
|
|
||||||
(double) data.loadavg.loadavg [2],
|
|
||||||
(unsigned long) data.loadavg.nr_running,
|
|
||||||
(unsigned long) data.loadavg.nr_tasks,
|
|
||||||
(unsigned long) data.loadavg.last_pid);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_shm_limits (&data.shm_limits);
|
|
||||||
|
|
||||||
printf ("Shm Limits (0x%08lx): %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.shm_limits.flags,
|
|
||||||
(unsigned long) data.shm_limits.shmmax,
|
|
||||||
(unsigned long) data.shm_limits.shmmin,
|
|
||||||
(unsigned long) data.shm_limits.shmmni,
|
|
||||||
(unsigned long) data.shm_limits.shmseg,
|
|
||||||
(unsigned long) data.shm_limits.shmall);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_msg_limits (&data.msg_limits);
|
|
||||||
|
|
||||||
printf ("Msg Limits (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.msg_limits.flags,
|
|
||||||
(unsigned long) data.msg_limits.msgpool,
|
|
||||||
(unsigned long) data.msg_limits.msgmap,
|
|
||||||
(unsigned long) data.msg_limits.msgmax,
|
|
||||||
(unsigned long) data.msg_limits.msgmnb,
|
|
||||||
(unsigned long) data.msg_limits.msgmni,
|
|
||||||
(unsigned long) data.msg_limits.msgssz,
|
|
||||||
(unsigned long) data.msg_limits.msgtql);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_sem_limits (&data.sem_limits);
|
|
||||||
|
|
||||||
printf ("Sem Limits (0x%08lx): "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.sem_limits.flags,
|
|
||||||
(unsigned long) data.sem_limits.semmap,
|
|
||||||
(unsigned long) data.sem_limits.semmni,
|
|
||||||
(unsigned long) data.sem_limits.semmns,
|
|
||||||
(unsigned long) data.sem_limits.semmnu,
|
|
||||||
(unsigned long) data.sem_limits.semmsl,
|
|
||||||
(unsigned long) data.sem_limits.semopm,
|
|
||||||
(unsigned long) data.sem_limits.semume,
|
|
||||||
(unsigned long) data.sem_limits.semusz,
|
|
||||||
(unsigned long) data.sem_limits.semvmx,
|
|
||||||
(unsigned long) data.sem_limits.semaem);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_ppp (&data.ppp, 0);
|
|
||||||
|
|
||||||
printf ("PPP (0x%08lx): %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.ppp.flags,
|
|
||||||
(unsigned long) data.ppp.state,
|
|
||||||
(unsigned long) data.ppp.bytes_in,
|
|
||||||
(unsigned long) data.ppp.bytes_out);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
glibtop_get_sysdeps (&sysdeps);
|
|
||||||
|
|
||||||
printf ("Sysdeps (0x%08lx): %lu, %lu, %lu, %lu, %lu, "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) sysdeps.flags,
|
|
||||||
(unsigned long) sysdeps.cpu,
|
|
||||||
(unsigned long) sysdeps.mem,
|
|
||||||
(unsigned long) sysdeps.swap,
|
|
||||||
(unsigned long) sysdeps.uptime,
|
|
||||||
(unsigned long) sysdeps.loadavg,
|
|
||||||
(unsigned long) sysdeps.shm_limits,
|
|
||||||
(unsigned long) sysdeps.msg_limits,
|
|
||||||
(unsigned long) sysdeps.sem_limits,
|
|
||||||
(unsigned long) sysdeps.proclist,
|
|
||||||
(unsigned long) sysdeps.proc_state,
|
|
||||||
(unsigned long) sysdeps.proc_uid,
|
|
||||||
(unsigned long) sysdeps.proc_mem,
|
|
||||||
(unsigned long) sysdeps.proc_time,
|
|
||||||
(unsigned long) sysdeps.proc_signal,
|
|
||||||
(unsigned long) sysdeps.proc_kernel,
|
|
||||||
(unsigned long) sysdeps.proc_segment,
|
|
||||||
(unsigned long) sysdeps.proc_args,
|
|
||||||
(unsigned long) sysdeps.proc_map,
|
|
||||||
(unsigned long) sysdeps.mountlist,
|
|
||||||
(unsigned long) sysdeps.fsusage,
|
|
||||||
(unsigned long) sysdeps.netload,
|
|
||||||
(unsigned long) sysdeps.ppp);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
ptr = glibtop_get_proclist (&data.proclist, 0, 0);
|
|
||||||
|
|
||||||
printf ("Proclist (0x%08lx): %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.proclist.flags,
|
|
||||||
(unsigned long) data.proclist.number,
|
|
||||||
(unsigned long) data.proclist.size,
|
|
||||||
(unsigned long) data.proclist.total);
|
|
||||||
|
|
||||||
if (ptr) {
|
|
||||||
printf ("\nProcess: ");
|
|
||||||
for (i = 0; i < data.proclist.number; i++)
|
|
||||||
printf ("%s%u", i ? ", " : "", ptr [i]);
|
|
||||||
printf ("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_free (ptr);
|
|
||||||
|
|
||||||
pid = getpid ();
|
|
||||||
ppid = getppid ();
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_state (&data.proc_state, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_State PID %5d (0x%08lx): '%s', %u - "
|
|
||||||
"%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
data.proc_state.uid, data.proc_state.gid,
|
|
||||||
data.proc_state.ruid, data.proc_state.rgid,
|
|
||||||
data.proc_state.has_cpu, data.proc_state.processor,
|
|
||||||
data.proc_state.last_processor);
|
|
||||||
#else
|
|
||||||
printf ("Proc_State PID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
|
|
||||||
(int) pid, (unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
(unsigned long) data.proc_state.uid,
|
|
||||||
(unsigned long) data.proc_state.gid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
|
|
||||||
(int) pid, (unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.suid, data.proc_uid.sgid,
|
|
||||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice,
|
|
||||||
data.proc_uid.ngroups);
|
|
||||||
|
|
||||||
if (data.proc_uid.ngroups) {
|
|
||||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
|
||||||
if (i)
|
|
||||||
printf (" %d", data.proc_uid.groups [i]);
|
|
||||||
else
|
|
||||||
printf (" (%d", data.proc_uid.groups [i]);
|
|
||||||
}
|
|
||||||
printf (")");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#else
|
|
||||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Mem PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_mem.flags,
|
|
||||||
(unsigned long) data.proc_mem.size,
|
|
||||||
(unsigned long) data.proc_mem.vsize,
|
|
||||||
(unsigned long) data.proc_mem.resident,
|
|
||||||
(unsigned long) data.proc_mem.share,
|
|
||||||
(unsigned long) data.proc_mem.rss,
|
|
||||||
(unsigned long) data.proc_mem.rss_rlim);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_data,
|
|
||||||
(unsigned long) data.proc_segment.end_data,
|
|
||||||
(unsigned long) data.proc_segment.start_brk,
|
|
||||||
(unsigned long) data.proc_segment.end_brk,
|
|
||||||
(unsigned long) data.proc_segment.start_stack,
|
|
||||||
(unsigned long) data.proc_segment.start_mmap,
|
|
||||||
(unsigned long) data.proc_segment.arg_start,
|
|
||||||
(unsigned long) data.proc_segment.arg_end,
|
|
||||||
(unsigned long) data.proc_segment.env_start,
|
|
||||||
(unsigned long) data.proc_segment.env_end);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_stack);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_time (&data.proc_time, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Time PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_time.flags,
|
|
||||||
(unsigned long) data.proc_time.start_time,
|
|
||||||
(unsigned long) data.proc_time.rtime,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime,
|
|
||||||
(unsigned long) data.proc_time.cutime,
|
|
||||||
(unsigned long) data.proc_time.cstime,
|
|
||||||
(unsigned long) data.proc_time.timeout,
|
|
||||||
(unsigned long) data.proc_time.it_real_value,
|
|
||||||
(unsigned long) data.proc_time.frequency);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
|
||||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal [0],
|
|
||||||
(unsigned long) data.proc_signal.signal [1],
|
|
||||||
(unsigned long) data.proc_signal.blocked [0],
|
|
||||||
(unsigned long) data.proc_signal.blocked [1],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [0],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [1],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [0],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal,
|
|
||||||
(unsigned long) data.proc_signal.blocked,
|
|
||||||
(unsigned long) data.proc_signal.sigignore,
|
|
||||||
(unsigned long) data.proc_signal.sigcatch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_kernel.flags,
|
|
||||||
(unsigned long) data.proc_kernel.k_flags,
|
|
||||||
(unsigned long) data.proc_kernel.min_flt,
|
|
||||||
(unsigned long) data.proc_kernel.maj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmin_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmaj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_esp,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_eip,
|
|
||||||
(unsigned long) data.proc_kernel.nwchan,
|
|
||||||
data.proc_kernel.wchan);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
args = glibtop_get_proc_args (&data.proc_args, pid, 0);
|
|
||||||
|
|
||||||
for (i = 0; i < data.proc_args.size; i++) {
|
|
||||||
if (args [i]) continue;
|
|
||||||
args [i] = '|';
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_args.flags,
|
|
||||||
(unsigned long) data.proc_args.size,
|
|
||||||
args ? args : "");
|
|
||||||
|
|
||||||
glibtop_free (args);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_state (&data.proc_state, ppid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_State PPID %5d (0x%08lx): '%s', %u - "
|
|
||||||
"%u, %u, %u, %u - %u, %u, %u\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
data.proc_state.uid, data.proc_state.gid,
|
|
||||||
data.proc_state.ruid, data.proc_state.rgid,
|
|
||||||
data.proc_state.has_cpu, data.proc_state.processor,
|
|
||||||
data.proc_state.last_processor);
|
|
||||||
#else
|
|
||||||
printf ("Proc_State PPID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
|
|
||||||
(int) ppid, (unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
(unsigned long) data.proc_state.uid,
|
|
||||||
(unsigned long) data.proc_state.gid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, ppid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Uid PPID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
|
|
||||||
(int) ppid, (unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.suid, data.proc_uid.sgid,
|
|
||||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice,
|
|
||||||
data.proc_uid.ngroups);
|
|
||||||
|
|
||||||
if (data.proc_uid.ngroups) {
|
|
||||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
|
||||||
if (i)
|
|
||||||
printf (" %d", data.proc_uid.groups [i]);
|
|
||||||
else
|
|
||||||
printf (" (%d", data.proc_uid.groups [i]);
|
|
||||||
}
|
|
||||||
printf (")");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#else
|
|
||||||
printf ("Proc_Uid PPID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, ppid);
|
|
||||||
|
|
||||||
printf ("Proc_Mem PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_mem.flags,
|
|
||||||
(unsigned long) data.proc_mem.size,
|
|
||||||
(unsigned long) data.proc_mem.vsize,
|
|
||||||
(unsigned long) data.proc_mem.resident,
|
|
||||||
(unsigned long) data.proc_mem.share,
|
|
||||||
(unsigned long) data.proc_mem.rss,
|
|
||||||
(unsigned long) data.proc_mem.rss_rlim);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, ppid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Segment PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_data,
|
|
||||||
(unsigned long) data.proc_segment.end_data,
|
|
||||||
(unsigned long) data.proc_segment.start_brk,
|
|
||||||
(unsigned long) data.proc_segment.end_brk,
|
|
||||||
(unsigned long) data.proc_segment.start_stack,
|
|
||||||
(unsigned long) data.proc_segment.start_mmap,
|
|
||||||
(unsigned long) data.proc_segment.arg_start,
|
|
||||||
(unsigned long) data.proc_segment.arg_end,
|
|
||||||
(unsigned long) data.proc_segment.env_start,
|
|
||||||
(unsigned long) data.proc_segment.env_end);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Segment PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_stack);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_time (&data.proc_time, ppid);
|
|
||||||
|
|
||||||
printf ("Proc_Time PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_time.flags,
|
|
||||||
(unsigned long) data.proc_time.start_time,
|
|
||||||
(unsigned long) data.proc_time.rtime,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime,
|
|
||||||
(unsigned long) data.proc_time.cutime,
|
|
||||||
(unsigned long) data.proc_time.cstime,
|
|
||||||
(unsigned long) data.proc_time.timeout,
|
|
||||||
(unsigned long) data.proc_time.it_real_value,
|
|
||||||
(unsigned long) data.proc_time.frequency);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, ppid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Signal PPID %5d (0x%08lx): "
|
|
||||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n",
|
|
||||||
(int) ppid, (unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal [0],
|
|
||||||
(unsigned long) data.proc_signal.signal [1],
|
|
||||||
(unsigned long) data.proc_signal.blocked [0],
|
|
||||||
(unsigned long) data.proc_signal.blocked [1],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [0],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [1],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [0],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Signal PPID %5d (0x%08lx): %lu %lu %lu %lu\n",
|
|
||||||
(int) ppid, (unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal,
|
|
||||||
(unsigned long) data.proc_signal.blocked,
|
|
||||||
(unsigned long) data.proc_signal.sigignore,
|
|
||||||
(unsigned long) data.proc_signal.sigcatch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, ppid);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_kernel.flags,
|
|
||||||
(unsigned long) data.proc_kernel.k_flags,
|
|
||||||
(unsigned long) data.proc_kernel.min_flt,
|
|
||||||
(unsigned long) data.proc_kernel.maj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmin_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmaj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_esp,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_eip,
|
|
||||||
(unsigned long) data.proc_kernel.nwchan,
|
|
||||||
data.proc_kernel.wchan);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
args = glibtop_get_proc_args (&data.proc_args, ppid, 0);
|
|
||||||
|
|
||||||
for (i = 0; i < data.proc_args.size; i++) {
|
|
||||||
if (args [i]) continue;
|
|
||||||
args [i] = '|';
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_args.flags,
|
|
||||||
(unsigned long) data.proc_args.size,
|
|
||||||
args ? args : "");
|
|
||||||
|
|
||||||
glibtop_free (args);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_state (&data.proc_state, 1);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_State INIT %5d (0x%08lx): '%s', %u - "
|
|
||||||
"%u, %u, %u, %u - %u, %u, %u\n", 1,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
data.proc_state.uid, data.proc_state.gid,
|
|
||||||
data.proc_state.ruid, data.proc_state.rgid,
|
|
||||||
data.proc_state.has_cpu, data.proc_state.processor,
|
|
||||||
data.proc_state.last_processor);
|
|
||||||
#else
|
|
||||||
printf ("Proc_State INIT %5d (0x%08lx): '%s', %c, %lu, %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
(unsigned long) data.proc_state.uid,
|
|
||||||
(unsigned long) data.proc_state.gid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, 1);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Uid INIT %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d", 1,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.suid, data.proc_uid.sgid,
|
|
||||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice,
|
|
||||||
data.proc_uid.ngroups);
|
|
||||||
|
|
||||||
if (data.proc_uid.ngroups) {
|
|
||||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
|
||||||
if (i)
|
|
||||||
printf (" %d", data.proc_uid.groups [i]);
|
|
||||||
else
|
|
||||||
printf (" (%d", data.proc_uid.groups [i]);
|
|
||||||
}
|
|
||||||
printf (")");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#else
|
|
||||||
printf ("Proc_Uid INIT %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", 1,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, 1);
|
|
||||||
|
|
||||||
printf ("Proc_Mem INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_mem.flags,
|
|
||||||
(unsigned long) data.proc_mem.size,
|
|
||||||
(unsigned long) data.proc_mem.vsize,
|
|
||||||
(unsigned long) data.proc_mem.resident,
|
|
||||||
(unsigned long) data.proc_mem.share,
|
|
||||||
(unsigned long) data.proc_mem.rss,
|
|
||||||
(unsigned long) data.proc_mem.rss_rlim);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, 1);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Segment INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", 1,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_data,
|
|
||||||
(unsigned long) data.proc_segment.end_data,
|
|
||||||
(unsigned long) data.proc_segment.start_brk,
|
|
||||||
(unsigned long) data.proc_segment.end_brk,
|
|
||||||
(unsigned long) data.proc_segment.start_stack,
|
|
||||||
(unsigned long) data.proc_segment.start_mmap,
|
|
||||||
(unsigned long) data.proc_segment.arg_start,
|
|
||||||
(unsigned long) data.proc_segment.arg_end,
|
|
||||||
(unsigned long) data.proc_segment.env_start,
|
|
||||||
(unsigned long) data.proc_segment.env_end);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Segment INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_stack);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_time (&data.proc_time, 1);
|
|
||||||
|
|
||||||
printf ("Proc_Time INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_time.flags,
|
|
||||||
(unsigned long) data.proc_time.start_time,
|
|
||||||
(unsigned long) data.proc_time.rtime,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime,
|
|
||||||
(unsigned long) data.proc_time.cutime,
|
|
||||||
(unsigned long) data.proc_time.cstime,
|
|
||||||
(unsigned long) data.proc_time.timeout,
|
|
||||||
(unsigned long) data.proc_time.it_real_value,
|
|
||||||
(unsigned long) data.proc_time.frequency);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, 1);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Signal INIT %5d (0x%08lx): "
|
|
||||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n", 1,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal [0],
|
|
||||||
(unsigned long) data.proc_signal.signal [1],
|
|
||||||
(unsigned long) data.proc_signal.blocked [0],
|
|
||||||
(unsigned long) data.proc_signal.blocked [1],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [0],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [1],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [0],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Signal INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal,
|
|
||||||
(unsigned long) data.proc_signal.blocked,
|
|
||||||
(unsigned long) data.proc_signal.sigignore,
|
|
||||||
(unsigned long) data.proc_signal.sigcatch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, 1);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", 1,
|
|
||||||
(unsigned long) data.proc_kernel.flags,
|
|
||||||
(unsigned long) data.proc_kernel.k_flags,
|
|
||||||
(unsigned long) data.proc_kernel.min_flt,
|
|
||||||
(unsigned long) data.proc_kernel.maj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmin_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmaj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_esp,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_eip,
|
|
||||||
(unsigned long) data.proc_kernel.nwchan,
|
|
||||||
data.proc_kernel.wchan);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
args = glibtop_get_proc_args (&data.proc_args, 1, 0);
|
|
||||||
|
|
||||||
for (i = 0; i < data.proc_args.size; i++) {
|
|
||||||
if (args [i]) continue;
|
|
||||||
args [i] = '|';
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", 1,
|
|
||||||
(unsigned long) data.proc_args.flags,
|
|
||||||
(unsigned long) data.proc_args.size,
|
|
||||||
args ? args : "");
|
|
||||||
|
|
||||||
glibtop_free (args);
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
@@ -1,113 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop 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 General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/mountlist.h>
|
|
||||||
#include <glibtop/fsusage.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_fsusage fsusage;
|
|
||||||
glibtop_mountlist mount_list;
|
|
||||||
glibtop_mountentry *mount_entries;
|
|
||||||
unsigned c, index, method, count, port;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
printf ("sbrk (0) = %p\n\n", sbrk (0));
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++) {
|
|
||||||
mount_entries = glibtop_get_mountlist (&mount_list, 1);
|
|
||||||
|
|
||||||
glibtop_free (mount_entries);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("sbrk (0) = %p\n\n", sbrk (0));
|
|
||||||
|
|
||||||
mount_entries = glibtop_get_mountlist (&mount_list, 1);
|
|
||||||
|
|
||||||
if (mount_entries == NULL)
|
|
||||||
_exit (1);
|
|
||||||
|
|
||||||
for (index = 0; index < mount_list.number; index++)
|
|
||||||
printf ("Mount_Entry: %-30s %-10s %-20s\n",
|
|
||||||
mount_entries [index].mountdir,
|
|
||||||
mount_entries [index].type,
|
|
||||||
mount_entries [index].devname);
|
|
||||||
|
|
||||||
printf ("\n\n%-23s %9s %9s %9s %9s %9s\n\n",
|
|
||||||
"", "Blocks", "Free", "Avail", "Files", "Free");
|
|
||||||
|
|
||||||
for (index = 0; index < mount_list.number; index++) {
|
|
||||||
glibtop_get_fsusage (&fsusage,
|
|
||||||
mount_entries [index].mountdir);
|
|
||||||
|
|
||||||
printf ("Usage: %-16s %9llu %9llu %9llu %9llu %9llu\n",
|
|
||||||
mount_entries [index].mountdir,
|
|
||||||
fsusage.blocks, fsusage.bfree,
|
|
||||||
fsusage.bavail, fsusage.files,
|
|
||||||
fsusage.ffree);
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_free (mount_entries);
|
|
||||||
|
|
||||||
printf ("\nsbrk (0) = %p\n\n", sbrk (0));
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
@@ -1,125 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop 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 General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/netload.h>
|
|
||||||
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_netload netload;
|
|
||||||
unsigned method, count, port;
|
|
||||||
struct in_addr addr, subnet;
|
|
||||||
char *address_string, *subnet_string;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
if (argc != 2)
|
|
||||||
glibtop_error ("Usage: %s interface", argv [0]);
|
|
||||||
|
|
||||||
glibtop_get_netload (&netload, argv [1]);
|
|
||||||
|
|
||||||
addr.s_addr = netload.address;
|
|
||||||
subnet.s_addr = netload.subnet;
|
|
||||||
|
|
||||||
address_string = glibtop_strdup (inet_ntoa (addr));
|
|
||||||
subnet_string = glibtop_strdup (inet_ntoa (subnet));
|
|
||||||
|
|
||||||
printf ("Network Load (0x%08lx):\n\n"
|
|
||||||
"\tInterface Flags:\t0x%08lx\n"
|
|
||||||
"\tAddress:\t\t0x%08lx - %s\n"
|
|
||||||
"\tSubnet:\t\t\t0x%08lx - %s\n\n"
|
|
||||||
"\tMTU:\t\t\t%ld\n"
|
|
||||||
"\tCollisions:\t\t%ld\n\n"
|
|
||||||
"\tPackets In:\t\t%ld\n"
|
|
||||||
"\tPackets Out:\t\t%ld\n"
|
|
||||||
"\tPackets Total:\t\t%ld\n\n"
|
|
||||||
"\tBytes In:\t\t%ld\n"
|
|
||||||
"\tBytes Out:\t\t%ld\n"
|
|
||||||
"\tBytes Total:\t\t%ld\n\n"
|
|
||||||
"\tErrors In:\t\t%ld\n"
|
|
||||||
"\tErrors Out:\t\t%ld\n"
|
|
||||||
"\tErrors Total:\t\t%ld\n\n",
|
|
||||||
(unsigned long) netload.flags,
|
|
||||||
(unsigned long) netload.if_flags,
|
|
||||||
(unsigned long) netload.address, address_string,
|
|
||||||
(unsigned long) netload.subnet, subnet_string,
|
|
||||||
(unsigned long) netload.mtu,
|
|
||||||
(unsigned long) netload.collisions,
|
|
||||||
(unsigned long) netload.packets_in,
|
|
||||||
(unsigned long) netload.packets_out,
|
|
||||||
(unsigned long) netload.packets_total,
|
|
||||||
(unsigned long) netload.bytes_in,
|
|
||||||
(unsigned long) netload.bytes_out,
|
|
||||||
(unsigned long) netload.bytes_total,
|
|
||||||
(unsigned long) netload.errors_in,
|
|
||||||
(unsigned long) netload.errors_out,
|
|
||||||
(unsigned long) netload.errors_total);
|
|
||||||
|
|
||||||
glibtop_free (address_string);
|
|
||||||
glibtop_free (subnet_string);
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
@@ -1,164 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop 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 General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/procmap.h>
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_INODEDB
|
|
||||||
#include <glibtop/inodedb.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/resource.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
#ifdef GLIBTOP_INODEDB
|
|
||||||
glibtop_inodedb *inodedb;
|
|
||||||
#endif
|
|
||||||
glibtop_proc_map procmap;
|
|
||||||
glibtop_map_entry *maps;
|
|
||||||
unsigned method, count, port, i;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
pid_t pid;
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
|
|
||||||
glibtop_error ("Usage: %s pid", argv [0]);
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_INODEDB
|
|
||||||
inodedb = glibtop_inodedb_open (0, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid);
|
|
||||||
|
|
||||||
maps = glibtop_get_proc_map (&procmap, pid);
|
|
||||||
|
|
||||||
for (i = 0; i < procmap.number; i++) {
|
|
||||||
const char *filename = NULL;
|
|
||||||
unsigned device, device_major, device_minor;
|
|
||||||
char perm [5];
|
|
||||||
|
|
||||||
if (maps [i].flags & (1L << GLIBTOP_MAP_ENTRY_FILENAME))
|
|
||||||
filename = maps [i].filename;
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_INODEDB
|
|
||||||
if (inodedb && !filename)
|
|
||||||
filename = glibtop_inodedb_lookup
|
|
||||||
(inodedb, maps [i].device, maps [i].inode);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
perm [0] = (maps [i].perm & GLIBTOP_MAP_PERM_READ) ? 'r' : '-';
|
|
||||||
perm [1] = (maps [i].perm & GLIBTOP_MAP_PERM_WRITE) ? 'w' : '-';
|
|
||||||
perm [2] = (maps [i].perm & GLIBTOP_MAP_PERM_EXECUTE) ? 'x' : '-';
|
|
||||||
perm [3] = (maps [i].perm & GLIBTOP_MAP_PERM_SHARED) ? 's' : '-';
|
|
||||||
perm [4] = (maps [i].perm & GLIBTOP_MAP_PERM_PRIVATE) ? 'p' : '-';
|
|
||||||
|
|
||||||
device = (unsigned long) maps [i].device;
|
|
||||||
device_minor = (device & 255);
|
|
||||||
device_major = ((device >> 8) & 255);
|
|
||||||
|
|
||||||
if (filename) {
|
|
||||||
char *format;
|
|
||||||
|
|
||||||
if (sizeof (void*) == 8)
|
|
||||||
format = "%016lx-%016lx %016lx - "
|
|
||||||
"%02x:%02x %08lu - %4s - %s\n";
|
|
||||||
else
|
|
||||||
format = "%08lx-%08lx %08lx - "
|
|
||||||
"%02x:%02x %08lu - %4s - %s\n";
|
|
||||||
|
|
||||||
fprintf (stderr, format,
|
|
||||||
(unsigned long) maps [i].start,
|
|
||||||
(unsigned long) maps [i].end,
|
|
||||||
(unsigned long) maps [i].offset,
|
|
||||||
device_major, device_minor,
|
|
||||||
(unsigned long) maps [i].inode,
|
|
||||||
perm, filename);
|
|
||||||
} else {
|
|
||||||
char * format;
|
|
||||||
|
|
||||||
if (sizeof (void*) == 8)
|
|
||||||
format = "%016lx-%016lx %016lx - "
|
|
||||||
"%02x:%02x %08lu - %4s\n";
|
|
||||||
else
|
|
||||||
format = "%08lx-%08lx %08lx - "
|
|
||||||
"%02x:%02x %08lu - %4s\n";
|
|
||||||
|
|
||||||
fprintf (stderr, format,
|
|
||||||
(unsigned long) maps [i].start,
|
|
||||||
(unsigned long) maps [i].end,
|
|
||||||
(unsigned long) maps [i].offset,
|
|
||||||
device_major, device_minor,
|
|
||||||
(unsigned long) maps [i].inode,
|
|
||||||
perm);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (filename && (filename != maps [i].filename))
|
|
||||||
glibtop_free (filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_free (maps);
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
@@ -1,376 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop 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 General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
static void
|
|
||||||
output (pid_t pid)
|
|
||||||
{
|
|
||||||
glibtop_union data;
|
|
||||||
char *args;
|
|
||||||
unsigned i;
|
|
||||||
|
|
||||||
#if HAVE_LIBGTOP_SMP
|
|
||||||
unsigned long total;
|
|
||||||
double p_total, p_utime, p_stime;
|
|
||||||
double b_total, b_utime, b_stime;
|
|
||||||
double s_total, s_utime, s_stime;
|
|
||||||
double my_utime, my_stime;
|
|
||||||
int ncpu;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
glibtop_get_proc_state (&data.proc_state, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_State PID %5d (0x%08lx): '%s', %u - "
|
|
||||||
"%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
data.proc_state.uid, data.proc_state.gid,
|
|
||||||
data.proc_state.ruid, data.proc_state.rgid,
|
|
||||||
data.proc_state.has_cpu, data.proc_state.processor,
|
|
||||||
data.proc_state.last_processor);
|
|
||||||
#else
|
|
||||||
printf ("Proc_State PID %5d (0x%08lx): "
|
|
||||||
"'%s', %c, %lu, %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
(unsigned long) data.proc_state.uid,
|
|
||||||
(unsigned long) data.proc_state.gid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
|
|
||||||
(int) pid, (unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.suid, data.proc_uid.sgid,
|
|
||||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice,
|
|
||||||
data.proc_uid.ngroups);
|
|
||||||
|
|
||||||
if (data.proc_uid.ngroups) {
|
|
||||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
|
||||||
if (i)
|
|
||||||
printf (" %d", data.proc_uid.groups [i]);
|
|
||||||
else
|
|
||||||
printf (" (%d", data.proc_uid.groups [i]);
|
|
||||||
}
|
|
||||||
printf (")");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#else
|
|
||||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Mem PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_mem.flags,
|
|
||||||
(unsigned long) data.proc_mem.size,
|
|
||||||
(unsigned long) data.proc_mem.vsize,
|
|
||||||
(unsigned long) data.proc_mem.resident,
|
|
||||||
(unsigned long) data.proc_mem.share,
|
|
||||||
(unsigned long) data.proc_mem.rss,
|
|
||||||
(unsigned long) data.proc_mem.rss_rlim);
|
|
||||||
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_data,
|
|
||||||
(unsigned long) data.proc_segment.end_data,
|
|
||||||
(unsigned long) data.proc_segment.start_brk,
|
|
||||||
(unsigned long) data.proc_segment.end_brk,
|
|
||||||
(unsigned long) data.proc_segment.start_stack,
|
|
||||||
(unsigned long) data.proc_segment.start_mmap,
|
|
||||||
(unsigned long) data.proc_segment.arg_start,
|
|
||||||
(unsigned long) data.proc_segment.arg_end,
|
|
||||||
(unsigned long) data.proc_segment.env_start,
|
|
||||||
(unsigned long) data.proc_segment.env_end);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_stack);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_get_proc_time (&data.proc_time, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Time PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_time.flags,
|
|
||||||
(unsigned long) data.proc_time.start_time,
|
|
||||||
(unsigned long) data.proc_time.rtime,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime,
|
|
||||||
(unsigned long) data.proc_time.cutime,
|
|
||||||
(unsigned long) data.proc_time.cstime,
|
|
||||||
(unsigned long) data.proc_time.timeout,
|
|
||||||
(unsigned long) data.proc_time.it_real_value,
|
|
||||||
(unsigned long) data.proc_time.frequency);
|
|
||||||
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
|
||||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal [0],
|
|
||||||
(unsigned long) data.proc_signal.signal [1],
|
|
||||||
(unsigned long) data.proc_signal.blocked [0],
|
|
||||||
(unsigned long) data.proc_signal.blocked [1],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [0],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [1],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [0],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal,
|
|
||||||
(unsigned long) data.proc_signal.blocked,
|
|
||||||
(unsigned long) data.proc_signal.sigignore,
|
|
||||||
(unsigned long) data.proc_signal.sigcatch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_kernel.flags,
|
|
||||||
(unsigned long) data.proc_kernel.k_flags,
|
|
||||||
(unsigned long) data.proc_kernel.min_flt,
|
|
||||||
(unsigned long) data.proc_kernel.maj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmin_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmaj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_esp,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_eip,
|
|
||||||
(unsigned long) data.proc_kernel.nwchan,
|
|
||||||
data.proc_kernel.wchan);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
args = glibtop_get_proc_args (&data.proc_args, pid, 0);
|
|
||||||
|
|
||||||
for (i = 0; i < data.proc_args.size; i++) {
|
|
||||||
if (args [i]) continue;
|
|
||||||
args [i] = '|';
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_args.flags,
|
|
||||||
(unsigned long) data.proc_args.size,
|
|
||||||
args ? args : "");
|
|
||||||
|
|
||||||
glibtop_free (args);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
#if HAVE_LIBGTOP_SMP
|
|
||||||
ncpu = glibtop_global_server->ncpu;
|
|
||||||
|
|
||||||
glibtop_get_proc_time (&data.proc_time, pid);
|
|
||||||
|
|
||||||
total = (unsigned long) data.proc_time.utime +
|
|
||||||
(unsigned long) data.proc_time.stime;
|
|
||||||
|
|
||||||
p_total = total ? (double) total : 1.0;
|
|
||||||
|
|
||||||
p_utime = (double) data.proc_time.utime * 100.0 / p_total;
|
|
||||||
p_stime = (double) data.proc_time.stime * 100.0 / p_total;
|
|
||||||
|
|
||||||
b_total = p_total / ncpu;
|
|
||||||
b_utime = (double) data.proc_time.utime / ncpu;
|
|
||||||
b_stime = (double) data.proc_time.stime / ncpu;
|
|
||||||
|
|
||||||
s_total = 0.0; s_utime = 0.0; s_stime = 0.0;
|
|
||||||
|
|
||||||
printf ("Proc_Time PID %5d (0x%08lx): %12lu %12lu %12lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_time.flags, total,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime);
|
|
||||||
|
|
||||||
for (i = 0; i < ncpu; i++) {
|
|
||||||
unsigned long this_total;
|
|
||||||
|
|
||||||
this_total = (unsigned long) data.proc_time.xcpu_utime [i] +
|
|
||||||
(unsigned long) data.proc_time.xcpu_stime [i];
|
|
||||||
|
|
||||||
printf ("CPU %3d PID %5d (0x%08lx): %12lu %12lu %12lu\n", i,
|
|
||||||
(int) pid, (unsigned long) data.proc_time.flags, this_total,
|
|
||||||
(unsigned long) data.proc_time.xcpu_utime [i],
|
|
||||||
(unsigned long) data.proc_time.xcpu_stime [i]);
|
|
||||||
|
|
||||||
s_total += fabs (((double) this_total) - b_total);
|
|
||||||
s_utime += fabs (((double) data.proc_time.xcpu_utime [i]) - b_utime);
|
|
||||||
s_stime += fabs (((double) data.proc_time.xcpu_stime [i]) - b_stime);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
printf ("Proc_Time PID %5d (0x%08lx): %12.3f %12.3f %12.3f\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_time.flags, 100.0, p_utime, p_stime);
|
|
||||||
|
|
||||||
for (i = 0; i < ncpu; i++) {
|
|
||||||
double this_p_total, this_p_utime, this_p_stime;
|
|
||||||
unsigned long this_total;
|
|
||||||
|
|
||||||
this_total = (unsigned long) data.proc_time.xcpu_utime [i] +
|
|
||||||
(unsigned long) data.proc_time.xcpu_stime [i];
|
|
||||||
|
|
||||||
this_p_total = (double) this_total * 100.0 / p_total;
|
|
||||||
|
|
||||||
this_p_utime = (double) data.proc_time.xcpu_utime [i] * 100.0 / p_total;
|
|
||||||
this_p_stime = (double) data.proc_time.xcpu_stime [i] * 100.0 / p_total;
|
|
||||||
|
|
||||||
printf ("CPU %3d PID %5d (0x%08lx): %12.3f %12.3f %12.3f\n", i,
|
|
||||||
(int) pid, (unsigned long) data.proc_time.flags,
|
|
||||||
this_p_total, this_p_utime, this_p_stime);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
my_utime = (unsigned long) data.proc_time.utime ?
|
|
||||||
(double) data.proc_time.utime : 1.0;
|
|
||||||
my_stime = (unsigned long) data.proc_time.stime ?
|
|
||||||
(double) data.proc_time.stime : 1.0;
|
|
||||||
|
|
||||||
printf ("SPIN: %31s %12.3f %12.3f %12.3f\n", "", s_total * 100.0 / p_total,
|
|
||||||
s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_proclist proclist;
|
|
||||||
glibtop_sysdeps sysdeps;
|
|
||||||
unsigned *ptr, pid, i;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init ();
|
|
||||||
|
|
||||||
glibtop_get_sysdeps (&sysdeps);
|
|
||||||
|
|
||||||
printf ("Sysdeps (0x%08lx): %lu, %lu, %lu, %lu, %lu, "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) sysdeps.flags,
|
|
||||||
(unsigned long) sysdeps.cpu,
|
|
||||||
(unsigned long) sysdeps.mem,
|
|
||||||
(unsigned long) sysdeps.swap,
|
|
||||||
(unsigned long) sysdeps.uptime,
|
|
||||||
(unsigned long) sysdeps.loadavg,
|
|
||||||
(unsigned long) sysdeps.shm_limits,
|
|
||||||
(unsigned long) sysdeps.msg_limits,
|
|
||||||
(unsigned long) sysdeps.sem_limits,
|
|
||||||
(unsigned long) sysdeps.proclist,
|
|
||||||
(unsigned long) sysdeps.proc_state,
|
|
||||||
(unsigned long) sysdeps.proc_uid,
|
|
||||||
(unsigned long) sysdeps.proc_mem,
|
|
||||||
(unsigned long) sysdeps.proc_time,
|
|
||||||
(unsigned long) sysdeps.proc_signal,
|
|
||||||
(unsigned long) sysdeps.proc_kernel,
|
|
||||||
(unsigned long) sysdeps.proc_segment);
|
|
||||||
|
|
||||||
if ((argc == 2) && (sscanf (argv [1], "%d", &pid) == 1)) {
|
|
||||||
output (pid);
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
ptr = glibtop_get_proclist (&proclist, 0, 0);
|
|
||||||
|
|
||||||
printf ("Proclist (0x%08lx): %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) proclist.flags,
|
|
||||||
(unsigned long) proclist.number,
|
|
||||||
(unsigned long) proclist.size,
|
|
||||||
(unsigned long) proclist.total);
|
|
||||||
|
|
||||||
if (!ptr) exit (1);
|
|
||||||
|
|
||||||
for (i = 0; i < proclist.number; i++) {
|
|
||||||
|
|
||||||
pid = ptr [i];
|
|
||||||
|
|
||||||
output (pid);
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_free (ptr);
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
124
examples/smp.c
124
examples/smp.c
@@ -1,124 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, September 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop 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 General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/cpu.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_cpu cpu;
|
|
||||||
unsigned long frequency;
|
|
||||||
double total, user, nice, sys, idle;
|
|
||||||
double b_total, b_user, b_nice, b_sys, b_idle;
|
|
||||||
double s_total, s_user, s_nice, s_sys, s_idle;
|
|
||||||
char separator [BUFSIZ], buffer [BUFSIZ];
|
|
||||||
int ncpu, i;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_get_cpu (&cpu);
|
|
||||||
|
|
||||||
ncpu = glibtop_global_server->ncpu ? glibtop_global_server->ncpu : 1;
|
|
||||||
|
|
||||||
frequency = (unsigned long) cpu.frequency;
|
|
||||||
|
|
||||||
total = ((unsigned long) cpu.total) ? ((double) cpu.total) : 1.0;
|
|
||||||
user = ((unsigned long) cpu.user) ? ((double) cpu.user) : 1.0;
|
|
||||||
nice = ((unsigned long) cpu.nice) ? ((double) cpu.nice) : 1.0;
|
|
||||||
sys = ((unsigned long) cpu.sys) ? ((double) cpu.sys) : 1.0;
|
|
||||||
idle = ((unsigned long) cpu.idle) ? ((double) cpu.idle) : 1.0;
|
|
||||||
|
|
||||||
s_total = s_user = s_nice = s_sys = s_idle = 0.0;
|
|
||||||
|
|
||||||
b_total = total / ncpu;
|
|
||||||
b_user = user / ncpu;
|
|
||||||
b_nice = nice / ncpu;
|
|
||||||
b_sys = sys / ncpu;
|
|
||||||
b_idle = idle / ncpu;
|
|
||||||
|
|
||||||
memset (separator, '-', 91);
|
|
||||||
separator [92] = '\0';
|
|
||||||
|
|
||||||
sprintf (buffer, _("Ticks (%ld per second):"), frequency);
|
|
||||||
|
|
||||||
printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer,
|
|
||||||
_("Total"), _("User"), _("Nice"), _("Sys"), _("Idle"), separator);
|
|
||||||
|
|
||||||
printf (_("CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n"),
|
|
||||||
(unsigned long) cpu.flags, total, user, nice, sys, idle);
|
|
||||||
|
|
||||||
for (i = 0; i < glibtop_global_server->ncpu; i++) {
|
|
||||||
printf (_("CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"), i,
|
|
||||||
(unsigned long) cpu.flags,
|
|
||||||
(unsigned long) cpu.xcpu_total [i],
|
|
||||||
(unsigned long) cpu.xcpu_user [i],
|
|
||||||
(unsigned long) cpu.xcpu_nice [i],
|
|
||||||
(unsigned long) cpu.xcpu_sys [i],
|
|
||||||
(unsigned long) cpu.xcpu_idle [i]);
|
|
||||||
|
|
||||||
s_total += fabs (((double) cpu.xcpu_total [i]) - b_total);
|
|
||||||
s_user += fabs (((double) cpu.xcpu_user [i]) - b_user);
|
|
||||||
s_nice += fabs (((double) cpu.xcpu_nice [i]) - b_nice);
|
|
||||||
s_sys += fabs (((double) cpu.xcpu_sys [i]) - b_sys);
|
|
||||||
s_idle += fabs (((double) cpu.xcpu_idle [i]) - b_idle);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("%s\n\n\n", separator);
|
|
||||||
|
|
||||||
printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", _("Percent:"),
|
|
||||||
_("Total (%)"), _("User (%)"), _("Nice (%)"), _("Sys (%)"),
|
|
||||||
_("Idle (%)"), separator);
|
|
||||||
|
|
||||||
printf (_("CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n"),
|
|
||||||
(unsigned long) cpu.flags, (double) total * 100.0 / total,
|
|
||||||
(double) user * 100.0 / total,
|
|
||||||
(double) nice * 100.0 / total,
|
|
||||||
(double) sys * 100.0 / total,
|
|
||||||
(double) idle * 100.0 / total);
|
|
||||||
|
|
||||||
for (i = 0; i < glibtop_global_server->ncpu; i++) {
|
|
||||||
double p_total, p_user, p_nice, p_sys, p_idle;
|
|
||||||
|
|
||||||
p_total = ((double) cpu.xcpu_total [i]) * 100.0 / total;
|
|
||||||
p_user = ((double) cpu.xcpu_user [i]) * 100.0 / user;
|
|
||||||
p_nice = ((double) cpu.xcpu_nice [i]) * 100.0 / nice;
|
|
||||||
p_sys = ((double) cpu.xcpu_sys [i]) * 100.0 / sys;
|
|
||||||
p_idle = ((double) cpu.xcpu_idle [i]) * 100.0 / idle;
|
|
||||||
|
|
||||||
printf (_("CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"),
|
|
||||||
i, (unsigned long) cpu.flags, p_total, p_user, p_nice,
|
|
||||||
p_sys, p_idle);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("%s\n%-26s %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", separator,
|
|
||||||
_("Spin:"), s_total * 100.0 / total, s_user * 100.0 / user,
|
|
||||||
s_nice * 100.0 / nice, s_sys * 100.0 / sys, s_idle * 100.0 / idle);
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
@@ -1,154 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop 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 General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_sysdeps sysdeps;
|
|
||||||
unsigned method, count, port;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
glibtop_get_sysdeps (&sysdeps);
|
|
||||||
|
|
||||||
#define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f##)) ? 1 : 0)
|
|
||||||
|
|
||||||
printf ("Sysdeps (0x%08lx):\n\n"
|
|
||||||
"\tfeatures:\t\t0x%08lx\n\n"
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
"\tpointer_size:\t\t0x%08lx\n\n"
|
|
||||||
#endif
|
|
||||||
"\tcpu:\t\t%d\t0x%08lx\n"
|
|
||||||
"\tmem:\t\t%d\t0x%08lx\n"
|
|
||||||
"\tswap:\t\t%d\t0x%08lx\n\n"
|
|
||||||
"\tuptime:\t\t%d\t0x%08lx\n"
|
|
||||||
"\tloadavg:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tshm_limits:\t%d\t0x%08lx\n"
|
|
||||||
"\tmsg_limits:\t%d\t0x%08lx\n"
|
|
||||||
"\tsem_limits:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tproclist:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tproc_state:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_uid:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_mem:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_time:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_signal:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_kernel:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_segment:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tproc_args:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_map:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tmountlist:\t%d\t0x%08lx\n"
|
|
||||||
"\tfsusage:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tnetload:\t%d\t0x%08lx\n"
|
|
||||||
"\tppp:\t\t%d\t0x%08lx\n\n",
|
|
||||||
(unsigned long) sysdeps.flags,
|
|
||||||
(unsigned long) sysdeps.features,
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
(unsigned long) sysdeps.pointer_size,
|
|
||||||
#endif
|
|
||||||
FEATURE_CHECK(CPU),
|
|
||||||
(unsigned long) sysdeps.cpu,
|
|
||||||
FEATURE_CHECK(MEM),
|
|
||||||
(unsigned long) sysdeps.mem,
|
|
||||||
FEATURE_CHECK(SWAP),
|
|
||||||
(unsigned long) sysdeps.swap,
|
|
||||||
FEATURE_CHECK(UPTIME),
|
|
||||||
(unsigned long) sysdeps.uptime,
|
|
||||||
FEATURE_CHECK(LOADAVG),
|
|
||||||
(unsigned long) sysdeps.loadavg,
|
|
||||||
FEATURE_CHECK(SHM_LIMITS),
|
|
||||||
(unsigned long) sysdeps.shm_limits,
|
|
||||||
FEATURE_CHECK(MSG_LIMITS),
|
|
||||||
(unsigned long) sysdeps.msg_limits,
|
|
||||||
FEATURE_CHECK(SEM_LIMITS),
|
|
||||||
(unsigned long) sysdeps.sem_limits,
|
|
||||||
FEATURE_CHECK(PROCLIST),
|
|
||||||
(unsigned long) sysdeps.proclist,
|
|
||||||
FEATURE_CHECK(PROC_STATE),
|
|
||||||
(unsigned long) sysdeps.proc_state,
|
|
||||||
FEATURE_CHECK(PROC_UID),
|
|
||||||
(unsigned long) sysdeps.proc_uid,
|
|
||||||
FEATURE_CHECK(PROC_MEM),
|
|
||||||
(unsigned long) sysdeps.proc_mem,
|
|
||||||
FEATURE_CHECK(PROC_TIME),
|
|
||||||
(unsigned long) sysdeps.proc_time,
|
|
||||||
FEATURE_CHECK(PROC_SIGNAL),
|
|
||||||
(unsigned long) sysdeps.proc_signal,
|
|
||||||
FEATURE_CHECK(PROC_KERNEL),
|
|
||||||
(unsigned long) sysdeps.proc_kernel,
|
|
||||||
FEATURE_CHECK(PROC_SEGMENT),
|
|
||||||
(unsigned long) sysdeps.proc_segment,
|
|
||||||
FEATURE_CHECK(PROC_ARGS),
|
|
||||||
(unsigned long) sysdeps.proc_args,
|
|
||||||
FEATURE_CHECK(PROC_MAP),
|
|
||||||
(unsigned long) sysdeps.proc_map,
|
|
||||||
FEATURE_CHECK(MOUNTLIST),
|
|
||||||
(unsigned long) sysdeps.mountlist,
|
|
||||||
FEATURE_CHECK(FSUSAGE),
|
|
||||||
(unsigned long) sysdeps.fsusage,
|
|
||||||
FEATURE_CHECK(NETLOAD),
|
|
||||||
(unsigned long) sysdeps.netload,
|
|
||||||
FEATURE_CHECK(PPP),
|
|
||||||
(unsigned long) sysdeps.ppp);
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
@@ -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)
|
|
@@ -1,57 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop 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 General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
void main_prog(int argc, char *argv[]);
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
gh_enter (argc, argv, main_prog);
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
main_prog (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
glibtop_boot_guile ();
|
|
||||||
#ifdef GLIBTOP_GUILE_NAMES
|
|
||||||
glibtop_boot_guile_names ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
gh_repl (argc, argv);
|
|
||||||
}
|
|
@@ -1,357 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop 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 General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
#include <sys/times.h>
|
|
||||||
#include <sys/resource.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 100000L
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT_EXPENSIVE
|
|
||||||
#define PROFILE_COUNT_EXPENSIVE 10000L
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ELAPSED_UTIME ((unsigned long) elapsed_utime.tv_sec * 1000000 + (unsigned long) elapsed_utime.tv_usec)
|
|
||||||
#define ELAPSED_STIME ((unsigned long) elapsed_stime.tv_sec * 1000000 + (unsigned long) elapsed_stime.tv_usec)
|
|
||||||
|
|
||||||
#define libgtop_timeradd(tvp, uvp, vvp) \
|
|
||||||
do { \
|
|
||||||
(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \
|
|
||||||
(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \
|
|
||||||
if ((vvp)->tv_usec >= 1000000) { \
|
|
||||||
(vvp)->tv_sec++; \
|
|
||||||
(vvp)->tv_usec -= 1000000; \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
#define libgtop_timersub(tvp, uvp, vvp) \
|
|
||||||
do { \
|
|
||||||
(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \
|
|
||||||
(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \
|
|
||||||
if ((vvp)->tv_usec < 0) { \
|
|
||||||
(vvp)->tv_sec--; \
|
|
||||||
(vvp)->tv_usec += 1000000; \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_union data;
|
|
||||||
unsigned c, count, *ptr;
|
|
||||||
struct rusage total_start, total_end;
|
|
||||||
struct rusage rusage_start, rusage_end;
|
|
||||||
struct timeval elapsed_utime, elapsed_stime;
|
|
||||||
pid_t pid;
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
printf ("%-12s (%-10s): %7s - %9s - %9s\n",
|
|
||||||
"Feature", "Flags", "Count", "utime", "stime");
|
|
||||||
printf ("-------------------------------------------"
|
|
||||||
"---------------\n");
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &total_start);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_cpu (&data.cpu);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("CPU (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.cpu.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
|
|
||||||
glibtop_get_mem (&data.mem);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Memory (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.mem.flags, PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
|
|
||||||
glibtop_get_swap (&data.swap);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Swap (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.swap.flags, PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_uptime (&data.uptime);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Uptime (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.uptime.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_loadavg (&data.loadavg);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Loadavg (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.loadavg.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
|
|
||||||
ptr = glibtop_get_proclist (&data.proclist, 0, 0);
|
|
||||||
glibtop_free (ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proclist (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proclist.flags,
|
|
||||||
PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
|
||||||
|
|
||||||
pid = getpid ();
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_state (&data.proc_state, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_State (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_state.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Uid (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_uid.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Mem (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_mem.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Segment (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_segment.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_time (&data.proc_time, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Time (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_time.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Signal (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_signal.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_kernel.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &total_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&total_end.ru_stime, &total_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("-------------------------------------------"
|
|
||||||
"---------------\n");
|
|
||||||
|
|
||||||
printf ("%-36s %9lu - %9lu\n\n", "TOTAL",
|
|
||||||
ELAPSED_UTIME, ELAPSED_STIME);
|
|
||||||
|
|
||||||
printf ("All timings are in clock ticks "
|
|
||||||
"(1000000 ticks per second).\n\n");
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
@@ -64,12 +64,6 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
|
|||||||
AC_SUBST(libgtop_use_machine_h)
|
AC_SUBST(libgtop_use_machine_h)
|
||||||
AC_SUBST(libgtop_need_server)
|
AC_SUBST(libgtop_need_server)
|
||||||
|
|
||||||
AC_ARG_WITH(libgtop-examples,
|
|
||||||
[ --with-libgtop-examples Build the libgtop examples (default=no)],[
|
|
||||||
build_examples="$withval"], [build_examples=no])
|
|
||||||
|
|
||||||
AM_CONDITIONAL(EXAMPLES, test x"$build_examples" = xyes)
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(hacker-mode,
|
AC_ARG_ENABLE(hacker-mode,
|
||||||
[ --enable-hacker-mode Enable building of unstable sysdeps],
|
[ --enable-hacker-mode Enable building of unstable sysdeps],
|
||||||
[hacker_mode="$enableval"], [hacker_mode=no])
|
[hacker_mode="$enableval"], [hacker_mode=no])
|
||||||
|
Reference in New Issue
Block a user