Compare commits
	
		
			323 Commits
		
	
	
		
			libgtop_la
			...
			LIBGTOP_2_
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					aac28131d8 | ||
| 
						 | 
					a3c4323de4 | ||
| 
						 | 
					6ae17d92b2 | ||
| 
						 | 
					0fa183a762 | ||
| 
						 | 
					567da04f9c | ||
| 
						 | 
					a046e42f3f | ||
| 
						 | 
					c881020dc3 | ||
| 
						 | 
					116348de15 | ||
| 
						 | 
					b48b12e12b | ||
| 
						 | 
					1c61b27933 | ||
| 
						 | 
					7b86568eb0 | ||
| 
						 | 
					60ccb2ca26 | ||
| 
						 | 
					1cc7293497 | ||
| 
						 | 
					62ee900299 | ||
| 
						 | 
					00f9d271f2 | ||
| 
						 | 
					16073f4179 | ||
| 
						 | 
					a3a2c8cf21 | ||
| 
						 | 
					d9aca3dd2c | ||
| 
						 | 
					a931b14a9b | ||
| 
						 | 
					87f2a442d9 | ||
| 
						 | 
					d06db7bd7a | ||
| 
						 | 
					49aa40e524 | ||
| 
						 | 
					955b2d5c82 | ||
| 
						 | 
					e25dba32e2 | ||
| 
						 | 
					bf20705511 | ||
| 
						 | 
					53a7a2e40c | ||
| 
						 | 
					e8d4ffed34 | ||
| 
						 | 
					056a7e5cc5 | ||
| 
						 | 
					c1fd4120c5 | ||
| 
						 | 
					d076fa81cc | ||
| 
						 | 
					79fdd6cd3b | ||
| 
						 | 
					291d63f2b9 | ||
| 
						 | 
					f93de2fd0b | ||
| 
						 | 
					cea6b6292d | ||
| 
						 | 
					9ea55a3f4d | ||
| 
						 | 
					310a51dd8f | ||
| 
						 | 
					0cd19c9db1 | ||
| 
						 | 
					04290020ea | ||
| 
						 | 
					315397219b | ||
| 
						 | 
					b836fa0c60 | ||
| 
						 | 
					765064dd80 | ||
| 
						 | 
					02d7b4b3de | ||
| 
						 | 
					fc130166dd | ||
| 
						 | 
					1625b5304f | ||
| 
						 | 
					3a3ac84cae | ||
| 
						 | 
					db6de7b017 | ||
| 
						 | 
					a544c1ddb0 | ||
| 
						 | 
					31133cc3dc | ||
| 
						 | 
					58b323cfab | ||
| 
						 | 
					07d991f383 | ||
| 
						 | 
					a50e5fdc9a | ||
| 
						 | 
					10305e7fd0 | ||
| 
						 | 
					33fb22edd3 | ||
| 
						 | 
					b2283f7c79 | ||
| 
						 | 
					adc9a55578 | ||
| 
						 | 
					ac8f958305 | ||
| 
						 | 
					40a615e1df | ||
| 
						 | 
					b67e4c7f7d | ||
| 
						 | 
					ba36a20cb8 | ||
| 
						 | 
					af8478ca5f | ||
| 
						 | 
					532aec1891 | ||
| 
						 | 
					cdfa0dfa1f | ||
| 
						 | 
					21c4e155dd | ||
| 
						 | 
					45273d9a44 | ||
| 
						 | 
					80aeb305c2 | ||
| 
						 | 
					4c8ae9e25c | ||
| 
						 | 
					bae16b467f | ||
| 
						 | 
					5e28a55218 | ||
| 
						 | 
					4d0bca118a | ||
| 
						 | 
					c3011b646c | ||
| 
						 | 
					b94a36c719 | ||
| 
						 | 
					7aaa4454ab | ||
| 
						 | 
					6572ee1baf | ||
| 
						 | 
					c95d39dde7 | ||
| 
						 | 
					a32503df9b | ||
| 
						 | 
					d31e33d4bf | ||
| 
						 | 
					09becf3b7d | ||
| 
						 | 
					6e9589702f | ||
| 
						 | 
					ab7f98d2ff | ||
| 
						 | 
					75b2832076 | ||
| 
						 | 
					142a323364 | ||
| 
						 | 
					3a4a550e06 | ||
| 
						 | 
					2fc6e07c0f | ||
| 
						 | 
					2d4db7f03f | ||
| 
						 | 
					9b87f4586e | ||
| 
						 | 
					9ff3af644c | ||
| 
						 | 
					ffb5f13711 | ||
| 
						 | 
					6dbc1e0d4a | ||
| 
						 | 
					c660c08b6f | ||
| 
						 | 
					2ce38167e1 | ||
| 
						 | 
					7cad52aaa0 | ||
| 
						 | 
					61f8cb7ff2 | ||
| 
						 | 
					f05ee369d5 | ||
| 
						 | 
					c3bfcf38a8 | ||
| 
						 | 
					1552efa493 | ||
| 
						 | 
					9bb1b80751 | ||
| 
						 | 
					40140ad487 | ||
| 
						 | 
					47e518d612 | ||
| 
						 | 
					4e4cf10334 | ||
| 
						 | 
					b02653eef9 | ||
| 
						 | 
					bfb2d1b25c | ||
| 
						 | 
					1042379d6d | ||
| 
						 | 
					240d07da28 | ||
| 
						 | 
					fb2247a58b | ||
| 
						 | 
					c04ee88f00 | ||
| 
						 | 
					1b44968284 | ||
| 
						 | 
					47bad7fac1 | ||
| 
						 | 
					7691d85225 | ||
| 
						 | 
					d0863b7406 | ||
| 
						 | 
					7afa0e0be7 | ||
| 
						 | 
					0c260bfef1 | ||
| 
						 | 
					312baf1bc2 | ||
| 
						 | 
					1dc0883059 | ||
| 
						 | 
					222b93c33f | ||
| 
						 | 
					db93479a51 | ||
| 
						 | 
					236d2b18e7 | ||
| 
						 | 
					08956770d2 | ||
| 
						 | 
					7a7c6baf55 | ||
| 
						 | 
					5bfb085021 | ||
| 
						 | 
					dfb9d6f967 | ||
| 
						 | 
					530cc00ae7 | ||
| 
						 | 
					a3557112a7 | ||
| 
						 | 
					3f34aafc6e | ||
| 
						 | 
					d6630b9f7a | ||
| 
						 | 
					3b7c109916 | ||
| 
						 | 
					c5fcc9aad6 | ||
| 
						 | 
					f4fc67f85c | ||
| 
						 | 
					bcc4ec968e | ||
| 
						 | 
					543b3b9160 | ||
| 
						 | 
					aac46b6daf | ||
| 
						 | 
					407514e4d7 | ||
| 
						 | 
					1491ccc594 | ||
| 
						 | 
					14b462fdc5 | ||
| 
						 | 
					1c64d5c704 | ||
| 
						 | 
					21ecc84514 | ||
| 
						 | 
					b7acfa6441 | ||
| 
						 | 
					de0391e6a4 | ||
| 
						 | 
					56e7068a8b | ||
| 
						 | 
					ed9140570e | ||
| 
						 | 
					ae5ecfe538 | ||
| 
						 | 
					fdd8cb8d27 | ||
| 
						 | 
					2c986b988f | ||
| 
						 | 
					46cf060788 | ||
| 
						 | 
					6ded77b938 | ||
| 
						 | 
					b730035db5 | ||
| 
						 | 
					38755e23a3 | ||
| 
						 | 
					94a24147c7 | ||
| 
						 | 
					5e08479a71 | ||
| 
						 | 
					bb24644744 | ||
| 
						 | 
					eb8fd1d1be | ||
| 
						 | 
					f349d3a624 | ||
| 
						 | 
					a0b236f4f7 | ||
| 
						 | 
					e5e1729baf | ||
| 
						 | 
					b035190e66 | ||
| 
						 | 
					427504e7ac | ||
| 
						 | 
					33c49d7c14 | ||
| 
						 | 
					c24b7f3bc4 | ||
| 
						 | 
					e76a450779 | ||
| 
						 | 
					c0fc0f4cb4 | ||
| 
						 | 
					5c597901ad | ||
| 
						 | 
					d3145d1b8b | ||
| 
						 | 
					1ac0f147b7 | ||
| 
						 | 
					fdb4a824fc | ||
| 
						 | 
					2449e92804 | ||
| 
						 | 
					7846ac218d | ||
| 
						 | 
					5b34c23069 | ||
| 
						 | 
					b6ee365761 | ||
| 
						 | 
					e4f5543f9d | ||
| 
						 | 
					a7f8debaa2 | ||
| 
						 | 
					34e8918003 | ||
| 
						 | 
					478be2d170 | ||
| 
						 | 
					8a78a93e0c | ||
| 
						 | 
					622eb0ea5b | ||
| 
						 | 
					455118131e | ||
| 
						 | 
					74ab42d100 | ||
| 
						 | 
					d294298c7e | ||
| 
						 | 
					4befe086c4 | ||
| 
						 | 
					98930be564 | ||
| 
						 | 
					16b81f0d91 | ||
| 
						 | 
					dfd678599f | ||
| 
						 | 
					6e4f80b8e2 | ||
| 
						 | 
					f704c4becf | ||
| 
						 | 
					9ab1889a3f | ||
| 
						 | 
					201e78d00a | ||
| 
						 | 
					d8cb698ae4 | ||
| 
						 | 
					876b2725c0 | ||
| 
						 | 
					c06a084fcf | ||
| 
						 | 
					cee38c53bc | ||
| 
						 | 
					81b009733e | ||
| 
						 | 
					035b387463 | ||
| 
						 | 
					158dec2b2a | ||
| 
						 | 
					752d5b47d2 | ||
| 
						 | 
					c15ff3f342 | ||
| 
						 | 
					7a7e7d1bc3 | ||
| 
						 | 
					6511ad348b | ||
| 
						 | 
					5b1eb2290a | ||
| 
						 | 
					00aed22f17 | ||
| 
						 | 
					15c1ad1bd9 | ||
| 
						 | 
					e1d552d9f7 | ||
| 
						 | 
					60749e0bef | ||
| 
						 | 
					bd01a45455 | ||
| 
						 | 
					54529c2425 | ||
| 
						 | 
					cf62a380bf | ||
| 
						 | 
					ab2a4e6e6a | ||
| 
						 | 
					7a9428a0e5 | ||
| 
						 | 
					da80f53deb | ||
| 
						 | 
					ae15c4159c | ||
| 
						 | 
					eaee97b2bf | ||
| 
						 | 
					94882bbc60 | ||
| 
						 | 
					1e02e69b4a | ||
| 
						 | 
					8277cc4d67 | ||
| 
						 | 
					29858d29d8 | ||
| 
						 | 
					984baf22f2 | ||
| 
						 | 
					cdd3862061 | ||
| 
						 | 
					c7cec23cf4 | ||
| 
						 | 
					55b6e2e082 | ||
| 
						 | 
					7d481fc8e9 | ||
| 
						 | 
					50a02de454 | ||
| 
						 | 
					1fcdf1af86 | ||
| 
						 | 
					c62a74fb5a | ||
| 
						 | 
					608ac42afe | ||
| 
						 | 
					99a3b1fe82 | ||
| 
						 | 
					ec00e62a54 | ||
| 
						 | 
					29060eb6ce | ||
| 
						 | 
					5301e8a86a | ||
| 
						 | 
					dc103ad41d | ||
| 
						 | 
					de91c11f87 | ||
| 
						 | 
					b6091762ac | ||
| 
						 | 
					4719557dae | ||
| 
						 | 
					f4a05d8fc9 | ||
| 
						 | 
					0ff66c2eaa | ||
| 
						 | 
					a40a438ec8 | ||
| 
						 | 
					718cd38098 | ||
| 
						 | 
					6b88dcd4aa | ||
| 
						 | 
					29b428608d | ||
| 
						 | 
					e487fc30f4 | ||
| 
						 | 
					578e5a5194 | ||
| 
						 | 
					fb08ec7144 | ||
| 
						 | 
					a51ffb6b73 | ||
| 
						 | 
					0ecdde94c2 | ||
| 
						 | 
					969260c9a9 | ||
| 
						 | 
					fe00191113 | ||
| 
						 | 
					60f0ea7dc2 | ||
| 
						 | 
					d6c8167076 | ||
| 
						 | 
					26b2aaa2db | ||
| 
						 | 
					0b45f63e61 | ||
| 
						 | 
					a790130414 | ||
| 
						 | 
					f36d5e5370 | ||
| 
						 | 
					5dbfe42493 | ||
| 
						 | 
					76f1fb641c | ||
| 
						 | 
					7b30b1ec86 | ||
| 
						 | 
					9e2a8f7db8 | ||
| 
						 | 
					d6a6d70c75 | ||
| 
						 | 
					da16460aad | ||
| 
						 | 
					444ede9949 | ||
| 
						 | 
					b25b0cf4d4 | ||
| 
						 | 
					f282240c0c | ||
| 
						 | 
					8d6e26a8d6 | ||
| 
						 | 
					62af029665 | ||
| 
						 | 
					e43f1a64c5 | ||
| 
						 | 
					f92c264826 | ||
| 
						 | 
					350e4e799d | ||
| 
						 | 
					6c6d8e006e | ||
| 
						 | 
					df3901571d | ||
| 
						 | 
					a4db88252e | ||
| 
						 | 
					48440ac59b | ||
| 
						 | 
					c3a55796c2 | ||
| 
						 | 
					33a659ab06 | ||
| 
						 | 
					5e8644d736 | ||
| 
						 | 
					14e7219160 | ||
| 
						 | 
					5f0246b07d | ||
| 
						 | 
					fa20de8904 | ||
| 
						 | 
					00d9dd7065 | ||
| 
						 | 
					0a3a0c1a34 | ||
| 
						 | 
					a9ed25e7fc | ||
| 
						 | 
					e577aa3d08 | ||
| 
						 | 
					8bcbf2f86c | ||
| 
						 | 
					1e9cb3ea2a | ||
| 
						 | 
					7e24f71432 | ||
| 
						 | 
					4dad0e5b8c | ||
| 
						 | 
					9dc214b3e7 | ||
| 
						 | 
					7700a6525e | ||
| 
						 | 
					28150c48f7 | ||
| 
						 | 
					1f6916b5d0 | ||
| 
						 | 
					36c36b9afb | ||
| 
						 | 
					6402efe196 | ||
| 
						 | 
					00a32c887c | ||
| 
						 | 
					c92bf0f9a9 | ||
| 
						 | 
					44027f6bd2 | ||
| 
						 | 
					3fec7a0946 | ||
| 
						 | 
					47d4322965 | ||
| 
						 | 
					7ae71b3d8f | ||
| 
						 | 
					a73800ae2d | ||
| 
						 | 
					b124998639 | ||
| 
						 | 
					238d03677a | ||
| 
						 | 
					0f3babc8e9 | ||
| 
						 | 
					55ff827b50 | ||
| 
						 | 
					0daf65ef73 | ||
| 
						 | 
					2eab7cfc48 | ||
| 
						 | 
					a691993a86 | ||
| 
						 | 
					d3e83afb0a | ||
| 
						 | 
					129e4bc0ac | ||
| 
						 | 
					faec393b8d | ||
| 
						 | 
					a7d39be2b5 | ||
| 
						 | 
					8892637796 | ||
| 
						 | 
					00a9f98ee0 | ||
| 
						 | 
					4b8a9ece16 | ||
| 
						 | 
					fc8645245a | ||
| 
						 | 
					2d4553adf2 | ||
| 
						 | 
					5f02295a63 | ||
| 
						 | 
					8b1dd440ee | ||
| 
						 | 
					77a1a6a43d | ||
| 
						 | 
					e9c8125828 | ||
| 
						 | 
					3212af2fb4 | ||
| 
						 | 
					52dbe1469d | ||
| 
						 | 
					837ee6bcc6 | ||
| 
						 | 
					8a85be8f00 | ||
| 
						 | 
					3455d025a2 | ||
| 
						 | 
					d2f4502e74 | ||
| 
						 | 
					2144fab671 | ||
| 
						 | 
					e8c90833e8 | ||
| 
						 | 
					d567c86818 | ||
| 
						 | 
					931ba0fa8d | 
							
								
								
									
										17
									
								
								.cvsignore
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								.cvsignore
									
									
									
									
									
								
							@@ -1,7 +1,5 @@
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
call-vector.h
 | 
			
		||||
call-vector.h
 | 
			
		||||
aclocal.m4
 | 
			
		||||
config.cache
 | 
			
		||||
config.h
 | 
			
		||||
@@ -15,8 +13,6 @@ gtopConf.sh
 | 
			
		||||
i386-bsdi
 | 
			
		||||
i686-pc-linux-gnu
 | 
			
		||||
intl
 | 
			
		||||
libgtop-1.*.*.tar.gz
 | 
			
		||||
libgtop-1.*.*
 | 
			
		||||
libgtop-mirror.sh.swp
 | 
			
		||||
libgtopConf.sh
 | 
			
		||||
libtool
 | 
			
		||||
@@ -34,12 +30,7 @@ i686-pc-linux-gnu-linux
 | 
			
		||||
libgtop-config
 | 
			
		||||
ABOUT-NLS
 | 
			
		||||
libgtop.spec
 | 
			
		||||
install-sh
 | 
			
		||||
mkinstalldirs
 | 
			
		||||
missing
 | 
			
		||||
INSTALL
 | 
			
		||||
COPYING
 | 
			
		||||
glibtop-config.h
 | 
			
		||||
stamp-gc-h
 | 
			
		||||
build-debstamp
 | 
			
		||||
install-debstamp
 | 
			
		||||
libgtop*.tar.gz
 | 
			
		||||
*-debstamp
 | 
			
		||||
libgtop*.pc
 | 
			
		||||
autom4te.cache
 | 
			
		||||
 
 | 
			
		||||
@@ -7,18 +7,17 @@
 | 
			
		||||
# set LIBGTOP_BINARY_AGE and LIBGTOP_INTERFACE_AGE to 0.
 | 
			
		||||
#
 | 
			
		||||
LIBGTOP_MAJOR_VERSION=1
 | 
			
		||||
LIBGTOP_MINOR_VERSION=1
 | 
			
		||||
LIBGTOP_MICRO_VERSION=5
 | 
			
		||||
LIBGTOP_MINOR_VERSION=90
 | 
			
		||||
LIBGTOP_MICRO_VERSION=0
 | 
			
		||||
 | 
			
		||||
LIBGTOP_INTERFACE_AGE=0
 | 
			
		||||
LIBGTOP_BINARY_AGE=0
 | 
			
		||||
# you can set this to `-snap' for instance to create
 | 
			
		||||
# a `libgtop-1.x.y-snap.tar.gz' tarball.
 | 
			
		||||
LIBGTOP_VERSION_SUFFIX=
 | 
			
		||||
 | 
			
		||||
LIBGTOP_INTERFACE_AGE=0
 | 
			
		||||
LIBGTOP_BINARY_AGE=0
 | 
			
		||||
 | 
			
		||||
# Increase each time you change the client/server protocol.
 | 
			
		||||
LIBGTOP_SERVER_VERSION=53
 | 
			
		||||
LIBGTOP_SERVER_VERSION=5
 | 
			
		||||
 | 
			
		||||
# Don't change this
 | 
			
		||||
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
 | 
			
		||||
@@ -27,6 +26,3 @@ LIBGTOP_VERSION_CODE=`echo "$LIBGTOP_MAJOR_VERSION 1000000 * $LIBGTOP_MINOR_VERS
 | 
			
		||||
# For automake.
 | 
			
		||||
VERSION=$LIBGTOP_VERSION$LIBGTOP_VERSION_SUFFIX
 | 
			
		||||
PACKAGE=libgtop
 | 
			
		||||
 | 
			
		||||
# This is the default translation domain for LibGTop
 | 
			
		||||
LIBGTOP_PACKAGE=libgtop-$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										96
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										96
									
								
								Makefile.am
									
									
									
									
									
								
							@@ -1,96 +1,20 @@
 | 
			
		||||
## Process this file with automake to produce Makefile.in.
 | 
			
		||||
 | 
			
		||||
if BUILD_GNOME_SUPPORT
 | 
			
		||||
support = support
 | 
			
		||||
endif
 | 
			
		||||
SUBDIRS = po misc include sysdeps lib src examples doc
 | 
			
		||||
 | 
			
		||||
SUBDIRS = po intl $(support) macros misc include sysdeps backends lib \
 | 
			
		||||
	  src doc scripts
 | 
			
		||||
libgtopinclude_HEADERS = glibtop.h
 | 
			
		||||
libgtopincludedir = $(includedir)/libgtop-2.0
 | 
			
		||||
 | 
			
		||||
include_HEADERS = glibtop.h
 | 
			
		||||
configincludedir = $(pkglibdir)/include
 | 
			
		||||
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \
 | 
			
		||||
	LIBGTOP-VERSION features.def \
 | 
			
		||||
	libgtop-sysdeps.m4 README \
 | 
			
		||||
	libgtop-mirror.sh libgtop-2.0.pc.in acinclude.m4
 | 
			
		||||
 | 
			
		||||
noinst_HEADERS = glibtop-server-private.h
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt libgtopConf.sh.in \
 | 
			
		||||
	LIBGTOP-VERSION features.def structures.def libgtop-config.in \
 | 
			
		||||
	RELNOTES-0.25 RELNOTES-1.0 RELNOTES-1.1.x libgtop-sysdeps.m4 README \
 | 
			
		||||
	libgtop-mirror.sh
 | 
			
		||||
 | 
			
		||||
configinclude_DATA = \
 | 
			
		||||
	glibtop-config.h
 | 
			
		||||
 | 
			
		||||
BUILT_SOURCES = stamp-gc-h #note: not glibtop-config.h
 | 
			
		||||
glibtop-config.h: stamp-gc-h
 | 
			
		||||
	@:
 | 
			
		||||
stamp-gc-h: config.status
 | 
			
		||||
	CONFIG_FILES= CONFIG_HEADERS= CONFIG_OTHER=glibtop-config.h ./config.status
 | 
			
		||||
	echo timestamp > stamp-gc-h
 | 
			
		||||
 | 
			
		||||
dist-hook: libgtop.spec
 | 
			
		||||
dist-hook:
 | 
			
		||||
	cp libgtop.spec $(distdir)
 | 
			
		||||
 | 
			
		||||
release:
 | 
			
		||||
	$(MAKE) dist distdir=$(PACKAGE)-$(VERSION)
 | 
			
		||||
 | 
			
		||||
## Put `exec' in the name because this should be installed by
 | 
			
		||||
## `install-exec', not `install-data'.
 | 
			
		||||
confexecdir	= $(libdir)
 | 
			
		||||
confexec_DATA	= $(top_builddir)/libgtopConf.sh \
 | 
			
		||||
		  $(top_builddir)/libgtop-features.def \
 | 
			
		||||
		  $(top_builddir)/libgtop-structures.def
 | 
			
		||||
 | 
			
		||||
CLEANFILES=libgtopConf.sh
 | 
			
		||||
 | 
			
		||||
bin_SCRIPTS = $(top_builddir)/libgtop-config
 | 
			
		||||
 | 
			
		||||
## to automatically rebuild aclocal.m4 if any of the macros in
 | 
			
		||||
## `macros/' change
 | 
			
		||||
@MAINT@ include macros/macros.dep
 | 
			
		||||
@MAINT@macros/macros.dep: macros/Makefile.am
 | 
			
		||||
@MAINT@	cd macros && $(MAKE) macros.dep
 | 
			
		||||
 | 
			
		||||
@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
 | 
			
		||||
## the value NONE in configure if the user doesn't specify them (this
 | 
			
		||||
## is an autoconf feature, not a bug).
 | 
			
		||||
libgtopConf.sh: libgtopConf.sh.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_BACKEND_DIR\@#$(LIBGTOP_BACKEND_DIR)#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_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_PACKAGE\@#$(LIBGTOP_PACKAGE)#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' \
 | 
			
		||||
	      < $(srcdir)/libgtopConf.sh.in > libgtopConf.tmp \
 | 
			
		||||
	  && mv libgtopConf.tmp libgtopConf.sh
 | 
			
		||||
 | 
			
		||||
libgtop-config: libgtop-config.in Makefile
 | 
			
		||||
	sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
 | 
			
		||||
	      < $(srcdir)/libgtop-config.in > libgtop-config.tmp \
 | 
			
		||||
	  && mv libgtop-config.tmp libgtop-config && \
 | 
			
		||||
		chmod 755 libgtop-config
 | 
			
		||||
pkgconfigdir = $(libdir)/pkgconfig
 | 
			
		||||
pkgconfig_DATA = libgtop-2.0.pc
 | 
			
		||||
 | 
			
		||||
libgtop-features.def: features.def
 | 
			
		||||
	@LN_S@ $< $@
 | 
			
		||||
 | 
			
		||||
libgtop-structures.def: structures.def
 | 
			
		||||
	@LN_S@ $< $@
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										72
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										72
									
								
								NEWS
									
									
									
									
									
								
							@@ -1,16 +1,68 @@
 | 
			
		||||
January 14, 1999:
 | 
			
		||||
February 27, 2001:
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.12 "Gerolzhofen".
 | 
			
		||||
 | 
			
		||||
  - fix for Solaris 8 from Laszlo PETER (msg_limits, sem_limits).
 | 
			
		||||
 | 
			
		||||
  - fix for FreeBSD 4.2 from Rolf Grossmann (FreeBSD now uses
 | 
			
		||||
    `_KERNEL' instead of `KERNEL'). Bug #51334.
 | 
			
		||||
 | 
			
		||||
  - for BSDI, comment out `subnet' field in netload; this should make
 | 
			
		||||
    it compile, but there may be other problems. Bug #13345.
 | 
			
		||||
 | 
			
		||||
  This release is for GNOME 1.4 Beta2.
 | 
			
		||||
 | 
			
		||||
February 14, 2001:
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.11 "Jasmin":
 | 
			
		||||
 | 
			
		||||
  [The release which was supposed to be called "Gerolzhofen".]
 | 
			
		||||
 | 
			
		||||
  - merged in the Solaris code from LIBGTOP_1_1_2_PATCHES.
 | 
			
		||||
 | 
			
		||||
  - minor OpenBSD fixes.
 | 
			
		||||
 | 
			
		||||
  - again a bunch of updated translations.
 | 
			
		||||
 | 
			
		||||
  Please test the Solaris stuff and report and bugs and
 | 
			
		||||
  problems as soon as possible; I'll make a new release
 | 
			
		||||
  for the 2nd beta of GNOME 1.4 if necessary.
 | 
			
		||||
 | 
			
		||||
November 20, 2000:
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.10 "November Rain":
 | 
			
		||||
 | 
			
		||||
  - this release contains a bunch of updated translations.
 | 
			
		||||
 | 
			
		||||
May 25, 2000:
 | 
			
		||||
============
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.9 "Stuttgart".
 | 
			
		||||
 | 
			
		||||
  (LibGTop 1.0.8 "Frankfurt" was not publically released.)
 | 
			
		||||
 | 
			
		||||
February 15, 2000:
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.7 "Copenhagen":
 | 
			
		||||
 | 
			
		||||
  - this is a bug fix release for the GUADEC CD-ROM;
 | 
			
		||||
    it contains fixes in both the Linux and *BSD sysdeps
 | 
			
		||||
    directory.
 | 
			
		||||
 | 
			
		||||
October 18, 1999:
 | 
			
		||||
================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.1.4 "Earthquake"
 | 
			
		||||
* Released LibGTop 1.0.6 "October LibGTop":
 | 
			
		||||
 | 
			
		||||
  This is the first developer's snapshot release after a
 | 
			
		||||
  longer development period with a lot of interface changes.
 | 
			
		||||
  - compilation fixes for FreeBSD.
 | 
			
		||||
  - updated reference manual.
 | 
			
		||||
 | 
			
		||||
October 19, 1999:
 | 
			
		||||
================
 | 
			
		||||
September 29, 1999:
 | 
			
		||||
==================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.1.2 "Hardangervidda"
 | 
			
		||||
 | 
			
		||||
  This is a stable release from the development branch
 | 
			
		||||
  of LibGTop for Solaris users of October GNOME.
 | 
			
		||||
* Released LibGTop 1.0.5.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								README
									
									
									
									
									
								
							@@ -1,32 +1,8 @@
 | 
			
		||||
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.
 | 
			
		||||
$Id$
 | 
			
		||||
 | 
			
		||||
Please use the LIBGTOP_STABLE_1_0 branch (which is LibGTop 1.0.x)
 | 
			
		||||
unless you're really a developer.
 | 
			
		||||
LATEST NEWS:
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
Please look also in the file 'NEWS' for latest news.
 | 
			
		||||
 
 | 
			
		||||
Martin
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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,50 +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:
 | 
			
		||||
----------------------------
 | 
			
		||||
 | 
			
		||||
* All `glibtop_get_<feature>_* ()' and all `glibtop_init_<feature>_* ()'
 | 
			
		||||
  functions now have an `int' return value and return 0 on success and -1
 | 
			
		||||
  on failure.
 | 
			
		||||
 | 
			
		||||
* 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
 | 
			
		||||
							
								
								
									
										18
									
								
								acconfig.h
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								acconfig.h
									
									
									
									
									
								
							@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Define if gethostname () must be declared. */
 | 
			
		||||
#undef NEED_DECLARATION_GETHOSTNAME
 | 
			
		||||
@@ -20,11 +18,11 @@
 | 
			
		||||
 | 
			
		||||
#undef ENABLE_NLS
 | 
			
		||||
#undef HAVE_CATGETS
 | 
			
		||||
#undef GETTEXT_PACKAGE
 | 
			
		||||
#undef HAVE_GETTEXT
 | 
			
		||||
#undef HAVE_LC_MESSAGES
 | 
			
		||||
#undef HAVE_STPCPY
 | 
			
		||||
#undef HAVE_STRUCT_OSOCKADDR
 | 
			
		||||
#undef LIBGTOP_PACKAGE
 | 
			
		||||
#undef PACKAGE
 | 
			
		||||
#undef VERSION
 | 
			
		||||
#undef HAVE_LIBSM
 | 
			
		||||
@@ -125,20 +123,23 @@
 | 
			
		||||
#undef HAVE_LIBZ
 | 
			
		||||
#undef HAVE_LIBPNG
 | 
			
		||||
#undef HAVE_GMP2_INCLUDE_DIR
 | 
			
		||||
#undef HAVE_GUILE
 | 
			
		||||
 | 
			
		||||
#undef ssize_t
 | 
			
		||||
#undef u_int64_t
 | 
			
		||||
#undef guint64
 | 
			
		||||
#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_LINUX_TABLE
 | 
			
		||||
#undef HAVE_LIBGTOP_SMP
 | 
			
		||||
 | 
			
		||||
#undef HAVE_XAUTH
 | 
			
		||||
@@ -151,9 +152,6 @@
 | 
			
		||||
#undef LIBGTOP_ENABLE_DEBUG
 | 
			
		||||
#undef LIBGTOP_FATAL_WARNINGS
 | 
			
		||||
 | 
			
		||||
/* Define to use glib's malloc. */
 | 
			
		||||
#undef LIBGTOP_USE_GLIB_MALLOC
 | 
			
		||||
 | 
			
		||||
/* Same as LINUX_VERSION_CODE either from <linux/version.h> or from
 | 
			
		||||
 * the running kernel (if we don't have configured kernel sources).
 | 
			
		||||
 */
 | 
			
		||||
@@ -170,7 +168,3 @@
 | 
			
		||||
 | 
			
		||||
/* Define if you have the <sys/procfs.h> header file */
 | 
			
		||||
#undef HAVE_SYS_PROCFS_H
 | 
			
		||||
 | 
			
		||||
/* Define if you have the libxml library */
 | 
			
		||||
#undef HAVE_LIBXML
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										878
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										878
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,878 @@
 | 
			
		||||
dnl This is just copied m4s from need-declaration.m4 gnome-fileutils.m4
 | 
			
		||||
dnl gnome-supprt-checks.m4 and a little from gnome-libgtop-check.m4
 | 
			
		||||
dnl and finally libgtop-sysdeps.m4
 | 
			
		||||
 | 
			
		||||
dnl
 | 
			
		||||
dnl LIBGTOP_CHECK_TYPE
 | 
			
		||||
dnl
 | 
			
		||||
dnl Improved version of AC_CHECK_TYPE which takes into account
 | 
			
		||||
dnl that we need to #include some other header files on some
 | 
			
		||||
dnl systems to get some types.
 | 
			
		||||
 | 
			
		||||
dnl AC_LIBGTOP_CHECK_TYPE(TYPE, DEFAULT)
 | 
			
		||||
AC_DEFUN([AC_LIBGTOP_CHECK_TYPE],
 | 
			
		||||
[AC_REQUIRE([AC_HEADER_STDC])dnl
 | 
			
		||||
AC_MSG_CHECKING(for $1)
 | 
			
		||||
AC_CACHE_VAL(ac_cv_type_$1,
 | 
			
		||||
[AC_EGREP_CPP(dnl
 | 
			
		||||
changequote(<<,>>)dnl
 | 
			
		||||
<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl
 | 
			
		||||
changequote([,]), [#include <sys/types.h>
 | 
			
		||||
#if STDC_HEADERS
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* For Tru64 */
 | 
			
		||||
#ifdef HAVE_SYS_BITYPES_H
 | 
			
		||||
#include <sys/bitypes.h>
 | 
			
		||||
#endif
 | 
			
		||||
], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
 | 
			
		||||
AC_MSG_RESULT($ac_cv_type_$1)
 | 
			
		||||
if test $ac_cv_type_$1 = no; then
 | 
			
		||||
  AC_DEFINE($1, $2)
 | 
			
		||||
fi
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
dnl
 | 
			
		||||
dnl GNOME_LIBGTOP_TYPES
 | 
			
		||||
dnl
 | 
			
		||||
dnl some typechecks for libgtop.
 | 
			
		||||
dnl
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([GNOME_LIBGTOP_TYPES],
 | 
			
		||||
[
 | 
			
		||||
        AC_CHECK_HEADERS(sys/bitypes.h)
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
dnl See whether we need a declaration for a function.
 | 
			
		||||
dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES])
 | 
			
		||||
AC_DEFUN([GCC_NEED_DECLARATION],
 | 
			
		||||
[AC_MSG_CHECKING([whether $1 must be declared])
 | 
			
		||||
AC_CACHE_VAL(gcc_cv_decl_needed_$1,
 | 
			
		||||
[AC_TRY_COMPILE([
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#ifdef HAVE_STRING_H
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#else
 | 
			
		||||
#ifdef HAVE_STRINGS_H
 | 
			
		||||
#include <strings.h>
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_STDLIB_H
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_UNISTD_H
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#endif
 | 
			
		||||
$2],
 | 
			
		||||
[char *(*pfn) = (char *(*)) $1],
 | 
			
		||||
eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")])
 | 
			
		||||
if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then
 | 
			
		||||
  AC_MSG_RESULT(yes)
 | 
			
		||||
  gcc_need_declarations="$gcc_need_declarations $1"
 | 
			
		||||
  gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 | 
			
		||||
  AC_DEFINE_UNQUOTED($gcc_tr_decl)
 | 
			
		||||
else
 | 
			
		||||
  AC_MSG_RESULT(no)
 | 
			
		||||
fi
 | 
			
		||||
])dnl
 | 
			
		||||
 | 
			
		||||
dnl Check multiple functions to see whether each needs a declaration.
 | 
			
		||||
dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES])
 | 
			
		||||
AC_DEFUN([GCC_NEED_DECLARATIONS],
 | 
			
		||||
[for ac_func in $1
 | 
			
		||||
do
 | 
			
		||||
GCC_NEED_DECLARATION($ac_func, $2)
 | 
			
		||||
done
 | 
			
		||||
]
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
dnl
 | 
			
		||||
dnl GNOME_FILEUTILS_CHECKS
 | 
			
		||||
dnl
 | 
			
		||||
dnl checks that are needed for the diskusage applet.
 | 
			
		||||
dnl
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([GNOME_FILEUTILS_CHECKS],
 | 
			
		||||
[
 | 
			
		||||
AC_CHECK_HEADERS(fcntl.h sys/param.h sys/statfs.h sys/fstyp.h \
 | 
			
		||||
mnttab.h mntent.h sys/statvfs.h sys/vfs.h sys/mount.h \
 | 
			
		||||
sys/filsys.h sys/fs_types.h sys/fs/s5param.h)
 | 
			
		||||
 | 
			
		||||
AC_CHECK_FUNCS(bcopy endgrent endpwent fchdir ftime ftruncate \
 | 
			
		||||
getcwd getmntinfo gettimeofday isascii lchown \
 | 
			
		||||
listmntent memcpy mkfifo strchr strerror strrchr vprintf)
 | 
			
		||||
 | 
			
		||||
dnl Set some defaults when cross-compiling
 | 
			
		||||
 | 
			
		||||
if test x$cross_compiling = xyes ; then
 | 
			
		||||
        case "$host_os" in
 | 
			
		||||
        linux*)
 | 
			
		||||
          fu_cv_sys_mounted_getmntent1=yes
 | 
			
		||||
          fu_cv_sys_stat_statfs2_bsize=yes
 | 
			
		||||
          ;;
 | 
			
		||||
        sunos*)
 | 
			
		||||
          fu_cv_sys_stat_statfs4=yes
 | 
			
		||||
          ;;
 | 
			
		||||
        freebsd*)
 | 
			
		||||
          fu_cv_sys_stat_statfs2_bsize=yes
 | 
			
		||||
          ;;
 | 
			
		||||
        osf*)
 | 
			
		||||
          fu_cv_sys_stat_statfs3_osf1=yes
 | 
			
		||||
          ;;
 | 
			
		||||
        esac
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Determine how to get the list of mounted filesystems.
 | 
			
		||||
list_mounted_fs=
 | 
			
		||||
 | 
			
		||||
# If the getmntent function is available but not in the standard library,
 | 
			
		||||
# make sure LIBS contains -lsun (on Irix4) or -lseq (on PTX).
 | 
			
		||||
AC_FUNC_GETMNTENT
 | 
			
		||||
 | 
			
		||||
# This test must precede the ones for getmntent because Unicos-9 is
 | 
			
		||||
# reported to have the getmntent function, but its support is incompatible
 | 
			
		||||
# with other getmntent implementations.
 | 
			
		||||
 | 
			
		||||
# NOTE: Normally, I wouldn't use a check for system type as I've done for
 | 
			
		||||
# `CRAY' below since that goes against the whole autoconf philosophy.  But
 | 
			
		||||
# I think there is too great a chance that some non-Cray system has a
 | 
			
		||||
# function named listmntent to risk the false positive.
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# Cray UNICOS 9
 | 
			
		||||
AC_MSG_CHECKING([for listmntent of Cray/Unicos-9])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_cray_listmntent,
 | 
			
		||||
[fu_cv_sys_mounted_cray_listmntent=no
 | 
			
		||||
AC_EGREP_CPP(yes,
 | 
			
		||||
[#ifdef _CRAY
 | 
			
		||||
yes
 | 
			
		||||
#endif
 | 
			
		||||
], [test $ac_cv_func_listmntent = yes \
 | 
			
		||||
&& fu_cv_sys_mounted_cray_listmntent=yes]
 | 
			
		||||
)
 | 
			
		||||
]
 | 
			
		||||
)
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent)
 | 
			
		||||
