Compare commits
	
		
			745 Commits
		
	
	
		
			libgtop-GN
			...
			gnome-2-4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					1991f7ed06 | ||
| 
						 | 
					48226b861c | ||
| 
						 | 
					760e5c8791 | ||
| 
						 | 
					9968f74a05 | ||
| 
						 | 
					84962b2301 | ||
| 
						 | 
					d1a9dab750 | ||
| 
						 | 
					956fdf57de | ||
| 
						 | 
					82ae93ab70 | ||
| 
						 | 
					2159e530c5 | ||
| 
						 | 
					bec5e10bb1 | ||
| 
						 | 
					7bd1293665 | ||
| 
						 | 
					5edf277435 | ||
| 
						 | 
					3f307e8e30 | ||
| 
						 | 
					b375457834 | ||
| 
						 | 
					79e8b914ed | ||
| 
						 | 
					faacbd7f8b | ||
| 
						 | 
					dde57bee91 | ||
| 
						 | 
					08798f05f5 | ||
| 
						 | 
					486e6b0260 | ||
| 
						 | 
					1c96e35cc0 | ||
| 
						 | 
					83a3d5f76d | ||
| 
						 | 
					80aeb305c2 | ||
| 
						 | 
					4c8ae9e25c | ||
| 
						 | 
					bae16b467f | ||
| 
						 | 
					5e28a55218 | ||
| 
						 | 
					4d0bca118a | ||
| 
						 | 
					c3011b646c | ||
| 
						 | 
					b94a36c719 | ||
| 
						 | 
					7aaa4454ab | ||
| 
						 | 
					6572ee1baf | ||
| 
						 | 
					c95d39dde7 | ||
| 
						 | 
					a32503df9b | ||
| 
						 | 
					d31e33d4bf | ||
| 
						 | 
					09becf3b7d | ||
| 
						 | 
					6e9589702f | ||
| 
						 | 
					ab7f98d2ff | ||
| 
						 | 
					75b2832076 | ||
| 
						 | 
					142a323364 | ||
| 
						 | 
					3a4a550e06 | ||
| 
						 | 
					2fc6e07c0f | ||
| 
						 | 
					2d4db7f03f | ||
| 
						 | 
					9b87f4586e | ||
| 
						 | 
					9ff3af644c | ||
| 
						 | 
					ffb5f13711 | ||
| 
						 | 
					6dbc1e0d4a | ||
| 
						 | 
					c660c08b6f | ||
| 
						 | 
					2ce38167e1 | ||
| 
						 | 
					7cad52aaa0 | ||
| 
						 | 
					61f8cb7ff2 | ||
| 
						 | 
					f05ee369d5 | ||
| 
						 | 
					c3bfcf38a8 | ||
| 
						 | 
					1552efa493 | ||
| 
						 | 
					9bb1b80751 | ||
| 
						 | 
					40140ad487 | ||
| 
						 | 
					47e518d612 | ||
| 
						 | 
					4e4cf10334 | ||
| 
						 | 
					b02653eef9 | ||
| 
						 | 
					bfb2d1b25c | ||
| 
						 | 
					1042379d6d | ||
| 
						 | 
					240d07da28 | ||
| 
						 | 
					fb2247a58b | ||
| 
						 | 
					c04ee88f00 | ||
| 
						 | 
					1b44968284 | ||
| 
						 | 
					47bad7fac1 | ||
| 
						 | 
					7691d85225 | ||
| 
						 | 
					d0863b7406 | ||
| 
						 | 
					7afa0e0be7 | ||
| 
						 | 
					0c260bfef1 | ||
| 
						 | 
					312baf1bc2 | ||
| 
						 | 
					1dc0883059 | ||
| 
						 | 
					222b93c33f | ||
| 
						 | 
					db93479a51 | ||
| 
						 | 
					236d2b18e7 | ||
| 
						 | 
					08956770d2 | ||
| 
						 | 
					7a7c6baf55 | ||
| 
						 | 
					5bfb085021 | ||
| 
						 | 
					dfb9d6f967 | ||
| 
						 | 
					530cc00ae7 | ||
| 
						 | 
					a3557112a7 | ||
| 
						 | 
					3f34aafc6e | ||
| 
						 | 
					d6630b9f7a | ||
| 
						 | 
					3b7c109916 | ||
| 
						 | 
					c5fcc9aad6 | ||
| 
						 | 
					f4fc67f85c | ||
| 
						 | 
					bcc4ec968e | ||
| 
						 | 
					543b3b9160 | ||
| 
						 | 
					aac46b6daf | ||
| 
						 | 
					407514e4d7 | ||
| 
						 | 
					1491ccc594 | ||
| 
						 | 
					14b462fdc5 | ||
| 
						 | 
					1c64d5c704 | ||
| 
						 | 
					21ecc84514 | ||
| 
						 | 
					b7acfa6441 | ||
| 
						 | 
					de0391e6a4 | ||
| 
						 | 
					56e7068a8b | ||
| 
						 | 
					ed9140570e | ||
| 
						 | 
					ae5ecfe538 | ||
| 
						 | 
					fdd8cb8d27 | ||
| 
						 | 
					2c986b988f | ||
| 
						 | 
					46cf060788 | ||
| 
						 | 
					6ded77b938 | ||
| 
						 | 
					b730035db5 | ||
| 
						 | 
					38755e23a3 | ||
| 
						 | 
					94a24147c7 | ||
| 
						 | 
					5e08479a71 | ||
| 
						 | 
					bb24644744 | ||
| 
						 | 
					eb8fd1d1be | ||
| 
						 | 
					f349d3a624 | ||
| 
						 | 
					a0b236f4f7 | ||
| 
						 | 
					e5e1729baf | ||
| 
						 | 
					b035190e66 | ||
| 
						 | 
					427504e7ac | ||
| 
						 | 
					33c49d7c14 | ||
| 
						 | 
					c24b7f3bc4 | ||
| 
						 | 
					e76a450779 | ||
| 
						 | 
					c0fc0f4cb4 | ||
| 
						 | 
					5c597901ad | ||
| 
						 | 
					d3145d1b8b | ||
| 
						 | 
					1ac0f147b7 | ||
| 
						 | 
					fdb4a824fc | ||
| 
						 | 
					2449e92804 | ||
| 
						 | 
					7846ac218d | ||
| 
						 | 
					5b34c23069 | ||
| 
						 | 
					b6ee365761 | ||
| 
						 | 
					e4f5543f9d | ||
| 
						 | 
					a7f8debaa2 | ||
| 
						 | 
					34e8918003 | ||
| 
						 | 
					478be2d170 | ||
| 
						 | 
					8a78a93e0c | ||
| 
						 | 
					622eb0ea5b | ||
| 
						 | 
					455118131e | ||
| 
						 | 
					74ab42d100 | ||
| 
						 | 
					d294298c7e | ||
| 
						 | 
					4befe086c4 | ||
| 
						 | 
					98930be564 | ||
| 
						 | 
					16b81f0d91 | ||
| 
						 | 
					dfd678599f | ||
| 
						 | 
					6e4f80b8e2 | ||
| 
						 | 
					f704c4becf | ||
| 
						 | 
					9ab1889a3f | ||
| 
						 | 
					201e78d00a | ||
| 
						 | 
					d8cb698ae4 | ||
| 
						 | 
					876b2725c0 | ||
| 
						 | 
					c06a084fcf | ||
| 
						 | 
					cee38c53bc | ||
| 
						 | 
					81b009733e | ||
| 
						 | 
					035b387463 | ||
| 
						 | 
					158dec2b2a | ||
| 
						 | 
					752d5b47d2 | ||
| 
						 | 
					c15ff3f342 | ||
| 
						 | 
					7a7e7d1bc3 | ||
| 
						 | 
					6511ad348b | ||
| 
						 | 
					5b1eb2290a | ||
| 
						 | 
					00aed22f17 | ||
| 
						 | 
					15c1ad1bd9 | ||
| 
						 | 
					e1d552d9f7 | ||
| 
						 | 
					60749e0bef | ||
| 
						 | 
					bd01a45455 | ||
| 
						 | 
					54529c2425 | ||
| 
						 | 
					cf62a380bf | ||
| 
						 | 
					ab2a4e6e6a | ||
| 
						 | 
					7a9428a0e5 | ||
| 
						 | 
					da80f53deb | ||
| 
						 | 
					ae15c4159c | ||
| 
						 | 
					eaee97b2bf | ||
| 
						 | 
					94882bbc60 | ||
| 
						 | 
					1e02e69b4a | ||
| 
						 | 
					8277cc4d67 | ||
| 
						 | 
					29858d29d8 | ||
| 
						 | 
					984baf22f2 | ||
| 
						 | 
					cdd3862061 | ||
| 
						 | 
					c7cec23cf4 | ||
| 
						 | 
					55b6e2e082 | ||
| 
						 | 
					7d481fc8e9 | ||
| 
						 | 
					50a02de454 | ||
| 
						 | 
					1fcdf1af86 | ||
| 
						 | 
					c62a74fb5a | ||
| 
						 | 
					608ac42afe | ||
| 
						 | 
					99a3b1fe82 | ||
| 
						 | 
					ec00e62a54 | ||
| 
						 | 
					29060eb6ce | ||
| 
						 | 
					5301e8a86a | ||
| 
						 | 
					dc103ad41d | ||
| 
						 | 
					de91c11f87 | ||
| 
						 | 
					b6091762ac | ||
| 
						 | 
					4719557dae | ||
| 
						 | 
					f4a05d8fc9 | ||
| 
						 | 
					0ff66c2eaa | ||
| 
						 | 
					a40a438ec8 | ||
| 
						 | 
					718cd38098 | ||
| 
						 | 
					6b88dcd4aa | ||
| 
						 | 
					29b428608d | ||
| 
						 | 
					e487fc30f4 | ||
| 
						 | 
					578e5a5194 | ||
| 
						 | 
					fb08ec7144 | ||
| 
						 | 
					a51ffb6b73 | ||
| 
						 | 
					0ecdde94c2 | ||
| 
						 | 
					969260c9a9 | ||
| 
						 | 
					fe00191113 | ||
| 
						 | 
					60f0ea7dc2 | ||
| 
						 | 
					d6c8167076 | ||
| 
						 | 
					26b2aaa2db | ||
| 
						 | 
					0b45f63e61 | ||
| 
						 | 
					a790130414 | ||
| 
						 | 
					f36d5e5370 | ||
| 
						 | 
					5dbfe42493 | ||
| 
						 | 
					76f1fb641c | ||
| 
						 | 
					7b30b1ec86 | ||
| 
						 | 
					9e2a8f7db8 | ||
| 
						 | 
					d6a6d70c75 | ||
| 
						 | 
					da16460aad | ||
| 
						 | 
					444ede9949 | ||
| 
						 | 
					b25b0cf4d4 | ||
| 
						 | 
					f282240c0c | ||
| 
						 | 
					8d6e26a8d6 | ||
| 
						 | 
					62af029665 | ||
| 
						 | 
					e43f1a64c5 | ||
| 
						 | 
					f92c264826 | ||
| 
						 | 
					350e4e799d | ||
| 
						 | 
					6c6d8e006e | ||
| 
						 | 
					df3901571d | ||
| 
						 | 
					a4db88252e | ||
| 
						 | 
					48440ac59b | ||
| 
						 | 
					c3a55796c2 | ||
| 
						 | 
					33a659ab06 | ||
| 
						 | 
					5e8644d736 | ||
| 
						 | 
					14e7219160 | ||
| 
						 | 
					5f0246b07d | ||
| 
						 | 
					fa20de8904 | ||
| 
						 | 
					00d9dd7065 | ||
| 
						 | 
					0a3a0c1a34 | ||
| 
						 | 
					a9ed25e7fc | ||
| 
						 | 
					e577aa3d08 | ||
| 
						 | 
					8bcbf2f86c | ||
| 
						 | 
					1e9cb3ea2a | ||
| 
						 | 
					7e24f71432 | ||
| 
						 | 
					4dad0e5b8c | ||
| 
						 | 
					9dc214b3e7 | ||
| 
						 | 
					7700a6525e | ||
| 
						 | 
					28150c48f7 | ||
| 
						 | 
					1f6916b5d0 | ||
| 
						 | 
					36c36b9afb | ||
| 
						 | 
					6402efe196 | ||
| 
						 | 
					00a32c887c | ||
| 
						 | 
					c92bf0f9a9 | ||
| 
						 | 
					44027f6bd2 | ||
| 
						 | 
					3fec7a0946 | ||
| 
						 | 
					47d4322965 | ||
| 
						 | 
					7ae71b3d8f | ||
| 
						 | 
					a73800ae2d | ||
| 
						 | 
					b124998639 | ||
| 
						 | 
					238d03677a | ||
| 
						 | 
					0f3babc8e9 | ||
| 
						 | 
					55ff827b50 | ||
| 
						 | 
					0daf65ef73 | ||
| 
						 | 
					2eab7cfc48 | ||
| 
						 | 
					a691993a86 | ||
| 
						 | 
					d3e83afb0a | ||
| 
						 | 
					129e4bc0ac | ||
| 
						 | 
					faec393b8d | ||
| 
						 | 
					a7d39be2b5 | ||
| 
						 | 
					8892637796 | ||
| 
						 | 
					00a9f98ee0 | ||
| 
						 | 
					4b8a9ece16 | ||
| 
						 | 
					fc8645245a | ||
| 
						 | 
					2d4553adf2 | ||
| 
						 | 
					5f02295a63 | ||
| 
						 | 
					8b1dd440ee | ||
| 
						 | 
					77a1a6a43d | ||
| 
						 | 
					e9c8125828 | ||
| 
						 | 
					3212af2fb4 | ||
| 
						 | 
					52dbe1469d | ||
| 
						 | 
					837ee6bcc6 | ||
| 
						 | 
					8a85be8f00 | ||
| 
						 | 
					3455d025a2 | ||
| 
						 | 
					d2f4502e74 | ||
| 
						 | 
					2144fab671 | ||
| 
						 | 
					e8c90833e8 | ||
| 
						 | 
					d567c86818 | ||
| 
						 | 
					931ba0fa8d | ||
| 
						 | 
					8da7cfd032 | ||
| 
						 | 
					3fa1063b74 | ||
| 
						 | 
					e2d5319441 | ||
| 
						 | 
					85a7719f39 | ||
| 
						 | 
					490a05d01c | ||
| 
						 | 
					b54197c2e1 | ||
| 
						 | 
					86dbeab484 | ||
| 
						 | 
					15da337d8a | ||
| 
						 | 
					992e064952 | ||
| 
						 | 
					26ff5dbd79 | ||
| 
						 | 
					473ecd6b3a | ||
| 
						 | 
					e5b75b86fc | ||
| 
						 | 
					d826c3e48c | ||
| 
						 | 
					f10223b8eb | ||
| 
						 | 
					7e28d2d5dc | ||
| 
						 | 
					d8aa36d637 | ||
| 
						 | 
					9deecf345e | ||
| 
						 | 
					dd17bc8f92 | ||
| 
						 | 
					f11195b104 | ||
| 
						 | 
					74f688c5d1 | ||
| 
						 | 
					65b08749cf | ||
| 
						 | 
					f7b69ebfae | ||
| 
						 | 
					371371b633 | ||
| 
						 | 
					d423559605 | ||
| 
						 | 
					f3d309441a | ||
| 
						 | 
					fabb12370f | ||
| 
						 | 
					5af2aab0bf | ||
| 
						 | 
					dd8c31ebda | ||
| 
						 | 
					4d402ecc14 | ||
| 
						 | 
					b660c7a0f7 | ||
| 
						 | 
					20c306fc6d | ||
| 
						 | 
					2a86a5de49 | ||
| 
						 | 
					7ba17b2bee | ||
| 
						 | 
					31067e703d | ||
| 
						 | 
					12e32ffc24 | ||
| 
						 | 
					b4122165eb | ||
| 
						 | 
					c17f8f2421 | ||
| 
						 | 
					e2e5c3a1cc | ||
| 
						 | 
					8d532c6298 | ||
| 
						 | 
					50f0929ae8 | ||
| 
						 | 
					62c59f6087 | ||
| 
						 | 
					f0aab5a724 | ||
| 
						 | 
					27bf526b85 | ||
| 
						 | 
					bb15be7198 | ||
| 
						 | 
					fe86288e76 | ||
| 
						 | 
					fc4f288ce1 | ||
| 
						 | 
					7e20f2f5f2 | ||
| 
						 | 
					720cb52cf3 | ||
| 
						 | 
					d74c329404 | ||
| 
						 | 
					b8fec13607 | ||
| 
						 | 
					8b8e1de19a | ||
| 
						 | 
					38d6f5ad0c | ||
| 
						 | 
					4e42a2aa17 | ||
| 
						 | 
					8491b51264 | ||
| 
						 | 
					c164df664d | ||
| 
						 | 
					fa592c3a94 | ||
| 
						 | 
					cb96ce0ad2 | ||
| 
						 | 
					938a444edf | ||
| 
						 | 
					995b506920 | ||
| 
						 | 
					ba466fe572 | ||
| 
						 | 
					c2e40852b6 | ||
| 
						 | 
					a1c574c502 | ||
| 
						 | 
					9b8fd192d0 | ||
| 
						 | 
					c37460ad3d | ||
| 
						 | 
					d1e708b2cb | ||
| 
						 | 
					8745316574 | ||
| 
						 | 
					ec5b8790ec | ||
| 
						 | 
					d9105dfe8a | ||
| 
						 | 
					386f66d7e2 | ||
| 
						 | 
					fa5d2af7ea | ||
| 
						 | 
					e0d9f28674 | ||
| 
						 | 
					6fe80f02ce | ||
| 
						 | 
					cdfee65492 | ||
| 
						 | 
					44016ac371 | ||
| 
						 | 
					58fa4a5955 | ||
| 
						 | 
					cd9c5b7967 | ||
| 
						 | 
					141c863f54 | ||
| 
						 | 
					24743243a8 | ||
| 
						 | 
					c2848e73af | ||
| 
						 | 
					57d102425f | ||
| 
						 | 
					68a40b5cba | ||
| 
						 | 
					75ed7287d1 | ||
| 
						 | 
					8797d18587 | ||
| 
						 | 
					a567f1a8d1 | ||
| 
						 | 
					945ec9b0b1 | ||
| 
						 | 
					adc575dcdf | ||
| 
						 | 
					e593861d7f | ||
| 
						 | 
					36c0941dda | ||
| 
						 | 
					f1a6e1ead8 | ||
| 
						 | 
					d7f088bef0 | ||
| 
						 | 
					f489ea871d | ||
| 
						 | 
					7ae08dcf4f | ||
| 
						 | 
					de90df6a63 | ||
| 
						 | 
					addb3101f2 | ||
| 
						 | 
					e162a06a1a | ||
| 
						 | 
					b9abc7c3ef | ||
| 
						 | 
					c76bf0bfab | ||
| 
						 | 
					e7b42a66b1 | ||
| 
						 | 
					bbb539ef56 | ||
| 
						 | 
					dbb5f9b636 | ||
| 
						 | 
					1979cb8104 | ||
| 
						 | 
					91e94f9c0d | ||
| 
						 | 
					42cbc7cf0c | ||
| 
						 | 
					595553ae0b | ||
| 
						 | 
					e03b665dd1 | ||
| 
						 | 
					d0441219cb | ||
| 
						 | 
					ac0cce9d6f | ||
| 
						 | 
					1ad3a69d8f | ||
| 
						 | 
					d86a386ad8 | ||
| 
						 | 
					d66768ac55 | ||
| 
						 | 
					567ceac52f | ||
| 
						 | 
					47a0ef64d8 | ||
| 
						 | 
					5f649a7613 | ||
| 
						 | 
					d4b712db86 | ||
| 
						 | 
					339e1f4557 | ||
| 
						 | 
					da42214e86 | ||
| 
						 | 
					c5ebf9c12e | ||
| 
						 | 
					6b201a78e0 | ||
| 
						 | 
					d2d8d38db4 | ||
| 
						 | 
					0dee417e1d | ||
| 
						 | 
					a0056665ae | ||
| 
						 | 
					9b245d8113 | ||
| 
						 | 
					d098b19d4d | ||
| 
						 | 
					3aaa326bab | ||
| 
						 | 
					1a25c3ade9 | ||
| 
						 | 
					881c2a2086 | ||
| 
						 | 
					a33f4df47e | ||
| 
						 | 
					4748c6c4d7 | ||
| 
						 | 
					18af9297ea | ||
| 
						 | 
					c138d87c30 | ||
| 
						 | 
					709c5378f8 | ||
| 
						 | 
					8e9a0fbe99 | ||
| 
						 | 
					117af5f59b | ||
| 
						 | 
					4dccb636e2 | ||
| 
						 | 
					c40788c5b2 | ||
| 
						 | 
					ca27a66593 | ||
| 
						 | 
					713a076df3 | ||
| 
						 | 
					abaa37c51f | ||
| 
						 | 
					4a2fb0a871 | ||
| 
						 | 
					5ddf25c66a | ||
| 
						 | 
					ff9f90c7e6 | ||
| 
						 | 
					d48d48cafb | ||
| 
						 | 
					2bb9bc624d | ||
| 
						 | 
					069eb707f0 | ||
| 
						 | 
					c1cae4e9ba | ||
| 
						 | 
					f5efccc8d6 | ||
| 
						 | 
					f6e4fefd66 | ||
| 
						 | 
					66bab0ec49 | ||
| 
						 | 
					2b501953ce | ||
| 
						 | 
					150d9c9961 | ||
| 
						 | 
					e5b62ecc0b | ||
| 
						 | 
					b621d3cf1c | ||
| 
						 | 
					9abff2143d | ||
| 
						 | 
					5d224583a1 | ||
| 
						 | 
					fdc5890b09 | ||
| 
						 | 
					f850409d45 | ||
| 
						 | 
					d58748ac66 | ||
| 
						 | 
					4a01752467 | ||
| 
						 | 
					53f9d03e30 | ||
| 
						 | 
					776b6965fb | ||
| 
						 | 
					aeeef43f45 | ||
| 
						 | 
					b60b7fd201 | ||
| 
						 | 
					f918792bb6 | ||
| 
						 | 
					abb3ba2c6a | ||
| 
						 | 
					566e05bb33 | ||
| 
						 | 
					6380440c00 | ||
| 
						 | 
					f8e6fb5674 | ||
| 
						 | 
					ac83dcc3b3 | ||
| 
						 | 
					b746f488b0 | ||
| 
						 | 
					e5a7a5b0e5 | ||
| 
						 | 
					f8aae8f544 | ||
| 
						 | 
					3f8ad111b2 | ||
| 
						 | 
					81176f8181 | ||
| 
						 | 
					cdc8e43a79 | ||
| 
						 | 
					ae69444b3b | ||
| 
						 | 
					28257e906b | ||
| 
						 | 
					7a9bb6e43d | ||
| 
						 | 
					507f171b63 | ||
| 
						 | 
					1dadfb6d15 | ||
| 
						 | 
					2dc529b19f | ||
| 
						 | 
					a5dd7e9063 | ||
| 
						 | 
					eae892c9b1 | ||
| 
						 | 
					71e81ccad3 | ||
| 
						 | 
					eeaa766456 | ||
| 
						 | 
					17627bab9f | ||
| 
						 | 
					7327906fde | ||
| 
						 | 
					3c3dfcd77d | ||
| 
						 | 
					0adc3bd9ab | ||
| 
						 | 
					0c3e5cd755 | ||
| 
						 | 
					34714be205 | ||
| 
						 | 
					77cf90cfb0 | ||
| 
						 | 
					359f5511d7 | ||
| 
						 | 
					9043e29b18 | ||
| 
						 | 
					d59b8e5220 | ||
| 
						 | 
					ebbeb1a058 | ||
| 
						 | 
					afeb4d50a5 | ||
| 
						 | 
					7fb4f43469 | ||
| 
						 | 
					ca0cdbae5a | ||
| 
						 | 
					879b173ae4 | ||
| 
						 | 
					58b341ceec | ||
| 
						 | 
					98981183d8 | ||
| 
						 | 
					2747d6bd2a | ||
| 
						 | 
					e76df47af0 | ||
| 
						 | 
					04fbf58c18 | ||
| 
						 | 
					10dcb079f7 | ||
| 
						 | 
					8da7856780 | ||
| 
						 | 
					78a6bcd553 | ||
| 
						 | 
					66dd76be8f | ||
| 
						 | 
					2174194bbd | ||
| 
						 | 
					d58d11fa29 | ||
| 
						 | 
					20bc40ac18 | ||
| 
						 | 
					7881e4212f | ||
| 
						 | 
					aaca4e7cd6 | ||
| 
						 | 
					3250583253 | ||
| 
						 | 
					be4c952542 | ||
| 
						 | 
					5656ad7f6c | ||
| 
						 | 
					ed3ab3d31d | ||
| 
						 | 
					7c0f91b7f5 | ||
| 
						 | 
					8619b3a79b | ||
| 
						 | 
					f71e60619d | ||
| 
						 | 
					3274a72cda | ||
| 
						 | 
					c285171500 | ||
| 
						 | 
					16156b8e27 | ||
| 
						 | 
					56f34dd385 | ||
| 
						 | 
					4d910a33fc | ||
| 
						 | 
					e0ec7f5c67 | ||
| 
						 | 
					886896137c | ||
| 
						 | 
					e0a91cb479 | ||
| 
						 | 
					bc51f8c734 | ||
| 
						 | 
					a396e42fa8 | ||
| 
						 | 
					009c491b9b | ||
| 
						 | 
					9667d88e60 | ||
| 
						 | 
					de68843eda | ||
| 
						 | 
					cb52909ded | ||
| 
						 | 
					52c9bb06c7 | ||
| 
						 | 
					2957ec5b57 | ||
| 
						 | 
					f384aae3a4 | ||
| 
						 | 
					3a3899fda1 | ||
| 
						 | 
					9cba48fbc9 | ||
| 
						 | 
					86fbcede24 | ||
| 
						 | 
					6e7ba4a9ca | ||
| 
						 | 
					8f02d15fb9 | ||
| 
						 | 
					cecae08c13 | ||
| 
						 | 
					9152479981 | ||
| 
						 | 
					2814206ffa | ||
| 
						 | 
					a5c839da3a | ||
| 
						 | 
					e3c3db72e2 | ||
| 
						 | 
					1318d89456 | ||
| 
						 | 
					68f97794bd | ||
| 
						 | 
					9bd351abae | ||
| 
						 | 
					60a6d0876e | ||
| 
						 | 
					6b11b4b581 | ||
| 
						 | 
					58cfb44e52 | ||
| 
						 | 
					df3fb1c6fa | ||
| 
						 | 
					71bda8b99d | ||
| 
						 | 
					331e128116 | ||
| 
						 | 
					69de36e70f | ||
| 
						 | 
					b9cbea40e7 | ||
| 
						 | 
					7654d547d7 | ||
| 
						 | 
					995e9ffd47 | ||
| 
						 | 
					11e6109a4a | ||
| 
						 | 
					9e79025aef | ||
| 
						 | 
					c1ea6cd689 | ||
| 
						 | 
					4322ef4b37 | ||
| 
						 | 
					e56d9e3fb0 | ||
| 
						 | 
					833170d18c | ||
| 
						 | 
					9ef8c5739b | ||
| 
						 | 
					b8cdd9e090 | ||
| 
						 | 
					cad4a8da0d | ||
| 
						 | 
					432adade05 | ||
| 
						 | 
					e9baa3543e | ||
| 
						 | 
					d5c8af57f3 | ||
| 
						 | 
					deeadb6648 | ||
| 
						 | 
					f8f0ee6882 | ||
| 
						 | 
					76be244662 | ||
| 
						 | 
					d97a151695 | ||
| 
						 | 
					c9dfc76155 | ||
| 
						 | 
					506023c898 | ||
| 
						 | 
					0e9245ba28 | ||
| 
						 | 
					091811a4d6 | ||
| 
						 | 
					18f4bccb37 | ||
| 
						 | 
					37af4964cc | ||
| 
						 | 
					f248d99d7a | ||
| 
						 | 
					ca80d88a74 | ||
| 
						 | 
					56765d966f | ||
| 
						 | 
					d169afcafa | ||
| 
						 | 
					1f4b738639 | ||
| 
						 | 
					981668a56b | ||
| 
						 | 
					b55257d0d3 | ||
| 
						 | 
					ae6f746cf2 | ||
| 
						 | 
					68e7b7a1d4 | ||
| 
						 | 
					7b7071cf6d | ||
| 
						 | 
					b1e908e6b6 | ||
| 
						 | 
					f91050a7c7 | ||
| 
						 | 
					e3f9aa526b | ||
| 
						 | 
					7db0c756d6 | ||
| 
						 | 
					c1bd844673 | ||
| 
						 | 
					914354adb2 | ||
| 
						 | 
					2ac4fb92c2 | ||
| 
						 | 
					0c1dd954eb | ||
| 
						 | 
					116767b8b8 | ||
| 
						 | 
					3eb5394474 | ||
| 
						 | 
					953f59195f | ||
| 
						 | 
					309f3998d7 | ||
| 
						 | 
					887c4013a0 | ||
| 
						 | 
					f232ddcdcb | ||
| 
						 | 
					bd0424ee7d | ||
| 
						 | 
					62824e1537 | ||
| 
						 | 
					36e7d3133b | ||
| 
						 | 
					20c69951ab | ||
| 
						 | 
					d9d8cdf043 | ||
| 
						 | 
					29fba02b4a | ||
| 
						 | 
					1954718e3f | ||
| 
						 | 
					6712cae260 | ||
| 
						 | 
					6ddf213d5d | ||
| 
						 | 
					b700a17efa | ||
| 
						 | 
					bedec591a2 | ||
| 
						 | 
					2c4568119c | ||
| 
						 | 
					efd8e2f343 | ||
| 
						 | 
					f29793c868 | ||
| 
						 | 
					e8bbb15f7e | ||
| 
						 | 
					fdb2e5eb7b | ||
| 
						 | 
					da58e7edb4 | ||
| 
						 | 
					e81b8ba479 | ||
| 
						 | 
					cfbe553724 | ||
| 
						 | 
					17634e05d4 | ||
| 
						 | 
					7d216d364e | ||
| 
						 | 
					9e16f6e88c | ||
| 
						 | 
					f23e8b3d1c | ||
| 
						 | 
					04d988357f | ||
| 
						 | 
					14ed950dad | ||
| 
						 | 
					f107c34f82 | ||
| 
						 | 
					9b5bfd33ef | ||
| 
						 | 
					8fc6c79b6d | ||
| 
						 | 
					2d838b9f09 | ||
| 
						 | 
					c1649507e9 | ||
| 
						 | 
					a246a6390f | ||
| 
						 | 
					6a9317238a | ||
| 
						 | 
					0a45542477 | ||
| 
						 | 
					03be66c857 | ||
| 
						 | 
					777c371be9 | ||
| 
						 | 
					d8bb202fbd | ||
| 
						 | 
					f0f9167682 | ||
| 
						 | 
					6fbde2ea22 | ||
| 
						 | 
					2378f459de | ||
| 
						 | 
					1b4ae67f51 | ||
| 
						 | 
					ec67c56cc7 | ||
| 
						 | 
					393c1dba75 | ||
| 
						 | 
					5b76314ef4 | ||
| 
						 | 
					0ca2053a27 | ||
| 
						 | 
					c2c209d19a | ||
| 
						 | 
					de5137ff28 | ||
| 
						 | 
					ffb4b0fade | ||
| 
						 | 
					bfd03680cc | ||
| 
						 | 
					82280b673e | ||
| 
						 | 
					27dbd28c5c | ||
| 
						 | 
					4d55985151 | ||
| 
						 | 
					2635e545bf | ||
| 
						 | 
					e8a3a40691 | ||
| 
						 | 
					3a7d7778a0 | ||
| 
						 | 
					437c7585cc | ||
| 
						 | 
					507766bff6 | ||
| 
						 | 
					74d11991ab | ||
| 
						 | 
					217a1e92c6 | ||
| 
						 | 
					83bc7b831d | ||
