Compare commits
	
		
			313 Commits
		
	
	
		
			LIBGTOP_2_
			...
			LIBGTOP_2_
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 5516366d00 | ||
|  | ca0915e32c | ||
|  | 594e4f0079 | ||
|  | 7163fa842b | ||
|  | 83bf982682 | ||
|  | 95fc1fb662 | ||
|  | aafbeadcf0 | ||
|  | 5666bf9d33 | ||
|  | 3110b3d491 | ||
|  | f80e0ea5d8 | ||
|  | 2679063df2 | ||
|  | 98b04a6165 | ||
|  | 173785bf09 | ||
|  | bd721cf53d | ||
|  | 2b5bc90451 | ||
|  | 635eefba48 | ||
|  | 6da87f745d | ||
|  | ed3e3212bb | ||
|  | fb34b3bb6e | ||
|  | fce31c179d | ||
|  | 9d43d5d272 | ||
|  | f91299a487 | ||
|  | 1e3f2ba5d0 | ||
|  | 6066288d72 | ||
|  | f53e526dec | ||
|  | 84b9a1e768 | ||
|  | fcd114ff1b | ||
|  | 0fb561662e | ||
|  | beff584d14 | ||
|  | 45a31cd564 | ||
|  | bb0b77e0ae | ||
|  | 50e34421f7 | ||
|  | ab60fc3dd1 | ||
|  | 2661891d6a | ||
|  | ba096bfae2 | ||
|  | 9b56e502eb | ||
|  | 99ec1e3ff3 | ||
|  | 735102a5c1 | ||
|  | 72a46436d9 | ||
|  | 47cd681c0e | ||
|  | 1451a36a04 | ||
|  | 358b0610f5 | ||
|  | 1401fdd5bd | ||
|  | 16f6fab592 | ||
|  | c140390f1d | ||
|  | 5a681b7bea | ||
|  | cc2790545c | ||
|  | a13877776b | ||
|  | 243ed7fdd0 | ||
|  | dc8687227a | ||
|  | d627a9a601 | ||
|  | f84fe9edc7 | ||
|  | 6a53807bb8 | ||
|  | 2f2bbe236b | ||
|  | 8180a1936a | ||
|  | b1b7355ea8 | ||
|  | a105dbecdc | ||
|  | 060dd70e09 | ||
|  | 739db1b32d | ||
|  | fd525d3fa3 | ||
|  | 78add589c6 | ||
|  | c234586bfa | ||
|  | 8d25899dc6 | ||
|  | b7def65c7a | ||
|  | 9939d070b9 | ||
|  | 206c620fd6 | ||
|  | 057b16ec01 | ||
|  | ef899af6f3 | ||
|  | 730c36e1fd | ||
|  | 96f9b4f199 | ||
|  | 3dbb6f1eca | ||
|  | 52ea02ba87 | ||
|  | 1b5fe965df | ||
|  | 7b274d19e4 | ||
|  | 934c7dca93 | ||
|  | 5fe502317e | ||
|  | 0e5efea6f1 | ||
|  | b1111e2b2a | ||
|  | 64af09a8a2 | ||
|  | 77ced38c16 | ||
|  | 8963e38a7c | ||
|  | a8f4eec9e6 | ||
|  | a9e9fe07ef | ||
|  | 85b34b98af | ||
|  | ab8bd67cdf | ||
|  | 5650b49719 | ||
|  | 71426ed454 | ||
|  | 4458d6ba13 | ||
|  | 70210721e0 | ||
|  | b81f82e9a2 | ||
|  | 4df359b9d3 | ||
|  | 1c248d7e93 | ||
|  | b2368f46ca | ||
|  | 890398bbb5 | ||
|  | 84cc3242fc | ||
|  | 2456c458c2 | ||
|  | a6710fbfad | ||
|  | 6dca1e55d8 | ||
|  | 1516e5e192 | ||
|  | f659523856 | ||
|  | 6b81006d08 | ||
|  | b70be80aca | ||
|  | f8fb49a428 | ||
|  | 18356c6ae6 | ||
|  | 807d4bf6ae | ||
|  | c0350d38ae | ||
|  | d3a9e47ffb | ||
|  | c8a3e46433 | ||
|  | 222706a0d4 | ||
|  | 2168cc5f71 | ||
|  | 08808384f4 | ||
|  | 0f1306a20f | ||
|  | 84b05c0219 | ||
|  | 6916ada308 | ||
|  | 5943c96d35 | ||
|  | 909a3e6512 | ||
|  | ca94618e27 | ||
|  | a478d380f4 | ||
|  | af80d4d3d2 | ||
|  | 973dc2d37c | ||
|  | 97b32c7046 | ||
|  | fb8184afba | ||
|  | 16643866cf | ||
|  | aa9299f344 | ||
|  | 6f69cd863b | ||
|  | 7262bf39d8 | ||
|  | 9e773390cc | ||
|  | 54cbdb8158 | ||
|  | c70b11ee00 | ||
|  | 965b26c926 | ||
|  | 384cd6b2db | ||
|  | b055e3710b | ||
|  | 669c6fd670 | ||
|  | 617c4568d2 | ||
|  | 93c998cf7a | ||
|  | 46a0750736 | ||
|  | e9227d1a2e | ||
|  | 41b7120527 | ||
|  | 0ad6ae0a12 | ||
|  | 6197e3ad47 | ||
|  | e577717013 | ||
|  | 6b19a0090a | ||
|  | a515242f17 | ||
|  | a7b13c7d83 | ||
|  | 849d2da085 | ||
|  | d4b195045a | ||
|  | c269f0adb8 | ||
|  | 4f65ee018c | ||
|  | 8a8b975d08 | ||
|  | 64955004a0 | ||
|  | 4ef82847fe | ||
|  | 9da5658ba1 | ||
|  | b300842f47 | ||
|  | 9a49872026 | ||
|  | 1aa7aae2f6 | ||
|  | 70ba9e2559 | ||
|  | 13323e55ee | ||
|  | 57d96878de | ||
|  | 10de82e256 | ||
|  | 29240a5a96 | ||
|  | 1baa2ef8ff | ||
|  | 0bd5a6c082 | ||
|  | 2698263164 | ||
|  | 85d53a69cf | ||
|  | 0a42a8d018 | ||
|  | 9d772e3c07 | ||
|  | ddd9d11c71 | ||
|  | b161b5bb72 | ||
|  | 5607fefe30 | ||
|  | 9d9aed4023 | ||
|  | 62edf91314 | ||
|  | 38e55efd2d | ||
|  | 67c9c8e3e3 | ||
|  | 013ab1841d | ||
|  | 88c5d4fd61 | ||
|  | adbe42cda3 | ||
|  | 2e6e310a3e | ||
|  | 818e941413 | ||
|  | dfa868ce82 | ||
|  | dc353a4172 | ||
|  | 4da65d5d0b | ||
|  | a2043e3aaf | ||
|  | f03304a920 | ||
|  | beedc57724 | ||
|  | 3049619931 | ||
|  | ddb0c913c1 | ||
|  | c7244ba1ba | ||
|  | 146ccb2511 | ||
|  | 91c35548e4 | ||
|  | 8705ef6b65 | ||
|  | d5b27269d8 | ||
|  | 6915f098ca | ||
|  | 376613ddd4 | ||
|  | 6a9cd61fd9 | ||
|  | 18a3526ea7 | ||
|  | 333c85736c | ||
|  | df5ec3c02a | ||
|  | 368e94c8e1 | ||
|  | f5de8e4ead | ||
|  | 715975f7ed | ||
|  | f13099194c | ||
|  | 1dd8a8e8fc | ||
|  | d9fb27e57c | ||
|  | dde1a2c1aa | ||
|  | 5bff21b7b4 | ||
|  | e58c732f54 | ||
|  | 48404428a2 | ||
|  | d009071e40 | ||
|  | 33b1fcf4f9 | ||
|  | c0a9dedc4b | ||
|  | 7ab96d212d | ||
|  | bd6e248adf | ||
|  | 9abfb85080 | ||
|  | fdef2d5b38 | ||
|  | 641eb24a8b | ||
|  | 8754f434d1 | ||
|  | f656208234 | ||
|  | 0df1594f31 | ||
|  | 1ab7936ced | ||
|  | dcd43f8a15 | ||
|  | 7f7c5506f7 | ||
|  | b0a4cb2379 | ||
|  | 8c06ed1516 | ||
|  | 56154e50f2 | ||
|  | 902670623f | ||
|  | 0e5d856065 | ||
|  | 35b6acfc22 | ||
|  | 0830a0b8a7 | ||
|  | f4be080d63 | ||
|  | a599e04eb6 | ||
|  | 0dec9a7b70 | ||
|  | 75958ce2ab | ||
|  | 20bbc17f6b | ||
|  | 19ffa1419a | ||
|  | 1e568f294e | ||
|  | 7752a312e9 | ||
|  | 23c7449898 | ||
|  | 64b3db2dc0 | ||
|  | e94b4882b6 | ||
|  | 1e629c9a86 | ||
|  | 6b6e1261f1 | ||
|  | bbc872138b | ||
|  | 3555a6ca0c | ||
|  | e5928d0b13 | ||
|  | 5bb7e07e95 | ||
|  | 043f4a498f | ||
|  | 94297b8460 | ||
|  | 0f5b941b15 | ||
|  | df6d645afd | ||
|  | 9ac47c7839 | ||
|  | 8d734d1296 | ||
|  | 7fa43bba5d | ||
|  | e2e01a9405 | ||
|  | 5530697ab8 | ||
|  | 95f279d1a7 | ||
|  | 1904a463e2 | ||
|  | 7ce1f9e9d7 | ||
|  | 5221f6d4f8 | ||
|  | ac175a4cbf | ||
|  | f53d1a69bc | ||
|  | adaa9cad97 | ||
|  | 7201ec7790 | ||
|  | 113525a7d7 | ||
|  | d6e62e85d2 | ||
|  | ee153445f0 | ||
|  | 50b43a0f41 | ||
|  | 25c26a6620 | ||
|  | 0438b9d69a | ||
|  | 90c01f24fe | ||
|  | dc0f442247 | ||
|  | 017f4d20c7 | ||
|  | c021ce7851 | ||
|  | 93ab9882c3 | ||
|  | a0477c6212 | ||
|  | 6780e78a6b | ||
|  | d8871029eb | ||
|  | 6799ce187b | ||
|  | 2b6b2578be | ||
|  | 1b0a9fd291 | ||
|  | 43e070dd8b | ||
|  | b0d18119ff | ||
|  | be05f8163a | ||
|  | d6cdf95d83 | ||
|  | 2256a9127f | ||
|  | e6507a80be | ||
|  | 8411e566b4 | ||
|  | 40854f4179 | ||
|  | 41062d0262 | ||
|  | 58c882a860 | ||
|  | 789d156972 | ||
|  | 19c24da036 | ||
|  | 929a025f53 | ||
|  | 6a7c289305 | ||
|  | b65a4a7dcb | ||
|  | 39b2fffe83 | ||
|  | efb913acff | ||
|  | 79e756a2f7 | ||
|  | b08968e644 | ||
|  | dff497d2fa | ||
|  | 38de742ca4 | ||
|  | e0d3401bc4 | ||
|  | aae2b5a94d | ||
|  | a5bd38fc19 | ||
|  | 931b8f065e | ||
|  | f7885e488f | ||
|  | 8122db69ee | ||
|  | ab13d4919d | ||
|  | 1d955fbf1f | ||
|  | 8af25a2003 | ||
|  | 12eb6a25ec | ||
|  | 77ced087a1 | ||
|  | 983475d0c1 | ||
|  | 70b65c05e5 | 
| @@ -33,10 +33,3 @@ libgtop.spec | ||||
| libgtop*.tar.gz | ||||
| *-debstamp | ||||
| libgtop*.pc | ||||
| autom4te.cache | ||||
| COPYING | ||||
| INSTALL | ||||
| install-sh | ||||
| missing | ||||
| mkinstalldirs | ||||
| libgtopconfig.h | ||||
|   | ||||
							
								
								
									
										1
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -1,3 +1,2 @@ | ||||
| Martin Baulig (martin@home-of-linux.org) | ||||
| Drazen Kacar (dave@srce.hr) | ||||
| Benoît Dejean (tazforever@dlfp.org) | ||||
|   | ||||
							
								
								
									
										28
									
								
								LIBGTOP-VERSION
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								LIBGTOP-VERSION
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| # Making releases: | ||||
| #   LIBGTOP_MICRO_VERSION += 1; | ||||
| #   LIBGTOP_INTERFACE_AGE += 1; | ||||
| #   LIBGTOP_BINARY_AGE += 1; | ||||
| # if any functions have been added, set LIBGTOP_INTERFACE_AGE to 0. | ||||
| # if backwards compatibility has been broken, | ||||
| # set LIBGTOP_BINARY_AGE and LIBGTOP_INTERFACE_AGE to 0. | ||||
| # | ||||
| LIBGTOP_MAJOR_VERSION=1 | ||||
| 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= | ||||
|  | ||||
| # Increase each time you change the client/server protocol. | ||||
| LIBGTOP_SERVER_VERSION=5 | ||||
|  | ||||
| # Don't change this | ||||
| LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION | ||||
| LIBGTOP_VERSION_CODE=`echo "$LIBGTOP_MAJOR_VERSION 1000000 * $LIBGTOP_MINOR_VERSION 1000 * + $LIBGTOP_MICRO_VERSION + p q" | dc` | ||||
|  | ||||
| # For automake. | ||||
| VERSION=$LIBGTOP_VERSION$LIBGTOP_VERSION_SUFFIX | ||||
| PACKAGE=libgtop | ||||
| @@ -1,3 +0,0 @@ | ||||
| Email: martin@home-of-linux.org | ||||
| Email: dave@srce.hr | ||||
| Benoît Dejean (tazforever@dlfp.org) | ||||
							
								
								
									
										85
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										85
									
								
								Makefile.am
									
									
									
									
									
								
							| @@ -1,20 +1,93 @@ | ||||
| ## Process this file with automake to produce Makefile.in. | ||||
|  | ||||
| SUBDIRS = po misc include sysdeps lib src examples doc | ||||
| if EXAMPLES | ||||
| examples_SUBDIRS = examples | ||||
| else | ||||
| examples_SUBDIRS = | ||||
| endif | ||||
|  | ||||
| libgtopinclude_HEADERS = glibtop.h libgtopconfig.h | ||||
| if BUILD_GNOME_SUPPORT | ||||
| support = support | ||||
| endif | ||||
|  | ||||
| SUBDIRS = po $(support) misc include sysdeps lib src \ | ||||
| 	  $(examples_SUBDIRS) doc | ||||
|  | ||||
| libgtopinclude_HEADERS = glibtop.h | ||||
| libgtopincludedir = $(includedir)/libgtop-2.0 | ||||
|  | ||||
| EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \ | ||||
| 	 features.def libgtopconfig.h.in \ | ||||
| 	libgtop-sysdeps.m4 README \ | ||||
| 	 libgtop-2.0.pc.in acinclude.m4 | ||||
| EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt libgtopConf.sh.in \ | ||||
| 	LIBGTOP-VERSION features.def libgtop-config.in RELNOTES-0.25 \ | ||||
| 	RELNOTES-1.0 RELNOTES-1.0.x libgtop-sysdeps.m4 README \ | ||||
| 	libgtop-mirror.sh libgtop-2.0.pc.in acinclude.m4 | ||||
|  | ||||
| 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 | ||||
| 		   | ||||
| pkgconfigdir = $(libdir)/pkgconfig | ||||
| pkgconfig_DATA = libgtop-2.0.pc | ||||
|  | ||||
| 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)/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' \ | ||||
| 	  -e 's#\@LIBGTOP_MINOR_VERSION\@#$(LIBGTOP_MINOR_VERSION)#g' \ | ||||
| 	  -e 's#\@LIBGTOP_MICRO_VERSION\@#$(LIBGTOP_MICRO_VERSION)#g' \ | ||||
| 	  -e 's#\@LIBGTOP_VERSION\@#$(LIBGTOP_VERSION)#g' \ | ||||
| 	  -e 's#\@LIBGTOP_VERSION_CODE\@#$(LIBGTOP_VERSION_CODE)#g' \ | ||||
| 	  -e 's#\@LIBGTOP_SERVER_VERSION\@#$(LIBGTOP_SERVER_VERSION)#g' \ | ||||
| 	  -e 's#\@libgtop_sysdeps_dir\@#$(libgtop_sysdeps_dir)#g' \ | ||||
| 	  -e 's#\@libgtop_need_server\@#$(libgtop_need_server)#g' \ | ||||
| 	  -e 's#\@libgtop_use_machine_h\@#$(libgtop_use_machine_h)#g' \ | ||||
| 	  -e 's#\@libgtop_guile_found\@#$(libgtop_guile_found)#g' \ | ||||
| 	  -e 's#\@libgtop_want_examples\@#$(libgtop_want_examples)#g' \ | ||||
| 	      < $(srcdir)/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 | ||||
|  | ||||
| libgtop-features.def: features.def | ||||
| 	@LN_S@ $< $@ | ||||
|  | ||||
|   | ||||
							
								
								
									
										139
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										139
									
								
								NEWS
									
									
									
									
									
								
							| @@ -1,142 +1,3 @@ | ||||
| August 22, 2005: Overview of changes from 2.11.91 to 2.11.92 | ||||
| ============================================================ | ||||
| * Linux: | ||||
|   - fixed for 2.6 without /sys | ||||
|   - glibtop_get_cpu() : Do not add irq, softirq and iowait to idle. | ||||
|  | ||||
| August 9, 2005: Overview of changes from 2.11.90 to 2.11.91 | ||||
| =========================================================== | ||||
| * All: | ||||
|   - cleaned some headers. | ||||
|   - removed static examples. | ||||
| * Linux: | ||||
|   - fixed some issues with 2.6 without /sys | ||||
|  | ||||
| July 24, 2005: Overview of changes from 2.11.2 to 2.11.90 | ||||
| ========================================================= | ||||
| * Linux: | ||||
|   - fixed glibtop_uptime .flags. | ||||
|  | ||||
| July &3, 2005: Overview of changes from 2.11.1 to 2.11.2 | ||||
| ======================================================== | ||||
| * Linux: | ||||
|   - little improvements for 2.6. | ||||
|  | ||||
| July 3, 2005: Overview of changes from 2.11.0 to 2.11.1 | ||||
| ======================================================= | ||||
| * Linux: | ||||
|   - glibtop_get_swap : added page(in|out) for linux 2.6. | ||||
|  | ||||
| June 8, 2005: Overview of changes from 2.10.x to 2.11.0 | ||||
| ======================================================= | ||||
| * Replaced a lot of macros by functions | ||||
| * Got rid of dozens of useless files. | ||||
| * libgtop 2.11.x are and will stay API and ABI compatible with 2.10.x, i swear. | ||||
|  | ||||
| April 10, 2005: Overview of changes from 2.10.0 to 2.10.1 | ||||
| ========================================================= | ||||
| * Updated i18n. | ||||
| * Little cleanup and fixed gcc-4.0 compilation. | ||||
| * linux: fixed loadavg and uptime if locale != C. | ||||
|   Updated siglist. | ||||
| * Tighter libgtop-2.0.pc. | ||||
|  | ||||
| Mars 7, 2005: Overview of Changes from 2.9.92 to 2.10.0 | ||||
| ======================================================= | ||||
| * Updated i18n. | ||||
|  | ||||
| February 28, 2005: Overview of Changes from 2.9.90 to 2.9.92 | ||||
| ============================================================ | ||||
| * *BSD updated by marcus@freebsd.org (Joe Marcus Clarke). | ||||
| * Removed a lot of dead files :) | ||||
| * Don't build&install libgtop_daemon when it's never used. | ||||
|  | ||||
| February 6, 2004: Overview of Changes from 2.9.90 to 2.9.91 | ||||
| ========================================================== | ||||
| * Fixed typo in stub. | ||||
| * Updated i18n. | ||||
|  | ||||
| January 24, 2004: Overview of Changes from 2.9.4 to 2.9.90 | ||||
| ========================================================== | ||||
| * Updated Linux support. | ||||
|  | ||||
| January 10, 2004: Overview of Changes from 2.9.3 to 2.9.4 | ||||
| ========================================================= | ||||
| * New glibtop_proc_open_files nick@reloco.com.ar (Nicolás Lichtmaier). | ||||
| * Updated AIX support (Christophe Belle). | ||||
|  | ||||
| December 20, 2004: Overview of Changes from 2.9.0 to 2.9.3 | ||||
| ========================================================== | ||||
| * Removed libgtop_names. | ||||
| * Fixed Argument passing between library and server. #139809. | ||||
| * *BSD updated by marcus@freebsd.org (Joe Marcus Clarke). | ||||
| * glibtop_get_mountlist(False) now ignores 'unknown' fs. | ||||
|  | ||||
|  | ||||
| November 30, 2004: Overview of Changes from 2.8.1 to 2.9.0 | ||||
| ========================================================= | ||||
| * glibtop_get_netload : Fixed segfault on linux with ppp devices. | ||||
| * NEW glibtop_get_netlist : retrieves the list of all available interfaces. | ||||
| * NEW LIBGTOP_CHECK_VERSION(major, minor, micro) | ||||
| * Removed dead kernel patch and implementation. | ||||
| * Cleanups on Linux and Solaris. | ||||
|  | ||||
| October 11, 2004: Overview of Changes from 2.8.0 to 2.8.1 | ||||
| ========================================================= | ||||
| * Improved Solaris and AIX support. | ||||
|  | ||||
|  | ||||
| August 13, 2004: Overview of Changes from 2.7.92 to 2.8.0 | ||||
| ========================================================= | ||||
| * No changes | ||||
|  | ||||
|  | ||||
| August 30, 2004: | ||||
| =============== | ||||
| * Applied some *BSD patches. | ||||
| * Removed old files. | ||||
|  | ||||
|  | ||||
| August 15, 2004: | ||||
| =============== | ||||
| * Fixed compilation with C89-only compilers and old libc. | ||||
|  | ||||
|  | ||||
| August 3, 2004: | ||||
| ============== | ||||
| * Some cleanups. | ||||
| * Fixed the behaviour of some linux proc_*() functions. | ||||
| * Updated the documentation. | ||||
|  | ||||
|  | ||||
| July 19, 2004: Overview of Changes from 2.6.1 to 2.7.4 | ||||
| ====================================================== | ||||
| * Plenty of code cleanups. Uninlined a lot of functions. ~5-10KB object size | ||||
|   reduction. | ||||
| * Glibify a bit more. | ||||
| * API changes: | ||||
|  - glibtop_fsusage provides total read and writes since boot_time. | ||||
|  - glibtop_netload provides hardware address. IPv6 enable. | ||||
|  - Added glibtop_get_proc_argv. | ||||
|  | ||||
| Work in progress : | ||||
| * Finish glibtop_fsusage implementation for Linux. | ||||
| * Some fuctions don't conform to the documentation, e.g. proctime. | ||||
|  | ||||
| March 11, 2004: | ||||
| =============== | ||||
|  | ||||
| * Released LibGTop 2.5.99 "Gross Work", dedicated to people who do push-ups | ||||
|   in the loos. | ||||
|  | ||||
|   - plenty of code cleanups | ||||
|  | ||||
|   - removed the dependency on libgnome, only glib required now | ||||
|  | ||||
|   - Linux 2.6 support, NetBSD support and better FreeBSD support | ||||
|  | ||||
|   - Make the block size available for filesystem statistics | ||||
|  | ||||
| February 27, 2001: | ||||
| ================= | ||||
|  | ||||
|   | ||||
							
								
								
									
										16
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								README
									
									
									
									
									
								
							| @@ -1,20 +1,8 @@ | ||||