if test $fu_cv_sys_mounted_cray_listmntent = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_LISTMNTENT)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $ac_cv_func_getmntent = yes; then
 | 
			
		||||
 | 
			
		||||
# This system has the getmntent function.
 | 
			
		||||
# Determine whether it's the one-argument variant or the two-argument one.
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# 4.3BSD, SunOS, HP-UX, Dynix, Irix
 | 
			
		||||
AC_MSG_CHECKING([for one-argument getmntent function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1,
 | 
			
		||||
[test $ac_cv_header_mntent_h = yes \
 | 
			
		||||
&& fu_cv_sys_mounted_getmntent1=yes \
 | 
			
		||||
|| fu_cv_sys_mounted_getmntent1=no])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1)
 | 
			
		||||
if test $fu_cv_sys_mounted_getmntent1 = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETMNTENT1)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# SVR4
 | 
			
		||||
AC_MSG_CHECKING([for two-argument getmntent function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmntent2,
 | 
			
		||||
[AC_EGREP_HEADER(getmntent, sys/mnttab.h,
 | 
			
		||||
fu_cv_sys_mounted_getmntent2=yes,
 | 
			
		||||
fu_cv_sys_mounted_getmntent2=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2)
 | 
			
		||||
if test $fu_cv_sys_mounted_getmntent2 = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETMNTENT2)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
AC_MSG_ERROR([could not determine how to read list of mounted filesystems])
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# DEC Alpha running OSF/1.
 | 
			
		||||
AC_MSG_CHECKING([for getfsstat function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getsstat,
 | 
			
		||||
[AC_TRY_LINK([
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#include <sys/fs_types.h>],
 | 
			
		||||
[struct statfs *stats;
 | 
			
		||||
int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); ],
 | 
			
		||||
fu_cv_sys_mounted_getsstat=yes,
 | 
			
		||||
fu_cv_sys_mounted_getsstat=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getsstat)
 | 
			
		||||
if test $fu_cv_sys_mounted_getsstat = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETFSSTAT)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# AIX.
 | 
			
		||||
AC_MSG_CHECKING([for mntctl function and struct vmount])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_vmount,
 | 
			
		||||
[AC_TRY_CPP([#include <fshelp.h>],
 | 
			
		||||
fu_cv_sys_mounted_vmount=yes,
 | 
			
		||||
fu_cv_sys_mounted_vmount=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_vmount)
 | 
			
		||||
if test $fu_cv_sys_mounted_vmount = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_VMOUNT)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# SVR3
 | 
			
		||||
AC_MSG_CHECKING([for FIXME existence of three headers])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_fread_fstyp,
 | 
			
		||||
[AC_TRY_CPP([
 | 
			
		||||
#include <sys/statfs.h>
 | 
			
		||||
#include <sys/fstyp.h>
 | 
			
		||||
#include <mnttab.h>],
 | 
			
		||||
fu_cv_sys_mounted_fread_fstyp=yes,
 | 
			
		||||
fu_cv_sys_mounted_fread_fstyp=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp)
 | 
			
		||||
if test $fu_cv_sys_mounted_fread_fstyp = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_FREAD_FSTYP)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# 4.4BSD and DEC OSF/1.
 | 
			
		||||
AC_MSG_CHECKING([for getmntinfo function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo,
 | 
			
		||||
[
 | 
			
		||||
ok=
 | 
			
		||||
if test $ac_cv_func_getmntinfo = yes; then
 | 
			
		||||
AC_EGREP_HEADER(f_type;, sys/mount.h,
 | 
			
		||||
ok=yes)
 | 
			
		||||
fi
 | 
			
		||||
test -n "$ok" \
 | 
			
		||||
&& fu_cv_sys_mounted_getmntinfo=yes \
 | 
			
		||||
|| fu_cv_sys_mounted_getmntinfo=no
 | 
			
		||||
])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo)
 | 
			
		||||
if test $fu_cv_sys_mounted_getmntinfo = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETMNTINFO)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# FIXME: add a test for netbsd-1.1 here
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# Ultrix
 | 
			
		||||
AC_MSG_CHECKING([for getmnt function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmnt,
 | 
			
		||||
[AC_TRY_CPP([
 | 
			
		||||
#include <sys/fs_types.h>
 | 
			
		||||
#include <sys/mount.h>],
 | 
			
		||||
fu_cv_sys_mounted_getmnt=yes,
 | 
			
		||||
fu_cv_sys_mounted_getmnt=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmnt)
 | 
			
		||||
if test $fu_cv_sys_mounted_getmnt = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETMNT)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# SVR2
 | 
			
		||||
AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_fread,
 | 
			
		||||
[AC_TRY_CPP([#include <mnttab.h>],
 | 
			
		||||
fu_cv_sys_mounted_fread=yes,
 | 
			
		||||
fu_cv_sys_mounted_fread=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_fread)
 | 
			
		||||
if test $fu_cv_sys_mounted_fread = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_FREAD)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
AC_MSG_ERROR([could not determine how to read list of mounted filesystems])
 | 
			
		||||
# FIXME -- no need to abort building the whole package
 | 
			
		||||
# Cannot build mountlist.c or anything that needs its functions
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AC_CHECKING(how to get filesystem space usage)
 | 
			
		||||
space=no
 | 
			
		||||
 | 
			
		||||
# Perform only the link test since it seems there are no variants of the
 | 
			
		||||
# statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
 | 
			
		||||
# because that got a false positive on SCO OSR5.  Adding the declaration
 | 
			
		||||
# of a `struct statvfs' causes this test to fail (as it should) on such
 | 
			
		||||
# systems.  That system is reported to work fine with STAT_STATFS4 which
 | 
			
		||||
# is what it gets when this test fails.
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# SVR4
 | 
			
		||||
AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
 | 
			
		||||
[AC_TRY_LINK([#include <sys/types.h>
 | 
			
		||||
#include <sys/statvfs.h>],
 | 
			
		||||
[struct statvfs fsd; statvfs (0, &fsd);],
 | 
			
		||||
fu_cv_sys_stat_statvfs=yes,
 | 
			
		||||
fu_cv_sys_stat_statvfs=no)])
 | 
			
		||||
if test $fu_cv_sys_stat_statvfs = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATVFS)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# DEC Alpha running OSF/1
 | 
			
		||||
AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
 | 
			
		||||
[AC_TRY_RUN([
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct statfs fsd;
 | 
			
		||||
fsd.f_fsize = 0;
 | 
			
		||||
return (statfs (".", &fsd, sizeof (struct statfs)));
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_statfs3_osf1=yes,
 | 
			
		||||
fu_cv_sys_stat_statfs3_osf1=no,
 | 
			
		||||
fu_cv_sys_stat_statfs3_osf1=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
 | 
			
		||||
if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS3_OSF1)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# AIX
 | 
			
		||||
AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
 | 
			
		||||
member (AIX, 4.3BSD)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
 | 
			
		||||
[AC_TRY_RUN([
 | 
			
		||||
#ifdef HAVE_SYS_PARAM_H
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_MOUNT_H
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_VFS_H
 | 
			
		||||
#include <sys/vfs.h>
 | 
			
		||||
#endif
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct statfs fsd;
 | 
			
		||||
fsd.f_bsize = 0;
 | 
			
		||||
return (statfs (".", &fsd));
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_statfs2_bsize=yes,
 | 
			
		||||
fu_cv_sys_stat_statfs2_bsize=no,
 | 
			
		||||
fu_cv_sys_stat_statfs2_bsize=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
 | 
			
		||||
if test $fu_cv_sys_stat_statfs2_bsize = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS2_BSIZE)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# SVR3
 | 
			
		||||
AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
 | 
			
		||||
[AC_TRY_RUN([#include <sys/types.h>
 | 
			
		||||
#include <sys/statfs.h>
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct statfs fsd;
 | 
			
		||||
return (statfs (".", &fsd, sizeof fsd, 0));
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_statfs4=yes,
 | 
			
		||||
fu_cv_sys_stat_statfs4=no,
 | 
			
		||||
fu_cv_sys_stat_statfs4=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
 | 
			
		||||
if test $fu_cv_sys_stat_statfs4 = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS4)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# 4.4BSD and NetBSD
 | 
			
		||||
AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
 | 
			
		||||
member (4.4BSD and NetBSD)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
 | 
			
		||||
[AC_TRY_RUN([#include <sys/types.h>
 | 
			
		||||
#ifdef HAVE_SYS_PARAM_H
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_MOUNT_H
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#endif
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct statfs fsd;
 | 
			
		||||
fsd.f_fsize = 0;
 | 
			
		||||
return (statfs (".", &fsd));
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_statfs2_fsize=yes,
 | 
			
		||||
fu_cv_sys_stat_statfs2_fsize=no,
 | 
			
		||||
fu_cv_sys_stat_statfs2_fsize=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
 | 
			
		||||
if test $fu_cv_sys_stat_statfs2_fsize = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS2_FSIZE)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# Ultrix
 | 
			
		||||
AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
 | 
			
		||||
[AC_TRY_RUN([#include <sys/types.h>
 | 
			
		||||
#ifdef HAVE_SYS_PARAM_H
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_MOUNT_H
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_FS_TYPES_H
 | 
			
		||||
#include <sys/fs_types.h>
 | 
			
		||||
#endif
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct fs_data fsd;
 | 
			
		||||
/* Ultrix's statfs returns 1 for success,
 | 
			
		||||
0 for not mounted, -1 for failure.  */
 | 
			
		||||
return (statfs (".", &fsd) != 1);
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_fs_data=yes,
 | 
			
		||||
fu_cv_sys_stat_fs_data=no,
 | 
			
		||||
fu_cv_sys_stat_fs_data=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
 | 
			
		||||
if test $fu_cv_sys_stat_fs_data = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS2_FS_DATA)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# SVR2
 | 
			
		||||
AC_TRY_CPP([#include <sys/filsys.h>],
 | 
			
		||||
AC_DEFINE(STAT_READ_FILSYS) space=yes)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -n "$list_mounted_fs" && test $space != no; then
 | 
			
		||||
DF_PROG="df"
 | 
			
		||||
# AC_LIBOBJ(fsusage)
 | 
			
		||||
# AC_LIBOBJ(mountlist)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Check for SunOS statfs brokenness wrt partitions 2GB and larger.
 | 
			
		||||
# If <sys/vfs.h> exists and struct statfs has a member named f_spare,
 | 
			
		||||
# enable the work-around code in fsusage.c.
 | 
			
		||||
AC_MSG_CHECKING([for statfs that truncates block counts])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
 | 
			
		||||
[AC_TRY_COMPILE([
 | 
			
		||||
#if !defined(sun) && !defined(__sun)
 | 
			
		||||
choke -- this is a workaround for a Sun-specific problem
 | 
			
		||||
#endif
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/vfs.h>],
 | 
			
		||||
[struct statfs t; long c = *(t.f_spare);],
 | 
			
		||||
fu_cv_sys_truncating_statfs=yes,
 | 
			
		||||
fu_cv_sys_truncating_statfs=no,
 | 
			
		||||
)])
 | 
			
		||||
if test $fu_cv_sys_truncating_statfs = yes; then
 | 
			
		||||
AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS)
 | 
			
		||||
fi
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_truncating_statfs)
 | 
			
		||||
 | 
			
		||||
AC_CHECKING(for AFS)
 | 
			
		||||
test -d /afs && AC_DEFINE(AFS)
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
dnl GNOME_SUPPORT_CHECKS
 | 
			
		||||
dnl    Check for various support functions needed by the standard
 | 
			
		||||
dnl    Gnome libraries.  Sets LIBOBJS, might define some macros.
 | 
			
		||||
dnl    This should only be used when building the Gnome libs; 
 | 
			
		||||
dnl    Gnome clients should not need this macro.
 | 
			
		||||
AC_DEFUN([GNOME_SUPPORT_CHECKS],[
 | 
			
		||||
  # we need an `awk' to build `gnomesupport.h'
 | 
			
		||||
  AC_REQUIRE([AC_PROG_AWK])
 | 
			
		||||
 | 
			
		||||
  # this should go away soon
 | 
			
		||||
  need_gnome_support=yes
 | 
			
		||||
 | 
			
		||||
  AC_CHECK_FUNCS(getopt_long,,
 | 
			
		||||
   [AC_LIBOBJ(getopt)
 | 
			
		||||
    AC_LIBOBJ(getopt1)])
 | 
			
		||||
 | 
			
		||||
  # for `scandir'
 | 
			
		||||
  AC_HEADER_DIRENT
 | 
			
		||||
 | 
			
		||||
  # copied from `configure.in' of `libiberty'
 | 
			
		||||
  vars="program_invocation_short_name program_invocation_name sys_errlist"
 | 
			
		||||
  for v in $vars; do
 | 
			
		||||
    AC_MSG_CHECKING([for $v])
 | 
			
		||||
    AC_CACHE_VAL(gnome_cv_var_$v,
 | 
			
		||||
      [AC_TRY_LINK([int *p;], [extern int $v; p = &$v;],
 | 
			
		||||
		   [eval "gnome_cv_var_$v=yes"],
 | 
			
		||||
		   [eval "gnome_cv_var_$v=no"])])
 | 
			
		||||
    if eval "test \"`echo '$gnome_cv_var_'$v`\" = yes"; then
 | 
			
		||||
      AC_MSG_RESULT(yes)
 | 
			
		||||
      n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 | 
			
		||||
      AC_DEFINE_UNQUOTED($n)
 | 
			
		||||
    else
 | 
			
		||||
      AC_MSG_RESULT(no)
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  AC_REPLACE_FUNCS(memmove mkstemp scandir strcasecmp strerror strndup strnlen)
 | 
			
		||||
  AC_REPLACE_FUNCS(strtok_r strtod strtol strtoul vasprintf vsnprintf)
 | 
			
		||||
 | 
			
		||||
  AC_CHECK_FUNCS(realpath,,AC_LIBOBJ(canonicalize))
 | 
			
		||||
 | 
			
		||||
  # to include `error.c' error.c has some HAVE_* checks
 | 
			
		||||
  AC_CHECK_FUNCS(vprintf doprnt strerror_r)
 | 
			
		||||
  # stolen from am_func_error_at_line
 | 
			
		||||
  AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
 | 
			
		||||
  [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
 | 
			
		||||
              am_cv_lib_error_at_line=yes,
 | 
			
		||||
              am_cv_lib_error_at_line=no)])
 | 
			
		||||
  if test $am_cv_lib_error_at_line = no; then
 | 
			
		||||
    AC_LIBOBJ(error)
 | 
			
		||||
  fi
 | 
			
		||||
  
 | 
			
		||||
  # This is required if we declare setreuid () and setregid ().
 | 
			
		||||
  AC_TYPE_UID_T
 | 
			
		||||
 | 
			
		||||
  # see if we need to declare some functions.  Solaris is notorious for
 | 
			
		||||
  # putting functions into the `libc' but not listing them in the headers
 | 
			
		||||
  AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h dirent.h)
 | 
			
		||||
  GCC_NEED_DECLARATIONS(gethostname setreuid setregid getpagesize)
 | 
			
		||||
  GCC_NEED_DECLARATION(scandir,[
 | 
			
		||||
#ifdef HAVE_DIRENT_H
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#endif
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
  AC_SUBST(need_gnome_support)
 | 
			
		||||
 | 
			
		||||
  AM_CONDITIONAL(BUILD_GNOME_SUPPORT, test "$need_gnome_support" = yes)
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
dnl This file is intended for use both internally in libgtop and in every program
 | 
			
		||||
dnl that wants to use it.
 | 
			
		||||
dnl
 | 
			
		||||
dnl It defines the following variables:
 | 
			
		||||
dnl
 | 
			
		||||
dnl * 'libgtop_sysdeps_dir'    - sysdeps dir for libgtop.
 | 
			
		||||
dnl * 'libgtop_use_machine_h'  - some of system dependend parts of libgtop provide
 | 
			
		||||
dnl                              their own header file. In this case we need to
 | 
			
		||||
dnl                              define 'HAVE_GLIBTOP_MACHINE_H'.
 | 
			
		||||
dnl * 'libgtop_need_server'    - is the server really needed? Defines 'NEED_LIBGTOP'
 | 
			
		||||
dnl                              if true; defines conditional 'NEED_LIBGTOP'.
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([LIBGTOP_HACKER_TESTS],[
 | 
			
		||||
	AC_REQUIRE([AC_CANONICAL_HOST])
 | 
			
		||||
 | 
			
		||||
	AC_ARG_WITH(linux-table,
 | 
			
		||||
      [  --with-linux-table      Use the table () function from Martin Baulig],
 | 
			
		||||
	[linux_table="$withval"],[linux_table=auto])
 | 
			
		||||
	case "$host_os" in
 | 
			
		||||
	linux*)
 | 
			
		||||
	  if test $linux_table = yes ; then
 | 
			
		||||
	    AC_CHECK_HEADER(linux/table.h, linux_table=yes, linux_table=no)
 | 
			
		||||
	  elif test $linux_table = auto ; then
 | 
			
		||||
	    AC_MSG_CHECKING(for table function in Linux Kernel)
 | 
			
		||||
	    AC_TRY_RUN([
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <linux/unistd.h>
 | 
			
		||||
#include <linux/table.h>
 | 
			
		||||
 | 
			
		||||
#include <syscall.h>
 | 
			
		||||
 | 
			
		||||
static inline _syscall3 (int, table, int, type, union table *, tbl, const void *, param);
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (void)
 | 
			
		||||
{
 | 
			
		||||
	union table tbl;
 | 
			
		||||
	int ret;
 | 
			
		||||
 | 
			
		||||
	ret = table (TABLE_VERSION, NULL, NULL);
 | 
			
		||||
 | 
			
		||||
	if (ret == -1)
 | 
			
		||||
		exit (-errno);
 | 
			
		||||
 | 
			
		||||
	exit (ret < 1 ? ret : 0);
 | 
			
		||||
}
 | 
			
		||||
], linux_table=yes, linux_table=no, linux_table=no)
 | 
			
		||||
	    AC_MSG_RESULT($linux_table)
 | 
			
		||||
	  fi
 | 
			
		||||
	  if test $linux_table = yes ; then
 | 
			
		||||
	    AC_DEFINE(HAVE_LINUX_TABLE)
 | 
			
		||||
	  fi
 | 
			
		||||
	  ;;
 | 
			
		||||
	esac
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
 | 
			
		||||
	AC_REQUIRE([AC_CANONICAL_HOST])
 | 
			
		||||
 | 
			
		||||
	AC_SUBST(libgtop_sysdeps_dir)
 | 
			
		||||
	AC_SUBST(libgtop_use_machine_h)
 | 
			
		||||
	AC_SUBST(libgtop_need_server)
 | 
			
		||||
 | 
			
		||||
	AC_ARG_WITH(libgtop-examples,
 | 
			
		||||
	[  --with-libgtop-examples Build the libgtop examples (default=no)],[
 | 
			
		||||
	build_examples="$withval"], [build_examples=no])
 | 
			
		||||
 | 
			
		||||
	AM_CONDITIONAL(EXAMPLES, test x"$build_examples" = xyes)
 | 
			
		||||
 | 
			
		||||
	AC_ARG_ENABLE(hacker-mode,
 | 
			
		||||
	[  --enable-hacker-mode    Enable building of unstable sysdeps],
 | 
			
		||||
	[hacker_mode="$enableval"], [hacker_mode=no])
 | 
			
		||||
 | 
			
		||||
	AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
 | 
			
		||||
 | 
			
		||||
	linux_table=auto
 | 
			
		||||
	if test x$hacker_mode = xyes ; then
 | 
			
		||||
	  LIBGTOP_HACKER_TESTS
 | 
			
		||||
	fi
 | 
			
		||||
	AM_CONDITIONAL(LINUX_TABLE, test $linux_table = yes)
 | 
			
		||||
 | 
			
		||||
	AC_ARG_WITH(libgtop-smp,
 | 
			
		||||
	[  --with-libgtop-smp      Enable SMP support (default-auto)],[
 | 
			
		||||
	libgtop_smp="$withval"],[libgtop_smp=auto])
 | 
			
		||||
 | 
			
		||||
	if test $libgtop_smp = auto ; then
 | 
			
		||||
	  AC_MSG_CHECKING(whether to enable SMP support)
 | 
			
		||||
	  case "$host_os" in
 | 
			
		||||
	  linux*)
 | 
			
		||||
	    libgtop_smp=yes
 | 
			
		||||
	    ;;
 | 
			
		||||
	  aix*)
 | 
			
		||||
	    libgtop_smp=yes
 | 
			
		||||
	    ;;
 | 
			
		||||
	  *)
 | 
			
		||||
	    libgtop_smp=no
 | 
			
		||||
	    ;;
 | 
			
		||||
	  esac
 | 
			
		||||
	  AC_MSG_RESULT($libgtop_smp)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if test $libgtop_smp = yes ; then
 | 
			
		||||
	  AC_DEFINE(HAVE_LIBGTOP_SMP)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	AM_CONDITIONAL(LIBGTOP_SMP, test $libgtop_smp = yes)
 | 
			
		||||
 | 
			
		||||
	AC_MSG_CHECKING(for libgtop sysdeps directory)
 | 
			
		||||
 | 
			
		||||
	case "$host_os" in
 | 
			
		||||
	linux*)
 | 
			
		||||
	  if test x$linux_table = xyes ; then
 | 
			
		||||
	    libgtop_sysdeps_dir=kernel
 | 
			
		||||
	    libgtop_use_machine_h=no
 | 
			
		||||
	  else
 | 
			
		||||
	    libgtop_sysdeps_dir=linux
 | 
			
		||||
	    libgtop_use_machine_h=no
 | 
			
		||||
	    libgtop_have_sysinfo=yes
 | 
			
		||||
	  fi
 | 
			
		||||
	  libgtop_need_server=no
 | 
			
		||||
	  ;;
 | 
			
		||||
	freebsd*|netbsd*|openbsd*|bsdi*)
 | 
			
		||||
	  libgtop_sysdeps_dir=freebsd
 | 
			
		||||
	  libgtop_use_machine_h=yes
 | 
			
		||||
	  libgtop_need_server=yes
 | 
			
		||||
	  libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
 | 
			
		||||
	  ;;
 | 
			
		||||
	solaris*)
 | 
			
		||||
	  libgtop_sysdeps_dir=solaris
 | 
			
		||||
	  libgtop_use_machine_h=yes
 | 
			
		||||
	  libgtop_need_server=yes
 | 
			
		||||
	  libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
 | 
			
		||||
	  ;;
 | 
			
		||||
        aix*)
 | 
			
		||||
	  libgtop_sysdeps_dir=aix
 | 
			
		||||
	  libgtop_use_machine_h=yes
 | 
			
		||||
	  libgtop_need_server=yes
 | 
			
		||||
	  libgtop_have_sysinfo=yes
 | 
			
		||||
	  libgtop_postinstall='chgrp system $(bindir)/libgtop_server && chmod g+s $(bindir)/libgtop_server2'
 | 
			
		||||
          ;;
 | 
			
		||||
	*)
 | 
			
		||||
	  if test x$hacker_mode = xyes ; then
 | 
			
		||||
	    case "$host_os" in
 | 
			
		||||
	    sunos4*)
 | 
			
		||||
	      #Please note that this port is obsolete and not working at
 | 
			
		||||
	      #all. It is only useful for people who want to fix it ... :-)
 | 
			
		||||
	      libgtop_sysdeps_dir=sun4
 | 
			
		||||
	      libgtop_use_machine_h=yes
 | 
			
		||||
	      libgtop_need_server=yes
 | 
			
		||||
	      ;;
 | 
			
		||||
	    osf*)
 | 
			
		||||
	      libgtop_sysdeps_dir=osf1
 | 
			
		||||
	      libgtop_use_machine_h=yes
 | 
			
		||||
	      libgtop_need_server=yes
 | 
			
		||||
	      ;;
 | 
			
		||||
	    *)
 | 
			
		||||
	      libgtop_sysdeps_dir=stub
 | 
			
		||||
	      libgtop_use_machine_h=no
 | 
			
		||||
	      libgtop_need_server=no
 | 
			
		||||
	      ;;
 | 
			
		||||
	    esac
 | 
			
		||||
	  else
 | 
			
		||||
	    libgtop_sysdeps_dir=stub
 | 
			
		||||
	    libgtop_use_machine_h=no
 | 
			
		||||
	    libgtop_need_server=no
 | 
			
		||||
	  fi
 | 
			
		||||
	  ;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	test -z "$libgtop_postinstall" && libgtop_postinstall=:
 | 
			
		||||
 | 
			
		||||
	AC_MSG_RESULT($libgtop_sysdeps_dir)
 | 
			
		||||
 | 
			
		||||
	AC_SUBST(libgtop_sysdeps_dir)
 | 
			
		||||
	AC_SUBST(libgtop_postinstall)
 | 
			
		||||
	AC_SUBST(libgtop_have_sysinfo)
 | 
			
		||||
 | 
			
		||||
	case "$host_os" in
 | 
			
		||||
	*bsd*)
 | 
			
		||||
	  AC_CHECK_HEADERS(net/if_var.h)
 | 
			
		||||
	  AC_MSG_CHECKING([for I4B])
 | 
			
		||||
	  AC_TRY_COMPILE([
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_types.h>
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_NET_IF_VAR_H
 | 
			
		||||
#include <net/if_var.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <net/netisr.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
 | 
			
		||||
#if defined(__FreeBSD__) || defined(__NetBSD__)
 | 
			
		||||
#include <net/if_sppp.h>
 | 
			
		||||
#else
 | 
			
		||||
#include <i4b/sppp/if_sppp.h>
 | 
			
		||||
#endif
 | 
			
		||||
],[
 | 
			
		||||
	size_t size = sizeof (struct sppp);
 | 
			
		||||
], have_i4b=yes, have_i4b=no)
 | 
			
		||||
	  AC_MSG_RESULT($have_i4b)
 | 
			
		||||
	  if test x$have_i4b = xyes; then
 | 
			
		||||
	    AC_DEFINE(HAVE_I4B)
 | 
			
		||||
	    AC_MSG_CHECKING([for I4B accounting])
 | 
			
		||||
	    AC_TRY_COMPILE([
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_types.h>
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_NET_IF_VAR_H
 | 
			
		||||
#include <net/if_var.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <net/netisr.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
 | 
			
		||||
#if defined(__FreeBSD__) || defined(__NetBSD__)
 | 
			
		||||
#include <net/if_sppp.h>
 | 
			
		||||
#else
 | 
			
		||||
#include <i4b/sppp/if_sppp.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <machine/i4b_acct.h>
 | 
			
		||||
],[
 | 
			
		||||
	size_t size = sizeof (struct i4bisppp_softc);
 | 
			
		||||
], have_i4b_acct=yes, have_i4b_acct=no)
 | 
			
		||||
	    AC_MSG_RESULT($have_i4b_acct)
 | 
			
		||||
	    if test x$have_i4b_acct = xyes ; then
 | 
			
		||||
	      AC_DEFINE(HAVE_I4B_ACCT)
 | 
			
		||||
	    else
 | 
			
		||||
	      AC_WARN([
 | 
			
		||||
*** I4B accounting disabled - you won't get any PPP statistics.
 | 
			
		||||
*** Read "misc/i4b_acct.txt" in the LibGTop source directory
 | 
			
		||||
*** to see how to enable it.])
 | 
			
		||||
	    fi
 | 
			
		||||
	  fi
 | 
			
		||||
	  ;;
 | 
			
		||||
	linux*)
 | 
			
		||||
	  os_major_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
 | 
			
		||||
	    sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
 | 
			
		||||
	  os_minor_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
 | 
			
		||||
	    sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
 | 
			
		||||
	  os_micro_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
 | 
			
		||||
	    sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
 | 
			
		||||
	  os_version_expr="$os_major_version 65536 * $os_minor_version 256 * + $os_micro_version + p q"
 | 
			
		||||
 | 
			
		||||
	  AC_CHECK_HEADERS(linux/version.h, have_linux_version_h=yes,
 | 
			
		||||
	    have_linux_version_h=no)
 | 
			
		||||
 | 
			
		||||
	  if test x$have_linux_version_h = xyes ; then
 | 
			
		||||
	    version_code=`cat /usr/include/linux/version.h | \
 | 
			
		||||
	      grep \#define | grep LINUX_VERSION_CODE`
 | 
			
		||||
	    os_version_code=`echo $version_code | \
 | 
			
		||||
	      sed 's/^.*LINUX_VERSION_CODE[[ \t]]*\([[0-9]]*\).*$/\1/'`
 | 
			
		||||
	  else
 | 
			
		||||
	    os_version_code=`echo "$os_version_expr" | dc`
 | 
			
		||||
	  fi
 | 
			
		||||
 | 
			
		||||
	  AC_MSG_CHECKING(for Linux kernel version code)
 | 
			
		||||
	  AC_DEFINE_UNQUOTED(GLIBTOP_LINUX_VERSION_CODE, $os_version_code)
 | 
			
		||||
	  AC_MSG_RESULT($os_version_code)
 | 
			
		||||
	  ;;
 | 
			
		||||
	solaris*)
 | 
			
		||||
	  os_major_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]\)\.*\([[0-9]]*\)/\1/'`
 | 
			
		||||
	  os_minor_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]\)\.*\([[0-9]]*\)/\2/'`
 | 
			
		||||
	  os_micro_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]\)\.*\([[0-9]]*\)/\3/'`
 | 
			
		||||
	  test -z "$os_micro_version" && os_micro_version=0
 | 
			
		||||
	  os_version_expr="$os_major_version 100 * $os_minor_version 10 * + $os_micro_version + p q"
 | 
			
		||||
	  os_version_code=`echo "$os_version_expr" | dc`
 | 
			
		||||
 | 
			
		||||
	  AC_MSG_CHECKING(for Solaris release code)
 | 
			
		||||
	  AC_DEFINE_UNQUOTED(GLIBTOP_SOLARIS_RELEASE, $os_version_code)
 | 
			
		||||
	  AC_MSG_RESULT($os_version_code)
 | 
			
		||||
	  ;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	AC_MSG_CHECKING(for machine.h in libgtop sysdeps dir)
 | 
			
		||||
	AC_MSG_RESULT($libgtop_use_machine_h)
 | 
			
		||||
 | 
			
		||||
	AC_MSG_CHECKING(whether we need libgtop)
 | 
			
		||||
	AC_MSG_RESULT($libgtop_need_server)
 | 
			
		||||
 | 
			
		||||
	if test x$libgtop_need_server = xyes ; then
 | 
			
		||||
	  AC_DEFINE(NEED_LIBGTOP)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if test x$libgtop_use_machine_h = xyes ; then
 | 
			
		||||
	  AC_DEFINE(HAVE_GLIBTOP_MACHINE_H)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	AM_CONDITIONAL(NEED_LIBGTOP, test x$libgtop_need_server = xyes)
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
							
								
								
									
										30
									
								
								autogen.sh
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								autogen.sh
									
									
									
									
									
								
							@@ -14,28 +14,8 @@ PKG_NAME="Gnome Top Library"
 | 
			
		||||
    exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