| 
						 | 
					1071b2ee69 | ||
| 
						 | 
					3753ac5ee6 | ||
| 
						 | 
					6120c5e4a8 | ||
| 
						 | 
					b252a80b7e | ||
| 
						 | 
					d67182f411 | ||
| 
						 | 
					fec8f23ad4 | ||
| 
						 | 
					ab7f1cc3be | ||
| 
						 | 
					3f65468299 | ||
| 
						 | 
					333d0c5709 | ||
| 
						 | 
					8c47939ad2 | ||
| 
						 | 
					664d24f258 | ||
| 
						 | 
					f8adb23062 | ||
| 
						 | 
					a2a4b1d170 | ||
| 
						 | 
					aa6f26f9fb | ||
| 
						 | 
					fd2ddf8b50 | ||
| 
						 | 
					0408c86065 | ||
| 
						 | 
					e1555fc335 | ||
| 
						 | 
					75141bdb65 | ||
| 
						 | 
					3951c8863f | ||
| 
						 | 
					bdc1579a9c | ||
| 
						 | 
					8e1c6601af | ||
| 
						 | 
					1c634bd736 | ||
| 
						 | 
					2868191440 | ||
| 
						 | 
					a567adcce5 | ||
| 
						 | 
					5db1ee8fc4 | ||
| 
						 | 
					a6729d9454 | ||
| 
						 | 
					57f7039795 | ||
| 
						 | 
					5c3775c6ee | ||
| 
						 | 
					1cec9b70a2 | ||
| 
						 | 
					eca34c37d9 | ||
| 
						 | 
					58acfc4042 | ||
| 
						 | 
					feab865203 | ||
| 
						 | 
					754f09cdad | ||
| 
						 | 
					fac354623b | ||
| 
						 | 
					5967e6c3e4 | ||
| 
						 | 
					174f316a62 | ||
| 
						 | 
					c9651a012e | ||
| 
						 | 
					3130d7db33 | ||
| 
						 | 
					30af079f99 | ||
| 
						 | 
					3ccae8efee | ||
| 
						 | 
					5b946cb261 | ||
| 
						 | 
					885045ca55 | ||
| 
						 | 
					01d728ac6b | ||
| 
						 | 
					f9e670f464 | ||
| 
						 | 
					868e1677e3 | ||
| 
						 | 
					84407de2aa | ||
| 
						 | 
					7011b04cb2 | ||
| 
						 | 
					ede4594dd9 | ||
| 
						 | 
					3a7f02352a | ||
| 
						 | 
					e2cb4ed031 | ||
| 
						 | 
					24a1fe55bb | ||
| 
						 | 
					66dddd9799 | ||
| 
						 | 
					b3b2411cb7 | ||
| 
						 | 
					eb71d82ecc | ||
| 
						 | 
					298fc043ff | ||
| 
						 | 
					63f678210a | ||
| 
						 | 
					7a38246284 | ||
| 
						 | 
					5390903a22 | ||
| 
						 | 
					4b9e977fdc | ||
| 
						 | 
					6a9a681559 | ||
| 
						 | 
					a6e919767c | ||
| 
						 | 
					290e9ac767 | ||
| 
						 | 
					cd8ac36e9b | ||
| 
						 | 
					3068969b51 | ||
| 
						 | 
					e947e72169 | ||
| 
						 | 
					86a53dbfc9 | ||
| 
						 | 
					aa5c5c4553 | ||
| 
						 | 
					1f93237ee3 | ||
| 
						 | 
					3d248e9ad2 | ||
| 
						 | 
					ec9aedea0b | ||
| 
						 | 
					33021311b2 | ||
| 
						 | 
					2a3d9e080a | ||
| 
						 | 
					b528d0b1db | ||
| 
						 | 
					a429e9c3f9 | ||
| 
						 | 
					b90d2c1c90 | ||
| 
						 | 
					27dc7ef79a | ||
| 
						 | 
					76441b1d5f | ||
| 
						 | 
					d2e3577784 | ||
| 
						 | 
					4a0344182f | ||
| 
						 | 
					ddc496cdaa | ||
| 
						 | 
					746981611b | ||
| 
						 | 
					c1beefce3a | ||
| 
						 | 
					1667cc8a8d | ||
| 
						 | 
					0aea46a643 | ||
| 
						 | 
					820ab2210e | ||
| 
						 | 
					f40e8a57b4 | ||
| 
						 | 
					005357e821 | ||
| 
						 | 
					5fcfc95280 | ||
| 
						 | 
					dfc9e912b5 | ||
| 
						 | 
					a6385288aa | ||
| 
						 | 
					2f6457b3f7 | ||
| 
						 | 
					ba2f0f753b | ||
| 
						 | 
					38554dbcbe | ||
| 
						 | 
					fe98fde338 | ||
| 
						 | 
					c3ea69f26a | ||
| 
						 | 
					367e1f047c | ||
| 
						 | 
					7db1ed695c | ||
| 
						 | 
					26b4615262 | ||
| 
						 | 
					c4ccf53aad | ||
| 
						 | 
					8fe9163e6b | 
@@ -13,7 +13,6 @@ gtopConf.sh
 | 
			
		||||
i386-bsdi
 | 
			
		||||
i686-pc-linux-gnu
 | 
			
		||||
intl
 | 
			
		||||
libgtop-0.01.tar.gz
 | 
			
		||||
libgtop-mirror.sh.swp
 | 
			
		||||
libgtopConf.sh
 | 
			
		||||
libtool
 | 
			
		||||
@@ -21,6 +20,7 @@ ltconfig
 | 
			
		||||
ltmain.sh
 | 
			
		||||
macros
 | 
			
		||||
stamp-h
 | 
			
		||||
stamp-h.in
 | 
			
		||||
sun4
 | 
			
		||||
sun4sol2
 | 
			
		||||
support
 | 
			
		||||
@@ -30,5 +30,6 @@ i686-pc-linux-gnu-linux
 | 
			
		||||
libgtop-config
 | 
			
		||||
ABOUT-NLS
 | 
			
		||||
libgtop.spec
 | 
			
		||||
libgtop-0.99.*.tar.gz
 | 
			
		||||
libgtop-0.99.*
 | 
			
		||||
libgtop*.tar.gz
 | 
			
		||||
*-debstamp
 | 
			
		||||
libgtop*.pc
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								AUTHORS
									
									
									
									
									
								
							@@ -1,2 +1,2 @@
 | 
			
		||||
Martin Baulig (martin@home-of-linux.org)
 | 
			
		||||
Josh Sled <jsled@scam.XCF.Berkeley.EDU>
 | 
			
		||||
Drazen Kacar (dave@srce.hr)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										506
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										506
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,3 +1,509 @@
 | 
			
		||||
2003-12-19  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* configure.in: 2.0.8 (huh?)
 | 
			
		||||
 | 
			
		||||
2003-11-04  Žygimantas Beručka  <uid0@tuxfamily.org>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "lt" to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
2003-08-09  Dafydd Harries  <daf@parnassus.ath.cx>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "cy" (Welsh) to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2003-08-03  Malcolm Tredinnick <malcolm@commsecure.com.au>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Change subdirectory build order so that
 | 
			
		||||
	'distclean' target work (and other targets remain working).
 | 
			
		||||
	Fixes bug #84622.
 | 
			
		||||
 | 
			
		||||
2003-06-10  Kjartan Maraas  <set EMAIL_ADDRESS environment variable>
 | 
			
		||||
 | 
			
		||||
	* libgtop-2.0.pc.in: Fix missing build flags. Patch from
 | 
			
		||||
	Julio Merino. Fixes bug #103086.
 | 
			
		||||
	* sysdeps/linux/mem.c: (glibtop_get_mem_s): Fix memory calculation
 | 
			
		||||
	under Linux. Patch from <rwahl@gmx.de>. Fixes bug #68626.
 | 
			
		||||
 | 
			
		||||
2003-06-10  Kjartan Maraas  <kmaraas@gnome.org>
 | 
			
		||||
 | 
			
		||||
	* sysdeps/freebsd/glibtop_machine.h:
 | 
			
		||||
	* sysdeps/kernel/glibtop_private.h:
 | 
			
		||||
	* sysdeps/solaris/glibtop_machine.h:
 | 
			
		||||
	* sysdeps/solaris/glibtop_private.h: Comment out text after
 | 
			
		||||
	#endif to make some compilers happy.
 | 
			
		||||
 | 
			
		||||
2003-05-11  Andrew Sobala  <aes@gnome.org>
 | 
			
		||||
 | 
			
		||||
	* configure.in: release 2.0.2
 | 
			
		||||
 | 
			
		||||
2003-05-10  Danilo Šegan  <dsegan@gmx.net>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2003-04-17  Abel Cheung  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "mk" to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2003-03-13  Christian Rose  <menthos@menthos.com>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "ml" to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2003-03-10  Roozbeh Pournader  <roozbeh@sharif.edu>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "fa" to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2003-03-08  Gil "Dolfin" Osher <dolfin@rpg.org.il>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added he to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2003-02-25  T?µivo Leedj?¤rv  <toivo@linux.ee>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added et to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2003-02-16  Mohammad DAMT  <mdamt@bisnisweb.com>
 | 
			
		||||
 | 
			
		||||
	* po/id.po: Added Indonesian translation
 | 
			
		||||
	* configure.in: Added "id" to ALL_LINGUAS
 | 
			
		||||
 | 
			
		||||
2003-01-31  James Henstridge  <james@daa.com.au>
 | 
			
		||||
 | 
			
		||||
	* acinclude.m4 (GNOME_SUPPORT_CHECKS): use AC_LIBOBJ() to set
 | 
			
		||||
	LIBOBJS variable, since newer autoconf's barf on direct access.
 | 
			
		||||
	This also takes care of setting LTLIBOBJS for us.
 | 
			
		||||
 | 
			
		||||
2003-01-29  Abel Cheung  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added ar to ALL_LINGUAS
 | 
			
		||||
 | 
			
		||||
2003-01-25  Alessio Frusciante  <algol@firenze.linux.it>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "it" (Italian) to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2003-01-23  Marius Andreiana <marius galuna.ro>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "ro" to ALL_LINGUAS
 | 
			
		||||
 | 
			
		||||
2003-01-22  Christian Rose  <menthos@menthos.com>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "mn" to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2003-01-16  Daniel Yacob <locales@geez.org>
 | 
			
		||||
 | 
			
		||||
	* configure.in: added am to ALL_LINGUAS
 | 
			
		||||
	
 | 
			
		||||
2003-01-12  Kevin Vandersloot <kfv101@psu.edu>
 | 
			
		||||
 | 
			
		||||
	* configure.in: release 2.0.1
 | 
			
		||||
 | 
			
		||||
2002-12-30  Bastien Nocera <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	* Added sysdeps/aix directory that was missing
 | 
			
		||||
 | 
			
		||||
2002-10-08  Laurent Vivier <Laurent.Vivier@bull.net>
 | 
			
		||||
 | 
			
		||||
	* Framework for AIX support
 | 
			
		||||
 | 
			
		||||
2002-08-07  Vincent Berger <Vincent.Berger@ext.bull.net> 
 | 
			
		||||
 | 
			
		||||
	* support/: Add alloca management for AIX
 | 
			
		||||
	* configure.in: correct checking for nm
 | 
			
		||||
 | 
			
		||||
2002-11-03  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added Belarusian to ALL_LINGUAS
 | 
			
		||||
 | 
			
		||||
2002-09-26  Stanislav Brabec  <sbrabec@suse.cz>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added cs to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2002-09-26  jacob berkman  <jacob@ximian.com>
 | 
			
		||||
 | 
			
		||||
	* configure.in (ALL_LINGUAS): remove cs until the file actually
 | 
			
		||||
	gets added
 | 
			
		||||
 | 
			
		||||
2002-09-26  Stanislav Brabec  <sbrabec@suse.cz>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added cs to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2002-08-20  Peteris Krisjanis <peteris.krisjanis@os.lv>
 | 
			
		||||
 | 
			
		||||
	* configure.in: (ALL_LINGUAS) Added Latvian (lv).
 | 
			
		||||
 | 
			
		||||
2002-06-25  Yanko Kaneti <yaneti@declera.com>
 | 
			
		||||
 | 
			
		||||
	* configure.in: (ALL_LINGUAS) Added Bulgarian (bg).
 | 
			
		||||
 | 
			
		||||
2002-05-10  Kevin Vandersloot <kfv101@psu.edu>
 | 
			
		||||
 | 
			
		||||
	* configure.in: release 2.0.0
 | 
			
		||||
 | 
			
		||||
2002-05-28  Carlos Perello Marin <carlos@gnome-db.org>
 | 
			
		||||
 | 
			
		||||
	* configure.in (ALL_LINGUAS): Removed all es_* and added only es_ES.
 | 
			
		||||
 | 
			
		||||
2002-05-08  Pablo Saratxaga  <pablo@mandrakesoft.com>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added Vietnamese (vi) to ALL_LINGUAS
 | 
			
		||||
 | 
			
		||||
2002-03-12  James Henstridge  <james@daa.com.au>
 | 
			
		||||
 | 
			
		||||
	* acinclude.m4 (LIBGTOP_HEACKER_TESTS): AM_CONDITIONAL()
 | 
			
		||||
	statements can't be conditionally executed (automake compat fix).
 | 
			
		||||
	(GNOME_LIBGTOP_SYSDEPS): move the conditional here so that it is
 | 
			
		||||
	always executed.
 | 
			
		||||
 | 
			
		||||
2002-02-10  Kevin Vandersloot <kfv101@psu.edu>
 | 
			
		||||
 | 
			
		||||
	* configure.in: bump version
 | 
			
		||||
 | 
			
		||||
	* release 1.90.2
 | 
			
		||||
 | 
			
		||||
2002-02-09  Bastien Nocera  <hadess@hadess.net>
 | 
			
		||||
 | 
			
		||||
	reviewed by: Kevin Vandersloot <kfv101@psu.edu>
 | 
			
		||||
 | 
			
		||||
	* configure.in: remove need for dc, and clean up
 | 
			
		||||
	* stamp-h.in, .cvsignore: remove
 | 
			
		||||
 | 
			
		||||
2002-02-05  Abel Cheung  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* configure.in (ALL_LINGUAS): zh_CN.GB2312 -> zh_CN
 | 
			
		||||
 | 
			
		||||
2001-01-14  Hasbullah bin Pit <sebol@ikhlas.com>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added ms in ALL_LINGUAS.
 | 
			
		||||
	* po/ms.po: Added Malay Translation.
 | 
			
		||||
	* po/.cvsignore: Added 'libgtop-2.0.pot'.
 | 
			
		||||
 | 
			
		||||
2001-01-14  Abel Cheung  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Sync'ed ALL_LINGUAS with files in po directory,
 | 
			
		||||
	and renamed GETTEXT_PACKAGE to avoid conflict with libgtop 1.0.x.
 | 
			
		||||
 | 
			
		||||
2002-01-10  Kevin Vandersloot <kfv101@psu.edu>
 | 
			
		||||
 | 
			
		||||
	* acininclude.m4: add back the support stuf but make it really
 | 
			
		||||
	work
 | 
			
		||||
 | 
			
		||||
	* configure.in: bump version number, add back GNOME_SUPPORT 
 | 
			
		||||
	check since that was causing a build failure
 | 
			
		||||
 | 
			
		||||
	* release 1.90.1
 | 
			
		||||
 | 
			
		||||
2002-01-09  Kevin Vandersloot <kfv101@psu.edu>
 | 
			
		||||
 | 
			
		||||
	* acinclude.m4: remove gnome support check. Fixes the build
 | 
			
		||||
	for those with automake < 1.4p5.
 | 
			
		||||
 | 
			
		||||
	* configure.in: remove check for GNOME_SUPPORT
 | 
			
		||||
 | 
			
		||||
2001-14-27  Miles Lane <miles@megapathdsl.net>
 | 
			
		||||
 | 
			
		||||
	* acconfig.h:  Added "#undef HAVE_GETTEXT" entry.
 | 
			
		||||
	* LIBGTOP_VERSION:  Removed file.
 | 
			
		||||
	* configure.in:  added glib-gettextize support and
 | 
			
		||||
	  moved in the *VERSION* stuff from LIBGTOP_VERSION.
 | 
			
		||||
 | 
			
		||||
2001-11-27  Kevin Vandersloot <kfv101@psu.edu>
 | 
			
		||||
 | 
			
		||||
	* acinclude.m4: copy some of the macros that were formerly
 | 
			
		||||
	in gnome-macros
 | 
			
		||||
 | 
			
		||||
	* configure.in, sysdeps/Makefile.am: comment out guile
 | 
			
		||||
	support for now.
 | 
			
		||||
 | 
			
		||||
	* release 1.90.0
 | 
			
		||||
 | 
			
		||||
2001-11-26  Kevin Vandersloot <kfv101@psu.edu>
 | 
			
		||||
 | 
			
		||||
	* src/daemon/gnuserv.c:  Apply patch fixing security issue from
 | 
			
		||||
        intexxia labs - #1048-261101
 | 
			
		||||
 | 
			
		||||
2001-11-26  Abel Cheung <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* src/inodedb/file_by_inode.c: Rename to file_by_inode2.c
 | 
			
		||||
	* src/inodedb/mkinodedb.c: Rename to mkinodedb2.c
 | 
			
		||||
 | 
			
		||||
	* po/POTFILES.in: Reflect above change
 | 
			
		||||
 | 
			
		||||
	* */.cvsignore: Add various files
 | 
			
		||||
 | 
			
		||||
2001-11-25  Kevin Vandersloot <kfv101@psu.edu>
 | 
			
		||||
 | 
			
		||||
	* port stable libgtop to GNOME 2.0. Too much to detail.
 | 
			
		||||
	pkgconfig is now used. Libs are named libgtop-2.0 etc for
 | 
			
		||||
	parallel install. 
 | 
			
		||||
 | 
			
		||||
2001-10-17  Abel Chueng  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* configure.in, Makefile.am, include/glibtop/Makefile.am: headers
 | 
			
		||||
	moved to $(includedir)/libgtop-1.0/glibtop.
 | 
			
		||||
 | 
			
		||||
2001-09-16  Abel Chueng  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "zh_TW" to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2001-02-13  Martin Baulig  <baulig@suse.de>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.12 "Gerolzhofen".
 | 
			
		||||
 | 
			
		||||
	* NEWS: Added news entry to 1.0.12.
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.12, binary age 11,
 | 
			
		||||
	interface age 11.
 | 
			
		||||
 | 
			
		||||
2001-02-19  Simos Xenitellis  <simos@hellug.gr>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "el" to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2001-02-15  Martin Baulig  <baulig@suse.de>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.11 "Jasmin".
 | 
			
		||||
 | 
			
		||||
	* NEWS: Added news entry for 1.0.11.
 | 
			
		||||
 | 
			
		||||
2001-02-14  Martin Baulig  <baulig@suse.de>
 | 
			
		||||
 | 
			
		||||
	Merged from LIBGTOP_1_1_2_PATCHES.
 | 
			
		||||
 | 
			
		||||
	* libgtop-sysdeps.m4 (GLIBTOP_SOLARIS_RELEASE): Define this on Solaris;
 | 
			
		||||
	we use version codes like 270 for SunOS 5.7 and 251 for SunOS 2.5.1.
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION (LIBGTOP_VERSION_SUFFIX): Added this so you can
 | 
			
		||||
	have your tarballs called `libgtop-1.x.y-snap.tar.gz' or whatever.
 | 
			
		||||
	This only affects the `VERSION' variable and thus how the resulting
 | 
			
		||||
	tarball will be called, but not `LIBGTOP_VERSION_CODE' etc.
 | 
			
		||||
 | 
			
		||||
	* configure.in, acconfig.h: Added checks for <procfs.h>
 | 
			
		||||
	and <sys/procfs.h>
 | 
			
		||||
 | 
			
		||||
	* configure.in (DL_LIB): Check for dlopen() and AC_SUBST this.
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Make `aclocal.m4' also depend on `LIBGTOP-VERSION'
 | 
			
		||||
	when in maintainer-mode.
 | 
			
		||||
 | 
			
		||||
2001-02-14  Martin Baulig  <baulig@suse.de>
 | 
			
		||||
 | 
			
		||||
	* include/glibtop/limits.h: Removed; this file doesn't exist
 | 
			
		||||
	in the stable branch.
 | 
			
		||||
 | 
			
		||||
2001-02-13  Martin Baulig  <baulig@suse.de>
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.11, binary age 10,
 | 
			
		||||
	interface age 10.
 | 
			
		||||
 | 
			
		||||
2001-02-13  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added sk to ALL_LINGUAS
 | 
			
		||||
 | 
			
		||||
2001-02-08  Gustavo Maciel Dias Vieira  <gdvieira@zaz.com.br>
 | 
			
		||||
 | 
			
		||||
	* configure.in (ALL_LINGUAS): Added pt_BR to ALL_LINGUAS.
 | 
			
		||||
 | 
			
		||||
2000-11-21  Martin Baulig  <baulig@suse.de>
 | 
			
		||||
 | 
			
		||||
	* libgtop-config.h.in: Added `--cflags', `--libs' and `--extra-libs'
 | 
			
		||||
	parameters.
 | 
			
		||||
 | 
			
		||||
2000-11-20  Martin Baulig  <baulig@suse.de>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.10 "November Rain".
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.10, binary age 9,
 | 
			
		||||
	interface age 9.
 | 
			
		||||
 | 
			
		||||
2000-05-25  Martin Baulig  <baulig@suse.de>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.9 "Stuttgart".
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.9 binary age 8,
 | 
			
		||||
	interface age 8.
 | 
			
		||||
 | 
			
		||||
	(LibGTop 1.0.8 "Frankfurt" was not publically released.)
 | 
			
		||||
 | 
			
		||||
2000-02-20  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.8 binary age 7,
 | 
			
		||||
	interface age 7.
 | 
			
		||||
 | 
			
		||||
2000-02-15  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.7 "Copenhagen".
 | 
			
		||||
 | 
			
		||||
1999-10-19  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.7 binary age 6,
 | 
			
		||||
	interface age 6.
 | 
			
		||||
 | 
			
		||||
1999-10-18  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.6 "October LibGTop".
 | 
			
		||||
 | 
			
		||||
1999-10-18  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* NEWS.old: Removed obsolete file.
 | 
			
		||||
 | 
			
		||||
	* RELNOTES-1.0.x: Added release notes for LibGTop 1.0.6.
 | 
			
		||||
 | 
			
		||||
	* TODO: Removed obsolete file.
 | 
			
		||||
 | 
			
		||||
	* NEWS: We start maintaining a NEWS file now :)
 | 
			
		||||
 | 
			
		||||
1999-10-16  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.6 binary age 5,
 | 
			
		||||
	interface age 5.
 | 
			
		||||
 | 
			
		||||
1999-10-09  Jesus Bravo Alvarez  <jba@pobox.com>
 | 
			
		||||
 | 
			
		||||
	* configure.in (ALL_LINGUAS): Added Galician (gl)
 | 
			
		||||
 | 
			
		||||
1999-09-29  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.5.
 | 
			
		||||
 | 
			
		||||
1999-09-29  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* configure.in (libgtop_top_builddir): AC_SUBST this.
 | 
			
		||||
 | 
			
		||||
1999-09-24  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.5 binary age 4,
 | 
			
		||||
	interface age 4.
 | 
			
		||||
 | 
			
		||||
1999-09-24  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.4.
 | 
			
		||||
 | 
			
		||||
1999-09-22  Kjartan Maraas  <kmaraas@online.no>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added "da" to ALL_LINGUAS.
 | 
			
		||||
	
 | 
			
		||||
1999-09-19  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* libgtopConf.sh.in: Added MODULE_VERSION on Miguel's
 | 
			
		||||
	request (set it to "libgtop-@LIBGTOP_VERSION@").
 | 
			
		||||
 | 
			
		||||
