Compare commits
	
		
			15 Commits
		
	
	
		
			LIBGTOP_2_
			...
			LIBGTOP_1_
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					22a2289d00 | ||
| 
						 | 
					6fae8502b9 | ||
| 
						 | 
					f835defa4f | ||
| 
						 | 
					bf217abf64 | ||
| 
						 | 
					b210a6b707 | ||
| 
						 | 
					020842ccad | ||
| 
						 | 
					d25bf7628d | ||
| 
						 | 
					18442bf377 | ||
| 
						 | 
					f948d8f193 | ||
| 
						 | 
					84965bc3e8 | ||
| 
						 | 
					7880078382 | ||
| 
						 | 
					1b8d205eb0 | ||
| 
						 | 
					bc86c09ede | ||
| 
						 | 
					ad536313f1 | ||
| 
						 | 
					caf17330b3 | 
							
								
								
									
										42
									
								
								.cvsignore
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								.cvsignore
									
									
									
									
									
								
							@@ -1,42 +0,0 @@
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
aclocal.m4
 | 
			
		||||
config.cache
 | 
			
		||||
config.h
 | 
			
		||||
config.h.in
 | 
			
		||||
config.log
 | 
			
		||||
config.sub
 | 
			
		||||
config.guess
 | 
			
		||||
config.status
 | 
			
		||||
configure
 | 
			
		||||
gtopConf.sh
 | 
			
		||||
i386-bsdi
 | 
			
		||||
i686-pc-linux-gnu
 | 
			
		||||
intl
 | 
			
		||||
libgtop-0.01.tar.gz
 | 
			
		||||
libgtop-mirror.sh.swp
 | 
			
		||||
libgtopConf.sh
 | 
			
		||||
libtool
 | 
			
		||||
ltconfig
 | 
			
		||||
ltmain.sh
 | 
			
		||||
macros
 | 
			
		||||
stamp-h
 | 
			
		||||
stamp-h.in
 | 
			
		||||
sun4
 | 
			
		||||
sun4sol2
 | 
			
		||||
support
 | 
			
		||||
i386-freebsd
 | 
			
		||||
alpha-dec-osf3.0
 | 
			
		||||
i686-pc-linux-gnu-linux
 | 
			
		||||
libgtop-config
 | 
			
		||||
ABOUT-NLS
 | 
			
		||||
libgtop.spec
 | 
			
		||||
libgtop-0.99.*.tar.gz
 | 
			
		||||
libgtop-0.99.*
 | 
			
		||||
install-sh
 | 
			
		||||
mkinstalldirs
 | 
			
		||||
missing
 | 
			
		||||
INSTALL
 | 
			
		||||
COPYING
 | 
			
		||||
glibtop-config.h
 | 
			
		||||
stamp-gc-h
 | 
			
		||||
							
								
								
									
										2
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								AUTHORS
									
									
									
									
									
								
							@@ -1,2 +0,0 @@
 | 
			
		||||
Martin Baulig (martin@home-of-linux.org)
 | 
			
		||||
Drazen Kacar (dave@srce.hr)
 | 
			
		||||
							
								
								
									
										25
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,3 +1,28 @@
 | 
			
		||||
2001-02-26  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
			
		||||
 | 
			
		||||
	<09> configure.in,po/*.po: added various languages from CVS head
 | 
			
		||||
 | 
			
		||||
2001-02-13  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added sk to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2000-02-16  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.1.2.1 "Hardangervidda goes Paris".
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.1.2.1 and let the
 | 
			
		||||
	tarball be called `libgtop-1.1.2.1-solaris.tar.gz'.
 | 
			
		||||
 | 
			
		||||
2000-01-16  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION (LIBGTOP_VERSION_SUFFIX): Added this so you can
 | 
			
		||||
	have your tarballs called `libgtop-1.x.y-snap.tar.gz' or whatever.
 | 
			
		||||
	This only affects the `VERSION' variable and thus how the resulting
 | 
			
		||||
	tarball will be called, but not `LIBGTOP_VERSION_CODE' etc.
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Make `aclocal.m4' also depend on `LIBGTOP-VERSION'
 | 
			
		||||
	when in maintainer-mode.
 | 
			
		||||
 | 
			
		||||
1999-10-19  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.1.2 "Hardangervidda".
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,10 @@ LIBGTOP_MAJOR_VERSION=1
 | 
			
		||||
LIBGTOP_MINOR_VERSION=1
 | 
			
		||||
LIBGTOP_MICRO_VERSION=2
 | 
			
		||||
 | 
			
		||||
# you can set this to `-snap' for instance to create
 | 
			
		||||
# a `libgtop-1.x.y-snap.tar.gz' tarball.
 | 
			
		||||
LIBGTOP_VERSION_SUFFIX=.1-solaris
 | 
			
		||||
 | 
			
		||||
LIBGTOP_INTERFACE_AGE=2
 | 
			
		||||
LIBGTOP_BINARY_AGE=2
 | 
			
		||||
 | 
			
		||||
@@ -21,5 +25,5 @@ LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VER
 | 
			
		||||
LIBGTOP_VERSION_CODE=`echo "$LIBGTOP_MAJOR_VERSION 1000000 * $LIBGTOP_MINOR_VERSION 1000 * + $LIBGTOP_MICRO_VERSION + p q" | dc`
 | 
			
		||||
 | 
			
		||||
# For automake.
 | 
			
		||||
VERSION=$LIBGTOP_VERSION
 | 
			
		||||
VERSION=$LIBGTOP_VERSION$LIBGTOP_VERSION_SUFFIX
 | 
			
		||||
PACKAGE=libgtop
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
Email: martin@home-of-linux.org
 | 
			
		||||
Email: dave@srce.hr
 | 
			
		||||
@@ -53,7 +53,7 @@ bin_SCRIPTS = $(top_builddir)/libgtop-config
 | 
			
		||||
@MAINT@macros/macros.dep: macros/Makefile.am
 | 
			
		||||
@MAINT@	cd macros && $(MAKE) macros.dep
 | 
			
		||||
 | 
			
		||||
@MAINT@$(top_srcdir)/aclocal.m4: libgtop-sysdeps.m4
 | 
			
		||||
@MAINT@$(top_srcdir)/aclocal.m4: libgtop-sysdeps.m4 LIBGTOP-VERSION
 | 
			
		||||
 | 
			
		||||
## We create libgtopConf.sh here and not from configure because we want
 | 
			
		||||
## to get the paths expanded correctly.  Macros like srcdir are given
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								NEWS
									
									
									
									
									
								
							@@ -1,3 +1,11 @@
 | 
			
		||||
February 16, 2000:
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.1.2.1 "Hardangervidda goes Paris"
 | 
			
		||||
 | 
			
		||||
  This is a bug fixed version of 1.1.2 for Solaris users
 | 
			
		||||
  of the GUADEC CD.
 | 
			
		||||
 | 
			
		||||
October 19, 1999:
 | 
			
		||||
================
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								README
									
									
									
									
									
								
							@@ -1,32 +0,0 @@
 | 
			
		||||
This is the *development* branch of LibGTop. It is indended
 | 
			
		||||
for people who want to help with the development of LibGTop and
 | 
			
		||||
not for end-users.
 | 
			
		||||
 | 
			
		||||
Please use the LIBGTOP_STABLE_1_0 branch (which is LibGTop 1.0.x)
 | 
			
		||||
unless you're really a developer.
 | 
			
		||||
 | 
			
		||||
If you're using LibGTop from CVS simply do a
 | 
			
		||||
 | 
			
		||||
	cvs update -r LIBGTOP_STABLE_1_0
 | 
			
		||||
 | 
			
		||||
to get the latest version from the stable branch.
 | 
			
		||||
 | 
			
		||||
However, I'll periodically make snapshot releases from the development
 | 
			
		||||
branch for Solaris users of LibGTop.
 | 
			
		||||
 | 
			
		||||
They can be found at
 | 
			
		||||
 | 
			
		||||
	ftp://ftp.home-of-linux.org/pub/libgtop/1.1/
 | 
			
		||||
 | 
			
		||||
in near future.
 | 
			
		||||
 | 
			
		||||
Using released tarballs from the development branch is a lot better than
 | 
			
		||||
compiling directly from CVS since things in CVS may not always work as
 | 
			
		||||
expected.
 | 
			
		||||
 | 
			
		||||
Note that releases from the developer branch are neither binary
 | 
			
		||||
nor fully source compatible; you'll normally have to recompile
 | 
			
		||||
everything that use them.
 | 
			
		||||
 | 
			
		||||
October 1999
 | 
			
		||||
Martin Baulig
 | 
			
		||||
							
								
								
									
										146
									
								
								RELNOTES-0.25
									
									
									
									
									
								
							
							
						
						
									
										146
									
								
								RELNOTES-0.25
									
									
									
									
									
								
							@@ -1,146 +0,0 @@
 | 
			
		||||
RELEASE NOTES FOR LIBGTOP 0.25 STABLE
 | 
			
		||||
=====================================
 | 
			
		||||
 | 
			
		||||
OVERVIEW
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
LibGTop is a library that read information about processes and the running
 | 
			
		||||
systems. This information include:
 | 
			
		||||
 | 
			
		||||
General System Information
 | 
			
		||||
 | 
			
		||||
cpu		- CPU Usage
 | 
			
		||||
mem		- Memory Usage
 | 
			
		||||
swap		- Swap Usage (including paging activity)
 | 
			
		||||
loadavg		- Load average (including nr_running, nr_tasks, last_pid)
 | 
			
		||||
uptime		- Uptime and Idle time, can be calculated from CPU usage
 | 
			
		||||
 | 
			
		||||
SYS V IPC Limits:
 | 
			
		||||
 | 
			
		||||
shm_limits	- Shared Memory Limits
 | 
			
		||||
msg_limits	- Message Queue Limits
 | 
			
		||||
sem_limits	- Semaphore Set Limits
 | 
			
		||||
 | 
			
		||||
Process List:
 | 
			
		||||
 | 
			
		||||
proclist	- List of processes
 | 
			
		||||
 | 
			
		||||
Process information:
 | 
			
		||||
 | 
			
		||||
proc_state	- cmd, state, uid, gid
 | 
			
		||||
proc_uid	- uid,euid,gid,egid,pid,ppid,pgrp
 | 
			
		||||
		  session,tty,tpgid,priority,nice
 | 
			
		||||
proc_mem	- size,vsize,resident,share,rss,rss_rlim
 | 
			
		||||
proc_time	- start_time,rtime,utime,stime,cutime,cstime
 | 
			
		||||
		  timeout,it_real_value,frequency
 | 
			
		||||
proc_signal	- signal,blocked,sigignore,sigcatch
 | 
			
		||||
proc_kernel	- k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
 | 
			
		||||
		  kstk_esp,kstk_eip,nwchan,wchan
 | 
			
		||||
proc_segment	- text_rss,shlib_rss,data_rss,stack_rss,dirty_size
 | 
			
		||||
		  start_code,end_code,start_stack
 | 
			
		||||
 | 
			
		||||
Process maps:
 | 
			
		||||
 | 
			
		||||
proc_map	- Process map (/proc/<pid>/maps under Linux)
 | 
			
		||||
 | 
			
		||||
File system usage:
 | 
			
		||||
 | 
			
		||||
mountlist	- List of currently mounted filesystems
 | 
			
		||||
fsusage		- File system usage
 | 
			
		||||
 | 
			
		||||
PORTABILITY:
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
LibGtop is designed to be as portable as possible. None of the functions
 | 
			
		||||
and retrieved information should be specific to a specific operating
 | 
			
		||||
system. So you only need to port the system dependent part of the library
 | 
			
		||||
to a new system and all application programs can then use libgtop on this
 | 
			
		||||
new system.
 | 
			
		||||
 | 
			
		||||
CLIENT/SERVER MODEL:
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
Some systems like DEC OSF/1 or BSD require special priviledges for the calling
 | 
			
		||||
proces to fetch the required information (SUID root/SGID kmem). To solve this
 | 
			
		||||
problem, I designed a client/server model which makes a call to a SUID/SGID
 | 
			
		||||
server which fetches the required information whenever it is required. This
 | 
			
		||||
server is only called for features that really require priviledges, otherwise
 | 
			
		||||
the sysdeps code is called directory (every user can get the CPU usage on
 | 
			
		||||
DEC OSF/1, but only root can get information about processes other than the
 | 
			
		||||
current one).
 | 
			
		||||
 | 
			
		||||
There is also some kind of daemon which can be used to fetch information from
 | 
			
		||||
remote systems (still experimental). This daemon normally runs as nobody and
 | 
			
		||||
calls the SUID/SGID itself when needed.
 | 
			
		||||
 | 
			
		||||
GNOME APPLETS:
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
There are some applets and applications which already use LibGTop. They can
 | 
			
		||||
be found in the `libgtop-apps' module in the GNOME CVS tree:
 | 
			
		||||
 | 
			
		||||
* Applets:  cpuload, cpumemusage - they need LibGTop to get their information
 | 
			
		||||
                                   on all systems other than Linux.
 | 
			
		||||
 | 
			
		||||
* Applets:  diskusage - just uses the mountlist/fsusage features of LibGTop,
 | 
			
		||||
                        the one in gnome-core also works on other systems.
 | 
			
		||||
 | 
			
		||||
* Applets:  multiload - I enhanced the cpuload applet a little bit, it is
 | 
			
		||||
                        now a multi applet and can display CPU, Memory and
 | 
			
		||||
                        Swap usages.
 | 
			
		||||
 | 
			
		||||
GTOP:
 | 
			
		||||
----
 | 
			
		||||
 | 
			
		||||
This cool GNOME app has been ported to use LibGTop. It can be found in
 | 
			
		||||
`libgtop-apps/gtop' in the GNOME CVS tree.
 | 
			
		||||
 | 
			
		||||
You can now use nearly the full functionality of GTop on FreeBSD !
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PLATTFORM SPECIFIC NOTES FOR LINUX:
 | 
			
		||||
==================================
 | 
			
		||||
 | 
			
		||||
Under Linux, LibGTop should work without problems and read everything
 | 
			
		||||
from /proc.
 | 
			
		||||
 | 
			
		||||
There is also an experimental kernel interface to read this information
 | 
			
		||||
directly from the kernel with a system call - but this is still experimental
 | 
			
		||||
and not well tested while I made this release.
 | 
			
		||||
 | 
			
		||||
PLATTFORM SPECIFIC NOTES FOR FREEBSD:
 | 
			
		||||
====================================
 | 
			
		||||
 | 
			
		||||
LibGTop should now work under FreeBSD and give you the full functionality
 | 
			
		||||
of GTop.
 | 
			
		||||
 | 
			
		||||
There are a few caveats:
 | 
			
		||||
 | 
			
		||||
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to kmem
 | 
			
		||||
  after installation and mount the /proc filesystem of FreeBSD
 | 
			
		||||
  (/proc/<pid>/mem is used withing kvm_uread ()).
 | 
			
		||||
 | 
			
		||||
* To get the filenames of the process maps displayed in GTop, you need to
 | 
			
		||||
  configure with the `--with-libgtop-inodedb' option (you need GDBM for this
 | 
			
		||||
  to work).
 | 
			
		||||
 | 
			
		||||
* You have then to create an inode database which is used to look up to
 | 
			
		||||
  filenames. This is done using the `mkinodedb' program which comes along
 | 
			
		||||
  with libgtop.
 | 
			
		||||
 | 
			
		||||
  See the file src/inodedb/README for details:
 | 
			
		||||
 | 
			
		||||
  The `mkinodedb' program which is build in this directory takes two
 | 
			
		||||
  command line arguments: the full pathname of the database to be created
 | 
			
		||||
  and the name of a configuration file consisting of directory and file names
 | 
			
		||||
  each on a line by itself - see `/etc/ld.so.conf' for an example.
 | 
			
		||||
 | 
			
		||||
  Putting a directory name in this file means all regular files found in this
 | 
			
		||||
  directory are included in the database, but it will not recursively descend
 | 
			
		||||
  into subdirectories (for instance, we want everythink in `/usr/lib' but not
 | 
			
		||||
  every single file in `/usr/lib/sgml'). You can also use filenames to include
 | 
			
		||||
  a single file.
 | 
			
		||||
 | 
			
		||||
Have fun,
 | 
			
		||||
 | 
			
		||||
Martin <martin@home-of-linux.org>
 | 
			
		||||
							
								
								
									
										163
									
								
								RELNOTES-1.0
									
									
									
									
									
								
							
							
						
						
									
										163
									
								
								RELNOTES-1.0
									
									
									
									
									
								
							@@ -1,163 +0,0 @@
 | 
			
		||||
RELEASE NOTES FOR LIBGTOP 1.0 STABLE
 | 
			
		||||
====================================
 | 
			
		||||
 | 
			
		||||
OVERVIEW
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
LibGTop is a library that read information about processes and the
 | 
			
		||||
running systems. This information include:
 | 
			
		||||
 | 
			
		||||
General System Information:
 | 
			
		||||
 | 
			
		||||
cpu		- CPU Usage
 | 
			
		||||
mem		- Memory Usage
 | 
			
		||||
swap		- Swap Usage (including paging activity)
 | 
			
		||||
loadavg		- Load average (including nr_running, nr_tasks, last_pid)
 | 
			
		||||
uptime		- Uptime and Idle time, can be calculated from CPU usage
 | 
			
		||||
 | 
			
		||||
SYS V IPC Limits:
 | 
			
		||||
 | 
			
		||||
shm_limits	- Shared Memory Limits
 | 
			
		||||
msg_limits	- Message Queue Limits
 | 
			
		||||
sem_limits	- Semaphore Set Limits
 | 
			
		||||
 | 
			
		||||
Network:
 | 
			
		||||
 | 
			
		||||
netload		- Network load
 | 
			
		||||
ppp		- PPP statistics
 | 
			
		||||
 | 
			
		||||
Process List:
 | 
			
		||||
 | 
			
		||||
proclist	- List of processes
 | 
			
		||||
 | 
			
		||||
Process information:
 | 
			
		||||
 | 
			
		||||
proc_state	- cmd, state, uid, gid
 | 
			
		||||
proc_uid	- uid,euid,gid,egid,pid,ppid,pgrp
 | 
			
		||||
		  session,tty,tpgid,priority,nice
 | 
			
		||||
proc_mem	- size,vsize,resident,share,rss,rss_rlim
 | 
			
		||||
proc_time	- start_time,rtime,utime,stime,cutime,cstime
 | 
			
		||||
		  timeout,it_real_value,frequency
 | 
			
		||||
proc_signal	- signal,blocked,sigignore,sigcatch
 | 
			
		||||
proc_kernel	- k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
 | 
			
		||||
		  kstk_esp,kstk_eip,nwchan,wchan
 | 
			
		||||
proc_segment	- text_rss,shlib_rss,data_rss,stack_rss,dirty_size
 | 
			
		||||
		  start_code,end_code,start_stack
 | 
			
		||||
 | 
			
		||||
Process maps:
 | 
			
		||||
 | 
			
		||||
proc_args	- Command line arguments
 | 
			
		||||
proc_map	- Process map (/proc/<pid>/maps under Linux)
 | 
			
		||||
 | 
			
		||||
File system usage:
 | 
			
		||||
 | 
			
		||||
mountlist	- List of currently mounted filesystems
 | 
			
		||||
fsusage		- File system usage
 | 
			
		||||
 | 
			
		||||
PORTABILITY:
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
LibGTop is designed to be as portable as possible. None of the
 | 
			
		||||
functions and retrieved information should be specific to a specific
 | 
			
		||||
operating system. So you only need to port the system dependent part
 | 
			
		||||
of the library to a new system and all application programs can then
 | 
			
		||||
use libgtop on this new system.
 | 
			
		||||
 | 
			
		||||
CLIENT/SERVER MODEL:
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
Some systems like DEC OSF/1 or BSD require special privileges for the
 | 
			
		||||
calling process to fetch the required information (SUID root/SGID
 | 
			
		||||
kmem). To solve this problem, I designed a client/server model which
 | 
			
		||||
makes a call to a SUID/SGID server which fetches the required
 | 
			
		||||
information whenever it is required. This server is only called for
 | 
			
		||||
features that really require privileges, otherwise the sysdeps code
 | 
			
		||||
is called directory (every user can get the CPU usage on DEC OSF/1,
 | 
			
		||||
but only root can get information about processes other than the
 | 
			
		||||
current one).
 | 
			
		||||
 | 
			
		||||
There is also some kind of daemon which can be used to fetch
 | 
			
		||||
information from remote systems (still experimental). This daemon
 | 
			
		||||
normally runs as nobody and calls the SUID/SGID itself when needed.
 | 
			
		||||
 | 
			
		||||
LIBGTOP AND GNOME:
 | 
			
		||||
-----------------
 | 
			
		||||
 | 
			
		||||
LibGTop is currently used in various places in the GNOME Project,
 | 
			
		||||
for instance in some of the applets in gnome-core and - of cause -
 | 
			
		||||
this ultra-cool application called GTop ...
 | 
			
		||||
 | 
			
		||||
Although LibGTop is not specific to GNOME and under LGPL license, I
 | 
			
		||||
spent most my time during the last months to work in the GNOME project
 | 
			
		||||
so this is the primary use for LibGTop (and currently the only one).
 | 
			
		||||
 | 
			
		||||
However, you can also give its configure.in script the `--without-gnome'
 | 
			
		||||
parameter and then use it fully without GNOME in your own applications.
 | 
			
		||||
 | 
			
		||||
LIBGTOP AND GNOME - PART II:
 | 
			
		||||
---------------------------
 | 
			
		||||
 | 
			
		||||
LibGTop was tested with FreeBSD 3.0 but it should also work with
 | 
			
		||||
FreeBSD 2.2.7, NetBSD and OpenBSD.
 | 
			
		||||
 | 
			
		||||
Currently my primary aim is to help the GNOME people with our 1.0 release
 | 
			
		||||
so I won't have much time to test it with any other system than Linux.
 | 
			
		||||
 | 
			
		||||
However, I consider FreeBSD, NetBSD and OpenBSD as supported systems for
 | 
			
		||||
LibGTop and whenever I get bug reports I will do my best to fix them as
 | 
			
		||||
quickly as possible.
 | 
			
		||||
 | 
			
		||||
PLATFORM SPECIFIC NOTES FOR LINUX:
 | 
			
		||||
==================================
 | 
			
		||||
 | 
			
		||||
Under Linux, LibGTop should work without problems and read everything
 | 
			
		||||
from /proc.
 | 
			
		||||
 | 
			
		||||
LibGTop 0.25 also had an experimental kernel interface to read this
 | 
			
		||||
information directly from the kernel with a system call - but I have
 | 
			
		||||
currently dropped support for this as I am too busy with GNOME
 | 
			
		||||
development to keep current with kernel hacking.
 | 
			
		||||
 | 
			
		||||
PLATFORM SPECIFIC NOTES FOR SOLARIS:
 | 
			
		||||
====================================
 | 
			
		||||
 | 
			
		||||
Since so many people were asking me about this:
 | 
			
		||||
 | 
			
		||||
LibGTop currently does not have any support for Solaris, and it will
 | 
			
		||||
never have until some volunteer writes the code for it. I can't do this
 | 
			
		||||
myself since I do not have any machine to test it on.
 | 
			
		||||
 | 
			
		||||
PLATFORM SPECIFIC NOTES FOR BSD:
 | 
			
		||||
=================================
 | 
			
		||||
 | 
			
		||||
There are a few caveats:
 | 
			
		||||
 | 
			
		||||
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to
 | 
			
		||||
  kmem after installation and mount the /proc file system of FreeBSD
 | 
			
		||||
  (/proc/<pid>/mem is used within kvm_uread ()).
 | 
			
		||||
 | 
			
		||||
* To get the filenames of the process maps displayed in GTop, you need
 | 
			
		||||
  to configure with the `--with-libgtop-inodedb' option (you need GDBM
 | 
			
		||||
  for this to work).
 | 
			
		||||
 | 
			
		||||
  You have then to create an inode database which is used to look up
 | 
			
		||||
  filenames. This is done using the `mkinodedb' program which comes
 | 
			
		||||
  along with libgtop.
 | 
			
		||||
 | 
			
		||||
  See the file src/inodedb/README for details:
 | 
			
		||||
 | 
			
		||||
  The `mkinodedb' program which is build in this directory takes two
 | 
			
		||||
  command line arguments: the full pathname of the database to be
 | 
			
		||||
  created and the name of a configuration file consisting of directory
 | 
			
		||||
  and file names each on a line by itself - see `/etc/ld.so.conf' for
 | 
			
		||||
  an example.
 | 
			
		||||
 | 
			
		||||
  Putting a directory name in this file means all regular files found
 | 
			
		||||
  in this directory are included in the database, but it will not
 | 
			
		||||
  recursively descend into subdirectories (for instance, we want
 | 
			
		||||
  everything in `/usr/lib' but not every single file in `/usr/lib/sgml').
 | 
			
		||||
  You can also use filenames to include a single file.
 | 
			
		||||
 | 
			
		||||
Have fun,
 | 
			
		||||
 | 
			
		||||
Martin <martin@home-of-linux.org>
 | 
			
		||||
@@ -1,46 +0,0 @@
 | 
			
		||||
RELEASE NOTES FOR LIBGTOP 1.1.2
 | 
			
		||||
===============================
 | 
			
		||||
 | 
			
		||||
This is a snapshot release for Solaris users of October GNOME. It contains
 | 
			
		||||
a first version of the Solaris port of LibGTop which works at least on
 | 
			
		||||
Solaris 7.
 | 
			
		||||
 | 
			
		||||
Please use LibGTop 1.0.x if you're not on a Solaris system
 | 
			
		||||
(look at the README file for details).
 | 
			
		||||
 | 
			
		||||
IMPORTANT CHANGES SINCE 1.0:
 | 
			
		||||
----------------------------
 | 
			
		||||
 | 
			
		||||
* glibtop_cpu: Added `xcpu_flags'
 | 
			
		||||
 | 
			
		||||
* glibtop_proc_state: Changed `state' from char to unsigned and added
 | 
			
		||||
    GLIBTOP_PROCESS_RUNNING, GLIBTOP_PROCESS_INTERRUPTIBLE,
 | 
			
		||||
    GLIBTOP_PROCESS_UNINTERRUPTIBLE,  GLIBTOP_PROCESS_ZOMBIE,
 | 
			
		||||
    GLIBTOP_PROCESS_STOPPED, GLIBTOP_PROCESS_SWAPPING constants for it.
 | 
			
		||||
 | 
			
		||||
* `GLIBTOP_MOUNTENTRY_LEN' and `GLIBTOP_MAX_GROUPS' are now defined in
 | 
			
		||||
  <glibtop/limits.h>
 | 
			
		||||
 | 
			
		||||
* Removed the `GLIBTOP_SYSDEPS_FEATURES' and `GLIBTOP_SYSDEPS_POINTER_SIZE'
 | 
			
		||||
  constants from <glibtop/sysdeps.h> and let numbering start at zero for
 | 
			
		||||
  `GLIBTOP_SYSDEPS_CPU'.
 | 
			
		||||
 | 
			
		||||
OTHER CHANGES SINCE 1.0:
 | 
			
		||||
-----------------------
 | 
			
		||||
 | 
			
		||||
* Use G_GNUC_UNUSED in <glibtop/error.h> to avoid compiler warnings.
 | 
			
		||||
 | 
			
		||||
* The `libgtop-config' script now accepts `--cflags', `--libs' and
 | 
			
		||||
  `--extra-libs' parameter.
 | 
			
		||||
 | 
			
		||||
* The libraries are now called -lgtop-1.1 etc. so you can use 1.0.x and
 | 
			
		||||
  1.1.x in parallel.
 | 
			
		||||
 | 
			
		||||
CHANGES SINCE 1.0 MAINLY INTERESTING FOR DEVELOPERS:
 | 
			
		||||
---------------------------------------------------
 | 
			
		||||
 | 
			
		||||
* We create a `glibtop-config.h' now which gets included from <glibtop.h>
 | 
			
		||||
  when we're _IN_LIBGTOP. It contains things such as `u_int64_t' etc.
 | 
			
		||||
 | 
			
		||||
October 1999
 | 
			
		||||
Martin Baulig
 | 
			
		||||
							
								
								
									
										169
									
								
								acconfig.h
									
									
									
									
									
								
							
							
						
						
									
										169
									
								
								acconfig.h
									
									
									
									
									
								
							@@ -1,169 +0,0 @@
 | 
			
		||||
 | 
			
		||||
/* Define if gethostname () must be declared. */
 | 
			
		||||