. $srcdir/macros/autogen.sh
 | 
			
		||||
cp -f $srcdir/po/Makefile.in.in.in $srcdir/po/Makefile.in.in
 | 
			
		||||
 | 
			
		||||
echo ""
 | 
			
		||||
echo " *** IMPORTANT *** "
 | 
			
		||||
echo ""
 | 
			
		||||
echo "This is a development version of LibGTop.  You should be using a stable"
 | 
			
		||||
echo "version, which is available at ftp://ftp.gnome.org/pub/GNOME/sources/libgtop/"
 | 
			
		||||
echo "The version you just configured is meant for developers of LibGTop only:"
 | 
			
		||||
echo ""
 | 
			
		||||
echo "  * You should not base ANY software on this version of LibGTop."
 | 
			
		||||
echo ""
 | 
			
		||||
echo " *** You should be using LibGTop 1.0.x instead. ***"
 | 
			
		||||
echo ""
 | 
			
		||||
echo "If you are using this source tree from CVS, please run:"
 | 
			
		||||
echo "	cvs update -r LIBGTOP_STABLE_1_0"
 | 
			
		||||
echo "now."
 | 
			
		||||
echo ""
 | 
			
		||||
echo "If you're a Solaris user, you should try out the LibGTop 1.1.2 release."
 | 
			
		||||
echo "You can get it from ftp://ftp.home-of-linux.org/pub/libgtop/1.1/"
 | 
			
		||||
echo ""
 | 
			
		||||
echo "If you are using this source tree from CVS, you can use:"
 | 
			
		||||
echo "	cvs update -r LIBGTOP_1_1_2_PATCHES"
 | 
			
		||||
echo "to get a bug fixed release of 1.1.2."
 | 
			
		||||
echo ""
 | 
			
		||||
which gnome-autogen.sh || {
 | 
			
		||||
    echo "You need to install gnome-common from the GNOME CVS"
 | 
			
		||||
    exit 1
 | 
			
		||||
}
 | 
			
		||||
USE_GNOME2_MACROS=1 . gnome-autogen.sh
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1,15 @@
 | 
			
		||||
SUBDIRS		= server sysdeps common
 | 
			
		||||
if NEED_LIBGTOP
 | 
			
		||||
server_dir	= server
 | 
			
		||||
else
 | 
			
		||||
server_dir	=
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
if HAVE_SYSDEPS
 | 
			
		||||
sysdeps_dir	= sysdeps
 | 
			
		||||
else
 | 
			
		||||
sysdeps_dir	=
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
SUBDIRS		= $(server_dir) $(sysdeps_dir) common
 | 
			
		||||
 | 
			
		||||
DIST_SUBDIRS	= server sysdeps common
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,36 @@
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* backend-common.c: (_open_common): s/u_int64_t/guint64/
 | 
			
		||||
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* backend-common.h: fixed compilation
 | 
			
		||||
 | 
			
		||||
2000-11-26  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* glibtop-backend-private.h: Removed.
 | 
			
		||||
 | 
			
		||||
	* backend-common.h: New files.
 | 
			
		||||
 | 
			
		||||
	* backend-common.c (_open_common): Don't overwrite
 | 
			
		||||
	`backend->_priv'.
 | 
			
		||||
 | 
			
		||||
2000-11-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Link libgtop_backend_common.la against
 | 
			
		||||
	$(top_builddir)/sysdeps/common/libgtop_common.la and
 | 
			
		||||
	$(top_builddir)/lib/libgtop_server.la.
 | 
			
		||||
 | 
			
		||||
2000-02-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* backend-sysdeps.c (LibGTopBackendInfo): Call this
 | 
			
		||||
	`LibGTopBackendInfo_Common' when we don't use gmodule.
 | 
			
		||||
 | 
			
		||||
2000-02-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
 | 
			
		||||
	when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
 | 
			
		||||
 | 
			
		||||
2000-01-12  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR).
 | 
			
		||||
 
 | 
			
		||||
@@ -4,13 +4,21 @@ INCLUDES	= @INCLUDES@
 | 
			
		||||
 | 
			
		||||
backenddir	= @LIBGTOP_BACKEND_DIR@
 | 
			
		||||
 | 
			
		||||
if LIBGTOP_USE_GMODULE
 | 
			
		||||
backendlibdir	= $(backenddir)
 | 
			
		||||
else
 | 
			
		||||
backendlibdir	= $(libdir)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
dynamic_ldflags	= @libgtop_dynamic_ldflags@
 | 
			
		||||
 | 
			
		||||
backend_DATA = \
 | 
			
		||||
	libgtop-common.backend
 | 
			
		||||
 | 
			
		||||
noinst_HEADERS = \
 | 
			
		||||
	glibtop-backend-private.h
 | 
			
		||||
	backend-common.h
 | 
			
		||||
 | 
			
		||||
backend_LTLIBRARIES = \
 | 
			
		||||
backendlib_LTLIBRARIES = \
 | 
			
		||||
	libgtop_backend_common.la
 | 
			
		||||
 | 
			
		||||
libgtop_backend_common_la_SOURCES = \
 | 
			
		||||
@@ -18,7 +26,11 @@ libgtop_backend_common_la_SOURCES = \
 | 
			
		||||
	marshal.c
 | 
			
		||||
 | 
			
		||||
libgtop_backend_common_la_LDFLAGS = \
 | 
			
		||||
	$(LT_VERSION_INFO) -export-dynamic
 | 
			
		||||
	$(LT_VERSION_INFO) $(dynamic_ldflags)
 | 
			
		||||
 | 
			
		||||
libgtop_backend_common_la_LIBADD = \
 | 
			
		||||
	$(top_builddir)/sysdeps/common/libgtop_common.la	\
 | 
			
		||||
	$(top_builddir)/lib/libgtop_server.la
 | 
			
		||||
 | 
			
		||||
BUILT_SOURCES = \
 | 
			
		||||
	marshal.c
 | 
			
		||||
 
 | 
			
		||||
@@ -23,40 +23,39 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/backend.h>
 | 
			
		||||
#include <glibtop-backend-private.h>
 | 
			
		||||
#include <backend-common.h>
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_open_common (glibtop *, glibtop_backend *, u_int64_t, const char **);
 | 
			
		||||
_open_common (glibtop_server *, glibtop_backend *, guint64, const char **);
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_close_common (glibtop *, glibtop_backend *);
 | 
			
		||||
_close_common (glibtop_server *, glibtop_backend *, void *closure);
 | 
			
		||||
 | 
			
		||||
extern glibtop_call_vector glibtop_backend_common_call_vector;
 | 
			
		||||
 | 
			
		||||
#ifdef LIBGTOP_USE_GMODULE
 | 
			
		||||
glibtop_backend_info LibGTopBackendInfo = {
 | 
			
		||||
    "glibtop-backend-common", _open_common, _close_common,
 | 
			
		||||
    &glibtop_backend_common_call_vector
 | 
			
		||||
};
 | 
			
		||||
#else
 | 
			
		||||