1999-09-18  Pablo Saratxaga <pablo@mandrakesoft.com>
 | 
			
		||||
 | 
			
		||||
	* configure.in, po/*.po: merged *.po files from HEAD CVS
 | 
			
		||||
 | 
			
		||||
1999-09-17  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Make it work if we have GNOME and the user
 | 
			
		||||
	gave use --without-gnome (fixes bug #1735).
 | 
			
		||||
 | 
			
		||||
1999-09-17  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.4 binary age 3,
 | 
			
		||||
	interface age 3.
 | 
			
		||||
 | 
			
		||||
1999-09-16  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	Merged everything since May 31 from HEAD and released
 | 
			
		||||
 	LibGTop 1.0.3.
 | 
			
		||||
 | 
			
		||||
1999-07-29  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* include/glibtop/error.h: Use G_GNUC_UNUSED.
 | 
			
		||||
 | 
			
		||||
	* configure.in (ENABLE_STATIC, ENABLE_SHARED): New automake
 | 
			
		||||
	conditionals.
 | 
			
		||||
 | 
			
		||||
1999-07-11  Tomas Ogren  <stric@ing.umu.se>
 | 
			
		||||
 | 
			
		||||
	* configure.in: Added sv to ALL_LINGUAS
 | 
			
		||||
 | 
			
		||||
1999-07-11  Tomas Ogren  <stric@ing.umu.se>
 | 
			
		||||
 | 
			
		||||
	* sysdeps/names/procmem.c: Fixed a tyop
 | 
			
		||||
 | 
			
		||||
1999-05-31  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* LIBGTOP-VERSION: Set version number to 1.0.3 binary age 2,
 | 
			
		||||
	interface age 2.
 | 
			
		||||
 | 
			
		||||
1999-05-31  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.2.
 | 
			
		||||
 | 
			
		||||
1999-05-26  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* configure.in (INCLUDES): Define `LIBGTOP_VERSION_CODE' here so we
 | 
			
		||||
	can use version conditionals in the sysdeps code.
 | 
			
		||||
 | 
			
		||||
1999-05-25  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* libgtop-sysdeps.m4: Make the I4B check work for NetBSD.
 | 
			
		||||
 | 
			
		||||
1999-05-16  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* doc: Merged the LibGTop Manual from the HEAD.
 | 
			
		||||
 | 
			
		||||
1999-03-01  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	Released LibGTop 1.0.1.
 | 
			
		||||
 
 | 
			
		||||
@@ -7,11 +7,14 @@
 | 
			
		||||
# set LIBGTOP_BINARY_AGE and LIBGTOP_INTERFACE_AGE to 0.
 | 
			
		||||
#
 | 
			
		||||
LIBGTOP_MAJOR_VERSION=1
 | 
			
		||||
LIBGTOP_MINOR_VERSION=0
 | 
			
		||||
LIBGTOP_MICRO_VERSION=1
 | 
			
		||||
LIBGTOP_MINOR_VERSION=90
 | 
			
		||||
LIBGTOP_MICRO_VERSION=0
 | 
			
		||||
 | 
			
		||||
LIBGTOP_INTERFACE_AGE=0
 | 
			
		||||
LIBGTOP_BINARY_AGE=0
 | 
			
		||||
# you can set this to `-snap' for instance to create
 | 
			
		||||
# a `libgtop-1.x.y-snap.tar.gz' tarball.
 | 
			
		||||
LIBGTOP_VERSION_SUFFIX=
 | 
			
		||||
 | 
			
		||||
# Increase each time you change the client/server protocol.
 | 
			
		||||
LIBGTOP_SERVER_VERSION=5
 | 
			
		||||
@@ -21,5 +24,5 @@ LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VER
 | 
			
		||||
LIBGTOP_VERSION_CODE=`echo "$LIBGTOP_MAJOR_VERSION 1000000 * $LIBGTOP_MINOR_VERSION 1000 * + $LIBGTOP_MICRO_VERSION + p q" | dc`
 | 
			
		||||
 | 
			
		||||
# For automake.
 | 
			
		||||
VERSION=$LIBGTOP_VERSION
 | 
			
		||||
VERSION=$LIBGTOP_VERSION$LIBGTOP_VERSION_SUFFIX
 | 
			
		||||
PACKAGE=libgtop
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								MAINTAINERS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								MAINTAINERS
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
Email: martin@home-of-linux.org
 | 
			
		||||
Email: dave@srce.hr
 | 
			
		||||
							
								
								
									
										43
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								Makefile.am
									
									
									
									
									
								
							@@ -10,14 +10,16 @@ if BUILD_GNOME_SUPPORT
 | 
			
		||||
support = support
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
SUBDIRS = po intl $(support) macros misc include sysdeps lib src \
 | 
			
		||||
	  $(examples_SUBDIRS)
 | 
			
		||||
SUBDIRS = . po $(support) misc include sysdeps lib src \
 | 
			
		||||
	  $(examples_SUBDIRS) doc
 | 
			
		||||
 | 
			
		||||
include_HEADERS = glibtop.h
 | 
			
		||||
libgtopinclude_HEADERS = glibtop.h
 | 
			
		||||
libgtopincludedir = $(includedir)/libgtop-2.0
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt libgtopConf.sh.in \
 | 
			
		||||
	LIBGTOP-VERSION features.def libgtop-config.in RELNOTES-0.25 \
 | 
			
		||||
	RELNOTES-1.0 libgtop-sysdeps.m4 README NEWS.old libgtop-mirror.sh
 | 
			
		||||
	RELNOTES-1.0 RELNOTES-1.0.x libgtop-sysdeps.m4 README \
 | 
			
		||||
	libgtop-mirror.sh libgtop-2.0.pc.in acinclude.m4
 | 
			
		||||
 | 
			
		||||
dist-hook:
 | 
			
		||||
	cp libgtop.spec $(distdir)
 | 
			
		||||
@@ -27,19 +29,24 @@ release:
 | 
			
		||||
 | 
			
		||||
## Put `exec' in the name because this should be installed by
 | 
			
		||||
## `install-exec', not `install-data'.
 | 
			
		||||
confexecdir	= $(libdir)
 | 
			
		||||
confexec_DATA	= $(top_builddir)/libgtopConf.sh \
 | 
			
		||||
		  $(top_builddir)/libgtop-features.def
 | 
			
		||||
## confexecdir	= $(libdir)
 | 
			
		||||
## confexec_DATA	= $(top_builddir)/libgtopConf.sh \
 | 
			
		||||
##		  $(top_builddir)/libgtop-features.def
 | 
			
		||||
		  
 | 
			
		||||
pkgconfigdir = $(libdir)/pkgconfig
 | 
			
		||||
pkgconfig_DATA = libgtop-2.0.pc
 | 
			
		||||
 | 
			
		||||
bin_SCRIPTS = $(top_builddir)/libgtop-config
 | 
			
		||||
CLEANFILES=libgtopConf.sh
 | 
			
		||||
 | 
			
		||||
## bin_SCRIPTS = $(top_builddir)/libgtop-config
 | 
			
		||||
 | 
			
		||||
## to automatically rebuild aclocal.m4 if any of the macros in
 | 
			
		||||
## `macros/' change
 | 
			
		||||
@MAINT@ include macros/macros.dep
 | 
			
		||||
@MAINT@macros/macros.dep: macros/Makefile.am
 | 
			
		||||
@MAINT@	cd macros && $(MAKE) macros.dep
 | 
			
		||||
## @MAINT@ include macros/macros.dep
 | 
			
		||||
## @MAINT@macros/macros.dep: macros/Makefile.am
 | 
			
		||||
## @MAINT@	cd macros && $(MAKE) macros.dep
 | 
			
		||||
 | 
			
		||||
@MAINT@$(top_srcdir)/aclocal.m4: libgtop-sysdeps.m4
 | 
			
		||||
@MAINT@$(top_srcdir)/aclocal.m4: libgtop-sysdeps.m4 LIBGTOP-VERSION
 | 
			
		||||
 | 
			
		||||
## We create libgtopConf.sh here and not from configure because we want
 | 
			
		||||
## to get the paths expanded correctly.  Macros like srcdir are given
 | 
			
		||||
@@ -48,7 +55,7 @@ bin_SCRIPTS = $(top_builddir)/libgtop-config
 | 
			
		||||
libgtopConf.sh: libgtopConf.sh.in Makefile
 | 
			
		||||
## Use sed and then mv to avoid problems if the user interrupts.
 | 
			
		||||
	sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
 | 
			
		||||
	  -e 's#\@LIBGTOP_INCLUDEDIR\@#$(includedir)#g' \
 | 
			
		||||
	  -e 's#\@LIBGTOP_INCLUDEDIR\@#$(includedir)/libgtop-2.0#g' \
 | 
			
		||||
	  -e 's#\@LIBGTOP_DATADIR\@#$(datadir)#g' \
 | 
			
		||||
	  -e 's#\@LIBGTOP_EXTRA_LIBS\@#$(LIBGTOP_EXTRA_LIBS)#g' \
 | 
			
		||||
	  -e 's#\@LIBGTOP_LIBS\@#$(LIBGTOP_LIBS)#g' \
 | 
			
		||||
@@ -75,11 +82,11 @@ libgtopConf.sh: libgtopConf.sh.in Makefile
 | 
			
		||||
	      < $(srcdir)/libgtopConf.sh.in > libgtopConf.tmp \
 | 
			
		||||
	  && mv libgtopConf.tmp libgtopConf.sh
 | 
			
		||||
 | 
			
		||||
libgtop-config: libgtop-config.in Makefile
 | 
			
		||||
	sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
 | 
			
		||||
	      < $(srcdir)/libgtop-config.in > libgtop-config.tmp \
 | 
			
		||||
	  && mv libgtop-config.tmp libgtop-config && \
 | 
			
		||||
		chmod 755 libgtop-config
 | 
			
		||||
# libgtop-config: libgtop-config.in Makefile
 | 
			
		||||
#	sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
 | 
			
		||||
#	      < $(srcdir)/libgtop-config.in > libgtop-config.tmp \
 | 
			
		||||
#	  && mv libgtop-config.tmp libgtop-config && \
 | 
			
		||||
#		chmod 755 libgtop-config
 | 
			
		||||
 | 
			
		||||
libgtop-features.def: features.def
 | 
			
		||||
	@LN_S@ $< $@
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										68
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								NEWS
									
									
									
									
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
February 27, 2001:
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.12 "Gerolzhofen".
 | 
			
		||||
 | 
			
		||||
  - fix for Solaris 8 from Laszlo PETER (msg_limits, sem_limits).
 | 
			
		||||
 | 
			
		||||
  - fix for FreeBSD 4.2 from Rolf Grossmann (FreeBSD now uses
 | 
			
		||||
    `_KERNEL' instead of `KERNEL'). Bug #51334.
 | 
			
		||||
 | 
			
		||||
  - for BSDI, comment out `subnet' field in netload; this should make
 | 
			
		||||
    it compile, but there may be other problems. Bug #13345.
 | 
			
		||||
 | 
			
		||||
  This release is for GNOME 1.4 Beta2.
 | 
			
		||||
 | 
			
		||||
February 14, 2001:
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.11 "Jasmin":
 | 
			
		||||
 | 
			
		||||
  [The release which was supposed to be called "Gerolzhofen".]
 | 
			
		||||
 | 
			
		||||
  - merged in the Solaris code from LIBGTOP_1_1_2_PATCHES.
 | 
			
		||||
 | 
			
		||||
  - minor OpenBSD fixes.
 | 
			
		||||
 | 
			
		||||
  - again a bunch of updated translations.
 | 
			
		||||
 | 
			
		||||
  Please test the Solaris stuff and report and bugs and
 | 
			
		||||
  problems as soon as possible; I'll make a new release
 | 
			
		||||
  for the 2nd beta of GNOME 1.4 if necessary.
 | 
			
		||||
 | 
			
		||||
November 20, 2000:
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.10 "November Rain":
 | 
			
		||||
 | 
			
		||||
  - this release contains a bunch of updated translations.
 | 
			
		||||
 | 
			
		||||
May 25, 2000:
 | 
			
		||||
============
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.9 "Stuttgart".
 | 
			
		||||
 | 
			
		||||
  (LibGTop 1.0.8 "Frankfurt" was not publically released.)
 | 
			
		||||
 | 
			
		||||
February 15, 2000:
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.7 "Copenhagen":
 | 
			
		||||
 | 
			
		||||
  - this is a bug fix release for the GUADEC CD-ROM;
 | 
			
		||||
    it contains fixes in both the Linux and *BSD sysdeps
 | 
			
		||||
    directory.
 | 
			
		||||
 | 
			
		||||
October 18, 1999:
 | 
			
		||||
================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.6 "October LibGTop":
 | 
			
		||||
 | 
			
		||||
  - compilation fixes for FreeBSD.
 | 
			
		||||
  - updated reference manual.
 | 
			
		||||
 | 
			
		||||
September 29, 1999:
 | 
			
		||||
==================
 | 
			
		||||
 | 
			
		||||
* Released LibGTop 1.0.5.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										244
									
								
								NEWS.old
									
									
									
									
									
								
							
							
						
						
									
										244
									
								
								NEWS.old
									
									
									
									
									
								
							@@ -1,244 +0,0 @@
 | 
			
		||||
$Id$
 | 
			
		||||
 | 
			
		||||
Jun/01/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
	* We have some new ``suffix rules'':
 | 
			
		||||
 | 
			
		||||
	  '__l' is a function defined in the client part;
 | 
			
		||||
	  '__s' is a function defined in the sysdeps part and
 | 
			
		||||
	  '__p' is a function that needs special priviledges.
 | 
			
		||||
	  '__r' is mapped either on '__p' or on '__s'.
 | 
			
		||||
	  the function without suffix is mapped on '__l'.
 | 
			
		||||
 | 
			
		||||
	* We now decide at runtime whether or not using the server
 | 
			
		||||
	is required for a particular function. All user programs
 | 
			
		||||
	now call the '__l' function defined in '-lgtop' (in the lib
 | 
			
		||||
	subdir). These functions either use 'glibtop_call__l' to
 | 
			
		||||
	call the server or call the '__r' function.
 | 
			
		||||
 | 
			
		||||
	* A function in the sysdeps directory now has the '__s' suffix
 | 
			
		||||
	if it do not need any priviledges (and thus can be called directly
 | 
			
		||||
	from client code) and the '__p' suffix otherwise (when it has to
 | 
			
		||||
	be called from the server).
 | 
			
		||||
 | 
			
		||||
	* If you call one of these functions:
 | 
			
		||||
 | 
			
		||||
	  -> use the '__p' suffix to be sure to get the SUID-safe one
 | 
			
		||||
	     (used in the server).
 | 
			
		||||
	  -> use the '__s' suffix to be sure to get a function that
 | 
			
		||||
	     doesn't need any priviledges.
 | 
			
		||||
	  -> use the '__r' suffix otherwise (it is mapped either on the
 | 
			
		||||
	     '__p' or on the '__s' one).
 | 
			
		||||
 | 
			
		||||
	Only use the '__p' and '__s' functions in a 'GLIBTOP_SUID_<feature>'
 | 
			
		||||
	conditional, otherwise you'll get undefined symbols !
 | 
			
		||||
 | 
			
		||||
	* The server is now started from 'glibtop_init__r', but only when
 | 
			
		||||
	it's really needed; for instance on DEC OSF/1 you only need it
 | 
			
		||||
	for the proc* features - if you program only fetches the CPU usage,
 | 
			
		||||
	now server will be started.
 | 
			
		||||
 | 
			
		||||
	* Sorry, at the moment everything is a little bit unstable, I'm doing
 | 
			
		||||
	heavy changes. I've just some great ideas which still need some work:
 | 
			
		||||
 | 
			
		||||
	  -> I want to have a SUID server that only implements those features
 | 
			
		||||
	     that need to be SUID; everything else uses the sysdeps code directly.
 | 
			
		||||
 | 
			
		||||
	  -> If a program only uses stuff that do not need the server, the
 | 
			
		||||
	     server will not be started at all.
 | 
			
		||||
 | 
			
		||||
	  -> I'm working on some kind of proxy server that can be used on a remote
 | 
			
		||||
	     host; in feature one can then use the MDI stuff from ghex in gtop to
 | 
			
		||||
	     have notebook pages displaying processes from different hosts.
 | 
			
		||||
 | 
			
		||||
	* Well it is as much unstable that it only works under Linux at the moment.
 | 
			
		||||
 | 
			
		||||
1998-06-01  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* sysdeps/common/sysdeps.c: now using '__r' functions,
 | 
			
		||||
	they are #defined either as the '__p' or the '__s' ones.
 | 
			
		||||
 | 
			
		||||
	* sysdeps/linux/*.c: changed call of 'glibtop_init__r',
 | 
			
		||||
	it now takes two additional arguments.
 | 
			
		||||
 | 
			
		||||
	* examples/{first.c, second.c}: now using 'glibtop_init'
 | 
			
		||||
	instead of 'glibtop_init__r'.
 | 
			
		||||
 | 
			
		||||
	* include/glibtop/sysdeps.h: added 'dummy' member so
 | 
			
		||||
	'GLIBTOP_SYSDEPS_<feature>' now start with 1.
 | 
			
		||||
 | 
			
		||||
	* include/glibtop/*.h: we now #define 'glibtop_get_<feature>'
 | 
			
		||||
	as 'glibtop_get_<feature>__l' and 'glibtop_get_<feature>__r'
 | 
			
		||||
	either as the '__p' or the '__s' function.
 | 
			
		||||
 | 
			
		||||
	* lib/*.c: removed #if's - we now decide at runtime
 | 
			
		||||
	whether to use the server or to call the appropriate
 | 
			
		||||
	function for the sysdeps directory.
 | 
			
		||||
 | 
			
		||||
1998-05-28  Martin Baulig  <baulig@merkur.uni-trier.de>
 | 
			
		||||
 | 
			
		||||
	* src/server/main.c: we now use the '__p' functions,
 | 
			
		||||
	but only if the appropriate 'GLIBTOP_SUID_<feature>'
 | 
			
		||||
	has a non-zero value.
 | 
			
		||||
	
 | 
			
		||||
	* configure.in (@machine_incs@): always use 
 | 
			
		||||
	`-I$(top_srcdir)/sysdeps/@sysdeps_dir@'; it's no
 | 
			
		||||
	longer conditional.
 | 
			
		||||
 | 
			
		||||
	* examples/Makefile.am: removed the '_linux' examples.
 | 
			
		||||
	
 | 
			
		||||
	* sysdeps/linux/*.c: renamed all functions implementing
 | 
			
		||||
	features to '__s'.
 | 
			
		||||
	
 | 
			
		||||
	* lib/*.c: renamed all functions implementing features
 | 
			
		||||
	to '__l'; we only emit code for those functions if the
 | 
			
		||||
 	corresponding 'GLIBTOP_SUID_<feature>' has a positive value.
 | 
			
		||||
	
 | 
			
		||||
	* include/glibtop/*.h: added some new function suffixes:
 | 
			
		||||
	'__l' is a function defined in the client part;
 | 
			
		||||
	'__s' is a function defined in the sysdeps part and
 | 
			
		||||
	'__p' is a function that needs special priviledges.
 | 
			
		||||
	'__r' is mapped either on '__l' or on '__s'.
 | 
			
		||||
	
 | 
			
		||||
	* sysdeps/linux/glibtop_server.h: New file -
 | 
			
		||||
	defines system dependent constants 'GLIBTOP_SUID_<feature>'
 | 
			
		||||
	being either 'GLIBTOP_SYSDEPS_<feature>'+1 depending upon
 | 
			
		||||
 	whether or not this feature requires using the server.
 | 
			
		||||
 | 
			
		||||
	* lib/sysdeps.c: removed that file; it is no longer
 | 
			
		||||
	needed.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
May/21/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
* doc/gnome-hackers.sgml: This is a short intro on how to use libgtop
 | 
			
		||||
  in the GNOME project. It covers especially the use of its 'configure'
 | 
			
		||||
  script and the automatically generated 'gtopConf.sh'.
 | 
			
		||||
 | 
			
		||||
May/20/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
* 'gtopConf.sh' now defines 'GTOP_LIBS' and 'GTOP_INCS' in a manner
 | 
			
		||||
  that they contain everything that is needed to link some program with
 | 
			
		||||
  libgtop. It will use '-lgtop' only if the server is really needed and
 | 
			
		||||
  '-lgtop_sysdeps' otherwise;
 | 
			
		||||
 | 
			
		||||
* 'gtopConf.sh' additionally defines 'GTOP_GUILE_LIBS' and 'GTOP_GUILE_INCS'
 | 
			
		||||
  containing everything that is needed to link some program both with
 | 
			
		||||
  libgtop and its guile interface. They are identically to 'GTOP_LIBS'
 | 
			
		||||
  and 'GTOP_INCS' if building the guile interface is disabled or guile
 | 
			
		||||
  cannot be found on the system.
 | 
			
		||||
 | 
			
		||||
* 'configure' takes additional arguments '--enable-libgtop-server' and
 | 
			
		||||
  '--disable-libgtop-server' to use the server even when it's not needed
 | 
			
		||||
  or to disable it's use where it's needed.
 | 
			
		||||
 | 
			
		||||
* 'configure' takes an argument '--without-libgtop-guile' to disable
 | 
			
		||||
  guile support.
 | 
			
		||||
 | 
			
		||||
* 'configure takes an argument '--without-libgtop-names' to remove
 | 
			
		||||
  '-lgtop_names' (and '-lgtop_guile_names' when we have guile) from
 | 
			
		||||
  'GTOP_LIBS'; in this case these libraries are not even built.
 | 
			
		||||
 | 
			
		||||
May/19/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
* Libgtop is now in the GNOME CVS Repository.
 | 
			
		||||
 | 
			
		||||
May/17/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
* we have now 'const char *glibtop_types_* []' consisting
 | 
			
		||||
  of the C types of the corresponding files of '_glibtop_*'.
 | 
			
		||||
 | 
			
		||||
* added guile function '(glibtop-types-*)' and '(glibtop-descriptions-*)'.
 | 
			
		||||
 | 
			
		||||
May/10/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
* Port to DEC OSF1 3.0 has been made:
 | 
			
		||||
 | 
			
		||||
  cpu		(total, user, nice, sys, idle)
 | 
			
		||||
  mem		(total, used, free)
 | 
			
		||||
 | 
			
		||||
  loadavg	(loadavg)
 | 
			
		||||
  uptime	(uptime)
 | 
			
		||||
 | 
			
		||||
  msg_limits	(map, max, mnb, mni, tql)
 | 
			
		||||
  sem_limits	(mni, msl, opm, vmx, aem)
 | 
			
		||||
  shm_limits	(max, min, mni, seg)
 | 
			
		||||
 | 
			
		||||
  The following need the server to be SUID root:
 | 
			
		||||
 | 
			
		||||
  proclist	(total, number, size)
 | 
			
		||||
  procdata	(cmd, state, uid, pid, ppid, pgrp, tty, k_flags,
 | 
			
		||||
		 session, tpgid, sigignore, sigcatch, signal, nice, 
 | 
			
		||||
		 priority, resident, rss, vsize, utime, stime,
 | 
			
		||||
		 cutime, cstime, trs, drs)
 | 
			
		||||
 | 
			
		||||
May/07/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
* 'flags' member of sysdeps/linux/procdata.c is now
 | 
			
		||||
  'unsigned long flags [2]'.
 | 
			
		||||
 | 
			
		||||
* When we give glibtop_get_procdata () a pid of zero, only
 | 
			
		||||
  the flags are returned.
 | 
			
		||||
 | 
			
		||||
* We now use static constants instead of #defines for sysdeps flags.
 | 
			
		||||
 | 
			
		||||
May/03/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
* VPATH-Build now working; sometimes it's necessary to copy
 | 
			
		||||
  $(top_srcdir)/po/cat-id-tbl.c to $(top_builddir)/po.
 | 
			
		||||
 | 
			
		||||
* The library has been tested on the following systems:
 | 
			
		||||
 | 
			
		||||
  - i686-pc-linux-gnu
 | 
			
		||||
  - sparc-sun-sunos4.1.1
 | 
			
		||||
  - alpha-dec-osf1 (that's DEC OSF1 3.0 and 3.2)
 | 
			
		||||
 | 
			
		||||
* Compilation has been tested on the following systems (I have no root
 | 
			
		||||
  access there and cannot test the library because of this):
 | 
			
		||||
 | 
			
		||||
  - sparc-sun-solaris2
 | 
			
		||||
  - i386-bsdi
 | 
			
		||||
 | 
			
		||||
* Does no longer require Gnome.
 | 
			
		||||
 | 
			
		||||
* Guile-Parts are compiled only if guile can be found.
 | 
			
		||||
 | 
			
		||||
* Some of the executables are statically linked to copy them more easily
 | 
			
		||||
  between machines.
 | 
			
		||||
 | 
			
		||||
May/02/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
 * Global changes to the interfaces, all functions except glibtop_open()
 | 
			
		||||
   and glibtop_close() that took a server argument have now a '__r' suffix;
 | 
			
		||||
   the original name is now a macro that uses glibtop_global_server.
 | 
			
		||||
 | 
			
		||||
Apr/10/1998
 | 
			
		||||
===========
 | 
			
		||||
Added new directory sysdeps/guile/names. It is the guile interface
 | 
			
		||||
to the gtop_names library found in sysdeps/names. Changed
 | 
			
		||||
GLIBTOP_DESCRIPTIONS to GLIBTOP_NAMES and added GLIBTOP_GUILE_NAMES
 | 
			
		||||
to the header files.
 | 
			
		||||
 | 
			
		||||
Apr/09/1998
 | 
			
		||||
===========
 | 
			
		||||
Added new directories guile and names to sysdeps. In names are
 | 
			
		||||
some string constants about the data stored in the structures.
 | 
			
		||||
guile is a guile interface for the library. It is used in
 | 
			
		||||
examples/third (which has been completely rewritten).
 | 
			
		||||
The header files define things from names when GLIBTOP_DESCRIPTIONS
 | 
			
		||||
if defined and/or from guile when HAVE_GUILE is defined.
 | 
			
		||||
 | 
			
		||||
Apr/08/1998
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
Added guile wrapper for the library (see examples/third).
 | 
			
		||||
@@ -87,7 +87,7 @@ LibGTop is currently used in various places in the GNOME Project,
 | 
			
		||||
for instance in some of the applets in gnome-core and - of cause -
 | 
			
		||||
this ultra-cool application called GTop ...
 | 
			
		||||
 | 
			
		||||
Although LibGTop is not specific to GNOME and under LGPL license, I
 | 
			
		||||
Although LibGTop is not specific to GNOME and under GPL license, I
 | 
			
		||||
spent most my time during the last months to work in the GNOME project
 | 
			
		||||
so this is the primary use for LibGTop (and currently the only one).
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										172
									
								
								RELNOTES-1.0.x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										172
									
								
								RELNOTES-1.0.x
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,172 @@
 | 
			
		||||
RELEASE NOTES FOR LIBGTOP 1.0.7
 | 
			
		||||
===============================
 | 
			
		||||
 | 
			
		||||
OVERVIEW
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
LibGTop is a library that read information about processes and the
 | 
			
		||||
running systems. This information include:
 | 
			
		||||
 | 
			
		||||
General System Information:
 | 
			
		||||
 | 
			
		||||
cpu		- CPU Usage
 | 
			
		||||
mem		- Memory Usage
 | 
			
		||||
swap		- Swap Usage (including paging activity)
 | 
			
		||||
loadavg		- Load average (including nr_running, nr_tasks, last_pid)
 | 
			
		||||
uptime		- Uptime and Idle time, can be calculated from CPU usage
 | 
			
		||||
 | 
			
		||||
SYS V IPC Limits:
 | 
			
		||||
 | 
			
		||||
shm_limits	- Shared Memory Limits
 | 
			
		||||
msg_limits	- Message Queue Limits
 | 
			
		||||
sem_limits	- Semaphore Set Limits
 | 
			
		||||
 | 
			
		||||
Network:
 | 
			
		||||
 | 
			
		||||
netload		- Network load
 | 
			
		||||
ppp		- PPP statistics
 | 
			
		||||
 | 
			
		||||
Process List:
 | 
			
		||||
 | 
			
		||||
proclist	- List of processes
 | 
			
		||||
 | 
			
		||||
Process information:
 | 
			
		||||
 | 
			
		||||
proc_state	- cmd, state, uid, gid
 | 
			
		||||
proc_uid	- uid,euid,gid,egid,pid,ppid,pgrp
 | 
			
		||||
		  session,tty,tpgid,priority,nice
 | 
			
		||||
proc_mem	- size,vsize,resident,share,rss,rss_rlim
 | 
			
		||||
proc_time	- start_time,rtime,utime,stime,cutime,cstime
 | 
			
		||||
		  timeout,it_real_value,frequency
 | 
			
		||||
proc_signal	- signal,blocked,sigignore,sigcatch
 | 
			
		||||
proc_kernel	- k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
 | 
			
		||||
		  kstk_esp,kstk_eip,nwchan,wchan
 | 
			
		||||
proc_segment	- text_rss,shlib_rss,data_rss,stack_rss,dirty_size
 | 
			
		||||
		  start_code,end_code,start_stack
 | 
			
		||||
 | 
			
		||||
Process maps:
 | 
			
		||||
 | 
			
		||||
proc_args	- Command line arguments
 | 
			
		||||
proc_map	- Process map (/proc/<pid>/maps under Linux)
 | 
			
		||||
 | 
			
		||||
File system usage:
 | 
			
		||||
 | 
			
		||||
mountlist	- List of currently mounted filesystems
 | 
			
		||||
fsusage		- File system usage
 | 
			
		||||
 | 
			
		||||
PORTABILITY:
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
LibGTop is designed to be as portable as possible. None of the
 | 
			
		||||
functions and retrieved information should be specific to a specific
 | 
			
		||||
operating system. So you only need to port the system dependent part
 | 
			
		||||
of the library to a new system and all application programs can then
 | 
			
		||||
use libgtop on this new system.
 | 
			
		||||
 | 
			
		||||
CLIENT/SERVER MODEL:
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
Some systems like DEC OSF/1 or BSD require special privileges for the
 | 
			
		||||
calling process to fetch the required information (SUID root/SGID
 | 
			
		||||
kmem). To solve this problem, I designed a client/server model which
 | 
			
		||||
makes a call to a SUID/SGID server which fetches the required
 | 
			
		||||
information whenever it is required. This server is only called for
 | 
			
		||||
features that really require privileges, otherwise the sysdeps code
 | 
			
		||||
is called directory (every user can get the CPU usage on DEC OSF/1,
 | 
			
		||||
but only root can get information about processes other than the
 | 
			
		||||
current one).
 | 
			
		||||
 | 
			
		||||
There is also some kind of daemon which can be used to fetch
 | 
			
		||||
information from remote systems (still experimental). This daemon
 | 
			
		||||
normally runs as nobody and calls the SUID/SGID itself when needed.
 | 
			
		||||
 | 
			
		||||
LIBGTOP AND GNOME:
 | 
			
		||||
-----------------
 | 
			
		||||
 | 
			
		||||
Although LibGTop is part of the GNOME desktop environment, its main
 | 
			
		||||
interface is totally independent from any particular desktop environment,
 | 
			
		||||
so you can also use it as a standalone library in any piece of GPLed
 | 
			
		||||
software which makes it also a valuable part of the GNU project.
 | 
			
		||||
 | 
			
		||||
LibGTop is currently used in various places in the GNOME Project,
 | 
			
		||||
for instance in some of the applets in gnome-core and - of cause -
 | 
			
		||||
this ultra-cool application called GTop ...
 | 
			
		||||
 | 
			
		||||
However, you need to give the configure.in script the `--without-gnome'
 | 
			
		||||
parameter when you want to use LibGTop without GNOME (this is because,
 | 
			
		||||
if you want to use it with GNOME, you need to compile it after the main
 | 
			
		||||
GNOME libraries and I wanted to avoid getting unnecessary bug reports
 | 
			
		||||
about this).
 | 
			
		||||
 | 
			
		||||
LIBGTOP AND GNOME - PART II:
 | 
			
		||||
---------------------------
 | 
			
		||||
 | 
			
		||||
LibGTop was tested with FreeBSD 3.0 but it should also work with
 | 
			
		||||
FreeBSD 2.2.7, NetBSD and OpenBSD.
 | 
			
		||||
 | 
			
		||||
Unfortunately, I don't have the power and disk space to install all
 | 
			
		||||
possible operating systems out there on my machine and test things myself,
 | 
			
		||||
so I depend on people telling me whether it works and sending me bug
 | 
			
		||||
reports and patches if not.
 | 
			
		||||
 | 
			
		||||
However, I consider FreeBSD, NetBSD and OpenBSD as supported systems for
 | 
			
		||||
LibGTop and whenever I get bug reports I will do my best to fix them as
 | 
			
		||||
quickly as possible.
 | 
			
		||||
 | 
			
		||||
PLATFORM SPECIFIC NOTES FOR LINUX:
 | 
			
		||||
==================================
 | 
			
		||||
 | 
			
		||||
[I am speaking of the Linux kernel here.]
 | 
			
		||||
 | 
			
		||||
Under Linux, LibGTop should work without problems and read everything
 | 
			
		||||
from /proc.
 | 
			
		||||
 | 
			
		||||
LibGTop 0.25 also had an experimental kernel interface to read this
 | 
			
		||||
information directly from the kernel with a system call - but I have
 | 
			
		||||
currently dropped support for this as I am too busy with GNOME
 | 
			
		||||
development to keep current with kernel hacking.
 | 
			
		||||
 | 
			
		||||
PLATFORM SPECIFIC NOTES FOR SOLARIS:
 | 
			
		||||
====================================
 | 
			
		||||
 | 
			
		||||
The development branch of LibGTop (the 1.1.x series) has a first version
 | 
			
		||||
of the Solaris port which works at least on Solaris 7.
 | 
			
		||||
 | 
			
		||||
If you are on a Solaris system and want to give it a try, just fetch the
 | 
			
		||||
latest 1.1.x tarball from ftp://ftp.home-of-linux.org/pub/libgtop/1.1/
 | 
			
		||||
and try it out.
 | 
			
		||||
 | 
			
		||||
PLATFORM SPECIFIC NOTES FOR BSD:
 | 
			
		||||
=================================
 | 
			
		||||
 | 
			
		||||
There are a few caveats:
 | 
			
		||||
 | 
			
		||||
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to
 | 
			
		||||
  kmem after installation and mount the /proc file system of FreeBSD
 | 
			
		||||
  (/proc/<pid>/mem is used within kvm_uread ()).
 | 
			
		||||
 | 
			
		||||
* To get the filenames of the process maps displayed in GTop, you need
 | 
			
		||||
  to configure with the `--with-libgtop-inodedb' option (you need GDBM
 | 
			
		||||
  for this to work).
 | 
			
		||||
 | 
			
		||||
  You have then to create an inode database which is used to look up
 | 
			
		||||
  filenames. This is done using the `mkinodedb' program which comes
 | 
			
		||||
  along with libgtop.
 | 
			
		||||
 | 
			
		||||
  See the file src/inodedb/README for details:
 | 
			
		||||
 | 
			
		||||
  The `mkinodedb' program which is build in this directory takes two
 | 
			
		||||
  command line arguments: the full pathname of the database to be
 | 
			
		||||
  created and the name of a configuration file consisting of directory
 | 
			
		||||
  and file names each on a line by itself - see `/etc/ld.so.conf' for
 | 
			
		||||
  an example.
 | 
			
		||||
 | 
			
		||||
  Putting a directory name in this file means all regular files found
 | 
			
		||||
  in this directory are included in the database, but it will not
 | 
			
		||||
  recursively descend into subdirectories (for instance, we want
 | 
			
		||||
  everything in `/usr/lib' but not every single file in `/usr/lib/sgml').
 | 
			
		||||
  You can also use filenames to include a single file.
 | 
			
		||||
 | 
			
		||||
Have fun,
 | 
			
		||||
 | 
			
		||||
Martin <martin@home-of-linux.org>
 | 
			
		||||
							
								
								
									
										50
									
								
								RELNOTES-1.1.x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								RELNOTES-1.1.x
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
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
 | 
			
		||||
							
								
								
									
										46
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								TODO
									
									
									
									
									
								
							@@ -1,46 +0,0 @@
 | 
			
		||||
This is LibGTop 0.99.2,
 | 
			
		||||
 | 
			
		||||
a feature-freezed version of LibGTop for GNOME 1.0.
 | 
			
		||||
 | 
			
		||||
You need to use the latest version of LibGTop from CVS for Gnome, it will
 | 
			
		||||
no longer work with older releases.
 | 
			
		||||
 | 
			
		||||
Martin
 | 
			
		||||
 | 
			
		||||
--------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
NOTE:  LibGTop is already feature-freezed for GNOME 1.0, so only bug fixes
 | 
			
		||||
       are ok, no API changes !
 | 
			
		||||
 | 
			
		||||
Sysdeps directory 'linux':
 | 
			
		||||
==========================
 | 
			
		||||
 | 
			
		||||
* Add implementation for `ppp' with modems.
 | 
			
		||||
 | 
			
		||||
Sysdeps directory 'freebsd':
 | 
			
		||||
============================
 | 
			
		||||
 | 
			
		||||
* FreeBSD 3.0: It works fine on this system, so please make sure not
 | 
			
		||||
               to break it here.
 | 
			
		||||
 | 
			
		||||
* FreeBSD 2.2: Make sure it still works here.
 | 
			
		||||
 | 
			
		||||
* NetBSD/OpenBSD: Support was added on Dec 6, but we need to check
 | 
			
		||||
                  whether all data are valid.
 | 
			
		||||
 | 
			
		||||
Sysdeps directories 'kernel', 'osf1' and 'sun4':
 | 
			
		||||
================================================
 | 
			
		||||
 | 
			
		||||
* You need to use the `--enable-hacker-mode' parameter to configure
 | 
			
		||||
  to build this directories.
 | 
			
		||||
 | 
			
		||||
--------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
Everything except sysdeps directories:
 | 
			
		||||
======================================
 | 
			
		||||
 | 
			
		||||
* Ready for Gnome 1.0. [ALREADY FEATURE FREEZED]
 | 
			
		||||
 | 
			
		||||
January 5, 1999
 | 
			
		||||
 | 
			
		||||
Martin
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@
 | 
			
		||||
 | 
			
		||||
#undef ENABLE_NLS
 | 
			
		||||
#undef HAVE_CATGETS
 | 
			
		||||
#undef GETTEXT_PACKAGE
 | 
			
		||||
#undef HAVE_GETTEXT
 | 
			
		||||
#undef HAVE_LC_MESSAGES
 | 
			
		||||
#undef HAVE_STPCPY
 | 
			
		||||
@@ -156,6 +157,14 @@
 | 
			
		||||
 */
 | 
			
		||||
#undef GLIBTOP_LINUX_VERSION_CODE
 | 
			
		||||
 | 
			
		||||
/* Solaris release code (eg. 251 for Solaris 2.5.1). */
 | 
			
		||||
#undef GLIBTOP_SOLARIS_RELEASE
 | 
			
		||||
 | 
			
		||||
/* Define if you want to use LibGTop without GNOME. */
 | 
			
		||||
#undef WITHOUT_GNOME
 | 
			
		||||
 | 
			
		||||
/* Define if you have the <procfs.h> header file */
 | 
			
		||||
#undef HAVE_PROCFS_H
 | 
			
		||||
 | 
			
		||||
/* Define if you have the <sys/procfs.h> header file */
 | 
			
		||||
#undef HAVE_SYS_PROCFS_H
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										880
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										880
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,880 @@
 | 
			
		||||
dnl This is just copied m4s from need-declaration.m4 gnome-fileutils.m4
 | 
			
		||||
dnl gnome-supprt-checks.m4 and a little from gnome-libgtop-check.m4
 | 
			
		||||
dnl and finally libgtop-sysdeps.m4
 | 
			
		||||
 | 
			
		||||
dnl
 | 
			
		||||
dnl LIBGTOP_CHECK_TYPE
 | 
			
		||||
dnl
 | 
			
		||||
dnl Improved version of AC_CHECK_TYPE which takes into account
 | 
			
		||||
dnl that we need to #include some other header files on some
 | 
			
		||||
