Compare commits
113 Commits
affinity
...
LIBGTOP_2_
Author | SHA1 | Date | |
---|---|---|---|
|
91b7ae4b11 | ||
|
ce23ce407c | ||
|
7f779e078d | ||
|
229eab1213 | ||
|
791e0dd859 | ||
|
f63973eac5 | ||
|
806a2d2d7e | ||
|
af81e9be75 | ||
|
90fc3ca780 | ||
|
99e9437b37 | ||
|
6c7f40ac64 | ||
|
e75261ada8 | ||
|
dc5da30913 | ||
|
4d78d26932 | ||
|
cd950bbf73 | ||
|
c1b95643a8 | ||
|
be8a371481 | ||
|
fedd75b2b1 | ||
|
a02e213373 | ||
|
e3697c9a9e | ||
|
91e2e5a1b7 | ||
|
158280e297 | ||
|
62c741074c | ||
|
87a80ba430 | ||
|
7bb5abb9a8 | ||
|
40485978ec | ||
|
73c62a7bdb | ||
|
e4d9c10a73 | ||
|
5d3f18e12c | ||
|
d97b0c3419 | ||
|
960d12822d | ||
|
f79f25f5ce | ||
|
3bb78c22c4 | ||
|
4971103dc3 | ||
|
35fab4d9aa | ||
|
2078320e14 | ||
|
46a29ac020 | ||
|
d9c98b57c9 | ||
|
9ce9de7942 | ||
|
1409a8ef80 | ||
|
bff4a84864 | ||
|
77524a1ad2 | ||
|
a171755aa6 | ||
|
1d5f2cb395 | ||
|
86ace13645 | ||
|
57b1547333 | ||
|
efee8728d1 | ||
|
9ae5202a78 | ||
|
07322469b7 | ||
|
b797fcf578 | ||
|
7725fdff77 | ||
|
e5298ca598 | ||
|
92d54e287a | ||
|
2d9656e82a | ||
|
8674e92349 | ||
|
f5bbc36a91 | ||
|
b058565419 | ||
|
2c6b951822 | ||
|
9b072525a6 | ||
|
e2e0e3a555 | ||
|
f37f72781a | ||
|
9618fe795f | ||
|
2e3231b051 | ||
|
7fd14852db | ||
|
73728a78c7 | ||
|
3f55d507dd | ||
|
13cec7830f | ||
|
665d65d164 | ||
|
21adc6b0c5 | ||
|
3529a1b59f | ||
|
8a0a3632ac | ||
|
e6f9e07a9e | ||
|
755695c537 | ||
|
dba423b6e7 | ||
|
83cda8c605 | ||
|
6856c690f3 | ||
|
a9b3964675 | ||
|
44b360a521 | ||
|
699524ea6a | ||
|
2f4826b4d8 | ||
|
83160ef48c | ||
|
76bfbd3006 | ||
|
73c9b1dd20 | ||
|
da878ec588 | ||
|
f3c90e4b3a | ||
|
f3959743b6 | ||
|
70a58a4cd4 | ||
|
600bb6f004 | ||
|
d5ccf3404b | ||
|
b17762a5ae | ||
|
1f2325b441 | ||
|
b1757616d8 | ||
|
871f300a2c | ||
|
650c8f2582 | ||
|
28ae85c10b | ||
|
ce37ceeb15 | ||
|
706c847b17 | ||
|
82be8d7f8d | ||
|
22e55d2e37 | ||
|
31844753e8 | ||
|
0ad36c2f62 | ||
|
79143ecad7 | ||
|
62dba864d7 | ||
|
21a763e55a | ||
|
c81d6306e5 | ||
|
7270bcc9d5 | ||
|
3c39f89281 | ||
|
e34f38d3fc | ||
|
a207cc1580 | ||
|
b219d3181e | ||
|
bc848239ff | ||
|
0285e018f4 | ||
|
01f1e7e955 |
3
AUTHORS
Normal file
3
AUTHORS
Normal file
@@ -0,0 +1,3 @@
|
||||
Martin Baulig (martin@home-of-linux.org)
|
||||
Drazen Kacar (dave@srce.hr)
|
||||
Benoît Dejean (tazforever@dlfp.org)
|
4
MAINTAINERS
Normal file
4
MAINTAINERS
Normal file
@@ -0,0 +1,4 @@
|
||||
Benoît Dejean
|
||||
E-mail: benoit@placenet.org
|
||||
Userid: bdejean
|
||||
|
35
Makefile.am
Normal file
35
Makefile.am
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
if EXAMPLES
|
||||
EXAMPLES_DIR = examples
|
||||
else
|
||||
EXAMPLES_DIR =
|
||||
endif
|
||||
|
||||
SUBDIRS = po misc include sysdeps lib src $(EXAMPLES_DIR) doc
|
||||
|
||||
libgtopinclude_HEADERS = glibtop.h libgtopconfig.h
|
||||
libgtopincludedir = $(includedir)/libgtop-2.0
|
||||
|
||||
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \
|
||||
features.def libgtopconfig.h.in \
|
||||
libgtop-sysdeps.m4 README \
|
||||
libgtop-2.0.pc.in acinclude.m4 \
|
||||
intltool-extract.in \
|
||||
intltool-merge.in \
|
||||
intltool-update.in
|
||||
|
||||
DISTCLEANFILES = \
|
||||
intltool-extract \
|
||||
intltool-merge \
|
||||
intltool-update
|
||||
|
||||
dist-hook:
|
||||
cp libgtop.spec $(distdir)
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libgtop-2.0.pc
|
||||
|
||||
libgtop-features.def: features.def
|
||||
@LN_S@ $< $@
|
||||
|
||||
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
|
391
NEWS
Normal file
391
NEWS
Normal file
@@ -0,0 +1,391 @@
|
||||
23 June 2008: Overview of changes in 2.23.4
|
||||
===========================================
|
||||
* linux:
|
||||
- Fixed and improved glibtop_get_fsusage with kernel >= 2.6.25.
|
||||
Closes #539360.
|
||||
|
||||
24 May 2008: Overview of changes in 2.23.2
|
||||
==========================================
|
||||
* glibtop_get_proc_open_files API can also lists IPv6 TCP sockets.
|
||||
* glibtop_get_proc_affinity : new API to retrieve process CPU affinity.
|
||||
|
||||
(Let's hope one day i'll find the gtk-doc documentation ...)
|
||||
|
||||
* linux:
|
||||
- fixed parsing of big /proc/stat for uptime.
|
||||
|
||||
04 April 2008: Overview of changes in 2.22.1
|
||||
============================================
|
||||
* Fixed compilation/dist for !linux.
|
||||
Closes #525953.
|
||||
|
||||
10 Mars 2008: Overview of changes in 2.22.0
|
||||
===========================================
|
||||
* linux:
|
||||
- fixed proc_kernel.
|
||||
|
||||
25 February 2008: Overview of changes in 2.21.92
|
||||
================================================
|
||||
* linux:
|
||||
- fixed smaps parsing on >= 2.6.24.x.
|
||||
|
||||
14 January 2008: Overview of changes in 2.21.5
|
||||
==============================================
|
||||
* freebsd:
|
||||
- fixed build on GNU/kfreebsd. Petr Salinger.
|
||||
- fixed procmem units. Kuang-che Wu.
|
||||
|
||||
28 October 2007: Overview of changes in 2.21.1
|
||||
==============================================
|
||||
* don't export _p/_s private symbols anymore. This is not an API/ABI breakage.
|
||||
* darwin implementation by Benjamin Reed.
|
||||
* linux:
|
||||
- splitted fsusage and mountlist implementations;
|
||||
- smarter mountlist(allfs = False);
|
||||
- fixed some compile warning on 64bit;
|
||||
* solaris:
|
||||
- fixed netload build by Henry Zhang.
|
||||
|
||||
16 September 2007: Overview of changes in 2.20.0
|
||||
================================================
|
||||
* Updated translations.
|
||||
|
||||
27 August 2007: Overview of changes in 2.19.92
|
||||
==============================================
|
||||
* Fixed stupid hardwired path in linux/sysinfo.c
|
||||
|
||||
26 August 2007: Overview of changes in 2.19.91
|
||||
==============================================
|
||||
* Translations updates.
|
||||
* linux:
|
||||
- Small internal improvement. Might fix sysinfo when having more than
|
||||
8 CPUS.
|
||||
|
||||
9 July 2007: Overview of changes in 2.19.5
|
||||
==========================================
|
||||
* linux:
|
||||
- fixed proc_map for >= 2.6.22
|
||||
* freebsd:
|
||||
- implemented procwd and procopenfiles
|
||||
Joe Marcus Clarke
|
||||
|
||||
18 June 2007: Overview of changes in 2.19.4
|
||||
===========================================
|
||||
* solaris:
|
||||
- fixed build. Damien Carbery.
|
||||
|
||||
3 June 2007: Overview of changes in 2.19.3
|
||||
==========================================
|
||||
* Small API change. get_proclist returns pid_t instead of unsigned
|
||||
for consistency.
|
||||
* linux:
|
||||
- fixed an typo bug in open_files.
|
||||
- got rid of useless glibtop_init_s calls.
|
||||
* Enable example build by defaut.
|
||||
* Dropped G_GNUC_INTERNAL attributes no longer needed.
|
||||
This will please people trying to implement G_GNUC macro with a non
|
||||
GNU Compiler.
|
||||
|
||||
13 May 2007: Overview of changes in 2.19.2
|
||||
==========================================
|
||||
* This is the first release of the 2.19.x series.
|
||||
* Got rid of inodedb (you don't even know what it is ;)
|
||||
* New unstable API glibtop_get_proc_wd to get working directories of
|
||||
a process.
|
||||
* Fixed OpenBSD build. Jasper Lievisse Adriaanse.
|
||||
|
||||
25 February 2007: Overview of changes in 2.14.8
|
||||
===============================================
|
||||
* bsd implementations have been splitted by Joe Marcus Clarke
|
||||
and Alexander Nedotsukov. (k)freeBSD now has a separate implementation.
|
||||
|
||||
February 10, 2007: Overview of changes in 2.14.7
|
||||
================================================
|
||||
* bsd:
|
||||
- massive kfreeBSD and FreeBSD updates by Roy Marples and Petr Salinger.
|
||||
* mountlist can now ignore objfs and ctfs filesystems.
|
||||
* fsusage won't return bavail > bfree anymore.
|
||||
|
||||
January 14, 2007: Overview of changes in 2.14.6
|
||||
===============================================
|
||||
* linux:
|
||||
- fixed stack overflow in glibtop_get_proc_map
|
||||
- fixed handling of long filenames in glibtop_get_proc_map and glibtop_get_proc_open_files.
|
||||
- micro-optimization
|
||||
|
||||
December 3, 2006: Overview of changes in 2.14.5
|
||||
===============================================
|
||||
* Added kfreebsd support (Petr Salinger <Petr.Salinger@seznam.cz>).
|
||||
* Added solaris glibtop_get_proc_open_files (Henry Zhang <hua.zhang@sun.com>).
|
||||
* Migrated to gtk-doc (Germán Poó-Caamaño <gpoo@ubiobio.cl>).
|
||||
* glibtop_get_mountlist can now ignore nsfd FS.
|
||||
|
||||
September 16, 2006: Overview of changes in 2.14.4
|
||||
=================================================
|
||||
* Fixed linux maps/smaps parsing on 64bit kernel.
|
||||
|
||||
September 5, 2006: Overview of changes in 2.14.3
|
||||
================================================
|
||||
* Fixed build with --as-needed.
|
||||
* Added missing G_BEGIN_DECLS/G_END_DECLS.
|
||||
|
||||
July 27, 2006: Overview of changes in 2.14.2
|
||||
============================================
|
||||
* Updated solaris support (hua.zhang@sun.com)
|
||||
* Small linux updates and improvments.
|
||||
|
||||
April 10, 2006: Overview of changes in 2.14.1
|
||||
=============================================
|
||||
* Updated translations.
|
||||
* Fixed NetBSD port (Julio M. Merino Vidal <jmmv@NetBSD.org>).
|
||||
* Fixed some warnings.
|
||||
|
||||
Mars 13, 2006: Overview of changes in 2.14.0
|
||||
============================================
|
||||
* Updated translations.
|
||||
|
||||
February 27, 2006: Overview of changes in 2.13.92
|
||||
=================================================
|
||||
* Fixed proc_state documentation.
|
||||
* Updated mountlist ignore list.
|
||||
|
||||
January 23, 2006: Overview of changes in 2.13.3
|
||||
===============================================
|
||||
* linux:
|
||||
- fixe get_procmap for linux < 2.6.14.
|
||||
|
||||
January 2, 2006: Overview of changes in 2.13.2
|
||||
==============================================
|
||||
* Fixed libtool versioning (James Henstridge)
|
||||
|
||||
December 15, 2005: Overview of changes in 2.13.1
|
||||
================================================
|
||||
* linux:
|
||||
- fixed proclist
|
||||
- implemented server->real_ncpu
|
||||
|
||||
December 13, 2005: Overview of changes in 2.13.0
|
||||
================================================
|
||||
* Requires automake-1.9 (James Henstridge)
|
||||
* Supports up to 32 CPU
|
||||
* Supports Linux smaps
|
||||
* linux: fixed SMP detection
|
||||
|
||||
This release is not ABI compatible with previous releases. Sorry.
|
||||
|
||||
November 29, 2005: Overview of changes from 2.12.0 to 2.12.1
|
||||
============================================================
|
||||
* Dropped dead files
|
||||
* linux: 1-line cleanup.
|
||||
|
||||
September 4, 2005: Overview of changes from 2.11.92 to 2.12.0
|
||||
=============================================================
|
||||
* Updated translations.
|
||||
|
||||
August 22, 2005: Overview of changes from 2.11.91 to 2.11.92
|
||||
============================================================
|
||||
* Linux:
|
||||
- fixed for 2.6 without /sys
|
||||
- glibtop_get_cpu() : Do not add irq, softirq and iowait to idle.
|
||||
|
||||
August 9, 2005: Overview of changes from 2.11.90 to 2.11.91
|
||||
===========================================================
|
||||
* All:
|
||||
- cleaned some headers.
|
||||
- removed static examples.
|
||||
* Linux:
|
||||
- fixed some issues with 2.6 without /sys
|
||||
|
||||
July 24, 2005: Overview of changes from 2.11.2 to 2.11.90
|
||||
=========================================================
|
||||
* Linux:
|
||||
- fixed glibtop_uptime .flags.
|
||||
|
||||
July &3, 2005: Overview of changes from 2.11.1 to 2.11.2
|
||||
========================================================
|
||||
* Linux:
|
||||
- little improvements for 2.6.
|
||||
|
||||
July 3, 2005: Overview of changes from 2.11.0 to 2.11.1
|
||||
=======================================================
|
||||
* Linux:
|
||||
- glibtop_get_swap : added page(in|out) for linux 2.6.
|
||||
|
||||
June 8, 2005: Overview of changes from 2.10.x to 2.11.0
|
||||
=======================================================
|
||||
* Replaced a lot of macros by functions
|
||||
* Got rid of dozens of useless files.
|
||||
* libgtop 2.11.x are and will stay API and ABI compatible with 2.10.x, i swear.
|
||||
|
||||
April 10, 2005: Overview of changes from 2.10.0 to 2.10.1
|
||||
=========================================================
|
||||
* Updated i18n.
|
||||
* Little cleanup and fixed gcc-4.0 compilation.
|
||||
* linux: fixed loadavg and uptime if locale != C.
|
||||
Updated siglist.
|
||||
* Tighter libgtop-2.0.pc.
|
||||
|
||||
Mars 7, 2005: Overview of Changes from 2.9.92 to 2.10.0
|
||||
=======================================================
|
||||
* Updated i18n.
|
||||
|
||||
February 28, 2005: Overview of Changes from 2.9.90 to 2.9.92
|
||||
============================================================
|
||||
* *BSD updated by marcus@freebsd.org (Joe Marcus Clarke).
|
||||
* Removed a lot of dead files :)
|
||||
* Don't build&install libgtop_daemon when it's never used.
|
||||
|
||||
February 6, 2004: Overview of Changes from 2.9.90 to 2.9.91
|
||||
==========================================================
|
||||
* Fixed typo in stub.
|
||||
* Updated i18n.
|
||||
|
||||
January 24, 2004: Overview of Changes from 2.9.4 to 2.9.90
|
||||
==========================================================
|
||||
* Updated Linux support.
|
||||
|
||||
January 10, 2004: Overview of Changes from 2.9.3 to 2.9.4
|
||||
=========================================================
|
||||
* New glibtop_proc_open_files nick@reloco.com.ar (Nicolás Lichtmaier).
|
||||
* Updated AIX support (Christophe Belle).
|
||||
|
||||
December 20, 2004: Overview of Changes from 2.9.0 to 2.9.3
|
||||
==========================================================
|
||||
* Removed libgtop_names.
|
||||
* Fixed Argument passing between library and server. #139809.
|
||||
* *BSD updated by marcus@freebsd.org (Joe Marcus Clarke).
|
||||
* glibtop_get_mountlist(False) now ignores 'unknown' fs.
|
||||
|
||||
|
||||
November 30, 2004: Overview of Changes from 2.8.1 to 2.9.0
|
||||
=========================================================
|
||||
* glibtop_get_netload : Fixed segfault on linux with ppp devices.
|
||||
* NEW glibtop_get_netlist : retrieves the list of all available interfaces.
|
||||
* NEW LIBGTOP_CHECK_VERSION(major, minor, micro)
|
||||
* Removed dead kernel patch and implementation.
|
||||
* Cleanups on Linux and Solaris.
|
||||
|
||||
October 11, 2004: Overview of Changes from 2.8.0 to 2.8.1
|
||||
=========================================================
|
||||
* Improved Solaris and AIX support.
|
||||
|
||||
|
||||
August 13, 2004: Overview of Changes from 2.7.92 to 2.8.0
|
||||
=========================================================
|
||||
* No changes
|
||||
|
||||
|
||||
August 30, 2004:
|
||||
===============
|
||||
* Applied some *BSD patches.
|
||||
* Removed old files.
|
||||
|
||||
|
||||
August 15, 2004:
|
||||
===============
|
||||
* Fixed compilation with C89-only compilers and old libc.
|
||||
|
||||
|
||||
August 3, 2004:
|
||||
==============
|
||||
* Some cleanups.
|
||||
* Fixed the behaviour of some linux proc_*() functions.
|
||||
* Updated the documentation.
|
||||
|
||||
|
||||
July 19, 2004: Overview of Changes from 2.6.1 to 2.7.4
|
||||
======================================================
|
||||
* Plenty of code cleanups. Uninlined a lot of functions. ~5-10KB object size
|
||||
reduction.
|
||||
* Glibify a bit more.
|
||||
* API changes:
|
||||
- glibtop_fsusage provides total read and writes since boot_time.
|
||||
- glibtop_netload provides hardware address. IPv6 enable.
|
||||
- Added glibtop_get_proc_argv.
|
||||
|
||||
Work in progress :
|
||||
* Finish glibtop_fsusage implementation for Linux.
|
||||
* Some fuctions don't conform to the documentation, e.g. proctime.
|
||||
|
||||
March 11, 2004:
|
||||
===============
|
||||
|
||||
* Released LibGTop 2.5.99 "Gross Work", dedicated to people who do push-ups
|
||||
in the loos.
|
||||
|
||||
- plenty of code cleanups
|
||||
|
||||
- removed the dependency on libgnome, only glib required now
|
||||
|
||||
- Linux 2.6 support, NetBSD support and better FreeBSD support
|
||||
|
||||
- Make the block size available for filesystem statistics
|
||||
|
||||
February 27, 2001:
|
||||
=================
|
||||
|
||||
* Released LibGTop 1.0.12 "Gerolzhofen".
|
||||
|
||||
- fix for Solaris 8 from Laszlo PETER (msg_limits, sem_limits).
|
||||
|
||||
- fix for FreeBSD 4.2 from Rolf Grossmann (FreeBSD now uses
|
||||
`_KERNEL' instead of `KERNEL'). Bug #51334.
|
||||
|
||||
- for BSDI, comment out `subnet' field in netload; this should make
|
||||
it compile, but there may be other problems. Bug #13345.
|
||||
|
||||
This release is for GNOME 1.4 Beta2.
|
||||
|
||||
February 14, 2001:
|
||||
=================
|
||||
|
||||
* Released LibGTop 1.0.11 "Jasmin":
|
||||
|
||||
[The release which was supposed to be called "Gerolzhofen".]
|
||||
|
||||
- merged in the Solaris code from LIBGTOP_1_1_2_PATCHES.
|
||||
|
||||
- minor OpenBSD fixes.
|
||||
|
||||
- again a bunch of updated translations.
|
||||
|
||||
Please test the Solaris stuff and report and bugs and
|
||||
problems as soon as possible; I'll make a new release
|
||||
for the 2nd beta of GNOME 1.4 if necessary.
|
||||
|
||||
November 20, 2000:
|
||||
=================
|
||||
|
||||
* Released LibGTop 1.0.10 "November Rain":
|
||||
|
||||
- this release contains a bunch of updated translations.
|
||||
|
||||
May 25, 2000:
|
||||
============
|
||||
|
||||
* Released LibGTop 1.0.9 "Stuttgart".
|
||||
|
||||
(LibGTop 1.0.8 "Frankfurt" was not publically released.)
|
||||
|
||||
February 15, 2000:
|
||||
=================
|
||||
|
||||
* Released LibGTop 1.0.7 "Copenhagen":
|
||||
|
||||
- this is a bug fix release for the GUADEC CD-ROM;
|
||||
it contains fixes in both the Linux and *BSD sysdeps
|
||||
directory.
|
||||
|
||||
October 18, 1999:
|
||||
================
|
||||
|
||||
* Released LibGTop 1.0.6 "October LibGTop":
|
||||
|
||||
- compilation fixes for FreeBSD.
|
||||
- updated reference manual.
|
||||
|
||||
September 29, 1999:
|
||||
==================
|
||||
|
||||
* Released LibGTop 1.0.5.
|
||||
|
20
README
Normal file
20
README
Normal file
@@ -0,0 +1,20 @@
|
||||
LATEST NEWS:
|
||||
===========
|
||||
|
||||
Please look also in the file 'NEWS' for latest news.
|
||||
|
||||
Martin
|
||||
|
||||
|
||||
ChangeLogs:
|
||||
==========
|
||||
|
||||
LibGTop has many ChangeLogs files. The following files are the the
|
||||
most important :
|
||||
|
||||
- ChangeLog is the main ChangeLog.
|
||||
- sysdeps/<arch>/ChangeLog is the ChangeLog for arch specific changes.
|
||||
- sysdeps/common/ChangeLog is the ChangeLog for common changes (shared
|
||||
implementation between archs).
|
||||
|
||||
Benoît
|
525
acinclude.m4
Normal file
525
acinclude.m4
Normal file
@@ -0,0 +1,525 @@
|
||||
dnl This is just copied m4s from need-declaration.m4 gnome-fileutils.m4
|
||||
dnl gnome-supprt-checks.m4 and a little from gnome-libgtop-check.m4
|
||||
dnl and finally libgtop-sysdeps.m4
|
||||
|
||||
dnl
|
||||
dnl LIBGTOP_CHECK_TYPE
|
||||
dnl
|
||||
dnl Improved version of AC_CHECK_TYPE which takes into account
|
||||
dnl that we need to #include some other header files on some
|
||||
dnl systems to get some types.
|
||||
|
||||
dnl AC_LIBGTOP_CHECK_TYPE(TYPE, DEFAULT)
|
||||
AC_DEFUN([AC_LIBGTOP_CHECK_TYPE],
|
||||
[AC_REQUIRE([AC_HEADER_STDC])dnl
|
||||
AC_MSG_CHECKING(for $1)
|
||||
AC_CACHE_VAL(ac_cv_type_$1,
|
||||
[AC_EGREP_CPP(dnl
|
||||
changequote(<<,>>)dnl
|
||||
<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl
|
||||
changequote([,]), [#include <sys/types.h>
|
||||
#if STDC_HEADERS
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#endif
|
||||
|
||||
/* For Tru64 */
|
||||
#ifdef HAVE_SYS_BITYPES_H
|
||||
#include <sys/bitypes.h>
|
||||
#endif
|
||||
], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
|
||||
AC_MSG_RESULT($ac_cv_type_$1)
|
||||
if test $ac_cv_type_$1 = no; then
|
||||
AC_DEFINE($1, $2, [Define to $2 if <sys/types.h> does not define.])
|
||||
fi
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl GNOME_LIBGTOP_TYPES
|
||||
dnl
|
||||
dnl some typechecks for libgtop.
|
||||
dnl
|
||||
|
||||
AC_DEFUN([GNOME_LIBGTOP_TYPES],
|
||||
[
|
||||
AC_CHECK_HEADERS(sys/bitypes.h)
|
||||
])
|
||||
|
||||
dnl See whether we need a declaration for a function.
|
||||
dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES])
|
||||
AC_DEFUN([GCC_NEED_DECLARATION],
|
||||
[AC_MSG_CHECKING([whether $1 must be declared])
|
||||
AC_CACHE_VAL(gcc_cv_decl_needed_$1,
|
||||
[AC_TRY_COMPILE([
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_STRING_H
|
||||
#include <string.h>
|
||||
#else
|
||||
#ifdef HAVE_STRINGS_H
|
||||
#include <strings.h>
|
||||
#endif
|
||||
#endif
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
$2],
|
||||
[char *(*pfn) = (char *(*)) $1],
|
||||
eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")])
|
||||
if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
gcc_need_declarations="$gcc_need_declarations $1"
|
||||
gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
||||
AC_DEFINE_UNQUOTED($gcc_tr_decl, 1, [Define if $1 () must be declared.])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
])dnl
|
||||
|
||||
dnl Check multiple functions to see whether each needs a declaration.
|
||||
dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES])
|
||||
AC_DEFUN([GCC_NEED_DECLARATIONS],
|
||||
[for ac_func in $1
|
||||
do
|
||||
GCC_NEED_DECLARATION($ac_func, $2)
|
||||
done
|
||||
]
|
||||
)
|
||||
|
||||
dnl
|
||||
dnl GNOME_FILEUTILS_CHECKS
|
||||
dnl
|
||||
dnl checks that are needed for the diskusage applet.
|
||||
dnl
|
||||
|
||||
AC_DEFUN([GNOME_FILEUTILS_CHECKS],
|
||||
[
|
||||
AC_CHECK_HEADERS(fcntl.h sys/param.h sys/statfs.h sys/fstyp.h \
|
||||
mnttab.h mntent.h sys/statvfs.h sys/vfs.h sys/mount.h \
|
||||
sys/filsys.h sys/fs_types.h sys/fs/s5param.h)
|
||||
|
||||
AC_CHECK_FUNCS(bcopy endgrent endpwent fchdir ftime ftruncate \
|
||||
getcwd getmntinfo gettimeofday isascii lchown \
|
||||
listmntent memcpy mkfifo strchr strerror strrchr vprintf)
|
||||
|
||||
dnl Set some defaults when cross-compiling
|
||||
|
||||
if test x$cross_compiling = xyes ; then
|
||||
case "$host_os" in
|
||||
linux*)
|
||||
fu_cv_sys_mounted_getmntent1=yes
|
||||
fu_cv_sys_stat_statfs2_bsize=yes
|
||||
;;
|
||||
sunos*)
|
||||
fu_cv_sys_stat_statfs4=yes
|
||||
;;
|
||||
freebsd*)
|
||||
fu_cv_sys_stat_statfs2_bsize=yes
|
||||
;;
|
||||
osf*)
|
||||
fu_cv_sys_stat_statfs3_osf1=yes
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Determine how to get the list of mounted filesystems.
|
||||
list_mounted_fs=
|
||||
|
||||
# If the getmntent function is available but not in the standard library,
|
||||
# make sure LIBS contains -lsun (on Irix4) or -lseq (on PTX).
|
||||
AC_FUNC_GETMNTENT
|
||||
|
||||
# This test must precede the ones for getmntent because Unicos-9 is
|
||||
# reported to have the getmntent function, but its support is incompatible
|
||||
# with other getmntent implementations.
|
||||
|
||||
# NOTE: Normally, I wouldn't use a check for system type as I've done for
|
||||
# `CRAY' below since that goes against the whole autoconf philosophy. But
|
||||
# I think there is too great a chance that some non-Cray system has a
|
||||
# function named listmntent to risk the false positive.
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
# Cray UNICOS 9
|
||||
AC_MSG_CHECKING([for listmntent of Cray/Unicos-9])
|
||||
AC_CACHE_VAL(fu_cv_sys_mounted_cray_listmntent,
|
||||
[fu_cv_sys_mounted_cray_listmntent=no
|
||||
AC_EGREP_CPP(yes,
|
||||
[#ifdef _CRAY
|
||||
yes
|
||||
#endif
|
||||
], [test $ac_cv_func_listmntent = yes \
|
||||
&& fu_cv_sys_mounted_cray_listmntent=yes]
|
||||
)
|
||||
]
|
||||
)
|
||||
AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent)
|
||||
if test $fu_cv_sys_mounted_cray_listmntent = yes; then
|
||||
list_mounted_fs=found
|
||||
AC_DEFINE(MOUNTED_LISTMNTENT, 1,
|
||||
[Define if there is a function named listmntent that can be used to list all mounted filesystems. [UNICOS]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $ac_cv_func_getmntent = yes; then
|
||||
|
||||
# This system has the getmntent function.
|
||||
# Determine whether it's the one-argument variant or the two-argument one.
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
# 4.3BSD, SunOS, HP-UX, Dynix, Irix
|
||||
AC_MSG_CHECKING([for one-argument getmntent function])
|
||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1,
|
||||
[test $ac_cv_header_mntent_h = yes \
|
||||
&& fu_cv_sys_mounted_getmntent1=yes \
|
||||
|| fu_cv_sys_mounted_getmntent1=no])
|
||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1)
|
||||
if test $fu_cv_sys_mounted_getmntent1 = yes; then
|
||||
list_mounted_fs=found
|
||||
AC_DEFINE(MOUNTED_GETMNTENT1, 1,
|
||||
[Define if there is a function named getmntent for reading the list of mounted filesystems, and that function takes a single argument. [4.3BSD, SunOS, HP-UX, Dynix, Irix]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
# SVR4
|
||||
AC_MSG_CHECKING([for two-argument getmntent function])
|
||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmntent2,
|
||||
[AC_EGREP_HEADER(getmntent, sys/mnttab.h,
|
||||
fu_cv_sys_mounted_getmntent2=yes,
|
||||
fu_cv_sys_mounted_getmntent2=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2)
|
||||
if test $fu_cv_sys_mounted_getmntent2 = yes; then
|
||||
list_mounted_fs=found
|
||||
AC_DEFINE(MOUNTED_GETMNTENT2, 1,
|
||||
[Define if there is a function named getmntent for reading the list of mounted filesystems, and that function takes two arguments. [SVR4]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
AC_MSG_ERROR([could not determine how to read list of mounted filesystems])
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
# DEC Alpha running OSF/1.
|
||||
AC_MSG_CHECKING([for getfsstat function])
|
||||
AC_CACHE_VAL(fu_cv_sys_mounted_getsstat,
|
||||
[AC_TRY_LINK([
|
||||
#include <sys/types.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/fs_types.h>],
|
||||
[struct statfs *stats;
|
||||
int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); ],
|
||||
fu_cv_sys_mounted_getsstat=yes,
|
||||
fu_cv_sys_mounted_getsstat=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_mounted_getsstat)
|
||||
if test $fu_cv_sys_mounted_getsstat = yes; then
|
||||
list_mounted_fs=found
|
||||
AC_DEFINE(MOUNTED_GETFSSTAT, 1,
|
||||
[Define if there is a function named getfsstat for reading the list of mounted filesystems. [DEC Alpha running OSF/1]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
# AIX.
|
||||
AC_MSG_CHECKING([for mntctl function and struct vmount])
|
||||
AC_CACHE_VAL(fu_cv_sys_mounted_vmount,
|
||||
[AC_TRY_CPP([#include <fshelp.h>],
|
||||
fu_cv_sys_mounted_vmount=yes,
|
||||
fu_cv_sys_mounted_vmount=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_mounted_vmount)
|
||||
if test $fu_cv_sys_mounted_vmount = yes; then
|
||||
list_mounted_fs=found
|
||||
AC_DEFINE(MOUNTED_VMOUNT, 1,
|
||||
[Define if there is a function named mntctl that can be used to read the list of mounted filesystems, and there is a system header file that declares `struct vmount.' [AIX]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
# SVR3
|
||||
AC_MSG_CHECKING([for FIXME existence of three headers])
|
||||
AC_CACHE_VAL(fu_cv_sys_mounted_fread_fstyp,
|
||||
[AC_TRY_CPP([
|
||||
#include <sys/statfs.h>
|
||||
#include <sys/fstyp.h>
|
||||
#include <mnttab.h>],
|
||||
fu_cv_sys_mounted_fread_fstyp=yes,
|
||||
fu_cv_sys_mounted_fread_fstyp=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp)
|
||||
if test $fu_cv_sys_mounted_fread_fstyp = yes; then
|
||||
list_mounted_fs=found
|
||||
AC_DEFINE(MOUNTED_FREAD_FSTYP, 1,
|
||||
[Define if (like SVR2) there is no specific function for reading the list of mounted filesystems, and your system has these header files: <sys/fstyp.h> and <sys/statfs.h>. [SVR3]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
# 4.4BSD and DEC OSF/1.
|
||||
AC_MSG_CHECKING([for getmntinfo function])
|
||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo,
|
||||
[
|
||||
ok=
|
||||
if test $ac_cv_func_getmntinfo = yes; then
|
||||
AC_EGREP_HEADER(f_type;, sys/mount.h,
|
||||
ok=yes)
|
||||
fi
|
||||
test -n "$ok" \
|
||||
&& fu_cv_sys_mounted_getmntinfo=yes \
|
||||
|| fu_cv_sys_mounted_getmntinfo=no
|
||||
])
|
||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo)
|
||||
if test $fu_cv_sys_mounted_getmntinfo = yes; then
|
||||
list_mounted_fs=found
|
||||
AC_DEFINE(MOUNTED_GETMNTINFO, 1,
|
||||
[Define if there is a function named getmntinfo for reading the list of mounted filesystems. [4.4BSD]])
|
||||
fi
|
||||
fi
|
||||
|
||||
# FIXME: add a test for netbsd-1.1 here
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
# Ultrix
|
||||
AC_MSG_CHECKING([for getmnt function])
|
||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmnt,
|
||||
[AC_TRY_CPP([
|
||||
#include <sys/fs_types.h>
|
||||
#include <sys/mount.h>],
|
||||
fu_cv_sys_mounted_getmnt=yes,
|
||||
fu_cv_sys_mounted_getmnt=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmnt)
|
||||
if test $fu_cv_sys_mounted_getmnt = yes; then
|
||||
list_mounted_fs=found
|
||||
AC_DEFINE(MOUNTED_GETMNT, 1,
|
||||
[Define if there is a function named getmnt for reading the list of mounted filesystems. [Ultrix]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
# SVR2
|
||||
AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab])
|
||||
AC_CACHE_VAL(fu_cv_sys_mounted_fread,
|
||||
[AC_TRY_CPP([#include <mnttab.h>],
|
||||
fu_cv_sys_mounted_fread=yes,
|
||||
fu_cv_sys_mounted_fread=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_mounted_fread)
|
||||
if test $fu_cv_sys_mounted_fread = yes; then
|
||||
list_mounted_fs=found
|
||||
AC_DEFINE(MOUNTED_FREAD, 1,
|
||||
[Define if there is no specific function for reading the list of mounted filesystems. fread will be used to read /etc/mnttab. [SVR2]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$list_mounted_fs"; then
|
||||
AC_MSG_ERROR([could not determine how to read list of mounted filesystems])
|
||||
# FIXME -- no need to abort building the whole package
|
||||
# Cannot build mountlist.c or anything that needs its functions
|
||||
fi
|
||||
|
||||
AC_CHECKING(how to get filesystem space usage)
|
||||
space=no
|
||||
|
||||
# Perform only the link test since it seems there are no variants of the
|
||||
# statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
|
||||
# because that got a false positive on SCO OSR5. Adding the declaration
|
||||
# of a `struct statvfs' causes this test to fail (as it should) on such
|
||||
# systems. That system is reported to work fine with STAT_STATFS4 which
|
||||
# is what it gets when this test fails.
|
||||
if test $space = no; then
|
||||
# SVR4
|
||||
AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
|
||||
[AC_TRY_LINK([#include <sys/types.h>
|
||||
#include <sys/statvfs.h>],
|
||||
[struct statvfs fsd; statvfs (0, &fsd);],
|
||||
fu_cv_sys_stat_statvfs=yes,
|
||||
fu_cv_sys_stat_statvfs=no)])
|
||||
if test $fu_cv_sys_stat_statvfs = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATVFS, 1,
|
||||
[Define if there is a function named statvfs. [SVR4]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# DEC Alpha running OSF/1
|
||||
AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
|
||||
[AC_TRY_RUN([
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/mount.h>
|
||||
int main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
fsd.f_fsize = 0;
|
||||
return (statfs (".", &fsd, sizeof (struct statfs)));
|
||||
}],
|
||||
fu_cv_sys_stat_statfs3_osf1=yes,
|
||||
fu_cv_sys_stat_statfs3_osf1=no,
|
||||
fu_cv_sys_stat_statfs3_osf1=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
|
||||
if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS3_OSF1, 1,
|
||||
[Define if statfs takes 3 args. [DEC Alpha running OSF/1]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# AIX
|
||||
AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
|
||||
member (AIX, 4.3BSD)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
|
||||
[AC_TRY_RUN([
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_MOUNT_H
|
||||
#include <sys/mount.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_VFS_H
|
||||
#include <sys/vfs.h>
|
||||
#endif
|
||||
int main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
fsd.f_bsize = 0;
|
||||
return (statfs (".", &fsd));
|
||||
}],
|
||||
fu_cv_sys_stat_statfs2_bsize=yes,
|
||||
fu_cv_sys_stat_statfs2_bsize=no,
|
||||
fu_cv_sys_stat_statfs2_bsize=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
|
||||
if test $fu_cv_sys_stat_statfs2_bsize = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS2_BSIZE, 1,
|
||||
[Define if statfs takes 2 args and struct statfs has a field named f_bsize. [4.3BSD, SunOS 4, HP-UX, AIX PS/2]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# SVR3
|
||||
AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
|
||||
[AC_TRY_RUN([#include <sys/types.h>
|
||||
#include <sys/statfs.h>
|
||||
int main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
return (statfs (".", &fsd, sizeof fsd, 0));
|
||||
}],
|
||||
fu_cv_sys_stat_statfs4=yes,
|
||||
fu_cv_sys_stat_statfs4=no,
|
||||
fu_cv_sys_stat_statfs4=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
|
||||
if test $fu_cv_sys_stat_statfs4 = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS4, 1,
|
||||
[Define if statfs takes 4 args. [SVR3, Dynix, Irix, Dolphin]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# 4.4BSD and NetBSD
|
||||
AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
|
||||
member (4.4BSD and NetBSD)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
|
||||
[AC_TRY_RUN([#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_MOUNT_H
|
||||
#include <sys/mount.h>
|
||||
#endif
|
||||
int main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
fsd.f_fsize = 0;
|
||||
return (statfs (".", &fsd));
|
||||
}],
|
||||
fu_cv_sys_stat_statfs2_fsize=yes,
|
||||
fu_cv_sys_stat_statfs2_fsize=no,
|
||||
fu_cv_sys_stat_statfs2_fsize=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
|
||||
if test $fu_cv_sys_stat_statfs2_fsize = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS2_FSIZE, 1,
|
||||
[Define if statfs takes 2 args and struct statfs has a field named f_fsize. [4.4BSD, NetBSD]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# Ultrix
|
||||
AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
|
||||
[AC_TRY_RUN([#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_MOUNT_H
|
||||
#include <sys/mount.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_FS_TYPES_H
|
||||
#include <sys/fs_types.h>
|
||||
#endif
|
||||
int main ()
|
||||
{
|
||||
struct fs_data fsd;
|
||||
/* Ultrix's statfs returns 1 for success,
|
||||
0 for not mounted, -1 for failure. */
|
||||
return (statfs (".", &fsd) != 1);
|
||||
}],
|
||||
fu_cv_sys_stat_fs_data=yes,
|
||||
fu_cv_sys_stat_fs_data=no,
|
||||
fu_cv_sys_stat_fs_data=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
|
||||
if test $fu_cv_sys_stat_fs_data = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS2_FS_DATA, 1,
|
||||
[Define if statfs takes 2 args and the second argument has type struct fs_data. [Ultrix]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# SVR2
|
||||
AC_TRY_CPP([#include <sys/filsys.h>],
|
||||
AC_DEFINE(STAT_READ_FILSYS, 1,
|
||||
[Define if there is no specific function for reading filesystems usage information and you have the <sys/filsys.h> header file. [SVR2]])
|
||||
space=yes)
|
||||
fi
|
||||
|
||||
if test -n "$list_mounted_fs" && test $space != no; then
|
||||
DF_PROG="df"
|
||||
# AC_LIBOBJ(fsusage)
|
||||
# AC_LIBOBJ(mountlist)
|
||||
fi
|
||||
|
||||
# Check for SunOS statfs brokenness wrt partitions 2GB and larger.
|
||||
# If <sys/vfs.h> exists and struct statfs has a member named f_spare,
|
||||
# enable the work-around code in fsusage.c.
|
||||
AC_MSG_CHECKING([for statfs that truncates block counts])
|
||||
AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
|
||||
[AC_TRY_COMPILE([
|
||||
#if !defined(sun) && !defined(__sun)
|
||||
choke -- this is a workaround for a Sun-specific problem
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <sys/vfs.h>],
|
||||
[struct statfs t; long c = *(t.f_spare);],
|
||||
fu_cv_sys_truncating_statfs=yes,
|
||||
fu_cv_sys_truncating_statfs=no,
|
||||
)])
|
||||
if test $fu_cv_sys_truncating_statfs = yes; then
|
||||
AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
|
||||
[Define if the block counts reported by statfs may be truncated to 2GB and the correct values may be stored in the f_spare array. [SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem. SunOS 4.1.1 seems not to be affected.]])
|
||||
fi
|
||||
AC_MSG_RESULT($fu_cv_sys_truncating_statfs)
|
||||
|
||||
AC_CHECKING(for AFS)
|
||||
test -d /afs && AC_DEFINE(AFS, 1, [Define if you have the Andrew File System.])
|
||||
])
|
||||
|
||||
|
||||
m4_include([libgtop-sysdeps.m4])
|
22
autogen.sh
Executable file
22
autogen.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
PKG_NAME="Gnome Top Library"
|
||||
|
||||
(test -f $srcdir/configure.in \
|
||||
&& test -f $srcdir/copyright.txt \
|
||||
&& test -d $srcdir/sysdeps) || {
|
||||
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||
echo " top-level gnome directory"
|
||||
exit 1
|
||||
}
|
||||
|
||||
which gnome-autogen.sh || {
|
||||
echo "You need to install gnome-common from the GNOME CVS"
|
||||
exit 1
|
||||
}
|
||||
REQUIRED_AUTOMAKE_VERSION=1.9
|
||||
. gnome-autogen.sh
|
395
configure.in
Normal file
395
configure.in
Normal file
@@ -0,0 +1,395 @@
|
||||
dnl
|
||||
dnl Configure script for the Gnome library
|
||||
dnl
|
||||
|
||||
m4_define([libgtop_major_version], [2])
|
||||
m4_define([libgtop_minor_version], [23])
|
||||
m4_define([libgtop_micro_version], [4])
|
||||
m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version])
|
||||
|
||||
dnl increment if the interface has additions, changes, removals.
|
||||
m4_define([libgtop_current], [9])
|
||||
|
||||
dnl increment any time the source changes; set to
|
||||
dnl 0 if you increment CURRENT
|
||||
m4_define([libgtop_revision], [0])
|
||||
|
||||
dnl increment if any interfaces have been added; set to 0
|
||||
dnl if any interfaces have been removed. removal has
|
||||
dnl precedence over adding, so set to 0 if both happened.
|
||||
m4_define([libgtop_age], [2])
|
||||
|
||||
# Increase each time you change the client/server protocol.
|
||||
m4_define([libgtop_server_version], [5])
|
||||
|
||||
# Version code calculation
|
||||
m4_define([libgtop_version_code], [m4_eval(libgtop_major_version * 1000000 + libgtop_minor_version * 1000 + libgtop_micro_version)])
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT([libgtop], [libgtop_version],
|
||||
[http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop])
|
||||
AC_CONFIG_SRCDIR(copyright.txt)
|
||||
AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
||||
AM_INIT_AUTOMAKE
|
||||
AC_SUBST(ACLOCAL_AMFLAGS, [\${ACLOCAL_FLAGS}])
|
||||
|
||||
AC_SUBST(LIBGTOP_MAJOR_VERSION, [libgtop_major_version])
|
||||
AC_SUBST(LIBGTOP_MINOR_VERSION, [libgtop_minor_version])
|
||||
AC_SUBST(LIBGTOP_MICRO_VERSION, [libgtop_micro_version])
|
||||
AC_SUBST(LIBGTOP_SERVER_VERSION, [libgtop_server_version])
|
||||
AC_SUBST(LIBGTOP_VERSION, [libgtop_version])
|
||||
AC_SUBST(LIBGTOP_VERSION_CODE, [libgtop_version_code])
|
||||
|
||||
# libtool versioning
|
||||
AC_SUBST(LT_VERSION_INFO,
|
||||
["-version-info libgtop_current:libgtop_revision:libgtop_age"])
|
||||
|
||||
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I ."
|
||||
|
||||
AC_ISC_POSIX
|
||||
AC_PROG_CC
|
||||
AC_STDC_HEADERS
|
||||
dnl AC_ARG_PROGRAM
|
||||
|
||||
dnl We need this at some places.
|
||||
libgtop_top_builddir=`pwd`
|
||||
AC_SUBST(libgtop_top_builddir)
|
||||
|
||||
dnl We don't use `AC_PROG_AWK' since it checks for mawk first which
|
||||
dnl does not work for libgtop.
|
||||
AC_CHECK_PROGS(AWK, gawk awk, )
|
||||
test -z "$AWK" && AC_MSG_ERROR([Sorry, you need a working awk interpreter.])
|
||||
|
||||
dnl Most people should have a working perl interpreter on their system
|
||||
AC_CHECK_PROGS(PERL, perl5 perl)
|
||||
test -z "$PERL" && AC_MSG_ERROR([You need to have a working perl interpreter.])
|
||||
|
||||
AC_CHECK_TOOL(CC,gcc)
|
||||
AC_CHECK_TOOL(RANLIB,ranlib)
|
||||
AC_CHECK_TOOL(AS,as)
|
||||
AC_CHECK_TOOL(AR,ar)
|
||||
|
||||
export CC CXX RANLIB LD AS AR
|
||||
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_MAKE_SET
|
||||
|
||||
export cross_compiling
|
||||
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
|
||||
|
||||
GNOME_LIBGTOP_SYSDEPS
|
||||
GNOME_LIBGTOP_TYPES
|
||||
|
||||
GLIB_REQUIRED=2.6.0
|
||||
|
||||
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
|
||||
AC_SUBST(GLIB_CFLAGS)
|
||||
AC_SUBST(GLIB_LIBS)
|
||||
|
||||
AC_CHECK_HEADER(ifaddrs.h, [HAVE_IFADDRS_H=yes], [HAVE_IFADDRS_H=no])
|
||||
if test x$HAVE_IFADDRS_H = xyes ; then
|
||||
AC_DEFINE(HAVE_IFADDRS_H, 1, [defined if you have ifaddrs.h])
|
||||
fi
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_TYPE_OFF_T
|
||||
AC_TYPE_PID_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_STRUCT_ST_RDEV
|
||||
AC_HEADER_TIME
|
||||
AC_STRUCT_TM
|
||||
AC_TYPE_UID_T
|
||||
|
||||
dnl For SunOS
|
||||
AC_CHECK_TYPE(ssize_t, int)
|
||||
AC_CHECK_HEADERS(memory.h)
|
||||
AC_CHECK_HEADERS(string.h strings.h, break)
|
||||
AC_REPLACE_FUNCS(strerror)
|
||||
|
||||
dnl dlopen() and dlsym()
|
||||
DL_LIB=
|
||||
AC_CHECK_FUNCS(dlopen,,[
|
||||
AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl", [
|
||||
AC_CHECK_LIB(dld, shl_load, DL_LIB="-ldld", [
|
||||
AC_CHECK_FUNCS(dlopen, DL_LIB="", DL_LIB="")
|
||||
])
|
||||
])
|
||||
])
|
||||
oLIBS="$LIBS"
|
||||
LIBS="$LIBS $DL_LIB"
|
||||
AC_CHECK_FUNCS(dlerror,,)
|
||||
LIBS="$oLIBS"
|
||||
AC_SUBST(DL_LIB)
|
||||
|
||||
dnl Linux
|
||||
AC_CHECK_HEADER(linux/isdn.h,[HAVE_ISDN_H=yes],[HAVE_ISDN_H=no])
|
||||
if test x$HAVE_ISDN_H = xyes ; then
|
||||
AC_DEFINE(HAVE_ISDN_H, 1, [defined if you have linux/isdn.h])
|
||||
fi
|
||||
|
||||
dnl AIX
|
||||
AC_CHECK_LIB(perfstat, vmgetinfo,
|
||||
AC_DEFINE(HAVE_VMGETINFO, 1,
|
||||
[Define to 1 if you have the 'vmgetinfo' function in libperfstat]))
|
||||
|
||||
dnl Solaris
|
||||
case "$host_os" in
|
||||
solaris*)
|
||||
AC_CHECK_LIB(kstat, kstat_open)
|
||||
AC_CHECK_FUNCS(getloadavg swapctl)
|
||||
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
|
||||
|
||||
|
||||
dnl Some versions of Solaris require -lelf for -lkvm
|
||||
case $host_os in
|
||||
solaris[[8-9]] | solaris2.[[0-9]].*)
|
||||
AC_CHECK_LIB(kvm, kvm_open,[
|
||||
LIBS="-lkvm $LIBS"
|
||||
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
|
||||
AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
|
||||
[ac_save_LIBS="$LIBS"
|
||||
LIBS="-lkvm -lelf $LIBS"
|
||||
AC_TRY_LINK([char kvm_open();], [kvm_open()],
|
||||
ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
|
||||
LIBS="$ac_save_LIBS"
|
||||
])
|
||||
if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
LIBS="-lkvm -lelf $LIBS"
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
])
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl For DEC OSF1
|
||||
AC_CHECK_LIB(mach, vm_statistics)
|
||||
|
||||
dnl For some broken libc5 systems (Debian 1.3)
|
||||
saved_CFLAGS=$CFLAGS
|
||||
CFLAGS="$CFLAGS -D_GNU_SOURCE"
|
||||
GCC_NEED_DECLARATION(program_invocation_name, [
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
])
|
||||
|
||||
CFLAGS=$saved_CFLAGS
|
||||
|
||||
AC_CHECK_FUNC(socket,
|
||||
[AC_CHECK_HEADER(netinet/in.h,
|
||||
[AC_CHECK_HEADER(arpa/inet.h, [
|
||||
AC_DEFINE(HAVE_SOCKETS, 1, [Define if BSD sockets are supported])
|
||||
AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
|
||||
AC_TRY_LINK([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
],
|
||||
[static struct sockaddr_un x; x.sun_len = 1;],
|
||||
[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un has a sun_len member])],
|
||||
[AC_MSG_RESULT(no)])])])])
|
||||
|
||||
dnl Checks for library functions.
|
||||
AC_FUNC_ALLOCA
|
||||
AC_FUNC_MMAP
|
||||
AC_TYPE_SIGNAL
|
||||
AC_FUNC_STRFTIME
|
||||
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
|
||||
|
||||
IT_PROG_INTLTOOL([0.35.0])
|
||||
|
||||
GETTEXT_PACKAGE=libgtop-2.0
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
|
||||
[Define to the gettext package used by the library])
|
||||
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
GLIB_DEFINE_LOCALEDIR([GTOPLOCALEDIR])
|
||||
|
||||
AC_PATH_XTRA
|
||||
|
||||
dnl For Solaris
|
||||
dnl Please don't move this before AC_PATH_XTRA
|
||||
AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
|
||||
AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect)])
|
||||
AC_CHECK_FUNC(inet_aton,,[AC_CHECK_LIB(resolv,inet_aton)])
|
||||
|
||||
dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n
|
||||
dnl So we use the following instead.
|
||||
dnl XE_SPACE(var, words)
|
||||
define([XE_SPACE],[
|
||||
T=""
|
||||
for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
|
||||
$1="$T"
|
||||
])dnl
|
||||
|
||||
dnl Autodetect Xauth
|
||||
dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
|
||||
saved_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
||||
test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no) }
|
||||
test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no, $X_LIBS) }
|
||||
test -z "$with_xauth" && with_xauth=yes
|
||||
if test "$with_xauth" = "yes"; then
|
||||
AC_DEFINE(HAVE_XAUTH, 1, [Define if Xauth is supported])
|
||||
XE_SPACE(libs_xauth, $X_LIBS -lXau)
|
||||
fi
|
||||
CPPFLAGS="$saved_CPPFLAGS"
|
||||
AC_SUBST(libs_xauth)
|
||||
|
||||
dnl For diskusage stuff
|
||||
GNOME_FILEUTILS_CHECKS
|
||||
|
||||
dnl Debugging
|
||||
AC_ARG_ENABLE(debug,
|
||||
AS_HELP_STRING([--enable-debug],
|
||||
[Turn on debugging @<:@default=no@:>@]),
|
||||
AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 1, [Define to enable debugging]))
|
||||
AC_ARG_ENABLE(fatal-warnings,
|
||||
AS_HELP_STRING([--enable-fatal-warnings],
|
||||
[Make all warnings fatal @<:@debug=no@:>@]),
|
||||
AC_DEFINE(LIBGTOP_FATAL_WARNINGS, 1,
|
||||
[Define to enable fatal warnings]))
|
||||
|
||||
dnl These definitions are expanded in make.
|
||||
LIBGTOP_LIBS='-L$(libdir)'
|
||||
LIBGTOP_INCS='-I$(includedir)/libgtop-2.0'
|
||||
|
||||
if test x$libgtop_use_machine_h = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_GLIBTOP_MACHINE_H"
|
||||
fi
|
||||
|
||||
if test x$libgtop_smp = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SMP"
|
||||
fi
|
||||
|
||||
if test x$libgtop_have_sysinfo = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
|
||||
fi
|
||||
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS $GLIB_CFLAGS"
|
||||
|
||||
libgtop_save_prefix="$prefix"
|
||||
libgtop_save_exec_prefix="$exec_prefix"
|
||||
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
||||
test "x$exec_prefix" = xNONE && exec_prefix=$prefix
|
||||
LIBGTOP_BINDIR=`eval echo "${bindir}"`
|
||||
LIBGTOP_SERVER=`eval echo "${bindir}/libgtop_server2"`
|
||||
prefix="$libgtop_save_prefix"
|
||||
exec_prefix="$libgtop_save_exec_prefix"
|
||||
|
||||
sysdeps_dir="$libgtop_sysdeps_dir"
|
||||
AC_SUBST(sysdeps_dir)
|
||||
|
||||
if test -z "$LIBGTOP_EXTRA_LIBS" ; then
|
||||
LIBGTOP_EXTRA_LIBS="$libs_xauth"
|
||||
else
|
||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $libs_xauth"
|
||||
fi
|
||||
|
||||
LIBGTOP_EXTRA_LIBS="$GLIB_LIBS $LIBGTOP_EXTRA_LIBS"
|
||||
|
||||
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
||||
|
||||
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
||||
|
||||
machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir"
|
||||
|
||||
AC_SUBST(machine_incs)
|
||||
|
||||
if test "$GCC" = "yes" ; then
|
||||
CFLAGS="\
|
||||
-Winline \
|
||||
-Wall \
|
||||
-std=gnu89 \
|
||||
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
|
||||
-Wnested-externs -Wpointer-arith \
|
||||
-Wcast-align -Wsign-compare \
|
||||
$CFLAGS"
|
||||
fi
|
||||
|
||||
INCLUDES="-I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $X_CFLAGS"
|
||||
|
||||
# Add various defines to the config.h file ...
|
||||
AH_VERBATIM([_GNU_SOURCE],
|
||||
[/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# define _GNU_SOURCE
|
||||
#endif])
|
||||
AC_DEFINE([_IN_LIBGTOP], 1,
|
||||
[Note that we are building libgtop rather than using it])
|
||||
AC_DEFINE([LIBGTOP_VERSION], ["libgtop_version"],
|
||||
[The libgtop version number])
|
||||
AC_DEFINE([LIBGTOP_SERVER_VERSION], ["libgtop_server_version"],
|
||||
[The libgtop server version])
|
||||
AC_DEFINE([LIBGTOP_VERSION_CODE], [libgtop_version_code],
|
||||
[The libgtop version number as an integer])
|
||||
AC_DEFINE_UNQUOTED([LIBGTOP_SERVER], ["$LIBGTOP_SERVER"],
|
||||
[The path to the libgtop server])
|
||||
|
||||
AC_SUBST(INCLUDES)
|
||||
|
||||
AC_SUBST(LIBGTOP_EXTRA_LIBS)
|
||||
AC_SUBST(GLIB_LIBS)
|
||||
AC_SUBST(LIBGTOP_LIBS)
|
||||
AC_SUBST(LIBGTOP_INCS)
|
||||
AC_SUBST(LIBGTOP_BINDIR)
|
||||
AC_SUBST(LIBGTOP_SERVER)
|
||||
|
||||
if test x$libgtop_need_server = xyes ; then
|
||||
sysdeps_suid_lib="\$(top_builddir)/sysdeps/\$(sysdeps_dir)/libgtop_sysdeps_suid-2.0.la"
|
||||
server_programs='libgtop_server2'
|
||||
else
|
||||
sysdeps_suid_lib=
|
||||
server_programs=
|
||||
fi
|
||||
AC_SUBST(sysdeps_suid_lib)
|
||||
AC_SUBST(server_programs)
|
||||
|
||||
GTK_DOC_CHECK(1.4)
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
libgtop.spec
|
||||
po/Makefile.in
|
||||
misc/Makefile
|
||||
include/Makefile
|
||||
include/glibtop/Makefile
|
||||
sysdeps/Makefile
|
||||
sysdeps/common/Makefile
|
||||
sysdeps/stub/Makefile
|
||||
sysdeps/stub_suid/Makefile
|
||||
sysdeps/sun4/Makefile
|
||||
sysdeps/osf1/Makefile
|
||||
sysdeps/linux/Makefile
|
||||
sysdeps/freebsd/Makefile
|
||||
sysdeps/solaris/Makefile
|
||||
sysdeps/aix/Makefile
|
||||
sysdeps/bsd/Makefile
|
||||
sysdeps/darwin/Makefile
|
||||
src/Makefile
|
||||
src/daemon/Makefile
|
||||
lib/Makefile
|
||||
examples/Makefile
|
||||
doc/Makefile
|
||||
doc/reference/Makefile
|
||||
doc/reference/version.xml
|
||||
libgtop-2.0.pc
|
||||
libgtopconfig.h
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
22
copyright.txt
Normal file
22
copyright.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 2.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
Contributed by Benoît Dejean <TazForEver@dlfp.org>, 2004.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
9
debian/README.Debian
vendored
Normal file
9
debian/README.Debian
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
LibGTop CVS snapshots for Debian
|
||||
--------------------------------
|
||||
|
||||
This is a debian package made from a stable release of LibGTop, but it
|
||||
should be considered "unofficial" since I'm not a Debian Maintainer.
|
||||
|
||||
|
||||
Martin Baulig <martin@home-of-linux.org>, Wed, 16 Feb 2000 16:40:50 +0100
|
||||
|
121
debian/changelog
vendored
Normal file
121
debian/changelog
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
libgtop (1.0.7-1) unstable; urgency=low
|
||||
* New upstream source (1.0.7 "Copenhagen" release)
|
||||
* Non-maintainer upload; since I'm not a Debian maintainer, this is some
|
||||
kind of "unofficial" debian package for LibGTop 1.0.7 - but I think it
|
||||
can be considered stable and working.
|
||||
|
||||
-- Martin Baulig <martin@home-of-linux.org> Wed, 16 Feb 2000 16:40:50 +0100
|
||||
|
||||
libgtop (1.0.6-1) unstable; urgency=low
|
||||
* New upstream source
|
||||
|
||||
-- Ian Lynagh (wibble) <igloo@debian.org> Wed, 20 Oct 1999 16:16:27 +0100
|
||||
|
||||
libgtop (1.0.4.5pre1-1) frozen unstable; urgency=low
|
||||
* New upstream source (1.0.5 pre release)
|
||||
* Maintainer e-mail address changed to igloo@debian.org
|
||||
|
||||
-- Ian Lynagh (wibble) <igloo@debian.org> Thu, 30 Sep 1999 22:37:33 +0100
|
||||
|
||||
libgtop (1.0.4-1) frozen unstable; urgency=low
|
||||
* New upstream source
|
||||
* Removed nasty sed stuff from the rules in favour of make install prefix=...
|
||||
* Added .la files to libgtop-dev
|
||||
* Added info to the copyright file
|
||||
* Wrote simple man page for libgtop-config.
|
||||
* Recompiled with later debhelper so docs go to /usr/share/doc as per FHS
|
||||
* changed infodir to /usr/share/info
|
||||
|
||||
-- Ian Lynagh (wibble) <igloo@debian.org> Mon, 20 Sep 1999 00:06:16 +0100
|
||||
|
||||
libgtop (1.0.1-2) frozen unstable; urgency=low
|
||||
|
||||
* Didn't actually use wildcards in libgtop-dev.files because tar complained
|
||||
* Set section names properly
|
||||
|
||||
-- Ian Lynagh <ian@lynagh.demon.co.uk> Sun, 7 Mar 1999 00:53:50 +0000
|
||||
|
||||
libgtop (1.0.1-1) frozen unstable; urgency=low
|
||||
|
||||
* SONAME changed back to 1. Fun fun fun.
|
||||
* Added RELNOTES-1.0 to debian/libgtop1.docs and debian/rules
|
||||
* Changed libgtop1.README.Debian to at least make sense
|
||||
* Used wildcards in libgtop-dev.files
|
||||
|
||||
-- Ian Lynagh <ian@lynagh.demon.co.uk> Sun, 7 Mar 1999 00:53:50 +0000
|
||||
|
||||
libgtop (1.0.1-0.1) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload for GNOME 1.0
|
||||
|
||||
-- Jules Bean <jules@debian.org> Thu, 4 Mar 1999 22:34:12 +0000
|
||||
|
||||
libgtop (0.99.2-0.2) unstable; urgency=low
|
||||
|
||||
* Oops, forgot some files.
|
||||
|
||||
-- Jim Pick <jim@jimpick.com> Sun, 24 Jan 1999 02:12:24 -0800
|
||||
|
||||
libgtop (0.99.2-0.1) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* New upstream source.
|
||||
* SONAME is now 0 again. Hmmm.
|
||||
|
||||
-- Jim Pick <jim@jimpick.com> Sat, 23 Jan 1999 20:21:38 -0800
|
||||
|
||||
libgtop (0.26.2-4) frozen unstable; urgency=low
|
||||
|
||||
* Upstream changelog installed as changelog
|
||||
* debian/shlibs.local removed in favour of the LD_LIBRARY_PATH line
|
||||
|
||||
-- Ian Lynagh <ian@lynagh.demon.co.uk> Thu, 26 Nov 1998 17:20:24 +0000
|
||||
|
||||
libgtop (0.26.2-3.1) frozen unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Upload to frozen, corrects Bug #29110, Bug #29111, which were
|
||||
already fixed.
|
||||
* Noticed that guile option is no longer being used, so I removed
|
||||
the dependency.
|
||||
* Added changelog (to fix lintian error).
|
||||
* Changed control file to use macro substitutions. This is a much
|
||||
less error-prone way of building dependencies than doing them by
|
||||
hand.
|
||||
* Added -V option to dh_makeshlibs to put version number on shlibs
|
||||
file.
|
||||
* Added shlibs.local file with null entry for "libgtop 1" (and
|
||||
others) so libgtop1 doesn't declare a relationship on itself.
|
||||
|
||||
-- Jim Pick <jim@jimpick.com> Wed, 25 Nov 1998 12:03:12 -0800
|
||||
|
||||
libgtop (0.26.2-3) frozen unstable; urgency=low
|
||||
|
||||
* libgtop0 changed to libgtop1
|
||||
* Added an #ifndef strstr around the prototype of strstr in
|
||||
sysdeps/common/mountlist.c as this is a macro under glibc 2.1.
|
||||
|
||||
-- Ian Lynagh <ian@lynagh.demon.co.uk> Sun, 8 Nov 1998 12:06:09 +0000
|
||||
|
||||
libgtop (0.26.2-2) frozen unstable; urgency=low
|
||||
|
||||
* Fixes minor bugs in debian/rules
|
||||
|
||||
-- Ian Lynagh <ian@lynagh.demon.co.uk> Fri, 16 Oct 1998 05:30:16 +0200
|
||||
|
||||
libgtop (0.26.2-1) unstable; urgency=low
|
||||
|
||||
* New upstream version
|
||||
* Non-maintainer release
|
||||
|
||||
-- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 16 Oct 1998 05:30:16 +0200
|
||||
|
||||
libgtop (0.26.0-1) unstable; urgency=low
|
||||
|
||||
* Initial Release.
|
||||
|
||||
-- Jim Pick <jim@jimpick.com> Thu, 24 Sep 1998 18:42:48 -0700
|
||||
|
||||
Local variables:
|
||||
mode: debian-changelog
|
||||
End:
|
33
debian/control.in
vendored
Normal file
33
debian/control.in
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
Source: libgtop@SUFFIX@
|
||||
Maintainer: Martin Baulig <martin@home-of-linux.org>
|
||||
Section: libs
|
||||
Priority: optional
|
||||
Standards-Version: 3.0.0
|
||||
|
||||
Package: libgtop1@SUFFIX@
|
||||
Architecture: any
|
||||
Section: libs
|
||||
Depends: ${shlibs:Depends}
|
||||
Description: Portable system access library (part of Gnome)
|
||||
Gnome is the "GNU Network Object Model Environment"
|
||||
.
|
||||
It is a project to build a complete, user-friendly desktop based
|
||||
entirely on free software.
|
||||
.
|
||||
This package contains the gtop libraries which read information about
|
||||
processes and the running systems.
|
||||
|
||||
Package: libgtop-dev@SUFFIX@
|
||||
Architecture: any
|
||||
Section: devel
|
||||
Depends: libgtop1@SUFFIX@ (= ${Source-Version})
|
||||
Description: Dev libraries for the portable system access library (part of Gnome)
|
||||
Gnome is the "GNU Network Object Model Environment"
|
||||
.
|
||||
It is a project to build a complete, user-friendly desktop based
|
||||
entirely on free software.
|
||||
.
|
||||
This package contains the include files and static library for the
|
||||
gtop libraries which read information about processes and the running
|
||||
systems.
|
||||
|
109
debian/debconfigure
vendored
Executable file
109
debian/debconfigure
vendored
Executable file
@@ -0,0 +1,109 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# debconfigure
|
||||
#
|
||||
# A script to generate a debian/rules file, with options.
|
||||
#
|
||||
# By Jim Pick <jim@jimpick.com>, GPL'd of course.
|
||||
# Adjusted for LibGTop by Martin Baulig <martin@home-of-linux.org>
|
||||
#
|
||||
|
||||
if [ ! -r rules.in ]; then
|
||||
echo "Please run the debconfigure script in the debian directory" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
debtype='official'
|
||||
prefix='/usr'
|
||||
gnomeprefix='/usr'
|
||||
localstatedir='/var/lib'
|
||||
pkgsuffix=''
|
||||
|
||||
for dc_option
|
||||
do
|
||||
case "$dc_option" in
|
||||
-*=*) dc_optarg=`echo "$dc_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
||||
*) dc_optarg= ;;
|
||||
esac
|
||||
|
||||
case "$dc_option" in
|
||||
|
||||
--clean)
|
||||
rm -f control rules *~ core *files *menu *substvars *.postinst *.debhelper
|
||||
exit ;;
|
||||
|
||||
--prefix=*)
|
||||
prefix="$dc_optarg" ;;
|
||||
|
||||
--localstatedir=*)
|
||||
prefix="$dc_optarg" ;;
|
||||
|
||||
--pkgsuffix=*)
|
||||
pkgsuffix="$dc_optarg" ;;
|
||||
|
||||
--gnome-prefix=*)
|
||||
gnomeprefix="$dc_optarg" ;;
|
||||
|
||||
--debtype=*)
|
||||
debtype="$dc_optarg" ;;
|
||||
|
||||
*)
|
||||
cat <<EOF 1>&2
|
||||
Usage: debconfigure [options]
|
||||
Options: [defaults in brackets after descriptions]
|
||||
--help print this message
|
||||
--clean remove generated files
|
||||
--prefix=PREFIX install files under under PREFIX dir [/usr]
|
||||
--gnome-prefix=PREFIX look for GNOME under PREFIX dir [/usr]
|
||||
--localstatedir=DIR directory for things like game scores [/var/lib]
|
||||
--pkgsuffix=SUFFIX append SUFFIX onto package names []
|
||||
--debtype=DEBTYPE enable macros with the name of DEBTYPE [official]
|
||||
EOF
|
||||
exit ;;
|
||||
|
||||
esac
|
||||
done
|
||||
|
||||
# Strip leading slash
|
||||
prefix=`expr $prefix : '/\(.*\)'`
|
||||
gnomeprefix=`expr $gnomeprefix : '/\(.*\)'`
|
||||
localstatedir=`expr $localstatedir : '/\(.*\)'`
|
||||
|
||||
for infile in `ls control.in rules.in`
|
||||
do
|
||||
tofile=`expr $infile : '\(.*\)\.in'`
|
||||
cat $infile | \
|
||||
sed "s,@SUFFIX@,$pkgsuffix,g" | \
|
||||
sed "s,@PREFIX@,$prefix,g" | \
|
||||
sed "s,@GNOMEPREFIX@,$gnomeprefix,g" | \
|
||||
sed "s,@LOCALSTATEDIR@,$localstatedir,g" | \
|
||||
sed "s,%$debtype>,," | sed '/^%/d' > $tofile
|
||||
done
|
||||
chmod +x rules
|
||||
|
||||
for filesfile in `ls *.files.in`
|
||||
do
|
||||
tofile=`expr $filesfile : '\(.*\)\.files\.in'`
|
||||
tofile=`echo $tofile$pkgsuffix.files`
|
||||
cat $filesfile | \
|
||||
sed "s,@SUFFIX@,$pkgsuffix,g" | \
|
||||
sed "s,@PREFIX@,$prefix,g" | \
|
||||
sed "s,@GNOMEPREFIX@,$gnomeprefix,g" | \
|
||||
sed "s,@LOCALSTATEDIR@,$localstatedir,g" | \
|
||||
sed "s,%$debtype>,," | sed '/^%/d' > $tofile
|
||||
done
|
||||
|
||||
for postinst in libgtop1$pkgsuffix
|
||||
do
|
||||
|
||||
cat > $postinst.postinst <<EOF
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
ldconfig
|
||||
|
||||
#DEBHELPER#
|
||||
EOF
|
||||
|
||||
done
|
||||
|
34
debian/libgtop-config.1
vendored
Normal file
34
debian/libgtop-config.1
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
.TH GTOP l "15 September 1999"
|
||||
.SH NAME
|
||||
\fBlibgtop-config\fP \- libgtop libraries and component information retrieval.
|
||||
.SH SYNTAX
|
||||
.B libgtop-config
|
||||
.RI [ --version ]
|
||||
.RI [ --config ]
|
||||
.RI [ --features-def-file ]
|
||||
.SH DESCRIPTION
|
||||
.B libgtop-config
|
||||
is used to retrieve information from installed libraries in the system.
|
||||
|
||||
This manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual page.
|
||||
.LP
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-\-version
|
||||
.PD
|
||||
Prints the version of libgtop that you're using.
|
||||
.TP
|
||||
.B \-\-config
|
||||
.PD
|
||||
Prints the location of libgtopConf.sh.
|
||||
.TP
|
||||
.B \-\-version
|
||||
.PD
|
||||
Prints the location of libgtop-features.def.
|
||||
.SH BUGS
|
||||
None known
|
||||
|
||||
.SH AUTHORS
|
||||
Martin Baulig (martin@home-of-linux.org)
|
||||
.TP
|
||||
Josh Sled (jsled@scam.XCF.Berkeley.EDU)
|
21
debian/libgtop-dev.files.in
vendored
Normal file
21
debian/libgtop-dev.files.in
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
@PREFIX@/lib/libgtop.a
|
||||
@PREFIX@/lib/libgtop_common.a
|
||||
@PREFIX@/lib/libgtop_suid_common.a
|
||||
@PREFIX@/lib/libgtop_sysdeps.a
|
||||
@PREFIX@/lib/libgtop.la
|
||||
@PREFIX@/lib/libgtop_common.la
|
||||
@PREFIX@/lib/libgtop_suid_common.la
|
||||
@PREFIX@/lib/libgtop_sysdeps.la
|
||||
@PREFIX@/lib/libgtopConf.sh
|
||||
@PREFIX@/lib/libgtop.so
|
||||
@PREFIX@/lib/libgtop_common.so
|
||||
@PREFIX@/lib/libgtop_suid_common.so
|
||||
@PREFIX@/lib/libgtop_sysdeps.so
|
||||
@PREFIX@/lib/libgtop-features.def
|
||||
@PREFIX@/lib/libgtop/include/*.h
|
||||
@PREFIX@/include/glibtop/*.h
|
||||
@PREFIX@/include/glibtop.h
|
||||
@PREFIX@/include/glibtop_server.h
|
||||
@PREFIX@/include/glibtop_machine.h
|
||||
@PREFIX@/info/libgtop.info
|
||||
@PREFIX@/bin/libgtop-config
|
5
debian/libgtop1.README.Debian
vendored
Normal file
5
debian/libgtop1.README.Debian
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
The Debian package of libgtop, a GNOME library.
|
||||
|
||||
--
|
||||
Martin Baulig <martin@home-of-linux.org>
|
12
debian/libgtop1.copyright
vendored
Normal file
12
debian/libgtop1.copyright
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
libgtop is released under the GPL.
|
||||
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||
Public License can be found in /usr/share/common-licenses/GPL
|
||||
|
||||
Original authors: Martin Baulig <martin@home-of-linux.org>
|
||||
Drazen Kacar <dave@srce.hr>
|
||||
|
||||
Originally Debianised by Jim Pick <jim@jimpick.com>
|
||||
Then re-Debianised in October 1998 by Martin Schulze
|
||||
<joey@finlandia.infodrom.north.de> before being taken over by Ian Lynagh
|
||||
<ian@lynagh.demon.co.uk> in November 1998.
|
5
debian/libgtop1.docs
vendored
Normal file
5
debian/libgtop1.docs
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
RELNOTES-0.25
|
||||
RELNOTES-1.0.x
|
||||
NEWS
|
||||
AUTHORS
|
||||
debian/changelog
|
4
debian/libgtop1.files.in
vendored
Normal file
4
debian/libgtop1.files.in
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
@PREFIX@/lib/libgtop*.so.[0-9].[0-9][0-9].[0-9]
|
||||
@PREFIX@/lib/libgtop*.so.[0-9].[0-9].[0-9]
|
||||
@PREFIX@/lib/libgtop*.so.[0-9]
|
||||
@PREFIX@/share/locale/*/*/libgtop.mo
|
5
debian/libgtop2.README.Debian
vendored
Normal file
5
debian/libgtop2.README.Debian
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
The Debian package of libgtop, a GNOME library.
|
||||
|
||||
--
|
||||
Ian Lynagh <ian@lynagh.demon.co.uk>
|
12
debian/libgtop2.copyright
vendored
Normal file
12
debian/libgtop2.copyright
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
libgtop is released under the GPL.
|
||||
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||
Public License can be found in /usr/share/common-licenses/GPL
|
||||
|
||||
Original authors: Martin Baulig <martin@home-of-linux.org>
|
||||
Drazen Kacar <dave@srce.hr>
|
||||
|
||||
Originally Debianised by Jim Pick <jim@jimpick.com>
|
||||
Then re-Debianised in October 1998 by Martin Schulze
|
||||
<joey@finlandia.infodrom.north.de> before being taken over by Ian Lynagh
|
||||
<ian@lynagh.demon.co.uk> in November 1998.
|
7
debian/libgtop2.docs
vendored
Normal file
7
debian/libgtop2.docs
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
RELNOTES-0.25
|
||||
RELNOTES-1.0
|
||||
RELNOTES-1.1.x
|
||||
NEWS
|
||||
AUTHORS
|
||||
TODO
|
||||
debian/changelog
|
2
debian/libgtop2.files.in
vendored
Normal file
2
debian/libgtop2.files.in
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
@PREFIX@/lib/libgtop*-1.1.so.*.*
|
||||
@PREFIX@/lib/libgtop*-1.1.so.*
|
115
debian/rules.in
vendored
Executable file
115
debian/rules.in
vendored
Executable file
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/make -f
|
||||
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
|
||||
# This version is for a hypothetical package that builds an
|
||||
# architecture-dependant package, as well as an architecture-independent
|
||||
# package.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
i=$(shell pwd)/debian/tmp
|
||||
b=$(shell pwd)/debian/build
|
||||
|
||||
configure: configure.in
|
||||
@echo "--- Making configure script and configuring"
|
||||
chmod +x autogen.sh
|
||||
./autogen.sh --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \
|
||||
--localstatedir=/@LOCALSTATEDIR@
|
||||
|
||||
Makefile: configure
|
||||
@echo "--- Configuring"
|
||||
./configure --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \
|
||||
--localstatedir=/@LOCALSTATEDIR@
|
||||
|
||||
build: configure Makefile build-debstamp
|
||||
build-debstamp:
|
||||
@echo "--- Compiling"
|
||||
dh_testdir
|
||||
$(MAKE) all
|
||||
touch build-debstamp
|
||||
|
||||
clean: Makefile
|
||||
@echo "--- Cleaning"
|
||||
dh_testdir
|
||||
dh_clean
|
||||
-rm -rf static shared
|
||||
-rm -f build-debstamp install-debstamp
|
||||
-make -k distclean
|
||||
-rm -f `find . -name "*~"`
|
||||
-rm -f `find . -name "*\.la"`
|
||||
-rm -rf `find . -name "\.deps"`
|
||||
-rm -rf `find . -name "\.libs"`
|
||||
-rm -rf `find . -name "*\.rej"`
|
||||
-rm -rf debian/tmp `find debian/* -type d ! -name CVS` debian/files* core
|
||||
-rm -f debian/*substvars
|
||||
|
||||
install: build install-debstamp
|
||||
install-debstamp:
|
||||
@echo "--- Installing"
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -rf $(b)
|
||||
$(MAKE) install prefix=$(i)/@PREFIX@ exec_prefix=$(i)/@PREFIX@ \
|
||||
localstatedir=$(i)/@LOCALSTATEDIR@
|
||||
touch install-debstamp
|
||||
|
||||
install-save: install
|
||||
rm -rf $(i).saved
|
||||
cp -a $(i) $(i).saved
|
||||
|
||||
install-saved:
|
||||
rm -rf $(i)
|
||||
cp -a $(i).saved $(i)
|
||||
rm -rf $(b)
|
||||
touch install-debstamp
|
||||
|
||||
binary-indep: build install
|
||||
|
||||
binary-arch: build install \
|
||||
libgtop1@SUFFIX@ \
|
||||
libgtop-dev@SUFFIX@
|
||||
|
||||
#
|
||||
# libgtop1@SUFFIX@
|
||||
#
|
||||
|
||||
libgtop1@SUFFIX@: install
|
||||
@echo "--- Building: $@"
|
||||
dh_installdocs -p$@ -P$(b)/$@ README NEWS AUTHORS
|
||||
dh_installchangelogs -p$@ -P$(b)/$@ ChangeLog
|
||||
dh_movefiles -p$@ -P$(b)/$@
|
||||
dh_strip -p$@ -P$(b)/$@
|
||||
dh_compress -p$@ -P$(b)/$@
|
||||
dh_fixperms -p$@ -P$(b)/$@
|
||||
dh_installdeb -p$@ -P$(b)/$@
|
||||
dh_shlibdeps -p$@ -P$(b)/$@
|
||||
dh_gencontrol -p$@ -P$(b)/$@
|
||||
dh_makeshlibs -p$@ -P$(b)/$@ -V
|
||||
dh_md5sums -p$@ -P$(b)/$@
|
||||
dh_builddeb -p$@ -P$(b)/$@
|
||||
|
||||
#
|
||||
# libgtop-dev
|
||||
#
|
||||
|
||||
libgtop-dev@SUFFIX@: install
|
||||
@echo "--- Building: $@"
|
||||
mkdir -p $(b)/$@/usr/doc
|
||||
cd $(b)/$@/usr/doc; ln -s libgtop1@SUFFIX@ $@
|
||||
dh_movefiles -p$@ -P$(b)/$@
|
||||
dh_strip -p$@ -P$(b)/$@
|
||||
dh_compress -p$@ -P$(b)/$@
|
||||
dh_fixperms -p$@ -P$(b)/$@
|
||||
dh_installdeb -p$@ -P$(b)/$@
|
||||
dh_shlibdeps -p$@ -P$(b)/$@
|
||||
dh_gencontrol -p$@ -P$(b)/$@
|
||||
dh_makeshlibs -p$@ -P$(b)/$@ -V
|
||||
dh_undocumented -p$@ -P$(b)/$@ \
|
||||
libgtop-config.1
|
||||
dh_md5sums -p$@ -P$(b)/$@
|
||||
dh_builddeb -p$@ -P$(b)/$@
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: binary clean binary-indep binary-arch build install install-save install-saved
|
||||
|
||||
|
90
doc/ChangeLog
Normal file
90
doc/ChangeLog
Normal file
@@ -0,0 +1,90 @@
|
||||
2007-02-15 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* reference/Makefile.am:
|
||||
|
||||
Fixed distcheck.
|
||||
|
||||
2006-02-21 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* reference.texi: Fixed glibtop_get_proc_state doc.
|
||||
Patch by Emil Nowak <emil5@go2.pl>.
|
||||
|
||||
2005-01-03 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* reference.texi: Updated.
|
||||
|
||||
2004-12-04 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* reference.texi: Updated.
|
||||
|
||||
2004-08-03 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* reference.texi: Updated.
|
||||
|
||||
2004-07-07 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* reference.texi: updated.
|
||||
Added glibtop_get_proc_argv.
|
||||
Added glibtop_fsusage.block_size.
|
||||
|
||||
2004-03-05 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* reference.texi: update for new API
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* reference.texi: s/u_int64_t/guint64/
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* Makefile.am: removed traces of guile, intllibs and libgnomesupport
|
||||
|
||||
2002-03-12 James Henstridge <james@daa.com.au>
|
||||
|
||||
* Makefile.am (MAKEINFO): using += seems to screw up the build
|
||||
with newer automakes. Set it explicitly (using @MAKEINFO@) seems
|
||||
to be compatible with both.
|
||||
|
||||
2001-11-26 Abel Cheung <maddog@linux.org.hk>
|
||||
|
||||
* libgtop.texi, Makefile.am: Renamed to libgtop2.texi
|
||||
* about.texi: Very minor update.
|
||||
|
||||
1999-10-18 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* about.texi: Added a note about LibGTop and GNOME.
|
||||
|
||||
* reference.texi (glibtop_proc_state): Fix description of the `state'
|
||||
field for LibGTop 1.0.x.
|
||||
|
||||
1999-09-29 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am (MAKEINFO): Add `-I @libgtop_top_builddir@/doc' here.
|
||||
|
||||
1999-05-16 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* main.texi: This is now the main file which will @include all
|
||||
chapter files so we can use `texinfo-multiple-files-update'.
|
||||
|
||||
* reference.texi: Added all missing sections with a "not yet written"
|
||||
notice.
|
||||
|
||||
1999-05-16 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* white-paper.texi: Initial version of the LibGTop White Paper.
|
||||
|
||||
* Makefile.am: Create `auto-macros.texi' from `auto-macros.texi.in'
|
||||
which will contain some `@set' commands for the LibGTop version etc.
|
||||
|
||||
* auto-macros.texi.in: New file. This is a template for
|
||||
`auto-macros.texi' which will be automatically generated.
|
||||
|
||||
1999-05-09 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* about.texi: Split the `libgtop.texi' into one file pro chapter,
|
||||
this is the "About LibGTop".
|
||||
|
||||
* reference.texi: The "LibGTop Reference Manual".
|
||||
|
||||
* libgtop.texi: Initial version of the new LibGTop Manual.
|
||||
|
8
doc/Makefile.am
Normal file
8
doc/Makefile.am
Normal file
@@ -0,0 +1,8 @@
|
||||
SUBDIRS = reference
|
||||
|
||||
info_TEXINFOS = libgtop2.texi
|
||||
|
||||
libgtop2_TEXINFOS = libgtop2.texi about.texi reference.texi \
|
||||
version.texi main.texi white-paper.texi
|
||||
|
||||
AM_MAKEINFOFLAGS = -I $(libgtop_top_builddir)/doc
|
123
doc/about.texi
Normal file
123
doc/about.texi
Normal file
@@ -0,0 +1,123 @@
|
||||
@node About, White Paper, Top, Top
|
||||
@chapter About LibGTop
|
||||
|
||||
LibGTop is a library to get system specific data such as CPU and Memory Usage
|
||||
and information about running Processes.
|
||||
|
||||
On Systems like Solaris or Digital Unix where you need special privileges to
|
||||
get those data, it uses a setuid/setgid server to do so.
|
||||
|
||||
Even if LibGTop is a part of the GNOME desktop environment
|
||||
(@uref{http://www.gnome.org}), the main interface of LibGTop is totally
|
||||
independent from any particular desktop environment, so you can also use it
|
||||
as a standalone library in any piece of GPLed software.
|
||||
|
||||
@menu
|
||||
* Availability:: Where to get LibGTop
|
||||
* Supported Platforms:: Supported Platforms
|
||||
* Mailing List:: Helping with LibGTop development
|
||||
* Thanks:: People who contributed to LibGTop
|
||||
@end menu
|
||||
|
||||
@node Availability, Supported Platforms, About, About
|
||||
@section Availability
|
||||
|
||||
The master source of LibGTop is the GNOME CVS tree
|
||||
(see @uref{http://www.gnome.org} for details), but you can also get the
|
||||
latest release tarballs from
|
||||
|
||||
@display
|
||||
@uref{ftp://ftp.gnome.org/pub/GNOME/sources/libgtop/}
|
||||
@end display
|
||||
|
||||
@noindent
|
||||
or any of its mirror sites.
|
||||
|
||||
The latest stable version of LibGTop is 1.0.12 which is also the one that comes
|
||||
together with GNOME 1.0. It belongs to @code{LIBGTOP_STABLE_1_0} branch in CVS.
|
||||
Actual development occurs in the @code{libgtop-GNOME-2-0-port} which is
|
||||
currently versioned 1.90.0.
|
||||
|
||||
@node Supported Platforms, Mailing List, Availability, About
|
||||
@section Supported Platforms
|
||||
|
||||
The stable branch currently supports the following platforms:
|
||||
|
||||
@itemize @bullet
|
||||
@item All versions of Linux
|
||||
|
||||
LibGTop was tested under Linux 2.0.x and 2.2.x on the ix86 and the alpha, but
|
||||
it should also work without problems on SparcLinux or Linux 2.4.x.
|
||||
|
||||
Note: I'm speaking of the Linux kernel here, not the GNU/Linux operating system.
|
||||
|
||||
@item FreeBSD, NetBSD and OpenBSD
|
||||
|
||||
LibGTop was tested under FreeBSD 2.2.6 and 3.0, NetBSD 1.3.2 and OpenBSD 2.4.
|
||||
Support for NetBSD 1.4 was added in LibGTop 1.0.2.
|
||||
|
||||
@end itemize
|
||||
|
||||
The platforms listed above are known to be stable and working. However, if
|
||||
you're using the latest development version, you can use it on the following
|
||||
platforms as well:
|
||||
|
||||
@itemize @bullet
|
||||
@item BSD/OS
|
||||
|
||||
There is a port for BSD/OS (aka BSDI) 2.x and 3.x from Timur Bakeyev which
|
||||
should also work with 4.x. This isn't tested very well, but it should be
|
||||
working.
|
||||
|
||||
@item Digital Unix
|
||||
|
||||
There is some basic support for Digital Unix (formerly DEC OSF/1) V3.2C, but
|
||||
this may still be a bit unstable. I'm currently working on this port as time
|
||||
permits so it should be fully supported soon.
|
||||
|
||||
@item Solaris
|
||||
|
||||
The Solaris port currently works on Solaris 7 and maybe also on other releases.
|
||||
Thanks a lot to Drazen Kacar and everyone who helped working on this port. They
|
||||
have really done excellent work here and I'm pretty sure that this port will be
|
||||
fully functional on most Solaris versions in near future.
|
||||
|
||||
@end itemize
|
||||
|
||||
@node Mailing List, Thanks, Supported Platforms, About
|
||||
@section Mailing List
|
||||
|
||||
There is a @email{libgtop-devel-list@@egroups.com} mailing list for people who
|
||||
want to help with the development of LibGTop.
|
||||
|
||||
It is meant as a low-traffic, but high content-list where we can discuss
|
||||
technical details such as adding new sysdeps ports etc.
|
||||
|
||||
Especially, I'd like to see people with a deeper knowledge of operating systems
|
||||
internals joining my list so we can discuss technical details of the sysdeps
|
||||
code.
|
||||
|
||||
It is *not* for users that want to know how to compile LibGTop etc.
|
||||
|
||||
You can subscribe to this mailing list and view the mailing list archives
|
||||
on the LibGTop Page at @uref{http://www.home-of-linux.org/gnome/libgtop}.
|
||||
|
||||
@node Thanks, , Mailing List, About
|
||||
@section Thanks
|
||||
|
||||
At the place I'd like to thank the following people who contributed to
|
||||
LibGTop (listed in chronological order):
|
||||
|
||||
@itemize @bullet
|
||||
@item Sebastian Wilhelmi who had the initial idea of LibGTop and helped
|
||||
me a lot in the early beginning.
|
||||
@item Josh Sled for the initial FreeBSD port.
|
||||
@item Jeremy Lea for his BSD patches.
|
||||
@item Timur Bakeyev for the BSDI port.
|
||||
@item Drazen Kacar and the other people on the LibGTop development mailing
|
||||
list for the Solaris port.
|
||||
@item Kevin Vandersloot for the effort to port to GNOME 2.0.
|
||||
@item All people sending me patches, having good ideas, ...
|
||||
@item Everyone I have forgotten in this list ...
|
||||
@end itemize
|
||||
|
107
doc/internals.texi
Normal file
107
doc/internals.texi
Normal file
@@ -0,0 +1,107 @@
|
||||
@node LibGTop Internals, , Reference Manual, Top
|
||||
@chapter LibGTop Internals
|
||||
|
||||
@menu
|
||||
* General Internals:: General Internals
|
||||
* Sysdeps Internals:: Sysdeps Internals
|
||||
@end menu
|
||||
|
||||
@node General Internals, Sysdeps Internals, LibGTop Internals, LibGTop Internals
|
||||
@section General Internals
|
||||
|
||||
@menu
|
||||
* glibtop:: The server structure
|
||||
@end menu
|
||||
|
||||
@node glibtop, , General Internals, General Internals
|
||||
@subsection The server structure - @code{glibtop}
|
||||
|
||||
@example
|
||||
@cartouche
|
||||
typedef struct _glibtop glibtop;
|
||||
|
||||
struct _glibtop
|
||||
@{
|
||||
unsigned flags;
|
||||
unsigned method;
|
||||
unsigned error_method;
|
||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
||||
glibtop_machine machine;
|
||||
#endif
|
||||
int input [2];
|
||||
int output [2];
|
||||
int socket;
|
||||
int ncpu;
|
||||
unsigned long os_version_code;
|
||||
const char *name;
|
||||
const char *server_command;
|
||||
const char *server_host;
|
||||
const char *server_user;
|
||||
const char *server_rsh;
|
||||
unsigned long features;
|
||||
unsigned long server_port;
|
||||
glibtop_sysdeps sysdeps;
|
||||
glibtop_sysdeps required;
|
||||
glibtop_sysdeps wanted;
|
||||
pid_t pid;
|
||||
@};
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
@node Sysdeps Internals, , General Internals, LibGTop Internals
|
||||
@section Sysdeps Internals
|
||||
|
||||
@menu
|
||||
* glibtop_open_s:: Non-privileged initializations
|
||||
* glibtop_close_s:: Non-privileged cleanups
|
||||
@end menu
|
||||
|
||||
@node glibtop_open_s, glibtop_close_s, Sysdeps Internals, Sysdeps Internals
|
||||
@subsection glibtop_open_s
|
||||
|
||||
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
|
||||
initialize a server. It should do all initializations that do not need any
|
||||
privileges.
|
||||
|
||||
@example
|
||||
@cartouche
|
||||
void
|
||||
glibtop_open_s (glibtop *server, const char *program_name,
|
||||
const unsigned long features,
|
||||
const unsigned flags);
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
@table @code
|
||||
@item server
|
||||
Pointer to the @code{glibtop} server structure.
|
||||
@item program_name
|
||||
Name of the calling program; the implementation will usually
|
||||
set @samp{server->name} to this so it'll be used as the program
|
||||
name in error messages.
|
||||
@end table
|
||||
|
||||
Typically, this function will set @code{server->name}, @code{server->ncpu} and
|
||||
@code{server->os_version_code} and initialize any of the @code{server->machine}
|
||||
fields which do not need any privileges.
|
||||
|
||||
It is normally implemented in @file{open.c} in the sysdeps directory.
|
||||
|
||||
@node glibtop_close_s, , glibtop_open_s, Sysdeps Internals
|
||||
@subsection glibtop_close_s
|
||||
|
||||
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
|
||||
clean-up a server when it's no longer used.
|
||||
|
||||
It must free all resources that were allocated in @code{glibtop_open_s}.
|
||||
|
||||
@example
|
||||
@cartouche
|
||||
void
|
||||
glibtop_close_s (glibtop *server);
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
It is normally implemented in @file{close.c} in the sysdeps directory, but may
|
||||
be empty.
|
||||
|
88
doc/libgtop2.texi
Normal file
88
doc/libgtop2.texi
Normal file
@@ -0,0 +1,88 @@
|
||||
\input texinfo @c -*-texinfo-*-
|
||||
@c %**start of header
|
||||
@setfilename libgtop2.info
|
||||
@settitle LibGTop Reference Manual
|
||||
@setchapternewpage odd
|
||||
@c %**end of header
|
||||
|
||||
@include version.texi
|
||||
|
||||
@ifinfo
|
||||
This is the LibGTop Reference Manual version @value{VERSION}
|
||||
(last modified @value{UPDATED}).
|
||||
|
||||
Copyright 1999 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to make and distribute verbatim
|
||||
copies of this manual provided the copyright notice and
|
||||
this permission notice are preserved on all copies.
|
||||
|
||||
@ignore
|
||||
Permission is granted to process this file through TeX
|
||||
and print the results, provided the printed document
|
||||
carries a copying permission notice identical to this
|
||||
one except for the removal of this paragraph (this
|
||||
paragraph not being relevant to the printed manual).
|
||||
|
||||
@end ignore
|
||||
Permission is granted to copy and distribute modified
|
||||
versions of this manual under the conditions for
|
||||
verbatim copying, provided also that the sections
|
||||
entitled ``Copying'' and ``GNU General Public License''
|
||||
are included exactly as in the original, and provided
|
||||
that the entire resulting derived work is distributed
|
||||
under the terms of a permission notice identical to this
|
||||
one.
|
||||
|
||||
Permission is granted to copy and distribute
|
||||
translations of this manual into another language,
|
||||
under the above conditions for modified versions,
|
||||
except that this permission notice may be stated in a
|
||||
translation approved by the Free Software Foundation.
|
||||
|
||||
@format
|
||||
@dircategory Libraries:
|
||||
@direntry
|
||||
* LibGTop2: (libgtop2). Library to get system specific data
|
||||
such as cpu and memory usage, active
|
||||
processes
|
||||
@end direntry
|
||||
@end format
|
||||
|
||||
@end ifinfo
|
||||
|
||||
@titlepage
|
||||
@title LibGTop Reference Manual
|
||||
@subtitle Version @value{VERSION} - @value{UPDATED}
|
||||
@author Martin Baulig
|
||||
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
Copyright @copyright{} 1999 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to make and distribute verbatim
|
||||
copies of this manual provided the copyright notice and
|
||||
this permission notice are preserved on all copies.
|
||||
|
||||
Permission is granted to copy and distribute modified
|
||||
versions of this manual under the conditions for
|
||||
verbatim copying, provided also that the sections
|
||||
entitled ``Copying'' and ``GNU General Public License''
|
||||
are included exactly as in the original, and provided
|
||||
that the entire resulting derived work is distributed
|
||||
under the terms of a permission notice identical to this
|
||||
one.
|
||||
|
||||
Permission is granted to copy and distribute
|
||||
translations of this manual into another language,
|
||||
under the above conditions for modified versions,
|
||||
except that this permission notice may be stated in a
|
||||
translation approved by the Free Software Foundation.
|
||||
@end titlepage
|
||||
|
||||
@contents
|
||||
|
||||
@include main.texi
|
||||
|
||||
@bye
|
||||
|
68
doc/main.texi
Normal file
68
doc/main.texi
Normal file
@@ -0,0 +1,68 @@
|
||||
@node Top, About, (dir), (dir)
|
||||
|
||||
@menu
|
||||
* About:: About LibGTop
|
||||
* White Paper:: LibGTop White Paper
|
||||
* Reference Manual:: LibGTop Reference Manual
|
||||
|
||||
--- The Detailed Node Listing ---
|
||||
|
||||
About LibGTop
|
||||
|
||||
* Availability:: Where to get LibGTop
|
||||
* Supported Platforms:: Supported Platforms
|
||||
* Mailing List:: Helping with LibGTop development
|
||||
* Thanks:: People who contributed to LibGTop
|
||||
|
||||
LibGTop White Paper
|
||||
|
||||
* Introduction:: Introduction
|
||||
* Overview:: Overview
|
||||
|
||||
Overview
|
||||
|
||||
* Interface Design:: Things that need to be considered
|
||||
* Server Implementation:: The LibGTop "server"
|
||||
|
||||
LibGTop Reference Manual
|
||||
|
||||
* System Dependent:: System Dependent Functions.
|
||||
* Common Functions:: Common Functions.
|
||||
* Library Functions:: Library Functions.
|
||||
|
||||
System Dependent Functions
|
||||
|
||||
* glibtop_cpu:: CPU Usage.
|
||||
* glibtop_mem:: Memory Usage.
|
||||
* glibtop_swap:: Swap Usage.
|
||||
* glibtop_uptime:: System Uptime.
|
||||
* glibtop_loadavg:: Load Average.
|
||||
* glibtop_proclist:: Process List.
|
||||
* glibtop_proc_state:: Process State.
|
||||
* glibtop_proc_uid:: Process UID and TTY Information.
|
||||
* glibtop_proc_mem:: Process Memory Information.
|
||||
* glibtop_proc_time:: Process Time Information.
|
||||
* glibtop_proc_signal:: Process Signal Information.
|
||||
* glibtop_proc_kernel:: Process Kernel Data Information.
|
||||
* glibtop_proc_segment:: Process Segment Information.
|
||||
* glibtop_proc_args:: Process Arguments.
|
||||
* glibtop_proc_map:: Process Memory Maps.
|
||||
* glibtop_netload:: Network Load.
|
||||
* glibtop_ppp:: PPP Usage.
|
||||
|
||||
Common Functions
|
||||
|
||||
* glibtop_mountlist:: Mount List.
|
||||
* glibtop_fsusage:: File System Usage.
|
||||
|
||||
Library Functions
|
||||
|
||||
* glibtop_init:: Server Initialization.
|
||||
* glibtop_sysdeps:: Server Sysdeps.
|
||||
* Library Parameters:: Library Parameters.
|
||||
@end menu
|
||||
|
||||
@include about.texi
|
||||
@include white-paper.texi
|
||||
@include reference.texi
|
||||
|
1846
doc/reference.texi
Normal file
1846
doc/reference.texi
Normal file
File diff suppressed because it is too large
Load Diff
59
doc/reference/Makefile.am
Normal file
59
doc/reference/Makefile.am
Normal file
@@ -0,0 +1,59 @@
|
||||
AUTOMAKE_OPTIONS = 1.6
|
||||
## Process this file with automake to produce Makefile.in
|
||||
# The name of the module, e.g. 'glib'.
|
||||
DOC_MODULE=libgtop
|
||||
|
||||
# The top-level SGML file. You can change this if you want to.
|
||||
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml
|
||||
|
||||
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
|
||||
# SCANGOBJ_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-scan.
|
||||
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
|
||||
SCAN_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-mkdb.
|
||||
# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
|
||||
MKDB_OPTIONS=--sgml-mode --output-format=xml --source-dir=$(top_srcdir)/sysdeps/common
|
||||
|
||||
# The directory containing the source code. Relative to $(srcdir).
|
||||
# gtk-doc will search all .c & .h files beneath here for inline comments
|
||||
# documenting the functions and macros.
|
||||
# e.g. DOC_SOURCE_DIR=../../../gtk
|
||||
DOC_SOURCE_DIR=$(top_srcdir)/include/glibtop
|
||||
|
||||
# Used for dependencies. The docs will be rebuilt if any of these change.
|
||||
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
|
||||
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
|
||||
HFILE_GLOB=$(top_srcdir)/include/glibtop/*.h
|
||||
CFILE_GLOB=$(top_srcdir)/sysdeps/common/*.c
|
||||
|
||||
# Header files to ignore when scanning.
|
||||
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
|
||||
IGNORE_HFILES=error.h global.h gnuserv.h init_hooks.h write.h read.h read_data.h config.h libgtopconfig.h
|
||||
|
||||
EXTRA_HFILES=$(top_srcdir)/glibtop.h
|
||||
|
||||
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
|
||||
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
||||
content_files=version.xml
|
||||
|
||||
# Images to copy into HTML directory.
|
||||
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
|
||||
HTML_IMAGES=
|
||||
|
||||
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
|
||||
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
|
||||
# signals and properties.
|
||||
# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
||||
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
||||
INCLUDES=
|
||||
GTKDOC_LIBS=
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
||||
# Other files to distribute
|
||||
# e.g. EXTRA_DIST += version.xml.in
|
||||
EXTRA_DIST += version.xml.in
|
206
doc/reference/libgtop-docs.xml
Normal file
206
doc/reference/libgtop-docs.xml
Normal file
@@ -0,0 +1,206 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
||||
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<bookinfo>
|
||||
<title>Libgtop Reference Manual</title>
|
||||
<releaseinfo>for libgtop <xi:include href="version.xml"/></releaseinfo>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Martin </firstname>
|
||||
<surname>Baulig</surname>
|
||||
<affiliation>
|
||||
<address>
|
||||
<email>martin@home-of-linux.org</email>
|
||||
</address>
|
||||
</affiliation>
|
||||
</author>
|
||||
<author>
|
||||
<firstname>Germán</firstname>
|
||||
<surname>Poó-Caamaño</surname>
|
||||
<affiliation>
|
||||
<address>
|
||||
<email>gpoo@ubiobio.cl</email>
|
||||
</address>
|
||||
</affiliation>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<legalnotice>
|
||||
<para>Permission is granted to copy, distribute and/or modify
|
||||
this document under the terms of the <citetitle>GNU Free
|
||||
Documentation License</citetitle>, Version 1.1 or any later
|
||||
version published by the Free Software Foundation with no
|
||||
Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
||||
Texts. You may obtain a copy of the <citetitle>GNU Free
|
||||
Documentation License</citetitle> from the Free Software
|
||||
Foundation by visiting <ulink type="http"
|
||||
url="http://www.fsf.org">their Web site</ulink> or by writing
|
||||
to: Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.</para>
|
||||
|
||||
<para>Many of the names used by companies to distinguish their
|
||||
products and services are claimed as trademarks. Where those
|
||||
names appear in any GNOME documentation, and those trademarks
|
||||
are made aware to the members of the GNOME Documentation
|
||||
Project, the names have been printed in caps or initial
|
||||
caps.</para>
|
||||
</legalnotice>
|
||||
|
||||
<abstract>
|
||||
<para>
|
||||
LibGTop is a library to get system specific data such as CPU and
|
||||
Memory Usage and information about running Processes.</para>
|
||||
|
||||
<para>On Systems like Solaris or Digital Unix where you need special
|
||||
privileges to get those data, it uses a setuid/setgid server to do
|
||||
so.</para>
|
||||
|
||||
<para>Even if LibGTop is a part of the GNOME desktop environment
|
||||
(@uref{http://www.gnome.org}), the main interface of LibGTop is totally
|
||||
independent from any particular desktop environment, so you can also
|
||||
use it as a standalone library in any piece of GPLed software.</para>
|
||||
|
||||
<para>This manual documents the interfaces of the libgtop
|
||||
library and has some short notes to help get you up to speed
|
||||
with using the library.</para>
|
||||
</abstract>
|
||||
</bookinfo>
|
||||
|
||||
<!--FIXME: It is missing the rest of about.texi -->
|
||||
|
||||
<chapter id="libgtop-white-paper">
|
||||
<title>White paper</title>
|
||||
|
||||
<sect1 id="libgtop-white-paper-introduction">
|
||||
<title>Introduction</title>
|
||||
<para>Many modern UNIX systems like Solaris, BSD or Digitial Unix
|
||||
only allow priviledged processes to read information like CPU and
|
||||
Memory Usage or information about running processes.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
BSD, for instance, doesn't have any other way to get those data than reading
|
||||
directly from @file{/dev/kmem} and you need to be in the @code{kmem} group to
|
||||
be able to read this.</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
Other systems, like Digital Unix, allow all users to get things like CPU and
|
||||
Memory statistics, but only root may read information about any process other
|
||||
than the current one (you may not even get information about your own processes
|
||||
if you're not root).</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
Linux has a very nice @file{/proc} filesystem, but reading and parsing
|
||||
@file{/proc} is very slow and inefficient.</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
Solaris is a bit better, but you still need to be in the @code{sys} group or
|
||||
even root to get some data.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
Because of this system utilities like @code{ps}, @code{uptime} or @code{top}
|
||||
often are setgid kmem or setuid root. Usually, they're also very specific to
|
||||
the system they're written for and not easily portable to other systems without
|
||||
a lot of work.</para>
|
||||
|
||||
<para>
|
||||
This, of cause, becomes a problem for graphical tools like @code{gtop} - making
|
||||
a GTK+ program setgid or even setuid would be a security hole as big as you can
|
||||
drive the entire X11 source code through. For the GNOME project, we also needed
|
||||
some kind of library which provides all the required information in a portable
|
||||
since there's more than just one single program that wants to use them - for
|
||||
instance @code{gtop} and the @code{multiload}, @code{cpumemusage} and
|
||||
@code{netload} panel applets.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="libgtop-white-paper-overview">
|
||||
<title>Overview</title>
|
||||
<para>This section should give you a short overview on how LibGTop
|
||||
was developed, which things needed to be considered and how it
|
||||
works.</para>
|
||||
|
||||
<sect2 id="libgtop-white-paper-overview-design">
|
||||
<title>Interface Design: Things that need to be considered</title>
|
||||
<para>
|
||||
At the very beginning, it was necessary to collect all the data the library part
|
||||
should provide and put them into some C structures. This was not that easiy as it
|
||||
might sound since LibGTop should be portable to any modern UNIX system with a common
|
||||
library part on all those systems, but the data that should be returned vary from
|
||||
system to system. For instance some systems support shared memory, but some others
|
||||
may not.</para>
|
||||
|
||||
<para>
|
||||
The header files where we define these C structures (which are system-independent) are
|
||||
shared between client and server. This way we can call the system dependent code
|
||||
directly where we do not need any special privileges to do so.</para>
|
||||
|
||||
<para>
|
||||
All of those structures contain a @code{flags} member which is interpreted as a bit
|
||||
mask and tells the caller of the library functions which of the fields in the returned
|
||||
structure are valid and which are not.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="libgtop-white-paper-overview-server">
|
||||
<title>Server Implementation: The LibGTop "server"</title>
|
||||
<para>
|
||||
The LibGTop @dfn{server} is a setgid/setuid binary which contains all the system
|
||||
dependent code which needs special privileges. It is only build if it's required
|
||||
on the current system (for instance, the Linux kernel provides all the required
|
||||
data via its @file{/proc} filesystem so we do not need the server at all) and it
|
||||
only contains the @dfn{features} which need privileges.</para>
|
||||
|
||||
<para>
|
||||
Whenever we do not need any privileges to get all the data for some of the requested
|
||||
structures (here called @dfn{features}) the library calls the sysdeps code directly
|
||||
rather than using the server.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
</chapter>
|
||||
|
||||
<chapter id="libgtop-lib">
|
||||
<title>Libgtop Library Reference</title>
|
||||
|
||||
<para>This section contains the API reference for libgtop. All
|
||||
the public interfaces are documented here.</para>
|
||||
|
||||
<xi:include href="xml/glibtop.xml"/>
|
||||
<xi:include href="xml/close.xml"/>
|
||||
<xi:include href="xml/command.xml"/>
|
||||
<xi:include href="xml/glibtop-server.xml"/>
|
||||
<xi:include href="xml/netload.xml"/>
|
||||
<xi:include href="xml/ppp.xml"/>
|
||||
<xi:include href="xml/shm_limits.xml"/>
|
||||
<xi:include href="xml/uptime.xml"/>
|
||||
<xi:include href="xml/netlist.xml"/>
|
||||
<xi:include href="xml/open.xml"/>
|
||||
<xi:include href="xml/parameter.xml"/>
|
||||
<xi:include href="xml/procargs.xml"/>
|
||||
<xi:include href="xml/procmem.xml"/>
|
||||
<xi:include href="xml/procopenfiles.xml"/>
|
||||
<xi:include href="xml/procsegment.xml"/>
|
||||
<xi:include href="xml/procsignal.xml"/>
|
||||
<xi:include href="xml/sysdeps.xml"/>
|
||||
<xi:include href="xml/procstate.xml"/>
|
||||
<xi:include href="xml/procuid.xml"/>
|
||||
<xi:include href="xml/proctime.xml"/>
|
||||
<xi:include href="xml/signal.xml"/>
|
||||
<xi:include href="xml/procmap.xml"/>
|
||||
<xi:include href="xml/sysinfo.xml"/>
|
||||
<xi:include href="xml/union.xml"/>
|
||||
<xi:include href="xml/version.xml"/>
|
||||
<xi:include href="xml/proclist.xml"/>
|
||||
<xi:include href="xml/sem_limits.xml"/>
|
||||
<xi:include href="xml/prockernel.xml"/>
|
||||
<xi:include href="xml/fsusage.xml"/>
|
||||
<xi:include href="xml/loadavg.xml"/>
|
||||
<xi:include href="xml/mem.xml"/>
|
||||
<xi:include href="xml/mountlist.xml"/>
|
||||
<xi:include href="xml/msg_limits.xml"/>
|
||||
<xi:include href="xml/cpu.xml"/>
|
||||
<xi:include href="xml/swap.xml"/>
|
||||
</chapter>
|
||||
</book>
|
0
doc/reference/libgtop-overrides.txt
Normal file
0
doc/reference/libgtop-overrides.txt
Normal file
736
doc/reference/libgtop-sections.txt
Normal file
736
doc/reference/libgtop-sections.txt
Normal file
@@ -0,0 +1,736 @@
|
||||
<INCLUDE>glibtop.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>glibtop</FILE>
|
||||
<TITLE>GlibTop</TITLE>
|
||||
GLIBTOP_MOUNTENTRY_LEN
|
||||
LIBGTOP_CHECK_VERSION
|
||||
glibtop
|
||||
glibtop_global_server
|
||||
glibtop_init
|
||||
glibtop_init_r
|
||||
glibtop_init_s
|
||||
glibtop_server_features
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/close.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>close</FILE>
|
||||
<TITLE>Close</TITLE>
|
||||
glibtop_close
|
||||
glibtop_close_r
|
||||
glibtop_close_s
|
||||
glibtop_close_p
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/command.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>command</FILE>
|
||||
<TITLE>Command</TITLE>
|
||||
GLIBTOP_CMND_QUIT
|
||||
GLIBTOP_CMND_SYSDEPS
|
||||
GLIBTOP_CMND_CPU
|
||||
GLIBTOP_CMND_MEM
|
||||
GLIBTOP_CMND_SWAP
|
||||
GLIBTOP_CMND_UPTIME
|
||||
GLIBTOP_CMND_LOADAVG
|
||||
GLIBTOP_CMND_SHM_LIMITS
|
||||
GLIBTOP_CMND_MSG_LIMITS
|
||||
GLIBTOP_CMND_SEM_LIMITS
|
||||
GLIBTOP_CMND_PROCLIST
|
||||
GLIBTOP_CMND_PROC_STATE
|
||||
GLIBTOP_CMND_PROC_UID
|
||||
GLIBTOP_CMND_PROC_MEM
|
||||
GLIBTOP_CMND_PROC_TIME
|
||||
GLIBTOP_CMND_PROC_SIGNAL
|
||||
GLIBTOP_CMND_PROC_KERNEL
|
||||
GLIBTOP_CMND_PROC_SEGMENT
|
||||
GLIBTOP_CMND_PROC_ARGS
|
||||
GLIBTOP_CMND_PROC_MAP
|
||||
GLIBTOP_CMND_MOUNTLIST
|
||||
GLIBTOP_CMND_FSUSAGE
|
||||
GLIBTOP_CMND_NETLOAD
|
||||
GLIBTOP_CMND_PPP
|
||||
GLIBTOP_CMND_NETLIST
|
||||
GLIBTOP_CMND_PROC_OPEN_FILES
|
||||
GLIBTOP_MAX_CMND
|
||||
glibtop_command
|
||||
glibtop_response
|
||||
glibtop_response_union
|
||||
glibtop_call
|
||||
glibtop_call_l
|
||||
glibtop_call_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/glibtop-server.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>glibtop-server</FILE>
|
||||
<TITLE>GlibTop Server</TITLE>
|
||||
glibtop_server
|
||||
glibtop_server_info
|
||||
glibtop_closure
|
||||
glibtop_server_new
|
||||
glibtop_server_ref
|
||||
glibtop_server_unref
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/netload.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>netload</FILE>
|
||||
<TITLE>Net Load</TITLE>
|
||||
GLIBTOP_NETLOAD_IF_FLAGS
|
||||
GLIBTOP_NETLOAD_MTU
|
||||
GLIBTOP_NETLOAD_SUBNET
|
||||
GLIBTOP_NETLOAD_ADDRESS
|
||||
GLIBTOP_NETLOAD_PACKETS_IN
|
||||
GLIBTOP_NETLOAD_PACKETS_OUT
|
||||
GLIBTOP_NETLOAD_PACKETS_TOTAL
|
||||
GLIBTOP_NETLOAD_BYTES_IN
|
||||
GLIBTOP_NETLOAD_BYTES_OUT
|
||||
GLIBTOP_NETLOAD_BYTES_TOTAL
|
||||
GLIBTOP_NETLOAD_ERRORS_IN
|
||||
GLIBTOP_NETLOAD_ERRORS_OUT
|
||||
GLIBTOP_NETLOAD_ERRORS_TOTAL
|
||||
GLIBTOP_NETLOAD_COLLISIONS
|
||||
GLIBTOP_NETLOAD_ADDRESS6
|
||||
GLIBTOP_NETLOAD_PREFIX6
|
||||
GLIBTOP_NETLOAD_SCOPE6
|
||||
GLIBTOP_NETLOAD_HWADDRESS
|
||||
GLIBTOP_MAX_NETLOAD
|
||||
glibtop_netload
|
||||
glibtop_get_netload
|
||||
glibtop_get_netload_r
|
||||
glibtop_get_netload_l
|
||||
glibtop_init_netload_p
|
||||
glibtop_get_netload_p
|
||||
glibtop_init_netload_s
|
||||
glibtop_get_netload_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/ppp.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>ppp</FILE>
|
||||
<TITLE>PPP</TITLE>
|
||||
GLIBTOP_PPP_STATE
|
||||
GLIBTOP_PPP_BYTES_IN
|
||||
GLIBTOP_PPP_BYTES_OUT
|
||||
GLIBTOP_MAX_PPP
|
||||
glibtop_ppp
|
||||
glibtop_get_ppp
|
||||
glibtop_get_ppp_r
|
||||
glibtop_get_ppp_l
|
||||
glibtop_init_ppp_p
|
||||
glibtop_get_ppp_p
|
||||
glibtop_init_ppp_s
|
||||
glibtop_get_ppp_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/shm_limits.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>shm_limits</FILE>
|
||||
<TITLE>Shared Memory Limits</TITLE>
|
||||
GLIBTOP_IPC_SHMMAX
|
||||
GLIBTOP_IPC_SHMMIN
|
||||
GLIBTOP_IPC_SHMMNI
|
||||
GLIBTOP_IPC_SHMSEG
|
||||
GLIBTOP_IPC_SHMALL
|
||||
GLIBTOP_MAX_SHM_LIMITS
|
||||
glibtop_shm_limits
|
||||
glibtop_get_shm_limits
|
||||
glibtop_get_shm_limits_r
|
||||
glibtop_get_shm_limits_l
|
||||
glibtop_init_shm_limits_p
|
||||
glibtop_get_shm_limits_p
|
||||
glibtop_init_shm_limits_s
|
||||
glibtop_get_shm_limits_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/uptime.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>uptime</FILE>
|
||||
<TITLE>Uptime</TITLE>
|
||||
GLIBTOP_UPTIME_UPTIME
|
||||
GLIBTOP_UPTIME_IDLETIME
|
||||
GLIBTOP_UPTIME_BOOT_TIME
|
||||
GLIBTOP_MAX_UPTIME
|
||||
glibtop_uptime
|
||||
glibtop_get_uptime
|
||||
glibtop_get_uptime_r
|
||||
glibtop_get_uptime_l
|
||||
glibtop_init_uptime_p
|
||||
glibtop_get_uptime_p
|
||||
glibtop_init_uptime_s
|
||||
glibtop_get_uptime_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/netlist.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>netlist</FILE>
|
||||
<TITLE>Net List</TITLE>
|
||||
GLIBTOP_NETLIST_NUMBER
|
||||
GLIBTOP_MAX_NETLIST
|
||||
glibtop_netlist
|
||||
glibtop_get_netlist
|
||||
glibtop_get_netlist_r
|
||||
glibtop_get_netlist_l
|
||||
glibtop_init_netlist_p
|
||||
glibtop_get_netlist_p
|
||||
glibtop_init_netlist_s
|
||||
glibtop_get_netlist_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/open.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>open</FILE>
|
||||
GLIBTOP_INIT_NO_OPEN
|
||||
GLIBTOP_INIT_NO_INIT
|
||||
GLIBTOP_FEATURES_NO_SERVER
|
||||
GLIBTOP_FEATURES_EXCEPT
|
||||
GLIBTOP_METHOD_DIRECT
|
||||
GLIBTOP_METHOD_PIPE
|
||||
GLIBTOP_METHOD_INET
|
||||
GLIBTOP_METHOD_UNIX
|
||||
GLIBTOP_ERROR_METHOD_IGNORE
|
||||
GLIBTOP_ERROR_METHOD_WARN_ONCE
|
||||
GLIBTOP_ERROR_METHOD_WARN
|
||||
GLIBTOP_ERROR_METHOD_ABORT
|
||||
GLIBTOP_ERROR_METHOD_DEFAULT
|
||||
glibtop_open_l
|
||||
glibtop_init_p
|
||||
glibtop_open_p
|
||||
glibtop_open_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/parameter.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>parameter</FILE>
|
||||
GLIBTOP_PARAM_METHOD
|
||||
GLIBTOP_PARAM_FEATURES
|
||||
GLIBTOP_PARAM_COMMAND
|
||||
GLIBTOP_PARAM_HOST
|
||||
GLIBTOP_PARAM_PORT
|
||||
GLIBTOP_PARAM_ERROR_METHOD
|
||||
GLIBTOP_PARAM_REQUIRED
|
||||
glibtop_get_parameter
|
||||
glibtop_set_parameter
|
||||
glibtop_get_parameter_l
|
||||
glibtop_set_parameter_l
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procargs.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procargs</FILE>
|
||||
GLIBTOP_PROC_ARGS_SIZE
|
||||
GLIBTOP_MAX_PROC_ARGS
|
||||
glibtop_proc_args
|
||||
glibtop_get_proc_args_l
|
||||
glibtop_get_proc_args
|
||||
glibtop_get_proc_args_r
|
||||
glibtop_init_proc_args_p
|
||||
glibtop_get_proc_args_p
|
||||
glibtop_init_proc_args_s
|
||||
glibtop_get_proc_args_s
|
||||
glibtop_get_proc_argv_l
|
||||
glibtop_get_proc_argv
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procmem.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procmem</FILE>
|
||||
GLIBTOP_PROC_MEM_SIZE
|
||||
GLIBTOP_PROC_MEM_VSIZE
|
||||
GLIBTOP_PROC_MEM_RESIDENT
|
||||
GLIBTOP_PROC_MEM_SHARE
|
||||
GLIBTOP_PROC_MEM_RSS
|
||||
GLIBTOP_PROC_MEM_RSS_RLIM
|
||||
GLIBTOP_MAX_PROC_MEM
|
||||
glibtop_proc_mem
|
||||
glibtop_get_proc_mem
|
||||
glibtop_get_proc_mem_r
|
||||
glibtop_get_proc_mem_l
|
||||
glibtop_init_proc_mem_p
|
||||
glibtop_get_proc_mem_p
|
||||
glibtop_init_proc_mem_s
|
||||
glibtop_get_proc_mem_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procopenfiles.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procopenfiles</FILE>
|
||||
GLIBTOP_PROC_OPEN_FILES_NUMBER
|
||||
GLIBTOP_PROC_OPEN_FILES_TOTAL
|
||||
GLIBTOP_PROC_OPEN_FILES_SIZE
|
||||
GLIBTOP_MAX_PROC_OPEN_FILES
|
||||
GLIBTOP_FILE_ENTRY_FD
|
||||
GLIBTOP_FILE_ENTRY_NAME
|
||||
GLIBTOP_FILE_ENTRY_TYPE
|
||||
GLIBTOP_FILE_ENTRY_INETSOCKET_DST_HOST
|
||||
GLIBTOP_FILE_ENTRY_INETSOCKET_DST_PORT
|
||||
GLIBTOP_MAX_OPEN_FILE_ENTRY
|
||||
GLIBTOP_OPEN_FILENAME_LEN
|
||||
GLIBTOP_OPEN_DEST_HOST_LEN
|
||||
glibtop_open_files_entry
|
||||
glibtop_proc_open_files
|
||||
glibtop_get_proc_open_files
|
||||
glibtop_get_proc_open_files_r
|
||||
glibtop_get_proc_open_files_l
|
||||
glibtop_init_proc_open_files_p
|
||||
glibtop_get_proc_open_files_p
|
||||
glibtop_init_proc_open_files_s
|
||||
glibtop_get_proc_open_files_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procsegment.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procsegment</FILE>
|
||||
GLIBTOP_PROC_SEGMENT_TEXT_RSS
|
||||
GLIBTOP_PROC_SEGMENT_SHLIB_RSS
|
||||
GLIBTOP_PROC_SEGMENT_DATA_RSS
|
||||
GLIBTOP_PROC_SEGMENT_STACK_RSS
|
||||
GLIBTOP_PROC_SEGMENT_DIRTY_SIZE
|
||||
GLIBTOP_PROC_SEGMENT_START_CODE
|
||||
GLIBTOP_PROC_SEGMENT_END_CODE
|
||||
GLIBTOP_PROC_SEGMENT_START_STACK
|
||||
GLIBTOP_MAX_PROC_SEGMENT
|
||||
glibtop_proc_segment
|
||||
glibtop_get_proc_segment
|
||||
glibtop_get_proc_segment_r
|
||||
glibtop_get_proc_segment_l
|
||||
glibtop_init_proc_segment_p
|
||||
glibtop_get_proc_segment_p
|
||||
glibtop_init_proc_segment_s
|
||||
glibtop_get_proc_segment_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procsignal.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procsignal</FILE>
|
||||
GLIBTOP_PROC_SIGNAL_SIGNAL
|
||||
GLIBTOP_PROC_SIGNAL_BLOCKED
|
||||
GLIBTOP_PROC_SIGNAL_SIGIGNORE
|
||||
GLIBTOP_PROC_SIGNAL_SIGCATCH
|
||||
GLIBTOP_MAX_PROC_SIGNAL
|
||||
glibtop_proc_signal
|
||||
glibtop_get_proc_signal
|
||||
glibtop_get_proc_signal_r
|
||||
glibtop_get_proc_signal_l
|
||||
glibtop_init_proc_signal_p
|
||||
glibtop_get_proc_signal_p
|
||||
glibtop_init_proc_signal_s
|
||||
glibtop_get_proc_signal_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/sysdeps.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>sysdeps</FILE>
|
||||
GLIBTOP_SYSDEPS_FEATURES
|
||||
GLIBTOP_SYSDEPS_CPU
|
||||
GLIBTOP_SYSDEPS_MEM
|
||||
GLIBTOP_SYSDEPS_SWAP
|
||||
GLIBTOP_SYSDEPS_UPTIME
|
||||
GLIBTOP_SYSDEPS_LOADAVG
|
||||
GLIBTOP_SYSDEPS_SHM_LIMITS
|
||||
GLIBTOP_SYSDEPS_MSG_LIMITS
|
||||
GLIBTOP_SYSDEPS_SEM_LIMITS
|
||||
GLIBTOP_SYSDEPS_PROCLIST
|
||||
GLIBTOP_SYSDEPS_PROC_STATE
|
||||
GLIBTOP_SYSDEPS_PROC_UID
|
||||
GLIBTOP_SYSDEPS_PROC_MEM
|
||||
GLIBTOP_SYSDEPS_PROC_TIME
|
||||
GLIBTOP_SYSDEPS_PROC_SIGNAL
|
||||
GLIBTOP_SYSDEPS_PROC_KERNEL
|
||||
GLIBTOP_SYSDEPS_PROC_SEGMENT
|
||||
GLIBTOP_SYSDEPS_PROC_ARGS
|
||||
GLIBTOP_SYSDEPS_PROC_MAP
|
||||
GLIBTOP_SYSDEPS_MOUNTLIST
|
||||
GLIBTOP_SYSDEPS_FSUSAGE
|
||||
GLIBTOP_SYSDEPS_NETLOAD
|
||||
GLIBTOP_SYSDEPS_PPP
|
||||
GLIBTOP_SYSDEPS_NETLIST
|
||||
GLIBTOP_SYSDEPS_PROC_OPEN_FILES
|
||||
GLIBTOP_MAX_SYSDEPS
|
||||
GLIBTOP_SYSDEPS_ALL
|
||||
glibtop_sysdeps
|
||||
glibtop_get_sysdeps
|
||||
glibtop_get_sysdeps_r
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procstate.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procstate</FILE>
|
||||
GLIBTOP_PROC_STATE_CMD
|
||||
GLIBTOP_PROC_STATE_STATE
|
||||
GLIBTOP_PROC_STATE_UID
|
||||
GLIBTOP_PROC_STATE_GID
|
||||
GLIBTOP_PROC_STATE_RUID
|
||||
GLIBTOP_PROC_STATE_RGID
|
||||
GLIBTOP_PROC_STATE_HAS_CPU
|
||||
GLIBTOP_PROC_STATE_PROCESSOR
|
||||
GLIBTOP_PROC_STATE_LAST_PROCESSOR
|
||||
GLIBTOP_MAX_PROC_STATE
|
||||
GLIBTOP_PROCESS_RUNNING
|
||||
GLIBTOP_PROCESS_INTERRUPTIBLE
|
||||
GLIBTOP_PROCESS_UNINTERRUPTIBLE
|
||||
GLIBTOP_PROCESS_ZOMBIE
|
||||
GLIBTOP_PROCESS_STOPPED
|
||||
GLIBTOP_PROCESS_SWAPPING
|
||||
GLIBTOP_PROCESS_DEAD
|
||||
glibtop_proc_state
|
||||
glibtop_get_proc_state
|
||||
glibtop_get_proc_state_r
|
||||
glibtop_get_proc_state_l
|
||||
glibtop_init_proc_state_p
|
||||
glibtop_get_proc_state_p
|
||||
glibtop_init_proc_state_s
|
||||
glibtop_get_proc_state_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procuid.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procuid</FILE>
|
||||
GLIBTOP_PROC_UID_UID
|
||||
GLIBTOP_PROC_UID_EUID
|
||||
GLIBTOP_PROC_UID_GID
|
||||
GLIBTOP_PROC_UID_EGID
|
||||
GLIBTOP_PROC_UID_SUID
|
||||
GLIBTOP_PROC_UID_SGID
|
||||
GLIBTOP_PROC_UID_FSUID
|
||||
GLIBTOP_PROC_UID_FSGID
|
||||
GLIBTOP_PROC_UID_PID
|
||||
GLIBTOP_PROC_UID_PPID
|
||||
GLIBTOP_PROC_UID_PGRP
|
||||
GLIBTOP_PROC_UID_SESSION
|
||||
GLIBTOP_PROC_UID_TTY
|
||||
GLIBTOP_PROC_UID_TPGID
|
||||
GLIBTOP_PROC_UID_PRIORITY
|
||||
GLIBTOP_PROC_UID_NICE
|
||||
GLIBTOP_PROC_UID_NGROUPS
|
||||
GLIBTOP_PROC_UID_GROUPS
|
||||
GLIBTOP_MAX_PROC_UID
|
||||
glibtop_proc_uid
|
||||
GLIBTOP_MAX_GROUPS
|
||||
glibtop_get_proc_uid
|
||||
glibtop_get_proc_uid_r
|
||||
glibtop_get_proc_uid_l
|
||||
glibtop_init_proc_uid_p
|
||||
glibtop_get_proc_uid_p
|
||||
glibtop_init_proc_uid_s
|
||||
glibtop_get_proc_uid_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/proctime.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>proctime</FILE>
|
||||
GLIBTOP_PROC_TIME_START_TIME
|
||||
GLIBTOP_PROC_TIME_RTIME
|
||||
GLIBTOP_PROC_TIME_UTIME
|
||||
GLIBTOP_PROC_TIME_STIME
|
||||
GLIBTOP_PROC_TIME_CUTIME
|
||||
GLIBTOP_PROC_TIME_CSTIME
|
||||
GLIBTOP_PROC_TIME_TIMEOUT
|
||||
GLIBTOP_PROC_TIME_IT_REAL_VALUE
|
||||
GLIBTOP_PROC_TIME_FREQUENCY
|
||||
GLIBTOP_PROC_TIME_XCPU_UTIME
|
||||
GLIBTOP_PROC_TIME_XCPU_STIME
|
||||
GLIBTOP_MAX_PROC_TIME
|
||||
glibtop_proc_time
|
||||
glibtop_get_proc_time
|
||||
glibtop_get_proc_time_r
|
||||
glibtop_get_proc_time_l
|
||||
glibtop_init_proc_time_p
|
||||
glibtop_get_proc_time_p
|
||||
glibtop_init_proc_time_s
|
||||
glibtop_get_proc_time_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/signal.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>signal</FILE>
|
||||
glibtop_signame
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procmap.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procmap</FILE>
|
||||
GLIBTOP_PROC_MAP_NUMBER
|
||||
GLIBTOP_PROC_MAP_TOTAL
|
||||
GLIBTOP_PROC_MAP_SIZE
|
||||
GLIBTOP_MAX_PROC_MAP
|
||||
GLIBTOP_MAP_ENTRY_START
|
||||
GLIBTOP_MAP_ENTRY_END
|
||||
GLIBTOP_MAP_ENTRY_OFFSET
|
||||
GLIBTOP_MAP_ENTRY_PERM
|
||||
GLIBTOP_MAP_ENTRY_INODE
|
||||
GLIBTOP_MAP_ENTRY_DEVICE
|
||||
GLIBTOP_MAP_ENTRY_FILENAME
|
||||
GLIBTOP_MAP_ENTRY_SIZE
|
||||
GLIBTOP_MAP_ENTRY_RSS
|
||||
GLIBTOP_MAP_ENTRY_SHARED_CLEAN
|
||||
GLIBTOP_MAP_ENTRY_SHARED_DIRTY
|
||||
GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN
|
||||
GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY
|
||||
GLIBTOP_MAX_MAP_ENTRY
|
||||
GLIBTOP_MAP_FILENAME_LEN
|
||||
GLIBTOP_MAP_PERM_READ
|
||||
GLIBTOP_MAP_PERM_WRITE
|
||||
GLIBTOP_MAP_PERM_EXECUTE
|
||||
GLIBTOP_MAP_PERM_SHARED
|
||||
GLIBTOP_MAP_PERM_PRIVATE
|
||||
glibtop_map_entry
|
||||
glibtop_proc_map
|
||||
glibtop_get_proc_map
|
||||
glibtop_get_proc_map_r
|
||||
glibtop_get_proc_map_l
|
||||
glibtop_init_proc_map_p
|
||||
glibtop_get_proc_map_p
|
||||
glibtop_init_proc_map_s
|
||||
glibtop_get_proc_map_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/sysinfo.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>sysinfo</FILE>
|
||||
GLIBTOP_SYSINFO_NCPU
|
||||
GLIBTOP_SYSINFO_CPUINFO
|
||||
GLIBTOP_MAX_SYSINFO
|
||||
glibtop_sysinfo
|
||||
glibtop_entry
|
||||
glibtop_get_sysinfo_r
|
||||
glibtop_get_sysinfo_s
|
||||
glibtop_get_sysinfo
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/union.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>union</FILE>
|
||||
glibtop_union
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/version.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>version</FILE>
|
||||
LIBGTOP_VERSION_STRING
|
||||
glibtop_send_version
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/proclist.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>proclist</FILE>
|
||||
GLIBTOP_PROCLIST_NUMBER
|
||||
GLIBTOP_PROCLIST_TOTAL
|
||||
GLIBTOP_PROCLIST_SIZE
|
||||
GLIBTOP_MAX_PROCLIST
|
||||
GLIBTOP_KERN_PROC_ALL
|
||||
GLIBTOP_KERN_PROC_PID
|
||||
GLIBTOP_KERN_PROC_PGRP
|
||||
GLIBTOP_KERN_PROC_SESSION
|
||||
GLIBTOP_KERN_PROC_TTY
|
||||
GLIBTOP_KERN_PROC_UID
|
||||
GLIBTOP_KERN_PROC_RUID
|
||||
GLIBTOP_KERN_PROC_MASK
|
||||
GLIBTOP_EXCLUDE_IDLE
|
||||
GLIBTOP_EXCLUDE_SYSTEM
|
||||
GLIBTOP_EXCLUDE_NOTTY
|
||||
glibtop_proclist
|
||||
glibtop_get_proclist
|
||||
glibtop_get_proclist_r
|
||||
glibtop_get_proclist_l
|
||||
glibtop_init_proclist_p
|
||||
glibtop_get_proclist_p
|
||||
glibtop_init_proclist_s
|
||||
glibtop_get_proclist_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/sem_limits.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>sem_limits</FILE>
|
||||
GLIBTOP_IPC_SEMMAP
|
||||
GLIBTOP_IPC_SEMMNI
|
||||
GLIBTOP_IPC_SEMMNS
|
||||
GLIBTOP_IPC_SEMMNU
|
||||
GLIBTOP_IPC_SEMMSL
|
||||
GLIBTOP_IPC_SEMOPM
|
||||
GLIBTOP_IPC_SEMUME
|
||||
GLIBTOP_IPC_SEMUSZ
|
||||
GLIBTOP_IPC_SEMVMX
|
||||
GLIBTOP_IPC_SEMAEM
|
||||
GLIBTOP_MAX_SEM_LIMITS
|
||||
glibtop_sem_limits
|
||||
glibtop_get_sem_limits
|
||||
glibtop_get_sem_limits_r
|
||||
glibtop_get_sem_limits_l
|
||||
glibtop_init_sem_limits_p
|
||||
glibtop_get_sem_limits_p
|
||||
glibtop_init_sem_limits_s
|
||||
glibtop_get_sem_limits_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/prockernel.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>prockernel</FILE>
|
||||
GLIBTOP_PROC_KERNEL_K_FLAGS
|
||||
GLIBTOP_PROC_KERNEL_MIN_FLT
|
||||
GLIBTOP_PROC_KERNEL_MAJ_FLT
|
||||
GLIBTOP_PROC_KERNEL_CMIN_FLT
|
||||
GLIBTOP_PROC_KERNEL_CMAJ_FLT
|
||||
GLIBTOP_PROC_KERNEL_KSTK_ESP
|
||||
GLIBTOP_PROC_KERNEL_KSTK_EIP
|
||||
GLIBTOP_PROC_KERNEL_NWCHAN
|
||||
GLIBTOP_PROC_KERNEL_WCHAN
|
||||
GLIBTOP_MAX_PROC_KERNEL
|
||||
glibtop_proc_kernel
|
||||
glibtop_get_proc_kernel
|
||||
glibtop_get_proc_kernel_r
|
||||
glibtop_get_proc_kernel_l
|
||||
glibtop_init_proc_kernel_p
|
||||
glibtop_get_proc_kernel_p
|
||||
glibtop_init_proc_kernel_s
|
||||
glibtop_get_proc_kernel_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/fsusage.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>fsusage</FILE>
|
||||
GLIBTOP_FSUSAGE_BLOCKS
|
||||
GLIBTOP_FSUSAGE_BFREE
|
||||
GLIBTOP_FSUSAGE_BAVAIL
|
||||
GLIBTOP_FSUSAGE_FILES
|
||||
GLIBTOP_FSUSAGE_FFREE
|
||||
GLIBTOP_FSUSAGE_BLOCK_SIZE
|
||||
GLIBTOP_FSUSAGE_READ
|
||||
GLIBTOP_FSUSAGE_WRITE
|
||||
GLIBTOP_MAX_FSUSAGE
|
||||
glibtop_fsusage
|
||||
glibtop_get_fsusage
|
||||
glibtop_get_fsusage_r
|
||||
glibtop_get_fsusage_l
|
||||
glibtop_get_fsusage_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/loadavg.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>loadavg</FILE>
|
||||
GLIBTOP_LOADAVG_LOADAVG
|
||||
GLIBTOP_LOADAVG_NR_RUNNING
|
||||
GLIBTOP_LOADAVG_NR_TASKS
|
||||
GLIBTOP_LOADAVG_LAST_PID
|
||||
GLIBTOP_MAX_LOADAVG
|
||||
glibtop_loadavg
|
||||
glibtop_get_loadavg
|
||||
glibtop_get_loadavg_r
|
||||
glibtop_get_loadavg_l
|
||||
glibtop_init_loadavg_p
|
||||
glibtop_get_loadavg_p
|
||||
glibtop_init_loadavg_s
|
||||
glibtop_get_loadavg_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/mem.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>mem</FILE>
|
||||
GLIBTOP_MEM_TOTAL
|
||||
GLIBTOP_MEM_USED
|
||||
GLIBTOP_MEM_FREE
|
||||
GLIBTOP_MEM_SHARED
|
||||
GLIBTOP_MEM_BUFFER
|
||||
GLIBTOP_MEM_CACHED
|
||||
GLIBTOP_MEM_USER
|
||||
GLIBTOP_MEM_LOCKED
|
||||
GLIBTOP_MAX_MEM
|
||||
glibtop_mem
|
||||
glibtop_get_mem
|
||||
glibtop_get_mem_r
|
||||
glibtop_get_mem_l
|
||||
glibtop_init_mem_p
|
||||
glibtop_get_mem_p
|
||||
glibtop_init_mem_s
|
||||
glibtop_get_mem_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/mountlist.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>mountlist</FILE>
|
||||
GLIBTOP_MOUNTLIST_NUMBER
|
||||
GLIBTOP_MOUNTLIST_TOTAL
|
||||
GLIBTOP_MOUNTLIST_SIZE
|
||||
GLIBTOP_MAX_MOUNTLIST
|
||||
glibtop_mountentry
|
||||
glibtop_mountlist
|
||||
glibtop_get_mountlist
|
||||
glibtop_get_mountlist_r
|
||||
glibtop_get_mountlist_l
|
||||
glibtop_get_mountlist_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/msg_limits.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>msg_limits</FILE>
|
||||
GLIBTOP_IPC_MSGPOOL
|
||||
GLIBTOP_IPC_MSGMAP
|
||||
GLIBTOP_IPC_MSGMAX
|
||||
GLIBTOP_IPC_MSGMNB
|
||||
GLIBTOP_IPC_MSGMNI
|
||||
GLIBTOP_IPC_MSGSSZ
|
||||
GLIBTOP_IPC_MSGTQL
|
||||
GLIBTOP_MAX_MSG_LIMITS
|
||||
glibtop_msg_limits
|
||||
glibtop_get_msg_limits
|
||||
glibtop_get_msg_limits_r
|
||||
glibtop_get_msg_limits_l
|
||||
glibtop_init_msg_limits_p
|
||||
glibtop_get_msg_limits_p
|
||||
glibtop_init_msg_limits_s
|
||||
glibtop_get_msg_limits_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/cpu.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>cpu</FILE>
|
||||
GLIBTOP_CPU_TOTAL
|
||||
GLIBTOP_CPU_USER
|
||||
GLIBTOP_CPU_NICE
|
||||
GLIBTOP_CPU_SYS
|
||||
GLIBTOP_CPU_IDLE
|
||||
GLIBTOP_CPU_FREQUENCY
|
||||
GLIBTOP_XCPU_TOTAL
|
||||
GLIBTOP_XCPU_USER
|
||||
GLIBTOP_XCPU_NICE
|
||||
GLIBTOP_XCPU_SYS
|
||||
GLIBTOP_XCPU_IDLE
|
||||
GLIBTOP_XCPU_FLAGS
|
||||
GLIBTOP_CPU_IOWAIT
|
||||
GLIBTOP_CPU_IRQ
|
||||
GLIBTOP_CPU_SOFTIRQ
|
||||
GLIBTOP_XCPU_IOWAIT
|
||||
GLIBTOP_XCPU_IRQ
|
||||
GLIBTOP_XCPU_SOFTIRQ
|
||||
GLIBTOP_MAX_CPU
|
||||
GLIBTOP_NCPU
|
||||
glibtop_cpu
|
||||
glibtop_get_cpu
|
||||
glibtop_get_cpu_r
|
||||
glibtop_get_cpu_l
|
||||
glibtop_init_cpu_p
|
||||
glibtop_get_cpu_p
|
||||
glibtop_init_cpu_s
|
||||
glibtop_get_cpu_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/swap.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>swap</FILE>
|
||||
GLIBTOP_SWAP_TOTAL
|
||||
GLIBTOP_SWAP_USED
|
||||
GLIBTOP_SWAP_FREE
|
||||
GLIBTOP_SWAP_PAGEIN
|
||||
GLIBTOP_SWAP_PAGEOUT
|
||||
GLIBTOP_MAX_SWAP
|
||||
glibtop_swap
|
||||
glibtop_get_swap
|
||||
glibtop_get_swap_r
|
||||
glibtop_get_swap_l
|
||||
glibtop_init_swap_p
|
||||
glibtop_get_swap_p
|
||||
glibtop_init_swap_s
|
||||
glibtop_get_swap_s
|
||||
</SECTION>
|
||||
|
4
doc/reference/version.xml.in
Normal file
4
doc/reference/version.xml.in
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
||||
<phrase>@PACKAGE_VERSION@</phrase>
|
90
doc/white-paper.texi
Normal file
90
doc/white-paper.texi
Normal file
@@ -0,0 +1,90 @@
|
||||
@node White Paper, Reference Manual, About, Top
|
||||
@chapter LibGTop White Paper
|
||||
|
||||
@menu
|
||||
* Introduction:: Introduction
|
||||
* Overview:: Overview
|
||||
@end menu
|
||||
|
||||
@node Introduction, Overview, White Paper, White Paper
|
||||
@section Introduction
|
||||
|
||||
Many modern UNIX systems like Solaris, BSD or Digitial Unix only allow
|
||||
priviledged processes to read information like CPU and Memory Usage or
|
||||
information about running processes.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
BSD, for instance, doesn't have any other way to get those data than reading
|
||||
directly from @file{/dev/kmem} and you need to be in the @code{kmem} group to
|
||||
be able to read this.
|
||||
|
||||
@item
|
||||
Other systems, like Digital Unix, allow all users to get things like CPU and
|
||||
Memory statistics, but only root may read information about any process other
|
||||
than the current one (you may not even get information about your own processes
|
||||
if you're not root).
|
||||
|
||||
@item
|
||||
Linux has a very nice @file{/proc} filesystem, but reading and parsing
|
||||
@file{/proc} is very slow and inefficient.
|
||||
|
||||
@item
|
||||
Solaris is a bit better, but you still need to be in the @code{sys} group or
|
||||
even root to get some data.
|
||||
@end itemize
|
||||
|
||||
Because of this system utilities like @code{ps}, @code{uptime} or @code{top}
|
||||
often are setgid kmem or setuid root. Usually, they're also very specific to
|
||||
the system they're written for and not easily portable to other systems without
|
||||
a lot of work.
|
||||
|
||||
This, of cause, becomes a problem for graphical tools like @code{gtop} - making
|
||||
a GTK+ program setgid or even setuid would be a security hole as big as you can
|
||||
drive the entire X11 source code through. For the GNOME project, we also needed
|
||||
some kind of library which provides all the required information in a portable
|
||||
since there's more than just one single program that wants to use them - for
|
||||
instance @code{gtop} and the @code{multiload}, @code{cpumemusage} and
|
||||
@code{netload} panel applets.
|
||||
|
||||
@node Overview, , Introduction, White Paper
|
||||
@section Overview
|
||||
|
||||
This section should give you a short overview on how LibGTop was developed, which
|
||||
things needed to be considered and how it works.
|
||||
|
||||
@menu
|
||||
* Interface Design:: Things that need to be considered
|
||||
* Server Implementation:: The LibGTop "server"
|
||||
@end menu
|
||||
|
||||
@node Interface Design, Server Implementation, Overview, Overview
|
||||
@subsection Interface Design
|
||||
|
||||
At the very beginning, it was necessary to collect all the data the library part
|
||||
should provide and put them into some C structures. This was not that easiy as it
|
||||
might sound since LibGTop should be portable to any modern UNIX system with a common
|
||||
library part on all those systems, but the data that should be returned vary from
|
||||
system to system. For instance some systems support shared memory, but some others
|
||||
may not.
|
||||
|
||||
The header files where we define these C structures (which are system-independent) are
|
||||
shared between client and server. This way we can call the system dependent code
|
||||
directly where we do not need any special privileges to do so.
|
||||
|
||||
All of those structures contain a @code{flags} member which is interpreted as a bit
|
||||
mask and tells the caller of the library functions which of the fields in the returned
|
||||
structure are valid and which are not.
|
||||
|
||||
@node Server Implementation, , Interface Design, Overview
|
||||
@subsection Server Implementation
|
||||
|
||||
The LibGTop @dfn{server} is a setgid/setuid binary which contains all the system
|
||||
dependent code which needs special privileges. It is only build if it's required
|
||||
on the current system (for instance, the Linux kernel provides all the required
|
||||
data via its @file{/proc} filesystem so we do not need the server at all) and it
|
||||
only contains the @dfn{features} which need privileges.
|
||||
|
||||
Whenever we do not need any privileges to get all the data for some of the requested
|
||||
structures (here called @dfn{features}) the library calls the sysdeps code directly
|
||||
rather than using the server.
|
243
examples/ChangeLog
Normal file
243
examples/ChangeLog
Normal file
@@ -0,0 +1,243 @@
|
||||
2007-05-19 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* Makefile.am:
|
||||
* mem.c: (main):
|
||||
* wd.c: (main):
|
||||
|
||||
Fixed wd and new simple mem example.
|
||||
|
||||
2006-02-27 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* pprint.c: (pprint_get_proc_mem), (main):
|
||||
|
||||
Added proc_mem example.
|
||||
|
||||
2005-12-15 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* proclist.c: (print_pids), (main):
|
||||
|
||||
Improved example.
|
||||
|
||||
2005-12-12 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* .cvsignore:
|
||||
* Makefile.am:
|
||||
* proclist.c: (main):
|
||||
* procmap.c: (main):
|
||||
|
||||
Added quick example for glibtop_get_proclist()
|
||||
and updated procmap example to display smap.
|
||||
|
||||
2005-08-02 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_cpu), (pprint_get_loadavg),
|
||||
(pprint_get_mem), (pprint_get_msg_limits), (pprint_get_netlist),
|
||||
(pprint_get_swap), (pprint_get_uptime), (pprint_get_proc_kernel),
|
||||
(main):
|
||||
|
||||
Added pprint_get_proc_kernel(pid).
|
||||
Fixed prototypes.
|
||||
|
||||
2005-01-22 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* openfiles.c: (show_open_files): Updated.
|
||||
|
||||
2004-12-23 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* netload.c: (main):
|
||||
* procmap.c: (main): s/glibtop_error/g_error/g
|
||||
|
||||
2004-11-15 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* netload.c: (hwaddress_format_for_display), (main): Updated.
|
||||
|
||||
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_fsusage), (pprint_get_mountlist),
|
||||
(pprint_get_netload), (pprint_get_netlist), (main): Updated.
|
||||
|
||||
2004-09-25 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (main): Re-added pprint_get_msg_limits()
|
||||
|
||||
i2004-09-25 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* df.c: (main):
|
||||
* pprint.c: (main):
|
||||
* procargs.c: (main): Added missing call to glibgtop_init() / glibtop_close()
|
||||
|
||||
2004-09-24 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* .cvsignore:
|
||||
* Makefile.am:
|
||||
* ../configure.in
|
||||
* df.c: (print_fsusage), (main): Added new example, just like 'df'.
|
||||
|
||||
2004-09-22 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (main): Disable pprint_get_msg_limits() because it can fail.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_swap), (main): Updated.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* procargs.c: (show_args), (main): Updated.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_mountlist), (pprint_get_netload),
|
||||
(pprint_get_uptime), (main): Updated.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_mountlist): Updated.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* procargs.c: (show_args), (main): Updated.
|
||||
|
||||
2004-09-20 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* .cvsignore:
|
||||
* Makefile.am:
|
||||
* pprint.c: (pprint_get_cpu), (pprint_get_fsusage),
|
||||
(pprint_get_loadavg), (pprint_get_mem), (pprint_get_mountlist),
|
||||
(pprint_get_msg_limits), (main): Added new example : pretty prints
|
||||
the result of glibtop_*. Work in progress.
|
||||
|
||||
Now builds procargs.
|
||||
|
||||
* ../configure.in: Added to static list.
|
||||
|
||||
2004-07-07 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* procargs.c: Added glibtop_get_proc_argv demo.
|
||||
|
||||
2003-12-27 Ole Laursen <olau@hardworking.dk>
|
||||
|
||||
* mountlist.c: Updated to display block size too.
|
||||
|
||||
2004-03-04 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* smp.c: use libgtop-i18n.h
|
||||
|
||||
2003-10-21 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* Makefile.am:
|
||||
* smp.c:
|
||||
* sysdeps.c: (main): install only one library, libgtop-2.0
|
||||
Fix build-time warnings due to the redefinition of guint64
|
||||
Fix building smp.c and sysdeps.c
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* first.c:
|
||||
* mountlist.c:
|
||||
* netload.c:
|
||||
* procmap.c:
|
||||
* second.c:
|
||||
* smp.c:
|
||||
* sysdeps.c:
|
||||
* third.c:
|
||||
* timings.c: fixed compilation
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* Makefile.am: removed traces of guile, intllibs and libgnomesupport
|
||||
|
||||
2001-01-14 Abel Cheung <maddog@linux.org.hk>
|
||||
|
||||
* \*.c: bindtextdomain and textdomain uses GETTEXT_PACKAGE.
|
||||
|
||||
* Makefile.am, first.c, second.c, sysdeps.c: Make them at least
|
||||
compile for now, by disabling chunks which should belong to
|
||||
HEAD branch.
|
||||
|
||||
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-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.
|
62
examples/Makefile.am
Normal file
62
examples/Makefile.am
Normal file
@@ -0,0 +1,62 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
INCLUDES = @INCLUDES@
|
||||
|
||||
DEFS = @DEFS@
|
||||
|
||||
noinst_PROGRAMS = first second pprint procargs df netlist \
|
||||
mountlist procmap netload sysdeps timings \
|
||||
openfiles smp proclist mem wd affinity
|
||||
|
||||
first_SOURCES = first.c
|
||||
first_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
second_SOURCES = second.c
|
||||
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
|
||||
|
||||
procmap_SOURCES = procmap.c
|
||||
procmap_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
netload_SOURCES = netload.c
|
||||
netload_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
sysdeps_SOURCES = sysdeps.c
|
||||
sysdeps_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
mountlist_SOURCES = mountlist.c
|
||||
mountlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
smp_SOURCES = smp.c
|
||||
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
|
||||
|
||||
timings_SOURCES = timings.c
|
||||
timings_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
pprint_SOURCES = pprint.c
|
||||
pprint_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
procargs_SOURCES = procargs.c
|
||||
procargs_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
df_SOURCES = df.c
|
||||
df_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
netlist_SOURCES = netlist.c
|
||||
netlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
openfiles_SOURCES = openfiles.c
|
||||
openfiles_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
proclist_SOURCES = proclist.c
|
||||
proclist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
wd_SOURCES = wd.c
|
||||
wd_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
mem_SOURCE = mem.c
|
||||
mem_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
affinity_SOURCES = affinity.c
|
||||
affinity_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
34
examples/affinity.c
Normal file
34
examples/affinity.c
Normal file
@@ -0,0 +1,34 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/procaffinity.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
pid_t pid;
|
||||
glibtop_proc_affinity buf;
|
||||
guint16 *cpus;
|
||||
size_t i;
|
||||
|
||||
if (argc < 2 || !(pid = strtoul(argv[1], NULL, 0)))
|
||||
pid = getpid();
|
||||
|
||||
glibtop_init();
|
||||
|
||||
cpus = glibtop_get_proc_affinity(&buf, pid);
|
||||
|
||||
g_print("Process %u:\n"
|
||||
" - all: %d\n",
|
||||
(unsigned)pid, buf.all);
|
||||
|
||||
for (i = 0; i != buf.number; ++i)
|
||||
g_print(" - CPU#%u is set\n", cpus[i]);
|
||||
|
||||
g_free(cpus);
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
59
examples/df.c
Normal file
59
examples/df.c
Normal file
@@ -0,0 +1,59 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include <glibtop.h>
|
||||
|
||||
#include <glibtop/fsusage.h>
|
||||
#include <glibtop/mountlist.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
static void print_fsusage(const char *mountpoint)
|
||||
{
|
||||
glibtop_fsusage buf;
|
||||
|
||||
glibtop_get_fsusage(&buf, mountpoint);
|
||||
|
||||
printf("%-30s %10llu %10llu %10llu %5.1f %10llu %10llu\n",
|
||||
mountpoint,
|
||||
buf.blocks * buf.block_size >> 20,
|
||||
(buf.blocks - buf.bavail) * buf.block_size >> 20,
|
||||
buf.bavail * buf.block_size >> 20,
|
||||
(buf.blocks - buf.bavail) * 100.0 / (buf.blocks ? buf.blocks : 1.0),
|
||||
buf.read,
|
||||
buf.write
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glibtop_mountlist buf;
|
||||
|
||||
glibtop_init();
|
||||
|
||||
printf("%-30s %10s %10s %10s %5s %10s %10s\n",
|
||||
"Filesystem", "Size", "Used", "Avail", "Use%", "Read", "Write");
|
||||
|
||||
if (argc > 1) {
|
||||
while (*++argv)
|
||||
print_fsusage(*argv);
|
||||
} else {
|
||||
glibtop_mountentry *entries;
|
||||
size_t i;
|
||||
|
||||
entries = glibtop_get_mountlist(&buf, TRUE);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
print_fsusage(entries[i].mountdir);
|
||||
}
|
||||
|
||||
g_free(entries);
|
||||
}
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
578
examples/first.c
Normal file
578
examples/first.c
Normal file
@@ -0,0 +1,578 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/close.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;
|
||||
char buffer [BUFSIZ];
|
||||
pid_t pid, ppid, *ptr;
|
||||
char *args;
|
||||
|
||||
count = PROFILE_COUNT;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_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);
|
||||
|
||||
printf ("Uptime (0x%08lx): %f, %f\n",
|
||||
(unsigned long) data.uptime.flags,
|
||||
data.uptime.uptime, data.uptime.idletime);
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
g_free (ptr);
|
||||
|
||||
pid = getpid ();
|
||||
ppid = getppid ();
|
||||
|
||||
printf ("\n");
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_state (&data.proc_state, pid);
|
||||
|
||||
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);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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 : "");
|
||||
|
||||
g_free (args);
|
||||
|
||||
printf ("\n");
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_state (&data.proc_state, ppid);
|
||||
|
||||
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);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_uid (&data.proc_uid, ppid);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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 : "");
|
||||
|
||||
g_free (args);
|
||||
|
||||
printf ("\n");
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_state (&data.proc_state, 1);
|
||||
|
||||
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);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_uid (&data.proc_uid, 1);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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 : "");
|
||||
|
||||
g_free (args);
|
||||
|
||||
glibtop_close ();
|
||||
|
||||
exit (0);
|
||||
}
|
21
examples/mem.c
Normal file
21
examples/mem.c
Normal file
@@ -0,0 +1,21 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/mem.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glibtop_mem buf;
|
||||
|
||||
glibtop_init();
|
||||
|
||||
g_print("%lx\n", glibtop_global_server->features);
|
||||
|
||||
glibtop_get_mem(&buf);
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
116
examples/mountlist.c
Normal file
116
examples/mountlist.c
Normal file
@@ -0,0 +1,116 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/close.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 (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_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);
|
||||
|
||||
g_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%-16s %9s %9s %9s %9s %9s %9s\n",
|
||||
"Mount", "Blocks", "Free", "Avail", "Files", "Free", "BlockSz");
|
||||
|
||||
for (index = 0; index < mount_list.number; index++) {
|
||||
glibtop_get_fsusage (&fsusage,
|
||||
mount_entries [index].mountdir);
|
||||
|
||||
printf ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n",
|
||||
mount_entries [index].mountdir,
|
||||
fsusage.blocks, fsusage.bfree,
|
||||
fsusage.bavail, fsusage.files,
|
||||
fsusage.ffree, fsusage.block_size);
|
||||
}
|
||||
|
||||
g_free (mount_entries);
|
||||
|
||||
printf ("\nsbrk (0) = %p\n\n", sbrk (0));
|
||||
|
||||
glibtop_close ();
|
||||
|
||||
exit (0);
|
||||
}
|
50
examples/netlist.c
Normal file
50
examples/netlist.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/* Copyright (C) 2004 Benoît Dejean
|
||||
This file is part of LibGTop 2.0.
|
||||
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/netlist.h>
|
||||
|
||||
|
||||
int main(int argc, char *argv [])
|
||||
{
|
||||
glibtop_netlist buf;
|
||||
char **devices;
|
||||
guint32 i;
|
||||
|
||||
glibtop_init();
|
||||
|
||||
devices = glibtop_get_netlist(&buf);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
printf("net device '%s'\n", devices[i]);
|
||||
}
|
||||
|
||||
g_strfreev(devices);
|
||||
|
||||
glibtop_close();
|
||||
return 0;
|
||||
}
|
162
examples/netload.c
Normal file
162
examples/netload.c
Normal file
@@ -0,0 +1,162 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/close.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
|
||||
|
||||
|
||||
static char* hwaddress_format_for_display(glibtop_netload *buf)
|
||||
{
|
||||
unsigned i;
|
||||
GString *repr = g_string_new("");
|
||||
char *str;
|
||||
|
||||
for(i = 0; i < sizeof buf->hwaddress; ++i)
|
||||
g_string_append_printf(repr, "%02X:",
|
||||
(unsigned) ((char*)buf->hwaddress)[i]);
|
||||
|
||||
repr->str [ repr->len - 1] = ' ';
|
||||
str = g_string_free(repr, FALSE);
|
||||
g_strstrip(str);
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main (int argc, char *argv [])
|
||||
{
|
||||
glibtop_netload netload;
|
||||
unsigned method, count, port;
|
||||
struct in_addr addr, subnet;
|
||||
char *address_string, *subnet_string;
|
||||
char address6_string[INET6_ADDRSTRLEN], prefix6_string[INET6_ADDRSTRLEN];
|
||||
char *hwaddress_string;
|
||||
char buffer [BUFSIZ];
|
||||
|
||||
count = PROFILE_COUNT;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_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)
|
||||
g_error ("Usage: %s interface", argv [0]);
|
||||
|
||||
glibtop_get_netload (&netload, argv [1]);
|
||||
|
||||
addr.s_addr = netload.address;
|
||||
subnet.s_addr = netload.subnet;
|
||||
|
||||
address_string = g_strdup (inet_ntoa (addr));
|
||||
subnet_string = g_strdup (inet_ntoa (subnet));
|
||||
|
||||
inet_ntop (AF_INET6, netload.address6, address6_string, INET6_ADDRSTRLEN);
|
||||
inet_ntop (AF_INET6, netload.prefix6, prefix6_string, INET6_ADDRSTRLEN);
|
||||
|
||||
hwaddress_string = hwaddress_format_for_display(&netload);
|
||||
|
||||
printf ("Network Load (0x%016llx):\n\n"
|
||||
"\tInterface Flags:\t0x%016llx\n"
|
||||
"\tAddress:\t\t0x%08x - %s\n"
|
||||
"\tSubnet:\t\t\t0x%08x - %s\n\n"
|
||||
"\tMTU:\t\t\t%d\n"
|
||||
"\tCollisions:\t\t%llu\n\n"
|
||||
"\tPackets In:\t\t%llu\n"
|
||||
"\tPackets Out:\t\t%llu\n"
|
||||
"\tPackets Total:\t\t%llu\n\n"
|
||||
"\tBytes In:\t\t%llu\n"
|
||||
"\tBytes Out:\t\t%llu\n"
|
||||
"\tBytes Total:\t\t%llu\n\n"
|
||||
"\tErrors In:\t\t%llu\n"
|
||||
"\tErrors Out:\t\t%llu\n"
|
||||
"\tErrors Total:\t\t%llu\n\n"
|
||||
"\tAddress6:\t\t%s\n"
|
||||
"\tPrefix6:\t\t%s\n"
|
||||
"\tScope6:\t\t\t%#03x\n\n"
|
||||
"\tHarware Address:\t%s\n\n",
|
||||
netload.flags,
|
||||
netload.if_flags,
|
||||
(guint32) netload.address, address_string,
|
||||
(guint32) netload.subnet, subnet_string,
|
||||
netload.mtu,
|
||||
netload.collisions,
|
||||
netload.packets_in,
|
||||
netload.packets_out,
|
||||
netload.packets_total,
|
||||
netload.bytes_in,
|
||||
netload.bytes_out,
|
||||
netload.bytes_total,
|
||||
netload.errors_in,
|
||||
netload.errors_out,
|
||||
netload.errors_total,
|
||||
address6_string,
|
||||
prefix6_string,
|
||||
(int) netload.scope6,
|
||||
hwaddress_string);
|
||||
|
||||
|
||||
g_free (address_string);
|
||||
g_free (subnet_string);
|
||||
|
||||
glibtop_close ();
|
||||
|
||||
exit (0);
|
||||
}
|
75
examples/openfiles.c
Normal file
75
examples/openfiles.c
Normal file
@@ -0,0 +1,75 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/procopenfiles.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
static void show_open_files(pid_t pid)
|
||||
{
|
||||
glibtop_proc_open_files buf;
|
||||
glibtop_open_files_entry *files;
|
||||
unsigned i;
|
||||
|
||||
files = glibtop_get_proc_open_files(&buf, pid);
|
||||
|
||||
printf("<%ld>\n", (long)pid);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
printf("\tfd = %d\t", files[i].fd);
|
||||
|
||||
switch(files[i].type)
|
||||
{
|
||||
case GLIBTOP_FILE_TYPE_FILE:
|
||||
printf("file \"%s\"\n", files[i].info.file.name);
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_PIPE:
|
||||
printf("pipe\n");
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_INETSOCKET:
|
||||
printf("socket %s:%d\n", files[i].info.sock.dest_host, files[i].info.sock.dest_port);
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_INET6SOCKET:
|
||||
printf("socket [%s]:%d\n", files[i].info.sock.dest_host, files[i].info.sock.dest_port);
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_LOCALSOCKET:
|
||||
printf("localsocket %s\n", files[i].info.localsock.name);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("unknown type\n");
|
||||
}
|
||||
}
|
||||
|
||||
putchar('\n');
|
||||
|
||||
g_free(files);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glibtop_init();
|
||||
|
||||
show_open_files(getpid());
|
||||
|
||||
while(*++argv)
|
||||
{
|
||||
pid_t pid = strtol(*argv, NULL, 10);
|
||||
show_open_files(pid);
|
||||
}
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
324
examples/pprint.c
Normal file
324
examples/pprint.c
Normal file
@@ -0,0 +1,324 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
#include <glibtop/union.h>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stddef.h>
|
||||
|
||||
|
||||
#define buf_offsetof(MEMBER) ((ptrdiff_t)&(buf.MEMBER) - (ptrdiff_t)&buf)
|
||||
|
||||
#define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \
|
||||
(unsigned long) sizeof buf)
|
||||
|
||||
#define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \
|
||||
(unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA)
|
||||
|
||||
#define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \
|
||||
size_t i; \
|
||||
printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \
|
||||
(unsigned long) sizeof buf.ARRAY, (unsigned long) buf_offsetof(ARRAY),\
|
||||
(unsigned long) G_N_ELEMENTS(buf.ARRAY)); \
|
||||
for(i = 0; i < (SIZE - 1); ++i) printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \
|
||||
printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \
|
||||
} while(0)
|
||||
|
||||
#define FOOTER_PPRINT() putchar('\n');
|
||||
|
||||
|
||||
|
||||
static void pprint_get_cpu(void)
|
||||
{
|
||||
glibtop_cpu buf;
|
||||
|
||||
glibtop_get_cpu(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_cpu);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(total, "%llu");
|
||||
PPRINT(user, "%llu");
|
||||
PPRINT(nice, "%llu");
|
||||
PPRINT(sys, "%llu");
|
||||
PPRINT(idle, "%llu");
|
||||
PPRINT(iowait, "%llu");
|
||||
PPRINT(irq, "%llu");
|
||||
PPRINT(softirq, "%llu");
|
||||
PPRINT(frequency, "%llu");
|
||||
PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT(xcpu_flags, "%llx");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_fsusage(const char *mountpoint)
|
||||
{
|
||||
glibtop_fsusage buf;
|
||||
|
||||
glibtop_get_fsusage(&buf, mountpoint);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_fsusage);
|
||||
printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(blocks, "%llu");
|
||||
PPRINT(bfree, "%llu");
|
||||
PPRINT(bavail, "%llu");
|
||||
PPRINT(files, "%llu");
|
||||
PPRINT(ffree, "%llu");
|
||||
PPRINT(block_size, "%u");
|
||||
PPRINT(read, "%llu");
|
||||
PPRINT(write, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_loadavg(void)
|
||||
{
|
||||
glibtop_loadavg buf;
|
||||
|
||||
glibtop_get_loadavg(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_loadavg);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT_ARRAY(loadavg, 3, "%f");
|
||||
PPRINT(nr_running, "%llu");
|
||||
PPRINT(nr_tasks, "%llu");
|
||||
PPRINT(last_pid, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_mem(void)
|
||||
{
|
||||
glibtop_mem buf;
|
||||
|
||||
glibtop_get_mem(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_mem);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(total, "%llu");
|
||||
PPRINT(used, "%llu");
|
||||
PPRINT(free, "%llu");
|
||||
PPRINT(shared, "%llu");
|
||||
PPRINT(buffer, "%llu");
|
||||
PPRINT(cached, "%llu");
|
||||
PPRINT(user, "%llu");
|
||||
PPRINT(locked, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_mountlist(gboolean allfs)
|
||||
{
|
||||
glibtop_mountlist buf;
|
||||
glibtop_mountentry *entries;
|
||||
size_t i;
|
||||
|
||||
entries = glibtop_get_mountlist(&buf, allfs);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_mountlist);
|
||||
printf("glibtop_get_mountlist (allfs = %d)\n", allfs);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(number, "%llu");
|
||||
PPRINT(total, "%llu");
|
||||
PPRINT(size, "%llu");
|
||||
|
||||
printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
printf("\t\t .%lu = { .dev = %#llx,"
|
||||
" .devname = \"%s\","
|
||||
" .mountir = \"%s\","
|
||||
" .type = \"%s\" }\n",
|
||||
(unsigned long) i, entries[i].dev,
|
||||
entries[i].devname,
|
||||
entries[i].mountdir,
|
||||
entries[i].type);
|
||||
}
|
||||
|
||||
printf("\t\t}\n");
|
||||
FOOTER_PPRINT();
|
||||
|
||||
g_free(entries);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_msg_limits(void)
|
||||
{
|
||||
glibtop_msg_limits buf;
|
||||
|
||||
glibtop_get_msg_limits(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_msg_limits);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(msgpool, "%llu");
|
||||
PPRINT(msgmap, "%llu");
|
||||
PPRINT(msgmax, "%llu");
|
||||
PPRINT(msgmnb, "%llu");
|
||||
PPRINT(msgmni, "%llu");
|
||||
PPRINT(msgssz, "%llu");
|
||||
PPRINT(msgtql, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_netload(const char *iface)
|
||||
{
|
||||
glibtop_netload buf;
|
||||
|
||||
glibtop_get_netload(&buf, iface);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_netload);
|
||||
printf("glibtop_get_netload (iface = \"%s\")\n", iface);
|
||||
PPRINT(flags, "%#llx");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
static void pprint_get_netlist(void)
|
||||
{
|
||||
glibtop_netlist buf;
|
||||
char **devices;
|
||||
guint32 i;
|
||||
|
||||
devices = glibtop_get_netlist(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_netlist);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
printf("\t%s\n", devices[i]);
|
||||
}
|
||||
|
||||
FOOTER_PPRINT();
|
||||
|
||||
g_strfreev(devices);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_swap(void)
|
||||
{
|
||||
glibtop_swap buf;
|
||||
|
||||
glibtop_get_swap(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_swap);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(total, "%llu");
|
||||
PPRINT(used, "%llu");
|
||||
PPRINT(free, "%llu");
|
||||
PPRINT(pagein, "%llu");
|
||||
PPRINT(pageout, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_uptime(void)
|
||||
{
|
||||
glibtop_uptime buf;
|
||||
|
||||
glibtop_get_uptime(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_uptime);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(uptime, "%f");
|
||||
PPRINT(idletime, "%f");
|
||||
PPRINT(boot_time, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void pprint_get_proc_kernel(pid_t pid)
|
||||
{
|
||||
glibtop_proc_kernel buf;
|
||||
|
||||
glibtop_get_proc_kernel(&buf, pid);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_proc_kernel);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(k_flags, "%llu");
|
||||
PPRINT(min_flt, "%llu");
|
||||
PPRINT(maj_flt, "%llu");
|
||||
PPRINT(cmin_flt, "%llu");
|
||||
PPRINT(cmaj_flt, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
static void pprint_get_proc_mem(pid_t pid)
|
||||
{
|
||||
glibtop_proc_mem buf;
|
||||
|
||||
glibtop_get_proc_mem(&buf, pid);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_proc_mem);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(size, "%llu");
|
||||
PPRINT(vsize, "%llu");
|
||||
PPRINT(resident, "%llu");
|
||||
PPRINT(share, "%llu");
|
||||
PPRINT(rss, "%llu");
|
||||
PPRINT(rss_rlim, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
glibtop_init();
|
||||
|
||||
pprint_get_cpu();
|
||||
|
||||
pprint_get_fsusage("/");
|
||||
|
||||
pprint_get_loadavg();
|
||||
|
||||
pprint_get_mem();
|
||||
|
||||
pprint_get_mountlist(TRUE);
|
||||
pprint_get_mountlist(FALSE);
|
||||
|
||||
pprint_get_msg_limits();
|
||||
|
||||
pprint_get_swap();
|
||||
|
||||
pprint_get_netlist();
|
||||
|
||||
pprint_get_netload("eth0");
|
||||
pprint_get_netload("ppp0");
|
||||
pprint_get_netload("<unknown>");
|
||||
/* pprint_get_sysinfo(); */
|
||||
|
||||
pprint_get_uptime();
|
||||
|
||||
pprint_get_proc_kernel(getpid());
|
||||
pprint_get_proc_mem(getpid());
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
51
examples/procargs.c
Normal file
51
examples/procargs.c
Normal file
@@ -0,0 +1,51 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/procargs.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
static void show_args(pid_t pid, unsigned max_len)
|
||||
{
|
||||
glibtop_proc_args buf;
|
||||
char ** const pargv = glibtop_get_proc_argv(&buf, pid, max_len);
|
||||
|
||||
char **parg = pargv;
|
||||
|
||||
printf("<%ld>\t", (long)pid);
|
||||
|
||||
while(*parg)
|
||||
{
|
||||
printf("\"%s\" ", *parg);
|
||||
parg++;
|
||||
}
|
||||
|
||||
putchar('\n');
|
||||
|
||||
g_strfreev(pargv);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glibtop_init();
|
||||
|
||||
show_args(getpid(), 0);
|
||||
show_args(getpid(), 15);
|
||||
|
||||
while(*++argv)
|
||||
{
|
||||
pid_t pid = strtol(*argv, NULL, 10);
|
||||
show_args(pid, 0);
|
||||
show_args(pid, 15);
|
||||
}
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
43
examples/proclist.c
Normal file
43
examples/proclist.c
Normal file
@@ -0,0 +1,43 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/proclist.h>
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
|
||||
static void print_pids(guint64 which, guint64 arg)
|
||||
{
|
||||
pid_t *pids;
|
||||
unsigned i;
|
||||
glibtop_proclist buf;
|
||||
|
||||
pids = glibtop_get_proclist(&buf, which, arg);
|
||||
|
||||
printf("glibtop_get_proclist(%#llx, %llu) -> %lu processes\n",
|
||||
which, arg, (unsigned long)buf.number);
|
||||
|
||||
for (i = 0; i < buf.number; ++i)
|
||||
printf("%u ", pids[i]);
|
||||
|
||||
putchar('\n');
|
||||
putchar('\n');
|
||||
|
||||
g_free(pids);
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
glibtop_init();
|
||||
|
||||
print_pids(GLIBTOP_KERN_PROC_ALL, 0);
|
||||
print_pids(GLIBTOP_KERN_PROC_UID, getuid());
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
163
examples/procmap.c
Normal file
163
examples/procmap.c
Normal file
@@ -0,0 +1,163 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/close.h>
|
||||
|
||||
#include <glibtop/parameter.h>
|
||||
|
||||
#include <glibtop/procmap.h>
|
||||
|
||||
|
||||
#include <sys/resource.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#ifndef PROFILE_COUNT
|
||||
#define PROFILE_COUNT 1
|
||||
#endif
|
||||
|
||||
int
|
||||
main (int argc, char *argv [])
|
||||
{
|
||||
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 (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_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))
|
||||
g_error ("Usage: %s pid", argv [0]);
|
||||
|
||||
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;
|
||||
|
||||
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 - %5.5s - %s\n";
|
||||
else
|
||||
format = "%08lx-%08lx %08lx - "
|
||||
"%02x:%02x %08lu - %5.5s - %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);
|
||||
}
|
||||
|
||||
|
||||
g_print("smaps flags:%#llx size:%lluKiB rss:%lluKiB "
|
||||
"shared_clean:%lluKib shared_dirty:%lluKiB "
|
||||
"private_clean:%lluKiB private_dirty: %lluKiB\n",
|
||||
maps[i].flags,
|
||||
maps[i].size >> 10,
|
||||
maps[i].rss >> 10,
|
||||
maps[i].shared_clean >> 10,
|
||||
maps[i].shared_dirty >> 10,
|
||||
maps[i].private_clean >> 10,
|
||||
maps[i].private_dirty >> 10);
|
||||
|
||||
if (filename && (filename != maps [i].filename))
|
||||
g_free ((void*)filename);
|
||||
}
|
||||
|
||||
g_free (maps);
|
||||
|
||||
glibtop_close ();
|
||||
|
||||
exit (0);
|
||||
}
|
304
examples/second.c
Normal file
304
examples/second.c
Normal file
@@ -0,0 +1,304 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <libintl.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/close.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;
|
||||
unsigned int ncpu;
|
||||
#endif
|
||||
|
||||
printf ("\n");
|
||||
|
||||
glibtop_get_proc_state (&data.proc_state, pid);
|
||||
|
||||
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);
|
||||
|
||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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 : "");
|
||||
|
||||
g_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 i;
|
||||
pid_t *ptr, pid;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_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);
|
||||
}
|
||||
|
||||
g_free (ptr);
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
||||
|
||||
|
124
examples/smp.c
Normal file
124
examples/smp.c
Normal file
@@ -0,0 +1,124 @@
|
||||
/* 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 <config.h>
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/cpu.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;
|
||||
|
||||
glibtop_init();
|
||||
|
||||
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);
|
||||
}
|
152
examples/sysdeps.c
Normal file
152
examples/sysdeps.c
Normal file
@@ -0,0 +1,152 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/close.h>
|
||||
#include <glibtop/sysdeps.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 (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_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"
|
||||
"\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,
|
||||
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);
|
||||
}
|
80
examples/test.scm
Normal file
80
examples/test.scm
Normal file
@@ -0,0 +1,80 @@
|
||||
(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)
|
360
examples/timings.c
Normal file
360
examples/timings.c
Normal file
@@ -0,0 +1,360 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <stdio.h>
|
||||
#include <libintl.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/close.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;
|
||||
struct rusage total_start, total_end;
|
||||
struct rusage rusage_start, rusage_end;
|
||||
struct timeval elapsed_utime, elapsed_stime;
|
||||
pid_t pid, *ptr;
|
||||
|
||||
count = PROFILE_COUNT;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_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);
|
||||
g_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);
|
||||
}
|
35
examples/wd.c
Normal file
35
examples/wd.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/procwd.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
pid_t pid;
|
||||
glibtop_proc_wd buf;
|
||||
char **dirs, **dir;
|
||||
|
||||
if (argc < 2 || !(pid = strtoul(argv[1], NULL, 0)))
|
||||
pid = getpid();
|
||||
|
||||
glibtop_init();
|
||||
|
||||
dirs = glibtop_get_proc_wd(&buf, pid);
|
||||
|
||||
g_print("Process %u:\n"
|
||||
" - root: '%s'\n"
|
||||
" - exe: '%s'\n"
|
||||
" - working directories:\n",
|
||||
(unsigned)pid, buf.root, buf.exe);
|
||||
|
||||
for (dir = dirs; *dir; ++dir)
|
||||
g_print(" - '%s'\n", *dir);
|
||||
|
||||
g_strfreev(dirs);
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
27
features.def
Normal file
27
features.def
Normal file
@@ -0,0 +1,27 @@
|
||||
void|cpu|ulong(total,user,nice,sys,idle,iowait,irq,softirq,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4],xcpu_iowait[4],xcpu_irq[4],xcpu_softirq[4])
|
||||
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
|
||||
void|swap|ulong(total,used,free,pagein,pageout)
|
||||
void|uptime|double(uptime,idletime)
|
||||
void|loadavg|double(loadavg[3]):ulong(nr_running,nr_tasks,last_pid)
|
||||
void|shm_limits|ulong(shmmax,shmmin,shmmni,shmseg,shmall)
|
||||
void|msg_limits|ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql)
|
||||
void|sem_limits|ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem)
|
||||
pid_t*|proclist|ulong(number,size,total)|long(which,arg)
|
||||
void|proc_state|str(cmd):char(state):ulong(uid,gid)|pid_t(pid)
|
||||
void|proc_uid|long(uid,euid,gid,egid,pid,ppid,pgrp,session,tty,tpgid,priority,nice)|pid_t(pid)
|
||||
void|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid)
|
||||
void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_value,frequency,xcpu_utime[4],xcpu_stime[4])|pid_t(pid)
|
||||
void|proc_signal|ulong(signal[2],blocked[2],sigignore[2],sigcatch[2])|pid_t(pid)
|
||||
void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,nwchan):str(wchan)|pid_t(pid)
|
||||
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid)
|
||||
char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len)
|
||||
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
|
||||
glibtop_open_files_entry *|proc_open_files|ulong(number)|pid_t(pid)
|
||||
glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs)
|
||||
void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir
|
||||
void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface
|
||||
void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device)
|
||||
char **|netlist|unsigned(number)
|
||||
char **|proc_wd|ulong(number),str(root),str(exe)|pid_t(pid)
|
||||
guint16*|proc_affinity|ulong(number),int(all)|pid_t(pid)
|
||||
|
143
glibtop.h
Normal file
143
glibtop.h
Normal file
@@ -0,0 +1,143 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_H__
|
||||
#define __GLIBTOP_H__
|
||||
|
||||
#include <glib/gmacros.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _glibtop glibtop;
|
||||
|
||||
/**
|
||||
* LIBGTOP_CHECK_VERSION
|
||||
* @major: Major version number
|
||||
* @minor: Minor version number
|
||||
* @micro: Micro version number
|
||||
*
|
||||
* Checks if the version given is compatable with this version of the
|
||||
* library. For example, LIBGTOP_CHECK_VERSION(1.2.3) would return TRUE
|
||||
* if the version is 1.2.5, and FALSE if 1.1.0. This can be used in
|
||||
* build tests.
|
||||
*
|
||||
**/
|
||||
|
||||
#include <libgtopconfig.h>
|
||||
|
||||
#define LIBGTOP_CHECK_VERSION(major, minor, micro) \
|
||||
(LIBGTOP_MAJOR_VERSION > (major) || \
|
||||
(LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION > (minor)) || \
|
||||
(LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION == (minor) && \
|
||||
LIBGTOP_MICRO_VERSION >= (micro)))
|
||||
|
||||
|
||||
#include <glibtop/global.h>
|
||||
|
||||
#include <glibtop_server.h>
|
||||
|
||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
||||
#include <glibtop_machine.h>
|
||||
#endif
|
||||
|
||||
#ifndef GLIBTOP_MOUNTENTRY_LEN
|
||||
#define GLIBTOP_MOUNTENTRY_LEN 79
|
||||
#endif
|
||||
|
||||
|
||||
#include <glibtop/sysdeps.h>
|
||||
|
||||
#include <glibtop/close.h>
|
||||
|
||||
|
||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
||||
|
||||
struct _glibtop
|
||||
{
|
||||
unsigned flags;
|
||||
unsigned method; /* Server Method */
|
||||
unsigned error_method; /* Error Method */
|
||||
glibtop_machine machine; /* Machine dependent data */
|
||||
int input [2]; /* Pipe client <- server */
|
||||
int output [2]; /* Pipe client -> server */
|
||||
int socket; /* Accepted connection of a socket */
|
||||
int ncpu; /* Number of CPUs, zero if single-processor */
|
||||
int real_ncpu; /* Real number of CPUs. Only ncpu are monitored */
|
||||
unsigned long os_version_code; /* Version code of the operating system */
|
||||
const char *name; /* Program name for error messages */
|
||||
const char *server_command; /* Command used to invoke server */
|
||||
const char *server_host; /* Host the server should run on */
|
||||
const char *server_user; /* Name of the user on the target host */
|
||||
const char *server_rsh; /* Command used to connect to the target host */
|
||||
unsigned long features; /* Server is required for this features */
|
||||
unsigned long server_port; /* Port on which daemon is listening */
|
||||
glibtop_sysdeps sysdeps; /* Detailed feature list */
|
||||
glibtop_sysdeps required; /* Required feature list */
|
||||
pid_t pid; /* PID of the server */
|
||||
};
|
||||
|
||||
#else /* !HAVE_GLIBTOP_MACHINE_H */
|
||||
|
||||
struct _glibtop
|
||||
{
|
||||
unsigned flags;
|
||||
unsigned method; /* Server Method */
|
||||
unsigned error_method; /* Error Method */
|
||||
int input [2]; /* Pipe client <- server */
|
||||
int output [2]; /* Pipe client -> server */
|
||||
int socket; /* Accepted connection of a socket */
|
||||
int ncpu; /* Number of CPUs, zero if single-processor */
|
||||
int real_ncpu; /* Real number of CPUs. Only ncpu are monitored */
|
||||
unsigned long os_version_code; /* Version code of the operating system */
|
||||
const char *name; /* Program name for error messages */
|
||||
const char *server_command; /* Command used to invoke server */
|
||||
const char *server_host; /* Host the server should run on */
|
||||
const char *server_user; /* Name of the user on the target host */
|
||||
const char *server_rsh; /* Command used to connect to the target host */
|
||||
unsigned long features; /* Server is required for this features */
|
||||
unsigned long server_port; /* Port on which daemon is listening */
|
||||
glibtop_sysdeps sysdeps; /* Detailed feature list */
|
||||
glibtop_sysdeps required; /* Required feature list */
|
||||
pid_t pid; /* PID of the server */
|
||||
};
|
||||
|
||||
#endif /* HAVE_GLIBTOP_MACHINE_H */
|
||||
|
||||
extern glibtop *glibtop_global_server;
|
||||
|
||||
extern const unsigned long glibtop_server_features;
|
||||
|
||||
glibtop *
|
||||
glibtop_init (void);
|
||||
|
||||
glibtop *
|
||||
glibtop_init_r (glibtop **server_ptr,
|
||||
unsigned long features,
|
||||
unsigned flags);
|
||||
|
||||
glibtop *
|
||||
glibtop_init_s (glibtop **server_ptr,
|
||||
unsigned long features,
|
||||
unsigned flags);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
2
include/Makefile.am
Normal file
2
include/Makefile.am
Normal file
@@ -0,0 +1,2 @@
|
||||
SUBDIRS = glibtop
|
||||
|
14
include/glibtop/Makefile.am
Normal file
14
include/glibtop/Makefile.am
Normal file
@@ -0,0 +1,14 @@
|
||||
glibtopdir = $(includedir)/libgtop-2.0/glibtop
|
||||
|
||||
glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \
|
||||
sem_limits.h uptime.h command.h mem.h proclist.h \
|
||||
proctime.h shm_limits.h version.h cpu.h msg_limits.h \
|
||||
procmem.h procuid.h swap.h \
|
||||
procsegment.h sysdeps.h global.h \
|
||||
procsignal.h union.h gnuserv.h \
|
||||
parameter.h mountlist.h fsusage.h procmap.h signal.h \
|
||||
sysinfo.h ppp.h procargs.h netload.h \
|
||||
procwd.h procaffinity.h \
|
||||
netlist.h procopenfiles.h open.h
|
||||
|
||||
noinst_HEADERS = error.h write.h read_data.h read.h init_hooks.h
|
41
include/glibtop/call-vector.h.in
Normal file
41
include/glibtop/call-vector.h.in
Normal file
@@ -0,0 +1,41 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
@@AUTOGEN_COMMENT@@
|
||||
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_CALL_VECTOR_H__
|
||||
#define __GLIBTOP_CALL_VECTOR_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/union.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
struct _glibtop_call_vector
|
||||
{
|
||||
@@GLIBTOP_CALL_VECTOR@@
|
||||
};
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
116
include/glibtop/call-vector.pl
Normal file
116
include/glibtop/call-vector.pl
Normal file
@@ -0,0 +1,116 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
require 'c_types.pl';
|
||||
|
||||
die "Usage: $0 features.def call-vector.h.in" unless $#ARGV == 1;
|
||||
|
||||
$[ = 1; # set array base to 1
|
||||
$, = ' '; # set output field separator
|
||||
$\ = "\n"; # set output record separator
|
||||
|
||||
sub toupper {
|
||||
local($_) = @_;
|
||||
tr/a-z/A-Z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
sub tolower {
|
||||
local($_) = @_;
|
||||
tr/A-Z/a-z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
$func_decl_code = '';
|
||||
|
||||
open FEATURESDEF, $ARGV[1] or
|
||||
die "open ($ARGV[1]): $!";
|
||||
|
||||
while (<FEATURESDEF>) {
|
||||
chop; # strip record separator
|
||||
|
||||
if (/^[^\#]/) {
|
||||
&parse_features_def ($_);
|
||||
}
|
||||
}
|
||||
|
||||
close FEATURESDEF;
|
||||
|
||||
sub parse_features_def {
|
||||
local($line) = @_;
|
||||
@line_fields = split(/\|/, $line, 9999);
|
||||
$retval = $line_fields[1];
|
||||
$element_def = $line_fields[3];
|
||||
$feature = $line_fields[2];
|
||||
$param_def = $line_fields[4];
|
||||
|
||||
$orig = $feature;
|
||||
$feature =~ s/^@//;
|
||||
$space = $feature;
|
||||
$space =~ s/./ /g;
|
||||
|
||||
if ($retval eq 'retval') {
|
||||
$retval_param = '&retval';
|
||||
$retval = 'int';
|
||||
}
|
||||
elsif ($retval !~ /^void$/) {
|
||||
$retval_param = 'NULL';
|
||||
}
|
||||
else {
|
||||
$retval_param = 'NULL';
|
||||
}
|
||||
|
||||
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
||||
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
||||
}
|
||||
|
||||
$param_decl = '';
|
||||
$nr_params = (@params = split(/:/, $param_def, 9999));
|
||||
for ($param = 1; $param <= $nr_params; $param++) {
|
||||
$list = $params[$param];
|
||||
$type = $params[$param];
|
||||
$type =~ s/\(.*//;
|
||||
$list =~ s/^.*\(//;
|
||||
$list =~ s/\)$//;
|
||||
$count = (@fields = split(/,/, $list, 9999));
|
||||
for ($field = 1; $field <= $count; $field++) {
|
||||
my $c_type = $typeinfo->{$type}->[1];
|
||||
|
||||
$param_decl = $param_decl . ', ';
|
||||
$param_decl = $param_decl . $c_type;
|
||||
}
|
||||
}
|
||||
|
||||
if ($line_fields[3] eq '') {
|
||||
$func_decl_code .= sprintf
|
||||
(qq[\t%s (*%s) (glibtop_server *, glibtop_closure *%s);\n], $retval, $feature, $param_decl);
|
||||
} elsif ($line_fields[3] eq 'array') {
|
||||
$func_decl_code .= sprintf
|
||||
(qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *%s);\n], $retval, $feature, $param_decl);
|
||||
} elsif ($line_fields[3] =~ /^array/) {
|
||||
$func_decl_code .= sprintf
|
||||
(qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
|
||||
} else {
|
||||
$func_decl_code .= sprintf
|
||||
(qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
|
||||
}
|
||||
}
|
||||
|
||||
chop $func_decl_code;
|
||||
|
||||
$auto_gen_comment = sprintf
|
||||
(qq[/*\n * This file is automatically generated.\n * Please modify `call-vector.pl' and `call-vector.h.in'.\n */]);
|
||||
|
||||
open CALLVECTOR, $ARGV[2] or
|
||||
die "open ($ARGV[2]): $!";
|
||||
|
||||
while (<CALLVECTOR>) {
|
||||
chop;
|
||||
|
||||
s/^\s*\@\@GLIBTOP_CALL_VECTOR\@\@\s*$/$func_decl_code/;
|
||||
|
||||
s/^\s*\@\@AUTOGEN_COMMENT\@\@\s*$/$auto_gen_comment/;
|
||||
} continue {
|
||||
print $_;
|
||||
}
|
||||
|
||||
close CALLVECTOR;
|
38
include/glibtop/close.h
Normal file
38
include/glibtop/close.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_CLOSE_H__
|
||||
#define __GLIBTOP_CLOSE_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
void glibtop_close (void);
|
||||
|
||||
void glibtop_close_r (glibtop *server);
|
||||
|
||||
void glibtop_close_s (glibtop *server);
|
||||
void glibtop_close_p (glibtop *server);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
104
include/glibtop/command.h
Normal file
104
include/glibtop/command.h
Normal file
@@ -0,0 +1,104 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_COMMAND_H__
|
||||
#define __GLIBTOP_COMMAND_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/sysdeps.h>
|
||||
#include <glibtop/union.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_CMND_QUIT 0
|
||||
#define GLIBTOP_CMND_SYSDEPS 1
|
||||
|
||||
#define GLIBTOP_CMND_CPU 2
|
||||
#define GLIBTOP_CMND_MEM 3
|
||||
#define GLIBTOP_CMND_SWAP 4
|
||||
#define GLIBTOP_CMND_UPTIME 5
|
||||
#define GLIBTOP_CMND_LOADAVG 6
|
||||
#define GLIBTOP_CMND_SHM_LIMITS 7
|
||||
#define GLIBTOP_CMND_MSG_LIMITS 8
|
||||
#define GLIBTOP_CMND_SEM_LIMITS 9
|
||||
#define GLIBTOP_CMND_PROCLIST 10
|
||||
|
||||
#define GLIBTOP_CMND_PROC_STATE 11
|
||||
#define GLIBTOP_CMND_PROC_UID 12
|
||||
#define GLIBTOP_CMND_PROC_MEM 13
|
||||
#define GLIBTOP_CMND_PROC_TIME 14
|
||||
#define GLIBTOP_CMND_PROC_SIGNAL 15
|
||||
#define GLIBTOP_CMND_PROC_KERNEL 16
|
||||
#define GLIBTOP_CMND_PROC_SEGMENT 17
|
||||
#define GLIBTOP_CMND_PROC_ARGS 18
|
||||
#define GLIBTOP_CMND_PROC_MAP 19
|
||||
|
||||
#define GLIBTOP_CMND_MOUNTLIST 20
|
||||
#define GLIBTOP_CMND_FSUSAGE 21
|
||||
#define GLIBTOP_CMND_NETLOAD 22
|
||||
#define GLIBTOP_CMND_PPP 23
|
||||
#define GLIBTOP_CMND_NETLIST 24
|
||||
#define GLIBTOP_CMND_PROC_OPEN_FILES 25
|
||||
#define GLIBTOP_CMND_PROC_WD 26
|
||||
#define GLIBTOP_CMND_PROC_AFFINITY 27
|
||||
|
||||
#define GLIBTOP_MAX_CMND 28
|
||||
|
||||
#define _GLIBTOP_PARAM_SIZE 16
|
||||
|
||||
typedef struct _glibtop_command glibtop_command;
|
||||
|
||||
typedef struct _glibtop_response glibtop_response;
|
||||
typedef union _glibtop_response_union glibtop_response_union;
|
||||
|
||||
struct _glibtop_command
|
||||
{
|
||||
guint64 command;
|
||||
guint64 size, data_size;
|
||||
char parameter [_GLIBTOP_PARAM_SIZE];
|
||||
};
|
||||
|
||||
union _glibtop_response_union
|
||||
{
|
||||
glibtop_union data;
|
||||
glibtop_sysdeps sysdeps;
|
||||
};
|
||||
|
||||
struct _glibtop_response
|
||||
{
|
||||
gint64 offset;
|
||||
guint64 size, data_size;
|
||||
glibtop_response_union u;
|
||||
};
|
||||
|
||||
#define glibtop_call(p1, p2, p3, p4) glibtop_call_r(glibtop_global_server, p1, p2, p3, p4)
|
||||
|
||||
void *
|
||||
glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
|
||||
const void *send_buf, size_t recv_size, void *recv_buf);
|
||||
|
||||
void *
|
||||
glibtop_call_s (glibtop *server, unsigned command, size_t send_size,
|
||||
const void *send_buf, size_t recv_size, void *recv_buf);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
105
include/glibtop/cpu.h
Normal file
105
include/glibtop/cpu.h
Normal file
@@ -0,0 +1,105 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_CPU_H__
|
||||
#define __GLIBTOP_CPU_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_CPU_TOTAL 0
|
||||
#define GLIBTOP_CPU_USER 1
|
||||
#define GLIBTOP_CPU_NICE 2
|
||||
#define GLIBTOP_CPU_SYS 3
|
||||
#define GLIBTOP_CPU_IDLE 4
|
||||
#define GLIBTOP_CPU_FREQUENCY 5
|
||||
|
||||
#define GLIBTOP_XCPU_TOTAL 6
|
||||
#define GLIBTOP_XCPU_USER 7
|
||||
#define GLIBTOP_XCPU_NICE 8
|
||||
#define GLIBTOP_XCPU_SYS 9
|
||||
#define GLIBTOP_XCPU_IDLE 10
|
||||
#define GLIBTOP_XCPU_FLAGS 11
|
||||
|
||||
#define GLIBTOP_CPU_IOWAIT 12
|
||||
#define GLIBTOP_CPU_IRQ 13
|
||||
#define GLIBTOP_CPU_SOFTIRQ 14
|
||||
#define GLIBTOP_XCPU_IOWAIT 15
|
||||
#define GLIBTOP_XCPU_IRQ 16
|
||||
#define GLIBTOP_XCPU_SOFTIRQ 17
|
||||
|
||||
#define GLIBTOP_MAX_CPU 18
|
||||
|
||||
/* Nobody should really be using more than 4 processors.
|
||||
Yes we are :)
|
||||
Nobody should really be using more than 32 processors.
|
||||
*/
|
||||
#define GLIBTOP_NCPU 32
|
||||
|
||||
typedef struct _glibtop_cpu glibtop_cpu;
|
||||
|
||||
struct _glibtop_cpu
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 total; /* GLIBTOP_CPU_TOTAL */
|
||||
guint64 user; /* GLIBTOP_CPU_USER */
|
||||
guint64 nice; /* GLIBTOP_CPU_NICE */
|
||||
guint64 sys; /* GLIBTOP_CPU_SYS */
|
||||
guint64 idle; /* GLIBTOP_CPU_IDLE */
|
||||
guint64 iowait; /* GLIBTOP_CPU_IOWAIT */
|
||||
guint64 irq; /* GLIBTOP_CPU_IRQ */
|
||||
guint64 softirq; /* GLIBTOP_CPU_SOFTIRQ */
|
||||
guint64 frequency; /* GLIBTOP_CPU_FREQUENCY */
|
||||
guint64 xcpu_total [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_TOTAL */
|
||||
guint64 xcpu_user [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_USER */
|
||||
guint64 xcpu_nice [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_NICE */
|
||||
guint64 xcpu_sys [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_SYS */
|
||||
guint64 xcpu_idle [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IDLE */
|
||||
guint64 xcpu_iowait [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IOWAIT */
|
||||
guint64 xcpu_irq [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IRQ */
|
||||
guint64 xcpu_softirq [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_SOFTIRQ */
|
||||
guint64 xcpu_flags; /* GLIBTOP_XCPU_IDLE */
|
||||
};
|
||||
|
||||
void glibtop_get_cpu(glibtop_cpu *buf);
|
||||
|
||||
#if GLIBTOP_SUID_CPU
|
||||
#define glibtop_get_cpu_r glibtop_get_cpu_p
|
||||
#else
|
||||
#define glibtop_get_cpu_r glibtop_get_cpu_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_cpu_l (glibtop *server, glibtop_cpu *buf);
|
||||
|
||||
#if GLIBTOP_SUID_CPU
|
||||
void _glibtop_init_cpu_p (glibtop *server);
|
||||
void glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf);
|
||||
#else
|
||||
void _glibtop_init_cpu_s (glibtop *server);
|
||||
void glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
51
include/glibtop/error.h
Normal file
51
include/glibtop/error.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This is private API
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_ERROR_H__
|
||||
#define __GLIBTOP_ERROR_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
void glibtop_error_vr (glibtop *server, const char *format, va_list args) G_GNUC_NORETURN;
|
||||
void glibtop_warn_vr (glibtop *server, const char *format, va_list args);
|
||||
void glibtop_error_io_vr (glibtop *server, const char *format, int, va_list args) G_GNUC_NORETURN;
|
||||
void glibtop_warn_io_vr (glibtop *server, const char *format, int, va_list args);
|
||||
|
||||
void glibtop_error_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN;
|
||||
void glibtop_warn_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
|
||||
void glibtop_error_io_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN;
|
||||
void glibtop_warn_io_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
|
||||
|
||||
void glibtop_error (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN;
|
||||
void glibtop_warn (const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
void glibtop_error_io (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN;
|
||||
void glibtop_warn_io (const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
64
include/glibtop/fsusage.h
Normal file
64
include/glibtop/fsusage.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_FSUSAGE_H__
|
||||
#define __GLIBTOP_FSUSAGE_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_FSUSAGE_BLOCKS 0
|
||||
#define GLIBTOP_FSUSAGE_BFREE 1
|
||||
#define GLIBTOP_FSUSAGE_BAVAIL 2
|
||||
#define GLIBTOP_FSUSAGE_FILES 3
|
||||
#define GLIBTOP_FSUSAGE_FFREE 4
|
||||
#define GLIBTOP_FSUSAGE_BLOCK_SIZE 5
|
||||
#define GLIBTOP_FSUSAGE_READ 6
|
||||
#define GLIBTOP_FSUSAGE_WRITE 7
|
||||
#define GLIBTOP_MAX_FSUSAGE 8
|
||||
|
||||
|
||||
typedef struct _glibtop_fsusage glibtop_fsusage;
|
||||
|
||||
struct _glibtop_fsusage
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 blocks; /* Total number of blocks. */
|
||||
guint64 bfree; /* Free blocks available to superuser. */
|
||||
guint64 bavail; /* Free blocks available to non-superuser. */
|
||||
guint64 files; /* Total file nodes. */
|
||||
guint64 ffree; /* Free file nodes. */
|
||||
guint32 block_size; /* Size of a block in bytes. */
|
||||
guint64 read, write; /* Total blocks read and written */
|
||||
};
|
||||
|
||||
void glibtop_get_fsusage(glibtop_fsusage *buf, const char *mount_dir);
|
||||
|
||||
#define glibtop_get_fsusage_r glibtop_get_fsusage_s
|
||||
|
||||
void glibtop_get_fsusage_l (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
||||
void glibtop_get_fsusage_s (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
81
include/glibtop/global.h
Normal file
81
include/glibtop/global.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_GLOBAL_H__
|
||||
#define __GLIBTOP_GLOBAL_H__
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#ifdef _IN_LIBGTOP
|
||||
|
||||
#endif /* _IN_LIBGTOP */
|
||||
|
||||
#if TIME_WITH_SYS_TIME
|
||||
# include <sys/time.h>
|
||||
# include <time.h>
|
||||
#else
|
||||
# if HAVE_SYS_TIME_H
|
||||
# include <sys/time.h>
|
||||
# else
|
||||
# include <time.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MEMORY_H
|
||||
#include <memory.h>
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _IN_LIBGTOP
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#endif /* _IN_LIBGTOP */
|
||||
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef _IN_LIBGTOP
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#ifndef HAVE_STRERROR
|
||||
char *strerror (int errno);
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* _IN_LIBGTOP */
|
||||
|
||||
#endif
|
160
include/glibtop/gnuserv.h
Normal file
160
include/glibtop/gnuserv.h
Normal file
@@ -0,0 +1,160 @@
|
||||
/* -*-C-*-
|
||||
|
||||
Header file for the GNU Emacs server and client C code.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
Copying is permitted under those conditions described by the GNU
|
||||
General Public License.
|
||||
|
||||
Copyright (C) 1989 Free Software Foundation, Inc.
|
||||
|
||||
Author: Andy Norman (ange@hplb.hpl.hp.com), based on
|
||||
'etc/server.c' and 'etc/emacsclient.c' from the 18.52 GNU
|
||||
Emacs distribution.
|
||||
|
||||
Please mail bugs and suggestions to the author at the above address.
|
||||
*/
|
||||
|
||||
/* HISTORY
|
||||
* 11-Nov-1990 bristor@simba
|
||||
* Added EOT stuff.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file incorporates new features added by Bob Weiner <weiner@mot.com>,
|
||||
* Darrell Kindred <dkindred@cmu.edu> and Arup Mukherjee <arup@cmu.edu>.
|
||||
* Please see the note at the end of the README file for details.
|
||||
*
|
||||
* (If gnuserv came bundled with your emacs, the README file is probably
|
||||
* ../etc/gnuserv.README relative to the directory containing this file)
|
||||
*/
|
||||
|
||||
#if 0
|
||||
static char header_rcsid [] = "!Header: gnuserv.h,v 2.4 95/02/16 11:58:11 arup alpha !";
|
||||
#endif
|
||||
|
||||
#define NO_SHORTNAMES
|
||||
|
||||
#define PATCHLEVEL 2
|
||||
|
||||
#define NO_SHORTNAMES
|
||||
/* gnuserv should not be compiled using SOCKS */
|
||||
#define DO_NOT_SOCKSIFY
|
||||
#include <glibtop.h>
|
||||
#undef read
|
||||
#undef write
|
||||
#undef open
|
||||
#undef close
|
||||
#undef signal
|
||||
|
||||
/* Define the communication method between server and clients:
|
||||
* You can have either or both kinds of sockets, but you can't mix
|
||||
* sockets with sysv ipc
|
||||
*/
|
||||
|
||||
#define INTERNET_DOMAIN_SOCKETS
|
||||
#define UNIX_DOMAIN_SOCKETS
|
||||
|
||||
/*
|
||||
* Define additional authentication protocols to be used. These methods will
|
||||
* be tried before falling back to the default gnuserv protocol (based on
|
||||
* the GNU_SECURE environment variable). Currently, only MIT-MAGIC-COOKIE-1
|
||||
* is also supported.
|
||||
*
|
||||
* Comment out the next line(s) if you don't want to enable the
|
||||
* appropriate authentication protocol.
|
||||
*/
|
||||
|
||||
#if defined (HAVE_XAUTH)
|
||||
#define AUTH_MAGIC_COOKIE
|
||||
#endif /* HAVE_XAUTH */
|
||||
|
||||
/*
|
||||
* stuff related to supporting MIT-MAGIC-COOKIE-1
|
||||
*/
|
||||
|
||||
#if 0
|
||||
#define MCOOKIE_SCREEN "42980" /* screen # to use as the gnuserv cookie */
|
||||
#endif
|
||||
#define MCOOKIE_NAME "MAGIC-1" /* authentication protocol name */
|
||||
#define MCOOKIE_X_NAME "MIT-MAGIC-COOKIE-1" /* as needed by X */
|
||||
|
||||
|
||||
#define DEFAUTH_NAME "GNU-SECURE" /* name of default auth protocol */
|
||||
#define AUTH_TIMEOUT 15 /* # seconds to wait for auth data */
|
||||
#define AUTH_NAMESZ 15 /* max allows auth protocol name size */
|
||||
|
||||
|
||||
/*
|
||||
* Pick a default communication scheme, if none was specified.
|
||||
*/
|
||||
|
||||
#if !defined(UNIX_DOMAIN_SOCKETS) && !defined(INTERNET_DOMAIN_SOCKETS)
|
||||
|
||||
/* BSD systems use Unix Domain sockets by default */
|
||||
|
||||
#ifdef BSD
|
||||
#define UNIX_DOMAIN_SOCKETS
|
||||
#endif
|
||||
|
||||
#endif /* No communication method pre-defined */
|
||||
|
||||
/*
|
||||
* If you are using SYSV_IPC, you might want to make the buffer size bigger
|
||||
* since it limits the size of requests and responses. Don't make it bigger
|
||||
* than your system's max message size though (usually a couple of k) or else
|
||||
* msgsend will start failing. For sockets, using the system BUFSIZ is usually
|
||||
* what you want.
|
||||
*/
|
||||
|
||||
#if defined(INTERNET_DOMAIN_SOCKETS) || defined(UNIX_DOMAIN_SOCKETS)
|
||||
#include <sys/socket.h>
|
||||
#endif /* INTERNET_DOMAIN_SOCKETS || UNIX_DOMAIN_SOCKETS */
|
||||
|
||||
#ifdef INTERNET_DOMAIN_SOCKETS
|
||||
#include <netdb.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#define TABLE_SIZE 101 /* The number of entries in the hash table */
|
||||
#define HASH(host) host /* Rather simplistic hash function */
|
||||
#define DEFAULT_PORT 21490 /* default port number to use is
|
||||
* DEFAULT_PORT + uid */
|
||||
#endif /* INTERNET_DOMAIN_SOCKETS */
|
||||
|
||||
#ifdef UNIX_DOMAIN_SOCKETS
|
||||
#include <sys/un.h>
|
||||
#define HIDE_UNIX_SOCKET /* put the unix socket in a protected dir */
|
||||
#endif /* UNIX_DOMAIN_SOCKETS */
|
||||
|
||||
#define HOSTNAMSZ 255 /* max size of a hostname */
|
||||
#define REPLYSIZ 300 /* max size of reply from server to client */
|
||||
#undef FALSE
|
||||
#define FALSE 0
|
||||
#undef TRUE
|
||||
#define TRUE 1
|
||||
|
||||
/* The casts shut Sun's compiler up and are safe in the context these
|
||||
are actually used. */
|
||||
#define max2(x,y) (((int) (x) > (int) (y)) ? (x) : (y))
|
||||
#define min2(x,y) (((int) (x) < (int) (y)) ? (x) : (y))
|
||||
|
||||
#ifndef _NFILE /* rough guess at maximum number of open files */
|
||||
#define _NFILE 20
|
||||
#endif
|
||||
|
||||
#define EOT_STR "\004"
|
||||
#define EOT_CHR '\004'
|
||||
|
||||
/* connection types */
|
||||
#define CONN_UNIX 0
|
||||
#define CONN_INTERNET 1
|
||||
#define CONN_IPC 2
|
||||
|
||||
/* function declarations */
|
||||
int glibtop_make_connection (const char *hostarg, int portarg, int *s);
|
||||
|
||||
#ifdef INTERNET_DOMAIN_SOCKETS
|
||||
long glibtop_internet_addr (const char *host);
|
||||
#endif
|
||||
|
15
include/glibtop/init_hooks.h
Normal file
15
include/glibtop/init_hooks.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef H_LIBGTOP_INIT_HOOKS_1122955666
|
||||
#define H_LIBGTOP_INIT_HOOKS_1122955666
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef void (*_glibtop_init_func_t)(glibtop *);
|
||||
|
||||
extern const _glibtop_init_func_t _glibtop_init_hook_s[];
|
||||
extern const _glibtop_init_func_t _glibtop_init_hook_p[];
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* H_LIBGTOP_INIT_HOOKS_1122955666 */
|
69
include/glibtop/loadavg.h
Normal file
69
include/glibtop/loadavg.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_LOADAVG_H__
|
||||
#define __GLIBTOP_LOADAVG_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_LOADAVG_LOADAVG 0
|
||||
#define GLIBTOP_LOADAVG_NR_RUNNING 1
|
||||
#define GLIBTOP_LOADAVG_NR_TASKS 2
|
||||
#define GLIBTOP_LOADAVG_LAST_PID 3
|
||||
|
||||
#define GLIBTOP_MAX_LOADAVG 4
|
||||
|
||||
typedef struct _glibtop_loadavg glibtop_loadavg;
|
||||
|
||||
struct _glibtop_loadavg
|
||||
{
|
||||
guint64 flags;
|
||||
double loadavg [3]; /* GLIBTOP_LOADAVG_LOADAVG */
|
||||
guint64 nr_running; /* GLIBTOP_LOADAVG_NR_RUNNING */
|
||||
guint64 nr_tasks; /* GLIBTOP_LOADAVG_NR_TASKS */
|
||||
guint64 last_pid; /* GLIBTOP_LOADAVG_LAST_PID */
|
||||
};
|
||||
|
||||
void glibtop_get_loadavg(glibtop_loadavg *buf);
|
||||
|
||||
#if GLIBTOP_SUID_LOADAVG
|
||||
#define glibtop_get_loadavg_r glibtop_get_loadavg_p
|
||||
#else
|
||||
#define glibtop_get_loadavg_r glibtop_get_loadavg_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_loadavg_l (glibtop *server, glibtop_loadavg *buf);
|
||||
|
||||
#if GLIBTOP_SUID_LOADAVG
|
||||
void _glibtop_init_loadavg_p (glibtop *server);
|
||||
void glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf);
|
||||
#else
|
||||
void _glibtop_init_loadavg_s (glibtop *server);
|
||||
void glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
77
include/glibtop/mem.h
Normal file
77
include/glibtop/mem.h
Normal file
@@ -0,0 +1,77 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_MEM_H__
|
||||
#define __GLIBTOP_MEM_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_MEM_TOTAL 0
|
||||
#define GLIBTOP_MEM_USED 1
|
||||
#define GLIBTOP_MEM_FREE 2
|
||||
#define GLIBTOP_MEM_SHARED 3
|
||||
#define GLIBTOP_MEM_BUFFER 4
|
||||
#define GLIBTOP_MEM_CACHED 5
|
||||
#define GLIBTOP_MEM_USER 6
|
||||
#define GLIBTOP_MEM_LOCKED 7
|
||||
|
||||
#define GLIBTOP_MAX_MEM 8
|
||||
|
||||
typedef struct _glibtop_mem glibtop_mem;
|
||||
|
||||
struct _glibtop_mem
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 total; /* GLIBTOP_MEM_TOTAL */
|
||||
guint64 used; /* GLIBTOP_MEM_USED */
|
||||
guint64 free; /* GLIBTOP_MEM_FREE */
|
||||
guint64 shared; /* GLIBTOP_MEM_SHARED */
|
||||
guint64 buffer; /* GLIBTOP_MEM_BUFFER */
|
||||
guint64 cached; /* GLIBTOP_MEM_CACHED */
|
||||
guint64 user; /* GLIBTOP_MEM_USER */
|
||||
guint64 locked; /* GLIBTOP_MEM_LOCKED */
|
||||
};
|
||||
|
||||
void glibtop_get_mem(glibtop_mem *buf);
|
||||
|
||||
#if GLIBTOP_SUID_MEM
|
||||
#define glibtop_get_mem_r glibtop_get_mem_p
|
||||
#else
|
||||
#define glibtop_get_mem_r glibtop_get_mem_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_mem_l (glibtop *server, glibtop_mem *buf);
|
||||
|
||||
#if GLIBTOP_SUID_MEM
|
||||
void _glibtop_init_mem_p (glibtop *server);
|
||||
void glibtop_get_mem_p (glibtop *server, glibtop_mem *buf);
|
||||
#else
|
||||
void _glibtop_init_mem_s (glibtop *server);
|
||||
void glibtop_get_mem_s (glibtop *server, glibtop_mem *buf);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
70
include/glibtop/mountlist.h
Normal file
70
include/glibtop/mountlist.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_MOUNTLIST_H__
|
||||
#define __GLIBTOP_MOUNTLIST_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_MOUNTLIST_NUMBER 0
|
||||
#define GLIBTOP_MOUNTLIST_TOTAL 1
|
||||
#define GLIBTOP_MOUNTLIST_SIZE 2
|
||||
|
||||
#define GLIBTOP_MAX_MOUNTLIST 3
|
||||
|
||||
typedef struct _glibtop_mountentry glibtop_mountentry;
|
||||
|
||||
typedef struct _glibtop_mountlist glibtop_mountlist;
|
||||
|
||||
struct _glibtop_mountentry
|
||||
{
|
||||
guint64 dev;
|
||||
char devname [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||
char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||
char type [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||
};
|
||||
|
||||
struct _glibtop_mountlist
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 number; /* GLIBTOP_MOUNTLIST_NUMBER */
|
||||
guint64 total; /* GLIBTOP_MOUNTLIST_TOTAL */
|
||||
guint64 size; /* GLIBTOP_MOUNTLIST_SIZE */
|
||||
};
|
||||
|
||||
glibtop_mountentry *
|
||||
glibtop_get_mountlist(glibtop_mountlist *buf, int all_fs);
|
||||
|
||||
#define glibtop_get_mountlist_r glibtop_get_mountlist_s
|
||||
|
||||
glibtop_mountentry *
|
||||
glibtop_get_mountlist_l (glibtop *server, glibtop_mountlist *buf, int all_fs);
|
||||
|
||||
glibtop_mountentry *
|
||||
glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
76
include/glibtop/msg_limits.h
Normal file
76
include/glibtop/msg_limits.h
Normal file
@@ -0,0 +1,76 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_MSG_LIMITS_H__
|
||||
#define __GLIBTOP_MSG_LIMITS_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_IPC_MSGPOOL 0
|
||||
#define GLIBTOP_IPC_MSGMAP 1
|
||||
#define GLIBTOP_IPC_MSGMAX 2
|
||||
#define GLIBTOP_IPC_MSGMNB 3
|
||||
#define GLIBTOP_IPC_MSGMNI 4
|
||||
#define GLIBTOP_IPC_MSGSSZ 5
|
||||
#define GLIBTOP_IPC_MSGTQL 6
|
||||
|
||||
#define GLIBTOP_MAX_MSG_LIMITS 7
|
||||
|
||||
typedef struct _glibtop_msg_limits glibtop_msg_limits;
|
||||
|
||||
struct _glibtop_msg_limits
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 msgpool; /* GLIBTOP_IPC_MSGPOOL */
|
||||
guint64 msgmap; /* GLIBTOP_IPC_MSGMAP */
|
||||
guint64 msgmax; /* GLIBTOP_IPC_MSGMAX */
|
||||
guint64 msgmnb; /* GLIBTOP_IPC_MSGMNB */
|
||||
guint64 msgmni; /* GLIBTOP_IPC_MSGMNI */
|
||||
guint64 msgssz; /* GLIBTOP_IPC_MSGSSZ */
|
||||
guint64 msgtql; /* GLIBTOP_IPC_MSGTQL */
|
||||
};
|
||||
|
||||
void glibtop_get_msg_limits(glibtop_msg_limits *buf);
|
||||
|
||||
#if GLIBTOP_SUID_MSG_LIMITS
|
||||
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_p
|
||||
#else
|
||||
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_msg_limits_l (glibtop *server, glibtop_msg_limits *buf);
|
||||
|
||||
#if GLIBTOP_SUID_MSG_LIMITS
|
||||
void _glibtop_init_msg_limits_p (glibtop *server);
|
||||
void glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf);
|
||||
#else
|
||||
void _glibtop_init_msg_limits_s (glibtop *server);
|
||||
void glibtop_get_msg_limits_s (glibtop *server, glibtop_msg_limits *buf);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
||||
|
61
include/glibtop/netlist.h
Normal file
61
include/glibtop/netlist.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/* Copyright (C) 2004 Benoît Dejean
|
||||
This file is part of LibGTop 2.0.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_NETLIST_H__
|
||||
#define __GLIBTOP_NETLIST_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_NETLIST_NUMBER 0
|
||||
|
||||
#define GLIBTOP_MAX_NETLIST 1
|
||||
|
||||
typedef struct _glibtop_netlist glibtop_netlist;
|
||||
|
||||
struct _glibtop_netlist
|
||||
{
|
||||
guint64 flags;
|
||||
guint32 number;
|
||||
};
|
||||
|
||||
char** glibtop_get_netlist(glibtop_netlist *buf);
|
||||
|
||||
#if GLIBTOP_SUID_NETLIST
|
||||
#define glibtop_get_netlist_r glibtop_get_netlist_p
|
||||
#else
|
||||
#define glibtop_get_netlist_r glibtop_get_netlist_s
|
||||
#endif
|
||||
|
||||
char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf);
|
||||
|
||||
#if GLIBTOP_SUID_NETLIST
|
||||
void _glibtop_init_netlist_p (glibtop *server);
|
||||
char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf);
|
||||
#else
|
||||
void _glibtop_init_netlist_s (glibtop *server);
|
||||
char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
130
include/glibtop/netload.h
Normal file
130
include/glibtop/netload.h
Normal file
@@ -0,0 +1,130 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_NETLOAD_H__
|
||||
#define __GLIBTOP_NETLOAD_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_NETLOAD_IF_FLAGS 0
|
||||
#define GLIBTOP_NETLOAD_MTU 1
|
||||
#define GLIBTOP_NETLOAD_SUBNET 2
|
||||
#define GLIBTOP_NETLOAD_ADDRESS 3
|
||||
#define GLIBTOP_NETLOAD_PACKETS_IN 4
|
||||
#define GLIBTOP_NETLOAD_PACKETS_OUT 5
|
||||
#define GLIBTOP_NETLOAD_PACKETS_TOTAL 6
|
||||
#define GLIBTOP_NETLOAD_BYTES_IN 7
|
||||
#define GLIBTOP_NETLOAD_BYTES_OUT 8
|
||||
#define GLIBTOP_NETLOAD_BYTES_TOTAL 9
|
||||
#define GLIBTOP_NETLOAD_ERRORS_IN 10
|
||||
#define GLIBTOP_NETLOAD_ERRORS_OUT 11
|
||||
#define GLIBTOP_NETLOAD_ERRORS_TOTAL 12
|
||||
#define GLIBTOP_NETLOAD_COLLISIONS 13
|
||||
#define GLIBTOP_NETLOAD_ADDRESS6 14
|
||||
#define GLIBTOP_NETLOAD_PREFIX6 15
|
||||
#define GLIBTOP_NETLOAD_SCOPE6 16
|
||||
#define GLIBTOP_NETLOAD_HWADDRESS 17
|
||||
|
||||
#define GLIBTOP_MAX_NETLOAD 18
|
||||
|
||||
typedef struct _glibtop_netload glibtop_netload;
|
||||
|
||||
enum {
|
||||
GLIBTOP_IF_FLAGS_UP = 1,
|
||||
GLIBTOP_IF_FLAGS_BROADCAST,
|
||||
GLIBTOP_IF_FLAGS_DEBUG,
|
||||
GLIBTOP_IF_FLAGS_LOOPBACK,
|
||||
GLIBTOP_IF_FLAGS_POINTOPOINT,
|
||||
GLIBTOP_IF_FLAGS_RUNNING,
|
||||
GLIBTOP_IF_FLAGS_NOARP,
|
||||
GLIBTOP_IF_FLAGS_PROMISC,
|
||||
GLIBTOP_IF_FLAGS_ALLMULTI,
|
||||
GLIBTOP_IF_FLAGS_OACTIVE,
|
||||
GLIBTOP_IF_FLAGS_SIMPLEX,
|
||||
GLIBTOP_IF_FLAGS_LINK0,
|
||||
GLIBTOP_IF_FLAGS_LINK1,
|
||||
GLIBTOP_IF_FLAGS_LINK2,
|
||||
GLIBTOP_IF_FLAGS_ALTPHYS,
|
||||
GLIBTOP_IF_FLAGS_MULTICAST,
|
||||
GLIBTOP_IF_FLAGS_WIRELESS
|
||||
};
|
||||
|
||||
enum GLIBTOP_IF_IN6_SCOPE
|
||||
{
|
||||
GLIBTOP_IF_IN6_SCOPE_UNKNOWN = 0,
|
||||
GLIBTOP_IF_IN6_SCOPE_LINK = 1,
|
||||
GLIBTOP_IF_IN6_SCOPE_SITE = 2,
|
||||
GLIBTOP_IF_IN6_SCOPE_GLOBAL = 4,
|
||||
GLIBTOP_IF_IN6_SCOPE_HOST = 8
|
||||
};
|
||||
|
||||
struct _glibtop_netload
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 if_flags; /* GLIBTOP_NETLOAD_IF_FLAGS */
|
||||
|
||||
guint32 mtu; /* GLIBTOP_NETLOAD_MTU */
|
||||
guint32 subnet; /* GLIBTOP_NETLOAD_SUBNET */
|
||||
guint32 address; /* GLIBTOP_NETLOAD_ADDRESS */
|
||||
|
||||
guint64 packets_in; /* GLIBTOP_NETLOAD_PACKETS_IN */
|
||||
guint64 packets_out; /* GLIBTOP_NETLOAD_PACKETS_OUT */
|
||||
guint64 packets_total; /* GLIBTOP_NETLOAD_PACKETS_TOTAL*/
|
||||
guint64 bytes_in; /* GLIBTOP_NETLOAD_BYTES_IN */
|
||||
guint64 bytes_out; /* GLIBTOP_NETLOAD_BYTES_OUT */
|
||||
guint64 bytes_total; /* GLIBTOP_NETLOAD_BYTES_TOTAL */
|
||||
guint64 errors_in; /* GLIBTOP_NETLOAD_ERRORS_IN */
|
||||
guint64 errors_out; /* GLIBTOP_NETLOAD_ERRORS_OUT */
|
||||
guint64 errors_total; /* GLIBTOP_NETLOAD_ERRORS_TOTAL */
|
||||
guint64 collisions; /* GLIBTOP_NETLOAD_COLLISIONS */
|
||||
|
||||
guint8 address6[16]; /* GLIBTOP_NETLOAD_ADDRESS6 */
|
||||
guint8 prefix6[16]; /* GLIBTOP_NETLOAD_PREXIF6 */
|
||||
guint8 scope6; /* GLIBTOP_NETLOAD_SCOPE6 */
|
||||
|
||||
guint8 hwaddress[8]; /* GLIBTOP_NETLOAD_HWADDRESS */
|
||||
};
|
||||
|
||||
void glibtop_get_netload(glibtop_netload *buf, const char *interface);
|
||||
|
||||
#if GLIBTOP_SUID_NETLOAD
|
||||
#define glibtop_get_netload_r glibtop_get_netload_p
|
||||
#else
|
||||
#define glibtop_get_netload_r glibtop_get_netload_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_netload_l (glibtop *server, glibtop_netload *buf, const char *interface);
|
||||
|
||||
#if GLIBTOP_SUID_NETLOAD
|
||||
void _glibtop_init_netload_p (glibtop *server);
|
||||
void glibtop_get_netload_p (glibtop *server, glibtop_netload *buf, const char *interface);
|
||||
#else
|
||||
void _glibtop_init_netload_s (glibtop *server);
|
||||
void glibtop_get_netload_s (glibtop *server, glibtop_netload *buf, const char *interface);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
71
include/glibtop/open.h
Normal file
71
include/glibtop/open.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_OPEN_H__
|
||||
#define __GLIBTOP_OPEN_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define _GLIBTOP_INIT_STATE_INIT 0x10000
|
||||
#define _GLIBTOP_INIT_STATE_OPEN 0x20000
|
||||
#define _GLIBTOP_INIT_STATE_SERVER 0x40000
|
||||
#define _GLIBTOP_INIT_STATE_SYSDEPS 0x80000
|
||||
|
||||
#define GLIBTOP_INIT_NO_OPEN 1
|
||||
#define GLIBTOP_INIT_NO_INIT 2
|
||||
|
||||
#define GLIBTOP_FEATURES_NO_SERVER 4
|
||||
#define GLIBTOP_FEATURES_EXCEPT 8
|
||||
|
||||
#define GLIBTOP_METHOD_DIRECT 1
|
||||
#define GLIBTOP_METHOD_PIPE 2
|
||||
#define GLIBTOP_METHOD_INET 3
|
||||
#define GLIBTOP_METHOD_UNIX 4
|
||||
|
||||
#define GLIBTOP_ERROR_METHOD_IGNORE 0
|
||||
#define GLIBTOP_ERROR_METHOD_WARN_ONCE 1
|
||||
#define GLIBTOP_ERROR_METHOD_WARN 2
|
||||
#define GLIBTOP_ERROR_METHOD_ABORT 3
|
||||
|
||||
#define GLIBTOP_ERROR_METHOD_DEFAULT GLIBTOP_ERROR_METHOD_WARN_ONCE
|
||||
|
||||
void
|
||||
glibtop_open_l (glibtop *server, const char *program_name,
|
||||
const unsigned long features, const unsigned flags);
|
||||
|
||||
void
|
||||
glibtop_init_p (glibtop *server, const unsigned long features,
|
||||
const unsigned flags);
|
||||
|
||||
void
|
||||
glibtop_open_p (glibtop *server, const char *program_name,
|
||||
const unsigned long features, const unsigned flags);
|
||||
|
||||
void
|
||||
glibtop_open_s (glibtop *server, const char *program_name,
|
||||
const unsigned long features, const unsigned flags);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
50
include/glibtop/parameter.h
Normal file
50
include/glibtop/parameter.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PARAMETER_H__
|
||||
#define __GLIBTOP_PARAMETER_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PARAM_METHOD 1
|
||||
#define GLIBTOP_PARAM_FEATURES 2
|
||||
#define GLIBTOP_PARAM_COMMAND 3
|
||||
#define GLIBTOP_PARAM_HOST 4
|
||||
#define GLIBTOP_PARAM_PORT 5
|
||||
#define GLIBTOP_PARAM_ERROR_METHOD 6
|
||||
#define GLIBTOP_PARAM_REQUIRED 7
|
||||
|
||||
#define glibtop_get_parameter(p1,p2,p3) glibtop_get_parameter_l(glibtop_global_server,p1,p2,p3)
|
||||
#define glibtop_set_parameter(p1,p2,p3) glibtop_set_parameter_l(glibtop_global_server,p1,p2,p3)
|
||||
|
||||
size_t
|
||||
glibtop_get_parameter_l (glibtop *server, const unsigned parameter,
|
||||
void *data_ptr, size_t data_size);
|
||||
|
||||
void
|
||||
glibtop_set_parameter_l (glibtop *server, const unsigned parameter,
|
||||
const void *data_ptr, size_t data_size);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
73
include/glibtop/ppp.h
Normal file
73
include/glibtop/ppp.h
Normal file
@@ -0,0 +1,73 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PPP_H__
|
||||
#define __GLIBTOP_PPP_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PPP_STATE 0
|
||||
#define GLIBTOP_PPP_BYTES_IN 1
|
||||
#define GLIBTOP_PPP_BYTES_OUT 2
|
||||
|
||||
#define GLIBTOP_MAX_PPP 3
|
||||
|
||||
typedef struct _glibtop_ppp glibtop_ppp;
|
||||
|
||||
enum {
|
||||
GLIBTOP_PPP_STATE_UNKNOWN = 0,
|
||||
GLIBTOP_PPP_STATE_HANGUP,
|
||||
GLIBTOP_PPP_STATE_ONLINE
|
||||
};
|
||||
|
||||
struct _glibtop_ppp
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 state; /* GLIBTOP_PPP_STATE */
|
||||
guint64 bytes_in; /* GLIBTOP_PPP_BYTES_IN */
|
||||
guint64 bytes_out; /* GLIBTOP_PPP_BYTES_OUT */
|
||||
};
|
||||
|
||||
void glibtop_get_ppp(glibtop_ppp *buf, unsigned short device);
|
||||
|
||||
#if GLIBTOP_SUID_PPP
|
||||
#define glibtop_get_ppp_r glibtop_get_ppp_p
|
||||
#else
|
||||
#define glibtop_get_ppp_r glibtop_get_ppp_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_ppp_l (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
||||
|
||||
#if GLIBTOP_SUID_PPP
|
||||
void _glibtop_init_ppp_p (glibtop *server);
|
||||
void glibtop_get_ppp_p (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
||||
#else
|
||||
void _glibtop_init_ppp_s (glibtop *server);
|
||||
void glibtop_get_ppp_s (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
61
include/glibtop/procaffinity.h
Normal file
61
include/glibtop/procaffinity.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/* Copyright (C) 2007 Benoît Dejean
|
||||
This file is part of LibGTop 2.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCAFFINITY_H__
|
||||
#define __GLIBTOP_PROCAFFINITY_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _glibtop_proc_affinity glibtop_proc_affinity;
|
||||
|
||||
#define GLIBTOP_PROC_AFFINITY_NUMBER 0
|
||||
#define GLIBTOP_PROC_AFFINITY_ALL 1
|
||||
|
||||
struct _glibtop_proc_affinity
|
||||
{
|
||||
guint64 flags;
|
||||
guint32 number;
|
||||
gboolean all;
|
||||
};
|
||||
|
||||
|
||||
guint16 * glibtop_get_proc_affinity(glibtop_proc_affinity *buf, pid_t pid);
|
||||
guint16 * glibtop_get_proc_affinity_l(glibtop *server, glibtop_proc_affinity *buf, pid_t pid);
|
||||
|
||||
|
||||
#if GLIBTOP_SUID_PROC_AFFINITY
|
||||
|
||||
#define glibtop_get_proc_affinity_r glibtop_get_proc_affinity_p
|
||||
void _glibtop_init_proc_affinity_p(glibtop *server);
|
||||
guint16 * glibtop_get_proc_affinity_p(glibtop *server, glibtop_proc_affinity *buf, pid_t pid);
|
||||
|
||||
#else
|
||||
|
||||
#define glibtop_get_proc_affinity_r glibtop_get_proc_affinity_s
|
||||
void _glibtop_init_proc_affinity_s(glibtop *server);
|
||||
guint16 * glibtop_get_proc_affinity_s(glibtop *server, glibtop_proc_affinity *buf, pid_t pid);
|
||||
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
88
include/glibtop/procargs.h
Normal file
88
include/glibtop/procargs.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROC_ARGS_H__
|
||||
#define __GLIBTOP_PROC_ARGS_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_ARGS_SIZE 0
|
||||
|
||||
#define GLIBTOP_MAX_PROC_ARGS 1
|
||||
|
||||
typedef struct _glibtop_proc_args glibtop_proc_args;
|
||||
|
||||
struct _glibtop_proc_args
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 size; /* GLIBTOP_PROC_ARGS_SIZE */
|
||||
};
|
||||
|
||||
|
||||
char *
|
||||
glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf,
|
||||
pid_t pid, unsigned max_len);
|
||||
|
||||
char *
|
||||
glibtop_get_proc_args (glibtop_proc_args *buf, pid_t pid, unsigned max_len);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_ARGS
|
||||
|
||||
# define glibtop_get_proc_args_r glibtop_get_proc_args_p
|
||||
|
||||
void _glibtop_init_proc_args_p (glibtop *server);
|
||||
|
||||
char *
|
||||
glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
|
||||
pid_t pid, unsigned max_len);
|
||||
|
||||
|
||||
#else /* !GLIBTOP_SUID_PROC_ARGS */
|
||||
|
||||
# define glibtop_get_proc_args_r glibtop_get_proc_args_s
|
||||
|
||||
void _glibtop_init_proc_args_s (glibtop *server);
|
||||
|
||||
char *
|
||||
glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf,
|
||||
pid_t pid, unsigned max_len);
|
||||
#endif /* GLIBTOP_SUID_PROC_ARGS */
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NEW functions
|
||||
*/
|
||||
|
||||
char **
|
||||
glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf,
|
||||
pid_t pid, unsigned max_len);
|
||||
|
||||
char **
|
||||
glibtop_get_proc_argv (glibtop_proc_args *buf, pid_t pid, unsigned max_len);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
86
include/glibtop/prockernel.h
Normal file
86
include/glibtop/prockernel.h
Normal file
@@ -0,0 +1,86 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCKERNEL_H__
|
||||
#define __GLIBTOP_PROCKERNEL_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_KERNEL_K_FLAGS 0
|
||||
#define GLIBTOP_PROC_KERNEL_MIN_FLT 1
|
||||
#define GLIBTOP_PROC_KERNEL_MAJ_FLT 2
|
||||
#define GLIBTOP_PROC_KERNEL_CMIN_FLT 3
|
||||
#define GLIBTOP_PROC_KERNEL_CMAJ_FLT 4
|
||||
#define GLIBTOP_PROC_KERNEL_KSTK_ESP 5
|
||||
#define GLIBTOP_PROC_KERNEL_KSTK_EIP 6
|
||||
#define GLIBTOP_PROC_KERNEL_NWCHAN 7
|
||||
#define GLIBTOP_PROC_KERNEL_WCHAN 8
|
||||
|
||||
#define GLIBTOP_MAX_PROC_KERNEL 9
|
||||
|
||||
typedef struct _glibtop_proc_kernel glibtop_proc_kernel;
|
||||
|
||||
/* Kernel stuff */
|
||||
|
||||
struct _glibtop_proc_kernel
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 k_flags; /* kernel flags for the process */
|
||||
guint64 min_flt; /* number of minor page faults since
|
||||
* process start */
|
||||
guint64 maj_flt; /* number of major page faults since
|
||||
* process start */
|
||||
guint64 cmin_flt; /* cumulative min_flt of process and
|
||||
* child processes */
|
||||
guint64 cmaj_flt; /* cumulative maj_flt of process and
|
||||
* child processes */
|
||||
guint64 kstk_esp; /* kernel stack pointer */
|
||||
guint64 kstk_eip; /* kernel stack pointer */
|
||||
guint64 nwchan; /* address of kernel wait channel
|
||||
* proc is sleeping in */
|
||||
char wchan [40];
|
||||
};
|
||||
|
||||
void glibtop_get_proc_kernel(glibtop_proc_kernel *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_KERNEL
|
||||
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_p
|
||||
#else
|
||||
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_proc_kernel_l (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_KERNEL
|
||||
void _glibtop_init_proc_kernel_p (glibtop *server);
|
||||
void glibtop_get_proc_kernel_p (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
||||
#else
|
||||
void _glibtop_init_proc_kernel_s (glibtop *server);
|
||||
void glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
93
include/glibtop/proclist.h
Normal file
93
include/glibtop/proclist.h
Normal file
@@ -0,0 +1,93 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCLIST_H__
|
||||
#define __GLIBTOP_PROCLIST_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROCLIST_NUMBER 0
|
||||
#define GLIBTOP_PROCLIST_TOTAL 1
|
||||
#define GLIBTOP_PROCLIST_SIZE 2
|
||||
|
||||
#define GLIBTOP_MAX_PROCLIST 3
|
||||
|
||||
/* You can use the folowing constants as the `which' member of
|
||||
* glibtop_get_proclist () to specify which processes to fetch. */
|
||||
|
||||
#define GLIBTOP_KERN_PROC_ALL 0 /* all processes */
|
||||
#define GLIBTOP_KERN_PROC_PID 1
|
||||
#define GLIBTOP_KERN_PROC_PGRP 2
|
||||
#define GLIBTOP_KERN_PROC_SESSION 3
|
||||
#define GLIBTOP_KERN_PROC_TTY 4
|
||||
#define GLIBTOP_KERN_PROC_UID 5
|
||||
#define GLIBTOP_KERN_PROC_RUID 6
|
||||
|
||||
#define GLIBTOP_KERN_PROC_MASK 15
|
||||
|
||||
#define GLIBTOP_EXCLUDE_IDLE 0x1000
|
||||
#define GLIBTOP_EXCLUDE_SYSTEM 0x2000
|
||||
#define GLIBTOP_EXCLUDE_NOTTY 0x4000
|
||||
|
||||
typedef struct _glibtop_proclist glibtop_proclist;
|
||||
|
||||
struct _glibtop_proclist
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 number; /* GLIBTOP_PROCLIST_NUMBER */
|
||||
guint64 total; /* GLIBTOP_PROCLIST_TOTAL */
|
||||
guint64 size; /* GLIBTOP_PROCLIST_SIZE */
|
||||
};
|
||||
|
||||
pid_t*
|
||||
glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg);
|
||||
|
||||
#if GLIBTOP_SUID_PROCLIST
|
||||
#define glibtop_get_proclist_r glibtop_get_proclist_p
|
||||
#else
|
||||
#define glibtop_get_proclist_r glibtop_get_proclist_s
|
||||
#endif
|
||||
|
||||
pid_t*
|
||||
glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
|
||||
gint64 which, gint64 arg);
|
||||
|
||||
#if GLIBTOP_SUID_PROCLIST
|
||||
void _glibtop_init_proclist_p (glibtop *server);
|
||||
|
||||
pid_t*
|
||||
glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
|
||||
gint64 which, gint64 arg);
|
||||
#else
|
||||
void _glibtop_init_proclist_s (glibtop *server);
|
||||
|
||||
pid_t*
|
||||
glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf,
|
||||
gint64 which, gint64 arg);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
119
include/glibtop/procmap.h
Normal file
119
include/glibtop/procmap.h
Normal file
@@ -0,0 +1,119 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROC_MAP_H__
|
||||
#define __GLIBTOP_PROC_MAP_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_MAP_NUMBER 0
|
||||
#define GLIBTOP_PROC_MAP_TOTAL 1
|
||||
#define GLIBTOP_PROC_MAP_SIZE 2
|
||||
|
||||
#define GLIBTOP_MAX_PROC_MAP 3
|
||||
|
||||
#define GLIBTOP_MAP_ENTRY_START 0
|
||||
#define GLIBTOP_MAP_ENTRY_END 1
|
||||
#define GLIBTOP_MAP_ENTRY_OFFSET 2
|
||||
#define GLIBTOP_MAP_ENTRY_PERM 3
|
||||
#define GLIBTOP_MAP_ENTRY_INODE 4
|
||||
#define GLIBTOP_MAP_ENTRY_DEVICE 5
|
||||
#define GLIBTOP_MAP_ENTRY_FILENAME 6
|
||||
|
||||
/* Smap support */
|
||||
#define GLIBTOP_MAP_ENTRY_SIZE 7
|
||||
#define GLIBTOP_MAP_ENTRY_RSS 8
|
||||
#define GLIBTOP_MAP_ENTRY_SHARED_CLEAN 9
|
||||
#define GLIBTOP_MAP_ENTRY_SHARED_DIRTY 10
|
||||
#define GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN 11
|
||||
#define GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY 12
|
||||
|
||||
#define GLIBTOP_MAX_MAP_ENTRY 13
|
||||
|
||||
#define GLIBTOP_MAP_FILENAME_LEN 215
|
||||
|
||||
#define GLIBTOP_MAP_PERM_READ 1
|
||||
#define GLIBTOP_MAP_PERM_WRITE 2
|
||||
#define GLIBTOP_MAP_PERM_EXECUTE 4
|
||||
#define GLIBTOP_MAP_PERM_SHARED 8
|
||||
#define GLIBTOP_MAP_PERM_PRIVATE 16
|
||||
|
||||
typedef struct _glibtop_map_entry glibtop_map_entry;
|
||||
|
||||
typedef struct _glibtop_proc_map glibtop_proc_map;
|
||||
|
||||
struct _glibtop_map_entry
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 start;
|
||||
guint64 end;
|
||||
guint64 offset;
|
||||
guint64 perm;
|
||||
guint64 inode;
|
||||
guint64 device;
|
||||
guint64 size;
|
||||
guint64 rss;
|
||||
guint64 shared_clean;
|
||||
guint64 shared_dirty;
|
||||
guint64 private_clean;
|
||||
guint64 private_dirty;
|
||||
char filename [GLIBTOP_MAP_FILENAME_LEN+1];
|
||||
};
|
||||
|
||||
struct _glibtop_proc_map
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 number; /* GLIBTOP_PROC_MAP_NUMBER */
|
||||
guint64 total; /* GLIBTOP_PROC_MAP_TOTAL */
|
||||
guint64 size; /* GLIBTOP_PROC_MAP_SIZE */
|
||||
};
|
||||
glibtop_map_entry *
|
||||
glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid);
|
||||
|
||||
|
||||
#if GLIBTOP_SUID_PROC_MAP
|
||||
#define glibtop_get_proc_map_r glibtop_get_proc_map_p
|
||||
#else
|
||||
#define glibtop_get_proc_map_r glibtop_get_proc_map_s
|
||||
#endif
|
||||
|
||||
glibtop_map_entry *
|
||||
glibtop_get_proc_map_l (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_MAP
|
||||
void _glibtop_init_proc_map_p (glibtop *server);
|
||||
|
||||
glibtop_map_entry *
|
||||
glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
||||
#else
|
||||
void _glibtop_init_proc_map_s (glibtop *server);
|
||||
|
||||
glibtop_map_entry *
|
||||
glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
77
include/glibtop/procmem.h
Normal file
77
include/glibtop/procmem.h
Normal file
@@ -0,0 +1,77 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCMEM_H__
|
||||
#define __GLIBTOP_PROCMEM_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_MEM_SIZE 0
|
||||
#define GLIBTOP_PROC_MEM_VSIZE 1
|
||||
#define GLIBTOP_PROC_MEM_RESIDENT 2
|
||||
#define GLIBTOP_PROC_MEM_SHARE 3
|
||||
#define GLIBTOP_PROC_MEM_RSS 4
|
||||
#define GLIBTOP_PROC_MEM_RSS_RLIM 5
|
||||
|
||||
#define GLIBTOP_MAX_PROC_MEM 6
|
||||
|
||||
typedef struct _glibtop_proc_mem glibtop_proc_mem;
|
||||
|
||||
/* Memory section */
|
||||
|
||||
struct _glibtop_proc_mem
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 size; /* total # of pages of memory */
|
||||
guint64 vsize; /* number of pages of virtual memory ... */
|
||||
guint64 resident; /* number of resident set
|
||||
* (non-swapped) pages (4k) */
|
||||
guint64 share; /* number of pages of shared (mmap'd) memory */
|
||||
guint64 rss; /* resident set size */
|
||||
guint64 rss_rlim; /* current limit (in bytes) of the rss
|
||||
* of the process; usually 2,147,483,647 */
|
||||
};
|
||||
|
||||
void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_MEM
|
||||
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_p
|
||||
#else
|
||||
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_proc_mem_l (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_MEM
|
||||
void _glibtop_init_proc_mem_p (glibtop *server);
|
||||
void glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
||||
#else
|
||||
void _glibtop_init_proc_mem_s (glibtop *server);
|
||||
void glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
123
include/glibtop/procopenfiles.h
Normal file
123
include/glibtop/procopenfiles.h
Normal file
@@ -0,0 +1,123 @@
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
Copyright (C) 2004 Nicolás Lichtmaier
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
Modified by Nicolás Lichtmaier to give open process files.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROC_OPEN_FILES_H__
|
||||
#define __GLIBTOP_PROC_OPEN_FILES_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_OPEN_FILES_NUMBER 0
|
||||
#define GLIBTOP_PROC_OPEN_FILES_TOTAL 1
|
||||
#define GLIBTOP_PROC_OPEN_FILES_SIZE 2
|
||||
|
||||
#define GLIBTOP_MAX_PROC_OPEN_FILES 3
|
||||
|
||||
#define GLIBTOP_FILE_ENTRY_FD 0
|
||||
#define GLIBTOP_FILE_ENTRY_NAME 1
|
||||
#define GLIBTOP_FILE_ENTRY_TYPE 2
|
||||
#define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_HOST 3
|
||||
#define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_PORT 4
|
||||
|
||||
#define GLIBTOP_MAX_OPEN_FILE_ENTRY 5
|
||||
|
||||
#define GLIBTOP_OPEN_FILENAME_LEN 215
|
||||
/* ready for IPv6 */
|
||||
#define GLIBTOP_OPEN_DEST_HOST_LEN 46
|
||||
|
||||
enum glibtop_file_type {
|
||||
GLIBTOP_FILE_TYPE_FILE = 1,
|
||||
GLIBTOP_FILE_TYPE_PIPE = 2,
|
||||
GLIBTOP_FILE_TYPE_INETSOCKET = 4,
|
||||
GLIBTOP_FILE_TYPE_LOCALSOCKET = 8,
|
||||
GLIBTOP_FILE_TYPE_INET6SOCKET = 16
|
||||
};
|
||||
|
||||
typedef struct _glibtop_open_files_entry glibtop_open_files_entry;
|
||||
|
||||
typedef struct _glibtop_proc_open_files glibtop_proc_open_files;
|
||||
|
||||
struct _glibtop_open_files_entry
|
||||
{
|
||||
int fd;
|
||||
guint16 type; /* An "enum glibtop_file_type" value. */
|
||||
union {
|
||||
/* When type == GLIBTOP_FILE_TYPE_INETSOCKET or
|
||||
* when type == GLIBTOP_FILE_TYPE_INET6SOCKET */
|
||||
struct {
|
||||
char dest_host[GLIBTOP_OPEN_DEST_HOST_LEN+1];
|
||||
int dest_port;
|
||||
} sock;
|
||||
|
||||
/* When type == GLIBTOP_FILE_TYPE_FILE */
|
||||
struct {
|
||||
char name[GLIBTOP_OPEN_FILENAME_LEN+1];
|
||||
} file;
|
||||
|
||||
/* When type == GLIBTOP_FILE_TYPE_LOCALSOCKET */
|
||||
struct {
|
||||
char name[GLIBTOP_OPEN_FILENAME_LEN+1];
|
||||
} localsock;
|
||||
|
||||
} info;
|
||||
};
|
||||
|
||||
struct _glibtop_proc_open_files
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 number; /* GLIBTOP_PROC_OPEN_FILES_NUMBER */
|
||||
guint64 total; /* GLIBTOP_PROC_OPEN_FILES_TOTAL */
|
||||
guint64 size; /* GLIBTOP_PROC_OPEN_FILES_SIZE */
|
||||
};
|
||||
|
||||
glibtop_open_files_entry *
|
||||
glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_FILE
|
||||
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_p
|
||||
#else
|
||||
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_s
|
||||
#endif
|
||||
|
||||
glibtop_open_files_entry *
|
||||
glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_FILE
|
||||
void _glibtop_init_proc_open_files_p (glibtop *server);
|
||||
|
||||
glibtop_open_files_entry *
|
||||
glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
|
||||
#else
|
||||
void _glibtop_init_proc_open_files_s (glibtop *server);
|
||||
|
||||
glibtop_open_files_entry *
|
||||
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
80
include/glibtop/procsegment.h
Normal file
80
include/glibtop/procsegment.h
Normal file
@@ -0,0 +1,80 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCSEGMENT_H__
|
||||
#define __GLIBTOP_PROCSEGMENT_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_SEGMENT_TEXT_RSS 0
|
||||
#define GLIBTOP_PROC_SEGMENT_SHLIB_RSS 1
|
||||
#define GLIBTOP_PROC_SEGMENT_DATA_RSS 2
|
||||
#define GLIBTOP_PROC_SEGMENT_STACK_RSS 3
|
||||
#define GLIBTOP_PROC_SEGMENT_DIRTY_SIZE 4
|
||||
#define GLIBTOP_PROC_SEGMENT_START_CODE 5
|
||||
#define GLIBTOP_PROC_SEGMENT_END_CODE 6
|
||||
#define GLIBTOP_PROC_SEGMENT_START_STACK 7
|
||||
|
||||
#define GLIBTOP_MAX_PROC_SEGMENT 8
|
||||
|
||||
typedef struct _glibtop_proc_segment glibtop_proc_segment;
|
||||
|
||||
/* Segment stuff */
|
||||
|
||||
struct _glibtop_proc_segment
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 text_rss; /* text resident set size */
|
||||
guint64 shlib_rss; /* shared-lib resident set size */
|
||||
guint64 data_rss; /* data resident set size */
|
||||
guint64 stack_rss; /* stack resident set size */
|
||||
guint64 dirty_size; /* size of dirty pages */
|
||||
guint64 start_code;
|
||||
/* address of beginning of code segment */
|
||||
guint64 end_code; /* address of end of code segment */
|
||||
guint64 start_stack; /* address of the bottom of stack segment */
|
||||
};
|
||||
|
||||
void glibtop_get_proc_segment(glibtop_proc_segment *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_SEGMENT
|
||||
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_p
|
||||
#else
|
||||
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_proc_segment_l (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_SEGMENT
|
||||
void _glibtop_init_proc_segment_p (glibtop *server);
|
||||
void glibtop_get_proc_segment_p (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
||||
#else
|
||||
void _glibtop_init_proc_segment_s (glibtop *server);
|
||||
void glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
71
include/glibtop/procsignal.h
Normal file
71
include/glibtop/procsignal.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCSIGNAL_H__
|
||||
#define __GLIBTOP_PROCSIGNAL_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_SIGNAL_SIGNAL 0
|
||||
#define GLIBTOP_PROC_SIGNAL_BLOCKED 1
|
||||
#define GLIBTOP_PROC_SIGNAL_SIGIGNORE 2
|
||||
#define GLIBTOP_PROC_SIGNAL_SIGCATCH 3
|
||||
|
||||
#define GLIBTOP_MAX_PROC_SIGNAL 4
|
||||
|
||||
typedef struct _glibtop_proc_signal glibtop_proc_signal;
|
||||
|
||||
/* Signals section */
|
||||
|
||||
struct _glibtop_proc_signal
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 signal [2]; /* mask of pending signals */
|
||||
guint64 blocked [2]; /* mask of blocked signals */
|
||||
guint64 sigignore [2]; /* mask of ignored signals */
|
||||
guint64 sigcatch [2]; /* mask of caught signals */
|
||||
};
|
||||
|
||||
void glibtop_get_proc_signal(glibtop_proc_signal *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_SIGNAL
|
||||
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_p
|
||||
#else
|
||||
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_proc_signal_l (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_SIGNAL
|
||||
void _glibtop_init_proc_signal_p (glibtop *server);
|
||||
void glibtop_get_proc_signal_p (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
||||
#else
|
||||
void _glibtop_init_proc_signal_s (glibtop *server);
|
||||
void glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
95
include/glibtop/procstate.h
Normal file
95
include/glibtop/procstate.h
Normal file
@@ -0,0 +1,95 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCSTATE_H__
|
||||
#define __GLIBTOP_PROCSTATE_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_STATE_CMD 0
|
||||
#define GLIBTOP_PROC_STATE_STATE 1
|
||||
#define GLIBTOP_PROC_STATE_UID 2
|
||||
#define GLIBTOP_PROC_STATE_GID 3
|
||||
#define GLIBTOP_PROC_STATE_RUID 4
|
||||
#define GLIBTOP_PROC_STATE_RGID 5
|
||||
#define GLIBTOP_PROC_STATE_HAS_CPU 6
|
||||
#define GLIBTOP_PROC_STATE_PROCESSOR 7
|
||||
#define GLIBTOP_PROC_STATE_LAST_PROCESSOR 8
|
||||
|
||||
#define GLIBTOP_MAX_PROC_STATE 9
|
||||
|
||||
#define GLIBTOP_PROCESS_RUNNING 1
|
||||
#define GLIBTOP_PROCESS_INTERRUPTIBLE 2
|
||||
#define GLIBTOP_PROCESS_UNINTERRUPTIBLE 4
|
||||
#define GLIBTOP_PROCESS_ZOMBIE 8
|
||||
#define GLIBTOP_PROCESS_STOPPED 16
|
||||
#define GLIBTOP_PROCESS_SWAPPING 32
|
||||
#define GLIBTOP_PROCESS_DEAD 64
|
||||
|
||||
typedef struct _glibtop_proc_state glibtop_proc_state;
|
||||
|
||||
/* Name and status */
|
||||
|
||||
struct _glibtop_proc_state
|
||||
{
|
||||
guint64 flags;
|
||||
char cmd[40]; /* basename of executable file in
|
||||
* call to exec(2) */
|
||||
unsigned state;
|
||||
/* NOTE: when porting the library, TRY HARD to implement the
|
||||
* following two fields. */
|
||||
/* IMPORTANT NOTICE: For security reasons, it is extremely important
|
||||
* only to set the flags value for those two
|
||||
* fields if their values are corrent ! */
|
||||
int uid; /* UID of process */
|
||||
int gid; /* GID of process */
|
||||
int ruid;
|
||||
int rgid;
|
||||
int has_cpu;
|
||||
int processor;
|
||||
int last_processor;
|
||||
};
|
||||
|
||||
void glibtop_get_proc_state(glibtop_proc_state *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_STATE
|
||||
#define glibtop_get_proc_state_r glibtop_get_proc_state_p
|
||||
#else
|
||||
#define glibtop_get_proc_state_r glibtop_get_proc_state_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_proc_state_l (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_STATE
|
||||
void _glibtop_init_proc_state_p (glibtop *server);
|
||||
void glibtop_get_proc_state_p (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
||||
#else
|
||||
void _glibtop_init_proc_state_s (glibtop *server);
|
||||
void glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
93
include/glibtop/proctime.h
Normal file
93
include/glibtop/proctime.h
Normal file
@@ -0,0 +1,93 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCTIME_H__
|
||||
#define __GLIBTOP_PROCTIME_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/cpu.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_TIME_START_TIME 0
|
||||
#define GLIBTOP_PROC_TIME_RTIME 1
|
||||
#define GLIBTOP_PROC_TIME_UTIME 2
|
||||
#define GLIBTOP_PROC_TIME_STIME 3
|
||||
#define GLIBTOP_PROC_TIME_CUTIME 4
|
||||
#define GLIBTOP_PROC_TIME_CSTIME 5
|
||||
#define GLIBTOP_PROC_TIME_TIMEOUT 6
|
||||
#define GLIBTOP_PROC_TIME_IT_REAL_VALUE 7
|
||||
#define GLIBTOP_PROC_TIME_FREQUENCY 8
|
||||
#define GLIBTOP_PROC_TIME_XCPU_UTIME 9
|
||||
#define GLIBTOP_PROC_TIME_XCPU_STIME 10
|
||||
|
||||
#define GLIBTOP_MAX_PROC_TIME 11
|
||||
|
||||
typedef struct _glibtop_proc_time glibtop_proc_time;
|
||||
|
||||
/* Time section */
|
||||
|
||||
struct _glibtop_proc_time
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 start_time; /* start time of process --
|
||||
* seconds since 1-1-70 */
|
||||
guint64 rtime; /* real time accumulated by process */
|
||||
guint64 utime; /* user-mode CPU time accumulated by process */
|
||||
guint64 stime; /* kernel-mode CPU time accumulated by process */
|
||||
guint64 cutime; /* cumulative utime of process and
|
||||
* reaped children */
|
||||
guint64 cstime; /* cumulative stime of process and
|
||||
* reaped children */
|
||||
guint64 timeout; /* The time (in jiffies) of the process's
|
||||
* next timeout */
|
||||
guint64 it_real_value; /* The time (in jiffies) before the
|
||||
* next SIGALRM is sent to the process
|
||||
* due to an interval timer. */
|
||||
guint64 frequency; /* Tick frequency. */
|
||||
guint64 xcpu_utime [GLIBTOP_NCPU]; /* utime and stime for all CPUs on */
|
||||
guint64 xcpu_stime [GLIBTOP_NCPU]; /* SMP machines. */
|
||||
};
|
||||
|
||||
|
||||
void glibtop_get_proc_time(glibtop_proc_time *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_TIME
|
||||
#define glibtop_get_proc_time_r glibtop_get_proc_time_p
|
||||
#else
|
||||
#define glibtop_get_proc_time_r glibtop_get_proc_time_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_proc_time_l (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_TIME
|
||||
void _glibtop_init_proc_time_p (glibtop *server);
|
||||
void glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
||||
#else
|
||||
void _glibtop_init_proc_time_s (glibtop *server);
|
||||
void glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
102
include/glibtop/procuid.h
Normal file
102
include/glibtop/procuid.h
Normal file
@@ -0,0 +1,102 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCUID_H__
|
||||
#define __GLIBTOP_PROCUID_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_UID_UID 0
|
||||
#define GLIBTOP_PROC_UID_EUID 1
|
||||
#define GLIBTOP_PROC_UID_GID 2
|
||||
#define GLIBTOP_PROC_UID_EGID 3
|
||||
#define GLIBTOP_PROC_UID_SUID 4
|
||||
#define GLIBTOP_PROC_UID_SGID 5
|
||||
#define GLIBTOP_PROC_UID_FSUID 6
|
||||
#define GLIBTOP_PROC_UID_FSGID 7
|
||||
#define GLIBTOP_PROC_UID_PID 8
|
||||
#define GLIBTOP_PROC_UID_PPID 9
|
||||
#define GLIBTOP_PROC_UID_PGRP 10
|
||||
#define GLIBTOP_PROC_UID_SESSION 11
|
||||
#define GLIBTOP_PROC_UID_TTY 12
|
||||
#define GLIBTOP_PROC_UID_TPGID 13
|
||||
#define GLIBTOP_PROC_UID_PRIORITY 14
|
||||
#define GLIBTOP_PROC_UID_NICE 15
|
||||
#define GLIBTOP_PROC_UID_NGROUPS 16
|
||||
#define GLIBTOP_PROC_UID_GROUPS 17
|
||||
|
||||
#define GLIBTOP_MAX_PROC_UID 18
|
||||
|
||||
typedef struct _glibtop_proc_uid glibtop_proc_uid;
|
||||
|
||||
#define GLIBTOP_MAX_GROUPS 64
|
||||
|
||||
/* User, Group, Terminal and session */
|
||||
|
||||
struct _glibtop_proc_uid
|
||||
{
|
||||
guint64 flags;
|
||||
gint32 uid; /* user id */
|
||||
gint32 euid; /* effective user id */
|
||||
gint32 gid; /* group id */
|
||||
gint32 egid; /* effective group id */
|
||||
gint32 suid; /* set user id */
|
||||
gint32 sgid; /* set group id */
|
||||
gint32 fsuid; /* ??? user id */
|
||||
gint32 fsgid; /* ??? group id */
|
||||
gint32 pid; /* process id */
|
||||
gint32 ppid; /* pid of parent process */
|
||||
gint32 pgrp; /* process group id */
|
||||
gint32 session; /* session id */
|
||||
gint32 tty; /* full device number of controlling terminal */
|
||||
gint32 tpgid; /* terminal process group id */
|
||||
gint32 priority; /* kernel scheduling priority */
|
||||
gint32 nice; /* standard unix nice level of process */
|
||||
gint32 ngroups;
|
||||
gint32 groups [GLIBTOP_MAX_GROUPS];
|
||||
|
||||
};
|
||||
|
||||
void glibtop_get_proc_uid(glibtop_proc_uid *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_UID
|
||||
#define glibtop_get_proc_uid_r glibtop_get_proc_uid_p
|
||||
#else
|
||||
#define glibtop_get_proc_uid_r glibtop_get_proc_uid_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_proc_uid_l (glibtop *server, glibtop_proc_uid *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_UID
|
||||
void _glibtop_init_proc_uid_p (glibtop *server);
|
||||
void glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf, pid_t pid);
|
||||
#else
|
||||
void _glibtop_init_proc_uid_s (glibtop *server);
|
||||
void glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
69
include/glibtop/procwd.h
Normal file
69
include/glibtop/procwd.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/* Copyright (C) 2007 Benoît Dejean
|
||||
This file is part of LibGTop 2.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCWD_H__
|
||||
#define __GLIBTOP_PROCWD_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _glibtop_proc_wd glibtop_proc_wd;
|
||||
|
||||
#define GLIBTOP_PROC_WD_NUMBER 0
|
||||
#define GLIBTOP_PROC_WD_ROOT 1
|
||||
#define GLIBTOP_PROC_WD_EXE 2
|
||||
#define GLIBTOP_PROC_WD_MAX 3
|
||||
|
||||
#define GLIBTOP_PROC_WD_ROOT_LEN 215
|
||||
#define GLIBTOP_PROC_WD_EXE_LEN 215
|
||||
|
||||
struct _glibtop_proc_wd
|
||||
{
|
||||
guint64 flags;
|
||||
guint32 number;
|
||||
char root[GLIBTOP_PROC_WD_ROOT_LEN+1];
|
||||
char exe[GLIBTOP_PROC_WD_EXE_LEN+1];
|
||||
};
|
||||
|
||||
|
||||
char ** glibtop_get_proc_wd(glibtop_proc_wd *buf, pid_t pid);
|
||||
char ** glibtop_get_proc_wd_l(glibtop *server, glibtop_proc_wd *buf, pid_t pid);
|
||||
|
||||
|
||||
#if GLIBTOP_SUID_PROC_WD
|
||||
|
||||
#define glibtop_get_proc_wd_r glibtop_get_proc_wd_p
|
||||
void _glibtop_init_proc_wd_p(glibtop *server);
|
||||
char ** glibtop_get_proc_wd_p(glibtop *server, glibtop_proc_wd *buf, pid_t pid);
|
||||
|
||||
#else
|
||||
|
||||
#define glibtop_get_proc_wd_r glibtop_get_proc_wd_s
|
||||
void _glibtop_init_proc_wd_s(glibtop *server);
|
||||
char ** glibtop_get_proc_wd_s(glibtop *server, glibtop_proc_wd *buf, pid_t pid);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
36
include/glibtop/read.h
Normal file
36
include/glibtop/read.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_READ_H__
|
||||
#define __GLIBTOP_READ_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define glibtop_read(p1, p2) glibtop_read(glibtop_global_server, p1, p2)
|
||||
|
||||
void glibtop_read_l (glibtop *server, size_t size, void *buf);
|
||||
void glibtop_read_s (glibtop *server, size_t size, void *buf);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
36
include/glibtop/read_data.h
Normal file
36
include/glibtop/read_data.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_READ_DATA_H__
|
||||
#define __GLIBTOP_READ_DATA_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define glibtop_read_data() glibtop_read_data_r(glibtop_global_server)
|
||||
|
||||
void *glibtop_read_data_l (glibtop *server);
|
||||
void *glibtop_read_data_s (glibtop *server);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
81
include/glibtop/sem_limits.h
Normal file
81
include/glibtop/sem_limits.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SEM_LIMITS_H__
|
||||
#define __GLIBTOP_SEM_LIMITS_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_IPC_SEMMAP 0
|
||||
#define GLIBTOP_IPC_SEMMNI 1
|
||||
#define GLIBTOP_IPC_SEMMNS 2
|
||||
#define GLIBTOP_IPC_SEMMNU 3
|
||||
#define GLIBTOP_IPC_SEMMSL 4
|
||||
#define GLIBTOP_IPC_SEMOPM 5
|
||||
#define GLIBTOP_IPC_SEMUME 6
|
||||
#define GLIBTOP_IPC_SEMUSZ 7
|
||||
#define GLIBTOP_IPC_SEMVMX 8
|
||||
#define GLIBTOP_IPC_SEMAEM 9
|
||||
|
||||
#define GLIBTOP_MAX_SEM_LIMITS 10
|
||||
|
||||
typedef struct _glibtop_sem_limits glibtop_sem_limits;
|
||||
|
||||
struct _glibtop_sem_limits
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 semmap; /* GLIBTOP_IPC_SEMMAP */
|
||||
guint64 semmni; /* GLIBTOP_IPC_SEMMNI */
|
||||
guint64 semmns; /* GLIBTOP_IPC_SEMMNS */
|
||||
guint64 semmnu; /* GLIBTOP_IPC_SEMMNU */
|
||||
guint64 semmsl; /* GLIBTOP_IPC_SEMMSL */
|
||||
guint64 semopm; /* GLIBTOP_IPC_SEMOPM */
|
||||
guint64 semume; /* GLIBTOP_IPC_SEMUME */
|
||||
guint64 semusz; /* GLIBTOP_IPC_SEMUSZ */
|
||||
guint64 semvmx; /* GLIBTOP_IPC_SEMVMX */
|
||||
guint64 semaem; /* GLIBTOP_IPC_SEMAEM */
|
||||
};
|
||||
|
||||
void glibtop_get_sem_limits(glibtop_sem_limits *buf);
|
||||
|
||||
#if GLIBTOP_SUID_SEM_LIMITS
|
||||
#define glibtop_get_sem_limits_r glibtop_get_sem_limits_p
|
||||
#else
|
||||
#define glibtop_get_sem_limits_r glibtop_get_sem_limits_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_sem_limits_l (glibtop *server, glibtop_sem_limits *buf);
|
||||
|
||||
#if GLIBTOP_SUID_SEM_LIMITS
|
||||
void _glibtop_init_sem_limits_p (glibtop *server);
|
||||
void glibtop_get_sem_limits_p (glibtop *server, glibtop_sem_limits *buf);
|
||||
#else
|
||||
void _glibtop_init_sem_limits_s (glibtop *server);
|
||||
void glibtop_get_sem_limits_s (glibtop *server, glibtop_sem_limits *buf);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
71
include/glibtop/shm_limits.h
Normal file
71
include/glibtop/shm_limits.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SHM_LIMITS_H__
|
||||
#define __GLIBTOP_SHM_LIMITS_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_IPC_SHMMAX 0
|
||||
#define GLIBTOP_IPC_SHMMIN 1
|
||||
#define GLIBTOP_IPC_SHMMNI 2
|
||||
#define GLIBTOP_IPC_SHMSEG 3
|
||||
#define GLIBTOP_IPC_SHMALL 4
|
||||
|
||||
#define GLIBTOP_MAX_SHM_LIMITS 5
|
||||
|
||||
typedef struct _glibtop_shm_limits glibtop_shm_limits;
|
||||
|
||||
struct _glibtop_shm_limits
|
||||
{
|
||||
guint64 flags;
|
||||
guint64 shmmax; /* GLIBTOP_IPC_SHMMAX */
|
||||
guint64 shmmin; /* GLIBTOP_IPC_SHMMIN */
|
||||
guint64 shmmni; /* GLIBTOP_IPC_SHMMNI */
|
||||
guint64 shmseg; /* GLIBTOP_IPC_SHMSEG */
|
||||
guint64 shmall; /* GLIBTOP_IPC_SHMALL */
|
||||
};
|
||||
|
||||
void glibtop_get_shm_limits(glibtop_shm_limits *buf);
|
||||
|
||||
#if GLIBTOP_SUID_SHM_LIMITS
|
||||
#define glibtop_get_shm_limits_r glibtop_get_shm_limits_p
|
||||
#else
|
||||
#define glibtop_get_shm_limits_r glibtop_get_shm_limits_s
|
||||
#endif
|
||||
|
||||
void glibtop_get_shm_limits_l (glibtop *server, glibtop_shm_limits *buf);
|
||||
|
||||
#if GLIBTOP_SUID_SHM_LIMITS
|
||||
void _glibtop_init_shm_limits_p (glibtop *server);
|
||||
void glibtop_get_shm_limits_p (glibtop *, glibtop_shm_limits *buf);
|
||||
#else
|
||||
void _glibtop_init_shm_limits_s (glibtop *server);
|
||||
void glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf);
|
||||
#endif
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
45
include/glibtop/signal.h
Normal file
45
include/glibtop/signal.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SIGNAL_H__
|
||||
#define __GLIBTOP_SIGNAL_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
#ifdef HAVE_SYS_SIGNAL_H
|
||||
#include <sys/signal.h>
|
||||
#endif
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _glibtop_signame glibtop_signame;
|
||||
|
||||
struct _glibtop_signame
|
||||
{
|
||||
const int number;
|
||||
const char *name, *label;
|
||||
};
|
||||
|
||||
extern const glibtop_signame glibtop_sys_siglist [];
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user