glibtop_backend_info LibGTopBackendInfo_Common = {
 | 
			
		||||
    "glibtop-backend-common", _open_common, _close_common,
 | 
			
		||||
    &glibtop_backend_common_call_vector
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_open_common (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
	      u_int64_t features, const char **backend_args)
 | 
			
		||||
_open_common (glibtop_server *server, glibtop_backend *backend,
 | 
			
		||||
	      guint64 features, const char **backend_args)
 | 
			
		||||
{
 | 
			
		||||
    backend->_priv = glibtop_calloc_r
 | 
			
		||||
	(server, 1, sizeof (glibtop_backend_private));
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_close_common (glibtop *server, glibtop_backend *backend)
 | 
			
		||||
_close_common (glibtop_server *server, glibtop_backend *backend,
 | 
			
		||||
	       void *closure)
 | 
			
		||||
{
 | 
			
		||||
    return -1;
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -23,12 +23,14 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_BACKEND_PRIVATE_H__
 | 
			
		||||
#define __GLIBTOP_BACKEND_PRIVATE_H__
 | 
			
		||||
#ifndef __GLIBTOP_BACKEND_COMMON_H__
 | 
			
		||||
#define __GLIBTOP_BACKEND_COMMON_H__
 | 
			
		||||
 | 
			
		||||
struct _glibtop_backend_private
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
};
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/glibtop-backend.h>
 | 
			
		||||
#include <glibtop/glibtop-backend-info.h>
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
<?xml version="1.0"?> <!-- -*-xml-*- -->
 | 
			
		||||
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
 | 
			
		||||
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
 | 
			
		||||
 | 
			
		||||
  <libgtop:Backend>
 | 
			
		||||
 
 | 
			
		||||
@@ -24,16 +24,12 @@ print '/* marshal.c */';
 | 
			
		||||
print "/* This is a generated file.  Please modify `marshal.pl' */";
 | 
			
		||||
print '';
 | 
			
		||||
 | 
			
		||||
print '#include <glibtop.h>';
 | 
			
		||||
print '#include <glibtop/open.h>';
 | 
			
		||||
print '#include <glibtop/xmalloc.h>';
 | 
			
		||||
print '#include <backend-common.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop/sysdeps.h>';
 | 
			
		||||
print '#include <glibtop/union.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop/backend.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop-backend-private.h>';
 | 
			
		||||
print '#include <glibtop/call-vector.h>';
 | 
			
		||||
print '';
 | 
			
		||||
 | 
			
		||||
$feature_count = 0;
 | 
			
		||||
@@ -141,16 +137,16 @@ sub output {
 | 
			
		||||
 | 
			
		||||
    $func_decl = 'static '.$retval."\n";
 | 
			
		||||
    if ($line_fields[3] eq '') {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
 | 
			
		||||
			     $feature, $param_decl);
 | 
			
		||||
    } elsif ($line_fields[3] eq 'array') {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend, glibtop_array *array%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
 | 
			
		||||
			     $feature, $param_decl);
 | 
			
		||||
    } elsif ($line_fields[3] =~ /^array/) {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend, glibtop_array *array, %s *buf%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
 | 
			
		||||
			     $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
    } else {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend, %s *buf%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
 | 
			
		||||
			     $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,65 @@
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* backend-server.c: (_open_server):
 | 
			
		||||
	* backend-server.h:
 | 
			
		||||
	* command.h.in: s/u_int64_t/guint64/
 | 
			
		||||
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* backend-server.h:
 | 
			
		||||
	* command.h.in:
 | 
			
		||||
	* demarshal.pl:
 | 
			
		||||
	* server.h: fixed compilation
 | 
			
		||||
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* backend-server.c: (_open_server):
 | 
			
		||||
	* command.c: (glibtop_call_i):
 | 
			
		||||
	* demarshal.pl:
 | 
			
		||||
	* marshal.pl:
 | 
			
		||||
	* read_data.c: (glibtop_read_data_i):
 | 
			
		||||
	* server.c: (main), (handle_slave_connection):
 | 
			
		||||
	replace all the xmalloc crap by glib memory management functions
 | 
			
		||||
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: removed traces of guile, intllibs and libgnomesupport
 | 
			
		||||
 | 
			
		||||
2000-11-27  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* backend-server.c (backend_server_quark): New global variable.
 | 
			
		||||
	(_open_server, _close_server): Use the quark.
 | 
			
		||||
	* commands.c: Likewise.
 | 
			
		||||
 | 
			
		||||
2000-11-26  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* backend-server.h: New file.
 | 
			
		||||
	(backend_server_private): New struct, formerly known
 | 
			
		||||
	as glibtop_backend_private.
 | 
			
		||||
 | 
			
		||||
	* glibtop-backend-private.h: Removed.
 | 
			
		||||
 | 
			
		||||
	* backend-server.c: (_open_server): Use g_object_set_data()
 | 
			
		||||
	to set add the backend_server_private data to the glibtop_backend,
 | 
			
		||||
	don't override `backend->_priv'.
 | 
			
		||||
	(_close_server): Use g_object_get_data() to get the data.
 | 
			
		||||
	[FIXME: Use quarks directly.]
 | 
			
		||||
 | 
			
		||||
	* read.c: (glibtop_read_i): Replaced the glibtop_server and
 | 
			
		||||
	glibtop_backend arguments with backend_server_private.
 | 
			
		||||
	* read_data.c: (glibtop_read_data_i): Likewise.
 | 
			
		||||
	* write.c: (glibtop_write_i): Likewise.
 | 
			
		||||
 | 
			
		||||
2000-02-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* backend-sysdeps.c (LibGTopBackendInfo): Call this
 | 
			
		||||
	`LibGTopBackendInfo_Server' when we don't use gmodule.
 | 
			
		||||
 | 
			
		||||
2000-02-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
 | 
			
		||||
	when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
 | 
			
		||||
 | 
			
		||||
2000-01-18  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* demarshal.pl: Only emit code for functions which are
 | 
			
		||||
 
 | 
			
		||||
@@ -7,13 +7,21 @@ INCLUDES	= @INCLUDES@ -D_BSD \
 | 
			
		||||
 | 
			
		||||
backenddir	= @LIBGTOP_BACKEND_DIR@
 | 
			
		||||
 | 
			
		||||
if LIBGTOP_USE_GMODULE
 | 
			
		||||
backendlibdir	= $(backenddir)
 | 
			
		||||
else
 | 
			
		||||
backendlibdir	= $(libdir)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
dynamic_ldflags	= @libgtop_dynamic_ldflags@
 | 
			
		||||
 | 
			
		||||
backend_DATA = \
 | 
			
		||||
	libgtop-server.backend
 | 
			
		||||
 | 
			
		||||
noinst_HEADERS = \
 | 
			
		||||
	glibtop-backend-private.h
 | 
			
		||||
	backend-server.h
 | 
			
		||||
 | 
			
		||||
backend_LTLIBRARIES = \
 | 
			
		||||
backendlib_LTLIBRARIES = \
 | 
			
		||||
	libgtop_backend_server.la
 | 
			
		||||
 | 
			
		||||
bin_PROGRAMS = \
 | 
			
		||||
@@ -31,7 +39,7 @@ libgtop_backend_server_la_SOURCES = \
 | 
			
		||||
	write.c
 | 
			
		||||
 | 
			
		||||
libgtop_backend_server_la_LDFLAGS = \
 | 
			
		||||
	$(LT_VERSION_INFO) -export-dynamic
 | 
			
		||||
	$(LT_VERSION_INFO) $(dynamic_ldflags)
 | 
			
		||||
 | 
			
		||||
libgtop_server_SOURCES = \
 | 
			
		||||
	server.c		\
 | 
			
		||||
@@ -42,8 +50,7 @@ libgtop_server_SOURCES = \
 | 
			
		||||
 | 
			
		||||
libgtop_server_LDADD = \
 | 
			
		||||
	$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps_suid.la \
 | 
			
		||||
	$(top_builddir)/sysdeps/common/libgtop_suid_common.la \
 | 
			
		||||
	@LIBSUPPORT@
 | 
			
		||||
	$(top_builddir)/sysdeps/common/libgtop_suid_common.la
 | 
			
		||||
 | 
			
		||||
if ENABLE_STATIC
 | 
			
		||||
libgtop_server_LDFLAGS = -static
 | 
			
		||||
 
 | 
			
		||||
@@ -23,78 +23,90 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/backend.h>
 | 
			
		||||
#include <glibtop-backend-private.h>
 | 
			
		||||
#include <backend-server.h>
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_open_server (glibtop *, glibtop_backend *, u_int64_t, const char **);
 | 
			
		||||
_open_server (glibtop_server *, glibtop_backend *, guint64, const char **);
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_close_server (glibtop *, glibtop_backend *);
 | 
			
		||||
_close_server (glibtop_server *, glibtop_backend *, void *);
 | 
			
		||||
 | 
			
		||||
extern glibtop_call_vector glibtop_backend_server_call_vector;
 | 
			
		||||
 | 
			
		||||
#ifdef LIBGTOP_USE_GMODULE
 | 
			
		||||
glibtop_backend_info LibGTopBackendInfo = {
 | 
			
		||||
    "glibtop-backend-server", _open_server, _close_server,
 | 
			
		||||
    &glibtop_backend_server_call_vector
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_open_server (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
	      u_int64_t features, const char **backend_args)
 | 
			
		||||
{
 | 
			
		||||
    backend->_priv = glibtop_calloc_r
 | 
			
		||||
	(server, 1, sizeof (glibtop_backend_private));
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
    fprintf (stderr, "open_server - %p, %p, %p\n", server, backend,
 | 
			
		||||
	     backend->_priv);
 | 
			
		||||
 | 
			
		||||
    fprintf (stderr, "Opening pipe to server (%s).\n",
 | 
			
		||||
	     LIBGTOP_SERVER);
 | 
			
		||||
#else
 | 
			
		||||
glibtop_backend_info LibGTopBackendInfo_Server = {
 | 
			
		||||
    "glibtop-backend-server", _open_server, _close_server,
 | 
			
		||||
    &glibtop_backend_server_call_vector
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if (pipe (backend->_priv->input) ||
 | 
			
		||||
	pipe (backend->_priv->output)) {
 | 
			
		||||
static int
 | 
			
		||||
_open_server (glibtop_server *server, glibtop_backend *backend,
 | 
			
		||||
	      guint64 features, const char **backend_args)
 | 
			
		||||
{
 | 
			
		||||
    backend_server_private *priv;
 | 
			
		||||
 | 
			
		||||
    priv = g_malloc (sizeof (backend_server_private));
 | 
			
		||||
 | 
			
		||||
    glibtop_backend_set_closure_data (backend, priv);
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
    fprintf (stderr, "open_server - %p, %p, %p\n", server, backend, priv);
 | 
			
		||||
 | 
			
		||||
    fprintf (stderr, "Opening pipe to server (%s).\n", LIBGTOP_SERVER);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if (pipe (priv->input) || pipe (priv->output)) {
 | 
			
		||||
	glibtop_warn_io_r (server, "cannot make a pipe");
 | 
			
		||||
	return -1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    backend->_priv->pid  = fork ();
 | 
			
		||||
    priv->pid  = fork ();
 | 
			
		||||
 | 
			
		||||
    if (backend->_priv->pid < 0) {
 | 
			
		||||
    if (priv->pid < 0) {
 | 
			
		||||
	glibtop_warn_io_r (server, "fork failed");
 | 
			
		||||
	return -1;
 | 
			
		||||
    } else if (backend->_priv->pid == 0) {
 | 
			
		||||
    } else if (priv->pid == 0) {
 | 
			
		||||
	close (0); close (1);
 | 
			
		||||
	close (backend->_priv->input [0]);
 | 
			
		||||
	close (backend->_priv->output [1]);
 | 
			
		||||
	dup2 (backend->_priv->input [1], 1);
 | 
			
		||||
	dup2 (backend->_priv->output [0], 0);
 | 
			
		||||
	close (priv->input [0]);
 | 
			
		||||
	close (priv->output [1]);
 | 
			
		||||
	dup2 (priv->input [1], 1);
 | 
			
		||||
	dup2 (priv->output [0], 0);
 | 
			
		||||
	execl (LIBGTOP_SERVER, "libgtop-server", NULL);
 | 
			
		||||
	glibtop_error_io_r (server, "execl (%s)",
 | 
			
		||||
			    LIBGTOP_SERVER);
 | 
			
		||||
	_exit (2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    close (backend->_priv->input [1]);
 | 
			
		||||
    close (backend->_priv->output [0]);
 | 
			
		||||
    close (priv->input [1]);
 | 
			
		||||
    close (priv->output [0]);
 | 
			
		||||
 | 
			
		||||
    glibtop_server_ref (server);
 | 
			
		||||
    priv->server = server;
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_close_server (glibtop *server, glibtop_backend *backend)
 | 
			
		||||
_close_server (glibtop_server *server, glibtop_backend *backend,
 | 
			
		||||
	       void *closure)
 | 
			
		||||
{
 | 
			
		||||
    kill (backend->_priv->pid, SIGKILL);
 | 
			
		||||
    close (backend->_priv->input [0]);
 | 
			
		||||
    close (backend->_priv->output [1]);
 | 
			
		||||
    backend_server_private *priv = closure;
 | 
			
		||||
 | 
			
		||||
    backend->_priv->pid = 0;
 | 
			
		||||
    kill (priv->pid, SIGKILL);
 | 
			
		||||
    close (priv->input [0]);
 | 
			
		||||
    close (priv->output [1]);
 | 
			
		||||
 | 
			
		||||
    glibtop_server_unref (priv->server);
 | 
			
		||||
 | 
			
		||||
    priv->pid = 0;
 | 
			
		||||
 | 
			
		||||
    g_free (priv);
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,33 +23,43 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_BACKEND_PRIVATE_H__
 | 
			
		||||
#define __GLIBTOP_BACKEND_PRIVATE_H__
 | 
			
		||||
#ifndef __GLIBTOP_BACKEND_COMMON_H__
 | 
			
		||||
#define __GLIBTOP_BACKEND_COMMON_H__
 | 
			
		||||
 | 
			
		||||
struct _glibtop_backend_private
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/glibtop-backend.h>
 | 
			
		||||
#include <glibtop/glibtop-backend-info.h>
 | 
			
		||||
 | 
			
		||||
typedef struct _backend_server_private backend_server_private;
 | 
			
		||||
 | 
			
		||||
struct _backend_server_private
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    guint64 flags;
 | 
			
		||||
    int input [2];		/* Pipe client <- server */
 | 
			
		||||
    int output [2];		/* Pipe client -> server */
 | 
			
		||||
    pid_t pid;			/* PID of the server */
 | 
			
		||||
 | 
			
		||||
    glibtop_server *server;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void *
 | 
			
		||||
glibtop_call_i (glibtop *server, glibtop_backend *backend, unsigned command,
 | 
			
		||||
		size_t send_size, const void *send_ptr,
 | 
			
		||||
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
 | 
			
		||||
		unsigned command, size_t send_size, const void *send_ptr,
 | 
			
		||||
		size_t data_size, const void *data_ptr,
 | 
			
		||||
		size_t recv_size, void *recv_ptr,
 | 
			
		||||
		int *retval_ptr);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_read_i (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
		size_t size, void *buf);
 | 
			
		||||
glibtop_read_i (backend_server_private *priv, size_t size, void *buf);
 | 
			
		||||
 | 
			
		||||
void *
 | 
			
		||||
glibtop_read_data_i (glibtop *server, glibtop_backend *backend);
 | 
			
		||||
glibtop_read_data_i (backend_server_private *priv);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_write_i (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
		 size_t size, const void *buf);
 | 
			
		||||
glibtop_write_i (backend_server_private *priv, size_t size, const void *buf);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -23,19 +23,13 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
#include <glibtop/backend.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop-backend-private.h>
 | 
			
		||||
#include <backend-server.h>
 | 
			
		||||
 | 
			
		||||
#include "command.h"
 | 
			
		||||
 | 
			
		||||
void *
 | 
			
		||||
glibtop_call_i (glibtop *server, glibtop_backend *backend, unsigned command,
 | 
			
		||||
		size_t send_size, const void *send_buf,
 | 
			
		||||
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
 | 
			
		||||
		unsigned command, size_t send_size, const void *send_buf,
 | 
			
		||||
		size_t data_size, const void *data_buf,
 | 
			
		||||
		size_t recv_size, void *recv_ptr,
 | 
			
		||||
		int *retval_ptr)
 | 
			
		||||
@@ -46,8 +40,6 @@ glibtop_call_i (glibtop *server, glibtop_backend *backend, unsigned command,
 | 
			
		||||
    int retval;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    glibtop_init_r (&server, 0, 0);
 | 
			
		||||
 | 
			
		||||
    memset (&cmnd, 0, sizeof (glibtop_command));
 | 
			
		||||
    memset (&resp, 0, sizeof (glibtop_response));
 | 
			
		||||
 | 
			
		||||
@@ -66,16 +58,16 @@ glibtop_call_i (glibtop *server, glibtop_backend *backend, unsigned command,
 | 
			
		||||
 | 
			
		||||
    cmnd.data_size = data_size;
 | 
			
		||||
	
 | 
			
		||||
    glibtop_write_i (server, backend, sizeof (glibtop_command), &cmnd);
 | 
			
		||||
    glibtop_write_i (priv, sizeof (glibtop_command), &cmnd);
 | 
			
		||||
 | 
			
		||||
    if (data_size) {
 | 
			
		||||
#ifdef SLAVE_DEBUG
 | 
			
		||||
	fprintf (stderr, "SENDING %d bytes of DATA.\n", data_size);
 | 
			
		||||
#endif
 | 
			
		||||
	glibtop_write_i (server, backend, data_size, data_buf);
 | 
			
		||||
	glibtop_write_i (priv, data_size, data_buf);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    glibtop_read_i (server, backend, sizeof (glibtop_response), &resp);
 | 
			
		||||
    glibtop_read_i (priv, sizeof (glibtop_response), &resp);
 | 
			
		||||
 | 
			
		||||
#ifdef SLAVE_DEBUG
 | 
			
		||||
    fprintf (stderr, "RESPONSE: %d - %d - %ld - %ld - %p - %ld\n",
 | 
			
		||||
@@ -94,12 +86,12 @@ glibtop_call_i (glibtop *server, glibtop_backend *backend, unsigned command,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (recv_ptr)
 | 
			
		||||
	glibtop_read_i (server, backend, recv_size, recv_ptr);
 | 
			
		||||
	glibtop_read_i (priv, recv_size, recv_ptr);
 | 
			
		||||
 | 
			
		||||
    if (resp.data_size) {
 | 
			
		||||
	void *ptr = glibtop_malloc_r (server, resp.data_size);
 | 
			
		||||
	void *ptr = g_malloc (server, resp.data_size);
 | 
			
		||||
 | 
			
		||||
	glibtop_read_i (server, backend, resp.data_size, ptr);
 | 
			
		||||
	glibtop_read_i (priv, resp.data_size, ptr);
 | 
			
		||||
 | 
			
		||||
	return ptr;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,7 @@
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
@@GLIBTOP_COMMAND_CONSTANTS@@
 | 
			
		||||
 | 
			
		||||
@@ -42,8 +42,8 @@ typedef struct _glibtop_response	glibtop_response;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_command
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	command;
 | 
			
		||||
    u_int64_t	param_size, send_size, data_size;
 | 
			
		||||
    guint64	command;
 | 
			
		||||
    guint64	param_size, send_size, data_size;
 | 
			
		||||
    char	parameter [_GLIBTOP_PARAM_SIZE];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -51,9 +51,9 @@ struct _glibtop_response
 | 
			
		||||
{
 | 
			
		||||
    int retval;
 | 
			
		||||
    int glibtop_errno;
 | 
			
		||||
    u_int64_t recv_size, data_size;
 | 
			
		||||
    guint64 recv_size, data_size;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,6 @@ print '';
 | 
			
		||||
 | 
			
		||||
print '#include <glibtop.h>';
 | 
			
		||||
print '#include <glibtop/open.h>';
 | 
			
		||||
print '#include <glibtop/xmalloc.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop/sysdeps.h>';
 | 
			
		||||
print '#include <glibtop/union.h>';
 | 
			
		||||
@@ -247,7 +246,7 @@ sub output {
 | 
			
		||||
  if ($line_fields[3] eq '') {
 | 
			
		||||
    $size_code .= "\t_LIBGTOP_RECV_buf = NULL;\n";
 | 
			
		||||
  } else {
 | 
			
		||||
    $size_code .= "\t_LIBGTOP_RECV_buf = glibtop_malloc_r (server, _LIBGTOP_RECV_len);\n";
 | 
			
		||||
    $size_code .= "\t_LIBGTOP_RECV_buf = g_malloc (server, _LIBGTOP_RECV_len);\n";
 | 
			
		||||
  }
 | 
			
		||||
  $size_code .= "\t_LIBGTOP_RECV_ptr = _LIBGTOP_RECV_buf;\n\n";
 | 
			
		||||
 | 
			
		||||
@@ -299,7 +298,7 @@ sub output {
 | 
			
		||||
    $recv_buf_code .= "\n";
 | 
			
		||||
    $recv_buf_code .= "\t_LIBGTOP_TEMP_len += sizeof (off_t) + 1;\n";
 | 
			
		||||
    $recv_buf_code .= "\t_LIBGTOP_TEMP_len += array.number * sizeof (off_t);\n";
 | 
			
		||||
    $recv_buf_code .= "\t_LIBGTOP_ARRAY_base = glibtop_malloc_r (server, _LIBGTOP_TEMP_len);";
 | 
			
		||||
    $recv_buf_code .= "\t_LIBGTOP_ARRAY_base = g_malloc (server, _LIBGTOP_TEMP_len);";
 | 
			
		||||
    $recv_buf_code .= "\t_LIBGTOP_ARRAY_ptr = _LIBGTOP_ARRAY_base;\n";
 | 
			
		||||
    $recv_buf_code .= "\t_LIBGTOP_ARRAY_offset = array.number * sizeof (off_t);\n";
 | 
			
		||||
    $recv_buf_code .= "\t_LIBGTOP_ARRAY_offset += sizeof (off_t);\n";
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
<?xml version="1.0"?> <!-- -*-xml-*- -->
 | 
			
		||||
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
 | 
			
		||||
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
 | 
			
		||||
 | 
			
		||||
  <libgtop:Backend>
 | 
			
		||||
 
 | 
			
		||||
@@ -24,17 +24,13 @@ print '/* marshal.c */';
 | 
			
		||||
print "/* This is a generated file.  Please modify `marshal.pl' */";
 | 
			
		||||
print '';
 | 
			
		||||
 | 
			
		||||
print '#include <glibtop.h>';
 | 
			
		||||
print '#include <glibtop/open.h>';
 | 
			
		||||
print '#include <glibtop/xmalloc.h>';
 | 
			
		||||
print '#include <backend-server.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop/sysdeps.h>';
 | 
			
		||||
print '#include <glibtop/union.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include "command.h"';
 | 
			
		||||
print '#include <glibtop/backend.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop-backend-private.h>';
 | 
			
		||||
print '#include <glibtop/call-vector.h>';
 | 
			
		||||
print '';
 | 
			
		||||
 | 
			
		||||
$feature_count = 0;
 | 
			
		||||
@@ -185,7 +181,7 @@ sub output {
 | 
			
		||||
    $send_buf_code = "\t/* send buffer */\n";
 | 
			
		||||
    $send_buf_code .= "\t_LIBGTOP_SEND_buf = ";
 | 
			
		||||
    if ($need_temp_storage) {
 | 
			
		||||
      $send_buf_code .= "glibtop_malloc_r (server, _LIBGTOP_SEND_len+1)";
 | 
			
		||||
      $send_buf_code .= "g_malloc (server, _LIBGTOP_SEND_len+1)";
 | 
			
		||||
    } else {
 | 
			
		||||
      $send_buf_code .= '(void *) &'.$first_param_name;
 | 
			
		||||
    }
 | 
			
		||||
@@ -194,7 +190,7 @@ sub output {
 | 
			
		||||
    $send_buf_code .= "\t/* data buffer */\n";
 | 
			
		||||
    $send_buf_code .= "\t_LIBGTOP_DATA_buf = ";
 | 
			
		||||
    if ($need_temp_storage) {
 | 
			
		||||
      $send_buf_code .= "glibtop_malloc_r (server, _LIBGTOP_DATA_len+1)";
 | 
			
		||||
      $send_buf_code .= "g_malloc (server, _LIBGTOP_DATA_len+1)";
 | 
			
		||||
    } else {
 | 
			
		||||
      $send_buf_code .= 'NULL';
 | 
			
		||||
    }
 | 
			
		||||
@@ -202,7 +198,7 @@ sub output {
 | 
			
		||||
    $send_buf_code .= "\t_LIBGTOP_DATA_ptr = _LIBGTOP_DATA_buf;\n";
 | 
			
		||||
 | 
			
		||||
    $call_code = '';
 | 
			
		||||
    $call_code .= sprintf ("\t%sglibtop_call_i (server, backend, GLIBTOP_CMND_%s,\n",
 | 
			
		||||
    $call_code .= sprintf ("\t%sglibtop_call_i (server, closure, GLIBTOP_CMND_%s,\n",
 | 
			
		||||
			   $call_prefix, &toupper($feature));
 | 
			
		||||
    $call_code .= sprintf ("\t\t\t%s%s, %s,\n", $call_prefix_space,
 | 
			
		||||
			   "_LIBGTOP_SEND_len", "_LIBGTOP_SEND_buf");
 | 
			
		||||
@@ -220,8 +216,8 @@ sub output {
 | 
			
		||||
    $call_code .= sprintf ("\t\t\t%s%s);\n", $call_prefix_space, $retval_param);
 | 
			
		||||
 | 
			
		||||
    if ($need_temp_storage) {
 | 
			
		||||
      $send_buf_free_code = "\tglibtop_free_r (server, _LIBGTOP_SEND_buf);\n";
 | 
			
		||||
      $send_buf_free_code .= "\tglibtop_free_r (server, _LIBGTOP_DATA_buf);\n";
 | 
			
		||||
      $send_buf_free_code = "\tg_free (_LIBGTOP_SEND_buf);\n";
 | 
			
		||||
      $send_buf_free_code .= "\tg_free (_LIBGTOP_DATA_buf);\n";
 | 
			
		||||
    } else {
 | 
			
		||||
      $send_buf_free_code = "";
 | 
			
		||||
    }
 | 
			
		||||
@@ -235,14 +231,14 @@ sub output {
 | 
			
		||||
      $local_var_code .= "\tchar *_LIBGTOP_ARRAY_ptr, **ptrlist;\n";
 | 
			
		||||
      $local_var_code .= "\toff_t *_LIBGTOP_ARRAY_off_ptr;\n";
 | 
			
		||||
      $local_var_code .= "\tint i;\n";
 | 
			
		||||
      $call_code .= "\tptrlist = glibtop_calloc_r (server, array->number+1, sizeof (char *));\n";
 | 
			
		||||
      $call_code .= "\tptrlist = g_malloc (server, array->number+1 * sizeof (char *));\n";
 | 
			
		||||
      $call_code .= "\t_LIBGTOP_ARRAY_off_ptr = (off_t *) retval;\n";
 | 
			
		||||
      $call_code .= "\t_LIBGTOP_ARRAY_ptr = (char *) retval;\n";
 | 
			
		||||
      $call_code .= "\t_LIBGTOP_ARRAY_off_ptr++;\n\n";
 | 
			
		||||
      $call_code .= "\tfor (i = 0; i < array->number; i++)\n";
 | 
			
		||||
      $call_code .= "\t\tptrlist [i] = glibtop_strdup_r (server, _LIBGTOP_ARRAY_ptr + *_LIBGTOP_ARRAY_off_ptr++);\n";
 | 
			
		||||
      $call_code .= "\t\tptrlist [i] = g_strdup (_LIBGTOP_ARRAY_ptr + *_LIBGTOP_ARRAY_off_ptr++);\n";
 | 
			
		||||
      $call_code .= "\tptrlist [array->number] = NULL;\n\n";
 | 
			
		||||
      $call_code .= "\tglibtop_free_r (server, retval);\n";
 | 
			
		||||
      $call_code .= "\tg_free (retval);\n";
 | 
			
		||||
      $call_code .= "\tretval = ptrlist;\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -261,16 +257,16 @@ sub output {
 | 
			
		||||
 | 
			
		||||
    $func_decl = 'static '.$retval."\n";
 | 
			
		||||
    if ($line_fields[3] eq '') {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
 | 
			
		||||
			     $feature, $param_decl);
 | 
			
		||||
    } elsif ($line_fields[3] eq 'array') {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend, glibtop_array *array%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
 | 
			
		||||
			     $feature, $param_decl);
 | 
			
		||||
    } elsif ($line_fields[3] =~ /^array/) {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend, glibtop_array *array, %s *buf%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
 | 
			
		||||
			     $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
    } else {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend, %s *buf%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
 | 
			
		||||
			     $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -23,31 +23,24 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
#include <glibtop/backend.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop-backend-private.h>
 | 
			
		||||
#include <backend-server.h>
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_read_i (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
		size_t size, void *buf)
 | 
			
		||||
glibtop_read_i (backend_server_private *priv, size_t size, void *buf)
 | 
			
		||||
{
 | 
			
		||||
    int ret = 0;
 | 
			
		||||
 | 
			
		||||
    glibtop_init_r (&server, 0, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
    fprintf (stderr, "LIBRARY: really reading %d bytes from %d.\n",
 | 
			
		||||
	     size, backend->_priv->input [0]);
 | 
			
		||||
	     size, priv->input [0]);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    ret = read (backend->_priv->input [0], buf, size);
 | 
			
		||||
    ret = read (priv->input [0], buf, size);
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
    fprintf (stderr, "LIBRARY: read %d bytes.\n", ret);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if (ret < 0)
 | 
			
		||||
	glibtop_error_io_r (server, "read %d bytes", size);
 | 
			
		||||
	glibtop_error_io_r (priv->server, "read %d bytes", size);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,15 +23,10 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
#include <glibtop/backend.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop-backend-private.h>
 | 
			
		||||
#include <backend-server.h>
 | 
			
		||||
 | 
			
		||||
void *
 | 
			
		||||
glibtop_read_data_i (glibtop *server, glibtop_backend *backend)
 | 
			
		||||
glibtop_read_data_i (backend_server_private *priv)
 | 
			
		||||
{
 | 
			
		||||
    size_t size;
 | 
			
		||||
    void *ptr;
 | 
			
		||||
@@ -41,11 +36,10 @@ glibtop_read_data_i (glibtop *server, glibtop_backend *backend)
 | 
			
		||||
    fprintf (stderr, "LIBRARY: reading %d data bytes.\n", sizeof (size_t));
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    ret = read (backend->_priv->input [0], (void *)&size,
 | 
			
		||||
		sizeof (size_t));
 | 
			
		||||
    ret = read (priv->input [0], (void *)&size, sizeof (size_t));
 | 
			
		||||
 | 
			
		||||
    if (ret < 0)
 | 
			
		||||
	glibtop_error_io_r (server, "read data size");
 | 
			
		||||
	glibtop_error_io_r (priv->server, "read data size");
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
    fprintf (stderr, "LIBRARY: really reading %d data bytes (ret = %d).\n", size, ret);
 | 
			
		||||
@@ -53,12 +47,12 @@ glibtop_read_data_i (glibtop *server, glibtop_backend *backend)
 | 
			
		||||
 | 
			
		||||
    if (!size) return NULL;	
 | 
			
		||||
 | 
			
		||||
    ptr = glibtop_malloc_r (server, size);
 | 
			
		||||
    ptr = g_malloc (priv->server, size);
 | 
			
		||||
	
 | 
			
		||||
    ret = read (backend->_priv->input [0], ptr, size);
 | 
			
		||||
    ret = read (priv->input [0], ptr, size);
 | 
			
		||||
 | 
			
		||||
    if (ret < 0)
 | 
			
		||||
	glibtop_error_io_r (server, "read data %d bytes");
 | 
			
		||||
	glibtop_error_io_r (priv->server, "read data %d bytes");
 | 
			
		||||
 | 
			
		||||
    return ptr;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -88,8 +88,7 @@ main(int argc, char *argv[])
 | 
			
		||||
    server = glibtop_global_server;
 | 
			
		||||
	
 | 
			
		||||
    if (!server->_priv)
 | 
			
		||||
	server->_priv = glibtop_calloc_r
 | 
			
		||||
	    (server, 1, sizeof (glibtop_server_private));
 | 
			
		||||
	server->_priv = g_malloc (sizeof (glibtop_server_private));
 | 
			
		||||
 | 
			
		||||
    glibtop_init_p (server, 0, 0);
 | 
			
		||||
 | 
			
		||||
@@ -156,7 +155,7 @@ handle_slave_connection (int input, int output)
 | 
			
		||||
		     cmnd->data_size);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	    data_ptr = glibtop_malloc_r (server, cmnd->data_size);
 | 
			
		||||
	    data_ptr = g_malloc (server, cmnd->data_size);
 | 
			
		||||
	    do_read (input, data_ptr, cmnd->data_size);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,6 @@
 | 
			
		||||
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
@@ -44,7 +43,7 @@
 | 
			
		||||
 | 
			
		||||
#include "command.h"
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
/* Some don't have LOG_PERROR */
 | 
			
		||||
#ifndef LOG_PERROR
 | 
			
		||||
@@ -80,6 +79,6 @@ glibtop_send_version_i (glibtop *server, int fd);
 | 
			
		||||
extern int enable_debug;
 | 
			
		||||
extern int verbose_output;
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -23,15 +23,10 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/error.h>
 | 
			
		||||
#include <glibtop/backend.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop-backend-private.h>
 | 
			
		||||
#include <backend-server.h>
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_write_i (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
		 size_t size, const void *buf)
 | 
			
		||||
glibtop_write_i (backend_server_private *priv, size_t size, const void *buf)
 | 
			
		||||
{
 | 
			
		||||
    int ret;
 | 
			
		||||
 | 
			
		||||
@@ -41,8 +36,8 @@ glibtop_write_i (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
    fprintf (stderr, "LIBRARY: really writing %d bytes.\n", size);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    ret = write (backend->_priv->output [1], buf, size);
 | 
			
		||||
    ret = write (priv->output [1], buf, size);
 | 
			
		||||
 | 
			
		||||
    if (ret < 0)
 | 
			
		||||
	glibtop_error_io_r (server, "write %d bytes", size);
 | 
			
		||||
	glibtop_error_io_r (priv->server, "write %d bytes", size);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,43 @@
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* backend-sysdeps.c: (_open_sysdeps): s/u_int64_t/guint64/
 | 
			
		||||
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* backend-sysdeps.h: fixed compilation
 | 
			
		||||
 | 
			
		||||
2000-11-26  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* glibtop-backend-private.h: Removed.
 | 
			
		||||
 | 
			
		||||
	* backend-sysdeps.h: New files.
 | 
			
		||||
 | 
			
		||||
	* backend-sysdeps.c (_open_sysdeps): Don't overwrite
 | 
			
		||||
	`backend->_priv'.
 | 
			
		||||
 | 
			
		||||
2000-11-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Link libgtop_backend_sysdeps.la against
 | 
			
		||||
	$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la and
 | 
			
		||||
	$(top_builddir)/lib/libgtop_server.la.
 | 
			
		||||
 | 
			
		||||
	* libgtop-sysdeps.backend: Removed the ExtraLibs section.
 | 
			
		||||
 | 
			
		||||
2000-02-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* backend-sysdeps.c (LibGTopBackendInfo): Call this
 | 
			
		||||
	`LibGTopBackendInfo_Sysdeps' when we don't use gmodule.
 | 
			
		||||
 | 
			
		||||
2000-02-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
 | 
			
		||||
	when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
 | 
			
		||||
 | 
			
		||||
2000-01-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* libgtop-sysdeps.backend: Added "ExtraLibs" section to
 | 
			
		||||
	load `-lgtop_sysdeps'.
 | 
			
		||||
 | 
			
		||||
2000-01-12  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR).
 | 
			
		||||
 
 | 
			
		||||
@@ -4,13 +4,21 @@ INCLUDES	= @INCLUDES@
 | 
			
		||||
 | 
			
		||||
backenddir	= @LIBGTOP_BACKEND_DIR@
 | 
			
		||||
 | 
			
		||||
if LIBGTOP_USE_GMODULE
 | 
			
		||||
backendlibdir	= $(backenddir)
 | 
			
		||||
else
 | 
			
		||||
backendlibdir	= $(libdir)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
dynamic_ldflags	= @libgtop_dynamic_ldflags@
 | 
			
		||||
 | 
			
		||||
backend_DATA = \
 | 
			
		||||
	libgtop-sysdeps.backend
 | 
			
		||||
 | 
			
		||||
noinst_HEADERS = \
 | 
			
		||||
	glibtop-backend-private.h
 | 
			
		||||
	backend-sysdeps.h
 | 
			
		||||
 | 
			
		||||
backend_LTLIBRARIES = \
 | 
			
		||||
backendlib_LTLIBRARIES = \
 | 
			
		||||
	libgtop_backend_sysdeps.la
 | 
			
		||||
 | 
			
		||||
libgtop_backend_sysdeps_la_SOURCES = \
 | 
			
		||||
@@ -18,7 +26,11 @@ libgtop_backend_sysdeps_la_SOURCES = \
 | 
			
		||||
	marshal.c
 | 
			
		||||
 | 
			
		||||
libgtop_backend_sysdeps_la_LDFLAGS = \
 | 
			
		||||
	$(LT_VERSION_INFO) -export-dynamic
 | 
			
		||||
	$(LT_VERSION_INFO) $(dynamic_ldflags)
 | 
			
		||||
 | 
			
		||||
libgtop_backend_sysdeps_la_LIBADD = \
 | 
			
		||||
	$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la
 | 
			
		||||
	$(top_builddir)/lib/libgtop_server.la
 | 
			
		||||
 | 
			
		||||
BUILT_SOURCES = \
 | 
			
		||||
	marshal.c
 | 
			
		||||
 
 | 
			
		||||
@@ -23,36 +23,34 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/backend.h>
 | 
			
		||||
#include <glibtop-backend-private.h>
 | 
			
		||||
#include <backend-sysdeps.h>
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_open_sysdeps (glibtop *, glibtop_backend *, u_int64_t, const char **);
 | 
			
		||||
_open_sysdeps (glibtop_server *, glibtop_backend *, guint64, const char **);
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_close_sysdeps (glibtop *, glibtop_backend *);
 | 
			
		||||
_close_sysdeps (glibtop_server *, glibtop_backend *, void *);
 | 
			
		||||
 | 
			
		||||
extern glibtop_call_vector glibtop_backend_sysdeps_call_vector;
 | 
			
		||||
 | 
			
		||||
#ifdef LIBGTOP_USE_GMODULE
 | 
			
		||||
glibtop_backend_info LibGTopBackendInfo = {
 | 
			
		||||
    "glibtop-backend-sysdeps", _open_sysdeps, _close_sysdeps,
 | 
			
		||||
    &glibtop_backend_sysdeps_call_vector
 | 
			
		||||
};
 | 
			
		||||
#else
 | 
			
		||||
glibtop_backend_info LibGTopBackendInfo_Sysdeps = {
 | 
			
		||||
    "glibtop-backend-sysdeps", _open_sysdeps, _close_sysdeps,
 | 
			
		||||
    &glibtop_backend_sysdeps_call_vector
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_open_sysdeps (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
	       u_int64_t features, const char **backend_args)
 | 
			
		||||
_open_sysdeps (glibtop_server *server, glibtop_backend *backend,
 | 
			
		||||
	       guint64 features, const char **backend_args)
 | 
			
		||||
{
 | 
			
		||||
    glibtop_init_func_t *init_fkt;
 | 
			
		||||
 | 
			
		||||
    backend->_priv = glibtop_calloc_r
 | 
			
		||||
	(server, 1, sizeof (glibtop_backend_private));
 | 
			
		||||
 | 
			
		||||
    /* Do the initialization, but only if not already initialized. */
 | 
			
		||||
 | 
			
		||||
    if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) {
 | 
			
		||||
@@ -61,7 +59,7 @@ _open_sysdeps (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
	for (init_fkt = _glibtop_init_hook_s; *init_fkt; init_fkt++)
 | 
			
		||||
	    (*init_fkt) (server);
 | 
			
		||||
 | 
			
		||||
	server->sysdeps.pointer_size = sizeof (void*)*8;
 | 
			
		||||
	server->info->sysdeps.pointer_size = sizeof (void*)*8;
 | 
			
		||||
		
 | 
			
		||||
	server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS;
 | 
			
		||||
    }
 | 
			
		||||
@@ -70,8 +68,9 @@ _open_sysdeps (glibtop *server, glibtop_backend *backend,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
_close_sysdeps (glibtop *server, glibtop_backend *backend)
 | 
			
		||||
_close_sysdeps (glibtop_server *server, glibtop_backend *backend,
 | 
			
		||||
		void *closure)
 | 
			
		||||
{
 | 
			
		||||
    return -1;
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -23,16 +23,14 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/backend.h>
 | 
			
		||||
#ifndef __GLIBTOP_BACKEND_SYSDEPS_H__
 | 
			
		||||
#define __GLIBTOP_BACKEND_SYSDEPS_H__
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
_glibtop_open_sysdeps (glibtop *server, const char *program_name,
 | 
			
		||||
		       const unsigned long features, const unsigned flags)
 | 
			
		||||
{
 | 
			
		||||
    glibtop_open_backend_l (server, "glibtop-backend-common",
 | 
			
		||||
			    features, NULL);
 | 
			
		||||
    glibtop_open_backend_l (server, "glibtop-backend-server",
 | 
			
		||||
			    features, NULL);
 | 
			
		||||
}
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/glibtop-backend.h>
 | 
			
		||||
#include <glibtop/glibtop-backend-info.h>
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
<?xml version="1.0"?> <!-- -*-xml-*- -->
 | 
			
		||||
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
 | 
			
		||||
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
 | 
			
		||||
 | 
			
		||||
  <libgtop:Backend>
 | 
			
		||||
 
 | 
			
		||||
@@ -24,16 +24,12 @@ print '/* marshal.c */';
 | 
			
		||||
print "/* This is a generated file.  Please modify `marshal.pl' */";
 | 
			
		||||
print '';
 | 
			
		||||
 | 
			
		||||
print '#include <glibtop.h>';
 | 
			
		||||
print '#include <glibtop/open.h>';
 | 
			
		||||
print '#include <glibtop/xmalloc.h>';
 | 
			
		||||
print '#include <backend-sysdeps.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop/sysdeps.h>';
 | 
			
		||||
print '#include <glibtop/union.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop/backend.h>';
 | 
			
		||||
print '';
 | 
			
		||||
print '#include <glibtop-backend-private.h>';
 | 
			
		||||
print '#include <glibtop/call-vector.h>';
 | 
			
		||||
print '';
 | 
			
		||||
 | 
			
		||||
$feature_count = 0;
 | 
			
		||||
@@ -141,16 +137,16 @@ sub output {
 | 
			
		||||
 | 
			
		||||
    $func_decl = 'static '.$retval."\n";
 | 
			
		||||
    if ($line_fields[3] eq '') {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
 | 
			
		||||
			     $feature, $param_decl);
 | 
			
		||||
    } elsif ($line_fields[3] eq 'array') {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend, glibtop_array *array%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
 | 
			
		||||
			     $feature, $param_decl);
 | 
			
		||||
    } elsif ($line_fields[3] =~ /^array/) {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend, glibtop_array *array, %s *buf%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
 | 
			
		||||
			     $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
    } else {
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop *server, glibtop_backend *backend, %s *buf%s)\n",
 | 
			
		||||
      $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
 | 
			
		||||
			     $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										393
									
								
								configure.in
									
									
									
									
									
								
							
							
						
						
									
										393
									
								
								configure.in
									
									
									
									
									
								
							@@ -1,29 +1,38 @@
 | 
			
		||||
dnl
 | 
			
		||||
dnl Configure script for LibGTop
 | 
			
		||||
dnl Configure script for the Gnome library
 | 
			
		||||
dnl
 | 
			
		||||
 | 
			
		||||
AC_INIT(copyright.txt)
 | 
			
		||||
AM_CONFIG_HEADER(config.h)
 | 
			
		||||
AC_CANONICAL_SYSTEM
 | 
			
		||||
 | 
			
		||||
dnl This is required at several places
 | 
			
		||||
AC_CHECK_PROG(ac_dc_found, dc, yes, no)
 | 
			
		||||
if test x$ac_dc_found != xyes ; then
 | 
			
		||||
AC_MSG_ERROR([
 | 
			
		||||
*** The "dc" utility was not found on your system.
 | 
			
		||||
***
 | 
			
		||||
*** When using RedHat Linux, you need to install the "bc" package.
 | 
			
		||||
***
 | 
			
		||||
*** It is now part of the "bc" package, so you should look at
 | 
			
		||||
*** ftp://ftp.gnu.org/pub/gnu/bc/ if you want to compile it yourself.
 | 
			
		||||
***
 | 
			
		||||
*** Other systems and distributions may also have it in their "bc" package,
 | 
			
		||||
*** so if there's no "dc" one, please look for "bc".
 | 
			
		||||
***])
 | 
			
		||||
fi
 | 
			
		||||
LIBGTOP_MAJOR_VERSION=2
 | 
			
		||||
LIBGTOP_MINOR_VERSION=5
 | 
			
		||||
LIBGTOP_MICRO_VERSION=1
 | 
			
		||||
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
 | 
			
		||||
AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION)
 | 
			
		||||
 | 
			
		||||
. $srcdir/LIBGTOP-VERSION
 | 
			
		||||
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
 | 
			
		||||
dnl  increment if the interface has additions, changes, removals.
 | 
			
		||||
LIBGTOP_CURRENT=2
 | 
			
		||||
 | 
			
		||||
dnl  increment any time the source changes; set to
 | 
			
		||||
dnl  0 if you increment CURRENT
 | 
			
		||||
LIBGTOP_REVISION=0
 | 
			
		||||
 | 
			
		||||
dnl  increment if any interfaces have been added; set to 0
 | 
			
		||||
dnl  if any interfaces have been removed. removal has
 | 
			
		||||
dnl  precedence over adding, so set to 0 if both happened.
 | 
			
		||||
LIBGTOP_AGE=0
 | 
			
		||||
 | 
			
		||||
# you can set this to `-snap' for instance to create
 | 
			
		||||
# a `libgtop-1.x.y-snap.tar.gz' tarball.
 | 
			
		||||
LIBGTOP_VERSION_SUFFIX=
 | 
			
		||||
 | 
			
		||||
# Increase each time you change the client/server protocol.
 | 
			
		||||
LIBGTOP_SERVER_VERSION=5
 | 
			
		||||
 | 
			
		||||
# Version code calculation
 | 
			
		||||
LIBGTOP_VERSION_CODE=`expr $LIBGTOP_MAJOR_VERSION \* 1000000 + $LIBGTOP_MINOR_VERSION \* 1000 + $LIBGTOP_MICRO_VERSION`
 | 
			
		||||
 | 
			
		||||
AC_SUBST(LIBGTOP_MAJOR_VERSION)
 | 
			
		||||
AC_SUBST(LIBGTOP_MINOR_VERSION)
 | 
			
		||||
@@ -35,27 +44,24 @@ AC_SUBST(LIBGTOP_VERSION)
 | 
			
		||||
AC_SUBST(LIBGTOP_VERSION_CODE)
 | 
			
		||||
AC_SUBST(LIBGTOP_VERSION_SUFFIX)
 | 
			
		||||
 | 
			
		||||
AC_SUBST(LIBGTOP_PACKAGE)
 | 
			
		||||
AC_DEFINE_UNQUOTED(LIBGTOP_PACKAGE, "$LIBGTOP_PACKAGE")
 | 
			
		||||
 | 
			
		||||
# libtool versioning
 | 
			
		||||
LT_RELEASE=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION
 | 
			
		||||
LT_CURRENT=`expr $LIBGTOP_MICRO_VERSION - $LIBGTOP_INTERFACE_AGE`
 | 
			
		||||
LT_REVISION=$LIBGTOP_INTERFACE_AGE
 | 
			
		||||
LT_AGE=`expr $LIBGTOP_BINARY_AGE - $LIBGTOP_INTERFACE_AGE`
 | 
			
		||||
LT_VERSION_INFO='-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE} -release ${LT_RELEASE}'
 | 
			
		||||
LT_CURRENT=$LIBGTOP_CURRENT
 | 
			
		||||
LT_REVISION=$LIBGTOP_REVISION
 | 
			
		||||
LT_AGE=$LIBGTOP_AGE
 | 
			
		||||
LT_VERSION_INFO="-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}"
 | 
			
		||||
AC_SUBST(LT_VERSION_INFO)
 | 
			
		||||
AC_SUBST(LT_RELEASE)
 | 
			
		||||
AC_SUBST(LT_CURRENT)
 | 
			
		||||
AC_SUBST(LT_REVISION)
 | 
			
		||||
AC_SUBST(LT_AGE)
 | 
			
		||||
 | 
			
		||||
AM_ACLOCAL_INCLUDE(. macros)
 | 
			
		||||
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I ."
 | 
			
		||||
 | 
			
		||||
AC_ISC_POSIX
 | 
			
		||||
AC_PROG_CC
 | 
			
		||||
AC_STDC_HEADERS
 | 
			
		||||
AC_ARG_PROGRAM
 | 
			
		||||
dnl AC_ARG_PROGRAM
 | 
			
		||||
 | 
			
		||||
dnl We need this at some places.
 | 
			
		||||
libgtop_top_builddir=`pwd`
 | 
			
		||||
@@ -74,10 +80,8 @@ AC_CHECK_TOOL(CC,gcc)
 | 
			
		||||
AC_CHECK_TOOL(RANLIB,ranlib)
 | 
			
		||||
AC_CHECK_TOOL(AS,as)
 | 
			
		||||
AC_CHECK_TOOL(AR,ar)
 | 
			
		||||
AC_CHECK_TOOL(NM,nm)
 | 
			
		||||
 | 
			
		||||
NM=`which $NM`
 | 
			
		||||
export CC CXX RANLIB LD AS AR NM
 | 
			
		||||
export CC CXX RANLIB LD AS AR
 | 
			
		||||
 | 
			
		||||
AC_PROG_INSTALL
 | 
			
		||||
AC_PROG_LN_S
 | 
			
		||||
@@ -88,52 +92,21 @@ export cross_compiling
 | 
			
		||||
AM_PROG_LIBTOOL
 | 
			
		||||
 | 
			
		||||
dnl Let the user enable compiler warnings
 | 
			
		||||
GNOME_COMPILE_WARNINGS
 | 
			
		||||
dnl GNOME_COMPILE_WARNINGS
 | 
			
		||||
 | 
			
		||||
GNOME_INIT_HOOK(gnome_found=yes)
 | 
			
		||||
 | 
			
		||||
if test "x$gnome_found" != xyes; then
 | 
			
		||||
  if test "x$want_gnome" != xno ; then
 | 
			
		||||
    AC_MSG_ERROR([
 | 
			
		||||
*** GNOME was not found on this system. ***
 | 
			
		||||
 | 
			
		||||
*** If you want to use LibGTop without GNOME, you need
 | 
			
		||||
*** to give configure the --without-gnome parameter.
 | 
			
		||||
])
 | 
			
		||||
  else
 | 
			
		||||
    AC_DEFINE(WITHOUT_GNOME)
 | 
			
		||||
  fi
 | 
			
		||||
  GNOME_SUPPORT_CHECKS
 | 
			
		||||
else
 | 
			
		||||
  if test "x$want_gnome" != xno ; then
 | 
			
		||||
    AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false)
 | 
			
		||||
  else
 | 
			
		||||
    GNOME_SUPPORT_CHECKS
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
dnl GNOME_INIT_HOOK(gnome_found=yes)
 | 
			
		||||
 | 
			
		||||
AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
 | 
			
		||||
 | 
			
		||||
GNOME_LIBGTOP_SYSDEPS
 | 
			
		||||
GNOME_LIBGTOP_TYPES
 | 
			
		||||
 | 
			
		||||
sysdeps_dir="$libgtop_sysdeps_dir"
 | 
			
		||||
sysdeps_name="$libgtop_sysdeps_name"
 | 
			
		||||
AC_SUBST(sysdeps_dir)
 | 
			
		||||
AC_SUBST(sysdeps_name)
 | 
			
		||||
 | 
			
		||||
AC_MSG_CHECKING(for sysdeps_init_file)
 | 
			
		||||
sysdeps_init_file='sysdeps-init-'"$libgtop_sysdeps_name"'.c'
 | 
			
		||||
AC_SUBST(sysdeps_init_file)
 | 
			
		||||
AC_MSG_RESULT($sysdeps_init_file)
 | 
			
		||||
 | 
			
		||||
LIBGTOP_XML_CHECK
 | 
			
		||||
 | 
			
		||||
AC_ARG_WITH(libgtop-inodedb,
 | 
			
		||||
[  --with-libgtop-inodedb  Build the inodedb stuff (default=no)],
 | 
			
		||||
[build_inodedb="$withval"], [build_inodedb=no])
 | 
			
		||||
 | 
			
		||||
LIBGTOP_EXTRA_LIBS=
 | 
			
		||||
 | 
			
		||||
if test x$build_inodedb = xyes ; then
 | 
			
		||||
  AC_CHECK_LIB(gdbm, gdbm_open, LIBGTOP_EXTRA_LIBS='-lgdbm', build_inodedb=no)
 | 
			
		||||
fi
 | 
			
		||||
@@ -146,17 +119,33 @@ fi
 | 
			
		||||
 | 
			
		||||
AC_DEFINE(GLIBTOP_NAMES)
 | 
			
		||||
 | 
			
		||||
if test x$libgtop_smp = xyes ; then
 | 
			
		||||
  smp_examples='smp'
 | 
			
		||||
  smp_static_examples='smp_static'
 | 
			
		||||
else
 | 
			
		||||
  smp_examples=
 | 
			
		||||
  smp_static_examples=
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test "x$enable_static" != xno; then
 | 
			
		||||
  static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $smp_static_examples"
 | 
			
		||||
else
 | 
			
		||||
  static_targets=""
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
 | 
			
		||||
AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes)
 | 
			
		||||
 | 
			
		||||
AM_PROG_LIBTOOL
 | 
			
		||||
AC_SUBST(static_targets)
 | 
			
		||||
AC_SUBST(smp_examples)
 | 
			
		||||
 | 
			
		||||
AM_PATH_GLIB(1.2.0,,AC_MSG_ERROR(GLIB >= 1.2.0 is required for LibGTop),
 | 
			
		||||
             [gmodule])
 | 
			
		||||
GLIB_REQUIRED=2.0.0
 | 
			
		||||
 | 
			
		||||
dnl You need to uncomment the following line if you want to use
 | 
			
		||||
dnl libGTop without Gnome.
 | 
			
		||||
dnl GNOME_SUPPORT_CHECKS
 | 
			
		||||
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED libgnome-2.0)
 | 
			
		||||
AC_SUBST(GLIB_CFLAGS)
 | 
			
		||||
AC_SUBST(GLIB_LIBS)
 | 
			
		||||
 | 
			
		||||
dnl (1.2.0,,AC_MSG_ERROR(GLIB >= 1.2.0 is required for LibGTop))
 | 
			
		||||
 | 
			
		||||
dnl Checks for typedefs, structures, and compiler characteristics.
 | 
			
		||||
AC_C_CONST
 | 
			
		||||
@@ -190,6 +179,10 @@ AC_CHECK_FUNCS(dlerror,,)
 | 
			
		||||
LIBS="$oLIBS"
 | 
			
		||||
AC_SUBST(DL_LIB)
 | 
			
		||||
 | 
			
		||||
dnl AIX
 | 
			
		||||
AH_TEMPLATE(HAVE_VMGETINFO, [Define to 1 if you have the 'vmgetinfo' function in libperfstat])
 | 
			
		||||
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
 | 
			
		||||
 | 
			
		||||
dnl Solaris
 | 
			
		||||
AC_CHECK_LIB(kstat, kstat_open)
 | 
			
		||||
AC_CHECK_FUNCS(getloadavg swapctl)
 | 
			
		||||
@@ -217,18 +210,18 @@ AC_CHECK_LIB(kvm, kvm_open,[
 | 
			
		||||
dnl For DEC OSF1
 | 
			
		||||
AC_CHECK_LIB(mach, vm_statistics)
 | 
			
		||||
 | 
			
		||||
dnl For some broken libc5 systems (Debian 1.3)                                                           
 | 
			
		||||
saved_CFLAGS=$CFLAGS                                                                                     
 | 
			
		||||
CFLAGS="$CFLAGS -D_GNU_SOURCE"                                                                           
 | 
			
		||||
dnl For some broken libc5 systems (Debian 1.3)
 | 
			
		||||
saved_CFLAGS=$CFLAGS
 | 
			
		||||
CFLAGS="$CFLAGS -D_GNU_SOURCE"
 | 
			
		||||
GCC_NEED_DECLARATION(program_invocation_name, [                           
 | 
			
		||||
#include <errno.h>                                                                                       
 | 
			
		||||
#include <stdio.h>                                                                                       
 | 
			
		||||
#include <stdlib.h>                                                                                      
 | 
			
		||||
#include <string.h>                                                                                      
 | 
			
		||||
])                                                                                                       
 | 
			
		||||
CFLAGS=$saved_CFLAGS                                                                                     
 | 
			
		||||
                                                                                                         
 | 
			
		||||
dnl Check for Internet sockets.
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
CFLAGS=$saved_CFLAGS
 | 
			
		||||
 | 
			
		||||
AC_CHECK_FUNC(socket,
 | 
			
		||||
 [AC_CHECK_HEADER(netinet/in.h,
 | 
			
		||||
   [AC_CHECK_HEADER(arpa/inet.h, [
 | 
			
		||||
@@ -250,9 +243,13 @@ AC_TYPE_SIGNAL
 | 
			
		||||
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 gl ja ko nl no pl pt_BR sv uk"
 | 
			
		||||
AM_GNOME_GETTEXT
 | 
			
		||||
ALL_LINGUAS="am ar az be bg bn ca cs cy da de el es et fa fi fr ga gl he hi hr hu id it ja ko lt lv mk ml mn ms nl nn no pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta tr uk vi zh_CN zh_TW"
 | 
			
		||||
 | 
			
		||||
GETTEXT_PACKAGE=libgtop-2.0
 | 
			
		||||
AC_SUBST(GETTEXT_PACKAGE)
 | 
			
		||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
 | 
			
		||||
 | 
			
		||||
AM_GLIB_GNU_GETTEXT
 | 
			
		||||
 | 
			
		||||
AC_PATH_XTRA
 | 
			
		||||
 | 
			
		||||
@@ -271,51 +268,30 @@ for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
 | 
			
		||||
$1="$T"
 | 
			
		||||
])dnl
 | 
			
		||||
 | 
			
		||||
dnl Autodetect Xauth
 | 
			
		||||
dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
 | 
			
		||||
saved_CPPFLAGS="$CPPFLAGS"
 | 
			
		||||
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
 | 
			
		||||
test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h,          ,with_xauth=no) }
 | 
			
		||||
test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no, $X_LIBS) }
 | 
			
		||||
test -z "$with_xauth" && with_xauth=yes
 | 
			
		||||
if test "$with_xauth" = "yes"; then
 | 
			
		||||
  AC_DEFINE(HAVE_XAUTH)
 | 
			
		||||
  XE_SPACE(libs_xauth, $X_LIBS -lXau)
 | 
			
		||||
fi
 | 
			
		||||
CPPFLAGS="$saved_CPPFLAGS"
 | 
			
		||||
AC_SUBST(libs_xauth)
 | 
			
		||||
 | 
			
		||||
dnl For diskusage stuff
 | 
			
		||||
GNOME_FILEUTILS_CHECKS
 | 
			
		||||
 | 
			
		||||
dnl Debugging
 | 
			
		||||
AC_ARG_ENABLE(debug, [  --enable-debug          turn on debugging [default=no]], libgtop_enable_debug=yes, libgtop_enable_debug=no)
 | 
			
		||||
AC_ARG_ENABLE(debug, [  --enable-debug          turn on debugging [default=no]],AC_DEFINE(LIBGTOP_ENABLE_DEBUG),)
 | 
			
		||||
AC_ARG_ENABLE(fatal-warnings, [  --enable-fatal-warnings make all warnings fatal [debug=no]],AC_DEFINE(LIBGTOP_FATAL_WARNINGS),)
 | 
			
		||||
AC_ARG_ENABLE(glib-malloc, [  --enable-glib-malloc    use glib's malloc [default=auto]], libgtop_enable_glib_malloc=yes,)
 | 
			
		||||
 | 
			
		||||
if test "x$libgtop_enable_glib_malloc" != xyes ; then
 | 
			
		||||
  if test "x$libgtop_enable_debug" = xyes ; then
 | 
			
		||||
    libgtop_enable_glib_malloc=yes
 | 
			
		||||
  else
 | 
			
		||||
    libgtop_enable_glib_malloc=no
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test "x$libgtop_enable_glib_malloc" = xyes ; then
 | 
			
		||||
  AC_DEFINE(LIBGTOP_USE_GLIB_MALLOC)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test "x$libgtop_enable_debug" = xyes ; then
 | 
			
		||||
  AC_DEFINE(LIBGTOP_ENABLE_DEBUG)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test "x$gnome_found" = xyes ; then
 | 
			
		||||
  LIBSUPPORT="$GNOME_LIBDIR -lgnomesupport"
 | 
			
		||||
  SUPPORTINCS="$GNOME_INCLUDEDIR"
 | 
			
		||||
else
 | 
			
		||||
  LIBSUPPORT='$(top_builddir)/support/libgnomesupport.la'
 | 
			
		||||
  SUPPORTINCS='-DNEED_GNOMESUPPORT_H -I$(top_builddir)/support -I$(top_srcdir)/support'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
dnl Some ugly hack; if '-lgnomesupport' is part of $GNOME_LIBS,
 | 
			
		||||
dnl we include it here.
 | 
			
		||||
case "$GNOME_LIBS" in
 | 
			
		||||
	'*-lgnomesupport*' ) 
 | 
			
		||||
	  LIBSUPPORT="$GNOME_LIBDIR -lgnomesupport"
 | 
			
		||||
          SUPPORTINCS="$GNOME_INCLUDEDIR" ;;
 | 
			
		||||
esac
 | 
			
		||||
AC_SUBST(LIBSUPPORT)
 | 
			
		||||
AC_SUBST(SUPPORTINCS)
 | 
			
		||||
 | 
			
		||||
dnl These definitions are expanded in make.
 | 
			
		||||
LIBGTOP_LIBS='-L$(libdir)'
 | 
			
		||||
LIBGTOP_INCS='-I$(includedir) -I$(pkglibdir)/include'
 | 
			
		||||
LIBGTOP_INCS='-I$(includedir)/libgtop-2.0'
 | 
			
		||||
 | 
			
		||||
if test x$libgtop_use_machine_h = xyes ; then
 | 
			
		||||
  LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_GLIBTOP_MACHINE_H"
 | 
			
		||||
@@ -333,16 +309,24 @@ if test x$libgtop_have_sysinfo = xyes ; then
 | 
			
		||||
  LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
LIBGTOP_INCS="$LIBGTOP_INCS $SUPPORTINCS $GLIB_CFLAGS"
 | 
			
		||||
LIBGTOP_INCS="$LIBGTOP_INCS $GLIB_CFLAGS"
 | 
			
		||||
 | 
			
		||||
LIBGTOP_BINDIR='$(bindir)'
 | 
			
		||||
LIBGTOP_SERVER='$(bindir)/libgtop_server'
 | 
			
		||||
LIBGTOP_SERVER='$(bindir)/libgtop_server2'
 | 
			
		||||
 | 
			
		||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS $LIBGTOP_XML_LIB"
 | 
			
		||||
sysdeps_dir="$libgtop_sysdeps_dir"
 | 
			
		||||
AC_SUBST(sysdeps_dir)
 | 
			
		||||
 | 
			
		||||
LIBGTOP_LIBS="$LIBGTOP_LIBS -lgtop_sysdeps -lgtop_common -lgtop"
 | 
			
		||||
if test -z "$LIBGTOP_EXTRA_LIBS" ; then
 | 
			
		||||
  LIBGTOP_EXTRA_LIBS="$libs_xauth"
 | 
			
		||||
else
 | 
			
		||||
  LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $libs_xauth"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS -lgtop_names"
 | 
			
		||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
 | 
			
		||||
 | 
			
		||||
LIBGTOP_LIBS="$LIBGTOP_LIBS"
 | 
			
		||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS"
 | 
			
		||||
 | 
			
		||||
LIBGTOP_LIBS="$LIBGTOP_LIBS" 
 | 
			
		||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_NAMES_LIBS"
 | 
			
		||||
@@ -353,15 +337,12 @@ machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir"
 | 
			
		||||
 | 
			
		||||
AC_SUBST(machine_incs)
 | 
			
		||||
 | 
			
		||||
LIBGTOP_BACKEND_DIR="\$(datadir)/libgtop/backends"
 | 
			
		||||
 | 
			
		||||
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -DGLIBTOP_NAMES -I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include -I\$(top_builddir)/include -I\$(top_srcdir)/intl $SUPPORTINCS $GLIB_CFLAGS $CFLAGS $X_CFLAGS "'-DGTOPLOCALEDIR=\"$(datadir)/locale\" -DLIBGTOP_VERSION=\"'"$LIBGTOP_VERSION"'\" -DLIBGTOP_SERVER_VERSION=\"'"$LIBGTOP_SERVER_VERSION"'\" -DLIBGTOP_VERSION_CODE='$LIBGTOP_VERSION_CODE' -DLIBGTOP_SERVER=\"'"$LIBGTOP_SERVER"'\" -DLIBGTOP_BACKEND_DIR=\"'"$LIBGTOP_BACKEND_DIR"'\"'
 | 
			
		||||
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -DGLIBTOP_NAMES -I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $CFLAGS $X_CFLAGS "'-DGTOPLOCALEDIR=\"$(datadir)/locale\" -DLIBGTOP_VERSION=\"'"$LIBGTOP_VERSION"'\" -DLIBGTOP_SERVER_VERSION=\"'"$LIBGTOP_SERVER_VERSION"'\" -DLIBGTOP_VERSION_CODE='$LIBGTOP_VERSION_CODE' -DLIBGTOP_SERVER=\"'"$LIBGTOP_SERVER"'\"'
 | 
			
		||||
 | 
			
		||||
AC_SUBST(INCLUDES)
 | 
			
		||||
 | 
			
		||||
AC_SUBST(LIBGTOP_EXTRA_LIBS)
 | 
			
		||||
AC_SUBST(LIBGTOP_BACKEND_DIR)
 | 
			
		||||
 | 
			
		||||
AC_SUBST(GLIB_LIBS)
 | 
			
		||||
AC_SUBST(LIBGTOP_LIBS)
 | 
			
		||||
AC_SUBST(LIBGTOP_INCS)
 | 
			
		||||
AC_SUBST(LIBGTOP_NAMES_LIBS)
 | 
			
		||||
@@ -370,8 +351,8 @@ AC_SUBST(LIBGTOP_BINDIR)
 | 
			
		||||
AC_SUBST(LIBGTOP_SERVER)
 | 
			
		||||
 | 
			
		||||
if test x$libgtop_need_server = xyes ; then
 | 
			
		||||
   sysdeps_suid_lib="\$(top_builddir)/sysdeps/\$(sysdeps_dir)/libgtop_sysdeps_suid.la"
 | 
			
		||||
   server_programs='libgtop_server'
 | 
			
		||||
   sysdeps_suid_lib="\$(top_builddir)/sysdeps/\$(sysdeps_dir)/libgtop_sysdeps_suid-2.0.la"
 | 
			
		||||
   server_programs='libgtop_server2'
 | 
			
		||||
else
 | 
			
		||||
   sysdeps_suid_lib=
 | 
			
		||||
   server_programs=
 | 
			
		||||
@@ -379,144 +360,10 @@ fi
 | 
			
		||||
AC_SUBST(sysdeps_suid_lib)
 | 
			
		||||
AC_SUBST(server_programs)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
dnl The following one is copied from glib/configure.in
 | 
			
		||||
 | 
			
		||||
AC_OUTPUT_COMMANDS([
 | 
			
		||||
 | 
			
		||||
## Generate `glibconfig.h' in two cases
 | 
			
		||||
## 1. `config.status' is run either explicitly, or via configure.
 | 
			
		||||
##     Esp. not when it is run in `Makefile' to generate makefiles and
 | 
			
		||||
##     config.h
 | 
			
		||||
## 2. CONFIG_OTHER is set explicitly
 | 
			
		||||
##
 | 
			
		||||
## Case 1 is difficult.  We know that `automake' sets one of
 | 
			
		||||
## CONFIG_FILES or CONFIG_HEADERS to empty.  This heuristic works
 | 
			
		||||
## only when AM_CONFIG_HEADER is set, however.
 | 
			
		||||
 | 
			
		||||
if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
 | 
			
		||||
  # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
 | 
			
		||||
  CONFIG_OTHER=${CONFIG_OTHER:-glibtop-config.h}
 | 
			
		||||
fi
 | 
			
		||||
case "$CONFIG_OTHER" in
 | 
			
		||||
*glibtop-config.h*)
 | 
			
		||||
	echo creating glibtop-config.h
 | 
			
		||||
	outfile=glibtop-config.h-tmp
 | 
			
		||||
	cat > $outfile <<\_______EOF
 | 
			
		||||
/* glibtop-config.h
 | 
			
		||||
 *
 | 
			
		||||
 * This is a generated file.  Please modify `configure.in'
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef GLIBTOP_CONFIG_H
 | 
			
		||||
#define GLIBTOP_CONFIG_H
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif /* __cplusplus */
 | 
			
		||||
_______EOF
 | 
			
		||||
 | 
			
		||||
	did_typedefs=no
 | 
			
		||||
 | 
			
		||||
	if test x$glibtop_uint64_t != xyes ; then
 | 
			
		||||
	  did_typedefs=yes
 | 
			
		||||
	  cat >> $outfile <<\_______EOF
 | 
			
		||||
 | 
			
		||||
#ifndef u_int64_t
 | 
			
		||||
typedef unsigned long long int u_int64_t;
 | 
			
		||||
#endif
 | 
			
		||||
_______EOF
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if test x$glibtop_int64_t != xyes ; then
 | 
			
		||||
	  did_typedefs=yes
 | 
			
		||||
	  cat >> $outfile <<\_______EOF
 | 
			
		||||
 | 
			
		||||
#ifndef int64_t
 | 
			
		||||
typedef signed long long int int64_t;
 | 
			
		||||
#endif
 | 
			
		||||
_______EOF
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if test x$did_typedefs = xyes ; then
 | 
			
		||||
	  cat >>$outfile <<_______EOF
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * NOTE:  If your application checks for "u_int64_t" or "int64_t" in its own
 | 
			
		||||
 *        config.h, you must not include it after any of the LibGTop headers.
 | 
			
		||||
 */
 | 
			
		||||
_______EOF
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	cat >>$outfile <<_______EOF
 | 
			
		||||
 | 
			
		||||
/* Define if we need the LibGTop server. */
 | 
			
		||||
_______EOF
 | 
			
		||||
 | 
			
		||||
	if test x$glibtop_need_libgtop = xyes ; then
 | 
			
		||||
	  echo '#define NEED_LIBGTOP 1' >> $outfile
 | 
			
		||||
	else
 | 
			
		||||
	  echo '#undef NEED_LIBGTOP' >> $outfile
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	cat >>$outfile <<_______EOF
 | 
			
		||||
 | 
			
		||||
/* Define if LibGTop has support for multiple processors. */
 | 
			
		||||
_______EOF
 | 
			
		||||
 | 
			
		||||
	if test x$glibtop_have_smp = xyes ; then
 | 
			
		||||
	  echo '#define HAVE_LIBGTOP_SMP 1' >> $outfile
 | 
			
		||||
	else
 | 
			
		||||
	  echo '#undef HAVE_LIBGTOP_SMP' >> $outfile
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	cat >>$outfile <<_______EOF
 | 
			
		||||
 | 
			
		||||
/* LibGTop major, minor and micro version. */
 | 
			
		||||
#define LIBGTOP_MAJOR_VERSION $libgtop_major_version
 | 
			
		||||
#define LIBGTOP_MINOR_VERSION $libgtop_minor_version
 | 
			
		||||
#define LIBGTOP_MICRO_VERSION $libgtop_micro_version
 | 
			
		||||
 | 
			
		||||
/* LibGTop version and numerical version code ("1.234.567" -> 1234567). */
 | 
			
		||||
#define LIBGTOP_VERSION "$libgtop_version"
 | 
			
		||||
#define LIBGTOP_VERSION_CODE $libgtop_version_code
 | 
			
		||||
 | 
			
		||||
/* LibGTop server version, increased each time the protocol changes. */
 | 
			
		||||
#define LIBGTOP_SERVER_VERSION $libgtop_server_version
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif /* __cplusplus */
 | 
			
		||||
 | 
			
		||||
#endif /* GLIBCONFIG_H */
 | 
			
		||||
_______EOF
 | 
			
		||||
 | 
			
		||||
	if cmp -s $outfile glibtop-config.h; then
 | 
			
		||||
	  echo glibtop-config.h is unchanged
 | 
			
		||||
	  rm -f $outfile
 | 
			
		||||
	else
 | 
			
		||||
	  mv $outfile glibtop-config.h
 | 
			
		||||
	fi ;;
 | 
			
		||||
esac
 | 
			
		||||
],[
 | 
			
		||||
glibtop_uint64_t=$ac_cv_type_u_int64_t
 | 
			
		||||
glibtop_int64_t=$ac_cv_type_int64_t
 | 
			
		||||
libgtop_major_version=$LIBGTOP_MAJOR_VERSION
 | 
			
		||||
libgtop_minor_version=$LIBGTOP_MINOR_VERSION
 | 
			
		||||
libgtop_micro_version=$LIBGTOP_MICRO_VERSION
 | 
			
		||||
libgtop_version_code=$LIBGTOP_VERSION_CODE
 | 
			
		||||
libgtop_server_version=$LIBGTOP_SERVER_VERSION
 | 
			
		||||
libgtop_version=$LIBGTOP_VERSION
 | 
			
		||||
glibtop_need_libgtop=$libgtop_need_server
 | 
			
		||||
glibtop_have_smp=$libgtop_smp
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AC_OUTPUT([
 | 
			
		||||
Makefile
 | 
			
		||||
libgtop.spec
 | 
			
		||||
po/Makefile.in
 | 
			
		||||
intl/Makefile
 | 
			
		||||
misc/Makefile
 | 
			
		||||
include/Makefile
 | 
			
		||||
include/glibtop/Makefile
 | 
			
		||||
@@ -531,14 +378,12 @@ sysdeps/linux/Makefile
 | 
			
		||||
sysdeps/kernel/Makefile
 | 
			
		||||
sysdeps/freebsd/Makefile
 | 
			
		||||
sysdeps/solaris/Makefile
 | 
			
		||||
sysdeps/aix/Makefile
 | 
			
		||||
src/Makefile
 | 
			
		||||
src/daemon/Makefile
 | 
			
		||||
src/inodedb/Makefile
 | 
			
		||||
scripts/Makefile
 | 
			
		||||
backends/Makefile
 | 
			
		||||
backends/server/Makefile
 | 
			
		||||
backends/sysdeps/Makefile
 | 
			
		||||
backends/common/Makefile
 | 
			
		||||
lib/Makefile
 | 
			
		||||
examples/Makefile
 | 
			
		||||
doc/Makefile
 | 
			
		||||
support/Makefile
 | 
			
		||||
macros/Makefile])
 | 
			
		||||
libgtop-2.0.pc
 | 
			
		||||
])
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								debian/README.Debian
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								debian/README.Debian
									
									
									
									
										vendored
									
									
								
							@@ -1,10 +1,9 @@
 | 
			
		||||
LibGTop CVS snapshots for Debian
 | 
			
		||||
--------------------------------
 | 
			
		||||
 | 
			
		||||
This is a snapshot of LibGTop from the main CVS archive, built into a
 | 
			
		||||
Debian package. This package is not guaranteed to work, as it was
 | 
			
		||||
built automatically. You're on your own, mister or missus!
 | 
			
		||||
This is a debian package made from a stable release of LibGTop, but it
 | 
			
		||||
should be considered "unofficial" since I'm not a Debian Maintainer.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Martin Baulig <martin@home-of-linux.org>, Fri, 14 Jan 2000 20:20:13 +0100
 | 
			
		||||
Martin Baulig <martin@home-of-linux.org>, Wed, 16 Feb 2000 16:40:50 +0100
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							@@ -1,9 +1,10 @@
 | 
			
		||||
libgtop (1.1.4-1) unstable; urgency=low
 | 
			
		||||
  * New upstream source
 | 
			
		||||
  * Non-maintainer upload; this is an unstable developer's snapshot from
 | 
			
		||||
    the GNOME CVS tree.
 | 
			
		||||
libgtop (1.0.7-1) unstable; urgency=low
 | 
			
		||||
  * New upstream source (1.0.7 "Copenhagen" release)
 | 
			
		||||
  * Non-maintainer upload; since I'm not a Debian maintainer, this is some
 | 
			
		||||
    kind of "unofficial" debian package for LibGTop 1.0.7 - but I think it
 | 
			
		||||
    can be considered stable and working.
 | 
			
		||||
 | 
			
		||||
 -- Martin Baulig <martin@home-of-linux.org>  Fri, 14 Jan 2000 15:32:48 +0100
 | 
			
		||||
 -- Martin Baulig <martin@home-of-linux.org>  Wed, 16 Feb 2000 16:40:50 +0100
 | 
			
		||||
 | 
			
		||||
libgtop (1.0.6-1) unstable; urgency=low
 | 
			
		||||
  * New upstream source
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
								
							@@ -4,7 +4,7 @@ Section: libs
 | 
			
		||||
Priority: optional
 | 
			
		||||
Standards-Version: 3.0.0
 | 
			
		||||
 | 
			
		||||
Package: libgtop2@SUFFIX@
 | 
			
		||||
Package: libgtop1@SUFFIX@
 | 
			
		||||
Architecture: any
 | 
			
		||||
Section: libs
 | 
			
		||||
Depends: ${shlibs:Depends}
 | 
			
		||||
@@ -20,7 +20,7 @@ Description: Portable system access library (part of Gnome)
 | 
			
		||||
Package: libgtop-dev@SUFFIX@
 | 
			
		||||
Architecture: any
 | 
			
		||||
Section: devel
 | 
			
		||||
Depends: libgtop2@SUFFIX@ (= ${Source-Version})
 | 
			
		||||
Depends: libgtop1@SUFFIX@ (= ${Source-Version})
 | 
			
		||||
Description: Dev libraries for the portable system access library (part of Gnome)
 | 
			
		||||
 Gnome is the "GNU Network Object Model Environment"
 | 
			
		||||
 .
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								debian/debconfigure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/debconfigure
									
									
									
									
										vendored
									
									
								
							@@ -93,7 +93,7 @@ do
 | 
			
		||||
       sed "s,%$debtype>,," | sed '/^%/d' > $tofile
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
for postinst in libgtop2$pkgsuffix
 | 
			
		||||
for postinst in libgtop1$pkgsuffix
 | 
			
		||||
do
 | 
			
		||||
 | 
			
		||||
cat > $postinst.postinst <<EOF
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								debian/libgtop-dev.files.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								debian/libgtop-dev.files.in
									
									
									
									
										vendored
									
									
								
							@@ -15,7 +15,6 @@
 | 
			
		||||
@PREFIX@/lib/libgtop_suid_common.so
 | 
			
		||||
@PREFIX@/lib/libgtop_sysdeps.so
 | 
			
		||||
@PREFIX@/lib/libgtop-features.def
 | 
			
		||||
@PREFIX@/lib/libgtop-structures.def
 | 
			
		||||
@PREFIX@/lib/libgtop/include/*.h
 | 
			
		||||
@PREFIX@/include/glibtop/*.h
 | 
			
		||||
@PREFIX@/include/glibtop.h
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								debian/libgtop1.README.Debian
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								debian/libgtop1.README.Debian
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
 | 
			
		||||
The Debian package of libgtop, a GNOME library.
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
Martin Baulig <martin@home-of-linux.org>
 | 
			
		||||
							
								
								
									
										12
									
								
								debian/libgtop1.copyright
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								debian/libgtop1.copyright
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
 | 
			
		||||
libgtop is released under the GPL.
 | 
			
		||||
On Debian GNU/Linux systems, the complete text of the GNU General
 | 
			
		||||
Public License can be found in /usr/share/common-licenses/GPL
 | 
			
		||||
 | 
			
		||||
Original authors: Martin Baulig <martin@home-of-linux.org>
 | 
			
		||||
                  Drazen Kacar <dave@srce.hr>
 | 
			
		||||
 | 
			
		||||
Originally Debianised by Jim Pick <jim@jimpick.com>
 | 
			
		||||
Then re-Debianised in October 1998 by Martin Schulze
 | 
			
		||||
<joey@finlandia.infodrom.north.de> before being taken over by Ian Lynagh
 | 
			
		||||
<ian@lynagh.demon.co.uk> in November 1998.
 | 
			
		||||
							
								
								
									
										5
									
								
								debian/libgtop1.docs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								debian/libgtop1.docs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
RELNOTES-0.25
 | 
			
		||||
RELNOTES-1.0.x
 | 
			
		||||
NEWS
 | 
			
		||||
AUTHORS
 | 
			
		||||
debian/changelog
 | 
			
		||||
							
								
								
									
										4
									
								
								debian/libgtop1.files.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								debian/libgtop1.files.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
@PREFIX@/lib/libgtop*.so.[0-9].[0-9][0-9].[0-9]
 | 
			
		||||
@PREFIX@/lib/libgtop*.so.[0-9].[0-9].[0-9]
 | 
			
		||||
@PREFIX@/lib/libgtop*.so.[0-9]
 | 
			
		||||
@PREFIX@/share/locale/*/*/libgtop.mo
 | 
			
		||||
							
								
								
									
										8
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
								
							@@ -66,14 +66,14 @@ install-saved:
 | 
			
		||||
binary-indep: build install
 | 
			
		||||
 | 
			
		||||
binary-arch: build install \
 | 
			
		||||
		libgtop2@SUFFIX@ \
 | 
			
		||||
		libgtop1@SUFFIX@ \
 | 
			
		||||
		libgtop-dev@SUFFIX@
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# libgtop2@SUFFIX@
 | 
			
		||||
# libgtop1@SUFFIX@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
libgtop2@SUFFIX@: install
 | 
			
		||||
libgtop1@SUFFIX@: install
 | 
			
		||||
	@echo "--- Building: $@"
 | 
			
		||||
	dh_installdocs       -p$@ -P$(b)/$@ README NEWS AUTHORS
 | 
			
		||||
	dh_installchangelogs -p$@ -P$(b)/$@ ChangeLog
 | 
			
		||||
@@ -95,7 +95,7 @@ libgtop2@SUFFIX@: install
 | 
			
		||||
libgtop-dev@SUFFIX@: install
 | 
			
		||||
	@echo "--- Building: $@"
 | 
			
		||||
	mkdir -p $(b)/$@/usr/doc
 | 
			
		||||
	cd $(b)/$@/usr/doc; ln -s libgtop2@SUFFIX@ $@	
 | 
			
		||||
	cd $(b)/$@/usr/doc; ln -s libgtop1@SUFFIX@ $@	
 | 
			
		||||
	dh_movefiles         -p$@ -P$(b)/$@
 | 
			
		||||
	dh_strip             -p$@ -P$(b)/$@ 
 | 
			
		||||
	dh_compress          -p$@ -P$(b)/$@ 
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,22 @@
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* reference.texi: s/u_int64_t/guint64/
 | 
			
		||||
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: removed traces of guile, intllibs and libgnomesupport
 | 
			
		||||
 | 
			
		||||
2002-03-12  James Henstridge  <james@daa.com.au>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am (MAKEINFO): using += seems to screw up the build
 | 
			
		||||
	with newer automakes.  Set it explicitly (using @MAKEINFO@) seems
 | 
			
		||||
	to be compatible with both.
 | 
			
		||||
 | 
			
		||||
2001-11-26  Abel Cheung  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* libgtop.texi, Makefile.am: Renamed to libgtop2.texi
 | 
			
		||||
	* about.texi: Very minor update.
 | 
			
		||||
 | 
			
		||||
1999-10-18  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* about.texi: Added a note about LibGTop and GNOME.
 | 
			
		||||
@@ -7,22 +26,7 @@
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
	* Makefile.am (MAKEINFO): Add `-I @libgtop_top_builddir@/doc' here.
 | 
			
		||||
 | 
			
		||||
1999-05-16  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,27 +1,23 @@
 | 
			
		||||
info_TEXINFOS		= libgtop.texi
 | 
			
		||||
info_TEXINFOS		= libgtop2.texi
 | 
			
		||||
 | 
			
		||||
libgtop_TEXINFOS	= libgtop.texi about.texi reference.texi \
 | 
			
		||||
libgtop2_TEXINFOS	= libgtop2.texi about.texi reference.texi \
 | 
			
		||||
			  auto-macros.texi version.texi main.texi \
 | 
			
		||||
			  white-paper.texi internals.texi
 | 
			
		||||
			  white-paper.texi
 | 
			
		||||
 | 
			
		||||
MAKEINFO		+= -I @libgtop_top_builddir@/doc
 | 
			
		||||
MAKEINFO		= @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_INCLUDEDIR\%#$(includedir)/libgtop-2.0#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' \
 | 
			
		||||
@@ -33,7 +29,6 @@ auto-macros.texi: auto-macros.texi.in Makefile
 | 
			
		||||
	  -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
 | 
			
		||||
 
 | 
			
		||||
@@ -7,9 +7,10 @@ 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.
 | 
			
		||||
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
 | 
			
		||||
@@ -32,10 +33,10 @@ latest release tarballs from
 | 
			
		||||
@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.
 | 
			
		||||
The latest stable version of LibGTop is 1.0.12 which is also the one that comes
 | 
			
		||||
together with GNOME 1.0. It belongs to @code{LIBGTOP_STABLE_1_0} branch in CVS.
 | 
			
		||||
Actual development occurs in the @code{libgtop-GNOME-2-0-port} which is
 | 
			
		||||
currently versioned 1.90.0.
 | 
			
		||||
 | 
			
		||||
@node Supported Platforms, Mailing List, Availability, About
 | 
			
		||||
@section Supported Platforms
 | 
			
		||||
@@ -46,7 +47,7 @@ The stable branch currently supports the following platforms:
 | 
			
		||||
@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.
 | 
			
		||||
it should also work without problems on SparcLinux or Linux 2.4.x.
 | 
			
		||||
 | 
			
		||||
Note: I'm speaking of the Linux kernel here, not the GNU/Linux operating system.
 | 
			
		||||
 | 
			
		||||
@@ -115,6 +116,7 @@ me a lot in the early beginning.
 | 
			
		||||
@item Timur Bakeyev for the BSDI port.
 | 
			
		||||
@item Drazen Kacar and the other people on the LibGTop development mailing
 | 
			
		||||
list for the Solaris port.
 | 
			
		||||
@item Kevin Vandersloot for the effort to port to GNOME 2.0.
 | 
			
		||||
@item All people sending me patches, having good ideas, ...
 | 
			
		||||
@item Everyone I have forgotten in this list ...
 | 
			
		||||
@end itemize
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
\input texinfo   @c -*-texinfo-*-
 | 
			
		||||
@c %**start of header
 | 
			
		||||
@setfilename libgtop.info
 | 
			
		||||
@setfilename libgtop2.info
 | 
			
		||||
@settitle LibGTop Reference Manual
 | 
			
		||||
@setchapternewpage odd
 | 
			
		||||
@c %**end of header
 | 
			
		||||
@@ -44,7 +44,7 @@ translation approved by the Free Software Foundation.
 | 
			
		||||
@format
 | 
			
		||||
@dircategory Libraries:
 | 
			
		||||
@direntry
 | 
			
		||||
* libgtop: (libgtop).			Library to get system specific data
 | 
			
		||||
* LibGTop2: (libgtop2).			Library to get system specific data
 | 
			
		||||
					such as cpu and memory usage, active
 | 
			
		||||
					processes
 | 
			
		||||
@end direntry
 | 
			
		||||
@@ -4,7 +4,6 @@
 | 
			
		||||
* About::                       About LibGTop
 | 
			
		||||
* White Paper::                 LibGTop White Paper
 | 
			
		||||
* Reference Manual::            LibGTop Reference Manual
 | 
			
		||||
* LibGTop Internals::           LibGTop Internals
 | 
			
		||||
 | 
			
		||||
 --- The Detailed Node Listing ---
 | 
			
		||||
 | 
			
		||||
@@ -19,7 +18,6 @@ LibGTop White Paper
 | 
			
		||||
 | 
			
		||||
* Introduction::                Introduction
 | 
			
		||||
* Overview::                    Overview
 | 
			
		||||
* Servers and Daemons::         Servers and Daemons
 | 
			
		||||
 | 
			
		||||
Overview
 | 
			
		||||
 | 
			
		||||
@@ -62,24 +60,9 @@ 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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
@node Reference Manual, LibGTop Internals, White Paper, Top
 | 
			
		||||
@node Reference Manual, , White Paper, Top
 | 
			
		||||
@chapter LibGTop Reference Manual
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
@@ -50,7 +50,7 @@ typedef struct _glibtop_cpu     glibtop_cpu;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_cpu
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        total,
 | 
			
		||||
        user,
 | 
			
		||||
        nice,
 | 
			
		||||
@@ -139,7 +139,7 @@ typedef struct _glibtop_mem     glibtop_mem;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_mem
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        total,
 | 
			
		||||
        used,
 | 
			
		||||
        free,
 | 
			
		||||
@@ -207,7 +207,7 @@ typedef struct _glibtop_swap    glibtop_swap;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_swap
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        total,
 | 
			
		||||
        used,
 | 
			
		||||
        free,
 | 
			
		||||
@@ -266,10 +266,10 @@ typedef struct _glibtop_uptime  glibtop_uptime;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_uptime
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    guint64 flags;
 | 
			
		||||
    double uptime,
 | 
			
		||||
        idletime;
 | 
			
		||||
    u_int64_t boot_time;
 | 
			
		||||
    guint64 boot_time;
 | 
			
		||||
@};
 | 
			
		||||
@end cartouche
 | 
			
		||||
@end example
 | 
			
		||||
@@ -318,9 +318,9 @@ typedef struct _glibtop_loadavg glibtop_loadavg;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_loadavg
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    guint64 flags;
 | 
			
		||||
    double loadavg [3];
 | 
			
		||||
    u_int64_t nr_running,
 | 
			
		||||
    guint64 nr_running,
 | 
			
		||||
        nr_tasks,
 | 
			
		||||
        last_pid;
 | 
			
		||||
@};
 | 
			
		||||
@@ -395,7 +395,7 @@ typedef struct _glibtop_proclist        glibtop_proclist;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proclist
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        number,
 | 
			
		||||
        total,
 | 
			
		||||
        size;
 | 
			
		||||
@@ -464,8 +464,8 @@ Size of a single entry in the returned list
 | 
			
		||||
(this equals @code{sizeof (unsigned)}).
 | 
			
		||||
@end table
 | 
			
		||||
 | 
			
		||||
The returned list is allocated using @code{glibtop_malloc} and must be freed
 | 
			
		||||
using @code{glibtop_free} to avoid a memory leak.
 | 
			
		||||
The returned list is allocated using @code{g_malloc} and must be freed
 | 
			
		||||
using @code{g_free} to avoid a memory leak.
 | 
			
		||||
 | 
			
		||||
@page
 | 
			
		||||
@node glibtop_proc_state, glibtop_proc_uid, glibtop_proclist, System Dependent
 | 
			
		||||
@@ -492,7 +492,7 @@ typedef struct _glibtop_proc_state      glibtop_proc_state;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_state
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    guint64 flags;
 | 
			
		||||
    char cmd[40];
 | 
			
		||||
@ifset LIBGTOP-1-1
 | 
			
		||||
    unsigned state;
 | 
			
		||||
@@ -618,7 +618,7 @@ typedef struct _glibtop_proc_uid        glibtop_proc_uid;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_uid
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    guint64 flags;
 | 
			
		||||
    int uid,
 | 
			
		||||
        euid,
 | 
			
		||||
        gid,
 | 
			
		||||
@@ -698,7 +698,7 @@ typedef struct _glibtop_proc_mem        glibtop_proc_mem;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_mem
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        size,
 | 
			
		||||
        vsize,
 | 
			
		||||
        resident,
 | 
			
		||||
@@ -813,7 +813,7 @@ typedef struct _glibtop_proc_time       glibtop_proc_time;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_time
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        start_time,
 | 
			
		||||
        rtime,
 | 
			
		||||
        utime,
 | 
			
		||||
@@ -881,7 +881,7 @@ typedef struct _glibtop_proc_signal     glibtop_proc_signal;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_signal
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        signal [2],
 | 
			
		||||
        blocked [2],
 | 
			
		||||
        sigignore [2],
 | 
			
		||||
@@ -902,7 +902,7 @@ Mask of caught signals
 | 
			
		||||
@end table
 | 
			
		||||
 | 
			
		||||
All signal masks are interpreted as bit mask; it is an array of two
 | 
			
		||||
@code{u_int64_t}'s so we can save 128 signals there.
 | 
			
		||||
@code{guint64}'s so we can save 128 signals there.
 | 
			
		||||
 | 
			
		||||
@page
 | 
			
		||||
@node glibtop_proc_kernel, glibtop_proc_segment, glibtop_proc_signal, System Dependent
 | 
			
		||||
@@ -929,8 +929,8 @@ typedef struct _glibtop_proc_kernel     glibtop_proc_kernel;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_kernel
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t flags;
 | 
			
		||||
    u_int64_t k_flags,
 | 
			
		||||
    guint64 flags;
 | 
			
		||||
    guint64 k_flags,
 | 
			
		||||
        min_flt,
 | 
			
		||||
        maj_flt,
 | 
			
		||||
        cmin_flt,
 | 
			
		||||
@@ -1029,7 +1029,7 @@ typedef struct _glibtop_proc_segment    glibtop_proc_segment;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_segment
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        text_rss,
 | 
			
		||||
        shlib_rss,
 | 
			
		||||
        data_rss,
 | 
			
		||||
@@ -1096,7 +1096,7 @@ typedef struct _glibtop_proc_args       glibtop_proc_args;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_args
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        size;
 | 
			
		||||
@};
 | 
			
		||||
@end cartouche
 | 
			
		||||
@@ -1108,7 +1108,7 @@ Returns a string with all command line arguments of process @code{pid}
 | 
			
		||||
The command line arguments in the returned string are separated by zero bytes;
 | 
			
		||||
the lenght of this string is returned in the @code{size} field.
 | 
			
		||||
 | 
			
		||||
Remember to @code{glibtop_free} the returned string to avoid a memory leak.
 | 
			
		||||
Remember to @code{g_free} the returned string to avoid a memory leak.
 | 
			
		||||
 | 
			
		||||
@page
 | 
			
		||||
@node glibtop_proc_map, glibtop_netload, glibtop_proc_args, System Dependent
 | 
			
		||||
@@ -1135,7 +1135,7 @@ typedef struct _glibtop_proc_map        glibtop_proc_map;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_map
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        number,
 | 
			
		||||
        total,
 | 
			
		||||
        size;
 | 
			
		||||
@@ -1144,7 +1144,7 @@ struct _glibtop_proc_map
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
Returns a @code{glibtop_map_entry *} list (which needs to be freed with
 | 
			
		||||
@code{glibtop_free}) of memory maps of process @code{pid}.
 | 
			
		||||
@code{g_free}) of memory maps of process @code{pid}.
 | 
			
		||||
 | 
			
		||||
@table @code
 | 
			
		||||
@item number
 | 
			
		||||
@@ -1164,7 +1164,7 @@ typedef struct _glibtop_map_entry       glibtop_map_entry;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_map_entry
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t flags, start, end, offset, perm, inode, device;
 | 
			
		||||
    guint64 flags, start, end, offset, perm, inode, device;
 | 
			
		||||
    char filename [GLIBTOP_MAP_FILENAME_LEN+1];
 | 
			
		||||
@};
 | 
			
		||||
@end cartouche
 | 
			
		||||
@@ -1222,7 +1222,7 @@ typedef struct _glibtop_netload glibtop_netload;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_netload
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        if_flags,
 | 
			
		||||
        mtu,
 | 
			
		||||
        subnet,
 | 
			
		||||
@@ -1329,7 +1329,7 @@ typedef struct _glibtop_ppp     glibtop_ppp;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_ppp
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        state,
 | 
			
		||||
        bytes_in,
 | 
			
		||||
        bytes_out;
 | 
			
		||||
@@ -1409,7 +1409,7 @@ typedef struct _glibtop_mountlist       glibtop_mountlist;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_mountlist
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        number,
 | 
			
		||||
        total,
 | 
			
		||||
        size;
 | 
			
		||||
@@ -1418,7 +1418,7 @@ struct _glibtop_mountlist
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
Returns a @code{glibtop_mountentry *} list (which needs to be freed with
 | 
			
		||||
@code{glibtop_free}) of mounted filesystems.
 | 
			
		||||
@code{g_free}) of mounted filesystems.
 | 
			
		||||
 | 
			
		||||
@table @code
 | 
			
		||||
@item number
 | 
			
		||||
@@ -1438,7 +1438,7 @@ typedef struct _glibtop_mountentry      glibtop_mountentry;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_mountentry
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t dev;
 | 
			
		||||
    guint64 dev;
 | 
			
		||||
    char devname [GLIBTOP_MOUNTENTRY_LEN+1];
 | 
			
		||||
    char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
 | 
			
		||||
    char type [GLIBTOP_MOUNTENTRY_LEN+1];
 | 
			
		||||
@@ -1488,7 +1488,7 @@ typedef struct _glibtop_fsusage         glibtop_fsusage;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_fsusage
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t   flags,
 | 
			
		||||
    guint64   flags,
 | 
			
		||||
        blocks,
 | 
			
		||||
        bfree,
 | 
			
		||||
        bavail,
 | 
			
		||||
@@ -1639,7 +1639,7 @@ typedef struct _glibtop_sysdeps         glibtop_sysdeps;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_sysdeps
 | 
			
		||||
@{
 | 
			
		||||
    u_int64_t flags,
 | 
			
		||||
    guint64 flags,
 | 
			
		||||
        features,
 | 
			
		||||
        pointer_size,
 | 
			
		||||
        cpu,
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,6 @@
 | 
			
		||||
@menu
 | 
			
		||||
* Introduction::                Introduction
 | 
			
		||||
* Overview::                    Overview
 | 
			
		||||
* Servers and Daemons::         Servers and Daemons
 | 
			
		||||
@end menu
 | 
			
		||||
 | 
			
		||||
@node Introduction, Overview, White Paper, White Paper
 | 
			
		||||
@@ -48,7 +47,7 @@ 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
 | 
			
		||||
@node Overview,  , Introduction, White Paper
 | 
			
		||||
@section Overview
 | 
			
		||||
 | 
			
		||||
This section should give you a short overview on how LibGTop was developed, which
 | 
			
		||||
@@ -89,48 +88,3 @@ 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.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								dtd/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dtd/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
Makefile.in
 | 
			
		||||
Makefile
 | 
			
		||||
							
								
								
									
										9
									
								
								dtd/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								dtd/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
backenddir	= @LIBGTOP_BACKEND_DIR@
 | 
			
		||||
 | 
			
		||||
backend_DATA	= \
 | 
			
		||||
	libgtop-backends.dtd	\
 | 
			
		||||
	libgtop-backend-info.dtd
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST	= |
 | 
			
		||||
	$(backend_DATA)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								dtd/libgtop-backend-info.dtd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								dtd/libgtop-backend-info.dtd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<!ELEMENT BackendInfo (name,description?,comments?,authors,legalnotice)>
 | 
			
		||||
<!ELEMENT name (short_name,long_name?)>
 | 
			
		||||
<!ELEMENT short_name (#PCDATA)>
 | 
			
		||||
<!ELEMENT long_name (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT description (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT authors (author)+>
 | 
			
		||||
<!ELEMENT author (author_name,author_email?)>
 | 
			
		||||
<!ELEMENT author_name (#PCDATA)>
 | 
			
		||||
<!ELEMENT author_email (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT legalnotice (license,copyright?)>
 | 
			
		||||
<!ELEMENT license (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT copyright (holder)+>
 | 
			
		||||
<!ELEMENT holder (holder_year?,holder_name,holder_email?)>
 | 
			
		||||
<!ELEMENT holder_year (#PCDATA)>
 | 
			
		||||
<!ELEMENT holder_name (#PCDATA)>
 | 
			
		||||
<!ELEMENT holder_email (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT comments (comment)+>
 | 
			
		||||
<!ELEMENT comment (#PCDATA)>
 | 
			
		||||
							
								
								
									
										11
									
								
								dtd/libgtop-backends.dtd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								dtd/libgtop-backends.dtd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
<!ELEMENT Backends (Backend)+>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT Backend (Name,Location)>
 | 
			
		||||
<!ELEMENT Name (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT Location (LibtoolName?,ShlibName,ExtraLibs?)>
 | 
			
		||||
<!ELEMENT LibtoolName (#PCDATA)>
 | 
			
		||||
<!ELEMENT ShlibName (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT ExtraLibs (ExtraLib)+>
 | 
			
		||||
<!ELEMENT ExtraLib (LibtoolName?,ShlibName)>
 | 
			
		||||
							
								
								
									
										16
									
								
								examples/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								examples/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
.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
 | 
			
		||||
							
								
								
									
										118
									
								
								examples/ChangeLog
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								examples/ChangeLog
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,118 @@
 | 
			
		||||
2003-10-21  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am:
 | 
			
		||||
	* smp.c:
 | 
			
		||||
	* sysdeps.c: (main): install only one library, libgtop-2.0
 | 
			
		||||
	Fix build-time warnings due to the redefinition of guint64
 | 
			
		||||
	Fix building smp.c and sysdeps.c
 | 
			
		||||
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* first.c:
 | 
			
		||||
	* mountlist.c:
 | 
			
		||||
	* netload.c:
 | 
			
		||||
	* procmap.c:
 | 
			
		||||
	* second.c:
 | 
			
		||||
	* smp.c:
 | 
			
		||||
	* sysdeps.c:
 | 
			
		||||
	* third.c:
 | 
			
		||||
	* timings.c: fixed compilation
 | 
			
		||||
 | 
			
		||||
2003-10-20  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: removed traces of guile, intllibs and libgnomesupport
 | 
			
		||||
 | 
			
		||||
2001-01-14  Abel Cheung  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* \*.c: bindtextdomain and textdomain uses GETTEXT_PACKAGE.
 | 
			
		||||
 | 
			
		||||
	* Makefile.am, first.c, second.c, sysdeps.c: Make them at least
 | 
			
		||||
	compile for now, by disabling chunks which should belong to
 | 
			
		||||
	HEAD branch.
 | 
			
		||||
 | 
			
		||||
1999-05-28  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c, second.c, sysdeps.c: Use LibGTop version conditionals
 | 
			
		||||
 	so we can more easily merge the code into LIBGTOP_STABLE_1_0.
 | 
			
		||||
 | 
			
		||||
1999-05-07  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* timings.c (timersub): Renamed this to `libgtop_timersub' and define
 | 
			
		||||
	it on all systems.
 | 
			
		||||
 | 
			
		||||
Fri Apr  9 00:14:52 1999 Timur Bakeyev  <timur@gnu.org>
 | 
			
		||||
 | 
			
		||||
	* timings.c: Added timersub defenition, to make code compilable on 
 | 
			
		||||
	BSDI.
 | 
			
		||||
 | 
			
		||||
1999-03-24  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* timings.c: New example.
 | 
			
		||||
 | 
			
		||||
1999-03-17  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c, second.c: Fixed a bug that caused a core dump when
 | 
			
		||||
	the sysdeps code does not return all data.
 | 
			
		||||
 | 
			
		||||
1998-11-22  Martin Baulig  <baulig@taurus.uni-trier.de>
 | 
			
		||||
 | 
			
		||||
	* netload.c: Call inet_ntoa () to get address and subnet
 | 
			
		||||
	in quatted dot notation (like 136.199.14.201) and not just
 | 
			
		||||
	as a number (like 0xc90ec788).
 | 
			
		||||
 | 
			
		||||
1998-11-02  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* sysdeps.c: New example.
 | 
			
		||||
 | 
			
		||||
1998-10-26  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* netload.c: New file. Gets network load for the interface
 | 
			
		||||
	given as command line argument.
 | 
			
		||||
 | 
			
		||||
1998-10-26  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c (glibtop_get_proc_args): Get command line arguments.
 | 
			
		||||
	* second.c: Likewise.
 | 
			
		||||
 | 
			
		||||
1998-10-25  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c (glibtop_get_ppp): Get PPP/ISDN statistics.
 | 
			
		||||
 | 
			
		||||
1998-09-28  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Install everything in $(libexecdir)/libgtop.
 | 
			
		||||
 | 
			
		||||
1998-09-09  Martin Baulig <baulig@Stud.Informatik.uni-trier.de>
 | 
			
		||||
 | 
			
		||||
	* smp.c: New file. Nice tool to show CPU statistics on SMP systems.
 | 
			
		||||
 | 
			
		||||
1998-08-25  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c, second.c, procmap.c: Fixed some compiler warnings.
 | 
			
		||||
 | 
			
		||||
1998-08-18  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* procmap.c: We now display filenames when compiled
 | 
			
		||||
	`--with-libgtop-inodedb'.
 | 
			
		||||
 | 
			
		||||
1998-08-12  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* second.c: Works a little bit more like `ps' - you can
 | 
			
		||||
	give an optional command line argument to get information
 | 
			
		||||
	about a single process.
 | 
			
		||||
 | 
			
		||||
1998-07-22  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* mountlist.c: New file.
 | 
			
		||||
 | 
			
		||||
1998-06-12  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* test.scm: New file.
 | 
			
		||||
	
 | 
			
		||||
1998-06-07  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am (CFLAGS): Disable optimize.
 | 
			
		||||
	
 | 
			
		||||
	* first.c (PROFILE_COUNT): Number of times each function
 | 
			
		||||
	should be called. Defaults to 1; to profile the code, you
 | 
			
		||||
	can increase this when compiling.
 | 
			
		||||
							
								
								
									
										86
									
								
								examples/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								examples/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,86 @@
 | 
			
		||||
## Process this file with automake to produce Makefile.in
 | 
			
		||||
 | 
			
		||||
LINK			= $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
 | 
			
		||||
INCLUDES		= @INCLUDES@
 | 
			
		||||
 | 
			
		||||
DEFS			= @DEFS@
 | 
			
		||||
 | 
			
		||||
noinst_PROGRAMS	= 	first second\
 | 
			
		||||
			  mountlist procmap netload sysdeps timings \
 | 
			
		||||
			  @static_targets@ @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-2.0.la
 | 
			
		||||
 | 
			
		||||
first_static_SOURCES	= $(first_SOURCES)
 | 
			
		||||
first_static_LDADD	= $(first_LDADD)
 | 
			
		||||
first_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
second_SOURCES		= second.c
 | 
			
		||||
second_LDADD		= $(top_builddir)/lib/libgtop-2.0.la
 | 
			
		||||
 | 
			
		||||
second_static_SOURCES	= $(second_SOURCES)
 | 
			
		||||
second_static_LDADD	= $(second_LDADD)
 | 
			
		||||
second_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
procmap_SOURCES		= procmap.c
 | 
			
		||||
procmap_LDADD		= $(top_builddir)/lib/libgtop-2.0.la
 | 
			
		||||
 | 
			
		||||
procmap_static_SOURCES	= $(procmap_SOURCES)
 | 
			
		||||
procmap_static_LDADD	= $(procmap_LDADD)
 | 
			
		||||
procmap_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
netload_SOURCES		= netload.c
 | 
			
		||||
netload_LDADD		= $(top_builddir)/lib/libgtop-2.0.la
 | 
			
		||||
 | 
			
		||||
netload_static_SOURCES	= $(netload_SOURCES)
 | 
			
		||||
netload_static_LDADD	= $(netload_LDADD)
 | 
			
		||||
netload_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
sysdeps_SOURCES		= sysdeps.c
 | 
			
		||||
sysdeps_LDADD		= $(top_builddir)/lib/libgtop-2.0.la
 | 
			
		||||
 | 
			
		||||
sysdeps_static_SOURCES	= $(sysdeps_SOURCES)
 | 
			
		||||
sysdeps_static_LDADD	= $(sysdeps_LDADD)
 | 
			
		||||
sysdeps_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
third_names_LIBS	= $(top_builddir)/sysdeps/names/libgtop_names-2.0.la
 | 
			
		||||
 | 
			
		||||
third_SOURCES		= third.c
 | 
			
		||||
third_LDADD		= $(third_names_LIBS) \
 | 
			
		||||
			  $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  @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-2.0.la
 | 
			
		||||
 | 
			
		||||
mountlist_static_SOURCES= $(mountlist_SOURCES)
 | 
			
		||||
mountlist_static_LDADD	= $(mountlist_LDADD)
 | 
			
		||||
mountlist_static_LDFLAGS= -static
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
smp_SOURCES		= smp.c
 | 
			
		||||
smp_LDADD		= $(top_builddir)/lib/libgtop-2.0.la
 | 
			
		||||
 | 
			
		||||
smp_static_SOURCES	= $(smp_SOURCES)
 | 
			
		||||
smp_static_LDADD	= $(smp_LDADD)
 | 
			
		||||
smp_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
timings_SOURCES		= timings.c
 | 
			
		||||
timings_LDADD		= $(top_builddir)/lib/libgtop-2.0.la
 | 
			
		||||
 | 
			
		||||
timings_static_SOURCES	= $(timings_SOURCES)
 | 
			
		||||
timings_static_LDADD	= $(timings_LDADD)
 | 
			
		||||
timings_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										574
									
								
								examples/first.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										574
									
								
								examples/first.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,574 @@
 | 
			
		||||
/* $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/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 (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
	  	glibtop_get_cpu (&data.cpu);
 | 
			
		||||
 | 
			
		||||
	printf ("CPU          (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.cpu.flags,
 | 
			
		||||
		(unsigned long) data.cpu.total,
 | 
			
		||||
		(unsigned long) data.cpu.user,
 | 
			
		||||
		(unsigned long) data.cpu.nice,
 | 
			
		||||
		(unsigned long) data.cpu.sys,
 | 
			
		||||
		(unsigned long) data.cpu.idle,
 | 
			
		||||
		(unsigned long) data.cpu.frequency);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_mem (&data.mem);
 | 
			
		||||
 | 
			
		||||
	printf ("Memory       (0x%08lx): "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.mem.flags,
 | 
			
		||||
		(unsigned long) data.mem.total,
 | 
			
		||||
		(unsigned long) data.mem.used,
 | 
			
		||||
		(unsigned long) data.mem.free,
 | 
			
		||||
		(unsigned long) data.mem.shared,
 | 
			
		||||
		(unsigned long) data.mem.buffer,
 | 
			
		||||
		(unsigned long) data.mem.cached,
 | 
			
		||||
		(unsigned long) data.mem.user,
 | 
			
		||||
		(unsigned long) data.mem.locked);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_swap (&data.swap);
 | 
			
		||||
 | 
			
		||||
	printf ("Swap         (0x%08lx): %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.swap.flags,
 | 
			
		||||
		(unsigned long) data.swap.total,
 | 
			
		||||
		(unsigned long) data.swap.used,
 | 
			
		||||
		(unsigned long) data.swap.free,
 | 
			
		||||
		(unsigned long) data.swap.pagein,
 | 
			
		||||
		(unsigned long) data.swap.pageout);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_uptime (&data.uptime);
 | 
			
		||||
 | 
			
		||||
	printf ("Uptime       (0x%08lx): %f, %f\n",
 | 
			
		||||
		(unsigned long) data.uptime.flags,
 | 
			
		||||
		data.uptime.uptime, data.uptime.idletime);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_loadavg (&data.loadavg);
 | 
			
		||||
 | 
			
		||||
	printf ("Loadavg      (0x%08lx): %f, %f, %f - %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.loadavg.flags,
 | 
			
		||||
		(double) data.loadavg.loadavg [0],
 | 
			
		||||
		(double) data.loadavg.loadavg [1],
 | 
			
		||||
		(double) data.loadavg.loadavg [2],
 | 
			
		||||
		(unsigned long) data.loadavg.nr_running,
 | 
			
		||||
		(unsigned long) data.loadavg.nr_tasks,
 | 
			
		||||
		(unsigned long) data.loadavg.last_pid);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_shm_limits (&data.shm_limits);
 | 
			
		||||
	
 | 
			
		||||
	printf ("Shm Limits   (0x%08lx): %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.shm_limits.flags,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmmax,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmmin,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmmni,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmseg,
 | 
			
		||||
		(unsigned long) data.shm_limits.shmall);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_msg_limits (&data.msg_limits);
 | 
			
		||||
 | 
			
		||||
	printf ("Msg Limits   (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.msg_limits.flags,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgpool,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgmap,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgmax,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgmnb,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgmni,
 | 
			
		||||
		(unsigned long) data.msg_limits.msgssz,
 | 
			
		||||
		(unsigned long)  data.msg_limits.msgtql);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_sem_limits (&data.sem_limits);
 | 
			
		||||
	
 | 
			
		||||
	printf ("Sem Limits   (0x%08lx): "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.sem_limits.flags,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmap,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmni,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmns,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmnu,
 | 
			
		||||
		(unsigned long) data.sem_limits.semmsl,
 | 
			
		||||
		(unsigned long) data.sem_limits.semopm,
 | 
			
		||||
		(unsigned long) data.sem_limits.semume,
 | 
			
		||||
		(unsigned long) data.sem_limits.semusz,
 | 
			
		||||
		(unsigned long) data.sem_limits.semvmx,
 | 
			
		||||
		(unsigned long) data.sem_limits.semaem);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_ppp (&data.ppp, 0);
 | 
			
		||||
 | 
			
		||||
	printf ("PPP          (0x%08lx): %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.ppp.flags,
 | 
			
		||||
		(unsigned long) data.ppp.state,
 | 
			
		||||
		(unsigned long) data.ppp.bytes_in,
 | 
			
		||||
		(unsigned long) data.ppp.bytes_out);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	glibtop_get_sysdeps (&sysdeps);
 | 
			
		||||
 | 
			
		||||
	printf ("Sysdeps      (0x%08lx): %lu, %lu, %lu, %lu, %lu, "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) sysdeps.flags,
 | 
			
		||||
		(unsigned long) sysdeps.cpu,
 | 
			
		||||
		(unsigned long) sysdeps.mem,
 | 
			
		||||
		(unsigned long) sysdeps.swap,
 | 
			
		||||
		(unsigned long) sysdeps.uptime,
 | 
			
		||||
		(unsigned long) sysdeps.loadavg,
 | 
			
		||||
		(unsigned long) sysdeps.shm_limits,
 | 
			
		||||
		(unsigned long) sysdeps.msg_limits,
 | 
			
		||||
		(unsigned long) sysdeps.sem_limits,
 | 
			
		||||
		(unsigned long) sysdeps.proclist,
 | 
			
		||||
		(unsigned long) sysdeps.proc_state,
 | 
			
		||||
		(unsigned long) sysdeps.proc_uid,
 | 
			
		||||
		(unsigned long) sysdeps.proc_mem,
 | 
			
		||||
		(unsigned long) sysdeps.proc_time,
 | 
			
		||||
		(unsigned long) sysdeps.proc_signal,
 | 
			
		||||
		(unsigned long) sysdeps.proc_kernel,
 | 
			
		||||
		(unsigned long) sysdeps.proc_segment,
 | 
			
		||||
		(unsigned long) sysdeps.proc_args,
 | 
			
		||||
		(unsigned long) sysdeps.proc_map,
 | 
			
		||||
		(unsigned long) sysdeps.mountlist,
 | 
			
		||||
		(unsigned long) sysdeps.fsusage,
 | 
			
		||||
		(unsigned long) sysdeps.netload,
 | 
			
		||||
		(unsigned long) sysdeps.ppp);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
	
 | 
			
		||||
	ptr = glibtop_get_proclist (&data.proclist, 0, 0);
 | 
			
		||||
 | 
			
		||||
	printf ("Proclist     (0x%08lx): %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) data.proclist.flags,
 | 
			
		||||
		(unsigned long) data.proclist.number,
 | 
			
		||||
		(unsigned long) data.proclist.size,
 | 
			
		||||
		(unsigned long) data.proclist.total);
 | 
			
		||||
 | 
			
		||||
	if (ptr) {
 | 
			
		||||
		printf ("\nProcess: ");
 | 
			
		||||
		for (i = 0; i < data.proclist.number; i++)
 | 
			
		||||
			printf ("%s%u", i ? ", " : "", ptr [i]);
 | 
			
		||||
		printf ("\n");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	g_free (ptr);
 | 
			
		||||
 | 
			
		||||
	pid = getpid ();
 | 
			
		||||
	ppid = getppid ();
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_state (&data.proc_state, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_State   PID  %5d (0x%08lx): '%s', %c, %lu, %lu\n",
 | 
			
		||||
		(int) pid, (unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		(unsigned long) data.proc_state.uid,
 | 
			
		||||
		(unsigned long) data.proc_state.gid);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_uid (&data.proc_uid, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Uid     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_mem (&data.proc_mem, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
		(unsigned long) data.proc_mem.size,
 | 
			
		||||
		(unsigned long) data.proc_mem.vsize,
 | 
			
		||||
		(unsigned long) data.proc_mem.resident,
 | 
			
		||||
		(unsigned long) data.proc_mem.share,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss_rlim);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_segment (&data.proc_segment, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Segment PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_time (&data.proc_time, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags,
 | 
			
		||||
		(unsigned long) data.proc_time.start_time,
 | 
			
		||||
		(unsigned long) data.proc_time.rtime,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime,
 | 
			
		||||
		(unsigned long) data.proc_time.cutime,
 | 
			
		||||
		(unsigned long) data.proc_time.cstime,
 | 
			
		||||
		(unsigned long) data.proc_time.timeout,
 | 
			
		||||
		(unsigned long) data.proc_time.it_real_value,
 | 
			
		||||
		(unsigned long) data.proc_time.frequency);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_signal (&data.proc_signal, pid);
 | 
			
		||||
	
 | 
			
		||||
	printf ("Proc_Signal  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal,
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.maj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmin_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmaj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_esp,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_eip,
 | 
			
		||||
		(unsigned long) data.proc_kernel.nwchan,
 | 
			
		||||
		data.proc_kernel.wchan);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	args = glibtop_get_proc_args (&data.proc_args, pid, 0);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < data.proc_args.size; i++) {
 | 
			
		||||
		if (args [i]) continue;
 | 
			
		||||
		args [i] = '|';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	g_free (args);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_state (&data.proc_state, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_State   PPID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
 | 
			
		||||
		(int) ppid, (unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		(unsigned long) data.proc_state.uid,
 | 
			
		||||
		(unsigned long) data.proc_state.gid);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_uid (&data.proc_uid, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Uid     PPID %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_mem (&data.proc_mem, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
		(unsigned long) data.proc_mem.size,
 | 
			
		||||
		(unsigned long) data.proc_mem.vsize,
 | 
			
		||||
		(unsigned long) data.proc_mem.resident,
 | 
			
		||||
		(unsigned long) data.proc_mem.share,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss_rlim);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_segment (&data.proc_segment, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Segment PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_time (&data.proc_time, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags,
 | 
			
		||||
		(unsigned long) data.proc_time.start_time,
 | 
			
		||||
		(unsigned long) data.proc_time.rtime,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime,
 | 
			
		||||
		(unsigned long) data.proc_time.cutime,
 | 
			
		||||
		(unsigned long) data.proc_time.cstime,
 | 
			
		||||
		(unsigned long) data.proc_time.timeout,
 | 
			
		||||
		(unsigned long) data.proc_time.it_real_value,
 | 
			
		||||
		(unsigned long) data.proc_time.frequency);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_signal (&data.proc_signal, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Signal  PPID %5d (0x%08lx): %lu %lu %lu %lu\n",
 | 
			
		||||
		(int) ppid, (unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal,
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.maj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmin_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmaj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_esp,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_eip,
 | 
			
		||||
		(unsigned long) data.proc_kernel.nwchan,
 | 
			
		||||
		data.proc_kernel.wchan);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	args = glibtop_get_proc_args (&data.proc_args, ppid, 0);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < data.proc_args.size; i++) {
 | 
			
		||||
		if (args [i]) continue;
 | 
			
		||||
		args [i] = '|';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	g_free (args);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_state (&data.proc_state, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_State   INIT %5d (0x%08lx): '%s', %c, %lu, %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		(unsigned long) data.proc_state.uid,
 | 
			
		||||
		(unsigned long) data.proc_state.gid);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_uid (&data.proc_uid, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Uid     INIT %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_mem (&data.proc_mem, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
		(unsigned long) data.proc_mem.size,
 | 
			
		||||
		(unsigned long) data.proc_mem.vsize,
 | 
			
		||||
		(unsigned long) data.proc_mem.resident,
 | 
			
		||||
		(unsigned long) data.proc_mem.share,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss_rlim);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_segment (&data.proc_segment, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Segment INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_time (&data.proc_time, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_time.flags,
 | 
			
		||||
		(unsigned long) data.proc_time.start_time,
 | 
			
		||||
		(unsigned long) data.proc_time.rtime,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime,
 | 
			
		||||
		(unsigned long) data.proc_time.cutime,
 | 
			
		||||
		(unsigned long) data.proc_time.cstime,
 | 
			
		||||
		(unsigned long) data.proc_time.timeout,
 | 
			
		||||
		(unsigned long) data.proc_time.it_real_value,
 | 
			
		||||
		(unsigned long) data.proc_time.frequency);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_signal (&data.proc_signal, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Signal  INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal,
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.maj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmin_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmaj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_esp,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_eip,
 | 
			
		||||
		(unsigned long) data.proc_kernel.nwchan,
 | 
			
		||||
		data.proc_kernel.wchan);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	args = glibtop_get_proc_args (&data.proc_args, 1, 0);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < data.proc_args.size; i++) {
 | 
			
		||||
		if (args [i]) continue;
 | 
			
		||||
		args [i] = '|';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	g_free (args);
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										112
									
								
								examples/mountlist.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								examples/mountlist.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,112 @@
 | 
			
		||||
/* $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/parameter.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/mountlist.h>
 | 
			
		||||
#include <glibtop/fsusage.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT	1000
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_fsusage fsusage;
 | 
			
		||||
	glibtop_mountlist mount_list;
 | 
			
		||||
	glibtop_mountentry *mount_entries;
 | 
			
		||||
	unsigned c, index, method, count, port;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
	
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	printf ("sbrk (0) = %p\n\n", sbrk (0));
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++) {
 | 
			
		||||
		mount_entries = glibtop_get_mountlist (&mount_list, 1);
 | 
			
		||||
 | 
			
		||||
		g_free (mount_entries);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("sbrk (0) = %p\n\n", sbrk (0));
 | 
			
		||||
 | 
			
		||||
	mount_entries = glibtop_get_mountlist (&mount_list, 1);
 | 
			
		||||
 | 
			
		||||
	if (mount_entries == NULL)
 | 
			
		||||
		_exit (1);
 | 
			
		||||
 | 
			
		||||
	for (index = 0; index < mount_list.number; index++)
 | 
			
		||||
		printf ("Mount_Entry: %-30s %-10s %-20s\n",
 | 
			
		||||
			mount_entries [index].mountdir,
 | 
			
		||||
			mount_entries [index].type,
 | 
			
		||||
			mount_entries [index].devname);
 | 
			
		||||
 | 
			
		||||
	printf ("\n\n%-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 %9Lu %9Lu %9Lu %9Lu %9Lu\n",
 | 
			
		||||
			mount_entries [index].mountdir,
 | 
			
		||||
			fsusage.blocks, fsusage.bfree,
 | 
			
		||||
			fsusage.bavail, fsusage.files,
 | 
			
		||||
			fsusage.ffree);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	g_free (mount_entries);
 | 
			
		||||
 | 
			
		||||
	printf ("\nsbrk (0) = %p\n\n", sbrk (0));
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										124
									
								
								examples/netload.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								examples/netload.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,124 @@
 | 
			
		||||
/* $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/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 (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	if (argc != 2)
 | 
			
		||||
		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 = g_strdup (inet_ntoa (addr));
 | 
			
		||||
	subnet_string  = g_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);
 | 
			
		||||
 | 
			
		||||
	g_free (address_string);
 | 
			
		||||
	g_free (subnet_string);
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										163
									
								
								examples/procmap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										163
									
								
								examples/procmap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,163 @@
 | 
			
		||||
/* $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/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 (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
 | 
			
		||||
		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))
 | 
			
		||||
			g_free (filename);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	g_free (maps);
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										299
									
								
								examples/second.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										299
									
								
								examples/second.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,299 @@
 | 
			
		||||
/* $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 <math.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
output (pid_t pid)
 | 
			
		||||
{
 | 
			
		||||
	glibtop_union data;
 | 
			
		||||
	char *args;
 | 
			
		||||
	unsigned i;
 | 
			
		||||
 | 
			
		||||
#if HAVE_LIBGTOP_SMP
 | 
			
		||||
	unsigned long total;
 | 
			
		||||
	double p_total, p_utime, p_stime;
 | 
			
		||||
	double b_total, b_utime, b_stime;
 | 
			
		||||
	double s_total, s_utime, s_stime;
 | 
			
		||||
	double my_utime, my_stime;
 | 
			
		||||
	int ncpu;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
		
 | 
			
		||||
	glibtop_get_proc_state (&data.proc_state, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_State   PID  %5d (0x%08lx): "
 | 
			
		||||
		"'%s', %c, %lu, %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_state.flags,
 | 
			
		||||
		data.proc_state.cmd, data.proc_state.state,
 | 
			
		||||
		(unsigned long) data.proc_state.uid,
 | 
			
		||||
		(unsigned long) data.proc_state.gid);
 | 
			
		||||
		
 | 
			
		||||
	glibtop_get_proc_uid (&data.proc_uid, pid);
 | 
			
		||||
	
 | 
			
		||||
	printf ("Proc_Uid     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
		data.proc_uid.uid, data.proc_uid.euid,
 | 
			
		||||
		data.proc_uid.gid, data.proc_uid.egid,
 | 
			
		||||
		data.proc_uid.pid, data.proc_uid.ppid,
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_mem (&data.proc_mem, pid);
 | 
			
		||||
		
 | 
			
		||||
	printf ("Proc_Mem     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
		(unsigned long) data.proc_mem.size,
 | 
			
		||||
		(unsigned long) data.proc_mem.vsize,
 | 
			
		||||
		(unsigned long) data.proc_mem.resident,
 | 
			
		||||
		(unsigned long) data.proc_mem.share,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss_rlim);
 | 
			
		||||
		
 | 
			
		||||
	glibtop_get_proc_segment (&data.proc_segment, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Segment PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_segment.flags,
 | 
			
		||||
		(unsigned long) data.proc_segment.text_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.shlib_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.data_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.stack_rss,
 | 
			
		||||
		(unsigned long) data.proc_segment.dirty_size,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.end_code,
 | 
			
		||||
		(unsigned long) data.proc_segment.start_stack);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_time (&data.proc_time, pid);
 | 
			
		||||
		
 | 
			
		||||
	printf ("Proc_Time    PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags,
 | 
			
		||||
		(unsigned long) data.proc_time.start_time,
 | 
			
		||||
		(unsigned long) data.proc_time.rtime,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime,
 | 
			
		||||
		(unsigned long) data.proc_time.cutime,
 | 
			
		||||
		(unsigned long) data.proc_time.cstime,
 | 
			
		||||
		(unsigned long) data.proc_time.timeout,
 | 
			
		||||
		(unsigned long) data.proc_time.it_real_value,
 | 
			
		||||
		(unsigned long) data.proc_time.frequency);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_signal (&data.proc_signal, pid);
 | 
			
		||||
	
 | 
			
		||||
	printf ("Proc_Signal  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_signal.flags,
 | 
			
		||||
		(unsigned long) data.proc_signal.signal,
 | 
			
		||||
		(unsigned long) data.proc_signal.blocked,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigignore,
 | 
			
		||||
		(unsigned long) data.proc_signal.sigcatch);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_kernel (&data.proc_kernel, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.maj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmin_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.cmaj_flt,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_esp,
 | 
			
		||||
		(unsigned long) data.proc_kernel.kstk_eip,
 | 
			
		||||
		(unsigned long) data.proc_kernel.nwchan,
 | 
			
		||||
		data.proc_kernel.wchan);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	args = glibtop_get_proc_args (&data.proc_args, pid, 0);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < data.proc_args.size; i++) {
 | 
			
		||||
		if (args [i]) continue;
 | 
			
		||||
		args [i] = '|';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	g_free (args);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
#if HAVE_LIBGTOP_SMP
 | 
			
		||||
	ncpu = glibtop_global_server->ncpu;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_time (&data.proc_time, pid);
 | 
			
		||||
		
 | 
			
		||||
	total = (unsigned long) data.proc_time.utime +
 | 
			
		||||
		(unsigned long) data.proc_time.stime;
 | 
			
		||||
 | 
			
		||||
	p_total = total ? (double) total : 1.0;
 | 
			
		||||
 | 
			
		||||
	p_utime = (double) data.proc_time.utime * 100.0 / p_total;
 | 
			
		||||
	p_stime = (double) data.proc_time.stime * 100.0 / p_total;
 | 
			
		||||
 | 
			
		||||
	b_total = p_total / ncpu;
 | 
			
		||||
	b_utime = (double) data.proc_time.utime / ncpu;
 | 
			
		||||
	b_stime = (double) data.proc_time.stime / ncpu;
 | 
			
		||||
 | 
			
		||||
	s_total = 0.0; s_utime = 0.0; s_stime = 0.0;
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    PID  %5d (0x%08lx): %12lu   %12lu   %12lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags, total,
 | 
			
		||||
		(unsigned long) data.proc_time.utime,
 | 
			
		||||
		(unsigned long) data.proc_time.stime);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < ncpu; i++) {
 | 
			
		||||
		unsigned long this_total;
 | 
			
		||||
 | 
			
		||||
		this_total = (unsigned long) data.proc_time.xcpu_utime [i] +
 | 
			
		||||
			(unsigned long) data.proc_time.xcpu_stime [i];
 | 
			
		||||
 | 
			
		||||
		printf ("CPU %3d      PID  %5d (0x%08lx): %12lu   %12lu   %12lu\n", i,
 | 
			
		||||
			(int) pid, (unsigned long) data.proc_time.flags, this_total,
 | 
			
		||||
			(unsigned long) data.proc_time.xcpu_utime [i],
 | 
			
		||||
			(unsigned long) data.proc_time.xcpu_stime [i]);
 | 
			
		||||
 | 
			
		||||
		s_total += fabs (((double) this_total) - b_total);
 | 
			
		||||
		s_utime += fabs (((double) data.proc_time.xcpu_utime [i]) - b_utime);
 | 
			
		||||
		s_stime += fabs (((double) data.proc_time.xcpu_stime [i]) - b_stime);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    PID  %5d (0x%08lx): %12.3f   %12.3f   %12.3f\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_time.flags, 100.0, p_utime, p_stime);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < ncpu; i++) {
 | 
			
		||||
		double this_p_total, this_p_utime, this_p_stime;
 | 
			
		||||
		unsigned long this_total;
 | 
			
		||||
 | 
			
		||||
		this_total = (unsigned long) data.proc_time.xcpu_utime [i] +
 | 
			
		||||
			(unsigned long) data.proc_time.xcpu_stime [i];
 | 
			
		||||
 | 
			
		||||
		this_p_total = (double) this_total * 100.0 / p_total;
 | 
			
		||||
 | 
			
		||||
		this_p_utime = (double) data.proc_time.xcpu_utime [i] * 100.0 / p_total;
 | 
			
		||||
		this_p_stime = (double) data.proc_time.xcpu_stime [i] * 100.0 / p_total;
 | 
			
		||||
 | 
			
		||||
		printf ("CPU %3d      PID  %5d (0x%08lx): %12.3f   %12.3f   %12.3f\n", i,
 | 
			
		||||
			(int) pid, (unsigned long) data.proc_time.flags,
 | 
			
		||||
			this_p_total, this_p_utime, this_p_stime);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	my_utime = (unsigned long) data.proc_time.utime ?
 | 
			
		||||
		(double) data.proc_time.utime : 1.0;
 | 
			
		||||
	my_stime = (unsigned long) data.proc_time.stime ?
 | 
			
		||||
		(double) data.proc_time.stime : 1.0;
 | 
			
		||||
 | 
			
		||||
	printf ("SPIN: %31s %12.3f   %12.3f   %12.3f\n", "", s_total * 100.0 / p_total,
 | 
			
		||||
		s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_proclist proclist;
 | 
			
		||||
	glibtop_sysdeps sysdeps;
 | 
			
		||||
	unsigned *ptr, pid, i;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init ();
 | 
			
		||||
 | 
			
		||||
	glibtop_get_sysdeps (&sysdeps);
 | 
			
		||||
 | 
			
		||||
	printf ("Sysdeps      (0x%08lx): %lu, %lu, %lu, %lu, %lu, "
 | 
			
		||||
		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) sysdeps.flags,
 | 
			
		||||
		(unsigned long) sysdeps.cpu,
 | 
			
		||||
		(unsigned long) sysdeps.mem,
 | 
			
		||||
		(unsigned long) sysdeps.swap,
 | 
			
		||||
		(unsigned long) sysdeps.uptime,
 | 
			
		||||
		(unsigned long) sysdeps.loadavg,
 | 
			
		||||
		(unsigned long) sysdeps.shm_limits,
 | 
			
		||||
		(unsigned long) sysdeps.msg_limits,
 | 
			
		||||
		(unsigned long) sysdeps.sem_limits,
 | 
			
		||||
		(unsigned long) sysdeps.proclist,
 | 
			
		||||
		(unsigned long) sysdeps.proc_state,
 | 
			
		||||
		(unsigned long) sysdeps.proc_uid,
 | 
			
		||||
		(unsigned long) sysdeps.proc_mem,
 | 
			
		||||
		(unsigned long) sysdeps.proc_time,
 | 
			
		||||
		(unsigned long) sysdeps.proc_signal,
 | 
			
		||||
		(unsigned long) sysdeps.proc_kernel,
 | 
			
		||||
		(unsigned long) sysdeps.proc_segment);
 | 
			
		||||
 | 
			
		||||
	if ((argc == 2) && (sscanf (argv [1], "%d", &pid) == 1)) {
 | 
			
		||||
		output (pid);
 | 
			
		||||
 | 
			
		||||
		exit (0);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	ptr = glibtop_get_proclist (&proclist, 0, 0);
 | 
			
		||||
 | 
			
		||||
	printf ("Proclist     (0x%08lx): %lu, %lu, %lu\n",
 | 
			
		||||
		(unsigned long) proclist.flags,
 | 
			
		||||
		(unsigned long) proclist.number,
 | 
			
		||||
		(unsigned long) proclist.size,
 | 
			
		||||
		(unsigned long) proclist.total);
 | 
			
		||||
 | 
			
		||||
	if (!ptr) exit (1);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < proclist.number; i++) {
 | 
			
		||||
 | 
			
		||||
		pid = ptr [i];
 | 
			
		||||
		
 | 
			
		||||
		output (pid);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	g_free (ptr);
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										130
									
								
								examples/smp.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								examples/smp.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,130 @@
 | 
			
		||||
/* $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 <config.h>
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/cpu.h>
 | 
			
		||||
 | 
			
		||||
#include <libgnome/gnome-i18n.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 (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init();
 | 
			
		||||
 | 
			
		||||
	glibtop_get_cpu (&cpu);
 | 
			
		||||
 | 
			
		||||
	ncpu = glibtop_global_server->ncpu ? glibtop_global_server->ncpu : 1;
 | 
			
		||||
 | 
			
		||||
	frequency = (unsigned long) cpu.frequency;
 | 
			
		||||
 | 
			
		||||
	total = ((unsigned long) cpu.total) ? ((double) cpu.total) : 1.0;
 | 
			
		||||
	user  = ((unsigned long) cpu.user)  ? ((double) cpu.user)  : 1.0;
 | 
			
		||||
	nice  = ((unsigned long) cpu.nice)  ? ((double) cpu.nice)  : 1.0;
 | 
			
		||||
	sys   = ((unsigned long) cpu.sys)   ? ((double) cpu.sys)   : 1.0;
 | 
			
		||||
	idle  = ((unsigned long) cpu.idle)  ? ((double) cpu.idle)  : 1.0;
 | 
			
		||||
 | 
			
		||||
	s_total = s_user = s_nice = s_sys = s_idle = 0.0;
 | 
			
		||||
 | 
			
		||||
	b_total = total / ncpu;
 | 
			
		||||
	b_user  = user  / ncpu;
 | 
			
		||||
	b_nice  = nice  / ncpu;
 | 
			
		||||
	b_sys   = sys   / ncpu;
 | 
			
		||||
	b_idle  = idle  / ncpu;
 | 
			
		||||
 | 
			
		||||
	memset (separator, '-', 91);
 | 
			
		||||
	separator [92] = '\0';
 | 
			
		||||
 | 
			
		||||
	sprintf (buffer, _("Ticks (%ld per second):"), frequency);
 | 
			
		||||
 | 
			
		||||
	printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer,
 | 
			
		||||
		_("Total"), _("User"), _("Nice"), _("Sys"), _("Idle"), separator);
 | 
			
		||||
 | 
			
		||||
	printf (_("CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n"),
 | 
			
		||||
		(unsigned long) cpu.flags, total, user, nice, sys, idle);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < glibtop_global_server->ncpu; i++) {
 | 
			
		||||
		printf (_("CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"), i,
 | 
			
		||||
			(unsigned long) cpu.flags,
 | 
			
		||||
			(unsigned long) cpu.xcpu_total [i],
 | 
			
		||||
			(unsigned long) cpu.xcpu_user  [i],
 | 
			
		||||
			(unsigned long) cpu.xcpu_nice  [i],
 | 
			
		||||
			(unsigned long) cpu.xcpu_sys   [i],
 | 
			
		||||
			(unsigned long) cpu.xcpu_idle  [i]);
 | 
			
		||||
 | 
			
		||||
		s_total += fabs (((double) cpu.xcpu_total [i]) - b_total);
 | 
			
		||||
		s_user  += fabs (((double) cpu.xcpu_user  [i]) - b_user);
 | 
			
		||||
		s_nice  += fabs (((double) cpu.xcpu_nice  [i]) - b_nice);
 | 
			
		||||
		s_sys   += fabs (((double) cpu.xcpu_sys   [i]) - b_sys);
 | 
			
		||||
		s_idle  += fabs (((double) cpu.xcpu_idle  [i]) - b_idle);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("%s\n\n\n", separator);
 | 
			
		||||
 | 
			
		||||
	printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", _("Percent:"),
 | 
			
		||||
		_("Total (%)"), _("User (%)"), _("Nice (%)"), _("Sys (%)"),
 | 
			
		||||
		_("Idle (%)"), separator);
 | 
			
		||||
	
 | 
			
		||||
	printf (_("CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n"),
 | 
			
		||||
		(unsigned long) cpu.flags, (double) total * 100.0 / total,
 | 
			
		||||
		(double) user  * 100.0 / total,
 | 
			
		||||
		(double) nice  * 100.0 / total,
 | 
			
		||||
		(double) sys   * 100.0 / total,
 | 
			
		||||
		(double) idle  * 100.0 / total);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < glibtop_global_server->ncpu; i++) {
 | 
			
		||||
		double p_total, p_user, p_nice, p_sys, p_idle;
 | 
			
		||||
 | 
			
		||||
		p_total = ((double) cpu.xcpu_total [i]) * 100.0 / total;
 | 
			
		||||
		p_user  = ((double) cpu.xcpu_user  [i]) * 100.0 / user;
 | 
			
		||||
		p_nice  = ((double) cpu.xcpu_nice  [i]) * 100.0 / nice;
 | 
			
		||||
		p_sys   = ((double) cpu.xcpu_sys   [i]) * 100.0 / sys;
 | 
			
		||||
		p_idle  = ((double) cpu.xcpu_idle  [i]) * 100.0 / idle;
 | 
			
		||||
 | 
			
		||||
		printf (_("CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"),
 | 
			
		||||
			i, (unsigned long) cpu.flags, p_total, p_user, p_nice,
 | 
			
		||||
			p_sys, p_idle);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	printf ("%s\n%-26s %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", separator,
 | 
			
		||||
		_("Spin:"), s_total * 100.0 / total, s_user * 100.0 / user,
 | 
			
		||||
		s_nice * 100.0 / nice, s_sys * 100.0 / sys, s_idle * 100.0 / idle);
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										148
									
								
								examples/sysdeps.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								examples/sysdeps.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,148 @@
 | 
			
		||||
/* $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/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT	1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_sysdeps sysdeps;
 | 
			
		||||
	unsigned method, count, port;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_sysdeps (&sysdeps);
 | 
			
		||||
 | 
			
		||||
#define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f)) ? 1 : 0)
 | 
			
		||||
 | 
			
		||||
	printf ("Sysdeps (0x%08lx):\n\n"
 | 
			
		||||
		"\tfeatures:\t\t0x%08lx\n\n"
 | 
			
		||||
		"\tcpu:\t\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tmem:\t\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tswap:\t\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tuptime:\t\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tloadavg:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tshm_limits:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tmsg_limits:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tsem_limits:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tproclist:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tproc_state:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_uid:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_mem:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_time:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_signal:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_kernel:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_segment:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tproc_args:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tproc_map:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tmountlist:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tfsusage:\t%d\t0x%08lx\n\n"
 | 
			
		||||
		"\tnetload:\t%d\t0x%08lx\n"
 | 
			
		||||
		"\tppp:\t\t%d\t0x%08lx\n\n",
 | 
			
		||||
		(unsigned long) sysdeps.flags,
 | 
			
		||||
		(unsigned long) sysdeps.features,
 | 
			
		||||
		FEATURE_CHECK(CPU),
 | 
			
		||||
		(unsigned long) sysdeps.cpu,
 | 
			
		||||
		FEATURE_CHECK(MEM),
 | 
			
		||||
		(unsigned long) sysdeps.mem,
 | 
			
		||||
		FEATURE_CHECK(SWAP),
 | 
			
		||||
		(unsigned long) sysdeps.swap,
 | 
			
		||||
		FEATURE_CHECK(UPTIME),
 | 
			
		||||
		(unsigned long) sysdeps.uptime,
 | 
			
		||||
		FEATURE_CHECK(LOADAVG),
 | 
			
		||||
		(unsigned long) sysdeps.loadavg,
 | 
			
		||||
		FEATURE_CHECK(SHM_LIMITS),
 | 
			
		||||
		(unsigned long) sysdeps.shm_limits,
 | 
			
		||||
		FEATURE_CHECK(MSG_LIMITS),
 | 
			
		||||
		(unsigned long) sysdeps.msg_limits,
 | 
			
		||||
		FEATURE_CHECK(SEM_LIMITS),
 | 
			
		||||
		(unsigned long) sysdeps.sem_limits,
 | 
			
		||||
		FEATURE_CHECK(PROCLIST),
 | 
			
		||||
		(unsigned long) sysdeps.proclist,
 | 
			
		||||
		FEATURE_CHECK(PROC_STATE),
 | 
			
		||||
		(unsigned long) sysdeps.proc_state,
 | 
			
		||||
		FEATURE_CHECK(PROC_UID),
 | 
			
		||||
		(unsigned long) sysdeps.proc_uid,
 | 
			
		||||
		FEATURE_CHECK(PROC_MEM),
 | 
			
		||||
		(unsigned long) sysdeps.proc_mem,
 | 
			
		||||
		FEATURE_CHECK(PROC_TIME),
 | 
			
		||||
		(unsigned long) sysdeps.proc_time,
 | 
			
		||||
		FEATURE_CHECK(PROC_SIGNAL),
 | 
			
		||||
		(unsigned long) sysdeps.proc_signal,
 | 
			
		||||
		FEATURE_CHECK(PROC_KERNEL),
 | 
			
		||||
		(unsigned long) sysdeps.proc_kernel,
 | 
			
		||||
		FEATURE_CHECK(PROC_SEGMENT),
 | 
			
		||||
		(unsigned long) sysdeps.proc_segment,
 | 
			
		||||
		FEATURE_CHECK(PROC_ARGS),
 | 
			
		||||
		(unsigned long) sysdeps.proc_args,
 | 
			
		||||
		FEATURE_CHECK(PROC_MAP),
 | 
			
		||||
		(unsigned long) sysdeps.proc_map,
 | 
			
		||||
		FEATURE_CHECK(MOUNTLIST),
 | 
			
		||||
		(unsigned long) sysdeps.mountlist,
 | 
			
		||||
		FEATURE_CHECK(FSUSAGE),
 | 
			
		||||
		(unsigned long) sysdeps.fsusage,
 | 
			
		||||
		FEATURE_CHECK(NETLOAD),
 | 
			
		||||
		(unsigned long) sysdeps.netload,
 | 
			
		||||
		FEATURE_CHECK(PPP),
 | 
			
		||||
		(unsigned long) sysdeps.ppp);
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										80
									
								
								examples/test.scm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								examples/test.scm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,80 @@
 | 
			
		||||
(display (glibtop-names-sysdeps)) (newline)
 | 
			
		||||
(display (glibtop-labels-sysdeps)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-sysdeps)) (newline)
 | 
			
		||||
(display (glibtop-types-sysdeps)) (newline)
 | 
			
		||||
 | 
			
		||||
(newline)
 | 
			
		||||
 | 
			
		||||
(display (glibtop-names-cpu)) (newline)
 | 
			
		||||
(display (glibtop-names-mem)) (newline)
 | 
			
		||||
(display (glibtop-names-swap)) (newline)
 | 
			
		||||
(display (glibtop-names-uptime)) (newline)
 | 
			
		||||
(display (glibtop-names-loadavg)) (newline)
 | 
			
		||||
(display (glibtop-names-shm_limits)) (newline)
 | 
			
		||||
(display (glibtop-names-msg_limits)) (newline)
 | 
			
		||||
(display (glibtop-names-sem_limits)) (newline)
 | 
			
		||||
(display (glibtop-names-proclist)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_state)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_uid)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_mem)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_time)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_signal)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_kernel)) (newline)
 | 
			
		||||
(display (glibtop-names-proc_segment)) (newline)
 | 
			
		||||
 | 
			
		||||
(newline)
 | 
			
		||||
 | 
			
		||||
(display (glibtop-labels-cpu)) (newline)
 | 
			
		||||
(display (glibtop-labels-mem)) (newline)
 | 
			
		||||
(display (glibtop-labels-swap)) (newline)
 | 
			
		||||
(display (glibtop-labels-uptime)) (newline)
 | 
			
		||||
(display (glibtop-labels-loadavg)) (newline)
 | 
			
		||||
(display (glibtop-labels-shm_limits)) (newline)
 | 
			
		||||
(display (glibtop-labels-msg_limits)) (newline)
 | 
			
		||||
(display (glibtop-labels-sem_limits)) (newline)
 | 
			
		||||
(display (glibtop-labels-proclist)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_state)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_uid)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_mem)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_time)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_signal)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_kernel)) (newline)
 | 
			
		||||
(display (glibtop-labels-proc_segment)) (newline)
 | 
			
		||||
 | 
			
		||||
(newline)
 | 
			
		||||
 | 
			
		||||
(display (glibtop-descriptions-cpu)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-mem)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-swap)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-uptime)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-loadavg)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-shm_limits)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-msg_limits)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-sem_limits)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proclist)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_state)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_uid)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_mem)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_time)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_signal)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_kernel)) (newline)
 | 
			
		||||
(display (glibtop-descriptions-proc_segment)) (newline)
 | 
			
		||||
 | 
			
		||||
(newline)
 | 
			
		||||
 | 
			
		||||
(display (glibtop-types-cpu)) (newline)
 | 
			
		||||
(display (glibtop-types-mem)) (newline)
 | 
			
		||||
(display (glibtop-types-swap)) (newline)
 | 
			
		||||
(display (glibtop-types-uptime)) (newline)
 | 
			
		||||
(display (glibtop-types-loadavg)) (newline)
 | 
			
		||||
(display (glibtop-types-shm_limits)) (newline)
 | 
			
		||||
(display (glibtop-types-msg_limits)) (newline)
 | 
			
		||||
(display (glibtop-types-sem_limits)) (newline)
 | 
			
		||||
(display (glibtop-types-proclist)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_state)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_uid)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_mem)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_time)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_signal)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_kernel)) (newline)
 | 
			
		||||
(display (glibtop-types-proc_segment)) (newline)
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
@@ -23,16 +21,36 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
     
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/backend.h>
 | 
			
		||||
#include <glibtop/close.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 (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
 | 
			
		||||
	gh_enter (argc, argv, main_prog);
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
_glibtop_open_sysdeps (glibtop *server, const char *program_name,
 | 
			
		||||
		       const unsigned long features, const unsigned flags)
 | 
			
		||||
main_prog (int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
    glibtop_open_backend_l (server, "glibtop-backend-common",
 | 
			
		||||
			    features, NULL);
 | 
			
		||||
    glibtop_open_backend_l (server, "glibtop-backend-sysdeps",
 | 
			
		||||
			    features, NULL);
 | 
			
		||||
	glibtop_boot_guile ();
 | 
			
		||||
#ifdef GLIBTOP_GUILE_NAMES
 | 
			
		||||
	glibtop_boot_guile_names ();
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	gh_repl (argc, argv);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										356
									
								
								examples/timings.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										356
									
								
								examples/timings.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,356 @@
 | 
			
		||||
/* $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/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 (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
 | 
			
		||||
	printf ("%-12s (%-10s): %7s - %9s - %9s\n",
 | 
			
		||||
		"Feature", "Flags", "Count", "utime", "stime");
 | 
			
		||||
	printf ("-------------------------------------------"
 | 
			
		||||
		"---------------\n");
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &total_start);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_cpu (&data.cpu);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("CPU          (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.cpu.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
 | 
			
		||||
		glibtop_get_mem (&data.mem);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Memory       (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.mem.flags, PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
 | 
			
		||||
		glibtop_get_swap (&data.swap);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Swap         (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.swap.flags, PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_uptime (&data.uptime);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Uptime       (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.uptime.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_loadavg (&data.loadavg);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Loadavg      (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.loadavg.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
 | 
			
		||||
		ptr = glibtop_get_proclist (&data.proclist, 0, 0);
 | 
			
		||||
		g_free (ptr);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proclist     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proclist.flags,
 | 
			
		||||
		PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
 | 
			
		||||
 | 
			
		||||
	pid = getpid ();
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_state (&data.proc_state, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_State   (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_state.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_uid (&data.proc_uid, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Uid     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_uid.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_mem (&data.proc_mem, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_mem.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_segment (&data.proc_segment, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Segment (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_segment.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_time (&data.proc_time, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_time.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_signal (&data.proc_signal, pid);
 | 
			
		||||
	
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Signal  (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_signal.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
	
 | 
			
		||||
	getrusage (RUSAGE_SELF, &total_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&total_end.ru_stime, &total_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("-------------------------------------------"
 | 
			
		||||
		"---------------\n");
 | 
			
		||||
 | 
			
		||||
	printf ("%-36s %9lu - %9lu\n\n", "TOTAL",
 | 
			
		||||
		ELAPSED_UTIME, ELAPSED_STIME);
 | 
			
		||||
 | 
			
		||||
	printf ("All timings are in clock ticks "
 | 
			
		||||
		"(1000000 ticks per second).\n\n");
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										46
									
								
								features.def
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								features.def
									
									
									
									
									
								
							@@ -1,24 +1,22 @@
 | 
			
		||||
retval|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)
 | 
			
		||||
retval|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
 | 
			
		||||
retval|swap|ulong(total,used,free,pagein,pageout)
 | 
			
		||||
retval|uptime|double(uptime,idletime):ulong(boot_time)
 | 
			
		||||
retval|loadavg|double(loadavg[3]):ulong(nr_running,nr_tasks,last_pid)
 | 
			
		||||
retval|shm_limits|ulong(shmmax,shmmin,shmmni,shmseg,shmall)
 | 
			
		||||
retval|msg_limits|ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql)
 | 
			
		||||
retval|sem_limits|ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem)
 | 
			
		||||
pointer(unsigned)|proclist|array|long(which,arg)
 | 
			
		||||
retval|proc_state|string(cmd):unsigned(state):ulong(uid,gid,ruid,rgid,has_cpu,processor,last_processor)|pid_t(pid)
 | 
			
		||||
retval|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)
 | 
			
		||||
retval|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid)
 | 
			
		||||
retval|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)
 | 
			
		||||
retval|proc_signal|ulong(signal[2],blocked[2],sigignore[2],sigcatch[2])|pid_t(pid)
 | 
			
		||||
retval|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,nwchan):string(wchan)|pid_t(pid)
 | 
			
		||||
retval|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)
 | 
			
		||||
pointer(string)|proc_args|array|pid_t(pid)
 | 
			
		||||
array(glibtop_map_entry)|proc_map|array|pid_t(pid)
 | 
			
		||||
array(glibtop_mountentry)|@mountlist|array|int(all_fs)
 | 
			
		||||
retval|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string(mount_dir)
 | 
			
		||||
array(glibtop_interface)|interface_names|array|ulong(interface,number,instance,strategy)
 | 
			
		||||
retval|netinfo|ulong(if_flags,transport,mtu,subnet,address)|string(interface):unsigned(transport)
 | 
			
		||||
retval|netload|ulong(packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string(interface):unsigned(transport,protocol)
 | 
			
		||||
retval|ppp|ulong(state,bytes_in,bytes_out)|ushort(device)
 | 
			
		||||
void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4])
 | 
			
		||||
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
 | 
			
		||||
void|swap|ulong(total,used,free,pagein,pageout)
 | 
			
		||||
void|uptime|double(uptime,idletime)
 | 
			
		||||
void|loadavg|double(loadavg[3]):ulong(nr_running,nr_tasks,last_pid)
 | 
			
		||||
void|shm_limits|ulong(shmmax,shmmin,shmmni,shmseg,shmall)
 | 
			
		||||
void|msg_limits|ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql)
 | 
			
		||||
void|sem_limits|ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem)
 | 
			
		||||
unsigned *|proclist|ulong(number,size,total)|long(which,arg)
 | 
			
		||||
void|proc_state|str(cmd):char(state):ulong(uid,gid)|pid_t(pid)
 | 
			
		||||
void|proc_uid|long(uid,euid,gid,egid,pid,ppid,pgrp,session,tty,tpgid,priority,nice)|pid_t(pid)
 | 
			
		||||
void|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid)
 | 
			
		||||
void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_value,frequency,xcpu_utime[4],xcpu_stime[4])|pid_t(pid)
 | 
			
		||||
void|proc_signal|ulong(signal[2],blocked[2],sigignore[2],sigcatch[2])|pid_t(pid)
 | 
			
		||||
void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,nwchan):str(wchan)|pid_t(pid)
 | 
			
		||||
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid)
 | 
			
		||||
char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len)
 | 
			
		||||
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
 | 
			
		||||
glibtop_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)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										70
									
								
								glibtop.h
									
									
									
									
									
								
							
							
						
						
									
										70
									
								
								glibtop.h
									
									
									
									
									
								
							@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
@@ -26,48 +24,46 @@
 | 
			
		||||
#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>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
#ifdef HAVE_GLIBTOP_MACHINE_H
 | 
			
		||||
#include <glibtop_machine.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop			glibtop;
 | 
			
		||||
typedef struct _glibtop_server_private	glibtop_server_private;
 | 
			
		||||
#ifndef GLIBTOP_MOUNTENTRY_LEN
 | 
			
		||||
#define GLIBTOP_MOUNTENTRY_LEN	79
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop		glibtop;
 | 
			
		||||
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
#include <glibtop/errors.h>
 | 
			
		||||
 | 
			
		||||
#ifdef _IN_LIBGTOP
 | 
			
		||||
#include <glibtop-server-private.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
struct _glibtop
 | 
			
		||||
{
 | 
			
		||||
    int refcount;		/* Reference count */
 | 
			
		||||
    unsigned flags;
 | 
			
		||||
    unsigned method;		/* Server Method */
 | 
			
		||||
    unsigned error_method;	/* Error Method */
 | 
			
		||||
    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 */
 | 
			
		||||
    glibtop_server_private *_priv;	/* Private data */
 | 
			
		||||
    unsigned glibtop_errno;
 | 
			
		||||
	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 */
 | 
			
		||||
	pid_t pid;			/* PID of the server */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern glibtop *glibtop_global_server;
 | 
			
		||||
@@ -88,12 +84,4 @@ glibtop_init_s (glibtop **server_ptr,
 | 
			
		||||
		unsigned long features,
 | 
			
		||||
		unsigned flags);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_server_ref (glibtop *server);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_server_unref (glibtop *server);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,2 @@
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
call-vector.h
 | 
			
		||||
 
 | 
			
		||||
@@ -1,23 +1,10 @@
 | 
			
		||||
glibtopdir		= $(includedir)/glibtop
 | 
			
		||||
glibtopdir		= $(includedir)/libgtop-2.0/glibtop
 | 
			
		||||
 | 
			
		||||
glibtop_HEADERS		= close.h loadavg.h prockernel.h procstate.h \
 | 
			
		||||
			  sem_limits.h uptime.h mem.h proclist.h \
 | 
			
		||||
			  proctime.h shm_limits.h cpu.h msg_limits.h \
 | 
			
		||||
			  procmem.h procuid.h swap.h error.h open.h \
 | 
			
		||||
			  procsegment.h sysdeps.h xmalloc.h global.h \
 | 
			
		||||
			  procsignal.h union.h types.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 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 \
 | 
			
		||||
			  netinfo.h interfaces.h limits.h array.h compat_10.h \
 | 
			
		||||
			  errors.h glib-arrays.h backend.h call-vector.h
 | 
			
		||||
 | 
			
		||||
BUILT_SOURCES		= call-vector.h
 | 
			
		||||
 | 
			
		||||
call-vector.h: call-vector.pl call-vector.h.in $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
 | 
			
		||||
	$(PERL) -I $(top_srcdir)/scripts $(srcdir)/call-vector.pl $(top_srcdir)/features.def $(srcdir)/call-vector.h.in > tmp-t
 | 
			
		||||
	mv tmp-t call-vector.h
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST		= call-vector.pl call-vector.h.in
 | 
			
		||||
 | 
			
		||||
CLEANFILES		= $(BUILT_SOURCES)
 | 
			
		||||
 | 
			
		||||
			  inodedb.h sysinfo.h ppp.h procargs.h netload.h
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_ARRAY_NUMBER		0
 | 
			
		||||
#define GLIBTOP_ARRAY_SIZE		1
 | 
			
		||||
@@ -41,7 +41,7 @@ typedef struct _glibtop_array	glibtop_array;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_array
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t flags,
 | 
			
		||||
    guint64 flags,
 | 
			
		||||
	number,		/* GLIBTOP_ARRAY_NUMBER	*/
 | 
			
		||||
	size,		/* GLIBTOP_ARRAY_SIZE	*/
 | 
			
		||||
	total;		/* GLIBTOP_ARRAY_TOTAL	*/
 | 
			
		||||
 
 | 
			
		||||
@@ -31,15 +31,13 @@
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_call_vector	glibtop_call_vector;
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
struct _glibtop_call_vector
 | 
			
		||||
{
 | 
			
		||||
    @@GLIBTOP_CALL_VECTOR@@
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -82,16 +82,16 @@ sub parse_features_def {
 | 
			
		||||
 | 
			
		||||
  if ($line_fields[3] eq '') {
 | 
			
		||||
    $func_decl_code .= sprintf
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop *, glibtop_backend *%s);\n], $retval, $feature, $param_decl);
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *%s);\n], $retval, $feature, $param_decl);
 | 
			
		||||
  } elsif ($line_fields[3] eq 'array') {
 | 
			
		||||
    $func_decl_code .= sprintf
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop *, glibtop_backend *, glibtop_array *%s);\n], $retval, $feature, $param_decl);
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *%s);\n], $retval, $feature, $param_decl);
 | 
			
		||||
  } elsif ($line_fields[3] =~ /^array/) {
 | 
			
		||||
    $func_decl_code .= sprintf
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop *, glibtop_backend *, glibtop_array *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
  } else {
 | 
			
		||||
    $func_decl_code .= sprintf
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop *, glibtop_backend *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
@@ -28,13 +26,13 @@
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
void glibtop_close_r (glibtop *server);
 | 
			
		||||
 | 
			
		||||
void glibtop_close_s (glibtop *server);
 | 
			
		||||
void glibtop_close_p (glibtop *server);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										102
									
								
								include/glibtop/command.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								include/glibtop/command.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
			
		||||
/* $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>
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_CMND_QUIT		0
 | 
			
		||||
#define GLIBTOP_CMND_SYSDEPS		1
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_CMND_CPU		2
 | 
			
		||||
#define GLIBTOP_CMND_MEM		3
 | 
			
		||||
#define GLIBTOP_CMND_SWAP		4
 | 
			
		||||
#define GLIBTOP_CMND_UPTIME		5
 | 
			
		||||
#define GLIBTOP_CMND_LOADAVG		6
 | 
			
		||||
#define GLIBTOP_CMND_SHM_LIMITS		7
 | 
			
		||||
#define GLIBTOP_CMND_MSG_LIMITS		8
 | 
			
		||||
#define GLIBTOP_CMND_SEM_LIMITS		9
 | 
			
		||||
#define GLIBTOP_CMND_PROCLIST		10
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_CMND_PROC_STATE		11
 | 
			
		||||
#define GLIBTOP_CMND_PROC_UID		12
 | 
			
		||||
#define GLIBTOP_CMND_PROC_MEM		13
 | 
			
		||||
#define GLIBTOP_CMND_PROC_TIME		14
 | 
			
		||||
#define GLIBTOP_CMND_PROC_SIGNAL	15
 | 
			
		||||
#define GLIBTOP_CMND_PROC_KERNEL	16
 | 
			
		||||
#define GLIBTOP_CMND_PROC_SEGMENT	17
 | 
			
		||||
#define GLIBTOP_CMND_PROC_ARGS		18
 | 
			
		||||
#define GLIBTOP_CMND_PROC_MAP		19
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_CMND_MOUNTLIST		20
 | 
			
		||||
#define GLIBTOP_CMND_FSUSAGE		21
 | 
			
		||||
#define GLIBTOP_CMND_NETLOAD		22
 | 
			
		||||
#define GLIBTOP_CMND_PPP		23
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_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
 | 
			
		||||
{
 | 
			
		||||
	guint64	command;
 | 
			
		||||
	guint64	size, data_size;
 | 
			
		||||
	char		parameter [_GLIBTOP_PARAM_SIZE];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
union _glibtop_response_union
 | 
			
		||||
{
 | 
			
		||||
	glibtop_union	data;
 | 
			
		||||
	glibtop_sysdeps	sysdeps;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_response
 | 
			
		||||
{
 | 
			
		||||
	int64_t offset;
 | 
			
		||||
	guint64 size, data_size;
 | 
			
		||||
	glibtop_response_union u;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_call(p1, p2, p3, p4)	glibtop_call_r(glibtop_global_server, p1, p2, p3, p4)
 | 
			
		||||
 | 
			
		||||
void *
 | 
			
		||||
glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
 | 
			
		||||
		const void *send_buf, size_t recv_size, void *recv_buf);
 | 
			
		||||
 | 
			
		||||
void *
 | 
			
		||||
glibtop_call_s (glibtop *server, unsigned command, size_t send_size,
 | 
			
		||||
		const void *send_buf, size_t recv_size, void *recv_buf);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -29,7 +29,7 @@
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
/* glibtop_cpu */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
@@ -29,7 +27,7 @@
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_CPU_TOTAL	0
 | 
			
		||||
#define GLIBTOP_CPU_USER	1
 | 
			
		||||
@@ -38,32 +36,35 @@ BEGIN_LIBGTOP_DECLS
 | 
			
		||||
#define GLIBTOP_CPU_IDLE	4
 | 
			
		||||
#define GLIBTOP_CPU_FREQUENCY	5
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_CPU_XCPU_TOTAL	6
 | 
			
		||||
#define GLIBTOP_CPU_XCPU_USER	7
 | 
			
		||||
#define GLIBTOP_CPU_XCPU_NICE	8
 | 
			
		||||
#define GLIBTOP_CPU_XCPU_SYS	9
 | 
			
		||||
#define GLIBTOP_CPU_XCPU_IDLE	10
 | 
			
		||||
#define GLIBTOP_CPU_XCPU_FLAGS	11
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
/* Nobody should really be using more than 4 processors. */
 | 
			
		||||
#define GLIBTOP_NCPU		4
 | 
			
		||||
 | 
			
		||||
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_CPU_XCPU_TOTAL	*/
 | 
			
		||||
	xcpu_user [GLIBTOP_NCPU],	/* GLIBTOP_CPU_XCPU_USER	*/
 | 
			
		||||
	xcpu_nice [GLIBTOP_NCPU],	/* GLIBTOP_CPU_XCPU_NICE	*/
 | 
			
		||||
	xcpu_sys  [GLIBTOP_NCPU],	/* GLIBTOP_CPU_XCPU_SYS		*/
 | 
			
		||||
	xcpu_idle [GLIBTOP_NCPU],	/* GLIBTOP_CPU_XCPU_IDLE	*/
 | 
			
		||||
	xcpu_flags;			/* GLIBTOP_CPU_XCPU_FLAGS	*/
 | 
			
		||||
	guint64	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_IDLE		*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_cpu(cpu)	glibtop_get_cpu_l(glibtop_global_server, cpu)
 | 
			
		||||
@@ -74,14 +75,14 @@ struct _glibtop_cpu
 | 
			
		||||
#define glibtop_get_cpu_r	glibtop_get_cpu_s
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int glibtop_get_cpu_l (glibtop *server, glibtop_cpu *buf);
 | 
			
		||||
void glibtop_get_cpu_l (glibtop *server, glibtop_cpu *buf);
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_CPU
 | 
			
		||||
int glibtop_init_cpu_p (glibtop *server);
 | 
			
		||||
int glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf);
 | 
			
		||||