#undef NEED_DECLARATION_GETHOSTNAME
 | 
			
		||||
 | 
			
		||||
/* Define if setreuid () must be declared. */
 | 
			
		||||
#undef NEED_DECLARATION_SETREUID
 | 
			
		||||
 | 
			
		||||
/* Define if setregid () must be declared. */
 | 
			
		||||
#undef NEED_DECLARATION_SETREGID
 | 
			
		||||
 | 
			
		||||
/* Define if getpagesize () must be declared. */
 | 
			
		||||
#undef NEED_DECLARATION_GETPAGESIZE
 | 
			
		||||
 | 
			
		||||
/* Define if program_invocation_name must be declared. */
 | 
			
		||||
#undef NEED_DECLARATION_PROGRAM_INVOCATION_NAME
 | 
			
		||||
 | 
			
		||||
@TOP@
 | 
			
		||||
 | 
			
		||||
#undef ENABLE_NLS
 | 
			
		||||
#undef HAVE_CATGETS
 | 
			
		||||
#undef HAVE_GETTEXT
 | 
			
		||||
#undef HAVE_LC_MESSAGES
 | 
			
		||||
#undef HAVE_STPCPY
 | 
			
		||||
#undef HAVE_STRUCT_OSOCKADDR
 | 
			
		||||
#undef PACKAGE
 | 
			
		||||
#undef VERSION
 | 
			
		||||
#undef HAVE_LIBSM
 | 
			
		||||
#undef HAVE_LIBINTL_H
 | 
			
		||||
#undef HAVE_GTK_SIGNAL_HANDLER_PENDING
 | 
			
		||||
 | 
			
		||||
/* Do not remove this comments and the empty lines; they are needed */
 | 
			
		||||
#undef HAVE_PROGRAM_INVOCATION_SHORT_NAME
 | 
			
		||||
/* Define if you have the Andrew File System.  */
 | 
			
		||||
#undef AFS
 | 
			
		||||
 | 
			
		||||
/* Define one of the following to indicate how a program can
 | 
			
		||||
   get a list of mounted filesystems.  */
 | 
			
		||||
 | 
			
		||||
/* Define if there is no specific function for reading the list of
 | 
			
		||||
   mounted filesystems.  fread will be used to read /etc/mnttab.  [SVR2]  */
 | 
			
		||||
#undef MOUNTED_FREAD
 | 
			
		||||
 | 
			
		||||
/* 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]  */
 | 
			
		||||
#undef MOUNTED_FREAD_FSTYP
 | 
			
		||||
 | 
			
		||||
/* Define if there is a function named getfsstat for reading the list
 | 
			
		||||
   of mounted filesystems.  [DEC Alpha running OSF/1]  */
 | 
			
		||||
#undef MOUNTED_GETFSSTAT
 | 
			
		||||
 | 
			
		||||
/* Define if there is a function named getmnt for reading the list of
 | 
			
		||||
   mounted filesystems.  [Ultrix]  */
 | 
			
		||||
#undef MOUNTED_GETMNT
 | 
			
		||||
 | 
			
		||||
/* 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]  */
 | 
			
		||||
#undef MOUNTED_GETMNTENT1
 | 
			
		||||
 | 
			
		||||
/* Define if there is a function named getmntent for reading the list of
 | 
			
		||||
   mounted filesystems, and that function takes two arguments.  [SVR4]  */
 | 
			
		||||
#undef MOUNTED_GETMNTENT2
 | 
			
		||||
 | 
			
		||||
/* Define if there is a function named getmntinfo for reading the list
 | 
			
		||||
   of mounted filesystems.  [4.4BSD]  */
 | 
			
		||||
#undef MOUNTED_GETMNTINFO
 | 
			
		||||
 | 
			
		||||
/* Define if there is a function named listmntent that can be used to
 | 
			
		||||
   list all mounted filesystems. [UNICOS] */
 | 
			
		||||
#undef MOUNTED_LISTMNTENT
 | 
			
		||||
 | 
			
		||||
/* 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]  */
 | 
			
		||||
#undef MOUNTED_VMOUNT
 | 
			
		||||
 | 
			
		||||
/* Define one of the following to indicate how a program can obtain
 | 
			
		||||
   filesystems usage information.  */
 | 
			
		||||
 | 
			
		||||
/*  Define if  statfs takes 3 args.  [DEC Alpha running OSF/1]  */
 | 
			
		||||
#undef STAT_STATFS3_OSF1
 | 
			
		||||
 | 
			
		||||
/* Define if there is no specific function for reading filesystems usage
 | 
			
		||||
   information and you have the <sys/filsys.h> header file.  [SVR2]  */
 | 
			
		||||
#undef STAT_READ_FILSYS
 | 
			
		||||
 | 
			
		||||
/* Define if statfs takes 2 args and struct statfs has a field named f_bsize.
 | 
			
		||||
   [4.3BSD, SunOS 4, HP-UX, AIX PS/2]  */
 | 
			
		||||
#undef STAT_STATFS2_BSIZE
 | 
			
		||||
 | 
			
		||||
/* Define if statfs takes 2 args and struct statfs has a field named f_fsize.
 | 
			
		||||
   [4.4BSD, NetBSD]  */
 | 
			
		||||
#undef STAT_STATFS2_FSIZE
 | 
			
		||||
 | 
			
		||||
/* Define if statfs takes 2 args and the second argument has
 | 
			
		||||
   type struct fs_data.  [Ultrix]  */
 | 
			
		||||
#undef STAT_STATFS2_FS_DATA
 | 
			
		||||
 | 
			
		||||
/* Define if statfs takes 4 args.  [SVR3, Dynix, Irix, Dolphin]  */
 | 
			
		||||
#undef STAT_STATFS4
 | 
			
		||||
 | 
			
		||||
/* Define if there is a function named statvfs.  [SVR4]  */
 | 
			
		||||
#undef STAT_STATVFS
 | 
			
		||||
 | 
			
		||||
/* 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.]  */
 | 
			
		||||
#undef STATFS_TRUNCATES_BLOCK_COUNTS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* to fix a bug in autoheader on DEC OSF1. */
 | 
			
		||||
#undef HAVE_PROGRAM_INVOCATION_NAME
 | 
			
		||||
 | 
			
		||||
#undef HAVE_SOCKETS
 | 
			
		||||
#undef HAVE_SOCKADDR_SUN_LEN
 | 
			
		||||
 | 
			
		||||
#undef HAVE_LIBJPEG
 | 
			
		||||
#undef HAVE_LIBGIF
 | 
			
		||||
#undef HAVE_LIBTIFF
 | 
			
		||||
#undef HAVE_LIBZ
 | 
			
		||||
#undef HAVE_LIBPNG
 | 
			
		||||
#undef HAVE_GMP2_INCLUDE_DIR
 | 
			
		||||
#undef HAVE_GUILE
 | 
			
		||||
 | 
			
		||||
#undef ssize_t
 | 
			
		||||
#undef u_int64_t
 | 
			
		||||
#undef int64_t
 | 
			
		||||
 | 
			
		||||
#undef HAVE_GLIBTOP_MACHINE_H
 | 
			
		||||
 | 
			
		||||
#undef GLIBTOP_NAMES
 | 
			
		||||
#undef GLIBTOP_GUILE
 | 
			
		||||
#undef GLIBTOP_GUILE_NAMES
 | 
			
		||||
#undef GLIBTOP_EXAMPLES
 | 
			
		||||
#undef GLIBTOP_INODEDB
 | 
			
		||||
 | 
			
		||||
#undef NEED_LIBGTOP
 | 
			
		||||
 | 
			
		||||
#undef HAVE_LINUX_SYSCTL
 | 
			
		||||
#undef HAVE_LIBGTOP_SMP
 | 
			
		||||
 | 
			
		||||
#undef HAVE_XAUTH
 | 
			
		||||
 | 
			
		||||
/* Define if your have the I4B package. */
 | 
			
		||||
#undef HAVE_I4B
 | 
			
		||||
#undef HAVE_I4B_ACCT
 | 
			
		||||
 | 
			
		||||
/* Define to enable debugging. */
 | 
			
		||||
#undef LIBGTOP_ENABLE_DEBUG
 | 
			
		||||
#undef LIBGTOP_FATAL_WARNINGS
 | 
			
		||||
 | 
			
		||||
/* Same as LINUX_VERSION_CODE either from <linux/version.h> or from
 | 
			
		||||
 * the running kernel (if we don't have configured kernel sources).
 | 
			
		||||
 */
 | 
			
		||||
#undef GLIBTOP_LINUX_VERSION_CODE
 | 
			
		||||
 | 
			
		||||
/* Solaris release code (eg. 251 for Solaris 2.5.1). */
 | 
			
		||||
#undef GLIBTOP_SOLARIS_RELEASE
 | 
			
		||||
 | 
			
		||||
/* Define if you want to use LibGTop without GNOME. */
 | 
			
		||||
#undef WITHOUT_GNOME
 | 
			
		||||
 | 
			
		||||
/* Define if you have the <procfs.h> header file */
 | 
			
		||||
#undef HAVE_PROCFS_H
 | 
			
		||||
 | 
			
		||||
/* Define if you have the <sys/procfs.h> header file */
 | 
			
		||||
#undef HAVE_SYS_PROCFS_H
 | 
			
		||||
							
								
								
									
										17
									
								
								autogen.sh
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								autogen.sh
									
									
									
									
									
								
							@@ -1,17 +0,0 @@
 | 
			
		||||
#!/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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
. $srcdir/macros/autogen.sh
 | 
			
		||||
@@ -33,6 +33,7 @@ AC_SUBST(LIBGTOP_BINARY_AGE)
 | 
			
		||||
AC_SUBST(LIBGTOP_SERVER_VERSION)
 | 
			
		||||
AC_SUBST(LIBGTOP_VERSION)
 | 
			
		||||
AC_SUBST(LIBGTOP_VERSION_CODE)
 | 
			
		||||
AC_SUBST(LIBGTOP_VERSION_SUFFIX)
 | 
			
		||||
 | 
			
		||||
# libtool versioning
 | 
			
		||||
LT_RELEASE=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION
 | 
			
		||||
@@ -276,7 +277,7 @@ AC_FUNC_STRFTIME
 | 
			
		||||
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
 | 
			
		||||
 | 
			
		||||
dnl ## all 'es_??' are only needed for format numbers different of 'es'
 | 
			
		||||
ALL_LINGUAS="da de es es_DO es_GT es_HN es_MX es_PA es_PE es_SV fi fr ja ko nl no pl pt_BR sv"
 | 
			
		||||
ALL_LINGUAS="az ca da de es es_DO es_GT es_HN es_MX es_PA es_PE es_SV fi fr ga gl hu ja ko nl no pl pt_BR ru sk sv tr uk zh_CN.GB2312"
 | 
			
		||||
AM_GNOME_GETTEXT
 | 
			
		||||
 | 
			
		||||
AC_PATH_XTRA
 | 
			
		||||
 
 | 
			
		||||
@@ -1,23 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
@@ -1,10 +0,0 @@
 | 
			
		||||
texinfo.tex
 | 
			
		||||
*.info
 | 
			
		||||
Makefile.in
 | 
			
		||||
Makefile
 | 
			
		||||
*.log *.toc *.dvi *.aux *.cp *.fn *.vr *.tp *.ky *.pg
 | 
			
		||||
*.ps
 | 
			
		||||
auto-macros.texi
 | 
			
		||||
version.texi
 | 
			
		||||
stamp-vti
 | 
			
		||||
*.html *.pdf
 | 
			
		||||
@@ -1,53 +0,0 @@
 | 
			
		||||
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: Reverted Timur's commit.
 | 
			
		||||
	(MAKEINFO): Add `-I @libgtop_top_builddir@/doc' here. This still
 | 
			
		||||
	creates libgtop.info in srcdir, but that's an automake problem.
 | 
			
		||||
 | 
			
		||||
Tue Jun 15 15:59:50 1999 Timur Bakeyev <mc@bat.ru>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Force `auto-macros.texi' to be created in $(srcdir),
 | 
			
		||||
	as, otherwise, makeinfo is unable to find it, if srcdir != builddir.
 | 
			
		||||
	That's a buggy solution, as spoils srcdir, but, as libgtop.info also
 | 
			
		||||
	created in srcdir - this is acceptable. Both SHOULD be fixed!
 | 
			
		||||
 | 
			
		||||
1999-05-28  Martin Baulig  <baulig@Stud.Informatik.Uni-Trier.DE>
 | 
			
		||||
 | 
			
		||||
	* internals.texi: New file documenting LibGTop internals.
 | 
			
		||||
	* reference.texi: Started to document all library functions and
 | 
			
		||||
	finished the sysdeps and common references.
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
@@ -1,45 +0,0 @@
 | 
			
		||||
info_TEXINFOS		= libgtop.texi
 | 
			
		||||
 | 
			
		||||
libgtop_TEXINFOS	= libgtop.texi about.texi reference.texi \
 | 
			
		||||
			  auto-macros.texi version.texi main.texi \
 | 
			
		||||
			  white-paper.texi
 | 
			
		||||
 | 
			
		||||
MAKEINFO		+= -I @libgtop_top_builddir@/doc
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST		= auto-macros.texi.in
 | 
			
		||||
 | 
			
		||||
auto-macros.texi: auto-macros.texi.in Makefile
 | 
			
		||||
## Use sed and then mv to avoid problems if the user interrupts.
 | 
			
		||||
	sed -e 's#\%LIBGTOP_LIBDIR\%#$(libdir)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_INCLUDEDIR\%#$(includedir)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_DATADIR\%#$(datadir)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_EXTRA_LIBS\%#$(LIBGTOP_EXTRA_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_LIBS\%#$(LIBGTOP_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_INCS\%#$(LIBGTOP_INCS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_NAMES_LIBS\%#$(LIBGTOP_NAMES_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_NAMES_INCS\%#$(LIBGTOP_NAMES_INCS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_GUILE_LIBS\%#$(LIBGTOP_GUILE_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_GUILE_INCS\%#$(LIBGTOP_GUILE_INCS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_GUILE_NAMES_LIBS\%#$(LIBGTOP_GUILE_NAMES_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_GUILE_NAMES_INCS\%#$(LIBGTOP_GUILE_NAMES_INCS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_BINDIR\%#$(LIBGTOP_BINDIR)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_SERVER\%#$(LIBGTOP_SERVER)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_MAJOR_VERSION\%#$(LIBGTOP_MAJOR_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_MINOR_VERSION\%#$(LIBGTOP_MINOR_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_MICRO_VERSION\%#$(LIBGTOP_MICRO_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_VERSION\%#$(LIBGTOP_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_VERSION_CODE\%#$(LIBGTOP_VERSION_CODE)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_SERVER_VERSION\%#$(LIBGTOP_SERVER_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_sysdeps_dir\%#$(libgtop_sysdeps_dir)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_need_server\%#$(libgtop_need_server)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_use_machine_h\%#$(libgtop_use_machine_h)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_guile_found\%#$(libgtop_guile_found)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_want_examples\%#$(libgtop_want_examples)#g' \
 | 
			
		||||
	      < $(srcdir)/auto-macros.texi.in > auto-macros.tmp
 | 
			
		||||
	echo '@c Set this if this is LibGTop 1.1.x' >> auto-macros.tmp
 | 
			
		||||
	if [ $(LIBGTOP_VERSION_CODE) -ge 1001000 ] ; then \
 | 
			
		||||
	  echo '@set LIBGTOP-1-1' >> auto-macros.tmp ; \
 | 
			
		||||
	else \
 | 
			
		||||
	  echo '@clear LIBGTOP-1-1' >> auto-macros.tmp ; \
 | 
			
		||||
	fi
 | 
			
		||||
	mv auto-macros.tmp auto-macros.texi
 | 
			
		||||
							
								
								
									
										121
									
								
								doc/about.texi
									
									
									
									
									
								
							
							
						
						
									
										121
									
								
								doc/about.texi
									
									
									
									
									
								
							@@ -1,121 +0,0 @@
 | 
			
		||||
@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.1 which is also the one that comes
 | 
			
		||||
together with GNOME 1.0. In CVS, there is a @code{LIBGTOP_STABLE_1_0} branch
 | 
			
		||||
which is rooted at the @code{LIBGTOP_1_0_1} tag while actual development occurs
 | 
			
		||||
in the @code{HEAD} which currently has version 1.1.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.
 | 
			
		||||
 | 
			
		||||
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 All people sending me patches, having good ideas, ...
 | 
			
		||||
@item Everyone I have forgotten in this list ...
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
@@ -1,12 +0,0 @@
 | 
			
		||||
@c LibGTop major, minor and micro version.
 | 
			
		||||
@set LIBGTOP_MAJOR_VERSION %LIBGTOP_MAJOR_VERSION%
 | 
			
		||||
@set LIBGTOP_MINOR_VERSION %LIBGTOP_MINOR_VERSION%
 | 
			
		||||
@set LIBGTOP_MICRO_VERSION %LIBGTOP_MICRO_VERSION%
 | 
			
		||||
 | 
			
		||||
@c LibGTop version and numerical version code ("1.234.567" -> 1234567).
 | 
			
		||||
@set LIBGTOP_VERSION "%LIBGTOP_VERSION%"
 | 
			
		||||
@set LIBGTOP_VERSION_CODE %LIBGTOP_VERSION_CODE%
 | 
			
		||||
 | 
			
		||||
@c LibGTop server version, increased each time the protocol changes.
 | 
			
		||||
@set LIBGTOP_SERVER_VERSION %LIBGTOP_SERVER_VERSION%
 | 
			
		||||
 | 
			
		||||
@@ -1,107 +0,0 @@
 | 
			
		||||
@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.
 | 
			
		||||
 | 
			
		||||
@@ -1,89 +0,0 @@
 | 
			
		||||
\input texinfo   @c -*-texinfo-*-
 | 
			
		||||
@c %**start of header
 | 
			
		||||
@setfilename libgtop.info
 | 
			
		||||
@settitle LibGTop Reference Manual
 | 
			
		||||
@setchapternewpage odd
 | 
			
		||||
@c %**end of header
 | 
			
		||||
 | 
			
		||||
@include auto-macros.texi
 | 
			
		||||
@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
 | 
			
		||||
* libgtop: (libgtop).			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
 | 
			
		||||
 | 
			
		||||
@@ -1,85 +0,0 @@
 | 
			
		||||
@node Top, About, (dir), (dir)
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
* About::                       About LibGTop
 | 
			
		||||
* White Paper::                 LibGTop White Paper
 | 
			
		||||
* Reference Manual::            LibGTop Reference Manual
 | 
			
		||||
* LibGTop Internals::           LibGTop Internals
 | 
			
		||||
 | 
			
		||||
 --- 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
 | 
			
		||||
* Servers and Daemons::         Servers and Daemons
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
LibGTop Internals
 | 
			
		||||
 | 
			
		||||
* General Internals::           General Internals
 | 
			
		||||
* Sysdeps Internals::           Sysdeps Internals
 | 
			
		||||
 | 
			
		||||
General Internals
 | 
			
		||||
 | 
			
		||||
* glibtop::                     The server structure
 | 
			
		||||
 | 
			
		||||
Sysdeps Internals
 | 
			
		||||
 | 
			
		||||
* glibtop_open_s::              Non-privileged initializations
 | 
			
		||||
* glibtop_close_s::             Non-privileged cleanups
 | 
			
		||||
@end menu
 | 
			
		||||
 | 
			
		||||
@include about.texi
 | 
			
		||||
@include white-paper.texi
 | 
			
		||||
@include reference.texi
 | 
			
		||||
@include internals.texi
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1807
									
								
								doc/reference.texi
									
									
									
									
									
								
							
							
						
						
									
										1807
									
								
								doc/reference.texi
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,136 +0,0 @@
 | 
			
		||||
@node White Paper, Reference Manual, About, Top
 | 
			
		||||
@chapter LibGTop White Paper
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
* Introduction::                Introduction
 | 
			
		||||
* Overview::                    Overview
 | 
			
		||||
* Servers and Daemons::         Servers and Daemons
 | 
			
		||||
@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, Servers and Daemons, 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.
 | 
			
		||||
 | 
			
		||||
@node Servers and Daemons,  , Overview, White Paper
 | 
			
		||||
@section Servers and Daemons
 | 
			
		||||
 | 
			
		||||
LibGTop gives you the possibility to use different LibGTop "servers" and
 | 
			
		||||
"daemons" in your application.
 | 
			
		||||
 | 
			
		||||
Normally you do not need to worry about this things since LibGTop auto-
 | 
			
		||||
matically opens a pipe to its server it it's required, but this can also
 | 
			
		||||
be customized to fit your needs.
 | 
			
		||||
 | 
			
		||||
For instance if you have a small applet which is only interested in disk
 | 
			
		||||
usage there's no need to fork a separate server process since you don't
 | 
			
		||||
need any privileges to get them on any of the supported systems. This can
 | 
			
		||||
be archieved with a special call to @code{glibtop_init_r} on startup.
 | 
			
		||||
 | 
			
		||||
There's also an option to tell @code{glibtop_init_r} that you're only
 | 
			
		||||
interested in several features - for instance cpu and memory usage. In
 | 
			
		||||
this case LibGTop will only fork a server process if it's required to get
 | 
			
		||||
cpu and memory.
 | 
			
		||||
 | 
			
		||||
You can also tell @code{glibtop_init_r} to start the server only on demand,
 | 
			
		||||
this might become useful in command-line based programs. For graphical
 | 
			
		||||
applications it's normally best to start the server directly during their
 | 
			
		||||
initialization. The same applies for any time critical applications (since
 | 
			
		||||
@code{fork} is an expensive operation on some systems this may lead to
 | 
			
		||||
incorrect statistics).
 | 
			
		||||
 | 
			
		||||
LibGTop also allows you to talk to a remote machine using the
 | 
			
		||||
@dfn{LibGTop daemon}. This daemon is based on @code{gnuserv} from
 | 
			
		||||
GNU Emacs and should be run as an unprivileged user. It has support
 | 
			
		||||
for either @code{xauth} or host based authorization.
 | 
			
		||||
 | 
			
		||||
This daemon itself behaves like a LibGTop client application, i.e. it
 | 
			
		||||
forks a server process if this is required.
 | 
			
		||||
 | 
			
		||||
The main use for this daemon is when you want to monitor a machine which
 | 
			
		||||
is either very slow or has very low disk space. In this case you don't need
 | 
			
		||||
to install the whole client application (for instance GTop) on the remote
 | 
			
		||||
machine but only a very small (maybe also statically linked) executable and
 | 
			
		||||
run the graphical application on a more powerful machine.
 | 
			
		||||
 | 
			
		||||
It can also be used to monitor a remote machine over a very slow link such
 | 
			
		||||
as a dialup connection since the conversation between LibGTop client and
 | 
			
		||||
daemon uses much less bandwith than an ordinary X11 connection.
 | 
			
		||||
@@ -1,16 +0,0 @@
 | 
			
		||||
.deps
 | 
			
		||||
.libs
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
first
 | 
			
		||||
first_linux
 | 
			
		||||
first_static
 | 
			
		||||
second
 | 
			
		||||
third
 | 
			
		||||
third_linux
 | 
			
		||||
third_static
 | 
			
		||||
second_static
 | 
			
		||||
second_linux
 | 
			
		||||
smp_static sysdeps_static netload_static procmap_static mountlist_static
 | 
			
		||||
smp sysdeps netload procmap mountlist
 | 
			
		||||
timings timings_static
 | 
			
		||||
@@ -1,92 +0,0 @@
 | 
			
		||||
1999-05-28  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c, second.c, sysdeps.c: Use LibGTop version conditionals
 | 
			
		||||
 	so we can more easily merge the code into LIBGTOP_STABLE_1_0.
 | 
			
		||||
 | 
			
		||||
1999-05-08  Drazen Kacar  <dave@srce.hr>
 | 
			
		||||
 | 
			
		||||
	* mountlist.c: Changed pfintf formats to "%lld" when printing
 | 
			
		||||
	u_int64_t. This is still utterly unportable, but will
 | 
			
		||||
	hopefully work on all supported architectures. For now.
 | 
			
		||||
 | 
			
		||||
1999-05-07  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* timings.c (timersub): Renamed this to `libgtop_timersub' and define
 | 
			
		||||
	it on all systems.
 | 
			
		||||
 | 
			
		||||
Fri Apr  9 00:14:52 1999 Timur Bakeyev  <timur@gnu.org>
 | 
			
		||||
 | 
			
		||||
	* timings.c: Added timersub defenition, to make code compilable on 
 | 
			
		||||
	BSDI.
 | 
			
		||||
 | 
			
		||||
1999-03-24  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* timings.c: New example.
 | 
			
		||||
 | 
			
		||||
1999-03-17  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c, second.c: Fixed a bug that caused a core dump when
 | 
			
		||||
	the sysdeps code does not return all data.
 | 
			
		||||
 | 
			
		||||
1998-11-22  Martin Baulig  <baulig@taurus.uni-trier.de>
 | 
			
		||||
 | 
			
		||||
	* netload.c: Call inet_ntoa () to get address and subnet
 | 
			
		||||
	in quatted dot notation (like 136.199.14.201) and not just
 | 
			
		||||
	as a number (like 0xc90ec788).
 | 
			
		||||
 | 
			
		||||
1998-11-02  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* sysdeps.c: New example.
 | 
			
		||||
 | 
			
		||||
1998-10-26  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* netload.c: New file. Gets network load for the interface
 | 
			
		||||
	given as command line argument.
 | 
			
		||||
 | 
			
		||||
1998-10-26  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c (glibtop_get_proc_args): Get command line arguments.
 | 
			
		||||
	* second.c: Likewise.
 | 
			
		||||
 | 
			
		||||
1998-10-25  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c (glibtop_get_ppp): Get PPP/ISDN statistics.
 | 
			
		||||
 | 
			
		||||
1998-09-28  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Install everything in $(libexecdir)/libgtop.
 | 
			
		||||
 | 
			
		||||
1998-09-09  Martin Baulig <baulig@Stud.Informatik.uni-trier.de>
 | 
			
		||||
 | 
			
		||||
	* smp.c: New file. Nice tool to show CPU statistics on SMP systems.
 | 
			
		||||
 | 
			
		||||
1998-08-25  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c, second.c, procmap.c: Fixed some compiler warnings.
 | 
			
		||||
 | 
			
		||||
1998-08-18  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* procmap.c: We now display filenames when compiled
 | 
			
		||||
	`--with-libgtop-inodedb'.
 | 
			
		||||
 | 
			
		||||