| $Id$ | ||||
|  | ||||
| LATEST NEWS: | ||||
| =========== | ||||
|  | ||||
| Please look also in the file 'NEWS' for latest news. | ||||
|   | ||||
| Martin | ||||
|  | ||||
|  | ||||
| ChangeLogs: | ||||
| ========== | ||||
|  | ||||
| LibGTop has many ChangeLogs files. The following files are the the | ||||
| most important : | ||||
|  | ||||
| - ChangeLog is the main ChangeLog. | ||||
| - sysdeps/<arch>/ChangeLog is the ChangeLog for arch specific changes. | ||||
| - sysdeps/common/ChangeLog is the ChangeLog for common changes (shared | ||||
|   implementation between archs). | ||||
|  | ||||
| Benoît | ||||
|   | ||||
							
								
								
									
										146
									
								
								RELNOTES-0.25
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								RELNOTES-0.25
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,146 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										163
									
								
								RELNOTES-1.0
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,163 @@ | ||||
| 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 GPL 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> | ||||
							
								
								
									
										172
									
								
								RELNOTES-1.0.x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										172
									
								
								RELNOTES-1.0.x
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,172 @@ | ||||
| RELEASE NOTES FOR LIBGTOP 1.0.7 | ||||
| =============================== | ||||
|  | ||||
| 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: | ||||
| ----------------- | ||||
|  | ||||
| Although LibGTop is part of the GNOME desktop environment, its main | ||||
| interface is totally independent from any particular desktop environment, | ||||
| so you can also use it as a standalone library in any piece of GPLed | ||||
| software which makes it also a valuable part of the GNU project. | ||||
|  | ||||
| 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 ... | ||||
|  | ||||
| However, you need to give the configure.in script the `--without-gnome' | ||||
| parameter when you want to use LibGTop without GNOME (this is because, | ||||
| if you want to use it with GNOME, you need to compile it after the main | ||||
| GNOME libraries and I wanted to avoid getting unnecessary bug reports | ||||
| about this). | ||||
|  | ||||
| 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. | ||||
|  | ||||
| Unfortunately, I don't have the power and disk space to install all | ||||
| possible operating systems out there on my machine and test things myself, | ||||
| so I depend on people telling me whether it works and sending me bug | ||||
| reports and patches if not. | ||||
|  | ||||
| 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: | ||||
| ================================== | ||||
|  | ||||
| [I am speaking of the Linux kernel here.] | ||||
|  | ||||
| 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: | ||||
| ==================================== | ||||
|  | ||||
| The development branch of LibGTop (the 1.1.x series) has a first version | ||||
| of the Solaris port which works at least on Solaris 7. | ||||
|  | ||||
| If you are on a Solaris system and want to give it a try, just fetch the | ||||
| latest 1.1.x tarball from ftp://ftp.home-of-linux.org/pub/libgtop/1.1/ | ||||
| and try it out. | ||||
|  | ||||
| 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> | ||||
| @@ -126,11 +126,12 @@ | ||||
| #undef HAVE_GUILE | ||||
|  | ||||
| #undef ssize_t | ||||
| #undef guint64 | ||||
| #undef u_int64_t | ||||
| #undef int64_t | ||||
|  | ||||
| #undef HAVE_GLIBTOP_MACHINE_H | ||||
|  | ||||
| #undef GLIBTOP_NAMES | ||||
| #undef GLIBTOP_GUILE | ||||
| #undef GLIBTOP_GUILE_NAMES | ||||
| #undef GLIBTOP_EXAMPLES | ||||
| @@ -138,6 +139,7 @@ | ||||
|  | ||||
| #undef NEED_LIBGTOP | ||||
|  | ||||
| #undef HAVE_LINUX_TABLE | ||||
| #undef HAVE_LIBGTOP_SMP | ||||
|  | ||||
| #undef HAVE_XAUTH | ||||
|   | ||||
							
								
								
									
										132
									
								
								acinclude.m4
									
									
									
									
									
								
							
							
						
						
									
										132
									
								
								acinclude.m4
									
									
									
									
									
								
							| @@ -43,6 +43,8 @@ dnl | ||||
| AC_DEFUN([GNOME_LIBGTOP_TYPES], | ||||
| [ | ||||
|         AC_CHECK_HEADERS(sys/bitypes.h) | ||||
|         AC_LIBGTOP_CHECK_TYPE(u_int64_t, unsigned long long int) | ||||
|         AC_LIBGTOP_CHECK_TYPE(int64_t, signed long long int) | ||||
| ]) | ||||
|  | ||||
| dnl See whether we need a declaration for a function. | ||||
| @@ -503,6 +505,76 @@ 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. | ||||
| @@ -516,6 +588,53 @@ 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]) | ||||
|  | ||||
| @@ -535,9 +654,11 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[ | ||||
|  | ||||
| 	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)],[ | ||||
| @@ -569,9 +690,14 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[ | ||||
|  | ||||
| 	case "$host_os" in | ||||
| 	linux*) | ||||
| 	  libgtop_sysdeps_dir=linux | ||||
| 	  libgtop_use_machine_h=no | ||||
| 	  libgtop_have_sysinfo=yes | ||||
| 	  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*) | ||||
|   | ||||
							
								
								
									
										251
									
								
								configure.in
									
									
									
									
									
								
							
							
						
						
									
										251
									
								
								configure.in
									
									
									
									
									
								
							| @@ -7,22 +7,12 @@ AM_CONFIG_HEADER(config.h) | ||||
| AC_CANONICAL_SYSTEM | ||||
|  | ||||
| LIBGTOP_MAJOR_VERSION=2 | ||||
| LIBGTOP_MINOR_VERSION=11 | ||||
| LIBGTOP_MICRO_VERSION=92 | ||||
| LIBGTOP_MINOR_VERSION=0 | ||||
| LIBGTOP_MICRO_VERSION=2 | ||||
| LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION | ||||
| AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION) | ||||
|  | ||||
| dnl  increment if the interface has additions, changes, removals. | ||||
| LIBGTOP_CURRENT=6 | ||||
|  | ||||
| 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=1 | ||||
| LIBGTOP_INTERFACE_AGE=1 | ||||
| LIBGTOP_BINARY_AGE=1 | ||||
|  | ||||
| # you can set this to `-snap' for instance to create | ||||
| # a `libgtop-1.x.y-snap.tar.gz' tarball. | ||||
| @@ -46,10 +36,10 @@ AC_SUBST(LIBGTOP_VERSION_SUFFIX) | ||||
|  | ||||
| # libtool versioning | ||||
| LT_RELEASE=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION | ||||
| LT_CURRENT=$LIBGTOP_CURRENT | ||||
| LT_REVISION=$LIBGTOP_REVISION | ||||
| LT_AGE=$LIBGTOP_AGE | ||||
| LT_VERSION_INFO="-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}" | ||||
| 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}' | ||||
| AC_SUBST(LT_VERSION_INFO) | ||||
| AC_SUBST(LT_RELEASE) | ||||
| AC_SUBST(LT_CURRENT) | ||||
| @@ -91,11 +81,46 @@ export cross_compiling | ||||
|  | ||||
| AM_PROG_LIBTOOL | ||||
|  | ||||
| dnl Let the user enable compiler warnings | ||||
| dnl GNOME_COMPILE_WARNINGS | ||||
|  | ||||
| dnl GNOME_INIT_HOOK(gnome_found=yes) | ||||
|  | ||||
| dnl if test "x$gnome_found" != xyes; then | ||||
| dnl   if test "x$want_gnome" != xno ; then | ||||
| dnl     AC_MSG_ERROR([ | ||||
| dnl *** GNOME was not found on this system. *** | ||||
| dnl  | ||||
| dnl *** If you want to use LibGTop without GNOME, you need | ||||
| dnl *** to give configure the --without-gnome parameter. | ||||
| dnl ]) | ||||
| dnl   else | ||||
| dnl     AC_DEFINE(WITHOUT_GNOME) | ||||
| dnl   fi | ||||
| dnl   GNOME_SUPPORT_CHECKS | ||||
| dnl else | ||||
| dnl   if test "x$want_gnome" != xno ; then | ||||
| dnl     AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false) | ||||
| dnl   else | ||||
| dnl     GNOME_SUPPORT_CHECKS | ||||
| dnl   fi | ||||
| dnl fi | ||||
|  | ||||
| AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false) | ||||
|  | ||||
| AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes) | ||||
|  | ||||
| GNOME_LIBGTOP_SYSDEPS | ||||
| GNOME_LIBGTOP_TYPES | ||||
|  | ||||
| dnl AC_ARG_WITH(libgtop-guile, | ||||
| dnl [  --with-libgtop-guile    Build the libgtop guile interface (default=no)], | ||||
| dnl [build_guile="$withval"], [build_guile=yes]) | ||||
|  | ||||
| dnl if test x$build_guile != xno ; then | ||||
| dnl  GNOME_CHECK_GUILE | ||||
| dnl fi | ||||
|  | ||||
| AC_ARG_WITH(libgtop-inodedb, | ||||
| [  --with-libgtop-inodedb  Build the inodedb stuff (default=no)], | ||||
| [build_inodedb="$withval"], [build_inodedb=no]) | ||||
| @@ -112,24 +137,57 @@ if test x$build_inodedb = xyes ; then | ||||
|   AC_DEFINE(GLIBTOP_INODEDB) | ||||
| fi | ||||
|  | ||||
| GLIB_REQUIRED=2.6.0 | ||||
| AC_DEFINE(GLIBTOP_NAMES) | ||||
|  | ||||
| if test x$ac_cv_guile_found = xyes ; then | ||||
|   AC_DEFINE(GLIBTOP_GUILE) | ||||
|   AC_DEFINE(GLIBTOP_GUILE_NAMES) | ||||
|   libgtop_guile_found=yes | ||||
|   guile_examples='third' | ||||
|   guile_static_examples='third_static' | ||||
|   guile_subdirs='guile' | ||||
| else | ||||
|   libgtop_guile_found=no | ||||
|   guile_examples= | ||||
|   guile_static_examples= | ||||
|   guile_subdirs= | ||||
| fi | ||||
|  | ||||
| if test x$libgtop_smp = xyes ; then | ||||
|   smp_examples='smp' | ||||
|   smp_static_examples='smp_static' | ||||
| else | ||||
|   smp_examples= | ||||
|   smp_static_examples= | ||||
| fi | ||||
|  | ||||
| if test "x$enable_static" != xno; then | ||||
|   static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $guile_static_examples $smp_static_examples" | ||||
| else | ||||
|   static_targets="" | ||||
| fi | ||||
|  | ||||
| AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes) | ||||
| AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes) | ||||
|  | ||||
| AC_SUBST(static_targets) | ||||
| AC_SUBST(smp_examples) | ||||
| AC_SUBST(guile_examples) | ||||
| AC_SUBST(guile_subdirs) | ||||
|  | ||||
| AM_PROG_LIBTOOL | ||||
|  | ||||
| GLIB_REQUIRED=2.0.0 | ||||
|  | ||||
| PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED) | ||||
| AC_SUBST(GLIB_CFLAGS) | ||||
| AC_SUBST(GLIB_LIBS) | ||||
|  | ||||
| AC_CHECK_HEADER(popt.h,[POPT=yes],[POPT=no]) | ||||
| AC_MSG_CHECKING(for popt.h) | ||||
| if test x$POPT = xyes ; then | ||||
|    AC_MSG_RESULT(yes) | ||||
| else | ||||
|    AC_MSG_ERROR([libgtop requires the popt development libraries]) | ||||
| fi | ||||
| dnl (1.2.0,,AC_MSG_ERROR(GLIB >= 1.2.0 is required for LibGTop)) | ||||
|  | ||||
| AC_CHECK_HEADER(ifaddrs.h, [HAVE_IFADDRS_H=yes], [HAVE_IFADDRS_H=no]) | ||||
| if test x$HAVE_IFADDRS_H = xyes ; then | ||||
| 	AC_DEFINE(HAVE_IFADDRS_H, 1, [defined if you have ifaddrs.h]) | ||||
| fi | ||||
| dnl You need to uncomment the following line if you want to use | ||||
| dnl libGTop without Gnome. | ||||
| GNOME_SUPPORT_CHECKS | ||||
|  | ||||
| dnl Checks for typedefs, structures, and compiler characteristics. | ||||
| AC_C_CONST | ||||
| @@ -163,44 +221,33 @@ AC_CHECK_FUNCS(dlerror,,) | ||||
| LIBS="$oLIBS" | ||||
| AC_SUBST(DL_LIB) | ||||
|  | ||||
| dnl Linux | ||||
| AC_CHECK_HEADER(linux/isdn.h,[HAVE_ISDN_H=yes],[HAVE_ISDN_H=no]) | ||||
| if test x$HAVE_ISDN_H = xyes ; then | ||||
| 	AC_DEFINE(HAVE_ISDN_H, 1, [defined if you have linux/isdn.h]) | ||||
| fi | ||||
|  | ||||
| dnl AIX | ||||
| AH_TEMPLATE(HAVE_VMGETINFO, [Define to 1 if you have the 'vmgetinfo' function in libperfstat]) | ||||
| 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 | ||||
| case "$host_os" in | ||||
|      solaris*) | ||||
|      AC_CHECK_LIB(kstat, kstat_open) | ||||
|      AC_CHECK_FUNCS(getloadavg swapctl) | ||||
|      AC_CHECK_HEADERS(procfs.h sys/procfs.h, break) | ||||
| AC_CHECK_LIB(kstat, kstat_open) | ||||
| AC_CHECK_FUNCS(getloadavg swapctl) | ||||
| AC_CHECK_HEADERS(procfs.h sys/procfs.h, break) | ||||
|  | ||||
|  | ||||
|     dnl Some versions of Solaris require -lelf for -lkvm | ||||
|     AC_CHECK_LIB(kvm, kvm_open,[ | ||||
|       LIBS="-lkvm $LIBS" | ||||
|     ],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf) | ||||
|        AC_CACHE_VAL(ac_cv_lib_kvm_with_elf, | ||||
|        [ac_save_LIBS="$LIBS" | ||||
|         LIBS="-lkvm -lelf $LIBS" | ||||
|         AC_TRY_LINK([char kvm_open();], [kvm_open()], | ||||
|                     ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no) | ||||
|         LIBS="$ac_save_LIBS" | ||||
|        ]) | ||||
|        if test "$ac_cv_lib_kvm_with_elf" = "yes"; then | ||||
|          AC_MSG_RESULT(yes) | ||||
|          LIBS="-lkvm -lelf $LIBS" | ||||
|        else | ||||
|          AC_MSG_RESULT(no) | ||||
|        fi | ||||
|     ]) | ||||
|      ;; | ||||
| esac | ||||
| dnl Some versions of Solaris require -lelf for -lkvm | ||||
| AC_CHECK_LIB(kvm, kvm_open,[ | ||||
|   LIBS="-lkvm $LIBS" | ||||
| ],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf) | ||||
|    AC_CACHE_VAL(ac_cv_lib_kvm_with_elf, | ||||
|    [ac_save_LIBS="$LIBS" | ||||
|     LIBS="-lkvm -lelf $LIBS" | ||||
|     AC_TRY_LINK([char kvm_open();], [kvm_open()], | ||||
|                 ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no) | ||||
|     LIBS="$ac_save_LIBS" | ||||
|    ]) | ||||
|    if test "$ac_cv_lib_kvm_with_elf" = "yes"; then | ||||
|      AC_MSG_RESULT(yes) | ||||
|      LIBS="-lkvm -lelf $LIBS" | ||||
|    else | ||||
|      AC_MSG_RESULT(no) | ||||
|    fi | ||||
| ]) | ||||
|  | ||||
| dnl For DEC OSF1 | ||||
| AC_CHECK_LIB(mach, vm_statistics) | ||||
| @@ -238,7 +285,8 @@ AC_TYPE_SIGNAL | ||||
| AC_FUNC_STRFTIME | ||||
| AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname) | ||||
|  | ||||
| ALL_LINGUAS="am ar az be bg bn bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu id it ja ko lt lv mi mk ml mn ms nb ne nl nn no or pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sv ta tr uk vi xh zh_CN zh_TW" | ||||
| dnl ## 'es_ES' is only needed for format numbers different of 'es' | ||||
| ALL_LINGUAS="am ar az be bg ca cs da de el es es_ES et fa fi fr ga gl he hu id it ja ko lv mk ml mn ms nl nn no pl pt pt_BR ro ru sk sl sr sr@Latn sv tr uk vi zh_CN zh_TW" | ||||
|  | ||||
| GETTEXT_PACKAGE=libgtop-2.0 | ||||
| AC_SUBST(GETTEXT_PACKAGE) | ||||
| @@ -284,6 +332,24 @@ dnl Debugging | ||||
| 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),) | ||||
|  | ||||
| if test "x$gnome_found" = xyes ; then | ||||
|   LIBSUPPORT="$GNOME_LIBDIR -lgnomesupport" | ||||
|   SUPPORTINCS="$GNOME_INCLUDEDIR" | ||||
| else | ||||
|   LIBSUPPORT='$(top_builddir)/support/libgnomesupport-2.0.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)/libgtop-2.0' | ||||
| @@ -304,14 +370,25 @@ if test x$libgtop_have_sysinfo = xyes ; then | ||||
|   LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO" | ||||
| fi | ||||
|  | ||||
| LIBGTOP_INCS="$LIBGTOP_INCS $GLIB_CFLAGS" | ||||
| LIBGTOP_INCS="$LIBGTOP_INCS $SUPPORTINCS $GLIB_CFLAGS" | ||||
|  | ||||
| LIBGTOP_GUILE_LIBS="$LIBGTOP_LIBS" | ||||
| LIBGTOP_GUILE_INCS="$LIBGTOP_INCS" | ||||
| LIBGTOP_BINDIR='$(bindir)' | ||||
| LIBGTOP_SERVER='$(bindir)/libgtop_server2' | ||||
|  | ||||
| sysdeps_dir="$libgtop_sysdeps_dir" | ||||
| AC_SUBST(sysdeps_dir) | ||||
|  | ||||
| if test x$ac_cv_guile_found = xyes ; then | ||||
|   LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile-2.0" | ||||
|   libgtop_guile_found=yes | ||||
| else | ||||
|   libgtop_guile_found=no | ||||
| fi | ||||
|  | ||||
| AC_SUBST(libgtop_guile_found) | ||||
|  | ||||
| if test -z "$LIBGTOP_EXTRA_LIBS" ; then | ||||
|   LIBGTOP_EXTRA_LIBS="$libs_xauth" | ||||
| else | ||||
| @@ -320,27 +397,35 @@ fi | ||||
|  | ||||
| LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS" | ||||
|  | ||||
| LIBGTOP_LIBS="$LIBGTOP_LIBS" | ||||
| LIBGTOP_LIBS="$LIBGTOP_LIBS -lgtop-2.0 -lgtop_sysdeps-2.0 -lgtop_common-2.0" | ||||
| LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop-2.0 -lgtop_sysdeps-2.0 -lgtop_common-2.0" | ||||
|  | ||||
| LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS -lgtop_names-2.0" | ||||
| LIBGTOP_GUILE_NAMES_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile_names-2.0 -lgtop_names-2.0" | ||||
|  | ||||
| LIBGTOP_LIBS="$LIBGTOP_LIBS"  | ||||
| LIBGTOP_NAMES_LIBS="$LIBGTOP_NAMES_LIBS" | ||||
| LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS" | ||||
| LIBGTOP_GUILE_NAMES_LIBS="$LIBGTOP_GUILE_NAMES_LIBS" | ||||
|  | ||||
| LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS $GUILE_LIBS" | ||||
| LIBGTOP_GUILE_INCS="$LIBGTOP_GUILE_INCS $GUILE_INCS -DGLIBTOP_GUILE" | ||||
|  | ||||
| LIBGTOP_NAMES_INCS="$LIBGTOP_INCS -DGLIBTOP_NAMES" | ||||
| LIBGTOP_GUILE_NAMES_INCS="$LIBGTOP_GUILE_INCS -DGLIBTOP_GUILE_NAMES" | ||||
| LIBGTOP_GUILE_NAMES_INCS="$LIBGTOP_GUILE_INCS -DGLIBTOP_NAMES" | ||||
|  | ||||
| machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir" | ||||
|  | ||||
| AC_SUBST(machine_incs) | ||||
|  | ||||
| if test "$GCC" = "yes" ; then | ||||
|         CFLAGS="\ | ||||
| 	-Winline \ | ||||
| 	-Wall \ | ||||
| 	-std=gnu89 \ | ||||
| 	-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ | ||||
| 	-Wnested-externs -Wpointer-arith \ | ||||
| 	-Wcast-align -Wsign-compare \ | ||||
| 	-fno-strict-aliasing \ | ||||
| 	$CFLAGS" | ||||
| if test x$libgtop_guile_found = xyes ; then | ||||
|   guile_def="-DGLIBTOP_GUILE -DGLIBTOP_GUILE_NAMES $GUILE_INCS " | ||||
| else | ||||
|   guile_def="" | ||||
| fi | ||||
|  | ||||
| INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -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"'\"' | ||||
| 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 $SUPPORTINCS $GLIB_CFLAGS $CFLAGS $X_CFLAGS $guile_def "'-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) | ||||
|  | ||||
| @@ -348,6 +433,12 @@ AC_SUBST(LIBGTOP_EXTRA_LIBS) | ||||
| AC_SUBST(GLIB_LIBS) | ||||
| AC_SUBST(LIBGTOP_LIBS) | ||||
| AC_SUBST(LIBGTOP_INCS) | ||||
| AC_SUBST(LIBGTOP_NAMES_LIBS) | ||||
| AC_SUBST(LIBGTOP_NAMES_INCS) | ||||
| AC_SUBST(LIBGTOP_GUILE_LIBS) | ||||
| AC_SUBST(LIBGTOP_GUILE_INCS) | ||||
| AC_SUBST(LIBGTOP_GUILE_NAMES_LIBS) | ||||
| AC_SUBST(LIBGTOP_GUILE_NAMES_INCS) | ||||
| AC_SUBST(LIBGTOP_BINDIR) | ||||
| AC_SUBST(LIBGTOP_SERVER) | ||||
|  | ||||
| @@ -370,11 +461,15 @@ include/Makefile | ||||
| include/glibtop/Makefile | ||||
| sysdeps/Makefile | ||||
| sysdeps/common/Makefile | ||||
| sysdeps/names/Makefile | ||||
| sysdeps/guile/Makefile | ||||
| sysdeps/guile/names/Makefile | ||||
| sysdeps/stub/Makefile | ||||
| sysdeps/stub_suid/Makefile | ||||
| sysdeps/sun4/Makefile | ||||
| sysdeps/osf1/Makefile | ||||
| sysdeps/linux/Makefile | ||||
| sysdeps/kernel/Makefile | ||||
| sysdeps/freebsd/Makefile | ||||
| sysdeps/solaris/Makefile | ||||
| sysdeps/aix/Makefile | ||||
| @@ -384,6 +479,6 @@ src/inodedb/Makefile | ||||
| lib/Makefile | ||||
| examples/Makefile | ||||
| doc/Makefile | ||||
| support/Makefile | ||||
| libgtop-2.0.pc | ||||
| libgtopconfig.h | ||||
| ]) | ||||
|   | ||||
| @@ -1,9 +1,10 @@ | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 2.0. | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|    Contributed by Benoît Dejean <TazForEver@dlfp.org>, 2004. | ||||
|     | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|   | ||||
							
								
								
									
										3
									
								
								debian/libgtop-dev.files.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								debian/libgtop-dev.files.in
									
									
									
									
										vendored
									
									
								
							| @@ -1,14 +1,17 @@ | ||||
| @PREFIX@/lib/libgtop.a | ||||
| @PREFIX@/lib/libgtop_common.a | ||||
| @PREFIX@/lib/libgtop_names.a | ||||
| @PREFIX@/lib/libgtop_suid_common.a | ||||
| @PREFIX@/lib/libgtop_sysdeps.a | ||||
| @PREFIX@/lib/libgtop.la | ||||
| @PREFIX@/lib/libgtop_common.la | ||||
| @PREFIX@/lib/libgtop_names.la | ||||
| @PREFIX@/lib/libgtop_suid_common.la | ||||
| @PREFIX@/lib/libgtop_sysdeps.la | ||||
| @PREFIX@/lib/libgtopConf.sh | ||||
| @PREFIX@/lib/libgtop.so | ||||
| @PREFIX@/lib/libgtop_common.so | ||||
| @PREFIX@/lib/libgtop_names.so | ||||
| @PREFIX@/lib/libgtop_suid_common.so | ||||
| @PREFIX@/lib/libgtop_sysdeps.so | ||||
| @PREFIX@/lib/libgtop-features.def | ||||
|   | ||||
							
								
								
									
										5
									
								
								debian/libgtop2.README.Debian
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								debian/libgtop2.README.Debian
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +0,0 @@ | ||||
|  | ||||
| The Debian package of libgtop, a GNOME library. | ||||
|  | ||||
| --  | ||||
| Ian Lynagh <ian@lynagh.demon.co.uk> | ||||
							
								
								
									
										12
									
								
								debian/libgtop2.copyright
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								debian/libgtop2.copyright
									
									
									
									
										vendored
									
									
								
							| @@ -1,12 +0,0 @@ | ||||