dnl systems to get some types.
 | 
			
		||||
 | 
			
		||||
dnl AC_LIBGTOP_CHECK_TYPE(TYPE, DEFAULT)
 | 
			
		||||
AC_DEFUN([AC_LIBGTOP_CHECK_TYPE],
 | 
			
		||||
[AC_REQUIRE([AC_HEADER_STDC])dnl
 | 
			
		||||
AC_MSG_CHECKING(for $1)
 | 
			
		||||
AC_CACHE_VAL(ac_cv_type_$1,
 | 
			
		||||
[AC_EGREP_CPP(dnl
 | 
			
		||||
changequote(<<,>>)dnl
 | 
			
		||||
<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl
 | 
			
		||||
changequote([,]), [#include <sys/types.h>
 | 
			
		||||
#if STDC_HEADERS
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* For Tru64 */
 | 
			
		||||
#ifdef HAVE_SYS_BITYPES_H
 | 
			
		||||
#include <sys/bitypes.h>
 | 
			
		||||
#endif
 | 
			
		||||
], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
 | 
			
		||||
AC_MSG_RESULT($ac_cv_type_$1)
 | 
			
		||||
if test $ac_cv_type_$1 = no; then
 | 
			
		||||
  AC_DEFINE($1, $2)
 | 
			
		||||
fi
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
dnl
 | 
			
		||||
dnl GNOME_LIBGTOP_TYPES
 | 
			
		||||
dnl
 | 
			
		||||
dnl some typechecks for libgtop.
 | 
			
		||||
dnl
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([GNOME_LIBGTOP_TYPES],
 | 
			
		||||
[
 | 
			
		||||
        AC_CHECK_HEADERS(sys/bitypes.h)
 | 
			
		||||
        AC_LIBGTOP_CHECK_TYPE(u_int64_t, unsigned long long int)
 | 
			
		||||
        AC_LIBGTOP_CHECK_TYPE(int64_t, signed long long int)
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
dnl See whether we need a declaration for a function.
 | 
			
		||||
dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES])
 | 
			
		||||
AC_DEFUN([GCC_NEED_DECLARATION],
 | 
			
		||||
[AC_MSG_CHECKING([whether $1 must be declared])
 | 
			
		||||
AC_CACHE_VAL(gcc_cv_decl_needed_$1,
 | 
			
		||||
[AC_TRY_COMPILE([
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#ifdef HAVE_STRING_H
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#else
 | 
			
		||||
#ifdef HAVE_STRINGS_H
 | 
			
		||||
#include <strings.h>
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_STDLIB_H
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_UNISTD_H
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#endif
 | 
			
		||||
$2],
 | 
			
		||||
[char *(*pfn) = (char *(*)) $1],
 | 
			
		||||
eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")])
 | 
			
		||||
if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then
 | 
			
		||||
  AC_MSG_RESULT(yes)
 | 
			
		||||
  gcc_need_declarations="$gcc_need_declarations $1"
 | 
			
		||||
  gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 | 
			
		||||
  AC_DEFINE_UNQUOTED($gcc_tr_decl)
 | 
			
		||||
else
 | 
			
		||||
  AC_MSG_RESULT(no)
 | 
			
		||||
fi
 | 
			
		||||
])dnl
 | 
			
		||||
 | 
			
		||||
dnl Check multiple functions to see whether each needs a declaration.
 | 
			
		||||
dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES])
 | 
			
		||||
AC_DEFUN([GCC_NEED_DECLARATIONS],
 | 
			
		||||
[for ac_func in $1
 | 
			
		||||
do
 | 
			
		||||
GCC_NEED_DECLARATION($ac_func, $2)
 | 
			
		||||
done
 | 
			
		||||
]
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
dnl
 | 
			
		||||
dnl GNOME_FILEUTILS_CHECKS
 | 
			
		||||
dnl
 | 
			
		||||
dnl checks that are needed for the diskusage applet.
 | 
			
		||||
dnl
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([GNOME_FILEUTILS_CHECKS],
 | 
			
		||||
[
 | 
			
		||||
AC_CHECK_HEADERS(fcntl.h sys/param.h sys/statfs.h sys/fstyp.h \
 | 
			
		||||
mnttab.h mntent.h sys/statvfs.h sys/vfs.h sys/mount.h \
 | 
			
		||||
sys/filsys.h sys/fs_types.h sys/fs/s5param.h)
 | 
			
		||||
 | 
			
		||||
AC_CHECK_FUNCS(bcopy endgrent endpwent fchdir ftime ftruncate \
 | 
			
		||||
getcwd getmntinfo gettimeofday isascii lchown \
 | 
			
		||||
listmntent memcpy mkfifo strchr strerror strrchr vprintf)
 | 
			
		||||
 | 
			
		||||
dnl Set some defaults when cross-compiling
 | 
			
		||||
 | 
			
		||||
if test x$cross_compiling = xyes ; then
 | 
			
		||||
        case "$host_os" in
 | 
			
		||||
        linux*)
 | 
			
		||||
          fu_cv_sys_mounted_getmntent1=yes
 | 
			
		||||
          fu_cv_sys_stat_statfs2_bsize=yes
 | 
			
		||||
          ;;
 | 
			
		||||
        sunos*)
 | 
			
		||||
          fu_cv_sys_stat_statfs4=yes
 | 
			
		||||
          ;;
 | 
			
		||||
        freebsd*)
 | 
			
		||||
          fu_cv_sys_stat_statfs2_bsize=yes
 | 
			
		||||
          ;;
 | 
			
		||||
        osf*)
 | 
			
		||||
          fu_cv_sys_stat_statfs3_osf1=yes
 | 
			
		||||
          ;;
 | 
			
		||||
        esac
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Determine how to get the list of mounted filesystems.
 | 
			
		||||
list_mounted_fs=
 | 
			
		||||
 | 
			
		||||
# If the getmntent function is available but not in the standard library,
 | 
			
		||||
# make sure LIBS contains -lsun (on Irix4) or -lseq (on PTX).
 | 
			
		||||
AC_FUNC_GETMNTENT
 | 
			
		||||
 | 
			
		||||
# This test must precede the ones for getmntent because Unicos-9 is
 | 
			
		||||
# reported to have the getmntent function, but its support is incompatible
 | 
			
		||||
# with other getmntent implementations.
 | 
			
		||||
 | 
			
		||||
# NOTE: Normally, I wouldn't use a check for system type as I've done for
 | 
			
		||||
# `CRAY' below since that goes against the whole autoconf philosophy.  But
 | 
			
		||||
# I think there is too great a chance that some non-Cray system has a
 | 
			
		||||
# function named listmntent to risk the false positive.
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# Cray UNICOS 9
 | 
			
		||||
AC_MSG_CHECKING([for listmntent of Cray/Unicos-9])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_cray_listmntent,
 | 
			
		||||
[fu_cv_sys_mounted_cray_listmntent=no
 | 
			
		||||
AC_EGREP_CPP(yes,
 | 
			
		||||
[#ifdef _CRAY
 | 
			
		||||
yes
 | 
			
		||||
#endif
 | 
			
		||||
], [test $ac_cv_func_listmntent = yes \
 | 
			
		||||
&& fu_cv_sys_mounted_cray_listmntent=yes]
 | 
			
		||||
)
 | 
			
		||||
]
 | 
			
		||||
)
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent)
 | 
			
		||||
if test $fu_cv_sys_mounted_cray_listmntent = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_LISTMNTENT)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $ac_cv_func_getmntent = yes; then
 | 
			
		||||
 | 
			
		||||
# This system has the getmntent function.
 | 
			
		||||
# Determine whether it's the one-argument variant or the two-argument one.
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# 4.3BSD, SunOS, HP-UX, Dynix, Irix
 | 
			
		||||
AC_MSG_CHECKING([for one-argument getmntent function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1,
 | 
			
		||||
[test $ac_cv_header_mntent_h = yes \
 | 
			
		||||
&& fu_cv_sys_mounted_getmntent1=yes \
 | 
			
		||||
|| fu_cv_sys_mounted_getmntent1=no])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1)
 | 
			
		||||
if test $fu_cv_sys_mounted_getmntent1 = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETMNTENT1)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# SVR4
 | 
			
		||||
AC_MSG_CHECKING([for two-argument getmntent function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmntent2,
 | 
			
		||||
[AC_EGREP_HEADER(getmntent, sys/mnttab.h,
 | 
			
		||||
fu_cv_sys_mounted_getmntent2=yes,
 | 
			
		||||
fu_cv_sys_mounted_getmntent2=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2)
 | 
			
		||||
if test $fu_cv_sys_mounted_getmntent2 = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETMNTENT2)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
AC_MSG_ERROR([could not determine how to read list of mounted filesystems])
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# DEC Alpha running OSF/1.
 | 
			
		||||
AC_MSG_CHECKING([for getfsstat function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getsstat,
 | 
			
		||||
[AC_TRY_LINK([
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#include <sys/fs_types.h>],
 | 
			
		||||
[struct statfs *stats;
 | 
			
		||||
int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); ],
 | 
			
		||||
fu_cv_sys_mounted_getsstat=yes,
 | 
			
		||||
fu_cv_sys_mounted_getsstat=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getsstat)
 | 
			
		||||
if test $fu_cv_sys_mounted_getsstat = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETFSSTAT)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# AIX.
 | 
			
		||||
AC_MSG_CHECKING([for mntctl function and struct vmount])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_vmount,
 | 
			
		||||
[AC_TRY_CPP([#include <fshelp.h>],
 | 
			
		||||
fu_cv_sys_mounted_vmount=yes,
 | 
			
		||||
fu_cv_sys_mounted_vmount=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_vmount)
 | 
			
		||||
if test $fu_cv_sys_mounted_vmount = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_VMOUNT)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# SVR3
 | 
			
		||||
AC_MSG_CHECKING([for FIXME existence of three headers])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_fread_fstyp,
 | 
			
		||||
[AC_TRY_CPP([
 | 
			
		||||
#include <sys/statfs.h>
 | 
			
		||||
#include <sys/fstyp.h>
 | 
			
		||||
#include <mnttab.h>],
 | 
			
		||||
fu_cv_sys_mounted_fread_fstyp=yes,
 | 
			
		||||
fu_cv_sys_mounted_fread_fstyp=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp)
 | 
			
		||||
if test $fu_cv_sys_mounted_fread_fstyp = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_FREAD_FSTYP)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# 4.4BSD and DEC OSF/1.
 | 
			
		||||
AC_MSG_CHECKING([for getmntinfo function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo,
 | 
			
		||||
[
 | 
			
		||||
ok=
 | 
			
		||||
if test $ac_cv_func_getmntinfo = yes; then
 | 
			
		||||
AC_EGREP_HEADER(f_type;, sys/mount.h,
 | 
			
		||||
ok=yes)
 | 
			
		||||
fi
 | 
			
		||||
test -n "$ok" \
 | 
			
		||||
&& fu_cv_sys_mounted_getmntinfo=yes \
 | 
			
		||||
|| fu_cv_sys_mounted_getmntinfo=no
 | 
			
		||||
])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo)
 | 
			
		||||
if test $fu_cv_sys_mounted_getmntinfo = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETMNTINFO)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# FIXME: add a test for netbsd-1.1 here
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# Ultrix
 | 
			
		||||
AC_MSG_CHECKING([for getmnt function])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_getmnt,
 | 
			
		||||
[AC_TRY_CPP([
 | 
			
		||||
#include <sys/fs_types.h>
 | 
			
		||||
#include <sys/mount.h>],
 | 
			
		||||
fu_cv_sys_mounted_getmnt=yes,
 | 
			
		||||
fu_cv_sys_mounted_getmnt=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_getmnt)
 | 
			
		||||
if test $fu_cv_sys_mounted_getmnt = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_GETMNT)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
# SVR2
 | 
			
		||||
AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_mounted_fread,
 | 
			
		||||
[AC_TRY_CPP([#include <mnttab.h>],
 | 
			
		||||
fu_cv_sys_mounted_fread=yes,
 | 
			
		||||
fu_cv_sys_mounted_fread=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_mounted_fread)
 | 
			
		||||
if test $fu_cv_sys_mounted_fread = yes; then
 | 
			
		||||
list_mounted_fs=found
 | 
			
		||||
AC_DEFINE(MOUNTED_FREAD)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$list_mounted_fs"; then
 | 
			
		||||
AC_MSG_ERROR([could not determine how to read list of mounted filesystems])
 | 
			
		||||
# FIXME -- no need to abort building the whole package
 | 
			
		||||
# Cannot build mountlist.c or anything that needs its functions
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AC_CHECKING(how to get filesystem space usage)
 | 
			
		||||
space=no
 | 
			
		||||
 | 
			
		||||
# Perform only the link test since it seems there are no variants of the
 | 
			
		||||
# statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
 | 
			
		||||
# because that got a false positive on SCO OSR5.  Adding the declaration
 | 
			
		||||
# of a `struct statvfs' causes this test to fail (as it should) on such
 | 
			
		||||
# systems.  That system is reported to work fine with STAT_STATFS4 which
 | 
			
		||||
# is what it gets when this test fails.
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# SVR4
 | 
			
		||||
AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
 | 
			
		||||
[AC_TRY_LINK([#include <sys/types.h>
 | 
			
		||||
#include <sys/statvfs.h>],
 | 
			
		||||
[struct statvfs fsd; statvfs (0, &fsd);],
 | 
			
		||||
fu_cv_sys_stat_statvfs=yes,
 | 
			
		||||
fu_cv_sys_stat_statvfs=no)])
 | 
			
		||||
if test $fu_cv_sys_stat_statvfs = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATVFS)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# DEC Alpha running OSF/1
 | 
			
		||||
AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
 | 
			
		||||
[AC_TRY_RUN([
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct statfs fsd;
 | 
			
		||||
fsd.f_fsize = 0;
 | 
			
		||||
return (statfs (".", &fsd, sizeof (struct statfs)));
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_statfs3_osf1=yes,
 | 
			
		||||
fu_cv_sys_stat_statfs3_osf1=no,
 | 
			
		||||
fu_cv_sys_stat_statfs3_osf1=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
 | 
			
		||||
if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS3_OSF1)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# AIX
 | 
			
		||||
AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
 | 
			
		||||
member (AIX, 4.3BSD)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
 | 
			
		||||
[AC_TRY_RUN([
 | 
			
		||||
#ifdef HAVE_SYS_PARAM_H
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_MOUNT_H
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_VFS_H
 | 
			
		||||
#include <sys/vfs.h>
 | 
			
		||||
#endif
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct statfs fsd;
 | 
			
		||||
fsd.f_bsize = 0;
 | 
			
		||||
return (statfs (".", &fsd));
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_statfs2_bsize=yes,
 | 
			
		||||
fu_cv_sys_stat_statfs2_bsize=no,
 | 
			
		||||
fu_cv_sys_stat_statfs2_bsize=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
 | 
			
		||||
if test $fu_cv_sys_stat_statfs2_bsize = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS2_BSIZE)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# SVR3
 | 
			
		||||
AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
 | 
			
		||||
[AC_TRY_RUN([#include <sys/types.h>
 | 
			
		||||
#include <sys/statfs.h>
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct statfs fsd;
 | 
			
		||||
return (statfs (".", &fsd, sizeof fsd, 0));
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_statfs4=yes,
 | 
			
		||||
fu_cv_sys_stat_statfs4=no,
 | 
			
		||||
fu_cv_sys_stat_statfs4=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
 | 
			
		||||
if test $fu_cv_sys_stat_statfs4 = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS4)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# 4.4BSD and NetBSD
 | 
			
		||||
AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
 | 
			
		||||
member (4.4BSD and NetBSD)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
 | 
			
		||||
[AC_TRY_RUN([#include <sys/types.h>
 | 
			
		||||
#ifdef HAVE_SYS_PARAM_H
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_MOUNT_H
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#endif
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct statfs fsd;
 | 
			
		||||
fsd.f_fsize = 0;
 | 
			
		||||
return (statfs (".", &fsd));
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_statfs2_fsize=yes,
 | 
			
		||||
fu_cv_sys_stat_statfs2_fsize=no,
 | 
			
		||||
fu_cv_sys_stat_statfs2_fsize=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
 | 
			
		||||
if test $fu_cv_sys_stat_statfs2_fsize = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS2_FSIZE)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# Ultrix
 | 
			
		||||
AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
 | 
			
		||||
[AC_TRY_RUN([#include <sys/types.h>
 | 
			
		||||
#ifdef HAVE_SYS_PARAM_H
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_MOUNT_H
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef HAVE_SYS_FS_TYPES_H
 | 
			
		||||
#include <sys/fs_types.h>
 | 
			
		||||
#endif
 | 
			
		||||
int main ()
 | 
			
		||||
{
 | 
			
		||||
struct fs_data fsd;
 | 
			
		||||
/* Ultrix's statfs returns 1 for success,
 | 
			
		||||
0 for not mounted, -1 for failure.  */
 | 
			
		||||
return (statfs (".", &fsd) != 1);
 | 
			
		||||
}],
 | 
			
		||||
fu_cv_sys_stat_fs_data=yes,
 | 
			
		||||
fu_cv_sys_stat_fs_data=no,
 | 
			
		||||
fu_cv_sys_stat_fs_data=no)])
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
 | 
			
		||||
if test $fu_cv_sys_stat_fs_data = yes; then
 | 
			
		||||
space=yes
 | 
			
		||||
AC_DEFINE(STAT_STATFS2_FS_DATA)
 | 
			
		||||
fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test $space = no; then
 | 
			
		||||
# SVR2
 | 
			
		||||
AC_TRY_CPP([#include <sys/filsys.h>],
 | 
			
		||||
AC_DEFINE(STAT_READ_FILSYS) space=yes)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -n "$list_mounted_fs" && test $space != no; then
 | 
			
		||||
DF_PROG="df"
 | 
			
		||||
# AC_LIBOBJ(fsusage)
 | 
			
		||||
# AC_LIBOBJ(mountlist)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Check for SunOS statfs brokenness wrt partitions 2GB and larger.
 | 
			
		||||
# If <sys/vfs.h> exists and struct statfs has a member named f_spare,
 | 
			
		||||
# enable the work-around code in fsusage.c.
 | 
			
		||||
AC_MSG_CHECKING([for statfs that truncates block counts])
 | 
			
		||||
AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
 | 
			
		||||
[AC_TRY_COMPILE([
 | 
			
		||||
#if !defined(sun) && !defined(__sun)
 | 
			
		||||
choke -- this is a workaround for a Sun-specific problem
 | 
			
		||||
#endif
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/vfs.h>],
 | 
			
		||||
[struct statfs t; long c = *(t.f_spare);],
 | 
			
		||||
fu_cv_sys_truncating_statfs=yes,
 | 
			
		||||
fu_cv_sys_truncating_statfs=no,
 | 
			
		||||
)])
 | 
			
		||||
if test $fu_cv_sys_truncating_statfs = yes; then
 | 
			
		||||
AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS)
 | 
			
		||||
fi
 | 
			
		||||
AC_MSG_RESULT($fu_cv_sys_truncating_statfs)
 | 
			
		||||
 | 
			
		||||
AC_CHECKING(for AFS)
 | 
			
		||||
test -d /afs && AC_DEFINE(AFS)
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
dnl GNOME_SUPPORT_CHECKS
 | 
			
		||||
dnl    Check for various support functions needed by the standard
 | 
			
		||||
dnl    Gnome libraries.  Sets LIBOBJS, might define some macros.
 | 
			
		||||
dnl    This should only be used when building the Gnome libs; 
 | 
			
		||||
dnl    Gnome clients should not need this macro.
 | 
			
		||||
AC_DEFUN([GNOME_SUPPORT_CHECKS],[
 | 
			
		||||
  # we need an `awk' to build `gnomesupport.h'
 | 
			
		||||
  AC_REQUIRE([AC_PROG_AWK])
 | 
			
		||||
 | 
			
		||||
  # this should go away soon
 | 
			
		||||
  need_gnome_support=yes
 | 
			
		||||
 | 
			
		||||
  AC_CHECK_FUNCS(getopt_long,,
 | 
			
		||||
   [AC_LIBOBJ(getopt)
 | 
			
		||||
    AC_LIBOBJ(getopt1)])
 | 
			
		||||
 | 
			
		||||
  # for `scandir'
 | 
			
		||||
  AC_HEADER_DIRENT
 | 
			
		||||
 | 
			
		||||
  # copied from `configure.in' of `libiberty'
 | 
			
		||||
  vars="program_invocation_short_name program_invocation_name sys_errlist"
 | 
			
		||||
  for v in $vars; do
 | 
			
		||||
    AC_MSG_CHECKING([for $v])
 | 
			
		||||
    AC_CACHE_VAL(gnome_cv_var_$v,
 | 
			
		||||
      [AC_TRY_LINK([int *p;], [extern int $v; p = &$v;],
 | 
			
		||||
		   [eval "gnome_cv_var_$v=yes"],
 | 
			
		||||
		   [eval "gnome_cv_var_$v=no"])])
 | 
			
		||||
    if eval "test \"`echo '$gnome_cv_var_'$v`\" = yes"; then
 | 
			
		||||
      AC_MSG_RESULT(yes)
 | 
			
		||||
      n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 | 
			
		||||
      AC_DEFINE_UNQUOTED($n)
 | 
			
		||||
    else
 | 
			
		||||
      AC_MSG_RESULT(no)
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  AC_REPLACE_FUNCS(memmove mkstemp scandir strcasecmp strerror strndup strnlen)
 | 
			
		||||
  AC_REPLACE_FUNCS(strtok_r strtod strtol strtoul vasprintf vsnprintf)
 | 
			
		||||
 | 
			
		||||
  AC_CHECK_FUNCS(realpath,,AC_LIBOBJ(canonicalize))
 | 
			
		||||
 | 
			
		||||
  # to include `error.c' error.c has some HAVE_* checks
 | 
			
		||||
  AC_CHECK_FUNCS(vprintf doprnt strerror_r)
 | 
			
		||||
  # stolen from am_func_error_at_line
 | 
			
		||||
  AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
 | 
			
		||||
  [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
 | 
			
		||||
              am_cv_lib_error_at_line=yes,
 | 
			
		||||
              am_cv_lib_error_at_line=no)])
 | 
			
		||||
  if test $am_cv_lib_error_at_line = no; then
 | 
			
		||||
    AC_LIBOBJ(error)
 | 
			
		||||
  fi
 | 
			
		||||
  
 | 
			
		||||
  # This is required if we declare setreuid () and setregid ().
 | 
			
		||||
  AC_TYPE_UID_T
 | 
			
		||||
 | 
			
		||||
  # see if we need to declare some functions.  Solaris is notorious for
 | 
			
		||||
  # putting functions into the `libc' but not listing them in the headers
 | 
			
		||||
  AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h dirent.h)
 | 
			
		||||
  GCC_NEED_DECLARATIONS(gethostname setreuid setregid getpagesize)
 | 
			
		||||
  GCC_NEED_DECLARATION(scandir,[
 | 
			
		||||
#ifdef HAVE_DIRENT_H
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#endif
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
  AC_SUBST(need_gnome_support)
 | 
			
		||||
 | 
			
		||||
  AM_CONDITIONAL(BUILD_GNOME_SUPPORT, test "$need_gnome_support" = yes)
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
dnl This file is intended for use both internally in libgtop and in every program
 | 
			
		||||
dnl that wants to use it.
 | 
			
		||||
dnl
 | 
			
		||||
dnl It defines the following variables:
 | 
			
		||||
dnl
 | 
			
		||||
dnl * 'libgtop_sysdeps_dir'    - sysdeps dir for libgtop.
 | 
			
		||||
dnl * 'libgtop_use_machine_h'  - some of system dependend parts of libgtop provide
 | 
			
		||||
dnl                              their own header file. In this case we need to
 | 
			
		||||
dnl                              define 'HAVE_GLIBTOP_MACHINE_H'.
 | 
			
		||||
dnl * 'libgtop_need_server'    - is the server really needed? Defines 'NEED_LIBGTOP'
 | 
			
		||||
dnl                              if true; defines conditional 'NEED_LIBGTOP'.
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([LIBGTOP_HACKER_TESTS],[
 | 
			
		||||
	AC_REQUIRE([AC_CANONICAL_HOST])
 | 
			
		||||
 | 
			
		||||
	AC_ARG_WITH(linux-table,
 | 
			
		||||
      [  --with-linux-table      Use the table () function from Martin Baulig],
 | 
			
		||||
	[linux_table="$withval"],[linux_table=auto])
 | 
			
		||||
	case "$host_os" in
 | 
			
		||||
	linux*)
 | 
			
		||||
	  if test $linux_table = yes ; then
 | 
			
		||||
	    AC_CHECK_HEADER(linux/table.h, linux_table=yes, linux_table=no)
 | 
			
		||||
	  elif test $linux_table = auto ; then
 | 
			
		||||
	    AC_MSG_CHECKING(for table function in Linux Kernel)
 | 
			
		||||
	    AC_TRY_RUN([
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <linux/unistd.h>
 | 
			
		||||
#include <linux/table.h>
 | 
			
		||||
 | 
			
		||||
#include <syscall.h>
 | 
			
		||||
 | 
			
		||||
static inline _syscall3 (int, table, int, type, union table *, tbl, const void *, param);
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (void)
 | 
			
		||||
{
 | 
			
		||||
	union table tbl;
 | 
			
		||||
	int ret;
 | 
			
		||||
 | 
			
		||||
	ret = table (TABLE_VERSION, NULL, NULL);
 | 
			
		||||
 | 
			
		||||
	if (ret == -1)
 | 
			
		||||
		exit (-errno);
 | 
			
		||||
 | 
			
		||||
	exit (ret < 1 ? ret : 0);
 | 
			
		||||
}
 | 
			
		||||
], linux_table=yes, linux_table=no, linux_table=no)
 | 
			
		||||
	    AC_MSG_RESULT($linux_table)
 | 
			
		||||
	  fi
 | 
			
		||||
	  if test $linux_table = yes ; then
 | 
			
		||||
	    AC_DEFINE(HAVE_LINUX_TABLE)
 | 
			
		||||
	  fi
 | 
			
		||||
	  ;;
 | 
			
		||||
	esac
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
 | 
			
		||||
	AC_REQUIRE([AC_CANONICAL_HOST])
 | 
			
		||||
 | 
			
		||||
	AC_SUBST(libgtop_sysdeps_dir)
 | 
			
		||||
	AC_SUBST(libgtop_use_machine_h)
 | 
			
		||||
	AC_SUBST(libgtop_need_server)
 | 
			
		||||
 | 
			
		||||
	AC_ARG_WITH(libgtop-examples,
 | 
			
		||||
	[  --with-libgtop-examples Build the libgtop examples (default=no)],[
 | 
			
		||||
	build_examples="$withval"], [build_examples=no])
 | 
			
		||||
 | 
			
		||||
	AM_CONDITIONAL(EXAMPLES, test x"$build_examples" = xyes)
 | 
			
		||||
 | 
			
		||||
	AC_ARG_ENABLE(hacker-mode,
 | 
			
		||||
	[  --enable-hacker-mode    Enable building of unstable sysdeps],
 | 
			
		||||
	[hacker_mode="$enableval"], [hacker_mode=no])
 | 
			
		||||
 | 
			
		||||
	AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
 | 
			
		||||
 | 
			
		||||
	linux_table=auto
 | 
			
		||||
	if test x$hacker_mode = xyes ; then
 | 
			
		||||
	  LIBGTOP_HACKER_TESTS
 | 
			
		||||
	fi
 | 
			
		||||
	AM_CONDITIONAL(LINUX_TABLE, test $linux_table = yes)
 | 
			
		||||
 | 
			
		||||
	AC_ARG_WITH(libgtop-smp,
 | 
			
		||||
	[  --with-libgtop-smp      Enable SMP support (default-auto)],[
 | 
			
		||||
	libgtop_smp="$withval"],[libgtop_smp=auto])
 | 
			
		||||
 | 
			
		||||
	if test $libgtop_smp = auto ; then
 | 
			
		||||
	  AC_MSG_CHECKING(whether to enable SMP support)
 | 
			
		||||
	  case "$host_os" in
 | 
			
		||||
	  linux*)
 | 
			
		||||
	    libgtop_smp=yes
 | 
			
		||||
	    ;;
 | 
			
		||||
	  aix*)
 | 
			
		||||
	    libgtop_smp=yes
 | 
			
		||||
	    ;;
 | 
			
		||||
	  *)
 | 
			
		||||
	    libgtop_smp=no
 | 
			
		||||
	    ;;
 | 
			
		||||
	  esac
 | 
			
		||||
	  AC_MSG_RESULT($libgtop_smp)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if test $libgtop_smp = yes ; then
 | 
			
		||||
	  AC_DEFINE(HAVE_LIBGTOP_SMP)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	AM_CONDITIONAL(LIBGTOP_SMP, test $libgtop_smp = yes)
 | 
			
		||||
 | 
			
		||||
	AC_MSG_CHECKING(for libgtop sysdeps directory)
 | 
			
		||||
 | 
			
		||||
	case "$host_os" in
 | 
			
		||||
	linux*)
 | 
			
		||||
	  if test x$linux_table = xyes ; then
 | 
			
		||||
	    libgtop_sysdeps_dir=kernel
 | 
			
		||||
	    libgtop_use_machine_h=no
 | 
			
		||||
	  else
 | 
			
		||||
	    libgtop_sysdeps_dir=linux
 | 
			
		||||
	    libgtop_use_machine_h=no
 | 
			
		||||
	    libgtop_have_sysinfo=yes
 | 
			
		||||
	  fi
 | 
			
		||||
	  libgtop_need_server=no
 | 
			
		||||
	  ;;
 | 
			
		||||
	freebsd*|netbsd*|openbsd*|bsdi*)
 | 
			
		||||
	  libgtop_sysdeps_dir=freebsd
 | 
			
		||||
	  libgtop_use_machine_h=yes
 | 
			
		||||
	  libgtop_need_server=yes
 | 
			
		||||
	  libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
 | 
			
		||||
	  ;;
 | 
			
		||||
	solaris*)
 | 
			
		||||
	  libgtop_sysdeps_dir=solaris
 | 
			
		||||
	  libgtop_use_machine_h=yes
 | 
			
		||||
	  libgtop_need_server=yes
 | 
			
		||||
	  libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
 | 
			
		||||
	  ;;
 | 
			
		||||
        aix*)
 | 
			
		||||
	  libgtop_sysdeps_dir=aix
 | 
			
		||||
	  libgtop_use_machine_h=yes
 | 
			
		||||
	  libgtop_need_server=yes
 | 
			
		||||
	  libgtop_have_sysinfo=yes
 | 
			
		||||
	  libgtop_postinstall='chgrp system $(bindir)/libgtop_server && chmod g+s $(bindir)/libgtop_server2'
 | 
			
		||||
          ;;
 | 
			
		||||
	*)
 | 
			
		||||
	  if test x$hacker_mode = xyes ; then
 | 
			
		||||
	    case "$host_os" in
 | 
			
		||||
	    sunos4*)
 | 
			
		||||
	      #Please note that this port is obsolete and not working at
 | 
			
		||||
	      #all. It is only useful for people who want to fix it ... :-)
 | 
			
		||||
	      libgtop_sysdeps_dir=sun4
 | 
			
		||||
	      libgtop_use_machine_h=yes
 | 
			
		||||
	      libgtop_need_server=yes
 | 
			
		||||
	      ;;
 | 
			
		||||
	    osf*)
 | 
			
		||||
	      libgtop_sysdeps_dir=osf1
 | 
			
		||||
	      libgtop_use_machine_h=yes
 | 
			
		||||
	      libgtop_need_server=yes
 | 
			
		||||
	      ;;
 | 
			
		||||
	    *)
 | 
			
		||||
	      libgtop_sysdeps_dir=stub
 | 
			
		||||
	      libgtop_use_machine_h=no
 | 
			
		||||
	      libgtop_need_server=no
 | 
			
		||||
	      ;;
 | 
			
		||||
	    esac
 | 
			
		||||
	  else
 | 
			
		||||
	    libgtop_sysdeps_dir=stub
 | 
			
		||||
	    libgtop_use_machine_h=no
 | 
			
		||||
	    libgtop_need_server=no
 | 
			
		||||
	  fi
 | 
			
		||||
	  ;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	test -z "$libgtop_postinstall" && libgtop_postinstall=:
 | 
			
		||||
 | 
			
		||||
	AC_MSG_RESULT($libgtop_sysdeps_dir)
 | 
			
		||||
 | 
			
		||||
	AC_SUBST(libgtop_sysdeps_dir)
 | 
			
		||||
	AC_SUBST(libgtop_postinstall)
 | 
			
		||||
	AC_SUBST(libgtop_have_sysinfo)
 | 
			
		||||
 | 
			
		||||
	case "$host_os" in
 | 
			
		||||
	*bsd*)
 | 
			
		||||
	  AC_CHECK_HEADERS(net/if_var.h)
 | 
			
		||||
	  AC_MSG_CHECKING([for I4B])
 | 
			
		||||
	  AC_TRY_COMPILE([
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_types.h>
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_NET_IF_VAR_H
 | 
			
		||||
#include <net/if_var.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <net/netisr.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
 | 
			
		||||
#if defined(__FreeBSD__) || defined(__NetBSD__)
 | 
			
		||||
#include <net/if_sppp.h>
 | 
			
		||||
#else
 | 
			
		||||
#include <i4b/sppp/if_sppp.h>
 | 
			
		||||
#endif
 | 
			
		||||
],[
 | 
			
		||||
	size_t size = sizeof (struct sppp);
 | 
			
		||||
], have_i4b=yes, have_i4b=no)
 | 
			
		||||
	  AC_MSG_RESULT($have_i4b)
 | 
			
		||||
	  if test x$have_i4b = xyes; then
 | 
			
		||||
	    AC_DEFINE(HAVE_I4B)
 | 
			
		||||
	    AC_MSG_CHECKING([for I4B accounting])
 | 
			
		||||
	    AC_TRY_COMPILE([
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
 | 
			
		||||
#include <net/if.h>
 | 
			
		||||
#include <net/if_types.h>
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_NET_IF_VAR_H
 | 
			
		||||
#include <net/if_var.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <net/netisr.h>
 | 
			
		||||
#include <net/route.h>
 | 
			
		||||
 | 
			
		||||
#if defined(__FreeBSD__) || defined(__NetBSD__)
 | 
			
		||||
#include <net/if_sppp.h>
 | 
			
		||||
#else
 | 
			
		||||
#include <i4b/sppp/if_sppp.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <machine/i4b_acct.h>
 | 
			
		||||
],[
 | 
			
		||||
	size_t size = sizeof (struct i4bisppp_softc);
 | 
			
		||||
], have_i4b_acct=yes, have_i4b_acct=no)
 | 
			
		||||
	    AC_MSG_RESULT($have_i4b_acct)
 | 
			
		||||
	    if test x$have_i4b_acct = xyes ; then
 | 
			
		||||
	      AC_DEFINE(HAVE_I4B_ACCT)
 | 
			
		||||
	    else
 | 
			
		||||
	      AC_WARN([
 | 
			
		||||
*** I4B accounting disabled - you won't get any PPP statistics.
 | 
			
		||||
*** Read "misc/i4b_acct.txt" in the LibGTop source directory
 | 
			
		||||
*** to see how to enable it.])
 | 
			
		||||
	    fi
 | 
			
		||||
	  fi
 | 
			
		||||
	  ;;
 | 
			
		||||
	linux*)
 | 
			
		||||
	  os_major_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
 | 
			
		||||
	    sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
 | 
			
		||||
	  os_minor_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
 | 
			
		||||
	    sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
 | 
			
		||||
	  os_micro_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
 | 
			
		||||
	    sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
 | 
			
		||||
	  os_version_expr="$os_major_version 65536 * $os_minor_version 256 * + $os_micro_version + p q"
 | 
			
		||||
 | 
			
		||||
	  AC_CHECK_HEADERS(linux/version.h, have_linux_version_h=yes,
 | 
			
		||||
	    have_linux_version_h=no)
 | 
			
		||||
 | 
			
		||||
	  if test x$have_linux_version_h = xyes ; then
 | 
			
		||||
	    version_code=`cat /usr/include/linux/version.h | \
 | 
			
		||||
	      grep \#define | grep LINUX_VERSION_CODE`
 | 
			
		||||
	    os_version_code=`echo $version_code | \
 | 
			
		||||
	      sed 's/^.*LINUX_VERSION_CODE[[ \t]]*\([[0-9]]*\).*$/\1/'`
 | 
			
		||||
	  else
 | 
			
		||||
	    os_version_code=`echo "$os_version_expr" | dc`
 | 
			
		||||
	  fi
 | 
			
		||||
 | 
			
		||||
	  AC_MSG_CHECKING(for Linux kernel version code)
 | 
			
		||||
	  AC_DEFINE_UNQUOTED(GLIBTOP_LINUX_VERSION_CODE, $os_version_code)
 | 
			
		||||
	  AC_MSG_RESULT($os_version_code)
 | 
			
		||||
	  ;;
 | 
			
		||||
	solaris*)
 | 
			
		||||
	  os_major_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]\)\.*\([[0-9]]*\)/\1/'`
 | 
			
		||||
	  os_minor_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]\)\.*\([[0-9]]*\)/\2/'`
 | 
			
		||||
	  os_micro_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]\)\.*\([[0-9]]*\)/\3/'`
 | 
			
		||||
	  test -z "$os_micro_version" && os_micro_version=0
 | 
			
		||||
	  os_version_expr="$os_major_version 100 * $os_minor_version 10 * + $os_micro_version + p q"
 | 
			
		||||
	  os_version_code=`echo "$os_version_expr" | dc`
 | 
			
		||||
 | 
			
		||||
	  AC_MSG_CHECKING(for Solaris release code)
 | 
			
		||||
	  AC_DEFINE_UNQUOTED(GLIBTOP_SOLARIS_RELEASE, $os_version_code)
 | 
			
		||||
	  AC_MSG_RESULT($os_version_code)
 | 
			
		||||
	  ;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	AC_MSG_CHECKING(for machine.h in libgtop sysdeps dir)
 | 
			
		||||
	AC_MSG_RESULT($libgtop_use_machine_h)
 | 
			
		||||
 | 
			
		||||
	AC_MSG_CHECKING(whether we need libgtop)
 | 
			
		||||
	AC_MSG_RESULT($libgtop_need_server)
 | 
			
		||||
 | 
			
		||||
	if test x$libgtop_need_server = xyes ; then
 | 
			
		||||
	  AC_DEFINE(NEED_LIBGTOP)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if test x$libgtop_use_machine_h = xyes ; then
 | 
			
		||||
	  AC_DEFINE(HAVE_GLIBTOP_MACHINE_H)
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	AM_CONDITIONAL(NEED_LIBGTOP, test x$libgtop_need_server = xyes)
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
@@ -14,4 +14,8 @@ PKG_NAME="Gnome Top Library"
 | 
			
		||||
    exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