void glibtop_init_cpu_p (glibtop *server);
 | 
			
		||||
void glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf);
 | 
			
		||||
#else
 | 
			
		||||
int glibtop_init_cpu_s (glibtop *server);
 | 
			
		||||
int glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf);
 | 
			
		||||
void glibtop_init_cpu_s (glibtop *server);
 | 
			
		||||
void glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
@@ -95,6 +96,6 @@ extern const char *glibtop_descriptions_cpu [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
@@ -28,7 +26,7 @@
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#ifndef G_GNUC_UNUSED
 | 
			
		||||
#if	__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
 | 
			
		||||
@@ -48,41 +46,41 @@ 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_list args;
 | 
			
		||||
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_error_vr (server, format, args);
 | 
			
		||||
    va_end (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_list args;
 | 
			
		||||
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_warn_vr (server, format, args);
 | 
			
		||||
    va_end (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_list args;
 | 
			
		||||
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_error_io_vr (server, format, errno, args);
 | 
			
		||||
    va_end (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_list args;
 | 
			
		||||
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_warn_io_vr (server, format, errno, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
	va_start (args, format);
 | 
			
		||||
	glibtop_warn_io_vr (server, format, errno, args);
 | 
			
		||||
	va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef  __GNUC__
 | 
			
		||||
@@ -98,41 +96,41 @@ glibtop_warn_io_r (glibtop *server, char *format, ...)
 | 
			
		||||
static void
 | 
			
		||||
glibtop_error (char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
    va_start (args, format);
 | 
			
		||||
    glibtop_error_vr (glibtop_global_server, format, args);
 | 
			
		||||
    va_end (args);
 | 
			
		||||
	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);
 | 
			
		||||
	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);
 | 
			
		||||
	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);
 | 
			
		||||
	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
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -28,39 +28,68 @@
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
#include <glib/gerror.h>
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_ERROR_NO_ERROR			0
 | 
			
		||||
#define GLIBTOP_ERROR_UNKNOWN			1
 | 
			
		||||
#define GLIBTOP_ERROR_INVALID_ARGUMENT		2
 | 
			
		||||
#define GLIBTOP_ERROR_NO_SUCH_PARAMETER		3
 | 
			
		||||
#define GLIBTOP_ERROR_READONLY_VALUE		4
 | 
			
		||||
#define GLIBTOP_ERROR_SIZE_MISMATCH		5
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_ERROR_SERVER_COMM_FAILURE	6
 | 
			
		||||
#define GLIBTOP_ERROR glibtop_error_quark ()
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_ERROR_NO_SUCH_PROCESS		7
 | 
			
		||||
GQuark glibtop_error_quark (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_ERROR_NO_KERNEL_SUPPORT		8
 | 
			
		||||
#define GLIBTOP_ERROR_INCOMPATIBLE_KERNEL	9
 | 
			
		||||
typedef enum {
 | 
			
		||||
    GLIBTOP_ERROR_NO_ERROR = 0,
 | 
			
		||||
    GLIBTOP_ERROR_UNKNOWN,
 | 
			
		||||
    GLIBTOP_ERROR_INVALID_ARGUMENT,
 | 
			
		||||
    GLIBTOP_ERROR_NO_SUCH_PARAMETER,
 | 
			
		||||
    GLIBTOP_ERROR_READONLY_VALUE,
 | 
			
		||||
    GLIBTOP_ERROR_SIZE_MISMATCH,
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_ERROR_NO_SUCH_BACKEND		10
 | 
			
		||||
#define GLIBTOP_ERROR_NOT_IMPLEMENTED		11
 | 
			
		||||
#define GLIBTOP_ERROR_NO_BACKEND_OPENED		12
 | 
			
		||||
    GLIBTOP_ERROR_SERVER_COMM_FAILURE,
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_ERROR_DEMARSHAL_ERROR		13
 | 
			
		||||
    GLIBTOP_ERROR_NO_SUCH_PROCESS,
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_ERROR			14
 | 
			
		||||
    GLIBTOP_ERROR_NO_KERNEL_SUPPORT,
 | 
			
		||||
    GLIBTOP_ERROR_INCOMPATIBLE_KERNEL,
 | 
			
		||||
 | 
			
		||||
char *
 | 
			
		||||
glibtop_get_error_string_l (glibtop *server, unsigned error_number);
 | 
			
		||||
    GLIBTOP_ERROR_NO_SUCH_BACKEND,
 | 
			
		||||
    GLIBTOP_ERROR_NOT_IMPLEMENTED,
 | 
			
		||||
    GLIBTOP_ERROR_NO_BACKEND_OPENED,
 | 
			
		||||
 | 
			
		||||
unsigned
 | 
			
		||||
glibtop_get_errno_l (glibtop *server);
 | 
			
		||||
    GLIBTOP_ERROR_DEMARSHAL_ERROR
 | 
			
		||||
} glibtop_error;
 | 
			
		||||
 | 
			
		||||
unsigned
 | 
			
		||||
glibtop_clear_errno_l (glibtop *server);
 | 
			
		||||
void
 | 
			
		||||
glibtop_error_vl (glibtop_client *client, glibtop_error code,
 | 
			
		||||
		  const char *format, va_list args);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
void
 | 
			
		||||
glibtop_error_io_vl (glibtop_client *client, glibtop_error code,
 | 
			
		||||
		     int io_errno, const char *format, va_list args);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_warn_vl (glibtop_client *client, glibtop_error code,
 | 
			
		||||
		 const char *format, va_list args);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_warn_io_vl (glibtop_client *client, glibtop_error code,
 | 
			
		||||
		    int io_errno, const char *format, va_list args);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_error_l (glibtop_client *client, glibtop_error code,
 | 
			
		||||
		 char *format, ...);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_warn_l (glibtop_client *client, glibtop_error code,
 | 
			
		||||
		char *format, ...);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_error_io_l (glibtop_client *client, glibtop_error code,
 | 
			
		||||
		    char *format, ...);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_warn_io_l (glibtop_client *client, glibtop_error code,
 | 
			
		||||
		   char *format, ...);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
@@ -29,7 +27,7 @@
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_FSUSAGE_BLOCKS		0
 | 
			
		||||
#define GLIBTOP_FSUSAGE_BFREE		1
 | 
			
		||||
@@ -43,20 +41,20 @@ 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. */
 | 
			
		||||
	guint64	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
 | 
			
		||||
 | 
			
		||||
int glibtop_get_fsusage_l (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
 | 
			
		||||
int glibtop_get_fsusage_s (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@@ -69,6 +67,6 @@ extern const char *glibtop_descriptions_fsusage [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -29,31 +29,22 @@
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/array.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glib.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_args_as_array(pid) glibtop_get_proc_args_as_array_l(glibtop_global_server, pid)
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
GPtrArray *
 | 
			
		||||
glibtop_get_proc_args_as_array_l (glibtop *server, pid_t pid);
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proclist_as_array(which,arg) glibtop_get_proclist_as_array_l(glibtop_global_server, which, arg)
 | 
			
		||||
glibtop_get_proc_args_as_array_l (glibtop_client *client, pid_t pid);
 | 
			
		||||
 | 
			
		||||
GArray *
 | 
			
		||||
glibtop_get_proclist_as_array_l (glibtop *server, int64_t which, int64_t arg);
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_map_as_array(pid) glibtop_get_proc_map_as_array_l(glibtop_global_server, pid)
 | 
			
		||||
glibtop_get_proclist_as_array_l (glibtop_client *client, int64_t which, int64_t arg);
 | 
			
		||||
 | 
			
		||||
GPtrArray *
 | 
			
		||||
glibtop_get_proc_map_as_array_l (glibtop *server, pid_t pid);
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_mountlist_as_array(all_fs) glibtop_get_mountlist_as_array_l(glibtop_global_server, all_fs)
 | 
			
		||||
glibtop_get_proc_map_as_array_l (glibtop_client *client, pid_t pid);
 | 
			
		||||
 | 
			
		||||
GPtrArray *
 | 
			
		||||
glibtop_get_mountlist_as_array_l (glibtop *server, int all_fs);
 | 
			
		||||
glibtop_get_mountlist_as_array_l (glibtop_client *client, int all_fs);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -23,28 +23,26 @@
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_BACKEND_H__
 | 
			
		||||
#define __GLIBTOP_BACKEND_H__
 | 
			
		||||
#ifndef __GLIBTOP_BACKEND_INFO_H__
 | 
			
		||||
#define __GLIBTOP_BACKEND_INFO_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
#include <glib.h>
 | 
			
		||||
#include <glibtop/glibtop-server.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_backend_info	glibtop_backend_info;
 | 
			
		||||
typedef struct _glibtop_backend_entry	glibtop_backend_entry;
 | 
			
		||||
typedef struct _glibtop_backend_module	glibtop_backend_module;
 | 
			
		||||
typedef struct _glibtop_backend_private	glibtop_backend_private;
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_backend		glibtop_backend;
 | 
			
		||||
typedef struct _glibtop_call_vector	glibtop_call_vector;
 | 
			
		||||
 | 
			
		||||
#include <glibtop/call-vector.h>
 | 
			
		||||
 | 
			
		||||
typedef int (*glibtop_backend_open_func_t) (glibtop *, glibtop_backend *,
 | 
			
		||||
					    u_int64_t, const char **);
 | 
			
		||||
typedef int (*glibtop_backend_close_func_t) (glibtop *, glibtop_backend *);
 | 
			
		||||
typedef int (*glibtop_backend_open_func_t)  (glibtop_server *, glibtop_backend *,
 | 
			
		||||
					     guint64, const char **);
 | 
			
		||||
typedef int (*glibtop_backend_close_func_t) (glibtop_server *, glibtop_backend *,
 | 
			
		||||
					     glibtop_closure *);
 | 
			
		||||
 | 
			
		||||
struct _glibtop_backend_info
 | 
			
		||||
{
 | 
			
		||||
@@ -63,16 +61,17 @@ struct _glibtop_backend_module
 | 
			
		||||
{
 | 
			
		||||
    int refcount;
 | 
			
		||||
    GModule *module;
 | 
			
		||||
    GSList *extra_modules;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif /* _IN_LIBGTOP */
 | 
			
		||||
 | 
			
		||||
struct _glibtop_backend_entry
 | 
			
		||||
{
 | 
			
		||||
    char *name;
 | 
			
		||||
    char *libtool_name;
 | 
			
		||||
    char *shlib_name;
 | 
			
		||||
 | 
			
		||||
    GSList *extra_libs;
 | 
			
		||||
 | 
			
		||||
    /* This is const since you must not attempt to
 | 
			
		||||
     * write into gmodule loaded memory. */
 | 
			
		||||
    const glibtop_backend_info *info;
 | 
			
		||||
@@ -81,14 +80,7 @@ struct _glibtop_backend_entry
 | 
			
		||||
    glibtop_backend_module *_priv;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_backend
 | 
			
		||||
{
 | 
			
		||||
    const glibtop_backend_info *info;
 | 
			
		||||
 | 
			
		||||
    /* private pointers */
 | 
			
		||||
    glibtop_backend_private *_priv;
 | 
			
		||||
    glibtop_backend_module *_priv_module;
 | 
			
		||||
};
 | 
			
		||||
#endif /* _IN_LIBGTOP */
 | 
			
		||||
 | 
			
		||||
long
 | 
			
		||||
glibtop_register_backend (glibtop_backend_entry *entry);
 | 
			
		||||
@@ -105,10 +97,6 @@ glibtop_backend_by_name (const char *backend_name);
 | 
			
		||||
void
 | 
			
		||||
glibtop_init_backends (void);
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
glibtop_open_backend_l (glibtop *server, const char *backend_name,
 | 
			
		||||
			u_int64_t features, const char **backend_args);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										85
									
								
								include/glibtop/glibtop-backend.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								include/glibtop/glibtop-backend.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
/* -*- 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 2.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_BACKEND_H__
 | 
			
		||||
#define __GLIBTOP_BACKEND_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define	GLIBTOP_TYPE_BACKEND		(glibtop_backend_get_type ())
 | 
			
		||||
#define GLIBTOP_BACKEND(backend)	(G_TYPE_CHECK_INSTANCE_CAST ((backend), GLIBTOP_TYPE_BACKEND, glibtop_backend))
 | 
			
		||||
#define GLIBTOP_BACKEND_CLASS(klass)	(G_TYPE_CHECK_CLASS_CAST ((klass), GLIBTOP_TYPE_BACKEND, glibtop_backend_class))
 | 
			
		||||
#define GLIBTOP_IS_BACKEND(backend)	(G_TYPE_CHECK_INSTANCE_TYPE ((backend), GLIBTOP_TYPE_BACKEND))
 | 
			
		||||
#define GLIBTOP_IS_BACKEND_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), GLIBTOP_TYPE_BACKEND))
 | 
			
		||||
#define	GLIBTOP_BACKEND_GET_CLASS(backend)(G_TYPE_INSTANCE_GET_CLASS ((backend), GLIBTOP_TYPE_BACKEND, glibtop_backend_class))
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_BACKEND_TYPE(backend)	(G_TYPE_FROM_INSTANCE (backend))
 | 
			
		||||
#define GLIBTOP_BACKEND_TYPE_NAME(backend)(g_type_name (GLIBTOP_BACKEND_TYPE (backend)))
 | 
			
		||||
 | 
			
		||||
/* --- typedefs & structures --- */
 | 
			
		||||
typedef struct _glibtop_backend		glibtop_backend;
 | 
			
		||||
typedef struct _glibtop_backend_class	glibtop_backend_class;
 | 
			
		||||
typedef struct _glibtop_backend_private	glibtop_backend_private;
 | 
			
		||||
 | 
			
		||||
#include <glibtop/glibtop-backend-info.h>
 | 
			
		||||
 | 
			
		||||
struct	_glibtop_backend
 | 
			
		||||
{
 | 
			
		||||
    GObject object;
 | 
			
		||||
 | 
			
		||||
    /* <private> */
 | 
			
		||||
    glibtop_backend_private *_priv;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct	_glibtop_backend_class
 | 
			
		||||
{
 | 
			
		||||
    GObjectClass parent_class;;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
GType
 | 
			
		||||
glibtop_backend_get_type (void);
 | 
			
		||||
 | 
			
		||||
glibtop_backend *
 | 
			
		||||
glibtop_backend_get (const char *backend_name, guint64 features,
 | 
			
		||||
		     const char **backend_args, GError **error);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_backend_set_closure_data (glibtop_backend *backend, glibtop_closure *closure);
 | 
			
		||||
 | 
			
		||||
glibtop_closure *
 | 
			
		||||
glibtop_backend_get_closure_data (glibtop_backend *backend);
 | 
			
		||||
 | 
			
		||||
glibtop_call_vector *
 | 
			
		||||
glibtop_backend_get_call_vector (glibtop_backend *backend);
 | 
			
		||||
 | 
			
		||||
glibtop_server *
 | 
			
		||||
glibtop_backend_get_server (glibtop_backend *backend);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										97
									
								
								include/glibtop/glibtop-client.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								include/glibtop/glibtop-client.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,97 @@
 | 
			
		||||
/* -*- 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 2.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_CLIENT_H__
 | 
			
		||||
#define __GLIBTOP_CLIENT_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/glibtop-backend.h>
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define	GLIBTOP_TYPE_CLIENT		(glibtop_client_get_type ())
 | 
			
		||||
#define GLIBTOP_CLIENT(client)		(G_TYPE_CHECK_INSTANCE_CAST ((client), GLIBTOP_TYPE_CLIENT, glibtop_client))
 | 
			
		||||
#define GLIBTOP_CLIENT_CLASS(klass)	(G_TYPE_CHECK_CLASS_CAST ((klass), GLIBTOP_TYPE_CLIENT, glibtop_client_class))
 | 
			
		||||
#define GLIBTOP_IS_CLIENT(client)	(G_TYPE_CHECK_INSTANCE_TYPE ((client), GLIBTOP_TYPE_CLIENT))
 | 
			
		||||
#define GLIBTOP_IS_CLIENT_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), GLIBTOP_TYPE_CLIENT))
 | 
			
		||||
#define	GLIBTOP_CLIENT_GET_CLASS(client)(G_TYPE_INSTANCE_GET_CLASS ((client), GLIBTOP_TYPE_CLIENT, glibtop_client_class))
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_CLIENT_TYPE(client)	(G_TYPE_FROM_INSTANCE (client))
 | 
			
		||||
#define GLIBTOP_CLIENT_TYPE_NAME(client)(g_type_name (GLIBTOP_CLIENT_TYPE (client)))
 | 
			
		||||
 | 
			
		||||
/* --- typedefs & structures --- */
 | 
			
		||||
typedef struct _glibtop_client		glibtop_client;
 | 
			
		||||
typedef struct _glibtop_client_class	glibtop_client_class;
 | 
			
		||||
typedef struct _glibtop_client_private	glibtop_client_private;
 | 
			
		||||
 | 
			
		||||
struct	_glibtop_client
 | 
			
		||||
{
 | 
			
		||||
    GObject object;
 | 
			
		||||
 | 
			
		||||
    /* <public> */
 | 
			
		||||
    GError *error;
 | 
			
		||||
 | 
			
		||||
    /* <private> */
 | 
			
		||||
    glibtop_client_private *_priv;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct	_glibtop_client_class
 | 
			
		||||
{
 | 
			
		||||
    GObjectClass parent_class;;
 | 
			
		||||
 | 
			
		||||
    void (*error) (glibtop_client *client, GError *error);
 | 
			
		||||
    void (*warning) (glibtop_client *client, GError *error);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
GType
 | 
			
		||||
glibtop_client_get_type (void);
 | 
			
		||||
 | 
			
		||||
glibtop_client *
 | 
			
		||||
glibtop_client_new (void);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_client_propagate_error (glibtop_client *client, GError *error);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_client_propagate_warning (glibtop_client *client, GError *error);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_client_open_backend (glibtop_client *client, const char *backend_name,
 | 
			
		||||
			     guint64 features, const char **backend_args);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_client_add_backend (glibtop_client *client,
 | 
			
		||||
			    glibtop_backend *backend);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_client_remove_backend (glibtop_client *client,
 | 
			
		||||
			       glibtop_backend *backend);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										75
									
								
								include/glibtop/glibtop-server.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								include/glibtop/glibtop-server.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
/* -*- 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 2.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_SERVER_H__
 | 
			
		||||
#define __GLIBTOP_SERVER_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_server		glibtop_server;
 | 
			
		||||
typedef struct _glibtop_server_info	glibtop_server_info;
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_closure		glibtop_closure;
 | 
			
		||||
 | 
			
		||||
typedef int (*glibtop_init_func_t)	(glibtop_server *, glibtop_closure *);
 | 
			
		||||
 | 
			
		||||
extern glibtop_init_func_t		_glibtop_init_hook_s [];
 | 
			
		||||
extern glibtop_init_func_t		_glibtop_init_hook_p [];
 | 
			
		||||
 | 
			
		||||
struct _glibtop_server_info
 | 
			
		||||
{
 | 
			
		||||
    int ncpu;			/* Number of CPUs, zero if single-processor */
 | 
			
		||||
    unsigned long features;	/* Server is required for this features */
 | 
			
		||||
    glibtop_sysdeps sysdeps;	/* Detailed feature list */
 | 
			
		||||
    glibtop_sysdeps required;	/* Required feature list */
 | 
			
		||||
    glibtop_sysdeps wanted;	/* We only want this features */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct	_glibtop_server
 | 
			
		||||
{
 | 
			
		||||
    glibtop_server_info *info;
 | 
			
		||||
 | 
			
		||||
    int refcount;
 | 
			
		||||
    unsigned flags;
 | 
			
		||||
    const char *name;
 | 
			
		||||
 | 
			
		||||
    void *_priv;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
glibtop_server *
 | 
			
		||||
glibtop_server_new (void);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_server_ref (glibtop_server *server);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_server_unref (glibtop_server *server);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
@@ -26,43 +24,14 @@
 | 
			
		||||
#ifndef __GLIBTOP_GLOBAL_H__
 | 
			
		||||
#define __GLIBTOP_GLOBAL_H__
 | 
			
		||||
 | 
			
		||||
#include <glib.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
 | 
			
		||||
@@ -76,27 +45,6 @@
 | 
			
		||||
# 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>
 | 
			
		||||
 | 
			
		||||
@@ -111,10 +59,10 @@
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
 | 
			
		||||
#ifdef _IN_LIBGTOP
 | 
			
		||||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
@@ -126,18 +74,13 @@
 | 
			
		||||
 | 
			
		||||
#ifdef _IN_LIBGTOP
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#ifndef _
 | 
			
		||||
#define _(String) dgettext (LIBGTOP_PACKAGE, String)
 | 
			
		||||
#define N_(String) (String)
 | 
			
		||||
#endif
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#ifndef HAVE_STRERROR
 | 
			
		||||
char *strerror (int errno);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* _IN_LIBGTOP */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										161
									
								
								include/glibtop/gnuserv.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								include/glibtop/gnuserv.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,161 @@
 | 
			
		||||
/* -*-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,5 +1,3 @@
 | 
			
		||||
/* -*- 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.
 | 
			
		||||
 | 
			
		||||
@@ -33,7 +31,7 @@
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_INODEDB_ALL		7
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_inodedb		glibtop_inodedb;
 | 
			
		||||
 | 
			
		||||
@@ -41,12 +39,12 @@ typedef struct _glibtop_inodedb_key	glibtop_inodedb_key;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_inodedb_key
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t device, inode;
 | 
			
		||||
	guint64 device, inode;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_inodedb
 | 
			
		||||
{
 | 
			
		||||
    GDBM_FILE system_dbf, user_dbf;
 | 
			
		||||
	GDBM_FILE system_dbf, user_dbf;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_inodedb_open(p1,p2)	glibtop_inodedb_open_s(glibtop_global_server, p1, p2)
 | 
			
		||||
@@ -59,11 +57,11 @@ glibtop_inodedb_open_s (glibtop *server, unsigned databases, unsigned long cache
 | 
			
		||||
const char *
 | 
			
		||||
glibtop_inodedb_lookup_s (glibtop *server,
 | 
			
		||||
			  glibtop_inodedb *inodedb,
 | 
			
		||||
			  u_int64_t device, u_int64_t inode);
 | 
			
		||||
			  guint64 device, guint64 inode);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb);
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
#include <glibtop/compat_10.h>
 | 
			
		||||
#include <glibtop/array.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_INTERFACE_IF_FLAGS	0
 | 
			
		||||
#define GLIBTOP_INTERFACE_TRANSPORT	1
 | 
			
		||||
@@ -44,12 +44,23 @@ BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_INTERFACE		7
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_IFADDR_TRANSPORT	0
 | 
			
		||||
#define GLIBTOP_IFADDR_ADDR_LEN		1
 | 
			
		||||
#define GLIBTOP_IFADDR_ADDRESS		2
 | 
			
		||||
#define GLIBTOP_IFADDR_SUBNET		3
 | 
			
		||||
#define GLIBTOP_IFADDR_SCOPE		4
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_IFADDR		5
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_interface	glibtop_interface;
 | 
			
		||||
typedef struct _glibtop_ifaddr		glibtop_ifaddr;
 | 
			
		||||
 | 
			
		||||
typedef enum _glibtop_interface_type	glibtop_interface_type;
 | 
			
		||||
typedef enum _glibtop_transport		glibtop_transport;
 | 
			
		||||
typedef enum _glibtop_protocol		glibtop_protocol;
 | 
			
		||||
 | 
			
		||||
typedef enum _glibtop_ipv6_scope	glibtop_ipv6_scope;
 | 
			
		||||
 | 
			
		||||
typedef enum _glibtop_strategy		glibtop_strategy;
 | 
			
		||||
typedef enum _glibtop_interface_flags	glibtop_interface_flags;
 | 
			
		||||
 | 
			
		||||
@@ -75,7 +86,7 @@ enum _glibtop_transport {
 | 
			
		||||
    GLIBTOP_TRANSPORT_X25	= 1 << 3,
 | 
			
		||||
    GLIBTOP_TRANSPORT_DECNET	= 1 << 4,
 | 
			
		||||
    GLIBTOP_TRANSPORT_APPLETALK	= 1 << 5,
 | 
			
		||||
    GLIBTOP_TRANSPORT_NETBEUI	= 1 << 6,
 | 
			
		||||
    GLIBTOP_TRANSPORT_NETBEUI	= 1 << 6
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_TRANSPORT_ALL	GLIBTOP_UNLIMITED
 | 
			
		||||
@@ -101,13 +112,24 @@ enum _glibtop_interface_type {
 | 
			
		||||
    GLIBTOP_INTERFACE_ISDN
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum _glibtop_ipv6_scope {
 | 
			
		||||
    GLIBTOP_IPV6_SCOPE_GLOBAL		= 0,
 | 
			
		||||
    GLIBTOP_IPV6_SCOPE_LOOPBACK		= 1 << 1,
 | 
			
		||||
    GLIBTOP_IPV6_SCOPE_LINKLOCAL	= 1 << 2,
 | 
			
		||||
    GLIBTOP_IPV6_SCOPE_SITELOCAL	= 1 << 3,
 | 
			
		||||
    GLIBTOP_IPV6_SCOPE_COMPATv4		= 1 << 4,
 | 
			
		||||
    GLIBTOP_IPV6_SCOPE_UNKNOWN		= 1 << 5
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum _glibtop_strategy {
 | 
			
		||||
    GLIBTOP_INTERFACES_ALL		= 0,
 | 
			
		||||
    GLIBTOP_INTERFACES_BEST_MATCHING,
 | 
			
		||||
    GLIBTOP_INTERFACES_ONLY_THIS_ONE,
 | 
			
		||||
    GLIBTOP_INTERFACES_INCLUDE_LOGICAL	= 1 << 7,
 | 
			
		||||
    GLIBTOP_INTERFACES_INCLUDE_LOGICAL	= 1 << 7
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_STRATEGY_FLAGS_MASK	(1 << 7)
 | 
			
		||||
 | 
			
		||||
enum _glibtop_interface_flags {
 | 
			
		||||
    GLIBTOP_IF_FLAGS_UP = 1,
 | 
			
		||||
    GLIBTOP_IF_FLAGS_BROADCAST,
 | 
			
		||||
@@ -127,9 +149,19 @@ enum _glibtop_interface_flags {
 | 
			
		||||
    GLIBTOP_IF_FLAGS_MULTICAST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_ifaddr
 | 
			
		||||
{
 | 
			
		||||
    guint64	flags,
 | 
			
		||||
	transport;			/* GLIBTOP_IFADDR_TRANSPORT	*/
 | 
			
		||||
    u_int8_t	addr_len,		/* GLIBTOP_IFADDR_ADDR_LEN	*/
 | 
			
		||||
	address [GLIBTOP_IFADDR_LEN];	/* GLIBTOP_IFADDR_ADDRESS	*/
 | 
			
		||||
    guint64	subnet,			/* GLIBTOP_IFADDR_SUBNET	*/
 | 
			
		||||
	scope;				/* GLIBTOP_IFADDR_SCOPE	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_interface
 | 
			
		||||
{
 | 
			
		||||
    u_int64_t	flags,
 | 
			
		||||
    guint64	flags,
 | 
			
		||||
	if_flags,		/* GLIBTOP_INTERFACE_IF_FLAGS		*/
 | 
			
		||||
	transport,		/* GLIBTOP_INTERFACE_TRANSPORT		*/
 | 
			
		||||
	type,			/* GLIBTOP_INTERFACE_TYPE		*/
 | 
			
		||||
@@ -139,22 +171,20 @@ struct _glibtop_interface
 | 
			
		||||
    char name [GLIBTOP_INTERFACE_LEN];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_interface_names(array,interface,number,instance,strategy) glibtop_get_interface_names_l (glibtop_global_server, array, interface, number, instance, strategy)
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_INTERFACE_NAMES
 | 
			
		||||
#define glibtop_get_interface_names_r	glibtop_get_interface_names_p
 | 
			
		||||
#else
 | 
			
		||||
#define glibtop_get_interface_names_r	glibtop_get_interface_names_s
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
glibtop_interface *glibtop_get_interface_names_l (glibtop *server, glibtop_array *array, u_int64_t interface, u_int64_t number, u_int64_t instance, u_int64_t strategy);
 | 
			
		||||
glibtop_interface *glibtop_get_interface_names_l (glibtop_client *client, glibtop_array *array, guint64 interface, guint64 number, guint64 instance, guint64 strategy);
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_INTERFACE_NAMES
 | 
			
		||||
int glibtop_init_interface_names_p (glibtop *server);
 | 
			
		||||
glibtop_interface *glibtop_get_interface_names_p (glibtop *server, glibtop_array *array, u_int64_t interface, u_int64_t number, u_int64_t instance, u_int64_t strategy);
 | 
			
		||||
int glibtop_init_interface_names_p (glibtop_server *server, glibtop_closure *closure);
 | 
			
		||||
glibtop_interface *glibtop_get_interface_names_p (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, guint64 interface, guint64 number, guint64 instance, guint64 strategy);
 | 
			
		||||
#else
 | 
			
		||||
int glibtop_init_interface_names_s (glibtop *server);
 | 
			
		||||
glibtop_interface *glibtop_get_interface_names_s (glibtop *server, glibtop_array *array, u_int64_t interface, u_int64_t number, u_int64_t instance, u_int64_t strategy);
 | 
			
		||||
int glibtop_init_interface_names_s (glibtop_server *server, glibtop_closure *closure);
 | 
			
		||||
glibtop_interface *glibtop_get_interface_names_s (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, guint64 interface, guint64 number, guint64 instance, guint64 strategy);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
@@ -168,6 +198,6 @@ extern const char *glibtop_descriptions_interface_names [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@
 | 
			
		||||
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
/* Nobody should really be using more than 64 processors. */
 | 
			
		||||
#define GLIBTOP_NCPU		64
 | 
			
		||||
@@ -42,12 +42,15 @@ BEGIN_LIBGTOP_DECLS
 | 
			
		||||
/* Maximum length of a network interface name. */
 | 
			
		||||
#define GLIBTOP_INTERFACE_LEN	32
 | 
			
		||||
 | 
			
		||||
/* This is ((u_int64_t)-1) */
 | 
			
		||||
#define GLIBTOP_UNLIMITED	(~(u_int64_t)0)
 | 
			
		||||
/* Length of a network interface address in bytes. */
 | 
			
		||||
#define GLIBTOP_IFADDR_LEN	16
 | 
			
		||||
 | 
			
		||||
/* This is ((guint64)-1) */
 | 
			
		||||
#define GLIBTOP_UNLIMITED	(~(guint64)0)
 | 
			
		||||
 | 
			
		||||
/* Maximum length of a backend name. */
 | 
			
		||||
#define GLIBTOP_BACKEND_NAME_LEN	40
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
@@ -29,7 +27,7 @@
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_LOADAVG_LOADAVG		0
 | 
			
		||||
#define GLIBTOP_LOADAVG_NR_RUNNING	1
 | 
			
		||||
@@ -42,11 +40,11 @@ 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	*/
 | 
			
		||||
	guint64 flags;
 | 
			
		||||
	double loadavg [3];		/* GLIBTOP_LOADAVG_LOADAVG	*/
 | 
			
		||||
	guint64 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)
 | 
			
		||||
@@ -57,14 +55,14 @@ struct _glibtop_loadavg
 | 
			
		||||
#define glibtop_get_loadavg_r		glibtop_get_loadavg_s
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int glibtop_get_loadavg_l (glibtop *server, glibtop_loadavg *buf);
 | 
			
		||||
void glibtop_get_loadavg_l (glibtop *server, glibtop_loadavg *buf);
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_LOADAVG
 | 
			
		||||
int glibtop_init_loadavg_p (glibtop *server);
 | 
			
		||||
int glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf);
 | 
			
		||||
void glibtop_init_loadavg_p (glibtop *server);
 | 
			
		||||
void glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf);
 | 
			
		||||
#else
 | 
			
		||||
int glibtop_init_loadavg_s (glibtop *server);
 | 
			
		||||
int glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf);
 | 
			
		||||
void glibtop_init_loadavg_s (glibtop *server);
 | 
			
		||||
void glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
@@ -78,6 +76,6 @@ extern const char *glibtop_descriptions_loadavg [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
@@ -29,7 +27,7 @@
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MEM_TOTAL	0
 | 
			
		||||
#define GLIBTOP_MEM_USED	1
 | 
			
		||||
@@ -46,15 +44,15 @@ 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	*/
 | 
			
		||||
	guint64	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)
 | 
			
		||||
@@ -65,14 +63,14 @@ struct _glibtop_mem
 | 
			
		||||
#define glibtop_get_mem_r		glibtop_get_mem_s
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int glibtop_get_mem_l (glibtop *server, glibtop_mem *buf);
 | 
			
		||||
void glibtop_get_mem_l (glibtop *server, glibtop_mem *buf);
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_MEM
 | 
			
		||||
int glibtop_init_mem_p (glibtop *server);
 | 
			
		||||
int glibtop_get_mem_p (glibtop *server, glibtop_mem *buf);
 | 
			
		||||
void glibtop_init_mem_p (glibtop *server);
 | 
			
		||||
void glibtop_get_mem_p (glibtop *server, glibtop_mem *buf);
 | 
			
		||||
#else
 | 
			
		||||
int glibtop_init_mem_s (glibtop *server);
 | 
			
		||||
int glibtop_get_mem_s (glibtop *server, glibtop_mem *buf);
 | 
			
		||||
void glibtop_init_mem_s (glibtop *server);
 | 
			
		||||
void glibtop_get_mem_s (glibtop *server, glibtop_mem *buf);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
@@ -86,6 +84,6 @@ extern const char *glibtop_descriptions_mem [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
END_LIBGTOP_DECLS
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user