|  | ||||
| libgtop is released under the GPL. | ||||
| On Debian GNU/Linux systems, the complete text of the GNU General | ||||
| Public License can be found in /usr/share/common-licenses/GPL | ||||
|  | ||||
| Original authors: Martin Baulig <martin@home-of-linux.org> | ||||
|                   Drazen Kacar <dave@srce.hr> | ||||
|  | ||||
| Originally Debianised by Jim Pick <jim@jimpick.com> | ||||
| Then re-Debianised in October 1998 by Martin Schulze | ||||
| <joey@finlandia.infodrom.north.de> before being taken over by Ian Lynagh | ||||
| <ian@lynagh.demon.co.uk> in November 1998. | ||||
							
								
								
									
										7
									
								
								debian/libgtop2.docs
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								debian/libgtop2.docs
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +0,0 @@ | ||||
| RELNOTES-0.25 | ||||
| RELNOTES-1.0 | ||||
| RELNOTES-1.1.x | ||||
| NEWS | ||||
| AUTHORS | ||||
| TODO | ||||
| debian/changelog | ||||
							
								
								
									
										2
									
								
								debian/libgtop2.files.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/libgtop2.files.in
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +0,0 @@ | ||||
| @PREFIX@/lib/libgtop*-1.1.so.*.* | ||||
| @PREFIX@/lib/libgtop*-1.1.so.* | ||||
| @@ -8,4 +8,3 @@ auto-macros.texi | ||||
| version.texi | ||||
| stamp-vti | ||||
| *.html *.pdf | ||||
| mdate-sh | ||||
|   | ||||
| @@ -1,33 +1,3 @@ | ||||
| 2005-01-03  Benoît Dejean  <TazForEver@dlfp.org> | ||||
|  | ||||
| 	* reference.texi: Updated. | ||||
|  | ||||
| 2004-12-04  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* reference.texi: Updated. | ||||
|  | ||||
| 2004-08-03  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* reference.texi: Updated. | ||||
|  | ||||
| 2004-07-07  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* reference.texi: updated. | ||||
| 	Added glibtop_get_proc_argv. | ||||
| 	Added glibtop_fsusage.block_size. | ||||
|  | ||||
| 2004-03-05  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* reference.texi: update for new API | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* reference.texi: s/u_int64_t/guint64/ | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* Makefile.am: removed traces of guile, intllibs and libgnomesupport | ||||
|  | ||||
| 2002-03-12  James Henstridge  <james@daa.com.au> | ||||
|  | ||||
| 	* Makefile.am (MAKEINFO): using += seems to screw up the build | ||||
|   | ||||
| @@ -16,6 +16,12 @@ auto-macros.texi: auto-macros.texi.in Makefile | ||||
| 	  -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' \ | ||||
| @@ -27,6 +33,7 @@ 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 | ||||
|   | ||||
| @@ -1,107 +0,0 @@ | ||||
| @node LibGTop Internals, , Reference Manual, Top | ||||
| @chapter LibGTop Internals | ||||
|  | ||||
| @menu | ||||
| * General Internals::           General Internals | ||||
| * Sysdeps Internals::           Sysdeps Internals | ||||
| @end menu | ||||
|  | ||||
| @node General Internals, Sysdeps Internals, LibGTop Internals, LibGTop Internals | ||||
| @section General Internals | ||||
|  | ||||
| @menu | ||||
| * glibtop::                     The server structure | ||||
| @end menu | ||||
|  | ||||
| @node glibtop,  , General Internals, General Internals | ||||
| @subsection The server structure - @code{glibtop} | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| typedef struct _glibtop         glibtop; | ||||
|  | ||||
| struct _glibtop | ||||
| @{ | ||||
|         unsigned flags; | ||||
|         unsigned method; | ||||
|         unsigned error_method; | ||||
| #ifdef HAVE_GLIBTOP_MACHINE_H | ||||
|         glibtop_machine machine; | ||||
| #endif | ||||
|         int input [2]; | ||||
|         int output [2]; | ||||
|         int socket; | ||||
|         int ncpu; | ||||
|         unsigned long os_version_code; | ||||
|         const char *name; | ||||
|         const char *server_command; | ||||
|         const char *server_host; | ||||
|         const char *server_user; | ||||
|         const char *server_rsh; | ||||
|         unsigned long features; | ||||
|         unsigned long server_port; | ||||
|         glibtop_sysdeps sysdeps; | ||||
|         glibtop_sysdeps required; | ||||
|         glibtop_sysdeps wanted; | ||||
|         pid_t pid; | ||||
| @}; | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| @node Sysdeps Internals,  , General Internals, LibGTop Internals | ||||
| @section Sysdeps Internals | ||||
|  | ||||
| @menu | ||||
| * glibtop_open_s::              Non-privileged initializations | ||||
| * glibtop_close_s::             Non-privileged cleanups | ||||
| @end menu | ||||
|  | ||||
| @node glibtop_open_s, glibtop_close_s, Sysdeps Internals, Sysdeps Internals | ||||
| @subsection glibtop_open_s | ||||
|  | ||||
| This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to | ||||
| initialize a server. It should do all initializations that do not need any | ||||
| privileges. | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| void | ||||
| glibtop_open_s (glibtop *server, const char *program_name, | ||||
| 		const unsigned long features, | ||||
| 		const unsigned flags); | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| @table @code | ||||
| @item server | ||||
| Pointer to the @code{glibtop} server structure. | ||||
| @item program_name | ||||
| Name of the calling program; the implementation will usually | ||||
| set @samp{server->name} to this so it'll be used as the program | ||||
| name in error messages. | ||||
| @end table | ||||
|  | ||||
| Typically, this function will set @code{server->name}, @code{server->ncpu} and | ||||
| @code{server->os_version_code} and initialize any of the @code{server->machine} | ||||
| fields which do not need any privileges. | ||||
|  | ||||
| It is normally implemented in @file{open.c} in the sysdeps directory. | ||||
|  | ||||
| @node glibtop_close_s,  , glibtop_open_s, Sysdeps Internals | ||||
| @subsection glibtop_close_s | ||||
|  | ||||
| This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to | ||||
| clean-up a server when it's no longer used. | ||||
|  | ||||
| It must free all resources that were allocated in @code{glibtop_open_s}. | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| void | ||||
| glibtop_close_s (glibtop *server); | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| It is normally implemented in @file{close.c} in the sysdeps directory, but may | ||||
| be empty. | ||||
|  | ||||
| @@ -50,25 +50,24 @@ typedef struct _glibtop_cpu     glibtop_cpu; | ||||
|  | ||||
| struct _glibtop_cpu | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         total, | ||||
|         user, | ||||
|         nice, | ||||
|         sys, | ||||
|         idle, | ||||
|         iowait, | ||||
|         irq, | ||||
|         softirq, | ||||
|         frequency, | ||||
|         xcpu_total [GLIBTOP_NCPU], | ||||
|         xcpu_user [GLIBTOP_NCPU], | ||||
|         xcpu_nice [GLIBTOP_NCPU], | ||||
|         xcpu_sys  [GLIBTOP_NCPU], | ||||
| @ifset LIBGTOP-1-1 | ||||
|         xcpu_idle [GLIBTOP_NCPU], | ||||
|         xcpu_iowait [GLIBTOP_NCPU], | ||||
|         xcpu_irq [GLIBTOP_NCPU], | ||||
|         xcpu_softirq [GLIBTOP_NCPU], | ||||
|         xcpu_flags; | ||||
| @end ifset | ||||
| @ifclear LIBGTOP-1-1 | ||||
|         xcpu_idle [GLIBTOP_NCPU]; | ||||
| @end ifclear | ||||
| @}; | ||||
| @end cartouche | ||||
| @end example | ||||
| @@ -93,33 +92,25 @@ Number of clock ticks the system spent in system mode. | ||||
| @item idle | ||||
| Number of clock ticks the system spent in the idle task. | ||||
|  | ||||
| @item iowait | ||||
| Number of clock ticks the system spent waiting for I/O to complete. | ||||
|  | ||||
| @item irq | ||||
| Number of clock ticks the system spent servicing interrupts. | ||||
|  | ||||
| @item softirq | ||||
| Number of clock ticks the system spent servicing softirqs. | ||||
|  | ||||
| @item frequency | ||||
| Tick frequency (default is 100). | ||||
|  | ||||
| @end table | ||||
|  | ||||
| The @samp{xcpu_} values are for SMP systems - they are the same than | ||||
| @code{total}, @code{user}, @code{nice}, @code{sys}, @code{idle}, | ||||
| @code{iowait}, @code{irq} and @code{softirq} | ||||
| @code{total}, @code{user}, @code{nice}, @code{sys} and @code{idle} | ||||
| except that they are arrays of @code{GLIBTOP_NCPU} (defined in | ||||
| @file{<glibtop/limits.h>}) elements and contain one value for each CPU | ||||
| in the system. | ||||
|  | ||||
| @ifset LIBGTOP-1-1 | ||||
| @table @code | ||||
| @item xcpu_flags | ||||
| This is interpreted as a bit-field: on systems like Solaris, not all CPUs | ||||
| need to be running all the time, so we set the corresponding bit for each | ||||
| CPU that is currently running. | ||||
| @end table | ||||
| @end ifset | ||||
|  | ||||
| Please note that all of the cpu values are absolute values measured in | ||||
| certain units (to get seconds, divide them by @code{frequency}) since system | ||||
| @@ -148,7 +139,7 @@ typedef struct _glibtop_mem     glibtop_mem; | ||||
|  | ||||
| struct _glibtop_mem | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         total, | ||||
|         used, | ||||
|         free, | ||||
| @@ -216,7 +207,7 @@ typedef struct _glibtop_swap    glibtop_swap; | ||||
|  | ||||
| struct _glibtop_swap | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         total, | ||||
|         used, | ||||
|         free, | ||||
| @@ -275,10 +266,10 @@ typedef struct _glibtop_uptime  glibtop_uptime; | ||||
|  | ||||
| struct _glibtop_uptime | ||||
| @{ | ||||
|     guint64 flags; | ||||
|     u_int64_t flags; | ||||
|     double uptime, | ||||
|         idletime; | ||||
|     guint64 boot_time; | ||||
|     u_int64_t boot_time; | ||||
| @}; | ||||
| @end cartouche | ||||
| @end example | ||||
| @@ -327,9 +318,9 @@ typedef struct _glibtop_loadavg glibtop_loadavg; | ||||
|  | ||||
| struct _glibtop_loadavg | ||||
| @{ | ||||
|     guint64 flags; | ||||
|     u_int64_t flags; | ||||
|     double loadavg [3]; | ||||
|     guint64 nr_running, | ||||
|     u_int64_t nr_running, | ||||
|         nr_tasks, | ||||
|         last_pid; | ||||
| @}; | ||||
| @@ -368,11 +359,11 @@ Library function @code{glibtop_get_proclist}: | ||||
| @cartouche | ||||
| unsigned * | ||||
| glibtop_get_proclist (glibtop_proclist *buf, | ||||
|                       gint64 which, gint64 arg); | ||||
|                       int64_t which, int64_t arg); | ||||
|  | ||||
| unsigned * | ||||
| glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf, | ||||
|                         gint64 which, gint64 arg); | ||||
|                         int64_t which, int64_t arg); | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| @@ -404,7 +395,7 @@ typedef struct _glibtop_proclist        glibtop_proclist; | ||||
|  | ||||
| struct _glibtop_proclist | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         number, | ||||
|         total, | ||||
|         size; | ||||
| @@ -473,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{g_malloc} and must be freed | ||||
| using @code{g_free} to avoid a memory leak. | ||||
| The returned list is allocated using @code{glibtop_malloc} and must be freed | ||||
| using @code{glibtop_free} to avoid a memory leak. | ||||
|  | ||||
| @page | ||||
| @node glibtop_proc_state, glibtop_proc_uid, glibtop_proclist, System Dependent | ||||
| @@ -501,7 +492,7 @@ typedef struct _glibtop_proc_state      glibtop_proc_state; | ||||
|  | ||||
| struct _glibtop_proc_state | ||||
| @{ | ||||
|     guint64 flags; | ||||
|     u_int64_t flags; | ||||
|     char cmd[40]; | ||||
| @ifset LIBGTOP-1-1 | ||||
|     unsigned state; | ||||
| @@ -581,7 +572,6 @@ There are some constants for the @code{state} field: | ||||
| #define GLIBTOP_PROCESS_ZOMBIE                  8 | ||||
| #define GLIBTOP_PROCESS_STOPPED                 16 | ||||
| #define GLIBTOP_PROCESS_SWAPPING                32 | ||||
| #define GLIBTOP_PROCESS_DEAD                    64 | ||||
| @end cartouche | ||||
| @end example | ||||
| @end ifset | ||||
| @@ -628,7 +618,7 @@ typedef struct _glibtop_proc_uid        glibtop_proc_uid; | ||||
|  | ||||
| struct _glibtop_proc_uid | ||||
| @{ | ||||
|     guint64 flags; | ||||
|     u_int64_t flags; | ||||
|     int uid, | ||||
|         euid, | ||||
|         gid, | ||||
| @@ -708,7 +698,7 @@ typedef struct _glibtop_proc_mem        glibtop_proc_mem; | ||||
|  | ||||
| struct _glibtop_proc_mem | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         size, | ||||
|         vsize, | ||||
|         resident, | ||||
| @@ -727,7 +717,7 @@ Number of pages of virtual memory. | ||||
| @item resident | ||||
| Number of residnet set (non-swapped) pages. | ||||
| @item share | ||||
| Number of pages of shared (mmap\'d) memory. | ||||
| Number of pages of shared (mmap'd) memory. | ||||
| @item rss | ||||
| Number of pages the process has in real memory, minus 3 for administrative | ||||
| purposes. | ||||
| @@ -823,7 +813,7 @@ typedef struct _glibtop_proc_time       glibtop_proc_time; | ||||
|  | ||||
| struct _glibtop_proc_time | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         start_time, | ||||
|         rtime, | ||||
|         utime, | ||||
| @@ -840,7 +830,6 @@ struct _glibtop_proc_time | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
|  | ||||
| @table @code | ||||
| @item start_time | ||||
| Start time of process in seconds since the epoch | ||||
| @@ -867,18 +856,6 @@ SMP user-mode CPU time accumulated by process | ||||
| SMP kernel-mode CPU time accumulated by process | ||||
| @end table | ||||
|  | ||||
|  | ||||
| Please note that under Linux, @code{start_time} value may be strange. | ||||
| Linux kernel defines @code{INITIAL_JIFFIES} which implies a time | ||||
| shift. Because @code{INITIAL_JIFFIES} is not user-space defined, we | ||||
| cannot use it to compute accurate @code{start_time}. On Linux2.6, | ||||
| @code{INITIAL_JIFFIES} is 300 so @code{start_time} is always 3s | ||||
| different from real start time of the given process. You may also get | ||||
| shift results if your system clock is not synchronised with your | ||||
| hardware clock. See @samp{man hwclock}. | ||||
|  | ||||
|  | ||||
|  | ||||
| @page | ||||
| @node glibtop_proc_signal, glibtop_proc_kernel, glibtop_proc_time, System Dependent | ||||
| @subsection Process Signal information | ||||
| @@ -904,7 +881,7 @@ typedef struct _glibtop_proc_signal     glibtop_proc_signal; | ||||
|  | ||||
| struct _glibtop_proc_signal | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         signal [2], | ||||
|         blocked [2], | ||||
|         sigignore [2], | ||||
| @@ -925,7 +902,7 @@ Mask of caught signals | ||||
| @end table | ||||
|  | ||||
| All signal masks are interpreted as bit mask; it is an array of two | ||||
| @code{guint64}'s so we can save 128 signals there. | ||||
| @code{u_int64_t}'s so we can save 128 signals there. | ||||
|  | ||||
| @page | ||||
| @node glibtop_proc_kernel, glibtop_proc_segment, glibtop_proc_signal, System Dependent | ||||
| @@ -952,8 +929,8 @@ typedef struct _glibtop_proc_kernel     glibtop_proc_kernel; | ||||
|  | ||||
| struct _glibtop_proc_kernel | ||||
| @{ | ||||
|     guint64 flags; | ||||
|     guint64 k_flags, | ||||
|     u_int64_t flags; | ||||
|     u_int64_t k_flags, | ||||
|         min_flt, | ||||
|         maj_flt, | ||||
|         cmin_flt, | ||||
| @@ -1052,7 +1029,7 @@ typedef struct _glibtop_proc_segment    glibtop_proc_segment; | ||||
|  | ||||
| struct _glibtop_proc_segment | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         text_rss, | ||||
|         shlib_rss, | ||||
|         data_rss, | ||||
| @@ -1060,7 +1037,16 @@ struct _glibtop_proc_segment | ||||
|         dirty_size, | ||||
|         start_code, | ||||
|         end_code, | ||||
|         start_stack; | ||||
|         start_data, | ||||
|         end_data, | ||||
|         start_brk, | ||||
|         end_brk, | ||||
|         start_stack, | ||||
|         start_mmap, | ||||
|         arg_start, | ||||
|         arg_end, | ||||
|         env_start, | ||||
|         env_end; | ||||
| @}; | ||||
| @end cartouche | ||||
| @end example | ||||
| @@ -1093,7 +1079,7 @@ Library function @code{glibtop_get_proc_args}: | ||||
| @example | ||||
| @cartouche | ||||
| char * | ||||
| glibtop_get_proc_args(glibtop_proc_args *buf, pid_t pid, | ||||
| glibtop_get_proc_args_l (glibtop_proc_args *buf, pid_t pid, | ||||
|                          unsigned max_len); | ||||
|  | ||||
| char * | ||||
| @@ -1110,7 +1096,7 @@ typedef struct _glibtop_proc_args       glibtop_proc_args; | ||||
|  | ||||
| struct _glibtop_proc_args | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         size; | ||||
| @}; | ||||
| @end cartouche | ||||
| @@ -1122,31 +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{g_free} the returned string to avoid a memory leak. | ||||
|  | ||||
| @strong{New functions} | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| char ** | ||||
| glibtop_get_proc_argv(glibtop_proc_args *buf, pid_t pid, | ||||
|                          unsigned max_len); | ||||
|  | ||||
| char ** | ||||
| glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf, | ||||
|                          pid_t pid, unsigned max_len); | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| Returns a NULL-terminated array of strings with all arguments of | ||||
| process @code{pid} (up to @code{max_len} characters, use zero to get | ||||
| all arguments). @code{glibtop_get_proc_argv()} and | ||||
| @code{glibtop_get_proc_argv_l()} are wrappers to | ||||
| @code{glibtop_get_proc_args()} and @code{glibtop_get_proc_args_l()} | ||||
| that return process' arguments like the C @code{argv}. | ||||
|  | ||||
| Remember to @code{g_strfreev} the returned array to avoid a memory | ||||
| leak. | ||||
| Remember to @code{glibtop_free} the returned string to avoid a memory leak. | ||||
|  | ||||
| @page | ||||
| @node glibtop_proc_map, glibtop_netload, glibtop_proc_args, System Dependent | ||||
| @@ -1173,7 +1135,7 @@ typedef struct _glibtop_proc_map        glibtop_proc_map; | ||||
|  | ||||
| struct _glibtop_proc_map | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         number, | ||||
|         total, | ||||
|         size; | ||||
| @@ -1182,7 +1144,7 @@ struct _glibtop_proc_map | ||||
| @end example | ||||
|  | ||||
| Returns a @code{glibtop_map_entry *} list (which needs to be freed with | ||||
| @code{g_free}) of memory maps of process @code{pid}. | ||||
| @code{glibtop_free}) of memory maps of process @code{pid}. | ||||
|  | ||||
| @table @code | ||||
| @item number | ||||
| @@ -1202,7 +1164,7 @@ typedef struct _glibtop_map_entry       glibtop_map_entry; | ||||
|  | ||||
| struct _glibtop_map_entry | ||||
| @{ | ||||
|     guint64 flags, start, end, offset, perm, inode, device; | ||||
|     u_int64_t flags, start, end, offset, perm, inode, device; | ||||
|     char filename [GLIBTOP_MAP_FILENAME_LEN+1]; | ||||
| @}; | ||||
| @end cartouche | ||||
| @@ -1213,13 +1175,13 @@ fields are valid: | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| #define GLIBTOP_MAP_ENTRY_START         0 | ||||
| #define GLIBTOP_MAP_ENTRY_END           1 | ||||
| #define GLIBTOP_MAP_ENTRY_OFFSET        2 | ||||
| #define GLIBTOP_MAP_ENTRY_PERM          3 | ||||
| #define GLIBTOP_MAP_ENTRY_INODE         4 | ||||
| #define GLIBTOP_MAP_ENTRY_DEVICE        5 | ||||
| #define GLIBTOP_MAP_ENTRY_FILENAME      6 | ||||
| #define GLIBTOP_MAP_ENTRY_START         1 | ||||
| #define GLIBTOP_MAP_ENTRY_END           2 | ||||
| #define GLIBTOP_MAP_ENTRY_OFFSET        3 | ||||
| #define GLIBTOP_MAP_ENTRY_PERM          4 | ||||
| #define GLIBTOP_MAP_ENTRY_INODE         5 | ||||
| #define GLIBTOP_MAP_ENTRY_DEVICE        6 | ||||
| #define GLIBTOP_MAP_ENTRY_FILENAME      7 | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| @@ -1260,7 +1222,7 @@ typedef struct _glibtop_netload glibtop_netload; | ||||
|  | ||||
| struct _glibtop_netload | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         if_flags, | ||||
|         mtu, | ||||
|         subnet, | ||||
| @@ -1367,7 +1329,7 @@ typedef struct _glibtop_ppp     glibtop_ppp; | ||||
|  | ||||
| struct _glibtop_ppp | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         state, | ||||
|         bytes_in, | ||||
|         bytes_out; | ||||
| @@ -1447,7 +1409,7 @@ typedef struct _glibtop_mountlist       glibtop_mountlist; | ||||
|  | ||||
| struct _glibtop_mountlist | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         number, | ||||
|         total, | ||||
|         size; | ||||
| @@ -1456,7 +1418,7 @@ struct _glibtop_mountlist | ||||
| @end example | ||||
|  | ||||
| Returns a @code{glibtop_mountentry *} list (which needs to be freed with | ||||
| @code{g_free}) of mounted filesystems. | ||||
| @code{glibtop_free}) of mounted filesystems. | ||||
|  | ||||
| @table @code | ||||
| @item number | ||||
| @@ -1476,7 +1438,7 @@ typedef struct _glibtop_mountentry      glibtop_mountentry; | ||||
|  | ||||
| struct _glibtop_mountentry | ||||
| @{ | ||||
|     guint64 dev; | ||||
|     u_int64_t dev; | ||||
|     char devname [GLIBTOP_MOUNTENTRY_LEN+1]; | ||||
|     char mountdir [GLIBTOP_MOUNTENTRY_LEN+1]; | ||||
|     char type [GLIBTOP_MOUNTENTRY_LEN+1]; | ||||
| @@ -1526,15 +1488,12 @@ typedef struct _glibtop_fsusage         glibtop_fsusage; | ||||
|  | ||||
| struct _glibtop_fsusage | ||||
| @{ | ||||
|     guint64   flags, | ||||
|     u_int64_t   flags, | ||||
|         blocks, | ||||
|         bfree, | ||||
|         bavail, | ||||
|         files, | ||||
|         ffree; | ||||
|     guint32   block_size; | ||||
|     guint64 read, | ||||
|         write; | ||||
| @}; | ||||
| @end cartouche | ||||
| @end example | ||||
| @@ -1550,14 +1509,10 @@ Free blocks available to ordinary users. | ||||
| Total file nodes. | ||||
| @item ffree | ||||
| Free file nodes. | ||||
| @item block_size | ||||
| Block size in bytes. | ||||
| @item read | ||||
| Total blocks read. | ||||
| @item write | ||||
| Total blocks written. | ||||
| @end table | ||||
|  | ||||
| Blocks are usually 512 bytes. | ||||
|  | ||||
| @page | ||||
| @node Library Functions,  , Common Functions, Reference Manual | ||||
| @section Library Functions | ||||
| @@ -1684,7 +1639,7 @@ typedef struct _glibtop_sysdeps         glibtop_sysdeps; | ||||
|  | ||||
| struct _glibtop_sysdeps | ||||
| @{ | ||||
|     guint64 flags, | ||||
|     u_int64_t flags, | ||||
|         features, | ||||
|         pointer_size, | ||||
|         cpu, | ||||
|   | ||||
| @@ -14,13 +14,3 @@ second_linux | ||||
| smp_static sysdeps_static netload_static procmap_static mountlist_static | ||||
| smp sysdeps netload procmap mountlist | ||||
| timings timings_static | ||||
| pprint | ||||
| pprint_static | ||||
| procargs | ||||
| procargs_static | ||||
| df | ||||
| df_static | ||||
| netlist | ||||
| netlist_static | ||||
| openfiles | ||||
| openfiles_static | ||||
|   | ||||
| @@ -1,122 +1,3 @@ | ||||
| 2005-08-02  Benoît Dejean  <TazForEver@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_cpu), (pprint_get_loadavg), | ||||
| 	(pprint_get_mem), (pprint_get_msg_limits), (pprint_get_netlist), | ||||
| 	(pprint_get_swap), (pprint_get_uptime), (pprint_get_proc_kernel), | ||||
| 	(main): | ||||
|  | ||||
| 	Added pprint_get_proc_kernel(pid). | ||||
| 	Fixed prototypes. | ||||
|  | ||||
| 2005-01-22  Benoît Dejean  <TazForEver@dlfp.org> | ||||
|  | ||||
| 	* openfiles.c: (show_open_files): Updated. | ||||
|  | ||||
| 2004-12-23  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* netload.c: (main): | ||||
| 	* procmap.c: (main): s/glibtop_error/g_error/g | ||||
|  | ||||
| 2004-11-15  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* netload.c: (hwaddress_format_for_display), (main): Updated. | ||||
|  | ||||
| 2004-11-13  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_fsusage), (pprint_get_mountlist), | ||||
| 	(pprint_get_netload), (pprint_get_netlist), (main): Updated. | ||||
|  | ||||
| 2004-09-25  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (main): Re-added pprint_get_msg_limits() | ||||
|  | ||||
| i2004-09-25  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* df.c: (main): | ||||
| 	* pprint.c: (main): | ||||
| 	* procargs.c: (main): Added missing call to glibgtop_init() / glibtop_close() | ||||
|  | ||||
| 2004-09-24  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* .cvsignore: | ||||
| 	* Makefile.am: | ||||
| 	* ../configure.in | ||||
| 	* df.c: (print_fsusage), (main): Added new example, just like 'df'. | ||||
|  | ||||
| 2004-09-22  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (main): Disable pprint_get_msg_limits() because it can fail. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_swap), (main): Updated. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* procargs.c: (show_args), (main): Updated. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_mountlist), (pprint_get_netload), | ||||
| 	(pprint_get_uptime), (main): Updated. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_mountlist): Updated. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* procargs.c: (show_args), (main): Updated. | ||||
|  | ||||
| 2004-09-20  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* .cvsignore: | ||||
| 	* Makefile.am: | ||||
| 	* pprint.c: (pprint_get_cpu), (pprint_get_fsusage), | ||||
| 	(pprint_get_loadavg), (pprint_get_mem), (pprint_get_mountlist), | ||||
| 	(pprint_get_msg_limits), (main): Added new example : pretty prints | ||||
| 	the result of glibtop_*. Work in progress. | ||||
| 	 | ||||
| 	Now builds procargs. | ||||
| 	 | ||||
| 	* ../configure.in: Added to static list. | ||||
|  | ||||
| 2004-07-07  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* procargs.c: Added glibtop_get_proc_argv demo. | ||||
|  | ||||
| 2003-12-27  Ole Laursen  <olau@hardworking.dk> | ||||
|  | ||||
| 	* mountlist.c: Updated to display block size too. | ||||
|  | ||||
| 2004-03-04  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* smp.c: use libgtop-i18n.h | ||||
|  | ||||
| 2003-10-21  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* Makefile.am: | ||||
| 	* smp.c: | ||||
| 	* sysdeps.c: (main): install only one library, libgtop-2.0 | ||||
| 	Fix build-time warnings due to the redefinition of guint64 | ||||
| 	Fix building smp.c and sysdeps.c | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* first.c: | ||||
| 	* mountlist.c: | ||||
| 	* netload.c: | ||||
| 	* procmap.c: | ||||
| 	* second.c: | ||||
| 	* smp.c: | ||||
| 	* sysdeps.c: | ||||
| 	* third.c: | ||||
| 	* timings.c: fixed compilation | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* Makefile.am: removed traces of guile, intllibs and libgnomesupport | ||||
|  | ||||
| 2001-01-14  Abel Cheung  <maddog@linux.org.hk> | ||||
|  | ||||
| 	* \*.c: bindtextdomain and textdomain uses GETTEXT_PACKAGE. | ||||
| @@ -137,7 +18,7 @@ i2004-09-25  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| Fri Apr  9 00:14:52 1999 Timur Bakeyev  <timur@gnu.org> | ||||
|  | ||||
| 	* timings.c: Added timersub defenition, to make code compilable on | ||||
| 	* timings.c: Added timersub defenition, to make code compilable on  | ||||
| 	BSDI. | ||||
|  | ||||
| 1999-03-24  Martin Baulig  <martin@home-of-linux.org> | ||||
| @@ -203,11 +84,11 @@ Fri Apr  9 00:14:52 1999 Timur Bakeyev  <timur@gnu.org> | ||||
| 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. | ||||
|   | ||||
| @@ -6,45 +6,116 @@ INCLUDES		= @INCLUDES@ | ||||
|  | ||||
| DEFS			= @DEFS@ | ||||
|  | ||||
| noinst_PROGRAMS	= 	first second pprint procargs df netlist \ | ||||
| # We install it in `libexec' since this will make it more easy | ||||
| # to put the examples into an extra RPM package. | ||||
|  | ||||
| libgtopdir		= $(libexecdir)/libgtop | ||||
|  | ||||
| libgtop_PROGRAMS	= first second\ | ||||
| 			  mountlist procmap netload sysdeps timings \ | ||||
| 			  openfiles smp | ||||
| 			  @static_targets@ @guile_examples@ @smp_examples@ | ||||
|  | ||||
| EXTRA_PROGRAMS		= first_static second_static \ | ||||
| 			  mountlist_static procmap_static \ | ||||
| 			  third third_static smp smp_static \ | ||||
| 			  netload_static sysdeps_static \ | ||||
| 			  timings_static | ||||
|  | ||||
| first_SOURCES		= first.c | ||||
| first_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
| first_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \ | ||||
| 			  @LIBSUPPORT@ @INTLLIBS@ | ||||
|  | ||||
| first_static_SOURCES	= $(first_SOURCES) | ||||
| first_static_LDADD	= $(first_LDADD) | ||||
| first_static_LDFLAGS	= -static | ||||
|  | ||||
| second_SOURCES		= second.c | ||||
| second_LDADD		= $(top_builddir)/lib/libgtop-2.0.la -lm | ||||
| second_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \ | ||||
| 			  @LIBSUPPORT@ @INTLLIBS@ | ||||
|  | ||||
| second_static_SOURCES	= $(second_SOURCES) | ||||
| second_static_LDADD	= $(second_LDADD) | ||||
| second_static_LDFLAGS	= -static | ||||
|  | ||||
| procmap_SOURCES		= procmap.c | ||||
| procmap_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
| procmap_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \ | ||||
| 			  @LIBSUPPORT@ @INTLLIBS@ | ||||
|  | ||||
|  | ||||
|  | ||||
| procmap_static_SOURCES	= $(procmap_SOURCES) | ||||
| procmap_static_LDADD	= $(procmap_LDADD) | ||||
| procmap_static_LDFLAGS	= -static | ||||
|  | ||||
| netload_SOURCES		= netload.c | ||||
| netload_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
| netload_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \ | ||||
| 			  @LIBSUPPORT@ @INTLLIBS@ | ||||
|  | ||||
| netload_static_SOURCES	= $(netload_SOURCES) | ||||
| netload_static_LDADD	= $(netload_LDADD) | ||||
| netload_static_LDFLAGS	= -static | ||||
|  | ||||
| sysdeps_SOURCES		= sysdeps.c | ||||
| sysdeps_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
| sysdeps_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \ | ||||
| 			  @LIBSUPPORT@ @INTLLIBS@ | ||||
|  | ||||
| sysdeps_static_SOURCES	= $(sysdeps_SOURCES) | ||||
| sysdeps_static_LDADD	= $(sysdeps_LDADD) | ||||
| sysdeps_static_LDFLAGS	= -static | ||||
|  | ||||
| third_guile_names_LIBS	= $(top_builddir)/sysdeps/guile/names/libgtop_guile_names-2.0.la | ||||
| third_names_LIBS	= $(top_builddir)/sysdeps/names/libgtop_names-2.0.la | ||||
|  | ||||
| third_SOURCES		= third.c | ||||
| third_LDADD		= $(top_builddir)/sysdeps/guile/libgtop_guile-2.0.la \ | ||||
| 			  $(third_guile_names_LIBS) $(third_names_LIBS) \ | ||||
| 			  $(top_builddir)/lib/libgtop-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \ | ||||
| 			  @GUILE_LIBS@ @LIBSUPPORT@ @INTLLIBS@ | ||||
|  | ||||
| third_static_SOURCES	= $(third_SOURCES) | ||||
| third_static_LDADD	= $(third_LDADD) | ||||
| third_static_LDFLAGS	= -static | ||||
|  | ||||
| mountlist_SOURCES	= mountlist.c | ||||
| mountlist_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
| mountlist_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \ | ||||
| 			  @LIBSUPPORT@ @INTLLIBS@ | ||||
|  | ||||
| mountlist_static_SOURCES= $(mountlist_SOURCES) | ||||
| mountlist_static_LDADD	= $(mountlist_LDADD) | ||||
| mountlist_static_LDFLAGS= -static | ||||
|  | ||||
|  | ||||
| smp_SOURCES		= smp.c | ||||
| smp_LDADD		= $(top_builddir)/lib/libgtop-2.0.la -lm | ||||
| smp_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \ | ||||
| 			  @LIBSUPPORT@ @INTLLIBS@ | ||||
|  | ||||
| smp_static_SOURCES	= $(smp_SOURCES) | ||||
| smp_static_LDADD	= $(smp_LDADD) | ||||
| smp_static_LDFLAGS	= -static | ||||
|  | ||||
| timings_SOURCES		= timings.c | ||||
| timings_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
| timings_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \ | ||||
| 			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \ | ||||
| 			  @LIBSUPPORT@ @INTLLIBS@ | ||||
|  | ||||
| pprint_SOURCES	        = pprint.c | ||||
| pprint_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
| timings_static_SOURCES	= $(timings_SOURCES) | ||||
| timings_static_LDADD	= $(timings_LDADD) | ||||
| timings_static_LDFLAGS	= -static | ||||
|  | ||||
| procargs_SOURCES	  = procargs.c | ||||
| procargs_LDADD		  = $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| df_SOURCES	  = df.c | ||||
| df_LDADD		  = $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| netlist_SOURCES		= netlist.c | ||||
| netlist_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| openfiles_SOURCES	= openfiles.c | ||||
| openfiles_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|   | ||||
| @@ -1,48 +0,0 @@ | ||||
| #include <glibtop.h> | ||||
|  | ||||
| #include <glibtop/fsusage.h> | ||||
| #include <glibtop/mountlist.h> | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
|  | ||||
| static void print_fsusage(const char *mountpoint) | ||||
| { | ||||
|   glibtop_fsusage buf; | ||||
|  | ||||
|   glibtop_get_fsusage(&buf, mountpoint); | ||||
|  | ||||
|   printf("%-20s %-10llu %-10llu %-10llu %.1f\n", | ||||
| 	 mountpoint, | ||||
| 	 buf.blocks * buf.block_size >> 20, | ||||
| 	 (buf.blocks - buf.bavail) * buf.block_size >> 20, | ||||
| 	 buf.bavail * buf.block_size >> 20, | ||||
| 	 (buf.blocks - buf.bavail) * 100.0 / buf.blocks | ||||
| 	 ); | ||||
| } | ||||
|  | ||||
|  | ||||
| int main() | ||||
| { | ||||
|   glibtop_mountlist buf; | ||||
|   glibtop_mountentry *entries; | ||||
|   size_t i; | ||||
|  | ||||
|   glibtop_init(); | ||||
|  | ||||
|   printf("%-20s %-10s %-10s %-10s %-10s\n", | ||||
| 	 "Filesystem", "Size", "Used", "Avail", "Use%"); | ||||
|  | ||||
|   entries = glibtop_get_mountlist(&buf, FALSE); | ||||
|  | ||||
|   for(i = 0; i < buf.number; ++i) | ||||
|     { | ||||
|       print_fsusage(entries[i].mountdir); | ||||
|     } | ||||
|  | ||||
|   g_free(entries); | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
| @@ -22,12 +22,11 @@ | ||||
| */ | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| @@ -55,7 +54,7 @@ main (int argc, char *argv []) | ||||
| 	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)); | ||||
| @@ -135,7 +134,7 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	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, | ||||
| @@ -159,7 +158,7 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	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, | ||||
| @@ -217,7 +216,7 @@ main (int argc, char *argv []) | ||||
| 		(unsigned long) sysdeps.ppp); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	 | ||||
| 	ptr = glibtop_get_proclist (&data.proclist, 0, 0); | ||||
|  | ||||
| 	printf ("Proclist     (0x%08lx): %lu, %lu, %lu\n", | ||||
| @@ -233,7 +232,7 @@ main (int argc, char *argv []) | ||||
| 		printf ("\n"); | ||||
| 	} | ||||
|  | ||||
| 	g_free (ptr); | ||||
| 	glibtop_free (ptr); | ||||
|  | ||||
| 	pid = getpid (); | ||||
| 	ppid = getppid (); | ||||
| @@ -308,7 +307,7 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	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, | ||||
| @@ -347,7 +346,7 @@ main (int argc, char *argv []) | ||||
| 		(unsigned long) data.proc_args.size, | ||||
| 		args ? args : ""); | ||||
|  | ||||
| 	g_free (args); | ||||
| 	glibtop_free (args); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| @@ -457,7 +456,7 @@ main (int argc, char *argv []) | ||||
| 		(unsigned long) data.proc_args.size, | ||||
| 		args ? args : ""); | ||||
|  | ||||
| 	g_free (args); | ||||
| 	glibtop_free (args); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| @@ -568,7 +567,7 @@ main (int argc, char *argv []) | ||||
| 		(unsigned long) data.proc_args.size, | ||||
| 		args ? args : ""); | ||||
|  | ||||
| 	g_free (args); | ||||
| 	glibtop_free (args); | ||||
|  | ||||
| 	glibtop_close (); | ||||
|  | ||||
|   | ||||
| @@ -22,12 +22,11 @@ | ||||
| */ | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| @@ -50,11 +49,11 @@ main (int argc, char *argv []) | ||||
| 	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); | ||||
| @@ -74,7 +73,7 @@ main (int argc, char *argv []) | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) { | ||||
| 		mount_entries = glibtop_get_mountlist (&mount_list, 1); | ||||
|  | ||||
| 		g_free (mount_entries); | ||||
| 		glibtop_free (mount_entries); | ||||
| 	} | ||||
|  | ||||
| 	printf ("sbrk (0) = %p\n\n", sbrk (0)); | ||||
| @@ -90,21 +89,21 @@ main (int argc, char *argv []) | ||||
| 			mount_entries [index].type, | ||||
| 			mount_entries [index].devname); | ||||
|  | ||||
| 	printf ("\n\n%-16s %9s %9s %9s %9s %9s %9s\n", | ||||
| 		"Mount", "Blocks", "Free", "Avail", "Files", "Free", "BlockSz"); | ||||
| 	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 ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n", | ||||
| 		printf ("Usage: %-16s %9Lu %9Lu %9Lu %9Lu %9Lu\n", | ||||
| 			mount_entries [index].mountdir, | ||||
| 			fsusage.blocks, fsusage.bfree, | ||||
| 			fsusage.bavail, fsusage.files, | ||||
| 			fsusage.ffree, fsusage.block_size); | ||||
| 			fsusage.ffree); | ||||
| 	} | ||||
|  | ||||
| 	g_free (mount_entries); | ||||
| 	glibtop_free (mount_entries); | ||||
|  | ||||
| 	printf ("\nsbrk (0) = %p\n\n", sbrk (0)); | ||||
|  | ||||
|   | ||||
| @@ -1,46 +0,0 @@ | ||||
| /* Copyright (C) 2004 Benoît Dejean | ||||
|    This file is part of LibGTop 2.0. | ||||
|  | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/netlist.h> | ||||
|  | ||||
|  | ||||
| int main(int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_netlist buf; | ||||
| 	char **devices; | ||||
| 	guint32 i; | ||||
|  | ||||
| 	glibtop_init(); | ||||
|  | ||||
| 	devices = glibtop_get_netlist(&buf); | ||||
|  | ||||
| 	for(i = 0; i < buf.number; ++i) | ||||
| 	{ | ||||
| 		printf("net device '%s'\n", devices[i]); | ||||
| 	} | ||||
|  | ||||
| 	g_strfreev(devices); | ||||
|  | ||||
| 	glibtop_close(); | ||||
| 	return 0; | ||||
| } | ||||
| @@ -22,12 +22,11 @@ | ||||
| */ | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| @@ -40,24 +39,6 @@ | ||||
| #define PROFILE_COUNT	1 | ||||
| #endif | ||||
|  | ||||
|  | ||||
| static char* hwaddress_format_for_display(glibtop_netload *buf) | ||||
| { | ||||
| 	unsigned i; | ||||
| 	GString *repr = g_string_new(""); | ||||
| 	char *str; | ||||
|  | ||||
| 	for(i = 0; i < sizeof buf->hwaddress; ++i) | ||||
| 		g_string_append_printf(repr, "%02X:", | ||||
| 				       (unsigned) ((char*)buf->hwaddress)[i]); | ||||
|  | ||||
| 	repr->str [ repr->len - 1] = ' '; | ||||
| 	str = g_string_free(repr, FALSE); | ||||
| 	g_strstrip(str); | ||||
| 	return str; | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
| @@ -65,8 +46,6 @@ main (int argc, char *argv []) | ||||
| 	unsigned method, count, port; | ||||
| 	struct in_addr addr, subnet; | ||||
| 	char *address_string, *subnet_string; | ||||
| 	char address6_string[INET6_ADDRSTRLEN], prefix6_string[INET6_ADDRSTRLEN]; | ||||
| 	char *hwaddress_string; | ||||
| 	char buffer [BUFSIZ]; | ||||
|  | ||||
| 	count = PROFILE_COUNT; | ||||
| @@ -74,7 +53,7 @@ main (int argc, char *argv []) | ||||
| 	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)); | ||||
| @@ -96,63 +75,49 @@ main (int argc, char *argv []) | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, 0); | ||||
|  | ||||
| 	if (argc != 2) | ||||
| 		g_error ("Usage: %s interface", argv [0]); | ||||
|  | ||||
| 		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)); | ||||
| 	address_string = glibtop_strdup (inet_ntoa (addr)); | ||||
| 	subnet_string  = glibtop_strdup (inet_ntoa (subnet)); | ||||
|  | ||||
| 	inet_ntop (AF_INET6, netload.address6, address6_string, INET6_ADDRSTRLEN); | ||||
| 	inet_ntop (AF_INET6, netload.prefix6,  prefix6_string,  INET6_ADDRSTRLEN); | ||||
| 	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); | ||||
|  | ||||
| 	hwaddress_string = hwaddress_format_for_display(&netload); | ||||
|  | ||||
| 	printf ("Network Load (0x%016llx):\n\n" | ||||
| 		"\tInterface Flags:\t0x%016llx\n" | ||||
| 		"\tAddress:\t\t0x%08x - %s\n" | ||||
| 		"\tSubnet:\t\t\t0x%08x - %s\n\n" | ||||
| 		"\tMTU:\t\t\t%d\n" | ||||
| 		"\tCollisions:\t\t%llu\n\n" | ||||
| 		"\tPackets In:\t\t%llu\n" | ||||
| 		"\tPackets Out:\t\t%llu\n" | ||||
| 		"\tPackets Total:\t\t%llu\n\n" | ||||
| 		"\tBytes In:\t\t%llu\n" | ||||
| 		"\tBytes Out:\t\t%llu\n" | ||||
| 		"\tBytes Total:\t\t%llu\n\n" | ||||
| 		"\tErrors In:\t\t%llu\n" | ||||
| 		"\tErrors Out:\t\t%llu\n" | ||||
| 		"\tErrors Total:\t\t%llu\n\n" | ||||
| 		"\tAddress6:\t\t%s\n" | ||||
| 		"\tPrefix6:\t\t%s\n" | ||||
| 		"\tScope6:\t\t\t%#03x\n\n" | ||||
| 		"\tHarware Address:\t%s\n\n", | ||||
| 		netload.flags, | ||||
| 		netload.if_flags, | ||||
| 		(guint32) netload.address, address_string, | ||||
| 		(guint32) netload.subnet,  subnet_string, | ||||
| 		netload.mtu, | ||||
| 		netload.collisions, | ||||
| 		netload.packets_in, | ||||
| 		netload.packets_out, | ||||
| 		netload.packets_total, | ||||
| 		netload.bytes_in, | ||||
| 		netload.bytes_out, | ||||
| 		netload.bytes_total, | ||||
| 		netload.errors_in, | ||||
| 		netload.errors_out, | ||||
| 		netload.errors_total, | ||||
| 		address6_string, | ||||
| 		prefix6_string, | ||||
| 		(int) netload.scope6, | ||||
| 		hwaddress_string); | ||||
|  | ||||
|  | ||||
| 	g_free (address_string); | ||||
| 	g_free (subnet_string); | ||||
| 	glibtop_free (address_string); | ||||
| 	glibtop_free (subnet_string); | ||||
|  | ||||
| 	glibtop_close (); | ||||
|  | ||||
|   | ||||
| @@ -1,64 +0,0 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/procopenfiles.h> | ||||
|  | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #include <unistd.h> | ||||
|  | ||||
| static void show_open_files(pid_t pid) | ||||
| { | ||||
|   glibtop_proc_open_files buf; | ||||
|   glibtop_open_files_entry *files; | ||||
|   unsigned i; | ||||
|  | ||||
|   files = glibtop_get_proc_open_files(&buf, pid); | ||||
|  | ||||
|   printf("<%ld>\n", (long)pid); | ||||
|  | ||||
|   for(i = 0; i < buf.number; ++i) | ||||
|   { | ||||
| 	  printf("\tfd = %d\t", files[i].fd); | ||||
|  | ||||
| 	  switch(files[i].type) | ||||
| 	  { | ||||
| 	  case GLIBTOP_FILE_TYPE_FILE: | ||||
| 		  printf("file \"%s\"\n", files[i].info.file.name); | ||||
| 		  break; | ||||
|  | ||||
| 	  case GLIBTOP_FILE_TYPE_PIPE: | ||||
| 		  printf("pipe\n"); | ||||
| 		  break; | ||||
|  | ||||
| 	  case GLIBTOP_FILE_TYPE_INETSOCKET: | ||||
| 		  printf("socket %s:%d\n", files[i].info.sock.dest_host, files[i].info.sock.dest_port); | ||||
| 		  break; | ||||
|  | ||||
| 	  case GLIBTOP_FILE_TYPE_LOCALSOCKET: | ||||
| 		  printf("localsocket %s\n", files[i].info.localsock.name); | ||||
| 		  break; | ||||
| 	  } | ||||
|   } | ||||
|  | ||||
|   putchar('\n'); | ||||
|  | ||||
|   g_free(files); | ||||
| } | ||||
|  | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|   glibtop_init(); | ||||
|  | ||||
|   show_open_files(getpid()); | ||||
|  | ||||
|   while(*++argv) | ||||
|     { | ||||
|       pid_t pid = strtol(*argv, NULL, 10); | ||||
|       show_open_files(pid); | ||||
|     } | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| @@ -1,301 +0,0 @@ | ||||
| #include <glibtop.h> | ||||
|  | ||||
| #include <glibtop/union.h> | ||||
|  | ||||
| #include <unistd.h> | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <stddef.h> | ||||
|  | ||||
|  | ||||
| #define buf_offsetof(MEMBER) ((ptrdiff_t)&(buf.MEMBER) - (ptrdiff_t)&buf) | ||||
|  | ||||
| #define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \ | ||||
| (unsigned long) sizeof buf) | ||||
|  | ||||
| #define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \ | ||||
| (unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA) | ||||
|  | ||||
| #define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \ | ||||
| size_t i; \ | ||||
| printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \ | ||||
| (unsigned long) sizeof buf.ARRAY, (unsigned long) buf_offsetof(ARRAY),\ | ||||
| (unsigned long) G_N_ELEMENTS(buf.ARRAY)); \ | ||||
| for(i = 0; i < (SIZE - 1); ++i) printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \ | ||||
| printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \ | ||||
| } while(0) | ||||
|  | ||||
| #define FOOTER_PPRINT() putchar('\n'); | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_cpu(void) | ||||
| { | ||||
|   glibtop_cpu buf; | ||||
|  | ||||
|   glibtop_get_cpu(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_cpu); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(user, "%llu"); | ||||
|   PPRINT(nice, "%llu"); | ||||
|   PPRINT(sys, "%llu"); | ||||
|   PPRINT(idle, "%llu"); | ||||
|   PPRINT(iowait, "%llu"); | ||||
|   PPRINT(irq, "%llu"); | ||||
|   PPRINT(softirq, "%llu"); | ||||
|   PPRINT(frequency, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT(xcpu_flags, "%llx"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_fsusage(const char *mountpoint) | ||||
| { | ||||
|   glibtop_fsusage buf; | ||||
|  | ||||
|   glibtop_get_fsusage(&buf, mountpoint); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_fsusage); | ||||
|   printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(blocks, "%llu"); | ||||
|   PPRINT(bfree, "%llu"); | ||||
|   PPRINT(bavail, "%llu"); | ||||
|   PPRINT(files, "%llu"); | ||||
|   PPRINT(ffree, "%llu"); | ||||
|   PPRINT(block_size, "%u"); | ||||
|   PPRINT(read, "%llu"); | ||||
|   PPRINT(write, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_loadavg(void) | ||||
| { | ||||
|   glibtop_loadavg buf; | ||||
|  | ||||
|   glibtop_get_loadavg(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_loadavg); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT_ARRAY(loadavg, 3, "%f"); | ||||
|   PPRINT(nr_running, "%llu"); | ||||
|   PPRINT(nr_tasks, "%llu"); | ||||
|   PPRINT(last_pid, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_mem(void) | ||||
| { | ||||
|   glibtop_mem buf; | ||||
|  | ||||
|   glibtop_get_mem(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_mem); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(used, "%llu"); | ||||
|   PPRINT(free, "%llu"); | ||||
|   PPRINT(shared, "%llu"); | ||||
|   PPRINT(buffer, "%llu"); | ||||
|   PPRINT(cached, "%llu"); | ||||
|   PPRINT(user, "%llu"); | ||||
|   PPRINT(locked, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_mountlist(gboolean allfs) | ||||
| { | ||||
|   glibtop_mountlist buf; | ||||
|   glibtop_mountentry *entries; | ||||
|   size_t i; | ||||
|  | ||||
|   entries = glibtop_get_mountlist(&buf, allfs); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_mountlist); | ||||
|   printf("glibtop_get_mountlist (allfs = %d)\n", allfs); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(number, "%llu"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(size, "%llu"); | ||||
|  | ||||
|   printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number); | ||||
|  | ||||
|   for(i = 0; i < buf.number; ++i) | ||||
|     { | ||||
|       printf("\t\t .%lu = { .dev = %#llx," | ||||
| 	     " .devname = \"%s\"," | ||||
| 	     " .mountir = \"%s\"," | ||||
| 	     " .type = \"%s\" }\n", | ||||
| 	     (unsigned long) i, entries[i].dev, | ||||
| 	     entries[i].devname, | ||||
| 	     entries[i].mountdir, | ||||
| 	     entries[i].type); | ||||
|     } | ||||
|  | ||||
|   printf("\t\t}\n"); | ||||
|   FOOTER_PPRINT(); | ||||
|  | ||||
|   g_free(entries); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_msg_limits(void) | ||||
| { | ||||
|   glibtop_msg_limits buf; | ||||
|  | ||||
|   glibtop_get_msg_limits(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_msg_limits); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(msgpool, "%llu"); | ||||
|   PPRINT(msgmap, "%llu"); | ||||
|   PPRINT(msgmax, "%llu"); | ||||
|   PPRINT(msgmnb, "%llu"); | ||||
|   PPRINT(msgmni, "%llu"); | ||||
|   PPRINT(msgssz, "%llu"); | ||||
|   PPRINT(msgtql, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_netload(const char *iface) | ||||
| { | ||||
|   glibtop_netload buf; | ||||
|  | ||||
|   glibtop_get_netload(&buf, iface); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_netload); | ||||
|   printf("glibtop_get_netload (iface = \"%s\")\n", iface); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
| static void pprint_get_netlist(void) | ||||
| { | ||||
|   glibtop_netlist buf; | ||||
|   char **devices; | ||||
|   guint32 i; | ||||
|  | ||||
|   devices = glibtop_get_netlist(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_netlist); | ||||
|  | ||||
|   for(i = 0; i < buf.number; ++i) | ||||
|   { | ||||
| 	  printf("\t%s\n", devices[i]); | ||||
|   } | ||||
|  | ||||
|   FOOTER_PPRINT(); | ||||
|  | ||||
|   g_strfreev(devices); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_swap(void) | ||||
| { | ||||
|   glibtop_swap buf; | ||||
|  | ||||
|   glibtop_get_swap(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_swap); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(used, "%llu"); | ||||
|   PPRINT(free, "%llu"); | ||||
|   PPRINT(pagein, "%llu"); | ||||
|   PPRINT(pageout, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_uptime(void) | ||||
| { | ||||
|   glibtop_uptime buf; | ||||
|  | ||||
|   glibtop_get_uptime(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_uptime); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(uptime, "%f"); | ||||
|   PPRINT(idletime, "%f"); | ||||
|   PPRINT(boot_time, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_proc_kernel(pid_t pid) | ||||
| { | ||||
|   glibtop_proc_kernel buf; | ||||
|  | ||||
|   glibtop_get_proc_kernel(&buf, pid); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_proc_kernel); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(k_flags, "%llu"); | ||||
|   PPRINT(min_flt, "%llu"); | ||||
|   PPRINT(maj_flt, "%llu"); | ||||
|   PPRINT(cmin_flt, "%llu"); | ||||
|   PPRINT(cmaj_flt, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| int main() | ||||
| { | ||||
|   glibtop_init(); | ||||
|  | ||||
|   pprint_get_cpu(); | ||||
|  | ||||
|   pprint_get_fsusage("/"); | ||||
|  | ||||
|   pprint_get_loadavg(); | ||||
|  | ||||
|   pprint_get_mem(); | ||||
|  | ||||
|   pprint_get_mountlist(TRUE); | ||||
|   pprint_get_mountlist(FALSE); | ||||
|  | ||||
|   pprint_get_msg_limits(); | ||||
|  | ||||
|   pprint_get_swap(); | ||||
|  | ||||
|   pprint_get_netlist(); | ||||
|  | ||||
|   pprint_get_netload("eth0"); | ||||
|   pprint_get_netload("ppp0"); | ||||
|   pprint_get_netload("<unknown>"); | ||||
| /* pprint_get_sysinfo(); */ | ||||
|  | ||||
|   pprint_get_uptime(); | ||||
|  | ||||
|   pprint_get_proc_kernel(getpid()); | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
| @@ -1,47 +0,0 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/procargs.h> | ||||
|  | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #include <unistd.h> | ||||
|  | ||||
| static void show_args(pid_t pid, unsigned max_len) | ||||
| { | ||||
|   glibtop_proc_args buf; | ||||
|   char ** const pargv = glibtop_get_proc_argv(&buf, pid, max_len); | ||||
|  | ||||
|   char **parg = pargv; | ||||
|  | ||||
|   printf("<%ld>\t", (long)pid); | ||||
|  | ||||
|   while(*parg) | ||||
|     { | ||||
|       printf("\"%s\" ", *parg); | ||||
|       parg++; | ||||
|     } | ||||
|  | ||||
|   putchar('\n'); | ||||
|  | ||||
|   g_strfreev(pargv); | ||||
| } | ||||
|  | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|   glibtop_init(); | ||||
|  | ||||
|   show_args(getpid(), 0); | ||||
|   show_args(getpid(), 15); | ||||
|  | ||||
|   while(*++argv) | ||||
|     { | ||||
|       pid_t pid = strtol(*argv, NULL, 10); | ||||
|       show_args(pid, 0); | ||||
|       show_args(pid, 15); | ||||
|     } | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| @@ -22,12 +22,11 @@ | ||||
| */ | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| @@ -61,7 +60,7 @@ main (int argc, char *argv []) | ||||
| 	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)); | ||||
| @@ -83,7 +82,7 @@ main (int argc, char *argv []) | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, 0); | ||||
|  | ||||
| 	if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1)) | ||||
| 		g_error ("Usage: %s pid", argv [0]); | ||||
| 		glibtop_error ("Usage: %s pid", argv [0]); | ||||
|  | ||||
| #ifdef GLIBTOP_INODEDB | ||||
| 	inodedb = glibtop_inodedb_open (0, 0); | ||||
| @@ -97,7 +96,7 @@ main (int argc, char *argv []) | ||||
| 		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; | ||||
|  | ||||
| @@ -154,10 +153,10 @@ main (int argc, char *argv []) | ||||
| 		} | ||||
|  | ||||
| 		if (filename && (filename != maps [i].filename)) | ||||
| 			g_free ((void*)filename); | ||||
| 			glibtop_free (filename); | ||||
| 	} | ||||
|  | ||||
| 	g_free (maps); | ||||
| 	glibtop_free (maps); | ||||
|  | ||||
| 	glibtop_close (); | ||||
|  | ||||
|   | ||||
| @@ -23,12 +23,11 @@ | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <math.h> | ||||
| #include <stdio.h> | ||||
| #include <libintl.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| #include <glibtop/union.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
| @@ -46,11 +45,11 @@ output (pid_t pid) | ||||
| 	double b_total, b_utime, b_stime; | ||||
| 	double s_total, s_utime, s_stime; | ||||
| 	double my_utime, my_stime; | ||||
| 	unsigned int ncpu; | ||||
| 	int ncpu; | ||||
| #endif | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 		 | ||||
| 	glibtop_get_proc_state (&data.proc_state, pid); | ||||
|  | ||||
| 	printf ("Proc_State   PID  %5d (0x%08lx): " | ||||
| @@ -59,9 +58,9 @@ output (pid_t pid) | ||||
| 		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, | ||||
| @@ -73,7 +72,7 @@ output (pid_t pid) | ||||
| 		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, | ||||
| @@ -83,7 +82,7 @@ output (pid_t pid) | ||||
| 		(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): " | ||||
| @@ -99,7 +98,7 @@ output (pid_t pid) | ||||
| 		(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, | ||||
| @@ -114,7 +113,7 @@ output (pid_t pid) | ||||
| 		(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, | ||||
| @@ -152,7 +151,7 @@ output (pid_t pid) | ||||
| 		(unsigned long) data.proc_args.size, | ||||
| 		args ? args : ""); | ||||
|  | ||||
| 	g_free (args); | ||||
| 	glibtop_free (args); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| @@ -160,7 +159,7 @@ output (pid_t pid) | ||||
| 	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; | ||||
|  | ||||
| @@ -242,7 +241,7 @@ main (int argc, char *argv []) | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
|  | ||||
| 	 | ||||
| 	glibtop_init (); | ||||
|  | ||||
| 	glibtop_get_sysdeps (&sysdeps); | ||||
| @@ -288,11 +287,11 @@ main (int argc, char *argv []) | ||||
| 	for (i = 0; i < proclist.number; i++) { | ||||
|  | ||||
| 		pid = ptr [i]; | ||||
|  | ||||
| 		 | ||||
| 		output (pid); | ||||
| 	} | ||||
|  | ||||
| 	g_free (ptr); | ||||
| 	glibtop_free (ptr); | ||||
|  | ||||
| 	exit (0); | ||||
| } | ||||
|   | ||||
| @@ -21,15 +21,12 @@ | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <math.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/cpu.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| @@ -42,6 +39,10 @@ main (int argc, char *argv []) | ||||
| 	char separator [BUFSIZ], buffer [BUFSIZ]; | ||||
| 	int ncpu, i; | ||||
|  | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
| 	 | ||||
| 	glibtop_init(); | ||||
|  | ||||
| 	glibtop_get_cpu (&cpu); | ||||
| @@ -67,16 +68,16 @@ main (int argc, char *argv []) | ||||
| 	memset (separator, '-', 91); | ||||
| 	separator [92] = '\0'; | ||||
|  | ||||
| 	sprintf (buffer, "Ticks (%ld per second):", frequency); | ||||
| 	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); | ||||
| 		_("Total"), _("User"), _("Nice"), _("Sys"), _("Idle"), separator); | ||||
|  | ||||
| 	printf ("CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n", | ||||
| 	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, | ||||
| 		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], | ||||
| @@ -93,11 +94,11 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	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", | ||||
| 	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, | ||||
| @@ -113,13 +114,13 @@ main (int argc, char *argv []) | ||||
| 		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", | ||||
| 		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, | ||||
| 		_("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); | ||||
|   | ||||
| @@ -22,13 +22,11 @@ | ||||
| */ | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| @@ -48,7 +46,7 @@ main (int argc, char *argv []) | ||||
| 	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)); | ||||
| @@ -71,7 +69,7 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	glibtop_get_sysdeps (&sysdeps); | ||||
|  | ||||
| #define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f)) ? 1 : 0) | ||||
| #define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f##)) ? 1 : 0) | ||||
|  | ||||
| 	printf ("Sysdeps (0x%08lx):\n\n" | ||||
| 		"\tfeatures:\t\t0x%08lx\n\n" | ||||
|   | ||||
							
								
								
									
										57
									
								
								examples/third.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								examples/third.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <locale.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
|       | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| #include <glibtop/union.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
|  | ||||
| void main_prog(int argc, char *argv[]); | ||||
|  | ||||
| int      | ||||
| main (int argc, char *argv[]) | ||||
| { | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
|  | ||||
| 	gh_enter (argc, argv, main_prog); | ||||
| 	exit (0); | ||||
| } | ||||
|  | ||||
| void | ||||
| main_prog (int argc, char *argv[]) | ||||
| { | ||||
| 	glibtop_boot_guile (); | ||||
| #ifdef GLIBTOP_GUILE_NAMES | ||||
| 	glibtop_boot_guile_names (); | ||||
| #endif | ||||
|  | ||||
| 	gh_repl (argc, argv); | ||||
| } | ||||
| @@ -22,12 +22,11 @@ | ||||
| */ | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <stdio.h> | ||||
| #include <libintl.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| @@ -87,7 +86,7 @@ main (int argc, char *argv []) | ||||
| 		"Feature", "Flags", "Count", "utime", "stime"); | ||||
| 	printf ("-------------------------------------------" | ||||
| 		"---------------\n"); | ||||
|  | ||||
| 	 | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, 0); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &total_start); | ||||
| @@ -188,7 +187,7 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) { | ||||
| 		ptr = glibtop_get_proclist (&data.proclist, 0, 0); | ||||
| 		g_free (ptr); | ||||
| 		glibtop_free (ptr); | ||||
| 	} | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_end); | ||||
| @@ -303,7 +302,7 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	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, | ||||
| @@ -334,7 +333,7 @@ main (int argc, char *argv []) | ||||
| 		(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, | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| void|cpu|ulong(total,user,nice,sys,idle,iowait,irq,softirq,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4],xcpu_iowait[4],xcpu_irq[4],xcpu_softirq[4]) | ||||
| void|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) | ||||
| @@ -16,10 +16,7 @@ void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_e | ||||
| void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid) | ||||
| char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len) | ||||
| glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid) | ||||
| glibtop_open_files_entry *|proc_open_files|ulong(number)|pid_t(pid) | ||||
| glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs) | ||||
| void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir | ||||
| void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface | ||||
| void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device) | ||||
| char **|netlist|unsigned(number) | ||||
|  | ||||
|   | ||||
							
								
								
									
										53
									
								
								glibtop.h
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								glibtop.h
									
									
									
									
									
								
							| @@ -24,33 +24,10 @@ | ||||