1998-08-12  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* second.c: Works a little bit more like `ps' - you can
 | 
			
		||||
	give an optional command line argument to get information
 | 
			
		||||
	about a single process.
 | 
			
		||||
 | 
			
		||||
1998-07-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* mountlist.c: New file.
 | 
			
		||||
 | 
			
		||||
1998-06-12  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* test.scm: New file.
 | 
			
		||||
	
 | 
			
		||||
1998-06-07  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am (CFLAGS): Disable optimize.
 | 
			
		||||
	
 | 
			
		||||
	* first.c (PROFILE_COUNT): Number of times each function
 | 
			
		||||
	should be called. Defaults to 1; to profile the code, you
 | 
			
		||||
	can increase this when compiling.
 | 
			
		||||
@@ -1,121 +0,0 @@
 | 
			
		||||
## Process this file with automake to produce Makefile.in
 | 
			
		||||
 | 
			
		||||
LINK			= $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
 | 
			
		||||
INCLUDES		= @INCLUDES@
 | 
			
		||||
 | 
			
		||||
DEFS			= @DEFS@
 | 
			
		||||
 | 
			
		||||
# We install it in `libexec' since this will make it more easy
 | 
			
		||||
# to put the examples into an extra RPM package.
 | 
			
		||||
 | 
			
		||||
libgtopdir		= $(libexecdir)/libgtop
 | 
			
		||||
 | 
			
		||||
libgtop_PROGRAMS	= first second\
 | 
			
		||||
			  mountlist procmap netload sysdeps timings \
 | 
			
		||||
			  @static_targets@ @guile_examples@ @smp_examples@
 | 
			
		||||
 | 
			
		||||
EXTRA_PROGRAMS		= first_static second_static \
 | 
			
		||||
			  mountlist_static procmap_static \
 | 
			
		||||
			  third third_static smp smp_static \
 | 
			
		||||
			  netload_static sysdeps_static \
 | 
			
		||||
			  timings_static
 | 
			
		||||
 | 
			
		||||
first_SOURCES		= first.c
 | 
			
		||||
first_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
first_static_SOURCES	= $(first_SOURCES)
 | 
			
		||||
first_static_LDADD	= $(first_LDADD)
 | 
			
		||||
first_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
second_SOURCES		= second.c
 | 
			
		||||
second_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
second_static_SOURCES	= $(second_SOURCES)
 | 
			
		||||
second_static_LDADD	= $(second_LDADD)
 | 
			
		||||
second_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
procmap_SOURCES		= procmap.c
 | 
			
		||||
procmap_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
procmap_static_SOURCES	= $(procmap_SOURCES)
 | 
			
		||||
procmap_static_LDADD	= $(procmap_LDADD)
 | 
			
		||||
procmap_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
netload_SOURCES		= netload.c
 | 
			
		||||
netload_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
netload_static_SOURCES	= $(netload_SOURCES)
 | 
			
		||||
netload_static_LDADD	= $(netload_LDADD)
 | 
			
		||||
netload_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
sysdeps_SOURCES		= sysdeps.c
 | 
			
		||||
sysdeps_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
sysdeps_static_SOURCES	= $(sysdeps_SOURCES)
 | 
			
		||||
sysdeps_static_LDADD	= $(sysdeps_LDADD)
 | 
			
		||||
sysdeps_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
third_guile_names_LIBS	= $(top_builddir)/sysdeps/guile/names/libgtop_guile_names.la
 | 
			
		||||
third_names_LIBS	= $(top_builddir)/sysdeps/names/libgtop_names.la
 | 
			
		||||
 | 
			
		||||
third_SOURCES		= third.c
 | 
			
		||||
third_LDADD		= $(top_builddir)/sysdeps/guile/libgtop_guile.la \
 | 
			
		||||
			  $(third_guile_names_LIBS) $(third_names_LIBS) \
 | 
			
		||||
			  $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @GUILE_LIBS@ @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
third_static_SOURCES	= $(third_SOURCES)
 | 
			
		||||
third_static_LDADD	= $(third_LDADD)
 | 
			
		||||
third_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
mountlist_SOURCES	= mountlist.c
 | 
			
		||||
mountlist_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
mountlist_static_SOURCES= $(mountlist_SOURCES)
 | 
			
		||||
mountlist_static_LDADD	= $(mountlist_LDADD)
 | 
			
		||||
mountlist_static_LDFLAGS= -static
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
smp_SOURCES		= smp.c
 | 
			
		||||
smp_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
smp_static_SOURCES	= $(smp_SOURCES)
 | 
			
		||||
smp_static_LDADD	= $(smp_LDADD)
 | 
			
		||||
smp_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
timings_SOURCES		= timings.c
 | 
			
		||||
timings_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
timings_static_SOURCES	= $(timings_SOURCES)
 | 
			
		||||
timings_static_LDADD	= $(timings_LDADD)
 | 
			
		||||
