Compare commits
731 Commits
LIBGTOP_2_
...
LIBGTOP_2_
Author | SHA1 | Date | |
---|---|---|---|
|
d07192b5c9 | ||
|
b6464a97ec | ||
|
89aac22fac | ||
|
935d321bf0 | ||
|
9ea7201e24 | ||
|
f4089fa71f | ||
|
ab3f8f58ef | ||
|
e5fdd58fee | ||
|
86f43f408b | ||
|
1aab514cda | ||
|
3a8f2335c9 | ||
|
5b5c9215dc | ||
|
bf13e02061 | ||
|
1e2c9d5517 | ||
|
5dccc423d8 | ||
|
d58409351c | ||
|
1c20ceb694 | ||
|
3d4491494f | ||
|
10a04fc9c7 | ||
|
10e5124770 | ||
|
f269f738d7 | ||
|
bc86ee5421 | ||
|
7ea989c2b8 | ||
|
91b7ae4b11 | ||
|
ce23ce407c | ||
|
7f779e078d | ||
|
229eab1213 | ||
|
791e0dd859 | ||
|
f63973eac5 | ||
|
806a2d2d7e | ||
|
af81e9be75 | ||
|
90fc3ca780 | ||
|
99e9437b37 | ||
|
6c7f40ac64 | ||
|
e75261ada8 | ||
|
dc5da30913 | ||
|
4d78d26932 | ||
|
cd950bbf73 | ||
|
c1b95643a8 | ||
|
be8a371481 | ||
|
fedd75b2b1 | ||
|
a02e213373 | ||
|
e3697c9a9e | ||
|
91e2e5a1b7 | ||
|
158280e297 | ||
|
62c741074c | ||
|
87a80ba430 | ||
|
7bb5abb9a8 | ||
|
40485978ec | ||
|
73c62a7bdb | ||
|
e4d9c10a73 | ||
|
5d3f18e12c | ||
|
d97b0c3419 | ||
|
960d12822d | ||
|
f79f25f5ce | ||
|
3bb78c22c4 | ||
|
4971103dc3 | ||
|
35fab4d9aa | ||
|
2078320e14 | ||
|
46a29ac020 | ||
|
d9c98b57c9 | ||
|
9ce9de7942 | ||
|
1409a8ef80 | ||
|
bff4a84864 | ||
|
77524a1ad2 | ||
|
a171755aa6 | ||
|
1d5f2cb395 | ||
|
86ace13645 | ||
|
57b1547333 | ||
|
efee8728d1 | ||
|
9ae5202a78 | ||
|
07322469b7 | ||
|
b797fcf578 | ||
|
7725fdff77 | ||
|
e5298ca598 | ||
|
92d54e287a | ||
|
2d9656e82a | ||
|
8674e92349 | ||
|
f5bbc36a91 | ||
|
b058565419 | ||
|
2c6b951822 | ||
|
9b072525a6 | ||
|
e2e0e3a555 | ||
|
f37f72781a | ||
|
9618fe795f | ||
|
2e3231b051 | ||
|
7fd14852db | ||
|
73728a78c7 | ||
|
3f55d507dd | ||
|
13cec7830f | ||
|
665d65d164 | ||
|
21adc6b0c5 | ||
|
3529a1b59f | ||
|
8a0a3632ac | ||
|
e6f9e07a9e | ||
|
755695c537 | ||
|
dba423b6e7 | ||
|
83cda8c605 | ||
|
6856c690f3 | ||
|
a9b3964675 | ||
|
44b360a521 | ||
|
699524ea6a | ||
|
2f4826b4d8 | ||
|
83160ef48c | ||
|
76bfbd3006 | ||
|
73c9b1dd20 | ||
|
da878ec588 | ||
|
f3c90e4b3a | ||
|
f3959743b6 | ||
|
70a58a4cd4 | ||
|
600bb6f004 | ||
|
d5ccf3404b | ||
|
b17762a5ae | ||
|
1f2325b441 | ||
|
b1757616d8 | ||
|
871f300a2c | ||
|
650c8f2582 | ||
|
28ae85c10b | ||
|
ce37ceeb15 | ||
|
706c847b17 | ||
|
82be8d7f8d | ||
|
22e55d2e37 | ||
|
31844753e8 | ||
|
0ad36c2f62 | ||
|
79143ecad7 | ||
|
62dba864d7 | ||
|
21a763e55a | ||
|
c81d6306e5 | ||
|
7270bcc9d5 | ||
|
3c39f89281 | ||
|
e34f38d3fc | ||
|
a207cc1580 | ||
|
b219d3181e | ||
|
bc848239ff | ||
|
0285e018f4 | ||
|
01f1e7e955 | ||
|
ef34cfb38a | ||
|
1e0ba1d7aa | ||
|
6b0bafcafb | ||
|
c0856a39bd | ||
|
270820a05c | ||
|
358660837c | ||
|
e387c66aad | ||
|
e774440e77 | ||
|
c7295cd5f0 | ||
|
65fe248d66 | ||
|
5c479c9a45 | ||
|
6509ddff4c | ||
|
ee78aaf29c | ||
|
a5f59cb81a | ||
|
a99011fd5c | ||
|
598374bb1c | ||
|
b1acd4461e | ||
|
0e2fe6158c | ||
|
f8b9e6f7cc | ||
|
8fc7451000 | ||
|
aaab91cc20 | ||
|
cde89c59b1 | ||
|
0ce04dd037 | ||
|
8e4c6df830 | ||
|
da54431af5 | ||
|
ace68aa492 | ||
|
eee0cad2b6 | ||
|
785b30aeb6 | ||
|
3eb958dc6c | ||
|
cd389851b9 | ||
|
7ee8dae9c5 | ||
|
4b9bb4ee71 | ||
|
aa9fafe5c3 | ||
|
e0c1214cdd | ||
|
82612af053 | ||
|
2f6439a239 | ||
|
44ff5b7599 | ||
|
eb6c8b696f | ||
|
177d1aa841 | ||
|
021153bc49 | ||
|
89810a70ec | ||
|
504ff4ec59 | ||
|
04a5531a46 | ||
|
5a15e409cf | ||
|
747438e334 | ||
|
10211bf7da | ||
|
09f8aaec1e | ||
|
9f509067d4 | ||
|
a085c85db6 | ||
|
c6a7459bc9 | ||
|
3d06443c2c | ||
|
3f49e555fc | ||
|
e156172e7c | ||
|
c9385972bd | ||
|
b411ee115f | ||
|
63fb94127a | ||
|
37fc9c1544 | ||
|
9055b90aef | ||
|
3f25ae9b43 | ||
|
a288a086f7 | ||
|
25a398fc24 | ||
|
0b438b5250 | ||
|
0d2382e666 | ||
|
56b06c7433 | ||
|
84f690d318 | ||
|
fef76514ed | ||
|
1bc8ce6f23 | ||
|
920a936511 | ||
|
648c28b332 | ||
|
d9282f6102 | ||
|
1ca0e5c5e7 | ||
|
537bf34f94 | ||
|
5982287f48 | ||
|
24f5bb1e22 | ||
|
499f599e95 | ||
|
71ce0e790b | ||
|
05dfb867a3 | ||
|
2345eaf4ee | ||
|
7b3d57c9e9 | ||
|
9ebea04e19 | ||
|
0cefbb6df0 | ||
|
272a72d7bc | ||
|
75f11dc5d6 | ||
|
383b4c480e | ||
|
610c0071cc | ||
|
08887909fa | ||
|
6bd78a815b | ||
|
34e8fd7400 | ||
|
1f7f18b399 | ||
|
a7a9e7e9f8 | ||
|
c51a13bf0e | ||
|
d497c25081 | ||
|
3345ef1704 | ||
|
af52067b3a | ||
|
a3e3a224a2 | ||
|
b9e498c0b8 | ||
|
875df72edf | ||
|
c5e81bacbf | ||
|
8663fc3fda | ||
|
37487d4e62 | ||
|
d52fc3f868 | ||
|
bc79bf010a | ||
|
7f477561f0 | ||
|
c7e0a7ac59 | ||
|
bc6ff2cb59 | ||
|
1826be8ef6 | ||
|
739e9cac4a | ||
|
8c7e0e6f2e | ||
|
46c9f6ebeb | ||
|
e6d6b0bba7 | ||
|
8d60c52922 | ||
|
21f74a6427 | ||
|
05b94bd263 | ||
|
956527cb57 | ||
|
d8f9e265cf | ||
|
64fe5d591b | ||
|
12502c2673 | ||
|
5d2f45803b | ||
|
3c21c70b64 | ||
|
9e6115f322 | ||
|
cead508eae | ||
|
26d85d02fb | ||
|
afa9757a0e | ||
|
80855eabe2 | ||
|
3558c4d5c3 | ||
|
1870a03538 | ||
|
214e1decbd | ||
|
3c173b95b4 | ||
|
2083db6c34 | ||
|
a7cf016d67 | ||
|
ec7922c6bd | ||
|
c2104f2f0b | ||
|
47776e8f21 | ||
|
88cd202147 | ||
|
6226594f04 | ||
|
580558333e | ||
|
702e3775c3 | ||
|
a597640830 | ||
|
a956784797 | ||
|
e71023b362 | ||
|
89f9c1d43a | ||
|
29adf02352 | ||
|
35030c878b | ||
|
9b916ee402 | ||
|
23ca9669ae | ||
|
d66ae501f9 | ||
|
ccb10a7b33 | ||
|
9d2131a4b5 | ||
|
7d3059e732 | ||
|
d3add9e115 | ||
|
101fe5874f | ||
|
3afe2bf629 | ||
|
e296c3a37a | ||
|
2f3120d6c9 | ||
|
806a816026 | ||
|
ba7355df9e | ||
|
451f9f9d6c | ||
|
52fa57a39b | ||
|
aa5ac8fc10 | ||
|
a7db1f4dfd | ||
|
91a312768d | ||
|
d9a666470c | ||
|
79fc0e70c0 | ||
|
532f5ceb4f | ||
|
a326e2dcac | ||
|
8a626d9f97 | ||
|
a6513af1c6 | ||
|
95b2dfa326 | ||
|
ac3ad6d2aa | ||
|
4186c9a956 | ||
|
7770480ad2 | ||
|
50f20979df | ||
|
78ec6945df | ||
|
170b03f4f2 | ||
|
c183276e2b | ||
|
d7945bdc36 | ||
|
2930c9f092 | ||
|
fe6a33a5fd | ||
|
30ebfb45d0 | ||
|
b43a1e01c0 | ||
|
88d606d814 | ||
|
dd0d06898a | ||
|
3e77f3cf13 | ||
|
22a1120348 | ||
|
da4dc46b7a | ||
|
03bcc48da6 | ||
|
708285f0d2 | ||
|
a0493a0ff1 | ||
|
9f7d505d20 | ||
|
78cb7832c5 | ||
|
b3979e6942 | ||
|
92d3176303 | ||
|
e5c7f87f50 | ||
|
7e506a6c83 | ||
|
1645027004 | ||
|
8e656af060 | ||
|
4efcfb2cb3 | ||
|
59da1618b0 | ||
|
e9ce3ccc1c | ||
|
84e45a6519 | ||
|
96fe554afd | ||
|
16e0c943b2 | ||
|
f409c553f5 | ||
|
b6a10fd8f7 | ||
|
efeca4a865 | ||
|
5e70932b66 | ||
|
d499bd3761 | ||
|
48e3d5b2ec | ||
|
55270e618e | ||
|
a5c897b846 | ||
|
b0093954b3 | ||
|
c81e055427 | ||
|
06fb19b5c6 | ||
|
f8d9557257 | ||
|
ef2ed50bf7 | ||
|
c19ba1af03 | ||
|
c1e5bdfb16 | ||
|
be7dabf75d | ||
|
d37b1b9a2e | ||
|
6f755a5ca7 | ||
|
4cd022b315 | ||
|
69873a143d | ||
|
f5655f12d3 | ||
|
a71839c0a7 | ||
|
74d9b24132 | ||
|
d4ee5eb884 | ||
|
872a4180e4 | ||
|
e8351bae05 | ||
|
adb38dd2a3 | ||
|
755d5fe5f5 | ||
|
d1891b11ef | ||
|
765a919305 | ||
|
ad2f74dbc3 | ||
|
b017d60c83 | ||
|
29a991160c | ||
|
59fd67c7e0 | ||
|
bbc10e3790 | ||
|
f4f88ff224 | ||
|
fffccf3309 | ||
|
3c0e03ee89 | ||
|
fa9216f771 | ||
|
83a9bef192 | ||
|
ca4dc56342 | ||
|
a97ee0a513 | ||
|
41a723fde4 | ||
|
f673d2ea37 | ||
|
cae488a4ee | ||
|
ad79ab9540 | ||
|
e958d8dbbe | ||
|
a58e2f6385 | ||
|
c505f26427 | ||
|
53aec7429f | ||
|
6099a46f42 | ||
|
1711b912f1 | ||
|
c817a9fac1 | ||
|
a1657f81cb | ||
|
0561316344 | ||
|
2c0f291b3c | ||
|
fc7d872381 | ||
|
c97d63f368 | ||
|
675145ea55 | ||
|
965bd33d55 | ||
|
7a5e1a0f37 | ||
|
da24dd8fd9 | ||
|
717ee1c88f | ||
|
f031b77b3b | ||
|
e0ae6ebcaa | ||
|
16123b6fe9 | ||
|
672da9122e | ||
|
35f0277afd | ||
|
8d77e50c03 | ||
|
82dc5aefe1 | ||
|
f2f5ab9b73 | ||
|
49acc8769c | ||
|
15759a964a | ||
|
649b88a7fa | ||
|
073a6dd8c1 | ||
|
d61ad50e23 | ||
|
53c43e6e90 | ||
|
b43e879cc0 | ||
|
0fdfd65a2a | ||
|
1ac8744251 | ||
|
bbbbb27edc | ||
|
a5982555b9 | ||
|
7d44f04aed | ||
|
c9dc0d0ef8 | ||
|
e82f908824 | ||
|
8365f40856 | ||
|
b2917db0be | ||
|
3d21fd97f6 | ||
|
666a347f25 | ||
|
68db204d6a | ||
|
fbe5c8da8e | ||
|
a354ca2635 | ||
|
639ea4870c | ||
|
702d9a1501 | ||
|
ea1a6dbaca | ||
|
bb60753844 | ||
|
d9781917c5 | ||
|
bd119a72e2 | ||
|
78c10bca9b | ||
|
270ec235c1 | ||
|
2362be986b | ||
|
8a1e1cff91 | ||
|
46380bf655 | ||
|
91dda5b70d | ||
|
9b263e0fbb | ||
|
793807b07e | ||
|
9898e7ee58 | ||
|
7ecdcd712d | ||
|
703a17f3f0 | ||
|
92a9e7d937 | ||
|
01c7e99aa6 | ||
|
6fe16f1d91 | ||
|
fcb83e637d | ||
|
50e4e07013 | ||
|
ab40c94db3 | ||
|
fee415ecd8 | ||
|
647a313d5b | ||
|
70ac398a44 | ||
|
48056f7d8a | ||
|
7ca4171652 | ||
|
1537eea7e5 | ||
|
0a425e4e41 | ||
|
0fa9c9bc61 | ||
|
9561cf34b2 | ||
|
be721ca476 | ||
|
265da513de | ||
|
a180cb5b10 | ||
|
c517f20195 | ||
|
e4ad12fd93 | ||
|
c22300d109 | ||
|
bffc09b594 | ||
|
b7fd73bc5c | ||
|
15904773f3 | ||
|
b76ae7b1ca | ||
|
006eddb5fe | ||
|
7566ccf311 | ||
|
cde49f488c | ||
|
ce9ce223ca | ||
|
71900c0e30 | ||
|
817057bc3c | ||
|
9fe6dadcec | ||
|
3e06f95c84 | ||
|
2ca1905547 | ||
|
65d2d61d41 | ||
|
8a4fd3c971 | ||
|
c09e2fdead | ||
|
fe5bb1c39c | ||
|
4b310d26f7 | ||
|
83759b2a4a | ||
|
209219d5ce | ||
|
8ce468228a | ||
|
e9e2b7c09b | ||
|
2fa0dc1cd8 | ||
|
faa80b7b24 | ||
|
7ff2372249 | ||
|
f378a263b0 | ||
|
77b892ebf7 | ||
|
db2fed4da3 | ||
|
160bdeaecd | ||
|
1d6debfa56 | ||
|
bbb6cbaa87 | ||
|
ce229a4e19 | ||
|
544aff2f18 | ||
|
74f20ca469 | ||
|
edd5156ca0 | ||
|
7e5ccec8bf | ||
|
fdf313cdf6 | ||
|
9a6bb02fb1 | ||
|
e6f0664c3b | ||
|
405f0602e0 | ||
|
b3dfc1d1d2 | ||
|
13025c6c5f | ||
|
bbcbe6b67d | ||
|
6c586e844f | ||
|
a1677aefa8 | ||
|
9f91b2ddb8 | ||
|
ca8d9657f0 | ||
|
5bd4c5feeb | ||
|
15a4ba35a9 | ||
|
f028bd79bf | ||
|
d809faba3e | ||
|
d0833edb66 | ||
|
9aae957919 | ||
|
6d24f84fd6 | ||
|
fe08779c6c | ||
|
804b82eff8 | ||
|
61889bc182 | ||
|
c29887d4b0 | ||
|
edb1e6a773 | ||
|
5d97c3fa5e | ||
|
e830a8eeb6 | ||
|
a6410588cd | ||
|
339b79b100 | ||
|
831f0e7d68 | ||
|
4882405885 | ||
|
5b15a2d1a5 | ||
|
6954b81396 | ||
|
35dd4cf1ca | ||
|
0b0b1ab43c | ||
|
a6311d88c3 | ||
|
f561120748 | ||
|
b35532dd6f | ||
|
c7d323749c | ||
|
3d1997ca94 | ||
|
b3fd15c190 | ||
|
601cfef32f | ||
|
86fd7f23c4 | ||
|
3668b5bb19 | ||
|
89f531cdbc | ||
|
35488aef90 | ||
|
dc31c8b8dd | ||
|
a205458dbe | ||
|
9ccd5cc4cb | ||
|
0fb5f3df88 | ||
|
c82734255b | ||
|
19ebd69b93 | ||
|
c93a83e78a | ||
|
c968c56913 | ||
|
8508785c67 | ||
|
9d142723a6 | ||
|
a0afc5616a | ||
|
423d0e353d | ||
|
a4307cb35d | ||
|
0bc628484c | ||
|
3bdad36198 | ||
|
7a4c9fb40f | ||
|
8c5093a395 | ||
|
5ccd5980c0 | ||
|
60c8aae6d9 | ||
|
28a5db91d2 | ||
|
770e39d2d2 | ||
|
8ca47ad9e0 | ||
|
49f1de8217 | ||
|
63cc547156 | ||
|
fcfd0bd852 | ||
|
4b6c206598 | ||
|
e81e7db939 | ||
|
91adde3f3d | ||
|
ef95ef85ff | ||
|
ff160fa9f3 | ||
|
11f37815a3 | ||
|
16d9eebd1b | ||
|
71c1792637 | ||
|
6fc4a48c6f | ||
|
550b9743c7 | ||
|
36fe063384 | ||
|
42c697c37e | ||
|
91c53d4f22 | ||
|
878826c871 | ||
|
f9b9b8dbd9 | ||
|
d20bbf57fe | ||
|
6bbc66417a | ||
|
336d234bce | ||
|
a6df633a6f | ||
|
8cd69ad3df | ||
|
ab2881a412 | ||
|
bce095739f | ||
|
d872544eb7 | ||
|
03e96ce487 | ||
|
95dfedd71d | ||
|
4cda07c19c | ||
|
182f069928 | ||
|
647f7c7be8 | ||
|
808a2d48ac | ||
|
5b39a4831d | ||
|
275d96b6c7 | ||
|
a6f5be63ce | ||
|
b818519801 | ||
|
7a3d548bb6 | ||
|
dff4386212 | ||
|
cb4a95bf02 | ||
|
3502306b83 | ||
|
69767956dc | ||
|
e8158ec1b1 | ||
|
995ca5afb9 | ||
|
40c2e53355 | ||
|
4c0a0244e5 | ||
|
e794406321 | ||
|
e0882a5c68 | ||
|
4a7fb7c8cf | ||
|
eca1b71b75 | ||
|
81f0ecdcbe | ||
|
d549b72975 | ||
|
9737ebe1c9 | ||
|
b91aceeccb | ||
|
2bad1b2cd1 | ||
|
16cda6232b | ||
|
ff4fe5e846 | ||
|
92c18d4e8a | ||
|
644b0ebcf5 | ||
|
e5a855db7c | ||
|
bfc14a1925 | ||
|
b1c611c7fc | ||
|
18abf86346 | ||
|
9e1b0a2814 | ||
|
35db2e7496 | ||
|
a8593d5b84 | ||
|
de7fd9e85b | ||
|
c30e6a0dd2 | ||
|
47b0db5ca9 | ||
|
2e6438e582 | ||
|
babe152ba2 | ||
|
7612022e83 | ||
|
24073c48c5 | ||
|
b55ecd65bc | ||
|
50f086cb68 | ||
|
8eae848c3f | ||
|
d8a9aebdf5 | ||
|
76c967224b | ||
|
a08c8d96bb | ||
|
b279819639 | ||
|
99723e15ba | ||
|
6b3d52ff0e | ||
|
bb01063e93 | ||
|
e12ac5f40c | ||
|
34e322e7c2 | ||
|
559f481354 | ||
|
bb4397aec8 | ||
|
7eeae24a4a | ||
|
7fe2ca8cd7 | ||
|
16bcad422c | ||
|
3881c09b51 | ||
|
cd8b43e1d1 | ||
|
6a10d1ada9 | ||
|
a415d909a2 | ||
|
09febbf67d | ||
|
d5b8a71e5b | ||
|
f03e2d3c11 | ||
|
ac2b8285ab | ||
|
4de267e394 | ||
|
10d56bd5fc | ||
|
70b0925a82 | ||
|
b0edf88ff7 | ||
|
4fe066a430 | ||
|
95d39a87c8 | ||
|
54fb1482ba | ||
|
2f87aa4479 | ||
|
31e8abe019 | ||
|
d8cb4ccdf7 | ||
|
45f2f19c3a | ||
|
fe494bc846 | ||
|
7de929d2d7 | ||
|
bc4a882c4a | ||
|
75291a665c | ||
|
5af13a2a6a | ||
|
0cdaaf1f62 | ||
|
0a761f37f2 | ||
|
dc3027c438 | ||
|
74453855aa | ||
|
b15f542bfc | ||
|
1faa40ce18 | ||
|
4e4a2bcbed | ||
|
0de7c96d2a | ||
|
f070fea744 | ||
|
f416087865 | ||
|
cc8b169a8e | ||
|
31eb5d64cc | ||
|
5670749242 | ||
|
892c59f8a8 | ||
|
07ec479243 | ||
|
45b69b3277 | ||
|
ea9147a717 | ||
|
dc0de7a8c0 | ||
|
5884e4c6d7 | ||
|
0ef0f65d95 | ||
|
355a8dd9b9 | ||
|
2b221cbb1f | ||
|
1cffda35ec | ||
|
64b86ef8e3 | ||
|
aa7d624aca | ||
|
bb174b24e9 | ||
|
1d00248f3d | ||
|
c2895a9aa0 | ||
|
576aed18ba | ||
|
a4ee15727c | ||
|
6cd93d82a0 | ||
|
1d73fbed99 | ||
|
89e79ee51f | ||
|
f3be4b50a9 | ||
|
ab1d1077d6 | ||
|
3c7c79944c | ||
|
897db07104 | ||
|
4bd9752d52 | ||
|
a795ff4847 | ||
|
58c15ceeda | ||
|
f3e89490d4 | ||
|
10e619439e | ||
|
05f3377934 | ||
|
2ae3495a87 | ||
|
bbea6f3e16 | ||
|
74afd1c1d1 | ||
|
1c57c82637 | ||
|
857b940e93 |
36
.cvsignore
36
.cvsignore
@@ -1,36 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
config.cache
|
||||
config.h
|
||||
config.h.in
|
||||
config.log
|
||||
config.sub
|
||||
config.guess
|
||||
config.status
|
||||
configure
|
||||
gtopConf.sh
|
||||
i386-bsdi
|
||||
i686-pc-linux-gnu
|
||||
intl
|
||||
libgtop-mirror.sh.swp
|
||||
libgtopConf.sh
|
||||
libtool
|
||||
ltconfig
|
||||
ltmain.sh
|
||||
macros
|
||||
stamp-h
|
||||
stamp-h.in
|
||||
sun4
|
||||
sun4sol2
|
||||
support
|
||||
i386-freebsd
|
||||
alpha-dec-osf3.0
|
||||
i686-pc-linux-gnu-linux
|
||||
libgtop-config
|
||||
ABOUT-NLS
|
||||
libgtop.spec
|
||||
libgtop*.tar.gz
|
||||
*-debstamp
|
||||
libgtop*.pc
|
||||
autom4te.cache
|
1
AUTHORS
1
AUTHORS
@@ -1,2 +1,3 @@
|
||||
Martin Baulig (martin@home-of-linux.org)
|
||||
Drazen Kacar (dave@srce.hr)
|
||||
Benoît Dejean (tazforever@dlfp.org)
|
||||
|
@@ -1,28 +0,0 @@
|
||||
# Making releases:
|
||||
# LIBGTOP_MICRO_VERSION += 1;
|
||||
# LIBGTOP_INTERFACE_AGE += 1;
|
||||
# LIBGTOP_BINARY_AGE += 1;
|
||||
# if any functions have been added, set LIBGTOP_INTERFACE_AGE to 0.
|
||||
# if backwards compatibility has been broken,
|
||||
# set LIBGTOP_BINARY_AGE and LIBGTOP_INTERFACE_AGE to 0.
|
||||
#
|
||||
LIBGTOP_MAJOR_VERSION=1
|
||||
LIBGTOP_MINOR_VERSION=90
|
||||
LIBGTOP_MICRO_VERSION=0
|
||||
|
||||
LIBGTOP_INTERFACE_AGE=0
|
||||
LIBGTOP_BINARY_AGE=0
|
||||
# you can set this to `-snap' for instance to create
|
||||
# a `libgtop-1.x.y-snap.tar.gz' tarball.
|
||||
LIBGTOP_VERSION_SUFFIX=
|
||||
|
||||
# Increase each time you change the client/server protocol.
|
||||
LIBGTOP_SERVER_VERSION=5
|
||||
|
||||
# Don't change this
|
||||
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
|
||||
LIBGTOP_VERSION_CODE=`echo "$LIBGTOP_MAJOR_VERSION 1000000 * $LIBGTOP_MINOR_VERSION 1000 * + $LIBGTOP_MICRO_VERSION + p q" | dc`
|
||||
|
||||
# For automake.
|
||||
VERSION=$LIBGTOP_VERSION$LIBGTOP_VERSION_SUFFIX
|
||||
PACKAGE=libgtop
|
@@ -1,2 +1,4 @@
|
||||
Email: martin@home-of-linux.org
|
||||
Email: dave@srce.hr
|
||||
Benoît Dejean
|
||||
E-mail: benoit@placenet.org
|
||||
Userid: bdejean
|
||||
|
||||
|
23
Makefile.am
23
Makefile.am
@@ -1,13 +1,27 @@
|
||||
|
||||
SUBDIRS = po misc include sysdeps lib src examples doc
|
||||
if EXAMPLES
|
||||
EXAMPLES_DIR = examples
|
||||
else
|
||||
EXAMPLES_DIR =
|
||||
endif
|
||||
|
||||
libgtopinclude_HEADERS = glibtop.h
|
||||
SUBDIRS = po misc include sysdeps lib src $(EXAMPLES_DIR) doc
|
||||
|
||||
libgtopinclude_HEADERS = glibtop.h libgtopconfig.h
|
||||
libgtopincludedir = $(includedir)/libgtop-2.0
|
||||
|
||||
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \
|
||||
LIBGTOP-VERSION features.def \
|
||||
features.def libgtopconfig.h.in \
|
||||
libgtop-sysdeps.m4 README \
|
||||
libgtop-mirror.sh libgtop-2.0.pc.in acinclude.m4
|
||||
libgtop-2.0.pc.in acinclude.m4 \
|
||||
intltool-extract.in \
|
||||
intltool-merge.in \
|
||||
intltool-update.in
|
||||
|
||||
DISTCLEANFILES = \
|
||||
intltool-extract \
|
||||
intltool-merge \
|
||||
intltool-update
|
||||
|
||||
dist-hook:
|
||||
cp libgtop.spec $(distdir)
|
||||
@@ -18,3 +32,4 @@ pkgconfig_DATA = libgtop-2.0.pc
|
||||
libgtop-features.def: features.def
|
||||
@LN_S@ $< $@
|
||||
|
||||
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
|
||||
|
340
NEWS
340
NEWS
@@ -1,3 +1,343 @@
|
||||
12 January 2009: Overview of changes in 2.24.3
|
||||
==============================================
|
||||
* linux:
|
||||
- fixed potential memory leak. Vincent Untz.
|
||||
- fixed read(2) usage. Should fix the missing cpus bug in system-monitor.
|
||||
* darwin:
|
||||
- fixed build. "paul".
|
||||
|
||||
22 Septembre 2008: Overview of changes in 2.24.0
|
||||
================================================
|
||||
* Translation updates.
|
||||
|
||||
18 August 2008: Overview of changes in 2.23.90
|
||||
==============================================
|
||||
* freebsd:
|
||||
- updated port by Joe Marcus Clarke.
|
||||
|
||||
23 June 2008: Overview of changes in 2.23.4
|
||||
===========================================
|
||||
* linux:
|
||||
- Fixed and improved glibtop_get_fsusage with kernel >= 2.6.25.
|
||||
Closes #539360.
|
||||
|
||||
24 May 2008: Overview of changes in 2.23.2
|
||||
==========================================
|
||||
* glibtop_get_proc_open_files API can also lists IPv6 TCP sockets.
|
||||
* glibtop_get_proc_affinity : new API to retrieve process CPU affinity.
|
||||
|
||||
(Let's hope one day i'll find the gtk-doc documentation ...)
|
||||
|
||||
* linux:
|
||||
- fixed parsing of big /proc/stat for uptime.
|
||||
|
||||
04 April 2008: Overview of changes in 2.22.1
|
||||
============================================
|
||||
* Fixed compilation/dist for !linux.
|
||||
Closes #525953.
|
||||
|
||||
10 Mars 2008: Overview of changes in 2.22.0
|
||||
===========================================
|
||||
* linux:
|
||||
- fixed proc_kernel.
|
||||
|
||||
25 February 2008: Overview of changes in 2.21.92
|
||||
================================================
|
||||
* linux:
|
||||
- fixed smaps parsing on >= 2.6.24.x.
|
||||
|
||||
14 January 2008: Overview of changes in 2.21.5
|
||||
==============================================
|
||||
* freebsd:
|
||||
- fixed build on GNU/kfreebsd. Petr Salinger.
|
||||
- fixed procmem units. Kuang-che Wu.
|
||||
|
||||
28 October 2007: Overview of changes in 2.21.1
|
||||
==============================================
|
||||
* don't export _p/_s private symbols anymore. This is not an API/ABI breakage.
|
||||
* darwin implementation by Benjamin Reed.
|
||||
* linux:
|
||||
- splitted fsusage and mountlist implementations;
|
||||
- smarter mountlist(allfs = False);
|
||||
- fixed some compile warning on 64bit;
|
||||
* solaris:
|
||||
- fixed netload build by Henry Zhang.
|
||||
|
||||
16 September 2007: Overview of changes in 2.20.0
|
||||
================================================
|
||||
* Updated translations.
|
||||
|
||||
27 August 2007: Overview of changes in 2.19.92
|
||||
==============================================
|
||||
* Fixed stupid hardwired path in linux/sysinfo.c
|
||||
|
||||
26 August 2007: Overview of changes in 2.19.91
|
||||
==============================================
|
||||
* Translations updates.
|
||||
* linux:
|
||||
- Small internal improvement. Might fix sysinfo when having more than
|
||||
8 CPUS.
|
||||
|
||||
9 July 2007: Overview of changes in 2.19.5
|
||||
==========================================
|
||||
* linux:
|
||||
- fixed proc_map for >= 2.6.22
|
||||
* freebsd:
|
||||
- implemented procwd and procopenfiles
|
||||
Joe Marcus Clarke
|
||||
|
||||
18 June 2007: Overview of changes in 2.19.4
|
||||
===========================================
|
||||
* solaris:
|
||||
- fixed build. Damien Carbery.
|
||||
|
||||
3 June 2007: Overview of changes in 2.19.3
|
||||
==========================================
|
||||
* Small API change. get_proclist returns pid_t instead of unsigned
|
||||
for consistency.
|
||||
* linux:
|
||||
- fixed an typo bug in open_files.
|
||||
- got rid of useless glibtop_init_s calls.
|
||||
* Enable example build by defaut.
|
||||
* Dropped G_GNUC_INTERNAL attributes no longer needed.
|
||||
This will please people trying to implement G_GNUC macro with a non
|
||||
GNU Compiler.
|
||||
|
||||
13 May 2007: Overview of changes in 2.19.2
|
||||
==========================================
|
||||
* This is the first release of the 2.19.x series.
|
||||
* Got rid of inodedb (you don't even know what it is ;)
|
||||
* New unstable API glibtop_get_proc_wd to get working directories of
|
||||
a process.
|
||||
* Fixed OpenBSD build. Jasper Lievisse Adriaanse.
|
||||
|
||||
25 February 2007: Overview of changes in 2.14.8
|
||||
===============================================
|
||||
* bsd implementations have been splitted by Joe Marcus Clarke
|
||||
and Alexander Nedotsukov. (k)freeBSD now has a separate implementation.
|
||||
|
||||
February 10, 2007: Overview of changes in 2.14.7
|
||||
================================================
|
||||
* bsd:
|
||||
- massive kfreeBSD and FreeBSD updates by Roy Marples and Petr Salinger.
|
||||
* mountlist can now ignore objfs and ctfs filesystems.
|
||||
* fsusage won't return bavail > bfree anymore.
|
||||
|
||||
January 14, 2007: Overview of changes in 2.14.6
|
||||
===============================================
|
||||
* linux:
|
||||
- fixed stack overflow in glibtop_get_proc_map
|
||||
- fixed handling of long filenames in glibtop_get_proc_map and glibtop_get_proc_open_files.
|
||||
- micro-optimization
|
||||
|
||||
December 3, 2006: Overview of changes in 2.14.5
|
||||
===============================================
|
||||
* Added kfreebsd support (Petr Salinger <Petr.Salinger@seznam.cz>).
|
||||
* Added solaris glibtop_get_proc_open_files (Henry Zhang <hua.zhang@sun.com>).
|
||||
* Migrated to gtk-doc (Germán Poó-Caamaño <gpoo@ubiobio.cl>).
|
||||
* glibtop_get_mountlist can now ignore nsfd FS.
|
||||
|
||||
September 16, 2006: Overview of changes in 2.14.4
|
||||
=================================================
|
||||
* Fixed linux maps/smaps parsing on 64bit kernel.
|
||||
|
||||
September 5, 2006: Overview of changes in 2.14.3
|
||||
================================================
|
||||
* Fixed build with --as-needed.
|
||||
* Added missing G_BEGIN_DECLS/G_END_DECLS.
|
||||
|
||||
July 27, 2006: Overview of changes in 2.14.2
|
||||
============================================
|
||||
* Updated solaris support (hua.zhang@sun.com)
|
||||
* Small linux updates and improvments.
|
||||
|
||||
April 10, 2006: Overview of changes in 2.14.1
|
||||
=============================================
|
||||
* Updated translations.
|
||||
* Fixed NetBSD port (Julio M. Merino Vidal <jmmv@NetBSD.org>).
|
||||
* Fixed some warnings.
|
||||
|
||||
Mars 13, 2006: Overview of changes in 2.14.0
|
||||
============================================
|
||||
* Updated translations.
|
||||
|
||||
February 27, 2006: Overview of changes in 2.13.92
|
||||
=================================================
|
||||
* Fixed proc_state documentation.
|
||||
* Updated mountlist ignore list.
|
||||
|
||||
January 23, 2006: Overview of changes in 2.13.3
|
||||
===============================================
|
||||
* linux:
|
||||
- fixe get_procmap for linux < 2.6.14.
|
||||
|
||||
January 2, 2006: Overview of changes in 2.13.2
|
||||
==============================================
|
||||
* Fixed libtool versioning (James Henstridge)
|
||||
|
||||
December 15, 2005: Overview of changes in 2.13.1
|
||||
================================================
|
||||
* linux:
|
||||
- fixed proclist
|
||||
- implemented server->real_ncpu
|
||||
|
||||
December 13, 2005: Overview of changes in 2.13.0
|
||||
================================================
|
||||
* Requires automake-1.9 (James Henstridge)
|
||||
* Supports up to 32 CPU
|
||||
* Supports Linux smaps
|
||||
* linux: fixed SMP detection
|
||||
|
||||
This release is not ABI compatible with previous releases. Sorry.
|
||||
|
||||
November 29, 2005: Overview of changes from 2.12.0 to 2.12.1
|
||||
============================================================
|
||||
* Dropped dead files
|
||||
* linux: 1-line cleanup.
|
||||
|
||||
September 4, 2005: Overview of changes from 2.11.92 to 2.12.0
|
||||
=============================================================
|
||||
* Updated translations.
|
||||
|
||||
August 22, 2005: Overview of changes from 2.11.91 to 2.11.92
|
||||
============================================================
|
||||
* Linux:
|
||||
- fixed for 2.6 without /sys
|
||||
- glibtop_get_cpu() : Do not add irq, softirq and iowait to idle.
|
||||
|
||||
August 9, 2005: Overview of changes from 2.11.90 to 2.11.91
|
||||
===========================================================
|
||||
* All:
|
||||
- cleaned some headers.
|
||||
- removed static examples.
|
||||
* Linux:
|
||||
- fixed some issues with 2.6 without /sys
|
||||
|
||||
July 24, 2005: Overview of changes from 2.11.2 to 2.11.90
|
||||
=========================================================
|
||||
* Linux:
|
||||
- fixed glibtop_uptime .flags.
|
||||
|
||||
July &3, 2005: Overview of changes from 2.11.1 to 2.11.2
|
||||
========================================================
|
||||
* Linux:
|
||||
- little improvements for 2.6.
|
||||
|
||||
July 3, 2005: Overview of changes from 2.11.0 to 2.11.1
|
||||
=======================================================
|
||||
* Linux:
|
||||
- glibtop_get_swap : added page(in|out) for linux 2.6.
|
||||
|
||||
June 8, 2005: Overview of changes from 2.10.x to 2.11.0
|
||||
=======================================================
|
||||
* Replaced a lot of macros by functions
|
||||
* Got rid of dozens of useless files.
|
||||
* libgtop 2.11.x are and will stay API and ABI compatible with 2.10.x, i swear.
|
||||
|
||||
April 10, 2005: Overview of changes from 2.10.0 to 2.10.1
|
||||
=========================================================
|
||||
* Updated i18n.
|
||||
* Little cleanup and fixed gcc-4.0 compilation.
|
||||
* linux: fixed loadavg and uptime if locale != C.
|
||||
Updated siglist.
|
||||
* Tighter libgtop-2.0.pc.
|
||||
|
||||
Mars 7, 2005: Overview of Changes from 2.9.92 to 2.10.0
|
||||
=======================================================
|
||||
* Updated i18n.
|
||||
|
||||
February 28, 2005: Overview of Changes from 2.9.90 to 2.9.92
|
||||
============================================================
|
||||
* *BSD updated by marcus@freebsd.org (Joe Marcus Clarke).
|
||||
* Removed a lot of dead files :)
|
||||
* Don't build&install libgtop_daemon when it's never used.
|
||||
|
||||
February 6, 2004: Overview of Changes from 2.9.90 to 2.9.91
|
||||
==========================================================
|
||||
* Fixed typo in stub.
|
||||
* Updated i18n.
|
||||
|
||||
January 24, 2004: Overview of Changes from 2.9.4 to 2.9.90
|
||||
==========================================================
|
||||
* Updated Linux support.
|
||||
|
||||
January 10, 2004: Overview of Changes from 2.9.3 to 2.9.4
|
||||
=========================================================
|
||||
* New glibtop_proc_open_files nick@reloco.com.ar (Nicolás Lichtmaier).
|
||||
* Updated AIX support (Christophe Belle).
|
||||
|
||||
December 20, 2004: Overview of Changes from 2.9.0 to 2.9.3
|
||||
==========================================================
|
||||
* Removed libgtop_names.
|
||||
* Fixed Argument passing between library and server. #139809.
|
||||
* *BSD updated by marcus@freebsd.org (Joe Marcus Clarke).
|
||||
* glibtop_get_mountlist(False) now ignores 'unknown' fs.
|
||||
|
||||
|
||||
November 30, 2004: Overview of Changes from 2.8.1 to 2.9.0
|
||||
=========================================================
|
||||
* glibtop_get_netload : Fixed segfault on linux with ppp devices.
|
||||
* NEW glibtop_get_netlist : retrieves the list of all available interfaces.
|
||||
* NEW LIBGTOP_CHECK_VERSION(major, minor, micro)
|
||||
* Removed dead kernel patch and implementation.
|
||||
* Cleanups on Linux and Solaris.
|
||||
|
||||
October 11, 2004: Overview of Changes from 2.8.0 to 2.8.1
|
||||
=========================================================
|
||||
* Improved Solaris and AIX support.
|
||||
|
||||
|
||||
August 13, 2004: Overview of Changes from 2.7.92 to 2.8.0
|
||||
=========================================================
|
||||
* No changes
|
||||
|
||||
|
||||
August 30, 2004:
|
||||
===============
|
||||
* Applied some *BSD patches.
|
||||
* Removed old files.
|
||||
|
||||
|
||||
August 15, 2004:
|
||||
===============
|
||||
* Fixed compilation with C89-only compilers and old libc.
|
||||
|
||||
|
||||
August 3, 2004:
|
||||
==============
|
||||
* Some cleanups.
|
||||
* Fixed the behaviour of some linux proc_*() functions.
|
||||
* Updated the documentation.
|
||||
|
||||
|
||||
July 19, 2004: Overview of Changes from 2.6.1 to 2.7.4
|
||||
======================================================
|
||||
* Plenty of code cleanups. Uninlined a lot of functions. ~5-10KB object size
|
||||
reduction.
|
||||
* Glibify a bit more.
|
||||
* API changes:
|
||||
- glibtop_fsusage provides total read and writes since boot_time.
|
||||
- glibtop_netload provides hardware address. IPv6 enable.
|
||||
- Added glibtop_get_proc_argv.
|
||||
|
||||
Work in progress :
|
||||
* Finish glibtop_fsusage implementation for Linux.
|
||||
* Some fuctions don't conform to the documentation, e.g. proctime.
|
||||
|
||||
March 11, 2004:
|
||||
===============
|
||||
|
||||
* Released LibGTop 2.5.99 "Gross Work", dedicated to people who do push-ups
|
||||
in the loos.
|
||||
|
||||
- plenty of code cleanups
|
||||
|
||||
- removed the dependency on libgnome, only glib required now
|
||||
|
||||
- Linux 2.6 support, NetBSD support and better FreeBSD support
|
||||
|
||||
- Make the block size available for filesystem statistics
|
||||
|
||||
February 27, 2001:
|
||||
=================
|
||||
|
||||
|
16
README
16
README
@@ -1,8 +1,20 @@
|
||||
$Id$
|
||||
|
||||
LATEST NEWS:
|
||||
===========
|
||||
|
||||
Please look also in the file 'NEWS' for latest news.
|
||||
|
||||
Martin
|
||||
|
||||
|
||||
ChangeLogs:
|
||||
==========
|
||||
|
||||
LibGTop has many ChangeLogs files. The following files are the the
|
||||
most important :
|
||||
|
||||
- ChangeLog is the main ChangeLog.
|
||||
- sysdeps/<arch>/ChangeLog is the ChangeLog for arch specific changes.
|
||||
- sysdeps/common/ChangeLog is the ChangeLog for common changes (shared
|
||||
implementation between archs).
|
||||
|
||||
Benoît
|
||||
|
170
acconfig.h
170
acconfig.h
@@ -1,170 +0,0 @@
|
||||
|
||||
/* Define if gethostname () must be declared. */
|
||||
#undef NEED_DECLARATION_GETHOSTNAME
|
||||
|
||||
/* Define if setreuid () must be declared. */
|
||||
#undef NEED_DECLARATION_SETREUID
|
||||
|
||||
/* Define if setregid () must be declared. */
|
||||
#undef NEED_DECLARATION_SETREGID
|
||||
|
||||
/* Define if getpagesize () must be declared. */
|
||||
#undef NEED_DECLARATION_GETPAGESIZE
|
||||
|
||||
/* Define if program_invocation_name must be declared. */
|
||||
#undef NEED_DECLARATION_PROGRAM_INVOCATION_NAME
|
||||
|
||||
@TOP@
|
||||
|
||||
#undef ENABLE_NLS
|
||||
#undef HAVE_CATGETS
|
||||
#undef GETTEXT_PACKAGE
|
||||
#undef HAVE_GETTEXT
|
||||
#undef HAVE_LC_MESSAGES
|
||||
#undef HAVE_STPCPY
|
||||
#undef HAVE_STRUCT_OSOCKADDR
|
||||
#undef PACKAGE
|
||||
#undef VERSION
|
||||
#undef HAVE_LIBSM
|
||||
#undef HAVE_LIBINTL_H
|
||||
#undef HAVE_GTK_SIGNAL_HANDLER_PENDING
|
||||
|
||||
/* Do not remove this comments and the empty lines; they are needed */
|
||||
#undef HAVE_PROGRAM_INVOCATION_SHORT_NAME
|
||||
/* Define if you have the Andrew File System. */
|
||||
#undef AFS
|
||||
|
||||
/* Define one of the following to indicate how a program can
|
||||
get a list of mounted filesystems. */
|
||||
|
||||
/* Define if there is no specific function for reading the list of
|
||||
mounted filesystems. fread will be used to read /etc/mnttab. [SVR2] */
|
||||
#undef MOUNTED_FREAD
|
||||
|
||||
/* Define if (like SVR2) there is no specific function for reading the
|
||||
list of mounted filesystems, and your system has these header files:
|
||||
<sys/fstyp.h> and <sys/statfs.h>. [SVR3] */
|
||||
#undef MOUNTED_FREAD_FSTYP
|
||||
|
||||
/* Define if there is a function named getfsstat for reading the list
|
||||
of mounted filesystems. [DEC Alpha running OSF/1] */
|
||||
#undef MOUNTED_GETFSSTAT
|
||||
|
||||
/* Define if there is a function named getmnt for reading the list of
|
||||
mounted filesystems. [Ultrix] */
|
||||
#undef MOUNTED_GETMNT
|
||||
|
||||
/* Define if there is a function named getmntent for reading the list
|
||||
of mounted filesystems, and that function takes a single argument.
|
||||
[4.3BSD, SunOS, HP-UX, Dynix, Irix] */
|
||||
#undef MOUNTED_GETMNTENT1
|
||||
|
||||
/* Define if there is a function named getmntent for reading the list of
|
||||
mounted filesystems, and that function takes two arguments. [SVR4] */
|
||||
#undef MOUNTED_GETMNTENT2
|
||||
|
||||
/* Define if there is a function named getmntinfo for reading the list
|
||||
of mounted filesystems. [4.4BSD] */
|
||||
#undef MOUNTED_GETMNTINFO
|
||||
|
||||
/* Define if there is a function named listmntent that can be used to
|
||||
list all mounted filesystems. [UNICOS] */
|
||||
#undef MOUNTED_LISTMNTENT
|
||||
|
||||
/* Define if there is a function named mntctl that can be used to read
|
||||
the list of mounted filesystems, and there is a system header file
|
||||
that declares `struct vmount.' [AIX] */
|
||||
#undef MOUNTED_VMOUNT
|
||||
|
||||
/* Define one of the following to indicate how a program can obtain
|
||||
filesystems usage information. */
|
||||
|
||||
/* Define if statfs takes 3 args. [DEC Alpha running OSF/1] */
|
||||
#undef STAT_STATFS3_OSF1
|
||||
|
||||
/* Define if there is no specific function for reading filesystems usage
|
||||
information and you have the <sys/filsys.h> header file. [SVR2] */
|
||||
#undef STAT_READ_FILSYS
|
||||
|
||||
/* Define if statfs takes 2 args and struct statfs has a field named f_bsize.
|
||||
[4.3BSD, SunOS 4, HP-UX, AIX PS/2] */
|
||||
#undef STAT_STATFS2_BSIZE
|
||||
|
||||
/* Define if statfs takes 2 args and struct statfs has a field named f_fsize.
|
||||
[4.4BSD, NetBSD] */
|
||||
#undef STAT_STATFS2_FSIZE
|
||||
|
||||
/* Define if statfs takes 2 args and the second argument has
|
||||
type struct fs_data. [Ultrix] */
|
||||
#undef STAT_STATFS2_FS_DATA
|
||||
|
||||
/* Define if statfs takes 4 args. [SVR3, Dynix, Irix, Dolphin] */
|
||||
#undef STAT_STATFS4
|
||||
|
||||
/* Define if there is a function named statvfs. [SVR4] */
|
||||
#undef STAT_STATVFS
|
||||
|
||||
/* Define if the block counts reported by statfs may be truncated to 2GB
|
||||
and the correct values may be stored in the f_spare array.
|
||||
[SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
|
||||
SunOS 4.1.1 seems not to be affected.] */
|
||||
#undef STATFS_TRUNCATES_BLOCK_COUNTS
|
||||
|
||||
|
||||
/* to fix a bug in autoheader on DEC OSF1. */
|
||||
#undef HAVE_PROGRAM_INVOCATION_NAME
|
||||
|
||||
#undef HAVE_SOCKETS
|
||||
#undef HAVE_SOCKADDR_SUN_LEN
|
||||
|
||||
#undef HAVE_LIBJPEG
|
||||
#undef HAVE_LIBGIF
|
||||
#undef HAVE_LIBTIFF
|
||||
#undef HAVE_LIBZ
|
||||
#undef HAVE_LIBPNG
|
||||
#undef HAVE_GMP2_INCLUDE_DIR
|
||||
#undef HAVE_GUILE
|
||||
|
||||
#undef ssize_t
|
||||
#undef guint64
|
||||
#undef int64_t
|
||||
|
||||
#undef HAVE_GLIBTOP_MACHINE_H
|
||||
|
||||
#undef GLIBTOP_NAMES
|
||||
#undef GLIBTOP_GUILE
|
||||
#undef GLIBTOP_GUILE_NAMES
|
||||
#undef GLIBTOP_EXAMPLES
|
||||
#undef GLIBTOP_INODEDB
|
||||
|
||||
#undef NEED_LIBGTOP
|
||||
|
||||
#undef HAVE_LINUX_TABLE
|
||||
#undef HAVE_LIBGTOP_SMP
|
||||
|
||||
#undef HAVE_XAUTH
|
||||
|
||||
/* Define if your have the I4B package. */
|
||||
#undef HAVE_I4B
|
||||
#undef HAVE_I4B_ACCT
|
||||
|
||||
/* Define to enable debugging. */
|
||||
#undef LIBGTOP_ENABLE_DEBUG
|
||||
#undef LIBGTOP_FATAL_WARNINGS
|
||||
|
||||
/* Same as LINUX_VERSION_CODE either from <linux/version.h> or from
|
||||
* the running kernel (if we don't have configured kernel sources).
|
||||
*/
|
||||
#undef GLIBTOP_LINUX_VERSION_CODE
|
||||
|
||||
/* Solaris release code (eg. 251 for Solaris 2.5.1). */
|
||||
#undef GLIBTOP_SOLARIS_RELEASE
|
||||
|
||||
/* Define if you want to use LibGTop without GNOME. */
|
||||
#undef WITHOUT_GNOME
|
||||
|
||||
/* Define if you have the <procfs.h> header file */
|
||||
#undef HAVE_PROCFS_H
|
||||
|
||||
/* Define if you have the <sys/procfs.h> header file */
|
||||
#undef HAVE_SYS_PROCFS_H
|
431
acinclude.m4
431
acinclude.m4
@@ -30,7 +30,7 @@ changequote([,]), [#include <sys/types.h>
|
||||
], 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)
|
||||
AC_DEFINE($1, $2, [Define to $2 if <sys/types.h> does not define.])
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -72,7 +72,7 @@ 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)
|
||||
AC_DEFINE_UNQUOTED($gcc_tr_decl, 1, [Define if $1 () must be declared.])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
@@ -157,7 +157,8 @@ 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)
|
||||
AC_DEFINE(MOUNTED_LISTMNTENT, 1,
|
||||
[Define if there is a function named listmntent that can be used to list all mounted filesystems. [UNICOS]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -176,7 +177,8 @@ AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1,
|
||||
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)
|
||||
AC_DEFINE(MOUNTED_GETMNTENT1, 1,
|
||||
[Define if there is a function named getmntent for reading the list of mounted filesystems, and that function takes a single argument. [4.3BSD, SunOS, HP-UX, Dynix, Irix]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -190,7 +192,8 @@ 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)
|
||||
AC_DEFINE(MOUNTED_GETMNTENT2, 1,
|
||||
[Define if there is a function named getmntent for reading the list of mounted filesystems, and that function takes two arguments. [SVR4]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -215,7 +218,8 @@ 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)
|
||||
AC_DEFINE(MOUNTED_GETFSSTAT, 1,
|
||||
[Define if there is a function named getfsstat for reading the list of mounted filesystems. [DEC Alpha running OSF/1]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -229,7 +233,8 @@ 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)
|
||||
AC_DEFINE(MOUNTED_VMOUNT, 1,
|
||||
[Define if there is a function named mntctl that can be used to read the list of mounted filesystems, and there is a system header file that declares `struct vmount.' [AIX]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -246,7 +251,8 @@ 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)
|
||||
AC_DEFINE(MOUNTED_FREAD_FSTYP, 1,
|
||||
[Define if (like SVR2) there is no specific function for reading the list of mounted filesystems, and your system has these header files: <sys/fstyp.h> and <sys/statfs.h>. [SVR3]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -267,7 +273,8 @@ test -n "$ok" \
|
||||
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)
|
||||
AC_DEFINE(MOUNTED_GETMNTINFO, 1,
|
||||
[Define if there is a function named getmntinfo for reading the list of mounted filesystems. [4.4BSD]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -285,7 +292,8 @@ 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)
|
||||
AC_DEFINE(MOUNTED_GETMNT, 1,
|
||||
[Define if there is a function named getmnt for reading the list of mounted filesystems. [Ultrix]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -299,7 +307,8 @@ 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)
|
||||
AC_DEFINE(MOUNTED_FREAD, 1,
|
||||
[Define if there is no specific function for reading the list of mounted filesystems. fread will be used to read /etc/mnttab. [SVR2]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -328,7 +337,8 @@ 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)
|
||||
AC_DEFINE(STAT_STATVFS, 1,
|
||||
[Define if there is a function named statvfs. [SVR4]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -352,7 +362,8 @@ 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)
|
||||
AC_DEFINE(STAT_STATFS3_OSF1, 1,
|
||||
[Define if statfs takes 3 args. [DEC Alpha running OSF/1]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -383,7 +394,8 @@ 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)
|
||||
AC_DEFINE(STAT_STATFS2_BSIZE, 1,
|
||||
[Define if statfs takes 2 args and struct statfs has a field named f_bsize. [4.3BSD, SunOS 4, HP-UX, AIX PS/2]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -404,7 +416,8 @@ 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)
|
||||
AC_DEFINE(STAT_STATFS4, 1,
|
||||
[Define if statfs takes 4 args. [SVR3, Dynix, Irix, Dolphin]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -432,7 +445,8 @@ 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)
|
||||
AC_DEFINE(STAT_STATFS2_FSIZE, 1,
|
||||
[Define if statfs takes 2 args and struct statfs has a field named f_fsize. [4.4BSD, NetBSD]])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -463,14 +477,17 @@ 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)
|
||||
AC_DEFINE(STAT_STATFS2_FS_DATA, 1,
|
||||
[Define if statfs takes 2 args and the second argument has type struct fs_data. [Ultrix]])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# SVR2
|
||||
AC_TRY_CPP([#include <sys/filsys.h>],
|
||||
AC_DEFINE(STAT_READ_FILSYS) space=yes)
|
||||
AC_DEFINE(STAT_READ_FILSYS, 1,
|
||||
[Define if there is no specific function for reading filesystems usage information and you have the <sys/filsys.h> header file. [SVR2]])
|
||||
space=yes)
|
||||
fi
|
||||
|
||||
if test -n "$list_mounted_fs" && test $space != no; then
|
||||
@@ -495,384 +512,14 @@ 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)
|
||||
AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
|
||||
[Define if the block counts reported by statfs may be truncated to 2GB and the correct values may be stored in the f_spare array. [SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem. SunOS 4.1.1 seems not to be affected.]])
|
||||
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)
|
||||
test -d /afs && AC_DEFINE(AFS, 1, [Define if you have the Andrew File System.])
|
||||
])
|
||||
|
||||
|
||||
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)
|
||||
])
|
||||
|
||||
|
||||
m4_include([libgtop-sysdeps.m4])
|
||||
|
@@ -18,4 +18,5 @@ which gnome-autogen.sh || {
|
||||
echo "You need to install gnome-common from the GNOME CVS"
|
||||
exit 1
|
||||
}
|
||||
USE_GNOME2_MACROS=1 . gnome-autogen.sh
|
||||
REQUIRED_AUTOMAKE_VERSION=1.9
|
||||
. gnome-autogen.sh
|
||||
|
@@ -1,5 +0,0 @@
|
||||
.deps
|
||||
.libs
|
||||
Makefile
|
||||
Makefile.in
|
||||
*.lo
|
@@ -1,15 +0,0 @@
|
||||
if NEED_LIBGTOP
|
||||
server_dir = server
|
||||
else
|
||||
server_dir =
|
||||
endif
|
||||
|
||||
if HAVE_SYSDEPS
|
||||
sysdeps_dir = sysdeps
|
||||
else
|
||||
sysdeps_dir =
|
||||
endif
|
||||
|
||||
SUBDIRS = $(server_dir) $(sysdeps_dir) common
|
||||
|
||||
DIST_SUBDIRS = server sysdeps common
|
@@ -1,7 +0,0 @@
|
||||
.deps
|
||||
.libs
|
||||
Makefile
|
||||
Makefile.in
|
||||
*.lo
|
||||
*.la
|
||||
marshal.c
|
@@ -1,50 +0,0 @@
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* backend-common.c: (_open_common): s/u_int64_t/guint64/
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* backend-common.h: fixed compilation
|
||||
|
||||
2000-11-26 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* glibtop-backend-private.h: Removed.
|
||||
|
||||
* backend-common.h: New files.
|
||||
|
||||
* backend-common.c (_open_common): Don't overwrite
|
||||
`backend->_priv'.
|
||||
|
||||
2000-11-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am: Link libgtop_backend_common.la against
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la and
|
||||
$(top_builddir)/lib/libgtop_server.la.
|
||||
|
||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* backend-sysdeps.c (LibGTopBackendInfo): Call this
|
||||
`LibGTopBackendInfo_Common' when we don't use gmodule.
|
||||
|
||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
|
||||
when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
|
||||
|
||||
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR).
|
||||
|
||||
* libgtop-common.backend: New file.
|
||||
|
||||
* backend-common.c (glibtop_backend_common): Renamed to
|
||||
`LibGTopBackendInfo'.
|
||||
|
||||
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Initial version of the "glibtop-backend-common" backend.
|
||||
|
||||
* backend-common.c: New file.
|
||||
* glibtop-backend-private.h: New file.
|
||||
* marshal.pl: New file. Automatically creates `marshal.c'.
|
||||
|
@@ -1,47 +0,0 @@
|
||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
INCLUDES = @INCLUDES@
|
||||
|
||||
backenddir = @LIBGTOP_BACKEND_DIR@
|
||||
|
||||
if LIBGTOP_USE_GMODULE
|
||||
backendlibdir = $(backenddir)
|
||||
else
|
||||
backendlibdir = $(libdir)
|
||||
endif
|
||||
|
||||
dynamic_ldflags = @libgtop_dynamic_ldflags@
|
||||
|
||||
backend_DATA = \
|
||||
libgtop-common.backend
|
||||
|
||||
noinst_HEADERS = \
|
||||
backend-common.h
|
||||
|
||||
backendlib_LTLIBRARIES = \
|
||||
libgtop_backend_common.la
|
||||
|
||||
libgtop_backend_common_la_SOURCES = \
|
||||
backend-common.c \
|
||||
marshal.c
|
||||
|
||||
libgtop_backend_common_la_LDFLAGS = \
|
||||
$(LT_VERSION_INFO) $(dynamic_ldflags)
|
||||
|
||||
libgtop_backend_common_la_LIBADD = \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/lib/libgtop_server.la
|
||||
|
||||
BUILT_SOURCES = \
|
||||
marshal.c
|
||||
|
||||
EXTRA_DIST = \
|
||||
marshal.pl \
|
||||
libgtop-common.backend
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t
|
||||
mv tmp-t marshal.c
|
||||
|
@@ -1,61 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <backend-common.h>
|
||||
|
||||
static int
|
||||
_open_common (glibtop_server *, glibtop_backend *, guint64, 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,
|
||||
guint64 features, const char **backend_args)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
_close_common (glibtop_server *server, glibtop_backend *backend,
|
||||
void *closure)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0"?> <!-- -*-xml-*- -->
|
||||
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
|
||||
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
|
||||
|
||||
<libgtop:Backend>
|
||||
<libgtop:Name>glibtop-backend-common</libgtop:Name>
|
||||
<libgtop:Location>
|
||||
<libgtop:LibtoolName>libgtop_backend_common.la</libgtop:LibtoolName>
|
||||
<libgtop:ShlibName>libgtop_backend_common.so</libgtop:ShlibName>
|
||||
</libgtop:Location>
|
||||
</libgtop:Backend>
|
||||
|
||||
</libgtop:Backends>
|
@@ -1,175 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
require 'c_types.pl';
|
||||
|
||||
$[ = 1; # set array base to 1
|
||||
$, = ' '; # set output field separator
|
||||
$\ = "\n"; # set output record separator
|
||||
|
||||
$always_use_temp_storage = 1;
|
||||
|
||||
sub toupper {
|
||||
local($_) = @_;
|
||||
tr/a-z/A-Z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
sub tolower {
|
||||
local($_) = @_;
|
||||
tr/A-Z/a-z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
print '/* marshal.c */';
|
||||
print "/* This is a generated file. Please modify `marshal.pl' */";
|
||||
print '';
|
||||
|
||||
print '#include <backend-common.h>';
|
||||
print '';
|
||||
print '#include <glibtop/sysdeps.h>';
|
||||
print '#include <glibtop/union.h>';
|
||||
print '';
|
||||
print '#include <glibtop/call-vector.h>';
|
||||
print '';
|
||||
|
||||
$feature_count = 0;
|
||||
|
||||
while (<>) {
|
||||
chop; # strip record separator
|
||||
|
||||
if (/^[^#]/) {
|
||||
&output($_);
|
||||
}
|
||||
}
|
||||
|
||||
sub output {
|
||||
local($line) = @_;
|
||||
@line_fields = split(/\|/, $line, 9999);
|
||||
$retval = $line_fields[1];
|
||||
$feature = $line_fields[2];
|
||||
$param_def = $line_fields[4];
|
||||
|
||||
$orig = $feature;
|
||||
$feature =~ s/^@//;
|
||||
$space = $feature;
|
||||
$space =~ s/./ /g;
|
||||
|
||||
$features{++$feature_count} = $orig;
|
||||
|
||||
return unless $orig =~ /^@/;
|
||||
|
||||
if ($retval eq 'retval') {
|
||||
$retval_param = '&retval';
|
||||
$call_prefix = '';
|
||||
$call_prefix_space = '';
|
||||
$prefix = 'retval = ';
|
||||
$prefix_space = ' ';
|
||||
$retval = 'int';
|
||||
}
|
||||
elsif ($retval !~ /^void$/) {
|
||||
$retval_param = 'NULL';
|
||||
$prefix = 'retval = ';
|
||||
$prefix_space = ' ';
|
||||
$call_prefix = 'retval = ';
|
||||
$call_prefix_space = ' ';
|
||||
}
|
||||
else {
|
||||
$retval_param = 'NULL';
|
||||
$call_prefix = '';
|
||||
$call_prefix_space = '';
|
||||
$prefix = '';
|
||||
$prefix_space = '';
|
||||
}
|
||||
|
||||
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
||||
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
||||
}
|
||||
|
||||
$need_temp_storage = $always_use_temp_storage;
|
||||
$first_param_name = '';
|
||||
|
||||
$call_param = '';
|
||||
$param_decl = '';
|
||||
$need_temp_len = 0;
|
||||
$nr_params = (@params = split(/:/, $param_def, 9999));
|
||||
for ($param = 1; $param <= $nr_params; $param++) {
|
||||
$list = $params[$param];
|
||||
$type = $params[$param];
|
||||
$type =~ s/\(.*//;
|
||||
$list =~ s/^.*\(//;
|
||||
$list =~ s/\)$//;
|
||||
$count = (@fields = split(/,/, $list, 9999));
|
||||
for ($field = 1; $field <= $count; $field++) {
|
||||
my $c_type = $typeinfo->{$type}->[1];
|
||||
|
||||
if ($first_param_name eq '') {
|
||||
$first_param_name = $fields[$field];
|
||||
}
|
||||
|
||||
if ($typeinfo->{$type}->[2]) {
|
||||
$need_temp_storage = 1;
|
||||
}
|
||||
|
||||
if ($param_decl eq '') {
|
||||
$param_decl = ",\n " . $space . ' ';
|
||||
}
|
||||
else {
|
||||
$param_decl = $param_decl . ', ';
|
||||
}
|
||||
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
||||
$call_param = $call_param . ', ' . $fields[$field];
|
||||
}
|
||||
}
|
||||
|
||||
if ($line_fields[3] eq '') {
|
||||
$total_code = sprintf
|
||||
("\treturn glibtop_get_%s_s (server%s);\n", $feature, $call_param);
|
||||
} elsif ($line_fields[3] eq 'array') {
|
||||
$total_code = sprintf
|
||||
("\treturn glibtop_get_%s_s (server, array%s);\n", $feature, $call_param);
|
||||
} elsif ($line_fields[3] =~ /^array/) {
|
||||
$total_code = sprintf
|
||||
("\treturn glibtop_get_%s_s (server, array, buf%s);\n", $feature, $call_param);
|
||||
} else {
|
||||
$total_code = sprintf
|
||||
("\treturn glibtop_get_%s_s (server, buf%s);\n", $feature, $call_param);
|
||||
}
|
||||
|
||||
$func_decl = 'static '.$retval."\n";
|
||||
if ($line_fields[3] eq '') {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
|
||||
$feature, $param_decl);
|
||||
} elsif ($line_fields[3] eq 'array') {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
|
||||
$feature, $param_decl);
|
||||
} elsif ($line_fields[3] =~ /^array/) {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
|
||||
$feature, 'glibtop_'.$feature, $param_decl);
|
||||
} else {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
|
||||
$feature, 'glibtop_'.$feature, $param_decl);
|
||||
}
|
||||
|
||||
$total_code = sprintf ("%s{\n%s\n%s}\n", $func_decl, $total_code);
|
||||
|
||||
print $total_code;
|
||||
}
|
||||
|
||||
$call_vector_code = '';
|
||||
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
||||
$feature = $features{$nr};
|
||||
|
||||
if ($feature =~ /^@/) {
|
||||
$feature =~ s/^@//;
|
||||
|
||||
$call_vector_code .= sprintf (qq[\t_glibtop_get_%s_c,\n], $feature);
|
||||
} else {
|
||||
$call_vector_code .= sprintf (qq[\tNULL,\n]);
|
||||
}
|
||||
}
|
||||
|
||||
print 'glibtop_call_vector glibtop_backend_common_call_vector = {';
|
||||
print $call_vector_code;
|
||||
print '};';
|
||||
print '';
|
||||
|
@@ -1,10 +0,0 @@
|
||||
.deps
|
||||
.libs
|
||||
Makefile
|
||||
Makefile.in
|
||||
*.lo
|
||||
*.la
|
||||
marshal.c
|
||||
demarshal.c
|
||||
libgtop_server
|
||||
command.h
|
@@ -1,112 +0,0 @@
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* backend-server.c: (_open_server):
|
||||
* backend-server.h:
|
||||
* command.h.in: s/u_int64_t/guint64/
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* backend-server.h:
|
||||
* command.h.in:
|
||||
* demarshal.pl:
|
||||
* server.h: fixed compilation
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* backend-server.c: (_open_server):
|
||||
* command.c: (glibtop_call_i):
|
||||
* demarshal.pl:
|
||||
* marshal.pl:
|
||||
* read_data.c: (glibtop_read_data_i):
|
||||
* server.c: (main), (handle_slave_connection):
|
||||
replace all the xmalloc crap by glib memory management functions
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* Makefile.am: removed traces of guile, intllibs and libgnomesupport
|
||||
|
||||
2000-11-27 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* backend-server.c (backend_server_quark): New global variable.
|
||||
(_open_server, _close_server): Use the quark.
|
||||
* commands.c: Likewise.
|
||||
|
||||
2000-11-26 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* backend-server.h: New file.
|
||||
(backend_server_private): New struct, formerly known
|
||||
as glibtop_backend_private.
|
||||
|
||||
* glibtop-backend-private.h: Removed.
|
||||
|
||||
* backend-server.c: (_open_server): Use g_object_set_data()
|
||||
to set add the backend_server_private data to the glibtop_backend,
|
||||
don't override `backend->_priv'.
|
||||
(_close_server): Use g_object_get_data() to get the data.
|
||||
[FIXME: Use quarks directly.]
|
||||
|
||||
* read.c: (glibtop_read_i): Replaced the glibtop_server and
|
||||
glibtop_backend arguments with backend_server_private.
|
||||
* read_data.c: (glibtop_read_data_i): Likewise.
|
||||
* write.c: (glibtop_write_i): Likewise.
|
||||
|
||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* backend-sysdeps.c (LibGTopBackendInfo): Call this
|
||||
`LibGTopBackendInfo_Server' when we don't use gmodule.
|
||||
|
||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
|
||||
when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
|
||||
|
||||
2000-01-18 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* demarshal.pl: Only emit code for functions which are
|
||||
really suid/sgid.
|
||||
|
||||
2000-01-13 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* write.c (glibtop_write_i): The buffer which we write is
|
||||
now a `const'.
|
||||
|
||||
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am: Install everything except the server binary
|
||||
in $(LIBGTOP_BACKEND_DIR).
|
||||
|
||||
* libgtop-server.backend: New file.
|
||||
|
||||
* backend-server.c (glibtop_backend_server): Renamed to
|
||||
`LibGTopBackendInfo'.
|
||||
|
||||
2000-01-08 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* command.h.in (glibtop_response): New structure.
|
||||
|
||||
2000-01-02 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* command.pl: New file. Creates `command.h' from `command.h.in'.
|
||||
* command.h.in: New file. Template file for `command.h'.
|
||||
|
||||
* io.c, version.c: New files. Copied here from `src/daemon'.
|
||||
|
||||
* demarshal.pl: New file. Automatically creates `demarshal.c'.
|
||||
* demarshal.c: This automatically created file handles the
|
||||
demarshalling in the libgtop_server.
|
||||
|
||||
* Makefile.am: Build the `libgtop_server' here.
|
||||
* server.c, server.h: New files. Copied here from `src/daemon'.
|
||||
|
||||
2000-01-01 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Initial version of the "glibtop-backend-server" backend.
|
||||
|
||||
* command.c, read.c, read_data.c, write.c: New files. Moved here
|
||||
from the `lib' directory.
|
||||
|
||||
* backend-server.c: New file.
|
||||
* glibtop-backend-private.h: New file.
|
||||
|
||||
* marshal.pl: New file. Automatically creates `marshal.c'.
|
||||
|
@@ -1,84 +0,0 @@
|
||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
INCLUDES = @INCLUDES@ -D_BSD \
|
||||
-DLIBGTOP_COMPILE_SYSTEM=\"`uname -s`\" \
|
||||
-DLIBGTOP_COMPILE_RELEASE=\"`uname -r`\" \
|
||||
-DLIBGTOP_COMPILE_MACHINE=\"`uname -m`\"
|
||||
|
||||
backenddir = @LIBGTOP_BACKEND_DIR@
|
||||
|
||||
if LIBGTOP_USE_GMODULE
|
||||
backendlibdir = $(backenddir)
|
||||
else
|
||||
backendlibdir = $(libdir)
|
||||
endif
|
||||
|
||||
dynamic_ldflags = @libgtop_dynamic_ldflags@
|
||||
|
||||
backend_DATA = \
|
||||
libgtop-server.backend
|
||||
|
||||
noinst_HEADERS = \
|
||||
backend-server.h
|
||||
|
||||
backendlib_LTLIBRARIES = \
|
||||
libgtop_backend_server.la
|
||||
|
||||
bin_PROGRAMS = \
|
||||
@server_programs@
|
||||
|
||||
EXTRA_PROGRAMS = \
|
||||
libgtop_server
|
||||
|
||||
libgtop_backend_server_la_SOURCES = \
|
||||
backend-server.c \
|
||||
marshal.c \
|
||||
command.c \
|
||||
read.c \
|
||||
read_data.c \
|
||||
write.c
|
||||
|
||||
libgtop_backend_server_la_LDFLAGS = \
|
||||
$(LT_VERSION_INFO) $(dynamic_ldflags)
|
||||
|
||||
libgtop_server_SOURCES = \
|
||||
server.c \
|
||||
server.h \
|
||||
demarshal.c \
|
||||
version.c \
|
||||
io.c
|
||||
|
||||
libgtop_server_LDADD = \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps_suid.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_suid_common.la
|
||||
|
||||
if ENABLE_STATIC
|
||||
libgtop_server_LDFLAGS = -static
|
||||
endif
|
||||
|
||||
BUILT_SOURCES = \
|
||||
marshal.c \
|
||||
demarshal.c \
|
||||
command.h
|
||||
|
||||
EXTRA_DIST = \
|
||||
marshal.pl \
|
||||
demarshal.pl \
|
||||
command.pl \
|
||||
command.h.in \
|
||||
libgtop-server.backend
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t
|
||||
mv tmp-t marshal.c
|
||||
|
||||
demarshal.c: demarshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/demarshal.pl < $(top_srcdir)/features.def > tmp-t
|
||||
mv tmp-t demarshal.c
|
||||
|
||||
command.h: command.pl command.h.in $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/command.pl $(top_srcdir)/features.def $(srcdir)/command.h.in > tmp-t
|
||||
mv tmp-t command.h
|
||||
|
@@ -1,113 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <backend-server.h>
|
||||
|
||||
static int
|
||||
_open_server (glibtop_server *, glibtop_backend *, guint64, 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,
|
||||
guint64 features, const char **backend_args)
|
||||
{
|
||||
backend_server_private *priv;
|
||||
|
||||
priv = g_malloc (sizeof (backend_server_private));
|
||||
|
||||
glibtop_backend_set_closure_data (backend, priv);
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "open_server - %p, %p, %p\n", server, backend, priv);
|
||||
|
||||
fprintf (stderr, "Opening pipe to server (%s).\n", LIBGTOP_SERVER);
|
||||
#endif
|
||||
|
||||
if (pipe (priv->input) || pipe (priv->output)) {
|
||||
glibtop_warn_io_r (server, "cannot make a pipe");
|
||||
return -1;
|
||||
}
|
||||
|
||||
priv->pid = fork ();
|
||||
|
||||
if (priv->pid < 0) {
|
||||
glibtop_warn_io_r (server, "fork failed");
|
||||
return -1;
|
||||
} else if (priv->pid == 0) {
|
||||
close (0); close (1);
|
||||
close (priv->input [0]);
|
||||
close (priv->output [1]);
|
||||
dup2 (priv->input [1], 1);
|
||||
dup2 (priv->output [0], 0);
|
||||
execl (LIBGTOP_SERVER, "libgtop-server", NULL);
|
||||
glibtop_error_io_r (server, "execl (%s)",
|
||||
LIBGTOP_SERVER);
|
||||
_exit (2);
|
||||
}
|
||||
|
||||
close (priv->input [1]);
|
||||
close (priv->output [0]);
|
||||
|
||||
glibtop_server_ref (server);
|
||||
priv->server = server;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
_close_server (glibtop_server *server, glibtop_backend *backend,
|
||||
void *closure)
|
||||
{
|
||||
backend_server_private *priv = closure;
|
||||
|
||||
kill (priv->pid, SIGKILL);
|
||||
close (priv->input [0]);
|
||||
close (priv->output [1]);
|
||||
|
||||
glibtop_server_unref (priv->server);
|
||||
|
||||
priv->pid = 0;
|
||||
|
||||
g_free (priv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -1,65 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_BACKEND_COMMON_H__
|
||||
#define __GLIBTOP_BACKEND_COMMON_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/glibtop-backend.h>
|
||||
#include <glibtop/glibtop-backend-info.h>
|
||||
|
||||
typedef struct _backend_server_private backend_server_private;
|
||||
|
||||
struct _backend_server_private
|
||||
{
|
||||
guint64 flags;
|
||||
int input [2]; /* Pipe client <- server */
|
||||
int output [2]; /* Pipe client -> server */
|
||||
pid_t pid; /* PID of the server */
|
||||
|
||||
glibtop_server *server;
|
||||
};
|
||||
|
||||
void *
|
||||
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
|
||||
unsigned command, size_t send_size, const void *send_ptr,
|
||||
size_t data_size, const void *data_ptr,
|
||||
size_t recv_size, void *recv_ptr,
|
||||
int *retval_ptr);
|
||||
|
||||
void
|
||||
glibtop_read_i (backend_server_private *priv, size_t size, void *buf);
|
||||
|
||||
void *
|
||||
glibtop_read_data_i (backend_server_private *priv);
|
||||
|
||||
void
|
||||
glibtop_write_i (backend_server_private *priv, size_t size, const void *buf);
|
||||
|
||||
#endif
|
||||
|
@@ -1,100 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <backend-server.h>
|
||||
|
||||
#include "command.h"
|
||||
|
||||
void *
|
||||
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
|
||||
unsigned command, size_t send_size, const void *send_buf,
|
||||
size_t data_size, const void *data_buf,
|
||||
size_t recv_size, void *recv_ptr,
|
||||
int *retval_ptr)
|
||||
{
|
||||
glibtop_command cmnd;
|
||||
glibtop_response resp;
|
||||
#if 0
|
||||
int retval;
|
||||
#endif
|
||||
|
||||
memset (&cmnd, 0, sizeof (glibtop_command));
|
||||
memset (&resp, 0, sizeof (glibtop_response));
|
||||
|
||||
cmnd.command = command;
|
||||
|
||||
/* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we
|
||||
* send it together with command, so we only need one system call instead
|
||||
* of two. */
|
||||
|
||||
if (send_size <= _GLIBTOP_PARAM_SIZE) {
|
||||
memcpy (cmnd.parameter, send_buf, send_size);
|
||||
cmnd.param_size = send_size;
|
||||
} else {
|
||||
cmnd.send_size = send_size;
|
||||
}
|
||||
|
||||
cmnd.data_size = data_size;
|
||||
|
||||
glibtop_write_i (priv, sizeof (glibtop_command), &cmnd);
|
||||
|
||||
if (data_size) {
|
||||
#ifdef SLAVE_DEBUG
|
||||
fprintf (stderr, "SENDING %d bytes of DATA.\n", data_size);
|
||||
#endif
|
||||
glibtop_write_i (priv, data_size, data_buf);
|
||||
}
|
||||
|
||||
glibtop_read_i (priv, sizeof (glibtop_response), &resp);
|
||||
|
||||
#ifdef SLAVE_DEBUG
|
||||
fprintf (stderr, "RESPONSE: %d - %d - %ld - %ld - %p - %ld\n",
|
||||
resp.retval, resp.glibtop_errno,
|
||||
(long) resp.recv_size, (long) resp.data_size,
|
||||
recv_ptr, (long) recv_size);
|
||||
#endif
|
||||
|
||||
if (retval_ptr)
|
||||
*retval_ptr = resp.glibtop_errno;
|
||||
|
||||
if (resp.recv_size != recv_size) {
|
||||
glibtop_warn_r (server, "Expected %ld bytes, but got %ld.",
|
||||
(long) recv_size, (long) resp.recv_size);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (recv_ptr)
|
||||
glibtop_read_i (priv, recv_size, recv_ptr);
|
||||
|
||||
if (resp.data_size) {
|
||||
void *ptr = g_malloc (server, resp.data_size);
|
||||
|
||||
glibtop_read_i (priv, resp.data_size, ptr);
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
@@ -1,76 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
require 'c_types.pl';
|
||||
|
||||
die "Usage: $0 features.def command.h.in" unless $#ARGV == 1;
|
||||
|
||||
$[ = 1; # set array base to 1
|
||||
$, = ' '; # set output field separator
|
||||
$\ = "\n"; # set output record separator
|
||||
|
||||
sub toupper {
|
||||
local($_) = @_;
|
||||
tr/a-z/A-Z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
sub tolower {
|
||||
local($_) = @_;
|
||||
tr/A-Z/a-z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
$constants_decl_code = '';
|
||||
|
||||
open FEATURESDEF, $ARGV[1] or
|
||||
die "open ($ARGV[1]): $!";
|
||||
|
||||
while (<FEATURESDEF>) {
|
||||
chop; # strip record separator
|
||||
|
||||
if (/^[^\#]/) {
|
||||
&parse_features_def ($_);
|
||||
}
|
||||
}
|
||||
|
||||
close FEATURESDEF;
|
||||
|
||||
sub parse_features_def {
|
||||
local($line) = @_;
|
||||
@line_fields = split(/\|/, $line, 9999);
|
||||
$retval = $line_fields[1];
|
||||
$element_def = $line_fields[3];
|
||||
$feature = $line_fields[2];
|
||||
$param_def = $line_fields[4];
|
||||
|
||||
$orig = $feature;
|
||||
$feature =~ s/^@//;
|
||||
$space = $feature;
|
||||
$space =~ s/./ /g;
|
||||
|
||||
$constants_decl_code .= sprintf
|
||||
(qq[\#define %-40s %d\n], 'GLIBTOP_CMND_'.&toupper($feature),
|
||||
++$feature_count);
|
||||
|
||||
$features{$feature_count} = $feature;
|
||||
}
|
||||
|
||||
chop $constants_decl_code;
|
||||
|
||||
$auto_gen_comment = sprintf
|
||||
(qq[/*\n * This file is automatically generated.\n * Please modify `command.pl' and `command.h.in'.\n */]);
|
||||
|
||||
open COMMAND, $ARGV[2] or
|
||||
die "open ($ARGV[2]): $!";
|
||||
|
||||
while (<COMMAND>) {
|
||||
chop;
|
||||
|
||||
s/^\s*\@\@GLIBTOP_COMMAND_CONSTANTS\@\@\s*$/$constants_decl_code/;
|
||||
|
||||
s/^\s*\@\@AUTOGEN_COMMENT\@\@\s*$/$auto_gen_comment/;
|
||||
} continue {
|
||||
print $_;
|
||||
}
|
||||
|
||||
close COMMAND;
|
@@ -1,385 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
require 'c_types.pl';
|
||||
|
||||
$[ = 1; # set array base to 1
|
||||
$, = ' '; # set output field separator
|
||||
$\ = "\n"; # set output record separator
|
||||
|
||||
$always_use_temp_storage = 0;
|
||||
|
||||
sub toupper {
|
||||
local($_) = @_;
|
||||
tr/a-z/A-Z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
sub tolower {
|
||||
local($_) = @_;
|
||||
tr/A-Z/a-z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
print '/* demarshal.c */';
|
||||
print "/* This is a generated file. Please modify `demarshal.pl' */";
|
||||
print '';
|
||||
|
||||
print '#include <glibtop.h>';
|
||||
print '#include <glibtop/open.h>';
|
||||
print '';
|
||||
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 = g_malloc (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 = g_malloc (server, _LIBGTOP_TEMP_len);";
|
||||
$recv_buf_code .= "\t_LIBGTOP_ARRAY_ptr = _LIBGTOP_ARRAY_base;\n";
|
||||
$recv_buf_code .= "\t_LIBGTOP_ARRAY_offset = array.number * sizeof (off_t);\n";
|
||||
$recv_buf_code .= "\t_LIBGTOP_ARRAY_offset += sizeof (off_t);\n";
|
||||
$recv_buf_code .= "\t_LIBGTOP_ARRAY_off_ptr = (off_t *) _LIBGTOP_ARRAY_ptr;\n";
|
||||
$recv_buf_code .= "\n";
|
||||
$recv_buf_code .= "\t*_LIBGTOP_ARRAY_off_ptr++ = _LIBGTOP_ARRAY_offset;\n";
|
||||
$recv_buf_code .= "\tfor (_LIBGTOP_TEMP_ptr = retval; _LIBGTOP_TEMP_ptr && *_LIBGTOP_TEMP_ptr; _LIBGTOP_TEMP_ptr++) {\n";
|
||||
$recv_buf_code .= "\t\t*_LIBGTOP_ARRAY_off_ptr++ = _LIBGTOP_ARRAY_offset;\n";
|
||||
$recv_buf_code .= "\t\t_LIBGTOP_ARRAY_offset += strlen (*_LIBGTOP_TEMP_ptr)+1;\n";
|
||||
$recv_buf_code .= "\t}\n\n";
|
||||
$recv_buf_code .= "\t_LIBGTOP_ARRAY_ptr = (char *) _LIBGTOP_ARRAY_off_ptr;\n";
|
||||
$recv_buf_code .= "\tfor (_LIBGTOP_TEMP_ptr = retval; _LIBGTOP_TEMP_ptr && *_LIBGTOP_TEMP_ptr; _LIBGTOP_TEMP_ptr++) {\n";
|
||||
$recv_buf_code .= "\t\tstrcpy (_LIBGTOP_ARRAY_ptr, *_LIBGTOP_TEMP_ptr);\n";
|
||||
$recv_buf_code .= "\t\t_LIBGTOP_ARRAY_ptr += strlen (*_LIBGTOP_TEMP_ptr)+1;\n";
|
||||
$recv_buf_code .= "\t}\n\n";
|
||||
$recv_buf_code .= "\tif (recv_data_ptr) {\n";
|
||||
$recv_buf_code .= "\t\t*recv_data_ptr = _LIBGTOP_ARRAY_base;\n";
|
||||
$recv_buf_code .= "\t\t*recv_data_size_ptr = _LIBGTOP_TEMP_len;\n";
|
||||
$recv_buf_code .= "\t}\n";
|
||||
|
||||
} elsif ($line_fields[3] =~ /^array/) {
|
||||
$recv_buf_code .= "\n";
|
||||
$recv_buf_code .= "\tif (recv_data_ptr) {\n";
|
||||
$recv_buf_code .= "\t\t*recv_data_ptr = retval;\n";
|
||||
$recv_buf_code .= "\t\t*recv_data_size_ptr = array.total;\n";
|
||||
$recv_buf_code .= "\t}\n";
|
||||
}
|
||||
|
||||
if ($need_temp_storage) {
|
||||
$local_var_decl_code .= "\tsize_t _LIBGTOP_TEMP_len;\n";
|
||||
$local_var_decl_code .= "\tsize_t _LIBGTOP_DATA_len;\n";
|
||||
$local_var_decl_code .= "\toff_t _LIBGTOP_DATA_offset;\n";
|
||||
$local_var_decl_code .= "\tchar *_LIBGTOP_DATA_ptr;\n";
|
||||
|
||||
$init_local_var_code .= "\t_LIBGTOP_DATA_len = 0;\n";
|
||||
$init_local_var_code .= "\t_LIBGTOP_DATA_offset = 0;\n";
|
||||
$init_local_var_code .= "\t_LIBGTOP_DATA_ptr = ".
|
||||
"(char *) data_ptr;\n";
|
||||
}
|
||||
|
||||
$func_decl_code = sprintf
|
||||
(qq[static int\n_glibtop_demarshal_%s_i (glibtop *server, glibtop_backend *backend, const void *send_ptr, size_t send_size, void *data_ptr, size_t data_size, void **recv_buf_ptr, size_t *recv_size_ptr, void **recv_data_ptr, size_t *recv_data_size_ptr, int *retval_ptr)\n], $feature);
|
||||
|
||||
if (!($call_code eq '')) {
|
||||
$call_code .= "\n";
|
||||
}
|
||||
|
||||
$func_body_code = sprintf
|
||||
(qq[%s%s%s%s], $size_code, $demarshal_code, $call_code, $recv_buf_code);
|
||||
|
||||
$total_code = sprintf
|
||||
(qq[%s{\n%s\n%s\n%s\n\treturn 0;\n}\n],
|
||||
$func_decl_code, $local_var_decl_code, $init_local_var_code,
|
||||
$func_body_code);
|
||||
|
||||
$total_code = sprintf ("#if GLIBTOP_SUID_%s\n\n%s\n#endif /* GLIBTOP_SUID_%s */\n\n",
|
||||
&toupper($feature), $total_code,
|
||||
&toupper($feature));
|
||||
|
||||
print $total_code;
|
||||
}
|
||||
|
||||
$func_decl_code = sprintf
|
||||
(qq[int\nglibtop_demarshal_func_i (glibtop *server, glibtop_backend *backend, unsigned command, const void *send_ptr, size_t send_size, void *data_ptr, size_t data_size, void **recv_buf_ptr, size_t *recv_size_ptr, void **recv_data_ptr, size_t *recv_data_size_ptr, int *retval_ptr)]);
|
||||
|
||||
$switch_body_code = '';
|
||||
|
||||
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
||||
$feature = $features{$nr};
|
||||
|
||||
$switch_body_code .= sprintf
|
||||
(qq[#if GLIBTOP_SUID_%s\n\tcase GLIBTOP_CMND_%s:\n\t\treturn _glibtop_demarshal_%s_i\n\t\t\t(server, backend, send_ptr, send_size,\n\t\t\t data_ptr, data_size,\n\t\t\t recv_buf_ptr, recv_size_ptr,\n\t\t\t recv_data_ptr, recv_data_size_ptr, retval_ptr);\n#endif /* GLIBTOP_SUID_%s */\n],
|
||||
&toupper ($feature), &toupper ($feature), $feature, &toupper ($feature));
|
||||
}
|
||||
|
||||
$switch_code = sprintf
|
||||
(qq[\tswitch (command) {\n%s\tdefault:\n\t\treturn -GLIBTOP_ERROR_INVALID_ARGUMENT;\n\t}\n], $switch_body_code);
|
||||
|
||||
$total_code = sprintf
|
||||
(qq[%s\n{\n%s}\n\n], $func_decl_code, $switch_code);
|
||||
|
||||
print $total_code;
|
||||
|
||||
1;
|
@@ -1,114 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "server.h"
|
||||
|
||||
void
|
||||
do_output (int s, glibtop_response *resp, const void *recv_ptr,
|
||||
const void *data_ptr)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "Really writing %d bytes.\n",
|
||||
sizeof (glibtop_response));
|
||||
#endif
|
||||
|
||||
if (s == 0) {
|
||||
if (write (1, (const void *) resp, sizeof (glibtop_response)) < 0)
|
||||
glibtop_warn_io ("write");
|
||||
} else {
|
||||
if (send (s, (const void *) resp, sizeof (glibtop_response), 0) < 0)
|
||||
glibtop_warn_io ("send");
|
||||
}
|
||||
|
||||
if (resp->recv_size) {
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "Writing %ld bytes of data.\n",
|
||||
(long) resp->recv_size);
|
||||
#endif
|
||||
|
||||
if (s == 0) {
|
||||
if (write (1, recv_ptr, resp->recv_size) < 0)
|
||||
glibtop_warn_io ("write");
|
||||
} else {
|
||||
if (send (s, recv_ptr, resp->recv_size, 0) < 0)
|
||||
glibtop_warn_io ("send");
|
||||
}
|
||||
}
|
||||
|
||||
if (resp->data_size) {
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "Writing %ld bytes of extra data.\n",
|
||||
(long) resp->data_size);
|
||||
#endif
|
||||
|
||||
if (s == 0) {
|
||||
if (write (1, data_ptr, resp->data_size) < 0)
|
||||
glibtop_warn_io ("write");
|
||||
} else {
|
||||
if (send (s, data_ptr, resp->data_size, 0) < 0)
|
||||
glibtop_warn_io ("send");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int
|
||||
do_read (int s, void *ptr, size_t total_size)
|
||||
{
|
||||
int nread;
|
||||
char *tmp_ptr;
|
||||
size_t already_read = 0, remaining = total_size;
|
||||
|
||||
while (already_read < total_size) {
|
||||
if (s)
|
||||
nread = recv (s, ptr, remaining, 0);
|
||||
else
|
||||
nread = read (0, ptr, remaining);
|
||||
|
||||
if ((already_read == 0) && (nread == 0)) {
|
||||
glibtop_warn ("pid %d received eof.", getpid ());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (nread <= 0) {
|
||||
glibtop_warn_io ("recv");
|
||||
return 0;
|
||||
}
|
||||
|
||||
already_read += nread;
|
||||
remaining -= nread;
|
||||
/* (char *) ptr += nread; */
|
||||
tmp_ptr = ptr;
|
||||
tmp_ptr += nread;
|
||||
ptr = tmp_ptr;
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "READ (%d): %d - %d - %d\n",
|
||||
nread, already_read, remaining, total_size);
|
||||
#endif
|
||||
}
|
||||
|
||||
return already_read;
|
||||
}
|
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0"?> <!-- -*-xml-*- -->
|
||||
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
|
||||
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
|
||||
|
||||
<libgtop:Backend>
|
||||
<libgtop:Name>glibtop-backend-server</libgtop:Name>
|
||||
<libgtop:Location>
|
||||
<libgtop:LibtoolName>libgtop_backend_server.la</libgtop:LibtoolName>
|
||||
<libgtop:ShlibName>libgtop_backend_server.so</libgtop:ShlibName>
|
||||
</libgtop:Location>
|
||||
</libgtop:Backend>
|
||||
|
||||
</libgtop:Backends>
|
@@ -1,305 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
require 'c_types.pl';
|
||||
|
||||
$[ = 1; # set array base to 1
|
||||
$, = ' '; # set output field separator
|
||||
$\ = "\n"; # set output record separator
|
||||
|
||||
$always_use_temp_storage = 1;
|
||||
|
||||
sub toupper {
|
||||
local($_) = @_;
|
||||
tr/a-z/A-Z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
sub tolower {
|
||||
local($_) = @_;
|
||||
tr/A-Z/a-z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
print '/* marshal.c */';
|
||||
print "/* This is a generated file. Please modify `marshal.pl' */";
|
||||
print '';
|
||||
|
||||
print '#include <backend-server.h>';
|
||||
print '';
|
||||
print '#include <glibtop/sysdeps.h>';
|
||||
print '#include <glibtop/union.h>';
|
||||
print '';
|
||||
print '#include "command.h"';
|
||||
print '#include <glibtop/call-vector.h>';
|
||||
print '';
|
||||
|
||||
$feature_count = 0;
|
||||
|
||||
while (<>) {
|
||||
chop; # strip record separator
|
||||
|
||||
if (/^[^#]/) {
|
||||
&output($_);
|
||||
}
|
||||
}
|
||||
|
||||
sub output {
|
||||
local($line) = @_;
|
||||
@line_fields = split(/\|/, $line, 9999);
|
||||
$retval = $line_fields[1];
|
||||
$feature = $line_fields[2];
|
||||
$param_def = $line_fields[4];
|
||||
|
||||
$orig = $feature;
|
||||
$feature =~ s/^@//;
|
||||
$space = $feature;
|
||||
$space =~ s/./ /g;
|
||||
|
||||
$features{++$feature_count} = $orig;
|
||||
return if $orig =~ /^@/;
|
||||
|
||||
$orig_retval = $retval;
|
||||
if ($retval eq 'retval') {
|
||||
$retval_param = '&retval';
|
||||
$call_prefix = '';
|
||||
$call_prefix_space = '';
|
||||
$prefix = 'retval = ';
|
||||
$prefix_space = ' ';
|
||||
$retval = 'int';
|
||||
}
|
||||
elsif ($retval !~ /^void$/) {
|
||||
$retval_param = 'NULL';
|
||||
$prefix = 'retval = ';
|
||||
$prefix_space = ' ';
|
||||
$call_prefix = 'retval = ';
|
||||
$call_prefix_space = ' ';
|
||||
}
|
||||
else {
|
||||
$retval_param = 'NULL';
|
||||
$call_prefix = '';
|
||||
$call_prefix_space = '';
|
||||
$prefix = '';
|
||||
$prefix_space = '';
|
||||
}
|
||||
|
||||
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
||||
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
||||
}
|
||||
|
||||
$need_temp_storage = $always_use_temp_storage;
|
||||
$local_var_init_code = "\t/* variable initialization */\n";
|
||||
$local_var_init_code .= "\t_LIBGTOP_SEND_len = 0;\n";
|
||||
$local_var_init_code .= "\t_LIBGTOP_DATA_len = 0;\n";
|
||||
$local_var_init_code .= "\t_LIBGTOP_SEND_offset = 0;\n";
|
||||
$local_var_init_code .= "\t_LIBGTOP_SEND_ptr = ".
|
||||
"(char *) _LIBGTOP_SEND_buf;\n";
|
||||
$marshal_code = "\t/* marshal start */\n";
|
||||
$marshal_code .= "\tmemset (_LIBGTOP_SEND_buf, 0, _LIBGTOP_SEND_len);\n";
|
||||
$first_param_name = '';
|
||||
$size_code = '';
|
||||
|
||||
$call_param = '';
|
||||
$param_decl = '';
|
||||
$need_temp_len = 0;
|
||||
$nr_params = (@params = split(/:/, $param_def, 9999));
|
||||
for ($param = 1; $param <= $nr_params; $param++) {
|
||||
$list = $params[$param];
|
||||
$type = $params[$param];
|
||||
$type =~ s/\(.*//;
|
||||
$list =~ s/^.*\(//;
|
||||
$list =~ s/\)$//;
|
||||
$count = (@fields = split(/,/, $list, 9999));
|
||||
for ($field = 1; $field <= $count; $field++) {
|
||||
my $c_type = $typeinfo->{$type}->[1];
|
||||
|
||||
if ($first_param_name eq '') {
|
||||
$first_param_name = $fields[$field];
|
||||
}
|
||||
|
||||
if ($typeinfo->{$type}->[2]) {
|
||||
$need_temp_storage = 1;
|
||||
}
|
||||
|
||||
if ($param_decl eq '') {
|
||||
$param_decl = ",\n " . $space . ' ';
|
||||
}
|
||||
else {
|
||||
$param_decl = $param_decl . ', ';
|
||||
}
|
||||
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
||||
$call_param = $call_param . ', ' . $fields[$field];
|
||||
|
||||
$size_code .= "\t_LIBGTOP_SEND_len += ";
|
||||
if ($typeinfo->{$type}->[2]) {
|
||||
$size_code .= sprintf ("sizeof (size_t)");
|
||||
} else {
|
||||
$size_code .= sprintf ("sizeof (%s)", $c_type);
|
||||
}
|
||||
$size_code .= ";\n";
|
||||
|
||||
if (defined $sizeof_funcs->{$type}) {
|
||||
$size_code .= "\t_LIBGTOP_DATA_len += ";
|
||||
$size_code .= $sizeof_funcs->{$type}->($fields[$field]);
|
||||
$size_code .= ";\n";
|
||||
}
|
||||
|
||||
$marshal_code .= "\t_LIBGTOP_SEND_ptr = ".
|
||||
"(char *) _LIBGTOP_SEND_buf + _LIBGTOP_SEND_offset;\n";
|
||||
|
||||
if (defined $marshal_funcs->{$type}) {
|
||||
$marshal_code .= $marshal_funcs->{$type}->($c_type, $fields[$field], "\t");
|
||||
} else {
|
||||
$marshal_code .= sprintf ("\tmemcpy (_LIBGTOP_SEND_ptr, %s, %s);\n",
|
||||
'&'.$fields[$field], "sizeof ($c_type)");
|
||||
}
|
||||
|
||||
$marshal_code .= "\t_LIBGTOP_SEND_offset += ";
|
||||
if ($typeinfo->{$type}->[2]) {
|
||||
$marshal_code .= sprintf ("sizeof (size_t)");
|
||||
} else {
|
||||
$marshal_code .= sprintf ("sizeof (%s)", $c_type);
|
||||
}
|
||||
$marshal_code .= ";\n";
|
||||
}
|
||||
}
|
||||
|
||||
$local_var_code = "";
|
||||
$local_var_code .= "\tunsigned _LIBGTOP_SEND_offset, _LIBGTOP_SEND_len;\n";
|
||||
$local_var_code .= "\tunsigned _LIBGTOP_DATA_len;\n";
|
||||
if ($need_temp_len) {
|
||||
$local_var_code .= "\tunsigned _LIBGTOP_SEND_temp_len;\n";
|
||||
}
|
||||
$local_var_code .= "\tvoid *_LIBGTOP_SEND_buf, *_LIBGTOP_DATA_buf;\n";
|
||||
$local_var_code .= "\tchar *_LIBGTOP_SEND_ptr, *_LIBGTOP_DATA_ptr;\n";
|
||||
if ($retval !~ /^void$/) {
|
||||
$local_var_code .= sprintf ("\t%s retval = (%s) 0;\n",
|
||||
$retval, $retval);
|
||||
}
|
||||
|
||||
$total_code = '';
|
||||
|
||||
$send_buf_code = "\t/* send buffer */\n";
|
||||
$send_buf_code .= "\t_LIBGTOP_SEND_buf = ";
|
||||
if ($need_temp_storage) {
|
||||
$send_buf_code .= "g_malloc (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 .= "g_malloc (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 = "\tg_free (_LIBGTOP_SEND_buf);\n";
|
||||
$send_buf_free_code .= "\tg_free (_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 = g_malloc (server, array->number+1 * sizeof (char *));\n";
|
||||
$call_code .= "\t_LIBGTOP_ARRAY_off_ptr = (off_t *) retval;\n";
|
||||
$call_code .= "\t_LIBGTOP_ARRAY_ptr = (char *) retval;\n";
|
||||
$call_code .= "\t_LIBGTOP_ARRAY_off_ptr++;\n\n";
|
||||
$call_code .= "\tfor (i = 0; i < array->number; i++)\n";
|
||||
$call_code .= "\t\tptrlist [i] = g_strdup (_LIBGTOP_ARRAY_ptr + *_LIBGTOP_ARRAY_off_ptr++);\n";
|
||||
$call_code .= "\tptrlist [array->number] = NULL;\n\n";
|
||||
$call_code .= "\tg_free (retval);\n";
|
||||
$call_code .= "\tretval = ptrlist;\n";
|
||||
}
|
||||
|
||||
$total_code .= sprintf ("%s%s\n%s\n%s\n%s\n",
|
||||
$size_code, $send_buf_code, $marshal_code,
|
||||
$call_code, $send_buf_free_code);
|
||||
|
||||
$return_code = '';
|
||||
if ($retval !~ /^void$/) {
|
||||
$return_code .= "\treturn retval;\n";
|
||||
} else {
|
||||
$return_code .= "\treturn;\n";
|
||||
}
|
||||
|
||||
$total_code .= $return_code;
|
||||
|
||||
$func_decl = 'static '.$retval."\n";
|
||||
if ($line_fields[3] eq '') {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
|
||||
$feature, $param_decl);
|
||||
} elsif ($line_fields[3] eq 'array') {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
|
||||
$feature, $param_decl);
|
||||
} elsif ($line_fields[3] =~ /^array/) {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
|
||||
$feature, 'glibtop_'.$feature, $param_decl);
|
||||
} else {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
|
||||
$feature, 'glibtop_'.$feature, $param_decl);
|
||||
}
|
||||
|
||||
$total_code = sprintf ("%s{\n%s\n%s\n%s\n%s}\n", $func_decl,
|
||||
$local_var_code, $local_var_init_code,
|
||||
$total_code);
|
||||
|
||||
|
||||
$total_code = sprintf ("#if GLIBTOP_SUID_%s\n\n%s\n#endif /* GLIBTOP_SUID_%s */\n\n",
|
||||
&toupper($feature), $total_code,
|
||||
&toupper($feature));
|
||||
|
||||
print $total_code;
|
||||
}
|
||||
|
||||
$call_vector_code = '';
|
||||
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
||||
$feature = $features{$nr};
|
||||
|
||||
$orig = $feature;
|
||||
$feature =~ s/^@//;
|
||||
|
||||
if ($orig =~ /^@/) {
|
||||
$call_vector_code .= sprintf (qq[\tNULL,\n]);
|
||||
} else {
|
||||
$call_vector_code .= sprintf
|
||||
(qq[\#if GLIBTOP_SUID_%s\n\t_glibtop_get_%s_c,\n\#else\n\tNULL,\n\#endif\n],
|
||||
&toupper($feature), $feature);
|
||||
}
|
||||
}
|
||||
|
||||
print 'glibtop_call_vector glibtop_backend_server_call_vector = {';
|
||||
print $call_vector_code;
|
||||
print '};';
|
||||
print '';
|
||||
|
@@ -1,46 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <backend-server.h>
|
||||
|
||||
void
|
||||
glibtop_read_i (backend_server_private *priv, size_t size, void *buf)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "LIBRARY: really reading %d bytes from %d.\n",
|
||||
size, priv->input [0]);
|
||||
#endif
|
||||
|
||||
ret = read (priv->input [0], buf, size);
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "LIBRARY: read %d bytes.\n", ret);
|
||||
#endif
|
||||
|
||||
if (ret < 0)
|
||||
glibtop_error_io_r (priv->server, "read %d bytes", size);
|
||||
}
|
@@ -1,58 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <backend-server.h>
|
||||
|
||||
void *
|
||||
glibtop_read_data_i (backend_server_private *priv)
|
||||
{
|
||||
size_t size;
|
||||
void *ptr;
|
||||
int ret;
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "LIBRARY: reading %d data bytes.\n", sizeof (size_t));
|
||||
#endif
|
||||
|
||||
ret = read (priv->input [0], (void *)&size, sizeof (size_t));
|
||||
|
||||
if (ret < 0)
|
||||
glibtop_error_io_r (priv->server, "read data size");
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "LIBRARY: really reading %d data bytes (ret = %d).\n", size, ret);
|
||||
#endif
|
||||
|
||||
if (!size) return NULL;
|
||||
|
||||
ptr = g_malloc (priv->server, size);
|
||||
|
||||
ret = read (priv->input [0], ptr, size);
|
||||
|
||||
if (ret < 0)
|
||||
glibtop_error_io_r (priv->server, "read data %d bytes");
|
||||
|
||||
return ptr;
|
||||
}
|
@@ -1,189 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "server.h"
|
||||
|
||||
static glibtop _glibtop_global_server;
|
||||
glibtop *glibtop_global_server = &_glibtop_global_server;
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/union.h>
|
||||
#include <glibtop/sysdeps.h>
|
||||
|
||||
#include <sys/utsname.h>
|
||||
|
||||
const unsigned long glibtop_server_features =
|
||||
GLIBTOP_SUID_CPU +
|
||||
GLIBTOP_SUID_MEM +
|
||||
GLIBTOP_SUID_SWAP +
|
||||
GLIBTOP_SUID_UPTIME +
|
||||
GLIBTOP_SUID_LOADAVG +
|
||||
GLIBTOP_SUID_SHM_LIMITS +
|
||||
GLIBTOP_SUID_MSG_LIMITS +
|
||||
GLIBTOP_SUID_SEM_LIMITS +
|
||||
GLIBTOP_SUID_PROCLIST +
|
||||
GLIBTOP_SUID_PROC_STATE +
|
||||
GLIBTOP_SUID_PROC_UID +
|
||||
GLIBTOP_SUID_PROC_MEM +
|
||||
GLIBTOP_SUID_PROC_TIME +
|
||||
GLIBTOP_SUID_PROC_SIGNAL +
|
||||
GLIBTOP_SUID_PROC_KERNEL +
|
||||
GLIBTOP_SUID_PROC_SEGMENT +
|
||||
GLIBTOP_SUID_PROC_ARGS +
|
||||
GLIBTOP_SUID_PROC_MAP +
|
||||
GLIBTOP_SUID_NETINFO +
|
||||
GLIBTOP_SUID_NETLOAD +
|
||||
GLIBTOP_SUID_INTERFACE_NAMES +
|
||||
GLIBTOP_SUID_PPP;
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <locale.h>
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
struct utsname uts;
|
||||
int uid, euid, gid, egid;
|
||||
glibtop *server;
|
||||
|
||||
/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
|
||||
|
||||
uid = getuid (); euid = geteuid ();
|
||||
gid = getgid (); egid = getegid ();
|
||||
|
||||
if (uname (&uts) < 0) _exit (1);
|
||||
|
||||
if (strcmp (uts.sysname, LIBGTOP_COMPILE_SYSTEM) ||
|
||||
strcmp (uts.release, LIBGTOP_COMPILE_RELEASE) ||
|
||||
strcmp (uts.machine, LIBGTOP_COMPILE_MACHINE)) {
|
||||
fprintf (stderr, "Can only run on %s %s %s\n",
|
||||
LIBGTOP_COMPILE_SYSTEM,
|
||||
LIBGTOP_COMPILE_RELEASE,
|
||||
LIBGTOP_COMPILE_MACHINE);
|
||||
_exit (1);
|
||||
}
|
||||
|
||||
server = glibtop_global_server;
|
||||
|
||||
if (!server->_priv)
|
||||
server->_priv = g_malloc (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 = g_malloc (server, cmnd->data_size);
|
||||
do_read (input, data_ptr, cmnd->data_size);
|
||||
}
|
||||
|
||||
retval = glibtop_demarshal_func_i (server, NULL,
|
||||
cmnd->command,
|
||||
parameter, send_size,
|
||||
data_ptr, cmnd->data_size,
|
||||
&recv_ptr, &recv_size,
|
||||
&recv_data_ptr, &recv_data_size,
|
||||
&func_retval);
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "Retval %d / %d - %p - %d\n",
|
||||
retval, func_retval, recv_ptr, recv_size);
|
||||
|
||||
if (recv_data_size) {
|
||||
fprintf (stderr, "Returning %d bytes of data from %p.\n",
|
||||
recv_data_size, recv_data_ptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
memset (&resp, 0, sizeof (glibtop_response));
|
||||
|
||||
resp.retval = retval;
|
||||
resp.glibtop_errno = func_retval;
|
||||
resp.recv_size = recv_size;
|
||||
resp.data_size = recv_data_size;
|
||||
|
||||
do_output (output, &resp, recv_ptr, recv_data_ptr);
|
||||
}
|
||||
}
|
@@ -1,84 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_DAEMON_H__
|
||||
#define __GLIBTOP_DAEMON_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/error.h>
|
||||
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/union.h>
|
||||
#include <glibtop/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"
|
||||
|
||||
G_BEGIN_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;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
@@ -1,62 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "server.h"
|
||||
|
||||
void
|
||||
glibtop_send_version_i (glibtop *server, int fd)
|
||||
{
|
||||
char buffer [BUFSIZ];
|
||||
size_t size;
|
||||
|
||||
sprintf (buffer, LIBGTOP_VERSION_STRING,
|
||||
LIBGTOP_VERSION, LIBGTOP_SERVER_VERSION,
|
||||
sizeof (glibtop_command),
|
||||
sizeof (glibtop_response),
|
||||
sizeof (glibtop_union),
|
||||
sizeof (glibtop_sysdeps));
|
||||
|
||||
size = strlen (buffer) + 1;
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "SERVER ID: |%s|\n", buffer);
|
||||
#endif
|
||||
|
||||
if (fd == 0) {
|
||||
if (write (1, (const void *) &size, sizeof (size)) < 0)
|
||||
glibtop_warn_io_r (server, "write");
|
||||
} else {
|
||||
if (send (fd, (const void *) &size, sizeof (size), 0) < 0)
|
||||
glibtop_warn_io_r (server, "send");
|
||||
}
|
||||
|
||||
if (fd == 0) {
|
||||
if (write (1, (const void *) buffer, size) < 0)
|
||||
glibtop_warn_io_r (server, "write");
|
||||
} else {
|
||||
if (send (fd, (const void *) buffer, size, 0) < 0)
|
||||
glibtop_warn_io_r (server, "send");
|
||||
}
|
||||
}
|
@@ -1,43 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <backend-server.h>
|
||||
|
||||
void
|
||||
glibtop_write_i (backend_server_private *priv, size_t size, const void *buf)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (size == 0) return;
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "LIBRARY: really writing %d bytes.\n", size);
|
||||
#endif
|
||||
|
||||
ret = write (priv->output [1], buf, size);
|
||||
|
||||
if (ret < 0)
|
||||
glibtop_error_io_r (priv->server, "write %d bytes", size);
|
||||
}
|
@@ -1,7 +0,0 @@
|
||||
.deps
|
||||
.libs
|
||||
Makefile
|
||||
Makefile.in
|
||||
*.lo
|
||||
*.la
|
||||
marshal.c
|
@@ -1,68 +0,0 @@
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* backend-sysdeps.c: (_open_sysdeps): s/u_int64_t/guint64/
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* backend-sysdeps.h: fixed compilation
|
||||
|
||||
2000-11-26 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* glibtop-backend-private.h: Removed.
|
||||
|
||||
* backend-sysdeps.h: New files.
|
||||
|
||||
* backend-sysdeps.c (_open_sysdeps): Don't overwrite
|
||||
`backend->_priv'.
|
||||
|
||||
2000-11-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am: Link libgtop_backend_sysdeps.la against
|
||||
$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la and
|
||||
$(top_builddir)/lib/libgtop_server.la.
|
||||
|
||||
* libgtop-sysdeps.backend: Removed the ExtraLibs section.
|
||||
|
||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* backend-sysdeps.c (LibGTopBackendInfo): Call this
|
||||
`LibGTopBackendInfo_Sysdeps' when we don't use gmodule.
|
||||
|
||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
|
||||
when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
|
||||
|
||||
2000-01-22 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* libgtop-sysdeps.backend: Added "ExtraLibs" section to
|
||||
load `-lgtop_sysdeps'.
|
||||
|
||||
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR).
|
||||
|
||||
* libgtop-sysdeps.backend: New file.
|
||||
|
||||
* backend-sysdeps.c (glibtop_backend_sysdeps): Renamed to
|
||||
`LibGTopBackendInfo'.
|
||||
|
||||
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* marshal.pl: Create the `_glibtop_init_hook_s' as well.
|
||||
|
||||
* marshal.pl: Don't create code for things which are now
|
||||
in the new `glibtop-backend-common' backend.
|
||||
|
||||
2000-01-02 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* marshal.pl: New file. Automatically creates `marshal.c'.
|
||||
* call-vector.c: Removed.
|
||||
|
||||
2000-01-01 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Initial version of the "glibtop-backend-sysdeps" backend.
|
||||
|
||||
* backend-sysdeps.c: New file.
|
||||
* glibtop-backend-private.h: New file.
|
||||
|
@@ -1,47 +0,0 @@
|
||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
INCLUDES = @INCLUDES@
|
||||
|
||||
backenddir = @LIBGTOP_BACKEND_DIR@
|
||||
|
||||
if LIBGTOP_USE_GMODULE
|
||||
backendlibdir = $(backenddir)
|
||||
else
|
||||
backendlibdir = $(libdir)
|
||||
endif
|
||||
|
||||
dynamic_ldflags = @libgtop_dynamic_ldflags@
|
||||
|
||||
backend_DATA = \
|
||||
libgtop-sysdeps.backend
|
||||
|
||||
noinst_HEADERS = \
|
||||
backend-sysdeps.h
|
||||
|
||||
backendlib_LTLIBRARIES = \
|
||||
libgtop_backend_sysdeps.la
|
||||
|
||||
libgtop_backend_sysdeps_la_SOURCES = \
|
||||
backend-sysdeps.c \
|
||||
marshal.c
|
||||
|
||||
libgtop_backend_sysdeps_la_LDFLAGS = \
|
||||
$(LT_VERSION_INFO) $(dynamic_ldflags)
|
||||
|
||||
libgtop_backend_sysdeps_la_LIBADD = \
|
||||
$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la
|
||||
$(top_builddir)/lib/libgtop_server.la
|
||||
|
||||
BUILT_SOURCES = \
|
||||
marshal.c
|
||||
|
||||
EXTRA_DIST = \
|
||||
marshal.pl \
|
||||
libgtop-sysdeps.backend
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t
|
||||
mv tmp-t marshal.c
|
||||
|
@@ -1,76 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <backend-sysdeps.h>
|
||||
|
||||
static int
|
||||
_open_sysdeps (glibtop_server *, glibtop_backend *, guint64, 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,
|
||||
guint64 features, const char **backend_args)
|
||||
{
|
||||
glibtop_init_func_t *init_fkt;
|
||||
|
||||
/* Do the initialization, but only if not already initialized. */
|
||||
|
||||
if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) {
|
||||
glibtop_open_s (server, "glibtop", features, 0);
|
||||
|
||||
for (init_fkt = _glibtop_init_hook_s; *init_fkt; init_fkt++)
|
||||
(*init_fkt) (server);
|
||||
|
||||
server->info->sysdeps.pointer_size = sizeof (void*)*8;
|
||||
|
||||
server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
_close_sysdeps (glibtop_server *server, glibtop_backend *backend,
|
||||
void *closure)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@@ -1,36 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_BACKEND_SYSDEPS_H__
|
||||
#define __GLIBTOP_BACKEND_SYSDEPS_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/glibtop-backend.h>
|
||||
#include <glibtop/glibtop-backend-info.h>
|
||||
|
||||
#endif
|
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0"?> <!-- -*-xml-*- -->
|
||||
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
|
||||
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
|
||||
|
||||
<libgtop:Backend>
|
||||
<libgtop:Name>glibtop-backend-sysdeps</libgtop:Name>
|
||||
<libgtop:Location>
|
||||
<libgtop:LibtoolName>libgtop_backend_sysdeps.la</libgtop:LibtoolName>
|
||||
<libgtop:ShlibName>libgtop_backend_sysdeps.so</libgtop:ShlibName>
|
||||
</libgtop:Location>
|
||||
</libgtop:Backend>
|
||||
|
||||
</libgtop:Backends>
|
@@ -1,195 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
require 'c_types.pl';
|
||||
|
||||
$[ = 1; # set array base to 1
|
||||
$, = ' '; # set output field separator
|
||||
$\ = "\n"; # set output record separator
|
||||
|
||||
$always_use_temp_storage = 1;
|
||||
|
||||
sub toupper {
|
||||
local($_) = @_;
|
||||
tr/a-z/A-Z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
sub tolower {
|
||||
local($_) = @_;
|
||||
tr/A-Z/a-z/;
|
||||
return $_;
|
||||
}
|
||||
|
||||
print '/* marshal.c */';
|
||||
print "/* This is a generated file. Please modify `marshal.pl' */";
|
||||
print '';
|
||||
|
||||
print '#include <backend-sysdeps.h>';
|
||||
print '';
|
||||
print '#include <glibtop/sysdeps.h>';
|
||||
print '#include <glibtop/union.h>';
|
||||
print '';
|
||||
print '#include <glibtop/call-vector.h>';
|
||||
print '';
|
||||
|
||||
$feature_count = 0;
|
||||
|
||||
while (<>) {
|
||||
chop; # strip record separator
|
||||
|
||||
if (/^[^#]/) {
|
||||
&output($_);
|
||||
}
|
||||
}
|
||||
|
||||
sub output {
|
||||
local($line) = @_;
|
||||
@line_fields = split(/\|/, $line, 9999);
|
||||
$retval = $line_fields[1];
|
||||
$feature = $line_fields[2];
|
||||
$param_def = $line_fields[4];
|
||||
|
||||
$orig = $feature;
|
||||
$feature =~ s/^@//;
|
||||
$space = $feature;
|
||||
$space =~ s/./ /g;
|
||||
|
||||
$features{++$feature_count} = $orig;
|
||||
|
||||
return if $orig =~ /^@/;
|
||||
|
||||
if ($retval eq 'retval') {
|
||||
$retval_param = '&retval';
|
||||
$call_prefix = '';
|
||||
$call_prefix_space = '';
|
||||
$prefix = 'retval = ';
|
||||
$prefix_space = ' ';
|
||||
$retval = 'int';
|
||||
}
|
||||
elsif ($retval !~ /^void$/) {
|
||||
$retval_param = 'NULL';
|
||||
$prefix = 'retval = ';
|
||||
$prefix_space = ' ';
|
||||
$call_prefix = 'retval = ';
|
||||
$call_prefix_space = ' ';
|
||||
}
|
||||
else {
|
||||
$retval_param = 'NULL';
|
||||
$call_prefix = '';
|
||||
$call_prefix_space = '';
|
||||
$prefix = '';
|
||||
$prefix_space = '';
|
||||
}
|
||||
|
||||
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
||||
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
||||
}
|
||||
|
||||
$need_temp_storage = $always_use_temp_storage;
|
||||
$first_param_name = '';
|
||||
|
||||
$call_param = '';
|
||||
$param_decl = '';
|
||||
$need_temp_len = 0;
|
||||
$nr_params = (@params = split(/:/, $param_def, 9999));
|
||||
for ($param = 1; $param <= $nr_params; $param++) {
|
||||
$list = $params[$param];
|
||||
$type = $params[$param];
|
||||
$type =~ s/\(.*//;
|
||||
$list =~ s/^.*\(//;
|
||||
$list =~ s/\)$//;
|
||||
$count = (@fields = split(/,/, $list, 9999));
|
||||
for ($field = 1; $field <= $count; $field++) {
|
||||
my $c_type = $typeinfo->{$type}->[1];
|
||||
|
||||
if ($first_param_name eq '') {
|
||||
$first_param_name = $fields[$field];
|
||||
}
|
||||
|
||||
if ($typeinfo->{$type}->[2]) {
|
||||
$need_temp_storage = 1;
|
||||
}
|
||||
|
||||
if ($param_decl eq '') {
|
||||
$param_decl = ",\n " . $space . ' ';
|
||||
}
|
||||
else {
|
||||
$param_decl = $param_decl . ', ';
|
||||
}
|
||||
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
||||
$call_param = $call_param . ', ' . $fields[$field];
|
||||
}
|
||||
}
|
||||
|
||||
if ($line_fields[3] eq '') {
|
||||
$total_code = sprintf
|
||||
("\treturn glibtop_get_%s_s (server%s);\n", $feature, $call_param);
|
||||
} elsif ($line_fields[3] eq 'array') {
|
||||
$total_code = sprintf
|
||||
("\treturn glibtop_get_%s_s (server, array%s);\n", $feature, $call_param);
|
||||
} elsif ($line_fields[3] =~ /^array/) {
|
||||
$total_code = sprintf
|
||||
("\treturn glibtop_get_%s_s (server, array, buf%s);\n", $feature, $call_param);
|
||||
} else {
|
||||
$total_code = sprintf
|
||||
("\treturn glibtop_get_%s_s (server, buf%s);\n", $feature, $call_param);
|
||||
}
|
||||
|
||||
$func_decl = 'static '.$retval."\n";
|
||||
if ($line_fields[3] eq '') {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
|
||||
$feature, $param_decl);
|
||||
} elsif ($line_fields[3] eq 'array') {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
|
||||
$feature, $param_decl);
|
||||
} elsif ($line_fields[3] =~ /^array/) {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
|
||||
$feature, 'glibtop_'.$feature, $param_decl);
|
||||
} else {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
|
||||
$feature, 'glibtop_'.$feature, $param_decl);
|
||||
}
|
||||
|
||||
$total_code = sprintf ("%s{\n%s\n%s}\n", $func_decl, $total_code);
|
||||
|
||||
$total_code = sprintf ("#if (!GLIBTOP_SUID_%s)\n\n%s\n#endif /* not GLIBTOP_SUID_%s */\n\n",
|
||||
&toupper($feature), $total_code,
|
||||
&toupper($feature));
|
||||
|
||||
print $total_code;
|
||||
}
|
||||
|
||||
$init_hook_code = '';
|
||||
$call_vector_code = '';
|
||||
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
||||
$feature = $features{$nr};
|
||||
|
||||
if ($feature =~ /^@/) {
|
||||
$call_vector_code .= sprintf (qq[\tNULL,\n]);
|
||||
} else {
|
||||
$call_vector_code .= sprintf
|
||||
(qq[\#if GLIBTOP_SUID_%s\n\tNULL,\n\#else\n\t_glibtop_get_%s_c,\n\#endif\n],
|
||||
&toupper($feature), $feature);
|
||||
}
|
||||
|
||||
if (!($feature =~ /^@/)) {
|
||||
$init_hook_code .= sprintf
|
||||
(qq[\#if !GLIBTOP_SUID_%s\n\tglibtop_init_%s_s,\n\#endif\n],
|
||||
&toupper($feature), $feature);
|
||||
}
|
||||
}
|
||||
$init_hook_code .= sprintf (qq[\tNULL\n]);
|
||||
|
||||
chop $init_hook_code;
|
||||
chop $call_vector_code;
|
||||
|
||||
print 'glibtop_call_vector glibtop_backend_sysdeps_call_vector = {';
|
||||
print $call_vector_code;
|
||||
print '};';
|
||||
print '';
|
||||
|
||||
print 'glibtop_init_func_t _glibtop_init_hook_s [] = {';
|
||||
print $init_hook_code;
|
||||
print '};';
|
||||
print '';
|
||||
|
268
configure.in
268
configure.in
@@ -2,59 +2,50 @@ dnl
|
||||
dnl Configure script for the Gnome library
|
||||
dnl
|
||||
|
||||
AC_INIT(copyright.txt)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
||||
LIBGTOP_MAJOR_VERSION=2
|
||||
LIBGTOP_MINOR_VERSION=5
|
||||
LIBGTOP_MICRO_VERSION=1
|
||||
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
|
||||
AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION)
|
||||
m4_define([libgtop_major_version], [2])
|
||||
m4_define([libgtop_minor_version], [24])
|
||||
m4_define([libgtop_micro_version], [3])
|
||||
m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version])
|
||||
|
||||
dnl increment if the interface has additions, changes, removals.
|
||||
LIBGTOP_CURRENT=2
|
||||
m4_define([libgtop_current], [9])
|
||||
|
||||
dnl increment any time the source changes; set to
|
||||
dnl 0 if you increment CURRENT
|
||||
LIBGTOP_REVISION=0
|
||||
m4_define([libgtop_revision], [0])
|
||||
|
||||
dnl increment if any interfaces have been added; set to 0
|
||||
dnl if any interfaces have been removed. removal has
|
||||
dnl precedence over adding, so set to 0 if both happened.
|
||||
LIBGTOP_AGE=0
|
||||
|
||||
# you can set this to `-snap' for instance to create
|
||||
# a `libgtop-1.x.y-snap.tar.gz' tarball.
|
||||
LIBGTOP_VERSION_SUFFIX=
|
||||
m4_define([libgtop_age], [2])
|
||||
|
||||
# Increase each time you change the client/server protocol.
|
||||
LIBGTOP_SERVER_VERSION=5
|
||||
m4_define([libgtop_server_version], [5])
|
||||
|
||||
# Version code calculation
|
||||
LIBGTOP_VERSION_CODE=`expr $LIBGTOP_MAJOR_VERSION \* 1000000 + $LIBGTOP_MINOR_VERSION \* 1000 + $LIBGTOP_MICRO_VERSION`
|
||||
m4_define([libgtop_version_code], [m4_eval(libgtop_major_version * 1000000 + libgtop_minor_version * 1000 + libgtop_micro_version)])
|
||||
|
||||
AC_SUBST(LIBGTOP_MAJOR_VERSION)
|
||||
AC_SUBST(LIBGTOP_MINOR_VERSION)
|
||||
AC_SUBST(LIBGTOP_MICRO_VERSION)
|
||||
AC_SUBST(LIBGTOP_INTERFACE_AGE)
|
||||
AC_SUBST(LIBGTOP_BINARY_AGE)
|
||||
AC_SUBST(LIBGTOP_SERVER_VERSION)
|
||||
AC_SUBST(LIBGTOP_VERSION)
|
||||
AC_SUBST(LIBGTOP_VERSION_CODE)
|
||||
AC_SUBST(LIBGTOP_VERSION_SUFFIX)
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT([libgtop], [libgtop_version],
|
||||
[http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop])
|
||||
AC_CONFIG_SRCDIR(copyright.txt)
|
||||
AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
||||
AM_INIT_AUTOMAKE
|
||||
AC_SUBST(ACLOCAL_AMFLAGS, [\${ACLOCAL_FLAGS}])
|
||||
|
||||
AC_SUBST(LIBGTOP_MAJOR_VERSION, [libgtop_major_version])
|
||||
AC_SUBST(LIBGTOP_MINOR_VERSION, [libgtop_minor_version])
|
||||
AC_SUBST(LIBGTOP_MICRO_VERSION, [libgtop_micro_version])
|
||||
AC_SUBST(LIBGTOP_SERVER_VERSION, [libgtop_server_version])
|
||||
AC_SUBST(LIBGTOP_VERSION, [libgtop_version])
|
||||
AC_SUBST(LIBGTOP_VERSION_CODE, [libgtop_version_code])
|
||||
|
||||
# libtool versioning
|
||||
LT_RELEASE=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION
|
||||
LT_CURRENT=$LIBGTOP_CURRENT
|
||||
LT_REVISION=$LIBGTOP_REVISION
|
||||
LT_AGE=$LIBGTOP_AGE
|
||||
LT_VERSION_INFO="-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}"
|
||||
AC_SUBST(LT_VERSION_INFO)
|
||||
AC_SUBST(LT_RELEASE)
|
||||
AC_SUBST(LT_CURRENT)
|
||||
AC_SUBST(LT_REVISION)
|
||||
AC_SUBST(LT_AGE)
|
||||
AC_SUBST(LT_VERSION_INFO,
|
||||
["-version-info libgtop_current:libgtop_revision:libgtop_age"])
|
||||
|
||||
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I ."
|
||||
|
||||
@@ -91,61 +82,21 @@ export cross_compiling
|
||||
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
dnl Let the user enable compiler warnings
|
||||
dnl GNOME_COMPILE_WARNINGS
|
||||
|
||||
dnl GNOME_INIT_HOOK(gnome_found=yes)
|
||||
|
||||
AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
|
||||
|
||||
GNOME_LIBGTOP_SYSDEPS
|
||||
GNOME_LIBGTOP_TYPES
|
||||
|
||||
AC_ARG_WITH(libgtop-inodedb,
|
||||
[ --with-libgtop-inodedb Build the inodedb stuff (default=no)],
|
||||
[build_inodedb="$withval"], [build_inodedb=no])
|
||||
GLIB_REQUIRED=2.6.0
|
||||
|
||||
LIBGTOP_EXTRA_LIBS=
|
||||
|
||||
if test x$build_inodedb = xyes ; then
|
||||
AC_CHECK_LIB(gdbm, gdbm_open, LIBGTOP_EXTRA_LIBS='-lgdbm', build_inodedb=no)
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(INODEDB, test x$build_inodedb = xyes)
|
||||
|
||||
if test x$build_inodedb = xyes ; then
|
||||
AC_DEFINE(GLIBTOP_INODEDB)
|
||||
fi
|
||||
|
||||
AC_DEFINE(GLIBTOP_NAMES)
|
||||
|
||||
if test x$libgtop_smp = xyes ; then
|
||||
smp_examples='smp'
|
||||
smp_static_examples='smp_static'
|
||||
else
|
||||
smp_examples=
|
||||
smp_static_examples=
|
||||
fi
|
||||
|
||||
if test "x$enable_static" != xno; then
|
||||
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $smp_static_examples"
|
||||
else
|
||||
static_targets=""
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
|
||||
AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes)
|
||||
|
||||
AC_SUBST(static_targets)
|
||||
AC_SUBST(smp_examples)
|
||||
|
||||
GLIB_REQUIRED=2.0.0
|
||||
|
||||
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED libgnome-2.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))
|
||||
AC_CHECK_HEADER(ifaddrs.h, [HAVE_IFADDRS_H=yes], [HAVE_IFADDRS_H=no])
|
||||
if test x$HAVE_IFADDRS_H = xyes ; then
|
||||
AC_DEFINE(HAVE_IFADDRS_H, 1, [defined if you have ifaddrs.h])
|
||||
fi
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
@@ -179,33 +130,49 @@ AC_CHECK_FUNCS(dlerror,,)
|
||||
LIBS="$oLIBS"
|
||||
AC_SUBST(DL_LIB)
|
||||
|
||||
dnl Linux
|
||||
AC_CHECK_HEADER(linux/isdn.h,[HAVE_ISDN_H=yes],[HAVE_ISDN_H=no])
|
||||
if test x$HAVE_ISDN_H = xyes ; then
|
||||
AC_DEFINE(HAVE_ISDN_H, 1, [defined if you have linux/isdn.h])
|
||||
fi
|
||||
|
||||
dnl AIX
|
||||
AH_TEMPLATE(HAVE_VMGETINFO, [Define to 1 if you have the 'vmgetinfo' function in libperfstat])
|
||||
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
|
||||
AC_CHECK_LIB(perfstat, vmgetinfo,
|
||||
AC_DEFINE(HAVE_VMGETINFO, 1,
|
||||
[Define to 1 if you have the 'vmgetinfo' function in libperfstat]))
|
||||
|
||||
dnl Solaris
|
||||
AC_CHECK_LIB(kstat, kstat_open)
|
||||
AC_CHECK_FUNCS(getloadavg swapctl)
|
||||
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
|
||||
case "$host_os" in
|
||||
solaris*)
|
||||
AC_CHECK_LIB(kstat, kstat_open)
|
||||
AC_CHECK_FUNCS(getloadavg swapctl)
|
||||
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
|
||||
|
||||
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 Some versions of Solaris require -lelf for -lkvm
|
||||
case $host_os in
|
||||
solaris[[8-9]] | solaris2.[[0-9]].*)
|
||||
AC_CHECK_LIB(kvm, kvm_open,[
|
||||
LIBS="-lkvm $LIBS"
|
||||
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
|
||||
AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
|
||||
[ac_save_LIBS="$LIBS"
|
||||
LIBS="-lkvm -lelf $LIBS"
|
||||
AC_TRY_LINK([char kvm_open();], [kvm_open()],
|
||||
ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
|
||||
LIBS="$ac_save_LIBS"
|
||||
])
|
||||
if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
LIBS="-lkvm -lelf $LIBS"
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
])
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl For DEC OSF1
|
||||
AC_CHECK_LIB(mach, vm_statistics)
|
||||
@@ -225,7 +192,7 @@ CFLAGS=$saved_CFLAGS
|
||||
AC_CHECK_FUNC(socket,
|
||||
[AC_CHECK_HEADER(netinet/in.h,
|
||||
[AC_CHECK_HEADER(arpa/inet.h, [
|
||||
AC_DEFINE(HAVE_SOCKETS)
|
||||
AC_DEFINE(HAVE_SOCKETS, 1, [Define if BSD sockets are supported])
|
||||
AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
|
||||
AC_TRY_LINK([
|
||||
#include <sys/types.h>
|
||||
@@ -233,7 +200,7 @@ AC_CHECK_FUNC(socket,
|
||||
#include <sys/un.h>
|
||||
],
|
||||
[static struct sockaddr_un x; x.sun_len = 1;],
|
||||
[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)],
|
||||
[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un has a sun_len member])],
|
||||
[AC_MSG_RESULT(no)])])])])
|
||||
|
||||
dnl Checks for library functions.
|
||||
@@ -243,13 +210,15 @@ AC_TYPE_SIGNAL
|
||||
AC_FUNC_STRFTIME
|
||||
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
|
||||
|
||||
ALL_LINGUAS="am ar az be bg bn ca cs cy da de el es et fa fi fr ga gl he hi hr hu id it ja ko lt lv mk ml mn ms nl nn no pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta tr uk vi zh_CN zh_TW"
|
||||
IT_PROG_INTLTOOL([0.35.0])
|
||||
|
||||
GETTEXT_PACKAGE=libgtop-2.0
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
|
||||
[Define to the gettext package used by the library])
|
||||
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
GLIB_DEFINE_LOCALEDIR([GTOPLOCALEDIR])
|
||||
|
||||
AC_PATH_XTRA
|
||||
|
||||
@@ -276,7 +245,7 @@ test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no)
|
||||
test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no, $X_LIBS) }
|
||||
test -z "$with_xauth" && with_xauth=yes
|
||||
if test "$with_xauth" = "yes"; then
|
||||
AC_DEFINE(HAVE_XAUTH)
|
||||
AC_DEFINE(HAVE_XAUTH, 1, [Define if Xauth is supported])
|
||||
XE_SPACE(libs_xauth, $X_LIBS -lXau)
|
||||
fi
|
||||
CPPFLAGS="$saved_CPPFLAGS"
|
||||
@@ -286,8 +255,15 @@ dnl For diskusage stuff
|
||||
GNOME_FILEUTILS_CHECKS
|
||||
|
||||
dnl Debugging
|
||||
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],AC_DEFINE(LIBGTOP_ENABLE_DEBUG),)
|
||||
AC_ARG_ENABLE(fatal-warnings, [ --enable-fatal-warnings make all warnings fatal [debug=no]],AC_DEFINE(LIBGTOP_FATAL_WARNINGS),)
|
||||
AC_ARG_ENABLE(debug,
|
||||
AS_HELP_STRING([--enable-debug],
|
||||
[Turn on debugging @<:@default=no@:>@]),
|
||||
AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 1, [Define to enable debugging]))
|
||||
AC_ARG_ENABLE(fatal-warnings,
|
||||
AS_HELP_STRING([--enable-fatal-warnings],
|
||||
[Make all warnings fatal @<:@debug=no@:>@]),
|
||||
AC_DEFINE(LIBGTOP_FATAL_WARNINGS, 1,
|
||||
[Define to enable fatal warnings]))
|
||||
|
||||
dnl These definitions are expanded in make.
|
||||
LIBGTOP_LIBS='-L$(libdir)'
|
||||
@@ -297,10 +273,6 @@ if test x$libgtop_use_machine_h = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_GLIBTOP_MACHINE_H"
|
||||
fi
|
||||
|
||||
if test x$build_inodedb = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DGLIBTOP_INODEDB"
|
||||
fi
|
||||
|
||||
if test x$libgtop_smp = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SMP"
|
||||
fi
|
||||
@@ -311,8 +283,14 @@ fi
|
||||
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS $GLIB_CFLAGS"
|
||||
|
||||
LIBGTOP_BINDIR='$(bindir)'
|
||||
LIBGTOP_SERVER='$(bindir)/libgtop_server2'
|
||||
libgtop_save_prefix="$prefix"
|
||||
libgtop_save_exec_prefix="$exec_prefix"
|
||||
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
||||
test "x$exec_prefix" = xNONE && exec_prefix=$prefix
|
||||
LIBGTOP_BINDIR=`eval echo "${bindir}"`
|
||||
LIBGTOP_SERVER=`eval echo "${bindir}/libgtop_server2"`
|
||||
prefix="$libgtop_save_prefix"
|
||||
exec_prefix="$libgtop_save_exec_prefix"
|
||||
|
||||
sysdeps_dir="$libgtop_sysdeps_dir"
|
||||
AC_SUBST(sysdeps_dir)
|
||||
@@ -323,21 +301,45 @@ else
|
||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $libs_xauth"
|
||||
fi
|
||||
|
||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
|
||||
LIBGTOP_EXTRA_LIBS="$GLIB_LIBS $LIBGTOP_EXTRA_LIBS"
|
||||
|
||||
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS"
|
||||
|
||||
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_NAMES_LIBS"
|
||||
|
||||
LIBGTOP_NAMES_INCS="$LIBGTOP_INCS -DGLIBTOP_NAMES"
|
||||
|
||||
machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir"
|
||||
|
||||
AC_SUBST(machine_incs)
|
||||
|
||||
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -DGLIBTOP_NAMES -I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $CFLAGS $X_CFLAGS "'-DGTOPLOCALEDIR=\"$(datadir)/locale\" -DLIBGTOP_VERSION=\"'"$LIBGTOP_VERSION"'\" -DLIBGTOP_SERVER_VERSION=\"'"$LIBGTOP_SERVER_VERSION"'\" -DLIBGTOP_VERSION_CODE='$LIBGTOP_VERSION_CODE' -DLIBGTOP_SERVER=\"'"$LIBGTOP_SERVER"'\"'
|
||||
if test "$GCC" = "yes" ; then
|
||||
CFLAGS="\
|
||||
-Winline \
|
||||
-Wall \
|
||||
-std=gnu89 \
|
||||
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
|
||||
-Wnested-externs -Wpointer-arith \
|
||||
-Wcast-align -Wsign-compare \
|
||||
$CFLAGS"
|
||||
fi
|
||||
|
||||
INCLUDES="-I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $X_CFLAGS"
|
||||
|
||||
# Add various defines to the config.h file ...
|
||||
AH_VERBATIM([_GNU_SOURCE],
|
||||
[/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# define _GNU_SOURCE
|
||||
#endif])
|
||||
AC_DEFINE([_IN_LIBGTOP], 1,
|
||||
[Note that we are building libgtop rather than using it])
|
||||
AC_DEFINE([LIBGTOP_VERSION], ["libgtop_version"],
|
||||
[The libgtop version number])
|
||||
AC_DEFINE([LIBGTOP_SERVER_VERSION], ["libgtop_server_version"],
|
||||
[The libgtop server version])
|
||||
AC_DEFINE([LIBGTOP_VERSION_CODE], [libgtop_version_code],
|
||||
[The libgtop version number as an integer])
|
||||
AC_DEFINE_UNQUOTED([LIBGTOP_SERVER], ["$LIBGTOP_SERVER"],
|
||||
[The path to the libgtop server])
|
||||
|
||||
AC_SUBST(INCLUDES)
|
||||
|
||||
@@ -345,8 +347,6 @@ AC_SUBST(LIBGTOP_EXTRA_LIBS)
|
||||
AC_SUBST(GLIB_LIBS)
|
||||
AC_SUBST(LIBGTOP_LIBS)
|
||||
AC_SUBST(LIBGTOP_INCS)
|
||||
AC_SUBST(LIBGTOP_NAMES_LIBS)
|
||||
AC_SUBST(LIBGTOP_NAMES_INCS)
|
||||
AC_SUBST(LIBGTOP_BINDIR)
|
||||
AC_SUBST(LIBGTOP_SERVER)
|
||||
|
||||
@@ -360,7 +360,9 @@ fi
|
||||
AC_SUBST(sysdeps_suid_lib)
|
||||
AC_SUBST(server_programs)
|
||||
|
||||
AC_OUTPUT([
|
||||
GTK_DOC_CHECK(1.4)
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
libgtop.spec
|
||||
po/Makefile.in
|
||||
@@ -369,21 +371,25 @@ include/Makefile
|
||||
include/glibtop/Makefile
|
||||
sysdeps/Makefile
|
||||
sysdeps/common/Makefile
|
||||
sysdeps/names/Makefile
|
||||
sysdeps/stub/Makefile
|
||||
sysdeps/stub_suid/Makefile
|
||||
sysdeps/sun4/Makefile
|
||||
sysdeps/osf1/Makefile
|
||||
sysdeps/linux/Makefile
|
||||
sysdeps/kernel/Makefile
|
||||
sysdeps/freebsd/Makefile
|
||||
sysdeps/solaris/Makefile
|
||||
sysdeps/aix/Makefile
|
||||
sysdeps/bsd/Makefile
|
||||
sysdeps/darwin/Makefile
|
||||
src/Makefile
|
||||
src/daemon/Makefile
|
||||
src/inodedb/Makefile
|
||||
lib/Makefile
|
||||
examples/Makefile
|
||||
doc/Makefile
|
||||
doc/reference/Makefile
|
||||
doc/reference/version.xml
|
||||
libgtop-2.0.pc
|
||||
libgtopconfig.h
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
||||
|
@@ -1,10 +1,9 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
This file is part of LibGTop 2.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
Contributed by Benoît Dejean <TazForEver@dlfp.org>, 2004.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
|
9
debian/.cvsignore
vendored
9
debian/.cvsignore
vendored
@@ -1,9 +0,0 @@
|
||||
control
|
||||
rules
|
||||
build
|
||||
tmp
|
||||
*.postinst
|
||||
*.debhelper
|
||||
*.files
|
||||
files
|
||||
substvars
|
3
debian/libgtop-dev.files.in
vendored
3
debian/libgtop-dev.files.in
vendored
@@ -1,17 +1,14 @@
|
||||
@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
|
||||
|
@@ -1,10 +0,0 @@
|
||||
texinfo.tex
|
||||
*.info
|
||||
Makefile.in
|
||||
Makefile
|
||||
*.log *.toc *.dvi *.aux *.cp *.fn *.vr *.tp *.ky *.pg
|
||||
*.ps
|
||||
auto-macros.texi
|
||||
version.texi
|
||||
stamp-vti
|
||||
*.html *.pdf
|
@@ -1,3 +1,36 @@
|
||||
2007-02-15 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* reference/Makefile.am:
|
||||
|
||||
Fixed distcheck.
|
||||
|
||||
2006-02-21 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* reference.texi: Fixed glibtop_get_proc_state doc.
|
||||
Patch by Emil Nowak <emil5@go2.pl>.
|
||||
|
||||
2005-01-03 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* reference.texi: Updated.
|
||||
|
||||
2004-12-04 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* reference.texi: Updated.
|
||||
|
||||
2004-08-03 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* reference.texi: Updated.
|
||||
|
||||
2004-07-07 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* reference.texi: updated.
|
||||
Added glibtop_get_proc_argv.
|
||||
Added glibtop_fsusage.block_size.
|
||||
|
||||
2004-03-05 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* reference.texi: update for new API
|
||||
|
||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* reference.texi: s/u_int64_t/guint64/
|
||||
|
@@ -1,40 +1,8 @@
|
||||
SUBDIRS = reference
|
||||
|
||||
info_TEXINFOS = libgtop2.texi
|
||||
|
||||
libgtop2_TEXINFOS = libgtop2.texi about.texi reference.texi \
|
||||
auto-macros.texi version.texi main.texi \
|
||||
white-paper.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_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_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
|
||||
AM_MAKEINFOFLAGS = -I $(libgtop_top_builddir)/doc
|
||||
|
@@ -1,12 +0,0 @@
|
||||
@c LibGTop major, minor and micro version.
|
||||
@set LIBGTOP_MAJOR_VERSION %LIBGTOP_MAJOR_VERSION%
|
||||
@set LIBGTOP_MINOR_VERSION %LIBGTOP_MINOR_VERSION%
|
||||
@set LIBGTOP_MICRO_VERSION %LIBGTOP_MICRO_VERSION%
|
||||
|
||||
@c LibGTop version and numerical version code ("1.234.567" -> 1234567).
|
||||
@set LIBGTOP_VERSION "%LIBGTOP_VERSION%"
|
||||
@set LIBGTOP_VERSION_CODE %LIBGTOP_VERSION_CODE%
|
||||
|
||||
@c LibGTop server version, increased each time the protocol changes.
|
||||
@set LIBGTOP_SERVER_VERSION %LIBGTOP_SERVER_VERSION%
|
||||
|
@@ -5,7 +5,6 @@
|
||||
@setchapternewpage odd
|
||||
@c %**end of header
|
||||
|
||||
@include auto-macros.texi
|
||||
@include version.texi
|
||||
|
||||
@ifinfo
|
||||
|
@@ -56,18 +56,19 @@ struct _glibtop_cpu
|
||||
nice,
|
||||
sys,
|
||||
idle,
|
||||
iowait,
|
||||
irq,
|
||||
softirq,
|
||||
frequency,
|
||||
xcpu_total [GLIBTOP_NCPU],
|
||||
xcpu_user [GLIBTOP_NCPU],
|
||||
xcpu_nice [GLIBTOP_NCPU],
|
||||
xcpu_sys [GLIBTOP_NCPU],
|
||||
@ifset LIBGTOP-1-1
|
||||
xcpu_idle [GLIBTOP_NCPU],
|
||||
xcpu_iowait [GLIBTOP_NCPU],
|
||||
xcpu_irq [GLIBTOP_NCPU],
|
||||
xcpu_softirq [GLIBTOP_NCPU],
|
||||
xcpu_flags;
|
||||
@end ifset
|
||||
@ifclear LIBGTOP-1-1
|
||||
xcpu_idle [GLIBTOP_NCPU];
|
||||
@end ifclear
|
||||
@};
|
||||
@end cartouche
|
||||
@end example
|
||||
@@ -92,25 +93,33 @@ Number of clock ticks the system spent in system mode.
|
||||
@item idle
|
||||
Number of clock ticks the system spent in the idle task.
|
||||
|
||||
@item iowait
|
||||
Number of clock ticks the system spent waiting for I/O to complete.
|
||||
|
||||
@item irq
|
||||
Number of clock ticks the system spent servicing interrupts.
|
||||
|
||||
@item softirq
|
||||
Number of clock ticks the system spent servicing softirqs.
|
||||
|
||||
@item frequency
|
||||
Tick frequency (default is 100).
|
||||
|
||||
@end table
|
||||
|
||||
The @samp{xcpu_} values are for SMP systems - they are the same than
|
||||
@code{total}, @code{user}, @code{nice}, @code{sys} and @code{idle}
|
||||
@code{total}, @code{user}, @code{nice}, @code{sys}, @code{idle},
|
||||
@code{iowait}, @code{irq} and @code{softirq}
|
||||
except that they are arrays of @code{GLIBTOP_NCPU} (defined in
|
||||
@file{<glibtop/limits.h>}) elements and contain one value for each CPU
|
||||
@file{<glibtop/cpu.h>}) elements and contain one value for each CPU
|
||||
in the system.
|
||||
|
||||
@ifset LIBGTOP-1-1
|
||||
@table @code
|
||||
@item xcpu_flags
|
||||
This is interpreted as a bit-field: on systems like Solaris, not all CPUs
|
||||
need to be running all the time, so we set the corresponding bit for each
|
||||
CPU that is currently running.
|
||||
@end table
|
||||
@end ifset
|
||||
|
||||
Please note that all of the cpu values are absolute values measured in
|
||||
certain units (to get seconds, divide them by @code{frequency}) since system
|
||||
@@ -359,11 +368,11 @@ Library function @code{glibtop_get_proclist}:
|
||||
@cartouche
|
||||
unsigned *
|
||||
glibtop_get_proclist (glibtop_proclist *buf,
|
||||
int64_t which, int64_t arg);
|
||||
gint64 which, gint64 arg);
|
||||
|
||||
unsigned *
|
||||
glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
|
||||
int64_t which, int64_t arg);
|
||||
gint64 which, gint64 arg);
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
@@ -484,7 +493,7 @@ glibtop_get_proc_state_l (glibtop *server, glibtop_proc_state *buf,
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
Declaration of @code{glibtop_proc_state} in @file{<glibtop/proc_state.h>}:
|
||||
Declaration of @code{glibtop_proc_state} in @file{<glibtop/procstate.h>}:
|
||||
|
||||
@example
|
||||
@cartouche
|
||||
@@ -572,6 +581,7 @@ There are some constants for the @code{state} field:
|
||||
#define GLIBTOP_PROCESS_ZOMBIE 8
|
||||
#define GLIBTOP_PROCESS_STOPPED 16
|
||||
#define GLIBTOP_PROCESS_SWAPPING 32
|
||||
#define GLIBTOP_PROCESS_DEAD 64
|
||||
@end cartouche
|
||||
@end example
|
||||
@end ifset
|
||||
@@ -670,7 +680,7 @@ Standard unix nice level of process.
|
||||
Number of additional process groups.
|
||||
@item groups
|
||||
Array of additional process groups@*
|
||||
(@code{GLIBTOP_MAX_GROUPS} is defined in @file{<glibtop/limits.h>}).
|
||||
(@code{GLIBTOP_MAX_GROUPS} is defined in @file{<glibtop/procuid.h>}).
|
||||
@end table
|
||||
|
||||
@page
|
||||
@@ -717,7 +727,7 @@ Number of pages of virtual memory.
|
||||
@item resident
|
||||
Number of residnet set (non-swapped) pages.
|
||||
@item share
|
||||
Number of pages of shared (mmap'd) memory.
|
||||
Number of pages of shared (mmap\'d) memory.
|
||||
@item rss
|
||||
Number of pages the process has in real memory, minus 3 for administrative
|
||||
purposes.
|
||||
@@ -830,6 +840,7 @@ struct _glibtop_proc_time
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
|
||||
@table @code
|
||||
@item start_time
|
||||
Start time of process in seconds since the epoch
|
||||
@@ -856,6 +867,18 @@ SMP user-mode CPU time accumulated by process
|
||||
SMP kernel-mode CPU time accumulated by process
|
||||
@end table
|
||||
|
||||
|
||||
Please note that under Linux, @code{start_time} value may be strange.
|
||||
Linux kernel defines @code{INITIAL_JIFFIES} which implies a time
|
||||
shift. Because @code{INITIAL_JIFFIES} is not user-space defined, we
|
||||
cannot use it to compute accurate @code{start_time}. On Linux2.6,
|
||||
@code{INITIAL_JIFFIES} is 300 so @code{start_time} is always 3s
|
||||
different from real start time of the given process. You may also get
|
||||
shift results if your system clock is not synchronised with your
|
||||
hardware clock. See @samp{man hwclock}.
|
||||
|
||||
|
||||
|
||||
@page
|
||||
@node glibtop_proc_signal, glibtop_proc_kernel, glibtop_proc_time, System Dependent
|
||||
@subsection Process Signal information
|
||||
@@ -1037,16 +1060,7 @@ struct _glibtop_proc_segment
|
||||
dirty_size,
|
||||
start_code,
|
||||
end_code,
|
||||
start_data,
|
||||
end_data,
|
||||
start_brk,
|
||||
end_brk,
|
||||
start_stack,
|
||||
start_mmap,
|
||||
arg_start,
|
||||
arg_end,
|
||||
env_start,
|
||||
env_end;
|
||||
start_stack;
|
||||
@};
|
||||
@end cartouche
|
||||
@end example
|
||||
@@ -1079,7 +1093,7 @@ Library function @code{glibtop_get_proc_args}:
|
||||
@example
|
||||
@cartouche
|
||||
char *
|
||||
glibtop_get_proc_args_l (glibtop_proc_args *buf, pid_t pid,
|
||||
glibtop_get_proc_args(glibtop_proc_args *buf, pid_t pid,
|
||||
unsigned max_len);
|
||||
|
||||
char *
|
||||
@@ -1110,6 +1124,30 @@ the lenght of this string is returned in the @code{size} field.
|
||||
|
||||
Remember to @code{g_free} the returned string to avoid a memory leak.
|
||||
|
||||
@strong{New functions}
|
||||
|
||||
@example
|
||||
@cartouche
|
||||
char **
|
||||
glibtop_get_proc_argv(glibtop_proc_args *buf, pid_t pid,
|
||||
unsigned max_len);
|
||||
|
||||
char **
|
||||
glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf,
|
||||
pid_t pid, unsigned max_len);
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
Returns a NULL-terminated array of strings with all arguments of
|
||||
process @code{pid} (up to @code{max_len} characters, use zero to get
|
||||
all arguments). @code{glibtop_get_proc_argv()} and
|
||||
@code{glibtop_get_proc_argv_l()} are wrappers to
|
||||
@code{glibtop_get_proc_args()} and @code{glibtop_get_proc_args_l()}
|
||||
that return process' arguments like the C @code{argv}.
|
||||
|
||||
Remember to @code{g_strfreev} the returned array to avoid a memory
|
||||
leak.
|
||||
|
||||
@page
|
||||
@node glibtop_proc_map, glibtop_netload, glibtop_proc_args, System Dependent
|
||||
@subsection Process Memory Maps
|
||||
@@ -1175,13 +1213,13 @@ fields are valid:
|
||||
|
||||
@example
|
||||
@cartouche
|
||||
#define GLIBTOP_MAP_ENTRY_START 1
|
||||
#define GLIBTOP_MAP_ENTRY_END 2
|
||||
#define GLIBTOP_MAP_ENTRY_OFFSET 3
|
||||
#define GLIBTOP_MAP_ENTRY_PERM 4
|
||||
#define GLIBTOP_MAP_ENTRY_INODE 5
|
||||
#define GLIBTOP_MAP_ENTRY_DEVICE 6
|
||||
#define GLIBTOP_MAP_ENTRY_FILENAME 7
|
||||
#define GLIBTOP_MAP_ENTRY_START 0
|
||||
#define GLIBTOP_MAP_ENTRY_END 1
|
||||
#define GLIBTOP_MAP_ENTRY_OFFSET 2
|
||||
#define GLIBTOP_MAP_ENTRY_PERM 3
|
||||
#define GLIBTOP_MAP_ENTRY_INODE 4
|
||||
#define GLIBTOP_MAP_ENTRY_DEVICE 5
|
||||
#define GLIBTOP_MAP_ENTRY_FILENAME 6
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
@@ -1446,13 +1484,7 @@ struct _glibtop_mountentry
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
@ifset LIBGTOP-1-1
|
||||
@code{GLIBTOP_MOUNTENTRY_LEN} is defined in @file{<glibtop/limits.h>}.
|
||||
@end ifset
|
||||
@ifclear LIBGTOP-1-1
|
||||
@code{GLIBTOP_MOUNTENTRY_LEN} is defined in @file{<glibtop.h>}
|
||||
(this was moved to @file{<glibtop/limits.h>} in LibGTop 1.1.0).
|
||||
@end ifclear
|
||||
@code{GLIBTOP_MOUNTENTRY_LEN} is defined in @file{<glibtop.h>}.
|
||||
|
||||
@table @code
|
||||
@item devname
|
||||
@@ -1494,6 +1526,9 @@ struct _glibtop_fsusage
|
||||
bavail,
|
||||
files,
|
||||
ffree;
|
||||
guint32 block_size;
|
||||
guint64 read,
|
||||
write;
|
||||
@};
|
||||
@end cartouche
|
||||
@end example
|
||||
@@ -1509,10 +1544,14 @@ Free blocks available to ordinary users.
|
||||
Total file nodes.
|
||||
@item ffree
|
||||
Free file nodes.
|
||||
@item block_size
|
||||
Block size in bytes.
|
||||
@item read
|
||||
Total blocks read.
|
||||
@item write
|
||||
Total blocks written.
|
||||
@end table
|
||||
|
||||
Blocks are usually 512 bytes.
|
||||
|
||||
@page
|
||||
@node Library Functions, , Common Functions, Reference Manual
|
||||
@section Library Functions
|
||||
|
59
doc/reference/Makefile.am
Normal file
59
doc/reference/Makefile.am
Normal file
@@ -0,0 +1,59 @@
|
||||
AUTOMAKE_OPTIONS = 1.6
|
||||
## Process this file with automake to produce Makefile.in
|
||||
# The name of the module, e.g. 'glib'.
|
||||
DOC_MODULE=libgtop
|
||||
|
||||
# The top-level SGML file. You can change this if you want to.
|
||||
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml
|
||||
|
||||
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
|
||||
# SCANGOBJ_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-scan.
|
||||
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
|
||||
SCAN_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-mkdb.
|
||||
# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
|
||||
MKDB_OPTIONS=--sgml-mode --output-format=xml --source-dir=$(top_srcdir)/sysdeps/common
|
||||
|
||||
# The directory containing the source code. Relative to $(srcdir).
|
||||
# gtk-doc will search all .c & .h files beneath here for inline comments
|
||||
# documenting the functions and macros.
|
||||
# e.g. DOC_SOURCE_DIR=../../../gtk
|
||||
DOC_SOURCE_DIR=$(top_srcdir)/include/glibtop
|
||||
|
||||
# Used for dependencies. The docs will be rebuilt if any of these change.
|
||||
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
|
||||
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
|
||||
HFILE_GLOB=$(top_srcdir)/include/glibtop/*.h
|
||||
CFILE_GLOB=$(top_srcdir)/sysdeps/common/*.c
|
||||
|
||||
# Header files to ignore when scanning.
|
||||
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
|
||||
IGNORE_HFILES=error.h global.h gnuserv.h init_hooks.h write.h read.h read_data.h config.h libgtopconfig.h
|
||||
|
||||
EXTRA_HFILES=$(top_srcdir)/glibtop.h
|
||||
|
||||
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
|
||||
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
||||
content_files=version.xml
|
||||
|
||||
# Images to copy into HTML directory.
|
||||
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
|
||||
HTML_IMAGES=
|
||||
|
||||
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
|
||||
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
|
||||
# signals and properties.
|
||||
# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
||||
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
||||
INCLUDES=
|
||||
GTKDOC_LIBS=
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
||||
# Other files to distribute
|
||||
# e.g. EXTRA_DIST += version.xml.in
|
||||
EXTRA_DIST += version.xml.in
|
206
doc/reference/libgtop-docs.xml
Normal file
206
doc/reference/libgtop-docs.xml
Normal file
@@ -0,0 +1,206 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
||||
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<bookinfo>
|
||||
<title>Libgtop Reference Manual</title>
|
||||
<releaseinfo>for libgtop <xi:include href="version.xml"/></releaseinfo>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Martin </firstname>
|
||||
<surname>Baulig</surname>
|
||||
<affiliation>
|
||||
<address>
|
||||
<email>martin@home-of-linux.org</email>
|
||||
</address>
|
||||
</affiliation>
|
||||
</author>
|
||||
<author>
|
||||
<firstname>Germán</firstname>
|
||||
<surname>Poó-Caamaño</surname>
|
||||
<affiliation>
|
||||
<address>
|
||||
<email>gpoo@ubiobio.cl</email>
|
||||
</address>
|
||||
</affiliation>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<legalnotice>
|
||||
<para>Permission is granted to copy, distribute and/or modify
|
||||
this document under the terms of the <citetitle>GNU Free
|
||||
Documentation License</citetitle>, Version 1.1 or any later
|
||||
version published by the Free Software Foundation with no
|
||||
Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
||||
Texts. You may obtain a copy of the <citetitle>GNU Free
|
||||
Documentation License</citetitle> from the Free Software
|
||||
Foundation by visiting <ulink type="http"
|
||||
url="http://www.fsf.org">their Web site</ulink> or by writing
|
||||
to: Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.</para>
|
||||
|
||||
<para>Many of the names used by companies to distinguish their
|
||||
products and services are claimed as trademarks. Where those
|
||||
names appear in any GNOME documentation, and those trademarks
|
||||
are made aware to the members of the GNOME Documentation
|
||||
Project, the names have been printed in caps or initial
|
||||
caps.</para>
|
||||
</legalnotice>
|
||||
|
||||
<abstract>
|
||||
<para>
|
||||
LibGTop is a library to get system specific data such as CPU and
|
||||
Memory Usage and information about running Processes.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>This manual documents the interfaces of the libgtop
|
||||
library and has some short notes to help get you up to speed
|
||||
with using the library.</para>
|
||||
</abstract>
|
||||
</bookinfo>
|
||||
|
||||
<!--FIXME: It is missing the rest of about.texi -->
|
||||
|
||||
<chapter id="libgtop-white-paper">
|
||||
<title>White paper</title>
|
||||
|
||||
<sect1 id="libgtop-white-paper-introduction">
|
||||
<title>Introduction</title>
|
||||
<para>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.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
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.</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
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).</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
Linux has a very nice @file{/proc} filesystem, but reading and parsing
|
||||
@file{/proc} is very slow and inefficient.</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
Solaris is a bit better, but you still need to be in the @code{sys} group or
|
||||
even root to get some data.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
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.</para>
|
||||
|
||||
<para>
|
||||
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.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="libgtop-white-paper-overview">
|
||||
<title>Overview</title>
|
||||
<para>This section should give you a short overview on how LibGTop
|
||||
was developed, which things needed to be considered and how it
|
||||
works.</para>
|
||||
|
||||
<sect2 id="libgtop-white-paper-overview-design">
|
||||
<title>Interface Design: Things that need to be considered</title>
|
||||
<para>
|
||||
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.</para>
|
||||
|
||||
<para>
|
||||
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.</para>
|
||||
|
||||
<para>
|
||||
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.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="libgtop-white-paper-overview-server">
|
||||
<title>Server Implementation: The LibGTop "server"</title>
|
||||
<para>
|
||||
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.</para>
|
||||
|
||||
<para>
|
||||
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.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
</chapter>
|
||||
|
||||
<chapter id="libgtop-lib">
|
||||
<title>Libgtop Library Reference</title>
|
||||
|
||||
<para>This section contains the API reference for libgtop. All
|
||||
the public interfaces are documented here.</para>
|
||||
|
||||
<xi:include href="xml/glibtop.xml"/>
|
||||
<xi:include href="xml/close.xml"/>
|
||||
<xi:include href="xml/command.xml"/>
|
||||
<xi:include href="xml/glibtop-server.xml"/>
|
||||
<xi:include href="xml/netload.xml"/>
|
||||
<xi:include href="xml/ppp.xml"/>
|
||||
<xi:include href="xml/shm_limits.xml"/>
|
||||
<xi:include href="xml/uptime.xml"/>
|
||||
<xi:include href="xml/netlist.xml"/>
|
||||
<xi:include href="xml/open.xml"/>
|
||||
<xi:include href="xml/parameter.xml"/>
|
||||
<xi:include href="xml/procargs.xml"/>
|
||||
<xi:include href="xml/procmem.xml"/>
|
||||
<xi:include href="xml/procopenfiles.xml"/>
|
||||
<xi:include href="xml/procsegment.xml"/>
|
||||
<xi:include href="xml/procsignal.xml"/>
|
||||
<xi:include href="xml/sysdeps.xml"/>
|
||||
<xi:include href="xml/procstate.xml"/>
|
||||
<xi:include href="xml/procuid.xml"/>
|
||||
<xi:include href="xml/proctime.xml"/>
|
||||
<xi:include href="xml/signal.xml"/>
|
||||
<xi:include href="xml/procmap.xml"/>
|
||||
<xi:include href="xml/sysinfo.xml"/>
|
||||
<xi:include href="xml/union.xml"/>
|
||||
<xi:include href="xml/version.xml"/>
|
||||
<xi:include href="xml/proclist.xml"/>
|
||||
<xi:include href="xml/sem_limits.xml"/>
|
||||
<xi:include href="xml/prockernel.xml"/>
|
||||
<xi:include href="xml/fsusage.xml"/>
|
||||
<xi:include href="xml/loadavg.xml"/>
|
||||
<xi:include href="xml/mem.xml"/>
|
||||
<xi:include href="xml/mountlist.xml"/>
|
||||
<xi:include href="xml/msg_limits.xml"/>
|
||||
<xi:include href="xml/cpu.xml"/>
|
||||
<xi:include href="xml/swap.xml"/>
|
||||
</chapter>
|
||||
</book>
|
0
doc/reference/libgtop-overrides.txt
Normal file
0
doc/reference/libgtop-overrides.txt
Normal file
736
doc/reference/libgtop-sections.txt
Normal file
736
doc/reference/libgtop-sections.txt
Normal file
@@ -0,0 +1,736 @@
|
||||
<INCLUDE>glibtop.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>glibtop</FILE>
|
||||
<TITLE>GlibTop</TITLE>
|
||||
GLIBTOP_MOUNTENTRY_LEN
|
||||
LIBGTOP_CHECK_VERSION
|
||||
glibtop
|
||||
glibtop_global_server
|
||||
glibtop_init
|
||||
glibtop_init_r
|
||||
glibtop_init_s
|
||||
glibtop_server_features
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/close.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>close</FILE>
|
||||
<TITLE>Close</TITLE>
|
||||
glibtop_close
|
||||
glibtop_close_r
|
||||
glibtop_close_s
|
||||
glibtop_close_p
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/command.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>command</FILE>
|
||||
<TITLE>Command</TITLE>
|
||||
GLIBTOP_CMND_QUIT
|
||||
GLIBTOP_CMND_SYSDEPS
|
||||
GLIBTOP_CMND_CPU
|
||||
GLIBTOP_CMND_MEM
|
||||
GLIBTOP_CMND_SWAP
|
||||
GLIBTOP_CMND_UPTIME
|
||||
GLIBTOP_CMND_LOADAVG
|
||||
GLIBTOP_CMND_SHM_LIMITS
|
||||
GLIBTOP_CMND_MSG_LIMITS
|
||||
GLIBTOP_CMND_SEM_LIMITS
|
||||
GLIBTOP_CMND_PROCLIST
|
||||
GLIBTOP_CMND_PROC_STATE
|
||||
GLIBTOP_CMND_PROC_UID
|
||||
GLIBTOP_CMND_PROC_MEM
|
||||
GLIBTOP_CMND_PROC_TIME
|
||||
GLIBTOP_CMND_PROC_SIGNAL
|
||||
GLIBTOP_CMND_PROC_KERNEL
|
||||
GLIBTOP_CMND_PROC_SEGMENT
|
||||
GLIBTOP_CMND_PROC_ARGS
|
||||
GLIBTOP_CMND_PROC_MAP
|
||||
GLIBTOP_CMND_MOUNTLIST
|
||||
GLIBTOP_CMND_FSUSAGE
|
||||
GLIBTOP_CMND_NETLOAD
|
||||
GLIBTOP_CMND_PPP
|
||||
GLIBTOP_CMND_NETLIST
|
||||
GLIBTOP_CMND_PROC_OPEN_FILES
|
||||
GLIBTOP_MAX_CMND
|
||||
glibtop_command
|
||||
glibtop_response
|
||||
glibtop_response_union
|
||||
glibtop_call
|
||||
glibtop_call_l
|
||||
glibtop_call_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/glibtop-server.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>glibtop-server</FILE>
|
||||
<TITLE>GlibTop Server</TITLE>
|
||||
glibtop_server
|
||||
glibtop_server_info
|
||||
glibtop_closure
|
||||
glibtop_server_new
|
||||
glibtop_server_ref
|
||||
glibtop_server_unref
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/netload.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>netload</FILE>
|
||||
<TITLE>Net Load</TITLE>
|
||||
GLIBTOP_NETLOAD_IF_FLAGS
|
||||
GLIBTOP_NETLOAD_MTU
|
||||
GLIBTOP_NETLOAD_SUBNET
|
||||
GLIBTOP_NETLOAD_ADDRESS
|
||||
GLIBTOP_NETLOAD_PACKETS_IN
|
||||
GLIBTOP_NETLOAD_PACKETS_OUT
|
||||
GLIBTOP_NETLOAD_PACKETS_TOTAL
|
||||
GLIBTOP_NETLOAD_BYTES_IN
|
||||
GLIBTOP_NETLOAD_BYTES_OUT
|
||||
GLIBTOP_NETLOAD_BYTES_TOTAL
|
||||
GLIBTOP_NETLOAD_ERRORS_IN
|
||||
GLIBTOP_NETLOAD_ERRORS_OUT
|
||||
GLIBTOP_NETLOAD_ERRORS_TOTAL
|
||||
GLIBTOP_NETLOAD_COLLISIONS
|
||||
GLIBTOP_NETLOAD_ADDRESS6
|
||||
GLIBTOP_NETLOAD_PREFIX6
|
||||
GLIBTOP_NETLOAD_SCOPE6
|
||||
GLIBTOP_NETLOAD_HWADDRESS
|
||||
GLIBTOP_MAX_NETLOAD
|
||||
glibtop_netload
|
||||
glibtop_get_netload
|
||||
glibtop_get_netload_r
|
||||
glibtop_get_netload_l
|
||||
glibtop_init_netload_p
|
||||
glibtop_get_netload_p
|
||||
glibtop_init_netload_s
|
||||
glibtop_get_netload_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/ppp.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>ppp</FILE>
|
||||
<TITLE>PPP</TITLE>
|
||||
GLIBTOP_PPP_STATE
|
||||
GLIBTOP_PPP_BYTES_IN
|
||||
GLIBTOP_PPP_BYTES_OUT
|
||||
GLIBTOP_MAX_PPP
|
||||
glibtop_ppp
|
||||
glibtop_get_ppp
|
||||
glibtop_get_ppp_r
|
||||
glibtop_get_ppp_l
|
||||
glibtop_init_ppp_p
|
||||
glibtop_get_ppp_p
|
||||
glibtop_init_ppp_s
|
||||
glibtop_get_ppp_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/shm_limits.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>shm_limits</FILE>
|
||||
<TITLE>Shared Memory Limits</TITLE>
|
||||
GLIBTOP_IPC_SHMMAX
|
||||
GLIBTOP_IPC_SHMMIN
|
||||
GLIBTOP_IPC_SHMMNI
|
||||
GLIBTOP_IPC_SHMSEG
|
||||
GLIBTOP_IPC_SHMALL
|
||||
GLIBTOP_MAX_SHM_LIMITS
|
||||
glibtop_shm_limits
|
||||
glibtop_get_shm_limits
|
||||
glibtop_get_shm_limits_r
|
||||
glibtop_get_shm_limits_l
|
||||
glibtop_init_shm_limits_p
|
||||
glibtop_get_shm_limits_p
|
||||
glibtop_init_shm_limits_s
|
||||
glibtop_get_shm_limits_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/uptime.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>uptime</FILE>
|
||||
<TITLE>Uptime</TITLE>
|
||||
GLIBTOP_UPTIME_UPTIME
|
||||
GLIBTOP_UPTIME_IDLETIME
|
||||
GLIBTOP_UPTIME_BOOT_TIME
|
||||
GLIBTOP_MAX_UPTIME
|
||||
glibtop_uptime
|
||||
glibtop_get_uptime
|
||||
glibtop_get_uptime_r
|
||||
glibtop_get_uptime_l
|
||||
glibtop_init_uptime_p
|
||||
glibtop_get_uptime_p
|
||||
glibtop_init_uptime_s
|
||||
glibtop_get_uptime_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/netlist.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>netlist</FILE>
|
||||
<TITLE>Net List</TITLE>
|
||||
GLIBTOP_NETLIST_NUMBER
|
||||
GLIBTOP_MAX_NETLIST
|
||||
glibtop_netlist
|
||||
glibtop_get_netlist
|
||||
glibtop_get_netlist_r
|
||||
glibtop_get_netlist_l
|
||||
glibtop_init_netlist_p
|
||||
glibtop_get_netlist_p
|
||||
glibtop_init_netlist_s
|
||||
glibtop_get_netlist_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/open.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>open</FILE>
|
||||
GLIBTOP_INIT_NO_OPEN
|
||||
GLIBTOP_INIT_NO_INIT
|
||||
GLIBTOP_FEATURES_NO_SERVER
|
||||
GLIBTOP_FEATURES_EXCEPT
|
||||
GLIBTOP_METHOD_DIRECT
|
||||
GLIBTOP_METHOD_PIPE
|
||||
GLIBTOP_METHOD_INET
|
||||
GLIBTOP_METHOD_UNIX
|
||||
GLIBTOP_ERROR_METHOD_IGNORE
|
||||
GLIBTOP_ERROR_METHOD_WARN_ONCE
|
||||
GLIBTOP_ERROR_METHOD_WARN
|
||||
GLIBTOP_ERROR_METHOD_ABORT
|
||||
GLIBTOP_ERROR_METHOD_DEFAULT
|
||||
glibtop_open_l
|
||||
glibtop_init_p
|
||||
glibtop_open_p
|
||||
glibtop_open_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/parameter.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>parameter</FILE>
|
||||
GLIBTOP_PARAM_METHOD
|
||||
GLIBTOP_PARAM_FEATURES
|
||||
GLIBTOP_PARAM_COMMAND
|
||||
GLIBTOP_PARAM_HOST
|
||||
GLIBTOP_PARAM_PORT
|
||||
GLIBTOP_PARAM_ERROR_METHOD
|
||||
GLIBTOP_PARAM_REQUIRED
|
||||
glibtop_get_parameter
|
||||
glibtop_set_parameter
|
||||
glibtop_get_parameter_l
|
||||
glibtop_set_parameter_l
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procargs.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procargs</FILE>
|
||||
GLIBTOP_PROC_ARGS_SIZE
|
||||
GLIBTOP_MAX_PROC_ARGS
|
||||
glibtop_proc_args
|
||||
glibtop_get_proc_args_l
|
||||
glibtop_get_proc_args
|
||||
glibtop_get_proc_args_r
|
||||
glibtop_init_proc_args_p
|
||||
glibtop_get_proc_args_p
|
||||
glibtop_init_proc_args_s
|
||||
glibtop_get_proc_args_s
|
||||
glibtop_get_proc_argv_l
|
||||
glibtop_get_proc_argv
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procmem.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procmem</FILE>
|
||||
GLIBTOP_PROC_MEM_SIZE
|
||||
GLIBTOP_PROC_MEM_VSIZE
|
||||
GLIBTOP_PROC_MEM_RESIDENT
|
||||
GLIBTOP_PROC_MEM_SHARE
|
||||
GLIBTOP_PROC_MEM_RSS
|
||||
GLIBTOP_PROC_MEM_RSS_RLIM
|
||||
GLIBTOP_MAX_PROC_MEM
|
||||
glibtop_proc_mem
|
||||
glibtop_get_proc_mem
|
||||
glibtop_get_proc_mem_r
|
||||
glibtop_get_proc_mem_l
|
||||
glibtop_init_proc_mem_p
|
||||
glibtop_get_proc_mem_p
|
||||
glibtop_init_proc_mem_s
|
||||
glibtop_get_proc_mem_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procopenfiles.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procopenfiles</FILE>
|
||||
GLIBTOP_PROC_OPEN_FILES_NUMBER
|
||||
GLIBTOP_PROC_OPEN_FILES_TOTAL
|
||||
GLIBTOP_PROC_OPEN_FILES_SIZE
|
||||
GLIBTOP_MAX_PROC_OPEN_FILES
|
||||
GLIBTOP_FILE_ENTRY_FD
|
||||
GLIBTOP_FILE_ENTRY_NAME
|
||||
GLIBTOP_FILE_ENTRY_TYPE
|
||||
GLIBTOP_FILE_ENTRY_INETSOCKET_DST_HOST
|
||||
GLIBTOP_FILE_ENTRY_INETSOCKET_DST_PORT
|
||||
GLIBTOP_MAX_OPEN_FILE_ENTRY
|
||||
GLIBTOP_OPEN_FILENAME_LEN
|
||||
GLIBTOP_OPEN_DEST_HOST_LEN
|
||||
glibtop_open_files_entry
|
||||
glibtop_proc_open_files
|
||||
glibtop_get_proc_open_files
|
||||
glibtop_get_proc_open_files_r
|
||||
glibtop_get_proc_open_files_l
|
||||
glibtop_init_proc_open_files_p
|
||||
glibtop_get_proc_open_files_p
|
||||
glibtop_init_proc_open_files_s
|
||||
glibtop_get_proc_open_files_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procsegment.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procsegment</FILE>
|
||||
GLIBTOP_PROC_SEGMENT_TEXT_RSS
|
||||
GLIBTOP_PROC_SEGMENT_SHLIB_RSS
|
||||
GLIBTOP_PROC_SEGMENT_DATA_RSS
|
||||
GLIBTOP_PROC_SEGMENT_STACK_RSS
|
||||
GLIBTOP_PROC_SEGMENT_DIRTY_SIZE
|
||||
GLIBTOP_PROC_SEGMENT_START_CODE
|
||||
GLIBTOP_PROC_SEGMENT_END_CODE
|
||||
GLIBTOP_PROC_SEGMENT_START_STACK
|
||||
GLIBTOP_MAX_PROC_SEGMENT
|
||||
glibtop_proc_segment
|
||||
glibtop_get_proc_segment
|
||||
glibtop_get_proc_segment_r
|
||||
glibtop_get_proc_segment_l
|
||||
glibtop_init_proc_segment_p
|
||||
glibtop_get_proc_segment_p
|
||||
glibtop_init_proc_segment_s
|
||||
glibtop_get_proc_segment_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procsignal.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procsignal</FILE>
|
||||
GLIBTOP_PROC_SIGNAL_SIGNAL
|
||||
GLIBTOP_PROC_SIGNAL_BLOCKED
|
||||
GLIBTOP_PROC_SIGNAL_SIGIGNORE
|
||||
GLIBTOP_PROC_SIGNAL_SIGCATCH
|
||||
GLIBTOP_MAX_PROC_SIGNAL
|
||||
glibtop_proc_signal
|
||||
glibtop_get_proc_signal
|
||||
glibtop_get_proc_signal_r
|
||||
glibtop_get_proc_signal_l
|
||||
glibtop_init_proc_signal_p
|
||||
glibtop_get_proc_signal_p
|
||||
glibtop_init_proc_signal_s
|
||||
glibtop_get_proc_signal_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/sysdeps.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>sysdeps</FILE>
|
||||
GLIBTOP_SYSDEPS_FEATURES
|
||||
GLIBTOP_SYSDEPS_CPU
|
||||
GLIBTOP_SYSDEPS_MEM
|
||||
GLIBTOP_SYSDEPS_SWAP
|
||||
GLIBTOP_SYSDEPS_UPTIME
|
||||
GLIBTOP_SYSDEPS_LOADAVG
|
||||
GLIBTOP_SYSDEPS_SHM_LIMITS
|
||||
GLIBTOP_SYSDEPS_MSG_LIMITS
|
||||
GLIBTOP_SYSDEPS_SEM_LIMITS
|
||||
GLIBTOP_SYSDEPS_PROCLIST
|
||||
GLIBTOP_SYSDEPS_PROC_STATE
|
||||
GLIBTOP_SYSDEPS_PROC_UID
|
||||
GLIBTOP_SYSDEPS_PROC_MEM
|
||||
GLIBTOP_SYSDEPS_PROC_TIME
|
||||
GLIBTOP_SYSDEPS_PROC_SIGNAL
|
||||
GLIBTOP_SYSDEPS_PROC_KERNEL
|
||||
GLIBTOP_SYSDEPS_PROC_SEGMENT
|
||||
GLIBTOP_SYSDEPS_PROC_ARGS
|
||||
GLIBTOP_SYSDEPS_PROC_MAP
|
||||
GLIBTOP_SYSDEPS_MOUNTLIST
|
||||
GLIBTOP_SYSDEPS_FSUSAGE
|
||||
GLIBTOP_SYSDEPS_NETLOAD
|
||||
GLIBTOP_SYSDEPS_PPP
|
||||
GLIBTOP_SYSDEPS_NETLIST
|
||||
GLIBTOP_SYSDEPS_PROC_OPEN_FILES
|
||||
GLIBTOP_MAX_SYSDEPS
|
||||
GLIBTOP_SYSDEPS_ALL
|
||||
glibtop_sysdeps
|
||||
glibtop_get_sysdeps
|
||||
glibtop_get_sysdeps_r
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procstate.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procstate</FILE>
|
||||
GLIBTOP_PROC_STATE_CMD
|
||||
GLIBTOP_PROC_STATE_STATE
|
||||
GLIBTOP_PROC_STATE_UID
|
||||
GLIBTOP_PROC_STATE_GID
|
||||
GLIBTOP_PROC_STATE_RUID
|
||||
GLIBTOP_PROC_STATE_RGID
|
||||
GLIBTOP_PROC_STATE_HAS_CPU
|
||||
GLIBTOP_PROC_STATE_PROCESSOR
|
||||
GLIBTOP_PROC_STATE_LAST_PROCESSOR
|
||||
GLIBTOP_MAX_PROC_STATE
|
||||
GLIBTOP_PROCESS_RUNNING
|
||||
GLIBTOP_PROCESS_INTERRUPTIBLE
|
||||
GLIBTOP_PROCESS_UNINTERRUPTIBLE
|
||||
GLIBTOP_PROCESS_ZOMBIE
|
||||
GLIBTOP_PROCESS_STOPPED
|
||||
GLIBTOP_PROCESS_SWAPPING
|
||||
GLIBTOP_PROCESS_DEAD
|
||||
glibtop_proc_state
|
||||
glibtop_get_proc_state
|
||||
glibtop_get_proc_state_r
|
||||
glibtop_get_proc_state_l
|
||||
glibtop_init_proc_state_p
|
||||
glibtop_get_proc_state_p
|
||||
glibtop_init_proc_state_s
|
||||
glibtop_get_proc_state_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procuid.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procuid</FILE>
|
||||
GLIBTOP_PROC_UID_UID
|
||||
GLIBTOP_PROC_UID_EUID
|
||||
GLIBTOP_PROC_UID_GID
|
||||
GLIBTOP_PROC_UID_EGID
|
||||
GLIBTOP_PROC_UID_SUID
|
||||
GLIBTOP_PROC_UID_SGID
|
||||
GLIBTOP_PROC_UID_FSUID
|
||||
GLIBTOP_PROC_UID_FSGID
|
||||
GLIBTOP_PROC_UID_PID
|
||||
GLIBTOP_PROC_UID_PPID
|
||||
GLIBTOP_PROC_UID_PGRP
|
||||
GLIBTOP_PROC_UID_SESSION
|
||||
GLIBTOP_PROC_UID_TTY
|
||||
GLIBTOP_PROC_UID_TPGID
|
||||
GLIBTOP_PROC_UID_PRIORITY
|
||||
GLIBTOP_PROC_UID_NICE
|
||||
GLIBTOP_PROC_UID_NGROUPS
|
||||
GLIBTOP_PROC_UID_GROUPS
|
||||
GLIBTOP_MAX_PROC_UID
|
||||
glibtop_proc_uid
|
||||
GLIBTOP_MAX_GROUPS
|
||||
glibtop_get_proc_uid
|
||||
glibtop_get_proc_uid_r
|
||||
glibtop_get_proc_uid_l
|
||||
glibtop_init_proc_uid_p
|
||||
glibtop_get_proc_uid_p
|
||||
glibtop_init_proc_uid_s
|
||||
glibtop_get_proc_uid_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/proctime.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>proctime</FILE>
|
||||
GLIBTOP_PROC_TIME_START_TIME
|
||||
GLIBTOP_PROC_TIME_RTIME
|
||||
GLIBTOP_PROC_TIME_UTIME
|
||||
GLIBTOP_PROC_TIME_STIME
|
||||
GLIBTOP_PROC_TIME_CUTIME
|
||||
GLIBTOP_PROC_TIME_CSTIME
|
||||
GLIBTOP_PROC_TIME_TIMEOUT
|
||||
GLIBTOP_PROC_TIME_IT_REAL_VALUE
|
||||
GLIBTOP_PROC_TIME_FREQUENCY
|
||||
GLIBTOP_PROC_TIME_XCPU_UTIME
|
||||
GLIBTOP_PROC_TIME_XCPU_STIME
|
||||
GLIBTOP_MAX_PROC_TIME
|
||||
glibtop_proc_time
|
||||
glibtop_get_proc_time
|
||||
glibtop_get_proc_time_r
|
||||
glibtop_get_proc_time_l
|
||||
glibtop_init_proc_time_p
|
||||
glibtop_get_proc_time_p
|
||||
glibtop_init_proc_time_s
|
||||
glibtop_get_proc_time_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/signal.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>signal</FILE>
|
||||
glibtop_signame
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/procmap.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>procmap</FILE>
|
||||
GLIBTOP_PROC_MAP_NUMBER
|
||||
GLIBTOP_PROC_MAP_TOTAL
|
||||
GLIBTOP_PROC_MAP_SIZE
|
||||
GLIBTOP_MAX_PROC_MAP
|
||||
GLIBTOP_MAP_ENTRY_START
|
||||
GLIBTOP_MAP_ENTRY_END
|
||||
GLIBTOP_MAP_ENTRY_OFFSET
|
||||
GLIBTOP_MAP_ENTRY_PERM
|
||||
GLIBTOP_MAP_ENTRY_INODE
|
||||
GLIBTOP_MAP_ENTRY_DEVICE
|
||||
GLIBTOP_MAP_ENTRY_FILENAME
|
||||
GLIBTOP_MAP_ENTRY_SIZE
|
||||
GLIBTOP_MAP_ENTRY_RSS
|
||||
GLIBTOP_MAP_ENTRY_SHARED_CLEAN
|
||||
GLIBTOP_MAP_ENTRY_SHARED_DIRTY
|
||||
GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN
|
||||
GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY
|
||||
GLIBTOP_MAX_MAP_ENTRY
|
||||
GLIBTOP_MAP_FILENAME_LEN
|
||||
GLIBTOP_MAP_PERM_READ
|
||||
GLIBTOP_MAP_PERM_WRITE
|
||||
GLIBTOP_MAP_PERM_EXECUTE
|
||||
GLIBTOP_MAP_PERM_SHARED
|
||||
GLIBTOP_MAP_PERM_PRIVATE
|
||||
glibtop_map_entry
|
||||
glibtop_proc_map
|
||||
glibtop_get_proc_map
|
||||
glibtop_get_proc_map_r
|
||||
glibtop_get_proc_map_l
|
||||
glibtop_init_proc_map_p
|
||||
glibtop_get_proc_map_p
|
||||
glibtop_init_proc_map_s
|
||||
glibtop_get_proc_map_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/sysinfo.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>sysinfo</FILE>
|
||||
GLIBTOP_SYSINFO_NCPU
|
||||
GLIBTOP_SYSINFO_CPUINFO
|
||||
GLIBTOP_MAX_SYSINFO
|
||||
glibtop_sysinfo
|
||||
glibtop_entry
|
||||
glibtop_get_sysinfo_r
|
||||
glibtop_get_sysinfo_s
|
||||
glibtop_get_sysinfo
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/union.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>union</FILE>
|
||||
glibtop_union
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/version.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>version</FILE>
|
||||
LIBGTOP_VERSION_STRING
|
||||
glibtop_send_version
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/proclist.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>proclist</FILE>
|
||||
GLIBTOP_PROCLIST_NUMBER
|
||||
GLIBTOP_PROCLIST_TOTAL
|
||||
GLIBTOP_PROCLIST_SIZE
|
||||
GLIBTOP_MAX_PROCLIST
|
||||
GLIBTOP_KERN_PROC_ALL
|
||||
GLIBTOP_KERN_PROC_PID
|
||||
GLIBTOP_KERN_PROC_PGRP
|
||||
GLIBTOP_KERN_PROC_SESSION
|
||||
GLIBTOP_KERN_PROC_TTY
|
||||
GLIBTOP_KERN_PROC_UID
|
||||
GLIBTOP_KERN_PROC_RUID
|
||||
GLIBTOP_KERN_PROC_MASK
|
||||
GLIBTOP_EXCLUDE_IDLE
|
||||
GLIBTOP_EXCLUDE_SYSTEM
|
||||
GLIBTOP_EXCLUDE_NOTTY
|
||||
glibtop_proclist
|
||||
glibtop_get_proclist
|
||||
glibtop_get_proclist_r
|
||||
glibtop_get_proclist_l
|
||||
glibtop_init_proclist_p
|
||||
glibtop_get_proclist_p
|
||||
glibtop_init_proclist_s
|
||||
glibtop_get_proclist_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/sem_limits.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>sem_limits</FILE>
|
||||
GLIBTOP_IPC_SEMMAP
|
||||
GLIBTOP_IPC_SEMMNI
|
||||
GLIBTOP_IPC_SEMMNS
|
||||
GLIBTOP_IPC_SEMMNU
|
||||
GLIBTOP_IPC_SEMMSL
|
||||
GLIBTOP_IPC_SEMOPM
|
||||
GLIBTOP_IPC_SEMUME
|
||||
GLIBTOP_IPC_SEMUSZ
|
||||
GLIBTOP_IPC_SEMVMX
|
||||
GLIBTOP_IPC_SEMAEM
|
||||
GLIBTOP_MAX_SEM_LIMITS
|
||||
glibtop_sem_limits
|
||||
glibtop_get_sem_limits
|
||||
glibtop_get_sem_limits_r
|
||||
glibtop_get_sem_limits_l
|
||||
glibtop_init_sem_limits_p
|
||||
glibtop_get_sem_limits_p
|
||||
glibtop_init_sem_limits_s
|
||||
glibtop_get_sem_limits_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/prockernel.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>prockernel</FILE>
|
||||
GLIBTOP_PROC_KERNEL_K_FLAGS
|
||||
GLIBTOP_PROC_KERNEL_MIN_FLT
|
||||
GLIBTOP_PROC_KERNEL_MAJ_FLT
|
||||
GLIBTOP_PROC_KERNEL_CMIN_FLT
|
||||
GLIBTOP_PROC_KERNEL_CMAJ_FLT
|
||||
GLIBTOP_PROC_KERNEL_KSTK_ESP
|
||||
GLIBTOP_PROC_KERNEL_KSTK_EIP
|
||||
GLIBTOP_PROC_KERNEL_NWCHAN
|
||||
GLIBTOP_PROC_KERNEL_WCHAN
|
||||
GLIBTOP_MAX_PROC_KERNEL
|
||||
glibtop_proc_kernel
|
||||
glibtop_get_proc_kernel
|
||||
glibtop_get_proc_kernel_r
|
||||
glibtop_get_proc_kernel_l
|
||||
glibtop_init_proc_kernel_p
|
||||
glibtop_get_proc_kernel_p
|
||||
glibtop_init_proc_kernel_s
|
||||
glibtop_get_proc_kernel_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/fsusage.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>fsusage</FILE>
|
||||
GLIBTOP_FSUSAGE_BLOCKS
|
||||
GLIBTOP_FSUSAGE_BFREE
|
||||
GLIBTOP_FSUSAGE_BAVAIL
|
||||
GLIBTOP_FSUSAGE_FILES
|
||||
GLIBTOP_FSUSAGE_FFREE
|
||||
GLIBTOP_FSUSAGE_BLOCK_SIZE
|
||||
GLIBTOP_FSUSAGE_READ
|
||||
GLIBTOP_FSUSAGE_WRITE
|
||||
GLIBTOP_MAX_FSUSAGE
|
||||
glibtop_fsusage
|
||||
glibtop_get_fsusage
|
||||
glibtop_get_fsusage_r
|
||||
glibtop_get_fsusage_l
|
||||
glibtop_get_fsusage_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/loadavg.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>loadavg</FILE>
|
||||
GLIBTOP_LOADAVG_LOADAVG
|
||||
GLIBTOP_LOADAVG_NR_RUNNING
|
||||
GLIBTOP_LOADAVG_NR_TASKS
|
||||
GLIBTOP_LOADAVG_LAST_PID
|
||||
GLIBTOP_MAX_LOADAVG
|
||||
glibtop_loadavg
|
||||
glibtop_get_loadavg
|
||||
glibtop_get_loadavg_r
|
||||
glibtop_get_loadavg_l
|
||||
glibtop_init_loadavg_p
|
||||
glibtop_get_loadavg_p
|
||||
glibtop_init_loadavg_s
|
||||
glibtop_get_loadavg_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/mem.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>mem</FILE>
|
||||
GLIBTOP_MEM_TOTAL
|
||||
GLIBTOP_MEM_USED
|
||||
GLIBTOP_MEM_FREE
|
||||
GLIBTOP_MEM_SHARED
|
||||
GLIBTOP_MEM_BUFFER
|
||||
GLIBTOP_MEM_CACHED
|
||||
GLIBTOP_MEM_USER
|
||||
GLIBTOP_MEM_LOCKED
|
||||
GLIBTOP_MAX_MEM
|
||||
glibtop_mem
|
||||
glibtop_get_mem
|
||||
glibtop_get_mem_r
|
||||
glibtop_get_mem_l
|
||||
glibtop_init_mem_p
|
||||
glibtop_get_mem_p
|
||||
glibtop_init_mem_s
|
||||
glibtop_get_mem_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/mountlist.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>mountlist</FILE>
|
||||
GLIBTOP_MOUNTLIST_NUMBER
|
||||
GLIBTOP_MOUNTLIST_TOTAL
|
||||
GLIBTOP_MOUNTLIST_SIZE
|
||||
GLIBTOP_MAX_MOUNTLIST
|
||||
glibtop_mountentry
|
||||
glibtop_mountlist
|
||||
glibtop_get_mountlist
|
||||
glibtop_get_mountlist_r
|
||||
glibtop_get_mountlist_l
|
||||
glibtop_get_mountlist_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/msg_limits.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>msg_limits</FILE>
|
||||
GLIBTOP_IPC_MSGPOOL
|
||||
GLIBTOP_IPC_MSGMAP
|
||||
GLIBTOP_IPC_MSGMAX
|
||||
GLIBTOP_IPC_MSGMNB
|
||||
GLIBTOP_IPC_MSGMNI
|
||||
GLIBTOP_IPC_MSGSSZ
|
||||
GLIBTOP_IPC_MSGTQL
|
||||
GLIBTOP_MAX_MSG_LIMITS
|
||||
glibtop_msg_limits
|
||||
glibtop_get_msg_limits
|
||||
glibtop_get_msg_limits_r
|
||||
glibtop_get_msg_limits_l
|
||||
glibtop_init_msg_limits_p
|
||||
glibtop_get_msg_limits_p
|
||||
glibtop_init_msg_limits_s
|
||||
glibtop_get_msg_limits_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/cpu.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>cpu</FILE>
|
||||
GLIBTOP_CPU_TOTAL
|
||||
GLIBTOP_CPU_USER
|
||||
GLIBTOP_CPU_NICE
|
||||
GLIBTOP_CPU_SYS
|
||||
GLIBTOP_CPU_IDLE
|
||||
GLIBTOP_CPU_FREQUENCY
|
||||
GLIBTOP_XCPU_TOTAL
|
||||
GLIBTOP_XCPU_USER
|
||||
GLIBTOP_XCPU_NICE
|
||||
GLIBTOP_XCPU_SYS
|
||||
GLIBTOP_XCPU_IDLE
|
||||
GLIBTOP_XCPU_FLAGS
|
||||
GLIBTOP_CPU_IOWAIT
|
||||
GLIBTOP_CPU_IRQ
|
||||
GLIBTOP_CPU_SOFTIRQ
|
||||
GLIBTOP_XCPU_IOWAIT
|
||||
GLIBTOP_XCPU_IRQ
|
||||
GLIBTOP_XCPU_SOFTIRQ
|
||||
GLIBTOP_MAX_CPU
|
||||
GLIBTOP_NCPU
|
||||
glibtop_cpu
|
||||
glibtop_get_cpu
|
||||
glibtop_get_cpu_r
|
||||
glibtop_get_cpu_l
|
||||
glibtop_init_cpu_p
|
||||
glibtop_get_cpu_p
|
||||
glibtop_init_cpu_s
|
||||
glibtop_get_cpu_s
|
||||
</SECTION>
|
||||
|
||||
<INCLUDE>glibtop/swap.h</INCLUDE>
|
||||
<SECTION>
|
||||
<FILE>swap</FILE>
|
||||
GLIBTOP_SWAP_TOTAL
|
||||
GLIBTOP_SWAP_USED
|
||||
GLIBTOP_SWAP_FREE
|
||||
GLIBTOP_SWAP_PAGEIN
|
||||
GLIBTOP_SWAP_PAGEOUT
|
||||
GLIBTOP_MAX_SWAP
|
||||
glibtop_swap
|
||||
glibtop_get_swap
|
||||
glibtop_get_swap_r
|
||||
glibtop_get_swap_l
|
||||
glibtop_init_swap_p
|
||||
glibtop_get_swap_p
|
||||
glibtop_init_swap_s
|
||||
glibtop_get_swap_s
|
||||
</SECTION>
|
||||
|
4
doc/reference/version.xml.in
Normal file
4
doc/reference/version.xml.in
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
||||
<phrase>@PACKAGE_VERSION@</phrase>
|
@@ -1,2 +0,0 @@
|
||||
Makefile.in
|
||||
Makefile
|
@@ -1,9 +0,0 @@
|
||||
backenddir = @LIBGTOP_BACKEND_DIR@
|
||||
|
||||
backend_DATA = \
|
||||
libgtop-backends.dtd \
|
||||
libgtop-backend-info.dtd
|
||||
|
||||
EXTRA_DIST = |
|
||||
$(backend_DATA)
|
||||
|
@@ -1,23 +0,0 @@
|
||||
<!ELEMENT BackendInfo (name,description?,comments?,authors,legalnotice)>
|
||||
<!ELEMENT name (short_name,long_name?)>
|
||||
<!ELEMENT short_name (#PCDATA)>
|
||||
<!ELEMENT long_name (#PCDATA)>
|
||||
|
||||
<!ELEMENT description (#PCDATA)>
|
||||
|
||||
<!ELEMENT authors (author)+>
|
||||
<!ELEMENT author (author_name,author_email?)>
|
||||
<!ELEMENT author_name (#PCDATA)>
|
||||
<!ELEMENT author_email (#PCDATA)>
|
||||
|
||||
<!ELEMENT legalnotice (license,copyright?)>
|
||||
<!ELEMENT license (#PCDATA)>
|
||||
|
||||
<!ELEMENT copyright (holder)+>
|
||||
<!ELEMENT holder (holder_year?,holder_name,holder_email?)>
|
||||
<!ELEMENT holder_year (#PCDATA)>
|
||||
<!ELEMENT holder_name (#PCDATA)>
|
||||
<!ELEMENT holder_email (#PCDATA)>
|
||||
|
||||
<!ELEMENT comments (comment)+>
|
||||
<!ELEMENT comment (#PCDATA)>
|
@@ -1,11 +0,0 @@
|
||||
<!ELEMENT Backends (Backend)+>
|
||||
|
||||
<!ELEMENT Backend (Name,Location)>
|
||||
<!ELEMENT Name (#PCDATA)>
|
||||
|
||||
<!ELEMENT Location (LibtoolName?,ShlibName,ExtraLibs?)>
|
||||
<!ELEMENT LibtoolName (#PCDATA)>
|
||||
<!ELEMENT ShlibName (#PCDATA)>
|
||||
|
||||
<!ELEMENT ExtraLibs (ExtraLib)+>
|
||||
<!ELEMENT ExtraLib (LibtoolName?,ShlibName)>
|
@@ -1,16 +0,0 @@
|
||||
.deps
|
||||
.libs
|
||||
Makefile
|
||||
Makefile.in
|
||||
first
|
||||
first_linux
|
||||
first_static
|
||||
second
|
||||
third
|
||||
third_linux
|
||||
third_static
|
||||
second_static
|
||||
second_linux
|
||||
smp_static sysdeps_static netload_static procmap_static mountlist_static
|
||||
smp sysdeps netload procmap mountlist
|
||||
timings timings_static
|
@@ -1,3 +1,128 @@
|
||||
2007-05-19 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* Makefile.am:
|
||||
* mem.c: (main):
|
||||
* wd.c: (main):
|
||||
|
||||
Fixed wd and new simple mem example.
|
||||
|
||||
2006-02-27 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* pprint.c: (pprint_get_proc_mem), (main):
|
||||
|
||||
Added proc_mem example.
|
||||
|
||||
2005-12-15 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* proclist.c: (print_pids), (main):
|
||||
|
||||
Improved example.
|
||||
|
||||
2005-12-12 Benoît Dejean <benoit@placenet.org>
|
||||
|
||||
* .cvsignore:
|
||||
* Makefile.am:
|
||||
* proclist.c: (main):
|
||||
* procmap.c: (main):
|
||||
|
||||
Added quick example for glibtop_get_proclist()
|
||||
and updated procmap example to display smap.
|
||||
|
||||
2005-08-02 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_cpu), (pprint_get_loadavg),
|
||||
(pprint_get_mem), (pprint_get_msg_limits), (pprint_get_netlist),
|
||||
(pprint_get_swap), (pprint_get_uptime), (pprint_get_proc_kernel),
|
||||
(main):
|
||||
|
||||
Added pprint_get_proc_kernel(pid).
|
||||
Fixed prototypes.
|
||||
|
||||
2005-01-22 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* openfiles.c: (show_open_files): Updated.
|
||||
|
||||
2004-12-23 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* netload.c: (main):
|
||||
* procmap.c: (main): s/glibtop_error/g_error/g
|
||||
|
||||
2004-11-15 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* netload.c: (hwaddress_format_for_display), (main): Updated.
|
||||
|
||||
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_fsusage), (pprint_get_mountlist),
|
||||
(pprint_get_netload), (pprint_get_netlist), (main): Updated.
|
||||
|
||||
2004-09-25 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (main): Re-added pprint_get_msg_limits()
|
||||
|
||||
i2004-09-25 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* df.c: (main):
|
||||
* pprint.c: (main):
|
||||
* procargs.c: (main): Added missing call to glibgtop_init() / glibtop_close()
|
||||
|
||||
2004-09-24 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* .cvsignore:
|
||||
* Makefile.am:
|
||||
* ../configure.in
|
||||
* df.c: (print_fsusage), (main): Added new example, just like 'df'.
|
||||
|
||||
2004-09-22 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (main): Disable pprint_get_msg_limits() because it can fail.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_swap), (main): Updated.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* procargs.c: (show_args), (main): Updated.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_mountlist), (pprint_get_netload),
|
||||
(pprint_get_uptime), (main): Updated.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* pprint.c: (pprint_get_mountlist): Updated.
|
||||
|
||||
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* procargs.c: (show_args), (main): Updated.
|
||||
|
||||
2004-09-20 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* .cvsignore:
|
||||
* Makefile.am:
|
||||
* pprint.c: (pprint_get_cpu), (pprint_get_fsusage),
|
||||
(pprint_get_loadavg), (pprint_get_mem), (pprint_get_mountlist),
|
||||
(pprint_get_msg_limits), (main): Added new example : pretty prints
|
||||
the result of glibtop_*. Work in progress.
|
||||
|
||||
Now builds procargs.
|
||||
|
||||
* ../configure.in: Added to static list.
|
||||
|
||||
2004-07-07 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* procargs.c: Added glibtop_get_proc_argv demo.
|
||||
|
||||
2003-12-27 Ole Laursen <olau@hardworking.dk>
|
||||
|
||||
* mountlist.c: Updated to display block size too.
|
||||
|
||||
2004-03-04 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* smp.c: use libgtop-i18n.h
|
||||
|
||||
2003-10-21 Bastien Nocera <hadess@hadess.net>
|
||||
|
||||
* Makefile.am:
|
||||
@@ -42,7 +167,7 @@
|
||||
|
||||
Fri Apr 9 00:14:52 1999 Timur Bakeyev <timur@gnu.org>
|
||||
|
||||
* timings.c: Added timersub defenition, to make code compilable on
|
||||
* timings.c: Added timersub defenition, to make code compilable on
|
||||
BSDI.
|
||||
|
||||
1999-03-24 Martin Baulig <martin@home-of-linux.org>
|
||||
@@ -108,11 +233,11 @@ Fri Apr 9 00:14:52 1999 Timur Bakeyev <timur@gnu.org>
|
||||
1998-06-12 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* test.scm: New file.
|
||||
|
||||
|
||||
1998-06-07 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am (CFLAGS): Disable optimize.
|
||||
|
||||
|
||||
* first.c (PROFILE_COUNT): Number of times each function
|
||||
should be called. Defaults to 1; to profile the code, you
|
||||
can increase this when compiling.
|
||||
|
@@ -6,81 +6,57 @@ INCLUDES = @INCLUDES@
|
||||
|
||||
DEFS = @DEFS@
|
||||
|
||||
noinst_PROGRAMS = first second\
|
||||
noinst_PROGRAMS = first second pprint procargs df netlist \
|
||||
mountlist procmap netload sysdeps timings \
|
||||
@static_targets@ @smp_examples@
|
||||
|
||||
EXTRA_PROGRAMS = first_static second_static \
|
||||
mountlist_static procmap_static \
|
||||
third third_static smp smp_static \
|
||||
netload_static sysdeps_static \
|
||||
timings_static
|
||||
openfiles smp proclist mem wd affinity
|
||||
|
||||
first_SOURCES = first.c
|
||||
first_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
first_static_SOURCES = $(first_SOURCES)
|
||||
first_static_LDADD = $(first_LDADD)
|
||||
first_static_LDFLAGS = -static
|
||||
|
||||
second_SOURCES = second.c
|
||||
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
second_static_SOURCES = $(second_SOURCES)
|
||||
second_static_LDADD = $(second_LDADD)
|
||||
second_static_LDFLAGS = -static
|
||||
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
|
||||
|
||||
procmap_SOURCES = procmap.c
|
||||
procmap_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
procmap_static_SOURCES = $(procmap_SOURCES)
|
||||
procmap_static_LDADD = $(procmap_LDADD)
|
||||
procmap_static_LDFLAGS = -static
|
||||
|
||||
netload_SOURCES = netload.c
|
||||
netload_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
netload_static_SOURCES = $(netload_SOURCES)
|
||||
netload_static_LDADD = $(netload_LDADD)
|
||||
netload_static_LDFLAGS = -static
|
||||
|
||||
sysdeps_SOURCES = sysdeps.c
|
||||
sysdeps_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
sysdeps_static_SOURCES = $(sysdeps_SOURCES)
|
||||
sysdeps_static_LDADD = $(sysdeps_LDADD)
|
||||
sysdeps_static_LDFLAGS = -static
|
||||
|
||||
third_names_LIBS = $(top_builddir)/sysdeps/names/libgtop_names-2.0.la
|
||||
|
||||
third_SOURCES = third.c
|
||||
third_LDADD = $(third_names_LIBS) \
|
||||
$(top_builddir)/lib/libgtop-2.0.la \
|
||||
@INTLLIBS@
|
||||
|
||||
third_static_SOURCES = $(third_SOURCES)
|
||||
third_static_LDADD = $(third_LDADD)
|
||||
third_static_LDFLAGS = -static
|
||||
|
||||
mountlist_SOURCES = mountlist.c
|
||||
mountlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
mountlist_static_SOURCES= $(mountlist_SOURCES)
|
||||
mountlist_static_LDADD = $(mountlist_LDADD)
|
||||
mountlist_static_LDFLAGS= -static
|
||||
|
||||
|
||||
smp_SOURCES = smp.c
|
||||
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
smp_static_SOURCES = $(smp_SOURCES)
|
||||
smp_static_LDADD = $(smp_LDADD)
|
||||
smp_static_LDFLAGS = -static
|
||||
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
|
||||
|
||||
timings_SOURCES = timings.c
|
||||
timings_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
timings_static_SOURCES = $(timings_SOURCES)
|
||||
timings_static_LDADD = $(timings_LDADD)
|
||||
timings_static_LDFLAGS = -static
|
||||
pprint_SOURCES = pprint.c
|
||||
pprint_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
procargs_SOURCES = procargs.c
|
||||
procargs_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
df_SOURCES = df.c
|
||||
df_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
netlist_SOURCES = netlist.c
|
||||
netlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
openfiles_SOURCES = openfiles.c
|
||||
openfiles_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
proclist_SOURCES = proclist.c
|
||||
proclist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
wd_SOURCES = wd.c
|
||||
wd_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
mem_SOURCE = mem.c
|
||||
mem_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
affinity_SOURCES = affinity.c
|
||||
affinity_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
34
examples/affinity.c
Normal file
34
examples/affinity.c
Normal file
@@ -0,0 +1,34 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/procaffinity.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
pid_t pid;
|
||||
glibtop_proc_affinity buf;
|
||||
guint16 *cpus;
|
||||
size_t i;
|
||||
|
||||
if (argc < 2 || !(pid = strtoul(argv[1], NULL, 0)))
|
||||
pid = getpid();
|
||||
|
||||
glibtop_init();
|
||||
|
||||
cpus = glibtop_get_proc_affinity(&buf, pid);
|
||||
|
||||
g_print("Process %u:\n"
|
||||
" - all: %d\n",
|
||||
(unsigned)pid, buf.all);
|
||||
|
||||
for (i = 0; i != buf.number; ++i)
|
||||
g_print(" - CPU#%u is set\n", cpus[i]);
|
||||
|
||||
g_free(cpus);
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
59
examples/df.c
Normal file
59
examples/df.c
Normal file
@@ -0,0 +1,59 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include <glibtop.h>
|
||||
|
||||
#include <glibtop/fsusage.h>
|
||||
#include <glibtop/mountlist.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
static void print_fsusage(const char *mountpoint)
|
||||
{
|
||||
glibtop_fsusage buf;
|
||||
|
||||
glibtop_get_fsusage(&buf, mountpoint);
|
||||
|
||||
printf("%-30s %10llu %10llu %10llu %5.1f %10llu %10llu\n",
|
||||
mountpoint,
|
||||
buf.blocks * buf.block_size >> 20,
|
||||
(buf.blocks - buf.bavail) * buf.block_size >> 20,
|
||||
buf.bavail * buf.block_size >> 20,
|
||||
(buf.blocks - buf.bavail) * 100.0 / (buf.blocks ? buf.blocks : 1.0),
|
||||
buf.read,
|
||||
buf.write
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glibtop_mountlist buf;
|
||||
|
||||
glibtop_init();
|
||||
|
||||
printf("%-30s %10s %10s %10s %5s %10s %10s\n",
|
||||
"Filesystem", "Size", "Used", "Avail", "Use%", "Read", "Write");
|
||||
|
||||
if (argc > 1) {
|
||||
while (*++argv)
|
||||
print_fsusage(*argv);
|
||||
} else {
|
||||
glibtop_mountentry *entries;
|
||||
size_t i;
|
||||
|
||||
entries = glibtop_get_mountlist(&buf, TRUE);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
print_fsusage(entries[i].mountdir);
|
||||
}
|
||||
|
||||
g_free(entries);
|
||||
}
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -21,7 +19,13 @@
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
@@ -43,9 +47,9 @@ main (int argc, char *argv [])
|
||||
{
|
||||
glibtop_union data;
|
||||
glibtop_sysdeps sysdeps;
|
||||
unsigned c, method, count, port, i, *ptr;
|
||||
unsigned c, method, count, port, i;
|
||||
char buffer [BUFSIZ];
|
||||
pid_t pid, ppid;
|
||||
pid_t pid, ppid, *ptr;
|
||||
char *args;
|
||||
|
||||
count = PROFILE_COUNT;
|
||||
@@ -53,7 +57,7 @@ main (int argc, char *argv [])
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_PACKAGE);
|
||||
|
||||
|
||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
||||
|
||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
||||
@@ -133,7 +137,7 @@ main (int argc, char *argv [])
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_shm_limits (&data.shm_limits);
|
||||
|
||||
|
||||
printf ("Shm Limits (0x%08lx): %lu, %lu, %lu, %lu, %lu\n",
|
||||
(unsigned long) data.shm_limits.flags,
|
||||
(unsigned long) data.shm_limits.shmmax,
|
||||
@@ -157,7 +161,7 @@ main (int argc, char *argv [])
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_sem_limits (&data.sem_limits);
|
||||
|
||||
|
||||
printf ("Sem Limits (0x%08lx): "
|
||||
"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
|
||||
(unsigned long) data.sem_limits.flags,
|
||||
@@ -215,7 +219,7 @@ main (int argc, char *argv [])
|
||||
(unsigned long) sysdeps.ppp);
|
||||
|
||||
printf ("\n");
|
||||
|
||||
|
||||
ptr = glibtop_get_proclist (&data.proclist, 0, 0);
|
||||
|
||||
printf ("Proclist (0x%08lx): %lu, %lu, %lu\n",
|
||||
@@ -306,7 +310,7 @@ main (int argc, char *argv [])
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
||||
|
||||
|
||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu\n", (int) pid,
|
||||
(unsigned long) data.proc_signal.flags,
|
||||
|
21
examples/mem.c
Normal file
21
examples/mem.c
Normal file
@@ -0,0 +1,21 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/mem.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glibtop_mem buf;
|
||||
|
||||
glibtop_init();
|
||||
|
||||
g_print("%lx\n", glibtop_global_server->features);
|
||||
|
||||
glibtop_get_mem(&buf);
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -21,7 +19,13 @@
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
@@ -48,11 +52,11 @@ main (int argc, char *argv [])
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_PACKAGE);
|
||||
|
||||
|
||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
||||
|
||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
||||
|
||||
|
||||
printf ("Method = %d\n", method);
|
||||
|
||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
||||
@@ -88,18 +92,18 @@ main (int argc, char *argv [])
|
||||
mount_entries [index].type,
|
||||
mount_entries [index].devname);
|
||||
|
||||
printf ("\n\n%-23s %9s %9s %9s %9s %9s\n\n",
|
||||
"", "Blocks", "Free", "Avail", "Files", "Free");
|
||||
printf ("\n\n%-16s %9s %9s %9s %9s %9s %9s\n",
|
||||
"Mount", "Blocks", "Free", "Avail", "Files", "Free", "BlockSz");
|
||||
|
||||
for (index = 0; index < mount_list.number; index++) {
|
||||
glibtop_get_fsusage (&fsusage,
|
||||
mount_entries [index].mountdir);
|
||||
|
||||
printf ("Usage: %-16s %9Lu %9Lu %9Lu %9Lu %9Lu\n",
|
||||
printf ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n",
|
||||
mount_entries [index].mountdir,
|
||||
fsusage.blocks, fsusage.bfree,
|
||||
fsusage.bavail, fsusage.files,
|
||||
fsusage.ffree);
|
||||
fsusage.ffree, fsusage.block_size);
|
||||
}
|
||||
|
||||
g_free (mount_entries);
|
||||
|
@@ -1,11 +1,6 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
/* Copyright (C) 2004 Benoît Dejean
|
||||
This file is part of LibGTop 2.0.
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
@@ -23,14 +18,33 @@
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_BACKEND_COMMON_H__
|
||||
#define __GLIBTOP_BACKEND_COMMON_H__
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
#include <glibtop/netlist.h>
|
||||
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/glibtop-backend.h>
|
||||
#include <glibtop/glibtop-backend-info.h>
|
||||
|
||||
#endif
|
||||
int main(int argc, char *argv [])
|
||||
{
|
||||
glibtop_netlist buf;
|
||||
char **devices;
|
||||
guint32 i;
|
||||
|
||||
glibtop_init();
|
||||
|
||||
devices = glibtop_get_netlist(&buf);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
printf("net device '%s'\n", devices[i]);
|
||||
}
|
||||
|
||||
g_strfreev(devices);
|
||||
|
||||
glibtop_close();
|
||||
return 0;
|
||||
}
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -21,7 +19,13 @@
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
@@ -38,6 +42,24 @@
|
||||
#define PROFILE_COUNT 1
|
||||
#endif
|
||||
|
||||
|
||||
static char* hwaddress_format_for_display(glibtop_netload *buf)
|
||||
{
|
||||
unsigned i;
|
||||
GString *repr = g_string_new("");
|
||||
char *str;
|
||||
|
||||
for(i = 0; i < sizeof buf->hwaddress; ++i)
|
||||
g_string_append_printf(repr, "%02X:",
|
||||
(unsigned) ((char*)buf->hwaddress)[i]);
|
||||
|
||||
repr->str [ repr->len - 1] = ' ';
|
||||
str = g_string_free(repr, FALSE);
|
||||
g_strstrip(str);
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main (int argc, char *argv [])
|
||||
{
|
||||
@@ -45,6 +67,8 @@ main (int argc, char *argv [])
|
||||
unsigned method, count, port;
|
||||
struct in_addr addr, subnet;
|
||||
char *address_string, *subnet_string;
|
||||
char address6_string[INET6_ADDRSTRLEN], prefix6_string[INET6_ADDRSTRLEN];
|
||||
char *hwaddress_string;
|
||||
char buffer [BUFSIZ];
|
||||
|
||||
count = PROFILE_COUNT;
|
||||
@@ -52,7 +76,7 @@ main (int argc, char *argv [])
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_PACKAGE);
|
||||
|
||||
|
||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
||||
|
||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
||||
@@ -74,8 +98,8 @@ main (int argc, char *argv [])
|
||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
||||
|
||||
if (argc != 2)
|
||||
glibtop_error ("Usage: %s interface", argv [0]);
|
||||
|
||||
g_error ("Usage: %s interface", argv [0]);
|
||||
|
||||
glibtop_get_netload (&netload, argv [1]);
|
||||
|
||||
addr.s_addr = netload.address;
|
||||
@@ -84,36 +108,50 @@ main (int argc, char *argv [])
|
||||
address_string = g_strdup (inet_ntoa (addr));
|
||||
subnet_string = g_strdup (inet_ntoa (subnet));
|
||||
|
||||
printf ("Network Load (0x%08lx):\n\n"
|
||||
"\tInterface Flags:\t0x%08lx\n"
|
||||
"\tAddress:\t\t0x%08lx - %s\n"
|
||||
"\tSubnet:\t\t\t0x%08lx - %s\n\n"
|
||||
"\tMTU:\t\t\t%ld\n"
|
||||
"\tCollisions:\t\t%ld\n\n"
|
||||
"\tPackets In:\t\t%ld\n"
|
||||
"\tPackets Out:\t\t%ld\n"
|
||||
"\tPackets Total:\t\t%ld\n\n"
|
||||
"\tBytes In:\t\t%ld\n"
|
||||
"\tBytes Out:\t\t%ld\n"
|
||||
"\tBytes Total:\t\t%ld\n\n"
|
||||
"\tErrors In:\t\t%ld\n"
|
||||
"\tErrors Out:\t\t%ld\n"
|
||||
"\tErrors Total:\t\t%ld\n\n",
|
||||
(unsigned long) netload.flags,
|
||||
(unsigned long) netload.if_flags,
|
||||
(unsigned long) netload.address, address_string,
|
||||
(unsigned long) netload.subnet, subnet_string,
|
||||
(unsigned long) netload.mtu,
|
||||
(unsigned long) netload.collisions,
|
||||
(unsigned long) netload.packets_in,
|
||||
(unsigned long) netload.packets_out,
|
||||
(unsigned long) netload.packets_total,
|
||||
(unsigned long) netload.bytes_in,
|
||||
(unsigned long) netload.bytes_out,
|
||||
(unsigned long) netload.bytes_total,
|
||||
(unsigned long) netload.errors_in,
|
||||
(unsigned long) netload.errors_out,
|
||||
(unsigned long) netload.errors_total);
|
||||
inet_ntop (AF_INET6, netload.address6, address6_string, INET6_ADDRSTRLEN);
|
||||
inet_ntop (AF_INET6, netload.prefix6, prefix6_string, INET6_ADDRSTRLEN);
|
||||
|
||||
hwaddress_string = hwaddress_format_for_display(&netload);
|
||||
|
||||
printf ("Network Load (0x%016llx):\n\n"
|
||||
"\tInterface Flags:\t0x%016llx\n"
|
||||
"\tAddress:\t\t0x%08x - %s\n"
|
||||
"\tSubnet:\t\t\t0x%08x - %s\n\n"
|
||||
"\tMTU:\t\t\t%d\n"
|
||||
"\tCollisions:\t\t%llu\n\n"
|
||||
"\tPackets In:\t\t%llu\n"
|
||||
"\tPackets Out:\t\t%llu\n"
|
||||
"\tPackets Total:\t\t%llu\n\n"
|
||||
"\tBytes In:\t\t%llu\n"
|
||||
"\tBytes Out:\t\t%llu\n"
|
||||
"\tBytes Total:\t\t%llu\n\n"
|
||||
"\tErrors In:\t\t%llu\n"
|
||||
"\tErrors Out:\t\t%llu\n"
|
||||
"\tErrors Total:\t\t%llu\n\n"
|
||||
"\tAddress6:\t\t%s\n"
|
||||
"\tPrefix6:\t\t%s\n"
|
||||
"\tScope6:\t\t\t%#03x\n\n"
|
||||
"\tHarware Address:\t%s\n\n",
|
||||
netload.flags,
|
||||
netload.if_flags,
|
||||
(guint32) netload.address, address_string,
|
||||
(guint32) netload.subnet, subnet_string,
|
||||
netload.mtu,
|
||||
netload.collisions,
|
||||
netload.packets_in,
|
||||
netload.packets_out,
|
||||
netload.packets_total,
|
||||
netload.bytes_in,
|
||||
netload.bytes_out,
|
||||
netload.bytes_total,
|
||||
netload.errors_in,
|
||||
netload.errors_out,
|
||||
netload.errors_total,
|
||||
address6_string,
|
||||
prefix6_string,
|
||||
(int) netload.scope6,
|
||||
hwaddress_string);
|
||||
|
||||
|
||||
g_free (address_string);
|
||||
g_free (subnet_string);
|
||||
|
75
examples/openfiles.c
Normal file
75
examples/openfiles.c
Normal file
@@ -0,0 +1,75 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/procopenfiles.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
static void show_open_files(pid_t pid)
|
||||
{
|
||||
glibtop_proc_open_files buf;
|
||||
glibtop_open_files_entry *files;
|
||||
unsigned i;
|
||||
|
||||
files = glibtop_get_proc_open_files(&buf, pid);
|
||||
|
||||
printf("<%ld>\n", (long)pid);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
printf("\tfd = %d\t", files[i].fd);
|
||||
|
||||
switch(files[i].type)
|
||||
{
|
||||
case GLIBTOP_FILE_TYPE_FILE:
|
||||
printf("file \"%s\"\n", files[i].info.file.name);
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_PIPE:
|
||||
printf("pipe\n");
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_INETSOCKET:
|
||||
printf("socket %s:%d\n", files[i].info.sock.dest_host, files[i].info.sock.dest_port);
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_INET6SOCKET:
|
||||
printf("socket [%s]:%d\n", files[i].info.sock.dest_host, files[i].info.sock.dest_port);
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_LOCALSOCKET:
|
||||
printf("localsocket %s\n", files[i].info.localsock.name);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("unknown type\n");
|
||||
}
|
||||
}
|
||||
|
||||
putchar('\n');
|
||||
|
||||
g_free(files);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glibtop_init();
|
||||
|
||||
show_open_files(getpid());
|
||||
|
||||
while(*++argv)
|
||||
{
|
||||
pid_t pid = strtol(*argv, NULL, 10);
|
||||
show_open_files(pid);
|
||||
}
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
324
examples/pprint.c
Normal file
324
examples/pprint.c
Normal file
@@ -0,0 +1,324 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
#include <glibtop/union.h>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stddef.h>
|
||||
|
||||
|
||||
#define buf_offsetof(MEMBER) ((ptrdiff_t)&(buf.MEMBER) - (ptrdiff_t)&buf)
|
||||
|
||||
#define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \
|
||||
(unsigned long) sizeof buf)
|
||||
|
||||
#define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \
|
||||
(unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA)
|
||||
|
||||
#define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \
|
||||
size_t i; \
|
||||
printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \
|
||||
(unsigned long) sizeof buf.ARRAY, (unsigned long) buf_offsetof(ARRAY),\
|
||||
(unsigned long) G_N_ELEMENTS(buf.ARRAY)); \
|
||||
for(i = 0; i < (SIZE - 1); ++i) printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \
|
||||
printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \
|
||||
} while(0)
|
||||
|
||||
#define FOOTER_PPRINT() putchar('\n');
|
||||
|
||||
|
||||
|
||||
static void pprint_get_cpu(void)
|
||||
{
|
||||
glibtop_cpu buf;
|
||||
|
||||
glibtop_get_cpu(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_cpu);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(total, "%llu");
|
||||
PPRINT(user, "%llu");
|
||||
PPRINT(nice, "%llu");
|
||||
PPRINT(sys, "%llu");
|
||||
PPRINT(idle, "%llu");
|
||||
PPRINT(iowait, "%llu");
|
||||
PPRINT(irq, "%llu");
|
||||
PPRINT(softirq, "%llu");
|
||||
PPRINT(frequency, "%llu");
|
||||
PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT(xcpu_flags, "%llx");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_fsusage(const char *mountpoint)
|
||||
{
|
||||
glibtop_fsusage buf;
|
||||
|
||||
glibtop_get_fsusage(&buf, mountpoint);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_fsusage);
|
||||
printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(blocks, "%llu");
|
||||
PPRINT(bfree, "%llu");
|
||||
PPRINT(bavail, "%llu");
|
||||
PPRINT(files, "%llu");
|
||||
PPRINT(ffree, "%llu");
|
||||
PPRINT(block_size, "%u");
|
||||
PPRINT(read, "%llu");
|
||||
PPRINT(write, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_loadavg(void)
|
||||
{
|
||||
glibtop_loadavg buf;
|
||||
|
||||
glibtop_get_loadavg(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_loadavg);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT_ARRAY(loadavg, 3, "%f");
|
||||
PPRINT(nr_running, "%llu");
|
||||
PPRINT(nr_tasks, "%llu");
|
||||
PPRINT(last_pid, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_mem(void)
|
||||
{
|
||||
glibtop_mem buf;
|
||||
|
||||
glibtop_get_mem(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_mem);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(total, "%llu");
|
||||
PPRINT(used, "%llu");
|
||||
PPRINT(free, "%llu");
|
||||
PPRINT(shared, "%llu");
|
||||
PPRINT(buffer, "%llu");
|
||||
PPRINT(cached, "%llu");
|
||||
PPRINT(user, "%llu");
|
||||
PPRINT(locked, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_mountlist(gboolean allfs)
|
||||
{
|
||||
glibtop_mountlist buf;
|
||||
glibtop_mountentry *entries;
|
||||
size_t i;
|
||||
|
||||
entries = glibtop_get_mountlist(&buf, allfs);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_mountlist);
|
||||
printf("glibtop_get_mountlist (allfs = %d)\n", allfs);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(number, "%llu");
|
||||
PPRINT(total, "%llu");
|
||||
PPRINT(size, "%llu");
|
||||
|
||||
printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
printf("\t\t .%lu = { .dev = %#llx,"
|
||||
" .devname = \"%s\","
|
||||
" .mountir = \"%s\","
|
||||
" .type = \"%s\" }\n",
|
||||
(unsigned long) i, entries[i].dev,
|
||||
entries[i].devname,
|
||||
entries[i].mountdir,
|
||||
entries[i].type);
|
||||
}
|
||||
|
||||
printf("\t\t}\n");
|
||||
FOOTER_PPRINT();
|
||||
|
||||
g_free(entries);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_msg_limits(void)
|
||||
{
|
||||
glibtop_msg_limits buf;
|
||||
|
||||
glibtop_get_msg_limits(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_msg_limits);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(msgpool, "%llu");
|
||||
PPRINT(msgmap, "%llu");
|
||||
PPRINT(msgmax, "%llu");
|
||||
PPRINT(msgmnb, "%llu");
|
||||
PPRINT(msgmni, "%llu");
|
||||
PPRINT(msgssz, "%llu");
|
||||
PPRINT(msgtql, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_netload(const char *iface)
|
||||
{
|
||||
glibtop_netload buf;
|
||||
|
||||
glibtop_get_netload(&buf, iface);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_netload);
|
||||
printf("glibtop_get_netload (iface = \"%s\")\n", iface);
|
||||
PPRINT(flags, "%#llx");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
static void pprint_get_netlist(void)
|
||||
{
|
||||
glibtop_netlist buf;
|
||||
char **devices;
|
||||
guint32 i;
|
||||
|
||||
devices = glibtop_get_netlist(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_netlist);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
printf("\t%s\n", devices[i]);
|
||||
}
|
||||
|
||||
FOOTER_PPRINT();
|
||||
|
||||
g_strfreev(devices);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_swap(void)
|
||||
{
|
||||
glibtop_swap buf;
|
||||
|
||||
glibtop_get_swap(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_swap);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(total, "%llu");
|
||||
PPRINT(used, "%llu");
|
||||
PPRINT(free, "%llu");
|
||||
PPRINT(pagein, "%llu");
|
||||
PPRINT(pageout, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void pprint_get_uptime(void)
|
||||
{
|
||||
glibtop_uptime buf;
|
||||
|
||||
glibtop_get_uptime(&buf);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_uptime);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(uptime, "%f");
|
||||
PPRINT(idletime, "%f");
|
||||
PPRINT(boot_time, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void pprint_get_proc_kernel(pid_t pid)
|
||||
{
|
||||
glibtop_proc_kernel buf;
|
||||
|
||||
glibtop_get_proc_kernel(&buf, pid);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_proc_kernel);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(k_flags, "%llu");
|
||||
PPRINT(min_flt, "%llu");
|
||||
PPRINT(maj_flt, "%llu");
|
||||
PPRINT(cmin_flt, "%llu");
|
||||
PPRINT(cmaj_flt, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
static void pprint_get_proc_mem(pid_t pid)
|
||||
{
|
||||
glibtop_proc_mem buf;
|
||||
|
||||
glibtop_get_proc_mem(&buf, pid);
|
||||
|
||||
HEADER_PPRINT(glibtop_get_proc_mem);
|
||||
PPRINT(flags, "%#llx");
|
||||
PPRINT(size, "%llu");
|
||||
PPRINT(vsize, "%llu");
|
||||
PPRINT(resident, "%llu");
|
||||
PPRINT(share, "%llu");
|
||||
PPRINT(rss, "%llu");
|
||||
PPRINT(rss_rlim, "%llu");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
glibtop_init();
|
||||
|
||||
pprint_get_cpu();
|
||||
|
||||
pprint_get_fsusage("/");
|
||||
|
||||
pprint_get_loadavg();
|
||||
|
||||
pprint_get_mem();
|
||||
|
||||
pprint_get_mountlist(TRUE);
|
||||
pprint_get_mountlist(FALSE);
|
||||
|
||||
pprint_get_msg_limits();
|
||||
|
||||
pprint_get_swap();
|
||||
|
||||
pprint_get_netlist();
|
||||
|
||||
pprint_get_netload("eth0");
|
||||
pprint_get_netload("ppp0");
|
||||
pprint_get_netload("<unknown>");
|
||||
/* pprint_get_sysinfo(); */
|
||||
|
||||
pprint_get_uptime();
|
||||
|
||||
pprint_get_proc_kernel(getpid());
|
||||
pprint_get_proc_mem(getpid());
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
51
examples/procargs.c
Normal file
51
examples/procargs.c
Normal file
@@ -0,0 +1,51 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/procargs.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
static void show_args(pid_t pid, unsigned max_len)
|
||||
{
|
||||
glibtop_proc_args buf;
|
||||
char ** const pargv = glibtop_get_proc_argv(&buf, pid, max_len);
|
||||
|
||||
char **parg = pargv;
|
||||
|
||||
printf("<%ld>\t", (long)pid);
|
||||
|
||||
while(*parg)
|
||||
{
|
||||
printf("\"%s\" ", *parg);
|
||||
parg++;
|
||||
}
|
||||
|
||||
putchar('\n');
|
||||
|
||||
g_strfreev(pargv);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glibtop_init();
|
||||
|
||||
show_args(getpid(), 0);
|
||||
show_args(getpid(), 15);
|
||||
|
||||
while(*++argv)
|
||||
{
|
||||
pid_t pid = strtol(*argv, NULL, 10);
|
||||
show_args(pid, 0);
|
||||
show_args(pid, 15);
|
||||
}
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
43
examples/proclist.c
Normal file
43
examples/proclist.c
Normal file
@@ -0,0 +1,43 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/proclist.h>
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
|
||||
static void print_pids(guint64 which, guint64 arg)
|
||||
{
|
||||
pid_t *pids;
|
||||
unsigned i;
|
||||
glibtop_proclist buf;
|
||||
|
||||
pids = glibtop_get_proclist(&buf, which, arg);
|
||||
|
||||
printf("glibtop_get_proclist(%#llx, %llu) -> %lu processes\n",
|
||||
which, arg, (unsigned long)buf.number);
|
||||
|
||||
for (i = 0; i < buf.number; ++i)
|
||||
printf("%u ", pids[i]);
|
||||
|
||||
putchar('\n');
|
||||
putchar('\n');
|
||||
|
||||
g_free(pids);
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
glibtop_init();
|
||||
|
||||
print_pids(GLIBTOP_KERN_PROC_ALL, 0);
|
||||
print_pids(GLIBTOP_KERN_PROC_UID, getuid());
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -21,7 +19,13 @@
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
@@ -31,9 +35,6 @@
|
||||
|
||||
#include <glibtop/procmap.h>
|
||||
|
||||
#ifdef GLIBTOP_INODEDB
|
||||
#include <glibtop/inodedb.h>
|
||||
#endif
|
||||
|
||||
#include <sys/resource.h>
|
||||
#include <sys/mman.h>
|
||||
@@ -45,9 +46,6 @@
|
||||
int
|
||||
main (int argc, char *argv [])
|
||||
{
|
||||
#ifdef GLIBTOP_INODEDB
|
||||
glibtop_inodedb *inodedb;
|
||||
#endif
|
||||
glibtop_proc_map procmap;
|
||||
glibtop_map_entry *maps;
|
||||
unsigned method, count, port, i;
|
||||
@@ -59,7 +57,7 @@ main (int argc, char *argv [])
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_PACKAGE);
|
||||
|
||||
|
||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
||||
|
||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
||||
@@ -81,11 +79,7 @@ main (int argc, char *argv [])
|
||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
||||
|
||||
if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
|
||||
glibtop_error ("Usage: %s pid", argv [0]);
|
||||
|
||||
#ifdef GLIBTOP_INODEDB
|
||||
inodedb = glibtop_inodedb_open (0, 0);
|
||||
#endif
|
||||
g_error ("Usage: %s pid", argv [0]);
|
||||
|
||||
fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid);
|
||||
|
||||
@@ -95,16 +89,10 @@ main (int argc, char *argv [])
|
||||
const char *filename = NULL;
|
||||
unsigned device, device_major, device_minor;
|
||||
char perm [5];
|
||||
|
||||
|
||||
if (maps [i].flags & (1L << GLIBTOP_MAP_ENTRY_FILENAME))
|
||||
filename = maps [i].filename;
|
||||
|
||||
#ifdef GLIBTOP_INODEDB
|
||||
if (inodedb && !filename)
|
||||
filename = glibtop_inodedb_lookup
|
||||
(inodedb, maps [i].device, maps [i].inode);
|
||||
#endif
|
||||
|
||||
perm [0] = (maps [i].perm & GLIBTOP_MAP_PERM_READ) ? 'r' : '-';
|
||||
perm [1] = (maps [i].perm & GLIBTOP_MAP_PERM_WRITE) ? 'w' : '-';
|
||||
perm [2] = (maps [i].perm & GLIBTOP_MAP_PERM_EXECUTE) ? 'x' : '-';
|
||||
@@ -120,10 +108,10 @@ main (int argc, char *argv [])
|
||||
|
||||
if (sizeof (void*) == 8)
|
||||
format = "%016lx-%016lx %016lx - "
|
||||
"%02x:%02x %08lu - %4s - %s\n";
|
||||
"%02x:%02x %08lu - %5.5s - %s\n";
|
||||
else
|
||||
format = "%08lx-%08lx %08lx - "
|
||||
"%02x:%02x %08lu - %4s - %s\n";
|
||||
"%02x:%02x %08lu - %5.5s - %s\n";
|
||||
|
||||
fprintf (stderr, format,
|
||||
(unsigned long) maps [i].start,
|
||||
@@ -151,8 +139,20 @@ main (int argc, char *argv [])
|
||||
perm);
|
||||
}
|
||||
|
||||
|
||||
g_print("smaps flags:%#llx size:%lluKiB rss:%lluKiB "
|
||||
"shared_clean:%lluKib shared_dirty:%lluKiB "
|
||||
"private_clean:%lluKiB private_dirty: %lluKiB\n",
|
||||
maps[i].flags,
|
||||
maps[i].size >> 10,
|
||||
maps[i].rss >> 10,
|
||||
maps[i].shared_clean >> 10,
|
||||
maps[i].shared_dirty >> 10,
|
||||
maps[i].private_clean >> 10,
|
||||
maps[i].private_dirty >> 10);
|
||||
|
||||
if (filename && (filename != maps [i].filename))
|
||||
g_free (filename);
|
||||
g_free ((void*)filename);
|
||||
}
|
||||
|
||||
g_free (maps);
|
||||
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -21,8 +19,14 @@
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <libintl.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
@@ -44,11 +48,11 @@ output (pid_t pid)
|
||||
double b_total, b_utime, b_stime;
|
||||
double s_total, s_utime, s_stime;
|
||||
double my_utime, my_stime;
|
||||
int ncpu;
|
||||
unsigned int ncpu;
|
||||
#endif
|
||||
|
||||
printf ("\n");
|
||||
|
||||
|
||||
glibtop_get_proc_state (&data.proc_state, pid);
|
||||
|
||||
printf ("Proc_State PID %5d (0x%08lx): "
|
||||
@@ -57,9 +61,9 @@ output (pid_t pid)
|
||||
data.proc_state.cmd, data.proc_state.state,
|
||||
(unsigned long) data.proc_state.uid,
|
||||
(unsigned long) data.proc_state.gid);
|
||||
|
||||
|
||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
||||
|
||||
|
||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
|
||||
(unsigned long) data.proc_uid.flags,
|
||||
@@ -71,7 +75,7 @@ output (pid_t pid)
|
||||
data.proc_uid.priority, data.proc_uid.nice);
|
||||
|
||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
||||
|
||||
|
||||
printf ("Proc_Mem PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu\n", (int) pid,
|
||||
(unsigned long) data.proc_mem.flags,
|
||||
@@ -81,7 +85,7 @@ output (pid_t pid)
|
||||
(unsigned long) data.proc_mem.share,
|
||||
(unsigned long) data.proc_mem.rss,
|
||||
(unsigned long) data.proc_mem.rss_rlim);
|
||||
|
||||
|
||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
||||
|
||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
||||
@@ -97,7 +101,7 @@ output (pid_t pid)
|
||||
(unsigned long) data.proc_segment.start_stack);
|
||||
|
||||
glibtop_get_proc_time (&data.proc_time, pid);
|
||||
|
||||
|
||||
printf ("Proc_Time PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
||||
(unsigned long) data.proc_time.flags,
|
||||
@@ -112,7 +116,7 @@ output (pid_t pid)
|
||||
(unsigned long) data.proc_time.frequency);
|
||||
|
||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
||||
|
||||
|
||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu\n", (int) pid,
|
||||
(unsigned long) data.proc_signal.flags,
|
||||
@@ -158,7 +162,7 @@ output (pid_t pid)
|
||||
ncpu = glibtop_global_server->ncpu;
|
||||
|
||||
glibtop_get_proc_time (&data.proc_time, pid);
|
||||
|
||||
|
||||
total = (unsigned long) data.proc_time.utime +
|
||||
(unsigned long) data.proc_time.stime;
|
||||
|
||||
@@ -235,12 +239,13 @@ main (int argc, char *argv [])
|
||||
{
|
||||
glibtop_proclist proclist;
|
||||
glibtop_sysdeps sysdeps;
|
||||
unsigned *ptr, pid, i;
|
||||
unsigned i;
|
||||
pid_t *ptr, pid;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_PACKAGE);
|
||||
|
||||
|
||||
glibtop_init ();
|
||||
|
||||
glibtop_get_sysdeps (&sysdeps);
|
||||
@@ -286,7 +291,7 @@ main (int argc, char *argv [])
|
||||
for (i = 0; i < proclist.number; i++) {
|
||||
|
||||
pid = ptr [i];
|
||||
|
||||
|
||||
output (pid);
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -24,13 +22,13 @@
|
||||
#include <config.h>
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/cpu.h>
|
||||
|
||||
#include <libgnome/gnome-i18n.h>
|
||||
|
||||
int
|
||||
main (int argc, char *argv [])
|
||||
{
|
||||
@@ -42,10 +40,6 @@ main (int argc, char *argv [])
|
||||
char separator [BUFSIZ], buffer [BUFSIZ];
|
||||
int ncpu, i;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_PACKAGE);
|
||||
|
||||
glibtop_init();
|
||||
|
||||
glibtop_get_cpu (&cpu);
|
||||
@@ -71,16 +65,16 @@ main (int argc, char *argv [])
|
||||
memset (separator, '-', 91);
|
||||
separator [92] = '\0';
|
||||
|
||||
sprintf (buffer, _("Ticks (%ld per second):"), frequency);
|
||||
sprintf (buffer, "Ticks (%ld per second):", frequency);
|
||||
|
||||
printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer,
|
||||
_("Total"), _("User"), _("Nice"), _("Sys"), _("Idle"), separator);
|
||||
"Total", "User", "Nice", "Sys", "Idle", separator);
|
||||
|
||||
printf (_("CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n"),
|
||||
printf ("CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n",
|
||||
(unsigned long) cpu.flags, total, user, nice, sys, idle);
|
||||
|
||||
for (i = 0; i < glibtop_global_server->ncpu; i++) {
|
||||
printf (_("CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"), i,
|
||||
printf ("CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n", i,
|
||||
(unsigned long) cpu.flags,
|
||||
(unsigned long) cpu.xcpu_total [i],
|
||||
(unsigned long) cpu.xcpu_user [i],
|
||||
@@ -97,11 +91,11 @@ main (int argc, char *argv [])
|
||||
|
||||
printf ("%s\n\n\n", separator);
|
||||
|
||||
printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", _("Percent:"),
|
||||
_("Total (%)"), _("User (%)"), _("Nice (%)"), _("Sys (%)"),
|
||||
_("Idle (%)"), separator);
|
||||
|
||||
printf (_("CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n"),
|
||||
printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", "Percent:",
|
||||
"Total (%)", "User (%)", "Nice (%)", "Sys (%)",
|
||||
"Idle (%)", separator);
|
||||
|
||||
printf ("CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n",
|
||||
(unsigned long) cpu.flags, (double) total * 100.0 / total,
|
||||
(double) user * 100.0 / total,
|
||||
(double) nice * 100.0 / total,
|
||||
@@ -117,13 +111,13 @@ main (int argc, char *argv [])
|
||||
p_sys = ((double) cpu.xcpu_sys [i]) * 100.0 / sys;
|
||||
p_idle = ((double) cpu.xcpu_idle [i]) * 100.0 / idle;
|
||||
|
||||
printf (_("CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"),
|
||||
printf ("CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n",
|
||||
i, (unsigned long) cpu.flags, p_total, p_user, p_nice,
|
||||
p_sys, p_idle);
|
||||
}
|
||||
|
||||
printf ("%s\n%-26s %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", separator,
|
||||
_("Spin:"), s_total * 100.0 / total, s_user * 100.0 / user,
|
||||
"Spin:", s_total * 100.0 / total, s_user * 100.0 / user,
|
||||
s_nice * 100.0 / nice, s_sys * 100.0 / sys, s_idle * 100.0 / idle);
|
||||
|
||||
exit (0);
|
||||
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -21,7 +19,13 @@
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
@@ -46,7 +50,7 @@ main (int argc, char *argv [])
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (GETTEXT_PACKAGE);
|
||||
|
||||
|
||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
||||
|
||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
||||
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -21,7 +19,13 @@
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <locale.h>
|
||||
#include <stdio.h>
|
||||
#include <libintl.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
@@ -40,7 +44,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef PROFILE_COUNT_EXPENSIVE
|
||||
#define PROFILE_COUNT_EXPENSIVE 10000L
|
||||
#define PROFILE_COUNT_EXPENSIVE (PROFILE_COUNT / 10)
|
||||
#endif
|
||||
|
||||
#define ELAPSED_UTIME ((unsigned long) elapsed_utime.tv_sec * 1000000 + (unsigned long) elapsed_utime.tv_usec)
|
||||
@@ -69,13 +73,13 @@ int
|
||||
main (int argc, char *argv [])
|
||||
{
|
||||
glibtop_union data;
|
||||
unsigned c, count, *ptr;
|
||||
unsigned c;
|
||||
struct rusage total_start, total_end;
|
||||
struct rusage rusage_start, rusage_end;
|
||||
struct timeval elapsed_utime, elapsed_stime;
|
||||
pid_t pid;
|
||||
|
||||
count = PROFILE_COUNT;
|
||||
pid = getpid ();
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
||||
@@ -85,7 +89,7 @@ main (int argc, char *argv [])
|
||||
"Feature", "Flags", "Count", "utime", "stime");
|
||||
printf ("-------------------------------------------"
|
||||
"---------------\n");
|
||||
|
||||
|
||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
||||
|
||||
getrusage (RUSAGE_SELF, &total_start);
|
||||
@@ -180,12 +184,10 @@ main (int argc, char *argv [])
|
||||
(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);
|
||||
pid_t* ptr = glibtop_get_proclist (&data.proclist, 0, 0);
|
||||
g_free (ptr);
|
||||
}
|
||||
|
||||
@@ -203,9 +205,26 @@ main (int argc, char *argv [])
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
||||
|
||||
pid = getpid ();
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
printf ("\n");
|
||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
|
||||
char** ptr = glibtop_get_netlist (&data.netlist);
|
||||
g_strfreev (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 ("Netlist (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);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
@@ -263,6 +282,27 @@ main (int argc, char *argv [])
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
|
||||
glibtop_map_entry* entries;
|
||||
entries = glibtop_get_proc_map (&data.proc_map, pid);
|
||||
g_free (entries);
|
||||
}
|
||||
|
||||
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_Map (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proc_map.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_proc_segment (&data.proc_segment, pid);
|
||||
|
||||
@@ -281,6 +321,27 @@ main (int argc, char *argv [])
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++) {
|
||||
char** argv;
|
||||
argv = glibtop_get_proc_argv (&data.proc_args, pid, 0);
|
||||
g_strfreev(argv);
|
||||
}
|
||||
|
||||
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_Args (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proc_args.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);
|
||||
|
||||
@@ -301,7 +362,7 @@ main (int argc, char *argv [])
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
||||
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
@@ -332,7 +393,7 @@ main (int argc, char *argv [])
|
||||
(unsigned long) data.proc_kernel.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
|
||||
getrusage (RUSAGE_SELF, &total_end);
|
||||
|
||||
libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime,
|
||||
|
35
examples/wd.c
Normal file
35
examples/wd.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/procwd.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
pid_t pid;
|
||||
glibtop_proc_wd buf;
|
||||
char **dirs, **dir;
|
||||
|
||||
if (argc < 2 || !(pid = strtoul(argv[1], NULL, 0)))
|
||||
pid = getpid();
|
||||
|
||||
glibtop_init();
|
||||
|
||||
dirs = glibtop_get_proc_wd(&buf, pid);
|
||||
|
||||
g_print("Process %u:\n"
|
||||
" - root: '%s'\n"
|
||||
" - exe: '%s'\n"
|
||||
" - working directories:\n",
|
||||
(unsigned)pid, buf.root, buf.exe);
|
||||
|
||||
for (dir = dirs; *dir; ++dir)
|
||||
g_print(" - '%s'\n", *dir);
|
||||
|
||||
g_strfreev(dirs);
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4])
|
||||
void|cpu|ulong(total,user,nice,sys,idle,iowait,irq,softirq,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4],xcpu_iowait[4],xcpu_irq[4],xcpu_softirq[4])
|
||||
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
|
||||
void|swap|ulong(total,used,free,pagein,pageout)
|
||||
void|uptime|double(uptime,idletime)
|
||||
@@ -6,7 +6,7 @@ void|loadavg|double(loadavg[3]):ulong(nr_running,nr_tasks,last_pid)
|
||||
void|shm_limits|ulong(shmmax,shmmin,shmmni,shmseg,shmall)
|
||||
void|msg_limits|ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql)
|
||||
void|sem_limits|ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem)
|
||||
unsigned *|proclist|ulong(number,size,total)|long(which,arg)
|
||||
pid_t*|proclist|ulong(number,size,total)|long(which,arg)
|
||||
void|proc_state|str(cmd):char(state):ulong(uid,gid)|pid_t(pid)
|
||||
void|proc_uid|long(uid,euid,gid,egid,pid,ppid,pgrp,session,tty,tpgid,priority,nice)|pid_t(pid)
|
||||
void|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid)
|
||||
@@ -16,7 +16,12 @@ void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_e
|
||||
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid)
|
||||
char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len)
|
||||
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
|
||||
glibtop_open_files_entry *|proc_open_files|ulong(number)|pid_t(pid)
|
||||
glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs)
|
||||
void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir
|
||||
void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface
|
||||
void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device)
|
||||
char **|netlist|unsigned(number)
|
||||
char **|proc_wd|ulong(number),str(root),str(exe)|pid_t(pid)
|
||||
guint16*|proc_affinity|ulong(number),int(all)|pid_t(pid)
|
||||
|
||||
|
74
glibtop.h
74
glibtop.h
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -24,10 +22,37 @@
|
||||
#ifndef __GLIBTOP_H__
|
||||
#define __GLIBTOP_H__
|
||||
|
||||
#include <glib/gmacros.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _glibtop glibtop;
|
||||
|
||||
/**
|
||||
* LIBGTOP_CHECK_VERSION
|
||||
* @major: Major version number
|
||||
* @minor: Minor version number
|
||||
* @micro: Micro version number
|
||||
*
|
||||
* Checks if the version given is compatable with this version of the
|
||||
* library. For example, LIBGTOP_CHECK_VERSION(1.2.3) would return TRUE
|
||||
* if the version is 1.2.5, and FALSE if 1.1.0. This can be used in
|
||||
* build tests.
|
||||
*
|
||||
**/
|
||||
|
||||
#include <libgtopconfig.h>
|
||||
|
||||
#define LIBGTOP_CHECK_VERSION(major, minor, micro) \
|
||||
(LIBGTOP_MAJOR_VERSION > (major) || \
|
||||
(LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION > (minor)) || \
|
||||
(LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION == (minor) && \
|
||||
LIBGTOP_MICRO_VERSION >= (micro)))
|
||||
|
||||
|
||||
#include <glibtop/global.h>
|
||||
|
||||
#include <glibtop_server.h>
|
||||
#include <glibtop/types.h>
|
||||
|
||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
||||
#include <glibtop_machine.h>
|
||||
@@ -37,22 +62,25 @@
|
||||
#define GLIBTOP_MOUNTENTRY_LEN 79
|
||||
#endif
|
||||
|
||||
typedef struct _glibtop glibtop;
|
||||
|
||||
#include <glibtop/sysdeps.h>
|
||||
|
||||
#include <glibtop/close.h>
|
||||
|
||||
|
||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
||||
|
||||
struct _glibtop
|
||||
{
|
||||
unsigned flags;
|
||||
unsigned method; /* Server Method */
|
||||
unsigned error_method; /* Error Method */
|
||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
||||
glibtop_machine machine; /* Machine dependent data */
|
||||
#endif
|
||||
int input [2]; /* Pipe client <- server */
|
||||
int output [2]; /* Pipe client -> server */
|
||||
int socket; /* Accepted connection of a socket */
|
||||
int ncpu; /* Number of CPUs, zero if single-processor */
|
||||
int real_ncpu; /* Real number of CPUs. Only ncpu are monitored */
|
||||
unsigned long os_version_code; /* Version code of the operating system */
|
||||
const char *name; /* Program name for error messages */
|
||||
const char *server_command; /* Command used to invoke server */
|
||||
@@ -66,13 +94,39 @@ struct _glibtop
|
||||
pid_t pid; /* PID of the server */
|
||||
};
|
||||
|
||||
#else /* !HAVE_GLIBTOP_MACHINE_H */
|
||||
|
||||
struct _glibtop
|
||||
{
|
||||
unsigned flags;
|
||||
unsigned method; /* Server Method */
|
||||
unsigned error_method; /* Error Method */
|
||||
int input [2]; /* Pipe client <- server */
|
||||
int output [2]; /* Pipe client -> server */
|
||||
int socket; /* Accepted connection of a socket */
|
||||
int ncpu; /* Number of CPUs, zero if single-processor */
|
||||
int real_ncpu; /* Real number of CPUs. Only ncpu are monitored */
|
||||
unsigned long os_version_code; /* Version code of the operating system */
|
||||
const char *name; /* Program name for error messages */
|
||||
const char *server_command; /* Command used to invoke server */
|
||||
const char *server_host; /* Host the server should run on */
|
||||
const char *server_user; /* Name of the user on the target host */
|
||||
const char *server_rsh; /* Command used to connect to the target host */
|
||||
unsigned long features; /* Server is required for this features */
|
||||
unsigned long server_port; /* Port on which daemon is listening */
|
||||
glibtop_sysdeps sysdeps; /* Detailed feature list */
|
||||
glibtop_sysdeps required; /* Required feature list */
|
||||
pid_t pid; /* PID of the server */
|
||||
};
|
||||
|
||||
#endif /* HAVE_GLIBTOP_MACHINE_H */
|
||||
|
||||
extern glibtop *glibtop_global_server;
|
||||
|
||||
extern const unsigned long glibtop_server_features;
|
||||
|
||||
#define glibtop_init() glibtop_init_r(&glibtop_global_server, 0, 0);
|
||||
|
||||
#define glibtop_close() glibtop_close_r(glibtop_global_server);
|
||||
glibtop *
|
||||
glibtop_init (void);
|
||||
|
||||
glibtop *
|
||||
glibtop_init_r (glibtop **server_ptr,
|
||||
@@ -84,4 +138,6 @@ glibtop_init_s (glibtop **server_ptr,
|
||||
unsigned long features,
|
||||
unsigned flags);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,2 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
@@ -1,2 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
@@ -3,8 +3,12 @@ glibtopdir = $(includedir)/libgtop-2.0/glibtop
|
||||
glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \
|
||||
sem_limits.h uptime.h command.h mem.h proclist.h \
|
||||
proctime.h shm_limits.h version.h cpu.h msg_limits.h \
|
||||
procmem.h procuid.h swap.h write.h error.h open.h \
|
||||
procsegment.h read.h sysdeps.h global.h \
|
||||
procsignal.h read_data.h union.h types.h gnuserv.h \
|
||||
procmem.h procuid.h swap.h \
|
||||
procsegment.h sysdeps.h global.h \
|
||||
procsignal.h union.h gnuserv.h \
|
||||
parameter.h mountlist.h fsusage.h procmap.h signal.h \
|
||||
inodedb.h sysinfo.h ppp.h procargs.h netload.h
|
||||
sysinfo.h ppp.h procargs.h netload.h \
|
||||
procwd.h procaffinity.h \
|
||||
netlist.h procopenfiles.h open.h
|
||||
|
||||
noinst_HEADERS = error.h write.h read_data.h read.h init_hooks.h
|
||||
|
@@ -1,50 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_ARRAY_H__
|
||||
#define __GLIBTOP_ARRAY_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_ARRAY_NUMBER 0
|
||||
#define GLIBTOP_ARRAY_SIZE 1
|
||||
#define GLIBTOP_ARRAY_TOTAL 2
|
||||
|
||||
#define GLIBTOP_MAX_ARRAY 3
|
||||
|
||||
typedef struct _glibtop_array glibtop_array;
|
||||
|
||||
struct _glibtop_array
|
||||
{
|
||||
guint64 flags,
|
||||
number, /* GLIBTOP_ARRAY_NUMBER */
|
||||
size, /* GLIBTOP_ARRAY_SIZE */
|
||||
total; /* GLIBTOP_ARRAY_TOTAL */
|
||||
};
|
||||
|
||||
#endif
|
@@ -1,7 +1,5 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
@@AUTOGEN_COMMENT@@
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -28,6 +26,8 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
void glibtop_close (void);
|
||||
|
||||
void glibtop_close_r (glibtop *server);
|
||||
|
||||
void glibtop_close_s (glibtop *server);
|
||||
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -57,8 +55,12 @@ G_BEGIN_DECLS
|
||||
#define GLIBTOP_CMND_FSUSAGE 21
|
||||
#define GLIBTOP_CMND_NETLOAD 22
|
||||
#define GLIBTOP_CMND_PPP 23
|
||||
#define GLIBTOP_CMND_NETLIST 24
|
||||
#define GLIBTOP_CMND_PROC_OPEN_FILES 25
|
||||
#define GLIBTOP_CMND_PROC_WD 26
|
||||
#define GLIBTOP_CMND_PROC_AFFINITY 27
|
||||
|
||||
#define GLIBTOP_MAX_CMND 24
|
||||
#define GLIBTOP_MAX_CMND 28
|
||||
|
||||
#define _GLIBTOP_PARAM_SIZE 16
|
||||
|
||||
@@ -82,7 +84,7 @@ union _glibtop_response_union
|
||||
|
||||
struct _glibtop_response
|
||||
{
|
||||
int64_t offset;
|
||||
gint64 offset;
|
||||
guint64 size, data_size;
|
||||
glibtop_response_union u;
|
||||
};
|
||||
|
@@ -1,91 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_COMPAT10_H__
|
||||
#define __GLIBTOP_COMPAT10_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/* glibtop_cpu */
|
||||
|
||||
#define GLIBTOP_XCPU_TOTAL GLIBTOP_CPU_XCPU_TOTAL
|
||||
#define GLIBTOP_XCPU_USER GLIBTOP_CPU_XCPU_USER
|
||||
#define GLIBTOP_XCPU_NICE GLIBTOP_CPU_XCPU_NICE
|
||||
#define GLIBTOP_XCPU_SYS GLIBTOP_CPU_XCPU_SYS
|
||||
#define GLIBTOP_XCPU_IDLE GLIBTOP_CPU_XCPU_IDLE
|
||||
#define GLIBTOP_XCPU_FLAGS GLIBTOP_CPU_XCPU_FLAGS
|
||||
|
||||
/* glibtop_proclist */
|
||||
|
||||
#define GLIBTOP_PROCLIST_NUMBER GLIBTOP_ARRAY_NUMBER
|
||||
#define GLIBTOP_PROCLIST_SIZE GLIBTOP_ARRAY_SIZE
|
||||
#define GLIBTOP_PROCLIST_TOTAL GLIBTOP_ARRAY_TOTAL
|
||||
|
||||
#define GLIBTOP_MAX_PROCLIST GLIBTOP_MAX_ARRAY
|
||||
|
||||
typedef struct _glibtop_array glibtop_proclist;
|
||||
|
||||
/* glibtop_mountlist */
|
||||
|
||||
#define GLIBTOP_MOUNTLIST_NUMBER GLIBTOP_ARRAY_NUMBER
|
||||
#define GLIBTOP_MOUNTLIST_SIZE GLIBTOP_ARRAY_SIZE
|
||||
#define GLIBTOP_MOUNTLIST_TOTAL GLIBTOP_ARRAY_TOTAL
|
||||
|
||||
#define GLIBTOP_MAX_MOUNTLIST GLIBTOP_MAX_ARRAY
|
||||
|
||||
typedef struct _glibtop_array glibtop_mountlist;
|
||||
|
||||
/* glibtop_proc_args */
|
||||
|
||||
#define GLIBTOP_PROC_ARGS_SIZE 0
|
||||
|
||||
#define GLIBTOP_MAX_PROC_ARGS 1
|
||||
|
||||
typedef struct _glibtop_array glibtop_proc_args;
|
||||
|
||||
/* glibtop_proc_map */
|
||||
|
||||
#define GLIBTOP_PROC_MAP_NUMBER GLIBTOP_ARRAY_NUMBER
|
||||
#define GLIBTOP_PROC_MAP_SIZE GLIBTOP_ARRAY_SIZE
|
||||
#define GLIBTOP_PROC_MAP_TOTAL GLIBTOP_ARRAY_TOTAL
|
||||
|
||||
#define GLIBTOP_MAX_PROC_MAP GLIBTOP_MAX_ARRAY
|
||||
|
||||
typedef struct _glibtop_array glibtop_proc_map;
|
||||
|
||||
/* glibtop_interface_names */
|
||||
|
||||
#define GLIBTOP_INTERFACE_NAMES_NUMBER GLIBTOP_ARRAY_NUMBER
|
||||
#define GLIBTOP_INTERFACE_NAMES_SIZE GLIBTOP_ARRAY_SIZE
|
||||
#define GLIBTOP_INTERFACE_NAMES_TOTAL GLIBTOP_ARRAY_TOTAL
|
||||
|
||||
#define GLIBTOP_MAX_INTERFACE_NAMES GLIBTOP_MAX_ARRAY
|
||||
|
||||
typedef struct _glibtop_array glibtop_interface_names;
|
||||
|
||||
#endif
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -41,33 +39,49 @@ G_BEGIN_DECLS
|
||||
#define GLIBTOP_XCPU_NICE 8
|
||||
#define GLIBTOP_XCPU_SYS 9
|
||||
#define GLIBTOP_XCPU_IDLE 10
|
||||
#define GLIBTOP_XCPU_FLAGS 11
|
||||
#define GLIBTOP_XCPU_FLAGS 11
|
||||
|
||||
#define GLIBTOP_MAX_CPU 12
|
||||
#define GLIBTOP_CPU_IOWAIT 12
|
||||
#define GLIBTOP_CPU_IRQ 13
|
||||
#define GLIBTOP_CPU_SOFTIRQ 14
|
||||
#define GLIBTOP_XCPU_IOWAIT 15
|
||||
#define GLIBTOP_XCPU_IRQ 16
|
||||
#define GLIBTOP_XCPU_SOFTIRQ 17
|
||||
|
||||
/* Nobody should really be using more than 4 processors. */
|
||||
#define GLIBTOP_NCPU 4
|
||||
#define GLIBTOP_MAX_CPU 18
|
||||
|
||||
/* Nobody should really be using more than 4 processors.
|
||||
Yes we are :)
|
||||
Nobody should really be using more than 32 processors.
|
||||
*/
|
||||
#define GLIBTOP_NCPU 32
|
||||
|
||||
typedef struct _glibtop_cpu glibtop_cpu;
|
||||
|
||||
struct _glibtop_cpu
|
||||
{
|
||||
guint64 flags,
|
||||
total, /* GLIBTOP_CPU_TOTAL */
|
||||
user, /* GLIBTOP_CPU_USER */
|
||||
nice, /* GLIBTOP_CPU_NICE */
|
||||
sys, /* GLIBTOP_CPU_SYS */
|
||||
idle, /* GLIBTOP_CPU_IDLE */
|
||||
frequency, /* GLIBTOP_CPU_FREQUENCY */
|
||||
xcpu_total [GLIBTOP_NCPU], /* GLIBTOP_XCPU_TOTAL */
|
||||
xcpu_user [GLIBTOP_NCPU], /* GLIBTOP_XCPU_USER */
|
||||
xcpu_nice [GLIBTOP_NCPU], /* GLIBTOP_XCPU_NICE */
|
||||
xcpu_sys [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SYS */
|
||||
xcpu_idle [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IDLE */
|
||||
xcpu_flags; /* GLIBTOP_XCPU_IDLE */
|
||||
guint64 flags;
|
||||
guint64 total; /* GLIBTOP_CPU_TOTAL */
|
||||
guint64 user; /* GLIBTOP_CPU_USER */
|
||||
guint64 nice; /* GLIBTOP_CPU_NICE */
|
||||
guint64 sys; /* GLIBTOP_CPU_SYS */
|
||||
guint64 idle; /* GLIBTOP_CPU_IDLE */
|
||||
guint64 iowait; /* GLIBTOP_CPU_IOWAIT */
|
||||
guint64 irq; /* GLIBTOP_CPU_IRQ */
|
||||
guint64 softirq; /* GLIBTOP_CPU_SOFTIRQ */
|
||||
guint64 frequency; /* GLIBTOP_CPU_FREQUENCY */
|
||||
guint64 xcpu_total [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_TOTAL */
|
||||
guint64 xcpu_user [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_USER */
|
||||
guint64 xcpu_nice [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_NICE */
|
||||
guint64 xcpu_sys [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_SYS */
|
||||
guint64 xcpu_idle [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IDLE */
|
||||
guint64 xcpu_iowait [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IOWAIT */
|
||||
guint64 xcpu_irq [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IRQ */
|
||||
guint64 xcpu_softirq [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_SOFTIRQ */
|
||||
guint64 xcpu_flags; /* GLIBTOP_XCPU_IDLE */
|
||||
};
|
||||
|
||||
#define glibtop_get_cpu(cpu) glibtop_get_cpu_l(glibtop_global_server, cpu)
|
||||
void glibtop_get_cpu(glibtop_cpu *buf);
|
||||
|
||||
#if GLIBTOP_SUID_CPU
|
||||
#define glibtop_get_cpu_r glibtop_get_cpu_p
|
||||
@@ -78,23 +92,13 @@ struct _glibtop_cpu
|
||||
void glibtop_get_cpu_l (glibtop *server, glibtop_cpu *buf);
|
||||
|
||||
#if GLIBTOP_SUID_CPU
|
||||
void glibtop_init_cpu_p (glibtop *server);
|
||||
void _glibtop_init_cpu_p (glibtop *server);
|
||||
void glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf);
|
||||
#else
|
||||
void glibtop_init_cpu_s (glibtop *server);
|
||||
void _glibtop_init_cpu_s (glibtop *server);
|
||||
void glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
|
||||
/* You need to link with -lgtop_names to get this stuff here. */
|
||||
|
||||
extern const char *glibtop_names_cpu [];
|
||||
extern const unsigned glibtop_types_cpu [];
|
||||
extern const char *glibtop_labels_cpu [];
|
||||
extern const char *glibtop_descriptions_cpu [];
|
||||
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@@ -1,5 +1,3 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
@@ -21,6 +19,11 @@
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This is private API
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_ERROR_H__
|
||||
#define __GLIBTOP_ERROR_H__
|
||||
|
||||
@@ -28,108 +31,20 @@
|
||||
|
||||
G_BEGIN_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, const char *format, va_list args) G_GNUC_NORETURN;
|
||||
void glibtop_warn_vr (glibtop *server, const char *format, va_list args);
|
||||
void glibtop_error_io_vr (glibtop *server, const char *format, int, va_list args) G_GNUC_NORETURN;
|
||||
void glibtop_warn_io_vr (glibtop *server, const char *format, int, va_list args);
|
||||
|
||||
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_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN;
|
||||
void glibtop_warn_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
|
||||
void glibtop_error_io_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN;
|
||||
void glibtop_warn_io_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
|
||||
|
||||
void glibtop_error_io_vr (glibtop *server, char *format, int, va_list args);
|
||||
void glibtop_warn_io_vr (glibtop *server, char *format, int, va_list args);
|
||||
|
||||
static void G_GNUC_UNUSED
|
||||
glibtop_error_r (glibtop *server, char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
glibtop_error_vr (server, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void G_GNUC_UNUSED
|
||||
glibtop_warn_r (glibtop *server, char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
glibtop_warn_vr (server, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void G_GNUC_UNUSED
|
||||
glibtop_error_io_r (glibtop *server, char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
glibtop_error_io_vr (server, format, errno, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void G_GNUC_UNUSED
|
||||
glibtop_warn_io_r (glibtop *server, char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
glibtop_warn_io_vr (server, format, errno, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
#define glibtop_error(p1, args...) glibtop_error_r(glibtop_global_server , p1 , ## args)
|
||||
#define glibtop_warn(p1, args...) glibtop_warn_r(glibtop_global_server , p1 , ## args)
|
||||
|
||||
#define glibtop_error_io(p1, args...) glibtop_error_io_r(glibtop_global_server , p1 , ## args)
|
||||
#define glibtop_warn_io(p1, args...) glibtop_warn_io_r(glibtop_global_server , p1 , ## args)
|
||||
|
||||
#else /* no __GNUC__ */
|
||||
|
||||
static void
|
||||
glibtop_error (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
glibtop_error_vr (glibtop_global_server, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void
|
||||
glibtop_warn (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
glibtop_warn_vr (glibtop_global_server, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void
|
||||
glibtop_error_io (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
glibtop_error_io_vr (glibtop_global_server, format, errno, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void
|
||||
glibtop_warn_io (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
glibtop_warn_io_vr (glibtop_global_server, format, errno, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
#endif /* no __GNUC__ */
|
||||
void glibtop_error (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN;
|
||||
void glibtop_warn (const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
void glibtop_error_io (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN;
|
||||
void glibtop_warn_io (const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@@ -1,95 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_ERRORS_H__
|
||||
#define __GLIBTOP_ERRORS_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
#include <glib/gerror.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_ERROR glibtop_error_quark ()
|
||||
|
||||
GQuark glibtop_error_quark (void) G_GNUC_CONST;
|
||||
|
||||
typedef enum {
|
||||
GLIBTOP_ERROR_NO_ERROR = 0,
|
||||
GLIBTOP_ERROR_UNKNOWN,
|
||||
GLIBTOP_ERROR_INVALID_ARGUMENT,
|
||||
GLIBTOP_ERROR_NO_SUCH_PARAMETER,
|
||||
GLIBTOP_ERROR_READONLY_VALUE,
|
||||
GLIBTOP_ERROR_SIZE_MISMATCH,
|
||||
|
||||
GLIBTOP_ERROR_SERVER_COMM_FAILURE,
|
||||
|
||||
GLIBTOP_ERROR_NO_SUCH_PROCESS,
|
||||
|
||||
GLIBTOP_ERROR_NO_KERNEL_SUPPORT,
|
||||
GLIBTOP_ERROR_INCOMPATIBLE_KERNEL,
|
||||
|
||||
GLIBTOP_ERROR_NO_SUCH_BACKEND,
|
||||
GLIBTOP_ERROR_NOT_IMPLEMENTED,
|
||||
GLIBTOP_ERROR_NO_BACKEND_OPENED,
|
||||
|
||||
GLIBTOP_ERROR_DEMARSHAL_ERROR
|
||||
} glibtop_error;
|
||||
|
||||
void
|
||||
glibtop_error_vl (glibtop_client *client, glibtop_error code,
|
||||
const char *format, va_list args);
|
||||
|
||||
void
|
||||
glibtop_error_io_vl (glibtop_client *client, glibtop_error code,
|
||||
int io_errno, const char *format, va_list args);
|
||||
|
||||
void
|
||||
glibtop_warn_vl (glibtop_client *client, glibtop_error code,
|
||||
const char *format, va_list args);
|
||||
|
||||
void
|
||||
glibtop_warn_io_vl (glibtop_client *client, glibtop_error code,
|
||||
int io_errno, const char *format, va_list args);
|
||||
|
||||
void
|
||||
glibtop_error_l (glibtop_client *client, glibtop_error code,
|
||||
char *format, ...);
|
||||
|
||||
void
|
||||
glibtop_warn_l (glibtop_client *client, glibtop_error code,
|
||||
char *format, ...);
|
||||
|
||||
void
|
||||
glibtop_error_io_l (glibtop_client *client, glibtop_error code,
|
||||
char *format, ...);
|
||||
|
||||
void
|
||||
glibtop_warn_io_l (glibtop_client *client, glibtop_error code,
|
||||
char *format, ...);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
@@ -1,7 +1,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.
|
||||
|
||||
@@ -34,38 +31,33 @@ G_BEGIN_DECLS
|
||||
#define GLIBTOP_FSUSAGE_BAVAIL 2
|
||||
#define GLIBTOP_FSUSAGE_FILES 3
|
||||
#define GLIBTOP_FSUSAGE_FFREE 4
|
||||
#define GLIBTOP_FSUSAGE_BLOCK_SIZE 5
|
||||
#define GLIBTOP_FSUSAGE_READ 6
|
||||
#define GLIBTOP_FSUSAGE_WRITE 7
|
||||
#define GLIBTOP_MAX_FSUSAGE 8
|
||||
|
||||
#define GLIBTOP_MAX_FSUSAGE 5
|
||||
|
||||
typedef struct _glibtop_fsusage glibtop_fsusage;
|
||||
|
||||
struct _glibtop_fsusage
|
||||
{
|
||||
guint64 flags,
|
||||
blocks, /* Total blocks. */
|
||||
bfree, /* Free blocks available to superuser. */
|
||||
bavail, /* Free blocks available to non-superuser. */
|
||||
files, /* Total file nodes. */
|
||||
ffree; /* Free file nodes. */
|
||||
guint64 flags;
|
||||
guint64 blocks; /* Total number of blocks. */
|
||||
guint64 bfree; /* Free blocks available to superuser. */
|
||||
guint64 bavail; /* Free blocks available to non-superuser. */
|
||||
guint64 files; /* Total file nodes. */
|
||||
guint64 ffree; /* Free file nodes. */
|
||||
guint32 block_size; /* Size of a block in bytes. */
|
||||
guint64 read, write; /* Total blocks read and written */
|
||||
};
|
||||
|
||||
#define glibtop_get_fsusage(fsusage,disk) glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk)
|
||||
void glibtop_get_fsusage(glibtop_fsusage *buf, const char *mount_dir);
|
||||
|
||||
#define glibtop_get_fsusage_r glibtop_get_fsusage_s
|
||||
|
||||
void glibtop_get_fsusage_l (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
||||
void glibtop_get_fsusage_s (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
|
||||
/* You need to link with -lgtop_names to get this stuff here. */
|
||||
|
||||
extern const char *glibtop_names_fsusage [];
|
||||
extern const unsigned glibtop_types_fsusage [];
|
||||
extern const char *glibtop_labels_fsusage [];
|
||||
extern const char *glibtop_descriptions_fsusage [];
|
||||
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@@ -1,102 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_BACKEND_INFO_H__
|
||||
#define __GLIBTOP_BACKEND_INFO_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
#include <glibtop/glibtop-server.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _glibtop_backend_info glibtop_backend_info;
|
||||
typedef struct _glibtop_backend_entry glibtop_backend_entry;
|
||||
typedef struct _glibtop_backend_module glibtop_backend_module;
|
||||
|
||||
typedef struct _glibtop_call_vector glibtop_call_vector;
|
||||
|
||||
typedef int (*glibtop_backend_open_func_t) (glibtop_server *, glibtop_backend *,
|
||||
guint64, const char **);
|
||||
typedef int (*glibtop_backend_close_func_t) (glibtop_server *, glibtop_backend *,
|
||||
glibtop_closure *);
|
||||
|
||||
struct _glibtop_backend_info
|
||||
{
|
||||
const char *name;
|
||||
glibtop_backend_open_func_t open;
|
||||
glibtop_backend_close_func_t close;
|
||||
glibtop_call_vector *call_vector;
|
||||
};
|
||||
|
||||
#ifdef _IN_LIBGTOP
|
||||
|
||||
#include <gmodule.h>
|
||||
|
||||
/* private structure */
|
||||
struct _glibtop_backend_module
|
||||
{
|
||||
int refcount;
|
||||
GModule *module;
|
||||
GSList *extra_modules;
|
||||
};
|
||||
|
||||
struct _glibtop_backend_entry
|
||||
{
|
||||
char *name;
|
||||
char *libtool_name;
|
||||
char *shlib_name;
|
||||
|
||||
GSList *extra_libs;
|
||||
|
||||
/* This is const since you must not attempt to
|
||||
* write into gmodule loaded memory. */
|
||||
const glibtop_backend_info *info;
|
||||
|
||||
/* private pointer */
|
||||
glibtop_backend_module *_priv;
|
||||
};
|
||||
|
||||
#endif /* _IN_LIBGTOP */
|
||||
|
||||
long
|
||||
glibtop_register_backend (glibtop_backend_entry *entry);
|
||||
|
||||
void
|
||||
glibtop_unregister_backend (long id);
|
||||
|
||||
glibtop_backend_entry *
|
||||
glibtop_backend_by_id (long id);
|
||||
|
||||
glibtop_backend_entry *
|
||||
glibtop_backend_by_name (const char *backend_name);
|
||||
|
||||
void
|
||||
glibtop_init_backends (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
@@ -1,85 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 2.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_BACKEND_H__
|
||||
#define __GLIBTOP_BACKEND_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_TYPE_BACKEND (glibtop_backend_get_type ())
|
||||
#define GLIBTOP_BACKEND(backend) (G_TYPE_CHECK_INSTANCE_CAST ((backend), GLIBTOP_TYPE_BACKEND, glibtop_backend))
|
||||
#define GLIBTOP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLIBTOP_TYPE_BACKEND, glibtop_backend_class))
|
||||
#define GLIBTOP_IS_BACKEND(backend) (G_TYPE_CHECK_INSTANCE_TYPE ((backend), GLIBTOP_TYPE_BACKEND))
|
||||
#define GLIBTOP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLIBTOP_TYPE_BACKEND))
|
||||
#define GLIBTOP_BACKEND_GET_CLASS(backend)(G_TYPE_INSTANCE_GET_CLASS ((backend), GLIBTOP_TYPE_BACKEND, glibtop_backend_class))
|
||||
|
||||
#define GLIBTOP_BACKEND_TYPE(backend) (G_TYPE_FROM_INSTANCE (backend))
|
||||
#define GLIBTOP_BACKEND_TYPE_NAME(backend)(g_type_name (GLIBTOP_BACKEND_TYPE (backend)))
|
||||
|
||||
/* --- typedefs & structures --- */
|
||||
typedef struct _glibtop_backend glibtop_backend;
|
||||
typedef struct _glibtop_backend_class glibtop_backend_class;
|
||||
typedef struct _glibtop_backend_private glibtop_backend_private;
|
||||
|
||||
#include <glibtop/glibtop-backend-info.h>
|
||||
|
||||
struct _glibtop_backend
|
||||
{
|
||||
GObject object;
|
||||
|
||||
/* <private> */
|
||||
glibtop_backend_private *_priv;
|
||||
};
|
||||
|
||||
struct _glibtop_backend_class
|
||||
{
|
||||
GObjectClass parent_class;;
|
||||
};
|
||||
|
||||
GType
|
||||
glibtop_backend_get_type (void);
|
||||
|
||||
glibtop_backend *
|
||||
glibtop_backend_get (const char *backend_name, guint64 features,
|
||||
const char **backend_args, GError **error);
|
||||
|
||||
void
|
||||
glibtop_backend_set_closure_data (glibtop_backend *backend, glibtop_closure *closure);
|
||||
|
||||
glibtop_closure *
|
||||
glibtop_backend_get_closure_data (glibtop_backend *backend);
|
||||
|
||||
glibtop_call_vector *
|
||||
glibtop_backend_get_call_vector (glibtop_backend *backend);
|
||||
|
||||
glibtop_server *
|
||||
glibtop_backend_get_server (glibtop_backend *backend);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
@@ -1,97 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 2.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_CLIENT_H__
|
||||
#define __GLIBTOP_CLIENT_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include <glibtop/glibtop-backend.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_TYPE_CLIENT (glibtop_client_get_type ())
|
||||
#define GLIBTOP_CLIENT(client) (G_TYPE_CHECK_INSTANCE_CAST ((client), GLIBTOP_TYPE_CLIENT, glibtop_client))
|
||||
#define GLIBTOP_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLIBTOP_TYPE_CLIENT, glibtop_client_class))
|
||||
#define GLIBTOP_IS_CLIENT(client) (G_TYPE_CHECK_INSTANCE_TYPE ((client), GLIBTOP_TYPE_CLIENT))
|
||||
#define GLIBTOP_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLIBTOP_TYPE_CLIENT))
|
||||
#define GLIBTOP_CLIENT_GET_CLASS(client)(G_TYPE_INSTANCE_GET_CLASS ((client), GLIBTOP_TYPE_CLIENT, glibtop_client_class))
|
||||
|
||||
#define GLIBTOP_CLIENT_TYPE(client) (G_TYPE_FROM_INSTANCE (client))
|
||||
#define GLIBTOP_CLIENT_TYPE_NAME(client)(g_type_name (GLIBTOP_CLIENT_TYPE (client)))
|
||||
|
||||
/* --- typedefs & structures --- */
|
||||
typedef struct _glibtop_client glibtop_client;
|
||||
typedef struct _glibtop_client_class glibtop_client_class;
|
||||
typedef struct _glibtop_client_private glibtop_client_private;
|
||||
|
||||
struct _glibtop_client
|
||||
{
|
||||
GObject object;
|
||||
|
||||
/* <public> */
|
||||
GError *error;
|
||||
|
||||
/* <private> */
|
||||
glibtop_client_private *_priv;
|
||||
};
|
||||
|
||||
struct _glibtop_client_class
|
||||
{
|
||||
GObjectClass parent_class;;
|
||||
|
||||
void (*error) (glibtop_client *client, GError *error);
|
||||
void (*warning) (glibtop_client *client, GError *error);
|
||||
};
|
||||
|
||||
GType
|
||||
glibtop_client_get_type (void);
|
||||
|
||||
glibtop_client *
|
||||
glibtop_client_new (void);
|
||||
|
||||
void
|
||||
glibtop_client_propagate_error (glibtop_client *client, GError *error);
|
||||
|
||||
void
|
||||
glibtop_client_propagate_warning (glibtop_client *client, GError *error);
|
||||
|
||||
void
|
||||
glibtop_client_open_backend (glibtop_client *client, const char *backend_name,
|
||||
guint64 features, const char **backend_args);
|
||||
|
||||
void
|
||||
glibtop_client_add_backend (glibtop_client *client,
|
||||
glibtop_backend *backend);
|
||||
|
||||
void
|
||||
glibtop_client_remove_backend (glibtop_client *client,
|
||||
glibtop_backend *backend);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
@@ -1,75 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 2.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SERVER_H__
|
||||
#define __GLIBTOP_SERVER_H__
|
||||
|
||||
#include <glibtop/global.h>
|
||||
#include <glibtop/sysdeps.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _glibtop_server glibtop_server;
|
||||
typedef struct _glibtop_server_info glibtop_server_info;
|
||||
|
||||
typedef struct _glibtop_closure glibtop_closure;
|
||||
|
||||
typedef int (*glibtop_init_func_t) (glibtop_server *, glibtop_closure *);
|
||||
|
||||
extern glibtop_init_func_t _glibtop_init_hook_s [];
|
||||
extern glibtop_init_func_t _glibtop_init_hook_p [];
|
||||
|
||||
struct _glibtop_server_info
|
||||
{
|
||||
int ncpu; /* Number of CPUs, zero if single-processor */
|
||||
unsigned long features; /* Server is required for this features */
|
||||
glibtop_sysdeps sysdeps; /* Detailed feature list */
|
||||
glibtop_sysdeps required; /* Required feature list */
|
||||
glibtop_sysdeps wanted; /* We only want this features */
|
||||
};
|
||||
|
||||
struct _glibtop_server
|
||||
{
|
||||
glibtop_server_info *info;
|
||||
|
||||
int refcount;
|
||||
unsigned flags;
|
||||
const char *name;
|
||||
|
||||
void *_priv;
|
||||
};
|
||||
|
||||
glibtop_server *
|
||||
glibtop_server_new (void);
|
||||
|
||||
void
|
||||
glibtop_server_ref (glibtop_server *server);
|
||||
|
||||
void
|
||||
glibtop_server_unref (glibtop_server *server);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user