| #ifndef __GLIBTOP_H__ | ||||
| #define __GLIBTOP_H__ | ||||
|  | ||||
| typedef struct _glibtop		glibtop; | ||||
|  | ||||
| /** | ||||
|  *  LIBGTOP_CHECK_VERSION | ||||
|  *  @major: Major version number | ||||
|  *  @minor: Minor version number | ||||
|  *  @micro: Micro version number | ||||
|  * | ||||
|  *  Checks if the version given is compatable with this version of the | ||||
|  *  library.  For example, LIBGTOP_CHECK_VERSION(1.2.3) would return TRUE | ||||
|  *  if the version is 1.2.5, and FALSE if 1.1.0.  This can be used in | ||||
|  *  build tests. | ||||
|  * | ||||
|  **/ | ||||
|  | ||||
| #include <libgtopconfig.h> | ||||
|  | ||||
| #define LIBGTOP_CHECK_VERSION(major, minor, micro)    \ | ||||
| (LIBGTOP_MAJOR_VERSION > (major) || \ | ||||
| (LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION > (minor)) || \ | ||||
| (LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION == (minor) && \ | ||||
| LIBGTOP_MICRO_VERSION >= (micro))) | ||||
|  | ||||
|  | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glibtop_server.h> | ||||
| #include <glibtop/types.h> | ||||
|  | ||||
| #ifdef HAVE_GLIBTOP_MACHINE_H | ||||
| #include <glibtop_machine.h> | ||||
| @@ -60,11 +37,10 @@ LIBGTOP_MICRO_VERSION >= (micro))) | ||||
| #define GLIBTOP_MOUNTENTRY_LEN	79 | ||||
| #endif | ||||
|  | ||||
| typedef struct _glibtop		glibtop; | ||||
|  | ||||
| #include <glibtop/sysdeps.h> | ||||
|  | ||||
| #include <glibtop/close.h> | ||||
|  | ||||
| struct _glibtop | ||||
| { | ||||
| 	unsigned flags; | ||||
| @@ -94,8 +70,9 @@ extern glibtop *glibtop_global_server; | ||||
|  | ||||
| extern const unsigned long glibtop_server_features; | ||||
|  | ||||
| glibtop * | ||||
| glibtop_init (void); | ||||
| #define glibtop_init()	glibtop_init_r(&glibtop_global_server, 0, 0); | ||||
|  | ||||
| #define glibtop_close()	glibtop_close_r(glibtop_global_server); | ||||
|  | ||||
| glibtop * | ||||
| glibtop_init_r (glibtop **server_ptr, | ||||
| @@ -107,4 +84,24 @@ glibtop_init_s (glibtop **server_ptr, | ||||
| 		unsigned long features, | ||||
| 		unsigned flags); | ||||
|  | ||||
| #ifdef GLIBTOP_GUILE | ||||
|  | ||||
| /* You need to link with -lgtop_guile to get this stuff here. */ | ||||
|  | ||||
| void glibtop_boot_guile (void); | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_GUILE_NAMES | ||||
|  | ||||
| /* You need to link with -lgtop_guile_names to get this stuff here. */ | ||||
|  | ||||
| void glibtop_boot_guile_names (void); | ||||
|  | ||||
| #ifndef GLIBTOP_NAMES | ||||
| #define GLIBTOP_NAMES | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -3,11 +3,8 @@ glibtopdir		= $(includedir)/libgtop-2.0/glibtop | ||||
| glibtop_HEADERS		= close.h loadavg.h prockernel.h procstate.h \ | ||||
| 			  sem_limits.h uptime.h command.h mem.h proclist.h \ | ||||
| 			  proctime.h shm_limits.h version.h cpu.h msg_limits.h \ | ||||
| 			  procmem.h procuid.h swap.h \ | ||||
| 			  procsegment.h sysdeps.h global.h \ | ||||
| 			  procsignal.h union.h gnuserv.h \ | ||||
| 			  procmem.h procuid.h swap.h write.h error.h open.h \ | ||||
| 			  procsegment.h read.h sysdeps.h xmalloc.h global.h \ | ||||
| 			  procsignal.h read_data.h union.h types.h gnuserv.h \ | ||||
| 			  parameter.h mountlist.h fsusage.h procmap.h signal.h \ | ||||
| 			  inodedb.h sysinfo.h ppp.h procargs.h netload.h \ | ||||
| 			  netlist.h procopenfiles.h open.h | ||||
|  | ||||
| noinst_HEADERS		= error.h write.h read_data.h read.h init_hooks.h | ||||
| 			  inodedb.h sysinfo.h ppp.h procargs.h netload.h | ||||
|   | ||||
| @@ -1,116 +0,0 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| require 'c_types.pl'; | ||||
|  | ||||
| die "Usage: $0 features.def call-vector.h.in" unless $#ARGV == 1; | ||||
|  | ||||
| $[ = 1;			# set array base to 1 | ||||
| $, = ' ';		# set output field separator | ||||
| $\ = "\n";		# set output record separator | ||||
|  | ||||
| sub toupper { | ||||
|     local($_) = @_; | ||||
|     tr/a-z/A-Z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| sub tolower { | ||||
|     local($_) = @_; | ||||
|     tr/A-Z/a-z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| $func_decl_code = ''; | ||||
|  | ||||
| open FEATURESDEF, $ARGV[1] or | ||||
|   die "open ($ARGV[1]): $!"; | ||||
|  | ||||
| while (<FEATURESDEF>) { | ||||
|   chop;				# strip record separator | ||||
|    | ||||
|   if (/^[^\#]/) { | ||||
|     &parse_features_def ($_); | ||||
|   } | ||||
| } | ||||
|  | ||||
| close FEATURESDEF; | ||||
|  | ||||
| sub parse_features_def { | ||||
|   local($line) = @_; | ||||
|   @line_fields = split(/\|/, $line, 9999); | ||||
|   $retval = $line_fields[1]; | ||||
|   $element_def = $line_fields[3]; | ||||
|   $feature = $line_fields[2]; | ||||
|   $param_def = $line_fields[4]; | ||||
|  | ||||
|   $orig = $feature; | ||||
|   $feature =~ s/^@//; | ||||
|   $space = $feature; | ||||
|   $space =~ s/./ /g; | ||||
|  | ||||
|   if ($retval eq 'retval') { | ||||
|     $retval_param = '&retval'; | ||||
|     $retval = 'int'; | ||||
|   } | ||||
|   elsif ($retval !~ /^void$/) { | ||||
|     $retval_param = 'NULL'; | ||||
|   } | ||||
|   else { | ||||
|     $retval_param = 'NULL'; | ||||
|   } | ||||
|   | ||||
|   if ($retval =~ /^(array|pointer)\((.*)\)$/) { | ||||
|     $retval = ($2 eq 'string') ? 'char **' : "$2 *"; | ||||
|   } | ||||
|  | ||||
|   $param_decl = ''; | ||||
|   $nr_params = (@params = split(/:/, $param_def, 9999)); | ||||
|   for ($param = 1; $param <= $nr_params; $param++) { | ||||
|     $list = $params[$param]; | ||||
|     $type = $params[$param]; | ||||
|     $type =~ s/\(.*//; | ||||
|     $list =~ s/^.*\(//; | ||||
|     $list =~ s/\)$//; | ||||
|     $count = (@fields = split(/,/, $list, 9999)); | ||||
|     for ($field = 1; $field <= $count; $field++) { | ||||
|       my $c_type = $typeinfo->{$type}->[1]; | ||||
|  | ||||
|       $param_decl = $param_decl . ', '; | ||||
|       $param_decl = $param_decl . $c_type; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if ($line_fields[3] eq '') { | ||||
|     $func_decl_code .= sprintf | ||||
|       (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *%s);\n], $retval, $feature, $param_decl); | ||||
|   } elsif ($line_fields[3] eq 'array') { | ||||
|     $func_decl_code .= sprintf | ||||
|       (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *%s);\n], $retval, $feature, $param_decl); | ||||
|   } elsif ($line_fields[3] =~ /^array/) { | ||||
|     $func_decl_code .= sprintf | ||||
|       (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl); | ||||
|   } else { | ||||
|     $func_decl_code .= sprintf | ||||
|       (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl); | ||||
|   } | ||||
| } | ||||
|  | ||||
| chop $func_decl_code; | ||||
|  | ||||
| $auto_gen_comment = sprintf | ||||
|   (qq[/*\n * This file is automatically generated.\n * Please modify `call-vector.pl' and `call-vector.h.in'.\n */]); | ||||
|  | ||||
| open CALLVECTOR, $ARGV[2] or | ||||
|   die "open ($ARGV[2]): $!"; | ||||
|  | ||||
| while (<CALLVECTOR>) { | ||||
|   chop; | ||||
|  | ||||
|   s/^\s*\@\@GLIBTOP_CALL_VECTOR\@\@\s*$/$func_decl_code/; | ||||
|  | ||||
|   s/^\s*\@\@AUTOGEN_COMMENT\@\@\s*$/$auto_gen_comment/; | ||||
| } continue { | ||||
|   print $_; | ||||
| } | ||||
|  | ||||
| close CALLVECTOR; | ||||
| @@ -26,15 +26,13 @@ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| void glibtop_close (void); | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| void glibtop_close_r (glibtop *server); | ||||
|  | ||||
| void glibtop_close_s (glibtop *server); | ||||
| void glibtop_close_p (glibtop *server); | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -28,7 +28,7 @@ | ||||
| #include <glibtop/sysdeps.h> | ||||
| #include <glibtop/union.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_CMND_QUIT		0 | ||||
| #define GLIBTOP_CMND_SYSDEPS		1 | ||||
| @@ -57,10 +57,8 @@ G_BEGIN_DECLS | ||||
| #define GLIBTOP_CMND_FSUSAGE		21 | ||||
| #define GLIBTOP_CMND_NETLOAD		22 | ||||
| #define GLIBTOP_CMND_PPP		23 | ||||
| #define GLIBTOP_CMND_NETLIST		24 | ||||
| #define GLIBTOP_CMND_PROC_OPEN_FILES	25 | ||||
|  | ||||
| #define GLIBTOP_MAX_CMND		26 | ||||
| #define GLIBTOP_MAX_CMND		24 | ||||
|  | ||||
| #define _GLIBTOP_PARAM_SIZE		16 | ||||
|  | ||||
| @@ -71,8 +69,8 @@ typedef union  _glibtop_response_union	glibtop_response_union; | ||||
|  | ||||
| struct _glibtop_command | ||||
| { | ||||
| 	guint64	command; | ||||
| 	guint64	size, data_size; | ||||
| 	u_int64_t	command; | ||||
| 	u_int64_t	size, data_size; | ||||
| 	char		parameter [_GLIBTOP_PARAM_SIZE]; | ||||
| }; | ||||
|  | ||||
| @@ -84,8 +82,8 @@ union _glibtop_response_union | ||||
|  | ||||
| struct _glibtop_response | ||||
| { | ||||
| 	gint64 offset; | ||||
| 	guint64 size, data_size; | ||||
| 	int64_t offset; | ||||
| 	u_int64_t size, data_size; | ||||
| 	glibtop_response_union u; | ||||
| }; | ||||
|  | ||||
| @@ -99,6 +97,6 @@ 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 | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_CPU_TOTAL	0 | ||||
| #define GLIBTOP_CPU_USER	1 | ||||
| @@ -41,16 +41,8 @@ G_BEGIN_DECLS | ||||
| #define GLIBTOP_XCPU_NICE	8 | ||||
| #define GLIBTOP_XCPU_SYS	9 | ||||
| #define GLIBTOP_XCPU_IDLE	10 | ||||
| #define GLIBTOP_XCPU_FLAGS	11 | ||||
|  | ||||
| #define GLIBTOP_CPU_IOWAIT	12 | ||||
| #define GLIBTOP_CPU_IRQ		13 | ||||
| #define GLIBTOP_CPU_SOFTIRQ	14 | ||||
| #define GLIBTOP_XCPU_IOWAIT	15 | ||||
| #define GLIBTOP_XCPU_IRQ	16 | ||||
| #define GLIBTOP_XCPU_SOFTIRQ	17 | ||||
|  | ||||
| #define GLIBTOP_MAX_CPU		18 | ||||
| #define GLIBTOP_MAX_CPU		11 | ||||
|  | ||||
| /* Nobody should really be using more than 4 processors. */ | ||||
| #define GLIBTOP_NCPU		4 | ||||
| @@ -59,28 +51,21 @@ typedef struct _glibtop_cpu	glibtop_cpu; | ||||
|  | ||||
| struct _glibtop_cpu | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		total,				/* GLIBTOP_CPU_TOTAL		*/ | ||||
| 		user,				/* GLIBTOP_CPU_USER		*/ | ||||
| 		nice,				/* GLIBTOP_CPU_NICE		*/ | ||||
| 		sys,				/* GLIBTOP_CPU_SYS		*/ | ||||
| 		idle,				/* GLIBTOP_CPU_IDLE		*/ | ||||
| 		iowait,				/* GLIBTOP_CPU_IOWAIT		*/ | ||||
| 		irq,				/* GLIBTOP_CPU_IRQ		*/ | ||||
| 		softirq,			/* GLIBTOP_CPU_SOFTIRQ		*/ | ||||
| 		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_iowait [GLIBTOP_NCPU],	/* GLIBTOP_XCPU_IOWAIT		*/ | ||||
| 		xcpu_irq [GLIBTOP_NCPU],	/* GLIBTOP_XCPU_IRQ		*/ | ||||
| 		xcpu_softirq  [GLIBTOP_NCPU],	/* GLIBTOP_XCPU_SOFTIRQ		*/ | ||||
| 		xcpu_flags;	                /* GLIBTOP_XCPU_IDLE		*/ | ||||
| 		xcpu_idle [GLIBTOP_NCPU];	/* GLIBTOP_XCPU_IDLE		*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_cpu(glibtop_cpu *buf); | ||||
| #define glibtop_get_cpu(cpu)	glibtop_get_cpu_l(glibtop_global_server, cpu) | ||||
|  | ||||
| #if GLIBTOP_SUID_CPU | ||||
| #define glibtop_get_cpu_r	glibtop_get_cpu_p | ||||
| @@ -98,7 +83,17 @@ void glibtop_init_cpu_s (glibtop *server); | ||||
| void glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_cpu []; | ||||
| extern const unsigned glibtop_types_cpu []; | ||||
| extern const char *glibtop_labels_cpu []; | ||||
| extern const char *glibtop_descriptions_cpu []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -21,33 +21,116 @@ | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * This is private API | ||||
|  */ | ||||
|  | ||||
| #ifndef __GLIBTOP_ERROR_H__ | ||||
| #define __GLIBTOP_ERROR_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| void glibtop_error_vr (glibtop *server, const char *format, va_list args) G_GNUC_INTERNAL G_GNUC_NORETURN; | ||||
| void glibtop_warn_vr (glibtop *server, const char *format, va_list args) G_GNUC_INTERNAL; | ||||
| void glibtop_error_io_vr (glibtop *server, const char *format, int, va_list args) G_GNUC_INTERNAL G_GNUC_NORETURN; | ||||
| void glibtop_warn_io_vr (glibtop *server, const char *format, int, va_list args) G_GNUC_INTERNAL; | ||||
| #ifndef G_GNUC_UNUSED | ||||
| #if	__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) | ||||
| #define G_GNUC_UNUSED				\ | ||||
|   __attribute__((unused)) | ||||
| #else	/* !__GNUC__ */ | ||||
| #define	G_GNUC_UNUSED | ||||
| #endif	/* !__GNUC__ */ | ||||
| #endif /* defined G_GNUC_UNUSED */ | ||||
|  | ||||
| void glibtop_error_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN; | ||||
| void glibtop_warn_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3); | ||||
| void glibtop_error_io_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN; | ||||
| void glibtop_warn_io_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3); | ||||
| void glibtop_error_vr (glibtop *server, char *format, va_list args); | ||||
| void glibtop_warn_vr (glibtop *server, char *format, va_list args); | ||||
|  | ||||
| void glibtop_error (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN; | ||||
| void glibtop_warn (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2); | ||||
| void glibtop_error_io (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN; | ||||
| void glibtop_warn_io (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2); | ||||
| void glibtop_error_io_vr (glibtop *server, char *format, int, va_list args); | ||||
| void glibtop_warn_io_vr (glibtop *server, char *format, int, va_list args); | ||||
|  | ||||
| G_END_DECLS | ||||
| static void G_GNUC_UNUSED | ||||
| glibtop_error_r (glibtop *server, char *format, ...) | ||||
| { | ||||
| 	va_list args; | ||||
|  | ||||
| 	va_start (args, format); | ||||
| 	glibtop_error_vr (server, format, args); | ||||
| 	va_end (args); | ||||
| } | ||||
|  | ||||
| static void G_GNUC_UNUSED | ||||
| glibtop_warn_r (glibtop *server, char *format, ...) | ||||
| { | ||||
| 	va_list args; | ||||
|  | ||||
| 	va_start (args, format); | ||||
| 	glibtop_warn_vr (server, format, args); | ||||
| 	va_end (args); | ||||
| } | ||||
|  | ||||
| static void G_GNUC_UNUSED | ||||
| glibtop_error_io_r (glibtop *server, char *format, ...) | ||||
| { | ||||
| 	va_list args; | ||||
|  | ||||
| 	va_start (args, format); | ||||
| 	glibtop_error_io_vr (server, format, errno, args); | ||||
| 	va_end (args); | ||||
| } | ||||
|  | ||||
| static void G_GNUC_UNUSED | ||||
| glibtop_warn_io_r (glibtop *server, char *format, ...) | ||||
| { | ||||
| 	va_list args; | ||||
|  | ||||
| 	va_start (args, format); | ||||
| 	glibtop_warn_io_vr (server, format, errno, args); | ||||
| 	va_end (args); | ||||
| } | ||||
|  | ||||
| #ifdef  __GNUC__ | ||||
|  | ||||
| #define glibtop_error(p1, args...)	glibtop_error_r(glibtop_global_server , p1 , ## args) | ||||
| #define glibtop_warn(p1, args...)	glibtop_warn_r(glibtop_global_server , p1 , ## args) | ||||
|  | ||||
| #define glibtop_error_io(p1, args...)	glibtop_error_io_r(glibtop_global_server , p1 , ## args) | ||||
| #define glibtop_warn_io(p1, args...)	glibtop_warn_io_r(glibtop_global_server , p1 , ## args) | ||||
|  | ||||
| #else /* no __GNUC__ */ | ||||
|  | ||||
| static void | ||||
| glibtop_error (char *format, ...) | ||||
| { | ||||
| 	va_list args; | ||||
| 	va_start (args, format); | ||||
| 	glibtop_error_vr (glibtop_global_server, format, args); | ||||
| 	va_end (args); | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_warn (char *format, ...) | ||||
| { | ||||
| 	va_list args; | ||||
| 	va_start (args, format); | ||||
| 	glibtop_warn_vr (glibtop_global_server, format, args); | ||||
| 	va_end (args); | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_error_io (char *format, ...) | ||||
| { | ||||
| 	va_list args; | ||||
| 	va_start (args, format); | ||||
| 	glibtop_error_io_vr (glibtop_global_server, format, errno, args); | ||||
| 	va_end (args); | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_warn_io (char *format, ...) | ||||
| { | ||||
| 	va_list args; | ||||
| 	va_start (args, format); | ||||
| 	glibtop_warn_io_vr (glibtop_global_server, format, errno, args); | ||||
| 	va_end (args); | ||||
| } | ||||
|  | ||||
| #endif /* no __GNUC__ */ | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| /* $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. | ||||
|  | ||||
| @@ -26,41 +27,46 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_FSUSAGE_BLOCKS		0 | ||||
| #define GLIBTOP_FSUSAGE_BFREE		1 | ||||
| #define GLIBTOP_FSUSAGE_BAVAIL		2 | ||||
| #define GLIBTOP_FSUSAGE_FILES		3 | ||||
| #define GLIBTOP_FSUSAGE_FFREE		4 | ||||
| #define GLIBTOP_FSUSAGE_BLOCK_SIZE	5 | ||||
| #define GLIBTOP_FSUSAGE_READ           6 | ||||
| #define GLIBTOP_FSUSAGE_WRITE          7 | ||||
| #define GLIBTOP_MAX_FSUSAGE		8 | ||||
|  | ||||
| #define GLIBTOP_MAX_FSUSAGE		5 | ||||
|  | ||||
| typedef struct _glibtop_fsusage		glibtop_fsusage; | ||||
|  | ||||
| struct _glibtop_fsusage | ||||
| { | ||||
| 	guint64	flags, | ||||
| 		blocks,		/* Total number of blocks. */ | ||||
| 	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. */ | ||||
| 	guint32	block_size;	/* Size of a block in bytes. */ | ||||
| 	guint64 read, write;    /* Total blocks read and written */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_fsusage(glibtop_fsusage *buf, const char *mount_dir); | ||||
| #define glibtop_get_fsusage(fsusage,disk)	glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk) | ||||
|  | ||||
| #define glibtop_get_fsusage_r		glibtop_get_fsusage_s | ||||
|  | ||||
| void glibtop_get_fsusage_l (glibtop *server, glibtop_fsusage *buf, const char *mount_dir); | ||||
| void glibtop_get_fsusage_s (glibtop *server, glibtop_fsusage *buf, const char *mount_dir); | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_fsusage []; | ||||
| extern const unsigned glibtop_types_fsusage []; | ||||
| extern const char *glibtop_labels_fsusage []; | ||||
| extern const char *glibtop_descriptions_fsusage []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -1,102 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_BACKEND_INFO_H__ | ||||
| #define __GLIBTOP_BACKEND_INFO_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glibtop/glibtop-server.h> | ||||
|  | ||||
| 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_call_vector	glibtop_call_vector; | ||||
|  | ||||
| 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 | ||||
| { | ||||
|     const char *name; | ||||
|     glibtop_backend_open_func_t open; | ||||
|     glibtop_backend_close_func_t close; | ||||
|     glibtop_call_vector *call_vector; | ||||
| }; | ||||
|  | ||||
| #ifdef _IN_LIBGTOP | ||||
|  | ||||
| #include <gmodule.h> | ||||
|  | ||||
| /* private structure */ | ||||
| struct _glibtop_backend_module | ||||
| { | ||||
|     int refcount; | ||||
|     GModule *module; | ||||
|     GSList *extra_modules; | ||||
| }; | ||||
|  | ||||
| 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; | ||||
|  | ||||
|     /* private pointer */ | ||||
|     glibtop_backend_module *_priv; | ||||
| }; | ||||
|  | ||||
| #endif /* _IN_LIBGTOP */ | ||||
|  | ||||
| long | ||||
| glibtop_register_backend (glibtop_backend_entry *entry); | ||||
|  | ||||
| void | ||||
| glibtop_unregister_backend (long id); | ||||
|  | ||||
| glibtop_backend_entry * | ||||
| glibtop_backend_by_id (long id); | ||||
|  | ||||
| glibtop_backend_entry * | ||||
| glibtop_backend_by_name (const char *backend_name); | ||||
|  | ||||
| void | ||||
| glibtop_init_backends (void); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,85 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 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 | ||||
| @@ -1,97 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 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 | ||||
| @@ -1,70 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 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; | ||||
|  | ||||
| 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 | ||||
| @@ -24,14 +24,43 @@ | ||||
| #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 | ||||
| @@ -45,6 +74,27 @@ | ||||
| # 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> | ||||
|  | ||||
| @@ -74,13 +124,18 @@ | ||||
|  | ||||
| #ifdef _IN_LIBGTOP | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #ifndef _ | ||||
| #define _(String) dgettext (PACKAGE, String) | ||||
| #define N_(String) (String) | ||||
| #endif | ||||
|  | ||||
| #ifndef HAVE_STRERROR | ||||
| char *strerror (int errno); | ||||
| #endif | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif /* _IN_LIBGTOP */ | ||||
|  | ||||
|   | ||||
| @@ -9,15 +9,15 @@ | ||||
|  | ||||
|  Copyright (C) 1989 Free Software Foundation, Inc. | ||||
|  | ||||
|  Author: Andy Norman (ange@hplb.hpl.hp.com), based on | ||||
|  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 | ||||
| /* HISTORY  | ||||
|  * 11-Nov-1990		bristor@simba	 | ||||
|  *    Added EOT stuff. | ||||
|  */ | ||||
|  | ||||
| @@ -42,6 +42,7 @@ static char header_rcsid [] = "!Header: gnuserv.h,v 2.4 95/02/16 11:58:11 arup a | ||||
| /* gnuserv should not be compiled using SOCKS */ | ||||
| #define DO_NOT_SOCKSIFY | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/error.h> | ||||
| #undef read | ||||
| #undef write | ||||
| #undef open | ||||
| @@ -75,7 +76,7 @@ static char header_rcsid [] = "!Header: gnuserv.h,v 2.4 95/02/16 11:58:11 arup a | ||||
|  */ | ||||
|  | ||||
| #if 0 | ||||
| #define MCOOKIE_SCREEN "42980"   /* screen # to use as the gnuserv cookie */ | ||||
| #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 */ | ||||
| @@ -105,7 +106,7 @@ static char header_rcsid [] = "!Header: gnuserv.h,v 2.4 95/02/16 11:58:11 arup a | ||||
|  * 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. | ||||
|  * what you want.  | ||||
|  */ | ||||
|  | ||||
| #if defined(INTERNET_DOMAIN_SOCKETS) || defined(UNIX_DOMAIN_SOCKETS) | ||||
|   | ||||
| @@ -1,11 +0,0 @@ | ||||
| #ifndef H_LIBGTOP_INIT_HOOKS_1122955666 | ||||
| #define H_LIBGTOP_INIT_HOOKS_1122955666 | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| typedef void (*glibtop_init_func_t)(glibtop *); | ||||
|  | ||||
| extern const glibtop_init_func_t _glibtop_init_hook_s[]; | ||||
| extern const glibtop_init_func_t _glibtop_init_hook_p[]; | ||||
|  | ||||
| #endif /* H_LIBGTOP_INIT_HOOKS_1122955666 */ | ||||
| @@ -31,7 +31,7 @@ | ||||
|  | ||||
| #define GLIBTOP_INODEDB_ALL		7 | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| typedef struct _glibtop_inodedb		glibtop_inodedb; | ||||
|  | ||||
| @@ -39,7 +39,7 @@ typedef struct _glibtop_inodedb_key	glibtop_inodedb_key; | ||||
|  | ||||
| struct _glibtop_inodedb_key | ||||
| { | ||||
| 	guint64 device, inode; | ||||
| 	u_int64_t device, inode; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_inodedb | ||||
| @@ -57,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, | ||||
| 			  guint64 device, guint64 inode); | ||||
| 			  u_int64_t device, u_int64_t inode); | ||||
|  | ||||
| void | ||||
| glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb); | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_LOADAVG_LOADAVG		0 | ||||
| #define GLIBTOP_LOADAVG_NR_RUNNING	1 | ||||
| @@ -40,14 +40,14 @@ typedef struct _glibtop_loadavg	glibtop_loadavg; | ||||
|  | ||||
| struct _glibtop_loadavg | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	u_int64_t flags; | ||||
| 	double loadavg [3];		/* GLIBTOP_LOADAVG_LOADAVG	*/ | ||||
| 	guint64 nr_running,		/* GLIBTOP_LOADAVG_NR_RUNNING	*/ | ||||
| 	u_int64_t nr_running,		/* GLIBTOP_LOADAVG_NR_RUNNING	*/ | ||||
| 		nr_tasks,		/* GLIBTOP_LOADAVG_NR_TASKS	*/ | ||||
| 		last_pid;		/* GLIBTOP_LOADAVG_LAST_PID	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_loadavg(glibtop_loadavg *buf); | ||||
| #define glibtop_get_loadavg(loadavg)	glibtop_get_loadavg_l(glibtop_global_server, loadavg) | ||||
|  | ||||
| #if GLIBTOP_SUID_LOADAVG | ||||
| #define glibtop_get_loadavg_r		glibtop_get_loadavg_p | ||||
| @@ -65,7 +65,17 @@ void glibtop_init_loadavg_s (glibtop *server); | ||||
| void glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_loadavg []; | ||||
| extern const unsigned glibtop_types_loadavg []; | ||||
| extern const char *glibtop_labels_loadavg []; | ||||
| extern const char *glibtop_descriptions_loadavg []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_MEM_TOTAL	0 | ||||
| #define GLIBTOP_MEM_USED	1 | ||||
| @@ -44,7 +44,7 @@ typedef struct _glibtop_mem	glibtop_mem; | ||||
|  | ||||
| struct _glibtop_mem | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		total,		/* GLIBTOP_MEM_TOTAL	*/ | ||||
| 		used,		/* GLIBTOP_MEM_USED	*/ | ||||
| 		free,		/* GLIBTOP_MEM_FREE	*/ | ||||
| @@ -55,7 +55,7 @@ struct _glibtop_mem | ||||
| 		locked;		/* GLIBTOP_MEM_LOCKED	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_mem(glibtop_mem *buf); | ||||
| #define glibtop_get_mem(mem)	glibtop_get_mem_l(glibtop_global_server, mem) | ||||
|  | ||||
| #if GLIBTOP_SUID_MEM | ||||
| #define glibtop_get_mem_r		glibtop_get_mem_p | ||||
| @@ -73,7 +73,17 @@ void glibtop_init_mem_s (glibtop *server); | ||||
| void glibtop_get_mem_s (glibtop *server, glibtop_mem *buf); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_mem []; | ||||
| extern const unsigned glibtop_types_mem []; | ||||
| extern const char *glibtop_labels_mem []; | ||||
| extern const char *glibtop_descriptions_mem []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_MOUNTLIST_NUMBER	0 | ||||
| #define GLIBTOP_MOUNTLIST_TOTAL		1 | ||||
| @@ -41,7 +41,7 @@ typedef struct _glibtop_mountlist	glibtop_mountlist; | ||||
|  | ||||
| struct _glibtop_mountentry | ||||
| { | ||||
| 	guint64 dev; | ||||
| 	u_int64_t dev; | ||||
| 	char devname [GLIBTOP_MOUNTENTRY_LEN+1]; | ||||
| 	char mountdir [GLIBTOP_MOUNTENTRY_LEN+1]; | ||||
| 	char type [GLIBTOP_MOUNTENTRY_LEN+1]; | ||||
| @@ -49,14 +49,13 @@ struct _glibtop_mountentry | ||||
|  | ||||
| struct _glibtop_mountlist | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		number,			/* GLIBTOP_MOUNTLIST_NUMBER	*/ | ||||
| 		total,			/* GLIBTOP_MOUNTLIST_TOTAL	*/ | ||||
| 		size;			/* GLIBTOP_MOUNTLIST_SIZE	*/ | ||||
| }; | ||||
|  | ||||
| glibtop_mountentry * | ||||
| glibtop_get_mountlist(glibtop_mountlist *buf, int all_fs); | ||||
| #define glibtop_get_mountlist(mountlist,all_fs)	glibtop_get_mountlist_l(glibtop_global_server, mountlist, all_fs) | ||||
|  | ||||
| #define glibtop_get_mountlist_r		glibtop_get_mountlist_s | ||||
|  | ||||
| @@ -66,7 +65,17 @@ glibtop_get_mountlist_l (glibtop *server, glibtop_mountlist *buf, int all_fs); | ||||
| glibtop_mountentry * | ||||
| glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs); | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_mountlist []; | ||||
| extern const unsigned glibtop_types_mountlist []; | ||||
| extern const char *glibtop_labels_mountlist []; | ||||
| extern const char *glibtop_descriptions_mountlist []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_IPC_MSGPOOL	0 | ||||
| #define GLIBTOP_IPC_MSGMAP	1 | ||||
| @@ -43,7 +43,7 @@ typedef struct _glibtop_msg_limits	glibtop_msg_limits; | ||||
|  | ||||
| struct _glibtop_msg_limits | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		msgpool,	/* GLIBTOP_IPC_MSGPOOL	*/ | ||||
| 		msgmap,		/* GLIBTOP_IPC_MSGMAP	*/ | ||||
| 		msgmax,		/* GLIBTOP_IPC_MSGMAX	*/ | ||||
| @@ -53,7 +53,7 @@ struct _glibtop_msg_limits | ||||
| 		msgtql;		/* GLIBTOP_IPC_MSGTQL	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_msg_limits(glibtop_msg_limits *buf); | ||||
| #define glibtop_get_msg_limits(msg)	glibtop_get_msg_limits_l(glibtop_global_server, msg) | ||||
|  | ||||
| #if GLIBTOP_SUID_MSG_LIMITS | ||||
| #define glibtop_get_msg_limits_r	glibtop_get_msg_limits_p | ||||
| @@ -71,8 +71,18 @@ void glibtop_init_msg_limits_s (glibtop *server); | ||||
| void glibtop_get_msg_limits_s (glibtop *server, glibtop_msg_limits *buf); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_msg_limits []; | ||||
| extern const unsigned glibtop_types_msg_limits []; | ||||
| extern const char *glibtop_labels_msg_limits []; | ||||
| extern const char *glibtop_descriptions_msg_limits []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -1,61 +0,0 @@ | ||||
| /* Copyright (C) 2004 Benoît Dejean | ||||
|    This file is part of LibGTop 2.0. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_NETLIST_H__ | ||||
| #define __GLIBTOP_NETLIST_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_NETLIST_NUMBER		0 | ||||
|  | ||||
| #define GLIBTOP_MAX_NETLIST		1 | ||||
|  | ||||
| typedef struct _glibtop_netlist	glibtop_netlist; | ||||
|  | ||||
| struct _glibtop_netlist | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	guint32 number; | ||||
| }; | ||||
|  | ||||
| char** glibtop_get_netlist(glibtop_netlist *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_NETLIST | ||||
| #define glibtop_get_netlist_r		glibtop_get_netlist_p | ||||
| #else | ||||
| #define glibtop_get_netlist_r		glibtop_get_netlist_s | ||||
| #endif | ||||
|  | ||||
| char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_NETLIST | ||||
| void glibtop_init_netlist_p (glibtop *server); | ||||
| char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf); | ||||
| #else | ||||
| void glibtop_init_netlist_s (glibtop *server); | ||||
| char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_NETLOAD_IF_FLAGS	0 | ||||
| #define GLIBTOP_NETLOAD_MTU		1 | ||||
| @@ -43,12 +43,8 @@ G_BEGIN_DECLS | ||||
| #define GLIBTOP_NETLOAD_ERRORS_OUT	11 | ||||
| #define GLIBTOP_NETLOAD_ERRORS_TOTAL	12 | ||||
| #define GLIBTOP_NETLOAD_COLLISIONS	13 | ||||
| #define GLIBTOP_NETLOAD_ADDRESS6	14 | ||||
| #define GLIBTOP_NETLOAD_PREFIX6		15 | ||||
| #define GLIBTOP_NETLOAD_SCOPE6		16 | ||||
| #define GLIBTOP_NETLOAD_HWADDRESS	17 | ||||
|  | ||||
| #define GLIBTOP_MAX_NETLOAD		18 | ||||
| #define GLIBTOP_MAX_NETLOAD		14 | ||||
|  | ||||
| typedef struct _glibtop_netload	glibtop_netload; | ||||
|  | ||||
| @@ -71,25 +67,14 @@ enum { | ||||
| 	GLIBTOP_IF_FLAGS_MULTICAST | ||||
| }; | ||||
|  | ||||
| enum GLIBTOP_IF_IN6_SCOPE | ||||
| { | ||||
| 	GLIBTOP_IF_IN6_SCOPE_UNKNOWN = 0, | ||||
| 	GLIBTOP_IF_IN6_SCOPE_LINK    = 1, | ||||
| 	GLIBTOP_IF_IN6_SCOPE_SITE    = 2, | ||||
| 	GLIBTOP_IF_IN6_SCOPE_GLOBAL  = 4, | ||||
| 	GLIBTOP_IF_IN6_SCOPE_HOST    = 8 | ||||
| }; | ||||
|  | ||||
| struct _glibtop_netload | ||||
| { | ||||
| 	guint64	flags, | ||||
| 		if_flags;		/* GLIBTOP_NETLOAD_IF_FLAGS	*/ | ||||
|  | ||||
| 	guint32	mtu,			/* GLIBTOP_NETLOAD_MTU		*/ | ||||
| 	u_int64_t	flags, | ||||
| 		if_flags,		/* GLIBTOP_NETLOAD_IF_FLAGS	*/ | ||||
| 		mtu,			/* GLIBTOP_NETLOAD_MTU		*/ | ||||
| 		subnet,			/* GLIBTOP_NETLOAD_SUBNET	*/ | ||||
| 		address;		/* GLIBTOP_NETLOAD_ADDRESS	*/ | ||||
|  | ||||
| 	guint64	packets_in,		/* GLIBTOP_NETLOAD_PACKETS_IN	*/ | ||||
| 		address,		/* GLIBTOP_NETLOAD_ADDRESS	*/ | ||||
| 		packets_in,		/* GLIBTOP_NETLOAD_PACKETS_IN	*/ | ||||
| 		packets_out,		/* GLIBTOP_NETLOAD_PACKETS_OUT	*/ | ||||
| 		packets_total,		/* GLIBTOP_NETLOAD_PACKETS_TOTAL*/ | ||||
| 		bytes_in,		/* GLIBTOP_NETLOAD_BYTES_IN	*/ | ||||
| @@ -99,15 +84,9 @@ struct _glibtop_netload | ||||
| 		errors_out,		/* GLIBTOP_NETLOAD_ERRORS_OUT	*/ | ||||
| 		errors_total,		/* GLIBTOP_NETLOAD_ERRORS_TOTAL	*/ | ||||
| 		collisions;		/* GLIBTOP_NETLOAD_COLLISIONS	*/ | ||||
|  | ||||
| 	guint8 address6[16];		/* GLIBTOP_NETLOAD_ADDRESS6     */ | ||||
| 	guint8 prefix6[16];		/* GLIBTOP_NETLOAD_PREXIF6      */ | ||||
| 	guint8 scope6;			/* GLIBTOP_NETLOAD_SCOPE6       */ | ||||
|  | ||||
| 	guint8 hwaddress[8];		/* GLIBTOP_NETLOAD_HWADDRESS    */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_netload(glibtop_netload *buf, const char *interface); | ||||
| #define glibtop_get_netload(netload,interface)	glibtop_get_netload_l(glibtop_global_server, netload, interface) | ||||
|  | ||||
| #if GLIBTOP_SUID_NETLOAD | ||||
| #define glibtop_get_netload_r	glibtop_get_netload_p | ||||
| @@ -125,7 +104,17 @@ void glibtop_init_netload_s (glibtop *server); | ||||
| void glibtop_get_netload_s (glibtop *server, glibtop_netload *buf, const char *interface); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_netload []; | ||||
| extern const unsigned glibtop_types_netload []; | ||||
| extern const char *glibtop_labels_netload []; | ||||
| extern const char *glibtop_descriptions_netload []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -23,8 +23,10 @@ | ||||
| #define __GLIBTOP_OPEN_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/read.h> | ||||
| #include <glibtop/error.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define _GLIBTOP_INIT_STATE_INIT	0x10000 | ||||
| #define _GLIBTOP_INIT_STATE_OPEN	0x20000 | ||||
| @@ -66,6 +68,6 @@ glibtop_open_s (glibtop *server, const char *program_name, | ||||
| 		const unsigned long features, const unsigned flags); | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -23,8 +23,9 @@ | ||||
| #define __GLIBTOP_PARAMETER_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PARAM_METHOD		1 | ||||
| #define GLIBTOP_PARAM_FEATURES		2 | ||||
| @@ -45,6 +46,6 @@ void | ||||
| glibtop_set_parameter_l (glibtop *server, const unsigned parameter, | ||||
| 			 const void *data_ptr, size_t data_size); | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,10 +27,10 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PPP_STATE	0 | ||||
| #define GLIBTOP_PPP_BYTES_IN	1 | ||||
| #define GLIBTOP_PPP_BYTES_IN	1	 | ||||
| #define GLIBTOP_PPP_BYTES_OUT	2 | ||||
|  | ||||
| #define GLIBTOP_MAX_PPP		3 | ||||
| @@ -45,13 +45,13 @@ enum { | ||||
|  | ||||
| struct _glibtop_ppp | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		state,			/* GLIBTOP_PPP_STATE		*/ | ||||
| 		bytes_in,		/* GLIBTOP_PPP_BYTES_IN		*/ | ||||
| 		bytes_out;		/* GLIBTOP_PPP_BYTES_OUT	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_ppp(glibtop_ppp *buf, unsigned short device); | ||||
| #define glibtop_get_ppp(ppp,device)	glibtop_get_ppp_l(glibtop_global_server, ppp, device) | ||||
|  | ||||
| #if GLIBTOP_SUID_PPP | ||||
| #define glibtop_get_ppp_r	glibtop_get_ppp_p | ||||
| @@ -69,7 +69,17 @@ void glibtop_init_ppp_s (glibtop *server); | ||||
| void glibtop_get_ppp_s (glibtop *server, glibtop_ppp *buf, unsigned short device); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_ppp []; | ||||
| extern const unsigned glibtop_types_ppp []; | ||||
| extern const char *glibtop_labels_ppp []; | ||||
| extern const char *glibtop_descriptions_ppp []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_ARGS_SIZE		0 | ||||
|  | ||||
| @@ -37,54 +37,47 @@ typedef struct _glibtop_proc_args	glibtop_proc_args; | ||||
|  | ||||
| struct _glibtop_proc_args | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		size;			/* GLIBTOP_PROC_ARGS_SIZE	*/ | ||||
| }; | ||||
|  | ||||
| #define glibtop_get_proc_args(proc_args,pid,max_len) glibtop_get_proc_args_l(glibtop_global_server, proc_args, pid, max_len) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_ARGS | ||||
| #define glibtop_get_proc_args_r		glibtop_get_proc_args_p | ||||
| #else | ||||
| #define glibtop_get_proc_args_r		glibtop_get_proc_args_s | ||||
| #endif | ||||
|  | ||||
| char * | ||||
| glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf, | ||||
| 			 pid_t pid, unsigned max_len); | ||||
|  | ||||
| char * | ||||
| glibtop_get_proc_args (glibtop_proc_args *buf, pid_t pid, unsigned max_len); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_ARGS | ||||
| void glibtop_init_proc_args_p (glibtop *server); | ||||
|  | ||||
| # define glibtop_get_proc_args_r		glibtop_get_proc_args_p | ||||
|  | ||||
|   void glibtop_init_proc_args_p (glibtop *server); | ||||
|  | ||||
|   char * | ||||
|   glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf, | ||||
| 			   pid_t pid, unsigned max_len); | ||||
|  | ||||
|  | ||||
| #else /* !GLIBTOP_SUID_PROC_ARGS */ | ||||
|  | ||||
| # define glibtop_get_proc_args_r		glibtop_get_proc_args_s | ||||
|  | ||||
|   void glibtop_init_proc_args_s (glibtop *server); | ||||
|  | ||||
|   char * | ||||
|   glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf, | ||||
| 			   pid_t pid, unsigned max_len); | ||||
| #endif /* GLIBTOP_SUID_PROC_ARGS */ | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * NEW functions | ||||
|  */ | ||||
|  | ||||
| char ** | ||||
| glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf, | ||||
| char * | ||||
| glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf, | ||||
| 			 pid_t pid, unsigned max_len); | ||||
| #else | ||||
| void glibtop_init_proc_args_s (glibtop *server); | ||||
|  | ||||
| char ** | ||||
| glibtop_get_proc_argv (glibtop_proc_args *buf, pid_t pid, unsigned max_len); | ||||
| char * | ||||
| glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf, | ||||
| 			 pid_t pid, unsigned max_len); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proc_args []; | ||||
| extern const unsigned glibtop_types_proc_args []; | ||||
| extern const char *glibtop_labels_proc_args []; | ||||
| extern const char *glibtop_descriptions_proc_args []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_KERNEL_K_FLAGS	0 | ||||
| #define GLIBTOP_PROC_KERNEL_MIN_FLT	1 | ||||
| @@ -47,8 +47,8 @@ typedef struct _glibtop_proc_kernel	glibtop_proc_kernel; | ||||
|  | ||||
| struct _glibtop_proc_kernel | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	guint64 k_flags,	/* kernel flags for the process */ | ||||
| 	u_int64_t flags; | ||||
| 	u_int64_t k_flags,	/* kernel flags for the process */ | ||||
| 		min_flt,	/* number of minor page faults since | ||||
| 				 * process start */ | ||||
| 		maj_flt,	/* number of major page faults since | ||||
| @@ -64,7 +64,7 @@ struct _glibtop_proc_kernel | ||||
| 	char wchan [40]; | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_kernel(glibtop_proc_kernel *buf, pid_t pid); | ||||
| #define glibtop_get_proc_kernel(p1, p2)	glibtop_get_proc_kernel_l(glibtop_global_server, p1, p2) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_KERNEL | ||||
| #define glibtop_get_proc_kernel_r	glibtop_get_proc_kernel_p | ||||
| @@ -82,7 +82,17 @@ void glibtop_init_proc_kernel_s (glibtop *server); | ||||
| void glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proc_kernel []; | ||||
| extern const unsigned glibtop_types_proc_kernel []; | ||||
| extern const char *glibtop_labels_proc_kernel []; | ||||
| extern const char *glibtop_descriptions_proc_kernel []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROCLIST_NUMBER	0 | ||||
| #define GLIBTOP_PROCLIST_TOTAL	1 | ||||
| @@ -56,14 +56,13 @@ typedef struct _glibtop_proclist	glibtop_proclist; | ||||
|  | ||||
| struct _glibtop_proclist | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		number,			/* GLIBTOP_PROCLIST_NUMBER	*/ | ||||
| 		total,			/* GLIBTOP_PROCLIST_TOTAL	*/ | ||||
| 		size;			/* GLIBTOP_PROCLIST_SIZE	*/ | ||||
| }; | ||||
|  | ||||
| unsigned * | ||||
| glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg); | ||||
| #define glibtop_get_proclist(proclist,which,arg) glibtop_get_proclist_l(glibtop_global_server, proclist, which, arg) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROCLIST | ||||
| #define glibtop_get_proclist_r		glibtop_get_proclist_p | ||||
| @@ -73,23 +72,33 @@ glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg); | ||||
|  | ||||
| unsigned * | ||||
| glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf, | ||||
| 			gint64 which, gint64 arg); | ||||
| 			int64_t which, int64_t arg); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROCLIST | ||||
| void glibtop_init_proclist_p (glibtop *server); | ||||
|  | ||||
| unsigned * | ||||
| glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf, | ||||
| 			gint64 which, gint64 arg); | ||||
| 			int64_t which, int64_t arg); | ||||
| #else | ||||
| void glibtop_init_proclist_s (glibtop *server); | ||||
|  | ||||
| unsigned * | ||||
| glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf, | ||||
| 			gint64 which, gint64 arg); | ||||
| 			int64_t which, int64_t arg); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proclist []; | ||||
| extern const unsigned glibtop_types_proclist []; | ||||
| extern const char *glibtop_labels_proclist []; | ||||
| extern const char *glibtop_descriptions_proclist []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_MAP_NUMBER		0 | ||||
| #define GLIBTOP_PROC_MAP_TOTAL		1 | ||||
| @@ -35,15 +35,15 @@ G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_MAP		3 | ||||
|  | ||||
| #define GLIBTOP_MAP_ENTRY_START		0 | ||||
| #define GLIBTOP_MAP_ENTRY_END		1 | ||||
| #define GLIBTOP_MAP_ENTRY_OFFSET	2 | ||||
| #define GLIBTOP_MAP_ENTRY_PERM		3 | ||||
| #define GLIBTOP_MAP_ENTRY_INODE		4 | ||||
| #define GLIBTOP_MAP_ENTRY_DEVICE	5 | ||||
| #define GLIBTOP_MAP_ENTRY_FILENAME	6 | ||||
| #define GLIBTOP_MAP_ENTRY_START		1 | ||||
| #define GLIBTOP_MAP_ENTRY_END		2 | ||||
| #define GLIBTOP_MAP_ENTRY_OFFSET	3 | ||||
| #define GLIBTOP_MAP_ENTRY_PERM		4 | ||||
| #define GLIBTOP_MAP_ENTRY_INODE		5 | ||||
| #define GLIBTOP_MAP_ENTRY_DEVICE	6 | ||||
| #define GLIBTOP_MAP_ENTRY_FILENAME	7 | ||||
|  | ||||
| #define GLIBTOP_MAX_MAP_ENTRY		7 | ||||
| #define GLIBTOP_MAX_MAP_ENTRY		8 | ||||
|  | ||||
| #define GLIBTOP_MAP_FILENAME_LEN	215 | ||||
|  | ||||
| @@ -59,20 +59,19 @@ typedef struct _glibtop_proc_map	glibtop_proc_map; | ||||
|  | ||||
| struct _glibtop_map_entry | ||||
| { | ||||
| 	guint64 flags, start, end, offset, perm, inode, device; | ||||
| 	u_int64_t flags, start, end, offset, perm, inode, device; | ||||
| 	char filename [GLIBTOP_MAP_FILENAME_LEN+1]; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_proc_map | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		number,			/* GLIBTOP_PROC_MAP_NUMBER	*/ | ||||
| 		total,			/* GLIBTOP_PROC_MAP_TOTAL	*/ | ||||
| 		size;			/* GLIBTOP_PROC_MAP_SIZE	*/ | ||||
| }; | ||||
| glibtop_map_entry * | ||||
| glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid); | ||||
|  | ||||
| #define glibtop_get_proc_map(proc_map,pid) glibtop_get_proc_map_l(glibtop_global_server, proc_map, pid) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_MAP | ||||
| #define glibtop_get_proc_map_r		glibtop_get_proc_map_p | ||||
| @@ -95,7 +94,17 @@ glibtop_map_entry * | ||||
| glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proc_map []; | ||||
| extern const unsigned glibtop_types_proc_map []; | ||||
| extern const char *glibtop_labels_proc_map []; | ||||
| extern const char *glibtop_descriptions_proc_map []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_MEM_SIZE		0 | ||||
| #define GLIBTOP_PROC_MEM_VSIZE		1 | ||||
| @@ -44,7 +44,7 @@ typedef struct _glibtop_proc_mem	glibtop_proc_mem; | ||||
|  | ||||
| struct _glibtop_proc_mem | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		size,		/* total # of pages of memory */ | ||||
| 		vsize,		/* number of pages of virtual memory ... */ | ||||
| 		resident,	/* number of resident set | ||||
| @@ -55,7 +55,7 @@ struct _glibtop_proc_mem | ||||
| 				 * of the process; usually 2,147,483,647 */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid); | ||||
| #define glibtop_get_proc_mem(p1, p2)	glibtop_get_proc_mem_l(glibtop_global_server, p1, p2) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_MEM | ||||
| #define glibtop_get_proc_mem_r		glibtop_get_proc_mem_p | ||||
| @@ -73,7 +73,17 @@ void glibtop_init_proc_mem_s (glibtop *server); | ||||
| void glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proc_mem []; | ||||
| extern const unsigned glibtop_types_proc_mem []; | ||||
| extern const char *glibtop_labels_proc_mem []; | ||||
| extern const char *glibtop_descriptions_proc_mem []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -1,123 +0,0 @@ | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    Copyright (C) 2004 Nicolás Lichtmaier | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    Modified by Nicolás Lichtmaier to give open process files. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROC_OPEN_FILES_H__ | ||||
| #define __GLIBTOP_PROC_OPEN_FILES_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_OPEN_FILES_NUMBER		0 | ||||
| #define GLIBTOP_PROC_OPEN_FILES_TOTAL		1 | ||||
| #define GLIBTOP_PROC_OPEN_FILES_SIZE		2 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_OPEN_FILES		3 | ||||
|  | ||||
| #define GLIBTOP_FILE_ENTRY_FD				0 | ||||
| #define GLIBTOP_FILE_ENTRY_NAME				1 | ||||
| #define GLIBTOP_FILE_ENTRY_TYPE				2 | ||||
| #define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_HOST		3 | ||||
| #define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_PORT		4 | ||||
|  | ||||
| #define GLIBTOP_MAX_OPEN_FILE_ENTRY		5 | ||||
|  | ||||
| #define GLIBTOP_OPEN_FILENAME_LEN	215 | ||||
|  /* ready for IPv6 */ | ||||
| #define GLIBTOP_OPEN_DEST_HOST_LEN	46 | ||||
|  | ||||
| enum glibtop_file_type { | ||||
| 	GLIBTOP_FILE_TYPE_FILE		= 1, | ||||
| 	GLIBTOP_FILE_TYPE_PIPE		= 2, | ||||
| 	GLIBTOP_FILE_TYPE_INETSOCKET	= 4, | ||||
| 	GLIBTOP_FILE_TYPE_LOCALSOCKET	= 8 | ||||
| }; | ||||
|  | ||||
| typedef struct _glibtop_open_files_entry glibtop_open_files_entry; | ||||
|  | ||||
| typedef struct _glibtop_proc_open_files	glibtop_proc_open_files; | ||||
|  | ||||
| struct _glibtop_open_files_entry | ||||
| { | ||||
| 	int fd; | ||||
| 	guint16 type; /* An "enum glibtop_file_type" value. */ | ||||
| 	union { | ||||
| 		/* When type == GLIBTOP_FILE_TYPE_INETSOCKET */ | ||||
| 		struct { | ||||
| 			char dest_host[GLIBTOP_OPEN_DEST_HOST_LEN+1]; | ||||
| 			int dest_port; | ||||
| 		} sock; | ||||
|  | ||||
| 		/* When type == GLIBTOP_FILE_TYPE_FILE */ | ||||
| 		struct { | ||||
| 			char name[GLIBTOP_OPEN_FILENAME_LEN+1]; | ||||
| 		} file; | ||||
|  | ||||
| 		/* When type == GLIBTOP_FILE_TYPE_LOCALSOCKET */ | ||||
| 		struct { | ||||
| 			char name[GLIBTOP_OPEN_FILENAME_LEN+1]; | ||||
| 		} localsock; | ||||
|  | ||||
| 	} info; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_proc_open_files | ||||
| { | ||||
| 	guint64	flags, | ||||
| 		number,			/* GLIBTOP_PROC_OPEN_FILES_NUMBER */ | ||||
| 		total,			/* GLIBTOP_PROC_OPEN_FILES_TOTAL  */ | ||||
| 		size;			/* GLIBTOP_PROC_OPEN_FILES_SIZE   */ | ||||
| }; | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
| glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_FILE | ||||
| #define glibtop_get_proc_open_files_r		glibtop_get_proc_open_files_p | ||||
| #else | ||||
| #define glibtop_get_proc_open_files_r		glibtop_get_proc_open_files_s | ||||
| #endif | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
| glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_FILE | ||||
| void glibtop_init_proc_open_files_p (glibtop *server); | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
| glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); | ||||
| #else | ||||
| void glibtop_init_proc_open_files_s (glibtop *server); | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
| glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_SEGMENT_TEXT_RSS		0 | ||||
| #define GLIBTOP_PROC_SEGMENT_SHLIB_RSS		1 | ||||
| @@ -46,7 +46,7 @@ typedef struct _glibtop_proc_segment	glibtop_proc_segment; | ||||
|  | ||||
| struct _glibtop_proc_segment | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		text_rss,	/* text resident set size */ | ||||
| 		shlib_rss,	/* shared-lib resident set size */ | ||||
| 		data_rss,	/* data resident set size */ | ||||
| @@ -58,7 +58,7 @@ struct _glibtop_proc_segment | ||||
| 		start_stack;	/* address of the bottom of stack segment */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_segment(glibtop_proc_segment *buf, pid_t pid); | ||||
| #define glibtop_get_proc_segment(p1, p2)	glibtop_get_proc_segment_l(glibtop_global_server, p1, p2) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_SEGMENT | ||||
| #define glibtop_get_proc_segment_r	glibtop_get_proc_segment_p | ||||
| @@ -76,7 +76,17 @@ void glibtop_init_proc_segment_s (glibtop *server); | ||||
| void glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proc_segment []; | ||||
| extern const unsigned glibtop_types_proc_segment []; | ||||
| extern const char *glibtop_labels_proc_segment []; | ||||
| extern const char *glibtop_descriptions_proc_segment []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_SIGNAL_SIGNAL	0 | ||||
| #define GLIBTOP_PROC_SIGNAL_BLOCKED	1 | ||||
| @@ -42,14 +42,14 @@ typedef struct _glibtop_proc_signal	glibtop_proc_signal; | ||||
|  | ||||
| struct _glibtop_proc_signal | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		signal [2],		/* mask of pending signals */ | ||||
| 		blocked [2],		/* mask of blocked signals */ | ||||
| 		sigignore [2],		/* mask of ignored signals */ | ||||
| 		sigcatch [2];		/* mask of caught  signals */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_signal(glibtop_proc_signal *buf, pid_t pid); | ||||
| #define glibtop_get_proc_signal(p1, p2)	glibtop_get_proc_signal_l(glibtop_global_server, p1, p2) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_SIGNAL | ||||
| #define glibtop_get_proc_signal_r	glibtop_get_proc_signal_p | ||||
| @@ -67,7 +67,17 @@ void glibtop_init_proc_signal_s (glibtop *server); | ||||
| void glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proc_signal []; | ||||
| extern const unsigned glibtop_types_proc_signal []; | ||||
| extern const char *glibtop_labels_proc_signal []; | ||||
| extern const char *glibtop_descriptions_proc_signal []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,27 +27,14 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_STATE_CMD		0 | ||||
| #define GLIBTOP_PROC_STATE_STATE	1 | ||||
| #define GLIBTOP_PROC_STATE_UID		2 | ||||
| #define GLIBTOP_PROC_STATE_GID		3 | ||||
| #define GLIBTOP_PROC_STATE_RUID     4 | ||||
| #define GLIBTOP_PROC_STATE_RGID     5 | ||||
| #define GLIBTOP_PROC_STATE_HAS_CPU  6 | ||||
| #define GLIBTOP_PROC_STATE_PROCESSOR 7 | ||||
| #define GLIBTOP_PROC_STATE_LAST_PROCESSOR 8 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_STATE		9 | ||||
|  | ||||
| #define GLIBTOP_PROCESS_RUNNING                 1 | ||||
| #define GLIBTOP_PROCESS_INTERRUPTIBLE           2 | ||||
| #define GLIBTOP_PROCESS_UNINTERRUPTIBLE         4 | ||||
| #define GLIBTOP_PROCESS_ZOMBIE                  8 | ||||
| #define GLIBTOP_PROCESS_STOPPED                 16 | ||||
| #define GLIBTOP_PROCESS_SWAPPING                32 | ||||
| #define GLIBTOP_PROCESS_DEAD                    64 | ||||
| #define GLIBTOP_MAX_PROC_STATE		4 | ||||
|  | ||||
| typedef struct _glibtop_proc_state	glibtop_proc_state; | ||||
|  | ||||
| @@ -55,10 +42,10 @@ typedef struct _glibtop_proc_state	glibtop_proc_state; | ||||
|  | ||||
| struct _glibtop_proc_state | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	char cmd[40];		/* basename of executable file in | ||||
| 	u_int64_t flags; | ||||
| 	char cmd[40],		/* basename of executable file in  | ||||
| 				 * call to exec(2) */ | ||||
| 	unsigned state;		/* single-char code for process state | ||||
| 		state;		/* single-char code for process state | ||||
| 				 * (S=sleeping) */ | ||||
| 	/* NOTE: when porting the library, TRY HARD to implement the | ||||
| 	 *       following two fields. */ | ||||
| @@ -66,15 +53,10 @@ struct _glibtop_proc_state | ||||
| 	 *                   only to set the flags value for those two | ||||
| 	 *                   fields if their values are corrent ! */ | ||||
| 	int uid,		/* UID of process */ | ||||
| 		gid,		/* GID of process */ | ||||
|         ruid, | ||||
|         rgid; | ||||
|     int has_cpu, | ||||
|         processor, | ||||
|         last_processor; | ||||
| 		gid;		/* GID of process */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_state(glibtop_proc_state *buf, pid_t pid); | ||||
| #define glibtop_get_proc_state(p1, p2)	glibtop_get_proc_state_l(glibtop_global_server, p1, p2) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_STATE | ||||
| #define glibtop_get_proc_state_r	glibtop_get_proc_state_p | ||||
| @@ -91,8 +73,18 @@ void glibtop_get_proc_state_p (glibtop *server, glibtop_proc_state *buf, pid_t p | ||||
| void glibtop_init_proc_state_s (glibtop *server); | ||||
| void glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid); | ||||
| #endif | ||||
|       | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| G_END_DECLS | ||||
| extern const char *glibtop_names_proc_state []; | ||||
| extern const unsigned glibtop_types_proc_state []; | ||||
| extern const char *glibtop_labels_proc_state []; | ||||
| extern const char *glibtop_descriptions_proc_state []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -28,7 +28,7 @@ | ||||
| #include <glibtop/cpu.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_TIME_START_TIME	0 | ||||
| #define GLIBTOP_PROC_TIME_RTIME		1 | ||||
| @@ -50,15 +50,15 @@ typedef struct _glibtop_proc_time	glibtop_proc_time; | ||||
|  | ||||
| struct _glibtop_proc_time | ||||
| { | ||||
| 	guint64	flags, | ||||
| 		start_time,	/* start time of process -- | ||||
| 	u_int64_t	flags, | ||||
| 		start_time,	/* start time of process --  | ||||
| 				 * seconds since 1-1-70 */ | ||||
| 		rtime,		/* real time accumulated by process */ | ||||
| 		utime,		/* user-mode CPU time accumulated by process */ | ||||
| 		stime,		/* kernel-mode CPU time accumulated by process */ | ||||
| 		cutime,		/* cumulative utime of process and | ||||
| 		cutime,		/* cumulative utime of process and  | ||||
| 				 * reaped children */ | ||||
| 		cstime,		/* cumulative stime of process and | ||||
| 		cstime,		/* cumulative stime of process and  | ||||
| 				 * reaped children */ | ||||
| 		timeout,	/* The time (in jiffies) of the process's | ||||
| 				 * next timeout */ | ||||
| @@ -70,8 +70,7 @@ struct _glibtop_proc_time | ||||
| 		xcpu_stime [GLIBTOP_NCPU];	/* SMP machines. */ | ||||
| }; | ||||
|  | ||||
|  | ||||
| void glibtop_get_proc_time(glibtop_proc_time *buf, pid_t pid); | ||||
| #define glibtop_get_proc_time(p1, p2)	glibtop_get_proc_time_l(glibtop_global_server, p1, p2) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_TIME | ||||
| #define glibtop_get_proc_time_r	glibtop_get_proc_time_p | ||||
| @@ -89,7 +88,17 @@ void glibtop_init_proc_time_s (glibtop *server); | ||||
| void glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proc_time []; | ||||
| extern const unsigned glibtop_types_proc_time []; | ||||
| extern const char *glibtop_labels_proc_time []; | ||||
| extern const char *glibtop_descriptions_proc_time []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,46 +27,34 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_UID_UID		0 | ||||
| #define GLIBTOP_PROC_UID_EUID		1 | ||||
| #define GLIBTOP_PROC_UID_GID		2 | ||||
| #define GLIBTOP_PROC_UID_EGID		3 | ||||
| #define GLIBTOP_PROC_UID_SUID		4 | ||||
| #define GLIBTOP_PROC_UID_SGID		5 | ||||
| #define GLIBTOP_PROC_UID_FSUID		6 | ||||
| #define GLIBTOP_PROC_UID_FSGID		7 | ||||
| #define GLIBTOP_PROC_UID_PID		8 | ||||
| #define GLIBTOP_PROC_UID_PPID		9 | ||||
| #define GLIBTOP_PROC_UID_PGRP		10 | ||||
| #define GLIBTOP_PROC_UID_SESSION	11 | ||||
| #define GLIBTOP_PROC_UID_TTY		12 | ||||
| #define GLIBTOP_PROC_UID_TPGID		13 | ||||
| #define GLIBTOP_PROC_UID_PRIORITY	14 | ||||
| #define GLIBTOP_PROC_UID_NICE		15 | ||||
| #define GLIBTOP_PROC_UID_NGROUPS    16 | ||||
| #define GLIBTOP_PROC_UID_GROUPS     17 | ||||
| #define GLIBTOP_PROC_UID_PID		4 | ||||
| #define GLIBTOP_PROC_UID_PPID		5 | ||||
| #define GLIBTOP_PROC_UID_PGRP		6 | ||||
| #define GLIBTOP_PROC_UID_SESSION	7 | ||||
| #define GLIBTOP_PROC_UID_TTY		8 | ||||
| #define GLIBTOP_PROC_UID_TPGID		9 | ||||
| #define GLIBTOP_PROC_UID_PRIORITY	10 | ||||
| #define GLIBTOP_PROC_UID_NICE		11 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_UID		18 | ||||
| #define GLIBTOP_MAX_PROC_UID		12 | ||||
|  | ||||
| typedef struct _glibtop_proc_uid	glibtop_proc_uid; | ||||
|  | ||||
| #define GLIBTOP_MAX_GROUPS          64 | ||||
|  | ||||
| /* User, Group, Terminal and session */ | ||||
|  | ||||
| struct _glibtop_proc_uid | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	gint32 uid,		/* user id */ | ||||
| 	u_int64_t flags; | ||||
| 	int uid,		/* user id */ | ||||
| 		euid,		/* effective user id */ | ||||
| 		gid,		/* group id */ | ||||
| 		egid,		/* effective group id */ | ||||
|         suid,       /* set user id */ | ||||
|         sgid,       /* set group id */ | ||||
|         fsuid,      /* ??? user id */ | ||||
|         fsgid,      /* ??? group id */ | ||||
| 		pid,		/* process id */ | ||||
| 		ppid,		/* pid of parent process */ | ||||
| 		pgrp,		/* process group id */ | ||||
| @@ -74,13 +62,10 @@ struct _glibtop_proc_uid | ||||
| 		tty,		/* full device number of controlling terminal */ | ||||
| 		tpgid,		/* terminal process group id */ | ||||
| 		priority,	/* kernel scheduling priority */ | ||||
| 		nice,		/* standard unix nice level of process */ | ||||
| 		ngroups, | ||||
|         groups [GLIBTOP_MAX_GROUPS]; | ||||
|  | ||||
| 		nice;		/* standard unix nice level of process */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_uid(glibtop_proc_uid *buf, pid_t pid); | ||||
| #define glibtop_get_proc_uid(p1, p2)	glibtop_get_proc_uid_l(glibtop_global_server, p1, p2) | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_UID | ||||
| #define glibtop_get_proc_uid_r		glibtop_get_proc_uid_p | ||||
| @@ -98,7 +83,17 @@ void glibtop_init_proc_uid_s (glibtop *server); | ||||
| void glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proc_uid []; | ||||
| extern const unsigned glibtop_types_proc_uid []; | ||||
| extern const char *glibtop_labels_proc_uid []; | ||||
| extern const char *glibtop_descriptions_proc_uid []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -25,14 +25,15 @@ | ||||
| #define __GLIBTOP_READ_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/error.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define glibtop_read(p1, p2)	glibtop_read(glibtop_global_server, p1, p2) | ||||
|  | ||||
| void glibtop_read_l (glibtop *server, size_t size, void *buf); | ||||
| void glibtop_read_s (glibtop *server, size_t size, void *buf); | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -25,14 +25,15 @@ | ||||
| #define __GLIBTOP_READ_DATA_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/error.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define glibtop_read_data()	glibtop_read_data_r(glibtop_global_server) | ||||
|  | ||||
| void *glibtop_read_data_l (glibtop *server); | ||||
| void *glibtop_read_data_s (glibtop *server); | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_IPC_SEMMAP	0 | ||||
| #define GLIBTOP_IPC_SEMMNI	1 | ||||
| @@ -46,7 +46,7 @@ typedef struct _glibtop_sem_limits	glibtop_sem_limits; | ||||
|  | ||||
| struct _glibtop_sem_limits | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		semmap,		/* GLIBTOP_IPC_SEMMAP	*/ | ||||
| 		semmni,		/* GLIBTOP_IPC_SEMMNI	*/ | ||||
| 		semmns,		/* GLIBTOP_IPC_SEMMNS	*/ | ||||
| @@ -59,7 +59,7 @@ struct _glibtop_sem_limits | ||||
| 		semaem;		/* GLIBTOP_IPC_SEMAEM	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_sem_limits(glibtop_sem_limits *buf); | ||||
| #define glibtop_get_sem_limits(sem)	glibtop_get_sem_limits_l(glibtop_global_server, sem) | ||||
|  | ||||
| #if GLIBTOP_SUID_SEM_LIMITS | ||||
| #define glibtop_get_sem_limits_r	glibtop_get_sem_limits_p | ||||
| @@ -77,7 +77,17 @@ void glibtop_init_sem_limits_s (glibtop *server); | ||||
| void glibtop_get_sem_limits_s (glibtop *server, glibtop_sem_limits *buf); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_sem_limits []; | ||||
| extern const unsigned glibtop_types_sem_limits []; | ||||
| extern const char *glibtop_labels_sem_limits []; | ||||
| extern const char *glibtop_descriptions_sem_limits []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_IPC_SHMMAX	0 | ||||
| #define GLIBTOP_IPC_SHMMIN	1 | ||||
| @@ -41,7 +41,7 @@ typedef struct _glibtop_shm_limits	glibtop_shm_limits; | ||||
|  | ||||
| struct _glibtop_shm_limits | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		shmmax,		/* GLIBTOP_IPC_SHMMAX	*/ | ||||
| 		shmmin,		/* GLIBTOP_IPC_SHMMIN	*/ | ||||
| 		shmmni,		/* GLIBTOP_IPC_SHMMNI	*/ | ||||
| @@ -49,7 +49,7 @@ struct _glibtop_shm_limits | ||||
| 		shmall;		/* GLIBTOP_IPC_SHMALL	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_shm_limits(glibtop_shm_limits *buf); | ||||
| #define glibtop_get_shm_limits(shm)	glibtop_get_shm_limits_l(glibtop_global_server, shm) | ||||
|  | ||||
| #if GLIBTOP_SUID_SHM_LIMITS | ||||
| #define glibtop_get_shm_limits_r	glibtop_get_shm_limits_p | ||||
| @@ -67,7 +67,17 @@ void glibtop_init_shm_limits_s (glibtop *server); | ||||
| void glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_shm_limits []; | ||||
| extern const unsigned glibtop_types_shm_limits []; | ||||
| extern const char *glibtop_labels_shm_limits []; | ||||
| extern const char *glibtop_descriptions_shm_limits []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -30,7 +30,7 @@ | ||||
| #include <sys/signal.h> | ||||
| #endif | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| typedef struct _glibtop_signame	glibtop_signame; | ||||
|  | ||||
| @@ -42,6 +42,6 @@ struct _glibtop_signame | ||||
|  | ||||
| extern const glibtop_signame glibtop_sys_siglist []; | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_SWAP_TOTAL	0 | ||||
| #define GLIBTOP_SWAP_USED	1 | ||||
| @@ -41,7 +41,7 @@ typedef struct _glibtop_swap	glibtop_swap; | ||||
|  | ||||
| struct _glibtop_swap | ||||
| { | ||||
| 	guint64	flags, | ||||
| 	u_int64_t	flags, | ||||
| 		total,		/* GLIBTOP_SWAP_TOTAL	*/ | ||||
| 		used,		/* GLIBTOP_SWAP_USED	*/ | ||||
| 		free,		/* GLIBTOP_SWAP_FREE	*/ | ||||
| @@ -49,8 +49,7 @@ struct _glibtop_swap | ||||
| 		pageout;	/* GLIBTOP_SWAP_PAGEOUT	*/ | ||||
| }; | ||||
|  | ||||
| void | ||||
| glibtop_get_swap(glibtop_swap *buf); | ||||
| #define glibtop_get_swap(swap)	glibtop_get_swap_l(glibtop_global_server, swap) | ||||
|  | ||||
| #if GLIBTOP_SUID_SWAP | ||||
| #define glibtop_get_swap_r		glibtop_get_swap_p | ||||
| @@ -68,7 +67,17 @@ void glibtop_init_swap_s (glibtop *server); | ||||
| void glibtop_get_swap_s (glibtop *server, glibtop_swap *buf); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_swap []; | ||||
| extern const unsigned glibtop_types_swap []; | ||||
| extern const char *glibtop_labels_swap []; | ||||
| extern const char *glibtop_descriptions_swap []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -26,7 +26,7 @@ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_SYSDEPS_FEATURES	0 | ||||
| #define GLIBTOP_SYSDEPS_CPU		1 | ||||
| @@ -51,18 +51,20 @@ G_BEGIN_DECLS | ||||
| #define GLIBTOP_SYSDEPS_FSUSAGE		20 | ||||
| #define GLIBTOP_SYSDEPS_NETLOAD		21 | ||||
| #define GLIBTOP_SYSDEPS_PPP		22 | ||||
| #define GLIBTOP_SYSDEPS_NETLIST		23 | ||||
| #define GLIBTOP_SYSDEPS_PROC_OPEN_FILES	24 | ||||
|  | ||||
| #define GLIBTOP_MAX_SYSDEPS		25 | ||||
| #define GLIBTOP_MAX_SYSDEPS		23 | ||||
|  | ||||
| #define GLIBTOP_SYSDEPS_ALL		((1 << GLIBTOP_MAX_SYSDEPS) - 1) | ||||
|  | ||||
| typedef void (*glibtop_init_func_t) (glibtop *); | ||||
| extern glibtop_init_func_t _glibtop_init_hook_s []; | ||||
| extern glibtop_init_func_t _glibtop_init_hook_p []; | ||||
|  | ||||
| typedef struct _glibtop_sysdeps	glibtop_sysdeps; | ||||
|  | ||||
| struct _glibtop_sysdeps | ||||
| { | ||||
| 	guint64 flags, | ||||
| 	u_int64_t flags, | ||||
| 		features,		/* server features	*/ | ||||
| 		cpu,			/* glibtop_cpu		*/ | ||||
| 		mem,			/* glibtop_mem		*/ | ||||
| @@ -82,18 +84,27 @@ struct _glibtop_sysdeps | ||||
| 		proc_segment,		/* glibtop_proc_segment	*/ | ||||
| 		proc_args,		/* glibtop_proc_args	*/ | ||||
| 		proc_map,		/* glibtop_proc_map	*/ | ||||
| 		proc_open_files,	/* glibtop_proc_open_files */ | ||||
| 		mountlist,		/* glibtop_mountlist	*/ | ||||
| 		fsusage,		/* glibtop_fsusage	*/ | ||||
| 		netlist,		/* glibtop_netlist	*/ | ||||
| 		netload,		/* glibtop_netload	*/ | ||||
| 		ppp;			/* glibtop_ppp		*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_sysdeps (glibtop_sysdeps *buf); | ||||
| #define glibtop_get_sysdeps(sysdeps)	glibtop_get_sysdeps_r(glibtop_global_server,sysdeps) | ||||
|  | ||||
| void glibtop_get_sysdeps_r (glibtop *server, glibtop_sysdeps *buf); | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_sysdeps []; | ||||
| extern const unsigned glibtop_types_sysdeps []; | ||||
| extern const char *glibtop_labels_sysdeps []; | ||||
| extern const char *glibtop_descriptions_sysdeps []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -30,12 +30,11 @@ | ||||
|  | ||||
| #include <glib.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_SYSINFO_NCPU		0 | ||||
| #define GLIBTOP_SYSINFO_CPUINFO		1 | ||||
| #define GLIBTOP_SYSINFO_CPUINFO		0 | ||||
|  | ||||
| #define GLIBTOP_MAX_SYSINFO		2 | ||||
| #define GLIBTOP_MAX_SYSINFO		1 | ||||
|  | ||||
| typedef struct _glibtop_sysinfo	glibtop_sysinfo; | ||||
|  | ||||
| @@ -44,21 +43,22 @@ typedef struct _glibtop_entry	glibtop_entry; | ||||
| struct _glibtop_entry | ||||
| { | ||||
| 	GPtrArray	*labels; | ||||
| 	GHashTable	*values; /* key -> description */ | ||||
| 	GHashTable	*descriptions; /* unused */ | ||||
| 	GHashTable	*values; | ||||
| 	GHashTable	*descriptions; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_sysinfo | ||||
| { | ||||
| 	guint64	flags, ncpu; | ||||
| 	glibtop_entry cpuinfo [GLIBTOP_NCPU]; | ||||
| 	u_int64_t	flags, ncpu; | ||||
| 	glibtop_entry	cpuinfo [GLIBTOP_NCPU]; | ||||
| }; | ||||
|  | ||||
| #define glibtop_get_sysinfo()	glibtop_get_sysinfo_s(glibtop_global_server) | ||||
|  | ||||
| #define glibtop_get_sysinfo_r	glibtop_get_sysinfo_s | ||||
|  | ||||
| const glibtop_sysinfo *glibtop_get_sysinfo_s (glibtop *server); | ||||
| const glibtop_sysinfo *glibtop_get_sysinfo (void); | ||||
| glibtop_sysinfo *glibtop_get_sysinfo_s (glibtop *server); | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -1,9 +1,5 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
| 
 | ||||
| /* $Id$ */ | ||||
| 
 | ||||
| @@AUTOGEN_COMMENT@@ | ||||
| 
 | ||||
| /* Copyright (C) 1998-99 Martin Baulig
 | ||||
|    This file is part of LibGTop 1.0. | ||||
| 
 | ||||
| @@ -25,19 +21,18 @@ | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
| 
 | ||||
| #ifndef __GLIBTOP_CALL_VECTOR_H__ | ||||
| #define __GLIBTOP_CALL_VECTOR_H__ | ||||
| #ifndef __GLIBTOP_TYPES_H__ | ||||
| #define __GLIBTOP_TYPES_H__ | ||||
| 
 | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/union.h> | ||||
| BEGIN_LIBGTOP_DECLS | ||||
| 
 | ||||
| G_BEGIN_DECLS | ||||
| #define GLIBTOP_TYPE_LONG	1 | ||||
| #define GLIBTOP_TYPE_ULONG	2 | ||||
| #define GLIBTOP_TYPE_DOUBLE	3 | ||||
| #define GLIBTOP_TYPE_INT	4 | ||||
| #define GLIBTOP_TYPE_CHAR	5 | ||||
| #define GLIBTOP_TYPE_STRING	6 | ||||
| 
 | ||||
| struct _glibtop_call_vector | ||||
| { | ||||
|     @@GLIBTOP_CALL_VECTOR@@ | ||||
| }; | ||||
| 
 | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
| 
 | ||||
| #endif | ||||
| @@ -43,16 +43,14 @@ | ||||
| #include <glibtop/procsegment.h> | ||||
| #include <glibtop/procargs.h> | ||||
| #include <glibtop/procmap.h> | ||||
| #include <glibtop/procopenfiles.h> | ||||
|  | ||||
| #include <glibtop/mountlist.h> | ||||
| #include <glibtop/fsusage.h> | ||||
|  | ||||
| #include <glibtop/netload.h> | ||||
| #include <glibtop/netlist.h> | ||||
| #include <glibtop/ppp.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| typedef union _glibtop_union	glibtop_union; | ||||
|  | ||||
| @@ -78,12 +76,10 @@ union _glibtop_union | ||||
| 	glibtop_proc_map	proc_map; | ||||
| 	glibtop_mountlist	mountlist; | ||||
| 	glibtop_fsusage		fsusage; | ||||
| 	glibtop_netlist		netlist; | ||||
| 	glibtop_netload		netload; | ||||
| 	glibtop_ppp		ppp; | ||||
| 	glibtop_proc_open_files proc_open_files; | ||||
| }; | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -27,25 +27,23 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define GLIBTOP_UPTIME_UPTIME		0 | ||||
| #define GLIBTOP_UPTIME_IDLETIME		1 | ||||
| #define GLIBTOP_UPTIME_BOOT_TIME    2 | ||||
|  | ||||
| #define GLIBTOP_MAX_UPTIME		3 | ||||
| #define GLIBTOP_MAX_UPTIME		2 | ||||
|  | ||||
| typedef struct _glibtop_uptime	glibtop_uptime; | ||||
|  | ||||
| struct _glibtop_uptime | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	u_int64_t flags; | ||||
| 	double uptime,		/* GLIBTOP_UPTIME_UPTIME	*/ | ||||
| 		idletime;	/* GLIBTOP_UPTIME_IDLETIME	*/ | ||||
| 	guint64 boot_time; | ||||
| }; | ||||
|  | ||||
| void glibtop_get_uptime (glibtop_uptime *buf); | ||||
| #define glibtop_get_uptime(uptime)	glibtop_get_uptime_l(glibtop_global_server, uptime) | ||||
|  | ||||
| #if GLIBTOP_SUID_UPTIME | ||||
| #define glibtop_get_uptime_r		glibtop_get_uptime_p | ||||
| @@ -63,7 +61,17 @@ void glibtop_init_uptime_s (glibtop *server); | ||||
| void glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| G_END_DECLS | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_uptime []; | ||||
| extern const unsigned glibtop_types_uptime []; | ||||
| extern const char *glibtop_labels_uptime []; | ||||
| extern const char *glibtop_descriptions_uptime []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -23,10 +23,13 @@ | ||||
| #define __GLIBTOP_VERSION_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/union.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
| #include <glibtop/command.h> | ||||
|  | ||||
| #define LIBGTOP_VERSION_STRING "Libgtop %s server version %s (%u,%u,%u,%u)." | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #if _IN_LIBGTOP | ||||
|  | ||||
| @@ -34,6 +37,6 @@ void glibtop_send_version (glibtop *server, int fd); | ||||
|  | ||||
| #endif | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -25,14 +25,15 @@ | ||||
| #define __GLIBTOP_WRITE_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/error.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| #define glibtop_write(p1, p2)	glibtop_write(glibtop_global_server, p1, p2) | ||||
|  | ||||
| void glibtop_write_l (glibtop *server, size_t size, void *buf); | ||||
| void glibtop_write_s (glibtop *server, size_t size, void *buf); | ||||
|  | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_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
 | ||||