timings_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										813
									
								
								examples/first.c
									
									
									
									
									
								
							
							
						
						
									
										813
									
								
								examples/first.c
									
									
									
									
									
								
							@@ -1,813 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT	1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_union data;
 | 
			
		||||
	glibtop_sysdeps sysdeps;
 | 
			
		||||
	unsigned c, method, count, port, i, *ptr;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
	pid_t pid, ppid;
 | 
			
		||||
	char *args;
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
	  	glibtop_get_cpu (&data.cpu);
 | 
			
		||||
 | 
			
		||||
	printf ("CPU          (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.cpu.flags,
 | 
			
		||||
		(unsigned long) data.cpu.total,
 | 
			
		||||
		(unsigned long) data.cpu.user,
 | 
			
		||||
		(unsigned long) data.cpu.nice,
 | 
			
		||||
		(unsigned long) data.cpu.sys,
 | 
			
		||||
		(unsigned long) data.cpu.idle,
 | 
			
		||||
		(unsigned long) data.cpu.frequency);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_mem (&data.mem);
 | 
			
		||||
 | 
			
		||||
	printf ("Memory       (0x%08lx): "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.mem.flags,
 | 
			
		||||
		(unsigned long) data.mem.total,
 | 
			
		||||
		(unsigned long) data.mem.used,
 | 
			
		||||
		(unsigned long) data.mem.free,
 | 
			
		||||
		(unsigned long) data.mem.shared,
 | 
			
		||||
		(unsigned long) data.mem.buffer,
 | 
			
		||||
		(unsigned long) data.mem.cached,
 | 
			
		||||
		(unsigned long) data.mem.user,
 | 
			
		||||
		(unsigned long) data.mem.locked);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_swap (&data.swap);
 | 
			
		||||
 | 
			
		||||
	printf ("Swap         (0x%08lx): %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.swap.flags,
 | 
			
		||||
		(unsigned long) data.swap.total,
 | 
			
		||||
		(unsigned long) data.swap.used,
 | 
			
		||||
		(unsigned long) data.swap.free,
 | 
			
		||||
		(unsigned long) data.swap.pagein,
 | 
			
		||||
		(unsigned long) data.swap.pageout);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_uptime (&data.uptime);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Uptime       (0x%08lx): %f, %f, %lu\n",
 | 
			
		||||
		(unsigned long) data.uptime.flags,
 | 
			
		||||
		data.uptime.uptime, data.uptime.idletime,
 | 
			
		||||
		(unsigned long) data.uptime.boot_time);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Uptime       (0x%08lx): %f, %f\n",
 | 
			
		||||
		(unsigned long) data.uptime.flags,
 | 
			
		||||
		data.uptime.uptime, data.uptime.idletime);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_loadavg (&data.loadavg);
 | 
			
		||||
 | 
			
		||||
	printf ("Loadavg      (0x%08lx): %f, %f, %f - %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.loadavg.flags,
 | 
			
		||||
		(double) data.loadavg.loadavg [0],
 | 
			
		||||
		(double) data.loadavg.loadavg [1],
 | 
			
		||||
		(double) data.loadavg.loadavg [2],
 | 
			
		||||
		(unsigned long) data.loadavg.nr_running,
 | 
			
		||||
		(unsigned long) data.loadavg.nr_tasks,
 | 
			
		||||
		(unsigned long) data.loadavg.last_pid);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_shm_limits (&data.shm_limits);
 | 
			
		||||
	
 | 
			
		||||
	printf ("Shm Limits   (0x%08lx): %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.shm_limits.flags,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmmax,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmmin,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmmni,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmseg,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmall);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_msg_limits (&data.msg_limits);
 | 
			
		||||
 | 
			
		||||
	printf ("Msg Limits   (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.msg_limits.flags,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgpool,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgmap,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgmax,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgmnb,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgmni,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgssz,
 | 
			
		||||
		(unsigned long)  data.msg_limits.msgtql);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_sem_limits (&data.sem_limits);
 | 
			
		||||
	
 | 
			
		||||
	printf ("Sem Limits   (0x%08lx): "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.sem_limits.flags,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmap,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmni,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmns,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmnu,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmsl,
 | 
			
		||||
		(unsigned long) data.sem_limits.semopm,
 | 
			
		||||
		(unsigned long) data.sem_limits.semume,
 | 
			
		||||
		(unsigned long) data.sem_limits.semusz,
 | 
			
		||||
		(unsigned long) data.sem_limits.semvmx,
 | 
			
		||||
		(unsigned long) data.sem_limits.semaem);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_ppp (&data.ppp, 0);
 | 
			
		||||
 | 
			
		||||
	printf ("PPP          (0x%08lx): %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.ppp.flags,
 | 
			
		||||
		(unsigned long) data.ppp.state,
 | 
			
		||||
		(unsigned long) data.ppp.bytes_in,
 | 
			
		||||
		(unsigned long) data.ppp.bytes_out);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	glibtop_get_sysdeps (&sysdeps);
 | 
			
		||||
 | 
			
		||||
	printf ("Sysdeps      (0x%08lx): %lu, %lu, %lu, %lu, %lu, "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) sysdeps.flags,
 | 
			
		||||
		(unsigned long) sysdeps.cpu,
 | 
			
		||||
		(unsigned long) sysdeps.mem,
 | 
			
		||||
		(unsigned long) sysdeps.swap,
 | 
			
		||||
		(unsigned long) sysdeps.uptime,
 | 
			
		||||
		(unsigned long) sysdeps.loadavg,
 | 
			
		||||
		(unsigned long) sysdeps.shm_limits,
 | 
			
		||||
		(unsigned long) sysdeps.msg_limits,
 | 
			
		||||
		(unsigned long) sysdeps.sem_limits,
 | 
			
		||||
		(unsigned long) sysdeps.proclist,
 | 
			
		||||
		(unsigned long) sysdeps.proc_state,
 | 
			
		||||
		(unsigned long) sysdeps.proc_uid,
 | 
			
		||||
		(unsigned long) sysdeps.proc_mem,
 | 
			
		||||
		(unsigned long) sysdeps.proc_time,
 | 
			
		||||
		(unsigned long) sysdeps.proc_signal,
 | 
			
		||||
		(unsigned long) sysdeps.proc_kernel,
 | 
			
		||||
		(unsigned long) sysdeps.proc_segment,
 | 
			
		||||
		(unsigned long) sysdeps.proc_args,
 | 
			
		||||
		(unsigned long) sysdeps.proc_map,
 | 
			
		||||
		(unsigned long) sysdeps.mountlist,
 | 
			
		||||
		(unsigned long) sysdeps.fsusage,
 | 
			
		||||
		(unsigned long) sysdeps.netload,
 | 
			
		||||
		(unsigned long) sysdeps.ppp);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
	
 | 
			
		||||
	ptr = glibtop_get_proclist (&data.proclist, 0, 0);
 | 
			
		||||
 | 
			
		||||
	printf ("Proclist     (0x%08lx): %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.proclist.flags,
 | 
			
		||||
		(unsigned long) data.proclist.number,
 | 
			
		||||
		(unsigned long) data.proclist.size,
 | 
			
		||||
		(unsigned long) data.proclist.total);
 | 
			
		||||
 | 
			
		||||
	if (ptr) {
 | 
			
		||||
		printf ("\nProcess: ");
 | 
			
		||||
		for (i = 0; i < data.proclist.number; i++)
 | 
			
		||||
			printf ("%s%u", i ? ", " : "", ptr [i]);
 | 
			
		||||
		printf ("\n");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	glibtop_free (ptr);
 | 
			
		||||
 | 
			
		||||
	pid = getpid ();
 | 
			
		||||
	ppid = getppid ();
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_state (&data.proc_state, pid);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_State   PID  %5d (0x%08lx): '%s', %u - "
 | 
			
		||||
		"%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		data.proc_state.uid, data.proc_state.gid,
 | 
			
		||||
		data.proc_state.ruid, data.proc_state.rgid,
 | 
			
		||||
		data.proc_state.has_cpu, data.proc_state.processor,
 | 
			
		||||
		data.proc_state.last_processor);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_State   PID  %5d (0x%08lx): '%s', %c, %lu, %lu\n",
 | 
			
		||||
		(int) pid, (unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		(unsigned long) data.proc_state.uid,
 | 
			
		||||
		(unsigned long) data.proc_state.gid);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_uid (&data.proc_uid, pid);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Uid     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
 | 
			
		||||
		(int) pid, (unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.suid, data.proc_uid.sgid,
 | 
			
		||||
		data.proc_uid.fsuid, data.proc_uid.fsgid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice,
 | 
			
		||||
		data.proc_uid.ngroups);
 | 
			
		||||
 | 
			
		||||
	if (data.proc_uid.ngroups) {
 | 
			
		||||
		for (i = 0; i < data.proc_uid.ngroups; i++) {
 | 
			
		||||
			if (i)
 | 
			
		||||
				printf (" %d", data.proc_uid.groups [i]);
 | 
			
		||||
			else
 | 
			
		||||
				printf (" (%d", data.proc_uid.groups [i]);
 | 
			
		||||
		}
 | 
			
		||||
		printf (")");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Uid     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_mem (&data.proc_mem, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
		(unsigned long) data.proc_mem.size,
 | 
			
		||||
		(unsigned long) data.proc_mem.vsize,
 | 
			
		||||
		(unsigned long) data.proc_mem.resident,
 | 
			
		||||
		(unsigned long) data.proc_mem.share,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss_rlim);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_segment (&data.proc_segment, pid);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Segment PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
 | 
			
		||||
		"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
 | 
			
		||||
		"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_data,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_data,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_brk,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_brk,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_mmap,
 | 
			
		||||
		(unsigned long) data.proc_segment.arg_start,
 | 
			
		||||
		(unsigned long) data.proc_segment.arg_end,
 | 
			
		||||
		(unsigned long) data.proc_segment.env_start,
 | 
			
		||||
		(unsigned long) data.proc_segment.env_end);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Segment PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_time (&data.proc_time, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags,
 | 
			
		||||
		(unsigned long) data.proc_time.start_time,
 | 
			
		||||
		(unsigned long) data.proc_time.rtime,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime,
 | 
			
		||||
		(unsigned long) data.proc_time.cutime,
 | 
			
		||||
		(unsigned long) data.proc_time.cstime,
 | 
			
		||||
		(unsigned long) data.proc_time.timeout,
 | 
			
		||||
		(unsigned long) data.proc_time.it_real_value,
 | 
			
		||||
		(unsigned long) data.proc_time.frequency);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_signal (&data.proc_signal, pid);
 | 
			
		||||
	
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Signal  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lx %lx %lx %lx %lx %lx %lx %lx\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.signal [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch [1]);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Signal  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal,
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.maj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmin_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmaj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_esp,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_eip,
 | 
			
		||||
		(unsigned long) data.proc_kernel.nwchan,
 | 
			
		||||
		data.proc_kernel.wchan);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	args = glibtop_get_proc_args (&data.proc_args, pid, 0);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < data.proc_args.size; i++) {
 | 
			
		||||
		if (args [i]) continue;
 | 
			
		||||
		args [i] = '|';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	glibtop_free (args);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_state (&data.proc_state, ppid);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_State   PPID %5d (0x%08lx): '%s', %u - "
 | 
			
		||||
		"%u, %u, %u, %u - %u, %u, %u\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		data.proc_state.uid, data.proc_state.gid,
 | 
			
		||||
		data.proc_state.ruid, data.proc_state.rgid,
 | 
			
		||||
		data.proc_state.has_cpu, data.proc_state.processor,
 | 
			
		||||
		data.proc_state.last_processor);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_State   PPID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
 | 
			
		||||
		(int) ppid, (unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		(unsigned long) data.proc_state.uid,
 | 
			
		||||
		(unsigned long) data.proc_state.gid);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_uid (&data.proc_uid, ppid);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Uid     PPID %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
 | 
			
		||||
		(int) ppid, (unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.suid, data.proc_uid.sgid,
 | 
			
		||||
		data.proc_uid.fsuid, data.proc_uid.fsgid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice,
 | 
			
		||||
		data.proc_uid.ngroups);
 | 
			
		||||
 | 
			
		||||
	if (data.proc_uid.ngroups) {
 | 
			
		||||
		for (i = 0; i < data.proc_uid.ngroups; i++) {
 | 
			
		||||
			if (i)
 | 
			
		||||
				printf (" %d", data.proc_uid.groups [i]);
 | 
			
		||||
			else
 | 
			
		||||
				printf (" (%d", data.proc_uid.groups [i]);
 | 
			
		||||
		}
 | 
			
		||||
		printf (")");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Uid     PPID %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_mem (&data.proc_mem, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
		(unsigned long) data.proc_mem.size,
 | 
			
		||||
		(unsigned long) data.proc_mem.vsize,
 | 
			
		||||
		(unsigned long) data.proc_mem.resident,
 | 
			
		||||
		(unsigned long) data.proc_mem.share,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss_rlim);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_segment (&data.proc_segment, ppid);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Segment PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
 | 
			
		||||
		"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
 | 
			
		||||
		"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_data,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_data,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_brk,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_brk,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_mmap,
 | 
			
		||||
		(unsigned long) data.proc_segment.arg_start,
 | 
			
		||||
		(unsigned long) data.proc_segment.arg_end,
 | 
			
		||||
		(unsigned long) data.proc_segment.env_start,
 | 
			
		||||
		(unsigned long) data.proc_segment.env_end);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Segment PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_time (&data.proc_time, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags,
 | 
			
		||||
		(unsigned long) data.proc_time.start_time,
 | 
			
		||||
		(unsigned long) data.proc_time.rtime,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime,
 | 
			
		||||
		(unsigned long) data.proc_time.cutime,
 | 
			
		||||
		(unsigned long) data.proc_time.cstime,
 | 
			
		||||
		(unsigned long) data.proc_time.timeout,
 | 
			
		||||
		(unsigned long) data.proc_time.it_real_value,
 | 
			
		||||
		(unsigned long) data.proc_time.frequency);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_signal (&data.proc_signal, ppid);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Signal  PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lx %lx %lx %lx %lx %lx %lx %lx\n",
 | 
			
		||||
		(int) ppid, (unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.signal [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch [1]);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Signal  PPID %5d (0x%08lx): %lu %lu %lu %lu\n",
 | 
			
		||||
		(int) ppid, (unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal,
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.maj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmin_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmaj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_esp,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_eip,
 | 
			
		||||
		(unsigned long) data.proc_kernel.nwchan,
 | 
			
		||||
		data.proc_kernel.wchan);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	args = glibtop_get_proc_args (&data.proc_args, ppid, 0);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < data.proc_args.size; i++) {
 | 
			
		||||
		if (args [i]) continue;
 | 
			
		||||
		args [i] = '|';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	glibtop_free (args);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_state (&data.proc_state, 1);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_State   INIT %5d (0x%08lx): '%s', %u - "
 | 
			
		||||
		"%u, %u, %u, %u - %u, %u, %u\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		data.proc_state.uid, data.proc_state.gid,
 | 
			
		||||
		data.proc_state.ruid, data.proc_state.rgid,
 | 
			
		||||
		data.proc_state.has_cpu, data.proc_state.processor,
 | 
			
		||||
		data.proc_state.last_processor);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_State   INIT %5d (0x%08lx): '%s', %c, %lu, %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		(unsigned long) data.proc_state.uid,
 | 
			
		||||
		(unsigned long) data.proc_state.gid);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_uid (&data.proc_uid, 1);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Uid     INIT %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d", 1,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.suid, data.proc_uid.sgid,
 | 
			
		||||
		data.proc_uid.fsuid, data.proc_uid.fsgid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice,
 | 
			
		||||
		data.proc_uid.ngroups);
 | 
			
		||||
 | 
			
		||||
	if (data.proc_uid.ngroups) {
 | 
			
		||||
		for (i = 0; i < data.proc_uid.ngroups; i++) {
 | 
			
		||||
			if (i)
 | 
			
		||||
				printf (" %d", data.proc_uid.groups [i]);
 | 
			
		||||
			else
 | 
			
		||||
				printf (" (%d", data.proc_uid.groups [i]);
 | 
			
		||||
		}
 | 
			
		||||
		printf (")");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Uid     INIT %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_mem (&data.proc_mem, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
		(unsigned long) data.proc_mem.size,
 | 
			
		||||
		(unsigned long) data.proc_mem.vsize,
 | 
			
		||||
		(unsigned long) data.proc_mem.resident,
 | 
			
		||||
		(unsigned long) data.proc_mem.share,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss_rlim);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_segment (&data.proc_segment, 1);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Segment INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
 | 
			
		||||
		"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
 | 
			
		||||
		"0x%lx 0x%lx 0x%lx 0x%lx\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_data,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_data,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_brk,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_brk,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_mmap,
 | 
			
		||||
		(unsigned long) data.proc_segment.arg_start,
 | 
			
		||||
		(unsigned long) data.proc_segment.arg_end,
 | 
			
		||||
		(unsigned long) data.proc_segment.env_start,
 | 
			
		||||
		(unsigned long) data.proc_segment.env_end);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Segment INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_time (&data.proc_time, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_time.flags,
 | 
			
		||||
		(unsigned long) data.proc_time.start_time,
 | 
			
		||||
		(unsigned long) data.proc_time.rtime,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime,
 | 
			
		||||
		(unsigned long) data.proc_time.cutime,
 | 
			
		||||
		(unsigned long) data.proc_time.cstime,
 | 
			
		||||
		(unsigned long) data.proc_time.timeout,
 | 
			
		||||
		(unsigned long) data.proc_time.it_real_value,
 | 
			
		||||
		(unsigned long) data.proc_time.frequency);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_signal (&data.proc_signal, 1);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Signal  INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lx %lx %lx %lx %lx %lx %lx %lx\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.signal [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch [1]);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Signal  INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal,
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.maj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmin_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmaj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_esp,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_eip,
 | 
			
		||||
		(unsigned long) data.proc_kernel.nwchan,
 | 
			
		||||
		data.proc_kernel.wchan);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	args = glibtop_get_proc_args (&data.proc_args, 1, 0);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < data.proc_args.size; i++) {
 | 
			
		||||
		if (args [i]) continue;
 | 
			
		||||
		args [i] = '|';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	glibtop_free (args);
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,113 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/mountlist.h>
 | 
			
		||||
#include <glibtop/fsusage.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT	1000
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_fsusage fsusage;
 | 
			
		||||
	glibtop_mountlist mount_list;
 | 
			
		||||
	glibtop_mountentry *mount_entries;
 | 
			
		||||
	unsigned c, index, method, count, port;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
	
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	printf ("sbrk (0) = %p\n\n", sbrk (0));
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++) {
 | 
			
		||||
		mount_entries = glibtop_get_mountlist (&mount_list, 1);
 | 
			
		||||
 | 
			
		||||
		glibtop_free (mount_entries);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("sbrk (0) = %p\n\n", sbrk (0));
 | 
			
		||||
 | 
			
		||||
	mount_entries = glibtop_get_mountlist (&mount_list, 1);
 | 
			
		||||
 | 
			
		||||
	if (mount_entries == NULL)
 | 
			
		||||
		_exit (1);
 | 
			
		||||
 | 
			
		||||
	for (index = 0; index < mount_list.number; index++)
 | 
			
		||||
		printf ("Mount_Entry: %-30s %-10s %-20s\n",
 | 
			
		||||
			mount_entries [index].mountdir,
 | 
			
		||||
			mount_entries [index].type,
 | 
			
		||||
			mount_entries [index].devname);
 | 
			
		||||
 | 
			
		||||
	printf ("\n\n%-23s %9s %9s %9s %9s %9s\n\n",
 | 
			
		||||
		"", "Blocks", "Free", "Avail", "Files", "Free");
 | 
			
		||||
 | 
			
		||||
	for (index = 0; index < mount_list.number; index++) {
 | 
			
		||||
		glibtop_get_fsusage (&fsusage,
 | 
			
		||||
				     mount_entries [index].mountdir);
 | 
			
		||||
 | 
			
		||||
		printf ("Usage: %-16s %9llu %9llu %9llu %9llu %9llu\n",
 | 
			
		||||
			mount_entries [index].mountdir,
 | 
			
		||||
			fsusage.blocks, fsusage.bfree,
 | 
			
		||||
			fsusage.bavail, fsusage.files,
 | 
			
		||||
			fsusage.ffree);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	glibtop_free (mount_entries);
 | 
			
		||||
 | 
			
		||||
	printf ("\nsbrk (0) = %p\n\n", sbrk (0));
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,125 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/netload.h>
 | 
			
		||||
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <arpa/inet.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT	1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_netload netload;
 | 
			
		||||
	unsigned method, count, port;
 | 
			
		||||
	struct in_addr addr, subnet;
 | 
			
		||||
	char *address_string, *subnet_string;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	if (argc != 2)
 | 
			
		||||
		glibtop_error ("Usage: %s interface", argv [0]);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_get_netload (&netload, argv [1]);
 | 
			
		||||
 | 
			
		||||
	addr.s_addr = netload.address;
 | 
			
		||||
	subnet.s_addr = netload.subnet;
 | 
			
		||||
 | 
			
		||||
	address_string = glibtop_strdup (inet_ntoa (addr));
 | 
			
		||||
	subnet_string  = glibtop_strdup (inet_ntoa (subnet));
 | 
			
		||||
 | 
			
		||||
	printf ("Network Load (0x%08lx):\n\n"
 | 
			
		||||
		"\tInterface Flags:\t0x%08lx\n"
 | 
			
		||||
		"\tAddress:\t\t0x%08lx - %s\n"
 | 
			
		||||
		"\tSubnet:\t\t\t0x%08lx - %s\n\n"
 | 
			
		||||
		"\tMTU:\t\t\t%ld\n"
 | 
			
		||||
		"\tCollisions:\t\t%ld\n\n"
 | 
			
		||||
		"\tPackets In:\t\t%ld\n"
 | 
			
		||||
		"\tPackets Out:\t\t%ld\n"
 | 
			
		||||
		"\tPackets Total:\t\t%ld\n\n"
 | 
			
		||||
		"\tBytes In:\t\t%ld\n"
 | 
			
		||||
		"\tBytes Out:\t\t%ld\n"
 | 
			
		||||
		"\tBytes Total:\t\t%ld\n\n"
 | 
			
		||||
		"\tErrors In:\t\t%ld\n"
 | 
			
		||||
		"\tErrors Out:\t\t%ld\n"
 | 
			
		||||
		"\tErrors Total:\t\t%ld\n\n",
 | 
			
		||||
		(unsigned long) netload.flags,
 | 
			
		||||
		(unsigned long) netload.if_flags,
 | 
			
		||||
		(unsigned long) netload.address, address_string,
 | 
			
		||||
		(unsigned long) netload.subnet,  subnet_string,
 | 
			
		||||
		(unsigned long) netload.mtu,
 | 
			
		||||
		(unsigned long) netload.collisions,
 | 
			
		||||
		(unsigned long) netload.packets_in,
 | 
			
		||||
		(unsigned long) netload.packets_out,
 | 
			
		||||
		(unsigned long) netload.packets_total,
 | 
			
		||||
		(unsigned long) netload.bytes_in,
 | 
			
		||||
		(unsigned long) netload.bytes_out,
 | 
			
		||||
		(unsigned long) netload.bytes_total,
 | 
			
		||||
		(unsigned long) netload.errors_in,
 | 
			
		||||
		(unsigned long) netload.errors_out,
 | 
			
		||||
		(unsigned long) netload.errors_total);
 | 
			
		||||
 | 
			
		||||
	glibtop_free (address_string);
 | 
			
		||||
	glibtop_free (subnet_string);
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,164 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/procmap.h>
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_INODEDB
 | 
			
		||||
#include <glibtop/inodedb.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT	1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
#ifdef GLIBTOP_INODEDB
 | 
			
		||||
	glibtop_inodedb *inodedb;
 | 
			
		||||
#endif
 | 
			
		||||
	glibtop_proc_map procmap;
 | 
			
		||||
	glibtop_map_entry *maps;
 | 
			
		||||
	unsigned method, count, port, i;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
	pid_t pid;
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
 | 
			
		||||
		glibtop_error ("Usage: %s pid", argv [0]);
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_INODEDB
 | 
			
		||||
	inodedb = glibtop_inodedb_open (0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid);
 | 
			
		||||
 | 
			
		||||
	maps = glibtop_get_proc_map (&procmap, pid);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < procmap.number; i++) {
 | 
			
		||||
		const char *filename = NULL;
 | 
			
		||||
		unsigned device, device_major, device_minor;
 | 
			
		||||
		char perm [5];
 | 
			
		||||
		
 | 
			
		||||
		if (maps [i].flags & (1L << GLIBTOP_MAP_ENTRY_FILENAME))
 | 
			
		||||
			filename = maps [i].filename;
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_INODEDB
 | 
			
		||||
		if (inodedb && !filename)
 | 
			
		||||
			filename = glibtop_inodedb_lookup
 | 
			
		||||
				(inodedb, maps [i].device, maps [i].inode);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		perm [0] = (maps [i].perm & GLIBTOP_MAP_PERM_READ) ? 'r' : '-';
 | 
			
		||||
		perm [1] = (maps [i].perm & GLIBTOP_MAP_PERM_WRITE) ? 'w' : '-';
 | 
			
		||||
		perm [2] = (maps [i].perm & GLIBTOP_MAP_PERM_EXECUTE) ? 'x' : '-';
 | 
			
		||||
		perm [3] = (maps [i].perm & GLIBTOP_MAP_PERM_SHARED) ? 's' : '-';
 | 
			
		||||
		perm [4] = (maps [i].perm & GLIBTOP_MAP_PERM_PRIVATE) ? 'p' : '-';
 | 
			
		||||
 | 
			
		||||
		device = (unsigned long) maps [i].device;
 | 
			
		||||
		device_minor = (device & 255);
 | 
			
		||||
		device_major = ((device >> 8) & 255);
 | 
			
		||||
 | 
			
		||||
		if (filename) {
 | 
			
		||||
			char *format;
 | 
			
		||||
 | 
			
		||||
			if (sizeof (void*) == 8)
 | 
			
		||||
				format = "%016lx-%016lx %016lx - "
 | 
			
		||||
					 "%02x:%02x %08lu - %4s - %s\n";
 | 
			
		||||
			else
 | 
			
		||||
				format = "%08lx-%08lx %08lx - "
 | 
			
		||||
					 "%02x:%02x %08lu - %4s - %s\n";
 | 
			
		||||
 | 
			
		||||
			fprintf (stderr, format,
 | 
			
		||||
				 (unsigned long) maps [i].start,
 | 
			
		||||
				 (unsigned long) maps [i].end,
 | 
			
		||||
				 (unsigned long) maps [i].offset,
 | 
			
		||||
				 device_major, device_minor,
 | 
			
		||||
				 (unsigned long) maps [i].inode,
 | 
			
		||||
				 perm, filename);
 | 
			
		||||
		} else {
 | 
			
		||||
			char * format;
 | 
			
		||||
 | 
			
		||||
			if (sizeof (void*) == 8)
 | 
			
		||||
				format = "%016lx-%016lx %016lx - "
 | 
			
		||||
					 "%02x:%02x %08lu - %4s\n";
 | 
			
		||||
			else
 | 
			
		||||
				format = "%08lx-%08lx %08lx - "
 | 
			
		||||
					 "%02x:%02x %08lu - %4s\n";
 | 
			
		||||
 | 
			
		||||
			fprintf (stderr, format,
 | 
			
		||||
				 (unsigned long) maps [i].start,
 | 
			
		||||
				 (unsigned long) maps [i].end,
 | 
			
		||||
				 (unsigned long) maps [i].offset,
 | 
			
		||||
				 device_major, device_minor,
 | 
			
		||||
				 (unsigned long) maps [i].inode,
 | 
			
		||||
				 perm);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (filename && (filename != maps [i].filename))
 | 
			
		||||
			glibtop_free (filename);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	glibtop_free (maps);
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,376 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
output (pid_t pid)
 | 
			
		||||
{
 | 
			
		||||
	glibtop_union data;
 | 
			
		||||
	char *args;
 | 
			
		||||
	unsigned i;
 | 
			
		||||
 | 
			
		||||
#if HAVE_LIBGTOP_SMP
 | 
			
		||||
	unsigned long total;
 | 
			
		||||
	double p_total, p_utime, p_stime;
 | 
			
		||||
	double b_total, b_utime, b_stime;
 | 
			
		||||
	double s_total, s_utime, s_stime;
 | 
			
		||||
	double my_utime, my_stime;
 | 
			
		||||
	int ncpu;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
		
 | 
			
		||||
	glibtop_get_proc_state (&data.proc_state, pid);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000		
 | 
			
		||||
	printf ("Proc_State   PID  %5d (0x%08lx): '%s', %u - "
 | 
			
		||||
		"%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		data.proc_state.uid, data.proc_state.gid,
 | 
			
		||||
		data.proc_state.ruid, data.proc_state.rgid,
 | 
			
		||||
		data.proc_state.has_cpu, data.proc_state.processor,
 | 
			
		||||
		data.proc_state.last_processor);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_State   PID  %5d (0x%08lx): "
 | 
			
		||||
		"'%s', %c, %lu, %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		(unsigned long) data.proc_state.uid,
 | 
			
		||||
		(unsigned long) data.proc_state.gid);
 | 
			
		||||
#endif
 | 
			
		||||
		
 | 
			
		||||
	glibtop_get_proc_uid (&data.proc_uid, pid);
 | 
			
		||||
	
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000	
 | 
			
		||||
	printf ("Proc_Uid     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
 | 
			
		||||
		(int) pid, (unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.suid, data.proc_uid.sgid,
 | 
			
		||||
		data.proc_uid.fsuid, data.proc_uid.fsgid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice,
 | 
			
		||||
		data.proc_uid.ngroups);
 | 
			
		||||
		
 | 
			
		||||
	if (data.proc_uid.ngroups) {
 | 
			
		||||
		for (i = 0; i < data.proc_uid.ngroups; i++) {
 | 
			
		||||
			if (i)
 | 
			
		||||
				printf (" %d", data.proc_uid.groups [i]);
 | 
			
		||||
			else
 | 
			
		||||
				printf (" (%d", data.proc_uid.groups [i]);
 | 
			
		||||
		}
 | 
			
		||||
		printf (")");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Uid     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_mem (&data.proc_mem, pid);
 | 
			
		||||
		
 | 
			
		||||
	printf ("Proc_Mem     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
		(unsigned long) data.proc_mem.size,
 | 
			
		||||
		(unsigned long) data.proc_mem.vsize,
 | 
			
		||||
		(unsigned long) data.proc_mem.resident,
 | 
			
		||||
		(unsigned long) data.proc_mem.share,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss_rlim);
 | 
			
		||||
		
 | 
			
		||||
	glibtop_get_proc_segment (&data.proc_segment, pid);
 | 
			
		||||
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Segment PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
 | 
			
		||||
		"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
 | 
			
		||||
		"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_data,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_data,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_brk,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_brk,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_mmap,
 | 
			
		||||
		(unsigned long) data.proc_segment.arg_start,
 | 
			
		||||
		(unsigned long) data.proc_segment.arg_end,
 | 
			
		||||
		(unsigned long) data.proc_segment.env_start,
 | 
			
		||||
		(unsigned long) data.proc_segment.env_end);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Segment PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_time (&data.proc_time, pid);
 | 
			
		||||
		
 | 
			
		||||
	printf ("Proc_Time    PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags,
 | 
			
		||||
		(unsigned long) data.proc_time.start_time,
 | 
			
		||||
		(unsigned long) data.proc_time.rtime,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime,
 | 
			
		||||
		(unsigned long) data.proc_time.cutime,
 | 
			
		||||
		(unsigned long) data.proc_time.cstime,
 | 
			
		||||
		(unsigned long) data.proc_time.timeout,
 | 
			
		||||
		(unsigned long) data.proc_time.it_real_value,
 | 
			
		||||
		(unsigned long) data.proc_time.frequency);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_signal (&data.proc_signal, pid);
 | 
			
		||||
	
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
	printf ("Proc_Signal  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lx %lx %lx %lx %lx %lx %lx %lx\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.signal [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore [1],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch [0],
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch [1]);
 | 
			
		||||
#else
 | 
			
		||||
	printf ("Proc_Signal  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal,
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_kernel (&data.proc_kernel, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.maj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmin_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmaj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_esp,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_eip,
 | 
			
		||||
		(unsigned long) data.proc_kernel.nwchan,
 | 
			
		||||
		data.proc_kernel.wchan);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	args = glibtop_get_proc_args (&data.proc_args, pid, 0);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < data.proc_args.size; i++) {
 | 
			
		||||
		if (args [i]) continue;
 | 
			
		||||
		args [i] = '|';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	glibtop_free (args);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
#if HAVE_LIBGTOP_SMP
 | 
			
		||||
	ncpu = glibtop_global_server->ncpu;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_time (&data.proc_time, pid);
 | 
			
		||||
		
 | 
			
		||||
	total = (unsigned long) data.proc_time.utime +
 | 
			
		||||
		(unsigned long) data.proc_time.stime;
 | 
			
		||||
 | 
			
		||||
	p_total = total ? (double) total : 1.0;
 | 
			
		||||
 | 
			
		||||
	p_utime = (double) data.proc_time.utime * 100.0 / p_total;
 | 
			
		||||
	p_stime = (double) data.proc_time.stime * 100.0 / p_total;
 | 
			
		||||
 | 
			
		||||
	b_total = p_total / ncpu;
 | 
			
		||||
	b_utime = (double) data.proc_time.utime / ncpu;
 | 
			
		||||
	b_stime = (double) data.proc_time.stime / ncpu;
 | 
			
		||||
 | 
			
		||||
	s_total = 0.0; s_utime = 0.0; s_stime = 0.0;
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    PID  %5d (0x%08lx): %12lu   %12lu   %12lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags, total,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < ncpu; i++) {
 | 
			
		||||
		unsigned long this_total;
 | 
			
		||||
 | 
			
		||||
		this_total = (unsigned long) data.proc_time.xcpu_utime [i] +
 | 
			
		||||
			(unsigned long) data.proc_time.xcpu_stime [i];
 | 
			
		||||
 | 
			
		||||
		printf ("CPU %3d      PID  %5d (0x%08lx): %12lu   %12lu   %12lu\n", i,
 | 
			
		||||
			(int) pid, (unsigned long) data.proc_time.flags, this_total,
 | 
			
		||||
			(unsigned long) data.proc_time.xcpu_utime [i],
 | 
			
		||||
			(unsigned long) data.proc_time.xcpu_stime [i]);
 | 
			
		||||
 | 
			
		||||
		s_total += fabs (((double) this_total) - b_total);
 | 
			
		||||
		s_utime += fabs (((double) data.proc_time.xcpu_utime [i]) - b_utime);
 | 
			
		||||
		s_stime += fabs (((double) data.proc_time.xcpu_stime [i]) - b_stime);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    PID  %5d (0x%08lx): %12.3f   %12.3f   %12.3f\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags, 100.0, p_utime, p_stime);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < ncpu; i++) {
 | 
			
		||||
		double this_p_total, this_p_utime, this_p_stime;
 | 
			
		||||
		unsigned long this_total;
 | 
			
		||||
 | 
			
		||||
		this_total = (unsigned long) data.proc_time.xcpu_utime [i] +
 | 
			
		||||
			(unsigned long) data.proc_time.xcpu_stime [i];
 | 
			
		||||
 | 
			
		||||
		this_p_total = (double) this_total * 100.0 / p_total;
 | 
			
		||||
 | 
			
		||||
		this_p_utime = (double) data.proc_time.xcpu_utime [i] * 100.0 / p_total;
 | 
			
		||||
		this_p_stime = (double) data.proc_time.xcpu_stime [i] * 100.0 / p_total;
 | 
			
		||||
 | 
			
		||||
		printf ("CPU %3d      PID  %5d (0x%08lx): %12.3f   %12.3f   %12.3f\n", i,
 | 
			
		||||
			(int) pid, (unsigned long) data.proc_time.flags,
 | 
			
		||||
			this_p_total, this_p_utime, this_p_stime);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	my_utime = (unsigned long) data.proc_time.utime ?
 | 
			
		||||
		(double) data.proc_time.utime : 1.0;
 | 
			
		||||
	my_stime = (unsigned long) data.proc_time.stime ?
 | 
			
		||||
		(double) data.proc_time.stime : 1.0;
 | 
			
		||||
 | 
			
		||||
	printf ("SPIN: %31s %12.3f   %12.3f   %12.3f\n", "", s_total * 100.0 / p_total,
 | 
			
		||||
		s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_proclist proclist;
 | 
			
		||||
	glibtop_sysdeps sysdeps;
 | 
			
		||||
	unsigned *ptr, pid, i;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init ();
 | 
			
		||||
 | 
			
		||||
	glibtop_get_sysdeps (&sysdeps);
 | 
			
		||||
 | 
			
		||||
	printf ("Sysdeps      (0x%08lx): %lu, %lu, %lu, %lu, %lu, "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) sysdeps.flags,
 | 
			
		||||
		(unsigned long) sysdeps.cpu,
 | 
			
		||||
		(unsigned long) sysdeps.mem,
 | 
			
		||||
		(unsigned long) sysdeps.swap,
 | 
			
		||||
		(unsigned long) sysdeps.uptime,
 | 
			
		||||
		(unsigned long) sysdeps.loadavg,
 | 
			
		||||
		(unsigned long) sysdeps.shm_limits,
 | 
			
		||||
		(unsigned long) sysdeps.msg_limits,
 | 
			
		||||
		(unsigned long) sysdeps.sem_limits,
 | 
			
		||||
		(unsigned long) sysdeps.proclist,
 | 
			
		||||
		(unsigned long) sysdeps.proc_state,
 | 
			
		||||
		(unsigned long) sysdeps.proc_uid,
 | 
			
		||||
		(unsigned long) sysdeps.proc_mem,
 | 
			
		||||
		(unsigned long) sysdeps.proc_time,
 | 
			
		||||
		(unsigned long) sysdeps.proc_signal,
 | 
			
		||||
		(unsigned long) sysdeps.proc_kernel,
 | 
			
		||||
		(unsigned long) sysdeps.proc_segment);
 | 
			
		||||
 | 
			
		||||
	if ((argc == 2) && (sscanf (argv [1], "%d", &pid) == 1)) {
 | 
			
		||||
		output (pid);
 | 
			
		||||
 | 
			
		||||
		exit (0);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	ptr = glibtop_get_proclist (&proclist, 0, 0);
 | 
			
		||||
 | 
			
		||||
	printf ("Proclist     (0x%08lx): %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) proclist.flags,
 | 
			
		||||
		(unsigned long) proclist.number,
 | 
			
		||||
		(unsigned long) proclist.size,
 | 
			
		||||
		(unsigned long) proclist.total);
 | 
			
		||||
 | 
			
		||||
	if (!ptr) exit (1);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < proclist.number; i++) {
 | 
			
		||||
 | 
			
		||||
		pid = ptr [i];
 | 
			
		||||
		
 | 
			
		||||
		output (pid);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	glibtop_free (ptr);
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										124
									
								
								examples/smp.c
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								examples/smp.c
									
									
									
									
									
								
							@@ -1,124 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, September 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/cpu.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_cpu cpu;
 | 
			
		||||
	unsigned long frequency;
 | 
			
		||||
	double total, user, nice, sys, idle;
 | 
			
		||||
	double b_total, b_user, b_nice, b_sys, b_idle;
 | 
			
		||||
	double s_total, s_user, s_nice, s_sys, s_idle;
 | 
			
		||||
	char separator [BUFSIZ], buffer [BUFSIZ];
 | 
			
		||||
	int ncpu, i;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_get_cpu (&cpu);
 | 
			
		||||
 | 
			
		||||
	ncpu = glibtop_global_server->ncpu ? glibtop_global_server->ncpu : 1;
 | 
			
		||||
 | 
			
		||||
	frequency = (unsigned long) cpu.frequency;
 | 
			
		||||
 | 
			
		||||
	total = ((unsigned long) cpu.total) ? ((double) cpu.total) : 1.0;
 | 
			
		||||
	user  = ((unsigned long) cpu.user)  ? ((double) cpu.user)  : 1.0;
 | 
			
		||||
	nice  = ((unsigned long) cpu.nice)  ? ((double) cpu.nice)  : 1.0;
 | 
			
		||||
	sys   = ((unsigned long) cpu.sys)   ? ((double) cpu.sys)   : 1.0;
 | 
			
		||||
	idle  = ((unsigned long) cpu.idle)  ? ((double) cpu.idle)  : 1.0;
 | 
			
		||||
 | 
			
		||||
	s_total = s_user = s_nice = s_sys = s_idle = 0.0;
 | 
			
		||||
 | 
			
		||||
	b_total = total / ncpu;
 | 
			
		||||
	b_user  = user  / ncpu;
 | 
			
		||||
	b_nice  = nice  / ncpu;
 | 
			
		||||
	b_sys   = sys   / ncpu;
 | 
			
		||||
	b_idle  = idle  / ncpu;
 | 
			
		||||
 | 
			
		||||
	memset (separator, '-', 91);
 | 
			
		||||
	separator [92] = '\0';
 | 
			
		||||
 | 
			
		||||
	sprintf (buffer, _("Ticks (%ld per second):"), frequency);
 | 
			
		||||
 | 
			
		||||
	printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer,
 | 
			
		||||
		_("Total"), _("User"), _("Nice"), _("Sys"), _("Idle"), separator);
 | 
			
		||||
 | 
			
		||||
	printf (_("CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n"),
 | 
			
		||||
		(unsigned long) cpu.flags, total, user, nice, sys, idle);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < glibtop_global_server->ncpu; i++) {
 | 
			
		||||
		printf (_("CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"), i,
 | 
			
		||||
			(unsigned long) cpu.flags,
 | 
			
		||||
			(unsigned long) cpu.xcpu_total [i],
 | 
			
		||||
			(unsigned long) cpu.xcpu_user  [i],
 | 
			
		||||
			(unsigned long) cpu.xcpu_nice  [i],
 | 
			
		||||
			(unsigned long) cpu.xcpu_sys   [i],
 | 
			
		||||
			(unsigned long) cpu.xcpu_idle  [i]);
 | 
			
		||||
 | 
			
		||||
		s_total += fabs (((double) cpu.xcpu_total [i]) - b_total);
 | 
			
		||||
		s_user  += fabs (((double) cpu.xcpu_user  [i]) - b_user);
 | 
			
		||||
		s_nice  += fabs (((double) cpu.xcpu_nice  [i]) - b_nice);
 | 
			
		||||
		s_sys   += fabs (((double) cpu.xcpu_sys   [i]) - b_sys);
 | 
			
		||||
		s_idle  += fabs (((double) cpu.xcpu_idle  [i]) - b_idle);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("%s\n\n\n", separator);
 | 
			
		||||
 | 
			
		||||
	printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", _("Percent:"),
 | 
			
		||||
		_("Total (%)"), _("User (%)"), _("Nice (%)"), _("Sys (%)"),
 | 
			
		||||
		_("Idle (%)"), separator);
 | 
			
		||||
	
 | 
			
		||||
	printf (_("CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n"),
 | 
			
		||||
		(unsigned long) cpu.flags, (double) total * 100.0 / total,
 | 
			
		||||
		(double) user  * 100.0 / total,
 | 
			
		||||
		(double) nice  * 100.0 / total,
 | 
			
		||||
		(double) sys   * 100.0 / total,
 | 
			
		||||
		(double) idle  * 100.0 / total);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < glibtop_global_server->ncpu; i++) {
 | 
			
		||||
		double p_total, p_user, p_nice, p_sys, p_idle;
 | 
			
		||||
 | 
			
		||||
		p_total = ((double) cpu.xcpu_total [i]) * 100.0 / total;
 | 
			
		||||
		p_user  = ((double) cpu.xcpu_user  [i]) * 100.0 / user;
 | 
			
		||||
		p_nice  = ((double) cpu.xcpu_nice  [i]) * 100.0 / nice;
 | 
			
		||||
		p_sys   = ((double) cpu.xcpu_sys   [i]) * 100.0 / sys;
 | 
			
		||||
		p_idle  = ((double) cpu.xcpu_idle  [i]) * 100.0 / idle;
 | 
			
		||||
 | 
			
		||||
		printf (_("CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"),
 | 
			
		||||
			i, (unsigned long) cpu.flags, p_total, p_user, p_nice,
 | 
			
		||||
			p_sys, p_idle);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("%s\n%-26s %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", separator,
 | 
			
		||||
		_("Spin:"), s_total * 100.0 / total, s_user * 100.0 / user,
 | 
			
		||||
		s_nice * 100.0 / nice, s_sys * 100.0 / sys, s_idle * 100.0 / idle);
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,154 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT	1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_sysdeps sysdeps;
 | 
			
		||||
	unsigned method, count, port;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_sysdeps (&sysdeps);
 | 
			
		||||
 | 
			
		||||
#define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f##)) ? 1 : 0)
 | 
			
		||||
 | 
			
		||||
	printf ("Sysdeps (0x%08lx):\n\n"
 | 
			
		||||
		"\tfeatures:\t\t0x%08lx\n\n"
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
		"\tpointer_size:\t\t0x%08lx\n\n"
 | 
			
		||||
#endif
 | 
			
		||||
		"\tcpu:\t\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tmem:\t\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tswap:\t\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tuptime:\t\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tloadavg:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tshm_limits:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tmsg_limits:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tsem_limits:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tproclist:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tproc_state:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_uid:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_mem:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_time:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_signal:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_kernel:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_segment:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tproc_args:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_map:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tmountlist:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tfsusage:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tnetload:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tppp:\t\t%d\t0x%08lx\n\n",
 | 
			
		||||
		(unsigned long) sysdeps.flags,
 | 
			
		||||
		(unsigned long) sysdeps.features,
 | 
			
		||||
#if LIBGTOP_VERSION_CODE > 1001000
 | 
			
		||||
		(unsigned long) sysdeps.pointer_size,
 | 
			
		||||
#endif
 | 
			
		||||
		FEATURE_CHECK(CPU),
 | 
			
		||||
		(unsigned long) sysdeps.cpu,
 | 
			
		||||
		FEATURE_CHECK(MEM),
 | 
			
		||||
		(unsigned long) sysdeps.mem,
 | 
			
		||||
		FEATURE_CHECK(SWAP),
 | 
			
		||||
		(unsigned long) sysdeps.swap,
 | 
			
		||||
		FEATURE_CHECK(UPTIME),
 | 
			
		||||
		(unsigned long) sysdeps.uptime,
 | 
			
		||||
		FEATURE_CHECK(LOADAVG),
 | 
			
		||||
		(unsigned long) sysdeps.loadavg,
 | 
			
		||||
		FEATURE_CHECK(SHM_LIMITS),
 | 
			
		||||
		(unsigned long) sysdeps.shm_limits,
 | 
			
		||||
		FEATURE_CHECK(MSG_LIMITS),
 | 
			
		||||
		(unsigned long) sysdeps.msg_limits,
 | 
			
		||||
		FEATURE_CHECK(SEM_LIMITS),
 | 
			
		||||
		(unsigned long) sysdeps.sem_limits,
 | 
			
		||||
		FEATURE_CHECK(PROCLIST),
 | 
			
		||||
		(unsigned long) sysdeps.proclist,
 | 
			
		||||
		FEATURE_CHECK(PROC_STATE),
 | 
			
		||||
		(unsigned long) sysdeps.proc_state,
 | 
			
		||||
		FEATURE_CHECK(PROC_UID),
 | 
			
		||||
		(unsigned long) sysdeps.proc_uid,
 | 
			
		||||
		FEATURE_CHECK(PROC_MEM),
 | 
			
		||||
		(unsigned long) sysdeps.proc_mem,
 | 
			
		||||
		FEATURE_CHECK(PROC_TIME),
 | 
			
		||||
		(unsigned long) sysdeps.proc_time,
 | 
			
		||||
		FEATURE_CHECK(PROC_SIGNAL),
 | 
			
		||||
		(unsigned long) sysdeps.proc_signal,
 | 
			
		||||
		FEATURE_CHECK(PROC_KERNEL),
 | 
			
		||||
		(unsigned long) sysdeps.proc_kernel,
 | 
			
		||||
		FEATURE_CHECK(PROC_SEGMENT),
 | 
			
		||||
		(unsigned long) sysdeps.proc_segment,
 | 
			
		||||
		FEATURE_CHECK(PROC_ARGS),
 | 
			
		||||
		(unsigned long) sysdeps.proc_args,
 | 
			
		||||
		FEATURE_CHECK(PROC_MAP),
 | 
			
		||||
		(unsigned long) sysdeps.proc_map,
 | 
			
		||||
		FEATURE_CHECK(MOUNTLIST),
 | 
			
		||||
		(unsigned long) sysdeps.mountlist,
 | 
			
		||||
		FEATURE_CHECK(FSUSAGE),
 | 
			
		||||
		(unsigned long) sysdeps.fsusage,
 | 
			
		||||
		FEATURE_CHECK(NETLOAD),
 | 
			
		||||
		(unsigned long) sysdeps.netload,
 | 
			
		||||
		FEATURE_CHECK(PPP),
 | 
			
		||||
		(unsigned long) sysdeps.ppp);
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,80 +0,0 @@
 | 
			
		||||
(display (glibtop-names-sysdeps)) (newline)
 | 
			
		||||
(display (glibtop-labels-sysdeps)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-sysdeps)) (newline)
 | 
			
		||||
(display (glibtop-types-sysdeps)) (newline)
 | 
			
		||||
 | 
			
		||||
(newline)
 | 
			
		||||
 | 
			
		||||
(display (glibtop-names-cpu)) (newline)
 | 
			
		||||
(display (glibtop-names-mem)) (newline)
 | 
			
		||||
(display (glibtop-names-swap)) (newline)
 | 
			
		||||
(display (glibtop-names-uptime)) (newline)
 | 
			
		||||
(display (glibtop-names-loadavg)) (newline)
 | 
			
		||||
(display (glibtop-names-shm_limits)) (newline)
 | 
			
		||||
(display (glibtop-names-msg_limits)) (newline)
 | 
			
		||||
(display (glibtop-names-sem_limits)) (newline)
 | 
			
		||||
(display (glibtop-names-proclist)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_state)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_uid)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_mem)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_time)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_signal)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_kernel)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_segment)) (newline)
 | 
			
		||||
 | 
			
		||||
(newline)
 | 
			
		||||
 | 
			
		||||
(display (glibtop-labels-cpu)) (newline)
 | 
			
		||||
(display (glibtop-labels-mem)) (newline)
 | 
			
		||||
(display (glibtop-labels-swap)) (newline)
 | 
			
		||||
