Compare commits
	
		
			334 Commits
		
	
	
		
			LIBGTOP_2_
			...
			LIBGTOP_2_
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 629d9a0392 | ||
|  | 798350fcef | ||
|  | 8eaf7b99cf | ||
|  | 194c0548b5 | ||
|  | 97167e7add | ||
|  | 6a96719e58 | ||
|  | 8181cef8e3 | ||
|  | 45b8a9a361 | ||
|  | 6794524344 | ||
|  | 9840ef9650 | ||
|  | 8f1961056a | ||
|  | 60d4f03319 | ||
|  | 31ec86124b | ||
|  | 21768e8e99 | ||
|  | ab0bfbcf3c | ||
|  | d807950ce2 | ||
|  | 68cebe2aaf | ||
|  | 36ba38cdc4 | ||
|  | 47aad7d822 | ||
|  | 82e6de4aa2 | ||
|  | ef825aa1c0 | ||
|  | 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 | 
							
								
								
									
										61
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								ChangeLog
									
									
									
									
									
								
							| @@ -1,64 +1,3 @@ | ||||
| 2003-10-21  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* lib/read.c: (glibtop_read_l): | ||||
| 	* lib/read_data.c: (glibtop_read_data_l): | ||||
| 	* lib/write.c: (glibtop_write_l):  | ||||
| 	reverted string freeze breakage | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* lib/read.c: (glibtop_read_l): | ||||
| 	* lib/read_data.c: (glibtop_read_data_l): | ||||
| 	* lib/write.c: (glibtop_write_l): apply patch for ngettext support | ||||
| 	by Christian Neumair <chris@gnome-de.org> | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* src/inodedb/Makefile.am: link to libgtop_suid_common-2.0.la | ||||
| 	(Closes: #107990) | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* configure.in: make it compile | ||||
|  | ||||
| 2003-10-19  Carlos Perelló Marín <carlos@gnome.org> | ||||
|  | ||||
| 	* support/*: Reverted libgtop changes. It's a common module | ||||
| 	and I should not modify it. | ||||
| 	* Added/removed files. Now the move should be done. | ||||
|  | ||||
| 2003-10-19  Carlos Perelló Marín <carlos@gnome.org> | ||||
|  | ||||
| 	* libgtop-GNOME-2-0-branch moved to HEAD. | ||||
|  | ||||
| 2003-09-30  Laurent Dhima  <laurenti@alblinux.net> | ||||
|  | ||||
| 	* configure.in: Added "sq" to ALL_LINGUAS. | ||||
|  | ||||
| 2003-09-17  Fatih Demir <kabalak@gtranslator.org> | ||||
|  | ||||
| 	* configure.in: Added "ta" (Tamil) to the languages' list. | ||||
|  | ||||
| 2003-09-13  Carlos Perelló Marín <carlos@gnome.org> | ||||
|  | ||||
| 	* configure.in (ALL_LINGUAS):  Removed es_ES. | ||||
|  | ||||
| 2003-09-08  Kevin Vandersloot | ||||
|  | ||||
| 	* configure.in: release 2.0.5 | ||||
|  | ||||
| 2003-09-06  Taneem Ahmed  <taneem@bengalinux.org> | ||||
|  | ||||
| 	* configure.in: Added "bn" to ALL_LINGUAS. | ||||
|  | ||||
| 2003-08-24  Kevin Vandersloot | ||||
|  | ||||
| 	* configure.in: release 2.0.4 | ||||
|  | ||||
| 2003-08-13  Guntupalli Karunakar  <karunakar@freedomink.org> | ||||
|  | ||||
| 	* configure.in: Added "hi" (Hindi) in ALL_LINGUAS. | ||||
|  | ||||
| 2003-08-13  Andrew Sobala  <aes@gnome.org> | ||||
|  | ||||
| 	* configure.in: release 2.0.3 | ||||
|   | ||||
| @@ -1,2 +0,0 @@ | ||||
| Email: martin@home-of-linux.org | ||||
| Email: dave@srce.hr | ||||
| @@ -1,50 +0,0 @@ | ||||
| RELEASE NOTES FOR LIBGTOP 1.1.2 | ||||
| =============================== | ||||
|  | ||||
| This is a snapshot release for Solaris users of October GNOME. It contains | ||||
| a first version of the Solaris port of LibGTop which works at least on | ||||
| Solaris 7. | ||||
|  | ||||
| Please use LibGTop 1.0.x if you're not on a Solaris system | ||||
| (look at the README file for details). | ||||
|  | ||||
| IMPORTANT CHANGES SINCE 1.0: | ||||
| ---------------------------- | ||||
|  | ||||
| * All `glibtop_get_<feature>_* ()' and all `glibtop_init_<feature>_* ()' | ||||
|   functions now have an `int' return value and return 0 on success and -1 | ||||
|   on failure. | ||||
|  | ||||
| * glibtop_cpu: Added `xcpu_flags' | ||||
|  | ||||
| * glibtop_proc_state: Changed `state' from char to unsigned and added | ||||
|     GLIBTOP_PROCESS_RUNNING, GLIBTOP_PROCESS_INTERRUPTIBLE, | ||||
|     GLIBTOP_PROCESS_UNINTERRUPTIBLE,  GLIBTOP_PROCESS_ZOMBIE, | ||||
|     GLIBTOP_PROCESS_STOPPED, GLIBTOP_PROCESS_SWAPPING constants for it. | ||||
|  | ||||
| * `GLIBTOP_MOUNTENTRY_LEN' and `GLIBTOP_MAX_GROUPS' are now defined in | ||||
|   <glibtop/limits.h> | ||||
|  | ||||
| * Removed the `GLIBTOP_SYSDEPS_FEATURES' and `GLIBTOP_SYSDEPS_POINTER_SIZE' | ||||
|   constants from <glibtop/sysdeps.h> and let numbering start at zero for | ||||
|   `GLIBTOP_SYSDEPS_CPU'. | ||||
|  | ||||
| OTHER CHANGES SINCE 1.0: | ||||
| ----------------------- | ||||
|  | ||||
| * Use G_GNUC_UNUSED in <glibtop/error.h> to avoid compiler warnings. | ||||
|  | ||||
| * The `libgtop-config' script now accepts `--cflags', `--libs' and | ||||
|   `--extra-libs' parameter. | ||||
|  | ||||
| * The libraries are now called -lgtop-1.1 etc. so you can use 1.0.x and | ||||
|   1.1.x in parallel. | ||||
|  | ||||
| CHANGES SINCE 1.0 MAINLY INTERESTING FOR DEVELOPERS: | ||||
| --------------------------------------------------- | ||||
|  | ||||
| * We create a `glibtop-config.h' now which gets included from <glibtop.h> | ||||
|   when we're _IN_LIBGTOP. It contains things such as `u_int64_t' etc. | ||||
|  | ||||
| October 1999 | ||||
| Martin Baulig | ||||
| @@ -1,5 +0,0 @@ | ||||
| .deps | ||||
| .libs | ||||
| Makefile | ||||
| Makefile.in | ||||
| *.lo | ||||
| @@ -1,15 +0,0 @@ | ||||
| if NEED_LIBGTOP | ||||
| server_dir	= server | ||||
| else | ||||
| server_dir	= | ||||
| endif | ||||
|  | ||||
| if HAVE_SYSDEPS | ||||
| sysdeps_dir	= sysdeps | ||||
| else | ||||
| sysdeps_dir	= | ||||
| endif | ||||
|  | ||||
| SUBDIRS		= $(server_dir) $(sysdeps_dir) common | ||||
|  | ||||
| DIST_SUBDIRS	= server sysdeps common | ||||
| @@ -1,7 +0,0 @@ | ||||
| .deps | ||||
| .libs | ||||
| Makefile | ||||
| Makefile.in | ||||
| *.lo | ||||
| *.la | ||||
| marshal.c | ||||
| @@ -1,42 +0,0 @@ | ||||
| 2000-11-26  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* glibtop-backend-private.h: Removed. | ||||
|  | ||||
| 	* backend-common.h: New files. | ||||
|  | ||||
| 	* backend-common.c (_open_common): Don't overwrite | ||||
| 	`backend->_priv'. | ||||
|  | ||||
| 2000-11-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am: Link libgtop_backend_common.la against | ||||
| 	$(top_builddir)/sysdeps/common/libgtop_common.la and | ||||
| 	$(top_builddir)/lib/libgtop_server.la. | ||||
|  | ||||
| 2000-02-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* backend-sysdeps.c (LibGTopBackendInfo): Call this | ||||
| 	`LibGTopBackendInfo_Common' when we don't use gmodule. | ||||
|  | ||||
| 2000-02-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR) | ||||
| 	when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise. | ||||
|  | ||||
| 2000-01-12  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR). | ||||
|  | ||||
| 	* libgtop-common.backend: New file. | ||||
|  | ||||
| 	* backend-common.c (glibtop_backend_common): Renamed to | ||||
| 	`LibGTopBackendInfo'. | ||||
|  | ||||
| 2000-01-12  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	Initial version of the "glibtop-backend-common" backend. | ||||
|  | ||||
| 	* backend-common.c: New file. | ||||
| 	* glibtop-backend-private.h: New file. | ||||
| 	* marshal.pl: New file. Automatically creates `marshal.c'. | ||||
|  | ||||
| @@ -1,47 +0,0 @@ | ||||
| LINK		= $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ | ||||
|  | ||||
| INCLUDES	= @INCLUDES@ | ||||
|  | ||||
| backenddir	= @LIBGTOP_BACKEND_DIR@ | ||||
|  | ||||
| if LIBGTOP_USE_GMODULE | ||||
| backendlibdir	= $(backenddir) | ||||
| else | ||||
| backendlibdir	= $(libdir) | ||||
| endif | ||||
|  | ||||
| dynamic_ldflags	= @libgtop_dynamic_ldflags@ | ||||
|  | ||||
| backend_DATA = \ | ||||
| 	libgtop-common.backend | ||||
|  | ||||
| noinst_HEADERS = \ | ||||
| 	backend-common.h | ||||
|  | ||||
| backendlib_LTLIBRARIES = \ | ||||
| 	libgtop_backend_common.la | ||||
|  | ||||
| libgtop_backend_common_la_SOURCES = \ | ||||
| 	backend-common.c		\ | ||||
| 	marshal.c | ||||
|  | ||||
| libgtop_backend_common_la_LDFLAGS = \ | ||||
| 	$(LT_VERSION_INFO) $(dynamic_ldflags) | ||||
|  | ||||
| libgtop_backend_common_la_LIBADD = \ | ||||
| 	$(top_builddir)/sysdeps/common/libgtop_common.la	\ | ||||
| 	$(top_builddir)/lib/libgtop_server.la | ||||
|  | ||||
| BUILT_SOURCES = \ | ||||
| 	marshal.c | ||||
|  | ||||
| EXTRA_DIST = \ | ||||
| 	marshal.pl	\ | ||||
| 	libgtop-common.backend | ||||
|  | ||||
| CLEANFILES = $(BUILT_SOURCES) | ||||
|  | ||||
| marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl | ||||
| 	$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t | ||||
| 	mv tmp-t marshal.c | ||||
|  | ||||
| @@ -1,61 +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. | ||||
| */ | ||||
|  | ||||
| #include <backend-common.h> | ||||
|  | ||||
| static int | ||||
| _open_common (glibtop_server *, glibtop_backend *, u_int64_t, const char **); | ||||
|  | ||||
| static int | ||||
| _close_common (glibtop_server *, glibtop_backend *, void *closure); | ||||
|  | ||||
| extern glibtop_call_vector glibtop_backend_common_call_vector; | ||||
|  | ||||
| #ifdef LIBGTOP_USE_GMODULE | ||||
| glibtop_backend_info LibGTopBackendInfo = { | ||||
|     "glibtop-backend-common", _open_common, _close_common, | ||||
|     &glibtop_backend_common_call_vector | ||||
| }; | ||||
| #else | ||||
| glibtop_backend_info LibGTopBackendInfo_Common = { | ||||
|     "glibtop-backend-common", _open_common, _close_common, | ||||
|     &glibtop_backend_common_call_vector | ||||
| }; | ||||
| #endif | ||||
|  | ||||
| static int | ||||
| _open_common (glibtop_server *server, glibtop_backend *backend, | ||||
| 	      u_int64_t features, const char **backend_args) | ||||
| { | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static int | ||||
| _close_common (glibtop_server *server, glibtop_backend *backend, | ||||
| 	       void *closure) | ||||
| { | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -1,37 +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_COMMON_H__ | ||||
| #define __GLIBTOP_BACKEND_COMMON_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
| #include <glibtop/glibtop-backend.h> | ||||
| #include <glibtop/glibtop-backend-info.h> | ||||
|  | ||||
| #endif | ||||
| @@ -1,13 +0,0 @@ | ||||
| <?xml version="1.0"?> <!-- -*-xml-*- --> | ||||
| <!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'> | ||||
| <libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1"> | ||||
|  | ||||
|   <libgtop:Backend> | ||||
|     <libgtop:Name>glibtop-backend-common</libgtop:Name> | ||||
|     <libgtop:Location> | ||||
|       <libgtop:LibtoolName>libgtop_backend_common.la</libgtop:LibtoolName> | ||||
|       <libgtop:ShlibName>libgtop_backend_common.so</libgtop:ShlibName> | ||||
|     </libgtop:Location> | ||||
|   </libgtop:Backend> | ||||
|  | ||||
| </libgtop:Backends> | ||||
| @@ -1,175 +0,0 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| require 'c_types.pl'; | ||||
|  | ||||
| $[ = 1;			# set array base to 1 | ||||
| $, = ' ';		# set output field separator | ||||
| $\ = "\n";		# set output record separator | ||||
|  | ||||
| $always_use_temp_storage = 1; | ||||
|  | ||||
| sub toupper { | ||||
|     local($_) = @_; | ||||
|     tr/a-z/A-Z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| sub tolower { | ||||
|     local($_) = @_; | ||||
|     tr/A-Z/a-z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| print '/* marshal.c */'; | ||||
| print "/* This is a generated file.  Please modify `marshal.pl' */"; | ||||
| print ''; | ||||
|  | ||||
| print '#include <backend-common.h>'; | ||||
| print ''; | ||||
| print '#include <glibtop/sysdeps.h>'; | ||||
| print '#include <glibtop/union.h>'; | ||||
| print ''; | ||||
| print '#include <glibtop/call-vector.h>'; | ||||
| print ''; | ||||
|  | ||||
| $feature_count = 0; | ||||
|  | ||||
| while (<>) { | ||||
|     chop;	# strip record separator | ||||
|  | ||||
|     if (/^[^#]/) { | ||||
| 	&output($_); | ||||
|     } | ||||
| } | ||||
|  | ||||
| sub output { | ||||
|     local($line) = @_; | ||||
|     @line_fields = split(/\|/, $line, 9999); | ||||
|     $retval = $line_fields[1]; | ||||
|     $feature = $line_fields[2]; | ||||
|     $param_def = $line_fields[4]; | ||||
|  | ||||
|     $orig = $feature; | ||||
|     $feature =~ s/^@//; | ||||
|     $space = $feature; | ||||
|     $space =~ s/./ /g; | ||||
|  | ||||
|     $features{++$feature_count} = $orig; | ||||
|  | ||||
|     return unless $orig =~ /^@/; | ||||
|  | ||||
|     if ($retval eq 'retval') { | ||||
|       $retval_param = '&retval'; | ||||
|       $call_prefix = ''; | ||||
|       $call_prefix_space = ''; | ||||
|       $prefix = 'retval = '; | ||||
|       $prefix_space = '         '; | ||||
|       $retval = 'int'; | ||||
|     } | ||||
|     elsif ($retval !~ /^void$/) { | ||||
|       $retval_param = 'NULL'; | ||||
|       $prefix = 'retval = '; | ||||
|       $prefix_space = '         '; | ||||
|       $call_prefix = 'retval = '; | ||||
|       $call_prefix_space = '         '; | ||||
|     } | ||||
|     else { | ||||
|       $retval_param = 'NULL'; | ||||
|       $call_prefix = ''; | ||||
|       $call_prefix_space = ''; | ||||
|       $prefix = ''; | ||||
|       $prefix_space = ''; | ||||
|     } | ||||
|  | ||||
|     if ($retval =~ /^(array|pointer)\((.*)\)$/) { | ||||
|       $retval = ($2 eq 'string') ? 'char **' : "$2 *"; | ||||
|     } | ||||
|  | ||||
|     $need_temp_storage = $always_use_temp_storage; | ||||
|     $first_param_name = ''; | ||||
|  | ||||
|     $call_param = ''; | ||||
|     $param_decl = ''; | ||||
|     $need_temp_len = 0; | ||||
|     $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]; | ||||
|  | ||||
| 	if ($first_param_name eq '') { | ||||
| 	  $first_param_name = $fields[$field]; | ||||
| 	} | ||||
|  | ||||
| 	if ($typeinfo->{$type}->[2]) { | ||||
| 	  $need_temp_storage = 1; | ||||
| 	} | ||||
|  | ||||
| 	if ($param_decl eq '') { | ||||
| 	  $param_decl = ",\n             " . $space . '    '; | ||||
| 	} | ||||
| 	else { | ||||
| 	  $param_decl = $param_decl . ', '; | ||||
| 	} | ||||
| 	$param_decl = $param_decl . $c_type . ' ' . $fields[$field]; | ||||
| 	$call_param = $call_param . ', ' . $fields[$field]; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     if ($line_fields[3] eq '') { | ||||
|       $total_code = sprintf | ||||
| 	("\treturn glibtop_get_%s_s (server%s);\n", $feature, $call_param); | ||||
|     } elsif ($line_fields[3] eq 'array') { | ||||
|       $total_code = sprintf | ||||
| 	("\treturn glibtop_get_%s_s (server, array%s);\n", $feature, $call_param); | ||||
|     } elsif ($line_fields[3] =~ /^array/) { | ||||
|       $total_code = sprintf | ||||
| 	("\treturn glibtop_get_%s_s (server, array, buf%s);\n", $feature, $call_param); | ||||
|     } else { | ||||
|       $total_code = sprintf | ||||
| 	("\treturn glibtop_get_%s_s (server, buf%s);\n", $feature, $call_param); | ||||
|     } | ||||
|  | ||||
|     $func_decl = 'static '.$retval."\n"; | ||||
|     if ($line_fields[3] eq '') { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n", | ||||
| 			     $feature, $param_decl); | ||||
|     } elsif ($line_fields[3] eq 'array') { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n", | ||||
| 			     $feature, $param_decl); | ||||
|     } elsif ($line_fields[3] =~ /^array/) { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n", | ||||
| 			     $feature, 'glibtop_'.$feature, $param_decl); | ||||
|     } else { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n", | ||||
| 			     $feature, 'glibtop_'.$feature, $param_decl); | ||||
|     } | ||||
|  | ||||
|     $total_code = sprintf ("%s{\n%s\n%s}\n", $func_decl, $total_code); | ||||
|  | ||||
|     print $total_code; | ||||
| } | ||||
|  | ||||
| $call_vector_code = ''; | ||||
| for ($nr = 1; $nr <= $feature_count; $nr++) { | ||||
|   $feature = $features{$nr}; | ||||
|  | ||||
|   if ($feature =~ /^@/) { | ||||
|     $feature =~ s/^@//; | ||||
|  | ||||
|     $call_vector_code .= sprintf (qq[\t_glibtop_get_%s_c,\n], $feature); | ||||
|   } else { | ||||
|     $call_vector_code .= sprintf (qq[\tNULL,\n]); | ||||
|   } | ||||
| } | ||||
|  | ||||
| print 'glibtop_call_vector glibtop_backend_common_call_vector = {'; | ||||
| print $call_vector_code; | ||||
| print '};'; | ||||
| print ''; | ||||
|  | ||||
| @@ -1,10 +0,0 @@ | ||||
| .deps | ||||
| .libs | ||||
| Makefile | ||||
| Makefile.in | ||||
| *.lo | ||||
| *.la | ||||
| marshal.c | ||||
| demarshal.c | ||||
| libgtop_server | ||||
| command.h | ||||
| @@ -1,85 +0,0 @@ | ||||
| 2000-11-27  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* backend-server.c (backend_server_quark): New global variable. | ||||
| 	(_open_server, _close_server): Use the quark. | ||||
| 	* commands.c: Likewise. | ||||
|  | ||||
| 2000-11-26  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* backend-server.h: New file. | ||||
| 	(backend_server_private): New struct, formerly known | ||||
| 	as glibtop_backend_private. | ||||
|  | ||||
| 	* glibtop-backend-private.h: Removed. | ||||
|  | ||||
| 	* backend-server.c: (_open_server): Use g_object_set_data() | ||||
| 	to set add the backend_server_private data to the glibtop_backend, | ||||
| 	don't override `backend->_priv'. | ||||
| 	(_close_server): Use g_object_get_data() to get the data. | ||||
| 	[FIXME: Use quarks directly.] | ||||
|  | ||||
| 	* read.c: (glibtop_read_i): Replaced the glibtop_server and | ||||
| 	glibtop_backend arguments with backend_server_private. | ||||
| 	* read_data.c: (glibtop_read_data_i): Likewise. | ||||
| 	* write.c: (glibtop_write_i): Likewise. | ||||
|  | ||||
| 2000-02-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* backend-sysdeps.c (LibGTopBackendInfo): Call this | ||||
| 	`LibGTopBackendInfo_Server' when we don't use gmodule. | ||||
|  | ||||
| 2000-02-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR) | ||||
| 	when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise. | ||||
|  | ||||
| 2000-01-18  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* demarshal.pl: Only emit code for functions which are | ||||
| 	really suid/sgid. | ||||
|  | ||||
| 2000-01-13  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* write.c (glibtop_write_i): The buffer which we write is | ||||
| 	now a `const'. | ||||
|  | ||||
| 2000-01-12  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am: Install everything except the server binary | ||||
| 	in $(LIBGTOP_BACKEND_DIR). | ||||
|  | ||||
| 	* libgtop-server.backend: New file. | ||||
|  | ||||
| 	* backend-server.c (glibtop_backend_server): Renamed to | ||||
| 	`LibGTopBackendInfo'. | ||||
|  | ||||
| 2000-01-08  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* command.h.in (glibtop_response): New structure. | ||||
|  | ||||
| 2000-01-02  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* command.pl: New file. Creates `command.h' from `command.h.in'. | ||||
| 	* command.h.in: New file. Template file for `command.h'. | ||||
|  | ||||
| 	* io.c, version.c: New files. Copied here from `src/daemon'. | ||||
|  | ||||
| 	* demarshal.pl: New file. Automatically creates `demarshal.c'. | ||||
| 	* demarshal.c: This automatically created file handles the | ||||
| 	demarshalling in the libgtop_server. | ||||
|  | ||||
| 	* Makefile.am: Build the `libgtop_server' here. | ||||
| 	* server.c, server.h: New files. Copied here from `src/daemon'. | ||||
|  | ||||
| 2000-01-01  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	Initial version of the "glibtop-backend-server" backend. | ||||
|  | ||||
| 	* command.c, read.c, read_data.c, write.c: New files. Moved here | ||||
| 	from the `lib' directory. | ||||
|  | ||||
| 	* backend-server.c: New file. | ||||
| 	* glibtop-backend-private.h: New file. | ||||
|  | ||||
| 	* marshal.pl: New file. Automatically creates `marshal.c'. | ||||
|  | ||||
| @@ -1,85 +0,0 @@ | ||||
| LINK		= $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ | ||||
|  | ||||
| INCLUDES	= @INCLUDES@ -D_BSD \ | ||||
| 		  -DLIBGTOP_COMPILE_SYSTEM=\"`uname -s`\" \ | ||||
| 		  -DLIBGTOP_COMPILE_RELEASE=\"`uname -r`\" \ | ||||
| 		  -DLIBGTOP_COMPILE_MACHINE=\"`uname -m`\" | ||||
|  | ||||
| backenddir	= @LIBGTOP_BACKEND_DIR@ | ||||
|  | ||||
| if LIBGTOP_USE_GMODULE | ||||
| backendlibdir	= $(backenddir) | ||||
| else | ||||
| backendlibdir	= $(libdir) | ||||
| endif | ||||
|  | ||||
| dynamic_ldflags	= @libgtop_dynamic_ldflags@ | ||||
|  | ||||
| backend_DATA = \ | ||||
| 	libgtop-server.backend | ||||
|  | ||||
| noinst_HEADERS = \ | ||||
| 	backend-server.h | ||||
|  | ||||
| backendlib_LTLIBRARIES = \ | ||||
| 	libgtop_backend_server.la | ||||
|  | ||||
| bin_PROGRAMS = \ | ||||
| 	@server_programs@ | ||||
|  | ||||
| EXTRA_PROGRAMS = \ | ||||
| 	libgtop_server | ||||
|  | ||||
| libgtop_backend_server_la_SOURCES = \ | ||||
| 	backend-server.c		\ | ||||
| 	marshal.c			\ | ||||
| 	command.c			\ | ||||
| 	read.c				\ | ||||
| 	read_data.c			\ | ||||
| 	write.c | ||||
|  | ||||
| libgtop_backend_server_la_LDFLAGS = \ | ||||
| 	$(LT_VERSION_INFO) $(dynamic_ldflags) | ||||
|  | ||||
| libgtop_server_SOURCES = \ | ||||
| 	server.c		\ | ||||
| 	server.h		\ | ||||
| 	demarshal.c		\ | ||||
| 	version.c		\ | ||||
| 	io.c | ||||
|  | ||||
| libgtop_server_LDADD = \ | ||||
| 	$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps_suid.la \ | ||||
| 	$(top_builddir)/sysdeps/common/libgtop_suid_common.la \ | ||||
| 	@LIBSUPPORT@ | ||||
|  | ||||
| if ENABLE_STATIC | ||||
| libgtop_server_LDFLAGS = -static | ||||
| endif | ||||
|  | ||||
| BUILT_SOURCES = \ | ||||
| 	marshal.c		\ | ||||
| 	demarshal.c		\ | ||||
| 	command.h | ||||
|  | ||||
| EXTRA_DIST = \ | ||||
| 	marshal.pl		\ | ||||
| 	demarshal.pl		\ | ||||
| 	command.pl		\ | ||||
| 	command.h.in		\ | ||||
| 	libgtop-server.backend | ||||
|  | ||||
| CLEANFILES = $(BUILT_SOURCES) | ||||
|  | ||||
| marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl | ||||
| 	$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t | ||||
| 	mv tmp-t marshal.c | ||||
|  | ||||
| demarshal.c: demarshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl | ||||
| 	$(PERL) -I $(top_srcdir)/scripts $(srcdir)/demarshal.pl < $(top_srcdir)/features.def > tmp-t | ||||
| 	mv tmp-t demarshal.c | ||||
|  | ||||
| command.h: command.pl command.h.in $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl | ||||
| 	$(PERL) -I $(top_srcdir)/scripts $(srcdir)/command.pl $(top_srcdir)/features.def $(srcdir)/command.h.in > tmp-t | ||||
| 	mv tmp-t command.h | ||||
|  | ||||
| @@ -1,113 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <backend-server.h> | ||||
|  | ||||
| static int | ||||
| _open_server (glibtop_server *, glibtop_backend *, u_int64_t, const char **); | ||||
|  | ||||
| static int | ||||
| _close_server (glibtop_server *, glibtop_backend *, void *); | ||||
|  | ||||
| extern glibtop_call_vector glibtop_backend_server_call_vector; | ||||
|  | ||||
| #ifdef LIBGTOP_USE_GMODULE | ||||
| glibtop_backend_info LibGTopBackendInfo = { | ||||
|     "glibtop-backend-server", _open_server, _close_server, | ||||
|     &glibtop_backend_server_call_vector | ||||
| }; | ||||
| #else | ||||
| glibtop_backend_info LibGTopBackendInfo_Server = { | ||||
|     "glibtop-backend-server", _open_server, _close_server, | ||||
|     &glibtop_backend_server_call_vector | ||||
| }; | ||||
| #endif | ||||
|  | ||||
| static int | ||||
| _open_server (glibtop_server *server, glibtop_backend *backend, | ||||
| 	      u_int64_t features, const char **backend_args) | ||||
| { | ||||
|     backend_server_private *priv; | ||||
|  | ||||
|     priv = glibtop_calloc_r (server, 1, sizeof (backend_server_private)); | ||||
|  | ||||
|     glibtop_backend_set_closure_data (backend, priv); | ||||
|  | ||||
| #ifdef DEBUG | ||||
|     fprintf (stderr, "open_server - %p, %p, %p\n", server, backend, priv); | ||||
|  | ||||
|     fprintf (stderr, "Opening pipe to server (%s).\n", LIBGTOP_SERVER); | ||||
| #endif | ||||
|  | ||||
|     if (pipe (priv->input) || pipe (priv->output)) { | ||||
| 	glibtop_warn_io_r (server, "cannot make a pipe"); | ||||
| 	return -1; | ||||
|     } | ||||
|  | ||||
|     priv->pid  = fork (); | ||||
|  | ||||
|     if (priv->pid < 0) { | ||||
| 	glibtop_warn_io_r (server, "fork failed"); | ||||
| 	return -1; | ||||
|     } else if (priv->pid == 0) { | ||||
| 	close (0); close (1); | ||||
| 	close (priv->input [0]); | ||||
| 	close (priv->output [1]); | ||||
| 	dup2 (priv->input [1], 1); | ||||
| 	dup2 (priv->output [0], 0); | ||||
| 	execl (LIBGTOP_SERVER, "libgtop-server", NULL); | ||||
| 	glibtop_error_io_r (server, "execl (%s)", | ||||
| 			    LIBGTOP_SERVER); | ||||
| 	_exit (2); | ||||
|     } | ||||
|  | ||||
|     close (priv->input [1]); | ||||
|     close (priv->output [0]); | ||||
|  | ||||
|     glibtop_server_ref (server); | ||||
|     priv->server = server; | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static int | ||||
| _close_server (glibtop_server *server, glibtop_backend *backend, | ||||
| 	       void *closure) | ||||
| { | ||||
|     backend_server_private *priv = closure; | ||||
|  | ||||
|     kill (priv->pid, SIGKILL); | ||||
|     close (priv->input [0]); | ||||
|     close (priv->output [1]); | ||||
|  | ||||
|     glibtop_server_unref (priv->server); | ||||
|  | ||||
|     priv->pid = 0; | ||||
|  | ||||
|     g_free (priv); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -1,66 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_BACKEND_COMMON_H__ | ||||
| #define __GLIBTOP_BACKEND_COMMON_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
| #include <glibtop/glibtop-backend.h> | ||||
| #include <glibtop/glibtop-backend-info.h> | ||||
|  | ||||
| typedef struct _backend_server_private backend_server_private; | ||||
|  | ||||
| struct _backend_server_private | ||||
| { | ||||
|     u_int64_t flags; | ||||
|     int input [2];		/* Pipe client <- server */ | ||||
|     int output [2];		/* Pipe client -> server */ | ||||
|     pid_t pid;			/* PID of the server */ | ||||
|  | ||||
|     glibtop_server *server; | ||||
| }; | ||||
|  | ||||
| void * | ||||
| glibtop_call_i (glibtop_server *server, backend_server_private *priv, | ||||
| 		unsigned command, size_t send_size, const void *send_ptr, | ||||
| 		size_t data_size, const void *data_ptr, | ||||
| 		size_t recv_size, void *recv_ptr, | ||||
| 		int *retval_ptr); | ||||
|  | ||||
| void | ||||
| glibtop_read_i (backend_server_private *priv, size_t size, void *buf); | ||||
|  | ||||
| void * | ||||
| glibtop_read_data_i (backend_server_private *priv); | ||||
|  | ||||
| void | ||||
| glibtop_write_i (backend_server_private *priv, size_t size, const void *buf); | ||||
|  | ||||
| #endif | ||||
|  | ||||
| @@ -1,100 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <backend-server.h> | ||||
|  | ||||
| #include "command.h" | ||||
|  | ||||
| void * | ||||
| glibtop_call_i (glibtop_server *server, backend_server_private *priv, | ||||
| 		unsigned command, size_t send_size, const void *send_buf, | ||||
| 		size_t data_size, const void *data_buf, | ||||
| 		size_t recv_size, void *recv_ptr, | ||||
| 		int *retval_ptr) | ||||
| { | ||||
|     glibtop_command cmnd; | ||||
|     glibtop_response resp; | ||||
| #if 0 | ||||
|     int retval; | ||||
| #endif | ||||
|  | ||||
|     memset (&cmnd, 0, sizeof (glibtop_command)); | ||||
|     memset (&resp, 0, sizeof (glibtop_response)); | ||||
|  | ||||
|     cmnd.command = command; | ||||
|  | ||||
|     /* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we | ||||
|      * send it together with command, so we only need one system call instead | ||||
|      * of two. */ | ||||
|  | ||||
|     if (send_size <= _GLIBTOP_PARAM_SIZE) { | ||||
| 	memcpy (cmnd.parameter, send_buf, send_size); | ||||
| 	cmnd.param_size = send_size; | ||||
|     } else { | ||||
| 	cmnd.send_size = send_size; | ||||
|     } | ||||
|  | ||||
|     cmnd.data_size = data_size; | ||||
| 	 | ||||
|     glibtop_write_i (priv, sizeof (glibtop_command), &cmnd); | ||||
|  | ||||
|     if (data_size) { | ||||
| #ifdef SLAVE_DEBUG | ||||
| 	fprintf (stderr, "SENDING %d bytes of DATA.\n", data_size); | ||||
| #endif | ||||
| 	glibtop_write_i (priv, data_size, data_buf); | ||||
|     } | ||||
|  | ||||
|     glibtop_read_i (priv, sizeof (glibtop_response), &resp); | ||||
|  | ||||
| #ifdef SLAVE_DEBUG | ||||
|     fprintf (stderr, "RESPONSE: %d - %d - %ld - %ld - %p - %ld\n", | ||||
| 	     resp.retval, resp.glibtop_errno, | ||||
| 	     (long) resp.recv_size, (long) resp.data_size, | ||||
| 	     recv_ptr, (long) recv_size); | ||||
| #endif | ||||
|      | ||||
|     if (retval_ptr) | ||||
| 	*retval_ptr = resp.glibtop_errno; | ||||
|  | ||||
|     if (resp.recv_size != recv_size) { | ||||
| 	glibtop_warn_r (server, "Expected %ld bytes, but got %ld.", | ||||
| 			(long) recv_size, (long) resp.recv_size); | ||||
| 	return NULL; | ||||
|     } | ||||
|  | ||||
|     if (recv_ptr) | ||||
| 	glibtop_read_i (priv, recv_size, recv_ptr); | ||||
|  | ||||
|     if (resp.data_size) { | ||||
| 	void *ptr = glibtop_malloc_r (server, resp.data_size); | ||||
|  | ||||
| 	glibtop_read_i (priv, resp.data_size, ptr); | ||||
|  | ||||
| 	return ptr; | ||||
|     } | ||||
|  | ||||
|     return NULL; | ||||
| } | ||||
| @@ -1,59 +0,0 @@ | ||||
| /* -*- 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. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_COMMAND_H__ | ||||
| #define __GLIBTOP_COMMAND_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/union.h> | ||||
|  | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| @@GLIBTOP_COMMAND_CONSTANTS@@ | ||||
|  | ||||
| #define _GLIBTOP_PARAM_SIZE		16 | ||||
|  | ||||
| typedef struct _glibtop_command		glibtop_command; | ||||
| typedef struct _glibtop_response	glibtop_response; | ||||
|  | ||||
| struct _glibtop_command | ||||
| { | ||||
|     u_int64_t	command; | ||||
|     u_int64_t	param_size, send_size, data_size; | ||||
|     char	parameter [_GLIBTOP_PARAM_SIZE]; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_response | ||||
| { | ||||
|     int retval; | ||||
|     int glibtop_errno; | ||||
|     u_int64_t recv_size, data_size; | ||||
| }; | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,76 +0,0 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| require 'c_types.pl'; | ||||
|  | ||||
| die "Usage: $0 features.def command.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 $_; | ||||
| } | ||||
|  | ||||
| $constants_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; | ||||
|  | ||||
|   $constants_decl_code .= sprintf | ||||
|     (qq[\#define %-40s %d\n], 'GLIBTOP_CMND_'.&toupper($feature), | ||||
|      ++$feature_count); | ||||
|  | ||||
|   $features{$feature_count} = $feature; | ||||
| } | ||||
|  | ||||
| chop $constants_decl_code; | ||||
|  | ||||
| $auto_gen_comment = sprintf | ||||
|   (qq[/*\n * This file is automatically generated.\n * Please modify `command.pl' and `command.h.in'.\n */]); | ||||
|  | ||||
| open COMMAND, $ARGV[2] or | ||||
|   die "open ($ARGV[2]): $!"; | ||||
|  | ||||
| while (<COMMAND>) { | ||||
|   chop; | ||||
|  | ||||
|   s/^\s*\@\@GLIBTOP_COMMAND_CONSTANTS\@\@\s*$/$constants_decl_code/; | ||||
|  | ||||
|   s/^\s*\@\@AUTOGEN_COMMENT\@\@\s*$/$auto_gen_comment/; | ||||
| } continue { | ||||
|   print $_; | ||||
| } | ||||
|  | ||||
| close COMMAND; | ||||
| @@ -1,386 +0,0 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| require 'c_types.pl'; | ||||
|  | ||||
| $[ = 1;			# set array base to 1 | ||||
| $, = ' ';		# set output field separator | ||||
| $\ = "\n";		# set output record separator | ||||
|  | ||||
| $always_use_temp_storage = 0; | ||||
|  | ||||
| sub toupper { | ||||
|     local($_) = @_; | ||||
|     tr/a-z/A-Z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| sub tolower { | ||||
|     local($_) = @_; | ||||
|     tr/A-Z/a-z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| print '/* demarshal.c */'; | ||||
| print "/* This is a generated file.  Please modify `demarshal.pl' */"; | ||||
| print ''; | ||||
|  | ||||
| print '#include <glibtop.h>'; | ||||
| print '#include <glibtop/open.h>'; | ||||
| print '#include <glibtop/xmalloc.h>'; | ||||
| print ''; | ||||
| print '#include <glibtop/sysdeps.h>'; | ||||
| print '#include <glibtop/union.h>'; | ||||
| print ''; | ||||
| print '#include <glibtop/backend.h>'; | ||||
| print ''; | ||||
| print '#include <glibtop-backend-private.h>'; | ||||
| print '#include "server.h"'; | ||||
| print ''; | ||||
|  | ||||
| $feature_count = 0; | ||||
|  | ||||
| while (<>) { | ||||
|   chop;	# strip record separator | ||||
|  | ||||
|   if (/^[^\#]/) { | ||||
|     &output($_); | ||||
|   } | ||||
| } | ||||
|  | ||||
| sub output { | ||||
|   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]; | ||||
|  | ||||
|   return if $feature =~ /^@/; | ||||
|   $name = 'glibtop_'.$feature; | ||||
|    | ||||
|   $orig = $feature; | ||||
|   $feature =~ s/^@//; | ||||
|   $space = $feature; | ||||
|   $space =~ s/./ /g; | ||||
|    | ||||
|   $features{++$feature_count} = $feature; | ||||
|  | ||||
|   $orig_retval = $retval; | ||||
|    | ||||
|   if ($retval eq 'retval') { | ||||
|     $retval_param = '&retval'; | ||||
|     $call_prefix = ''; | ||||
|     $call_prefix_space = ''; | ||||
|     $prefix = 'retval = '; | ||||
|     $prefix_space = '         '; | ||||
|     $retval = 'int'; | ||||
|   } elsif ($retval !~ /^void$/) { | ||||
|     $retval_param = 'NULL'; | ||||
|     $prefix = 'retval = '; | ||||
|     $prefix_space = '         '; | ||||
|     $call_prefix = 'retval = '; | ||||
|     $call_prefix_space = '         '; | ||||
|   } else { | ||||
|     $retval_param = 'NULL'; | ||||
|     $call_prefix = ''; | ||||
|     $call_prefix_space = ''; | ||||
|     $prefix = ''; | ||||
|     $prefix_space = ''; | ||||
|   } | ||||
|    | ||||
|   if ($retval =~ /^(array|pointer)\((.*)\)$/) { | ||||
|     $retval = ($2 eq 'string') ? 'char **' : "$2 *"; | ||||
|   } | ||||
|    | ||||
|   $need_temp_storage = $always_use_temp_storage; | ||||
|   $first_param_name = ''; | ||||
|   $size_code = "\t/* send size */\n"; | ||||
|   $size_code .= "\t_LIBGTOP_SEND_len = 0;\n"; | ||||
|    | ||||
|   $local_var_decl_code = ''; | ||||
|   $local_var_decl_code .= "\tsize_t _LIBGTOP_SEND_len, _LIBGTOP_RECV_len;\n"; | ||||
|   $local_var_decl_code .= "\toff_t _LIBGTOP_SEND_offset;\n"; | ||||
|   $local_var_decl_code .= "\tchar *_LIBGTOP_RECV_buf, *_LIBGTOP_RECV_ptr;\n"; | ||||
|   $local_var_decl_code .= "\tconst char *_LIBGTOP_SEND_ptr;\n"; | ||||
|   $local_var_decl_code .= sprintf | ||||
|     (qq[\tglibtop_%s %s;\n], $feature, $feature); | ||||
|   if ($retval !~ /^void$/) { | ||||
|     $local_var_decl_code .= sprintf ("\t%s retval = (%s) 0;\n", | ||||
| 				     $retval, $retval); | ||||
|   } | ||||
|  | ||||
|   $init_local_var_code = "\t/* variable initialization */\n"; | ||||
|   $init_local_var_code .= sprintf | ||||
|     (qq[\tmemset (&%s, 0, sizeof (glibtop_%s));\n], $feature, $feature); | ||||
|   $init_local_var_code .= "\t_LIBGTOP_SEND_offset = 0;\n"; | ||||
|   $init_local_var_code .= "\t_LIBGTOP_SEND_ptr = ". | ||||
|     "(char *) send_ptr;\n"; | ||||
|  | ||||
|   $demarshal_code = ''; | ||||
|  | ||||
|   $call_param = ''; | ||||
|   $param_decl = ''; | ||||
|   $need_temp_len = 0; | ||||
|   $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]; | ||||
|        | ||||
|       if ($first_param_name eq '') { | ||||
| 	$first_param_name = $fields[$field]; | ||||
|       } | ||||
|        | ||||
|       if ($typeinfo->{$type}->[2]) { | ||||
| 	$need_temp_storage = 1; | ||||
|       } | ||||
|        | ||||
|       if ($param_decl eq '') { | ||||
| 	$param_decl = ",\n            " . $space . '    '; | ||||
|       } else { | ||||
| 	$param_decl = $param_decl . ', '; | ||||
|       } | ||||
|       $param_decl = $param_decl . $c_type . ' ' . $fields[$field]; | ||||
|       $call_param = $call_param . ', _LIBGTOP_demarshal_' . $fields[$field]; | ||||
|  | ||||
|       $size_code .= "\t_LIBGTOP_SEND_len += "; | ||||
|       if ($typeinfo->{$type}->[2]) { | ||||
| 	$size_code .= sprintf ("sizeof (size_t)"); | ||||
|       } else { | ||||
| 	$size_code .= sprintf ("sizeof (%s)", $c_type); | ||||
|       } | ||||
|       $size_code .= ";\n"; | ||||
|  | ||||
|       $local_var_decl_code .= sprintf | ||||
| 	(qq[\t%s _LIBGTOP_demarshal_%s;\n], $c_type, $fields[$field]); | ||||
|       $init_local_var_code .= sprintf | ||||
| 	(qq[\tmemset (&_LIBGTOP_demarshal_%s, 0, sizeof (%s));\n], | ||||
| 	 $fields[$field], $c_type); | ||||
|  | ||||
|       $demarshal_code .= "\t_LIBGTOP_SEND_ptr = ". | ||||
| 	"(char *) send_ptr + _LIBGTOP_SEND_offset;\n"; | ||||
|  | ||||
|       if ($typeinfo->{$type}->[2]) { | ||||
| 	$demarshal_code .= sprintf ("\tmemcpy (&_LIBGTOP_TEMP_len, _LIBGTOP_SEND_ptr, sizeof (size_t));\n"); | ||||
| 	$demarshal_code .= sprintf | ||||
| 	  (qq[\t_LIBGTOP_DATA_len += _LIBGTOP_TEMP_len;\n]); | ||||
| 	$demarshal_code .= sprintf | ||||
| 	  (qq[\tif (_LIBGTOP_DATA_len > data_size)\n\t\treturn -GLIBTOP_ERROR_DEMARSHAL_ERROR;\n]); | ||||
| 	$demarshal_code .= sprintf | ||||
| 	  (qq[\t_LIBGTOP_DATA_offset += _LIBGTOP_TEMP_len;\n]); | ||||
|       } | ||||
|  | ||||
|       if (defined $demarshal_funcs->{$type}) { | ||||
| 	$demarshal_code .= $demarshal_funcs->{$type}->($c_type, $fields[$field], "\t"); | ||||
|       } else { | ||||
| 	$demarshal_code .= sprintf ("\tmemcpy (&_LIBGTOP_demarshal_%s, _LIBGTOP_SEND_ptr, %s);\n", | ||||
| 				    $fields[$field], "sizeof ($c_type)"); | ||||
|       } | ||||
|  | ||||
|       $demarshal_code .= "\t_LIBGTOP_SEND_offset += "; | ||||
|       if ($typeinfo->{$type}->[2]) { | ||||
| 	$demarshal_code .= sprintf ("sizeof (size_t)"); | ||||
|       } else { | ||||
| 	$demarshal_code .= sprintf ("sizeof (%s)", $c_type); | ||||
|       } | ||||
|       $demarshal_code .= ";\n"; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if (!($demarshal_code eq '')) { | ||||
|     $demarshal_code = sprintf (qq[\t/* demarshal start */\n%s\n], | ||||
| 			       $demarshal_code); | ||||
|   } | ||||
|  | ||||
|   if ($line_fields[3] eq '') { | ||||
|     $call_code = sprintf | ||||
|       ("\tretval = glibtop_get_%s_p (server%s);\n", | ||||
|        $feature, $call_param); | ||||
|   } elsif ($line_fields[3] eq 'array') { | ||||
|     $call_code = sprintf | ||||
|       ("\tretval = glibtop_get_%s_p (server, &array%s);\n", | ||||
|        $feature, $call_param); | ||||
|     $local_var_decl_code .= sprintf (qq[\tglibtop_array array;\n]); | ||||
|   } elsif ($line_fields[3] =~ /^array/) { | ||||
|     $call_code = sprintf | ||||
|       ("\tretval = glibtop_get_%s_p (server, &array, &%s%s);\n", | ||||
|        $feature, $feature, $call_param); | ||||
|     $local_var_decl_code .= sprintf (qq[\tglibtop_array array;\n]); | ||||
|   } else { | ||||
|     $call_code = sprintf | ||||
|       ("\tretval = glibtop_get_%s_p (server, &%s%s);\n", | ||||
|        $feature, $feature, $call_param); | ||||
|   } | ||||
|  | ||||
|   if ($orig_retval eq 'retval') { | ||||
|     $call_code .= sprintf | ||||
|       (qq[\tif (retval_ptr)\n\t\t*retval_ptr = retval;\n]); | ||||
|   } else { | ||||
|     $call_code .= sprintf | ||||
|       (qq[\tif (retval_ptr)\n\t\t*retval_ptr = server->glibtop_errno;\n]); | ||||
|   } | ||||
|  | ||||
|   $size_code .= sprintf | ||||
|     (qq[\tif (_LIBGTOP_SEND_len != send_size)\n\t\treturn -GLIBTOP_ERROR_DEMARSHAL_ERROR;\n\n]); | ||||
|  | ||||
|   $size_code .= "\t/* recv size */\n"; | ||||
|   $size_code .= "\t_LIBGTOP_RECV_len = 0;\n"; | ||||
|   if ($line_fields[3] eq '') { | ||||
|   } elsif ($line_fields[3] eq 'array') { | ||||
|     $size_code .= "\t_LIBGTOP_RECV_len += sizeof (glibtop_array);\n"; | ||||
|   } elsif ($line_fields[3] =~ /^array/) { | ||||
|     $size_code .= "\t_LIBGTOP_RECV_len += sizeof (glibtop_array);\n"; | ||||
|     $size_code .= sprintf | ||||
|       (qq[\t_LIBGTOP_RECV_len += sizeof (glibtop_%s);\n], $feature); | ||||
|   } else { | ||||
|     $size_code .= sprintf | ||||
|       (qq[\t_LIBGTOP_RECV_len += sizeof (glibtop_%s);\n], $feature); | ||||
|   } | ||||
|   $size_code .= "\n"; | ||||
|  | ||||
|   $size_code .= "\t/* recv buffer */\n"; | ||||
|   if ($line_fields[3] eq '') { | ||||
|     $size_code .= "\t_LIBGTOP_RECV_buf = NULL;\n"; | ||||
|   } else { | ||||
|     $size_code .= "\t_LIBGTOP_RECV_buf = glibtop_malloc_r (server, _LIBGTOP_RECV_len);\n"; | ||||
|   } | ||||
|   $size_code .= "\t_LIBGTOP_RECV_ptr = _LIBGTOP_RECV_buf;\n\n"; | ||||
|  | ||||
|   $recv_buf_code = ''; | ||||
|   if ($line_fields[3] eq '') { | ||||
|   } elsif ($line_fields[3] eq 'array') { | ||||
|     $recv_buf_code = "\t/* write recv buffer */\n"; | ||||
|     $recv_buf_code .= sprintf | ||||
|       (qq[\tmemcpy (_LIBGTOP_RECV_ptr, &array, sizeof (glibtop_array));\n]); | ||||
|     $recv_buf_code .= sprintf | ||||
|       (qq[\t_LIBGTOP_RECV_ptr += sizeof (glibtop_array);\n]); | ||||
|   } elsif ($line_fields[3] =~ /^array/) { | ||||
|     $recv_buf_code = "\t/* write recv buffer */\n"; | ||||
|     $recv_buf_code .= sprintf | ||||
|       (qq[\tmemcpy (_LIBGTOP_RECV_ptr, &array, sizeof (glibtop_array));\n]); | ||||
|     $recv_buf_code .= sprintf | ||||
|       (qq[\t_LIBGTOP_RECV_ptr += sizeof (glibtop_array);\n]); | ||||
|     $recv_buf_code .= sprintf | ||||
|       (qq[\tmemcpy (_LIBGTOP_RECV_ptr, &%s, sizeof (glibtop_%s));\n], | ||||
|        $feature, $feature); | ||||
|     $recv_buf_code .= sprintf | ||||
|       (qq[\t_LIBGTOP_RECV_ptr += sizeof (glibtop_%s);\n], $feature); | ||||
|   } else { | ||||
|     $recv_buf_code = "\t/* write recv buffer */\n"; | ||||
|     $recv_buf_code .= sprintf | ||||
|       (qq[\tmemcpy (_LIBGTOP_RECV_ptr, &%s, sizeof (glibtop_%s));\n], | ||||
|        $feature, $feature); | ||||
|     $recv_buf_code .= sprintf | ||||
|       (qq[\t_LIBGTOP_RECV_ptr += sizeof (glibtop_%s);\n], $feature); | ||||
|   } | ||||
|  | ||||
|   $recv_buf_code .= "\n"; | ||||
|   $recv_buf_code .= "\t*recv_buf_ptr = _LIBGTOP_RECV_buf;\n"; | ||||
|   $recv_buf_code .= "\t*recv_size_ptr = _LIBGTOP_RECV_len;\n"; | ||||
|  | ||||
|   if ($orig_retval eq 'pointer(string)') { | ||||
|     $need_temp_storage = 1; | ||||
|     $local_var_decl_code .= "\tchar **_LIBGTOP_TEMP_ptr;\n"; | ||||
|     $local_var_decl_code .= "\tchar *_LIBGTOP_ARRAY_ptr;\n"; | ||||
|     $local_var_decl_code .= "\tchar *_LIBGTOP_ARRAY_base;\n"; | ||||
|     $local_var_decl_code .= "\toff_t _LIBGTOP_ARRAY_offset;\n"; | ||||
|     $local_var_decl_code .= "\toff_t *_LIBGTOP_ARRAY_off_ptr;\n"; | ||||
|  | ||||
|     $recv_buf_code .= "\n"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_TEMP_len = 0;\n"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_TEMP_ptr = retval;\n"; | ||||
|     $recv_buf_code .= "\tfor (_LIBGTOP_TEMP_ptr = retval; _LIBGTOP_TEMP_ptr && *_LIBGTOP_TEMP_ptr; _LIBGTOP_TEMP_ptr++)\n"; | ||||
|     $recv_buf_code .= "\t\t_LIBGTOP_TEMP_len += strlen (*_LIBGTOP_TEMP_ptr)+1;\n"; | ||||
|     $recv_buf_code .= "\n"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_TEMP_len += sizeof (off_t) + 1;\n"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_TEMP_len += array.number * sizeof (off_t);\n"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_ARRAY_base = glibtop_malloc_r (server, _LIBGTOP_TEMP_len);"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_ARRAY_ptr = _LIBGTOP_ARRAY_base;\n"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_ARRAY_offset = array.number * sizeof (off_t);\n"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_ARRAY_offset += sizeof (off_t);\n"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_ARRAY_off_ptr = (off_t *) _LIBGTOP_ARRAY_ptr;\n"; | ||||
|     $recv_buf_code .= "\n"; | ||||
|     $recv_buf_code .= "\t*_LIBGTOP_ARRAY_off_ptr++ = _LIBGTOP_ARRAY_offset;\n"; | ||||
|     $recv_buf_code .= "\tfor (_LIBGTOP_TEMP_ptr = retval; _LIBGTOP_TEMP_ptr && *_LIBGTOP_TEMP_ptr; _LIBGTOP_TEMP_ptr++) {\n"; | ||||
|     $recv_buf_code .= "\t\t*_LIBGTOP_ARRAY_off_ptr++ = _LIBGTOP_ARRAY_offset;\n"; | ||||
|     $recv_buf_code .= "\t\t_LIBGTOP_ARRAY_offset += strlen (*_LIBGTOP_TEMP_ptr)+1;\n"; | ||||
|     $recv_buf_code .= "\t}\n\n"; | ||||
|     $recv_buf_code .= "\t_LIBGTOP_ARRAY_ptr = (char *) _LIBGTOP_ARRAY_off_ptr;\n"; | ||||
|     $recv_buf_code .= "\tfor (_LIBGTOP_TEMP_ptr = retval; _LIBGTOP_TEMP_ptr && *_LIBGTOP_TEMP_ptr; _LIBGTOP_TEMP_ptr++) {\n"; | ||||
|     $recv_buf_code .= "\t\tstrcpy (_LIBGTOP_ARRAY_ptr, *_LIBGTOP_TEMP_ptr);\n"; | ||||
|     $recv_buf_code .= "\t\t_LIBGTOP_ARRAY_ptr += strlen (*_LIBGTOP_TEMP_ptr)+1;\n"; | ||||
|     $recv_buf_code .= "\t}\n\n"; | ||||
|     $recv_buf_code .= "\tif (recv_data_ptr) {\n"; | ||||
|     $recv_buf_code .= "\t\t*recv_data_ptr = _LIBGTOP_ARRAY_base;\n"; | ||||
|     $recv_buf_code .= "\t\t*recv_data_size_ptr = _LIBGTOP_TEMP_len;\n"; | ||||
|     $recv_buf_code .= "\t}\n"; | ||||
|  | ||||
|   } elsif ($line_fields[3] =~ /^array/) { | ||||
|     $recv_buf_code .= "\n"; | ||||
|     $recv_buf_code .= "\tif (recv_data_ptr) {\n"; | ||||
|     $recv_buf_code .= "\t\t*recv_data_ptr = retval;\n"; | ||||
|     $recv_buf_code .= "\t\t*recv_data_size_ptr = array.total;\n"; | ||||
|     $recv_buf_code .= "\t}\n"; | ||||
|   } | ||||
|  | ||||
|   if ($need_temp_storage) { | ||||
|     $local_var_decl_code .= "\tsize_t _LIBGTOP_TEMP_len;\n"; | ||||
|     $local_var_decl_code .= "\tsize_t _LIBGTOP_DATA_len;\n"; | ||||
|     $local_var_decl_code .= "\toff_t _LIBGTOP_DATA_offset;\n"; | ||||
|     $local_var_decl_code .= "\tchar *_LIBGTOP_DATA_ptr;\n"; | ||||
|  | ||||
|     $init_local_var_code .= "\t_LIBGTOP_DATA_len = 0;\n"; | ||||
|     $init_local_var_code .= "\t_LIBGTOP_DATA_offset = 0;\n"; | ||||
|     $init_local_var_code .= "\t_LIBGTOP_DATA_ptr = ". | ||||
|       "(char *) data_ptr;\n"; | ||||
|   } | ||||
|  | ||||
|   $func_decl_code = sprintf | ||||
|     (qq[static int\n_glibtop_demarshal_%s_i (glibtop *server, glibtop_backend *backend, const void *send_ptr, size_t send_size, void *data_ptr, size_t data_size, void **recv_buf_ptr, size_t *recv_size_ptr, void **recv_data_ptr, size_t *recv_data_size_ptr, int *retval_ptr)\n], $feature); | ||||
|  | ||||
|   if (!($call_code eq '')) { | ||||
|     $call_code .= "\n"; | ||||
|   } | ||||
|    | ||||
|   $func_body_code = sprintf | ||||
|     (qq[%s%s%s%s], $size_code, $demarshal_code, $call_code, $recv_buf_code); | ||||
|    | ||||
|   $total_code = sprintf | ||||
|     (qq[%s{\n%s\n%s\n%s\n\treturn 0;\n}\n], | ||||
|      $func_decl_code, $local_var_decl_code, $init_local_var_code, | ||||
|      $func_body_code); | ||||
|    | ||||
|   $total_code = sprintf ("#if GLIBTOP_SUID_%s\n\n%s\n#endif /* GLIBTOP_SUID_%s */\n\n", | ||||
| 			 &toupper($feature), $total_code, | ||||
| 			 &toupper($feature)); | ||||
|  | ||||
|   print $total_code; | ||||
| } | ||||
|  | ||||
| $func_decl_code = sprintf | ||||
|   (qq[int\nglibtop_demarshal_func_i (glibtop *server, glibtop_backend *backend, unsigned command, const void *send_ptr, size_t send_size, void *data_ptr, size_t data_size, void **recv_buf_ptr, size_t *recv_size_ptr, void **recv_data_ptr, size_t *recv_data_size_ptr, int *retval_ptr)]); | ||||
|  | ||||
| $switch_body_code = ''; | ||||
|  | ||||
| for ($nr = 1; $nr <= $feature_count; $nr++) { | ||||
|   $feature = $features{$nr}; | ||||
|  | ||||
|   $switch_body_code .= sprintf | ||||
|     (qq[#if GLIBTOP_SUID_%s\n\tcase GLIBTOP_CMND_%s:\n\t\treturn _glibtop_demarshal_%s_i\n\t\t\t(server, backend, send_ptr, send_size,\n\t\t\t data_ptr, data_size,\n\t\t\t recv_buf_ptr, recv_size_ptr,\n\t\t\t recv_data_ptr, recv_data_size_ptr, retval_ptr);\n#endif /* GLIBTOP_SUID_%s */\n], | ||||
|      &toupper ($feature), &toupper ($feature), $feature, &toupper ($feature)); | ||||
| } | ||||
|  | ||||
| $switch_code = sprintf | ||||
|   (qq[\tswitch (command) {\n%s\tdefault:\n\t\treturn -GLIBTOP_ERROR_INVALID_ARGUMENT;\n\t}\n], $switch_body_code); | ||||
|  | ||||
| $total_code = sprintf | ||||
|   (qq[%s\n{\n%s}\n\n], $func_decl_code, $switch_code); | ||||
|  | ||||
| print $total_code; | ||||
|  | ||||
| 1; | ||||
| @@ -1,114 +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. | ||||
| */ | ||||
|  | ||||
| #include "server.h" | ||||
|  | ||||
| void | ||||
| do_output (int s, glibtop_response *resp, const void *recv_ptr, | ||||
| 	   const void *data_ptr) | ||||
| { | ||||
| #ifdef DEBUG | ||||
|     fprintf (stderr, "Really writing %d bytes.\n", | ||||
| 	     sizeof (glibtop_response)); | ||||
| #endif | ||||
|  | ||||
|     if (s == 0) { | ||||
| 	if (write (1, (const void *) resp, sizeof (glibtop_response)) < 0) | ||||
| 	    glibtop_warn_io ("write"); | ||||
|     } else { | ||||
| 	if (send (s, (const void *) resp, sizeof (glibtop_response), 0) < 0) | ||||
| 	    glibtop_warn_io ("send"); | ||||
|     } | ||||
|  | ||||
|     if (resp->recv_size) { | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "Writing %ld bytes of data.\n", | ||||
| 		 (long) resp->recv_size); | ||||
| #endif | ||||
|  | ||||
| 	if (s == 0) { | ||||
| 	    if (write (1, recv_ptr, resp->recv_size) < 0) | ||||
| 		glibtop_warn_io ("write"); | ||||
| 	} else { | ||||
| 	    if (send (s, recv_ptr, resp->recv_size, 0) < 0) | ||||
| 		glibtop_warn_io ("send"); | ||||
| 	} | ||||
|     } | ||||
|  | ||||
|     if (resp->data_size) { | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "Writing %ld bytes of extra data.\n", | ||||
| 		 (long) resp->data_size); | ||||
| #endif | ||||
|  | ||||
| 	if (s == 0) { | ||||
| 	    if (write (1, data_ptr, resp->data_size) < 0) | ||||
| 		glibtop_warn_io ("write"); | ||||
| 	} else { | ||||
| 	    if (send (s, data_ptr, resp->data_size, 0) < 0) | ||||
| 		glibtop_warn_io ("send"); | ||||
| 	} | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| int | ||||
| do_read (int s, void *ptr, size_t total_size) | ||||
| { | ||||
|     int nread; | ||||
|     char *tmp_ptr; | ||||
|     size_t already_read = 0, remaining = total_size; | ||||
|  | ||||
|     while (already_read < total_size) { | ||||
| 	if (s) | ||||
| 	    nread = recv (s, ptr, remaining, 0); | ||||
| 	else | ||||
| 	    nread = read (0, ptr, remaining); | ||||
|  | ||||
| 	if ((already_read == 0) && (nread == 0)) { | ||||
| 	    glibtop_warn ("pid %d received eof.", getpid ()); | ||||
| 	    return 0; | ||||
| 	} | ||||
|  | ||||
| 	if (nread <= 0) { | ||||
| 	    glibtop_warn_io ("recv"); | ||||
| 	    return 0; | ||||
| 	} | ||||
|  | ||||
| 	already_read += nread; | ||||
| 	remaining -= nread; | ||||
| 	/* (char *) ptr += nread; */ | ||||
| 	tmp_ptr = ptr; | ||||
| 	tmp_ptr += nread; | ||||
| 	ptr = tmp_ptr; | ||||
|  | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "READ (%d): %d - %d - %d\n", | ||||
| 		 nread, already_read, remaining, total_size); | ||||
| #endif | ||||
|     } | ||||
|  | ||||
|     return already_read; | ||||
| } | ||||
| @@ -1,13 +0,0 @@ | ||||
| <?xml version="1.0"?> <!-- -*-xml-*- --> | ||||
| <!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'> | ||||
| <libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1"> | ||||
|  | ||||
|   <libgtop:Backend> | ||||
|     <libgtop:Name>glibtop-backend-server</libgtop:Name> | ||||
|     <libgtop:Location> | ||||
|       <libgtop:LibtoolName>libgtop_backend_server.la</libgtop:LibtoolName> | ||||
|       <libgtop:ShlibName>libgtop_backend_server.so</libgtop:ShlibName> | ||||
|     </libgtop:Location> | ||||
|   </libgtop:Backend> | ||||
|  | ||||
| </libgtop:Backends> | ||||
| @@ -1,305 +0,0 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| require 'c_types.pl'; | ||||
|  | ||||
| $[ = 1;			# set array base to 1 | ||||
| $, = ' ';		# set output field separator | ||||
| $\ = "\n";		# set output record separator | ||||
|  | ||||
| $always_use_temp_storage = 1; | ||||
|  | ||||
| sub toupper { | ||||
|     local($_) = @_; | ||||
|     tr/a-z/A-Z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| sub tolower { | ||||
|     local($_) = @_; | ||||
|     tr/A-Z/a-z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| print '/* marshal.c */'; | ||||
| print "/* This is a generated file.  Please modify `marshal.pl' */"; | ||||
| print ''; | ||||
|  | ||||
| print '#include <backend-server.h>'; | ||||
| print ''; | ||||
| print '#include <glibtop/sysdeps.h>'; | ||||
| print '#include <glibtop/union.h>'; | ||||
| print ''; | ||||
| print '#include "command.h"'; | ||||
| print '#include <glibtop/call-vector.h>'; | ||||
| print ''; | ||||
|  | ||||
| $feature_count = 0; | ||||
|  | ||||
| while (<>) { | ||||
|     chop;	# strip record separator | ||||
|  | ||||
|     if (/^[^#]/) { | ||||
| 	&output($_); | ||||
|     } | ||||
| } | ||||
|  | ||||
| sub output { | ||||
|     local($line) = @_; | ||||
|     @line_fields = split(/\|/, $line, 9999); | ||||
|     $retval = $line_fields[1]; | ||||
|     $feature = $line_fields[2]; | ||||
|     $param_def = $line_fields[4]; | ||||
|  | ||||
|     $orig = $feature; | ||||
|     $feature =~ s/^@//; | ||||
|     $space = $feature; | ||||
|     $space =~ s/./ /g; | ||||
|  | ||||
|     $features{++$feature_count} = $orig; | ||||
|     return if $orig =~ /^@/; | ||||
|  | ||||
|     $orig_retval = $retval; | ||||
|     if ($retval eq 'retval') { | ||||
|       $retval_param = '&retval'; | ||||
|       $call_prefix = ''; | ||||
|       $call_prefix_space = ''; | ||||
|       $prefix = 'retval = '; | ||||
|       $prefix_space = '         '; | ||||
|       $retval = 'int'; | ||||
|     } | ||||
|     elsif ($retval !~ /^void$/) { | ||||
|       $retval_param = 'NULL'; | ||||
|       $prefix = 'retval = '; | ||||
|       $prefix_space = '         '; | ||||
|       $call_prefix = 'retval = '; | ||||
|       $call_prefix_space = '         '; | ||||
|     } | ||||
|     else { | ||||
|       $retval_param = 'NULL'; | ||||
|       $call_prefix = ''; | ||||
|       $call_prefix_space = ''; | ||||
|       $prefix = ''; | ||||
|       $prefix_space = ''; | ||||
|     } | ||||
|  | ||||
|     if ($retval =~ /^(array|pointer)\((.*)\)$/) { | ||||
|       $retval = ($2 eq 'string') ? 'char **' : "$2 *"; | ||||
|     } | ||||
|  | ||||
|     $need_temp_storage = $always_use_temp_storage; | ||||
|     $local_var_init_code = "\t/* variable initialization */\n"; | ||||
|     $local_var_init_code .= "\t_LIBGTOP_SEND_len = 0;\n"; | ||||
|     $local_var_init_code .= "\t_LIBGTOP_DATA_len = 0;\n"; | ||||
|     $local_var_init_code .= "\t_LIBGTOP_SEND_offset = 0;\n"; | ||||
|     $local_var_init_code  .= "\t_LIBGTOP_SEND_ptr = ". | ||||
| 	  "(char *) _LIBGTOP_SEND_buf;\n"; | ||||
|     $marshal_code = "\t/* marshal start */\n"; | ||||
|     $marshal_code .= "\tmemset (_LIBGTOP_SEND_buf, 0, _LIBGTOP_SEND_len);\n"; | ||||
|     $first_param_name = ''; | ||||
|     $size_code = ''; | ||||
|  | ||||
|     $call_param = ''; | ||||
|     $param_decl = ''; | ||||
|     $need_temp_len = 0; | ||||
|     $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]; | ||||
|  | ||||
| 	if ($first_param_name eq '') { | ||||
| 	  $first_param_name = $fields[$field]; | ||||
| 	} | ||||
|  | ||||
| 	if ($typeinfo->{$type}->[2]) { | ||||
| 	  $need_temp_storage = 1; | ||||
| 	} | ||||
|  | ||||
| 	if ($param_decl eq '') { | ||||
| 	  $param_decl = ",\n            " . $space . '    '; | ||||
| 	} | ||||
| 	else { | ||||
| 	  $param_decl = $param_decl . ', '; | ||||
| 	} | ||||
| 	$param_decl = $param_decl . $c_type . ' ' . $fields[$field]; | ||||
| 	$call_param = $call_param . ', ' . $fields[$field]; | ||||
|  | ||||
| 	$size_code .= "\t_LIBGTOP_SEND_len += "; | ||||
| 	if ($typeinfo->{$type}->[2]) { | ||||
| 	  $size_code .= sprintf ("sizeof (size_t)"); | ||||
| 	} else { | ||||
| 	  $size_code .= sprintf ("sizeof (%s)", $c_type); | ||||
| 	} | ||||
| 	$size_code .= ";\n"; | ||||
|  | ||||
| 	if (defined $sizeof_funcs->{$type}) { | ||||
| 	  $size_code .= "\t_LIBGTOP_DATA_len += "; | ||||
| 	  $size_code .= $sizeof_funcs->{$type}->($fields[$field]); | ||||
| 	  $size_code .= ";\n"; | ||||
| 	} | ||||
|  | ||||
| 	$marshal_code .= "\t_LIBGTOP_SEND_ptr = ". | ||||
| 	  "(char *) _LIBGTOP_SEND_buf + _LIBGTOP_SEND_offset;\n"; | ||||
|  | ||||
| 	if (defined $marshal_funcs->{$type}) { | ||||
| 	  $marshal_code .= $marshal_funcs->{$type}->($c_type, $fields[$field], "\t"); | ||||
| 	} else { | ||||
| 	  $marshal_code .= sprintf ("\tmemcpy (_LIBGTOP_SEND_ptr, %s, %s);\n", | ||||
| 				    '&'.$fields[$field], "sizeof ($c_type)"); | ||||
| 	} | ||||
|  | ||||
| 	$marshal_code .= "\t_LIBGTOP_SEND_offset += "; | ||||
| 	if ($typeinfo->{$type}->[2]) { | ||||
| 	  $marshal_code .= sprintf ("sizeof (size_t)"); | ||||
| 	} else { | ||||
| 	  $marshal_code .= sprintf ("sizeof (%s)", $c_type); | ||||
| 	} | ||||
| 	$marshal_code .= ";\n"; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     $local_var_code = ""; | ||||
|     $local_var_code .= "\tunsigned _LIBGTOP_SEND_offset, _LIBGTOP_SEND_len;\n"; | ||||
|     $local_var_code .= "\tunsigned _LIBGTOP_DATA_len;\n"; | ||||
|     if ($need_temp_len) { | ||||
|       $local_var_code .= "\tunsigned _LIBGTOP_SEND_temp_len;\n"; | ||||
|     } | ||||
|     $local_var_code .= "\tvoid *_LIBGTOP_SEND_buf, *_LIBGTOP_DATA_buf;\n"; | ||||
|     $local_var_code .= "\tchar *_LIBGTOP_SEND_ptr, *_LIBGTOP_DATA_ptr;\n"; | ||||
|     if ($retval !~ /^void$/) { | ||||
|       $local_var_code .= sprintf ("\t%s retval = (%s) 0;\n", | ||||
| 				  $retval, $retval); | ||||
|     } | ||||
|  | ||||
|     $total_code = ''; | ||||
|  | ||||
|     $send_buf_code = "\t/* send buffer */\n"; | ||||
|     $send_buf_code .= "\t_LIBGTOP_SEND_buf = "; | ||||
|     if ($need_temp_storage) { | ||||
|       $send_buf_code .= "glibtop_malloc_r (server, _LIBGTOP_SEND_len+1)"; | ||||
|     } else { | ||||
|       $send_buf_code .= '(void *) &'.$first_param_name; | ||||
|     } | ||||
|     $send_buf_code .= ";\n\n"; | ||||
|  | ||||
|     $send_buf_code .= "\t/* data buffer */\n"; | ||||
|     $send_buf_code .= "\t_LIBGTOP_DATA_buf = "; | ||||
|     if ($need_temp_storage) { | ||||
|       $send_buf_code .= "glibtop_malloc_r (server, _LIBGTOP_DATA_len+1)"; | ||||
|     } else { | ||||
|       $send_buf_code .= 'NULL'; | ||||
|     } | ||||
|     $send_buf_code .= ";\n"; | ||||
|     $send_buf_code .= "\t_LIBGTOP_DATA_ptr = _LIBGTOP_DATA_buf;\n"; | ||||
|  | ||||
|     $call_code = ''; | ||||
|     $call_code .= sprintf ("\t%sglibtop_call_i (server, closure, GLIBTOP_CMND_%s,\n", | ||||
| 			   $call_prefix, &toupper($feature)); | ||||
|     $call_code .= sprintf ("\t\t\t%s%s, %s,\n", $call_prefix_space, | ||||
| 			   "_LIBGTOP_SEND_len", "_LIBGTOP_SEND_buf"); | ||||
|     $call_code .= sprintf ("\t\t\t%s%s, %s,\n", $call_prefix_space, | ||||
| 			   "_LIBGTOP_DATA_len", "_LIBGTOP_DATA_buf"); | ||||
|     if ($line_fields[3] eq '') { | ||||
|       $call_code .= sprintf ("\t\t\t%s0, NULL,\n", $call_prefix_space); | ||||
|     } elsif ($line_fields[3] eq  'array') { | ||||
|       $call_code .= sprintf ("\t\t\t%ssizeof (glibtop_array), array,\n", | ||||
| 			     $call_prefix_space); | ||||
|     } else { | ||||
|       $call_code .= sprintf ("\t\t\t%ssizeof (glibtop_%s), buf,\n", | ||||
| 			     $call_prefix_space, $feature); | ||||
|     } | ||||
|     $call_code .= sprintf ("\t\t\t%s%s);\n", $call_prefix_space, $retval_param); | ||||
|  | ||||
|     if ($need_temp_storage) { | ||||
|       $send_buf_free_code = "\tglibtop_free_r (server, _LIBGTOP_SEND_buf);\n"; | ||||
|       $send_buf_free_code .= "\tglibtop_free_r (server, _LIBGTOP_DATA_buf);\n"; | ||||
|     } else { | ||||
|       $send_buf_free_code = ""; | ||||
|     } | ||||
|  | ||||
|     if (!($size_code eq '')) { | ||||
|       $size_code = sprintf (qq[\t/* send size */\n%s\n], $size_code); | ||||
|     } | ||||
|  | ||||
|     if ($orig_retval eq 'pointer(string)') { | ||||
|       $call_code .= "\n"; | ||||
|       $local_var_code .= "\tchar *_LIBGTOP_ARRAY_ptr, **ptrlist;\n"; | ||||
|       $local_var_code .= "\toff_t *_LIBGTOP_ARRAY_off_ptr;\n"; | ||||
|       $local_var_code .= "\tint i;\n"; | ||||
|       $call_code .= "\tptrlist = glibtop_calloc_r (server, array->number+1, sizeof (char *));\n"; | ||||
|       $call_code .= "\t_LIBGTOP_ARRAY_off_ptr = (off_t *) retval;\n"; | ||||
|       $call_code .= "\t_LIBGTOP_ARRAY_ptr = (char *) retval;\n"; | ||||
|       $call_code .= "\t_LIBGTOP_ARRAY_off_ptr++;\n\n"; | ||||
|       $call_code .= "\tfor (i = 0; i < array->number; i++)\n"; | ||||
|       $call_code .= "\t\tptrlist [i] = glibtop_strdup_r (server, _LIBGTOP_ARRAY_ptr + *_LIBGTOP_ARRAY_off_ptr++);\n"; | ||||
|       $call_code .= "\tptrlist [array->number] = NULL;\n\n"; | ||||
|       $call_code .= "\tglibtop_free_r (server, retval);\n"; | ||||
|       $call_code .= "\tretval = ptrlist;\n"; | ||||
|     } | ||||
|  | ||||
|     $total_code .= sprintf ("%s%s\n%s\n%s\n%s\n", | ||||
| 			    $size_code, $send_buf_code, $marshal_code, | ||||
| 			    $call_code, $send_buf_free_code); | ||||
|  | ||||
|     $return_code = ''; | ||||
|     if ($retval !~ /^void$/) { | ||||
|       $return_code .= "\treturn retval;\n"; | ||||
|     } else { | ||||
|       $return_code .= "\treturn;\n"; | ||||
|     } | ||||
|  | ||||
|     $total_code .= $return_code; | ||||
|  | ||||
|     $func_decl = 'static '.$retval."\n"; | ||||
|     if ($line_fields[3] eq '') { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n", | ||||
| 			     $feature, $param_decl); | ||||
|     } elsif ($line_fields[3] eq 'array') { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n", | ||||
| 			     $feature, $param_decl); | ||||
|     } elsif ($line_fields[3] =~ /^array/) { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n", | ||||
| 			     $feature, 'glibtop_'.$feature, $param_decl); | ||||
|     } else { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n", | ||||
| 			     $feature, 'glibtop_'.$feature, $param_decl); | ||||
|     } | ||||
|  | ||||
|     $total_code = sprintf ("%s{\n%s\n%s\n%s\n%s}\n", $func_decl, | ||||
| 			   $local_var_code, $local_var_init_code, | ||||
| 			   $total_code); | ||||
|  | ||||
|  | ||||
|     $total_code = sprintf ("#if GLIBTOP_SUID_%s\n\n%s\n#endif /* GLIBTOP_SUID_%s */\n\n", | ||||
| 			   &toupper($feature), $total_code, | ||||
| 			   &toupper($feature)); | ||||
|  | ||||
|     print $total_code; | ||||
| } | ||||
|  | ||||
| $call_vector_code = ''; | ||||
| for ($nr = 1; $nr <= $feature_count; $nr++) { | ||||
|   $feature = $features{$nr}; | ||||
|  | ||||
|   $orig = $feature; | ||||
|   $feature =~ s/^@//; | ||||
|  | ||||
|   if ($orig =~ /^@/) { | ||||
|     $call_vector_code .= sprintf (qq[\tNULL,\n]); | ||||
|   } else { | ||||
|     $call_vector_code .= sprintf | ||||
|       (qq[\#if GLIBTOP_SUID_%s\n\t_glibtop_get_%s_c,\n\#else\n\tNULL,\n\#endif\n], | ||||
|        &toupper($feature), $feature); | ||||
|   } | ||||
| } | ||||
|  | ||||
| print 'glibtop_call_vector glibtop_backend_server_call_vector = {'; | ||||
| print $call_vector_code; | ||||
| print '};'; | ||||
| print ''; | ||||
|  | ||||
| @@ -1,46 +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. | ||||
| */ | ||||
|  | ||||
| #include <backend-server.h> | ||||
|  | ||||
| void | ||||
| glibtop_read_i (backend_server_private *priv, size_t size, void *buf) | ||||
| { | ||||
|     int ret = 0; | ||||
|  | ||||
| #ifdef DEBUG | ||||
|     fprintf (stderr, "LIBRARY: really reading %d bytes from %d.\n", | ||||
| 	     size, priv->input [0]); | ||||
| #endif | ||||
|  | ||||
|     ret = read (priv->input [0], buf, size); | ||||
|  | ||||
| #ifdef DEBUG | ||||
|     fprintf (stderr, "LIBRARY: read %d bytes.\n", ret); | ||||
| #endif | ||||
|  | ||||
|     if (ret < 0) | ||||
| 	glibtop_error_io_r (priv->server, "read %d bytes", size); | ||||
| } | ||||
| @@ -1,58 +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. | ||||
| */ | ||||
|  | ||||
| #include <backend-server.h> | ||||
|  | ||||
| void * | ||||
| glibtop_read_data_i (backend_server_private *priv) | ||||
| { | ||||
|     size_t size; | ||||
|     void *ptr; | ||||
|     int ret; | ||||
|  | ||||
| #ifdef DEBUG | ||||
|     fprintf (stderr, "LIBRARY: reading %d data bytes.\n", sizeof (size_t)); | ||||
| #endif | ||||
|  | ||||
|     ret = read (priv->input [0], (void *)&size, sizeof (size_t)); | ||||
|  | ||||
|     if (ret < 0) | ||||
| 	glibtop_error_io_r (priv->server, "read data size"); | ||||
|  | ||||
| #ifdef DEBUG | ||||
|     fprintf (stderr, "LIBRARY: really reading %d data bytes (ret = %d).\n", size, ret); | ||||
| #endif | ||||
|  | ||||
|     if (!size) return NULL;	 | ||||
|  | ||||
|     ptr = glibtop_malloc_r (priv->server, size); | ||||
| 	 | ||||
|     ret = read (priv->input [0], ptr, size); | ||||
|  | ||||
|     if (ret < 0) | ||||
| 	glibtop_error_io_r (priv->server, "read data %d bytes"); | ||||
|  | ||||
|     return ptr; | ||||
| } | ||||
| @@ -1,190 +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. | ||||
| */ | ||||
|  | ||||
| #include "server.h" | ||||
|  | ||||
| static glibtop _glibtop_global_server; | ||||
| glibtop *glibtop_global_server = &_glibtop_global_server; | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/union.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
|  | ||||
| #include <sys/utsname.h> | ||||
|  | ||||
| const unsigned long glibtop_server_features = | ||||
| GLIBTOP_SUID_CPU + | ||||
| GLIBTOP_SUID_MEM + | ||||
| GLIBTOP_SUID_SWAP + | ||||
| GLIBTOP_SUID_UPTIME + | ||||
| GLIBTOP_SUID_LOADAVG + | ||||
| GLIBTOP_SUID_SHM_LIMITS + | ||||
| GLIBTOP_SUID_MSG_LIMITS + | ||||
| GLIBTOP_SUID_SEM_LIMITS + | ||||
| GLIBTOP_SUID_PROCLIST + | ||||
| GLIBTOP_SUID_PROC_STATE + | ||||
| GLIBTOP_SUID_PROC_UID + | ||||
| GLIBTOP_SUID_PROC_MEM + | ||||
| GLIBTOP_SUID_PROC_TIME + | ||||
| GLIBTOP_SUID_PROC_SIGNAL + | ||||
| GLIBTOP_SUID_PROC_KERNEL + | ||||
| GLIBTOP_SUID_PROC_SEGMENT + | ||||
| GLIBTOP_SUID_PROC_ARGS + | ||||
| GLIBTOP_SUID_PROC_MAP + | ||||
| GLIBTOP_SUID_NETINFO + | ||||
| GLIBTOP_SUID_NETLOAD + | ||||
| GLIBTOP_SUID_INTERFACE_NAMES + | ||||
| GLIBTOP_SUID_PPP; | ||||
|  | ||||
| #include <fcntl.h> | ||||
| #include <locale.h> | ||||
|  | ||||
| int | ||||
| main(int argc, char *argv[]) | ||||
| { | ||||
|     struct utsname uts; | ||||
|     int uid, euid, gid, egid; | ||||
|     glibtop *server; | ||||
|  | ||||
|     /* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */ | ||||
|  | ||||
|     uid = getuid (); euid = geteuid (); | ||||
|     gid = getgid (); egid = getegid (); | ||||
|  | ||||
|     if (uname (&uts) < 0) _exit (1); | ||||
|  | ||||
|     if (strcmp (uts.sysname, LIBGTOP_COMPILE_SYSTEM) || | ||||
| 	strcmp (uts.release, LIBGTOP_COMPILE_RELEASE) || | ||||
| 	strcmp (uts.machine, LIBGTOP_COMPILE_MACHINE)) { | ||||
| 	fprintf (stderr, "Can only run on %s %s %s\n", | ||||
| 		 LIBGTOP_COMPILE_SYSTEM, | ||||
| 		 LIBGTOP_COMPILE_RELEASE, | ||||
| 		 LIBGTOP_COMPILE_MACHINE); | ||||
| 	_exit (1); | ||||
|     } | ||||
|  | ||||
|     server = glibtop_global_server; | ||||
| 	 | ||||
|     if (!server->_priv) | ||||
| 	server->_priv = glibtop_calloc_r | ||||
| 	    (server, 1, sizeof (glibtop_server_private)); | ||||
|  | ||||
|     glibtop_init_p (server, 0, 0); | ||||
|  | ||||
|     if (setreuid (euid, uid)) _exit (1); | ||||
|  | ||||
|     if (setregid (egid, gid)) _exit (1); | ||||
|  | ||||
|     /* !!! END OF SUID ROOT PART !!! */ | ||||
|  | ||||
|     handle_slave_connection (0, 0); | ||||
|  | ||||
|     _exit (0); | ||||
| } | ||||
|  | ||||
| void | ||||
| handle_slave_connection (int input, int output) | ||||
| { | ||||
|     glibtop_command _cmnd, *cmnd = &_cmnd; | ||||
|     glibtop *server = glibtop_global_server; | ||||
|  | ||||
|     // glibtop_send_version_i (glibtop_global_server, output); | ||||
|  | ||||
|     while (do_read (input, cmnd, sizeof (glibtop_command))) { | ||||
| 	size_t recv_size = 0, send_size = 0, recv_data_size = 0; | ||||
| 	void *recv_ptr = NULL, *recv_data_ptr = NULL, *data_ptr = NULL; | ||||
| 	char parameter [BUFSIZ]; | ||||
| 	int retval, func_retval; | ||||
| 	glibtop_response resp; | ||||
|  | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "Slave %d received command " | ||||
| 		 "%ld from client.\n", getpid (), (long) cmnd->command); | ||||
| #endif | ||||
|  | ||||
| 	if (cmnd->send_size >= BUFSIZ) | ||||
| 	    glibtop_error ("Client sent %d bytes, but buffer is %d", | ||||
| 			   cmnd->send_size, BUFSIZ); | ||||
| 	else if (cmnd->param_size >= BUFSIZ) | ||||
| 	    glibtop_error ("Client sent %d bytes, but buffer is %d", | ||||
| 			   cmnd->param_size, BUFSIZ); | ||||
|  | ||||
| 	memset (parameter, 0, sizeof (parameter)); | ||||
|  | ||||
| 	if (cmnd->send_size) { | ||||
| #ifdef DEBUG | ||||
| 	    fprintf (stderr, "Client has %d bytes of data.\n", | ||||
| 		     cmnd->send_size); | ||||
| #endif | ||||
|  | ||||
| 	    send_size = cmnd->send_size; | ||||
| 	    do_read (input, parameter, send_size); | ||||
| 	} else if (cmnd->param_size) { | ||||
| #ifdef DEBUG | ||||
| 	    fprintf (stderr, "Client has %d bytes of parameter data.\n", | ||||
| 		     cmnd->param_size); | ||||
| #endif | ||||
| 	    send_size = cmnd->param_size; | ||||
| 	    memcpy (parameter, cmnd->parameter, send_size); | ||||
| 	} | ||||
|  | ||||
| 	if (cmnd->data_size) { | ||||
| #ifdef DEBUG | ||||
| 	    fprintf (stderr, "CLIENT has %d bytes of extra data for us.\n", | ||||
| 		     cmnd->data_size); | ||||
| #endif | ||||
|  | ||||
| 	    data_ptr = glibtop_malloc_r (server, cmnd->data_size); | ||||
| 	    do_read (input, data_ptr, cmnd->data_size); | ||||
| 	} | ||||
|  | ||||
| 	retval = glibtop_demarshal_func_i (server, NULL, | ||||
| 					   cmnd->command, | ||||
| 					   parameter, send_size, | ||||
| 					   data_ptr, cmnd->data_size, | ||||
| 					   &recv_ptr, &recv_size, | ||||
| 					   &recv_data_ptr, &recv_data_size, | ||||
| 					   &func_retval); | ||||
|  | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "Retval %d / %d - %p - %d\n", | ||||
| 		 retval, func_retval, recv_ptr, recv_size); | ||||
|  | ||||
| 	if (recv_data_size) { | ||||
| 	    fprintf (stderr, "Returning %d bytes of data from %p.\n", | ||||
| 		     recv_data_size, recv_data_ptr); | ||||
| 	} | ||||
| #endif | ||||
|  | ||||
| 	memset (&resp, 0, sizeof (glibtop_response)); | ||||
|  | ||||
| 	resp.retval = retval; | ||||
| 	resp.glibtop_errno = func_retval; | ||||
| 	resp.recv_size = recv_size; | ||||
| 	resp.data_size = recv_data_size; | ||||
|  | ||||
| 	do_output (output, &resp, recv_ptr, recv_data_ptr); | ||||
|     }		 | ||||
| } | ||||
| @@ -1,85 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_DAEMON_H__ | ||||
| #define __GLIBTOP_DAEMON_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/error.h> | ||||
|  | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/union.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| #include <fcntl.h> | ||||
| #include <sys/wait.h> | ||||
| #include <sys/socket.h> | ||||
| #include <syslog.h> | ||||
|  | ||||
| #include <glibtop/backend.h> | ||||
| #include <glibtop-backend-private.h> | ||||
|  | ||||
| #include "command.h" | ||||
|  | ||||
| BEGIN_LIBGTOP_DECLS | ||||
|  | ||||
| /* Some don't have LOG_PERROR */ | ||||
| #ifndef LOG_PERROR | ||||
| #define LOG_PERROR 0 | ||||
| #endif | ||||
|  | ||||
| #define LIBGTOP_VERSION_STRING "Libgtop %s server version %s (%u,%u,%u,%u)." | ||||
|  | ||||
| #if defined(HAVE_GETDTABLESIZE) | ||||
| #define GET_MAX_FDS() getdtablesize() | ||||
| #else | ||||
| /* Fallthrough case - please add other #elif cases above | ||||
|    for different OS's as necessary */ | ||||
| #define GET_MAX_FDS() 256 | ||||
| #endif | ||||
|  | ||||
| void | ||||
| do_output (int s, glibtop_response *resp, const void *recv_ptr, | ||||
| 	   const void *data_ptr); | ||||
|  | ||||
| int | ||||
| do_read (int s, void *ptr, size_t total_size); | ||||
|  | ||||
| void | ||||
| handle_slave_connection (int input, int output); | ||||
|  | ||||
| int | ||||
| glibtop_demarshal_func_i (glibtop *server, glibtop_backend *backend, unsigned command, const void *send_ptr, size_t send_size, void *data_ptr, size_t data_size, void **recv_buf_ptr, size_t *recv_size_ptr, void **recv_data_ptr, size_t *recv_data_size_ptr, int *retval_ptr); | ||||
|  | ||||
| void | ||||
| glibtop_send_version_i (glibtop *server, int fd); | ||||
|  | ||||
| extern int enable_debug; | ||||
| extern int verbose_output; | ||||
|  | ||||
| END_LIBGTOP_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,62 +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. | ||||
| */ | ||||
|  | ||||
| #include "server.h" | ||||
|  | ||||
| void | ||||
| glibtop_send_version_i (glibtop *server, int fd) | ||||
| { | ||||
|     char buffer [BUFSIZ]; | ||||
|     size_t size; | ||||
|  | ||||
|     sprintf (buffer, LIBGTOP_VERSION_STRING, | ||||
| 	     LIBGTOP_VERSION, LIBGTOP_SERVER_VERSION, | ||||
| 	     sizeof (glibtop_command), | ||||
| 	     sizeof (glibtop_response), | ||||
| 	     sizeof (glibtop_union), | ||||
| 	     sizeof (glibtop_sysdeps)); | ||||
| 	 | ||||
|     size = strlen (buffer) + 1; | ||||
|  | ||||
| #ifdef DEBUG | ||||
|     fprintf (stderr, "SERVER ID: |%s|\n", buffer); | ||||
| #endif | ||||
|  | ||||
|     if (fd == 0) { | ||||
| 	if (write (1, (const void *) &size, sizeof (size)) < 0) | ||||
| 	    glibtop_warn_io_r (server, "write"); | ||||
|     } else { | ||||
| 	if (send (fd, (const void *) &size, sizeof (size), 0) < 0) | ||||
| 	    glibtop_warn_io_r (server, "send"); | ||||
|     } | ||||
|  | ||||
|     if (fd == 0) { | ||||
| 	if (write (1, (const void *) buffer, size) < 0) | ||||
| 	    glibtop_warn_io_r (server, "write"); | ||||
|     } else { | ||||
| 	if (send (fd, (const void *) buffer, size, 0) < 0) | ||||
| 	    glibtop_warn_io_r (server, "send"); | ||||
|     } | ||||
| } | ||||
| @@ -1,43 +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. | ||||
| */ | ||||
|  | ||||
| #include <backend-server.h> | ||||
|  | ||||
| void | ||||
| glibtop_write_i (backend_server_private *priv, size_t size, const void *buf) | ||||
| { | ||||
|     int ret; | ||||
|  | ||||
|     if (size == 0) return; | ||||
|  | ||||
| #ifdef DEBUG | ||||
|     fprintf (stderr, "LIBRARY: really writing %d bytes.\n", size); | ||||
| #endif | ||||
|  | ||||
|     ret = write (priv->output [1], buf, size); | ||||
|  | ||||
|     if (ret < 0) | ||||
| 	glibtop_error_io_r (priv->server, "write %d bytes", size); | ||||
| } | ||||
| @@ -1,7 +0,0 @@ | ||||
| .deps | ||||
| .libs | ||||
| Makefile | ||||
| Makefile.in | ||||
| *.lo | ||||
| *.la | ||||
| marshal.c | ||||
| @@ -1,60 +0,0 @@ | ||||
| 2000-11-26  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* glibtop-backend-private.h: Removed. | ||||
|  | ||||
| 	* backend-sysdeps.h: New files. | ||||
|  | ||||
| 	* backend-sysdeps.c (_open_sysdeps): Don't overwrite | ||||
| 	`backend->_priv'. | ||||
|  | ||||
| 2000-11-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am: Link libgtop_backend_sysdeps.la against | ||||
| 	$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la and | ||||
| 	$(top_builddir)/lib/libgtop_server.la. | ||||
|  | ||||
| 	* libgtop-sysdeps.backend: Removed the ExtraLibs section. | ||||
|  | ||||
| 2000-02-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* backend-sysdeps.c (LibGTopBackendInfo): Call this | ||||
| 	`LibGTopBackendInfo_Sysdeps' when we don't use gmodule. | ||||
|  | ||||
| 2000-02-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR) | ||||
| 	when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise. | ||||
|  | ||||
| 2000-01-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* libgtop-sysdeps.backend: Added "ExtraLibs" section to | ||||
| 	load `-lgtop_sysdeps'. | ||||
|  | ||||
| 2000-01-12  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR). | ||||
|  | ||||
| 	* libgtop-sysdeps.backend: New file. | ||||
|  | ||||
| 	* backend-sysdeps.c (glibtop_backend_sysdeps): Renamed to | ||||
| 	`LibGTopBackendInfo'. | ||||
|  | ||||
| 2000-01-12  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* marshal.pl: Create the `_glibtop_init_hook_s' as well. | ||||
|  | ||||
| 	* marshal.pl: Don't create code for things which are now | ||||
| 	in the new `glibtop-backend-common' backend. | ||||
|  | ||||
| 2000-01-02  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* marshal.pl: New file. Automatically creates `marshal.c'. | ||||
| 	* call-vector.c: Removed. | ||||
|  | ||||
| 2000-01-01  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	Initial version of the "glibtop-backend-sysdeps" backend. | ||||
|  | ||||
| 	* backend-sysdeps.c: New file. | ||||
| 	* glibtop-backend-private.h: New file. | ||||
|  | ||||
| @@ -1,47 +0,0 @@ | ||||
| LINK		= $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ | ||||
|  | ||||
| INCLUDES	= @INCLUDES@ | ||||
|  | ||||
| backenddir	= @LIBGTOP_BACKEND_DIR@ | ||||
|  | ||||
| if LIBGTOP_USE_GMODULE | ||||
| backendlibdir	= $(backenddir) | ||||
| else | ||||
| backendlibdir	= $(libdir) | ||||
| endif | ||||
|  | ||||
| dynamic_ldflags	= @libgtop_dynamic_ldflags@ | ||||
|  | ||||
| backend_DATA = \ | ||||
| 	libgtop-sysdeps.backend | ||||
|  | ||||
| noinst_HEADERS = \ | ||||
| 	backend-sysdeps.h | ||||
|  | ||||
| backendlib_LTLIBRARIES = \ | ||||
| 	libgtop_backend_sysdeps.la | ||||
|  | ||||
| libgtop_backend_sysdeps_la_SOURCES = \ | ||||
| 	backend-sysdeps.c		\ | ||||
| 	marshal.c | ||||
|  | ||||
| libgtop_backend_sysdeps_la_LDFLAGS = \ | ||||
| 	$(LT_VERSION_INFO) $(dynamic_ldflags) | ||||
|  | ||||
| libgtop_backend_sysdeps_la_LIBADD = \ | ||||
| 	$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la | ||||
| 	$(top_builddir)/lib/libgtop_server.la | ||||
|  | ||||
| BUILT_SOURCES = \ | ||||
| 	marshal.c | ||||
|  | ||||
| EXTRA_DIST = \ | ||||
| 	marshal.pl	\ | ||||
| 	libgtop-sysdeps.backend | ||||
|  | ||||
| CLEANFILES = $(BUILT_SOURCES) | ||||
|  | ||||
| marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl | ||||
| 	$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t | ||||
| 	mv tmp-t marshal.c | ||||
|  | ||||
| @@ -1,76 +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. | ||||
| */ | ||||
|  | ||||
| #include <backend-sysdeps.h> | ||||
|  | ||||
| static int | ||||
| _open_sysdeps (glibtop_server *, glibtop_backend *, u_int64_t, const char **); | ||||
|  | ||||
| static int | ||||
| _close_sysdeps (glibtop_server *, glibtop_backend *, void *); | ||||
|  | ||||
| extern glibtop_call_vector glibtop_backend_sysdeps_call_vector; | ||||
|  | ||||
| #ifdef LIBGTOP_USE_GMODULE | ||||
| glibtop_backend_info LibGTopBackendInfo = { | ||||
|     "glibtop-backend-sysdeps", _open_sysdeps, _close_sysdeps, | ||||
|     &glibtop_backend_sysdeps_call_vector | ||||
| }; | ||||
| #else | ||||
| glibtop_backend_info LibGTopBackendInfo_Sysdeps = { | ||||
|     "glibtop-backend-sysdeps", _open_sysdeps, _close_sysdeps, | ||||
|     &glibtop_backend_sysdeps_call_vector | ||||
| }; | ||||
| #endif | ||||
|  | ||||
| static int | ||||
| _open_sysdeps (glibtop_server *server, glibtop_backend *backend, | ||||
| 	       u_int64_t features, const char **backend_args) | ||||
| { | ||||
|     glibtop_init_func_t *init_fkt; | ||||
|  | ||||
|     /* Do the initialization, but only if not already initialized. */ | ||||
|  | ||||
|     if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) { | ||||
| 	glibtop_open_s (server, "glibtop", features, 0); | ||||
|  | ||||
| 	for (init_fkt = _glibtop_init_hook_s; *init_fkt; init_fkt++) | ||||
| 	    (*init_fkt) (server); | ||||
|  | ||||
| 	server->info->sysdeps.pointer_size = sizeof (void*)*8; | ||||
| 		 | ||||
| 	server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS; | ||||
|     } | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static int | ||||
| _close_sysdeps (glibtop_server *server, glibtop_backend *backend, | ||||
| 		void *closure) | ||||
| { | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -1,37 +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_SYSDEPS_H__ | ||||
| #define __GLIBTOP_BACKEND_SYSDEPS_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/xmalloc.h> | ||||
| #include <glibtop/glibtop-backend.h> | ||||
| #include <glibtop/glibtop-backend-info.h> | ||||
|  | ||||
| #endif | ||||
| @@ -1,13 +0,0 @@ | ||||
| <?xml version="1.0"?> <!-- -*-xml-*- --> | ||||
| <!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'> | ||||
| <libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1"> | ||||
|  | ||||
|   <libgtop:Backend> | ||||
|     <libgtop:Name>glibtop-backend-sysdeps</libgtop:Name> | ||||
|     <libgtop:Location> | ||||
|       <libgtop:LibtoolName>libgtop_backend_sysdeps.la</libgtop:LibtoolName> | ||||
|       <libgtop:ShlibName>libgtop_backend_sysdeps.so</libgtop:ShlibName> | ||||
|     </libgtop:Location> | ||||
|   </libgtop:Backend> | ||||
|  | ||||
| </libgtop:Backends> | ||||
| @@ -1,195 +0,0 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| require 'c_types.pl'; | ||||
|  | ||||
| $[ = 1;			# set array base to 1 | ||||
| $, = ' ';		# set output field separator | ||||
| $\ = "\n";		# set output record separator | ||||
|  | ||||
| $always_use_temp_storage = 1; | ||||
|  | ||||
| sub toupper { | ||||
|     local($_) = @_; | ||||
|     tr/a-z/A-Z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| sub tolower { | ||||
|     local($_) = @_; | ||||
|     tr/A-Z/a-z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| print '/* marshal.c */'; | ||||
| print "/* This is a generated file.  Please modify `marshal.pl' */"; | ||||
| print ''; | ||||
|  | ||||
| print '#include <backend-sysdeps.h>'; | ||||
| print ''; | ||||
| print '#include <glibtop/sysdeps.h>'; | ||||
| print '#include <glibtop/union.h>'; | ||||
| print ''; | ||||
| print '#include <glibtop/call-vector.h>'; | ||||
| print ''; | ||||
|  | ||||
| $feature_count = 0; | ||||
|  | ||||
| while (<>) { | ||||
|     chop;	# strip record separator | ||||
|  | ||||
|     if (/^[^#]/) { | ||||
| 	&output($_); | ||||
|     } | ||||
| } | ||||
|  | ||||
| sub output { | ||||
|     local($line) = @_; | ||||
|     @line_fields = split(/\|/, $line, 9999); | ||||
|     $retval = $line_fields[1]; | ||||
|     $feature = $line_fields[2]; | ||||
|     $param_def = $line_fields[4]; | ||||
|  | ||||
|     $orig = $feature; | ||||
|     $feature =~ s/^@//; | ||||
|     $space = $feature; | ||||
|     $space =~ s/./ /g; | ||||
|  | ||||
|     $features{++$feature_count} = $orig; | ||||
|  | ||||
|     return if $orig =~ /^@/; | ||||
|  | ||||
|     if ($retval eq 'retval') { | ||||
|       $retval_param = '&retval'; | ||||
|       $call_prefix = ''; | ||||
|       $call_prefix_space = ''; | ||||
|       $prefix = 'retval = '; | ||||
|       $prefix_space = '         '; | ||||
|       $retval = 'int'; | ||||
|     } | ||||
|     elsif ($retval !~ /^void$/) { | ||||
|       $retval_param = 'NULL'; | ||||
|       $prefix = 'retval = '; | ||||
|       $prefix_space = '         '; | ||||
|       $call_prefix = 'retval = '; | ||||
|       $call_prefix_space = '         '; | ||||
|     } | ||||
|     else { | ||||
|       $retval_param = 'NULL'; | ||||
|       $call_prefix = ''; | ||||
|       $call_prefix_space = ''; | ||||
|       $prefix = ''; | ||||
|       $prefix_space = ''; | ||||
|     } | ||||
|  | ||||
|     if ($retval =~ /^(array|pointer)\((.*)\)$/) { | ||||
|       $retval = ($2 eq 'string') ? 'char **' : "$2 *"; | ||||
|     } | ||||
|  | ||||
|     $need_temp_storage = $always_use_temp_storage; | ||||
|     $first_param_name = ''; | ||||
|  | ||||
|     $call_param = ''; | ||||
|     $param_decl = ''; | ||||
|     $need_temp_len = 0; | ||||
|     $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]; | ||||
|  | ||||
| 	if ($first_param_name eq '') { | ||||
| 	  $first_param_name = $fields[$field]; | ||||
| 	} | ||||
|  | ||||
| 	if ($typeinfo->{$type}->[2]) { | ||||
| 	  $need_temp_storage = 1; | ||||
| 	} | ||||
|  | ||||
| 	if ($param_decl eq '') { | ||||
| 	  $param_decl = ",\n             " . $space . '    '; | ||||
| 	} | ||||
| 	else { | ||||
| 	  $param_decl = $param_decl . ', '; | ||||
| 	} | ||||
| 	$param_decl = $param_decl . $c_type . ' ' . $fields[$field]; | ||||
| 	$call_param = $call_param . ', ' . $fields[$field]; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     if ($line_fields[3] eq '') { | ||||
|       $total_code = sprintf | ||||
| 	("\treturn glibtop_get_%s_s (server%s);\n", $feature, $call_param); | ||||
|     } elsif ($line_fields[3] eq 'array') { | ||||
|       $total_code = sprintf | ||||
| 	("\treturn glibtop_get_%s_s (server, array%s);\n", $feature, $call_param); | ||||
|     } elsif ($line_fields[3] =~ /^array/) { | ||||
|       $total_code = sprintf | ||||
| 	("\treturn glibtop_get_%s_s (server, array, buf%s);\n", $feature, $call_param); | ||||
|     } else { | ||||
|       $total_code = sprintf | ||||
| 	("\treturn glibtop_get_%s_s (server, buf%s);\n", $feature, $call_param); | ||||
|     } | ||||
|  | ||||
|     $func_decl = 'static '.$retval."\n"; | ||||
|     if ($line_fields[3] eq '') { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n", | ||||
| 			     $feature, $param_decl); | ||||
|     } elsif ($line_fields[3] eq 'array') { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n", | ||||
| 			     $feature, $param_decl); | ||||
|     } elsif ($line_fields[3] =~ /^array/) { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n", | ||||
| 			     $feature, 'glibtop_'.$feature, $param_decl); | ||||
|     } else { | ||||
|       $func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n", | ||||
| 			     $feature, 'glibtop_'.$feature, $param_decl); | ||||
|     } | ||||
|  | ||||
|     $total_code = sprintf ("%s{\n%s\n%s}\n", $func_decl, $total_code); | ||||
|  | ||||
|     $total_code = sprintf ("#if (!GLIBTOP_SUID_%s)\n\n%s\n#endif /* not GLIBTOP_SUID_%s */\n\n", | ||||
| 			   &toupper($feature), $total_code, | ||||
| 			   &toupper($feature)); | ||||
|  | ||||
|     print $total_code; | ||||
| } | ||||
|  | ||||
| $init_hook_code = ''; | ||||
| $call_vector_code = ''; | ||||
| for ($nr = 1; $nr <= $feature_count; $nr++) { | ||||
|   $feature = $features{$nr}; | ||||
|  | ||||
|   if ($feature =~ /^@/) { | ||||
|     $call_vector_code .= sprintf (qq[\tNULL,\n]); | ||||
|   } else { | ||||
|     $call_vector_code .= sprintf | ||||
|       (qq[\#if GLIBTOP_SUID_%s\n\tNULL,\n\#else\n\t_glibtop_get_%s_c,\n\#endif\n], | ||||
|        &toupper($feature), $feature); | ||||
|   } | ||||
|  | ||||
|   if (!($feature =~ /^@/)) { | ||||
|     $init_hook_code .= sprintf | ||||
|       (qq[\#if !GLIBTOP_SUID_%s\n\tglibtop_init_%s_s,\n\#endif\n], | ||||
|        &toupper($feature), $feature); | ||||
|   } | ||||
| } | ||||
| $init_hook_code .= sprintf (qq[\tNULL\n]); | ||||
|  | ||||
| chop $init_hook_code; | ||||
| chop $call_vector_code; | ||||
|  | ||||
| print 'glibtop_call_vector glibtop_backend_sysdeps_call_vector = {'; | ||||
| print $call_vector_code; | ||||
| print '};'; | ||||
| print ''; | ||||
|  | ||||
| print 'glibtop_init_func_t _glibtop_init_hook_s [] = {'; | ||||
| print $init_hook_code; | ||||
| print '};'; | ||||
| print ''; | ||||
|  | ||||
							
								
								
									
										10
									
								
								configure.in
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								configure.in
									
									
									
									
									
								
							| @@ -8,11 +8,11 @@ AC_CANONICAL_SYSTEM | ||||
|  | ||||
| LIBGTOP_MAJOR_VERSION=2 | ||||
| LIBGTOP_MINOR_VERSION=0 | ||||
| LIBGTOP_MICRO_VERSION=5 | ||||
| LIBGTOP_MICRO_VERSION=3 | ||||
| LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION | ||||
| AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION) | ||||
| LIBGTOP_INTERFACE_AGE=5 | ||||
| LIBGTOP_BINARY_AGE=5 | ||||
| LIBGTOP_INTERFACE_AGE=3 | ||||
| LIBGTOP_BINARY_AGE=3 | ||||
|  | ||||
| # you can set this to `-snap' for instance to create | ||||
| # a `libgtop-1.x.y-snap.tar.gz' tarball. | ||||
| @@ -285,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 ca cs cy da de el es et fa fi fr ga gl he hi hu id it ja ko lv mk ml mn ms nl nn no pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta tr uk vi zh_CN zh_TW" | ||||
| dnl ## 'es_ES' is only needed for format numbers different of 'es' | ||||
| ALL_LINGUAS="am ar az be bg ca cs cy 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) | ||||
| @@ -479,6 +480,5 @@ lib/Makefile | ||||
| examples/Makefile | ||||
| doc/Makefile | ||||
| support/Makefile | ||||
| support/gnome-support-2.0.pc | ||||
| libgtop-2.0.pc | ||||
| ]) | ||||
|   | ||||
							
								
								
									
										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.* | ||||
| @@ -1,107 +0,0 @@ | ||||
| @node LibGTop Internals, , Reference Manual, Top | ||||
| @chapter LibGTop Internals | ||||
|  | ||||
| @menu | ||||
| * General Internals::           General Internals | ||||
| * Sysdeps Internals::           Sysdeps Internals | ||||
| @end menu | ||||
|  | ||||
| @node General Internals, Sysdeps Internals, LibGTop Internals, LibGTop Internals | ||||
| @section General Internals | ||||
|  | ||||
| @menu | ||||
| * glibtop::                     The server structure | ||||
| @end menu | ||||
|  | ||||
| @node glibtop,  , General Internals, General Internals | ||||
| @subsection The server structure - @code{glibtop} | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| typedef struct _glibtop         glibtop; | ||||
|  | ||||
| struct _glibtop | ||||
| @{ | ||||
|         unsigned flags; | ||||
|         unsigned method; | ||||
|         unsigned error_method; | ||||
| #ifdef HAVE_GLIBTOP_MACHINE_H | ||||
|         glibtop_machine machine; | ||||
| #endif | ||||
|         int input [2]; | ||||
|         int output [2]; | ||||
|         int socket; | ||||
|         int ncpu; | ||||
|         unsigned long os_version_code; | ||||
|         const char *name; | ||||
|         const char *server_command; | ||||
|         const char *server_host; | ||||
|         const char *server_user; | ||||
|         const char *server_rsh; | ||||
|         unsigned long features; | ||||
|         unsigned long server_port; | ||||
|         glibtop_sysdeps sysdeps; | ||||
|         glibtop_sysdeps required; | ||||
|         glibtop_sysdeps wanted; | ||||
|         pid_t pid; | ||||
| @}; | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| @node Sysdeps Internals,  , General Internals, LibGTop Internals | ||||
| @section Sysdeps Internals | ||||
|  | ||||
| @menu | ||||
| * glibtop_open_s::              Non-privileged initializations | ||||
| * glibtop_close_s::             Non-privileged cleanups | ||||
| @end menu | ||||
|  | ||||
| @node glibtop_open_s, glibtop_close_s, Sysdeps Internals, Sysdeps Internals | ||||
| @subsection glibtop_open_s | ||||
|  | ||||
| This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to | ||||
| initialize a server. It should do all initializations that do not need any | ||||
| privileges. | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| void | ||||
| glibtop_open_s (glibtop *server, const char *program_name, | ||||
| 		const unsigned long features, | ||||
| 		const unsigned flags); | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| @table @code | ||||
| @item server | ||||
| Pointer to the @code{glibtop} server structure. | ||||
| @item program_name | ||||
| Name of the calling program; the implementation will usually | ||||
| set @samp{server->name} to this so it'll be used as the program | ||||
| name in error messages. | ||||
| @end table | ||||
|  | ||||
| Typically, this function will set @code{server->name}, @code{server->ncpu} and | ||||
| @code{server->os_version_code} and initialize any of the @code{server->machine} | ||||
| fields which do not need any privileges. | ||||
|  | ||||
| It is normally implemented in @file{open.c} in the sysdeps directory. | ||||
|  | ||||
| @node glibtop_close_s,  , glibtop_open_s, Sysdeps Internals | ||||
| @subsection glibtop_close_s | ||||
|  | ||||
| This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to | ||||
| clean-up a server when it's no longer used. | ||||
|  | ||||
| It must free all resources that were allocated in @code{glibtop_open_s}. | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| void | ||||
| glibtop_close_s (glibtop *server); | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| It is normally implemented in @file{close.c} in the sysdeps directory, but may | ||||
| be empty. | ||||
|  | ||||
| @@ -1,2 +0,0 @@ | ||||
| Makefile.in | ||||
| Makefile | ||||
| @@ -1,9 +0,0 @@ | ||||
| backenddir	= @LIBGTOP_BACKEND_DIR@ | ||||
|  | ||||
| backend_DATA	= \ | ||||
| 	libgtop-backends.dtd	\ | ||||
| 	libgtop-backend-info.dtd | ||||
|  | ||||
| EXTRA_DIST	= | | ||||
| 	$(backend_DATA) | ||||
|  | ||||
| @@ -1,23 +0,0 @@ | ||||
| <!ELEMENT BackendInfo (name,description?,comments?,authors,legalnotice)> | ||||
| <!ELEMENT name (short_name,long_name?)> | ||||
| <!ELEMENT short_name (#PCDATA)> | ||||
| <!ELEMENT long_name (#PCDATA)> | ||||
|  | ||||
| <!ELEMENT description (#PCDATA)> | ||||
|  | ||||
| <!ELEMENT authors (author)+> | ||||
| <!ELEMENT author (author_name,author_email?)> | ||||
| <!ELEMENT author_name (#PCDATA)> | ||||
| <!ELEMENT author_email (#PCDATA)> | ||||
|  | ||||
| <!ELEMENT legalnotice (license,copyright?)> | ||||
| <!ELEMENT license (#PCDATA)> | ||||
|  | ||||
| <!ELEMENT copyright (holder)+> | ||||
| <!ELEMENT holder (holder_year?,holder_name,holder_email?)> | ||||
| <!ELEMENT holder_year (#PCDATA)> | ||||
| <!ELEMENT holder_name (#PCDATA)> | ||||
| <!ELEMENT holder_email (#PCDATA)> | ||||
|  | ||||
| <!ELEMENT comments (comment)+> | ||||
| <!ELEMENT comment (#PCDATA)> | ||||
| @@ -1,11 +0,0 @@ | ||||
| <!ELEMENT Backends (Backend)+> | ||||
|  | ||||
| <!ELEMENT Backend (Name,Location)> | ||||
| <!ELEMENT Name (#PCDATA)> | ||||
|  | ||||
| <!ELEMENT Location (LibtoolName?,ShlibName,ExtraLibs?)> | ||||
| <!ELEMENT LibtoolName (#PCDATA)> | ||||
| <!ELEMENT ShlibName (#PCDATA)> | ||||
|  | ||||
| <!ELEMENT ExtraLibs (ExtraLib)+> | ||||
| <!ELEMENT ExtraLib (LibtoolName?,ShlibName)> | ||||
| @@ -1,50 +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_ARRAY_H__ | ||||
| #define __GLIBTOP_ARRAY_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_ARRAY_NUMBER		0 | ||||
| #define GLIBTOP_ARRAY_SIZE		1 | ||||
| #define GLIBTOP_ARRAY_TOTAL		2 | ||||
|  | ||||
| #define GLIBTOP_MAX_ARRAY		3 | ||||
|  | ||||
| typedef struct _glibtop_array	glibtop_array; | ||||
|  | ||||
| struct _glibtop_array | ||||
| { | ||||
|     u_int64_t flags, | ||||
| 	number,		/* GLIBTOP_ARRAY_NUMBER	*/ | ||||
| 	size,		/* GLIBTOP_ARRAY_SIZE	*/ | ||||
| 	total;		/* GLIBTOP_ARRAY_TOTAL	*/ | ||||
| }; | ||||
|  | ||||
| #endif | ||||
| @@ -1,43 +0,0 @@ | ||||
| /* -*- 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. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_CALL_VECTOR_H__ | ||||
| #define __GLIBTOP_CALL_VECTOR_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/union.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| struct _glibtop_call_vector | ||||
| { | ||||
|     @@GLIBTOP_CALL_VECTOR@@ | ||||
| }; | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -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; | ||||
| @@ -1,91 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_COMPAT10_H__ | ||||
| #define __GLIBTOP_COMPAT10_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| /* glibtop_cpu */ | ||||
|  | ||||
| #define GLIBTOP_XCPU_TOTAL		GLIBTOP_CPU_XCPU_TOTAL | ||||
| #define GLIBTOP_XCPU_USER		GLIBTOP_CPU_XCPU_USER | ||||
| #define GLIBTOP_XCPU_NICE		GLIBTOP_CPU_XCPU_NICE | ||||
| #define GLIBTOP_XCPU_SYS		GLIBTOP_CPU_XCPU_SYS | ||||
| #define GLIBTOP_XCPU_IDLE		GLIBTOP_CPU_XCPU_IDLE | ||||
| #define GLIBTOP_XCPU_FLAGS		GLIBTOP_CPU_XCPU_FLAGS | ||||
|  | ||||
| /* glibtop_proclist */ | ||||
|  | ||||
| #define GLIBTOP_PROCLIST_NUMBER		GLIBTOP_ARRAY_NUMBER | ||||
| #define GLIBTOP_PROCLIST_SIZE		GLIBTOP_ARRAY_SIZE | ||||
| #define GLIBTOP_PROCLIST_TOTAL		GLIBTOP_ARRAY_TOTAL | ||||
|  | ||||
| #define GLIBTOP_MAX_PROCLIST		GLIBTOP_MAX_ARRAY | ||||
|  | ||||
| typedef struct _glibtop_array		glibtop_proclist; | ||||
|  | ||||
| /* glibtop_mountlist */ | ||||
|  | ||||
| #define GLIBTOP_MOUNTLIST_NUMBER	GLIBTOP_ARRAY_NUMBER | ||||
| #define GLIBTOP_MOUNTLIST_SIZE		GLIBTOP_ARRAY_SIZE | ||||
| #define GLIBTOP_MOUNTLIST_TOTAL		GLIBTOP_ARRAY_TOTAL | ||||
|  | ||||
| #define GLIBTOP_MAX_MOUNTLIST		GLIBTOP_MAX_ARRAY | ||||
|  | ||||
| typedef struct _glibtop_array		glibtop_mountlist; | ||||
|  | ||||
| /* glibtop_proc_args */ | ||||
|  | ||||
| #define GLIBTOP_PROC_ARGS_SIZE		0 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_ARGS		1 | ||||
|  | ||||
| typedef struct _glibtop_array		glibtop_proc_args; | ||||
|  | ||||
| /* glibtop_proc_map */ | ||||
|  | ||||
| #define GLIBTOP_PROC_MAP_NUMBER		GLIBTOP_ARRAY_NUMBER | ||||
| #define GLIBTOP_PROC_MAP_SIZE		GLIBTOP_ARRAY_SIZE | ||||
| #define GLIBTOP_PROC_MAP_TOTAL		GLIBTOP_ARRAY_TOTAL | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_MAP		GLIBTOP_MAX_ARRAY | ||||
|  | ||||
| typedef struct _glibtop_array		glibtop_proc_map; | ||||
|  | ||||
| /* glibtop_interface_names */ | ||||
|  | ||||
| #define GLIBTOP_INTERFACE_NAMES_NUMBER	GLIBTOP_ARRAY_NUMBER | ||||
| #define GLIBTOP_INTERFACE_NAMES_SIZE	GLIBTOP_ARRAY_SIZE | ||||
| #define GLIBTOP_INTERFACE_NAMES_TOTAL	GLIBTOP_ARRAY_TOTAL | ||||
|  | ||||
| #define GLIBTOP_MAX_INTERFACE_NAMES	GLIBTOP_MAX_ARRAY | ||||
|  | ||||
| typedef struct _glibtop_array		glibtop_interface_names; | ||||
|  | ||||
| #endif | ||||
| @@ -1,95 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_ERRORS_H__ | ||||
| #define __GLIBTOP_ERRORS_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| #include <glib/gerror.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_ERROR glibtop_error_quark () | ||||
|  | ||||
| GQuark glibtop_error_quark (void) G_GNUC_CONST; | ||||
|  | ||||
| typedef enum { | ||||
|     GLIBTOP_ERROR_NO_ERROR = 0, | ||||
|     GLIBTOP_ERROR_UNKNOWN, | ||||
|     GLIBTOP_ERROR_INVALID_ARGUMENT, | ||||
|     GLIBTOP_ERROR_NO_SUCH_PARAMETER, | ||||
|     GLIBTOP_ERROR_READONLY_VALUE, | ||||
|     GLIBTOP_ERROR_SIZE_MISMATCH, | ||||
|  | ||||
|     GLIBTOP_ERROR_SERVER_COMM_FAILURE, | ||||
|  | ||||
|     GLIBTOP_ERROR_NO_SUCH_PROCESS, | ||||
|  | ||||
|     GLIBTOP_ERROR_NO_KERNEL_SUPPORT, | ||||
|     GLIBTOP_ERROR_INCOMPATIBLE_KERNEL, | ||||
|  | ||||
|     GLIBTOP_ERROR_NO_SUCH_BACKEND, | ||||
|     GLIBTOP_ERROR_NOT_IMPLEMENTED, | ||||
|     GLIBTOP_ERROR_NO_BACKEND_OPENED, | ||||
|  | ||||
|     GLIBTOP_ERROR_DEMARSHAL_ERROR | ||||
| } glibtop_error; | ||||
|  | ||||
| void | ||||
| glibtop_error_vl (glibtop_client *client, glibtop_error code, | ||||
| 		  const char *format, va_list args); | ||||
|  | ||||
| void | ||||
| glibtop_error_io_vl (glibtop_client *client, glibtop_error code, | ||||
| 		     int io_errno, const char *format, va_list args); | ||||
|  | ||||
| void | ||||
| glibtop_warn_vl (glibtop_client *client, glibtop_error code, | ||||
| 		 const char *format, va_list args); | ||||
|  | ||||
| void | ||||
| glibtop_warn_io_vl (glibtop_client *client, glibtop_error code, | ||||
| 		    int io_errno, const char *format, va_list args); | ||||
|  | ||||
| void | ||||
| glibtop_error_l (glibtop_client *client, glibtop_error code, | ||||
| 		 char *format, ...); | ||||
|  | ||||
| void | ||||
| glibtop_warn_l (glibtop_client *client, glibtop_error code, | ||||
| 		char *format, ...); | ||||
|  | ||||
| void | ||||
| glibtop_error_io_l (glibtop_client *client, glibtop_error code, | ||||
| 		    char *format, ...); | ||||
|  | ||||
| void | ||||
| glibtop_warn_io_l (glibtop_client *client, glibtop_error code, | ||||
| 		   char *format, ...); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,50 +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_GLIB_ARRAYS_H__ | ||||
| #define __GLIBTOP_GLIB_ARRAYS_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/array.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glib.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| GPtrArray * | ||||
| glibtop_get_proc_args_as_array_l (glibtop_client *client, pid_t pid); | ||||
|  | ||||
| GArray * | ||||
| glibtop_get_proclist_as_array_l (glibtop_client *client, int64_t which, int64_t arg); | ||||
|  | ||||
| GPtrArray * | ||||
| glibtop_get_proc_map_as_array_l (glibtop_client *client, pid_t pid); | ||||
|  | ||||
| GPtrArray * | ||||
| glibtop_get_mountlist_as_array_l (glibtop_client *client, int all_fs); | ||||
|  | ||||
| G_END_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 *, | ||||
| 					     u_int64_t, 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, u_int64_t 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, | ||||
| 			     u_int64_t 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,75 +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; | ||||
|  | ||||
| typedef int (*glibtop_init_func_t)	(glibtop_server *, glibtop_closure *); | ||||
|  | ||||
| extern glibtop_init_func_t		_glibtop_init_hook_s []; | ||||
| extern glibtop_init_func_t		_glibtop_init_hook_p []; | ||||
|  | ||||
| struct _glibtop_server_info | ||||
| { | ||||
|     int ncpu;			/* Number of CPUs, zero if single-processor */ | ||||
|     unsigned long features;	/* Server is required for this features */ | ||||
|     glibtop_sysdeps sysdeps;	/* Detailed feature list */ | ||||
|     glibtop_sysdeps required;	/* Required feature list */ | ||||
|     glibtop_sysdeps wanted;	/* We only want this features */ | ||||
| }; | ||||
|  | ||||
| struct	_glibtop_server | ||||
| { | ||||
|     glibtop_server_info *info; | ||||
|  | ||||
|     int refcount; | ||||
|     unsigned flags; | ||||
|     const char *name; | ||||
|  | ||||
|     void *_priv; | ||||
| }; | ||||
|  | ||||
| glibtop_server * | ||||
| glibtop_server_new (void); | ||||
|  | ||||
| void | ||||
| glibtop_server_ref (glibtop_server *server); | ||||
|  | ||||
| void | ||||
| glibtop_server_unref (glibtop_server *server); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,203 +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_INTERFACES_H__ | ||||
| #define __GLIBTOP_INTERFACES_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glibtop/compat_10.h> | ||||
| #include <glibtop/array.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_INTERFACE_IF_FLAGS	0 | ||||
| #define GLIBTOP_INTERFACE_TRANSPORT	1 | ||||
| #define GLIBTOP_INTERFACE_TYPE		2 | ||||
| #define GLIBTOP_INTERFACE_NUMBER	3 | ||||
| #define GLIBTOP_INTERFACE_INSTANCE	4 | ||||
| #define GLIBTOP_INTERFACE_NUM_LOGICAL	5 | ||||
| #define GLIBTOP_INTERFACE_NAME		6 | ||||
|  | ||||
| #define GLIBTOP_MAX_INTERFACE		7 | ||||
|  | ||||
| #define GLIBTOP_IFADDR_TRANSPORT	0 | ||||
| #define GLIBTOP_IFADDR_ADDR_LEN		1 | ||||
| #define GLIBTOP_IFADDR_ADDRESS		2 | ||||
| #define GLIBTOP_IFADDR_SUBNET		3 | ||||
| #define GLIBTOP_IFADDR_SCOPE		4 | ||||
|  | ||||
| #define GLIBTOP_MAX_IFADDR		5 | ||||
|  | ||||
| typedef struct _glibtop_interface	glibtop_interface; | ||||
| typedef struct _glibtop_ifaddr		glibtop_ifaddr; | ||||
|  | ||||
| typedef enum _glibtop_interface_type	glibtop_interface_type; | ||||
| typedef enum _glibtop_transport		glibtop_transport; | ||||
| typedef enum _glibtop_protocol		glibtop_protocol; | ||||
|  | ||||
| typedef enum _glibtop_ipv6_scope	glibtop_ipv6_scope; | ||||
|  | ||||
| typedef enum _glibtop_strategy		glibtop_strategy; | ||||
| typedef enum _glibtop_interface_flags	glibtop_interface_flags; | ||||
|  | ||||
| enum _glibtop_protocol { | ||||
|     GLIBTOP_PROTOCOL_OTHERS	= 0, | ||||
|     GLIBTOP_PROTOCOL_ICMP	= 1 << 0, | ||||
|     GLIBTOP_PROTOCOL_TCP	= 1 << 1, | ||||
|     GLIBTOP_PROTOCOL_UDP	= 1 << 2, | ||||
|     GLIBTOP_PROTOCOL_IGMP	= 1 << 3, | ||||
|     GLIBTOP_PROTOCOL_RAW	= 1 << 4, | ||||
|     GLIBTOP_PROTOCOL_ICMP6	= 1 << 5, | ||||
|     GLIBTOP_PROTOCOL_TCP6	= 1 << 6, | ||||
|     GLIBTOP_PROTOCOL_UDP6	= 1 << 7, | ||||
|     GLIBTOP_PROTOCOL_IGMP6	= 1 << 8, | ||||
|     GLIBTOP_PROTOCOL_RAW6	= 1 << 9 | ||||
| }; | ||||
|  | ||||
| enum _glibtop_transport { | ||||
|     GLIBTOP_TRANSPORT_DEFAULT	= 0, | ||||
|     GLIBTOP_TRANSPORT_IPV4	= 1 << 0, | ||||
|     GLIBTOP_TRANSPORT_IPV6	= 1 << 1, | ||||
|     GLIBTOP_TRANSPORT_IPX	= 1 << 2, | ||||
|     GLIBTOP_TRANSPORT_X25	= 1 << 3, | ||||
|     GLIBTOP_TRANSPORT_DECNET	= 1 << 4, | ||||
|     GLIBTOP_TRANSPORT_APPLETALK	= 1 << 5, | ||||
|     GLIBTOP_TRANSPORT_NETBEUI	= 1 << 6 | ||||
| }; | ||||
|  | ||||
| #define GLIBTOP_TRANSPORT_ALL	GLIBTOP_UNLIMITED | ||||
| #define GLIBTOP_PROTOCOL_ALL	GLIBTOP_UNLIMITED | ||||
|  | ||||
| enum _glibtop_interface_type { | ||||
|     GLIBTOP_INTERFACE_ALL		= 0, | ||||
|     GLIBTOP_INTERFACE_OTHER, | ||||
|     /* Network interfaces */ | ||||
|     GLIBTOP_INTERFACE_ETHERNET		= 101, | ||||
|     GLIBTOP_INTERFACE_FDDI, | ||||
|     GLIBTOP_INTERFACE_FRAME_RELAY, | ||||
|     GLIBTOP_INTERFACE_TOKEN_RING, | ||||
|     GLIBTOP_INTERFACE_ARCNET, | ||||
|     GLIBTOP_INTERFACE_ATM, | ||||
|     /* Dummy interfaces */ | ||||
|     GLIBTOP_INTERFACE_LOOPBACK		= 501, | ||||
|     GLIBTOP_INTERFACE_DUMMY, | ||||
|     /* Dialup interfaces */ | ||||
|     GLIBTOP_INTERFACE_PARA		= 801, | ||||
|     GLIBTOP_INTERFACE_SLIP, | ||||
|     GLIBTOP_INTERFACE_PPP, | ||||
|     GLIBTOP_INTERFACE_ISDN | ||||
| }; | ||||
|  | ||||
| enum _glibtop_ipv6_scope { | ||||
|     GLIBTOP_IPV6_SCOPE_GLOBAL		= 0, | ||||
|     GLIBTOP_IPV6_SCOPE_LOOPBACK		= 1 << 1, | ||||
|     GLIBTOP_IPV6_SCOPE_LINKLOCAL	= 1 << 2, | ||||
|     GLIBTOP_IPV6_SCOPE_SITELOCAL	= 1 << 3, | ||||
|     GLIBTOP_IPV6_SCOPE_COMPATv4		= 1 << 4, | ||||
|     GLIBTOP_IPV6_SCOPE_UNKNOWN		= 1 << 5 | ||||
| }; | ||||
|  | ||||
| enum _glibtop_strategy { | ||||
|     GLIBTOP_INTERFACES_ALL		= 0, | ||||
|     GLIBTOP_INTERFACES_BEST_MATCHING, | ||||
|     GLIBTOP_INTERFACES_ONLY_THIS_ONE, | ||||
|     GLIBTOP_INTERFACES_INCLUDE_LOGICAL	= 1 << 7 | ||||
| }; | ||||
|  | ||||
| #define GLIBTOP_STRATEGY_FLAGS_MASK	(1 << 7) | ||||
|  | ||||
| enum _glibtop_interface_flags { | ||||
|     GLIBTOP_IF_FLAGS_UP = 1, | ||||
|     GLIBTOP_IF_FLAGS_BROADCAST, | ||||
|     GLIBTOP_IF_FLAGS_DEBUG, | ||||
|     GLIBTOP_IF_FLAGS_LOOPBACK, | ||||
|     GLIBTOP_IF_FLAGS_POINTOPOINT, | ||||
|     GLIBTOP_IF_FLAGS_RUNNING, | ||||
|     GLIBTOP_IF_FLAGS_NOARP, | ||||
|     GLIBTOP_IF_FLAGS_PROMISC, | ||||
|     GLIBTOP_IF_FLAGS_ALLMULTI, | ||||
|     GLIBTOP_IF_FLAGS_OACTIVE, | ||||
|     GLIBTOP_IF_FLAGS_SIMPLEX, | ||||
|     GLIBTOP_IF_FLAGS_LINK0, | ||||
|     GLIBTOP_IF_FLAGS_LINK1, | ||||
|     GLIBTOP_IF_FLAGS_LINK2, | ||||
|     GLIBTOP_IF_FLAGS_ALTPHYS, | ||||
|     GLIBTOP_IF_FLAGS_MULTICAST | ||||
| }; | ||||
|  | ||||
| struct _glibtop_ifaddr | ||||
| { | ||||
|     u_int64_t	flags, | ||||
| 	transport;			/* GLIBTOP_IFADDR_TRANSPORT	*/ | ||||
|     u_int8_t	addr_len,		/* GLIBTOP_IFADDR_ADDR_LEN	*/ | ||||
| 	address [GLIBTOP_IFADDR_LEN];	/* GLIBTOP_IFADDR_ADDRESS	*/ | ||||
|     u_int64_t	subnet,			/* GLIBTOP_IFADDR_SUBNET	*/ | ||||
| 	scope;				/* GLIBTOP_IFADDR_SCOPE	*/ | ||||
| }; | ||||
|  | ||||
| struct _glibtop_interface | ||||
| { | ||||
|     u_int64_t	flags, | ||||
| 	if_flags,		/* GLIBTOP_INTERFACE_IF_FLAGS		*/ | ||||
| 	transport,		/* GLIBTOP_INTERFACE_TRANSPORT		*/ | ||||
| 	type,			/* GLIBTOP_INTERFACE_TYPE		*/ | ||||
| 	number,			/* GLIBTOP_INTERFACE_NUMBER		*/ | ||||
| 	instance,		/* GLIBTOP_INTERFACE_INSTANCE		*/ | ||||
| 	num_logical;		/* GLIBTOP_INTERFACE_NUM_LOGICAL	*/ | ||||
|     char name [GLIBTOP_INTERFACE_LEN]; | ||||
| }; | ||||
|  | ||||
| #if GLIBTOP_SUID_INTERFACE_NAMES | ||||
| #define glibtop_get_interface_names_r	glibtop_get_interface_names_p | ||||
| #else | ||||
| #define glibtop_get_interface_names_r	glibtop_get_interface_names_s | ||||
| #endif | ||||
|  | ||||
| glibtop_interface *glibtop_get_interface_names_l (glibtop_client *client, glibtop_array *array, u_int64_t interface, u_int64_t number, u_int64_t instance, u_int64_t strategy); | ||||
|  | ||||
| #if GLIBTOP_SUID_INTERFACE_NAMES | ||||
| int glibtop_init_interface_names_p (glibtop_server *server, glibtop_closure *closure); | ||||
| glibtop_interface *glibtop_get_interface_names_p (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, u_int64_t interface, u_int64_t number, u_int64_t instance, u_int64_t strategy); | ||||
| #else | ||||
| int glibtop_init_interface_names_s (glibtop_server *server, glibtop_closure *closure); | ||||
| glibtop_interface *glibtop_get_interface_names_s (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, u_int64_t interface, u_int64_t number, u_int64_t instance, u_int64_t strategy); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_interface_names []; | ||||
| extern const unsigned glibtop_types_interface_names []; | ||||
| extern const char *glibtop_labels_interface_names []; | ||||
| extern const char *glibtop_descriptions_interface_names []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_LIMITS_H__ | ||||
| #define __GLIBTOP_LIMITS_H__ | ||||
|  | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| /* Nobody should really be using more than 64 processors. */ | ||||
| #define GLIBTOP_NCPU		64 | ||||
|  | ||||
| /* Maximum number of process groups in glibtop_proc_uid. */ | ||||
| #define GLIBTOP_MAX_GROUPS	32 | ||||
|  | ||||
| /* Maximum length of a mountpoint/device name in glibtop_mountlist. */ | ||||
| #define GLIBTOP_MOUNTENTRY_LEN	79 | ||||
|  | ||||
| /* 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 ((u_int64_t)-1) */ | ||||
| #define GLIBTOP_UNLIMITED	(~(u_int64_t)0) | ||||
|  | ||||
| /* Maximum length of a backend name. */ | ||||
| #define GLIBTOP_BACKEND_NAME_LEN	40 | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,83 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_NETINFO_H__ | ||||
| #define __GLIBTOP_NETINFO_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_NETINFO_IF_FLAGS	0 | ||||
| #define GLIBTOP_NETINFO_TRANSPORT	1 | ||||
| #define GLIBTOP_NETINFO_MTU		2 | ||||
| #define GLIBTOP_NETINFO_SUBNET		3 | ||||
| #define GLIBTOP_NETINFO_ADDRESS		4 | ||||
|  | ||||
| #define GLIBTOP_MAX_NETINFO		5 | ||||
|  | ||||
| typedef struct _glibtop_netinfo	glibtop_netinfo; | ||||
|  | ||||
| #include <glibtop/interfaces.h> | ||||
|  | ||||
| struct _glibtop_netinfo | ||||
| { | ||||
|     u_int64_t	flags, | ||||
| 	if_flags,			/* GLIBTOP_NETINFO_IF_FLAGS	*/ | ||||
| 	transport,			/* GLIBTOP_NETINFO_TRANSPORT	*/ | ||||
| 	mtu;				/* GLIBTOP_NETINFO_MTU		*/ | ||||
| }; | ||||
|  | ||||
| #if GLIBTOP_SUID_NETINFO | ||||
| #define glibtop_get_netinfo_r		glibtop_get_netinfo_p | ||||
| #else | ||||
| #define glibtop_get_netinfo_r		glibtop_get_netinfo_s | ||||
| #endif | ||||
|  | ||||
| glibtop_ifaddr *glibtop_get_netinfo_l (glibtop_client *client, glibtop_array *array, glibtop_netinfo *buf, const char *interface, u_int64_t transport); | ||||
|  | ||||
| #if GLIBTOP_SUID_NETINFO | ||||
| int glibtop_init_netinfo_p (glibtop_server *server, glibtop_closure *closure); | ||||
| glibtop_ifaddr *glibtop_get_netinfo_p (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, glibtop_netinfo *buf, const char *interface, u_int64_t transport); | ||||
| #else | ||||
| int glibtop_init_netinfo_s (glibtop_server *server, glibtop_closure *closure); | ||||
| glibtop_ifaddr *glibtop_get_netinfo_s (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, glibtop_netinfo *buf, const char *interface, u_int64_t transport); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_netinfo []; | ||||
| extern const unsigned glibtop_types_netinfo []; | ||||
| extern const char *glibtop_labels_netinfo []; | ||||
| extern const char *glibtop_descriptions_netinfo []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,81 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCCWD_H__ | ||||
| #define __GLIBTOP_PROCCWD_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glibtop/array.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_CWD_SIZE			0 | ||||
| #define GLIBTOP_PROC_CWD_DEVICE			1 | ||||
| #define GLIBTOP_PROC_CWD_INODE			2 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_CWD			3 | ||||
|  | ||||
| typedef struct _glibtop_proc_cwd	glibtop_proc_cwd; | ||||
|  | ||||
| /* Cwd stuff */ | ||||
|  | ||||
| struct _glibtop_proc_cwd | ||||
| { | ||||
|     u_int64_t	flags, | ||||
| 	size, | ||||
| 	device, | ||||
| 	inode; | ||||
| }; | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_CWD | ||||
| #define glibtop_get_proc_cwd_r		glibtop_get_proc_cwd_p | ||||
| #else | ||||
| #define glibtop_get_proc_cwd_r		glibtop_get_proc_cwd_s | ||||
| #endif | ||||
|  | ||||
| char *glibtop_get_proc_cwd_l (glibtop_client *client, glibtop_proc_cwd *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_CWD | ||||
| int glibtop_init_proc_cwd_p (glibtop_server *server, glibtop_closure *closure); | ||||
| char *glibtop_get_proc_cwd_p (glibtop_server *server, glibtop_closure *closure, glibtop_proc_cwd *buf, pid_t pid); | ||||
| #else | ||||
| int glibtop_init_proc_cwd_s (glibtop_server *server, glibtop_closure *closure); | ||||
| char *glibtop_get_proc_cwd_s (glibtop_server *server, glibtop_closure *closure, glibtop_proc_cwd *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| #ifdef GLIBTOP_NAMES | ||||
|  | ||||
| /* You need to link with -lgtop_names to get this stuff here. */ | ||||
|  | ||||
| extern const char *glibtop_names_proc_cwd []; | ||||
| extern const unsigned glibtop_types_proc_cwd []; | ||||
| extern const char *glibtop_labels_proc_cwd []; | ||||
| extern const char *glibtop_descriptions_proc_cwd []; | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
| @@ -1,93 +0,0 @@ | ||||
| diff -ru kernel-source-2.2.12/Makefile hacker-2.2.12/Makefile | ||||
| --- kernel-source-2.2.12/Makefile	Thu Aug 26 02:29:45 1999 | ||||
| +++ hacker-2.2.12/Makefile	Sat Dec 18 17:33:04 1999 | ||||
| @@ -113,6 +113,7 @@ | ||||
|  DRIVERS		=drivers/block/block.a \ | ||||
|  		 drivers/char/char.a \ | ||||
|  	         drivers/misc/misc.a | ||||
| +EXTRAS		= | ||||
|  LIBS		=$(TOPDIR)/lib/lib.a | ||||
|  SUBDIRS		=kernel drivers mm fs net ipc lib | ||||
|   | ||||
| @@ -202,6 +203,11 @@ | ||||
|  DRIVERS := $(DRIVERS) drivers/net/irda/irda_drivers.a | ||||
|  endif | ||||
|   | ||||
| +ifdef CONFIG_LIBGTOP | ||||
| +SUBDIRS := $(SUBDIRS) libgtop | ||||
| +EXTRAS  := $(EXTRAS) libgtop/kernel.o | ||||
| +endif | ||||
| + | ||||
|  include arch/$(ARCH)/Makefile | ||||
|   | ||||
|  .S.s: | ||||
| @@ -222,6 +228,7 @@ | ||||
|  		$(FILESYSTEMS) \ | ||||
|  		$(NETWORKS) \ | ||||
|  		$(DRIVERS) \ | ||||
| +		$(EXTRAS) \ | ||||
|  		$(LIBS) \ | ||||
|  		--end-group \ | ||||
|  		-o vmlinux | ||||
| diff -ru kernel-source-2.2.12/arch/i386/config.in hacker-2.2.12/arch/i386/config.in | ||||
| --- kernel-source-2.2.12/arch/i386/config.in	Thu Oct 14 00:57:46 1999 | ||||
| +++ hacker-2.2.12/arch/i386/config.in	Sat Dec 18 17:33:04 1999 | ||||
| @@ -88,6 +88,9 @@ | ||||
|  bool 'System V IPC' CONFIG_SYSVIPC | ||||
|  bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT | ||||
|  bool 'Sysctl support' CONFIG_SYSCTL | ||||
| +if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then | ||||
| +  tristate 'LibGTop support' CONFIG_LIBGTOP | ||||
| +fi | ||||
|  tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT | ||||
|  tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF | ||||
|  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC | ||||
| diff -ru kernel-source-2.2.12/include/linux/autoconf.h hacker-2.2.12/include/linux/autoconf.h | ||||
| --- kernel-source-2.2.12/include/linux/autoconf.h	Sat Dec  4 01:20:30 1999 | ||||
| +++ hacker-2.2.12/include/linux/autoconf.h	Sat Dec 18 17:41:44 1999 | ||||
| @@ -53,6 +53,8 @@ | ||||
|  #define CONFIG_SYSVIPC 1 | ||||
|  #define CONFIG_BSD_PROCESS_ACCT 1 | ||||
|  #define CONFIG_SYSCTL 1 | ||||
| +#undef  CONFIG_LIBGTOP | ||||
| +#define CONFIG_LIBGTOP_MODULE 1 | ||||
|  #undef  CONFIG_BINFMT_AOUT | ||||
|  #define CONFIG_BINFMT_AOUT_MODULE 1 | ||||
|  #define CONFIG_BINFMT_ELF 1 | ||||
| diff -ru kernel-source-2.2.12/include/linux/sysctl.h hacker-2.2.12/include/linux/sysctl.h | ||||
| --- kernel-source-2.2.12/include/linux/sysctl.h	Mon Aug  9 21:05:13 1999 | ||||
| +++ hacker-2.2.12/include/linux/sysctl.h	Sat Dec 18 17:34:38 1999 | ||||
| @@ -57,7 +57,8 @@ | ||||
|  	CTL_FS=5,		/* Filesystems */ | ||||
|  	CTL_DEBUG=6,		/* Debugging */ | ||||
|  	CTL_DEV=7,		/* Devices */ | ||||
| -	CTL_BUS=8		/* Buses */ | ||||
| +	CTL_BUS=8,		/* Buses */ | ||||
| +	CTL_LIBGTOP=408		/* LibGTop */ | ||||
|  }; | ||||
|   | ||||
|  /* CTL_BUS names: */ | ||||
| diff -ru kernel-source-2.2.12/kernel/sysctl.c hacker-2.2.12/kernel/sysctl.c | ||||
| --- kernel-source-2.2.12/kernel/sysctl.c	Mon Aug  9 21:05:13 1999 | ||||
| +++ hacker-2.2.12/kernel/sysctl.c	Sat Dec 18 17:33:04 1999 | ||||
| @@ -83,7 +83,9 @@ | ||||
|  static ctl_table fs_table[]; | ||||
|  static ctl_table debug_table[]; | ||||
|  static ctl_table dev_table[]; | ||||
| - | ||||
| +#ifdef CONFIG_LIBGTOP | ||||
| +extern ctl_table libgtop_table[]; | ||||
| +#endif | ||||
|   | ||||
|  /* /proc declarations: */ | ||||
|   | ||||
| @@ -149,6 +151,9 @@ | ||||
|  	{CTL_FS, "fs", NULL, 0, 0555, fs_table}, | ||||
|  	{CTL_DEBUG, "debug", NULL, 0, 0555, debug_table}, | ||||
|          {CTL_DEV, "dev", NULL, 0, 0555, dev_table}, | ||||
| +#ifdef CONFIG_LIBGTOP | ||||
| +	{CTL_LIBGTOP, "libgtop", NULL, 0, 0555, libgtop_table}, | ||||
| +#endif | ||||
|  	{0} | ||||
|  }; | ||||
|   | ||||
							
								
								
									
										170
									
								
								lib/error.c
									
									
									
									
									
								
							
							
						
						
									
										170
									
								
								lib/error.c
									
									
									
									
									
								
							| @@ -1,170 +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. | ||||
| */ | ||||
|  | ||||
| #include <glibtop/error.h> | ||||
|  | ||||
| #define DEFAULT_NAME	"LibGTop-Server" | ||||
|  | ||||
| /* Prints error message and exits. */ | ||||
|  | ||||
| static void | ||||
| print_server_name (glibtop_server *server) | ||||
| { | ||||
|     fprintf (stderr, "%s: ", server ?  | ||||
| 	     (server->name ? server->name : DEFAULT_NAME) | ||||
| 	     : DEFAULT_NAME); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_vr (glibtop_server *server, char *format, va_list args) | ||||
| { | ||||
|     print_server_name (server);	 | ||||
|     vfprintf (stderr, format, args); | ||||
|     fprintf (stderr, "\n"); | ||||
|  | ||||
| #ifdef LIBGTOP_ENABLE_DEBUG | ||||
|     abort (); | ||||
| #else | ||||
|     exit (1); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_io_vr (glibtop_server *server, char *format, int error, va_list args) | ||||
| { | ||||
|     print_server_name (server); | ||||
|     vfprintf (stderr, format, args); | ||||
|     fprintf (stderr, ": %s\n", strerror (error)); | ||||
|  | ||||
| #ifdef LIBGTOP_ENABLE_DEBUG | ||||
|     abort (); | ||||
| #else | ||||
|     exit (1); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_vr (glibtop_server *server, char *format, va_list args) | ||||
| { | ||||
|     print_server_name (server); | ||||
|     vfprintf (stderr, format, args); | ||||
|     fprintf (stderr, "\n"); | ||||
|  | ||||
| #ifdef LIBGTOP_FATAL_WARNINGS | ||||
|     abort (); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_io_vr (glibtop_server *server, char *format, int error, va_list args) | ||||
| { | ||||
|     print_server_name (server); | ||||
|     vfprintf (stderr, format, args); | ||||
|     fprintf (stderr, ": %s\n", strerror (error)); | ||||
|  | ||||
| #ifdef LIBGTOP_FATAL_WARNINGS | ||||
|     abort (); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_r (glibtop_server *server, char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_error_vr (server, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_r (glibtop_server *server, char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_warn_vr (server, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_io_r (glibtop_server *server, char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_error_io_vr (server, format, errno, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_io_r (glibtop_server *server, char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_warn_io_vr (server, format, errno, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| #ifndef  __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__ */ | ||||
							
								
								
									
										156
									
								
								lib/errors.c
									
									
									
									
									
								
							
							
						
						
									
										156
									
								
								lib/errors.c
									
									
									
									
									
								
							| @@ -1,156 +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. | ||||
| */ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
| #include <glibtop/errors.h> | ||||
|  | ||||
| /* Error quark */ | ||||
| GQuark | ||||
| glibtop_error_quark (void) | ||||
| { | ||||
|     static GQuark q = 0; | ||||
|     if (q == 0) | ||||
| 	q = g_quark_from_static_string ("glibtop-error-quark"); | ||||
|  | ||||
|     return q; | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_vl (glibtop_client *client, glibtop_error code, | ||||
| 		  const char *format, va_list args) | ||||
| { | ||||
|     gchar *message; | ||||
|     GError *error; | ||||
|  | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|     message = g_strdup_vprintf (format, args); | ||||
|  | ||||
|     error = g_error_new_literal (GLIBTOP_ERROR, code, message); | ||||
|     glibtop_client_propagate_error (client, error); | ||||
|  | ||||
|     g_error_free (error); | ||||
|     g_free (message); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_io_vl (glibtop_client *client, glibtop_error code, | ||||
| 		     int io_errno, const char *format, va_list args) | ||||
| { | ||||
|     gchar *message, *fullmessage; | ||||
|     GError *error; | ||||
|  | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|     message = g_strdup_vprintf (format, args); | ||||
|     fullmessage = g_strdup_printf ("%s: %s", message, strerror (io_errno)); | ||||
|  | ||||
|     error = g_error_new_literal (GLIBTOP_ERROR, code, message); | ||||
|     glibtop_client_propagate_error (client, error); | ||||
|  | ||||
|     g_error_free (error); | ||||
|     g_free (fullmessage); | ||||
|     g_free (message); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_vl (glibtop_client *client, glibtop_error code, | ||||
| 		 const char *format, va_list args) | ||||
| { | ||||
|     gchar *message; | ||||
|     GError *error; | ||||
|  | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|     message = g_strdup_vprintf (format, args); | ||||
|  | ||||
|     error = g_error_new_literal (GLIBTOP_ERROR, code, message); | ||||
|     glibtop_client_propagate_warning (client, error); | ||||
|  | ||||
|     g_error_free (error); | ||||
|     g_free (message); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_io_vl (glibtop_client *client, glibtop_error code, | ||||
| 		    int io_errno, const char *format, va_list args) | ||||
| { | ||||
|     gchar *message, *fullmessage; | ||||
|     GError *error; | ||||
|  | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|     message = g_strdup_vprintf (format, args); | ||||
|     fullmessage = g_strdup_printf ("%s: %s", message, strerror (io_errno)); | ||||
|  | ||||
|     error = g_error_new_literal (GLIBTOP_ERROR, code, message); | ||||
|     glibtop_client_propagate_warning (client, error); | ||||
|  | ||||
|     g_error_free (error); | ||||
|     g_free (fullmessage); | ||||
|     g_free (message); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_l (glibtop_client *client, glibtop_error code, | ||||
| 		 char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_error_vl (client, code, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_l (glibtop_client *client, glibtop_error code, | ||||
| 		char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_warn_vl (client, code, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_io_l (glibtop_client *client, glibtop_error code, | ||||
| 		    char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_error_io_vl (client, code, errno, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_io_l (glibtop_client *client, glibtop_error code, | ||||
| 		   char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_warn_io_vl (client, code, errno, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| @@ -1,120 +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. | ||||
| */ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/union.h> | ||||
|  | ||||
| #include <glibtop/glib-arrays.h> | ||||
|  | ||||
| GArray * | ||||
| glibtop_get_proclist_as_array_l (glibtop_client *client, int64_t which, | ||||
| 				 int64_t arg) | ||||
| { | ||||
|     glibtop_array array; | ||||
|     GArray *retval; | ||||
|     unsigned *ptr; | ||||
|     int i; | ||||
|  | ||||
|     ptr = glibtop_get_proclist_l (client, &array, which, arg); | ||||
|     if (!ptr) return NULL; | ||||
|  | ||||
|     retval = g_array_new (FALSE, TRUE, sizeof (guint)); | ||||
|     retval = g_array_set_size (retval, array.number); | ||||
|  | ||||
|     for (i = 0; i < array.number; i++) | ||||
| 	g_array_index (retval, guint, i) = ptr [i]; | ||||
|  | ||||
|     g_free (ptr); | ||||
|  | ||||
|     return retval; | ||||
| } | ||||
|  | ||||
| GPtrArray * | ||||
| glibtop_get_proc_args_as_array_l (glibtop_client *client, pid_t pid) | ||||
| { | ||||
|     glibtop_array array; | ||||
|     GPtrArray *retval; | ||||
|     char **ptr; | ||||
|     int i; | ||||
|  | ||||
|     ptr = glibtop_get_proc_args_l (client, &array, pid); | ||||
|     if (!ptr) return NULL; | ||||
|  | ||||
|     retval = g_ptr_array_new (); | ||||
|     g_ptr_array_set_size (retval, array.number); | ||||
|  | ||||
|     for (i = 0; i < array.number; i++) { | ||||
| 	retval->pdata [i] = g_strdup (ptr [i]); | ||||
| 	g_free (ptr [i]); | ||||
|     } | ||||
|  | ||||
|     g_free (ptr); | ||||
|  | ||||
|     return retval; | ||||
| } | ||||
|  | ||||
| GPtrArray * | ||||
| glibtop_get_proc_map_as_array_l (glibtop_client *client, pid_t pid) | ||||
| { | ||||
|     glibtop_array array; | ||||
|     GPtrArray *retval; | ||||
|     glibtop_map_entry *ptr; | ||||
|     int i; | ||||
|  | ||||
|     ptr = glibtop_get_proc_map_l (client, &array, pid); | ||||
|     if (!ptr) return NULL; | ||||
|  | ||||
|     retval = g_ptr_array_new (); | ||||
|     g_ptr_array_set_size (retval, array.number); | ||||
|  | ||||
|     for (i = 0; i < array.number; i++) | ||||
| 	retval->pdata [i] = g_memdup (ptr+i, sizeof (glibtop_map_entry)); | ||||
|  | ||||
|     g_free (ptr); | ||||
|  | ||||
|     return retval; | ||||
| } | ||||
|  | ||||
| GPtrArray * | ||||
| glibtop_get_mountlist_as_array_l (glibtop_client *client, int all_fs) | ||||
| { | ||||
|     glibtop_array array; | ||||
|     GPtrArray *retval; | ||||
|     glibtop_mountentry *ptr; | ||||
|     int i; | ||||
|  | ||||
|     ptr = glibtop_get_mountlist_l (client, &array, all_fs); | ||||
|     if (!ptr) return NULL; | ||||
|  | ||||
|     retval = g_ptr_array_new (); | ||||
|     g_ptr_array_set_size (retval, array.number); | ||||
|  | ||||
|     for (i = 0; i < array.number; i++) | ||||
| 	retval->pdata [i] = g_memdup (ptr+i, sizeof (glibtop_mountentry)); | ||||
|  | ||||
|     g_free (ptr); | ||||
|  | ||||
|     return retval; | ||||
| } | ||||
| @@ -1,280 +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. | ||||
| */ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glibtop/glibtop-backend.h> | ||||
| #include <glibtop/glibtop-backend-info.h> | ||||
|  | ||||
| static GHashTable *_glibtop_backend_list = NULL; | ||||
| static long _glibtop_backend_nr = 0; | ||||
|  | ||||
| #define LIBGTOP_XML_NAMESPACE	"http://www.home-of-linux.org/libgtop/1.1" | ||||
|  | ||||
| #include <libxml/parser.h> | ||||
|  | ||||
| #include <dirent.h> | ||||
|  | ||||
| static void _glibtop_init_gmodule_backends (const char *); | ||||
|  | ||||
| void | ||||
| glibtop_init_backends (void) | ||||
| { | ||||
|     static int backends_initialized = 0; | ||||
|  | ||||
|     if (backends_initialized) | ||||
| 	return; | ||||
|     backends_initialized = 1; | ||||
|  | ||||
|     LIBXML_TEST_VERSION; | ||||
|  | ||||
|     _glibtop_init_gmodule_backends (LIBGTOP_BACKEND_DIR); | ||||
| } | ||||
|  | ||||
| static gchar * | ||||
| _get_library_filename (xmlDocPtr doc, xmlNodePtr cur, const char *directory) | ||||
| { | ||||
|     char *filename = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); | ||||
|     gchar *retval; | ||||
|  | ||||
|     if (!filename) | ||||
| 	return NULL; | ||||
|  | ||||
|     /* already absolute */ | ||||
|     if (filename [0] == '/') | ||||
| 	retval = g_strdup (filename); | ||||
|     else | ||||
| 	retval = g_strdup_printf ("%s/%s", directory, filename); | ||||
|  | ||||
|     return retval; | ||||
| } | ||||
|  | ||||
| static GSList * | ||||
| _parse_extra_libs (xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur, const char *dir) | ||||
| { | ||||
|     GSList *list = NULL; | ||||
|  | ||||
|     /* We don't care what the top level element name is */ | ||||
|     cur = cur->xmlChildrenNode; | ||||
|     while (cur != NULL) { | ||||
|         if ((!strcmp (cur->name, "ExtraLib")) && (cur->ns == ns)) { | ||||
| 	    xmlNodePtr sub = cur->xmlChildrenNode; | ||||
|  | ||||
| 	    while (sub != NULL) { | ||||
| 		if ((!strcmp (sub->name, "ShlibName")) && (sub->ns == ns)) | ||||
| 		    list = g_slist_append | ||||
| 			(list, _get_library_filename (doc, sub, dir)); | ||||
|  | ||||
| 		sub = sub->next; | ||||
| 	    } | ||||
| 	} | ||||
|  | ||||
|         cur = cur->next; | ||||
|     } | ||||
|  | ||||
|     return list; | ||||
| } | ||||
|  | ||||
| static glibtop_backend_entry * | ||||
| _parseBackend (xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur, const char *dir) | ||||
| { | ||||
|     glibtop_backend_entry *ret = NULL; | ||||
|  | ||||
|     /* | ||||
|      * allocate the struct | ||||
|      */ | ||||
|     ret = g_new0 (glibtop_backend_entry, 1); | ||||
|  | ||||
|     /* We don't care what the top level element name is */ | ||||
|     cur = cur->xmlChildrenNode; | ||||
|     while (cur != NULL) { | ||||
|         if ((!strcmp (cur->name, "Name")) && (cur->ns == ns)) | ||||
|             ret->name = xmlNodeListGetString | ||||
| 		(doc, cur->xmlChildrenNode, 1); | ||||
|  | ||||
|         if ((!strcmp (cur->name, "Location")) && (cur->ns == ns)) { | ||||
| 	    xmlNodePtr sub = cur->xmlChildrenNode; | ||||
|  | ||||
| 	    while (sub != NULL) { | ||||
| 		if ((!strcmp (sub->name, "LibtoolName")) && (sub->ns == ns)) | ||||
| 		    ret->libtool_name = _get_library_filename (doc, sub, dir); | ||||
| 		if ((!strcmp (sub->name, "ShlibName")) && (sub->ns == ns)) | ||||
| 		    ret->shlib_name = _get_library_filename (doc, sub, dir); | ||||
|  | ||||
| 		if ((!strcmp (sub->name, "ExtraLibs")) && (sub->ns == ns)) | ||||
| 		    ret->extra_libs = _parse_extra_libs (doc, ns, sub, dir); | ||||
|  | ||||
| 		sub = sub->next; | ||||
| 	    } | ||||
| 	} | ||||
|  | ||||
|         cur = cur->next; | ||||
|     } | ||||
|  | ||||
|     return ret; | ||||
| } | ||||
|  | ||||
| static void | ||||
| _glibtop_init_gmodule_backends (const char *directory) | ||||
| { | ||||
|     DIR *dir; | ||||
|     struct dirent *entry; | ||||
|  | ||||
|     dir = opendir (directory); | ||||
|     if (!dir) return; | ||||
|  | ||||
|     while ((entry = readdir (dir)) != NULL) { | ||||
| 	size_t len = strlen (entry->d_name); | ||||
| 	gchar *filename; | ||||
| 	xmlDocPtr doc; | ||||
| 	xmlNsPtr ns; | ||||
| 	xmlNodePtr cur; | ||||
|  | ||||
| 	if (len < 8) | ||||
| 	    continue; | ||||
|  | ||||
| 	if (strcmp (entry->d_name+len-8, ".backend")) | ||||
| 	    continue; | ||||
|  | ||||
| 	filename = g_strdup_printf ("%s/%s", directory, entry->d_name); | ||||
|  | ||||
| 	doc = xmlParseFile (filename); | ||||
|  | ||||
| 	if (!doc) { | ||||
| 	    g_warning ("Cannot parse %s", filename); | ||||
| 	    g_free (filename); | ||||
| 	    continue; | ||||
| 	} | ||||
|  | ||||
| 	/* Make sure the document is of the right kind */ | ||||
|  | ||||
| 	cur = xmlDocGetRootElement (doc); | ||||
| 	if (!cur) { | ||||
| 	    xmlFreeDoc (doc); | ||||
| 	    g_free (filename); | ||||
| 	    continue; | ||||
| 	} | ||||
|  | ||||
| 	ns = xmlSearchNsByHref (doc, cur, LIBGTOP_XML_NAMESPACE); | ||||
| 	if (!ns) { | ||||
| 	    g_warning ("File %s of wrong type; LibGTop Namespace not found", | ||||
| 		       filename); | ||||
| 	    g_free (filename); | ||||
| 	    xmlFreeDoc (doc); | ||||
| 	    continue; | ||||
| 	} | ||||
|  | ||||
| 	if (strcmp (cur->name, "Backends")) { | ||||
| 	    g_warning ("File %s of the wrong type, root node != 'Backends'", | ||||
| 		       filename); | ||||
| 	    g_free (filename); | ||||
| 	    xmlFreeDoc (doc); | ||||
| 	    continue; | ||||
| 	} | ||||
|  | ||||
| 	cur = cur->xmlChildrenNode; | ||||
| 	while (cur != NULL) { | ||||
| 	    glibtop_backend_entry *backend; | ||||
|  | ||||
| 	    if ((!strcmp(cur->name, "Backend")) && (cur->ns == ns)) { | ||||
| 		backend = _parseBackend (doc, ns, cur, directory); | ||||
| 		if (!backend) { | ||||
| 		    g_warning ("File %s of wrong type; cannot parse", | ||||
| 			       filename); | ||||
| 		    continue; | ||||
| 		} | ||||
|  | ||||
| 		glibtop_register_backend (backend); | ||||
| 	    } | ||||
| 	    cur = cur->next; | ||||
| 	} | ||||
|  | ||||
| 	g_free (filename); | ||||
| 	xmlFreeDoc (doc); | ||||
|     } | ||||
|  | ||||
|     closedir (dir); | ||||
| } | ||||
|  | ||||
| long | ||||
| glibtop_register_backend (glibtop_backend_entry *entry) | ||||
| { | ||||
|     long id; | ||||
|  | ||||
|     if (!_glibtop_backend_list) | ||||
| 	_glibtop_backend_list = g_hash_table_new (NULL, NULL); | ||||
|  | ||||
|     id = ++_glibtop_backend_nr; | ||||
|  | ||||
|     g_hash_table_insert (_glibtop_backend_list, | ||||
| 			 GINT_TO_POINTER (id), | ||||
| 			 entry); | ||||
|  | ||||
|     return id; | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_unregister_backend (long id) | ||||
| { | ||||
|     g_hash_table_remove (_glibtop_backend_list, | ||||
| 			 GINT_TO_POINTER (id)); | ||||
| } | ||||
|  | ||||
| glibtop_backend_entry * | ||||
| glibtop_backend_by_id (long id) | ||||
| { | ||||
|     return g_hash_table_lookup (_glibtop_backend_list, | ||||
| 				GINT_TO_POINTER (id)); | ||||
| } | ||||
|  | ||||
| typedef struct { | ||||
|     const char *backend_name; | ||||
|     glibtop_backend_entry *entry; | ||||
| } _find_by_name_param_t; | ||||
|  | ||||
| static void | ||||
| find_by_name (gpointer key, gpointer value, gpointer user_data) | ||||
| { | ||||
|     _find_by_name_param_t *param = (_find_by_name_param_t *) user_data; | ||||
|     glibtop_backend_entry *entry = (glibtop_backend_entry *) value; | ||||
|  | ||||
|     if (!entry || !entry->name || param->entry) | ||||
| 	return; | ||||
|  | ||||
|     if (!strcmp (entry->name, param->backend_name)) | ||||
| 	param->entry = entry; | ||||
| } | ||||
|  | ||||
| glibtop_backend_entry * | ||||
| glibtop_backend_by_name (const char *backend_name) | ||||
| { | ||||
|     _find_by_name_param_t param = { backend_name, NULL }; | ||||
|  | ||||
|     g_hash_table_foreach (_glibtop_backend_list, | ||||
| 			  find_by_name, ¶m); | ||||
|  | ||||
|     return param.entry; | ||||
| } | ||||
| @@ -1,271 +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. | ||||
| */ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| #include <glib-object.h> | ||||
|  | ||||
| #include <glibtop/glibtop-backend.h> | ||||
| #include <glibtop/glibtop-backend-info.h> | ||||
|  | ||||
| static void glibtop_backend_class_init    (glibtop_backend_class  *klass); | ||||
| static void glibtop_backend_init          (glibtop_backend        *backend); | ||||
| static void glibtop_backend_finalize      (GObject                *object); | ||||
|  | ||||
| static gpointer parent_class = NULL; | ||||
|  | ||||
|  | ||||
| /* Internal data */ | ||||
|  | ||||
| struct _glibtop_backend_private | ||||
| { | ||||
|     const glibtop_backend_info *info; | ||||
|  | ||||
|     glibtop_closure *closure_data; | ||||
|  | ||||
|     glibtop_server *server; | ||||
|     glibtop_backend_module *module; | ||||
| }; | ||||
|  | ||||
| GType | ||||
| glibtop_backend_get_type (void) | ||||
| { | ||||
|     static GType glibtop_backend_type = 0; | ||||
|    | ||||
|     if (!glibtop_backend_type) { | ||||
| 	static const GTypeInfo glibtop_backend_info = { | ||||
| 	    sizeof (glibtop_backend_class), | ||||
| 	    NULL,		/* base_class_init */ | ||||
| 	    NULL,		/* base_class_finalize */ | ||||
| 	    (GClassInitFunc) glibtop_backend_class_init, | ||||
| 	    NULL,		/* class_finalize */ | ||||
| 	    NULL,		/* class_data */ | ||||
| 	    sizeof (glibtop_backend), | ||||
| 	    16,			/* n_preallocs */ | ||||
| 	    (GInstanceInitFunc) glibtop_backend_init, | ||||
| 	}; | ||||
|        | ||||
| 	glibtop_backend_type = g_type_register_static | ||||
| 	    (G_TYPE_OBJECT, "glibtop_backend", &glibtop_backend_info, 0); | ||||
|     } | ||||
|  | ||||
|     return glibtop_backend_type; | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_backend_class_init (glibtop_backend_class *class) | ||||
| { | ||||
|     GObjectClass *gobject_class; | ||||
|  | ||||
|     gobject_class = (GObjectClass *) class; | ||||
|    | ||||
|     parent_class = g_type_class_ref (G_TYPE_OBJECT); | ||||
|  | ||||
|     gobject_class->finalize = glibtop_backend_finalize; | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_backend_init (glibtop_backend *backend) | ||||
| { | ||||
|     glibtop_backend_private *priv; | ||||
|  | ||||
|     priv = g_new0 (glibtop_backend_private, 1); | ||||
|     backend->_priv = priv; | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_backend_finalize (GObject *object) | ||||
| { | ||||
|     glibtop_backend *glibtop; | ||||
|     glibtop_backend_private *priv = NULL; | ||||
|    | ||||
|     glibtop = GLIBTOP_BACKEND (object); | ||||
|     priv = glibtop->_priv; | ||||
|  | ||||
|     g_free (priv); | ||||
|    | ||||
|     if (G_OBJECT_CLASS (parent_class)->finalize) | ||||
| 	G_OBJECT_CLASS (parent_class)->finalize (object); | ||||
| } | ||||
|  | ||||
| static void | ||||
| unload_module (gpointer data, gpointer user_data) | ||||
| { | ||||
|     g_module_close (data); | ||||
| } | ||||
|  | ||||
| static int | ||||
| load_extra_libs (glibtop_backend_entry *entry, GError **error) | ||||
| { | ||||
|     GSList *list; | ||||
|     GSList *loaded_here = NULL; | ||||
|  | ||||
|     for (list = entry->extra_libs; list; list = list->next) { | ||||
| 	const gchar *filename = list->data; | ||||
| 	GModule *module; | ||||
|  | ||||
| 	module = g_module_open (filename, G_MODULE_BIND_LAZY); | ||||
| 	if (!module) { | ||||
| 	    g_set_error (error, GLIBTOP_ERROR, GLIBTOP_ERROR_NO_SUCH_BACKEND, | ||||
| 			 "Cannot open extra shared library `%s' " | ||||
| 			 "for backend `%s' (%s)", filename, entry->name, | ||||
| 			 g_module_error ()); | ||||
| 	    g_slist_foreach (loaded_here, unload_module, NULL); | ||||
| 	    return -GLIBTOP_ERROR_NO_SUCH_BACKEND; | ||||
| 	} | ||||
|  | ||||
| 	loaded_here = g_slist_prepend (loaded_here, module); | ||||
|     } | ||||
|  | ||||
|     entry->_priv->extra_modules = g_slist_concat | ||||
| 	(loaded_here, entry->_priv->extra_modules); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| glibtop_backend * | ||||
| glibtop_backend_get (const char *backend_name, u_int64_t features, | ||||
| 		     const char **backend_args, GError **error) | ||||
| { | ||||
|     const glibtop_backend_info *info; | ||||
|     glibtop_backend_entry *entry; | ||||
|     glibtop_backend *backend; | ||||
|  | ||||
|     glibtop_init_backends (); | ||||
|  | ||||
|     entry = glibtop_backend_by_name (backend_name); | ||||
|     if (!entry) { | ||||
| 	g_set_error (error, GLIBTOP_ERROR, GLIBTOP_ERROR_NO_SUCH_BACKEND, | ||||
| 		     "No backend with this name"); | ||||
| 	return NULL; | ||||
|     } | ||||
|  | ||||
|     if (!entry->_priv) { | ||||
| 	entry->_priv = g_new0 (glibtop_backend_module, 1); | ||||
|  | ||||
| 	if (entry->extra_libs) { | ||||
| 	    int retval; | ||||
|  | ||||
| 	    retval = load_extra_libs (entry, error); | ||||
| 	    if (retval < 0) | ||||
| 		return NULL; | ||||
| 	} | ||||
|  | ||||
| 	entry->_priv->module = g_module_open (entry->shlib_name, | ||||
| 					      G_MODULE_BIND_LAZY); | ||||
| 	if (!entry->_priv->module) { | ||||
| 	    g_set_error (error, GLIBTOP_ERROR, GLIBTOP_ERROR_NO_SUCH_BACKEND, | ||||
| 			 "Cannot open shared library `%s' " | ||||
| 			 "for backend `%s' (%s)", entry->shlib_name, | ||||
| 			 entry->name, g_module_error ()); | ||||
| 	    return NULL; | ||||
| 	} | ||||
|  | ||||
| 	if (!g_module_symbol (entry->_priv->module, | ||||
| 			      "LibGTopBackendInfo", | ||||
| 			      (gpointer*) &entry->info)) { | ||||
| 	    g_set_error (error, GLIBTOP_ERROR, GLIBTOP_ERROR_NO_SUCH_BACKEND, | ||||
| 			 "Library `%s' is not a valid " | ||||
| 			 "LibGTop Backend library (start symbol not found)", | ||||
| 			 entry->shlib_name); | ||||
|  | ||||
| 	    g_module_close (entry->_priv->module); | ||||
| 	    g_free (entry->_priv); | ||||
| 	    entry->_priv = NULL; | ||||
|  | ||||
| 	    return NULL; | ||||
| 	} | ||||
|     } | ||||
|  | ||||
|     info = entry->info; | ||||
|     if (!info) { | ||||
| 	g_set_error (error, GLIBTOP_ERROR, GLIBTOP_ERROR_NO_SUCH_BACKEND, | ||||
| 		     "Can't get backend info"); | ||||
| 	return NULL; | ||||
|     } | ||||
|  | ||||
|     backend = g_object_new (GLIBTOP_TYPE_BACKEND, NULL); | ||||
|  | ||||
|     backend->_priv->module = entry->_priv; | ||||
|     backend->_priv->info = info; | ||||
|  | ||||
|     backend->_priv->server = glibtop_server_new (); | ||||
|  | ||||
|     if (info->open) { | ||||
| 	int retval; | ||||
|  | ||||
| 	retval = info->open (backend->_priv->server, backend, features, | ||||
| 			     backend_args); | ||||
| 	if (retval) { | ||||
| 	    g_set_error (error, GLIBTOP_ERROR, GLIBTOP_ERROR_NO_SUCH_BACKEND, | ||||
| 			 "Backend open function return error condition"); | ||||
|  | ||||
| 	    g_object_unref (G_OBJECT (backend)); | ||||
| 	    return NULL; | ||||
| 	} | ||||
|     } | ||||
|  | ||||
|     entry->_priv->refcount++; | ||||
|  | ||||
|     return backend; | ||||
| } | ||||
|  | ||||
| glibtop_call_vector * | ||||
| glibtop_backend_get_call_vector (glibtop_backend *backend) | ||||
| { | ||||
|     g_return_val_if_fail (GLIBTOP_IS_BACKEND (backend), NULL); | ||||
|  | ||||
|     g_assert (backend->_priv->info != NULL); | ||||
|  | ||||
|     return backend->_priv->info->call_vector; | ||||
| } | ||||
|  | ||||
| glibtop_server * | ||||
| glibtop_backend_get_server (glibtop_backend *backend) | ||||
| { | ||||
|     g_return_val_if_fail (GLIBTOP_IS_BACKEND (backend), NULL); | ||||
|  | ||||
|     glibtop_server_ref (backend->_priv->server); | ||||
|  | ||||
|     return backend->_priv->server; | ||||
| } | ||||
|  | ||||
| glibtop_closure * | ||||
| glibtop_backend_get_closure_data (glibtop_backend *backend) | ||||
| { | ||||
|     g_return_val_if_fail (GLIBTOP_IS_BACKEND (backend), NULL); | ||||
|  | ||||
|     return backend->_priv->closure_data; | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_backend_set_closure_data (glibtop_backend *backend, | ||||
| 				  glibtop_closure *closure) | ||||
| { | ||||
|     g_return_if_fail (GLIBTOP_IS_BACKEND (backend)); | ||||
|     g_return_if_fail (backend->_priv->closure_data == NULL); | ||||
|  | ||||
|     backend->_priv->closure_data = closure; | ||||
| } | ||||
| @@ -1,34 +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_PRIVATE_H__ | ||||
| #define __GLIBTOP_CLIENT_PRIVATE_H__ | ||||
|  | ||||
| struct _glibtop_client_private | ||||
| { | ||||
|     GSList *backend_list; | ||||
| }; | ||||
|  | ||||
| #endif | ||||
| @@ -1,257 +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. | ||||
| */ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| #include <glib-object.h> | ||||
|  | ||||
| static void glibtop_client_class_init    (glibtop_client_class   *klass); | ||||
| static void glibtop_client_init          (glibtop_client         *client); | ||||
| static void glibtop_client_finalize      (GObject                *object); | ||||
|  | ||||
| static gpointer parent_class = NULL; | ||||
|  | ||||
| #include <glibtop-client-private.h> | ||||
|  | ||||
| enum { | ||||
|     GLIBTOP_CLIENT_SIGNAL_ERROR, | ||||
|     GLIBTOP_CLIENT_SIGNAL_WARNING, | ||||
|     LAST_SIGNAL | ||||
| }; | ||||
|  | ||||
| static guint glibtop_client_signals [LAST_SIGNAL] = { 0 }; | ||||
|  | ||||
| GType | ||||
| glibtop_client_get_type (void) | ||||
| { | ||||
|     static GType glibtop_client_type = 0; | ||||
|    | ||||
|     if (!glibtop_client_type) { | ||||
| 	static const GTypeInfo glibtop_client_info = { | ||||
| 	    sizeof (glibtop_client_class), | ||||
| 	    NULL,		/* base_class_init */ | ||||
| 	    NULL,		/* base_class_finalize */ | ||||
| 	    (GClassInitFunc) glibtop_client_class_init, | ||||
| 	    NULL,		/* class_finalize */ | ||||
| 	    NULL,		/* class_data */ | ||||
| 	    sizeof (glibtop_client), | ||||
| 	    16,			/* n_preallocs */ | ||||
| 	    (GInstanceInitFunc) glibtop_client_init, | ||||
| 	}; | ||||
|        | ||||
| 	glibtop_client_type = g_type_register_static | ||||
| 	    (G_TYPE_OBJECT, "glibtop_client", &glibtop_client_info, 0); | ||||
|     } | ||||
|  | ||||
|     return glibtop_client_type; | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_client_error_handler (glibtop_client *client, GError *error) | ||||
| { | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|  | ||||
|     if (error == NULL) | ||||
| 	return; | ||||
|  | ||||
|     g_error ("%s (%d): %s", g_quark_to_string (error->domain), | ||||
| 	     error->code, error->message); | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_client_warning_handler (glibtop_client *client, GError *error) | ||||
| { | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|  | ||||
|     if (error == NULL) | ||||
| 	return; | ||||
|  | ||||
|     g_warning ("%s (%d): %s", g_quark_to_string (error->domain), | ||||
| 	       error->code, error->message); | ||||
|  | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_client_class_init (glibtop_client_class *klass) | ||||
| { | ||||
|     GObjectClass *gobject_class; | ||||
|  | ||||
|     gobject_class = (GObjectClass *) klass; | ||||
|    | ||||
|     parent_class = g_type_class_peek_parent (klass); | ||||
|  | ||||
|     glibtop_client_signals [GLIBTOP_CLIENT_SIGNAL_ERROR] = | ||||
| 	g_signal_new ("error", | ||||
| 		       G_TYPE_FROM_CLASS (klass), | ||||
| 		       G_SIGNAL_RUN_LAST, | ||||
| 		       G_STRUCT_OFFSET (glibtop_client_class, error), | ||||
| 		       NULL, NULL, | ||||
| 		       g_cclosure_marshal_VOID__POINTER, | ||||
| 		       G_TYPE_NONE, 1, G_TYPE_POINTER, NULL); | ||||
|  | ||||
|     glibtop_client_signals [GLIBTOP_CLIENT_SIGNAL_WARNING] = | ||||
| 	g_signal_new ("warning", | ||||
| 		       G_TYPE_FROM_CLASS (klass), | ||||
| 		       G_SIGNAL_RUN_LAST, | ||||
| 		       G_STRUCT_OFFSET (glibtop_client_class, warning), | ||||
| 		       NULL, NULL, | ||||
| 		       g_cclosure_marshal_VOID__POINTER, | ||||
| 		       G_TYPE_NONE, 1, G_TYPE_POINTER, NULL); | ||||
|  | ||||
|     klass->error = glibtop_client_error_handler; | ||||
|     klass->warning = glibtop_client_warning_handler; | ||||
|    | ||||
|     gobject_class->finalize = glibtop_client_finalize; | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_client_init (glibtop_client *glibtop) | ||||
| { | ||||
|     glibtop_client_private *priv; | ||||
|    | ||||
|     priv = g_new0 (glibtop_client_private, 1); | ||||
|     glibtop->_priv = priv; | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_client_finalize (GObject *object) | ||||
| { | ||||
|     glibtop_client *glibtop; | ||||
|     glibtop_client_private *priv = NULL; | ||||
|     GSList *c; | ||||
|    | ||||
|     glibtop = GLIBTOP_CLIENT (object); | ||||
|     priv = glibtop->_priv; | ||||
|  | ||||
|     for (c = priv->backend_list; c; c = c->next) | ||||
| 	g_object_unref (G_OBJECT (c->data)); | ||||
|     g_slist_free (priv->backend_list); | ||||
|    | ||||
|     g_free (priv); | ||||
|    | ||||
|     if (G_OBJECT_CLASS (parent_class)->finalize) | ||||
| 	G_OBJECT_CLASS (parent_class)->finalize (object); | ||||
| } | ||||
|  | ||||
| glibtop_client * | ||||
| glibtop_client_new (void) | ||||
| { | ||||
|     return g_object_new (GLIBTOP_TYPE_CLIENT, NULL); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_client_propagate_error (glibtop_client *client, GError *error) | ||||
| { | ||||
|     GValue params [2] = { { 0, }, { 0, } }; | ||||
|  | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|  | ||||
|     if (error == NULL) | ||||
| 	return; | ||||
|  | ||||
|     g_value_init (params, GLIBTOP_CLIENT_TYPE (client)); | ||||
|     g_value_set_object (params, G_OBJECT (client)); | ||||
|  | ||||
|     g_value_init (params + 1, G_TYPE_POINTER); | ||||
|     g_value_set_pointer (params + 1, error); | ||||
|  | ||||
|     g_signal_emitv (params, | ||||
| 		    glibtop_client_signals [GLIBTOP_CLIENT_SIGNAL_ERROR], | ||||
| 		    0, NULL); | ||||
|    | ||||
|     g_value_unset (params + 1); | ||||
|     g_value_unset (params + 0); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_client_propagate_warning (glibtop_client *client, GError *error) | ||||
| { | ||||
|     GValue params [2] = { { 0, }, { 0, } }; | ||||
|  | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|  | ||||
|     if (error == NULL) | ||||
| 	return; | ||||
|  | ||||
|     g_value_init (params, GLIBTOP_CLIENT_TYPE (client)); | ||||
|     g_value_set_object (params, G_OBJECT (client)); | ||||
|  | ||||
|     g_value_init (params + 1, G_TYPE_POINTER); | ||||
|     g_value_set_pointer (params + 1, error); | ||||
|  | ||||
|     g_signal_emitv (params, | ||||
| 		    glibtop_client_signals [GLIBTOP_CLIENT_SIGNAL_WARNING], | ||||
| 		    0, NULL); | ||||
|    | ||||
|     g_value_unset (params + 1); | ||||
|     g_value_unset (params + 0); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_client_open_backend (glibtop_client *client, const char *backend_name, | ||||
| 			     u_int64_t features, const char **backend_args) | ||||
| { | ||||
|     glibtop_backend *backend; | ||||
|     GError *error = NULL; | ||||
|  | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|  | ||||
|     backend = glibtop_backend_get (backend_name, features, backend_args, | ||||
| 				   &error); | ||||
|     if (!backend) { | ||||
| 	glibtop_client_propagate_error (client, error); | ||||
| 	g_error_free (error); | ||||
| 	return; | ||||
|     } | ||||
|  | ||||
|     glibtop_client_add_backend (client, backend); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_client_add_backend (glibtop_client *client, | ||||
| 			    glibtop_backend *backend) | ||||
| { | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|     g_return_if_fail (GLIBTOP_IS_BACKEND (backend)); | ||||
|  | ||||
|     client->_priv->backend_list = g_slist_append | ||||
| 	(client->_priv->backend_list, backend); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_client_remove_backend (glibtop_client *client, | ||||
| 			       glibtop_backend *backend) | ||||
| { | ||||
|     GSList *c; | ||||
|  | ||||
|     g_return_if_fail (GLIBTOP_IS_CLIENT (client)); | ||||
|     g_return_if_fail (GLIBTOP_IS_BACKEND (backend)); | ||||
|  | ||||
|     c = g_slist_find (client->_priv->backend_list, backend); | ||||
|     if (!c) return; | ||||
|  | ||||
|     g_slist_remove_link (client->_priv->backend_list, c); | ||||
|     g_object_unref (G_OBJECT (backend)); | ||||
| } | ||||
| @@ -1,38 +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_SERVER_PRIVATE_H__ | ||||
| #define __GLIBTOP_SERVER_PRIVATE_H__ | ||||
|  | ||||
| #include <glib.h> | ||||
|  | ||||
| typedef struct _glibtop_server_private glibtop_server_private; | ||||
|  | ||||
| struct _glibtop_server_private | ||||
| { | ||||
|     GSList *backend_list; | ||||
| }; | ||||
|  | ||||
| #endif | ||||
| @@ -1,58 +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. | ||||
| */ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop-server-private.h> | ||||
|  | ||||
| glibtop_server * | ||||
| glibtop_server_new (void) | ||||
| { | ||||
|     glibtop_server *retval; | ||||
|  | ||||
|     retval = g_new0 (glibtop_server, 1); | ||||
|     retval->info = g_new0 (glibtop_server_info, 1); | ||||
|     retval->_priv = g_new0 (glibtop_server_private, 1); | ||||
|     retval->refcount = 1; | ||||
|  | ||||
|     return retval; | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_server_ref (glibtop_server *server) | ||||
| { | ||||
|     server->refcount++; | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_server_unref (glibtop_server *server) | ||||
| { | ||||
|     server->refcount--; | ||||
|  | ||||
|     if (server->refcount <= 0) { | ||||
| 	g_free (server->_priv); | ||||
| 	g_free (server->info); | ||||
| 	g_free (server); | ||||
|     } | ||||
| } | ||||
| @@ -1,104 +0,0 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| die "Usage: $0 features.def structures.def" unless $#ARGV == 2; | ||||
|  | ||||
| $[ = 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 $_; | ||||
| } | ||||
|  | ||||
| $structures{$structure_count++} = 'glibtop'; | ||||
|  | ||||
| open FEATURESDEF, $ARGV[1] or | ||||
|   die "open ($ARGV[1]): $!"; | ||||
|  | ||||
| while (<FEATURESDEF>) { | ||||
|   chop;				# strip record separator | ||||
|    | ||||
|   if (/^[^\#]/) { | ||||
|     &parse_features_def ($_); | ||||
|   } | ||||
| } | ||||
|  | ||||
| close FEATURESDEF; | ||||
|  | ||||
| open STRUCTDEF, $ARGV[2] or | ||||
|   die "open ($ARGV[2]): $!"; | ||||
|  | ||||
| while (<STRUCTDEF>) { | ||||
|   chop;				# strip record separator | ||||
|    | ||||
|   if (/^[^\#]/) { | ||||
|     &parse_structure_def ($_); | ||||
|   } | ||||
| } | ||||
|  | ||||
| close STRUCTDEF; | ||||
|  | ||||
| $init_structures_code = sprintf | ||||
|   (qq[\tscm_glibtop_structure_tags [GLIBTOP_STRUCTURE_GLIBTOP] = scm_make_structure_type\n\t\t("glibtop", sizeof (glibtop));\n]); | ||||
|  | ||||
| for ($nr = 0; $nr < $structure_count; $nr++) { | ||||
|   $structure = $structures{$nr}; | ||||
|  | ||||
|   $init_structures_code .= sprintf | ||||
|     (qq[\tscm_glibtop_structure_tags [GLIBTOP_STRUCTURE_%s] = scm_make_structure_type\n\t\t("%s", sizeof (%s));\n], | ||||
|      toupper($structure), $structure, $structure); | ||||
| } | ||||
|  | ||||
| print qq[/* structures.h */]; | ||||
| print qq[/* This is a generated file.  Please modify \`guile.pl\' */]; | ||||
| print ''; | ||||
| print qq[\#ifndef __GLIBTOP_STRUCTURES_H__]; | ||||
| print qq[\#define __GLIBTOP_STRUCTURES_H__]; | ||||
| print ''; | ||||
| print qq[\#include <glibtop.h>]; | ||||
| print ''; | ||||
| print qq[BEGIN_LIBGTOP_DECLS]; | ||||
| print ''; | ||||
|  | ||||
| for ($nr = 0; $nr < $structure_count; $nr++) { | ||||
|   $structure = $structures{$nr}; | ||||
|  | ||||
|   printf (qq[\#define %-40s\t%d\n], 'GLIBTOP_STRUCTURE_'.&toupper($structure), $nr); | ||||
| } | ||||
|  | ||||
| print ''; | ||||
| printf (qq[\#define %-40s\t%d\n], 'GLIBTOP_MAX_STRUCTURES', $structure_count); | ||||
| print ''; | ||||
| print qq[END_LIBGTOP_DECLS]; | ||||
| print ''; | ||||
| print qq[\#endif /* __GLIBTOP_STRUCTURES_H__ */]; | ||||
|  | ||||
| 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]; | ||||
|    | ||||
|   $feature =~ s/^@//; | ||||
|   $features{$feature} = $feature; | ||||
|  | ||||
|   $structures{$structure_count++} = 'glibtop_'.$feature; | ||||
| } | ||||
|  | ||||
| sub parse_structure_def { | ||||
|   local($line) = @_; | ||||
|   @line_fields = split(/\|/, $line, 9999); | ||||
|   $name = $line_fields[1]; | ||||
|  | ||||
|   $structures{$structure_count++} = $name; | ||||
| } | ||||
| @@ -1,74 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* $Id$ */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop is free software; you can redistribute it and/or modify it | ||||
|    under the terms of the GNU General Public License as published by | ||||
|    the Free Software Foundation; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop is distributed in the hope that it will be useful, but WITHOUT | ||||
|    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| #include <glibtop/cpu.h> | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
|     glibtop_client *client; | ||||
|     glibtop_backend *backend_common; | ||||
|     glibtop_backend *backend_sysdeps; | ||||
|     GError *error = NULL; | ||||
|     glibtop_cpu cpu; | ||||
|  | ||||
|     g_type_init (); | ||||
|  | ||||
|     client = glibtop_client_new (); | ||||
|  | ||||
|     backend_common = glibtop_backend_get ("glibtop-backend-common", | ||||
| 					  0, NULL, &error); | ||||
|  | ||||
|     if (error != NULL) { | ||||
| 	glibtop_client_propagate_warning (client, error); | ||||
| 	g_error_free (error); | ||||
| 	error = NULL; | ||||
|     } | ||||
|  | ||||
|     g_message (G_STRLOC ": backend = %p", backend_common); | ||||
|  | ||||
|     if (backend_common != NULL) | ||||
| 	glibtop_client_add_backend (client, backend_common); | ||||
|  | ||||
|     backend_sysdeps = glibtop_backend_get ("glibtop-backend-sysdeps-stub", | ||||
| 					   0, NULL, &error); | ||||
|  | ||||
|     if (error != NULL) { | ||||
| 	glibtop_client_propagate_warning (client, error); | ||||
| 	g_error_free (error); | ||||
| 	error = NULL; | ||||
|     } | ||||
|  | ||||
|     g_message (G_STRLOC ": backend = %p", backend_sysdeps); | ||||
|  | ||||
|     if (backend_sysdeps != NULL) | ||||
| 	glibtop_client_add_backend (client, backend_sysdeps); | ||||
|  | ||||
|     glibtop_get_cpu_l (client, &cpu); | ||||
|  | ||||
|     exit (0); | ||||
| } | ||||
| @@ -1,98 +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. | ||||
| */ | ||||
|  | ||||
| #include <glibtop/xmalloc.h> | ||||
|  | ||||
| #ifdef LIBGTOP_USE_GLIB_MALLOC | ||||
| #include <glib.h> | ||||
| #endif | ||||
|  | ||||
| /* Wrappers to malloc, calloc, realloc ... */ | ||||
|  | ||||
| void * | ||||
| glibtop_malloc_r (glibtop_server *server, size_t size) | ||||
| { | ||||
| #ifdef LIBGTOP_USE_GLIB_MALLOC | ||||
|     return g_malloc0 (size); | ||||
| #else | ||||
|     void *buf = malloc (size); | ||||
| 	 | ||||
|     if (!buf) | ||||
| 	glibtop_error_io_r (server, "malloc %d bytes", size); | ||||
| 	 | ||||
|     return buf; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void * | ||||
| glibtop_calloc_r (glibtop_server *server, size_t nmemb, size_t size) | ||||
| { | ||||
| #ifdef LIBGTOP_USE_GLIB_MALLOC | ||||
|     return g_malloc0 (size * nmemb); | ||||
| #else | ||||
|     void *buf = calloc (nmemb, size); | ||||
| 	 | ||||
|     if (!buf) | ||||
| 	glibtop_error_io_r (server, "calloc %d blocks (%d bytes each)", | ||||
| 			    nmemb, size); | ||||
| 	 | ||||
|     return buf; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void * | ||||
| glibtop_realloc_r (glibtop_server *server, void *ptr, size_t size) | ||||
| { | ||||
| #ifdef LIBGTOP_USE_GLIB_MALLOC | ||||
|     return g_realloc (ptr, size); | ||||
| #else | ||||
|     void *buf = realloc (ptr, size); | ||||
| 	 | ||||
|     if (!buf) | ||||
| 	glibtop_error_io_r (server, "realloc %d bytes", size); | ||||
| 	 | ||||
|     return buf; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| char * | ||||
| glibtop_strdup_r (glibtop_server *server, const char *string) | ||||
| { | ||||
| #ifdef LIBGTOP_USE_GLIB_MALLOC | ||||
|     return g_strdup (string); | ||||
| #else | ||||
|     return strcpy (glibtop_malloc_r (server, strlen (string) + 1), string); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_free_r (glibtop_server *server, void *ptr) | ||||
| { | ||||
| #ifdef LIBGTOP_USE_GLIB_MALLOC | ||||
|     g_free (ptr); | ||||
| #else | ||||
|     if (ptr) free ((void *) ptr); | ||||
| #endif | ||||
| } | ||||
| @@ -1,8 +0,0 @@ | ||||
| The indentation in LibGTop was done with the following command: | ||||
|  | ||||
| 	find . -name \*.[ch] | xargs -i emacs -batch {} \ | ||||
| 		-l /gnome/compile/libgtop/misc/format.el -f save-buffer | ||||
|  | ||||
| December 26, 1999 | ||||
| Martin | ||||
|  | ||||
| @@ -1,5 +0,0 @@ | ||||
| (setq c-basic-offset 4) | ||||
| (if (not (word-search-forward "Mode: C" nil t)) | ||||
|     (insert-string "/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */\n\n")) | ||||
| (mark-whole-buffer) | ||||
| (indent-region (region-beginning) (region-end) nil) | ||||
							
								
								
									
										76
									
								
								po/ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										76
									
								
								po/ChangeLog
									
									
									
									
									
								
							| @@ -1,79 +1,3 @@ | ||||
| 2003-10-25  Christian Neumair  <chris@gnome-de.org> | ||||
|  | ||||
| 	* de.po: Updated German translation. | ||||
|  | ||||
| 2003-10-22   Vincent van Adrighem  <adrighem@gnome.org> | ||||
|  | ||||
| 	* nl.po: Dutch translation updated by Vincent van Adrighem. | ||||
|  | ||||
| 2003-10-22  Christian Rose  <menthos@menthos.com> | ||||
|  | ||||
| 	* sv.po: Updated Swedish translation. | ||||
|  | ||||
| 2003-10-21  Christian Neumair  <chris@gnome-de.org> | ||||
|  | ||||
| 	* de.po: Updated German translation. | ||||
|  | ||||
| 2003-10-21  Christian Rose  <menthos@menthos.com> | ||||
|  | ||||
| 	* sv.po: Updated Swedish translation. | ||||
|  | ||||
| 2003-10-19  Carlos Perelló Marín <carlos@gnome.org> | ||||
|  | ||||
| 	* POTFILES.ignore: Removed, we use now POTFILES.skip | ||||
| 	 | ||||
| 2003-10-01  Gustavo Maciel Dias Vieira  <gdvieira@zaz.com.br> | ||||
|  | ||||
| 	* pt_BR.po: Applied revision by Augusta Marques da Silva | ||||
| 	<augusta.marques@gmx.net>. | ||||
|  | ||||
| 2003-09-30  Laurent Dhima  <laurenti@alblinux.net> | ||||
|  | ||||
| 	 * sq.po: Added Albanian translation. | ||||
|  | ||||
| 2003-09-17  Fatih Demir <kabalak@gtranslator.org> | ||||
|  | ||||
| 	* ta.po: Committed new Tamil translation by Dinesh. | ||||
|  | ||||
| 2003-09-13  Carlos Perelló Marín <carlos@gnome.org> | ||||
|  | ||||
| 	* es_ES.po, LEEME.es: Removed, it's only for one string that is a | ||||
| 	comment and procman is not using it. This modules is not maintained | ||||
| 	and all people tells that should die so I don't think that any other | ||||
| 	application will use it in the near future. This one is related with | ||||
| 	the bug #105676 | ||||
|  | ||||
| 2003-09-08  Mugurel Tudor  <mugurelu@go.ro> | ||||
|  | ||||
| 	* ro.po: Updated Romanian translation by | ||||
| 		Mişu Moldovan  <dumol@go.ro> | ||||
|  | ||||
| 2003-09-06  Taneem Ahmed  <taneem@bengalinux.org> | ||||
|  | ||||
| 	* bn.po: Added Bangla translation by Vat | ||||
| 	of Ankur group <gnome-translation@bengalinux.org>. | ||||
|  | ||||
| 2003-08-28  Pablo Gonzalo del Campo  <pablodc@bigfoot.com> | ||||
|  | ||||
|         * es.po: Revision of Spanish translation by | ||||
|                  Francisco Javier F. Serrador <serrador@arrakis.es>. | ||||
|  | ||||
| 2003-08-28  Alessio Frusciante  <algol@firenze.linux.it> | ||||
|  | ||||
| 	* it.po: Updated Italian translation. | ||||
|  | ||||
| 2003-08-25  Duarte Loreto <happyguy_pt@hotmail.com> | ||||
|  | ||||
| 	* pt.po: Fixed typos in Portuguese translation. | ||||
|  | ||||
| 2003-08-18  Metin Amiroff <metin@karegen.com> | ||||
|  | ||||
| 	* az.po: Updated Azerbaijani translation. | ||||
|  | ||||
| 2003-08-13  Guntupalli Karunakar  <karunakar@freedomink.org> | ||||
|  | ||||
| 	* hi.po: Added Hindi translation. | ||||
|  | ||||
| 2003-08-09  Dafydd Harries  <daf@parnassus.ath.cx> | ||||
|  | ||||
| 	* cy.po: Added Welsh translation. | ||||
|   | ||||
							
								
								
									
										29
									
								
								po/LEEME.es
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								po/LEEME.es
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| [ This file explains why there is a incomplete es_ES.po in adition | ||||
|   to the es.po; that is on purpose ] | ||||
|  | ||||
| El archivo para el locale es_ES solo existe porque en este paises se usa | ||||
| una representaci<EFBFBD>n de los n<EFBFBD>meros diferente de la que se usa en los dem<EFBFBD>s | ||||
| paises de habla espa<EFBFBD>ola, en el continente americano usan el sistema | ||||
| anglosaj<EFBFBD>n, esdecir 1,000 en vez de 1.000 para 'mil' y como son m<EFBFBD>s los paises | ||||
| que usan el sistema anglosaj<EFBFBD>n se ha dejado esa representaci<EFBFBD>n en el es.po. | ||||
|  | ||||
| Por ello solo es necesario traducir aquellas ocurrencias donde aparezcan | ||||
| n<EFBFBD>meros; no hace falta perder el tiempo traduciendo en doble lo dem<EFBFBD>s; | ||||
| el sistema de internacionalizaci<EFBFBD>n de GNU gettext es lo suficientemente | ||||
| inteligente como para buscar las traducciones en la locale 'es' cuando no | ||||
| las encuentra en una 'es_ES' m<EFBFBD>s espec<EFBFBD>fica. | ||||
|  | ||||
| Tambi<EFBFBD>n podriase crear un es_ES para traducir aquellos terminos que difieren | ||||
| en Espa<EFBFBD>a y Am<EFBFBD>rica (ej: computadora/ordenador, archivo/fichero, <EFBFBD>cono/icono), | ||||
| si alg<EFBFBD>n espa<EFBFBD>ol tiene ganas de encargarse de ello, bienvenido. | ||||
| Notese que solo es necesario traducir aquellas cadenas de texto para las | ||||
| cuales se usan terminos diferentes en Espa<EFBFBD>a; no es necesario traducir las | ||||
| dem<EFBFBD>s, con que est<EFBFBD>n en la traducci<EFBFBD>n general 'es' ya basta.  | ||||
|   | ||||
| Pablo Saratxaga | ||||
| <srtxg@chanae.alphanet.ch> | ||||
|  | ||||
| Actualizado por | ||||
| Carlos Perell<EFBFBD> Mar<EFBFBD>n | ||||
| <carlos@gnome-db.org> | ||||
|  | ||||
| @@ -1,248 +0,0 @@ | ||||
| # Makefile for program source directory in GNU NLS utilities package. | ||||
| # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu> | ||||
| # | ||||
| # This file file be copied and used freely without restrictions.  It can | ||||
| # be used in projects which are not available under the GNU Public License | ||||
| # but which still want to provide support for the GNU gettext functionality. | ||||
| # Please note that the actual code is *not* freely available. | ||||
|  | ||||
| PACKAGE = @LIBGTOP_PACKAGE@ | ||||
| VERSION = @VERSION@ | ||||
|  | ||||
| SHELL = /bin/sh | ||||
| @SET_MAKE@ | ||||
|  | ||||
| srcdir = @srcdir@ | ||||
| top_srcdir = @top_srcdir@ | ||||
| VPATH = @srcdir@ | ||||
|  | ||||
| prefix = @prefix@ | ||||
| exec_prefix = @exec_prefix@ | ||||
| datadir = $(prefix)/@DATADIRNAME@ | ||||
| localedir = $(datadir)/locale | ||||
| gnulocaledir = $(prefix)/share/locale | ||||
| gettextsrcdir = $(prefix)/share/gettext/po | ||||
| subdir = po | ||||
|  | ||||
| INSTALL = @INSTALL@ | ||||
| INSTALL_DATA = @INSTALL_DATA@ | ||||
| MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ | ||||
|  | ||||
| CC = @CC@ | ||||
| GENCAT = @GENCAT@ | ||||
| GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ | ||||
| MSGFMT = @MSGFMT@ | ||||
| XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ | ||||
| MSGMERGE = PATH=../src:$$PATH msgmerge | ||||
|  | ||||
| DEFS = @DEFS@ | ||||
| CFLAGS = @CFLAGS@ | ||||
| CPPFLAGS = @CPPFLAGS@ | ||||
|  | ||||
| INCLUDES = -I.. -I$(top_srcdir)/intl | ||||
|  | ||||
| COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) | ||||
|  | ||||
| SOURCES = cat-id-tbl.c | ||||
| POFILES = @POFILES@ | ||||
| GMOFILES = @GMOFILES@ | ||||
| DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ | ||||
| stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) | ||||
|  | ||||
| POTFILES = \ | ||||
|  | ||||
| CATALOGS = @CATALOGS@ | ||||
| CATOBJEXT = @CATOBJEXT@ | ||||
| INSTOBJEXT = @INSTOBJEXT@ | ||||
|  | ||||
| .SUFFIXES: | ||||
| .SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat | ||||
|  | ||||
| .c.o: | ||||
| 	$(COMPILE) $< | ||||
|  | ||||
| .po.pox: | ||||
| 	$(MAKE) $(PACKAGE).pot | ||||
| 	$(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox | ||||
|  | ||||
| .po.mo: | ||||
| 	$(MSGFMT) -o $@ $< | ||||
|  | ||||
| .po.gmo: | ||||
| 	file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ | ||||
| 	  && rm -f $$file && $(GMSGFMT) -o $$file $< | ||||
|  | ||||
| .po.cat: | ||||
| 	sed -f ../intl/po2msg.sed < $< > $*.msg \ | ||||
| 	  && rm -f $@ && $(GENCAT) $@ $*.msg | ||||
|  | ||||
|  | ||||
| all: all-@USE_NLS@ | ||||
|  | ||||
| all-yes: cat-id-tbl.c $(CATALOGS) | ||||
| all-no: | ||||
|  | ||||
| $(srcdir)/$(PACKAGE).pot: $(POTFILES) | ||||
| 	$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ | ||||
| 	  --add-comments --keyword=_ --keyword=N_ \ | ||||
| 	  --files-from=$(srcdir)/POTFILES.in \ | ||||
| 	&& test ! -f $(PACKAGE).po \ | ||||
| 	   || ( rm -f $(srcdir)/$(PACKAGE).pot \ | ||||
| 		&& mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) | ||||
|  | ||||
| $(srcdir)/cat-id-tbl.c: stamp-cat-id; @: | ||||
| $(srcdir)/stamp-cat-id: $(PACKAGE).pot | ||||
| 	rm -f cat-id-tbl.tmp | ||||
| 	sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ | ||||
| 		| sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp | ||||
| 	if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ | ||||
| 	  rm cat-id-tbl.tmp; \ | ||||
| 	else \ | ||||
| 	  echo cat-id-tbl.c changed; \ | ||||
| 	  rm -f $(srcdir)/cat-id-tbl.c; \ | ||||
| 	  mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ | ||||
| 	fi | ||||
| 	cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id | ||||
|  | ||||
|  | ||||
| install: install-exec install-data | ||||
| install-exec: | ||||
| install-data: install-data-@USE_NLS@ | ||||
| install-data-no: all | ||||
| install-data-yes: all | ||||
| 	if test -r "$(MKINSTALLDIRS)"; then \ | ||||
| 	  $(MKINSTALLDIRS) $(datadir); \ | ||||
| 	else \ | ||||
| 	  $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \ | ||||
| 	fi | ||||
| 	@catalogs='$(CATALOGS)'; \ | ||||
| 	for cat in $$catalogs; do \ | ||||
| 	  cat=`basename $$cat`; \ | ||||
| 	  case "$$cat" in \ | ||||
| 	    *.gmo) destdir=$(gnulocaledir);; \ | ||||
| 	    *)     destdir=$(localedir);; \ | ||||
| 	  esac; \ | ||||
| 	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ | ||||
| 	  dir=$$destdir/$$lang/LC_MESSAGES; \ | ||||
| 	  if test -r "$(MKINSTALLDIRS)"; then \ | ||||
| 	    $(MKINSTALLDIRS) $$dir; \ | ||||
| 	  else \ | ||||
| 	    $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ | ||||
| 	  fi; \ | ||||
| 	  if test -r $$cat; then \ | ||||
| 	    $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ | ||||
| 	    echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ | ||||
| 	  else \ | ||||
| 	    $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ | ||||
| 	    echo "installing $(srcdir)/$$cat as" \ | ||||
| 		 "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ | ||||
| 	  fi; \ | ||||
| 	  if test -r $$cat.m; then \ | ||||
| 	    $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ | ||||
| 	    echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ | ||||
| 	  else \ | ||||
| 	    if test -r $(srcdir)/$$cat.m ; then \ | ||||
| 	      $(INSTALL_DATA) $(srcdir)/$$cat.m \ | ||||
| 		$$dir/$(PACKAGE)$(INSTOBJEXT).m; \ | ||||
| 	      echo "installing $(srcdir)/$$cat as" \ | ||||
| 		   "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ | ||||
| 	    else \ | ||||
| 	      true; \ | ||||
| 	    fi; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
| 	if test "$(PACKAGE)" = "gettext"; then \ | ||||
| 	  if test -r "$(MKINSTALLDIRS)"; then \ | ||||
| 	    $(MKINSTALLDIRS) $(gettextsrcdir); \ | ||||
| 	  else \ | ||||
| 	    $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \ | ||||
| 	  fi; \ | ||||
| 	  $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ | ||||
| 			  $(gettextsrcdir)/Makefile.in.in; \ | ||||
| 	else \ | ||||
| 	  : ; \ | ||||
| 	fi | ||||
|  | ||||
| # Define this as empty until I found a useful application. | ||||
| installcheck: | ||||
|  | ||||
| uninstall: | ||||
| 	catalogs='$(CATALOGS)'; \ | ||||
| 	for cat in $$catalogs; do \ | ||||
| 	  cat=`basename $$cat`; \ | ||||
| 	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ | ||||
| 	  rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ | ||||
| 	  rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ | ||||
| 	  rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ | ||||
| 	  rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ | ||||
| 	done | ||||
| 	rm -f $(gettextsrcdir)/po-Makefile.in.in | ||||
|  | ||||
| check: all | ||||
|  | ||||
| cat-id-tbl.o: ../intl/libgettext.h | ||||
|  | ||||
| dvi info tags TAGS ID: | ||||
|  | ||||
| mostlyclean: | ||||
| 	rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp | ||||
| 	rm -fr *.o | ||||
|  | ||||
| clean: mostlyclean | ||||
|  | ||||
| distclean: clean | ||||
| 	rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m | ||||
|  | ||||
| maintainer-clean: distclean | ||||
| 	@echo "This command is intended for maintainers to use;" | ||||
| 	@echo "it deletes files that may require special tools to rebuild." | ||||
| 	rm -f $(GMOFILES) | ||||
|  | ||||
| distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) | ||||
| dist distdir: update-po $(DISTFILES) | ||||
| 	dists="$(DISTFILES)"; \ | ||||
| 	for file in $$dists; do \ | ||||
| 	  ln $(srcdir)/$$file $(distdir) 2> /dev/null \ | ||||
| 	    || cp -p $(srcdir)/$$file $(distdir); \ | ||||
| 	done | ||||
|  | ||||
| update-po: Makefile | ||||
| 	$(MAKE) $(PACKAGE).pot | ||||
| 	PATH=`pwd`/../src:$$PATH; \ | ||||
| 	cd $(srcdir); \ | ||||
| 	catalogs='$(CATALOGS)'; \ | ||||
| 	for cat in $$catalogs; do \ | ||||
| 	  cat=`basename $$cat`; \ | ||||
| 	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ | ||||
| 	  mv $$lang.po $$lang.old.po; \ | ||||
| 	  echo "$$lang:"; \ | ||||
| 	  if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ | ||||
| 	    rm -f $$lang.old.po; \ | ||||
| 	  else \ | ||||
| 	    echo "msgmerge for $$cat failed!"; \ | ||||
| 	    rm -f $$lang.po; \ | ||||
| 	    mv $$lang.old.po $$lang.po; \ | ||||
| 	  fi; \ | ||||
| 	done | ||||
|  | ||||
| POTFILES: POTFILES.in | ||||
| 	( if test 'x$(srcdir)' != 'x.'; then \ | ||||
| 	    posrcprefix='$(top_srcdir)/'; \ | ||||
| 	  else \ | ||||
| 	    posrcprefix="../"; \ | ||||
| 	  fi; \ | ||||
| 	  rm -f $@-t $@ \ | ||||
| 	    && (sed -e '/^#/d' -e '/^[ 	]*$$/d' \ | ||||
| 		    -e "s@.*@	$$posrcprefix& \\\\@" < $(srcdir)/$@.in \ | ||||
| 		| sed -e '$$s/\\$$//') > $@-t \ | ||||
| 	    && chmod a-w $@-t \ | ||||
| 	    && mv $@-t $@ ) | ||||
|  | ||||
| Makefile: Makefile.in.in ../config.status POTFILES | ||||
| 	cd .. \ | ||||
| 	  && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ | ||||
| 	       $(SHELL) ./config.status | ||||
|  | ||||
| # Tell versions [3.59,3.63) of GNU make not to export all variables. | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded. | ||||
| .NOEXPORT: | ||||
							
								
								
									
										6
									
								
								po/POTFILES.ignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								po/POTFILES.ignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| #Please remember + in front of the files that should be ignored | ||||
| #Please keep these files in alphabetic order | ||||
|  | ||||
| #Shouldn't be translated according to Martin: | ||||
| +kernel/table20/unistd-i386.h | ||||
| +kernel/table21/unistd-i386.h | ||||
| @@ -1,4 +0,0 @@ | ||||
| support/error.c | ||||
| support/getopt.c | ||||
| support/popt.c | ||||
| support/popthelp.c | ||||
							
								
								
									
										446
									
								
								po/az.po
									
									
									
									
									
								
							
							
						
						
									
										446
									
								
								po/az.po
									
									
									
									
									
								
							| @@ -5,8 +5,7 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2003-08-11 12:38+0200\n" | ||||
| "POT-Creation-Date: 2003-07-10 05:08+0200\n" | ||||
| "PO-Revision-Date: 2003-07-10 21:45+0200\n" | ||||
| "Last-Translator: Mətin Əmirov <metin@karegen.com>\n" | ||||
| "Language-Team: Azerbaijani <gnome@azitt.com>\n" | ||||
| @@ -23,11 +22,13 @@ msgstr "Tiklər (saniyə başına %ld):" | ||||
| msgid "Total" | ||||
| msgstr "Toplam" | ||||
|  | ||||
| #: examples/smp.c:74 sysdeps/names/mem.c:47 | ||||
| #: examples/smp.c:74 | ||||
| #: sysdeps/names/mem.c:47 | ||||
| msgid "User" | ||||
| msgstr "İstifadəçi" | ||||
|  | ||||
| #: examples/smp.c:74 sysdeps/names/procuid.c:58 | ||||
| #: examples/smp.c:74 | ||||
| #: sysdeps/names/procuid.c:58 | ||||
| msgid "Nice" | ||||
| msgstr "Nice" | ||||
|  | ||||
| @@ -41,11 +42,9 @@ msgstr "Idle" | ||||
|  | ||||
| #: examples/smp.c:76 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| msgid "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| "\n" | ||||
| msgstr "" | ||||
| "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| msgstr "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| "\n" | ||||
|  | ||||
| #: examples/smp.c:80 | ||||
| @@ -79,11 +78,9 @@ msgstr "Idle (%)" | ||||
|  | ||||
| #: examples/smp.c:101 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| msgid "CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| "\n" | ||||
| msgstr "" | ||||
| "CPU           (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| msgstr "CPU           (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| "\n" | ||||
|  | ||||
| #: examples/smp.c:117 | ||||
| @@ -148,11 +145,9 @@ msgstr "INETD" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:493 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "Error on option %s: %s.\n" | ||||
| msgid "Error on option %s: %s.\n" | ||||
| "Run '%s --help' to see a full list of available command line options.\n" | ||||
| msgstr "" | ||||
| "%s şərhində xəta oldü %s.\n" | ||||
| msgstr "%s şərhində xəta oldü %s.\n" | ||||
| "'%s --help' əmrindən bütün əmr sətiri seçənəkləri üçün işə salın.\n" | ||||
|  | ||||
| #: support/error.c:109 | ||||
| @@ -174,7 +169,8 @@ msgstr "%s: '--%s' seçənəyi arqument almır\n" | ||||
| msgid "%s: option `%c%s' doesn't allow an argument\n" | ||||
| msgstr "%s;  '%c%s' seçənəyi arqument almır\n" | ||||
|  | ||||
| #: support/getopt.c:715 support/getopt.c:888 | ||||
| #: support/getopt.c:715 | ||||
| #: support/getopt.c:888 | ||||
| #, c-format | ||||
| msgid "%s: option `%s' requires an argument\n" | ||||
| msgstr "%s:  '%s' seçənəyi arqumentə ehtiyac hiss edər\n" | ||||
| @@ -203,7 +199,8 @@ msgid "%s: invalid option -- %c\n" | ||||
| msgstr "%s:  %c -- seçənəyi keçərsizdir\n" | ||||
|  | ||||
| #. 1003.2 specifies the format of this message. | ||||
| #: support/getopt.c:807 support/getopt.c:937 | ||||
| #: support/getopt.c:807 | ||||
| #: support/getopt.c:937 | ||||
| #, c-format | ||||
| msgid "%s: option requires an argument -- %c\n" | ||||
| msgstr "%s: seçənəyi arqumentə ehtiyac hiss edir --%c\n" | ||||
| @@ -270,23 +267,28 @@ msgstr "SMP Sistem Modunda işlədilən CPU vaxtı" | ||||
| msgid "SMP CPU Time in the Idle Task" | ||||
| msgstr "SMP Idle oturumu CPU vaxtı" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:58 sysdeps/names/cpu.c:64 | ||||
| #: sysdeps/names/cpu.c:58 | ||||
| #: sysdeps/names/cpu.c:64 | ||||
| msgid "Number of clock ticks since system boot" | ||||
| msgstr "Sistem başladıldığından e'tibarən keçen saat tikləri" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:59 sysdeps/names/cpu.c:65 | ||||
| #: sysdeps/names/cpu.c:59 | ||||
| #: sysdeps/names/cpu.c:65 | ||||
| msgid "Number of clock ticks the system spent in user mode" | ||||
| msgstr "Sistemin istifadəçi modunda keçirdiyi saat tikləri" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:60 sysdeps/names/cpu.c:66 | ||||
| #: sysdeps/names/cpu.c:60 | ||||
| #: sysdeps/names/cpu.c:66 | ||||
| msgid "Number of clock ticks the system spent in user mode (nice)" | ||||
| msgstr "Sistemin istifadəçi modunda keçirdiyi saat tikləri (nice)" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:61 sysdeps/names/cpu.c:67 | ||||
| #: sysdeps/names/cpu.c:61 | ||||
| #: sysdeps/names/cpu.c:67 | ||||
| msgid "Number of clock ticks the system spent in system mode" | ||||
| msgstr "Sistemin sistem modunda keçirdiyi saat tikləri" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:62 sysdeps/names/cpu.c:68 | ||||
| #: sysdeps/names/cpu.c:62 | ||||
| #: sysdeps/names/cpu.c:68 | ||||
| msgid "Number of clock ticks the system spent in the idle task" | ||||
| msgstr "Sistemin idle oturumunda keçirdiyi saat tikləri" | ||||
|  | ||||
| @@ -294,7 +296,8 @@ msgstr "Sistemin idle oturumunda keçirdiyi saat tikləri" | ||||
| msgid "Tick frequency (default is 100)" | ||||
| msgstr "Tick sıxlığı (əsas 100 dür)" | ||||
|  | ||||
| #: sysdeps/names/fsusage.c:39 sysdeps/names/fsusage.c:48 | ||||
| #: sysdeps/names/fsusage.c:39 | ||||
| #: sysdeps/names/fsusage.c:48 | ||||
| msgid "Total blocks" | ||||
| msgstr "Total blok sayısı" | ||||
|  | ||||
| @@ -306,11 +309,13 @@ msgstr "Boş blok sayısı" | ||||
| msgid "Available blocks" | ||||
| msgstr "Mövcud blok sayısı" | ||||
|  | ||||
| #: sysdeps/names/fsusage.c:42 sysdeps/names/fsusage.c:51 | ||||
| #: sysdeps/names/fsusage.c:42 | ||||
| #: sysdeps/names/fsusage.c:51 | ||||
| msgid "Total file nodes" | ||||
| msgstr "Ümumi dosye düyümləri" | ||||
|  | ||||
| #: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52 | ||||
| #: sysdeps/names/fsusage.c:43 | ||||
| #: sysdeps/names/fsusage.c:52 | ||||
| msgid "Free file nodes" | ||||
| msgstr "Boş dosye düyümləri" | ||||
|  | ||||
| @@ -334,7 +339,8 @@ msgstr "İşləyən Vəzifə" | ||||
| msgid "Number of Tasks" | ||||
| msgstr "Vəzifə Sayısı" | ||||
|  | ||||
| #: sysdeps/names/loadavg.c:42 sysdeps/names/loadavg.c:50 | ||||
| #: sysdeps/names/loadavg.c:42 | ||||
| #: sysdeps/names/loadavg.c:50 | ||||
| msgid "Last PID" | ||||
| msgstr "Son PID" | ||||
|  | ||||
| @@ -410,53 +416,70 @@ msgstr "İstifadəçi gedişatlarında işlədilan yaddaş miqdarı (kb'larla)" | ||||
| msgid "Memory in locked pages in kB" | ||||
| msgstr "Qıfıllı səhifalərdə qalan yaddaş miqdarı (kb'larla)" | ||||
|  | ||||
| #: sysdeps/names/mountlist.c:38 sysdeps/names/mountlist.c:45 | ||||
| #: sysdeps/names/proclist.c:38 sysdeps/names/proclist.c:45 | ||||
| #: sysdeps/names/procmap.c:38 sysdeps/names/procmap.c:45 | ||||
| #: sysdeps/names/mountlist.c:38 | ||||
| #: sysdeps/names/mountlist.c:45 | ||||
| #: sysdeps/names/proclist.c:38 | ||||
| #: sysdeps/names/proclist.c:45 | ||||
| #: sysdeps/names/procmap.c:38 | ||||
| #: sysdeps/names/procmap.c:45 | ||||
| msgid "Number of list elements" | ||||
| msgstr "Seqment siyahısı sayısı" | ||||
|  | ||||
| #: sysdeps/names/mountlist.c:39 sysdeps/names/mountlist.c:46 | ||||
| #: sysdeps/names/proclist.c:39 sysdeps/names/proclist.c:46 | ||||
| #: sysdeps/names/procmap.c:39 sysdeps/names/procmap.c:46 | ||||
| #: sysdeps/names/mountlist.c:39 | ||||
| #: sysdeps/names/mountlist.c:46 | ||||
| #: sysdeps/names/proclist.c:39 | ||||
| #: sysdeps/names/proclist.c:46 | ||||
| #: sysdeps/names/procmap.c:39 | ||||
| #: sysdeps/names/procmap.c:46 | ||||
| msgid "Total size of list" | ||||
| msgstr "Siyahının ümumi böyüklüyü" | ||||
|  | ||||
| #: sysdeps/names/mountlist.c:40 sysdeps/names/mountlist.c:47 | ||||
| #: sysdeps/names/proclist.c:40 sysdeps/names/proclist.c:47 | ||||
| #: sysdeps/names/procmap.c:40 sysdeps/names/procmap.c:47 | ||||
| #: sysdeps/names/mountlist.c:40 | ||||
| #: sysdeps/names/mountlist.c:47 | ||||
| #: sysdeps/names/proclist.c:40 | ||||
| #: sysdeps/names/proclist.c:47 | ||||
| #: sysdeps/names/procmap.c:40 | ||||
| #: sysdeps/names/procmap.c:47 | ||||
| msgid "Size of a single list element" | ||||
| msgstr "Tək siyahı elementinin böyüklüyü" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:40 sysdeps/names/msg_limits.c:51 | ||||
| #: sysdeps/names/msg_limits.c:40 | ||||
| #: sysdeps/names/msg_limits.c:51 | ||||
| msgid "Size in kilobytes of message pool" | ||||
| msgstr "Xəbər hovuzunun böyüklüyü (kb'larla)" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:41 sysdeps/names/msg_limits.c:52 | ||||
| #: sysdeps/names/msg_limits.c:41 | ||||
| #: sysdeps/names/msg_limits.c:52 | ||||
| msgid "Number of entries in message map" | ||||
| msgstr "Xəbər xəritəsindəki giriş sayısı" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:42 sysdeps/names/msg_limits.c:53 | ||||
| #: sysdeps/names/msg_limits.c:42 | ||||
| #: sysdeps/names/msg_limits.c:53 | ||||
| msgid "Max size of message" | ||||
| msgstr "Maksimal xəbər böyüklüyü" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:43 sysdeps/names/msg_limits.c:54 | ||||
| #: sysdeps/names/msg_limits.c:43 | ||||
| #: sysdeps/names/msg_limits.c:54 | ||||
| msgid "Default max size of queue" | ||||
| msgstr "Maksimal əsas istək böyüklüyü" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:44 sysdeps/names/msg_limits.c:55 | ||||
| #: sysdeps/names/msg_limits.c:44 | ||||
| #: sysdeps/names/msg_limits.c:55 | ||||
| msgid "Max queues system wide" | ||||
| msgstr "Maksimal istak sistemi genişliyi" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:45 sysdeps/names/msg_limits.c:56 | ||||
| #: sysdeps/names/msg_limits.c:45 | ||||
| #: sysdeps/names/msg_limits.c:56 | ||||
| msgid "Message segment size" | ||||
| msgstr "Xəbər parçası böyüklüyü" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:46 sysdeps/names/msg_limits.c:57 | ||||
| #: sysdeps/names/msg_limits.c:46 | ||||
| #: sysdeps/names/msg_limits.c:57 | ||||
| msgid "Number of system message headers" | ||||
| msgstr "Sistem xəbərləri başlıqları sayısı" | ||||
|  | ||||
| #: sysdeps/names/netload.c:45 sysdeps/names/netload.c:63 | ||||
| #: sysdeps/names/netload.c:45 | ||||
| #: sysdeps/names/netload.c:63 | ||||
| msgid "Interface Flags" | ||||
| msgstr "Ara üz bayraqları" | ||||
|  | ||||
| @@ -464,51 +487,63 @@ msgstr "Ara üz bayraqları" | ||||
| msgid "MTU" | ||||
| msgstr "MTU" | ||||
|  | ||||
| #: sysdeps/names/netload.c:47 sysdeps/names/netload.c:65 | ||||
| #: sysdeps/names/netload.c:47 | ||||
| #: sysdeps/names/netload.c:65 | ||||
| msgid "Subnet" | ||||
| msgstr "Subnet" | ||||
|  | ||||
| #: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66 | ||||
| #: sysdeps/names/netload.c:48 | ||||
| #: sysdeps/names/netload.c:66 | ||||
| msgid "Address" | ||||
| msgstr "Ünvan" | ||||
|  | ||||
| #: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67 | ||||
| #: sysdeps/names/netload.c:49 | ||||
| #: sysdeps/names/netload.c:67 | ||||
| msgid "Packets In" | ||||
| msgstr "Alınan Paketlər" | ||||
|  | ||||
| #: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68 | ||||
| #: sysdeps/names/netload.c:50 | ||||
| #: sysdeps/names/netload.c:68 | ||||
| msgid "Packets Out" | ||||
| msgstr "Atılan Paketlər" | ||||
|  | ||||
| #: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69 | ||||
| #: sysdeps/names/netload.c:51 | ||||
| #: sysdeps/names/netload.c:69 | ||||
| msgid "Packets Total" | ||||
| msgstr "Ümumi Paket sayısı" | ||||
|  | ||||
| #: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70 | ||||
| #: sysdeps/names/netload.c:52 | ||||
| #: sysdeps/names/netload.c:70 | ||||
| msgid "Bytes In" | ||||
| msgstr "Alınan Byte" | ||||
|  | ||||
| #: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71 | ||||
| #: sysdeps/names/netload.c:53 | ||||
| #: sysdeps/names/netload.c:71 | ||||
| msgid "Bytes Out" | ||||
| msgstr "Gedən Bayt" | ||||
|  | ||||
| #: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72 | ||||
| #: sysdeps/names/netload.c:54 | ||||
| #: sysdeps/names/netload.c:72 | ||||
| msgid "Bytes Total" | ||||
| msgstr "Ümumi Bayt" | ||||
|  | ||||
| #: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73 | ||||
| #: sysdeps/names/netload.c:55 | ||||
| #: sysdeps/names/netload.c:73 | ||||
| msgid "Errors In" | ||||
| msgstr "Gələn xətalar" | ||||
|  | ||||
| #: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74 | ||||
| #: sysdeps/names/netload.c:56 | ||||
| #: sysdeps/names/netload.c:74 | ||||
| msgid "Errors Out" | ||||
| msgstr "Çıxan Xətalat" | ||||
|  | ||||
| #: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75 | ||||
| #: sysdeps/names/netload.c:57 | ||||
| #: sysdeps/names/netload.c:75 | ||||
| msgid "Errors Total" | ||||
| msgstr "Ümumi Xəta Sayısı" | ||||
|  | ||||
| #: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76 | ||||
| #: sysdeps/names/netload.c:58 | ||||
| #: sysdeps/names/netload.c:76 | ||||
| msgid "Collisions" | ||||
| msgstr "Kollision" | ||||
|  | ||||
| @@ -516,7 +551,8 @@ msgstr "Kollision" | ||||
| msgid "Maximum Transfer Unit" | ||||
| msgstr "Maksimal Daşıma Vahidi" | ||||
|  | ||||
| #: sysdeps/names/ppp.c:38 sysdeps/names/ppp.c:45 | ||||
| #: sysdeps/names/ppp.c:38 | ||||
| #: sysdeps/names/ppp.c:45 | ||||
| msgid "PPP State" | ||||
| msgstr "PPP Vəziyyəti" | ||||
|  | ||||
| @@ -536,7 +572,8 @@ msgstr "Giriş Bayt Sayısı" | ||||
| msgid "Number of output bytes" | ||||
| msgstr "Çıxış Bayt Sayısı" | ||||
|  | ||||
| #: sysdeps/names/procargs.c:38 sysdeps/names/procmem.c:47 | ||||
| #: sysdeps/names/procargs.c:38 | ||||
| #: sysdeps/names/procmem.c:47 | ||||
| msgid "Size" | ||||
| msgstr "Böyüklük" | ||||
|  | ||||
| @@ -585,8 +622,7 @@ msgstr "WChan" | ||||
| msgid "" | ||||
| "Kernel flags of the process.\n" | ||||
| "\n" | ||||
| "On Linux, currently every flag has the math bit set, because crt0.s checks " | ||||
| "for math emulation, so this is not included in the output.\n" | ||||
| "On Linux, currently every flag has the math bit set, because crt0.s checks for math emulation, so this is not included in the output.\n" | ||||
| "\n" | ||||
| "This is probably a bug, as not every process is a compiled C program.\n" | ||||
| "\n" | ||||
| @@ -594,32 +630,21 @@ msgid "" | ||||
| msgstr "" | ||||
| "Gedişatın Kernel bayraqları.\n" | ||||
| "\n" | ||||
| "Linuxda, hazırda hər bayrağın riyazı bayt seti vardır. crt0.s " | ||||
| "riyaziemulyasiyanı yoxladığına görə naticədə proqram çıxışında biz bunu " | ||||
| "görmürük. \n" | ||||
| "Linuxda, hazırda hər bayrağın riyazı bayt seti vardır. crt0.s riyaziemulyasiyanı yoxladığına görə naticədə proqram çıxışında biz bunu görmürük. \n" | ||||
| "\n" | ||||
| "Bu bir bug ola bilər, çünkü hər əməliiyat C proqramı quruluşuna sahib deyil " | ||||
| "kimi görünür. \n" | ||||
| "Bu bir bug ola bilər, çünkü hər əməliiyat C proqramı quruluşuna sahib deyil kimi görünür. \n" | ||||
| "\n" | ||||
| "Riyazi bayt onluq 4, trace edilmiş bit onluq 10 olmalıdır" | ||||
|  | ||||
| #. Min_Flt | ||||
| #: sysdeps/names/prockernel.c:59 | ||||
| msgid "" | ||||
| "The number of minor faults the process has made, those which have not " | ||||
| "required loading a memory page from disk." | ||||
| msgstr "" | ||||
| "Diskdən yaddaş səhifəsinə yüklənməmasi lazım gələnkiçik sistem xətaları " | ||||
| "sayısı." | ||||
| msgid "The number of minor faults the process has made, those which have not required loading a memory page from disk." | ||||
| msgstr "Diskdən yaddaş səhifəsinə yüklənməmasi lazım gələnkiçik sistem xətaları sayısı." | ||||
|  | ||||
| #. Maj_Flt | ||||
| #: sysdeps/names/prockernel.c:62 | ||||
| msgid "" | ||||
| "The number of major faults the process has made, those which have required " | ||||
| "loading a memory page from disk." | ||||
| msgstr "" | ||||
| "Diskdən yaddaş səhifəsinə yüklənməmasi lazım gələnböyük sistem xətaları " | ||||
| "sayısı." | ||||
| msgid "The number of major faults the process has made, those which have required loading a memory page from disk." | ||||
| msgstr "Diskdən yaddaş səhifəsinə yüklənməmasi lazım gələnböyük sistem xətaları sayısı." | ||||
|  | ||||
| #. CMin_Flt | ||||
| #: sysdeps/names/prockernel.c:65 | ||||
| @@ -633,12 +658,8 @@ msgstr "Gedişat və törəmələrinin səbəb olduğu böyük sistem xətaları | ||||
|  | ||||
| #. KStk_ESP | ||||
| #: sysdeps/names/prockernel.c:71 | ||||
| msgid "" | ||||
| "The current value of esp (32-bit stack pointer), as found in the kernel " | ||||
| "stack page for the process." | ||||
| msgstr "" | ||||
| "Əmaliyyat üçün çəkirdəyin çıxartdığı stack səhifəsində tapılan esp'in " | ||||
| "hazırkı qiyməti (32-bit stack pointer)" | ||||
| msgid "The current value of esp (32-bit stack pointer), as found in the kernel stack page for the process." | ||||
| msgstr "Əmaliyyat üçün çəkirdəyin çıxartdığı stack səhifəsində tapılan esp'in hazırkı qiyməti (32-bit stack pointer)" | ||||
|  | ||||
| #. KStk_EIP | ||||
| #: sysdeps/names/prockernel.c:74 | ||||
| @@ -647,16 +668,8 @@ msgstr "Hazırkı EIP (32-bit instruction pointer)." | ||||
|  | ||||
| #. NWChan | ||||
| #: sysdeps/names/prockernel.c:76 | ||||
| msgid "" | ||||
| "This is the \"channel\" in which the process is waiting.  This is the " | ||||
| "address of a system call, and can be looked up in a namelist if you need a " | ||||
| "textual name.  (If you have an up-to-date /etc/psdatabase, then try ps -l to " | ||||
| "see the WCHAN field in action)" | ||||
| msgstr "" | ||||
| "Bu, əmaliyyatın gözlədiyi kanaldır. Bu ayrıca sistem çağırışı ünvanıdır və " | ||||
| "mətni adını istəyirsəniz adlar siyahısında görəbilərsiniz. ( əgər güncəl /" | ||||
| "etc/psdatabase mə'lumatınız varsa, ps -l'i sınayın və per harəkətlar " | ||||
| "qismindəki WCHAN qiymətinə baxın)" | ||||
| msgid "This is the \"channel\" in which the process is waiting.  This is the address of a system call, and can be looked up in a namelist if you need a textual name.  (If you have an up-to-date /etc/psdatabase, then try ps -l to see the WCHAN field in action)" | ||||
| msgstr "Bu, əmaliyyatın gözlədiyi kanaldır. Bu ayrıca sistem çağırışı ünvanıdır və mətni adını istəyirsəniz adlar siyahısında görəbilərsiniz. ( əgər güncəl /etc/psdatabase mə'lumatınız varsa, ps -l'i sınayın və per harəkətlar qismindəki WCHAN qiymətinə baxın)" | ||||
|  | ||||
| #. WChan | ||||
| #: sysdeps/names/prockernel.c:81 | ||||
| @@ -700,23 +713,12 @@ msgid "Number of pages of shared (mmap'd) memory" | ||||
| msgstr "Bölüşülmüş yaddaş səhifələri sayısı (mmap'd)" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:57 | ||||
| msgid "" | ||||
| "Number of pages the process has in real memory, minus 3 for administrative " | ||||
| "purposes. This is just the pages which count towards text, data, or stack " | ||||
| "space. This does not include pages which have not been demand-loaded in, or " | ||||
| "which are swapped out." | ||||
| msgstr "" | ||||
| "Həqiqi yaddaşdakı səhifə sayısından idari məqsədlilərdəki 3 nün " | ||||
| "çıxardıldığından sonra qalan səhifə sayısı. Bu mətn, veri üçün ayrılmış " | ||||
| "səhifələrdir. Buraya deamonlar tərəfindən yüklənənlər və silinənlər daxil " | ||||
| "deyildir." | ||||
| msgid "Number of pages the process has in real memory, minus 3 for administrative purposes. This is just the pages which count towards text, data, or stack space. This does not include pages which have not been demand-loaded in, or which are swapped out." | ||||
| msgstr "Həqiqi yaddaşdakı səhifə sayısından idari məqsədlilərdəki 3 nün çıxardıldığından sonra qalan səhifə sayısı. Bu mətn, veri üçün ayrılmış səhifələrdir. Buraya deamonlar tərəfindən yüklənənlər və silinənlər daxil deyildir." | ||||
|  | ||||
| #: sysdeps/names/procmem.c:62 | ||||
| msgid "" | ||||
| "Current limit in bytes on the rss of the process (usually 2,147,483,647)." | ||||
| msgstr "" | ||||
| "Gedişatın rss'sinin baytlarla göstərilan hazırkı sərhədləri (çox vaxt " | ||||
| "2.147.483.647)." | ||||
| msgid "Current limit in bytes on the rss of the process (usually 2,147,483,647)." | ||||
| msgstr "Gedişatın rss'sinin baytlarla göstərilan hazırkı sərhədləri (çox vaxt 2.147.483.647)." | ||||
|  | ||||
| #: sysdeps/names/procsegment.c:42 | ||||
| msgid "Text_RSS" | ||||
| @@ -892,8 +894,7 @@ msgstr "XUCP_STime" | ||||
|  | ||||
| #: sysdeps/names/proctime.c:51 | ||||
| msgid "Start time of process in seconds since the epoch" | ||||
| msgstr "" | ||||
| "Gedişatın başlanğıc vaxtının epoch'dan e'tibarən keçən saniyəlarlə müddəti" | ||||
| msgstr "Gedişatın başlanğıc vaxtının epoch'dan e'tibarən keçən saniyəlarlə müddəti" | ||||
|  | ||||
| #: sysdeps/names/proctime.c:52 | ||||
| msgid "Real time accumulated by process (should be utime + stime)" | ||||
| @@ -920,12 +921,8 @@ msgid "The time (in jiffies) of the process's next timeout" | ||||
| msgstr "Gedişatın sonrakı vaxt dolması zamanı " | ||||
|  | ||||
| #: sysdeps/names/proctime.c:58 | ||||
| msgid "" | ||||
| "The time (in jiffies) before the next SIGALRM is sent to the process due to " | ||||
| "an interval timer." | ||||
| msgstr "" | ||||
| "İnterval timera bağlı olaraq gedişata göndərilən sonrakı SIGALRM əvvəlində " | ||||
| "keçən vaxt." | ||||
| msgid "The time (in jiffies) before the next SIGALRM is sent to the process due to an interval timer." | ||||
| msgstr "İnterval timera bağlı olaraq gedişata göndərilən sonrakı SIGALRM əvvəlində keçən vaxt." | ||||
|  | ||||
| #: sysdeps/names/proctime.c:60 | ||||
| msgid "Tick frequency" | ||||
| @@ -1031,75 +1028,93 @@ msgstr "Kernel vaxtlaşdırma səlahiyyəti" | ||||
| msgid "Standard unix nice level of process" | ||||
| msgstr "Gedişatın standart unix səviyyəsi" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:42 sysdeps/names/sem_limits.c:56 | ||||
| #: sysdeps/names/sem_limits.c:42 | ||||
| #: sysdeps/names/sem_limits.c:56 | ||||
| msgid "Number of entries in semaphore map" | ||||
| msgstr "Semaphore xəritəsindəki giriş sayısı" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:43 sysdeps/names/sem_limits.c:57 | ||||
| #: sysdeps/names/sem_limits.c:43 | ||||
| #: sysdeps/names/sem_limits.c:57 | ||||
| msgid "Max number of arrays" | ||||
| msgstr "Maksimal ox sayısı" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:44 sysdeps/names/sem_limits.c:58 | ||||
| #: sysdeps/names/sem_limits.c:44 | ||||
| #: sysdeps/names/sem_limits.c:58 | ||||
| msgid "Max semaphores system wide" | ||||
| msgstr "Maksimal semaphore sistem genişliyi" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:45 sysdeps/names/sem_limits.c:59 | ||||
| #: sysdeps/names/sem_limits.c:45 | ||||
| #: sysdeps/names/sem_limits.c:59 | ||||
| msgid "Number of undo structures system wide" | ||||
| msgstr "Arxaya dönüş quruluşları sistemi genişliyi qiyməti" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:46 sysdeps/names/sem_limits.c:60 | ||||
| #: sysdeps/names/sem_limits.c:46 | ||||
| #: sysdeps/names/sem_limits.c:60 | ||||
| msgid "Max semaphores per array" | ||||
| msgstr "Array başına düşən semafor sayısı" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:47 sysdeps/names/sem_limits.c:61 | ||||
| #: sysdeps/names/sem_limits.c:47 | ||||
| #: sysdeps/names/sem_limits.c:61 | ||||
| msgid "Max ops per semop call" | ||||
| msgstr "Maksimal hər semop çağırışı başına op gedişat sayısı" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:48 sysdeps/names/sem_limits.c:62 | ||||
| #: sysdeps/names/sem_limits.c:48 | ||||
| #: sysdeps/names/sem_limits.c:62 | ||||
| msgid "Max number of undo entries per process" | ||||
| msgstr "Gedişat başına ayrılan maksimal undo sayısı" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:49 sysdeps/names/sem_limits.c:63 | ||||
| #: sysdeps/names/sem_limits.c:49 | ||||
| #: sysdeps/names/sem_limits.c:63 | ||||
| msgid "sizeof struct sem_undo" | ||||
| msgstr "sem_undo quruluşunun böyüklüyü" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:50 sysdeps/names/sem_limits.c:64 | ||||
| #: sysdeps/names/sem_limits.c:50 | ||||
| #: sysdeps/names/sem_limits.c:64 | ||||
| msgid "Semaphore max value" | ||||
| msgstr "Maksimal semafor qiyməti" | ||||
|  | ||||
| #: sysdeps/names/sem_limits.c:51 sysdeps/names/sem_limits.c:65 | ||||
| #: sysdeps/names/sem_limits.c:51 | ||||
| #: sysdeps/names/sem_limits.c:65 | ||||
| msgid "Adjust on exit max value" | ||||
| msgstr "Çıxışda maksimal qiyməti saxla" | ||||
|  | ||||
| #: sysdeps/names/shm_limits.c:39 sysdeps/names/shm_limits.c:48 | ||||
| #: sysdeps/names/shm_limits.c:39 | ||||
| #: sysdeps/names/shm_limits.c:48 | ||||
| msgid "Max segment size" | ||||
| msgstr "Maksimal seqment böyüklüyü" | ||||
|  | ||||
| #: sysdeps/names/shm_limits.c:40 sysdeps/names/shm_limits.c:49 | ||||
| #: sysdeps/names/shm_limits.c:40 | ||||
| #: sysdeps/names/shm_limits.c:49 | ||||
| msgid "Min segment size" | ||||
| msgstr "Minimal seqment böyüklüyü" | ||||
|  | ||||
| #: sysdeps/names/shm_limits.c:41 sysdeps/names/shm_limits.c:50 | ||||
| #: sysdeps/names/shm_limits.c:41 | ||||
| #: sysdeps/names/shm_limits.c:50 | ||||
| msgid "Max number of segments" | ||||
| msgstr "Maksimal seqment sayısı" | ||||
|  | ||||
| #: sysdeps/names/shm_limits.c:42 sysdeps/names/shm_limits.c:51 | ||||
| #: sysdeps/names/shm_limits.c:42 | ||||
| #: sysdeps/names/shm_limits.c:51 | ||||
| msgid "Max shared segments per process" | ||||
| msgstr "Gedişat başına düşən bölüşülmüş seqment sayısı" | ||||
|  | ||||
| #: sysdeps/names/shm_limits.c:43 sysdeps/names/shm_limits.c:52 | ||||
| #: sysdeps/names/shm_limits.c:43 | ||||
| #: sysdeps/names/shm_limits.c:52 | ||||
| msgid "Max total shared memory" | ||||
| msgstr "Maksimal ümumi seqment sayısı" | ||||
|  | ||||
| #: sysdeps/names/swap.c:39 sysdeps/names/swap.c:48 | ||||
| #: sysdeps/names/swap.c:39 | ||||
| #: sysdeps/names/swap.c:48 | ||||
| msgid "Total Swap Space" | ||||
| msgstr "Ümumi Dəyiş Toqquş Sahəsi" | ||||
|  | ||||
| #: sysdeps/names/swap.c:40 sysdeps/names/swap.c:49 | ||||
| #: sysdeps/names/swap.c:40 | ||||
| #: sysdeps/names/swap.c:49 | ||||
| msgid "Used Swap Space" | ||||
| msgstr "İstifadədə olan Dəyiş Toqquş Sahəsi" | ||||
|  | ||||
| #: sysdeps/names/swap.c:41 sysdeps/names/swap.c:50 | ||||
| #: sysdeps/names/swap.c:41 | ||||
| #: sysdeps/names/swap.c:50 | ||||
| msgid "Free Swap Space" | ||||
| msgstr "Boş Dəyiş Toqquş Sahəsi" | ||||
|  | ||||
| @@ -1119,71 +1134,88 @@ msgstr "Sistem başladığından bəri alınan Dəyiş Toqquş səhifələri say | ||||
| msgid "Total number of swap pages that have been brought out since system boot" | ||||
| msgstr "Sistem başladığından bəri atılan Dəyiş Toqquş səhifələri sayısı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:49 sysdeps/names/sysdeps.c:76 | ||||
| #: sysdeps/names/sysdeps.c:49 | ||||
| #: sysdeps/names/sysdeps.c:76 | ||||
| msgid "Server Features" | ||||
| msgstr "Verici Xüsusiyyətləri" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:50 sysdeps/names/sysdeps.c:77 | ||||
| #: sysdeps/names/sysdeps.c:50 | ||||
| #: sysdeps/names/sysdeps.c:77 | ||||
| msgid "CPU Usage" | ||||
| msgstr "CPU İStifadəsi" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:51 sysdeps/names/sysdeps.c:78 | ||||
| #: sysdeps/names/sysdeps.c:51 | ||||
| #: sysdeps/names/sysdeps.c:78 | ||||
| msgid "Memory Usage" | ||||
| msgstr "Yaddaş İstifadəsi" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:52 sysdeps/names/sysdeps.c:79 | ||||
| #: sysdeps/names/sysdeps.c:52 | ||||
| #: sysdeps/names/sysdeps.c:79 | ||||
| msgid "Swap Usage" | ||||
| msgstr "Dəyiş Toqquş Sahəsi İstifadəsi" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:53 sysdeps/names/sysdeps.c:80 | ||||
| #: sysdeps/names/sysdeps.c:53 | ||||
| #: sysdeps/names/sysdeps.c:80 | ||||
| msgid "System Uptime" | ||||
| msgstr "Sistem Uptime'ı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:54 sysdeps/names/sysdeps.c:81 | ||||
| #: sysdeps/names/sysdeps.c:54 | ||||
| #: sysdeps/names/sysdeps.c:81 | ||||
| msgid "Load Averange" | ||||
| msgstr "Ortalama Yük" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:55 sysdeps/names/sysdeps.c:82 | ||||
| #: sysdeps/names/sysdeps.c:55 | ||||
| #: sysdeps/names/sysdeps.c:82 | ||||
| msgid "Shared Memory Limits" | ||||
| msgstr "Bölüşülmüş Yaddaş Hüdudları" | ||||
| msgstr "Bölüşülmüş Yaddaş Limitləri" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:56 sysdeps/names/sysdeps.c:83 | ||||
| #: sysdeps/names/sysdeps.c:56 | ||||
| #: sysdeps/names/sysdeps.c:83 | ||||
| msgid "Message Queue Limits" | ||||
| msgstr "Xəbər İstəyi Hüdudları" | ||||
| msgstr "Xəbər İstəyi Limitləri" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:57 sysdeps/names/sysdeps.c:84 | ||||
| #: sysdeps/names/sysdeps.c:57 | ||||
| #: sysdeps/names/sysdeps.c:84 | ||||
| msgid "Semaphore Set Limits" | ||||
| msgstr "Semafor Seçkisi Hüdudları" | ||||
| msgstr "Semafor Seçkisi Limitləri" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:58 sysdeps/names/sysdeps.c:85 | ||||
| #: sysdeps/names/sysdeps.c:58 | ||||
| #: sysdeps/names/sysdeps.c:85 | ||||
| msgid "List of running Processes" | ||||
| msgstr "Fəal gedişatlar siyahısı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:59 sysdeps/names/sysdeps.c:86 | ||||
| #: sysdeps/names/sysdeps.c:59 | ||||
| #: sysdeps/names/sysdeps.c:86 | ||||
| msgid "Process Status information" | ||||
| msgstr "Gedişat Halı mə'lumatı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:60 sysdeps/names/sysdeps.c:87 | ||||
| #: sysdeps/names/sysdeps.c:60 | ||||
| #: sysdeps/names/sysdeps.c:87 | ||||
| msgid "Process UID and TTY information" | ||||
| msgstr "Gedişat UID və TTY mə'lumatı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:61 sysdeps/names/sysdeps.c:88 | ||||
| #: sysdeps/names/sysdeps.c:61 | ||||
| #: sysdeps/names/sysdeps.c:88 | ||||
| msgid "Process Memory information" | ||||
| msgstr "Gedişat Yaddaşı mə'lumatı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:62 sysdeps/names/sysdeps.c:89 | ||||
| #: sysdeps/names/sysdeps.c:62 | ||||
| #: sysdeps/names/sysdeps.c:89 | ||||
| msgid "Process Time information" | ||||
| msgstr "Gedişat Vaxtı mə'lumatı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:63 sysdeps/names/sysdeps.c:90 | ||||
| #: sysdeps/names/sysdeps.c:63 | ||||
| #: sysdeps/names/sysdeps.c:90 | ||||
| msgid "Process Signal information" | ||||
| msgstr "Gedişat Signal mə'lumatı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:64 sysdeps/names/sysdeps.c:91 | ||||
| #: sysdeps/names/sysdeps.c:64 | ||||
| #: sysdeps/names/sysdeps.c:91 | ||||
| msgid "Process Kernel Data information" | ||||
| msgstr "Gedişat Kernel Data mə'lumatı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:65 sysdeps/names/sysdeps.c:92 | ||||
| #: sysdeps/names/sysdeps.c:65 | ||||
| #: sysdeps/names/sysdeps.c:92 | ||||
| msgid "Process Segment information" | ||||
| msgstr "Gedişat Seqment Mə'lumatları" | ||||
|  | ||||
| @@ -1191,7 +1223,8 @@ msgstr "Gedişat Seqment Mə'lumatları" | ||||
| msgid "Process Arguments" | ||||
| msgstr "Gedişat Arqumentləri" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:67 sysdeps/names/sysdeps.c:94 | ||||
| #: sysdeps/names/sysdeps.c:67 | ||||
| #: sysdeps/names/sysdeps.c:94 | ||||
| msgid "Process Memory Map" | ||||
| msgstr "Gedişat Yaddaşı Xəritəsi" | ||||
|  | ||||
| @@ -1199,15 +1232,18 @@ msgstr "Gedişat Yaddaşı Xəritəsi" | ||||
| msgid "Mount List" | ||||
| msgstr "Bağlanmış Avadanlıq Siyahısı" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:69 sysdeps/names/sysdeps.c:96 | ||||
| #: sysdeps/names/sysdeps.c:69 | ||||
| #: sysdeps/names/sysdeps.c:96 | ||||
| msgid "File System Usage" | ||||
| msgstr "Dosye Sistemi İstifadəsi" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:70 sysdeps/names/sysdeps.c:97 | ||||
| #: sysdeps/names/sysdeps.c:70 | ||||
| #: sysdeps/names/sysdeps.c:97 | ||||
| msgid "Network Load" | ||||
| msgstr "Network Yükü" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:71 sysdeps/names/sysdeps.c:98 | ||||
| #: sysdeps/names/sysdeps.c:71 | ||||
| #: sysdeps/names/sysdeps.c:98 | ||||
| msgid "PPP Statistics" | ||||
| msgstr "PPP Statistikaları" | ||||
|  | ||||
| @@ -1235,126 +1271,158 @@ msgstr "Sistem başladığından bəri keçən vaxt" | ||||
| msgid "Time in seconds the system spent in the idle task since system boot" | ||||
| msgstr "Sistem başladığından bəri sistem idle taskda keçirdiyi müddət" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 | ||||
| #: sysdeps/osf1/siglist.c:28 | ||||
| #: sysdeps/sun4/siglist.c:28 | ||||
| msgid "Hangup" | ||||
| msgstr "Hangup" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 | ||||
| #: sysdeps/osf1/siglist.c:29 | ||||
| #: sysdeps/sun4/siglist.c:29 | ||||
| msgid "Interrupt" | ||||
| msgstr "Interrupt" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 | ||||
| #: sysdeps/osf1/siglist.c:30 | ||||
| #: sysdeps/sun4/siglist.c:30 | ||||
| msgid "Quit" | ||||
| msgstr "Çıx" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 | ||||
| #: sysdeps/osf1/siglist.c:31 | ||||
| #: sysdeps/sun4/siglist.c:31 | ||||
| msgid "Illegal instruction" | ||||
| msgstr "Hökmsüz tə'limat" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 | ||||
| #: sysdeps/osf1/siglist.c:32 | ||||
| #: sysdeps/sun4/siglist.c:32 | ||||
| msgid "Trace trap" | ||||
| msgstr "İzləmə trapı" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 | ||||
| #: sysdeps/osf1/siglist.c:33 | ||||
| #: sysdeps/sun4/siglist.c:33 | ||||
| msgid "Abort" | ||||
| msgstr "Ləğv Et" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 | ||||
| #: sysdeps/osf1/siglist.c:34 | ||||
| #: sysdeps/sun4/siglist.c:34 | ||||
| msgid "EMT error" | ||||
| msgstr "EMT Xətası" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 | ||||
| #: sysdeps/osf1/siglist.c:35 | ||||
| #: sysdeps/sun4/siglist.c:35 | ||||
| msgid "Floating-point exception" | ||||
| msgstr "Floating-point exception" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 | ||||
| #: sysdeps/osf1/siglist.c:36 | ||||
| #: sysdeps/sun4/siglist.c:36 | ||||
| msgid "Kill" | ||||
| msgstr "Öldür" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 | ||||
| #: sysdeps/osf1/siglist.c:37 | ||||
| #: sysdeps/sun4/siglist.c:37 | ||||
| msgid "Bus error" | ||||
| msgstr "Bus Xətası" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 | ||||
| #: sysdeps/osf1/siglist.c:38 | ||||
| #: sysdeps/sun4/siglist.c:38 | ||||
| msgid "Segmentation violation" | ||||
| msgstr "Seqmentlərə Bölmə Qaydası Pozulması" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 | ||||
| #: sysdeps/osf1/siglist.c:39 | ||||
| #: sysdeps/sun4/siglist.c:39 | ||||
| msgid "Bad argument to system call" | ||||
| msgstr "Sistem çağırışı üçün xətalı arqument" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 | ||||
| #: sysdeps/osf1/siglist.c:40 | ||||
| #: sysdeps/sun4/siglist.c:40 | ||||
| msgid "Broken pipe" | ||||
| msgstr "Qırıq Boru" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 | ||||
| #: sysdeps/osf1/siglist.c:41 | ||||
| #: sysdeps/sun4/siglist.c:41 | ||||
| msgid "Alarm clock" | ||||
| msgstr "Zəngli Saat" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 | ||||
| #: sysdeps/osf1/siglist.c:42 | ||||
| #: sysdeps/sun4/siglist.c:42 | ||||
| msgid "Termination" | ||||
| msgstr "Qurtarma" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 | ||||
| #: sysdeps/osf1/siglist.c:43 | ||||
| #: sysdeps/sun4/siglist.c:43 | ||||
| msgid "Urgent condition on socket" | ||||
| msgstr "Qapıdakı tə'cili hal" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 | ||||
| #: sysdeps/osf1/siglist.c:44 | ||||
| #: sysdeps/sun4/siglist.c:44 | ||||
| msgid "Stop" | ||||
| msgstr "Dayandır" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 | ||||
| #: sysdeps/osf1/siglist.c:45 | ||||
| #: sysdeps/sun4/siglist.c:45 | ||||
| msgid "Keyboard stop" | ||||
| msgstr "Klaviaturadan dayandır" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 | ||||
| #: sysdeps/osf1/siglist.c:46 | ||||
| #: sysdeps/sun4/siglist.c:46 | ||||
| msgid "Continue" | ||||
| msgstr "Davam Et" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 | ||||
| #: sysdeps/osf1/siglist.c:47 | ||||
| #: sysdeps/sun4/siglist.c:47 | ||||
| msgid "Child status has changed" | ||||
| msgstr "Törəmə halı dəyişdi" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 | ||||
| #: sysdeps/osf1/siglist.c:48 | ||||
| #: sysdeps/sun4/siglist.c:48 | ||||
| msgid "Background read from tty" | ||||
| msgstr "tty'dən arxa plan gedişatı mə'lumatı" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 | ||||
| #: sysdeps/osf1/siglist.c:49 | ||||
| #: sysdeps/sun4/siglist.c:49 | ||||
| msgid "Background write to tty" | ||||
| msgstr "tty'yə yazma əməliyyatı" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 | ||||
| #: sysdeps/osf1/siglist.c:50 | ||||
| #: sysdeps/sun4/siglist.c:50 | ||||
| msgid "I/O now possible" | ||||
| msgstr "I/O indi mümkündür" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 | ||||
| #: sysdeps/osf1/siglist.c:51 | ||||
| #: sysdeps/sun4/siglist.c:51 | ||||
| msgid "CPU limit exceeded" | ||||
| msgstr "CPU sərhədi aşıldı" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 | ||||
| #: sysdeps/osf1/siglist.c:52 | ||||
| #: sysdeps/sun4/siglist.c:52 | ||||
| msgid "File size limit exceeded" | ||||
| msgstr "Dosye böyüklüyü sərhədi aşıldı" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 | ||||
| #: sysdeps/osf1/siglist.c:53 | ||||
| #: sysdeps/sun4/siglist.c:53 | ||||
| msgid "Virtual alarm clock" | ||||
| msgstr "Virtual Zəngli Saat" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 | ||||
| #: sysdeps/osf1/siglist.c:54 | ||||
| #: sysdeps/sun4/siglist.c:54 | ||||
| msgid "Profiling alarm clock" | ||||
| msgstr "Profil Zəngli Saati" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 | ||||
| #: sysdeps/osf1/siglist.c:55 | ||||
| #: sysdeps/sun4/siglist.c:55 | ||||
| msgid "Window size change" | ||||
| msgstr "Pəncərə Böyüklüyü Dəyişikliyi" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 | ||||
| #: sysdeps/osf1/siglist.c:56 | ||||
| #: sysdeps/sun4/siglist.c:56 | ||||
| msgid "Information request" | ||||
| msgstr "Mə'lumat sifarişi" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 | ||||
| #: sysdeps/osf1/siglist.c:57 | ||||
| #: sysdeps/sun4/siglist.c:57 | ||||
| msgid "User defined signal 1" | ||||
| msgstr "İstifadəçi siqnal 1 təsvir etdi" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:58 sysdeps/sun4/siglist.c:58 | ||||
| #: sysdeps/osf1/siglist.c:58 | ||||
| #: sysdeps/sun4/siglist.c:58 | ||||
| msgid "User defined signal 2" | ||||
| msgstr "İstifadəçi siqnal 2 təsvir etdi" | ||||
|  | ||||
|   | ||||
							
								
								
									
										106
									
								
								po/es.po
									
									
									
									
									
								
							
							
						
						
									
										106
									
								
								po/es.po
									
									
									
									
									
								
							| @@ -1,53 +1,50 @@ | ||||
| # translation of libgtop.libgtop-GNOME-2-0-port.po to Spanish | ||||
| # Translation into spanish of glibtop | ||||
| # Pablo Saratxaga <srtxg@chanae.alphanet.ch>, 1998-2000 | ||||
| # FIXME: the strings still left empty are the ones I've no idea how | ||||
| # to translate them; if anyone has a suggestion... | ||||
| # Pablo Saratxaga <srtxg@chanae.alphanet.ch>, 1998-2000. | ||||
| # Germán Poo Caamaño <gpoo@ubiobio.cl>, 2002. | ||||
| # Germán Poo Caamaño <gpoo@ubiobio.cl>, 2002 | ||||
| # Pablo Saratxaga <srtxg@chanae.alphanet.ch>, 2002. | ||||
| # Juan Manuel García Molina <juanma_gm@wanadoo.es>, 2002. | ||||
| # Francisco Javier F. Serrador <serrador@arrakis.es>, 2003. | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop.libgtop-GNOME-2-0-port\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2003-08-28 04:41+0200\n" | ||||
| "PO-Revision-Date: 2003-08-28 11:48+0200\n" | ||||
| "Last-Translator: Francisco Javier F. Serrador <serrador@arrakis.es>\n" | ||||
| "Project-Id-Version: glibtop 1.1.1\n" | ||||
| "POT-Creation-Date: 2002-06-02 13:22+0200\n" | ||||
| "PO-Revision-Date: 2002-06-02 18:17+0100\n" | ||||
| "Last-Translator: Juan Manuel García Molina <juanma_gm@wanadoo.es>\n" | ||||
| "Language-Team: Spanish <traductores@es.gnome.org>\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "First-Translator: Pablo Saratxaga <srtxg@chanae.alphanet.ch>\n" | ||||
| "X-Generator: KBabel 1.0.2\n" | ||||
| "X-Generator: KBabel 0.9.6\n" | ||||
|  | ||||
| #: examples/smp.c:71 | ||||
| #: examples/smp.c:68 | ||||
| #, c-format | ||||
| msgid "Ticks (%ld per second):" | ||||
| msgstr "Tics (%ld por segundo):" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Total" | ||||
| msgstr "Total" | ||||
|  | ||||
| #: examples/smp.c:74 sysdeps/names/mem.c:47 | ||||
| #: examples/smp.c:71 sysdeps/names/mem.c:47 | ||||
| msgid "User" | ||||
| msgstr "Usuario" | ||||
|  | ||||
| #: examples/smp.c:74 sysdeps/names/procuid.c:58 | ||||
| #: examples/smp.c:71 sysdeps/names/procuid.c:58 | ||||
| msgid "Nice" | ||||
| msgstr "Nice" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Sys" | ||||
| msgstr "Sis" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Idle" | ||||
| msgstr "Inact" | ||||
|  | ||||
| #: examples/smp.c:76 | ||||
| #: examples/smp.c:73 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| @@ -56,36 +53,36 @@ msgstr "" | ||||
| "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| "\n" | ||||
|  | ||||
| #: examples/smp.c:80 | ||||
| #: examples/smp.c:77 | ||||
| #, c-format | ||||
| msgid "CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n" | ||||
| msgstr "CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n" | ||||
|  | ||||
| #: examples/smp.c:97 | ||||
| #: examples/smp.c:94 | ||||
| msgid "Percent:" | ||||
| msgstr "Porcentaje:" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Total (%)" | ||||
| msgstr "Total (%)" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "User (%)" | ||||
| msgstr "Usuario (%)" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Nice (%)" | ||||
| msgstr "Nice (%)" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Sys (%)" | ||||
| msgstr "Sis (%)" | ||||
|  | ||||
| #: examples/smp.c:99 | ||||
| #: examples/smp.c:96 | ||||
| msgid "Idle (%)" | ||||
| msgstr "Inact (%)" | ||||
|  | ||||
| #: examples/smp.c:101 | ||||
| #: examples/smp.c:98 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| @@ -94,12 +91,12 @@ msgstr "" | ||||
| "CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| "\n" | ||||
|  | ||||
| #: examples/smp.c:117 | ||||
| #: examples/smp.c:114 | ||||
| #, c-format | ||||
| msgid "CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| msgstr "CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
|  | ||||
| #: examples/smp.c:123 | ||||
| #: examples/smp.c:120 | ||||
| msgid "Spin:" | ||||
| msgstr "Spin:" | ||||
|  | ||||
| @@ -122,47 +119,46 @@ msgstr "leídos %d bytes de datos" | ||||
| msgid "write %d bytes" | ||||
| msgstr "escritos %d bytes" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "Enable debugging" | ||||
| msgstr "Activar depuración" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "DEBUG" | ||||
| msgstr "DEPURACIÓN" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "Activa salida detallada" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "VERBOSE" | ||||
| msgstr "DETALLADO" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "Don't fork into background" | ||||
| msgstr "No se pudo abrir un proceso en segundo plano" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "NO-DAEMON" | ||||
| msgstr "NO-DAEMON" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "Invocado desde inetd" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "INETD" | ||||
| msgstr "INETD" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:493 | ||||
| #: src/daemon/gnuserv.c:488 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "Error on option %s: %s.\n" | ||||
| "Run '%s --help' to see a full list of available command line options.\n" | ||||
| msgstr "" | ||||
| "Error con la opción %s: %s.\n" | ||||
| "Ejecute '%s --help' para ver una lista completa de las opciones " | ||||
| "disponibles.\n" | ||||
| "Ejecute '%s --help' para ver una lista completa de las opciones disponibles.\n" | ||||
|  | ||||
| #: support/error.c:109 | ||||
| msgid "Unknown system error" | ||||
| @@ -350,7 +346,7 @@ msgstr "Último PID" | ||||
| #: sysdeps/names/loadavg.c:47 | ||||
| msgid "Number of jobs running simultaneously averaged over 1, 5 and 15 minutes" | ||||
| msgstr "" | ||||
| "Cantidad de procesos ejecutándose simultáneamente, media de los últimos 1, 5 y " | ||||
| "Cantidad de procesos corriendo simultáneamente, media de los últimos 1, 5 y " | ||||
| "15 minutos" | ||||
|  | ||||
| #: sysdeps/names/loadavg.c:48 | ||||
| @@ -379,7 +375,7 @@ msgstr "Memoria compartida" | ||||
|  | ||||
| #: sysdeps/names/mem.c:45 | ||||
| msgid "Buffers" | ||||
| msgstr "Búferes" | ||||
| msgstr "Búfers" | ||||
|  | ||||
| #: sysdeps/names/mem.c:46 | ||||
| msgid "Cached" | ||||
| @@ -407,7 +403,7 @@ msgstr "Memoria compartida (en KB)" | ||||
|  | ||||
| #: sysdeps/names/mem.c:57 | ||||
| msgid "Size of buffers kB" | ||||
| msgstr "Tamaño de los búferes (en KB)" | ||||
| msgstr "Tamaño de los búfers (en KB)" | ||||
|  | ||||
| #: sysdeps/names/mem.c:58 | ||||
| msgid "Size of cached memory in kB" | ||||
| @@ -485,7 +481,7 @@ msgstr "Dirección" | ||||
|  | ||||
| #: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67 | ||||
| msgid "Packets In" | ||||
| msgstr "Paquetes de entrada" | ||||
| msgstr "Páquetes de entrada" | ||||
|  | ||||
| #: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68 | ||||
| msgid "Packets Out" | ||||
| @@ -664,8 +660,8 @@ msgid "" | ||||
| "textual name.  (If you have an up-to-date /etc/psdatabase, then try ps -l to " | ||||
| "see the WCHAN field in action)" | ||||
| msgstr "" | ||||
| "Este es el «canal» en el cual el proceso está esperando.  Esta es la " | ||||
| "dirección de una llamada de sistema, y puede ser buscada en una lista de " | ||||
| "Este es el \"canal\" en el cual el proceso está esperando.  Esta es la " | ||||
| "dirección de una llamada sistema, y puede ser buscada en una lista de " | ||||
| "nombres si necesita un nombre textual. (Si tiene un /etc/psdatabasa " | ||||
| "actualizado, entonces pruebe \"ps -l\" para ver el campo WCHAN en acción)" | ||||
|  | ||||
| @@ -704,7 +700,7 @@ msgstr "Cantidad de páginas de memoria virtual" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:55 | ||||
| msgid "Number of resident set (non-swapped) pages" | ||||
| msgstr "Cantidad de páginas de conjuntos residentes (que no están en intercambio)" | ||||
| msgstr "Cantidad de páginas de conjuntos residentes (que no están en swap)" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:56 | ||||
| msgid "Number of pages of shared (mmap'd) memory" | ||||
| @@ -720,7 +716,7 @@ msgstr "" | ||||
| "Cantidad de páginas del proceso en memoria real, menos 3 par administración. " | ||||
| "Esto es solo las páginas que se cuentan entre texto, datos, o espacio de " | ||||
| "pila. Esto no incluye páginas que no han sido cargadas a la demanda, o que " | ||||
| "se encuentran en el dispositivo de intercambio." | ||||
| "se encuentran en el dispositivo de swap." | ||||
|  | ||||
| # In México, Dominican Republic, Guatemala, Honduras, Panama, Peru | ||||
| # and El Salvador, Number formats are the same as in the US, so no | ||||
| @@ -1108,15 +1104,15 @@ msgstr "Total máximo de memoria compartida" | ||||
|  | ||||
| #: sysdeps/names/swap.c:39 sysdeps/names/swap.c:48 | ||||
| msgid "Total Swap Space" | ||||
| msgstr "Espacio de intercambio total" | ||||
| msgstr "Espacio de swap total" | ||||
|  | ||||
| #: sysdeps/names/swap.c:40 sysdeps/names/swap.c:49 | ||||
| msgid "Used Swap Space" | ||||
| msgstr "Espacio de intercambio usado" | ||||
| msgstr "Espacio de swap usado" | ||||
|  | ||||
| #: sysdeps/names/swap.c:41 sysdeps/names/swap.c:50 | ||||
| msgid "Free Swap Space" | ||||
| msgstr "Espacio de intercambio libre" | ||||
| msgstr "Espacio de swap libre" | ||||
|  | ||||
| #: sysdeps/names/swap.c:42 | ||||
| msgid "Page In" | ||||
| @@ -1129,18 +1125,18 @@ msgstr "Páginas salidas" | ||||
| #: sysdeps/names/swap.c:51 | ||||
| msgid "Total number of swap pages that have been brought in since system boot" | ||||
| msgstr "" | ||||
| "Cantidad total de páginas que han sido entradas al intercambio, desde el inicio del " | ||||
| "Cantidad total de páginas que han sido entradas al swap, desde el inicio del " | ||||
| "sistema" | ||||
|  | ||||
| #: sysdeps/names/swap.c:53 | ||||
| msgid "Total number of swap pages that have been brought out since system boot" | ||||
| msgstr "" | ||||
| "Cantidad total de páginas que han sido sacadas del intercambio, desde el inicio del " | ||||
| "Cantidad total de páginas que han sido sacadas del swap, desde el inicio del " | ||||
| "sistema" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:49 sysdeps/names/sysdeps.c:76 | ||||
| msgid "Server Features" | ||||
| msgstr "Características del servidor" | ||||
| msgstr "Particularidades del Servidor" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:50 sysdeps/names/sysdeps.c:77 | ||||
| msgid "CPU Usage" | ||||
| @@ -1152,7 +1148,7 @@ msgstr "Uso de la memoria" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:52 sysdeps/names/sysdeps.c:79 | ||||
| msgid "Swap Usage" | ||||
| msgstr "Uso del intercambio" | ||||
| msgstr "Uso del swap" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:53 sysdeps/names/sysdeps.c:80 | ||||
| msgid "System Uptime" | ||||
| @@ -1240,7 +1236,7 @@ msgstr "Lista de los sistemas de archivos actualmente montados" | ||||
|  | ||||
| #: sysdeps/names/uptime.c:38 | ||||
| msgid "Uptime" | ||||
| msgstr "Tiempo activo" | ||||
| msgstr "Uptime" | ||||
|  | ||||
| #: sysdeps/names/uptime.c:39 | ||||
| msgid "Idletime" | ||||
| @@ -1286,7 +1282,7 @@ msgstr "Error EMT" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 | ||||
| msgid "Floating-point exception" | ||||
| msgstr "Excepción de coma flotante" | ||||
| msgstr "Excepción de punto flotante" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 | ||||
| msgid "Kill" | ||||
|   | ||||
| @@ -1,93 +1,92 @@ | ||||
| # Tamil translation of Tamil Libgtop 2.4. | ||||
| # Copyright (C) 2003 Free Software Foundation, Inc. | ||||
| # Dinesh Nadarajah <n_dinesh@yahoo.com>, 2003. | ||||
| #  | ||||
| #  | ||||
| # Spain diffs with es.po for libgtop | ||||
| # Copyright (C) 2002 Free Software Foundation, Inc. | ||||
| # Carlos Perelló Marín <carlos@gnome-db.org>, 2002. | ||||
| # | ||||
| msgid "" | ||||
| msgstr "Project-Id-Version: Tamil Libgtop 2.4" | ||||
| "POT-Creation-Date: 2003-09-16 17:19-0500\n" | ||||
| "PO-Revision-Date: 2003-09-16 17:19-0500\n" | ||||
| "Last-Translator: Dinesh Nadarajah <n_dinesh@yahoo.com>\n" | ||||
| "Language-Team: Tamil <tamilinix@yahoogroups.com>\n" | ||||
| msgstr "" | ||||
| "Project-Id-Version: glibtop 1.90.2\n" | ||||
| "POT-Creation-Date: 2002-05-28 15:54+0200\n" | ||||
| "PO-Revision-Date: 2002-05-28 15:50+0200\n" | ||||
| "Last-Translator: Carlos Perelló Marín <carlos@gnome-db.org>\n" | ||||
| "Language-Team: Spanish <traductores@es.gnome.org>\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "" | ||||
| 
 | ||||
| #: examples/smp.c:71 | ||||
| #: examples/smp.c:68 | ||||
| #, c-format | ||||
| msgid "Ticks (%ld per second):" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Total" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:74 sysdeps/names/mem.c:47 | ||||
| #: examples/smp.c:71 sysdeps/names/mem.c:47 | ||||
| msgid "User" | ||||
| msgstr "பயனர்" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:74 sysdeps/names/procuid.c:58 | ||||
| #: examples/smp.c:71 sysdeps/names/procuid.c:58 | ||||
| msgid "Nice" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Sys" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Idle" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:76 | ||||
| #: examples/smp.c:73 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| "\n" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:80 | ||||
| #: examples/smp.c:77 | ||||
| #, c-format | ||||
| msgid "CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:97 | ||||
| #: examples/smp.c:94 | ||||
| msgid "Percent:" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Total (%)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "User (%)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Nice (%)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Sys (%)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:99 | ||||
| #: examples/smp.c:96 | ||||
| msgid "Idle (%)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:101 | ||||
| #: examples/smp.c:98 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| "\n" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:117 | ||||
| #: examples/smp.c:114 | ||||
| #, c-format | ||||
| msgid "CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: examples/smp.c:123 | ||||
| #: examples/smp.c:120 | ||||
| msgid "Spin:" | ||||
| msgstr "" | ||||
| 
 | ||||
| @@ -110,39 +109,39 @@ msgstr "" | ||||
| msgid "write %d bytes" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "Enable debugging" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "DEBUG" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "VERBOSE" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "Don't fork into background" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "NO-DAEMON" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "INETD" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: src/daemon/gnuserv.c:493 | ||||
| #: src/daemon/gnuserv.c:488 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "Error on option %s: %s.\n" | ||||
| @@ -318,7 +317,7 @@ msgstr "" | ||||
| 
 | ||||
| #: sysdeps/names/loadavg.c:39 | ||||
| msgid "Load Average" | ||||
| msgstr "சுமாராக ஏற்று" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: sysdeps/names/loadavg.c:40 | ||||
| msgid "Running Tasks" | ||||
| @@ -464,7 +463,7 @@ msgstr "" | ||||
| 
 | ||||
| #: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66 | ||||
| msgid "Address" | ||||
| msgstr "_முகவரி" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67 | ||||
| msgid "Packets In" | ||||
| @@ -532,7 +531,7 @@ msgstr "" | ||||
| 
 | ||||
| #: sysdeps/names/procargs.c:38 sysdeps/names/procmem.c:47 | ||||
| msgid "Size" | ||||
| msgstr "அளவு" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: sysdeps/names/procargs.c:43 | ||||
| msgid "Length in bytes of the returned string." | ||||
| @@ -681,10 +680,21 @@ msgid "" | ||||
| "which are swapped out." | ||||
| msgstr "" | ||||
| 
 | ||||
| # | ||||
| # In México, Dominican Republic, Guatemala, Honduras, Panama, Peru | ||||
| # and El Salvador, Number formats are the same as in the US, so no | ||||
| # translation is required for them (the use es.po string). | ||||
| # Spain use "." chars instead of "," so the msgstr MUST be filled; otherwise | ||||
| # it will default to es.po which uses the US format for numbers. | ||||
| # On the other hand, strings that are the same here and in es.po can | ||||
| # be left out. | ||||
| # | ||||
| #: sysdeps/names/procmem.c:62 | ||||
| msgid "" | ||||
| "Current limit in bytes on the rss of the process (usually 2,147,483,647)." | ||||
| msgstr "" | ||||
| "Límite actual en bytes de conjunto compartido (RSS) del proceso " | ||||
| "(habitualmente 2.147.483.647)." | ||||
| 
 | ||||
| #: sysdeps/names/procsegment.c:42 | ||||
| msgid "Text_RSS" | ||||
| @@ -788,7 +798,7 @@ msgstr "" | ||||
| 
 | ||||
| #: sysdeps/names/procstate.c:40 | ||||
| msgid "State" | ||||
| msgstr "நிலமை" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: sysdeps/names/procstate.c:40 | ||||
| msgid "UID" | ||||
| @@ -1210,7 +1220,7 @@ msgstr "" | ||||
| 
 | ||||
| #: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 | ||||
| msgid "Quit" | ||||
| msgstr "வெளிச்செல்" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 | ||||
| msgid "Illegal instruction" | ||||
| @@ -1266,7 +1276,7 @@ msgstr "" | ||||
| 
 | ||||
| #: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 | ||||
| msgid "Stop" | ||||
| msgstr "நிறுத்து" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 | ||||
| msgid "Keyboard stop" | ||||
| @@ -1323,4 +1333,3 @@ msgstr "" | ||||
| #: sysdeps/osf1/siglist.c:58 sysdeps/sun4/siglist.c:58 | ||||
| msgid "User defined signal 2" | ||||
| msgstr "" | ||||
| 
 | ||||
							
								
								
									
										119
									
								
								po/it.po
									
									
									
									
									
								
							
							
						
						
									
										119
									
								
								po/it.po
									
									
									
									
									
								
							| @@ -5,9 +5,8 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2003-08-28 13:59+0200\n" | ||||
| "PO-Revision-Date: 2003-08-28 14:23+0200\n" | ||||
| "POT-Creation-Date: 2003-01-25 08:30+0100\n" | ||||
| "PO-Revision-Date: 2003-01-25 15:51+0100\n" | ||||
| "Last-Translator: Alessio Frusciante <algol@firenze.linux.it>\n" | ||||
| "Language-Team: Italian <tp@lists.linux.it>\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| @@ -17,7 +16,7 @@ msgstr "" | ||||
| #: examples/smp.c:71 | ||||
| #, c-format | ||||
| msgid "Ticks (%ld per second):" | ||||
| msgstr "Tick (%ld per secondo):" | ||||
| msgstr "" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| msgid "Total" | ||||
| @@ -93,68 +92,67 @@ msgstr "CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
|  | ||||
| #: examples/smp.c:123 | ||||
| msgid "Spin:" | ||||
| msgstr "Spin:" | ||||
| msgstr "" | ||||
|  | ||||
| #: lib/read.c:75 | ||||
| #, c-format | ||||
| msgid "read %d bytes" | ||||
| msgstr "letti %d byte" | ||||
| msgstr "" | ||||
|  | ||||
| #: lib/read_data.c:49 | ||||
| msgid "read data size" | ||||
| msgstr "dimensione dei dati letti" | ||||
| msgstr "" | ||||
|  | ||||
| #: lib/read_data.c:66 | ||||
| #, c-format | ||||
| msgid "read data %d bytes" | ||||
| msgstr "letti %d byte di dati" | ||||
| msgstr "" | ||||
|  | ||||
| #: lib/write.c:48 | ||||
| #, c-format | ||||
| msgid "write %d bytes" | ||||
| msgstr "scrittura di %d byte" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "Enable debugging" | ||||
| msgstr "Abilita debug" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "DEBUG" | ||||
| msgstr "DEBUG" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "Abilita output prolisso" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "VERBOSE" | ||||
| msgstr "VERBOSE" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "Don't fork into background" | ||||
| msgstr "Non fare fork in background" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "NO-DAEMON" | ||||
| msgstr "NO-DAEMON" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "Invocato da inetd" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "INETD" | ||||
| msgstr "INETD" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:493 | ||||
| #: src/daemon/gnuserv.c:488 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "Error on option %s: %s.\n" | ||||
| "Run '%s --help' to see a full list of available command line options.\n" | ||||
| msgstr "" | ||||
| "Errore nell'opzione %s: %s.\n" | ||||
| "Eseguire '%s --help' per vedere una lista completa delle opzioni per la " | ||||
| "linea di comando.\n" | ||||
| "Eseguire '%s --help' per vedere una lista completa delle opzioni per la linea di comando.\n" | ||||
|  | ||||
| #: support/error.c:109 | ||||
| msgid "Unknown system error" | ||||
| @@ -249,51 +247,51 @@ msgstr "Tempo di CPU in idle" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:48 | ||||
| msgid "Tick Frequency" | ||||
| msgstr "Frequenza dei tick" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:49 | ||||
| msgid "SMP Total CPU Time" | ||||
| msgstr "Tempo di CPU totale SMP" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:50 | ||||
| msgid "SMP CPU Time in User Mode" | ||||
| msgstr "Tempo di CPU SMP in modalit? utente" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:51 | ||||
| msgid "SMP CPU Time in User Mode (nice)" | ||||
| msgstr "Tempo di CPU SMP in modalit? utente (nice)" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:52 | ||||
| msgid "SMP CPU Time in System Mode" | ||||
| msgstr "Tempo di CPU SMP in modalit? di sistema" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:53 | ||||
| msgid "SMP CPU Time in the Idle Task" | ||||
| msgstr "Tempo di CPU SMP in idle" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:58 sysdeps/names/cpu.c:64 | ||||
| msgid "Number of clock ticks since system boot" | ||||
| msgstr "Numero di tick dall'avvio del sistema" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:59 sysdeps/names/cpu.c:65 | ||||
| msgid "Number of clock ticks the system spent in user mode" | ||||
| msgstr "Numero di tick trascorsi in modalit? utente" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:60 sysdeps/names/cpu.c:66 | ||||
| msgid "Number of clock ticks the system spent in user mode (nice)" | ||||
| msgstr "Numero di tick trascorsi in modalit? utente (nice)" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:61 sysdeps/names/cpu.c:67 | ||||
| msgid "Number of clock ticks the system spent in system mode" | ||||
| msgstr "Numero di tick trascorsi in modalit? di sistema" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:62 sysdeps/names/cpu.c:68 | ||||
| msgid "Number of clock ticks the system spent in the idle task" | ||||
| msgstr "Numero di tick trascorsi in idle" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:63 | ||||
| msgid "Tick frequency (default is 100)" | ||||
| msgstr "Frequenza dei tick (il valore predefinito è 100)" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/fsusage.c:39 sysdeps/names/fsusage.c:48 | ||||
| msgid "Total blocks" | ||||
| @@ -308,10 +306,12 @@ msgid "Available blocks" | ||||
| msgstr "Blocchi disponibili" | ||||
|  | ||||
| #: sysdeps/names/fsusage.c:42 sysdeps/names/fsusage.c:51 | ||||
| #, fuzzy | ||||
| msgid "Total file nodes" | ||||
| msgstr "Nodi file totali" | ||||
|  | ||||
| #: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52 | ||||
| #, fuzzy | ||||
| msgid "Free file nodes" | ||||
| msgstr "Nodi file liberi" | ||||
|  | ||||
| @@ -328,10 +328,12 @@ msgid "Load Average" | ||||
| msgstr "Media di carico" | ||||
|  | ||||
| #: sysdeps/names/loadavg.c:40 | ||||
| #, fuzzy | ||||
| msgid "Running Tasks" | ||||
| msgstr "Processi in esecuzione" | ||||
|  | ||||
| #: sysdeps/names/loadavg.c:41 | ||||
| #, fuzzy | ||||
| msgid "Number of Tasks" | ||||
| msgstr "Numero di processi" | ||||
|  | ||||
| @@ -344,6 +346,7 @@ msgid "Number of jobs running simultaneously averaged over 1, 5 and 15 minutes" | ||||
| msgstr "Numero di job eseguiti simultaneamente (media su 1, 5 e 15 minuti)" | ||||
|  | ||||
| #: sysdeps/names/loadavg.c:48 | ||||
| #, fuzzy | ||||
| msgid "Number of tasks currently running" | ||||
| msgstr "Numero di processi attualmente in esecuzione" | ||||
|  | ||||
| @@ -373,11 +376,11 @@ msgstr "Buffer" | ||||
|  | ||||
| #: sysdeps/names/mem.c:46 | ||||
| msgid "Cached" | ||||
| msgstr "In cache" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/mem.c:48 | ||||
| msgid "Locked" | ||||
| msgstr "Bloccata" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/mem.c:53 | ||||
| msgid "Total physical memory in kB" | ||||
| @@ -401,7 +404,7 @@ msgstr "Dimensione dei buffer in kB" | ||||
|  | ||||
| #: sysdeps/names/mem.c:58 | ||||
| msgid "Size of cached memory in kB" | ||||
| msgstr "Dimensione della memoria in cache in kB" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/mem.c:59 | ||||
| msgid "Memory used from user processes in kB" | ||||
| @@ -409,7 +412,7 @@ msgstr "Memoria usata nei processi utente in kB" | ||||
|  | ||||
| #: sysdeps/names/mem.c:60 | ||||
| msgid "Memory in locked pages in kB" | ||||
| msgstr "Memoria in pagine bloccate in kB" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/mountlist.c:38 sysdeps/names/mountlist.c:45 | ||||
| #: sysdeps/names/proclist.c:38 sysdeps/names/proclist.c:45 | ||||
| @@ -455,11 +458,11 @@ msgstr "" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:46 sysdeps/names/msg_limits.c:57 | ||||
| msgid "Number of system message headers" | ||||
| msgstr "Numero di intestazioni dei messaggi di sistema" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/netload.c:45 sysdeps/names/netload.c:63 | ||||
| msgid "Interface Flags" | ||||
| msgstr "Flag delle interfacce" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/netload.c:46 | ||||
| msgid "MTU" | ||||
| @@ -515,7 +518,7 @@ msgstr "Collisioni" | ||||
|  | ||||
| #: sysdeps/names/netload.c:64 | ||||
| msgid "Maximum Transfer Unit" | ||||
| msgstr "Massima unit? di trasferimento" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/ppp.c:38 sysdeps/names/ppp.c:45 | ||||
| msgid "PPP State" | ||||
| @@ -543,7 +546,7 @@ msgstr "Dimensioni" | ||||
|  | ||||
| #: sysdeps/names/procargs.c:43 | ||||
| msgid "Length in bytes of the returned string." | ||||
| msgstr "Lunghezza in byte della stringa restituita." | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/prockernel.c:42 | ||||
| msgid "K_Flags" | ||||
| @@ -620,12 +623,11 @@ msgstr "" | ||||
|  | ||||
| #. KStk_ESP | ||||
| #: sysdeps/names/prockernel.c:71 | ||||
| #, fuzzy | ||||
| msgid "" | ||||
| "The current value of esp (32-bit stack pointer), as found in the kernel " | ||||
| "stack page for the process." | ||||
| msgstr "" | ||||
| "Il valore di ESP (stack pointer a 32 bit) come fornito dalla pagina dello " | ||||
| "stack per il processo." | ||||
| msgstr "Il valore di ESP (stack pointer a 32 bit)" | ||||
|  | ||||
| #. KStk_EIP | ||||
| #: sysdeps/names/prockernel.c:74 | ||||
| @@ -656,7 +658,7 @@ msgstr "Residente" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:47 | ||||
| msgid "Share" | ||||
| msgstr "Condivisa" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:48 | ||||
| msgid "Resident Set Size" | ||||
| @@ -790,7 +792,7 @@ msgstr "Maschera dei segnali ignorati" | ||||
|  | ||||
| #: sysdeps/names/procsignal.c:48 | ||||
| msgid "Mask of caught signals" | ||||
| msgstr "Maschera dei segnali catturati" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/procstate.c:40 | ||||
| msgid "Cmd" | ||||
| @@ -850,7 +852,7 @@ msgstr "CSTime" | ||||
|  | ||||
| #: sysdeps/names/proctime.c:45 | ||||
| msgid "TimeOut" | ||||
| msgstr "TimeOut" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/proctime.c:45 | ||||
| msgid "It_Real_Value" | ||||
| @@ -904,15 +906,15 @@ msgstr "" | ||||
|  | ||||
| #: sysdeps/names/proctime.c:60 | ||||
| msgid "Tick frequency" | ||||
| msgstr "Frequenza dei tick" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/proctime.c:61 | ||||
| msgid "SMP user-mode CPU time accumulated by process" | ||||
| msgstr "Tempo di CPU SMP modalit? utente accumulato dal processo" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/proctime.c:62 | ||||
| msgid "SMP kernel-mode CPU time accumulated by process" | ||||
| msgstr "Tempo di CPU SMP modalit? kernel accumulato dal processo " | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/procuid.c:56 | ||||
| msgid "Uid" | ||||
| @@ -1096,7 +1098,7 @@ msgstr "Totale di pagine di swap scaricate dall'avvio del sistema" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:49 sysdeps/names/sysdeps.c:76 | ||||
| msgid "Server Features" | ||||
| msgstr "Funzionalit? del server" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/names/sysdeps.c:50 sysdeps/names/sysdeps.c:77 | ||||
| msgid "CPU Usage" | ||||
| @@ -1208,8 +1210,7 @@ msgstr "Tempo in secondi dall'avvio del sistema" | ||||
|  | ||||
| #: sysdeps/names/uptime.c:45 | ||||
| msgid "Time in seconds the system spent in the idle task since system boot" | ||||
| msgstr "" | ||||
| "Tempo in secondi che il sistema ha passato in idle dall'avvio del sistema" | ||||
| msgstr "Tempo in secondi che il sistema ha passato in idle dall'avvio del sistema" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 | ||||
| msgid "Hangup" | ||||
| @@ -1289,27 +1290,27 @@ msgstr "" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 | ||||
| msgid "Child status has changed" | ||||
| msgstr "Lo stato del figlio è cambiato" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 | ||||
| msgid "Background read from tty" | ||||
| msgstr "Lettura in background dalla tty" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 | ||||
| msgid "Background write to tty" | ||||
| msgstr "Scrittura in background sulla tty" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 | ||||
| msgid "I/O now possible" | ||||
| msgstr "I/O adesso possibile" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 | ||||
| msgid "CPU limit exceeded" | ||||
| msgstr "Superato il limite della CPU" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 | ||||
| msgid "File size limit exceeded" | ||||
| msgstr "Superato il limite nella dimensione dei file" | ||||
| msgstr "" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 | ||||
| msgid "Virtual alarm clock" | ||||
|   | ||||
							
								
								
									
										25
									
								
								po/nl.po
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								po/nl.po
									
									
									
									
									
								
							| @@ -6,14 +6,13 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop CVS\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2003-10-21 19:07+0200\n" | ||||
| "POT-Creation-Date: 2003-06-21 12:58+0200\n" | ||||
| "PO-Revision-Date: 2002-10-29 13:14+0100\n" | ||||
| "Last-Translator: Jeroen van der Vegt <A.J.vanderVegt@ITS.TUDelft.nl>\n" | ||||
| "Language-Team: Dutch <nl@li.org>\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||||
|  | ||||
| #: examples/smp.c:71 | ||||
| #, c-format | ||||
| @@ -94,10 +93,8 @@ msgstr "Draaiing:" | ||||
|  | ||||
| #: lib/read.c:75 | ||||
| #, c-format | ||||
| msgid "read %d byte" | ||||
| msgid_plural "read %d bytes" | ||||
| msgstr[0] "%d byte gelezen" | ||||
| msgstr[1] "%d bytes gelezen" | ||||
| msgid "read %d bytes" | ||||
| msgstr "%d bytes gelezen" | ||||
|  | ||||
| #: lib/read_data.c:49 | ||||
| msgid "read data size" | ||||
| @@ -105,17 +102,13 @@ msgstr "grootte van de gelezen data" | ||||
|  | ||||
| #: lib/read_data.c:66 | ||||
| #, c-format | ||||
| msgid "read data %d byte" | ||||
| msgid_plural "read data %d bytes" | ||||
| msgstr[0] "lees %d byte" | ||||
| msgstr[1] "lees %d bytes" | ||||
| msgid "read data %d bytes" | ||||
| msgstr "lees %d bytes" | ||||
|  | ||||
| #: lib/write.c:48 | ||||
| #, c-format | ||||
| msgid "write %d byte" | ||||
| msgid_plural "write %d bytes" | ||||
| msgstr[0] "schrijf %d byte" | ||||
| msgstr[1] "schrijf %d bytes" | ||||
| msgid "write %d bytes" | ||||
| msgstr "schrijf %d bytes" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| msgid "Enable debugging" | ||||
| @@ -221,11 +214,11 @@ msgstr "%s: optie '-W %s' is dubbelzinnig\n" | ||||
| msgid "%s: option `-W %s' doesn't allow an argument\n" | ||||
| msgstr "%s: optie '-W %s' staat geen argument toe\n" | ||||
|  | ||||
| #: support/popthelp.c:23 | ||||
| #: support/popthelp.c:35 | ||||
| msgid "Show this help message" | ||||
| msgstr "Laat deze uitleg zien" | ||||
|  | ||||
| #: support/popthelp.c:24 | ||||
| #: support/popthelp.c:36 | ||||
| msgid "Display brief usage message" | ||||
| msgstr "Toon een korte handleiding" | ||||
|  | ||||
|   | ||||
							
								
								
									
										74
									
								
								po/pt.po
									
									
									
									
									
								
							
							
						
						
									
										74
									
								
								po/pt.po
									
									
									
									
									
								
							| @@ -1,46 +1,44 @@ | ||||
| # libgtop's Portuguese Translation | ||||
| # Copyright (C) 2001 libgtop | ||||
| # Distributed under the same licence as the libgtop package | ||||
| # Duarte Loreto <happyguy_pt@hotmail.com>, 2001, 2002, 2003 | ||||
| # Copyright (C) 2001 Free Software Foundation, Inc. | ||||
| # Duarte Loreto <happyguy_pt@hotmail.com>, 2001, 2002 | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: 2.4\n" | ||||
| "Report-Msgid-Bugs-To: Duarte Loreto <happyguy_pt@hotmail.com>\n" | ||||
| "POT-Creation-Date: 2003-08-25 19:14+0100\n" | ||||
| "PO-Revision-Date: 2002-08-25 19:16+0000\n" | ||||
| "Project-Id-Version: 1.4.1\n" | ||||
| "POT-Creation-Date: 2002-05-06 01:18+0100\n" | ||||
| "PO-Revision-Date: 2002-04-02 00:06+0000\n" | ||||
| "Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n" | ||||
| "Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
|  | ||||
| #: examples/smp.c:71 | ||||
| #: examples/smp.c:68 | ||||
| #, c-format | ||||
| msgid "Ticks (%ld per second):" | ||||
| msgstr "Batidas (%ld por segundo):" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Total" | ||||
| msgstr "Total" | ||||
|  | ||||
| #: examples/smp.c:74 sysdeps/names/mem.c:47 | ||||
| #: examples/smp.c:71 sysdeps/names/mem.c:47 | ||||
| msgid "User" | ||||
| msgstr "Utilizador" | ||||
|  | ||||
| #: examples/smp.c:74 sysdeps/names/procuid.c:58 | ||||
| #: examples/smp.c:71 sysdeps/names/procuid.c:58 | ||||
| msgid "Nice" | ||||
| msgstr "Nice" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Sys" | ||||
| msgstr "Sis" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Idle" | ||||
| msgstr "Inactivo" | ||||
|  | ||||
| #: examples/smp.c:76 | ||||
| #: examples/smp.c:73 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| @@ -49,36 +47,36 @@ msgstr "" | ||||
| "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| "\n" | ||||
|  | ||||
| #: examples/smp.c:80 | ||||
| #: examples/smp.c:77 | ||||
| #, c-format | ||||
| msgid "CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n" | ||||
| msgstr "CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n" | ||||
|  | ||||
| #: examples/smp.c:97 | ||||
| #: examples/smp.c:94 | ||||
| msgid "Percent:" | ||||
| msgstr "Percentagem:" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Total (%)" | ||||
| msgstr "Total (%)" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "User (%)" | ||||
| msgstr "Utilizador (%)" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Nice (%)" | ||||
| msgstr "Nice (%)" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Sys (%)" | ||||
| msgstr "Sis (%)" | ||||
|  | ||||
| #: examples/smp.c:99 | ||||
| #: examples/smp.c:96 | ||||
| msgid "Idle (%)" | ||||
| msgstr "Inactivo (%)" | ||||
|  | ||||
| #: examples/smp.c:101 | ||||
| #: examples/smp.c:98 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| @@ -87,12 +85,12 @@ msgstr "" | ||||
| "CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| "\n" | ||||
|  | ||||
| #: examples/smp.c:117 | ||||
| #: examples/smp.c:114 | ||||
| #, c-format | ||||
| msgid "CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| msgstr "CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
|  | ||||
| #: examples/smp.c:123 | ||||
| #: examples/smp.c:120 | ||||
| msgid "Spin:" | ||||
| msgstr "Rotações:" | ||||
|  | ||||
| @@ -115,39 +113,39 @@ msgstr "dados lidos %d bytes" | ||||
| msgid "write %d bytes" | ||||
| msgstr "escreveu %d bytes" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "Enable debugging" | ||||
| msgstr "Activar depuração" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "DEBUG" | ||||
| msgstr "DEBUG" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "Activar resultados extensos" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "VERBOSE" | ||||
| msgstr "VERBOSE" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "Don't fork into background" | ||||
| msgstr "Não fazer fork em background" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "NO-DAEMON" | ||||
| msgstr "NO-DAEMON" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "Invocado do inetd" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "INETD" | ||||
| msgstr "INETD" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:493 | ||||
| #: src/daemon/gnuserv.c:488 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "Error on option %s: %s.\n" | ||||
| @@ -294,7 +292,7 @@ msgstr "Número de batidas de relógio inactivas" | ||||
|  | ||||
| #: sysdeps/names/cpu.c:63 | ||||
| msgid "Tick frequency (default is 100)" | ||||
| msgstr "Frequência batidas (omissão é 100)" | ||||
| msgstr "Frequência batidas (defeito é 100)" | ||||
|  | ||||
| #: sysdeps/names/fsusage.c:39 sysdeps/names/fsusage.c:48 | ||||
| msgid "Total blocks" | ||||
| @@ -437,7 +435,7 @@ msgstr "Tamanho em kB da fila de mensagens" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:41 sysdeps/names/msg_limits.c:52 | ||||
| msgid "Number of entries in message map" | ||||
| msgstr "Número de entradas no mapa de mensagens" | ||||
| msgstr "Número de entrasas no mapa de mensagens" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:42 sysdeps/names/msg_limits.c:53 | ||||
| msgid "Max size of message" | ||||
| @@ -445,7 +443,7 @@ msgstr "Tamanho máx das mensagens" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:43 sysdeps/names/msg_limits.c:54 | ||||
| msgid "Default max size of queue" | ||||
| msgstr "Tamanho máx por omissão da fila" | ||||
| msgstr "Tamanho máx defeito da fila" | ||||
|  | ||||
| #: sysdeps/names/msg_limits.c:44 sysdeps/names/msg_limits.c:55 | ||||
| msgid "Max queues system wide" | ||||
| @@ -603,7 +601,7 @@ msgstr "" | ||||
| "Isto poderá ser um bug, já que nem todos os processos são aplicações " | ||||
| "compiladas em C.\n" | ||||
| "\n" | ||||
| "O bit math deverá ser um décimal 4, e o bit de trace é décimal 10." | ||||
| "O bit math deverá ser um decimal 4, e o bit de trace é decimal 10." | ||||
|  | ||||
| #. Min_Flt | ||||
| #: sysdeps/names/prockernel.c:59 | ||||
| @@ -924,7 +922,7 @@ msgid "" | ||||
| "an interval timer." | ||||
| msgstr "" | ||||
| "O tempo (em jiffies) antes do próximo SIGALRM ser enviado ao processo devido " | ||||
| "ao temporizador de intervalo." | ||||
| "ao temporizador de intrevalo." | ||||
|  | ||||
| #: sysdeps/names/proctime.c:60 | ||||
| msgid "Tick frequency" | ||||
|   | ||||
							
								
								
									
										90
									
								
								po/pt_BR.po
									
									
									
									
									
								
							
							
						
						
									
										90
									
								
								po/pt_BR.po
									
									
									
									
									
								
							| @@ -1,45 +1,43 @@ | ||||
| # Brazilian Portuguese translation of libgtop | ||||
| # Copyright (C) 2001-2003 Free Software Foundation, Inc. | ||||
| # | ||||
| # E. A. Tacão <tacao@conectiva.com.br>, 2001 | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop 2.0.4\n" | ||||
| "POT-Creation-Date: 2003-10-01 17:21-0400\n" | ||||
| "PO-Revision-Date: 2003-10-01 17:20-0400\n" | ||||
| "Project-Id-Version: LibGTOP\n" | ||||
| "POT-Creation-Date: 2002-07-05 19:54-0300\n" | ||||
| "PO-Revision-Date: 2002-07-05 19:59GMT-0300\n" | ||||
| "Last-Translator: Evandro Fernandes Giovanini <evandrofg@ig.com.br>\n" | ||||
| "Language-Team: Brazilian Portuguese <gnome-l10n-br@listas.cipsga.org.br>\n" | ||||
| "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
|  | ||||
| #: examples/smp.c:71 | ||||
| #: examples/smp.c:68 | ||||
| #, c-format | ||||
| msgid "Ticks (%ld per second):" | ||||
| msgstr "Pulsos (%ld por segundo):" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Total" | ||||
| msgstr "Total" | ||||
|  | ||||
| #: examples/smp.c:74 sysdeps/names/mem.c:47 | ||||
| #: examples/smp.c:71 sysdeps/names/mem.c:47 | ||||
| msgid "User" | ||||
| msgstr "Usuário" | ||||
|  | ||||
| #: examples/smp.c:74 sysdeps/names/procuid.c:58 | ||||
| #: examples/smp.c:71 sysdeps/names/procuid.c:58 | ||||
| msgid "Nice" | ||||
| msgstr "Prioridade" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Sys" | ||||
| msgstr "Sys" | ||||
|  | ||||
| #: examples/smp.c:74 | ||||
| #: examples/smp.c:71 | ||||
| msgid "Idle" | ||||
| msgstr "Tempo ocioso" | ||||
|  | ||||
| #: examples/smp.c:76 | ||||
| #: examples/smp.c:73 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| @@ -48,36 +46,36 @@ msgstr "" | ||||
| "CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n" | ||||
| "\n" | ||||
|  | ||||
| #: examples/smp.c:80 | ||||
| #: examples/smp.c:77 | ||||
| #, c-format | ||||
| msgid "CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n" | ||||
| msgstr "CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n" | ||||
|  | ||||
| #: examples/smp.c:97 | ||||
| #: examples/smp.c:94 | ||||
| msgid "Percent:" | ||||
| msgstr "Percentual:" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Total (%)" | ||||
| msgstr "Total (%)" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "User (%)" | ||||
| msgstr "Usuário (%)" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Nice (%)" | ||||
| msgstr "Prioridade (%)" | ||||
|  | ||||
| #: examples/smp.c:98 | ||||
| #: examples/smp.c:95 | ||||
| msgid "Sys (%)" | ||||
| msgstr "Sys (%)" | ||||
|  | ||||
| #: examples/smp.c:99 | ||||
| #: examples/smp.c:96 | ||||
| msgid "Idle (%)" | ||||
| msgstr "Tempo ocioso (%)" | ||||
|  | ||||
| #: examples/smp.c:101 | ||||
| #: examples/smp.c:98 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| @@ -86,12 +84,12 @@ msgstr "" | ||||
| "CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| "\n" | ||||
|  | ||||
| #: examples/smp.c:117 | ||||
| #: examples/smp.c:114 | ||||
| #, c-format | ||||
| msgid "CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
| msgstr "CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n" | ||||
|  | ||||
| #: examples/smp.c:123 | ||||
| #: examples/smp.c:120 | ||||
| msgid "Spin:" | ||||
| msgstr "Spin:" | ||||
|  | ||||
| @@ -114,39 +112,39 @@ msgstr "ler %d bytes de dados" | ||||
| msgid "write %d bytes" | ||||
| msgstr "escrever %d bytes" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "Enable debugging" | ||||
| msgstr "Habilitar depuração" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "DEBUG" | ||||
| msgstr "DEBUG" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "Habilitar saída com mensagens detalhadas " | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "VERBOSE" | ||||
| msgstr "VERBOSE" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "Don't fork into background" | ||||
| msgstr "Não passar para segundo plano" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "NO-DAEMON" | ||||
| msgstr "NO-DAEMON" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "Acionado pelo inetd" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "INETD" | ||||
| msgstr "INETD" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:493 | ||||
| #: src/daemon/gnuserv.c:488 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "Error on option %s: %s.\n" | ||||
| @@ -477,15 +475,15 @@ msgstr "Endereço" | ||||
|  | ||||
| #: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67 | ||||
| msgid "Packets In" | ||||
| msgstr "Pacotes recebidos" | ||||
| msgstr "Páginas em Processamento" | ||||
|  | ||||
| #: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68 | ||||
| msgid "Packets Out" | ||||
| msgstr "Pacotes enviados" | ||||
| msgstr "Página em Espera" | ||||
|  | ||||
| #: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69 | ||||
| msgid "Packets Total" | ||||
| msgstr "Total de pacotes" | ||||
| msgstr "Total de Páginas" | ||||
|  | ||||
| #: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70 | ||||
| msgid "Bytes In" | ||||
| @@ -595,14 +593,14 @@ msgid "" | ||||
| "\n" | ||||
| "The math bit should be a decimal 4, and the traced bit is decimal 10." | ||||
| msgstr "" | ||||
| "Sinalizadores do kernel para o processo.\n" | ||||
| "Parâmetros do kernel para o processo.\n" | ||||
| "\n" | ||||
| "No Linux, cada sinalizador tem o bit matemático definido, pois crt0.s " | ||||
| "No Linux, cada parâmetro tem o bit matemático habilitado, pois crt0.s " | ||||
| "verifica se há emulação matemática, de modo que não seja incluída na saída.\n" | ||||
| "\n" | ||||
| "Isto é provavelmente um erro, já que nem todo os processos são programas C.\n" | ||||
| "Isto é provavelmente um problema, já que nem todo processo é um programa C.\n" | ||||
| "\n" | ||||
| "O bit matemático deve ser um 4 decimal, e o bit verificado é o 10 decimal." | ||||
| "O bit matemático deve ser um 4 decimal, e o bit verificado é o decimal 10." | ||||
|  | ||||
| #. Min_Flt | ||||
| #: sysdeps/names/prockernel.c:59 | ||||
| @@ -610,8 +608,8 @@ msgid "" | ||||
| "The number of minor faults the process has made, those which have not " | ||||
| "required loading a memory page from disk." | ||||
| msgstr "" | ||||
| "O número de falhas menores do processo; aquelas que não provocaram a carga " | ||||
| "de uma página de memória do disco." | ||||
| "O número de falhas menores do processo, são aquelas que não provocaram a " | ||||
| "busca de uma página de memória do disco." | ||||
|  | ||||
| #. Maj_Flt | ||||
| #: sysdeps/names/prockernel.c:62 | ||||
| @@ -678,11 +676,11 @@ msgstr "Compartilhado" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:48 | ||||
| msgid "Resident Set Size" | ||||
| msgstr "Tamanho do conjunto residente" | ||||
| msgstr "Configuração do Tamanho Residente" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:48 | ||||
| msgid "Resident Set Size Limit" | ||||
| msgstr "Limite do tamanho do conjunto residente" | ||||
| msgstr "Limite da Parte Residente" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:53 | ||||
| msgid "Total # of pages of memory" | ||||
| @@ -694,7 +692,7 @@ msgstr "Número de páginas na memória virtual" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:55 | ||||
| msgid "Number of resident set (non-swapped) pages" | ||||
| msgstr "Número de páginas no conjunto residente (fora da troca)" | ||||
| msgstr "Número de páginas residentes (fora da troca)" | ||||
|  | ||||
| #: sysdeps/names/procmem.c:56 | ||||
| msgid "Number of pages of shared (mmap'd) memory" | ||||
| @@ -751,7 +749,7 @@ msgstr "Start_Stack" | ||||
|  | ||||
| #: sysdeps/names/procsegment.c:48 | ||||
| msgid "Text resident set size" | ||||
| msgstr "Tamanho do conjunto residente texto" | ||||
| msgstr "Parte residente do código" | ||||
|  | ||||
| #: sysdeps/names/procsegment.c:49 | ||||
| msgid "Shared-Lib resident set size" | ||||
|   | ||||
							
								
								
									
										27
									
								
								po/sv.po
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								po/sv.po
									
									
									
									
									
								
							| @@ -9,14 +9,13 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop\n" | ||||
| "POT-Creation-Date: 2003-10-22 00:07+0200\n" | ||||
| "PO-Revision-Date: 2003-10-22 00:08+0200\n" | ||||
| "POT-Creation-Date: 2003-02-09 23:12+0100\n" | ||||
| "PO-Revision-Date: 2003-02-09 23:13+0100\n" | ||||
| "Last-Translator: Christian Rose <menthos@menthos.com>\n" | ||||
| "Language-Team: Swedish <sv@li.org>\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||||
|  | ||||
| #: examples/smp.c:71 | ||||
| #, c-format | ||||
| @@ -118,39 +117,39 @@ msgstr "läste %d byte data" | ||||
| msgid "write %d bytes" | ||||
| msgstr "skrev %d byte" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "Enable debugging" | ||||
| msgstr "Aktivera felsökning" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:453 | ||||
| #: src/daemon/gnuserv.c:448 | ||||
| msgid "DEBUG" | ||||
| msgstr "FELSÖK" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "Aktivera utförlig utskrift" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:450 | ||||
| msgid "VERBOSE" | ||||
| msgstr "UTFÖRLIG" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "Don't fork into background" | ||||
| msgstr "Grena inte i bakgrunden" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:452 | ||||
| msgid "NO-DAEMON" | ||||
| msgstr "INGEN-DEMON" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "Startad från inetd" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:459 | ||||
| #: src/daemon/gnuserv.c:454 | ||||
| msgid "INETD" | ||||
| msgstr "INETD" | ||||
|  | ||||
| #: src/daemon/gnuserv.c:493 | ||||
| #: src/daemon/gnuserv.c:488 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "Error on option %s: %s.\n" | ||||
| @@ -223,11 +222,11 @@ msgstr "%s: flaggan \"-W %s\" är tvetydig\n" | ||||
| msgid "%s: option `-W %s' doesn't allow an argument\n" | ||||
| msgstr "%s: flaggan \"-W %s\" tillåter inga argument\n" | ||||
|  | ||||
| #: support/popthelp.c:23 | ||||
| #: support/popthelp.c:35 | ||||
| msgid "Show this help message" | ||||
| msgstr "Visa denna hjälptext" | ||||
|  | ||||
| #: support/popthelp.c:24 | ||||
| #: support/popthelp.c:36 | ||||
| msgid "Display brief usage message" | ||||
| msgstr "Visa kortfattad användningstext" | ||||
|  | ||||
|   | ||||
| @@ -1,2 +0,0 @@ | ||||
| Makefile.in | ||||
| Makefile | ||||
| @@ -1,9 +0,0 @@ | ||||
| 2000-01-02  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* c_types.pl ($demarshal_funcs): New variable. | ||||
|  | ||||
| 1999-11-28  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* c_types.pl: New file. | ||||
| 	This is included in `$(top_srcdir)/lib/lib.pl'. | ||||
|  | ||||
| @@ -1 +0,0 @@ | ||||
| EXTRA_DIST	= c_types.pl | ||||
| @@ -1,71 +0,0 @@ | ||||
| # Internal functions | ||||
|  | ||||
| my $c_strlen_func = sub { | ||||
|   local ($_) = @_; | ||||
|  | ||||
|   return "strlen ($_) + 1"; | ||||
| }; | ||||
|  | ||||
| my $c_marshal_func = sub { | ||||
|   my ($type, $param, $indent) = @_; | ||||
|  | ||||
|   my $code = ''; | ||||
|   $code .= sprintf ("%s_LIBGTOP_SEND_temp_len = strlen (%s)+1;\n", | ||||
| 		    $indent, $param); | ||||
|   $code .= sprintf ("%smemcpy (_LIBGTOP_SEND_ptr, %s, %s);\n", | ||||
| 		    $indent, "&_LIBGTOP_SEND_temp_len", "sizeof (size_t)"); | ||||
|   $code .= sprintf ("%s_LIBGTOP_SEND_ptr += sizeof (size_t);\n", $indent); | ||||
|   $code .= sprintf ("%smemcpy (_LIBGTOP_DATA_ptr, %s, %s);\n", | ||||
| 		    $indent, $param, "strlen ($param)+1"); | ||||
|   $code .= sprintf ("%s_LIBGTOP_DATA_ptr += strlen ($param)+1;\n", | ||||
| 		    $indent); | ||||
|  | ||||
|   $need_temp_len = 1; | ||||
|  | ||||
|   return $code; | ||||
| }; | ||||
|  | ||||
| my $c_demarshal_func = sub { | ||||
|   my ($type, $param, $indent) = @_; | ||||
|  | ||||
|   my $code = ''; | ||||
|   $code .= sprintf ("%s_LIBGTOP_demarshal_%s = _LIBGTOP_DATA_ptr;\n", | ||||
| 		    $indent, $param); | ||||
|   $code .= sprintf ("%sif (_LIBGTOP_TEMP_len) --_LIBGTOP_TEMP_len;\n", | ||||
| 		    $indent); | ||||
|   $code .= sprintf ("%s*(_LIBGTOP_DATA_ptr + _LIBGTOP_TEMP_len) = 0;\n", | ||||
| 		    $indent); | ||||
|  | ||||
|   $need_temp_len = 1; | ||||
|  | ||||
|   return $code; | ||||
| }; | ||||
|  | ||||
|  | ||||
|  | ||||
| # Typeinfo array fields: | ||||
| # --------------------- | ||||
| # * C type name | ||||
| # * Flag specifying whether we need to copy the parameter into temp storage | ||||
| # | ||||
|  | ||||
| $typeinfo = {'long'	=> ['int64_t',		0], | ||||
| 	     'ulong'	=> ['u_int64_t',	0], | ||||
| 	     'pid_t'	=> ['pid_t',		0], | ||||
| 	     'int'	=> ['int',		0], | ||||
| 	     'retval'	=> ['int',		0], | ||||
| 	     'ushort'	=> ['unsigned short',	0], | ||||
| 	     'unsigned'	=> ['unsigned',		0], | ||||
| 	     'string'	=> ['const char *',	1], | ||||
| 	     }; | ||||
|  | ||||
| $sizeof_funcs = {'string'	=> $c_strlen_func, | ||||
| 		}; | ||||
|  | ||||
| $marshal_funcs = {'string'	=> $c_marshal_func, | ||||
| 		 }; | ||||
|  | ||||
| $demarshal_funcs = {'string'	=> $c_demarshal_func, | ||||
| 		   }; | ||||
|  | ||||
| 1; | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user