| @@ -23,34 +21,26 @@ | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
| 
 | ||||
| #ifndef __GLIBTOP_LIMITS_H__ | ||||
| #define __GLIBTOP_LIMITS_H__ | ||||
| #ifndef __GLIBTOP_XMALLOC_H__ | ||||
| #define __GLIBTOP_XMALLOC_H__ | ||||
| 
 | ||||
| #include <glibtop/global.h> | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/error.h> | ||||
| 
 | ||||
| G_BEGIN_DECLS | ||||
| BEGIN_LIBGTOP_DECLS | ||||
| 
 | ||||
| /* Nobody should really be using more than 64 processors. */ | ||||
| #define GLIBTOP_NCPU		64 | ||||
| #define glibtop_malloc(p1)	glibtop_malloc_r(glibtop_global_server, p1) | ||||
| #define glibtop_calloc(p1, p2)	glibtop_calloc_r(glibtop_global_server, p1, p2) | ||||
| #define glibtop_realloc(p1, p2)	glibtop_realloc_r(glibtop_global_server, p1, p2) | ||||
| #define glibtop_strdup(p1)	glibtop_strdup_r(glibtop_global_server, p1) | ||||
| #define glibtop_free(p1)	glibtop_free_r(glibtop_global_server, p1) | ||||
| 
 | ||||