. $srcdir/macros/autogen.sh
 | 
			
		||||
which gnome-autogen.sh || {
 | 
			
		||||
    echo "You need to install gnome-common from the GNOME CVS"
 | 
			
		||||
    exit 1
 | 
			
		||||
}
 | 
			
		||||
USE_GNOME2_MACROS=1 . gnome-autogen.sh
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								backends/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								backends/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
.deps
 | 
			
		||||
.libs
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
*.lo
 | 
			
		||||
							
								
								
									
										15
									
								
								backends/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								backends/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
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
 | 
			
		||||
							
								
								
									
										7
									
								
								backends/common/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								backends/common/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
.deps
 | 
			
		||||
.libs
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
*.lo
 | 
			
		||||
*.la
 | 
			
		||||
marshal.c
 | 
			
		||||
							
								
								
									
										42
									
								
								backends/common/ChangeLog
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								backends/common/ChangeLog
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
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'.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										47
									
								
								backends/common/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								backends/common/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										61
									
								
								backends/common/backend-common.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								backends/common/backend-common.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
/* -*- 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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										37
									
								
								backends/common/backend-common.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								backends/common/backend-common.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
/* -*- 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
 | 
			
		||||
							
								
								
									
										13
									
								
								backends/common/libgtop-common.backend
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								backends/common/libgtop-common.backend
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?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>
 | 
			
		||||
							
								
								
									
										175
									
								
								backends/common/marshal.pl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								backends/common/marshal.pl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,175 @@
 | 
			
		||||
#!/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 '';
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								backends/server/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								backends/server/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
.deps
 | 
			
		||||
.libs
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
*.lo
 | 
			
		||||
*.la
 | 
			
		||||
marshal.c
 | 
			
		||||
demarshal.c
 | 
			
		||||
libgtop_server
 | 
			
		||||
command.h
 | 
			
		||||
							
								
								
									
										85
									
								
								backends/server/ChangeLog
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								backends/server/ChangeLog
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
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'.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										85
									
								
								backends/server/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								backends/server/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										113
									
								
								backends/server/backend-server.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								backends/server/backend-server.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
			
		||||
/* -*- 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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										66
									
								
								backends/server/backend-server.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								backends/server/backend-server.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
/* -*- 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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										100
									
								
								backends/server/command.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								backends/server/command.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
/* -*- 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;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										59
									
								
								backends/server/command.h.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								backends/server/command.h.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
/* -*- 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
 | 
			
		||||
							
								
								
									
										76
									
								
								backends/server/command.pl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								backends/server/command.pl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
#!/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;
 | 
			
		||||
							
								
								
									
										386
									
								
								backends/server/demarshal.pl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										386
									
								
								backends/server/demarshal.pl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,386 @@
 | 
			
		||||
#!/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;
 | 
			
		||||
							
								
								
									
										114
									
								
								backends/server/io.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								backends/server/io.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
			
		||||
/* -*- 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;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								backends/server/libgtop-server.backend
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								backends/server/libgtop-server.backend
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?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>
 | 
			
		||||
							
								
								
									
										305
									
								
								backends/server/marshal.pl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										305
									
								
								backends/server/marshal.pl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,305 @@
 | 
			
		||||
#!/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 '';
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										46
									
								
								backends/server/read.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								backends/server/read.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
/* -*- 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);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										58
									
								
								backends/server/read_data.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								backends/server/read_data.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
/* -*- 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;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										190
									
								
								backends/server/server.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								backends/server/server.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,190 @@
 | 
			
		||||
/* -*- 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);
 | 
			
		||||
    }		
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										85
									
								
								backends/server/server.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								backends/server/server.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
 | 
			
		||||
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 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
 | 
			
		||||
							
								
								
									
										62
									
								
								backends/server/version.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								backends/server/version.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
/* -*- 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");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								backends/server/write.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								backends/server/write.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
/* -*- 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);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								backends/sysdeps/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								backends/sysdeps/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
.deps
 | 
			
		||||
.libs
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
*.lo
 | 
			
		||||
*.la
 | 
			
		||||
marshal.c
 | 
			
		||||
							
								
								
									
										60
									
								
								backends/sysdeps/ChangeLog
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								backends/sysdeps/ChangeLog
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										47
									
								
								backends/sysdeps/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								backends/sysdeps/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										76
									
								
								backends/sysdeps/backend-sysdeps.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								backends/sysdeps/backend-sysdeps.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
/* -*- 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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										37
									
								
								backends/sysdeps/backend-sysdeps.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								backends/sysdeps/backend-sysdeps.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
/* -*- 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
 | 
			
		||||
							
								
								
									
										13
									
								
								backends/sysdeps/libgtop-sysdeps.backend
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								backends/sysdeps/libgtop-sysdeps.backend
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?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>
 | 
			
		||||
							
								
								
									
										195
									
								
								backends/sysdeps/marshal.pl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										195
									
								
								backends/sysdeps/marshal.pl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,195 @@
 | 
			
		||||
#!/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 '';
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										224
									
								
								configure.in
									
									
									
									
									
								
							
							
						
						
									
										224
									
								
								configure.in
									
									
									
									
									
								
							@@ -5,19 +5,32 @@ dnl
 | 
			
		||||
AC_INIT(copyright.txt)
 | 
			
		||||
AM_CONFIG_HEADER(config.h)
 | 
			
		||||
AC_CANONICAL_SYSTEM
 | 
			
		||||
# Making releases:
 | 
			
		||||
#   LIBGTOP_MICRO_VERSION += 1;
 | 
			
		||||
#   LIBGTOP_INTERFACE_AGE += 1;
 | 
			
		||||
#   LIBGTOP_BINARY_AGE += 1;
 | 
			
		||||
# if any functions have been added, set LIBGTOP_INTERFACE_AGE to 0.
 | 
			
		||||
# if backwards compatibility has been broken,
 | 
			
		||||
# set LIBGTOP_BINARY_AGE and LIBGTOP_INTERFACE_AGE to 0.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
dnl This is required at several places
 | 
			
		||||
AC_CHECK_PROG(ac_dc_found, dc, yes, no)
 | 
			
		||||
if test x$ac_dc_found != xyes ; then
 | 
			
		||||
AC_MSG_ERROR([
 | 
			
		||||
*** The "dc" utility was not found on your system.
 | 
			
		||||
***
 | 
			
		||||
*** When using RedHat Linux, you need to install the "bc" package.
 | 
			
		||||
***])
 | 
			
		||||
fi
 | 
			
		||||
LIBGTOP_MAJOR_VERSION=2
 | 
			
		||||
LIBGTOP_MINOR_VERSION=0
 | 
			
		||||
LIBGTOP_MICRO_VERSION=8
 | 
			
		||||
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
 | 
			
		||||
AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION)
 | 
			
		||||
LIBGTOP_INTERFACE_AGE=8
 | 
			
		||||
LIBGTOP_BINARY_AGE=8
 | 
			
		||||
 | 
			
		||||
. $srcdir/LIBGTOP-VERSION
 | 
			
		||||
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
 | 
			
		||||
# you can set this to `-snap' for instance to create
 | 
			
		||||
# a `libgtop-1.x.y-snap.tar.gz' tarball.
 | 
			
		||||
LIBGTOP_VERSION_SUFFIX=
 | 
			
		||||
 | 
			
		||||
# Increase each time you change the client/server protocol.
 | 
			
		||||
LIBGTOP_SERVER_VERSION=5
 | 
			
		||||
 | 
			
		||||
# Version code calculation
 | 
			
		||||
LIBGTOP_VERSION_CODE=`expr $LIBGTOP_MAJOR_VERSION \* 1000000 + $LIBGTOP_MINOR_VERSION \* 1000 + $LIBGTOP_MICRO_VERSION`
 | 
			
		||||
 | 
			
		||||
AC_SUBST(LIBGTOP_MAJOR_VERSION)
 | 
			
		||||
AC_SUBST(LIBGTOP_MINOR_VERSION)
 | 
			
		||||
@@ -27,6 +40,7 @@ AC_SUBST(LIBGTOP_BINARY_AGE)
 | 
			
		||||
AC_SUBST(LIBGTOP_SERVER_VERSION)
 | 
			
		||||
AC_SUBST(LIBGTOP_VERSION)
 | 
			
		||||
AC_SUBST(LIBGTOP_VERSION_CODE)
 | 
			
		||||
AC_SUBST(LIBGTOP_VERSION_SUFFIX)
 | 
			
		||||
 | 
			
		||||
# libtool versioning
 | 
			
		||||
LT_RELEASE=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION
 | 
			
		||||
@@ -40,12 +54,16 @@ AC_SUBST(LT_CURRENT)
 | 
			
		||||
AC_SUBST(LT_REVISION)
 | 
			
		||||
AC_SUBST(LT_AGE)
 | 
			
		||||
 | 
			
		||||
AM_ACLOCAL_INCLUDE(. macros)
 | 
			
		||||
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I ."
 | 
			
		||||
 | 
			
		||||
AC_ISC_POSIX
 | 
			
		||||
AC_PROG_CC
 | 
			
		||||
AC_STDC_HEADERS
 | 
			
		||||
AC_ARG_PROGRAM
 | 
			
		||||
dnl AC_ARG_PROGRAM
 | 
			
		||||
 | 
			
		||||
dnl We need this at some places.
 | 
			
		||||
libgtop_top_builddir=`pwd`
 | 
			
		||||
AC_SUBST(libgtop_top_builddir)
 | 
			
		||||
 | 
			
		||||
dnl We don't use `AC_PROG_AWK' since it checks for mawk first which
 | 
			
		||||
dnl does not work for libgtop.
 | 
			
		||||
@@ -60,10 +78,8 @@ AC_CHECK_TOOL(CC,gcc)
 | 
			
		||||
AC_CHECK_TOOL(RANLIB,ranlib)
 | 
			
		||||
AC_CHECK_TOOL(AS,as)
 | 
			
		||||
AC_CHECK_TOOL(AR,ar)
 | 
			
		||||
AC_CHECK_TOOL(NM,nm)
 | 
			
		||||
 | 
			
		||||
NM=`which $NM`
 | 
			
		||||
export CC CXX RANLIB LD AS AR NM
 | 
			
		||||
export CC CXX RANLIB LD AS AR
 | 
			
		||||
 | 
			
		||||
AC_PROG_INSTALL
 | 
			
		||||
AC_PROG_LN_S
 | 
			
		||||
@@ -74,37 +90,44 @@ export cross_compiling
 | 
			
		||||
AM_PROG_LIBTOOL
 | 
			
		||||
 | 
			
		||||
dnl Let the user enable compiler warnings
 | 
			
		||||
GNOME_COMPILE_WARNINGS
 | 
			
		||||
dnl GNOME_COMPILE_WARNINGS
 | 
			
		||||
 | 
			
		||||
GNOME_INIT_HOOK(gnome_found=yes)
 | 
			
		||||
dnl GNOME_INIT_HOOK(gnome_found=yes)
 | 
			
		||||
 | 
			
		||||
if test "x$gnome_found" != xyes; then
 | 
			
		||||
  if test "x$want_gnome" != xno ; then
 | 
			
		||||
    AC_MSG_ERROR([
 | 
			
		||||
*** GNOME was not found on this system. ***
 | 
			
		||||
dnl if test "x$gnome_found" != xyes; then
 | 
			
		||||
dnl   if test "x$want_gnome" != xno ; then
 | 
			
		||||
dnl     AC_MSG_ERROR([
 | 
			
		||||
dnl *** GNOME was not found on this system. ***
 | 
			
		||||
dnl 
 | 
			
		||||
dnl *** If you want to use LibGTop without GNOME, you need
 | 
			
		||||
dnl *** to give configure the --without-gnome parameter.
 | 
			
		||||
dnl ])
 | 
			
		||||
dnl   else
 | 
			
		||||
dnl     AC_DEFINE(WITHOUT_GNOME)
 | 
			
		||||
dnl   fi
 | 
			
		||||
dnl   GNOME_SUPPORT_CHECKS
 | 
			
		||||
dnl else
 | 
			
		||||
dnl   if test "x$want_gnome" != xno ; then
 | 
			
		||||
dnl     AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false)
 | 
			
		||||
dnl   else
 | 
			
		||||
dnl     GNOME_SUPPORT_CHECKS
 | 
			
		||||
dnl   fi
 | 
			
		||||
dnl fi
 | 
			
		||||
 | 
			
		||||
*** If you want to use LibGTop without GNOME, you need
 | 
			
		||||
*** to give configure the --without-gnome parameter.
 | 
			
		||||
])
 | 
			
		||||
  else
 | 
			
		||||
    AC_DEFINE(WITHOUT_GNOME)
 | 
			
		||||
  fi
 | 
			
		||||
  GNOME_SUPPORT_CHECKS
 | 
			
		||||
else
 | 
			
		||||
  AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false)
 | 
			
		||||
  AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
 | 
			
		||||
fi
 | 
			
		||||
AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false)
 | 
			
		||||
 | 
			
		||||
AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
 | 
			
		||||
 | 
			
		||||
GNOME_LIBGTOP_SYSDEPS
 | 
			
		||||
GNOME_LIBGTOP_TYPES
 | 
			
		||||
 | 
			
		||||
AC_ARG_WITH(libgtop-guile,
 | 
			
		||||
[  --with-libgtop-guile    Build the libgtop guile interface (default=no)],
 | 
			
		||||
[build_guile="$withval"], [build_guile=yes])
 | 
			
		||||
dnl AC_ARG_WITH(libgtop-guile,
 | 
			
		||||
dnl [  --with-libgtop-guile    Build the libgtop guile interface (default=no)],
 | 
			
		||||
dnl [build_guile="$withval"], [build_guile=yes])
 | 
			
		||||
 | 
			
		||||
if test x$build_guile != xno ; then
 | 
			
		||||
  GNOME_CHECK_GUILE
 | 
			
		||||
fi
 | 
			
		||||
dnl if test x$build_guile != xno ; then
 | 
			
		||||
dnl  GNOME_CHECK_GUILE
 | 
			
		||||
dnl fi
 | 
			
		||||
 | 
			
		||||
AC_ARG_WITH(libgtop-inodedb,
 | 
			
		||||
[  --with-libgtop-inodedb  Build the inodedb stuff (default=no)],
 | 
			
		||||
@@ -147,11 +170,14 @@ else
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test "x$enable_static" != xno; then
 | 
			
		||||
  static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static $guile_static_examples $smp_static_examples"
 | 
			
		||||
  static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $guile_static_examples $smp_static_examples"
 | 
			
		||||
else
 | 
			
		||||
  static_targets=""
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
 | 
			
		||||
AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes)
 | 
			
		||||
 | 
			
		||||
AC_SUBST(static_targets)
 | 
			
		||||
AC_SUBST(smp_examples)
 | 
			
		||||
AC_SUBST(guile_examples)
 | 
			
		||||
@@ -159,11 +185,17 @@ AC_SUBST(guile_subdirs)
 | 
			
		||||
 | 
			
		||||
AM_PROG_LIBTOOL
 | 
			
		||||
 | 
			
		||||
AM_PATH_GLIB(1.2.0,,AC_MSG_ERROR(GLIB >= 1.2.0 is required for LibGTop))
 | 
			
		||||
GLIB_REQUIRED=2.0.0
 | 
			
		||||
 | 
			
		||||
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
 | 
			
		||||
AC_SUBST(GLIB_CFLAGS)
 | 
			
		||||
AC_SUBST(GLIB_LIBS)
 | 
			
		||||
 | 
			
		||||
dnl (1.2.0,,AC_MSG_ERROR(GLIB >= 1.2.0 is required for LibGTop))
 | 
			
		||||
 | 
			
		||||
dnl You need to uncomment the following line if you want to use
 | 
			
		||||
dnl libGTop without Gnome.
 | 
			
		||||
dnl GNOME_SUPPORT_CHECKS
 | 
			
		||||
GNOME_SUPPORT_CHECKS
 | 
			
		||||
 | 
			
		||||
dnl Checks for typedefs, structures, and compiler characteristics.
 | 
			
		||||
AC_C_CONST
 | 
			
		||||
@@ -181,23 +213,65 @@ AC_CHECK_TYPE(ssize_t, int)
 | 
			
		||||
AC_CHECK_HEADERS(memory.h)
 | 
			
		||||
AC_CHECK_HEADERS(string.h strings.h, break)
 | 
			
		||||
AC_REPLACE_FUNCS(strerror)
 | 
			
		||||
AC_CHECK_LIB(kvm, kvm_open)
 | 
			
		||||
 | 
			
		||||
dnl dlopen() and dlsym()
 | 
			
		||||
DL_LIB=
 | 
			
		||||
AC_CHECK_FUNCS(dlopen,,[
 | 
			
		||||
  AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl", [
 | 
			
		||||
    AC_CHECK_LIB(dld, shl_load, DL_LIB="-ldld", [
 | 
			
		||||
      AC_CHECK_FUNCS(dlopen, DL_LIB="", DL_LIB="")
 | 
			
		||||
    ])
 | 
			
		||||
  ])
 | 
			
		||||
])
 | 
			
		||||
oLIBS="$LIBS"
 | 
			
		||||
LIBS="$LIBS $DL_LIB"
 | 
			
		||||
AC_CHECK_FUNCS(dlerror,,)
 | 
			
		||||
LIBS="$oLIBS"
 | 
			
		||||
AC_SUBST(DL_LIB)
 | 
			
		||||
 | 
			
		||||
dnl AIX
 | 
			
		||||
AH_TEMPLATE(HAVE_VMGETINFO, [Define to 1 if you have the `vmgetinfo' function in libperfstat])
 | 
			
		||||
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
 | 
			
		||||
 | 
			
		||||
dnl Solaris
 | 
			
		||||
AC_CHECK_LIB(kstat, kstat_open)
 | 
			
		||||
AC_CHECK_FUNCS(getloadavg swapctl)
 | 
			
		||||
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
 | 
			
		||||
 | 
			
		||||
dnl Some versions of Solaris require -lelf for -lkvm
 | 
			
		||||
AC_CHECK_LIB(kvm, kvm_open,[
 | 
			
		||||
  LIBS="-lkvm $LIBS"
 | 
			
		||||
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
 | 
			
		||||
   AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
 | 
			
		||||
   [ac_save_LIBS="$LIBS"
 | 
			
		||||
    LIBS="-lkvm -lelf $LIBS"
 | 
			
		||||
    AC_TRY_LINK([char kvm_open();], [kvm_open()],
 | 
			
		||||
                ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
 | 
			
		||||
    LIBS="$ac_save_LIBS"
 | 
			
		||||
   ])
 | 
			
		||||
   if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
 | 
			
		||||
     AC_MSG_RESULT(yes)
 | 
			
		||||
     LIBS="-lkvm -lelf $LIBS"
 | 
			
		||||
   else
 | 
			
		||||
     AC_MSG_RESULT(no)
 | 
			
		||||
   fi
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
dnl For DEC OSF1
 | 
			
		||||
AC_CHECK_LIB(mach, vm_statistics)
 | 
			
		||||
 | 
			
		||||
dnl For some broken libc5 systems (Debian 1.3)                                                           
 | 
			
		||||
saved_CFLAGS=$CFLAGS                                                                                     
 | 
			
		||||
CFLAGS="$CFLAGS -D_GNU_SOURCE"                                                                           
 | 
			
		||||
dnl For some broken libc5 systems (Debian 1.3)
 | 
			
		||||
saved_CFLAGS=$CFLAGS
 | 
			
		||||
CFLAGS="$CFLAGS -D_GNU_SOURCE"
 | 
			
		||||
GCC_NEED_DECLARATION(program_invocation_name, [                           
 | 
			
		||||
#include <errno.h>                                                                                       
 | 
			
		||||
#include <stdio.h>                                                                                       
 | 
			
		||||
#include <stdlib.h>                                                                                      
 | 
			
		||||
#include <string.h>                                                                                      
 | 
			
		||||
])                                                                                                       
 | 
			
		||||
CFLAGS=$saved_CFLAGS                                                                                     
 | 
			
		||||
                                                                                                         
 | 
			
		||||
dnl Check for Internet sockets.
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
CFLAGS=$saved_CFLAGS
 | 
			
		||||
 | 
			
		||||
AC_CHECK_FUNC(socket,
 | 
			
		||||
 [AC_CHECK_HEADER(netinet/in.h,
 | 
			
		||||
   [AC_CHECK_HEADER(arpa/inet.h, [
 | 
			
		||||
@@ -219,9 +293,13 @@ AC_TYPE_SIGNAL
 | 
			
		||||
AC_FUNC_STRFTIME
 | 
			
		||||
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
 | 
			
		||||
 | 
			
		||||
dnl ## all 'es_??' are only needed for format numbers different of 'es'
 | 
			
		||||
ALL_LINGUAS="de es es_DO es_GT es_HN es_MX es_PA es_PE es_SV fr ko no ja"
 | 
			
		||||
AM_GNOME_GETTEXT
 | 
			
		||||
ALL_LINGUAS="am ar az be bg bn ca cs cy da de el es et fa fi fr ga gl he hi hu id it ja ko lt lv mk ml mn ms nl nn no pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta tr uk vi zh_CN zh_TW"
 | 
			
		||||
 | 
			
		||||
GETTEXT_PACKAGE=libgtop-2.0
 | 
			
		||||
AC_SUBST(GETTEXT_PACKAGE)
 | 
			
		||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
 | 
			
		||||
 | 
			
		||||
AM_GLIB_GNU_GETTEXT
 | 
			
		||||
 | 
			
		||||
AC_PATH_XTRA
 | 
			
		||||
 | 
			
		||||
@@ -265,7 +343,7 @@ if test "x$gnome_found" = xyes ; then
 | 
			
		||||
  LIBSUPPORT="$GNOME_LIBDIR -lgnomesupport"
 | 
			
		||||
  SUPPORTINCS="$GNOME_INCLUDEDIR"
 | 
			
		||||
else
 | 
			
		||||
  LIBSUPPORT='$(top_builddir)/support/libgnomesupport.la'
 | 
			
		||||
  LIBSUPPORT='$(top_builddir)/support/libgnomesupport-2.0.la'
 | 
			
		||||
  SUPPORTINCS='-DNEED_GNOMESUPPORT_H -I$(top_builddir)/support -I$(top_srcdir)/support'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -281,7 +359,7 @@ AC_SUBST(SUPPORTINCS)
 | 
			
		||||
 | 
			
		||||
dnl These definitions are expanded in make.
 | 
			
		||||
LIBGTOP_LIBS='-L$(libdir)'
 | 
			
		||||
LIBGTOP_INCS='-I$(includedir)'
 | 
			
		||||
LIBGTOP_INCS='-I$(includedir)/libgtop-2.0'
 | 
			
		||||
 | 
			
		||||
if test x$libgtop_use_machine_h = xyes ; then
 | 
			
		||||
  LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_GLIBTOP_MACHINE_H"
 | 
			
		||||
@@ -304,13 +382,13 @@ LIBGTOP_INCS="$LIBGTOP_INCS $SUPPORTINCS $GLIB_CFLAGS"
 | 
			
		||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_LIBS"
 | 
			
		||||
LIBGTOP_GUILE_INCS="$LIBGTOP_INCS"
 | 
			
		||||
LIBGTOP_BINDIR='$(bindir)'
 | 
			
		||||
LIBGTOP_SERVER='$(bindir)/libgtop_server'
 | 
			
		||||
LIBGTOP_SERVER='$(bindir)/libgtop_server2'
 | 
			
		||||
 | 
			
		||||
sysdeps_dir="$libgtop_sysdeps_dir"
 | 
			
		||||
AC_SUBST(sysdeps_dir)
 | 
			
		||||
 | 
			
		||||
if test x$ac_cv_guile_found = xyes ; then
 | 
			
		||||
  LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile"
 | 
			
		||||
  LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile-2.0"
 | 
			
		||||
  libgtop_guile_found=yes
 | 
			
		||||
else
 | 
			
		||||
  libgtop_guile_found=no
 | 
			
		||||
@@ -326,11 +404,11 @@ fi
 | 
			
		||||
 | 
			
		||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
 | 
			
		||||
 | 
			
		||||
LIBGTOP_LIBS="$LIBGTOP_LIBS -lgtop -lgtop_sysdeps -lgtop_common"
 | 
			
		||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop -lgtop_sysdeps -lgtop_common"
 | 
			
		||||
LIBGTOP_LIBS="$LIBGTOP_LIBS -lgtop-2.0 -lgtop_sysdeps-2.0 -lgtop_common-2.0"
 | 
			
		||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop-2.0 -lgtop_sysdeps-2.0 -lgtop_common-2.0"
 | 
			
		||||
 | 
			
		||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS -lgtop_names"
 | 
			
		||||
LIBGTOP_GUILE_NAMES_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile_names -lgtop_names"
 | 
			
		||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS -lgtop_names-2.0"
 | 
			
		||||
LIBGTOP_GUILE_NAMES_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile_names-2.0 -lgtop_names-2.0"
 | 
			
		||||
 | 
			
		||||
LIBGTOP_LIBS="$LIBGTOP_LIBS" 
 | 
			
		||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_NAMES_LIBS"
 | 
			
		||||
@@ -354,12 +432,12 @@ else
 | 
			
		||||
  guile_def=""
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -DGLIBTOP_NAMES -I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include -I\$(top_srcdir)/intl $SUPPORTINCS $GLIB_CFLAGS $CFLAGS $X_CFLAGS $guile_def "'-DGTOPLOCALEDIR=\"$(datadir)/locale\" -DLIBGTOP_VERSION=\"'"$LIBGTOP_VERSION"'\" -DLIBGTOP_SERVER_VERSION=\"'"$LIBGTOP_SERVER_VERSION"'\" -DLIBGTOP_SERVER=\"'"$LIBGTOP_SERVER"'\"'
 | 
			
		||||
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -DGLIBTOP_NAMES -I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $SUPPORTINCS $GLIB_CFLAGS $CFLAGS $X_CFLAGS $guile_def "'-DGTOPLOCALEDIR=\"$(datadir)/locale\" -DLIBGTOP_VERSION=\"'"$LIBGTOP_VERSION"'\" -DLIBGTOP_SERVER_VERSION=\"'"$LIBGTOP_SERVER_VERSION"'\" -DLIBGTOP_VERSION_CODE='$LIBGTOP_VERSION_CODE' -DLIBGTOP_SERVER=\"'"$LIBGTOP_SERVER"'\"'
 | 
			
		||||
 | 
			
		||||
AC_SUBST(INCLUDES)
 | 
			
		||||
 | 
			
		||||
AC_SUBST(LIBGTOP_EXTRA_LIBS)
 | 
			
		||||
 | 
			
		||||
AC_SUBST(GLIB_LIBS)
 | 
			
		||||
AC_SUBST(LIBGTOP_LIBS)
 | 
			
		||||
AC_SUBST(LIBGTOP_INCS)
 | 
			
		||||
AC_SUBST(LIBGTOP_NAMES_LIBS)
 | 
			
		||||
@@ -372,8 +450,8 @@ AC_SUBST(LIBGTOP_BINDIR)
 | 
			
		||||
AC_SUBST(LIBGTOP_SERVER)
 | 
			
		||||
 | 
			
		||||
if test x$libgtop_need_server = xyes ; then
 | 
			
		||||
   sysdeps_suid_lib="\$(top_builddir)/sysdeps/\$(sysdeps_dir)/libgtop_sysdeps_suid.la"
 | 
			
		||||
   server_programs='libgtop_server'
 | 
			
		||||
   sysdeps_suid_lib="\$(top_builddir)/sysdeps/\$(sysdeps_dir)/libgtop_sysdeps_suid-2.0.la"
 | 
			
		||||
   server_programs='libgtop_server2'
 | 
			
		||||
else
 | 
			
		||||
   sysdeps_suid_lib=
 | 
			
		||||
   server_programs=
 | 
			
		||||
@@ -385,7 +463,6 @@ AC_OUTPUT([
 | 
			
		||||
Makefile
 | 
			
		||||
libgtop.spec
 | 
			
		||||
po/Makefile.in
 | 
			
		||||
intl/Makefile
 | 
			
		||||
misc/Makefile
 | 
			
		||||
include/Makefile
 | 
			
		||||
include/glibtop/Makefile
 | 
			
		||||
@@ -401,10 +478,15 @@ sysdeps/osf1/Makefile
 | 
			
		||||
sysdeps/linux/Makefile
 | 
			
		||||
sysdeps/kernel/Makefile
 | 
			
		||||
sysdeps/freebsd/Makefile
 | 
			
		||||
sysdeps/solaris/Makefile
 | 
			
		||||
sysdeps/aix/Makefile
 | 
			
		||||
src/Makefile
 | 
			
		||||
src/daemon/Makefile
 | 
			
		||||
src/inodedb/Makefile
 | 
			
		||||
lib/Makefile
 | 
			
		||||
examples/Makefile
 | 
			
		||||
doc/Makefile
 | 
			
		||||
support/Makefile
 | 
			
		||||
macros/Makefile])
 | 
			
		||||
support/gnome-support-2.0.pc
 | 
			
		||||
libgtop-2.0.pc
 | 
			
		||||
])
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								debian/.cvsignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								debian/.cvsignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
control
 | 
			
		||||
rules
 | 
			
		||||
build
 | 
			
		||||
tmp
 | 
			
		||||
*.postinst
 | 
			
		||||
*.debhelper
 | 
			
		||||
*.files
 | 
			
		||||
files
 | 
			
		||||
substvars
 | 
			
		||||
							
								
								
									
										9
									
								
								debian/README.Debian
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								debian/README.Debian
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
LibGTop CVS snapshots for Debian
 | 
			
		||||
--------------------------------
 | 
			
		||||
 | 
			
		||||
This is a debian package made from a stable release of LibGTop, but it
 | 
			
		||||
should be considered "unofficial" since I'm not a Debian Maintainer.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Martin Baulig <martin@home-of-linux.org>, Wed, 16 Feb 2000 16:40:50 +0100
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										121
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,121 @@
 | 
			
		||||
libgtop (1.0.7-1) unstable; urgency=low
 | 
			
		||||
  * New upstream source (1.0.7 "Copenhagen" release)
 | 
			
		||||
  * Non-maintainer upload; since I'm not a Debian maintainer, this is some
 | 
			
		||||
    kind of "unofficial" debian package for LibGTop 1.0.7 - but I think it
 | 
			
		||||
    can be considered stable and working.
 | 
			
		||||
 | 
			
		||||
 -- Martin Baulig <martin@home-of-linux.org>  Wed, 16 Feb 2000 16:40:50 +0100
 | 
			
		||||
 | 
			
		||||
libgtop (1.0.6-1) unstable; urgency=low
 | 
			
		||||
  * New upstream source
 | 
			
		||||
 | 
			
		||||
 -- Ian Lynagh (wibble) <igloo@debian.org>  Wed, 20 Oct 1999 16:16:27 +0100
 | 
			
		||||
 | 
			
		||||
libgtop (1.0.4.5pre1-1) frozen unstable; urgency=low
 | 
			
		||||
  * New upstream source (1.0.5 pre release)
 | 
			
		||||
  * Maintainer e-mail address changed to igloo@debian.org
 | 
			
		||||
 | 
			
		||||
 -- Ian Lynagh (wibble) <igloo@debian.org>  Thu, 30 Sep 1999 22:37:33 +0100
 | 
			
		||||
 | 
			
		||||
libgtop (1.0.4-1) frozen unstable; urgency=low
 | 
			
		||||
  * New upstream source
 | 
			
		||||
  * Removed nasty sed stuff from the rules in favour of make install prefix=...
 | 
			
		||||
  * Added .la files to libgtop-dev
 | 
			
		||||
  * Added info to the copyright file
 | 
			
		||||
  * Wrote simple man page for libgtop-config.
 | 
			
		||||
  * Recompiled with later debhelper so docs go to /usr/share/doc as per FHS
 | 
			
		||||
  * changed infodir to /usr/share/info
 | 
			
		||||
 | 
			
		||||
 -- Ian Lynagh (wibble) <igloo@debian.org>  Mon, 20 Sep 1999 00:06:16 +0100
 | 
			
		||||
 | 
			
		||||
libgtop (1.0.1-2) frozen unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Didn't actually use wildcards in libgtop-dev.files because tar complained
 | 
			
		||||
  * Set section names properly
 | 
			
		||||
 | 
			
		||||
 -- Ian Lynagh <ian@lynagh.demon.co.uk>  Sun,  7 Mar 1999 00:53:50 +0000
 | 
			
		||||
 | 
			
		||||
libgtop (1.0.1-1) frozen unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * SONAME changed back to 1. Fun fun fun.
 | 
			
		||||
  * Added RELNOTES-1.0 to debian/libgtop1.docs and debian/rules
 | 
			
		||||
  * Changed libgtop1.README.Debian to at least make sense
 | 
			
		||||
  * Used wildcards in libgtop-dev.files
 | 
			
		||||
 | 
			
		||||
 -- Ian Lynagh <ian@lynagh.demon.co.uk>  Sun,  7 Mar 1999 00:53:50 +0000
 | 
			
		||||
 | 
			
		||||
libgtop (1.0.1-0.1) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Non-maintainer upload for GNOME 1.0
 | 
			
		||||
 | 
			
		||||
 -- Jules Bean <jules@debian.org>  Thu,  4 Mar 1999 22:34:12 +0000
 | 
			
		||||
 | 
			
		||||
libgtop (0.99.2-0.2) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Oops, forgot some files.
 | 
			
		||||
 | 
			
		||||
 -- Jim Pick <jim@jimpick.com>  Sun, 24 Jan 1999 02:12:24 -0800
 | 
			
		||||
 | 
			
		||||
libgtop (0.99.2-0.1) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Non-maintainer upload.
 | 
			
		||||
  * New upstream source.
 | 
			
		||||
  * SONAME is now 0 again.  Hmmm.
 | 
			
		||||
 | 
			
		||||
 -- Jim Pick <jim@jimpick.com>  Sat, 23 Jan 1999 20:21:38 -0800
 | 
			
		||||
 | 
			
		||||
libgtop (0.26.2-4) frozen unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Upstream changelog installed as changelog
 | 
			
		||||
  * debian/shlibs.local removed in favour of the LD_LIBRARY_PATH line
 | 
			
		||||
 | 
			
		||||
 -- Ian Lynagh <ian@lynagh.demon.co.uk>  Thu, 26 Nov 1998 17:20:24 +0000
 | 
			
		||||
 | 
			
		||||
libgtop (0.26.2-3.1) frozen unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Non-maintainer upload.
 | 
			
		||||
  * Upload to frozen, corrects Bug #29110, Bug #29111, which were
 | 
			
		||||
    already fixed.
 | 
			
		||||
  * Noticed that guile option is no longer being used, so I removed
 | 
			
		||||
    the dependency.
 | 
			
		||||
  * Added changelog (to fix lintian error).
 | 
			
		||||
  * Changed control file to use macro substitutions.  This is a much
 | 
			
		||||
    less error-prone way of building dependencies than doing them by
 | 
			
		||||
    hand.
 | 
			
		||||
  * Added -V option to dh_makeshlibs to put version number on shlibs
 | 
			
		||||
    file.
 | 
			
		||||
  * Added shlibs.local file with null entry for "libgtop 1" (and
 | 
			
		||||
    others) so libgtop1 doesn't declare a relationship on itself.
 | 
			
		||||
 | 
			
		||||
 -- Jim Pick <jim@jimpick.com>  Wed, 25 Nov 1998 12:03:12 -0800
 | 
			
		||||
 | 
			
		||||
libgtop (0.26.2-3) frozen unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * libgtop0 changed to libgtop1
 | 
			
		||||
  * Added an #ifndef strstr around the prototype of strstr in
 | 
			
		||||
    sysdeps/common/mountlist.c as this is a macro under glibc 2.1.
 | 
			
		||||
 | 
			
		||||
 -- Ian Lynagh <ian@lynagh.demon.co.uk>  Sun,  8 Nov 1998 12:06:09 +0000
 | 
			
		||||
 | 
			
		||||
libgtop (0.26.2-2) frozen unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Fixes minor bugs in debian/rules
 | 
			
		||||
 | 
			
		||||
 -- Ian Lynagh <ian@lynagh.demon.co.uk>  Fri, 16 Oct 1998 05:30:16 +0200
 | 
			
		||||
 | 
			
		||||
libgtop (0.26.2-1) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * New upstream version
 | 
			
		||||
  * Non-maintainer release
 | 
			
		||||
 | 
			
		||||
 -- Martin Schulze <joey@finlandia.infodrom.north.de>  Fri, 16 Oct 1998 05:30:16 +0200
 | 
			
		||||
 | 
			
		||||
libgtop (0.26.0-1) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Initial Release.
 | 
			
		||||
 | 
			
		||||
 -- Jim Pick <jim@jimpick.com>  Thu, 24 Sep 1998 18:42:48 -0700
 | 
			
		||||
 | 
			
		||||
Local variables:
 | 
			
		||||
mode: debian-changelog
 | 
			
		||||
End:
 | 
			
		||||
							
								
								
									
										33
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
Source: libgtop@SUFFIX@
 | 
			
		||||
Maintainer: Martin Baulig <martin@home-of-linux.org>
 | 
			
		||||
Section: libs
 | 
			
		||||
Priority: optional
 | 
			
		||||
Standards-Version: 3.0.0
 | 
			
		||||
 | 
			
		||||
Package: libgtop1@SUFFIX@
 | 
			
		||||
Architecture: any
 | 
			
		||||
Section: libs
 | 
			
		||||
Depends: ${shlibs:Depends}
 | 
			
		||||
Description: Portable system access library (part of Gnome)
 | 
			
		||||
 Gnome is the "GNU Network Object Model Environment"
 | 
			
		||||
 .
 | 
			
		||||
 It is a project to build a complete, user-friendly desktop based
 | 
			
		||||
 entirely on free software.
 | 
			
		||||
 .
 | 
			
		||||
 This package contains the gtop libraries which read information about
 | 
			
		||||
 processes and the running systems.
 | 
			
		||||
 | 
			
		||||
Package: libgtop-dev@SUFFIX@
 | 
			
		||||
Architecture: any
 | 
			
		||||
Section: devel
 | 
			
		||||
Depends: libgtop1@SUFFIX@ (= ${Source-Version})
 | 
			
		||||
Description: Dev libraries for the portable system access library (part of Gnome)
 | 
			
		||||
 Gnome is the "GNU Network Object Model Environment"
 | 
			
		||||
 .
 | 
			
		||||
 It is a project to build a complete, user-friendly desktop based
 | 
			
		||||
 entirely on free software.
 | 
			
		||||
 .
 | 
			
		||||
 This package contains the include files and static library for the
 | 
			
		||||
 gtop libraries which read information about processes and the running
 | 
			
		||||
 systems.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										109
									
								
								debian/debconfigure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										109
									
								
								debian/debconfigure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							@@ -0,0 +1,109 @@
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
#
 | 
			
		||||
# debconfigure
 | 
			
		||||
#
 | 
			
		||||
# A script to generate a debian/rules file, with options.
 | 
			
		||||
#
 | 
			
		||||
# By Jim Pick <jim@jimpick.com>, GPL'd of course.
 | 
			
		||||
# Adjusted for LibGTop by Martin Baulig <martin@home-of-linux.org>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if [ ! -r rules.in ]; then
 | 
			
		||||
	echo "Please run the debconfigure script in the debian directory" 1>&2
 | 
			
		||||
	exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
debtype='official'
 | 
			
		||||
prefix='/usr'
 | 
			
		||||
gnomeprefix='/usr'
 | 
			
		||||
localstatedir='/var/lib'
 | 
			
		||||
pkgsuffix=''
 | 
			
		||||
 | 
			
		||||
for dc_option
 | 
			
		||||
do
 | 
			
		||||
    case "$dc_option" in
 | 
			
		||||
	-*=*) dc_optarg=`echo "$dc_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
 | 
			
		||||
	*) dc_optarg= ;;
 | 
			
		||||
    esac
 | 
			
		||||
 | 
			
		||||
    case "$dc_option" in
 | 
			
		||||
 | 
			
		||||
	--clean)
 | 
			
		||||
	    rm -f control rules *~ core *files *menu *substvars *.postinst *.debhelper
 | 
			
		||||
	    exit ;;
 | 
			
		||||
 | 
			
		||||
	--prefix=*)
 | 
			
		||||
	    prefix="$dc_optarg" ;;
 | 
			
		||||
 | 
			
		||||
        --localstatedir=*)
 | 
			
		||||
	    prefix="$dc_optarg" ;;
 | 
			
		||||
 | 
			
		||||
	--pkgsuffix=*)
 | 
			
		||||
	    pkgsuffix="$dc_optarg" ;;
 | 
			
		||||
 | 
			
		||||
	--gnome-prefix=*)
 | 
			
		||||
	    gnomeprefix="$dc_optarg" ;;
 | 
			
		||||
 | 
			
		||||
	--debtype=*)
 | 
			
		||||
	    debtype="$dc_optarg" ;;
 | 
			
		||||
 | 
			
		||||
	*)
 | 
			
		||||
	    cat <<EOF 1>&2
 | 
			
		||||
Usage: debconfigure [options]
 | 
			
		||||
Options: [defaults in brackets after descriptions]
 | 
			
		||||
  --help                  print this message
 | 
			
		||||
  --clean		  remove generated files
 | 
			
		||||
  --prefix=PREFIX         install files under under PREFIX dir [/usr]
 | 
			
		||||
  --gnome-prefix=PREFIX   look for GNOME under PREFIX dir [/usr]
 | 
			
		||||
  --localstatedir=DIR     directory for things like game scores [/var/lib]
 | 
			
		||||
  --pkgsuffix=SUFFIX      append SUFFIX onto package names []
 | 
			
		||||
  --debtype=DEBTYPE       enable macros with the name of DEBTYPE [official]
 | 
			
		||||
EOF
 | 
			
		||||
	    exit ;;
 | 
			
		||||
 | 
			
		||||
    esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# Strip leading slash
 | 
			
		||||
prefix=`expr $prefix : '/\(.*\)'`
 | 
			
		||||
gnomeprefix=`expr $gnomeprefix : '/\(.*\)'`
 | 
			
		||||
localstatedir=`expr $localstatedir : '/\(.*\)'`
 | 
			
		||||
 | 
			
		||||
for infile in `ls control.in rules.in`
 | 
			
		||||
do
 | 
			
		||||
    tofile=`expr $infile : '\(.*\)\.in'`
 | 
			
		||||
    cat $infile | \
 | 
			
		||||
       sed "s,@SUFFIX@,$pkgsuffix,g" | \
 | 
			
		||||
       sed "s,@PREFIX@,$prefix,g" | \
 | 
			
		||||
       sed "s,@GNOMEPREFIX@,$gnomeprefix,g" | \
 | 
			
		||||
       sed "s,@LOCALSTATEDIR@,$localstatedir,g" | \
 | 
			
		||||
       sed "s,%$debtype>,," | sed '/^%/d' > $tofile
 | 
			
		||||
done
 | 
			
		||||
chmod +x rules
 | 
			
		||||
 | 
			
		||||
for filesfile in `ls *.files.in`
 | 
			
		||||
do
 | 
			
		||||
    tofile=`expr $filesfile : '\(.*\)\.files\.in'`
 | 
			
		||||
    tofile=`echo $tofile$pkgsuffix.files`
 | 
			
		||||
    cat $filesfile | \
 | 
			
		||||
       sed "s,@SUFFIX@,$pkgsuffix,g" | \
 | 
			
		||||
       sed "s,@PREFIX@,$prefix,g" | \
 | 
			
		||||
       sed "s,@GNOMEPREFIX@,$gnomeprefix,g" | \
 | 
			
		||||
       sed "s,@LOCALSTATEDIR@,$localstatedir,g" | \
 | 
			
		||||
       sed "s,%$debtype>,," | sed '/^%/d' > $tofile
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
for postinst in libgtop1$pkgsuffix
 | 
			
		||||
do
 | 
			
		||||
 | 
			
		||||
cat > $postinst.postinst <<EOF
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
ldconfig
 | 
			
		||||
 | 
			
		||||
#DEBHELPER#
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										34
									
								
								debian/libgtop-config.1
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								debian/libgtop-config.1
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
.TH GTOP l "15 September 1999"
 | 
			
		||||
.SH NAME
 | 
			
		||||
\fBlibgtop-config\fP \- libgtop libraries and component information retrieval.
 | 
			
		||||
.SH SYNTAX
 | 
			
		||||
.B libgtop-config
 | 
			
		||||
.RI [ --version ]
 | 
			
		||||
.RI [ --config ]
 | 
			
		||||
.RI [ --features-def-file ]
 | 
			
		||||
.SH DESCRIPTION
 | 
			
		||||
.B libgtop-config
 | 
			
		||||
is used to retrieve information from installed libraries in the system.
 | 
			
		||||
 | 
			
		||||
This manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual page.
 | 
			
		||||
.LP
 | 
			
		||||
.SH OPTIONS
 | 
			
		||||
.TP
 | 
			
		||||
.B \-\-version
 | 
			
		||||
.PD
 | 
			
		||||
Prints the version of libgtop that you're using.
 | 
			
		||||
.TP
 | 
			
		||||
.B \-\-config
 | 
			
		||||
.PD
 | 
			
		||||
Prints the location of libgtopConf.sh.
 | 
			
		||||
.TP
 | 
			
		||||
.B \-\-version
 | 
			
		||||
.PD
 | 
			
		||||
Prints the location of libgtop-features.def.
 | 
			
		||||
.SH BUGS
 | 
			
		||||
None known
 | 
			
		||||
 | 
			
		||||
.SH AUTHORS
 | 
			
		||||
Martin Baulig (martin@home-of-linux.org)
 | 
			
		||||
.TP
 | 
			
		||||
Josh Sled (jsled@scam.XCF.Berkeley.EDU)
 | 
			
		||||
							
								
								
									
										24
									
								
								debian/libgtop-dev.files.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								debian/libgtop-dev.files.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
@PREFIX@/lib/libgtop.a
 | 
			
		||||
@PREFIX@/lib/libgtop_common.a
 | 
			
		||||
@PREFIX@/lib/libgtop_names.a
 | 
			
		||||
@PREFIX@/lib/libgtop_suid_common.a
 | 
			
		||||
@PREFIX@/lib/libgtop_sysdeps.a
 | 
			
		||||
@PREFIX@/lib/libgtop.la
 | 
			
		||||
@PREFIX@/lib/libgtop_common.la
 | 
			
		||||
@PREFIX@/lib/libgtop_names.la
 | 
			
		||||
@PREFIX@/lib/libgtop_suid_common.la
 | 
			
		||||
@PREFIX@/lib/libgtop_sysdeps.la
 | 
			
		||||
@PREFIX@/lib/libgtopConf.sh
 | 
			
		||||
@PREFIX@/lib/libgtop.so
 | 
			
		||||
@PREFIX@/lib/libgtop_common.so
 | 
			
		||||
@PREFIX@/lib/libgtop_names.so
 | 
			
		||||
@PREFIX@/lib/libgtop_suid_common.so
 | 
			
		||||
@PREFIX@/lib/libgtop_sysdeps.so
 | 
			
		||||
@PREFIX@/lib/libgtop-features.def
 | 
			
		||||
@PREFIX@/lib/libgtop/include/*.h
 | 
			
		||||
@PREFIX@/include/glibtop/*.h
 | 
			
		||||
@PREFIX@/include/glibtop.h
 | 
			
		||||
@PREFIX@/include/glibtop_server.h
 | 
			
		||||
@PREFIX@/include/glibtop_machine.h
 | 
			
		||||
@PREFIX@/info/libgtop.info
 | 
			
		||||
@PREFIX@/bin/libgtop-config
 | 
			
		||||
							
								
								
									
										5
									
								
								debian/libgtop1.README.Debian
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								debian/libgtop1.README.Debian
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
 | 
			
		||||
The Debian package of libgtop, a GNOME library.
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
Martin Baulig <martin@home-of-linux.org>
 | 
			
		||||
							
								
								
									
										12
									
								
								debian/libgtop1.copyright
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								debian/libgtop1.copyright
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
 | 
			
		||||
libgtop is released under the GPL.
 | 
			
		||||
On Debian GNU/Linux systems, the complete text of the GNU General
 | 
			
		||||
Public License can be found in /usr/share/common-licenses/GPL
 | 
			
		||||
 | 
			
		||||
Original authors: Martin Baulig <martin@home-of-linux.org>
 | 
			
		||||
                  Drazen Kacar <dave@srce.hr>
 | 
			
		||||
 | 
			
		||||
Originally Debianised by Jim Pick <jim@jimpick.com>
 | 
			
		||||
Then re-Debianised in October 1998 by Martin Schulze
 | 
			
		||||
<joey@finlandia.infodrom.north.de> before being taken over by Ian Lynagh
 | 
			
		||||
<ian@lynagh.demon.co.uk> in November 1998.
 | 
			
		||||
							
								
								
									
										5
									
								
								debian/libgtop1.docs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								debian/libgtop1.docs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
RELNOTES-0.25
 | 
			
		||||
RELNOTES-1.0.x
 | 
			
		||||
NEWS
 | 
			
		||||
AUTHORS
 | 
			
		||||
debian/changelog
 | 
			
		||||
							
								
								
									
										4
									
								
								debian/libgtop1.files.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								debian/libgtop1.files.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
@PREFIX@/lib/libgtop*.so.[0-9].[0-9][0-9].[0-9]
 | 
			
		||||
@PREFIX@/lib/libgtop*.so.[0-9].[0-9].[0-9]
 | 
			
		||||
@PREFIX@/lib/libgtop*.so.[0-9]
 | 
			
		||||
@PREFIX@/share/locale/*/*/libgtop.mo
 | 
			
		||||
							
								
								
									
										5
									
								
								debian/libgtop2.README.Debian
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								debian/libgtop2.README.Debian
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
 | 
			
		||||