(display (glibtop-labels-uptime)) (newline)
 | 
			
		||||
(display (glibtop-labels-loadavg)) (newline)
 | 
			
		||||
(display (glibtop-labels-shm_limits)) (newline)
 | 
			
		||||
(display (glibtop-labels-msg_limits)) (newline)
 | 
			
		||||
(display (glibtop-labels-sem_limits)) (newline)
 | 
			
		||||
(display (glibtop-labels-proclist)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_state)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_uid)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_mem)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_time)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_signal)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_kernel)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_segment)) (newline)
 | 
			
		||||
 | 
			
		||||
(newline)
 | 
			
		||||
 | 
			
		||||
(display (glibtop-descriptions-cpu)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-mem)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-swap)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-uptime)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-loadavg)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-shm_limits)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-msg_limits)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-sem_limits)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proclist)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_state)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_uid)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_mem)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_time)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_signal)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_kernel)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_segment)) (newline)
 | 
			
		||||
 | 
			
		||||
(newline)
 | 
			
		||||
 | 
			
		||||
(display (glibtop-types-cpu)) (newline)
 | 
			
		||||
(display (glibtop-types-mem)) (newline)
 | 
			
		||||
(display (glibtop-types-swap)) (newline)
 | 
			
		||||
(display (glibtop-types-uptime)) (newline)
 | 
			
		||||
(display (glibtop-types-loadavg)) (newline)
 | 
			
		||||
(display (glibtop-types-shm_limits)) (newline)
 | 
			
		||||
(display (glibtop-types-msg_limits)) (newline)
 | 
			
		||||
(display (glibtop-types-sem_limits)) (newline)
 | 
			
		||||
(display (glibtop-types-proclist)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_state)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_uid)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_mem)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_time)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_signal)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_kernel)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_segment)) (newline)
 | 
			
		||||
@@ -1,57 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
     
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
void main_prog(int argc, char *argv[]);
 | 
			
		||||
 | 
			
		||||
int     
 | 
			
		||||