| /* Maximum number of process groups in glibtop_proc_uid. */ | ||||
| #define GLIBTOP_MAX_GROUPS	32 | ||||
| void *glibtop_malloc_r	(glibtop *server, size_t size); | ||||
| void *glibtop_calloc_r	(glibtop *server, size_t nmemb, size_t size); | ||||
| void *glibtop_realloc_r	(glibtop *server, void *ptr, size_t size); | ||||
| char *glibtop_strdup_r	(glibtop *server, const char *string); | ||||
| void glibtop_free_r	(glibtop *server, const void *ptr); | ||||
| 
 | ||||
| /* Maximum length of a mountpoint/device name in glibtop_mountlist. */ | ||||
| #define GLIBTOP_MOUNTENTRY_LEN	79 | ||||
| 
 | ||||
| /* Maximum length of a network interface name. */ | ||||
| #define GLIBTOP_INTERFACE_LEN	32 | ||||
| 
 | ||||
| /* 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 | ||||
| 
 | ||||
| G_END_DECLS | ||||
| END_LIBGTOP_DECLS | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										14
									
								
								kernel/ChangeLog
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								kernel/ChangeLog
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| 1998-07-21  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* table20: New directory for 2.0.xx kernels. | ||||
|  | ||||
| 	* table21: New directory for 2.1.xx kernels. | ||||
|  | ||||
| 	* *: Moved into `table20' and `table21'. | ||||
|  | ||||
| 1998-06-14  Martin Baulig  <baulig@taurus.uni-trier.de> | ||||
|  | ||||
| 	* README: Added README. | ||||
|  | ||||
| 	* kernel.patch: Patch for the Linux kernel to add the | ||||
| 	new system call. | ||||
							
								
								
									
										1
									
								
								kernel/sysctl/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								kernel/sysctl/.cvsignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| *.flags | ||||
							
								
								
									
										22
									
								
								kernel/sysctl/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								kernel/sysctl/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| # | ||||
| # Makefile for the LibGTop linux sysctl interface. | ||||
| # | ||||
| # Note! Dependencies are done automagically by 'make dep', which also | ||||
| # removes any old dependencies. DON'T put your own dependencies here | ||||
| # unless it's something special (ie not a .c file). | ||||
| # | ||||
| # Note 2! The CFLAGS definition is now in the main makefile... | ||||
|  | ||||
| O_TARGET := kernel.o | ||||
| ifeq ($(CONFIG_LIBGTOP),y) | ||||
| O_OJBS   := main.o libgtop.o | ||||
| else | ||||
| O_OBJS   := main.o | ||||
| endif | ||||
| OX_OBJS  := libgtop_syms.o | ||||
|  | ||||
| ifeq ($(CONFIG_LIBGTOP),m) | ||||
| M_OBJS   := libgtop.o | ||||
| endif | ||||
|  | ||||
| include $(TOPDIR)/Rules.make | ||||
							
								
								
									
										1268
									
								
								kernel/sysctl/libgtop.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1268
									
								
								kernel/sysctl/libgtop.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										242
									
								
								kernel/sysctl/libgtop.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										242
									
								
								kernel/sysctl/libgtop.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,242 @@ | ||||
| #ifndef _LINUX_LIBGTOP_H | ||||
| #define _LINUX_LIBGTOP_H 1 | ||||
|  | ||||
| #include <linux/tasks.h> | ||||
|  | ||||
| enum { | ||||
|     LIBGTOP_VERSION = 1, | ||||
|     LIBGTOP_UPDATE_EXPENSIVE, | ||||
|     LIBGTOP_STAT = 101, | ||||
|     LIBGTOP_MEM, | ||||
|     LIBGTOP_SWAP, | ||||
|     LIBGTOP_PROCLIST = 201, | ||||
|     LIBGTOP_PROC_STATE = 211, | ||||
|     LIBGTOP_PROC_KERNEL, | ||||
|     LIBGTOP_PROC_SEGMENT, | ||||
|     LIBGTOP_PROC_MEM, | ||||
|     LIBGTOP_PROC_SIGNAL, | ||||
|     LIBGTOP_PROC_ARGS = 251, | ||||
|     LIBGTOP_PROC_MAPS, | ||||
|     LIBGTOP_NETLOAD = 301 | ||||
| }; | ||||
|  | ||||
| enum { | ||||
|     LIBGTOP_PROCLIST_ALL = 0, | ||||
|     LIBGTOP_PROCLIST_PID, | ||||
|     LIBGTOP_PROCLIST_PGRP, | ||||
|     LIBGTOP_PROCLIST_SESSION, | ||||
|     LIBGTOP_PROCLIST_TTY, | ||||
|     LIBGTOP_PROCLIST_UID, | ||||
|     LIBGTOP_PROCLIST_RUID | ||||
| }; | ||||
|  | ||||
| #define LIBGTOP_NSIG			4 | ||||
|  | ||||
| #define LIBGTOP_PROCLIST_MASK		15 | ||||
| #define LIBGTOP_MAX_GROUPS		32 | ||||
|  | ||||
| #define LIBGTOP_EXCLUDE_IDLE		0x1000 | ||||
| #define LIBGTOP_EXCLUDE_SYSTEM		0x2000 | ||||
| #define LIBGTOP_EXCLUDE_NOTTY		0x4000 | ||||
|  | ||||
| #define LIBGTOP_TASK_RUNNING		1 | ||||
| #define LIBGTOP_TASK_INTERRUPTIBLE	2 | ||||
| #define LIBGTOP_TASK_UNINTERRUPTIBLE	4 | ||||
| #define LIBGTOP_TASK_ZOMBIE		8 | ||||
| #define LIBGTOP_TASK_STOPPED		16 | ||||
| #define LIBGTOP_TASK_SWAPPING		32 | ||||
|  | ||||
| #define LIBGTOP_VM_READ		0x0001	/* currently active flags */ | ||||
| #define LIBGTOP_VM_WRITE	0x0002 | ||||
| #define LIBGTOP_VM_EXEC		0x0004 | ||||
| #define LIBGTOP_VM_SHARED	0x0008 | ||||
|  | ||||
| #define LIBGTOP_VM_MAYREAD	0x0010	/* limits for mprotect() etc */ | ||||
| #define LIBGTOP_VM_MAYWRITE	0x0020 | ||||
| #define LIBGTOP_VM_MAYEXEC	0x0040 | ||||
| #define LIBGTOP_VM_MAYSHARE	0x0080 | ||||
|  | ||||
| #define LIBGTOP_VM_GROWSDOWN	0x0100	/* general info on the segment */ | ||||
| #define LIBGTOP_VM_GROWSUP	0x0200 | ||||
| #define LIBGTOP_VM_SHM		0x0400	/* shared memory area, don't swap out */ | ||||
| #define LIBGTOP_VM_DENYWRITE	0x0800	/* ETXTBSY on write attempts.. */ | ||||
|  | ||||
| #define LIBGTOP_VM_EXECUTABLE	0x1000 | ||||
| #define LIBGTOP_VM_LOCKED	0x2000 | ||||
| #define LIBGTOP_VM_IO		0x4000  /* Memory mapped I/O or similar */ | ||||
|  | ||||
| #define LIBGTOP_MAP_PATH_LEN	(PAGE_SIZE - sizeof (libgtop_proc_maps_header_t)) | ||||
|  | ||||
| #ifndef min | ||||
| #define min(a,b) ((a < b) ? a : b) | ||||
| #endif | ||||
|  | ||||
| typedef struct libgtop_stat libgtop_stat_t; | ||||
|  | ||||
| typedef struct libgtop_cpu libgtop_cpu_t; | ||||
| typedef struct libgtop_mem libgtop_mem_t; | ||||
| typedef struct libgtop_swap libgtop_swap_t; | ||||
| typedef struct libgtop_proclist libgtop_proclist_t; | ||||
|  | ||||
| typedef struct libgtop_proc_state libgtop_proc_state_t; | ||||
| typedef struct libgtop_proc_kernel libgtop_proc_kernel_t; | ||||
| typedef struct libgtop_proc_segment libgtop_proc_segment_t; | ||||
| typedef struct libgtop_proc_mem libgtop_proc_mem_t; | ||||
| typedef struct libgtop_proc_signal libgtop_proc_signal_t; | ||||
|  | ||||
| typedef struct libgtop_proc_maps_header libgtop_proc_maps_header_t; | ||||
| typedef struct libgtop_proc_maps libgtop_proc_maps_t; | ||||
|  | ||||
| typedef struct libgtop_netload libgtop_netload_t; | ||||
|  | ||||
| struct libgtop_cpu | ||||
| { | ||||
|     unsigned long total;		/* Total CPU Time		*/ | ||||
|     unsigned long user;			/* CPU Time in User Mode	*/ | ||||
|     unsigned long nice;			/* CPU Time in User Mode (nice)	*/ | ||||
|     unsigned long sys;			/* CPU Time in System Mode	*/ | ||||
|     unsigned long idle;			/* CPU Time in the Idle Task	*/ | ||||
| }; | ||||
|  | ||||
| struct libgtop_mem | ||||
| { | ||||
|     unsigned long totalram;		/* Total usable main memory size */ | ||||
|     unsigned long freeram;		/* Available memory size */ | ||||
|     unsigned long sharedram;		/* Amount of shared memory */ | ||||
|     unsigned long bufferram;		/* Memory used by buffers */ | ||||
|     unsigned long cachedram; | ||||
| }; | ||||
|  | ||||
| struct libgtop_swap | ||||
| { | ||||
|     unsigned long totalswap;		/* Total swap space size */ | ||||
|     unsigned long freeswap;		/* swap space still available */ | ||||
| }; | ||||
|  | ||||
| struct libgtop_proclist | ||||
| { | ||||
|     int count; | ||||
|     int nr_running, nr_tasks, last_pid; | ||||
|     unsigned pids [NR_TASKS]; | ||||
| }; | ||||
|  | ||||
| struct libgtop_stat | ||||
| { | ||||
|     int ncpu;				/* Number of CPUs		*/ | ||||
|     unsigned long frequency;		/* Tick frequency (HZ)		*/ | ||||
|     libgtop_cpu_t cpu;			/* CPU statistics		*/ | ||||
|     libgtop_cpu_t xcpu [NR_CPUS];	/* SMP per-CPU statistics	*/ | ||||
|     double loadavg [3];			/* Load average			*/ | ||||
|     unsigned long total_forks;		/* Total # of forks		*/ | ||||
|     unsigned int context_swtch;		/* Total # of context switches	*/ | ||||
|     unsigned long boot_time;		/* Boot time (seconds s. epoch)	*/ | ||||
|     unsigned int pgpgin, pgpgout;	/* # of pages paged in/out	*/ | ||||
|     unsigned int pswpin, pswpout;	/* # of swap pgs brought in/out	*/ | ||||
| }; | ||||
|  | ||||
| struct libgtop_proc_state | ||||
| { | ||||
|     long state; | ||||
|     unsigned long flags; | ||||
|     char comm [16]; | ||||
|     int uid, euid, suid, fsuid; | ||||
|     int gid, egid, sgid, fsgid; | ||||
|     int pid, pgrp, ppid; | ||||
|     int session; | ||||
|     unsigned int tty; | ||||
|     int tpgid; | ||||
|     long priority, counter, def_priority; | ||||
|     long utime, stime, cutime, cstime, start_time; | ||||
|     long per_cpu_utime [NR_CPUS], per_cpu_stime [NR_CPUS]; | ||||
|     int has_cpu, processor, last_processor; | ||||
|  | ||||
|     unsigned long context; | ||||
|     unsigned long start_code, end_code, start_data, end_data; | ||||
|     unsigned long start_brk, brk, start_stack, start_mmap; | ||||
|     unsigned long arg_start, arg_end, env_start, env_end; | ||||
|     unsigned long rss, rlim, total_vm, locked_vm; | ||||
|  | ||||
|     unsigned long policy, rt_priority; | ||||
|     unsigned long it_real_value, it_prof_value, it_virt_value; | ||||
|     unsigned long it_real_incr, it_prof_incr, it_virt_incr; | ||||
|  | ||||
|     unsigned long keip, kesp; | ||||
|     unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt; | ||||
|     unsigned long nswap, cnswap; | ||||
|  | ||||
|     int ngroups, groups [LIBGTOP_MAX_GROUPS]; | ||||
| }; | ||||
|  | ||||
| struct libgtop_proc_kernel | ||||
| { | ||||
|     unsigned long wchan; | ||||
| }; | ||||
|  | ||||
| struct libgtop_proc_segment | ||||
| { | ||||
|     unsigned long vsize, data, exec, stack, lib; | ||||
| }; | ||||
|  | ||||
| struct libgtop_proc_mem | ||||
| { | ||||
|     libgtop_proc_segment_t segment; | ||||
|     int size, resident, share, trs, lrs, drs, dt; | ||||
|     unsigned long rss, rlim; | ||||
| }; | ||||
|  | ||||
| struct libgtop_proc_signal | ||||
| { | ||||
|     unsigned long signal [LIBGTOP_NSIG]; | ||||
|     unsigned long blocked [LIBGTOP_NSIG]; | ||||
|     unsigned long ignore [LIBGTOP_NSIG]; | ||||
|     unsigned long catch [LIBGTOP_NSIG]; | ||||
| }; | ||||
|  | ||||
| struct libgtop_proc_maps_header | ||||
| { | ||||
|     unsigned long start, end, offset, perm; | ||||
|     off_t filename_offset; | ||||
|     ino_t inode; | ||||
|     dev_t device; | ||||
| } __attribute__ ((aligned (64))); | ||||
|  | ||||
| struct libgtop_proc_maps | ||||
| { | ||||
|     libgtop_proc_maps_header_t header; | ||||
|     char filename [LIBGTOP_MAP_PATH_LEN]; | ||||
| }; | ||||
|  | ||||
| struct libgtop_netload | ||||
| { | ||||
|     unsigned long rx_packets;		/* total packets received	*/ | ||||
|     unsigned long tx_packets;		/* total packets transmitted	*/ | ||||
|     unsigned long rx_bytes;		/* total bytes received 	*/ | ||||
|     unsigned long tx_bytes;		/* total bytes transmitted	*/ | ||||
|     unsigned long rx_errors;		/* bad packets received		*/ | ||||
|     unsigned long tx_errors;		/* packet transmit problems	*/ | ||||
|     unsigned long rx_dropped;		/* no space in linux buffers	*/ | ||||
|     unsigned long tx_dropped;		/* no space available in linux	*/ | ||||
|     unsigned long multicast;		/* multicast packets received	*/ | ||||
|     unsigned long collisions; | ||||
|      | ||||
|     /* detailed rx_errors: */ | ||||
|     unsigned long rx_length_errors; | ||||
|     unsigned long rx_over_errors;	/* receiver ring buff overflow	*/ | ||||
|     unsigned long rx_crc_errors;	/* recved pkt with crc error	*/ | ||||
|     unsigned long rx_frame_errors;	/* recv'd frame alignment error */ | ||||
|     unsigned long rx_fifo_errors;	/* recv'r fifo overrun		*/ | ||||
|     unsigned long rx_missed_errors;	/* receiver missed packet	*/ | ||||
|      | ||||
|     /* detailed tx_errors */ | ||||
|     unsigned long tx_aborted_errors; | ||||
|     unsigned long tx_carrier_errors; | ||||
|     unsigned long tx_fifo_errors; | ||||
|     unsigned long tx_heartbeat_errors; | ||||
|     unsigned long tx_window_errors; | ||||
|      | ||||
|     /* for cslip etc */ | ||||
|     unsigned long rx_compressed; | ||||
|     unsigned long tx_compressed; | ||||
| }; | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										30
									
								
								kernel/sysctl/libgtop_syms.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								kernel/sysctl/libgtop_syms.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| /* | ||||
|  * linux/libgtop/libgtop_syms.c | ||||
|  * Copyright (C) 1999 Martin Baulig | ||||
|  */ | ||||
|  | ||||
| #include <linux/config.h> | ||||
| #include <linux/module.h> | ||||
|  | ||||
| #include <linux/sched.h> | ||||
|  | ||||
| #include <linux/mm.h> | ||||
| #include <linux/pagemap.h> | ||||
| #include <linux/swap.h> | ||||
|  | ||||
| extern unsigned long total_forks; | ||||
|  | ||||
| EXPORT_SYMBOL(task); | ||||
| EXPORT_SYMBOL(init_mm); | ||||
| EXPORT_SYMBOL(pidhash); | ||||
| EXPORT_SYMBOL(avenrun); | ||||
| EXPORT_SYMBOL(nr_running); | ||||
| EXPORT_SYMBOL(nr_tasks); | ||||
| EXPORT_SYMBOL(last_pid); | ||||
| EXPORT_SYMBOL(total_forks); | ||||
| EXPORT_SYMBOL(si_swapinfo); | ||||
|  | ||||
| extern void scheduling_functions_start_here(void); | ||||
| extern void scheduling_functions_end_here(void); | ||||
| EXPORT_SYMBOL(scheduling_functions_start_here); | ||||
| EXPORT_SYMBOL(scheduling_functions_end_here); | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user