The Debian package of libgtop, a GNOME library.
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
Ian Lynagh <ian@lynagh.demon.co.uk>
 | 
			
		||||
							
								
								
									
										12
									
								
								debian/libgtop2.copyright
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								debian/libgtop2.copyright
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
 | 
			
		||||
libgtop is released under the GPL.
 | 
			
		||||
On Debian GNU/Linux systems, the complete text of the GNU General
 | 
			
		||||
Public License can be found in /usr/share/common-licenses/GPL
 | 
			
		||||
 | 
			
		||||
Original authors: Martin Baulig <martin@home-of-linux.org>
 | 
			
		||||
                  Drazen Kacar <dave@srce.hr>
 | 
			
		||||
 | 
			
		||||
Originally Debianised by Jim Pick <jim@jimpick.com>
 | 
			
		||||
Then re-Debianised in October 1998 by Martin Schulze
 | 
			
		||||
<joey@finlandia.infodrom.north.de> before being taken over by Ian Lynagh
 | 
			
		||||
<ian@lynagh.demon.co.uk> in November 1998.
 | 
			
		||||
							
								
								
									
										7
									
								
								debian/libgtop2.docs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								debian/libgtop2.docs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
RELNOTES-0.25
 | 
			
		||||
RELNOTES-1.0
 | 
			
		||||
RELNOTES-1.1.x
 | 
			
		||||
NEWS
 | 
			
		||||
AUTHORS
 | 
			
		||||
TODO
 | 
			
		||||
debian/changelog
 | 
			
		||||
							
								
								
									
										2
									
								
								debian/libgtop2.files.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								debian/libgtop2.files.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
@PREFIX@/lib/libgtop*-1.1.so.*.*
 | 
			
		||||
@PREFIX@/lib/libgtop*-1.1.so.*
 | 
			
		||||
							
								
								
									
										115
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										115
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
										Executable file
									
								
							@@ -0,0 +1,115 @@
 | 
			
		||||
#!/usr/bin/make -f
 | 
			
		||||
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
 | 
			
		||||
# This version is for a hypothetical package that builds an
 | 
			
		||||
# architecture-dependant package, as well as an architecture-independent
 | 
			
		||||
# package.
 | 
			
		||||
 | 
			
		||||
# Uncomment this to turn on verbose mode. 
 | 
			
		||||
#export DH_VERBOSE=1
 | 
			
		||||
 | 
			
		||||
i=$(shell pwd)/debian/tmp
 | 
			
		||||
b=$(shell pwd)/debian/build
 | 
			
		||||
 | 
			
		||||
configure: configure.in
 | 
			
		||||
	@echo "--- Making configure script and configuring"
 | 
			
		||||
	chmod +x autogen.sh
 | 
			
		||||
	./autogen.sh --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \
 | 
			
		||||
	  --localstatedir=/@LOCALSTATEDIR@
 | 
			
		||||
 | 
			
		||||
Makefile: configure
 | 
			
		||||
	@echo "--- Configuring"
 | 
			
		||||
	./configure --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \
 | 
			
		||||
	  --localstatedir=/@LOCALSTATEDIR@
 | 
			
		||||
 | 
			
		||||
build: configure Makefile build-debstamp
 | 
			
		||||
build-debstamp:
 | 
			
		||||
	@echo "--- Compiling"
 | 
			
		||||
	dh_testdir
 | 
			
		||||
	$(MAKE) all
 | 
			
		||||
	touch build-debstamp
 | 
			
		||||
 | 
			
		||||