main (int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
 | 
			
		||||
	gh_enter (argc, argv, main_prog);
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
main_prog (int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_boot_guile ();
 | 
			
		||||
#ifdef GLIBTOP_GUILE_NAMES
 | 
			
		||||
	glibtop_boot_guile_names ();
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	gh_repl (argc, argv);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,357 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/times.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT			100000L
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT_EXPENSIVE
 | 
			
		||||
#define PROFILE_COUNT_EXPENSIVE		10000L
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define ELAPSED_UTIME ((unsigned long) elapsed_utime.tv_sec * 1000000 +	(unsigned long) elapsed_utime.tv_usec)
 | 
			
		||||
#define ELAPSED_STIME ((unsigned long) elapsed_stime.tv_sec * 1000000 + (unsigned long) elapsed_stime.tv_usec)
 | 
			
		||||
 | 
			
		||||
#define libgtop_timeradd(tvp, uvp, vvp)						\
 | 
			
		||||
	do {								\
 | 
			
		||||
		(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec;		\
 | 
			
		||||
		(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec;	\
 | 
			
		||||
		if ((vvp)->tv_usec >= 1000000) {			\
 | 
			
		||||
			(vvp)->tv_sec++;				\
 | 
			
		||||
			(vvp)->tv_usec -= 1000000;			\
 | 
			
		||||
		}							\
 | 
			
		||||
	} while (0)
 | 
			
		||||
#define libgtop_timersub(tvp, uvp, vvp)						\
 | 
			
		||||
	do {								\
 | 
			
		||||
		(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;		\
 | 
			
		||||
		(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;	\
 | 
			
		||||
		if ((vvp)->tv_usec < 0) {				\
 | 
			
		||||
			(vvp)->tv_sec--;				\
 | 
			
		||||
			(vvp)->tv_usec += 1000000;			\
 | 
			
		||||
		}							\
 | 
			
		||||
	} while (0)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_union data;
 | 
			
		||||
	unsigned c, count, *ptr;
 | 
			
		||||
	struct rusage total_start, total_end;
 | 
			
		||||
	struct rusage rusage_start, rusage_end;
 | 
			
		||||
	struct timeval elapsed_utime, elapsed_stime;
 | 
			
		||||
	pid_t pid;
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
 | 
			
		||||
	printf ("%-12s (%-10s): %7s - %9s - %9s\n",
 | 
			
		||||
		"Feature", "Flags", "Count", "utime", "stime");
 | 
			
		||||
	printf ("-------------------------------------------"
 | 
			
		||||
		"---------------\n");
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &total_start);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_cpu (&data.cpu);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("CPU          (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.cpu.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
 | 
			
		||||
		glibtop_get_mem (&data.mem);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Memory       (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.mem.flags, PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
 | 
			
		||||
		glibtop_get_swap (&data.swap);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Swap         (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.swap.flags, PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_uptime (&data.uptime);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Uptime       (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.uptime.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_loadavg (&data.loadavg);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Loadavg      (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.loadavg.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
 | 
			
		||||
		ptr = glibtop_get_proclist (&data.proclist, 0, 0);
 | 
			
		||||
		glibtop_free (ptr);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proclist     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proclist.flags,
 | 
			
		||||
		PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
 | 
			
		||||
 | 
			
		||||
	pid = getpid ();
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_state (&data.proc_state, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_State   (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_state.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_uid (&data.proc_uid, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Uid     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_uid.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_mem (&data.proc_mem, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_mem.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_segment (&data.proc_segment, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Segment (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_segment.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_time (&data.proc_time, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_time.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_signal (&data.proc_signal, pid);
 | 
			
		||||
	
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Signal  (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_signal.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
	
 | 
			
		||||
	getrusage (RUSAGE_SELF, &total_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&total_end.ru_stime, &total_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("-------------------------------------------"
 | 
			
		||||
		"---------------\n");
 | 
			
		||||
 | 
			
		||||
	printf ("%-36s %9lu - %9lu\n\n", "TOTAL",
 | 
			
		||||
		ELAPSED_UTIME, ELAPSED_STIME);
 | 
			
		||||
 | 
			
		||||
	printf ("All timings are in clock ticks "
 | 
			
		||||
		"(1000000 ticks per second).\n\n");
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								features.def
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								features.def
									
									
									
									
									
								
							@@ -1,22 +0,0 @@
 | 
			
		||||
void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[GLIBTOP_NCPU],xcpu_user[GLIBTOP_NCPU],xcpu_nice[GLIBTOP_NCPU],xcpu_sys[GLIBTOP_NCPU],xcpu_idle[GLIBTOP_NCPU],xcpu_flags)
 | 
			
		||||
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
 | 
			
		||||
void|swap|ulong(total,used,free,pagein,pageout)
 | 
			
		||||
void|uptime|double(uptime,idletime):ulong(boot_time)
 | 
			
		||||
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)
 | 
			
		||||
unsigned *|proclist|ulong(number,size,total)|long(which,arg)
 | 
			
		||||
void|proc_state|str(cmd):unsigned(state):ulong(uid,gid,ruid,rgid,has_cpu,processor,last_processor)|pid_t(pid)
 | 
			
		||||
void|proc_uid|long(uid,euid,gid,egid,suid,sgid,fsuid,fsgid,pid,ppid,pgrp,session,tty,tpgid,priority,nice,ngroups,groups[GLIBTOP_MAX_GROUPS])|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[GLIBTOP_NCPU],xcpu_stime[GLIBTOP_NCPU],xcpu_flags)|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_data,end_data,start_brk,end_brk,start_stack,start_mmap,arg_start,arg_end,env_start,env_end)|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_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)
 | 
			
		||||
							
								
								
									
										109
									
								
								glibtop.h
									
									
									
									
									
								
							
							
						
						
									
										109
									
								
								glibtop.h
									
									
									
									
									
								
							@@ -1,109 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_H__
 | 
			
		||||
#define __GLIBTOP_H__
 | 
			
		||||
 | 
			
		||||
#ifndef _IN_LIBGTOP
 | 
			
		||||
#include <glibtop-config.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
#include <glibtop/limits.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop_server.h>
 | 
			
		||||
#include <glibtop/types.h>
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_GLIBTOP_MACHINE_H
 | 
			
		||||
#include <glibtop_machine.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop		glibtop;
 | 
			
		||||
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
struct _glibtop
 | 
			
		||||
{
 | 
			
		||||
	unsigned flags;
 | 
			
		||||
	unsigned method;		/* Server Method */
 | 
			
		||||
	unsigned error_method;		/* Error Method */
 | 
			
		||||
#ifdef HAVE_GLIBTOP_MACHINE_H
 | 
			
		||||
	glibtop_machine machine;	/* Machine dependent data */
 | 
			
		||||
#endif
 | 
			
		||||
	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 */
 | 
			
		||||
	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 */
 | 
			
		||||
	glibtop_sysdeps wanted;		/* We only want this features */
 | 
			
		||||
	pid_t pid;			/* PID of the server */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern glibtop *glibtop_global_server;
 | 
			
		||||
 | 
			
		||||
extern const unsigned long glibtop_server_features;
 | 
			
		||||
 | 
			
		||||
#define glibtop_init()	glibtop_init_r(&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
#define glibtop_close()	glibtop_close_r(glibtop_global_server);
 | 
			
		||||
 | 
			
		||||
glibtop *
 | 
			
		||||
glibtop_init_r (glibtop **server_ptr,
 | 
			
		||||
		unsigned long features,
 | 
			
		||||
		unsigned flags);
 | 
			
		||||
 | 
			
		||||
glibtop *
 | 
			
		||||
glibtop_init_s (glibtop **server_ptr,
 | 
			
		||||
		unsigned long features,
 | 
			
		||||
		unsigned flags);
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_GUILE
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_guile to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
void glibtop_boot_guile (void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_GUILE_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_guile_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
void glibtop_boot_guile_names (void);
 | 
			
		||||
 | 
			
		||||
#ifndef GLIBTOP_NAMES
 | 
			
		||||
#define GLIBTOP_NAMES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
SUBDIRS		= glibtop
 | 
			
		||||
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
@@ -1,11 +0,0 @@
 | 
			
		||||
glibtopdir		= $(includedir)/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 write.h error.h open.h \
 | 
			
		||||
			  procsegment.h read.h sysdeps.h xmalloc.h global.h \
 | 
			
		||||
			  procsignal.h read_data.h union.h types.h gnuserv.h \
 | 
			
		||||
			  parameter.h mountlist.h fsusage.h procmap.h signal.h \
 | 
			
		||||
			  inodedb.h sysinfo.h ppp.h procargs.h netload.h \
 | 
			
		||||
			  limits.h
 | 
			
		||||
@@ -1,40 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_CLOSE_H__
 | 
			
		||||
#define __GLIBTOP_CLOSE_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
void glibtop_close_r (glibtop *server);
 | 
			
		||||
 | 
			
		||||
void glibtop_close_s (glibtop *server);
 | 
			
		||||
void glibtop_close_p (glibtop *server);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,104 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_COMMAND_H__
 | 
			
		||||
#define __GLIBTOP_COMMAND_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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_MAX_CMND		24
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	command;
 | 
			
		||||
    u_int64_t	size, data_size;
 | 
			
		||||
    char	parameter [_GLIBTOP_PARAM_SIZE];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
union _glibtop_response_union
 | 
			
		||||
{
 | 
			
		||||
    glibtop_union	data;
 | 
			
		||||
    glibtop_sysdeps	sysdeps;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_response
 | 
			
		||||
{
 | 
			
		||||
    int64_t offset;
 | 
			
		||||
    u_int64_t 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);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,100 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_CPU_H__
 | 
			
		||||
#define __GLIBTOP_CPU_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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_MAX_CPU		12
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_cpu	glibtop_cpu;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_cpu
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	total,				/* GLIBTOP_CPU_TOTAL		*/
 | 
			
		||||
	user,				/* GLIBTOP_CPU_USER		*/
 | 
			
		||||
	nice,				/* GLIBTOP_CPU_NICE		*/
 | 
			
		||||
	sys,				/* GLIBTOP_CPU_SYS		*/
 | 
			
		||||
	idle,				/* GLIBTOP_CPU_IDLE		*/
 | 
			
		||||
	frequency,			/* GLIBTOP_CPU_FREQUENCY	*/
 | 
			
		||||
	xcpu_total [GLIBTOP_NCPU],	/* GLIBTOP_XCPU_TOTAL		*/
 | 
			
		||||
	xcpu_user [GLIBTOP_NCPU],	/* GLIBTOP_XCPU_USER		*/
 | 
			
		||||
	xcpu_nice [GLIBTOP_NCPU],	/* GLIBTOP_XCPU_NICE		*/
 | 
			
		||||
	xcpu_sys  [GLIBTOP_NCPU],	/* GLIBTOP_XCPU_SYS		*/
 | 
			
		||||
	xcpu_idle [GLIBTOP_NCPU],	/* GLIBTOP_XCPU_IDLE		*/
 | 
			
		||||
	xcpu_flags;			/* GLIBTOP_XCPU_FLAGS		*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_cpu(cpu)	glibtop_get_cpu_l(glibtop_global_server, cpu)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_cpu [];
 | 
			
		||||
extern const unsigned glibtop_types_cpu [];
 | 
			
		||||
extern const char *glibtop_labels_cpu [];
 | 
			
		||||
extern const char *glibtop_descriptions_cpu [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,138 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_ERROR_H__
 | 
			
		||||
#define __GLIBTOP_ERROR_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#ifndef G_GNUC_UNUSED
 | 
			
		||||
#if	__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
 | 
			
		||||
#define G_GNUC_UNUSED				\
 | 
			
		||||
  __attribute__((unused))
 | 
			
		||||
#else	/* !__GNUC__ */
 | 
			
		||||
#define	G_GNUC_UNUSED
 | 
			
		||||
#endif	/* !__GNUC__ */
 | 
			
		||||
#endif /* defined G_GNUC_UNUSED */
 | 
			
		||||
 | 
			
		||||
void glibtop_error_vr (glibtop *server, char *format, va_list args);
 | 
			
		||||
void glibtop_warn_vr (glibtop *server, char *format, va_list args);
 | 
			
		||||
 | 
			
		||||
void glibtop_error_io_vr (glibtop *server, char *format, int, va_list args);
 | 
			
		||||
void glibtop_warn_io_vr (glibtop *server, char *format, int, va_list args);
 | 
			
		||||
 | 
			
		||||
static void G_GNUC_UNUSED
 | 
			
		||||
glibtop_error_r (glibtop *server, char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_error_vr (server, format, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void G_GNUC_UNUSED
 | 
			
		||||
glibtop_warn_r (glibtop *server, char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_warn_vr (server, format, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void G_GNUC_UNUSED
 | 
			
		||||
glibtop_error_io_r (glibtop *server, char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_error_io_vr (server, format, errno, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void G_GNUC_UNUSED
 | 
			
		||||
glibtop_warn_io_r (glibtop *server, char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_warn_io_vr (server, format, errno, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef  __GNUC__
 | 
			
		||||
 | 
			
		||||
#define glibtop_error(p1, args...)	glibtop_error_r(glibtop_global_server , p1 , ## args)
 | 
			
		||||
#define glibtop_warn(p1, args...)	glibtop_warn_r(glibtop_global_server , p1 , ## args)
 | 
			
		||||
 | 
			
		||||
#define glibtop_error_io(p1, args...)	glibtop_error_io_r(glibtop_global_server , p1 , ## args)
 | 
			
		||||
#define glibtop_warn_io(p1, args...)	glibtop_warn_io_r(glibtop_global_server , p1 , ## args)
 | 
			
		||||
 | 
			
		||||
#else /* no __GNUC__ */
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
glibtop_error (char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_error_vr (glibtop_global_server, format, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
glibtop_warn (char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_warn_vr (glibtop_global_server, format, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
glibtop_error_io (char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_error_io_vr (glibtop_global_server, format, errno, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
glibtop_warn_io (char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_warn_io_vr (glibtop_global_server, format, errno, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* no __GNUC__ */
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,74 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_FSUSAGE_H__
 | 
			
		||||
#define __GLIBTOP_FSUSAGE_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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_MAX_FSUSAGE		5
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_fsusage		glibtop_fsusage;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_fsusage
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	blocks,		/* Total blocks. */
 | 
			
		||||
	bfree,		/* Free blocks available to superuser. */
 | 
			
		||||
	bavail,		/* Free blocks available to non-superuser. */
 | 
			
		||||
	files,		/* Total file nodes. */
 | 
			
		||||
	ffree;		/* Free file nodes. */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_fsusage(fsusage,disk)	glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk)
 | 
			
		||||
 | 
			
		||||
#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);
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_fsusage [];
 | 
			
		||||
extern const unsigned glibtop_types_fsusage [];
 | 
			
		||||
extern const char *glibtop_labels_fsusage [];
 | 
			
		||||
extern const char *glibtop_descriptions_fsusage [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,144 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_GLOBAL_H__
 | 
			
		||||
#define __GLIBTOP_GLOBAL_H__
 | 
			
		||||
 | 
			
		||||
#ifdef _IN_LIBGTOP
 | 
			
		||||
#include <config.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * All declarations are enclosed in BEGIN_LIBGTOP_DECLS and
 | 
			
		||||
 * END_LIBGTOP_DECLS so that C++ compilers don't mangle their names.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
   
 | 
			
		||||
#undef BEGIN_LIBGTOP_DECLS
 | 
			
		||||
#undef END_LIBGTOP_DECLS
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
# define BEGIN_LIBGTOP_DECLS extern "C" {
 | 
			
		||||
# define END_LIBGTOP_DECLS }
 | 
			
		||||
#else
 | 
			
		||||
# define BEGIN_LIBGTOP_DECLS /* empty */
 | 
			
		||||
# define END_LIBGTOP_DECLS /* empty */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef _IN_LIBGTOP
 | 
			
		||||
 | 
			
		||||
/* Provide macros to feature the GCC function attribute.
 | 
			
		||||
 */
 | 
			
		||||
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
 | 
			
		||||
#define G_GNUC_NORETURN				\
 | 
			
		||||
  __attribute__((noreturn))
 | 
			
		||||
#define G_GNUC_CONST				\
 | 
			
		||||
  __attribute__((const))
 | 
			
		||||
#define G_GNUC_UNUSED				\
 | 
			
		||||
  __attribute__((unused))
 | 
			
		||||
#else	/* !__GNUC__ */
 | 
			
		||||
#define G_GNUC_NORETURN
 | 
			
		||||
#define G_GNUC_CONST
 | 
			
		||||
#define	G_GNUC_UNUSED
 | 
			
		||||
#endif	/* !__GNUC__ */
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef NEED_GNOMESUPPORT_H
 | 
			
		||||
#include <gnomesupport.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef WITHOUT_GUILE
 | 
			
		||||
#undef GLIBTOP_GUILE
 | 
			
		||||
#undef GLIBTOP_GUILE_NAMES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_GUILE
 | 
			
		||||
#include <guile/gh.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef _IN_LIBGTOP
 | 
			
		||||
#if (defined HAVE_LIBINTL_H) || (defined HAVE_GETTEXT)
 | 
			
		||||
#include <libintl.h>
 | 
			
		||||
#else
 | 
			
		||||
#include <libgettext.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
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#ifndef _
 | 
			
		||||
#define _(String) dgettext (PACKAGE, String)
 | 
			
		||||
#define N_(String) (String)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef HAVE_STRERROR
 | 
			
		||||
char *strerror (int errno);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* _IN_LIBGTOP */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,161 +0,0 @@
 | 
			
		||||
/* -*-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>
 | 
			
		||||
#include <glibtop/error.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
 | 
			
		||||
 | 
			
		||||
@@ -1,69 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* 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_INODEDB_H__
 | 
			
		||||
#define __GLIBTOP_INODEDB_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <gdbm.h>
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_INODEDB_SYSTEM		1
 | 
			
		||||
#define GLIBTOP_INODEDB_USER		2
 | 
			
		||||
#define GLIBTOP_INODEDB_CACHE		4
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_INODEDB_ALL		7
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_inodedb		glibtop_inodedb;
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_inodedb_key	glibtop_inodedb_key;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_inodedb_key
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t device, inode;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_inodedb
 | 
			
		||||
{
 | 
			
		||||
    GDBM_FILE system_dbf, user_dbf;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_inodedb_open(p1,p2)	glibtop_inodedb_open_s(glibtop_global_server, p1, p2)
 | 
			
		||||
#define glibtop_inodedb_lookup(p1,p2,p3) glibtop_inodedb_lookup_s(glibtop_global_server, p1, p2, p3)
 | 
			
		||||
#define glibtop_inodedb_close(p1)	glibtop_inodedb_close_s(glibtop_global_server)
 | 
			
		||||
 | 
			
		||||
glibtop_inodedb *
 | 
			
		||||
glibtop_inodedb_open_s (glibtop *server, unsigned databases, unsigned long cache_size);
 | 
			
		||||
 | 
			
		||||
const char *
 | 
			
		||||
glibtop_inodedb_lookup_s (glibtop *server,
 | 
			
		||||
			  glibtop_inodedb *inodedb,
 | 
			
		||||
			  u_int64_t device, u_int64_t inode);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,44 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_LIMITS_H__
 | 
			
		||||
#define __GLIBTOP_LIMITS_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
/* Nobody should really be using more than 64 processors. */
 | 
			
		||||
#define GLIBTOP_NCPU		64
 | 
			
		||||
 | 
			
		||||
/* Maximum number of process groups in glibtop_proc_uid. */
 | 
			
		||||
#define GLIBTOP_MAX_GROUPS	32
 | 
			
		||||
 | 
			
		||||
/* Maximum length of a mountpoint/device name in glibtop_mountlist. */
 | 
			
		||||
#define GLIBTOP_MOUNTENTRY_LEN	79
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,83 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_LOADAVG_H__
 | 
			
		||||
#define __GLIBTOP_LOADAVG_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    double loadavg [3];		/* GLIBTOP_LOADAVG_LOADAVG	*/
 | 
			
		||||
    u_int64_t nr_running,	/* GLIBTOP_LOADAVG_NR_RUNNING	*/
 | 
			
		||||
	nr_tasks,		/* GLIBTOP_LOADAVG_NR_TASKS	*/
 | 
			
		||||
	last_pid;		/* GLIBTOP_LOADAVG_LAST_PID	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_loadavg(loadavg)	glibtop_get_loadavg_l(glibtop_global_server, loadavg)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_loadavg [];
 | 
			
		||||
extern const unsigned glibtop_types_loadavg [];
 | 
			
		||||
extern const char *glibtop_labels_loadavg [];
 | 
			
		||||
extern const char *glibtop_descriptions_loadavg [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,91 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_MEM_H__
 | 
			
		||||
#define __GLIBTOP_MEM_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	total,		/* GLIBTOP_MEM_TOTAL	*/
 | 
			
		||||
	used,		/* GLIBTOP_MEM_USED	*/
 | 
			
		||||
	free,		/* GLIBTOP_MEM_FREE	*/
 | 
			
		||||
	shared,		/* GLIBTOP_MEM_SHARED	*/
 | 
			
		||||
	buffer,		/* GLIBTOP_MEM_BUFFER	*/
 | 
			
		||||
	cached,		/* GLIBTOP_MEM_CACHED	*/
 | 
			
		||||
	user,		/* GLIBTOP_MEM_USER	*/
 | 
			
		||||
	locked;		/* GLIBTOP_MEM_LOCKED	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_mem(mem)	glibtop_get_mem_l(glibtop_global_server, mem)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_mem [];
 | 
			
		||||
extern const unsigned glibtop_types_mem [];
 | 
			
		||||
extern const char *glibtop_labels_mem [];
 | 
			
		||||
extern const char *glibtop_descriptions_mem [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,83 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_MOUNTLIST_H__
 | 
			
		||||
#define __GLIBTOP_MOUNTLIST_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t dev;
 | 
			
		||||
    char devname [GLIBTOP_MOUNTENTRY_LEN+1];
 | 
			
		||||
    char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
 | 
			
		||||
    char type [GLIBTOP_MOUNTENTRY_LEN+1];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_mountlist
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	number,			/* GLIBTOP_MOUNTLIST_NUMBER	*/
 | 
			
		||||
	total,			/* GLIBTOP_MOUNTLIST_TOTAL	*/
 | 
			
		||||
	size;			/* GLIBTOP_MOUNTLIST_SIZE	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_mountlist(mountlist,all_fs)	glibtop_get_mountlist_l(glibtop_global_server, mountlist, 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);
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_mountlist [];
 | 
			
		||||
extern const unsigned glibtop_types_mountlist [];
 | 
			
		||||
extern const char *glibtop_labels_mountlist [];
 | 
			
		||||
extern const char *glibtop_descriptions_mountlist [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,90 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_MSG_LIMITS_H__
 | 
			
		||||
#define __GLIBTOP_MSG_LIMITS_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	msgpool,	/* GLIBTOP_IPC_MSGPOOL	*/
 | 
			
		||||
	msgmap,		/* GLIBTOP_IPC_MSGMAP	*/
 | 
			
		||||
	msgmax,		/* GLIBTOP_IPC_MSGMAX	*/
 | 
			
		||||
	msgmnb,		/* GLIBTOP_IPC_MSGMNB	*/
 | 
			
		||||
	msgmni,		/* GLIBTOP_IPC_MSGMNI	*/
 | 
			
		||||
	msgssz,		/* GLIBTOP_IPC_MSGSSZ	*/
 | 
			
		||||
	msgtql;		/* GLIBTOP_IPC_MSGTQL	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_msg_limits(msg)	glibtop_get_msg_limits_l(glibtop_global_server, msg)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_msg_limits [];
 | 
			
		||||
extern const unsigned glibtop_types_msg_limits [];
 | 
			
		||||
extern const char *glibtop_labels_msg_limits [];
 | 
			
		||||
extern const char *glibtop_descriptions_msg_limits [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -1,122 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_NETLOAD_H__
 | 
			
		||||
#define __GLIBTOP_NETLOAD_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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_MAX_NETLOAD		14
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_netload
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	if_flags,		/* GLIBTOP_NETLOAD_IF_FLAGS	*/
 | 
			
		||||
	mtu,			/* GLIBTOP_NETLOAD_MTU		*/
 | 
			
		||||
	subnet,			/* GLIBTOP_NETLOAD_SUBNET	*/
 | 
			
		||||
	address,		/* GLIBTOP_NETLOAD_ADDRESS	*/
 | 
			
		||||
	packets_in,		/* GLIBTOP_NETLOAD_PACKETS_IN	*/
 | 
			
		||||
	packets_out,		/* GLIBTOP_NETLOAD_PACKETS_OUT	*/
 | 
			
		||||
	packets_total,		/* GLIBTOP_NETLOAD_PACKETS_TOTAL*/
 | 
			
		||||
	bytes_in,		/* GLIBTOP_NETLOAD_BYTES_IN	*/
 | 
			
		||||
	bytes_out,		/* GLIBTOP_NETLOAD_BYTES_OUT	*/
 | 
			
		||||
	bytes_total,		/* GLIBTOP_NETLOAD_BYTES_TOTAL	*/
 | 
			
		||||
	errors_in,		/* GLIBTOP_NETLOAD_ERRORS_IN	*/
 | 
			
		||||
	errors_out,		/* GLIBTOP_NETLOAD_ERRORS_OUT	*/
 | 
			
		||||
	errors_total,		/* GLIBTOP_NETLOAD_ERRORS_TOTAL	*/
 | 
			
		||||
	collisions;		/* GLIBTOP_NETLOAD_COLLISIONS	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_netload(netload,interface)	glibtop_get_netload_l(glibtop_global_server, netload, 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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_netload [];
 | 
			
		||||
extern const unsigned glibtop_types_netload [];
 | 
			
		||||
extern const char *glibtop_labels_netload [];
 | 
			
		||||
extern const char *glibtop_descriptions_netload [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,75 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* 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>
 | 
			
		||||
#include <glibtop/read.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,53 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* 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>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,87 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PPP_H__
 | 
			
		||||
#define __GLIBTOP_PPP_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	state,			/* GLIBTOP_PPP_STATE		*/
 | 
			
		||||
	bytes_in,		/* GLIBTOP_PPP_BYTES_IN		*/
 | 
			
		||||
	bytes_out;		/* GLIBTOP_PPP_BYTES_OUT	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_ppp(ppp,device)	glibtop_get_ppp_l(glibtop_global_server, ppp, 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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_ppp [];
 | 
			
		||||
extern const unsigned glibtop_types_ppp [];
 | 
			
		||||
extern const char *glibtop_labels_ppp [];
 | 
			
		||||
extern const char *glibtop_descriptions_ppp [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,85 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROC_ARGS_H__
 | 
			
		||||
#define __GLIBTOP_PROC_ARGS_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	size;			/* GLIBTOP_PROC_ARGS_SIZE	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_args(proc_args,pid,max_len) glibtop_get_proc_args_l(glibtop_global_server, proc_args, pid, max_len)
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_PROC_ARGS
 | 
			
		||||
#define glibtop_get_proc_args_r		glibtop_get_proc_args_p
 | 
			
		||||
#else
 | 
			
		||||
#define glibtop_get_proc_args_r		glibtop_get_proc_args_s
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
char *
 | 
			
		||||
glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf,
 | 
			
		||||
			 pid_t pid, unsigned max_len);
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_PROC_ARGS
 | 
			
		||||
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
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_args [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_args [];
 | 
			
		||||
extern const char *glibtop_labels_proc_args [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_args [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,111 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROCKERNEL_H__
 | 
			
		||||
#define __GLIBTOP_PROCKERNEL_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
 | 
			
		||||
/* Constants for the `k_flags' field. */
 | 
			
		||||
#define GLIBTOP_KFLAGS_STARTING		1	/* being created */
 | 
			
		||||
#define GLIBTOP_KFLAGS_EXITING		2	/* getting shut down */
 | 
			
		||||
#define GLIBTOP_KFLAGS_PTRACED		4	/* set if ptrace (0) has
 | 
			
		||||
						   been called */
 | 
			
		||||
#define GLIBTOP_KFLAGS_TRACESYS		8	/* tracing system calls */
 | 
			
		||||
#define GLIBTOP_KFLAGS_FORKNOEXEC	16	/* forked but didn't exec */
 | 
			
		||||
#define GLIBTOP_KFLAGS_SUPERPRIV	32	/* used super-user privileges */
 | 
			
		||||
#define GLIBTOP_KFLAGS_DUMPEDCORE	64	/* dumped core */
 | 
			
		||||
#define GLIBTOP_KFLAGS_SIGNALED		128	/* killed by a signal */
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_proc_kernel	glibtop_proc_kernel;
 | 
			
		||||
 | 
			
		||||
/* Kernel stuff */
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_kernel
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    u_int64_t k_flags,	/* kernel flags for the process */
 | 
			
		||||
	min_flt,	/* number of minor page faults since
 | 
			
		||||
			 * process start */
 | 
			
		||||
	maj_flt,	/* number of major page faults since
 | 
			
		||||
			 * process start */
 | 
			
		||||
	cmin_flt,	/* cumulative min_flt of process and
 | 
			
		||||
			 * child processes */
 | 
			
		||||
	cmaj_flt,	/* cumulative maj_flt of process and
 | 
			
		||||
			 * child processes */
 | 
			
		||||
	kstk_esp,	/* kernel stack pointer */
 | 
			
		||||
	kstk_eip,	/* kernel stack pointer */
 | 
			
		||||
	nwchan;		/* address of kernel wait channel
 | 
			
		||||
			 * proc is sleeping in */
 | 
			
		||||
    char wchan [40];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_kernel(p1, p2)	glibtop_get_proc_kernel_l(glibtop_global_server, p1, p2)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_kernel [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_kernel [];
 | 
			
		||||
extern const char *glibtop_labels_proc_kernel [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_kernel [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,106 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROCLIST_H__
 | 
			
		||||
#define __GLIBTOP_PROCLIST_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	number,			/* GLIBTOP_PROCLIST_NUMBER	*/
 | 
			
		||||
	total,			/* GLIBTOP_PROCLIST_TOTAL	*/
 | 
			
		||||
	size;			/* GLIBTOP_PROCLIST_SIZE	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proclist(proclist,which,arg) glibtop_get_proclist_l(glibtop_global_server, proclist, which, 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
 | 
			
		||||
 | 
			
		||||
unsigned *
 | 
			
		||||
glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
 | 
			
		||||
			int64_t which, int64_t arg);
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_PROCLIST
 | 
			
		||||
void glibtop_init_proclist_p (glibtop *server);
 | 
			
		||||
 | 
			
		||||
unsigned *
 | 
			
		||||
glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
 | 
			
		||||
			int64_t which, int64_t arg);
 | 
			
		||||
#else
 | 
			
		||||
void glibtop_init_proclist_s (glibtop *server);
 | 
			
		||||
 | 
			
		||||
unsigned *
 | 
			
		||||
glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf,
 | 
			
		||||
			int64_t which, int64_t arg);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proclist [];
 | 
			
		||||
extern const unsigned glibtop_types_proclist [];
 | 
			
		||||
extern const char *glibtop_labels_proclist [];
 | 
			
		||||
extern const char *glibtop_descriptions_proclist [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,112 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROC_MAP_H__
 | 
			
		||||
#define __GLIBTOP_PROC_MAP_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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		1
 | 
			
		||||
#define GLIBTOP_MAP_ENTRY_END		2
 | 
			
		||||
#define GLIBTOP_MAP_ENTRY_OFFSET	3
 | 
			
		||||
#define GLIBTOP_MAP_ENTRY_PERM		4
 | 
			
		||||
#define GLIBTOP_MAP_ENTRY_INODE		5
 | 
			
		||||
#define GLIBTOP_MAP_ENTRY_DEVICE	6
 | 
			
		||||
#define GLIBTOP_MAP_ENTRY_FILENAME	7
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_MAP_ENTRY		8
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags, start, end, offset, perm, inode, device;
 | 
			
		||||
    char filename [GLIBTOP_MAP_FILENAME_LEN+1];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_map
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	number,			/* GLIBTOP_PROC_MAP_NUMBER	*/
 | 
			
		||||
	total,			/* GLIBTOP_PROC_MAP_TOTAL	*/
 | 
			
		||||
	size;			/* GLIBTOP_PROC_MAP_SIZE	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_map(proc_map,pid) glibtop_get_proc_map_l(glibtop_global_server, proc_map, 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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_map [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_map [];
 | 
			
		||||
extern const char *glibtop_labels_proc_map [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_map [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,91 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROCMEM_H__
 | 
			
		||||
#define __GLIBTOP_PROCMEM_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	size,		/* total # of pages of memory */
 | 
			
		||||
	vsize,		/* number of pages of virtual memory ... */
 | 
			
		||||
	resident,	/* number of resident set
 | 
			
		||||
			 * (non-swapped) pages (4k) */
 | 
			
		||||
	share,		/* number of pages of shared (mmap'd) memory */
 | 
			
		||||
	rss,		/* resident set size */
 | 
			
		||||
	rss_rlim;	/* current limit (in bytes) of the rss
 | 
			
		||||
			 * of the process; usually 2,147,483,647 */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_mem(p1, p2)	glibtop_get_proc_mem_l(glibtop_global_server, p1, p2)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_mem [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_mem [];
 | 
			
		||||
extern const char *glibtop_labels_proc_mem [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_mem [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,111 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROCSEGMENT_H__
 | 
			
		||||
#define __GLIBTOP_PROCSEGMENT_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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_DATA		7
 | 
			
		||||
#define GLIBTOP_PROC_SEGMENT_END_DATA		8
 | 
			
		||||
#define GLIBTOP_PROC_SEGMENT_START_BRK		9
 | 
			
		||||
#define GLIBTOP_PROC_SEGMENT_END_BRK		10
 | 
			
		||||
#define GLIBTOP_PROC_SEGMENT_START_STACK	11
 | 
			
		||||
#define GLIBTOP_PROC_SEGMENT_START_MMAP		12
 | 
			
		||||
#define GLIBTOP_PROC_SEGMENT_ARG_START		13
 | 
			
		||||
#define GLIBTOP_PROC_SEGMENT_ARG_END		14
 | 
			
		||||
#define GLIBTOP_PROC_SEGMENT_ENV_START		15
 | 
			
		||||
#define GLIBTOP_PROC_SEGMENT_ENV_END		16
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_PROC_SEGMENT		17
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_proc_segment	glibtop_proc_segment;
 | 
			
		||||
 | 
			
		||||
/* Segment stuff */
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_segment
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	text_rss,	/* text resident set size */
 | 
			
		||||
	shlib_rss,	/* shared-lib resident set size */
 | 
			
		||||
	data_rss,	/* data resident set size */
 | 
			
		||||
	stack_rss,	/* stack resident set size */
 | 
			
		||||
	dirty_size,	/* size of dirty pages */
 | 
			
		||||
	start_code,	/* address of beginning of code segment */
 | 
			
		||||
	end_code,	/* address of end of code segment */
 | 
			
		||||
	start_data,	/* address of beginning of data segment */
 | 
			
		||||
	end_data,	/* address of end of data segment */
 | 
			
		||||
	start_brk,
 | 
			
		||||
	end_brk,
 | 
			
		||||
	start_stack,	/* address of the bottom of stack segment */
 | 
			
		||||
	start_mmap,
 | 
			
		||||
	arg_start,
 | 
			
		||||
	arg_end,
 | 
			
		||||
	env_start,
 | 
			
		||||
	env_end;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_segment(p1, p2)	glibtop_get_proc_segment_l(glibtop_global_server, p1, p2)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_segment [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_segment [];
 | 
			
		||||
extern const char *glibtop_labels_proc_segment [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_segment [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,85 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROCSIGNAL_H__
 | 
			
		||||
#define __GLIBTOP_PROCSIGNAL_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	signal [2],		/* mask of pending signals */
 | 
			
		||||
	blocked [2],		/* mask of blocked signals */
 | 
			
		||||
	sigignore [2],		/* mask of ignored signals */
 | 
			
		||||
	sigcatch [2];		/* mask of caught  signals */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_signal(p1, p2)	glibtop_get_proc_signal_l(glibtop_global_server, p1, p2)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_signal [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_signal [];
 | 
			
		||||
extern const char *glibtop_labels_proc_signal [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_signal [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,111 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROCSTATE_H__
 | 
			
		||||
#define __GLIBTOP_PROCSTATE_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
 | 
			
		||||
/* Constants for the `state' field. */
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_proc_state	glibtop_proc_state;
 | 
			
		||||
 | 
			
		||||
/* Name and status */
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_state
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    char cmd[40];		/* basename of executable file in 
 | 
			
		||||
				 * call to exec(2) */
 | 
			
		||||
    unsigned state;		/* process 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,			/* effective UID of process */
 | 
			
		||||
	gid,			/* effective GID of process */
 | 
			
		||||
	ruid,			/* real UID of process */
 | 
			
		||||
	rgid;			/* real GID of process */
 | 
			
		||||
    /* SMP values. */
 | 
			
		||||
    int has_cpu,
 | 
			
		||||
	processor,
 | 
			
		||||
	last_processor;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_state(p1, p2)	glibtop_get_proc_state_l(glibtop_global_server, p1, p2)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
     
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_state [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_state [];
 | 
			
		||||
extern const char *glibtop_labels_proc_state [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_state [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,108 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROCTIME_H__
 | 
			
		||||
#define __GLIBTOP_PROCTIME_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/cpu.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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_PROC_TIME_XCPU_FLAGS	11
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_PROC_TIME		12
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_proc_time	glibtop_proc_time;
 | 
			
		||||
 | 
			
		||||
/* Time section */
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_time
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	start_time,	/* start time of process -- 
 | 
			
		||||
			 * seconds since 1-1-70 */
 | 
			
		||||
	rtime,		/* real time accumulated by process */
 | 
			
		||||
	utime,		/* user-mode CPU time accumulated by process */
 | 
			
		||||
	stime,		/* kernel-mode CPU time accumulated by process */
 | 
			
		||||
	cutime,		/* cumulative utime of process and 
 | 
			
		||||
			 * reaped children */
 | 
			
		||||
	cstime,		/* cumulative stime of process and 
 | 
			
		||||
			 * reaped children */
 | 
			
		||||
	timeout,	/* The time (in jiffies) of the process's
 | 
			
		||||
			 * next timeout */
 | 
			
		||||
	it_real_value,	/* The time (in jiffies) before the
 | 
			
		||||
			 * next SIGALRM is sent to the process
 | 
			
		||||
			 * due to an interval timer. */
 | 
			
		||||
	frequency,	/* Tick frequency. */
 | 
			
		||||
	xcpu_utime [GLIBTOP_NCPU],	/* utime and stime for all CPUs on */
 | 
			
		||||
	xcpu_stime [GLIBTOP_NCPU],	/* SMP machines. */
 | 
			
		||||
	xcpu_flags;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_time(p1, p2)	glibtop_get_proc_time_l(glibtop_global_server, p1, p2)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_time [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_time [];
 | 
			
		||||
extern const char *glibtop_labels_proc_time [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_time [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,113 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROCUID_H__
 | 
			
		||||
#define __GLIBTOP_PROCUID_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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;
 | 
			
		||||
 | 
			
		||||
/* User, Group, Terminal and session */
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_uid
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    int uid,		/* user id */
 | 
			
		||||
	euid,		/* effective user id */
 | 
			
		||||
	gid,		/* group id */
 | 
			
		||||
	egid,		/* effective group id */
 | 
			
		||||
	suid,		/* saved user id */
 | 
			
		||||
	sgid,		/* saved group id */
 | 
			
		||||
	fsuid,		/* file system user id */
 | 
			
		||||
	fsgid,		/* file system group id */
 | 
			
		||||
	pid,		/* process id */
 | 
			
		||||
	ppid,		/* pid of parent process */
 | 
			
		||||
	pgrp,		/* process group id */
 | 
			
		||||
	session,	/* session id */
 | 
			
		||||
	tty,		/* full device number of controlling terminal */
 | 
			
		||||
	tpgid,		/* terminal process group id */
 | 
			
		||||
	priority,	/* kernel scheduling priority */
 | 
			
		||||
	nice,		/* standard unix nice level of process */
 | 
			
		||||
	ngroups,	/* number of additional process groups */
 | 
			
		||||
	groups [GLIBTOP_MAX_GROUPS];	/* additional prcess groups */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_uid(p1, p2)	glibtop_get_proc_uid_l(glibtop_global_server, p1, p2)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_uid [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_uid [];
 | 
			
		||||
extern const char *glibtop_labels_proc_uid [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_uid [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,41 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_READ_H__
 | 
			
		||||
#define __GLIBTOP_READ_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,41 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_READ_DATA_H__
 | 
			
		||||
#define __GLIBTOP_READ_DATA_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,95 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_SEM_LIMITS_H__
 | 
			
		||||
#define __GLIBTOP_SEM_LIMITS_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	semmap,		/* GLIBTOP_IPC_SEMMAP	*/
 | 
			
		||||
	semmni,		/* GLIBTOP_IPC_SEMMNI	*/
 | 
			
		||||
	semmns,		/* GLIBTOP_IPC_SEMMNS	*/
 | 
			
		||||
	semmnu,		/* GLIBTOP_IPC_SEMMNU	*/
 | 
			
		||||
	semmsl,		/* GLIBTOP_IPC_SEMMSL	*/
 | 
			
		||||
	semopm,		/* GLIBTOP_IPC_SEMOPM	*/
 | 
			
		||||
	semume,		/* GLIBTOP_IPC_SEMUME	*/
 | 
			
		||||
	semusz,		/* GLIBTOP_IPC_SEMUSZ	*/
 | 
			
		||||
	semvmx,		/* GLIBTOP_IPC_SEMVMX	*/
 | 
			
		||||
	semaem;		/* GLIBTOP_IPC_SEMAEM	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_sem_limits(sem)	glibtop_get_sem_limits_l(glibtop_global_server, sem)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_sem_limits [];
 | 
			
		||||
extern const unsigned glibtop_types_sem_limits [];
 | 
			
		||||
extern const char *glibtop_labels_sem_limits [];
 | 
			
		||||
extern const char *glibtop_descriptions_sem_limits [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,85 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_SHM_LIMITS_H__
 | 
			
		||||
#define __GLIBTOP_SHM_LIMITS_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_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
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	shmmax,		/* GLIBTOP_IPC_SHMMAX	*/
 | 
			
		||||
	shmmin,		/* GLIBTOP_IPC_SHMMIN	*/
 | 
			
		||||
	shmmni,		/* GLIBTOP_IPC_SHMMNI	*/
 | 
			
		||||
	shmseg,		/* GLIBTOP_IPC_SHMSEG	*/
 | 
			
		||||
	shmall;		/* GLIBTOP_IPC_SHMALL	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_shm_limits(shm)	glibtop_get_shm_limits_l(glibtop_global_server, shm)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_shm_limits [];
 | 
			
		||||
extern const unsigned glibtop_types_shm_limits [];
 | 
			
		||||
extern const char *glibtop_labels_shm_limits [];
 | 
			
		||||
extern const char *glibtop_descriptions_shm_limits [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,49 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_SIGNAL_H__
 | 
			
		||||
#define __GLIBTOP_SIGNAL_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_SYS_SIGNAL_H
 | 
			
		||||
#include <sys/signal.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_signame	glibtop_signame;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_signame
 | 
			
		||||
{
 | 
			
		||||
    const int number;
 | 
			
		||||
    const char *name, *label;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern const glibtop_signame glibtop_sys_siglist [];
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,85 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_SWAP_H__
 | 
			
		||||
#define __GLIBTOP_SWAP_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_SWAP_TOTAL	0
 | 
			
		||||
#define GLIBTOP_SWAP_USED	1
 | 
			
		||||
#define GLIBTOP_SWAP_FREE	2
 | 
			
		||||
#define GLIBTOP_SWAP_PAGEIN	3
 | 
			
		||||
#define GLIBTOP_SWAP_PAGEOUT	4
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_SWAP	5
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_swap	glibtop_swap;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_swap
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
	total,		/* GLIBTOP_SWAP_TOTAL	*/
 | 
			
		||||
	used,		/* GLIBTOP_SWAP_USED	*/
 | 
			
		||||
	free,		/* GLIBTOP_SWAP_FREE	*/
 | 
			
		||||
	pagein,		/* GLIBTOP_SWAP_PAGEIN	*/
 | 
			
		||||
	pageout;	/* GLIBTOP_SWAP_PAGEOUT	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_swap(swap)	glibtop_get_swap_l(glibtop_global_server, swap)
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_SWAP
 | 
			
		||||
#define glibtop_get_swap_r		glibtop_get_swap_p
 | 
			
		||||
#else
 | 
			
		||||
#define glibtop_get_swap_r		glibtop_get_swap_s
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void glibtop_get_swap_l (glibtop *server, glibtop_swap *buf);
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_SWAP
 | 
			
		||||
void glibtop_init_swap_p (glibtop *server);
 | 
			
		||||
void glibtop_get_swap_p (glibtop *server, glibtop_swap *buf);
 | 
			
		||||
#else
 | 
			
		||||
void glibtop_init_swap_s (glibtop *server);
 | 
			
		||||
void glibtop_get_swap_s (glibtop *server, glibtop_swap *buf);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_swap [];
 | 
			
		||||
extern const unsigned glibtop_types_swap [];
 | 
			
		||||
extern const char *glibtop_labels_swap [];
 | 
			
		||||
extern const char *glibtop_descriptions_swap [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,112 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_SYSDEPS_H__
 | 
			
		||||
#define __GLIBTOP_SYSDEPS_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_SYSDEPS_CPU		0
 | 
			
		||||
#define GLIBTOP_SYSDEPS_MEM		1
 | 
			
		||||
#define GLIBTOP_SYSDEPS_SWAP		2
 | 
			
		||||
#define GLIBTOP_SYSDEPS_UPTIME		3
 | 
			
		||||
#define GLIBTOP_SYSDEPS_LOADAVG		4
 | 
			
		||||
#define GLIBTOP_SYSDEPS_SHM_LIMITS	5
 | 
			
		||||
#define GLIBTOP_SYSDEPS_MSG_LIMITS	6
 | 
			
		||||
#define GLIBTOP_SYSDEPS_SEM_LIMITS	7
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROCLIST	8
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_STATE	9
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_UID	10
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_MEM	11
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_TIME	12
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_SIGNAL	13
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_KERNEL	14
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_SEGMENT	15
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_ARGS	16
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_MAP	17
 | 
			
		||||
#define GLIBTOP_SYSDEPS_MOUNTLIST	18
 | 
			
		||||
#define GLIBTOP_SYSDEPS_FSUSAGE		19
 | 
			
		||||
#define GLIBTOP_SYSDEPS_NETLOAD		20
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PPP		21
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_SYSDEPS		24
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_SYSDEPS_ALL		((1 << GLIBTOP_MAX_SYSDEPS) - 1)
 | 
			
		||||
 | 
			
		||||
typedef void (*glibtop_init_func_t) (glibtop *);
 | 
			
		||||
extern glibtop_init_func_t _glibtop_init_hook_s [];
 | 
			
		||||
extern glibtop_init_func_t _glibtop_init_hook_p [];
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_sysdeps	glibtop_sysdeps;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_sysdeps
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags,
 | 
			
		||||
	features,		/* server features	*/
 | 
			
		||||
	pointer_size,		/* sizeof(void*)*8	*/
 | 
			
		||||
	cpu,			/* glibtop_cpu		*/
 | 
			
		||||
	mem,			/* glibtop_mem		*/
 | 
			
		||||
	swap,			/* glibtop_swap		*/
 | 
			
		||||
	uptime,			/* glibtop_uptime	*/
 | 
			
		||||
	loadavg,		/* glibtop_loadavg	*/
 | 
			
		||||
	shm_limits,		/* glibtop_shm_limits	*/
 | 
			
		||||
	msg_limits,		/* glibtop_msg_limits	*/
 | 
			
		||||
	sem_limits,		/* glibtop_sem_limits	*/
 | 
			
		||||
	proclist,		/* glibtop_proclist	*/
 | 
			
		||||
	proc_state,		/* glibtop_proc_state	*/
 | 
			
		||||
	proc_uid,		/* glibtop_proc_uid	*/
 | 
			
		||||
	proc_mem,		/* glibtop_proc_mem	*/
 | 
			
		||||
	proc_time,		/* glibtop_proc_time	*/
 | 
			
		||||
	proc_signal,		/* glibtop_proc_signal	*/
 | 
			
		||||
	proc_kernel,		/* glibtop_proc_kernel	*/
 | 
			
		||||
	proc_segment,		/* glibtop_proc_segment	*/
 | 
			
		||||
	proc_args,		/* glibtop_proc_args	*/
 | 
			
		||||
	proc_map,		/* glibtop_proc_map	*/
 | 
			
		||||
	mountlist,		/* glibtop_mountlist	*/
 | 
			
		||||
	fsusage,		/* glibtop_fsusage	*/
 | 
			
		||||
	netload,		/* glibtop_netload	*/
 | 
			
		||||
	ppp;			/* glibtop_ppp		*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_sysdeps(sysdeps)	glibtop_get_sysdeps_r(glibtop_global_server,sysdeps)
 | 
			
		||||
 | 
			
		||||
void glibtop_get_sysdeps_r (glibtop *server, glibtop_sysdeps *buf);
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_sysdeps [];
 | 
			
		||||
extern const unsigned glibtop_types_sysdeps [];
 | 
			
		||||
extern const char *glibtop_labels_sysdeps [];
 | 
			
		||||
extern const char *glibtop_descriptions_sysdeps [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,66 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_SYSINFO_H__
 | 
			
		||||
#define __GLIBTOP_SYSINFO_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/cpu.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
#include <glib.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_SYSINFO_CPUINFO		0
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_SYSINFO		1
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_sysinfo	glibtop_sysinfo;
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_entry	glibtop_entry;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_entry
 | 
			
		||||
{
 | 
			
		||||
    GPtrArray	*labels;
 | 
			
		||||
    GHashTable	*values;
 | 
			
		||||
    GHashTable	*descriptions;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_sysinfo
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t		flags, ncpu;
 | 
			
		||||
    glibtop_entry	cpuinfo [GLIBTOP_NCPU];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_sysinfo()	glibtop_get_sysinfo_s(glibtop_global_server)
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_sysinfo_r	glibtop_get_sysinfo_s
 | 
			
		||||
 | 
			
		||||
glibtop_sysinfo *glibtop_get_sysinfo_s (glibtop *server);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,41 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_TYPES_H__
 | 
			
		||||
#define __GLIBTOP_TYPES_H__
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_TYPE_LONG	1
 | 
			
		||||
#define GLIBTOP_TYPE_ULONG	2
 | 
			
		||||
#define GLIBTOP_TYPE_DOUBLE	3
 | 
			
		||||
#define GLIBTOP_TYPE_INT	4
 | 
			
		||||
#define GLIBTOP_TYPE_UNSIGNED	5
 | 
			
		||||
#define GLIBTOP_TYPE_CHAR	6
 | 
			
		||||
#define GLIBTOP_TYPE_STRING	7
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,87 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_UNION_H__
 | 
			
		||||
#define __GLIBTOP_UNION_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop/cpu.h>
 | 
			
		||||
#include <glibtop/mem.h>
 | 
			
		||||
#include <glibtop/swap.h>
 | 
			
		||||
#include <glibtop/uptime.h>
 | 
			
		||||
#include <glibtop/loadavg.h>
 | 
			
		||||
#include <glibtop/shm_limits.h>
 | 
			
		||||
#include <glibtop/msg_limits.h>
 | 
			
		||||
#include <glibtop/sem_limits.h>
 | 
			
		||||
#include <glibtop/proclist.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/procstate.h>
 | 
			
		||||
#include <glibtop/procuid.h>
 | 
			
		||||
#include <glibtop/procmem.h>
 | 
			
		||||
#include <glibtop/proctime.h>
 | 
			
		||||
#include <glibtop/procsignal.h>
 | 
			
		||||
#include <glibtop/prockernel.h>
 | 
			
		||||
#include <glibtop/procsegment.h>
 | 
			
		||||
#include <glibtop/procargs.h>
 | 
			
		||||
#include <glibtop/procmap.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/mountlist.h>
 | 
			
		||||
#include <glibtop/fsusage.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/netload.h>
 | 
			
		||||
#include <glibtop/ppp.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
typedef union _glibtop_union	glibtop_union;
 | 
			
		||||
 | 
			
		||||
union _glibtop_union
 | 
			
		||||
{
 | 
			
		||||
    glibtop_cpu			cpu;
 | 
			
		||||
    glibtop_mem			mem;
 | 
			
		||||
    glibtop_swap		swap;
 | 
			
		||||
    glibtop_uptime		uptime;
 | 
			
		||||
    glibtop_loadavg		loadavg;
 | 
			
		||||
    glibtop_shm_limits		shm_limits;
 | 
			
		||||
    glibtop_msg_limits		msg_limits;
 | 
			
		||||
    glibtop_sem_limits		sem_limits;
 | 
			
		||||
    glibtop_proclist		proclist;
 | 
			
		||||
    glibtop_proc_state		proc_state;
 | 
			
		||||
    glibtop_proc_uid		proc_uid;
 | 
			
		||||
    glibtop_proc_mem		proc_mem;
 | 
			
		||||
    glibtop_proc_time		proc_time;
 | 
			
		||||
    glibtop_proc_signal		proc_signal;
 | 
			
		||||
    glibtop_proc_kernel		proc_kernel;
 | 
			
		||||
    glibtop_proc_segment	proc_segment;
 | 
			
		||||
    glibtop_proc_args		proc_args;
 | 
			
		||||
    glibtop_proc_map		proc_map;
 | 
			
		||||
    glibtop_mountlist		mountlist;
 | 
			
		||||
    glibtop_fsusage		fsusage;
 | 
			
		||||
    glibtop_netload		netload;
 | 
			
		||||
    glibtop_ppp			ppp;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,81 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_UPTIME_H__
 | 
			
		||||
#define __GLIBTOP_UPTIME_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_UPTIME_UPTIME		0
 | 
			
		||||
#define GLIBTOP_UPTIME_IDLETIME		1
 | 
			
		||||
#define GLIBTOP_UPTIME_BOOT_TIME	2
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_UPTIME		3
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_uptime	glibtop_uptime;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_uptime
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    double uptime,		/* GLIBTOP_UPTIME_UPTIME	*/
 | 
			
		||||
	idletime;		/* GLIBTOP_UPTIME_IDLETIME	*/
 | 
			
		||||
    u_int64_t boot_time;	/* GLIBTOP_UPTIME_BOOT_TIME	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_uptime(uptime)	glibtop_get_uptime_l(glibtop_global_server, uptime)
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_UPTIME
 | 
			
		||||
#define glibtop_get_uptime_r		glibtop_get_uptime_p
 | 
			
		||||
#else
 | 
			
		||||
#define glibtop_get_uptime_r		glibtop_get_uptime_s
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void glibtop_get_uptime_l (glibtop *server, glibtop_uptime *buf);
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_UPTIME
 | 
			
		||||
void glibtop_init_uptime_p (glibtop *server);
 | 
			
		||||
void glibtop_get_uptime_p (glibtop *server, glibtop_uptime *buf);
 | 
			
		||||
#else
 | 
			
		||||
void glibtop_init_uptime_s (glibtop *server);
 | 
			
		||||
void glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_uptime [];
 | 
			
		||||
extern const unsigned glibtop_types_uptime [];
 | 
			
		||||
extern const char *glibtop_labels_uptime [];
 | 
			
		||||
extern const char *glibtop_descriptions_uptime [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,44 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* 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_VERSION_H__
 | 
			
		||||
#define __GLIBTOP_VERSION_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
#include <glibtop/command.h>
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_VERSION_STRING "Libgtop %s server version %s (%u,%u,%u,%u)."
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#if _IN_LIBGTOP
 | 
			
		||||
 | 
			
		||||
void glibtop_send_version (glibtop *server, int fd);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,41 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_WRITE_H__
 | 
			
		||||
#define __GLIBTOP_WRITE_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#define glibtop_write(p1, p2)	glibtop_write(glibtop_global_server, p1, p2)
 | 
			
		||||
 | 
			
		||||
void glibtop_write_l (glibtop *server, size_t size, void *buf);
 | 
			
		||||
void glibtop_write_s (glibtop *server, size_t size, void *buf);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,48 +0,0 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_XMALLOC_H__
 | 
			
		||||
#define __GLIBTOP_XMALLOC_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#define glibtop_malloc(p1)	glibtop_malloc_r(glibtop_global_server, p1)
 | 
			
		||||
#define glibtop_calloc(p1, p2)	glibtop_calloc_r(glibtop_global_server, p1, p2)
 | 
			
		||||
#define glibtop_realloc(p1, p2)	glibtop_realloc_r(glibtop_global_server, p1, p2)
 | 
			
		||||
#define glibtop_strdup(p1)	glibtop_strdup_r(glibtop_global_server, p1)
 | 
			
		||||
#define glibtop_free(p1)	glibtop_free_r(glibtop_global_server, p1)
 | 
			
		||||
 | 
			
		||||
void *glibtop_malloc_r	(glibtop *server, size_t size);
 | 
			
		||||
void *glibtop_calloc_r	(glibtop *server, size_t nmemb, size_t size);
 | 
			
		||||
void *glibtop_realloc_r	(glibtop *server, void *ptr, size_t size);
 | 
			
		||||
char *glibtop_strdup_r	(glibtop *server, const char *string);
 | 
			
		||||
void glibtop_free_r	(glibtop *server, const void *ptr);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
*.flags
 | 
			
		||||
@@ -1,22 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Makefile for the LibGTop linux sysctl interface.
 | 
			
		||||
#
 | 
			
		||||
# Note! Dependencies are done automagically by 'make dep', which also
 | 
			
		||||
# removes any old dependencies. DON'T put your own dependencies here
 | 
			
		||||
# unless it's something special (ie not a .c file).
 | 
			
		||||
#
 | 
			
		||||
# Note 2! The CFLAGS definition is now in the main makefile...
 | 
			
		||||
 | 
			
		||||
O_TARGET := kernel.o
 | 
			
		||||
ifeq ($(CONFIG_LIBGTOP),y)
 | 
			
		||||
O_OJBS   := main.o libgtop.o
 | 
			
		||||
else
 | 
			
		||||
O_OBJS   := main.o
 | 
			
		||||
endif
 | 
			
		||||
OX_OBJS  := libgtop_syms.o
 | 
			
		||||
 | 
			
		||||
ifeq ($(CONFIG_LIBGTOP),m)
 | 
			
		||||
M_OBJS   := libgtop.o
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
include $(TOPDIR)/Rules.make
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,242 +0,0 @@
 | 
			
		||||
#ifndef _LINUX_LIBGTOP_H
 | 
			
		||||
#define _LINUX_LIBGTOP_H 1
 | 
			
		||||
 | 
			
		||||
#include <linux/tasks.h>
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
    LIBGTOP_VERSION = 1,
 | 
			
		||||
    LIBGTOP_UPDATE_EXPENSIVE,
 | 
			
		||||
    LIBGTOP_STAT = 101,
 | 
			
		||||
    LIBGTOP_MEM,
 | 
			
		||||
    LIBGTOP_SWAP,
 | 
			
		||||
    LIBGTOP_PROCLIST = 201,
 | 
			
		||||
    LIBGTOP_PROC_STATE = 211,
 | 
			
		||||
    LIBGTOP_PROC_KERNEL,
 | 
			
		||||
    LIBGTOP_PROC_SEGMENT,
 | 
			
		||||
    LIBGTOP_PROC_MEM,
 | 
			
		||||
    LIBGTOP_PROC_SIGNAL,
 | 
			
		||||
    LIBGTOP_PROC_ARGS = 251,
 | 
			
		||||
    LIBGTOP_PROC_MAPS,
 | 
			
		||||
    LIBGTOP_NETLOAD = 301
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
    LIBGTOP_PROCLIST_ALL = 0,
 | 
			
		||||
    LIBGTOP_PROCLIST_PID,
 | 
			
		||||
    LIBGTOP_PROCLIST_PGRP,
 | 
			
		||||
    LIBGTOP_PROCLIST_SESSION,
 | 
			
		||||
    LIBGTOP_PROCLIST_TTY,
 | 
			
		||||
    LIBGTOP_PROCLIST_UID,
 | 
			
		||||
    LIBGTOP_PROCLIST_RUID
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_NSIG			4
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_PROCLIST_MASK		15
 | 
			
		||||
#define LIBGTOP_MAX_GROUPS		32
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_EXCLUDE_IDLE		0x1000
 | 
			
		||||
#define LIBGTOP_EXCLUDE_SYSTEM		0x2000
 | 
			
		||||
#define LIBGTOP_EXCLUDE_NOTTY		0x4000
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_TASK_RUNNING		1
 | 
			
		||||
#define LIBGTOP_TASK_INTERRUPTIBLE	2
 | 
			
		||||
#define LIBGTOP_TASK_UNINTERRUPTIBLE	4
 | 
			
		||||
#define LIBGTOP_TASK_ZOMBIE		8
 | 
			
		||||
#define LIBGTOP_TASK_STOPPED		16
 | 
			
		||||
#define LIBGTOP_TASK_SWAPPING		32
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_VM_READ		0x0001	/* currently active flags */
 | 
			
		||||
#define LIBGTOP_VM_WRITE	0x0002
 | 
			
		||||
#define LIBGTOP_VM_EXEC		0x0004
 | 
			
		||||
#define LIBGTOP_VM_SHARED	0x0008
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_VM_MAYREAD	0x0010	/* limits for mprotect() etc */
 | 
			
		||||
#define LIBGTOP_VM_MAYWRITE	0x0020
 | 
			
		||||
#define LIBGTOP_VM_MAYEXEC	0x0040
 | 
			
		||||
#define LIBGTOP_VM_MAYSHARE	0x0080
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_VM_GROWSDOWN	0x0100	/* general info on the segment */
 | 
			
		||||
#define LIBGTOP_VM_GROWSUP	0x0200
 | 
			
		||||
#define LIBGTOP_VM_SHM		0x0400	/* shared memory area, don't swap out */
 | 
			
		||||
#define LIBGTOP_VM_DENYWRITE	0x0800	/* ETXTBSY on write attempts.. */
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_VM_EXECUTABLE	0x1000
 | 
			
		||||
#define LIBGTOP_VM_LOCKED	0x2000
 | 
			
		||||
#define LIBGTOP_VM_IO		0x4000  /* Memory mapped I/O or similar */
 | 
			
		||||
 | 
			
		||||
#define LIBGTOP_MAP_PATH_LEN	(PAGE_SIZE - sizeof (libgtop_proc_maps_header_t))
 | 
			
		||||
 | 
			
		||||
#ifndef min
 | 
			
		||||
#define min(a,b) ((a < b) ? a : b)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
typedef struct libgtop_stat libgtop_stat_t;
 | 
			
		||||
 | 
			
		||||
typedef struct libgtop_cpu libgtop_cpu_t;
 | 
			
		||||
typedef struct libgtop_mem libgtop_mem_t;
 | 
			
		||||
typedef struct libgtop_swap libgtop_swap_t;
 | 
			
		||||
typedef struct libgtop_proclist libgtop_proclist_t;
 | 
			
		||||
 | 
			
		||||
typedef struct libgtop_proc_state libgtop_proc_state_t;
 | 
			
		||||
typedef struct libgtop_proc_kernel libgtop_proc_kernel_t;
 | 
			
		||||
typedef struct libgtop_proc_segment libgtop_proc_segment_t;
 | 
			
		||||
typedef struct libgtop_proc_mem libgtop_proc_mem_t;
 | 
			
		||||
typedef struct libgtop_proc_signal libgtop_proc_signal_t;
 | 
			
		||||
 | 
			
		||||
typedef struct libgtop_proc_maps_header libgtop_proc_maps_header_t;
 | 
			
		||||
typedef struct libgtop_proc_maps libgtop_proc_maps_t;
 | 
			
		||||
 | 
			
		||||
typedef struct libgtop_netload libgtop_netload_t;
 | 
			
		||||
 | 
			
		||||
struct libgtop_cpu
 | 
			
		||||
{
 | 
			
		||||
    unsigned long total;		/* Total CPU Time		*/
 | 
			
		||||
    unsigned long user;			/* CPU Time in User Mode	*/
 | 
			
		||||
    unsigned long nice;			/* CPU Time in User Mode (nice)	*/
 | 
			
		||||
    unsigned long sys;			/* CPU Time in System Mode	*/
 | 
			
		||||
    unsigned long idle;			/* CPU Time in the Idle Task	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_mem
 | 
			
		||||
{
 | 
			
		||||
    unsigned long totalram;		/* Total usable main memory size */
 | 
			
		||||
    unsigned long freeram;		/* Available memory size */
 | 
			
		||||
    unsigned long sharedram;		/* Amount of shared memory */
 | 
			
		||||
    unsigned long bufferram;		/* Memory used by buffers */
 | 
			
		||||
    unsigned long cachedram;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_swap
 | 
			
		||||
{
 | 
			
		||||
    unsigned long totalswap;		/* Total swap space size */
 | 
			
		||||
    unsigned long freeswap;		/* swap space still available */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_proclist
 | 
			
		||||
{
 | 
			
		||||
    int count;
 | 
			
		||||
    int nr_running, nr_tasks, last_pid;
 | 
			
		||||
    unsigned pids [NR_TASKS];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_stat
 | 
			
		||||
{
 | 
			
		||||
    int ncpu;				/* Number of CPUs		*/
 | 
			
		||||
    unsigned long frequency;		/* Tick frequency (HZ)		*/
 | 
			
		||||
    libgtop_cpu_t cpu;			/* CPU statistics		*/
 | 
			
		||||
    libgtop_cpu_t xcpu [NR_CPUS];	/* SMP per-CPU statistics	*/
 | 
			
		||||
    double loadavg [3];			/* Load average			*/
 | 
			
		||||
    unsigned long total_forks;		/* Total # of forks		*/
 | 
			
		||||
    unsigned int context_swtch;		/* Total # of context switches	*/
 | 
			
		||||
    unsigned long boot_time;		/* Boot time (seconds s. epoch)	*/
 | 
			
		||||
    unsigned int pgpgin, pgpgout;	/* # of pages paged in/out	*/
 | 
			
		||||
    unsigned int pswpin, pswpout;	/* # of swap pgs brought in/out	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_proc_state
 | 
			
		||||
{
 | 
			
		||||
    long state;
 | 
			
		||||
    unsigned long flags;
 | 
			
		||||
    char comm [16];
 | 
			
		||||
    int uid, euid, suid, fsuid;
 | 
			
		||||
    int gid, egid, sgid, fsgid;
 | 
			
		||||
    int pid, pgrp, ppid;
 | 
			
		||||
    int session;
 | 
			
		||||
    unsigned int tty;
 | 
			
		||||
    int tpgid;
 | 
			
		||||
    long priority, counter, def_priority;
 | 
			
		||||
    long utime, stime, cutime, cstime, start_time;
 | 
			
		||||
    long per_cpu_utime [NR_CPUS], per_cpu_stime [NR_CPUS];
 | 
			
		||||
    int has_cpu, processor, last_processor;
 | 
			
		||||
 | 
			
		||||
    unsigned long context;
 | 
			
		||||
    unsigned long start_code, end_code, start_data, end_data;
 | 
			
		||||
    unsigned long start_brk, brk, start_stack, start_mmap;
 | 
			
		||||
    unsigned long arg_start, arg_end, env_start, env_end;
 | 
			
		||||
    unsigned long rss, rlim, total_vm, locked_vm;
 | 
			
		||||
 | 
			
		||||
    unsigned long policy, rt_priority;
 | 
			
		||||
    unsigned long it_real_value, it_prof_value, it_virt_value;
 | 
			
		||||
    unsigned long it_real_incr, it_prof_incr, it_virt_incr;
 | 
			
		||||
 | 
			
		||||
    unsigned long keip, kesp;
 | 
			
		||||
    unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
 | 
			
		||||
    unsigned long nswap, cnswap;
 | 
			
		||||
 | 
			
		||||
    int ngroups, groups [LIBGTOP_MAX_GROUPS];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_proc_kernel
 | 
			
		||||
{
 | 
			
		||||
    unsigned long wchan;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_proc_segment
 | 
			
		||||
{
 | 
			
		||||
    unsigned long vsize, data, exec, stack, lib;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_proc_mem
 | 
			
		||||
{
 | 
			
		||||
    libgtop_proc_segment_t segment;
 | 
			
		||||
    int size, resident, share, trs, lrs, drs, dt;
 | 
			
		||||
    unsigned long rss, rlim;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_proc_signal
 | 
			
		||||
{
 | 
			
		||||
    unsigned long signal [LIBGTOP_NSIG];
 | 
			
		||||
    unsigned long blocked [LIBGTOP_NSIG];
 | 
			
		||||
    unsigned long ignore [LIBGTOP_NSIG];
 | 
			
		||||
    unsigned long catch [LIBGTOP_NSIG];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_proc_maps_header
 | 
			
		||||
{
 | 
			
		||||
    unsigned long start, end, offset, perm;
 | 
			
		||||
    off_t filename_offset;
 | 
			
		||||
    ino_t inode;
 | 
			
		||||
    dev_t device;
 | 
			
		||||
} __attribute__ ((aligned (64)));
 | 
			
		||||
 | 
			
		||||
struct libgtop_proc_maps
 | 
			
		||||
{
 | 
			
		||||
    libgtop_proc_maps_header_t header;
 | 
			
		||||
    char filename [LIBGTOP_MAP_PATH_LEN];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct libgtop_netload
 | 
			
		||||
{
 | 
			
		||||
    unsigned long rx_packets;		/* total packets received	*/
 | 
			
		||||
    unsigned long tx_packets;		/* total packets transmitted	*/
 | 
			
		||||
    unsigned long rx_bytes;		/* total bytes received 	*/
 | 
			
		||||
    unsigned long tx_bytes;		/* total bytes transmitted	*/
 | 
			
		||||
    unsigned long rx_errors;		/* bad packets received		*/
 | 
			
		||||
    unsigned long tx_errors;		/* packet transmit problems	*/
 | 
			
		||||
    unsigned long rx_dropped;		/* no space in linux buffers	*/
 | 
			
		||||
    unsigned long tx_dropped;		/* no space available in linux	*/
 | 
			
		||||
    unsigned long multicast;		/* multicast packets received	*/
 | 
			
		||||
    unsigned long collisions;
 | 
			
		||||
    
 | 
			
		||||
    /* detailed rx_errors: */
 | 
			
		||||
    unsigned long rx_length_errors;
 | 
			
		||||
    unsigned long rx_over_errors;	/* receiver ring buff overflow	*/
 | 
			
		||||
    unsigned long rx_crc_errors;	/* recved pkt with crc error	*/
 | 
			
		||||
    unsigned long rx_frame_errors;	/* recv'd frame alignment error */
 | 
			
		||||
    unsigned long rx_fifo_errors;	/* recv'r fifo overrun		*/
 | 
			
		||||
    unsigned long rx_missed_errors;	/* receiver missed packet	*/
 | 
			
		||||
    
 | 
			
		||||
    /* detailed tx_errors */
 | 
			
		||||
    unsigned long tx_aborted_errors;
 | 
			
		||||
    unsigned long tx_carrier_errors;
 | 
			
		||||
    unsigned long tx_fifo_errors;
 | 
			
		||||
    unsigned long tx_heartbeat_errors;
 | 
			
		||||
    unsigned long tx_window_errors;
 | 
			
		||||
    
 | 
			
		||||
    /* for cslip etc */
 | 
			
		||||
    unsigned long rx_compressed;
 | 
			
		||||
    unsigned long tx_compressed;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,30 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
 * linux/libgtop/libgtop_syms.c
 | 
			
		||||
 * Copyright (C) 1999 Martin Baulig
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <linux/config.h>
 | 
			
		||||
#include <linux/module.h>
 | 
			
		||||
 | 
			
		||||
#include <linux/sched.h>
 | 
			
		||||
 | 
			
		||||
#include <linux/mm.h>
 | 
			
		||||
#include <linux/pagemap.h>
 | 
			
		||||
#include <linux/swap.h>
 | 
			
		||||
 | 
			
		||||
extern unsigned long total_forks;
 | 
			
		||||
 | 
			
		||||
EXPORT_SYMBOL(task);
 | 
			
		||||
EXPORT_SYMBOL(init_mm);
 | 
			
		||||
EXPORT_SYMBOL(pidhash);
 | 
			
		||||
EXPORT_SYMBOL(avenrun);
 | 
			
		||||
EXPORT_SYMBOL(nr_running);
 | 
			
		||||
EXPORT_SYMBOL(nr_tasks);
 | 
			
		||||
EXPORT_SYMBOL(last_pid);
 | 
			
		||||
EXPORT_SYMBOL(total_forks);
 | 
			
		||||
EXPORT_SYMBOL(si_swapinfo);
 | 
			
		||||
 | 
			
		||||
extern void scheduling_functions_start_here(void);
 | 
			
		||||
extern void scheduling_functions_end_here(void);
 | 
			
		||||
EXPORT_SYMBOL(scheduling_functions_start_here);
 | 
			
		||||
EXPORT_SYMBOL(scheduling_functions_end_here);
 | 
			
		||||
@@ -1,4 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
 * linux/libgtop/main.c
 | 
			
		||||
 * Copyright (C) 1999 Martin Baulig
 | 
			
		||||
 */
 | 
			
		||||
@@ -1,81 +0,0 @@
 | 
			
		||||
diff -ru linux-2.2.1/Makefile hacker/Makefile
 | 
			
		||||
--- linux-2.2.1/Makefile	Sun Jan 31 22:45:42 1999
 | 
			
		||||
+++ hacker/Makefile	Sun Mar 21 16:10:41 1999
 | 
			
		||||
@@ -109,6 +109,7 @@
 | 
			
		||||
 DRIVERS		=drivers/block/block.a \
 | 
			
		||||
 		 drivers/char/char.a \
 | 
			
		||||
 	         drivers/misc/misc.a
 | 
			
		||||
+EXTRAS		=
 | 
			
		||||
 LIBS		=$(TOPDIR)/lib/lib.a
 | 
			
		||||
 SUBDIRS		=kernel drivers mm fs net ipc lib
 | 
			
		||||
 
 | 
			
		||||
@@ -186,6 +187,11 @@
 | 
			
		||||
 DRIVERS := $(DRIVERS) drivers/net/irda/irda_drivers.a
 | 
			
		||||
 endif
 | 
			
		||||
 
 | 
			
		||||
+ifdef CONFIG_LIBGTOP
 | 
			
		||||
+SUBDIRS := $(SUBDIRS) libgtop
 | 
			
		||||
+EXTRAS  := $(EXTRAS) libgtop/kernel.o
 | 
			
		||||
+endif
 | 
			
		||||
+
 | 
			
		||||
 include arch/$(ARCH)/Makefile
 | 
			
		||||
 
 | 
			
		||||
 .S.s:
 | 
			
		||||
@@ -206,6 +212,7 @@
 | 
			
		||||
 		$(FILESYSTEMS) \
 | 
			
		||||
 		$(NETWORKS) \
 | 
			
		||||
 		$(DRIVERS) \
 | 
			
		||||
+		$(EXTRAS) \
 | 
			
		||||
 		$(LIBS) \
 | 
			
		||||
 		--end-group \
 | 
			
		||||
 		-o vmlinux
 | 
			
		||||
diff -ru linux-2.2.1/arch/i386/config.in hacker/arch/i386/config.in
 | 
			
		||||
--- linux-2.2.1/arch/i386/config.in	Sun Jan 31 22:25:25 1999
 | 
			
		||||
+++ hacker/arch/i386/config.in	Sat Mar 20 18:26:18 1999
 | 
			
		||||
@@ -84,6 +84,9 @@
 | 
			
		||||
 bool 'System V IPC' CONFIG_SYSVIPC
 | 
			
		||||
 bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
 | 
			
		||||
 bool 'Sysctl support' CONFIG_SYSCTL
 | 
			
		||||
+if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
 | 
			
		||||
+  tristate 'LibGTop support' CONFIG_LIBGTOP
 | 
			
		||||
+fi
 | 
			
		||||
 tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
 | 
			
		||||
 tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
 | 
			
		||||
 tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
 | 
			
		||||
diff -ru linux-2.2.1/include/linux/sysctl.h hacker/include/linux/sysctl.h
 | 
			
		||||
--- linux-2.2.1/include/linux/sysctl.h	Sun Jan 31 22:24:14 1999
 | 
			
		||||
+++ hacker/include/linux/sysctl.h	Sat Mar 20 19:12:54 1999
 | 
			
		||||
@@ -56,7 +56,8 @@
 | 
			
		||||
 	CTL_PROC=4,		/* Process info */
 | 
			
		||||
 	CTL_FS=5,		/* Filesystems */
 | 
			
		||||
 	CTL_DEBUG=6,		/* Debugging */
 | 
			
		||||
-	CTL_DEV=7		/* Devices */
 | 
			
		||||
+	CTL_DEV=7,		/* Devices */
 | 
			
		||||
+	CTL_LIBGTOP=408		/* LibGTop */
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
diff -ru linux-2.2.1/kernel/sysctl.c hacker/kernel/sysctl.c
 | 
			
		||||
--- linux-2.2.1/kernel/sysctl.c	Sun Jan 31 22:24:43 1999
 | 
			
		||||
+++ hacker/kernel/sysctl.c	Sat Mar 20 19:24:34 1999
 | 
			
		||||
@@ -82,7 +82,9 @@
 | 
			
		||||
 static ctl_table fs_table[];
 | 
			
		||||
 static ctl_table debug_table[];
 | 
			
		||||
 static ctl_table dev_table[];
 | 
			
		||||
-
 | 
			
		||||
+#ifdef CONFIG_LIBGTOP
 | 
			
		||||
+extern ctl_table libgtop_table[];
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* /proc declarations: */
 | 
			
		||||
 
 | 
			
		||||
@@ -148,6 +150,9 @@
 | 
			
		||||
 	{CTL_FS, "fs", NULL, 0, 0555, fs_table},
 | 
			
		||||
 	{CTL_DEBUG, "debug", NULL, 0, 0555, debug_table},
 | 
			
		||||
         {CTL_DEV, "dev", NULL, 0, 0555, dev_table},
 | 
			
		||||
+#ifdef CONFIG_LIBGTOP
 | 
			
		||||
+	{CTL_LIBGTOP, "libgtop", NULL, 0, 0555, libgtop_table},
 | 
			
		||||
+#endif
 | 
			
		||||
 	{0}
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +0,0 @@
 | 
			
		||||
.deps
 | 
			
		||||
.libs
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
libgtop.la
 | 
			
		||||
*.lo
 | 
			
		||||
lib.c
 | 
			
		||||
@@ -1,22 +0,0 @@
 | 
			
		||||
LINK				= $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
 | 
			
		||||
INCLUDES			= @INCLUDES@
 | 
			
		||||
 | 
			
		||||
lib_LTLIBRARIES			= libgtop.la
 | 
			
		||||
 | 
			
		||||
libgtop_la_SOURCES		= init.c open.c close.c command.c read.c \
 | 
			
		||||
				  read_data.c write.c lib.c parameter.c \
 | 
			
		||||
				  sysdeps.c
 | 
			
		||||
 | 
			
		||||
libgtop_la_LDFLAGS		= $(LT_VERSION_INFO)
 | 
			
		||||
 | 
			
		||||
BUILT_SOURCES			= lib.c
 | 
			
		||||
 | 
			
		||||
lib.c: lib.pl $(top_builddir)/config.h $(top_srcdir)/features.def
 | 
			
		||||
	$(PERL) $(srcdir)/lib.pl < $(top_srcdir)/features.def > lib-t
 | 
			
		||||
	mv lib-t lib.c
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST			= lib.pl
 | 
			
		||||
 | 
			
		||||
CLEANFILES			= lib.c
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										50
									
								
								lib/close.c
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								lib/close.c
									
									
									
									
									
								
							@@ -1,50 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/command.h>
 | 
			
		||||
 | 
			
		||||
/* Closes server. */
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_close_r (glibtop *server)
 | 
			
		||||
{
 | 
			
		||||
	switch (server->method) {
 | 
			
		||||
	case GLIBTOP_METHOD_UNIX:
 | 
			
		||||
	case GLIBTOP_METHOD_INET:
 | 
			
		||||
		glibtop_call_l (server, GLIBTOP_CMND_QUIT,
 | 
			
		||||
				0, NULL, 0, NULL);
 | 
			
		||||
 | 
			
		||||
		if (close (server->socket))
 | 
			
		||||
			glibtop_warn_io ("close");
 | 
			
		||||
 | 
			
		||||
		break;
 | 
			
		||||
	case GLIBTOP_METHOD_PIPE:
 | 
			
		||||
		kill (server->pid, SIGKILL);
 | 
			
		||||
		close (server->input [0]);
 | 
			
		||||
		close (server->output [1]);
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,77 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop/read.h>
 | 
			
		||||
#include <glibtop/write.h>
 | 
			
		||||
#include <glibtop/read_data.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/command.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
void *
 | 
			
		||||
glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
 | 
			
		||||
		const void *send_buf, size_t recv_size, void *recv_buf)
 | 
			
		||||
{
 | 
			
		||||
	glibtop_command cmnd;
 | 
			
		||||
	glibtop_response response;
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	memset (&cmnd, 0, sizeof (glibtop_command));
 | 
			
		||||
 | 
			
		||||
	cmnd.command = command;
 | 
			
		||||
 | 
			
		||||
	/* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we
 | 
			
		||||
	 * send it together with command, so we only need one system call instead
 | 
			
		||||
	 * of two. */
 | 
			
		||||
 | 
			
		||||
	if (send_size <= _GLIBTOP_PARAM_SIZE) {
 | 
			
		||||
		memcpy (cmnd.parameter, send_buf, send_size);
 | 
			
		||||
		cmnd.size = send_size;
 | 
			
		||||
	} else {
 | 
			
		||||
		cmnd.data_size = send_size;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	glibtop_write_l (server, sizeof (glibtop_command), &cmnd);
 | 
			
		||||
 | 
			
		||||
	glibtop_read_l (server, sizeof (glibtop_response), &response);
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
	fprintf (stderr, "RESPONSE: %lu - %d\n",
 | 
			
		||||
		 response.offset, response.data_size);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if (recv_buf)
 | 
			
		||||
		memcpy (recv_buf, ((char *) &response) + response.offset,
 | 
			
		||||
			recv_size);
 | 
			
		||||
 | 
			
		||||
	if (response.data_size) {
 | 
			
		||||
		void *ptr = glibtop_malloc_r (server, response.data_size);
 | 
			
		||||
 | 
			
		||||
		glibtop_read_l (server, response.data_size, ptr);
 | 
			
		||||
 | 
			
		||||
		return ptr;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return NULL;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										253
									
								
								lib/init.c
									
									
									
									
									
								
							
							
						
						
									
										253
									
								
								lib/init.c
									
									
									
									
									
								
							@@ -1,253 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#ifndef DEFAULT_PORT
 | 
			
		||||
#define DEFAULT_PORT 42800
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static glibtop _glibtop_global_server;
 | 
			
		||||
glibtop *glibtop_global_server = &_glibtop_global_server;
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
_init_server (glibtop *server, const unsigned features)
 | 
			
		||||
{
 | 
			
		||||
	char *command, *temp;
 | 
			
		||||
 | 
			
		||||
	/* Try to get server command, but don't override if already
 | 
			
		||||
	 * set via glibtop_set_parameter () */
 | 
			
		||||
 | 
			
		||||
	if (server->server_command == NULL) {
 | 
			
		||||
		const char *temp = getenv ("LIBGTOP_SERVER") ?
 | 
			
		||||
			getenv ("LIBGTOP_SERVER") : LIBGTOP_SERVER;
 | 
			
		||||
 | 
			
		||||
		server->server_command = glibtop_strdup_r (server, temp);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (server->server_rsh == NULL) {
 | 
			
		||||
		const char *temp = getenv ("LIBGTOP_RSH") ?
 | 
			
		||||
			getenv ("LIBGTOP_RSH") : "/usr/bin/ssh";
 | 
			
		||||
		
 | 
			
		||||
		server->server_rsh = glibtop_strdup_r (server, temp);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Try to get server method, but don't override if already
 | 
			
		||||
	 * set via  glibtop_set_parameter () */
 | 
			
		||||
 | 
			
		||||
	if (server->method) return;
 | 
			
		||||
 | 
			
		||||
	/* If server->command doesn't start with a colon, then it is
 | 
			
		||||
	 * the full pathname of the server executable. */
 | 
			
		||||
 | 
			
		||||
	if (server->server_command [0] != ':') {
 | 
			
		||||
		if (features & glibtop_server_features) {
 | 
			
		||||
			/* We really need the server. */
 | 
			
		||||
			server->method = GLIBTOP_METHOD_PIPE;
 | 
			
		||||
		} else {
 | 
			
		||||
			/* Fine. No server is needed, so we call the
 | 
			
		||||
			 * sysdeps functions directly. */
 | 
			
		||||
			server->method = GLIBTOP_METHOD_DIRECT;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* If the first character of 'server_command' is a colon,
 | 
			
		||||
	 * the first field is the method to connect to the server. */
 | 
			
		||||
	
 | 
			
		||||
	/* Everything up to the next colon is the method. */
 | 
			
		||||
	
 | 
			
		||||
	command = glibtop_strdup_r (server, server->server_command+1);
 | 
			
		||||
	temp = strstr (command, ":");
 | 
			
		||||
	if (temp) *temp = 0;
 | 
			
		||||
	
 | 
			
		||||
	/* Dispatch method. */
 | 
			
		||||
			
 | 
			
		||||
	if (!strcmp (command, "direct")) {
 | 
			
		||||
		/* Use sysdeps dir instead of connecting to server
 | 
			
		||||
		 * even if using the server would be required on
 | 
			
		||||
		 * the current system. */
 | 
			
		||||
		server->method = GLIBTOP_METHOD_DIRECT;
 | 
			
		||||
 | 
			
		||||
	} else if (!strcmp (command, "inet")) {
 | 
			
		||||
 | 
			
		||||
		server->method = GLIBTOP_METHOD_INET;
 | 
			
		||||
 | 
			
		||||
		/* Connect to internet server. */
 | 
			
		||||
 | 
			
		||||
		if (temp == NULL) {
 | 
			
		||||
			/* If no value was set, we use 'localhost'. */
 | 
			
		||||
			if (server->server_host == NULL)
 | 
			
		||||
				server->server_host = glibtop_strdup_r
 | 
			
		||||
					(server, "localhost");
 | 
			
		||||
		} else {
 | 
			
		||||
			char *temp2 = strstr (temp+1, ":");
 | 
			
		||||
			if (temp2) *temp2 = 0;
 | 
			
		||||
					
 | 
			
		||||
			/* Override default. */
 | 
			
		||||
			if (server->server_host)
 | 
			
		||||
				glibtop_free_r (server,
 | 
			
		||||
						(char *) server->server_host);
 | 
			
		||||
 | 
			
		||||
			server->server_host = glibtop_strdup_r
 | 
			
		||||
				(server, temp+1);
 | 
			
		||||
					
 | 
			
		||||
			temp = temp2;
 | 
			
		||||
		}
 | 
			
		||||
			
 | 
			
		||||
		if (temp == NULL) {
 | 
			
		||||
			/* If no value was set, we use DEFAULT_PORT. */
 | 
			
		||||
			if (server->server_port == 0)
 | 
			
		||||
				server->server_port = DEFAULT_PORT;
 | 
			
		||||
		} else {
 | 
			
		||||
			char *temp2 = strstr (temp+1, ":");
 | 
			
		||||
			if (temp2) *temp2 = 0;
 | 
			
		||||
					
 | 
			
		||||
			if (sscanf (temp+1, "%ld", &server->server_port) != 1)
 | 
			
		||||
				server->server_port = DEFAULT_PORT;
 | 
			
		||||
					
 | 
			
		||||
			temp = temp2 ? temp2 + 1 : temp2;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	} else if (!strcmp (command, "unix")) {
 | 
			
		||||
 | 
			
		||||
		/* Connect to unix domain socket. */
 | 
			
		||||
		server->method = GLIBTOP_METHOD_UNIX;
 | 
			
		||||
 | 
			
		||||
	} else if (!strcmp (command, "pipe")) {
 | 
			
		||||
 | 
			
		||||
		/* Open pipe to server. */
 | 
			
		||||
		server->method = GLIBTOP_METHOD_PIPE;
 | 
			
		||||
 | 
			
		||||
	} else {
 | 
			
		||||
 | 
			
		||||
		glibtop_error_r (server, "Unknown server method '%s'",
 | 
			
		||||
				 server->server_command+1);
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
			
 | 
			
		||||
	glibtop_free_r (server, command);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
glibtop *
 | 
			
		||||
glibtop_init_r (glibtop **server_ptr, unsigned long features, unsigned flags)
 | 
			
		||||
{
 | 
			
		||||
	glibtop *server;
 | 
			
		||||
 | 
			
		||||
	if (server_ptr == NULL)
 | 
			
		||||
		return NULL;
 | 
			
		||||
 | 
			
		||||
	if (*server_ptr == NULL)
 | 
			
		||||
		*server_ptr = glibtop_global_server;
 | 
			
		||||
 | 
			
		||||
	server = *server_ptr;
 | 
			
		||||
 | 
			
		||||
	/* Should we do the initialization? */
 | 
			
		||||
 | 
			
		||||
	if (flags & GLIBTOP_INIT_NO_INIT)
 | 
			
		||||
		return server;
 | 
			
		||||
 | 
			
		||||
	/* Do the initialization, but only if not already initialized. */
 | 
			
		||||
 | 
			
		||||
	if ((server->flags & _GLIBTOP_INIT_STATE_INIT) == 0) {
 | 
			
		||||
		if (flags & GLIBTOP_FEATURES_EXCEPT)
 | 
			
		||||
			features = ~features & GLIBTOP_SYSDEPS_ALL;
 | 
			
		||||
		
 | 
			
		||||
		if (features == 0)
 | 
			
		||||
			features = GLIBTOP_SYSDEPS_ALL;
 | 
			
		||||
		
 | 
			
		||||
		if (flags & GLIBTOP_FEATURES_NO_SERVER) {
 | 
			
		||||
			server->method = GLIBTOP_METHOD_DIRECT;
 | 
			
		||||
			features = 0;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		server->features = features;
 | 
			
		||||
		
 | 
			
		||||
		_init_server (server, features);
 | 
			
		||||
		
 | 
			
		||||
		server->flags |= _GLIBTOP_INIT_STATE_INIT;
 | 
			
		||||
		
 | 
			
		||||
		switch (server->method) {
 | 
			
		||||
		case GLIBTOP_METHOD_PIPE:
 | 
			
		||||
		case GLIBTOP_METHOD_UNIX:
 | 
			
		||||
			if (glibtop_server_features & features)
 | 
			
		||||
				break;
 | 
			
		||||
			
 | 
			
		||||
			server->method = GLIBTOP_METHOD_DIRECT;
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Should we open the server? */
 | 
			
		||||
 | 
			
		||||
	if (flags & GLIBTOP_INIT_NO_OPEN)
 | 
			
		||||
		return server;
 | 
			
		||||
 | 
			
		||||
	/* Open server, but only if not already opened. */
 | 
			
		||||
	
 | 
			
		||||
	if ((server->flags & _GLIBTOP_INIT_STATE_OPEN) == 0)
 | 
			
		||||
		glibtop_open_l (glibtop_global_server, "glibtop",
 | 
			
		||||
				features, flags);
 | 
			
		||||
	
 | 
			
		||||
	return server;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
glibtop *
 | 
			
		||||
glibtop_init_s (glibtop **server_ptr, unsigned long features, unsigned flags)
 | 
			
		||||
{
 | 
			
		||||
	glibtop *server;
 | 
			
		||||
	glibtop_init_func_t *init_fkt;
 | 
			
		||||
	
 | 
			
		||||
	if (server_ptr == NULL)
 | 
			
		||||
		return NULL;
 | 
			
		||||
 | 
			
		||||
	if (*server_ptr == NULL)
 | 
			
		||||
		*server_ptr = glibtop_global_server;
 | 
			
		||||
 | 
			
		||||
	server = *server_ptr;
 | 
			
		||||
 | 
			
		||||
	/* Should we do the initialization? */
 | 
			
		||||
 | 
			
		||||
	if (flags & GLIBTOP_INIT_NO_INIT)
 | 
			
		||||
		return server;
 | 
			
		||||
 | 
			
		||||
	/* Do the initialization, but only if not already initialized. */
 | 
			
		||||
 | 
			
		||||
	if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) {
 | 
			
		||||
		glibtop_open_s (server, "glibtop", features, flags);
 | 
			
		||||
 | 
			
		||||
		for (init_fkt = _glibtop_init_hook_s; *init_fkt; init_fkt++)
 | 
			
		||||
			(*init_fkt) (server);
 | 
			
		||||
 | 
			
		||||
		server->sysdeps.pointer_size = sizeof (void*)*8;
 | 
			
		||||
		
 | 
			
		||||
		server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return server;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										117
									
								
								lib/inodedb.c
									
									
									
									
									
								
							
							
						
						
									
										117
									
								
								lib/inodedb.c
									
									
									
									
									
								
							@@ -1,117 +0,0 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
#include <glibtop/inodedb.h>
 | 
			
		||||
 | 
			
		||||
#include <pwd.h>
 | 
			
		||||
#include <gdbm.h>
 | 
			
		||||
 | 
			
		||||
#ifndef SYSTEM_INODEDB
 | 
			
		||||
#define SYSTEM_INODEDB "/usr/var/libgtop/inodedb.db"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
glibtop_inodedb *
 | 
			
		||||
glibtop_inodedb_open_s (glibtop *server, unsigned databases,
 | 
			
		||||
			unsigned long cachesize)
 | 
			
		||||
{
 | 
			
		||||
	glibtop_inodedb *inodedb;
 | 
			
		||||
	char filename [BUFSIZ];
 | 
			
		||||
	struct passwd *pwd;
 | 
			
		||||
	struct stat statb;
 | 
			
		||||
 | 
			
		||||
	if (!databases)
 | 
			
		||||
		databases = GLIBTOP_INODEDB_ALL;
 | 
			
		||||
 | 
			
		||||
	inodedb = glibtop_calloc_r (server, 1, sizeof (glibtop_inodedb));
 | 
			
		||||
 | 
			
		||||
	if (stat (SYSTEM_INODEDB, &statb))
 | 
			
		||||
		databases &= ~GLIBTOP_INODEDB_SYSTEM;
 | 
			
		||||
 | 
			
		||||
	if (databases & GLIBTOP_INODEDB_SYSTEM) {
 | 
			
		||||
		inodedb->system_dbf = gdbm_open
 | 
			
		||||
			(SYSTEM_INODEDB, 0, GDBM_READER, 0, 0);
 | 
			
		||||
		if (!inodedb->system_dbf)
 | 
			
		||||
			glibtop_error_io_r
 | 
			
		||||
				(server, "gdbm_open (%s)", SYSTEM_INODEDB);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pwd = getpwuid (getuid ());
 | 
			
		||||
	if (!pwd) glibtop_error_io_r (server, "getpwuid");
 | 
			
		||||
	
 | 
			
		||||
	sprintf (filename, "%s/var/libgtop/inodedb.db", pwd->pw_dir);
 | 
			
		||||
	
 | 
			
		||||
	if (stat (filename, &statb))
 | 
			
		||||
		databases &= ~GLIBTOP_INODEDB_USER;
 | 
			
		||||
 | 
			
		||||
	if (databases & GLIBTOP_INODEDB_USER) {
 | 
			
		||||
		inodedb->user_dbf = gdbm_open
 | 
			
		||||
			(filename, 0, GDBM_READER, 0, 0);
 | 
			
		||||
		if (!inodedb->user_dbf)
 | 
			
		||||
			glibtop_error_io_r
 | 
			
		||||
				(server, "gdbm_open (%s)", filename);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return inodedb;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char *
 | 
			
		||||
glibtop_inodedb_lookup_s (glibtop *server,
 | 
			
		||||
			  glibtop_inodedb *inodedb,
 | 
			
		||||
			  u_int64_t device, u_int64_t inode)
 | 
			
		||||
{
 | 
			
		||||
	glibtop_inodedb_key key;
 | 
			
		||||
	datum d_key, d_content;
 | 
			
		||||
 | 
			
		||||
	d_key.dptr = (void *) &key;
 | 
			
		||||
	d_key.dsize = sizeof (key);
 | 
			
		||||
 | 
			
		||||
	key.device = device;
 | 
			
		||||
	key.inode = inode;
 | 
			
		||||
 | 
			
		||||
	if (inodedb->system_dbf) {
 | 
			
		||||
		d_content = gdbm_fetch (inodedb->system_dbf, d_key);
 | 
			
		||||
		if (d_content.dptr) return d_content.dptr;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (inodedb->user_dbf) {
 | 
			
		||||
		d_content = gdbm_fetch (inodedb->user_dbf, d_key);
 | 
			
		||||
		if (d_content.dptr) return d_content.dptr;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb)
 | 
			
		||||
{
 | 
			
		||||
	if (inodedb->system_dbf)
 | 
			
		||||
		gdbm_close (inodedb->system_dbf);
 | 
			
		||||
	
 | 
			
		||||
	if (inodedb->user_dbf)
 | 
			
		||||
		gdbm_close (inodedb->user_dbf);
 | 
			
		||||
 | 
			
		||||
	glibtop_free_r (server, inodedb);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										233
									
								
								lib/lib.pl
									
									
									
									
									
								
							
							
						
						
									
										233
									
								
								lib/lib.pl
									
									
									
									
									
								
							@@ -1,233 +0,0 @@
 | 
			
		||||
#!/usr/bin/perl
 | 
			
		||||
 | 
			
		||||
$[ = 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 $_;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
print '/* lib.c */';
 | 
			
		||||
print "/* This is a generated file.  Please modify `lib.pl' */";
 | 
			
		||||
print '';
 | 
			
		||||
 | 
			
		||||
print '#include <glibtop.h>';
 | 
			
		||||
print '#include <glibtop/open.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop/sysdeps.h>';
 | 
			
		||||
print '#include <glibtop/union.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop/command.h>';
 | 
			
		||||
 | 
			
		||||
print '';
 | 
			
		||||
print '/* Some required fields are missing. */';
 | 
			
		||||
print '';
 | 
			
		||||
 | 
			
		||||
print 'static void';
 | 
			
		||||
print '_glibtop_missing_feature (glibtop *server, const char *feature,';
 | 
			
		||||
print "\t\t\t  const u_int64_t present, u_int64_t *required)";
 | 
			
		||||
print '{';
 | 
			
		||||
print "\tu_int64_t old_required = *required;\n";
 | 
			
		||||
print "\t/* Return if we have all required fields. */";
 | 
			
		||||
print "\tif ((~present & old_required) == 0)";
 | 
			
		||||
print "\t\treturn;\n";
 | 
			
		||||
print "\tswitch (server->error_method) {";
 | 
			
		||||
print "\tcase GLIBTOP_ERROR_METHOD_WARN_ONCE:";
 | 
			
		||||
print "\t\t*required &= present;";
 | 
			
		||||
print "\tcase GLIBTOP_ERROR_METHOD_WARN:";
 | 
			
		||||
print "\t\tglibtop_warn_r (server,";
 | 
			
		||||
print "\t\t\t\t_(\"glibtop_get_%s (): Client requested \"";
 | 
			
		||||
print "\t\t\t\t  \"field mask %05lx, but only have %05lx.\"),";
 | 
			
		||||
print "\t\t\t\t feature, (unsigned long) old_required,";
 | 
			
		||||
print "\t\t\t\t (unsigned long) present);";
 | 
			
		||||
print "\t\tbreak;";
 | 
			
		||||
print "\tcase GLIBTOP_ERROR_METHOD_ABORT:";
 | 
			
		||||
print "\t\tglibtop_error_r (server,";
 | 
			
		||||
print "\t\t\t\t _(\"glibtop_get_%s (): Client requested \"";
 | 
			
		||||
print "\t\t\t\t  \"field mask %05lx, but only have %05lx.\"),";
 | 
			
		||||
print "\t\t\t\t feature, (unsigned long) old_required,";
 | 
			
		||||
print "\t\t\t\t (unsigned long) present);";
 | 
			
		||||
print "\t\tbreak;";
 | 
			
		||||
print "\t}";
 | 
			
		||||
print '}';
 | 
			
		||||
 | 
			
		||||
print '';
 | 
			
		||||
print '/* Library functions. */';
 | 
			
		||||
print '';
 | 
			
		||||
 | 
			
		||||
$convert{'long'} = 'int64_t';
 | 
			
		||||
$convert{'ulong'} = 'u_int64_t';
 | 
			
		||||
$convert{'pid_t'} = 'pid_t';
 | 
			
		||||
$convert{'int'} = 'int';
 | 
			
		||||
$convert{'ushort'} = 'unsigned short';
 | 
			
		||||
$convert{'unsigned'} = 'unsigned';
 | 
			
		||||
 | 
			
		||||
while (<>) {
 | 
			
		||||
    chop;	# strip record separator
 | 
			
		||||
 | 
			
		||||
    if (/^[^#]/) {
 | 
			
		||||
	&output($_);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub output {
 | 
			
		||||
    local($line) = @_;
 | 
			
		||||
    @line_fields = split(/\|/, $line, 9999);
 | 
			
		||||
    $retval = $line_fields[1];
 | 
			
		||||
    $feature = $line_fields[2];
 | 
			
		||||
    $param_def = $line_fields[4];
 | 
			
		||||
 | 
			
		||||
    $orig = $feature;
 | 
			
		||||
    $feature =~ s/^@//;
 | 
			
		||||
    $space = $feature;
 | 
			
		||||
    $space =~ s/./ /g;
 | 
			
		||||
 | 
			
		||||
    print $retval;
 | 
			
		||||
    if ($retval !~ /^void$/) {
 | 
			
		||||
	$prefix = 'retval = ';
 | 
			
		||||
	$prefix_space = '         ';
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
	$prefix = '';
 | 
			
		||||
	$prefix_space = '';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ($param_def eq 'string') {
 | 
			
		||||
	$call_param = ', ' . $line_fields[5];
 | 
			
		||||
	$param_decl = ",\n            " . $space . '    const char *' .
 | 
			
		||||
 | 
			
		||||
	  $line_fields[5];
 | 
			
		||||
	$send_ptr = "\n\tconst void *send_ptr = " . $line_fields[5] . ';';
 | 
			
		||||
	$send_size = "\n\tconst size_t send_size =\n\t\tstrlen (" .
 | 
			
		||||
 | 
			
		||||
	  $line_fields[5] . ') + 1;';
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
	$call_param = '';
 | 
			
		||||
	$param_decl = '';
 | 
			
		||||
	$send_size = '';
 | 
			
		||||
	$send_ptr = '';
 | 
			
		||||
	$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++) {
 | 
			
		||||
		if ($param_decl eq '') {
 | 
			
		||||
		    $param_decl = ",\n            " . $space . '    ';
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
		    $param_decl = $param_decl . ', ';
 | 
			
		||||
		}
 | 
			
		||||
		$param_decl = $param_decl . '' . $convert{$type} . ' ' .
 | 
			
		||||
 | 
			
		||||
		  $fields[$field];
 | 
			
		||||
		$call_param = $call_param . ', ' . $fields[$field];
 | 
			
		||||
		if ($send_ptr eq '') {
 | 
			
		||||
		    $send_ptr = "\n\tconst void *send_ptr = &" .
 | 
			
		||||
 | 
			
		||||
		      $fields[$field] . ';';
 | 
			
		||||
		}
 | 
			
		||||
		if ($send_size eq '') {
 | 
			
		||||
		    $send_size = "\n\tconst size_t send_size =\n\t\t";
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
		    $send_size = $send_size . ' + ';
 | 
			
		||||
		}
 | 
			
		||||
		$send_size = $send_size . 'sizeof (' . $fields[$field] . ')';
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
	if ($send_size ne '') {
 | 
			
		||||
	    $send_size = $send_size . ';';
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
	    $send_size = "\n\tconst size_t send_size = 0;";
 | 
			
		||||
	}
 | 
			
		||||
	if ($send_ptr eq '') {
 | 
			
		||||
	    $send_ptr = "\n\tconst void *send_ptr = NULL;";
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    print 'glibtop_get_' . $feature . '_l (glibtop *server, glibtop_' .
 | 
			
		||||
 | 
			
		||||
      $feature . ' *buf' . $param_decl . ')';
 | 
			
		||||
 | 
			
		||||
    print '{' . $send_ptr . '' . $send_size;
 | 
			
		||||
    if ($retval !~ /^void$/) {
 | 
			
		||||
	print "\t" . $retval . ' retval = (' . $retval . ') 0;';
 | 
			
		||||
    }
 | 
			
		||||
    print '';
 | 
			
		||||
 | 
			
		||||
    print "\tglibtop_init_r (&server, (1 << GLIBTOP_SYSDEPS_" .
 | 
			
		||||
 | 
			
		||||
      &toupper($feature) . '), 0);';
 | 
			
		||||
 | 
			
		||||
    print '';
 | 
			
		||||
    print "\t/* If neccessary, we ask the server for the requested";
 | 
			
		||||
    print "\t * feature. If not, we call the sysdeps function. */";
 | 
			
		||||
    print '';
 | 
			
		||||
 | 
			
		||||
    print "\tif ((server->flags & _GLIBTOP_INIT_STATE_SERVER) &&";
 | 
			
		||||
    print "\t    (server->features & (1 << GLIBTOP_SYSDEPS_" .
 | 
			
		||||
 | 
			
		||||
      &toupper($feature) . ')))';
 | 
			
		||||
    print "\t{";
 | 
			
		||||
 | 
			
		||||
    print "\t\t" . $prefix . 'glibtop_call_l (server, GLIBTOP_CMND_' .
 | 
			
		||||
 | 
			
		||||
      &toupper($feature) . ',';
 | 
			
		||||
    print "\t\t\t\t" . $prefix_space . 'send_size, send_ptr,';
 | 
			
		||||
    print "\t\t\t\t" . $prefix_space . 'sizeof (glibtop_' . $feature .
 | 
			
		||||
 | 
			
		||||
      '), buf);';
 | 
			
		||||
 | 
			
		||||
    print "\t} else {";
 | 
			
		||||
 | 
			
		||||
    if ($orig !~ /^@/) {
 | 
			
		||||
	print '#if (!GLIBTOP_SUID_' . &toupper($feature) . ')';
 | 
			
		||||
    }
 | 
			
		||||
    print "\t\t" . $prefix . 'glibtop_get_' . $feature . '_s (server, buf' .
 | 
			
		||||
 | 
			
		||||
      $call_param . ');';
 | 
			
		||||
 | 
			
		||||
    if ($orig !~ /^@/) {
 | 
			
		||||
	print '#else';
 | 
			
		||||
	print "\t\terrno = ENOSYS;";
 | 
			
		||||
	print "\t\tglibtop_error_io_r (server, \"glibtop_get_" . $feature .
 | 
			
		||||
 | 
			
		||||
	  "\");";
 | 
			
		||||
	print '#endif';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    print "\t}";
 | 
			
		||||
 | 
			
		||||
    print '';
 | 
			
		||||
    print "\t/* Make sure that all required fields are present. */";
 | 
			
		||||
    print '';
 | 
			
		||||
 | 
			
		||||
    print "\tif (buf->flags & server->required." . $feature . ')';
 | 
			
		||||
    print "\t\t_glibtop_missing_feature (server, \"" . $feature .
 | 
			
		||||
 | 
			
		||||
      "\", buf->flags,";
 | 
			
		||||
    print "\t\t\t\t\t  &server->required." . $feature . ');';
 | 
			
		||||
 | 
			
		||||
    if ($retval !~ /^void$/) {
 | 
			
		||||
	print "\n\t/* Now we can return. */";
 | 
			
		||||
	print "\n\treturn retval;";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    print '}';
 | 
			
		||||
    print '';
 | 
			
		||||
}
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user