clean: Makefile
 | 
			
		||||
	@echo "--- Cleaning"
 | 
			
		||||
	dh_testdir
 | 
			
		||||
	dh_clean
 | 
			
		||||
	-rm -rf static shared
 | 
			
		||||
	-rm -f build-debstamp install-debstamp
 | 
			
		||||
	-make -k distclean
 | 
			
		||||
	-rm -f `find . -name "*~"`
 | 
			
		||||
	-rm -f `find . -name "*\.la"`
 | 
			
		||||
	-rm -rf `find . -name "\.deps"`
 | 
			
		||||
	-rm -rf `find . -name "\.libs"`
 | 
			
		||||
	-rm -rf `find . -name "*\.rej"`
 | 
			
		||||
	-rm -rf debian/tmp `find debian/* -type d ! -name CVS` debian/files* core
 | 
			
		||||
	-rm -f debian/*substvars
 | 
			
		||||
 | 
			
		||||
install: build install-debstamp
 | 
			
		||||
install-debstamp:
 | 
			
		||||
	@echo "--- Installing"
 | 
			
		||||
	dh_testdir
 | 
			
		||||
	dh_testroot
 | 
			
		||||
	rm -rf $(b)
 | 
			
		||||
	$(MAKE) install prefix=$(i)/@PREFIX@ exec_prefix=$(i)/@PREFIX@ \
 | 
			
		||||
	  localstatedir=$(i)/@LOCALSTATEDIR@
 | 
			
		||||
	touch install-debstamp
 | 
			
		||||
 | 
			
		||||
install-save: install
 | 
			
		||||
	rm -rf $(i).saved
 | 
			
		||||
	cp -a $(i) $(i).saved
 | 
			
		||||
 | 
			
		||||
install-saved:
 | 
			
		||||
	rm -rf $(i)
 | 
			
		||||
	cp -a $(i).saved $(i)
 | 
			
		||||
	rm -rf $(b)
 | 
			
		||||
	touch install-debstamp
 | 
			
		||||
 | 
			
		||||
binary-indep: build install
 | 
			
		||||
 | 
			
		||||
binary-arch: build install \
 | 
			
		||||
		libgtop1@SUFFIX@ \
 | 
			
		||||
		libgtop-dev@SUFFIX@
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# libgtop1@SUFFIX@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
libgtop1@SUFFIX@: install
 | 
			
		||||
	@echo "--- Building: $@"
 | 
			
		||||
	dh_installdocs       -p$@ -P$(b)/$@ README NEWS AUTHORS
 | 
			
		||||
	dh_installchangelogs -p$@ -P$(b)/$@ ChangeLog
 | 
			
		||||
	dh_movefiles         -p$@ -P$(b)/$@
 | 
			
		||||
	dh_strip             -p$@ -P$(b)/$@ 
 | 
			
		||||
	dh_compress          -p$@ -P$(b)/$@ 
 | 
			
		||||
	dh_fixperms          -p$@ -P$(b)/$@ 
 | 
			
		||||
	dh_installdeb        -p$@ -P$(b)/$@
 | 
			
		||||
	dh_shlibdeps         -p$@ -P$(b)/$@
 | 
			
		||||
	dh_gencontrol        -p$@ -P$(b)/$@
 | 
			
		||||
	dh_makeshlibs        -p$@ -P$(b)/$@ -V
 | 
			
		||||
	dh_md5sums           -p$@ -P$(b)/$@
 | 
			
		||||
	dh_builddeb          -p$@ -P$(b)/$@
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# libgtop-dev
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
libgtop-dev@SUFFIX@: install
 | 
			
		||||
	@echo "--- Building: $@"
 | 
			
		||||
	mkdir -p $(b)/$@/usr/doc
 | 
			
		||||
	cd $(b)/$@/usr/doc; ln -s libgtop1@SUFFIX@ $@	
 | 
			
		||||
	dh_movefiles         -p$@ -P$(b)/$@
 | 
			
		||||
	dh_strip             -p$@ -P$(b)/$@ 
 | 
			
		||||
	dh_compress          -p$@ -P$(b)/$@ 
 | 
			
		||||
	dh_fixperms          -p$@ -P$(b)/$@ 
 | 
			
		||||
	dh_installdeb        -p$@ -P$(b)/$@
 | 
			
		||||
	dh_shlibdeps         -p$@ -P$(b)/$@
 | 
			
		||||
	dh_gencontrol        -p$@ -P$(b)/$@
 | 
			
		||||
	dh_makeshlibs        -p$@ -P$(b)/$@ -V
 | 
			
		||||
	dh_undocumented      -p$@ -P$(b)/$@ \
 | 
			
		||||
				libgtop-config.1
 | 
			
		||||
	dh_md5sums           -p$@ -P$(b)/$@
 | 
			
		||||
	dh_builddeb          -p$@ -P$(b)/$@
 | 
			
		||||
 | 
			
		||||
binary: binary-indep binary-arch
 | 
			
		||||
.PHONY: binary clean binary-indep binary-arch build install install-save install-saved
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								doc/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								doc/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
texinfo.tex
 | 
			
		||||
*.info
 | 
			
		||||
Makefile.in
 | 
			
		||||
Makefile
 | 
			
		||||
*.log *.toc *.dvi *.aux *.cp *.fn *.vr *.tp *.ky *.pg
 | 
			
		||||
*.ps
 | 
			
		||||
auto-macros.texi
 | 
			
		||||
version.texi
 | 
			
		||||
stamp-vti
 | 
			
		||||
*.html *.pdf
 | 
			
		||||
							
								
								
									
										49
									
								
								doc/ChangeLog
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								doc/ChangeLog
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
2002-03-12  James Henstridge  <james@daa.com.au>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am (MAKEINFO): using += seems to screw up the build
 | 
			
		||||
	with newer automakes.  Set it explicitly (using @MAKEINFO@) seems
 | 
			
		||||
	to be compatible with both.
 | 
			
		||||
 | 
			
		||||
2001-11-26  Abel Cheung  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* libgtop.texi, Makefile.am: Renamed to libgtop2.texi
 | 
			
		||||
	* about.texi: Very minor update.
 | 
			
		||||
 | 
			
		||||
1999-10-18  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* about.texi: Added a note about LibGTop and GNOME.
 | 
			
		||||
 | 
			
		||||
	* reference.texi (glibtop_proc_state): Fix description of the `state'
 | 
			
		||||
 	field for LibGTop 1.0.x.
 | 
			
		||||
 | 
			
		||||
1999-09-29  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* Makefile.am (MAKEINFO): Add `-I @libgtop_top_builddir@/doc' here.
 | 
			
		||||
 | 
			
		||||
1999-05-16  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* main.texi: This is now the main file which will @include all
 | 
			
		||||
	chapter files so we can use `texinfo-multiple-files-update'.
 | 
			
		||||
 | 
			
		||||
	* reference.texi: Added all missing sections with a "not yet written"
 | 
			
		||||
	notice.
 | 
			
		||||
 | 
			
		||||
1999-05-16  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* white-paper.texi: Initial version of the LibGTop White Paper.
 | 
			
		||||
 | 
			
		||||
	* Makefile.am: Create `auto-macros.texi' from `auto-macros.texi.in'
 | 
			
		||||
 	which will contain some `@set' commands for the LibGTop version etc.
 | 
			
		||||
 | 
			
		||||
	* auto-macros.texi.in: New file. This is a template for
 | 
			
		||||
	`auto-macros.texi' which will be automatically generated.
 | 
			
		||||
 | 
			
		||||
1999-05-09  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* about.texi: Split the `libgtop.texi' into one file pro chapter,
 | 
			
		||||
	this is the "About LibGTop".
 | 
			
		||||
 | 
			
		||||
	* reference.texi: The "LibGTop Reference Manual".
 | 
			
		||||
 | 
			
		||||
	* libgtop.texi: Initial version of the new LibGTop Manual.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										45
									
								
								doc/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								doc/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
info_TEXINFOS		= libgtop2.texi
 | 
			
		||||
 | 
			
		||||
libgtop2_TEXINFOS	= libgtop2.texi about.texi reference.texi \
 | 
			
		||||
			  auto-macros.texi version.texi main.texi \
 | 
			
		||||
			  white-paper.texi
 | 
			
		||||
 | 
			
		||||
MAKEINFO		= @MAKEINFO@ -I @libgtop_top_builddir@/doc
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST		= auto-macros.texi.in
 | 
			
		||||
 | 
			
		||||
auto-macros.texi: auto-macros.texi.in Makefile
 | 
			
		||||
## Use sed and then mv to avoid problems if the user interrupts.
 | 
			
		||||
	sed -e 's#\%LIBGTOP_LIBDIR\%#$(libdir)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_INCLUDEDIR\%#$(includedir)/libgtop-2.0#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_DATADIR\%#$(datadir)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_EXTRA_LIBS\%#$(LIBGTOP_EXTRA_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_LIBS\%#$(LIBGTOP_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_INCS\%#$(LIBGTOP_INCS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_NAMES_LIBS\%#$(LIBGTOP_NAMES_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_NAMES_INCS\%#$(LIBGTOP_NAMES_INCS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_GUILE_LIBS\%#$(LIBGTOP_GUILE_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_GUILE_INCS\%#$(LIBGTOP_GUILE_INCS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_GUILE_NAMES_LIBS\%#$(LIBGTOP_GUILE_NAMES_LIBS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_GUILE_NAMES_INCS\%#$(LIBGTOP_GUILE_NAMES_INCS)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_BINDIR\%#$(LIBGTOP_BINDIR)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_SERVER\%#$(LIBGTOP_SERVER)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_MAJOR_VERSION\%#$(LIBGTOP_MAJOR_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_MINOR_VERSION\%#$(LIBGTOP_MINOR_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_MICRO_VERSION\%#$(LIBGTOP_MICRO_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_VERSION\%#$(LIBGTOP_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_VERSION_CODE\%#$(LIBGTOP_VERSION_CODE)#g' \
 | 
			
		||||
	  -e 's#\%LIBGTOP_SERVER_VERSION\%#$(LIBGTOP_SERVER_VERSION)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_sysdeps_dir\%#$(libgtop_sysdeps_dir)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_need_server\%#$(libgtop_need_server)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_use_machine_h\%#$(libgtop_use_machine_h)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_guile_found\%#$(libgtop_guile_found)#g' \
 | 
			
		||||
	  -e 's#\%libgtop_want_examples\%#$(libgtop_want_examples)#g' \
 | 
			
		||||
	      < $(srcdir)/auto-macros.texi.in > auto-macros.tmp
 | 
			
		||||
	echo '@c Set this if this is LibGTop 1.1.x' >> auto-macros.tmp
 | 
			
		||||
	if [ $(LIBGTOP_VERSION_CODE) -ge 1001000 ] ; then \
 | 
			
		||||
	  echo '@set LIBGTOP-1-1' >> auto-macros.tmp ; \
 | 
			
		||||
	else \
 | 
			
		||||
	  echo '@clear LIBGTOP-1-1' >> auto-macros.tmp ; \
 | 
			
		||||
	fi
 | 
			
		||||
	mv auto-macros.tmp auto-macros.texi
 | 
			
		||||
							
								
								
									
										123
									
								
								doc/about.texi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								doc/about.texi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,123 @@
 | 
			
		||||
@node About, White Paper, Top, Top
 | 
			
		||||
@chapter About LibGTop
 | 
			
		||||
 | 
			
		||||
LibGTop is a library to get system specific data such as CPU and Memory Usage
 | 
			
		||||
and information about running Processes.
 | 
			
		||||
 | 
			
		||||
On Systems like Solaris or Digital Unix where you need special privileges to
 | 
			
		||||
get those data, it uses a setuid/setgid server to do so.
 | 
			
		||||
 | 
			
		||||
Even if LibGTop is a part of the GNOME desktop environment
 | 
			
		||||
(@uref{http://www.gnome.org}), the main interface of LibGTop is totally
 | 
			
		||||
independent from any particular desktop environment, so you can also use it
 | 
			
		||||
as a standalone library in any piece of GPLed software.
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
* Availability::                Where to get LibGTop
 | 
			
		||||
* Supported Platforms::         Supported Platforms
 | 
			
		||||
* Mailing List::                Helping with LibGTop development
 | 
			
		||||
* Thanks::                      People who contributed to LibGTop
 | 
			
		||||
@end menu
 | 
			
		||||
 | 
			
		||||
@node Availability, Supported Platforms, About, About
 | 
			
		||||
@section Availability
 | 
			
		||||
 | 
			
		||||
The master source of LibGTop is the GNOME CVS tree
 | 
			
		||||
(see @uref{http://www.gnome.org} for details), but you can also get the
 | 
			
		||||
latest release tarballs from
 | 
			
		||||
 | 
			
		||||
@display
 | 
			
		||||
@uref{ftp://ftp.gnome.org/pub/GNOME/sources/libgtop/}
 | 
			
		||||
@end display
 | 
			
		||||
 | 
			
		||||
@noindent
 | 
			
		||||
or any of its mirror sites.
 | 
			
		||||
 | 
			
		||||
The latest stable version of LibGTop is 1.0.12 which is also the one that comes
 | 
			
		||||
together with GNOME 1.0. It belongs to @code{LIBGTOP_STABLE_1_0} branch in CVS.
 | 
			
		||||
Actual development occurs in the @code{libgtop-GNOME-2-0-port} which is
 | 
			
		||||
currently versioned 1.90.0.
 | 
			
		||||
 | 
			
		||||
@node Supported Platforms, Mailing List, Availability, About
 | 
			
		||||
@section Supported Platforms
 | 
			
		||||
 | 
			
		||||
The stable branch currently supports the following platforms:
 | 
			
		||||
 | 
			
		||||
@itemize @bullet
 | 
			
		||||
@item All versions of Linux
 | 
			
		||||
 | 
			
		||||
LibGTop was tested under Linux 2.0.x and 2.2.x on the ix86 and the alpha, but
 | 
			
		||||
it should also work without problems on SparcLinux or Linux 2.4.x.
 | 
			
		||||
 | 
			
		||||
Note: I'm speaking of the Linux kernel here, not the GNU/Linux operating system.
 | 
			
		||||
 | 
			
		||||
@item FreeBSD, NetBSD and OpenBSD
 | 
			
		||||
 | 
			
		||||
LibGTop was tested under FreeBSD 2.2.6 and 3.0, NetBSD 1.3.2 and OpenBSD 2.4.
 | 
			
		||||
Support for NetBSD 1.4 was added in LibGTop 1.0.2.
 | 
			
		||||
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
The platforms listed above are known to be stable and working. However, if
 | 
			
		||||
you're using the latest development version, you can use it on the following
 | 
			
		||||
platforms as well:
 | 
			
		||||
 | 
			
		||||
@itemize @bullet
 | 
			
		||||
@item BSD/OS
 | 
			
		||||
 | 
			
		||||
There is a port for BSD/OS (aka BSDI) 2.x and 3.x from Timur Bakeyev which
 | 
			
		||||
should also work with 4.x. This isn't tested very well, but it should be
 | 
			
		||||
working.
 | 
			
		||||
 | 
			
		||||
@item Digital Unix
 | 
			
		||||
 | 
			
		||||
There is some basic support for Digital Unix (formerly DEC OSF/1) V3.2C, but
 | 
			
		||||
this may still be a bit unstable. I'm currently working on this port as time
 | 
			
		||||
permits so it should be fully supported soon.
 | 
			
		||||
 | 
			
		||||
@item Solaris
 | 
			
		||||
 | 
			
		||||
The Solaris port currently works on Solaris 7 and maybe also on other releases.
 | 
			
		||||
Thanks a lot to Drazen Kacar and everyone who helped working on this port. They
 | 
			
		||||
have really done excellent work here and I'm pretty sure that this port will be
 | 
			
		||||
fully functional on most Solaris versions in near future.
 | 
			
		||||
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
@node Mailing List, Thanks, Supported Platforms, About
 | 
			
		||||
@section Mailing List
 | 
			
		||||
 | 
			
		||||
There is a @email{libgtop-devel-list@@egroups.com} mailing list for people who
 | 
			
		||||
want to help with the development of LibGTop.
 | 
			
		||||
 | 
			
		||||
It is meant as a low-traffic, but high content-list where we can discuss
 | 
			
		||||
technical details such as adding new sysdeps ports etc. 
 | 
			
		||||
 | 
			
		||||
Especially, I'd like to see people with a deeper knowledge of operating systems
 | 
			
		||||
internals joining my list so we can discuss technical details of the sysdeps
 | 
			
		||||
code. 
 | 
			
		||||
 | 
			
		||||
It is *not* for users that want to know how to compile LibGTop etc.
 | 
			
		||||
 | 
			
		||||
You can subscribe to this mailing list and view the mailing list archives
 | 
			
		||||
on the LibGTop Page at @uref{http://www.home-of-linux.org/gnome/libgtop}.
 | 
			
		||||
 | 
			
		||||
@node Thanks,  , Mailing List, About
 | 
			
		||||
@section Thanks
 | 
			
		||||
 | 
			
		||||
At the place I'd like to thank the following people who contributed to
 | 
			
		||||
LibGTop (listed in chronological order):
 | 
			
		||||
 | 
			
		||||
@itemize @bullet
 | 
			
		||||
@item Sebastian Wilhelmi who had the initial idea of LibGTop and helped
 | 
			
		||||
me a lot in the early beginning.
 | 
			
		||||
@item Josh Sled for the initial FreeBSD port.
 | 
			
		||||
@item Jeremy Lea for his BSD patches.
 | 
			
		||||
@item Timur Bakeyev for the BSDI port.
 | 
			
		||||
@item Drazen Kacar and the other people on the LibGTop development mailing
 | 
			
		||||
list for the Solaris port.
 | 
			
		||||
@item Kevin Vandersloot for the effort to port to GNOME 2.0.
 | 
			
		||||
@item All people sending me patches, having good ideas, ...
 | 
			
		||||
@item Everyone I have forgotten in this list ...
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								doc/auto-macros.texi.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								doc/auto-macros.texi.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
@c LibGTop major, minor and micro version.
 | 
			
		||||
@set LIBGTOP_MAJOR_VERSION %LIBGTOP_MAJOR_VERSION%
 | 
			
		||||
@set LIBGTOP_MINOR_VERSION %LIBGTOP_MINOR_VERSION%
 | 
			
		||||
@set LIBGTOP_MICRO_VERSION %LIBGTOP_MICRO_VERSION%
 | 
			
		||||
 | 
			
		||||
@c LibGTop version and numerical version code ("1.234.567" -> 1234567).
 | 
			
		||||
@set LIBGTOP_VERSION "%LIBGTOP_VERSION%"
 | 
			
		||||
@set LIBGTOP_VERSION_CODE %LIBGTOP_VERSION_CODE%
 | 
			
		||||
 | 
			
		||||
@c LibGTop server version, increased each time the protocol changes.
 | 
			
		||||
@set LIBGTOP_SERVER_VERSION %LIBGTOP_SERVER_VERSION%
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										107
									
								
								doc/internals.texi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								doc/internals.texi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,107 @@
 | 
			
		||||
@node LibGTop Internals, , Reference Manual, Top
 | 
			
		||||
@chapter LibGTop Internals
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
* General Internals::           General Internals
 | 
			
		||||
* Sysdeps Internals::           Sysdeps Internals
 | 
			
		||||
@end menu
 | 
			
		||||
 | 
			
		||||
@node General Internals, Sysdeps Internals, LibGTop Internals, LibGTop Internals
 | 
			
		||||
@section General Internals
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
* glibtop::                     The server structure
 | 
			
		||||
@end menu
 | 
			
		||||
 | 
			
		||||
@node glibtop,  , General Internals, General Internals
 | 
			
		||||
@subsection The server structure - @code{glibtop}
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
@cartouche
 | 
			
		||||
typedef struct _glibtop         glibtop;
 | 
			
		||||
 | 
			
		||||
struct _glibtop
 | 
			
		||||
@{
 | 
			
		||||
        unsigned flags;
 | 
			
		||||
        unsigned method;
 | 
			
		||||
        unsigned error_method;
 | 
			
		||||
#ifdef HAVE_GLIBTOP_MACHINE_H
 | 
			
		||||
        glibtop_machine machine;
 | 
			
		||||
#endif
 | 
			
		||||
        int input [2];
 | 
			
		||||
        int output [2];
 | 
			
		||||
        int socket;
 | 
			
		||||
        int ncpu;
 | 
			
		||||
        unsigned long os_version_code;
 | 
			
		||||
        const char *name;
 | 
			
		||||
        const char *server_command;
 | 
			
		||||
        const char *server_host;
 | 
			
		||||
        const char *server_user;
 | 
			
		||||
        const char *server_rsh;
 | 
			
		||||
        unsigned long features;
 | 
			
		||||
        unsigned long server_port;
 | 
			
		||||
        glibtop_sysdeps sysdeps;
 | 
			
		||||
        glibtop_sysdeps required;
 | 
			
		||||
        glibtop_sysdeps wanted;
 | 
			
		||||
        pid_t pid;
 | 
			
		||||
@};
 | 
			
		||||
@end cartouche
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
@node Sysdeps Internals,  , General Internals, LibGTop Internals
 | 
			
		||||
@section Sysdeps Internals
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
* glibtop_open_s::              Non-privileged initializations
 | 
			
		||||
* glibtop_close_s::             Non-privileged cleanups
 | 
			
		||||
@end menu
 | 
			
		||||
 | 
			
		||||
@node glibtop_open_s, glibtop_close_s, Sysdeps Internals, Sysdeps Internals
 | 
			
		||||
@subsection glibtop_open_s
 | 
			
		||||
 | 
			
		||||
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
 | 
			
		||||
initialize a server. It should do all initializations that do not need any
 | 
			
		||||
privileges.
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
@cartouche
 | 
			
		||||
void
 | 
			
		||||
glibtop_open_s (glibtop *server, const char *program_name,
 | 
			
		||||
		const unsigned long features,
 | 
			
		||||
		const unsigned flags);
 | 
			
		||||
@end cartouche
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
@table @code
 | 
			
		||||
@item server
 | 
			
		||||
Pointer to the @code{glibtop} server structure.
 | 
			
		||||
@item program_name
 | 
			
		||||
Name of the calling program; the implementation will usually
 | 
			
		||||
set @samp{server->name} to this so it'll be used as the program
 | 
			
		||||
name in error messages.
 | 
			
		||||
@end table
 | 
			
		||||
 | 
			
		||||
Typically, this function will set @code{server->name}, @code{server->ncpu} and
 | 
			
		||||
@code{server->os_version_code} and initialize any of the @code{server->machine}
 | 
			
		||||
fields which do not need any privileges.
 | 
			
		||||
 | 
			
		||||
It is normally implemented in @file{open.c} in the sysdeps directory.
 | 
			
		||||
 | 
			
		||||
@node glibtop_close_s,  , glibtop_open_s, Sysdeps Internals
 | 
			
		||||
@subsection glibtop_close_s
 | 
			
		||||
 | 
			
		||||
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
 | 
			
		||||
clean-up a server when it's no longer used.
 | 
			
		||||
 | 
			
		||||
It must free all resources that were allocated in @code{glibtop_open_s}.
 | 
			
		||||
 | 
			
		||||
@example
 | 
			
		||||
@cartouche
 | 
			
		||||
void
 | 
			
		||||
glibtop_close_s (glibtop *server);
 | 
			
		||||
@end cartouche
 | 
			
		||||
@end example
 | 
			
		||||
 | 
			
		||||
It is normally implemented in @file{close.c} in the sysdeps directory, but may
 | 
			
		||||
be empty.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										89
									
								
								doc/libgtop2.texi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								doc/libgtop2.texi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
			
		||||
\input texinfo   @c -*-texinfo-*-
 | 
			
		||||
@c %**start of header
 | 
			
		||||
@setfilename libgtop2.info
 | 
			
		||||
@settitle LibGTop Reference Manual
 | 
			
		||||
@setchapternewpage odd
 | 
			
		||||
@c %**end of header
 | 
			
		||||
 | 
			
		||||
@include auto-macros.texi
 | 
			
		||||
@include version.texi
 | 
			
		||||
 | 
			
		||||
@ifinfo
 | 
			
		||||
This is the LibGTop Reference Manual version @value{VERSION}
 | 
			
		||||
(last modified @value{UPDATED}).
 | 
			
		||||
 | 
			
		||||
Copyright 1999 Free Software Foundation, Inc.
 | 
			
		||||
     
 | 
			
		||||
Permission is granted to make and distribute verbatim
 | 
			
		||||
copies of this manual provided the copyright notice and
 | 
			
		||||
this permission notice are preserved on all copies.
 | 
			
		||||
     
 | 
			
		||||
@ignore
 | 
			
		||||
Permission is granted to process this file through TeX
 | 
			
		||||
and print the results, provided the printed document
 | 
			
		||||
carries a copying permission notice identical to this
 | 
			
		||||
one except for the removal of this paragraph (this
 | 
			
		||||
paragraph not being relevant to the printed manual).
 | 
			
		||||
     
 | 
			
		||||
@end ignore
 | 
			
		||||
Permission is granted to copy and distribute modified
 | 
			
		||||
versions of this manual under the conditions for
 | 
			
		||||
verbatim copying, provided also that the sections
 | 
			
		||||
entitled ``Copying'' and ``GNU General Public License''
 | 
			
		||||
are included exactly as in the original, and provided
 | 
			
		||||
that the entire resulting derived work is distributed
 | 
			
		||||
under the terms of a permission notice identical to this
 | 
			
		||||
one.
 | 
			
		||||
     
 | 
			
		||||
Permission is granted to copy and distribute
 | 
			
		||||
translations of this manual into another language,
 | 
			
		||||
under the above conditions for modified versions,
 | 
			
		||||
except that this permission notice may be stated in a
 | 
			
		||||
translation approved by the Free Software Foundation.
 | 
			
		||||
 | 
			
		||||
@format
 | 
			
		||||
@dircategory Libraries:
 | 
			
		||||
@direntry
 | 
			
		||||
* LibGTop2: (libgtop2).			Library to get system specific data
 | 
			
		||||
					such as cpu and memory usage, active
 | 
			
		||||
					processes
 | 
			
		||||
@end direntry
 | 
			
		||||
@end format
 | 
			
		||||
 | 
			
		||||
@end ifinfo
 | 
			
		||||
 | 
			
		||||
@titlepage
 | 
			
		||||
@title LibGTop Reference Manual
 | 
			
		||||
@subtitle Version @value{VERSION} - @value{UPDATED}
 | 
			
		||||
@author Martin Baulig
 | 
			
		||||
 | 
			
		||||
@page
 | 
			
		||||
@vskip 0pt plus 1filll
 | 
			
		||||
Copyright @copyright{} 1999 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
Permission is granted to make and distribute verbatim
 | 
			
		||||
copies of this manual provided the copyright notice and
 | 
			
		||||
this permission notice are preserved on all copies.
 | 
			
		||||
     
 | 
			
		||||
Permission is granted to copy and distribute modified
 | 
			
		||||
versions of this manual under the conditions for
 | 
			
		||||
verbatim copying, provided also that the sections
 | 
			
		||||
entitled ``Copying'' and ``GNU General Public License''
 | 
			
		||||
are included exactly as in the original, and provided
 | 
			
		||||
that the entire resulting derived work is distributed
 | 
			
		||||
under the terms of a permission notice identical to this
 | 
			
		||||
one.
 | 
			
		||||
     
 | 
			
		||||
Permission is granted to copy and distribute
 | 
			
		||||
translations of this manual into another language,
 | 
			
		||||
under the above conditions for modified versions,
 | 
			
		||||
except that this permission notice may be stated in a
 | 
			
		||||
translation approved by the Free Software Foundation.
 | 
			
		||||
@end titlepage
 | 
			
		||||
 | 
			
		||||
@contents
 | 
			
		||||
 | 
			
		||||
@include main.texi
 | 
			
		||||
 | 
			
		||||
@bye
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										68
									
								
								doc/main.texi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								doc/main.texi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
@node Top, About, (dir), (dir)
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
* About::                       About LibGTop
 | 
			
		||||
* White Paper::                 LibGTop White Paper
 | 
			
		||||
* Reference Manual::            LibGTop Reference Manual
 | 
			
		||||
 | 
			
		||||
 --- The Detailed Node Listing ---
 | 
			
		||||
 | 
			
		||||
About LibGTop
 | 
			
		||||
 | 
			
		||||
* Availability::                Where to get LibGTop
 | 
			
		||||
* Supported Platforms::         Supported Platforms
 | 
			
		||||
* Mailing List::                Helping with LibGTop development
 | 
			
		||||
* Thanks::                      People who contributed to LibGTop
 | 
			
		||||
 | 
			
		||||
LibGTop White Paper
 | 
			
		||||
 | 
			
		||||
* Introduction::                Introduction
 | 
			
		||||
* Overview::                    Overview
 | 
			
		||||
 | 
			
		||||
Overview
 | 
			
		||||
 | 
			
		||||
* Interface Design::            Things that need to be considered
 | 
			
		||||
* Server Implementation::       The LibGTop "server"
 | 
			
		||||
 | 
			
		||||
LibGTop Reference Manual
 | 
			
		||||
 | 
			
		||||
* System Dependent::            System Dependent Functions.
 | 
			
		||||
* Common Functions::            Common Functions.
 | 
			
		||||
* Library Functions::           Library Functions.
 | 
			
		||||
 | 
			
		||||
System Dependent Functions
 | 
			
		||||
 | 
			
		||||
* glibtop_cpu::                 CPU Usage.
 | 
			
		||||
* glibtop_mem::                 Memory Usage.
 | 
			
		||||
* glibtop_swap::                Swap Usage.
 | 
			
		||||
* glibtop_uptime::              System Uptime.
 | 
			
		||||
* glibtop_loadavg::             Load Average.
 | 
			
		||||
* glibtop_proclist::            Process List.
 | 
			
		||||
* glibtop_proc_state::          Process State.
 | 
			
		||||
* glibtop_proc_uid::            Process UID and TTY Information.
 | 
			
		||||
* glibtop_proc_mem::            Process Memory Information.
 | 
			
		||||
* glibtop_proc_time::           Process Time Information.
 | 
			
		||||
* glibtop_proc_signal::         Process Signal Information.
 | 
			
		||||
* glibtop_proc_kernel::         Process Kernel Data Information.
 | 
			
		||||
* glibtop_proc_segment::        Process Segment Information.
 | 
			
		||||
* glibtop_proc_args::           Process Arguments.
 | 
			
		||||
* glibtop_proc_map::            Process Memory Maps.
 | 
			
		||||
* glibtop_netload::             Network Load.
 | 
			
		||||
* glibtop_ppp::                 PPP Usage.
 | 
			
		||||
 | 
			
		||||
Common Functions
 | 
			
		||||
 | 
			
		||||
* glibtop_mountlist::           Mount List.
 | 
			
		||||
* glibtop_fsusage::             File System Usage.
 | 
			
		||||
 | 
			
		||||
Library Functions
 | 
			
		||||
 | 
			
		||||
* glibtop_init::                Server Initialization.
 | 
			
		||||
* glibtop_sysdeps::             Server Sysdeps.
 | 
			
		||||
* Library Parameters::          Library Parameters.
 | 
			
		||||
@end menu
 | 
			
		||||
 | 
			
		||||
@include about.texi
 | 
			
		||||
@include white-paper.texi
 | 
			
		||||
@include reference.texi
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1807
									
								
								doc/reference.texi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1807
									
								
								doc/reference.texi
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										90
									
								
								doc/white-paper.texi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								doc/white-paper.texi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
@node White Paper, Reference Manual, About, Top
 | 
			
		||||
@chapter LibGTop White Paper
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
* Introduction::                Introduction
 | 
			
		||||
* Overview::                    Overview
 | 
			
		||||
@end menu
 | 
			
		||||
 | 
			
		||||
@node Introduction, Overview, White Paper, White Paper
 | 
			
		||||
@section Introduction
 | 
			
		||||
 | 
			
		||||
Many modern UNIX systems like Solaris, BSD or Digitial Unix only allow
 | 
			
		||||
priviledged processes to read information like CPU and Memory Usage or
 | 
			
		||||
information about running processes.
 | 
			
		||||
 | 
			
		||||
@itemize @bullet
 | 
			
		||||
@item
 | 
			
		||||
BSD, for instance, doesn't have any other way to get those data than reading
 | 
			
		||||
directly from @file{/dev/kmem} and you need to be in the @code{kmem} group to
 | 
			
		||||
be able to read this.
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
Other systems, like Digital Unix, allow all users to get things like CPU and
 | 
			
		||||
Memory statistics, but only root may read information about any process other
 | 
			
		||||
than the current one (you may not even get information about your own processes
 | 
			
		||||
if you're not root).
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
Linux has a very nice @file{/proc} filesystem, but reading and parsing
 | 
			
		||||
@file{/proc} is very slow and inefficient.
 | 
			
		||||
 | 
			
		||||
@item
 | 
			
		||||
Solaris is a bit better, but you still need to be in the @code{sys} group or
 | 
			
		||||
even root to get some data.
 | 
			
		||||
@end itemize
 | 
			
		||||
 | 
			
		||||
Because of this system utilities like @code{ps}, @code{uptime} or @code{top}
 | 
			
		||||
often are setgid kmem or setuid root. Usually, they're also very specific to
 | 
			
		||||
the system they're written for and not easily portable to other systems without
 | 
			
		||||
a lot of work.
 | 
			
		||||
 | 
			
		||||
This, of cause, becomes a problem for graphical tools like @code{gtop} - making
 | 
			
		||||
a GTK+ program setgid or even setuid would be a security hole as big as you can
 | 
			
		||||
drive the entire X11 source code through. For the GNOME project, we also needed
 | 
			
		||||
some kind of library which provides all the required information in a portable
 | 
			
		||||
since there's more than just one single program that wants to use them - for
 | 
			
		||||
instance @code{gtop} and the @code{multiload}, @code{cpumemusage} and
 | 
			
		||||
@code{netload} panel applets.
 | 
			
		||||
 | 
			
		||||
@node Overview,  , Introduction, White Paper
 | 
			
		||||
@section Overview
 | 
			
		||||
 | 
			
		||||
This section should give you a short overview on how LibGTop was developed, which
 | 
			
		||||
things needed to be considered and how it works.
 | 
			
		||||
 | 
			
		||||
@menu
 | 
			
		||||
* Interface Design::            Things that need to be considered
 | 
			
		||||
* Server Implementation::       The LibGTop "server"
 | 
			
		||||
@end menu
 | 
			
		||||
 | 
			
		||||
@node Interface Design, Server Implementation, Overview, Overview
 | 
			
		||||
@subsection Interface Design
 | 
			
		||||
 | 
			
		||||
At the very beginning, it was necessary to collect all the data the library part
 | 
			
		||||
should provide and put them into some C structures. This was not that easiy as it
 | 
			
		||||
might sound since LibGTop should be portable to any modern UNIX system with a common
 | 
			
		||||
library part on all those systems, but the data that should be returned vary from
 | 
			
		||||
system to system. For instance some systems support shared memory, but some others
 | 
			
		||||
may not.
 | 
			
		||||
 | 
			
		||||
The header files where we define these C structures (which are system-independent) are
 | 
			
		||||
shared between client and server. This way we can call the system dependent code
 | 
			
		||||
directly where we do not need any special privileges to do so.
 | 
			
		||||
 | 
			
		||||
All of those structures contain a @code{flags} member which is interpreted as a bit
 | 
			
		||||
mask and tells the caller of the library functions which of the fields in the returned
 | 
			
		||||
structure are valid and which are not.
 | 
			
		||||
 | 
			
		||||
@node Server Implementation,  , Interface Design, Overview
 | 
			
		||||
@subsection Server Implementation
 | 
			
		||||
 | 
			
		||||
The LibGTop @dfn{server} is a setgid/setuid binary which contains all the system
 | 
			
		||||
dependent code which needs special privileges. It is only build if it's required
 | 
			
		||||
on the current system (for instance, the Linux kernel provides all the required
 | 
			
		||||
data via its @file{/proc} filesystem so we do not need the server at all) and it
 | 
			
		||||
only contains the @dfn{features} which need privileges.
 | 
			
		||||
 | 
			
		||||
Whenever we do not need any privileges to get all the data for some of the requested
 | 
			
		||||
structures (here called @dfn{features}) the library calls the sysdeps code directly
 | 
			
		||||
rather than using the server.
 | 
			
		||||
							
								
								
									
										2
									
								
								dtd/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dtd/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
Makefile.in
 | 
			
		||||
Makefile
 | 
			
		||||
							
								
								
									
										9
									
								
								dtd/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								dtd/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
backenddir	= @LIBGTOP_BACKEND_DIR@
 | 
			
		||||
 | 
			
		||||
backend_DATA	= \
 | 
			
		||||
	libgtop-backends.dtd	\
 | 
			
		||||
	libgtop-backend-info.dtd
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST	= |
 | 
			
		||||
	$(backend_DATA)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								dtd/libgtop-backend-info.dtd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								dtd/libgtop-backend-info.dtd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<!ELEMENT BackendInfo (name,description?,comments?,authors,legalnotice)>
 | 
			
		||||
<!ELEMENT name (short_name,long_name?)>
 | 
			
		||||
<!ELEMENT short_name (#PCDATA)>
 | 
			
		||||
<!ELEMENT long_name (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT description (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT authors (author)+>
 | 
			
		||||
<!ELEMENT author (author_name,author_email?)>
 | 
			
		||||
<!ELEMENT author_name (#PCDATA)>
 | 
			
		||||
<!ELEMENT author_email (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT legalnotice (license,copyright?)>
 | 
			
		||||
<!ELEMENT license (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT copyright (holder)+>
 | 
			
		||||
<!ELEMENT holder (holder_year?,holder_name,holder_email?)>
 | 
			
		||||
<!ELEMENT holder_year (#PCDATA)>
 | 
			
		||||
<!ELEMENT holder_name (#PCDATA)>
 | 
			
		||||
<!ELEMENT holder_email (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT comments (comment)+>
 | 
			
		||||
<!ELEMENT comment (#PCDATA)>
 | 
			
		||||
							
								
								
									
										11
									
								
								dtd/libgtop-backends.dtd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								dtd/libgtop-backends.dtd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
<!ELEMENT Backends (Backend)+>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT Backend (Name,Location)>
 | 
			
		||||
<!ELEMENT Name (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT Location (LibtoolName?,ShlibName,ExtraLibs?)>
 | 
			
		||||
<!ELEMENT LibtoolName (#PCDATA)>
 | 
			
		||||
<!ELEMENT ShlibName (#PCDATA)>
 | 
			
		||||
 | 
			
		||||
<!ELEMENT ExtraLibs (ExtraLib)+>
 | 
			
		||||
<!ELEMENT ExtraLib (LibtoolName?,ShlibName)>
 | 
			
		||||
@@ -11,4 +11,6 @@ third_linux
 | 
			
		||||
third_static
 | 
			
		||||
second_static
 | 
			
		||||
second_linux
 | 
			
		||||
smp_static sysdeps_static netload_static procmap_static mountlist_static
 | 
			
		||||
smp sysdeps netload procmap mountlist
 | 
			
		||||
timings timings_static
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,35 @@
 | 
			
		||||
2001-01-14  Abel Cheung  <maddog@linux.org.hk>
 | 
			
		||||
 | 
			
		||||
	* \*.c: bindtextdomain and textdomain uses GETTEXT_PACKAGE.
 | 
			
		||||
 | 
			
		||||
	* Makefile.am, first.c, second.c, sysdeps.c: Make them at least
 | 
			
		||||
	compile for now, by disabling chunks which should belong to
 | 
			
		||||
	HEAD branch.
 | 
			
		||||
 | 
			
		||||
1999-05-28  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c, second.c, sysdeps.c: Use LibGTop version conditionals
 | 
			
		||||
 	so we can more easily merge the code into LIBGTOP_STABLE_1_0.
 | 
			
		||||
 | 
			
		||||
1999-05-07  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* timings.c (timersub): Renamed this to `libgtop_timersub' and define
 | 
			
		||||
	it on all systems.
 | 
			
		||||
 | 
			
		||||
Fri Apr  9 00:14:52 1999 Timur Bakeyev  <timur@gnu.org>
 | 
			
		||||
 | 
			
		||||
	* timings.c: Added timersub defenition, to make code compilable on 
 | 
			
		||||
	BSDI.
 | 
			
		||||
 | 
			
		||||
1999-03-24  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* timings.c: New example.
 | 
			
		||||
 | 
			
		||||
1999-03-17  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* first.c, second.c: Fixed a bug that caused a core dump when
 | 
			
		||||
	the sysdeps code does not return all data.
 | 
			
		||||
 | 
			
		||||
1998-11-22  Martin Baulig  <baulig@taurus.uni-trier.de>
 | 
			
		||||
 | 
			
		||||
	* netload.c: Call inet_ntoa () to get address and subnet
 | 
			
		||||
 
 | 
			
		||||
@@ -12,18 +12,19 @@ DEFS			= @DEFS@
 | 
			
		||||
libgtopdir		= $(libexecdir)/libgtop
 | 
			
		||||
 | 
			
		||||
libgtop_PROGRAMS	= first second\
 | 
			
		||||
			  mountlist procmap netload sysdeps\
 | 
			
		||||
			  mountlist procmap netload sysdeps timings \
 | 
			
		||||
			  @static_targets@ @guile_examples@ @smp_examples@
 | 
			
		||||
 | 
			
		||||
EXTRA_PROGRAMS		= first_static second_static \
 | 
			
		||||
			  mountlist_static procmap_static \
 | 
			
		||||
			  third third_static smp smp_static \
 | 
			
		||||
			  netload_static sysdeps_static
 | 
			
		||||
			  netload_static sysdeps_static \
 | 
			
		||||
			  timings_static
 | 
			
		||||
 | 
			
		||||
first_SOURCES		= first.c
 | 
			
		||||
first_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
first_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
first_static_SOURCES	= $(first_SOURCES)
 | 
			
		||||
@@ -31,9 +32,9 @@ first_static_LDADD	= $(first_LDADD)
 | 
			
		||||
first_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
second_SOURCES		= second.c
 | 
			
		||||
second_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
second_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
second_static_SOURCES	= $(second_SOURCES)
 | 
			
		||||
@@ -41,9 +42,9 @@ second_static_LDADD	= $(second_LDADD)
 | 
			
		||||
second_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
procmap_SOURCES		= procmap.c
 | 
			
		||||
procmap_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
procmap_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -53,9 +54,9 @@ procmap_static_LDADD	= $(procmap_LDADD)
 | 
			
		||||
procmap_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
netload_SOURCES		= netload.c
 | 
			
		||||
netload_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
netload_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
netload_static_SOURCES	= $(netload_SOURCES)
 | 
			
		||||
@@ -63,24 +64,24 @@ netload_static_LDADD	= $(netload_LDADD)
 | 
			
		||||
netload_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
sysdeps_SOURCES		= sysdeps.c
 | 
			
		||||
sysdeps_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
sysdeps_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
sysdeps_static_SOURCES	= $(sysdeps_SOURCES)
 | 
			
		||||
sysdeps_static_LDADD	= $(sysdeps_LDADD)
 | 
			
		||||
sysdeps_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
third_guile_names_LIBS	= $(top_builddir)/sysdeps/guile/names/libgtop_guile_names.la
 | 
			
		||||
third_names_LIBS	= $(top_builddir)/sysdeps/names/libgtop_names.la
 | 
			
		||||
third_guile_names_LIBS	= $(top_builddir)/sysdeps/guile/names/libgtop_guile_names-2.0.la
 | 
			
		||||
third_names_LIBS	= $(top_builddir)/sysdeps/names/libgtop_names-2.0.la
 | 
			
		||||
 | 
			
		||||
third_SOURCES		= third.c
 | 
			
		||||
third_LDADD		= $(top_builddir)/sysdeps/guile/libgtop_guile.la \
 | 
			
		||||
third_LDADD		= $(top_builddir)/sysdeps/guile/libgtop_guile-2.0.la \
 | 
			
		||||
			  $(third_guile_names_LIBS) $(third_names_LIBS) \
 | 
			
		||||
			  $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
 | 
			
		||||
			  @GUILE_LIBS@ @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
third_static_SOURCES	= $(third_SOURCES)
 | 
			
		||||
@@ -88,9 +89,9 @@ third_static_LDADD	= $(third_LDADD)
 | 
			
		||||
third_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
mountlist_SOURCES	= mountlist.c
 | 
			
		||||
mountlist_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
mountlist_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
mountlist_static_SOURCES= $(mountlist_SOURCES)
 | 
			
		||||
@@ -99,12 +100,22 @@ mountlist_static_LDFLAGS= -static
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
smp_SOURCES		= smp.c
 | 
			
		||||
smp_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
smp_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
smp_static_SOURCES	= $(smp_SOURCES)
 | 
			
		||||
smp_static_LDADD	= $(smp_LDADD)
 | 
			
		||||
smp_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
timings_SOURCES		= timings.c
 | 
			
		||||
timings_LDADD		= $(top_builddir)/lib/libgtop-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
 | 
			
		||||
			  @LIBSUPPORT@ @INTLLIBS@
 | 
			
		||||
 | 
			
		||||
timings_static_SOURCES	= $(timings_SOURCES)
 | 
			
		||||
timings_static_LDADD	= $(timings_LDADD)
 | 
			
		||||
timings_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -52,8 +52,8 @@ main (int argc, char *argv [])
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
@@ -320,7 +320,7 @@ main (int argc, char *argv [])
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu (%s)\n", (int) pid,
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
@@ -344,7 +344,7 @@ main (int argc, char *argv [])
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args);
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	glibtop_free (args);
 | 
			
		||||
 | 
			
		||||
@@ -430,7 +430,7 @@ main (int argc, char *argv [])
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, ppid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  PPID %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu (%s)\n", (int) ppid,
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
@@ -454,7 +454,7 @@ main (int argc, char *argv [])
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) ppid,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args);
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	glibtop_free (args);
 | 
			
		||||
 | 
			
		||||
@@ -541,7 +541,7 @@ main (int argc, char *argv [])
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, 1);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  INIT %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu (%s)\n", 1,
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
@@ -565,7 +565,7 @@ main (int argc, char *argv [])
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", 1,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args);
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	glibtop_free (args);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -47,8 +47,8 @@ main (int argc, char *argv [])
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_netload netload;
 | 
			
		||||
	unsigned method, count, port, i;
 | 
			
		||||
	unsigned method, count, port;
 | 
			
		||||
	struct in_addr addr, subnet;
 | 
			
		||||
	char *address_string, *subnet_string;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
@@ -51,8 +51,8 @@ main (int argc, char *argv [])
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -58,8 +58,8 @@ main (int argc, char *argv [])
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
@@ -97,7 +97,7 @@ main (int argc, char *argv [])
 | 
			
		||||
		unsigned device, device_major, device_minor;
 | 
			
		||||
		char perm [5];
 | 
			
		||||
		
 | 
			
		||||
		if (maps [i].flags & (1 << GLIBTOP_MAP_ENTRY_FILENAME))
 | 
			
		||||
		if (maps [i].flags & (1L << GLIBTOP_MAP_ENTRY_FILENAME))
 | 
			
		||||
			filename = maps [i].filename;
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_INODEDB
 | 
			
		||||
@@ -116,24 +116,41 @@ main (int argc, char *argv [])
 | 
			
		||||
		device_minor = (device & 255);
 | 
			
		||||
		device_major = ((device >> 8) & 255);
 | 
			
		||||
 | 
			
		||||
		if (filename)
 | 
			
		||||
			fprintf (stderr, "%08lx-%08lx %08lx - "
 | 
			
		||||
				 "%02x:%02x %08lu - %4s - %s\n",
 | 
			
		||||
		if (filename) {
 | 
			
		||||
			char *format;
 | 
			
		||||
 | 
			
		||||
			if (sizeof (void*) == 8)
 | 
			
		||||
				format = "%016lx-%016lx %016lx - "
 | 
			
		||||
					 "%02x:%02x %08lu - %4s - %s\n";
 | 
			
		||||
			else
 | 
			
		||||
				format = "%08lx-%08lx %08lx - "
 | 
			
		||||
					 "%02x:%02x %08lu - %4s - %s\n";
 | 
			
		||||
 | 
			
		||||
			fprintf (stderr, format,
 | 
			
		||||
				 (unsigned long) maps [i].start,
 | 
			
		||||
				 (unsigned long) maps [i].end,
 | 
			
		||||
				 (unsigned long) maps [i].offset,
 | 
			
		||||
				 device_major, device_minor,
 | 
			
		||||
				 (unsigned long) maps [i].inode,
 | 
			
		||||
				 perm, filename);
 | 
			
		||||
		else
 | 
			
		||||
			fprintf (stderr, "%08lx-%08lx %08lx - "
 | 
			
		||||
				 "%02x:%02x %08lu - %4s\n",
 | 
			
		||||
		} else {
 | 
			
		||||
			char * format;
 | 
			
		||||
 | 
			
		||||
			if (sizeof (void*) == 8)
 | 
			
		||||
				format = "%016lx-%016lx %016lx - "
 | 
			
		||||
					 "%02x:%02x %08lu - %4s\n";
 | 
			
		||||
			else
 | 
			
		||||
				format = "%08lx-%08lx %08lx - "
 | 
			
		||||
					 "%02x:%02x %08lu - %4s\n";
 | 
			
		||||
 | 
			
		||||
			fprintf (stderr, format,
 | 
			
		||||
				 (unsigned long) maps [i].start,
 | 
			
		||||
				 (unsigned long) maps [i].end,
 | 
			
		||||
				 (unsigned long) maps [i].offset,
 | 
			
		||||
				 device_major, device_minor,
 | 
			
		||||
				 (unsigned long) maps [i].inode,
 | 
			
		||||
				 perm);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (filename && (filename != maps [i].filename))
 | 
			
		||||
			glibtop_free (filename);
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
@@ -31,8 +32,6 @@
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
output (pid_t pid)
 | 
			
		||||
{
 | 
			
		||||
@@ -52,7 +51,7 @@ output (pid_t pid)
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
		
 | 
			
		||||
	glibtop_get_proc_state (&data.proc_state, pid);
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_State   PID  %5d (0x%08lx): "
 | 
			
		||||
		"'%s', %c, %lu, %lu\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_state.flags,
 | 
			
		||||
@@ -61,7 +60,7 @@ output (pid_t pid)
 | 
			
		||||
		(unsigned long) data.proc_state.gid);
 | 
			
		||||
		
 | 
			
		||||
	glibtop_get_proc_uid (&data.proc_uid, pid);
 | 
			
		||||
		
 | 
			
		||||
	
 | 
			
		||||
	printf ("Proc_Uid     PID  %5d (0x%08lx): "
 | 
			
		||||
		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_uid.flags,
 | 
			
		||||
@@ -71,7 +70,7 @@ output (pid_t pid)
 | 
			
		||||
		data.proc_uid.pgrp, data.proc_uid.session,
 | 
			
		||||
		data.proc_uid.tty, data.proc_uid.tpgid,
 | 
			
		||||
		data.proc_uid.priority, data.proc_uid.nice);
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
	glibtop_get_proc_mem (&data.proc_mem, pid);
 | 
			
		||||
		
 | 
			
		||||
	printf ("Proc_Mem     PID  %5d (0x%08lx): "
 | 
			
		||||
@@ -126,7 +125,7 @@ output (pid_t pid)
 | 
			
		||||
	glibtop_get_proc_kernel (&data.proc_kernel, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  PID  %5d (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu %lu %lu (%s)\n", (int) pid,
 | 
			
		||||
		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.k_flags,
 | 
			
		||||
		(unsigned long) data.proc_kernel.min_flt,
 | 
			
		||||
@@ -150,7 +149,7 @@ output (pid_t pid)
 | 
			
		||||
	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) pid,
 | 
			
		||||
		(unsigned long) data.proc_args.flags,
 | 
			
		||||
		(unsigned long) data.proc_args.size,
 | 
			
		||||
		args);
 | 
			
		||||
		args ? args : "");
 | 
			
		||||
 | 
			
		||||
	glibtop_free (args);
 | 
			
		||||
 | 
			
		||||
@@ -240,8 +239,8 @@ main (int argc, char *argv [])
 | 
			
		||||
	unsigned *ptr, pid, i;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init ();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -22,13 +22,12 @@
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/cpu.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
@@ -41,9 +40,11 @@ main (int argc, char *argv [])
 | 
			
		||||
	int ncpu, i;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init();
 | 
			
		||||
 | 
			
		||||
	glibtop_get_cpu (&cpu);
 | 
			
		||||
 | 
			
		||||
	ncpu = glibtop_global_server->ncpu ? glibtop_global_server->ncpu : 1;
 | 
			
		||||
@@ -67,7 +68,7 @@ main (int argc, char *argv [])
 | 
			
		||||
	memset (separator, '-', 91);
 | 
			
		||||
	separator [92] = '\0';
 | 
			
		||||
 | 
			
		||||
	sprintf (buffer, _("Ticks (%d per second):"), frequency);
 | 
			
		||||
	sprintf (buffer, _("Ticks (%ld per second):"), frequency);
 | 
			
		||||
 | 
			
		||||
	printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer,
 | 
			
		||||
		_("Total"), _("User"), _("Nice"), _("Sys"), _("Idle"), separator);
 | 
			
		||||
 
 | 
			
		||||
@@ -38,14 +38,14 @@ int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_sysdeps sysdeps;
 | 
			
		||||
	unsigned method, count, port, i;
 | 
			
		||||
	unsigned method, count, port;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
@@ -69,7 +69,7 @@ main (int argc, char *argv [])
 | 
			
		||||
 | 
			
		||||
	glibtop_get_sysdeps (&sysdeps);
 | 
			
		||||
 | 
			
		||||
#define FEATURE_CHECK(f) ((sysdeps.features & (1 << GLIBTOP_SYSDEPS_##f##)) ? 1 : 0)
 | 
			
		||||
#define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f##)) ? 1 : 0)
 | 
			
		||||
 | 
			
		||||
	printf ("Sysdeps (0x%08lx):\n\n"
 | 
			
		||||
		"\tfeatures:\t\t0x%08lx\n\n"
 | 
			
		||||
 
 | 
			
		||||
@@ -38,8 +38,8 @@ int
 | 
			
		||||
main (int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
 | 
			
		||||
	gh_enter (argc, argv, main_prog);
 | 
			
		||||
	exit (0);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										357
									
								
								examples/timings.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										357
									
								
								examples/timings.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,357 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1998-99 Martin Baulig
 | 
			
		||||
   This file is part of LibGTop 1.0.
 | 
			
		||||
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   LibGTop is free software; you can redistribute it and/or modify it
 | 
			
		||||
   under the terms of the GNU General Public License as published by
 | 
			
		||||
   the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
   or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 | 
			
		||||
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 | 
			
		||||
   for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with LibGTop; see the file COPYING. If not, write to the
 | 
			
		||||
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/union.h>
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/times.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT			100000L
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT_EXPENSIVE
 | 
			
		||||
#define PROFILE_COUNT_EXPENSIVE		10000L
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define ELAPSED_UTIME ((unsigned long) elapsed_utime.tv_sec * 1000000 +	(unsigned long) elapsed_utime.tv_usec)
 | 
			
		||||
#define ELAPSED_STIME ((unsigned long) elapsed_stime.tv_sec * 1000000 + (unsigned long) elapsed_stime.tv_usec)
 | 
			
		||||
 | 
			
		||||
#define libgtop_timeradd(tvp, uvp, vvp)						\
 | 
			
		||||
	do {								\
 | 
			
		||||
		(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec;		\
 | 
			
		||||
		(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec;	\
 | 
			
		||||
		if ((vvp)->tv_usec >= 1000000) {			\
 | 
			
		||||
			(vvp)->tv_sec++;				\
 | 
			
		||||
			(vvp)->tv_usec -= 1000000;			\
 | 
			
		||||
		}							\
 | 
			
		||||
	} while (0)
 | 
			
		||||
#define libgtop_timersub(tvp, uvp, vvp)						\
 | 
			
		||||
	do {								\
 | 
			
		||||
		(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;		\
 | 
			
		||||
		(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;	\
 | 
			
		||||
		if ((vvp)->tv_usec < 0) {				\
 | 
			
		||||
			(vvp)->tv_sec--;				\
 | 
			
		||||
			(vvp)->tv_usec += 1000000;			\
 | 
			
		||||
		}							\
 | 
			
		||||
	} while (0)
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_union data;
 | 
			
		||||
	unsigned c, count, *ptr;
 | 
			
		||||
	struct rusage total_start, total_end;
 | 
			
		||||
	struct rusage rusage_start, rusage_end;
 | 
			
		||||
	struct timeval elapsed_utime, elapsed_stime;
 | 
			
		||||
	pid_t pid;
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (GETTEXT_PACKAGE);
 | 
			
		||||
 | 
			
		||||
	printf ("%-12s (%-10s): %7s - %9s - %9s\n",
 | 
			
		||||
		"Feature", "Flags", "Count", "utime", "stime");
 | 
			
		||||
	printf ("-------------------------------------------"
 | 
			
		||||
		"---------------\n");
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &total_start);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_cpu (&data.cpu);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("CPU          (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.cpu.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
 | 
			
		||||
		glibtop_get_mem (&data.mem);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Memory       (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.mem.flags, PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
 | 
			
		||||
		glibtop_get_swap (&data.swap);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Swap         (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.swap.flags, PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_uptime (&data.uptime);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Uptime       (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.uptime.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_loadavg (&data.loadavg);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Loadavg      (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.loadavg.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
 | 
			
		||||
		ptr = glibtop_get_proclist (&data.proclist, 0, 0);
 | 
			
		||||
		glibtop_free (ptr);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proclist     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proclist.flags,
 | 
			
		||||
		PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
 | 
			
		||||
 | 
			
		||||
	pid = getpid ();
 | 
			
		||||
 | 
			
		||||
	printf ("\n");
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_state (&data.proc_state, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_State   (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_state.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_uid (&data.proc_uid, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Uid     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_uid.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_mem (&data.proc_mem, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_mem.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_segment (&data.proc_segment, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Segment (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_segment.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_time (&data.proc_time, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Time    (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_time.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_signal (&data.proc_signal, pid);
 | 
			
		||||
	
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Signal  (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_signal.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_start);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
		glibtop_get_proc_kernel (&data.proc_kernel, pid);
 | 
			
		||||
 | 
			
		||||
	getrusage (RUSAGE_SELF, &rusage_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Kernel  (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
 | 
			
		||||
		(unsigned long) data.proc_kernel.flags, PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_UTIME / PROFILE_COUNT,
 | 
			
		||||
		(long double) ELAPSED_STIME / PROFILE_COUNT);
 | 
			
		||||
	
 | 
			
		||||
	getrusage (RUSAGE_SELF, &total_end);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime,
 | 
			
		||||
			  &elapsed_utime);
 | 
			
		||||
 | 
			
		||||
	libgtop_timersub (&total_end.ru_stime, &total_start.ru_stime,
 | 
			
		||||
			  &elapsed_stime);
 | 
			
		||||
 | 
			
		||||
	printf ("-------------------------------------------"
 | 
			
		||||
		"---------------\n");
 | 
			
		||||
 | 
			
		||||
	printf ("%-36s %9lu - %9lu\n\n", "TOTAL",
 | 
			
		||||
		ELAPSED_UTIME, ELAPSED_STIME);
 | 
			
		||||
 | 
			
		||||
	printf ("All timings are in clock ticks "
 | 
			
		||||
		"(1000000 ticks per second).\n\n");
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
glibtopdir		= $(includedir)/glibtop
 | 
			
		||||
glibtopdir		= $(includedir)/libgtop-2.0/glibtop
 | 
			
		||||
 | 
			
		||||
glibtop_HEADERS		= close.h loadavg.h prockernel.h procstate.h \
 | 
			
		||||
			  sem_limits.h uptime.h command.h mem.h proclist.h \
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								include/glibtop/array.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								include/glibtop/array.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
/* -*- 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
 | 
			
		||||
							
								
								
									
										43
									
								
								include/glibtop/call-vector.h.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								include/glibtop/call-vector.h.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
/* -*- 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
 | 
			
		||||
							
								
								
									
										116
									
								
								include/glibtop/call-vector.pl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								include/glibtop/call-vector.pl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,116 @@
 | 
			
		||||
#!/usr/bin/perl
 | 
			
		||||
 | 
			
		||||
require 'c_types.pl';
 | 
			
		||||
 | 
			
		||||
die "Usage: $0 features.def call-vector.h.in" unless $#ARGV == 1;
 | 
			
		||||
 | 
			
		||||
$[ = 1;			# set array base to 1
 | 
			
		||||
$, = ' ';		# set output field separator
 | 
			
		||||
$\ = "\n";		# set output record separator
 | 
			
		||||
 | 
			
		||||
sub toupper {
 | 
			
		||||
    local($_) = @_;
 | 
			
		||||
    tr/a-z/A-Z/;
 | 
			
		||||
    return $_;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub tolower {
 | 
			
		||||
    local($_) = @_;
 | 
			
		||||
    tr/A-Z/a-z/;
 | 
			
		||||
    return $_;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$func_decl_code = '';
 | 
			
		||||
 | 
			
		||||
open FEATURESDEF, $ARGV[1] or
 | 
			
		||||
  die "open ($ARGV[1]): $!";
 | 
			
		||||
 | 
			
		||||
while (<FEATURESDEF>) {
 | 
			
		||||
  chop;				# strip record separator
 | 
			
		||||
  
 | 
			
		||||
  if (/^[^\#]/) {
 | 
			
		||||
    &parse_features_def ($_);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
close FEATURESDEF;
 | 
			
		||||
 | 
			
		||||
sub parse_features_def {
 | 
			
		||||
  local($line) = @_;
 | 
			
		||||
  @line_fields = split(/\|/, $line, 9999);
 | 
			
		||||
  $retval = $line_fields[1];
 | 
			
		||||
  $element_def = $line_fields[3];
 | 
			
		||||
  $feature = $line_fields[2];
 | 
			
		||||
  $param_def = $line_fields[4];
 | 
			
		||||
 | 
			
		||||
  $orig = $feature;
 | 
			
		||||
  $feature =~ s/^@//;
 | 
			
		||||
  $space = $feature;
 | 
			
		||||
  $space =~ s/./ /g;
 | 
			
		||||
 | 
			
		||||
  if ($retval eq 'retval') {
 | 
			
		||||
    $retval_param = '&retval';
 | 
			
		||||
    $retval = 'int';
 | 
			
		||||
  }
 | 
			
		||||
  elsif ($retval !~ /^void$/) {
 | 
			
		||||
    $retval_param = 'NULL';
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    $retval_param = 'NULL';
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
  if ($retval =~ /^(array|pointer)\((.*)\)$/) {
 | 
			
		||||
    $retval = ($2 eq 'string') ? 'char **' : "$2 *";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  $param_decl = '';
 | 
			
		||||
  $nr_params = (@params = split(/:/, $param_def, 9999));
 | 
			
		||||
  for ($param = 1; $param <= $nr_params; $param++) {
 | 
			
		||||
    $list = $params[$param];
 | 
			
		||||
    $type = $params[$param];
 | 
			
		||||
    $type =~ s/\(.*//;
 | 
			
		||||
    $list =~ s/^.*\(//;
 | 
			
		||||
    $list =~ s/\)$//;
 | 
			
		||||
    $count = (@fields = split(/,/, $list, 9999));
 | 
			
		||||
    for ($field = 1; $field <= $count; $field++) {
 | 
			
		||||
      my $c_type = $typeinfo->{$type}->[1];
 | 
			
		||||
 | 
			
		||||
      $param_decl = $param_decl . ', ';
 | 
			
		||||
      $param_decl = $param_decl . $c_type;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if ($line_fields[3] eq '') {
 | 
			
		||||
    $func_decl_code .= sprintf
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *%s);\n], $retval, $feature, $param_decl);
 | 
			
		||||
  } elsif ($line_fields[3] eq 'array') {
 | 
			
		||||
    $func_decl_code .= sprintf
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *%s);\n], $retval, $feature, $param_decl);
 | 
			
		||||
  } elsif ($line_fields[3] =~ /^array/) {
 | 
			
		||||
    $func_decl_code .= sprintf
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
  } else {
 | 
			
		||||
    $func_decl_code .= sprintf
 | 
			
		||||
      (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
chop $func_decl_code;
 | 
			
		||||
 | 
			
		||||
$auto_gen_comment = sprintf
 | 
			
		||||
  (qq[/*\n * This file is automatically generated.\n * Please modify `call-vector.pl' and `call-vector.h.in'.\n */]);
 | 
			
		||||
 | 
			
		||||
open CALLVECTOR, $ARGV[2] or
 | 
			
		||||
  die "open ($ARGV[2]): $!";
 | 
			
		||||
 | 
			
		||||
while (<CALLVECTOR>) {
 | 
			
		||||
  chop;
 | 
			
		||||
 | 
			
		||||
  s/^\s*\@\@GLIBTOP_CALL_VECTOR\@\@\s*$/$func_decl_code/;
 | 
			
		||||
 | 
			
		||||
  s/^\s*\@\@AUTOGEN_COMMENT\@\@\s*$/$auto_gen_comment/;
 | 
			
		||||
} continue {
 | 
			
		||||
  print $_;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
close CALLVECTOR;
 | 
			
		||||
							
								
								
									
										91
									
								
								include/glibtop/compat_10.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								include/glibtop/compat_10.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
/* -*- 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
 | 
			
		||||
@@ -28,13 +28,22 @@
 | 
			
		||||
 | 
			
		||||
BEGIN_LIBGTOP_DECLS
 | 
			
		||||
 | 
			
		||||
#ifndef G_GNUC_UNUSED
 | 
			
		||||
#if	__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
 | 
			
		||||
#define G_GNUC_UNUSED				\
 | 
			
		||||
  __attribute__((unused))
 | 
			
		||||
#else	/* !__GNUC__ */
 | 
			
		||||
#define	G_GNUC_UNUSED
 | 
			
		||||
#endif	/* !__GNUC__ */
 | 
			
		||||
#endif /* defined G_GNUC_UNUSED */
 | 
			
		||||
 | 
			
		||||
void glibtop_error_vr (glibtop *server, char *format, va_list args);
 | 
			
		||||
void glibtop_warn_vr (glibtop *server, char *format, va_list args);
 | 
			
		||||
 | 
			
		||||
void glibtop_error_io_vr (glibtop *server, char *format, int, va_list args);
 | 
			
		||||
void glibtop_warn_io_vr (glibtop *server, char *format, int, va_list args);
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
static void G_GNUC_UNUSED
 | 
			
		||||
glibtop_error_r (glibtop *server, char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list args;
 | 
			
		||||
@@ -44,7 +53,7 @@ glibtop_error_r (glibtop *server, char *format, ...)
 | 
			
		||||
	va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
static void G_GNUC_UNUSED
 | 
			
		||||
glibtop_warn_r (glibtop *server, char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list args;
 | 
			
		||||
@@ -54,7 +63,7 @@ glibtop_warn_r (glibtop *server, char *format, ...)
 | 
			
		||||
	va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
static void G_GNUC_UNUSED
 | 
			
		||||
glibtop_error_io_r (glibtop *server, char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list args;
 | 
			
		||||
@@ -64,7 +73,7 @@ glibtop_error_io_r (glibtop *server, char *format, ...)
 | 
			
		||||
	va_end (args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
static void G_GNUC_UNUSED
 | 
			
		||||
glibtop_warn_io_r (glibtop *server, char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
	va_list args;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										95
									
								
								include/glibtop/errors.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								include/glibtop/errors.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
/* -*- 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
 | 
			
		||||
							
								
								
									
										50
									
								
								include/glibtop/glib-arrays.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								include/glibtop/glib-arrays.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
/* -*- 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
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user