Compare commits
1115 Commits
LIBGTOP_1_
...
affinity
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
771f0848b3 | ||
|
|
fcee021a2d | ||
|
|
4c6b506488 | ||
|
|
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 | ||
|
|
aac28131d8 | ||
|
|
a3c4323de4 | ||
|
|
6ae17d92b2 | ||
|
|
0fa183a762 | ||
|
|
567da04f9c | ||
|
|
a046e42f3f | ||
|
|
c881020dc3 | ||
|
|
116348de15 | ||
|
|
b48b12e12b | ||
|
|
1c61b27933 | ||
|
|
7b86568eb0 | ||
|
|
60ccb2ca26 | ||
|
|
1cc7293497 | ||
|
|
62ee900299 | ||
|
|
00f9d271f2 | ||
|
|
16073f4179 | ||
|
|
a3a2c8cf21 | ||
|
|
d9aca3dd2c | ||
|
|
a931b14a9b | ||
|
|
87f2a442d9 | ||
|
|
d06db7bd7a | ||
|
|
49aa40e524 | ||
|
|
955b2d5c82 | ||
|
|
e25dba32e2 | ||
|
|
bf20705511 | ||
|
|
53a7a2e40c | ||
|
|
e8d4ffed34 | ||
|
|
056a7e5cc5 | ||
|
|
c1fd4120c5 | ||
|
|
d076fa81cc | ||
|
|
79fdd6cd3b | ||
|
|
291d63f2b9 | ||
|
|
f93de2fd0b | ||
|
|
cea6b6292d | ||
|
|
9ea55a3f4d | ||
|
|
310a51dd8f | ||
|
|
0cd19c9db1 | ||
|
|
04290020ea | ||
|
|
315397219b | ||
|
|
b836fa0c60 | ||
|
|
765064dd80 | ||
|
|
02d7b4b3de | ||
|
|
fc130166dd | ||
|
|
1625b5304f | ||
|
|
3a3ac84cae | ||
|
|
db6de7b017 | ||
|
|
a544c1ddb0 | ||
|
|
31133cc3dc | ||
|
|
58b323cfab | ||
|
|
07d991f383 | ||
|
|
a50e5fdc9a | ||
|
|
10305e7fd0 | ||
|
|
33fb22edd3 | ||
|
|
b2283f7c79 | ||
|
|
adc9a55578 | ||
|
|
ac8f958305 | ||
|
|
40a615e1df | ||
|
|
b67e4c7f7d | ||
|
|
ba36a20cb8 | ||
|
|
af8478ca5f | ||
|
|
532aec1891 | ||
|
|
cdfa0dfa1f | ||
|
|
21c4e155dd | ||
|
|
45273d9a44 | ||
|
|
80aeb305c2 | ||
|
|
4c8ae9e25c | ||
|
|
bae16b467f | ||
|
|
5e28a55218 | ||
|
|
4d0bca118a | ||
|
|
c3011b646c | ||
|
|
b94a36c719 | ||
|
|
7aaa4454ab | ||
|
|
6572ee1baf | ||
|
|
c95d39dde7 | ||
|
|
a32503df9b | ||
|
|
d31e33d4bf | ||
|
|
09becf3b7d | ||
|
|
6e9589702f | ||
|
|
ab7f98d2ff | ||
|
|
75b2832076 | ||
|
|
142a323364 | ||
|
|
3a4a550e06 | ||
|
|
2fc6e07c0f | ||
|
|
2d4db7f03f | ||
|
|
9b87f4586e | ||
|
|
9ff3af644c | ||
|
|
ffb5f13711 | ||
|
|
6dbc1e0d4a | ||
|
|
c660c08b6f | ||
|
|
2ce38167e1 | ||
|
|
7cad52aaa0 | ||
|
|
61f8cb7ff2 | ||
|
|
f05ee369d5 | ||
|
|
c3bfcf38a8 | ||
|
|
1552efa493 | ||
|
|
9bb1b80751 | ||
|
|
40140ad487 | ||
|
|
47e518d612 | ||
|
|
4e4cf10334 | ||
|
|
b02653eef9 | ||
|
|
bfb2d1b25c | ||
|
|
1042379d6d | ||
|
|
240d07da28 | ||
|
|
fb2247a58b | ||
|
|
c04ee88f00 | ||
|
|
1b44968284 | ||
|
|
47bad7fac1 | ||
|
|
7691d85225 | ||
|
|
d0863b7406 | ||
|
|
7afa0e0be7 | ||
|
|
0c260bfef1 | ||
|
|
312baf1bc2 | ||
|
|
1dc0883059 | ||
|
|
222b93c33f | ||
|
|
db93479a51 | ||
|
|
236d2b18e7 | ||
|
|
08956770d2 | ||
|
|
7a7c6baf55 | ||
|
|
5bfb085021 | ||
|
|
dfb9d6f967 | ||
|
|
530cc00ae7 | ||
|
|
a3557112a7 | ||
|
|
3f34aafc6e | ||
|
|
d6630b9f7a | ||
|
|
3b7c109916 | ||
|
|
c5fcc9aad6 | ||
|
|
f4fc67f85c | ||
|
|
bcc4ec968e | ||
|
|
543b3b9160 | ||
|
|
aac46b6daf | ||
|
|
407514e4d7 | ||
|
|
1491ccc594 | ||
|
|
14b462fdc5 | ||
|
|
1c64d5c704 | ||
|
|
21ecc84514 | ||
|
|
b7acfa6441 | ||
|
|
de0391e6a4 | ||
|
|
56e7068a8b | ||
|
|
ed9140570e | ||
|
|
ae5ecfe538 | ||
|
|
fdd8cb8d27 | ||
|
|
2c986b988f | ||
|
|
46cf060788 | ||
|
|
6ded77b938 | ||
|
|
b730035db5 | ||
|
|
38755e23a3 | ||
|
|
94a24147c7 | ||
|
|
5e08479a71 | ||
|
|
bb24644744 | ||
|
|
eb8fd1d1be | ||
|
|
f349d3a624 | ||
|
|
a0b236f4f7 | ||
|
|
e5e1729baf | ||
|
|
b035190e66 | ||
|
|
427504e7ac | ||
|
|
33c49d7c14 | ||
|
|
c24b7f3bc4 | ||
|
|
e76a450779 | ||
|
|
c0fc0f4cb4 | ||
|
|
5c597901ad | ||
|
|
d3145d1b8b | ||
|
|
1ac0f147b7 | ||
|
|
fdb4a824fc | ||
|
|
2449e92804 | ||
|
|
7846ac218d | ||
|
|
5b34c23069 | ||
|
|
b6ee365761 | ||
|
|
e4f5543f9d | ||
|
|
a7f8debaa2 | ||
|
|
34e8918003 | ||
|
|
478be2d170 | ||
|
|
8a78a93e0c | ||
|
|
622eb0ea5b | ||
|
|
455118131e | ||
|
|
74ab42d100 | ||
|
|
d294298c7e | ||
|
|
4befe086c4 | ||
|
|
98930be564 | ||
|
|
16b81f0d91 | ||
|
|
dfd678599f | ||
|
|
6e4f80b8e2 | ||
|
|
f704c4becf | ||
|
|
9ab1889a3f | ||
|
|
201e78d00a | ||
|
|
d8cb698ae4 | ||
|
|
876b2725c0 | ||
|
|
c06a084fcf | ||
|
|
cee38c53bc | ||
|
|
81b009733e | ||
|
|
035b387463 | ||
|
|
158dec2b2a | ||
|
|
752d5b47d2 | ||
|
|
c15ff3f342 | ||
|
|
7a7e7d1bc3 | ||
|
|
6511ad348b | ||
|
|
5b1eb2290a | ||
|
|
00aed22f17 | ||
|
|
15c1ad1bd9 | ||
|
|
e1d552d9f7 | ||
|
|
60749e0bef | ||
|
|
bd01a45455 | ||
|
|
54529c2425 | ||
|
|
cf62a380bf | ||
|
|
ab2a4e6e6a | ||
|
|
7a9428a0e5 | ||
|
|
da80f53deb | ||
|
|
ae15c4159c | ||
|
|
eaee97b2bf | ||
|
|
94882bbc60 | ||
|
|
1e02e69b4a | ||
|
|
8277cc4d67 | ||
|
|
29858d29d8 | ||
|
|
984baf22f2 | ||
|
|
cdd3862061 | ||
|
|
c7cec23cf4 | ||
|
|
55b6e2e082 | ||
|
|
7d481fc8e9 | ||
|
|
50a02de454 | ||
|
|
1fcdf1af86 | ||
|
|
c62a74fb5a | ||
|
|
608ac42afe | ||
|
|
99a3b1fe82 | ||
|
|
ec00e62a54 | ||
|
|
29060eb6ce | ||
|
|
5301e8a86a | ||
|
|
dc103ad41d | ||
|
|
de91c11f87 | ||
|
|
b6091762ac | ||
|
|
4719557dae | ||
|
|
f4a05d8fc9 | ||
|
|
0ff66c2eaa | ||
|
|
a40a438ec8 | ||
|
|
718cd38098 | ||
|
|
6b88dcd4aa | ||
|
|
29b428608d | ||
|
|
e487fc30f4 | ||
|
|
578e5a5194 | ||
|
|
fb08ec7144 | ||
|
|
a51ffb6b73 | ||
|
|
0ecdde94c2 | ||
|
|
969260c9a9 | ||
|
|
fe00191113 | ||
|
|
60f0ea7dc2 | ||
|
|
d6c8167076 | ||
|
|
26b2aaa2db | ||
|
|
0b45f63e61 | ||
|
|
a790130414 | ||
|
|
f36d5e5370 | ||
|
|
5dbfe42493 | ||
|
|
76f1fb641c | ||
|
|
7b30b1ec86 | ||
|
|
9e2a8f7db8 | ||
|
|
d6a6d70c75 | ||
|
|
da16460aad | ||
|
|
444ede9949 | ||
|
|
b25b0cf4d4 | ||
|
|
f282240c0c | ||
|
|
8d6e26a8d6 | ||
|
|
62af029665 | ||
|
|
e43f1a64c5 | ||
|
|
f92c264826 | ||
|
|
350e4e799d | ||
|
|
6c6d8e006e | ||
|
|
df3901571d | ||
|
|
a4db88252e | ||
|
|
48440ac59b | ||
|
|
c3a55796c2 | ||
|
|
33a659ab06 | ||
|
|
5e8644d736 | ||
|
|
14e7219160 | ||
|
|
5f0246b07d | ||
|
|
fa20de8904 | ||
|
|
00d9dd7065 | ||
|
|
0a3a0c1a34 | ||
|
|
a9ed25e7fc | ||
|
|
e577aa3d08 | ||
|
|
8bcbf2f86c | ||
|
|
1e9cb3ea2a | ||
|
|
7e24f71432 | ||
|
|
4dad0e5b8c | ||
|
|
9dc214b3e7 | ||
|
|
7700a6525e | ||
|
|
28150c48f7 | ||
|
|
1f6916b5d0 | ||
|
|
36c36b9afb | ||
|
|
6402efe196 | ||
|
|
00a32c887c | ||
|
|
c92bf0f9a9 | ||
|
|
44027f6bd2 | ||
|
|
3fec7a0946 | ||
|
|
47d4322965 | ||
|
|
7ae71b3d8f | ||
|
|
a73800ae2d | ||
|
|
b124998639 | ||
|
|
238d03677a | ||
|
|
0f3babc8e9 | ||
|
|
55ff827b50 | ||
|
|
0daf65ef73 | ||
|
|
2eab7cfc48 | ||
|
|
a691993a86 | ||
|
|
d3e83afb0a | ||
|
|
129e4bc0ac | ||
|
|
faec393b8d | ||
|
|
a7d39be2b5 | ||
|
|
8892637796 | ||
|
|
00a9f98ee0 | ||
|
|
4b8a9ece16 | ||
|
|
fc8645245a | ||
|
|
2d4553adf2 | ||
|
|
5f02295a63 | ||
|
|
8b1dd440ee | ||
|
|
77a1a6a43d | ||
|
|
e9c8125828 | ||
|
|
3212af2fb4 | ||
|
|
52dbe1469d | ||
|
|
837ee6bcc6 | ||
|
|
8a85be8f00 | ||
|
|
3455d025a2 | ||
|
|
d2f4502e74 | ||
|
|
2144fab671 | ||
|
|
e8c90833e8 | ||
|
|
d567c86818 | ||
|
|
931ba0fa8d | ||
|
|
8da7cfd032 | ||
|
|
3fa1063b74 | ||
|
|
e2d5319441 | ||
|
|
85a7719f39 | ||
|
|
490a05d01c | ||
|
|
b54197c2e1 | ||
|
|
86dbeab484 | ||
|
|
15da337d8a | ||
|
|
992e064952 | ||
|
|
26ff5dbd79 | ||
|
|
473ecd6b3a | ||
|
|
e5b75b86fc | ||
|
|
d826c3e48c | ||
|
|
f10223b8eb | ||
|
|
7e28d2d5dc | ||
|
|
d8aa36d637 | ||
|
|
9deecf345e | ||
|
|
dd17bc8f92 | ||
|
|
f11195b104 | ||
|
|
74f688c5d1 | ||
|
|
65b08749cf | ||
|
|
f7b69ebfae | ||
|
|
371371b633 | ||
|
|
d423559605 | ||
|
|
f3d309441a | ||
|
|
fabb12370f | ||
|
|
5af2aab0bf | ||
|
|
dd8c31ebda | ||
|
|
4d402ecc14 | ||
|
|
b660c7a0f7 | ||
|
|
20c306fc6d | ||
|
|
2a86a5de49 | ||
|
|
7ba17b2bee | ||
|
|
31067e703d | ||
|
|
12e32ffc24 | ||
|
|
b4122165eb | ||
|
|
c17f8f2421 | ||
|
|
e2e5c3a1cc | ||
|
|
8d532c6298 | ||
|
|
50f0929ae8 | ||
|
|
62c59f6087 | ||
|
|
f0aab5a724 | ||
|
|
27bf526b85 | ||
|
|
bb15be7198 | ||
|
|
fe86288e76 | ||
|
|
fc4f288ce1 | ||
|
|
7e20f2f5f2 | ||
|
|
720cb52cf3 | ||
|
|
d74c329404 | ||
|
|
b8fec13607 | ||
|
|
8b8e1de19a | ||
|
|
38d6f5ad0c | ||
|
|
4e42a2aa17 | ||
|
|
8491b51264 | ||
|
|
c164df664d | ||
|
|
fa592c3a94 | ||
|
|
cb96ce0ad2 | ||
|
|
938a444edf | ||
|
|
995b506920 | ||
|
|
ba466fe572 | ||
|
|
c2e40852b6 | ||
|
|
a1c574c502 | ||
|
|
9b8fd192d0 | ||
|
|
c37460ad3d | ||
|
|
d1e708b2cb | ||
|
|
8745316574 | ||
|
|
ec5b8790ec | ||
|
|
d9105dfe8a | ||
|
|
386f66d7e2 | ||
|
|
fa5d2af7ea | ||
|
|
e0d9f28674 | ||
|
|
6fe80f02ce | ||
|
|
cdfee65492 | ||
|
|
44016ac371 | ||
|
|
58fa4a5955 | ||
|
|
cd9c5b7967 | ||
|
|
141c863f54 | ||
|
|
24743243a8 | ||
|
|
c2848e73af | ||
|
|
57d102425f | ||
|
|
68a40b5cba | ||
|
|
75ed7287d1 | ||
|
|
8797d18587 | ||
|
|
a567f1a8d1 | ||
|
|
945ec9b0b1 | ||
|
|
adc575dcdf | ||
|
|
e593861d7f | ||
|
|
36c0941dda | ||
|
|
f1a6e1ead8 | ||
|
|
d7f088bef0 | ||
|
|
f489ea871d | ||
|
|
7ae08dcf4f | ||
|
|
de90df6a63 | ||
|
|
addb3101f2 | ||
|
|
e162a06a1a | ||
|
|
b9abc7c3ef | ||
|
|
c76bf0bfab | ||
|
|
e7b42a66b1 | ||
|
|
bbb539ef56 | ||
|
|
dbb5f9b636 | ||
|
|
1979cb8104 | ||
|
|
91e94f9c0d | ||
|
|
42cbc7cf0c | ||
|
|
595553ae0b | ||
|
|
e03b665dd1 | ||
|
|
d0441219cb | ||
|
|
ac0cce9d6f | ||
|
|
1ad3a69d8f | ||
|
|
d86a386ad8 | ||
|
|
d66768ac55 | ||
|
|
567ceac52f | ||
|
|
47a0ef64d8 | ||
|
|
5f649a7613 | ||
|
|
d4b712db86 | ||
|
|
339e1f4557 | ||
|
|
da42214e86 | ||
|
|
c5ebf9c12e | ||
|
|
6b201a78e0 | ||
|
|
d2d8d38db4 | ||
|
|
0dee417e1d | ||
|
|
a0056665ae | ||
|
|
9b245d8113 | ||
|
|
d098b19d4d | ||
|
|
3aaa326bab | ||
|
|
1a25c3ade9 | ||
|
|
881c2a2086 | ||
|
|
a33f4df47e | ||
|
|
4748c6c4d7 | ||
|
|
18af9297ea | ||
|
|
c138d87c30 | ||
|
|
709c5378f8 | ||
|
|
8e9a0fbe99 | ||
|
|
117af5f59b | ||
|
|
4dccb636e2 | ||
|
|
c40788c5b2 | ||
|
|
ca27a66593 | ||
|
|
713a076df3 | ||
|
|
abaa37c51f | ||
|
|
4a2fb0a871 | ||
|
|
5ddf25c66a | ||
|
|
ff9f90c7e6 | ||
|
|
d48d48cafb | ||
|
|
2bb9bc624d | ||
|
|
069eb707f0 | ||
|
|
c1cae4e9ba | ||
|
|
f5efccc8d6 | ||
|
|
f6e4fefd66 | ||
|
|
66bab0ec49 | ||
|
|
2b501953ce | ||
|
|
150d9c9961 | ||
|
|
e5b62ecc0b | ||
|
|
b621d3cf1c | ||
|
|
9abff2143d | ||
|
|
5d224583a1 | ||
|
|
fdc5890b09 | ||
|
|
f850409d45 | ||
|
|
d58748ac66 | ||
|
|
4a01752467 | ||
|
|
53f9d03e30 | ||
|
|
776b6965fb | ||
|
|
aeeef43f45 | ||
|
|
b60b7fd201 | ||
|
|
f918792bb6 | ||
|
|
abb3ba2c6a | ||
|
|
566e05bb33 | ||
|
|
6380440c00 | ||
|
|
f8e6fb5674 | ||
|
|
ac83dcc3b3 | ||
|
|
b746f488b0 | ||
|
|
e5a7a5b0e5 | ||
|
|
f8aae8f544 | ||
|
|
3f8ad111b2 | ||
|
|
81176f8181 | ||
|
|
cdc8e43a79 | ||
|
|
ae69444b3b | ||
|
|
28257e906b | ||
|
|
7a9bb6e43d | ||
|
|
507f171b63 | ||
|
|
1dadfb6d15 | ||
|
|
2dc529b19f | ||
|
|
a5dd7e9063 | ||
|
|
eae892c9b1 | ||
|
|
71e81ccad3 | ||
|
|
eeaa766456 | ||
|
|
17627bab9f | ||
|
|
7327906fde | ||
|
|
3c3dfcd77d | ||
|
|
0adc3bd9ab | ||
|
|
0c3e5cd755 | ||
|
|
34714be205 | ||
|
|
77cf90cfb0 | ||
|
|
359f5511d7 | ||
|
|
9043e29b18 | ||
|
|
d59b8e5220 |
42
.cvsignore
42
.cvsignore
@@ -1,42 +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-0.01.tar.gz
|
|
||||||
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-0.99.*.tar.gz
|
|
||||||
libgtop-0.99.*
|
|
||||||
install-sh
|
|
||||||
mkinstalldirs
|
|
||||||
missing
|
|
||||||
INSTALL
|
|
||||||
COPYING
|
|
||||||
glibtop-config.h
|
|
||||||
stamp-gc-h
|
|
||||||
2
AUTHORS
2
AUTHORS
@@ -1,2 +0,0 @@
|
|||||||
Martin Baulig (martin@home-of-linux.org)
|
|
||||||
Drazen Kacar (dave@srce.hr)
|
|
||||||
@@ -1,25 +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=1
|
|
||||||
LIBGTOP_MICRO_VERSION=2
|
|
||||||
|
|
||||||
LIBGTOP_INTERFACE_AGE=2
|
|
||||||
LIBGTOP_BINARY_AGE=2
|
|
||||||
|
|
||||||
# Increase each time you change the client/server protocol.
|
|
||||||
LIBGTOP_SERVER_VERSION=50
|
|
||||||
|
|
||||||
# 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
|
|
||||||
PACKAGE=libgtop
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
Email: martin@home-of-linux.org
|
|
||||||
Email: dave@srce.hr
|
|
||||||
100
Makefile.am
100
Makefile.am
@@ -1,100 +0,0 @@
|
|||||||
## Process this file with automake to produce Makefile.in.
|
|
||||||
|
|
||||||
if EXAMPLES
|
|
||||||
examples_SUBDIRS = examples
|
|
||||||
else
|
|
||||||
examples_SUBDIRS =
|
|
||||||
endif
|
|
||||||
|
|
||||||
if BUILD_GNOME_SUPPORT
|
|
||||||
support = support
|
|
||||||
endif
|
|
||||||
|
|
||||||
SUBDIRS = po intl $(support) macros misc include sysdeps lib src \
|
|
||||||
$(examples_SUBDIRS) doc
|
|
||||||
|
|
||||||
include_HEADERS = glibtop.h
|
|
||||||
configincludedir = $(pkglibdir)/include
|
|
||||||
|
|
||||||
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt libgtopConf.sh.in \
|
|
||||||
LIBGTOP-VERSION features.def libgtop-config.in RELNOTES-0.25 \
|
|
||||||
RELNOTES-1.0 RELNOTES-1.1.x libgtop-sysdeps.m4 README \
|
|
||||||
libgtop-mirror.sh
|
|
||||||
|
|
||||||
configinclude_DATA = \
|
|
||||||
glibtop-config.h
|
|
||||||
|
|
||||||
BUILT_SOURCES = stamp-gc-h #note: not glibtop-config.h
|
|
||||||
glibtop-config.h: stamp-gc-h
|
|
||||||
@:
|
|
||||||
stamp-gc-h: config.status
|
|
||||||
CONFIG_FILES= CONFIG_HEADERS= CONFIG_OTHER=glibtop-config.h ./config.status
|
|
||||||
echo timestamp > stamp-gc-h
|
|
||||||
|
|
||||||
dist-hook: libgtop.spec
|
|
||||||
cp libgtop.spec $(distdir)
|
|
||||||
|
|
||||||
release:
|
|
||||||
$(MAKE) dist distdir=$(PACKAGE)-$(VERSION)
|
|
||||||
|
|
||||||
## Put `exec' in the name because this should be installed by
|
|
||||||
## `install-exec', not `install-data'.
|
|
||||||
confexecdir = $(libdir)
|
|
||||||
confexec_DATA = $(top_builddir)/libgtopConf.sh \
|
|
||||||
$(top_builddir)/libgtop-features.def
|
|
||||||
|
|
||||||
CLEANFILES=libgtopConf.sh
|
|
||||||
|
|
||||||
bin_SCRIPTS = $(top_builddir)/libgtop-config
|
|
||||||
|
|
||||||
## to automatically rebuild aclocal.m4 if any of the macros in
|
|
||||||
## `macros/' change
|
|
||||||
@MAINT@ include macros/macros.dep
|
|
||||||
@MAINT@macros/macros.dep: macros/Makefile.am
|
|
||||||
@MAINT@ cd macros && $(MAKE) macros.dep
|
|
||||||
|
|
||||||
@MAINT@$(top_srcdir)/aclocal.m4: libgtop-sysdeps.m4
|
|
||||||
|
|
||||||
## We create libgtopConf.sh here and not from configure because we want
|
|
||||||
## to get the paths expanded correctly. Macros like srcdir are given
|
|
||||||
## the value NONE in configure if the user doesn't specify them (this
|
|
||||||
## is an autoconf feature, not a bug).
|
|
||||||
libgtopConf.sh: libgtopConf.sh.in Makefile
|
|
||||||
## Use sed and then mv to avoid problems if the user interrupts.
|
|
||||||
sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
|
|
||||||
-e 's#\@LIBGTOP_INCLUDEDIR\@#$(includedir)#g' \
|
|
||||||
-e 's#\@LIBGTOP_DATADIR\@#$(datadir)#g' \
|
|
||||||
-e 's#\@LIBGTOP_EXTRA_LIBS\@#$(LIBGTOP_EXTRA_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_LIBS\@#$(LIBGTOP_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_INCS\@#$(LIBGTOP_INCS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_NAMES_LIBS\@#$(LIBGTOP_NAMES_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_NAMES_INCS\@#$(LIBGTOP_NAMES_INCS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_GUILE_LIBS\@#$(LIBGTOP_GUILE_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_GUILE_INCS\@#$(LIBGTOP_GUILE_INCS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_GUILE_NAMES_LIBS\@#$(LIBGTOP_GUILE_NAMES_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_GUILE_NAMES_INCS\@#$(LIBGTOP_GUILE_NAMES_INCS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_BINDIR\@#$(LIBGTOP_BINDIR)#g' \
|
|
||||||
-e 's#\@LIBGTOP_SERVER\@#$(LIBGTOP_SERVER)#g' \
|
|
||||||
-e 's#\@LIBGTOP_MAJOR_VERSION\@#$(LIBGTOP_MAJOR_VERSION)#g' \
|
|
||||||
-e 's#\@LIBGTOP_MINOR_VERSION\@#$(LIBGTOP_MINOR_VERSION)#g' \
|
|
||||||
-e 's#\@LIBGTOP_MICRO_VERSION\@#$(LIBGTOP_MICRO_VERSION)#g' \
|
|
||||||
-e 's#\@LIBGTOP_VERSION\@#$(LIBGTOP_VERSION)#g' \
|
|
||||||
-e 's#\@LIBGTOP_VERSION_CODE\@#$(LIBGTOP_VERSION_CODE)#g' \
|
|
||||||
-e 's#\@LIBGTOP_SERVER_VERSION\@#$(LIBGTOP_SERVER_VERSION)#g' \
|
|
||||||
-e 's#\@libgtop_sysdeps_dir\@#$(libgtop_sysdeps_dir)#g' \
|
|
||||||
-e 's#\@libgtop_need_server\@#$(libgtop_need_server)#g' \
|
|
||||||
-e 's#\@libgtop_use_machine_h\@#$(libgtop_use_machine_h)#g' \
|
|
||||||
-e 's#\@libgtop_guile_found\@#$(libgtop_guile_found)#g' \
|
|
||||||
-e 's#\@libgtop_want_examples\@#$(libgtop_want_examples)#g' \
|
|
||||||
< $(srcdir)/libgtopConf.sh.in > libgtopConf.tmp \
|
|
||||||
&& mv libgtopConf.tmp libgtopConf.sh
|
|
||||||
|
|
||||||
libgtop-config: libgtop-config.in Makefile
|
|
||||||
sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
|
|
||||||
< $(srcdir)/libgtop-config.in > libgtop-config.tmp \
|
|
||||||
&& mv libgtop-config.tmp libgtop-config && \
|
|
||||||
chmod 755 libgtop-config
|
|
||||||
|
|
||||||
libgtop-features.def: features.def
|
|
||||||
@LN_S@ $< $@
|
|
||||||
|
|
||||||
8
NEWS
8
NEWS
@@ -1,8 +0,0 @@
|
|||||||
October 19, 1999:
|
|
||||||
================
|
|
||||||
|
|
||||||
* Released LibGTop 1.1.2 "Hardangervidda"
|
|
||||||
|
|
||||||
This is a stable release from the development branch
|
|
||||||
of LibGTop for Solaris users of October GNOME.
|
|
||||||
|
|
||||||
32
README
32
README
@@ -1,32 +0,0 @@
|
|||||||
This is the *development* branch of LibGTop. It is indended
|
|
||||||
for people who want to help with the development of LibGTop and
|
|
||||||
not for end-users.
|
|
||||||
|
|
||||||
Please use the LIBGTOP_STABLE_1_0 branch (which is LibGTop 1.0.x)
|
|
||||||
unless you're really a developer.
|
|
||||||
|
|
||||||
If you're using LibGTop from CVS simply do a
|
|
||||||
|
|
||||||
cvs update -r LIBGTOP_STABLE_1_0
|
|
||||||
|
|
||||||
to get the latest version from the stable branch.
|
|
||||||
|
|
||||||
However, I'll periodically make snapshot releases from the development
|
|
||||||
branch for Solaris users of LibGTop.
|
|
||||||
|
|
||||||
They can be found at
|
|
||||||
|
|
||||||
ftp://ftp.home-of-linux.org/pub/libgtop/1.1/
|
|
||||||
|
|
||||||
in near future.
|
|
||||||
|
|
||||||
Using released tarballs from the development branch is a lot better than
|
|
||||||
compiling directly from CVS since things in CVS may not always work as
|
|
||||||
expected.
|
|
||||||
|
|
||||||
Note that releases from the developer branch are neither binary
|
|
||||||
nor fully source compatible; you'll normally have to recompile
|
|
||||||
everything that use them.
|
|
||||||
|
|
||||||
October 1999
|
|
||||||
Martin Baulig
|
|
||||||
146
RELNOTES-0.25
146
RELNOTES-0.25
@@ -1,146 +0,0 @@
|
|||||||
RELEASE NOTES FOR LIBGTOP 0.25 STABLE
|
|
||||||
=====================================
|
|
||||||
|
|
||||||
OVERVIEW
|
|
||||||
--------
|
|
||||||
|
|
||||||
LibGTop is a library that read information about processes and the running
|
|
||||||
systems. This information include:
|
|
||||||
|
|
||||||
General System Information
|
|
||||||
|
|
||||||
cpu - CPU Usage
|
|
||||||
mem - Memory Usage
|
|
||||||
swap - Swap Usage (including paging activity)
|
|
||||||
loadavg - Load average (including nr_running, nr_tasks, last_pid)
|
|
||||||
uptime - Uptime and Idle time, can be calculated from CPU usage
|
|
||||||
|
|
||||||
SYS V IPC Limits:
|
|
||||||
|
|
||||||
shm_limits - Shared Memory Limits
|
|
||||||
msg_limits - Message Queue Limits
|
|
||||||
sem_limits - Semaphore Set Limits
|
|
||||||
|
|
||||||
Process List:
|
|
||||||
|
|
||||||
proclist - List of processes
|
|
||||||
|
|
||||||
Process information:
|
|
||||||
|
|
||||||
proc_state - cmd, state, uid, gid
|
|
||||||
proc_uid - uid,euid,gid,egid,pid,ppid,pgrp
|
|
||||||
session,tty,tpgid,priority,nice
|
|
||||||
proc_mem - size,vsize,resident,share,rss,rss_rlim
|
|
||||||
proc_time - start_time,rtime,utime,stime,cutime,cstime
|
|
||||||
timeout,it_real_value,frequency
|
|
||||||
proc_signal - signal,blocked,sigignore,sigcatch
|
|
||||||
proc_kernel - k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
|
|
||||||
kstk_esp,kstk_eip,nwchan,wchan
|
|
||||||
proc_segment - text_rss,shlib_rss,data_rss,stack_rss,dirty_size
|
|
||||||
start_code,end_code,start_stack
|
|
||||||
|
|
||||||
Process maps:
|
|
||||||
|
|
||||||
proc_map - Process map (/proc/<pid>/maps under Linux)
|
|
||||||
|
|
||||||
File system usage:
|
|
||||||
|
|
||||||
mountlist - List of currently mounted filesystems
|
|
||||||
fsusage - File system usage
|
|
||||||
|
|
||||||
PORTABILITY:
|
|
||||||
-----------
|
|
||||||
|
|
||||||
LibGtop is designed to be as portable as possible. None of the functions
|
|
||||||
and retrieved information should be specific to a specific operating
|
|
||||||
system. So you only need to port the system dependent part of the library
|
|
||||||
to a new system and all application programs can then use libgtop on this
|
|
||||||
new system.
|
|
||||||
|
|
||||||
CLIENT/SERVER MODEL:
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Some systems like DEC OSF/1 or BSD require special priviledges for the calling
|
|
||||||
proces to fetch the required information (SUID root/SGID kmem). To solve this
|
|
||||||
problem, I designed a client/server model which makes a call to a SUID/SGID
|
|
||||||
server which fetches the required information whenever it is required. This
|
|
||||||
server is only called for features that really require priviledges, otherwise
|
|
||||||
the sysdeps code is called directory (every user can get the CPU usage on
|
|
||||||
DEC OSF/1, but only root can get information about processes other than the
|
|
||||||
current one).
|
|
||||||
|
|
||||||
There is also some kind of daemon which can be used to fetch information from
|
|
||||||
remote systems (still experimental). This daemon normally runs as nobody and
|
|
||||||
calls the SUID/SGID itself when needed.
|
|
||||||
|
|
||||||
GNOME APPLETS:
|
|
||||||
--------------
|
|
||||||
|
|
||||||
There are some applets and applications which already use LibGTop. They can
|
|
||||||
be found in the `libgtop-apps' module in the GNOME CVS tree:
|
|
||||||
|
|
||||||
* Applets: cpuload, cpumemusage - they need LibGTop to get their information
|
|
||||||
on all systems other than Linux.
|
|
||||||
|
|
||||||
* Applets: diskusage - just uses the mountlist/fsusage features of LibGTop,
|
|
||||||
the one in gnome-core also works on other systems.
|
|
||||||
|
|
||||||
* Applets: multiload - I enhanced the cpuload applet a little bit, it is
|
|
||||||
now a multi applet and can display CPU, Memory and
|
|
||||||
Swap usages.
|
|
||||||
|
|
||||||
GTOP:
|
|
||||||
----
|
|
||||||
|
|
||||||
This cool GNOME app has been ported to use LibGTop. It can be found in
|
|
||||||
`libgtop-apps/gtop' in the GNOME CVS tree.
|
|
||||||
|
|
||||||
You can now use nearly the full functionality of GTop on FreeBSD !
|
|
||||||
|
|
||||||
|
|
||||||
PLATTFORM SPECIFIC NOTES FOR LINUX:
|
|
||||||
==================================
|
|
||||||
|
|
||||||
Under Linux, LibGTop should work without problems and read everything
|
|
||||||
from /proc.
|
|
||||||
|
|
||||||
There is also an experimental kernel interface to read this information
|
|
||||||
directly from the kernel with a system call - but this is still experimental
|
|
||||||
and not well tested while I made this release.
|
|
||||||
|
|
||||||
PLATTFORM SPECIFIC NOTES FOR FREEBSD:
|
|
||||||
====================================
|
|
||||||
|
|
||||||
LibGTop should now work under FreeBSD and give you the full functionality
|
|
||||||
of GTop.
|
|
||||||
|
|
||||||
There are a few caveats:
|
|
||||||
|
|
||||||
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to kmem
|
|
||||||
after installation and mount the /proc filesystem of FreeBSD
|
|
||||||
(/proc/<pid>/mem is used withing kvm_uread ()).
|
|
||||||
|
|
||||||
* To get the filenames of the process maps displayed in GTop, you need to
|
|
||||||
configure with the `--with-libgtop-inodedb' option (you need GDBM for this
|
|
||||||
to work).
|
|
||||||
|
|
||||||
* You have then to create an inode database which is used to look up to
|
|
||||||
filenames. This is done using the `mkinodedb' program which comes along
|
|
||||||
with libgtop.
|
|
||||||
|
|
||||||
See the file src/inodedb/README for details:
|
|
||||||
|
|
||||||
The `mkinodedb' program which is build in this directory takes two
|
|
||||||
command line arguments: the full pathname of the database to be created
|
|
||||||
and the name of a configuration file consisting of directory and file names
|
|
||||||
each on a line by itself - see `/etc/ld.so.conf' for an example.
|
|
||||||
|
|
||||||
Putting a directory name in this file means all regular files found in this
|
|
||||||
directory are included in the database, but it will not recursively descend
|
|
||||||
into subdirectories (for instance, we want everythink in `/usr/lib' but not
|
|
||||||
every single file in `/usr/lib/sgml'). You can also use filenames to include
|
|
||||||
a single file.
|
|
||||||
|
|
||||||
Have fun,
|
|
||||||
|
|
||||||
Martin <martin@home-of-linux.org>
|
|
||||||
163
RELNOTES-1.0
163
RELNOTES-1.0
@@ -1,163 +0,0 @@
|
|||||||
RELEASE NOTES FOR LIBGTOP 1.0 STABLE
|
|
||||||
====================================
|
|
||||||
|
|
||||||
OVERVIEW
|
|
||||||
--------
|
|
||||||
|
|
||||||
LibGTop is a library that read information about processes and the
|
|
||||||
running systems. This information include:
|
|
||||||
|
|
||||||
General System Information:
|
|
||||||
|
|
||||||
cpu - CPU Usage
|
|
||||||
mem - Memory Usage
|
|
||||||
swap - Swap Usage (including paging activity)
|
|
||||||
loadavg - Load average (including nr_running, nr_tasks, last_pid)
|
|
||||||
uptime - Uptime and Idle time, can be calculated from CPU usage
|
|
||||||
|
|
||||||
SYS V IPC Limits:
|
|
||||||
|
|
||||||
shm_limits - Shared Memory Limits
|
|
||||||
msg_limits - Message Queue Limits
|
|
||||||
sem_limits - Semaphore Set Limits
|
|
||||||
|
|
||||||
Network:
|
|
||||||
|
|
||||||
netload - Network load
|
|
||||||
ppp - PPP statistics
|
|
||||||
|
|
||||||
Process List:
|
|
||||||
|
|
||||||
proclist - List of processes
|
|
||||||
|
|
||||||
Process information:
|
|
||||||
|
|
||||||
proc_state - cmd, state, uid, gid
|
|
||||||
proc_uid - uid,euid,gid,egid,pid,ppid,pgrp
|
|
||||||
session,tty,tpgid,priority,nice
|
|
||||||
proc_mem - size,vsize,resident,share,rss,rss_rlim
|
|
||||||
proc_time - start_time,rtime,utime,stime,cutime,cstime
|
|
||||||
timeout,it_real_value,frequency
|
|
||||||
proc_signal - signal,blocked,sigignore,sigcatch
|
|
||||||
proc_kernel - k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
|
|
||||||
kstk_esp,kstk_eip,nwchan,wchan
|
|
||||||
proc_segment - text_rss,shlib_rss,data_rss,stack_rss,dirty_size
|
|
||||||
start_code,end_code,start_stack
|
|
||||||
|
|
||||||
Process maps:
|
|
||||||
|
|
||||||
proc_args - Command line arguments
|
|
||||||
proc_map - Process map (/proc/<pid>/maps under Linux)
|
|
||||||
|
|
||||||
File system usage:
|
|
||||||
|
|
||||||
mountlist - List of currently mounted filesystems
|
|
||||||
fsusage - File system usage
|
|
||||||
|
|
||||||
PORTABILITY:
|
|
||||||
-----------
|
|
||||||
|
|
||||||
LibGTop is designed to be as portable as possible. None of the
|
|
||||||
functions and retrieved information should be specific to a specific
|
|
||||||
operating system. So you only need to port the system dependent part
|
|
||||||
of the library to a new system and all application programs can then
|
|
||||||
use libgtop on this new system.
|
|
||||||
|
|
||||||
CLIENT/SERVER MODEL:
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Some systems like DEC OSF/1 or BSD require special privileges for the
|
|
||||||
calling process to fetch the required information (SUID root/SGID
|
|
||||||
kmem). To solve this problem, I designed a client/server model which
|
|
||||||
makes a call to a SUID/SGID server which fetches the required
|
|
||||||
information whenever it is required. This server is only called for
|
|
||||||
features that really require privileges, otherwise the sysdeps code
|
|
||||||
is called directory (every user can get the CPU usage on DEC OSF/1,
|
|
||||||
but only root can get information about processes other than the
|
|
||||||
current one).
|
|
||||||
|
|
||||||
There is also some kind of daemon which can be used to fetch
|
|
||||||
information from remote systems (still experimental). This daemon
|
|
||||||
normally runs as nobody and calls the SUID/SGID itself when needed.
|
|
||||||
|
|
||||||
LIBGTOP AND GNOME:
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
LibGTop is currently used in various places in the GNOME Project,
|
|
||||||
for instance in some of the applets in gnome-core and - of cause -
|
|
||||||
this ultra-cool application called GTop ...
|
|
||||||
|
|
||||||
Although LibGTop is not specific to GNOME and under LGPL license, I
|
|
||||||
spent most my time during the last months to work in the GNOME project
|
|
||||||
so this is the primary use for LibGTop (and currently the only one).
|
|
||||||
|
|
||||||
However, you can also give its configure.in script the `--without-gnome'
|
|
||||||
parameter and then use it fully without GNOME in your own applications.
|
|
||||||
|
|
||||||
LIBGTOP AND GNOME - PART II:
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
LibGTop was tested with FreeBSD 3.0 but it should also work with
|
|
||||||
FreeBSD 2.2.7, NetBSD and OpenBSD.
|
|
||||||
|
|
||||||
Currently my primary aim is to help the GNOME people with our 1.0 release
|
|
||||||
so I won't have much time to test it with any other system than Linux.
|
|
||||||
|
|
||||||
However, I consider FreeBSD, NetBSD and OpenBSD as supported systems for
|
|
||||||
LibGTop and whenever I get bug reports I will do my best to fix them as
|
|
||||||
quickly as possible.
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES FOR LINUX:
|
|
||||||
==================================
|
|
||||||
|
|
||||||
Under Linux, LibGTop should work without problems and read everything
|
|
||||||
from /proc.
|
|
||||||
|
|
||||||
LibGTop 0.25 also had an experimental kernel interface to read this
|
|
||||||
information directly from the kernel with a system call - but I have
|
|
||||||
currently dropped support for this as I am too busy with GNOME
|
|
||||||
development to keep current with kernel hacking.
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES FOR SOLARIS:
|
|
||||||
====================================
|
|
||||||
|
|
||||||
Since so many people were asking me about this:
|
|
||||||
|
|
||||||
LibGTop currently does not have any support for Solaris, and it will
|
|
||||||
never have until some volunteer writes the code for it. I can't do this
|
|
||||||
myself since I do not have any machine to test it on.
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES FOR BSD:
|
|
||||||
=================================
|
|
||||||
|
|
||||||
There are a few caveats:
|
|
||||||
|
|
||||||
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to
|
|
||||||
kmem after installation and mount the /proc file system of FreeBSD
|
|
||||||
(/proc/<pid>/mem is used within kvm_uread ()).
|
|
||||||
|
|
||||||
* To get the filenames of the process maps displayed in GTop, you need
|
|
||||||
to configure with the `--with-libgtop-inodedb' option (you need GDBM
|
|
||||||
for this to work).
|
|
||||||
|
|
||||||
You have then to create an inode database which is used to look up
|
|
||||||
filenames. This is done using the `mkinodedb' program which comes
|
|
||||||
along with libgtop.
|
|
||||||
|
|
||||||
See the file src/inodedb/README for details:
|
|
||||||
|
|
||||||
The `mkinodedb' program which is build in this directory takes two
|
|
||||||
command line arguments: the full pathname of the database to be
|
|
||||||
created and the name of a configuration file consisting of directory
|
|
||||||
and file names each on a line by itself - see `/etc/ld.so.conf' for
|
|
||||||
an example.
|
|
||||||
|
|
||||||
Putting a directory name in this file means all regular files found
|
|
||||||
in this directory are included in the database, but it will not
|
|
||||||
recursively descend into subdirectories (for instance, we want
|
|
||||||
everything in `/usr/lib' but not every single file in `/usr/lib/sgml').
|
|
||||||
You can also use filenames to include a single file.
|
|
||||||
|
|
||||||
Have fun,
|
|
||||||
|
|
||||||
Martin <martin@home-of-linux.org>
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
RELEASE NOTES FOR LIBGTOP 1.1.2
|
|
||||||
===============================
|
|
||||||
|
|
||||||
This is a snapshot release for Solaris users of October GNOME. It contains
|
|
||||||
a first version of the Solaris port of LibGTop which works at least on
|
|
||||||
Solaris 7.
|
|
||||||
|
|
||||||
Please use LibGTop 1.0.x if you're not on a Solaris system
|
|
||||||
(look at the README file for details).
|
|
||||||
|
|
||||||
IMPORTANT CHANGES SINCE 1.0:
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
* glibtop_cpu: Added `xcpu_flags'
|
|
||||||
|
|
||||||
* glibtop_proc_state: Changed `state' from char to unsigned and added
|
|
||||||
GLIBTOP_PROCESS_RUNNING, GLIBTOP_PROCESS_INTERRUPTIBLE,
|
|
||||||
GLIBTOP_PROCESS_UNINTERRUPTIBLE, GLIBTOP_PROCESS_ZOMBIE,
|
|
||||||
GLIBTOP_PROCESS_STOPPED, GLIBTOP_PROCESS_SWAPPING constants for it.
|
|
||||||
|
|
||||||
* `GLIBTOP_MOUNTENTRY_LEN' and `GLIBTOP_MAX_GROUPS' are now defined in
|
|
||||||
<glibtop/limits.h>
|
|
||||||
|
|
||||||
* Removed the `GLIBTOP_SYSDEPS_FEATURES' and `GLIBTOP_SYSDEPS_POINTER_SIZE'
|
|
||||||
constants from <glibtop/sysdeps.h> and let numbering start at zero for
|
|
||||||
`GLIBTOP_SYSDEPS_CPU'.
|
|
||||||
|
|
||||||
OTHER CHANGES SINCE 1.0:
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
* Use G_GNUC_UNUSED in <glibtop/error.h> to avoid compiler warnings.
|
|
||||||
|
|
||||||
* The `libgtop-config' script now accepts `--cflags', `--libs' and
|
|
||||||
`--extra-libs' parameter.
|
|
||||||
|
|
||||||
* The libraries are now called -lgtop-1.1 etc. so you can use 1.0.x and
|
|
||||||
1.1.x in parallel.
|
|
||||||
|
|
||||||
CHANGES SINCE 1.0 MAINLY INTERESTING FOR DEVELOPERS:
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
* We create a `glibtop-config.h' now which gets included from <glibtop.h>
|
|
||||||
when we're _IN_LIBGTOP. It contains things such as `u_int64_t' etc.
|
|
||||||
|
|
||||||
October 1999
|
|
||||||
Martin Baulig
|
|
||||||
169
acconfig.h
169
acconfig.h
@@ -1,169 +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 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 u_int64_t
|
|
||||||
#undef int64_t
|
|
||||||
|
|
||||||
#undef HAVE_GLIBTOP_MACHINE_H
|
|
||||||
|
|
||||||
#undef GLIBTOP_NAMES
|
|
||||||
#undef GLIBTOP_GUILE
|
|
||||||
#undef GLIBTOP_GUILE_NAMES
|
|
||||||
#undef GLIBTOP_EXAMPLES
|
|
||||||
#undef GLIBTOP_INODEDB
|
|
||||||
|
|
||||||
#undef NEED_LIBGTOP
|
|
||||||
|
|
||||||
#undef HAVE_LINUX_SYSCTL
|
|
||||||
#undef HAVE_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
|
|
||||||
17
autogen.sh
17
autogen.sh
@@ -1,17 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Run this to generate all the initial makefiles, etc.
|
|
||||||
|
|
||||||
srcdir=`dirname $0`
|
|
||||||
test -z "$srcdir" && srcdir=.
|
|
||||||
|
|
||||||
PKG_NAME="Gnome Top Library"
|
|
||||||
|
|
||||||
(test -f $srcdir/configure.in \
|
|
||||||
&& test -f $srcdir/copyright.txt \
|
|
||||||
&& test -d $srcdir/sysdeps) || {
|
|
||||||
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
|
||||||
echo " top-level gnome directory"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
. $srcdir/macros/autogen.sh
|
|
||||||
601
configure.in
601
configure.in
@@ -1,601 +0,0 @@
|
|||||||
dnl
|
|
||||||
dnl Configure script for the Gnome library
|
|
||||||
dnl
|
|
||||||
|
|
||||||
AC_INIT(copyright.txt)
|
|
||||||
AM_CONFIG_HEADER(config.h)
|
|
||||||
AC_CANONICAL_SYSTEM
|
|
||||||
|
|
||||||
dnl This is required at several places
|
|
||||||
AC_CHECK_PROG(ac_dc_found, dc, yes, no)
|
|
||||||
if test x$ac_dc_found != xyes ; then
|
|
||||||
AC_MSG_ERROR([
|
|
||||||
*** The "dc" utility was not found on your system.
|
|
||||||
***
|
|
||||||
*** When using RedHat Linux, you need to install the "bc" package.
|
|
||||||
***
|
|
||||||
*** It is now part of the "bc" package, so you should look at
|
|
||||||
*** ftp://ftp.gnu.org/pub/gnu/bc/ if you want to compile it yourself.
|
|
||||||
***
|
|
||||||
*** Other systems and distributions may also have it in their "bc" package,
|
|
||||||
*** so if there's no "dc" one, please look for "bc".
|
|
||||||
***])
|
|
||||||
fi
|
|
||||||
|
|
||||||
. $srcdir/LIBGTOP-VERSION
|
|
||||||
AM_INIT_AUTOMAKE($PACKAGE, $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)
|
|
||||||
|
|
||||||
# libtool versioning
|
|
||||||
LT_RELEASE=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION
|
|
||||||
LT_CURRENT=`expr $LIBGTOP_MICRO_VERSION - $LIBGTOP_INTERFACE_AGE`
|
|
||||||
LT_REVISION=$LIBGTOP_INTERFACE_AGE
|
|
||||||
LT_AGE=`expr $LIBGTOP_BINARY_AGE - $LIBGTOP_INTERFACE_AGE`
|
|
||||||
LT_VERSION_INFO='-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE} -release ${LT_RELEASE}'
|
|
||||||
AC_SUBST(LT_VERSION_INFO)
|
|
||||||
AC_SUBST(LT_RELEASE)
|
|
||||||
AC_SUBST(LT_CURRENT)
|
|
||||||
AC_SUBST(LT_REVISION)
|
|
||||||
AC_SUBST(LT_AGE)
|
|
||||||
|
|
||||||
AM_ACLOCAL_INCLUDE(. macros)
|
|
||||||
|
|
||||||
AC_ISC_POSIX
|
|
||||||
AC_PROG_CC
|
|
||||||
AC_STDC_HEADERS
|
|
||||||
AC_ARG_PROGRAM
|
|
||||||
|
|
||||||
dnl We need this at some places.
|
|
||||||
libgtop_top_builddir=`pwd`
|
|
||||||
AC_SUBST(libgtop_top_builddir)
|
|
||||||
|
|
||||||
dnl We don't use `AC_PROG_AWK' since it checks for mawk first which
|
|
||||||
dnl does not work for libgtop.
|
|
||||||
AC_CHECK_PROGS(AWK, gawk awk, )
|
|
||||||
test -z "$AWK" && AC_MSG_ERROR([Sorry, you need a working awk interpreter.])
|
|
||||||
|
|
||||||
dnl Most people should have a working perl interpreter on their system
|
|
||||||
AC_CHECK_PROGS(PERL, perl5 perl)
|
|
||||||
test -z "$PERL" && AC_MSG_ERROR([You need to have a working perl interpreter.])
|
|
||||||
|
|
||||||
AC_CHECK_TOOL(CC,gcc)
|
|
||||||
AC_CHECK_TOOL(RANLIB,ranlib)
|
|
||||||
AC_CHECK_TOOL(AS,as)
|
|
||||||
AC_CHECK_TOOL(AR,ar)
|
|
||||||
AC_CHECK_TOOL(NM,nm)
|
|
||||||
|
|
||||||
NM=`which $NM`
|
|
||||||
export CC CXX RANLIB LD AS AR NM
|
|
||||||
|
|
||||||
AC_PROG_INSTALL
|
|
||||||
AC_PROG_LN_S
|
|
||||||
AC_PROG_MAKE_SET
|
|
||||||
|
|
||||||
export cross_compiling
|
|
||||||
|
|
||||||
AM_PROG_LIBTOOL
|
|
||||||
|
|
||||||
dnl Let the user enable compiler warnings
|
|
||||||
GNOME_COMPILE_WARNINGS
|
|
||||||
|
|
||||||
GNOME_INIT_HOOK(gnome_found=yes)
|
|
||||||
|
|
||||||
if test "x$gnome_found" != xyes; then
|
|
||||||
if test "x$want_gnome" != xno ; then
|
|
||||||
AC_MSG_ERROR([
|
|
||||||
*** GNOME was not found on this system. ***
|
|
||||||
|
|
||||||
*** If you want to use LibGTop without GNOME, you need
|
|
||||||
*** to give configure the --without-gnome parameter.
|
|
||||||
])
|
|
||||||
else
|
|
||||||
AC_DEFINE(WITHOUT_GNOME)
|
|
||||||
fi
|
|
||||||
GNOME_SUPPORT_CHECKS
|
|
||||||
else
|
|
||||||
if test "x$want_gnome" != xno ; then
|
|
||||||
AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false)
|
|
||||||
else
|
|
||||||
GNOME_SUPPORT_CHECKS
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
|
|
||||||
|
|
||||||
GNOME_LIBGTOP_SYSDEPS
|
|
||||||
GNOME_LIBGTOP_TYPES
|
|
||||||
|
|
||||||
AC_ARG_WITH(libgtop-guile,
|
|
||||||
[ --with-libgtop-guile Build the libgtop guile interface (default=no)],
|
|
||||||
[build_guile="$withval"], [build_guile=yes])
|
|
||||||
|
|
||||||
if test x$build_guile != xno ; then
|
|
||||||
GNOME_CHECK_GUILE
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_ARG_WITH(libgtop-inodedb,
|
|
||||||
[ --with-libgtop-inodedb Build the inodedb stuff (default=no)],
|
|
||||||
[build_inodedb="$withval"], [build_inodedb=no])
|
|
||||||
|
|
||||||
LIBGTOP_EXTRA_LIBS=
|
|
||||||
|
|
||||||
if test x$build_inodedb = xyes ; then
|
|
||||||
AC_CHECK_LIB(gdbm, gdbm_open, LIBGTOP_EXTRA_LIBS='-lgdbm', build_inodedb=no)
|
|
||||||
fi
|
|
||||||
|
|
||||||
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$ac_cv_guile_found = xyes ; then
|
|
||||||
AC_DEFINE(GLIBTOP_GUILE)
|
|
||||||
AC_DEFINE(GLIBTOP_GUILE_NAMES)
|
|
||||||
libgtop_guile_found=yes
|
|
||||||
guile_examples='third'
|
|
||||||
guile_static_examples='third_static'
|
|
||||||
guile_subdirs='guile'
|
|
||||||
else
|
|
||||||
libgtop_guile_found=no
|
|
||||||
guile_examples=
|
|
||||||
guile_static_examples=
|
|
||||||
guile_subdirs=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x$libgtop_smp = xyes ; then
|
|
||||||
smp_examples='smp'
|
|
||||||
smp_static_examples='smp_static'
|
|
||||||
else
|
|
||||||
smp_examples=
|
|
||||||
smp_static_examples=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$enable_static" != xno; then
|
|
||||||
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $guile_static_examples $smp_static_examples"
|
|
||||||
else
|
|
||||||
static_targets=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
|
|
||||||
AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes)
|
|
||||||
|
|
||||||
AC_SUBST(static_targets)
|
|
||||||
AC_SUBST(smp_examples)
|
|
||||||
AC_SUBST(guile_examples)
|
|
||||||
AC_SUBST(guile_subdirs)
|
|
||||||
|
|
||||||
AM_PROG_LIBTOOL
|
|
||||||
|
|
||||||
AM_PATH_GLIB(1.2.0,,AC_MSG_ERROR(GLIB >= 1.2.0 is required for LibGTop))
|
|
||||||
|
|
||||||
dnl You need to uncomment the following line if you want to use
|
|
||||||
dnl libGTop without Gnome.
|
|
||||||
dnl GNOME_SUPPORT_CHECKS
|
|
||||||
|
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
||||||
AC_C_CONST
|
|
||||||
AC_C_INLINE
|
|
||||||
AC_TYPE_OFF_T
|
|
||||||
AC_TYPE_PID_T
|
|
||||||
AC_TYPE_SIZE_T
|
|
||||||
AC_STRUCT_ST_RDEV
|
|
||||||
AC_HEADER_TIME
|
|
||||||
AC_STRUCT_TM
|
|
||||||
AC_TYPE_UID_T
|
|
||||||
|
|
||||||
dnl For SunOS
|
|
||||||
AC_CHECK_TYPE(ssize_t, int)
|
|
||||||
AC_CHECK_HEADERS(memory.h)
|
|
||||||
AC_CHECK_HEADERS(string.h strings.h, break)
|
|
||||||
AC_REPLACE_FUNCS(strerror)
|
|
||||||
|
|
||||||
dnl dlopen() and dlsym()
|
|
||||||
DL_LIB=
|
|
||||||
AC_CHECK_FUNCS(dlopen,,[
|
|
||||||
AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl", [
|
|
||||||
AC_CHECK_LIB(dld, shl_load, DL_LIB="-ldld", [
|
|
||||||
AC_CHECK_FUNCS(dlopen, DL_LIB="", DL_LIB="")
|
|
||||||
])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
oLIBS="$LIBS"
|
|
||||||
LIBS="$LIBS $DL_LIB"
|
|
||||||
AC_CHECK_FUNCS(dlerror,,)
|
|
||||||
LIBS="$oLIBS"
|
|
||||||
AC_SUBST(DL_LIB)
|
|
||||||
|
|
||||||
dnl Solaris
|
|
||||||
AC_CHECK_LIB(kstat, kstat_open)
|
|
||||||
AC_CHECK_FUNCS(getloadavg swapctl)
|
|
||||||
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
|
|
||||||
|
|
||||||
dnl Some versions of Solaris require -lelf for -lkvm
|
|
||||||
AC_CHECK_LIB(kvm, kvm_open,[
|
|
||||||
LIBS="-lkvm $LIBS"
|
|
||||||
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
|
|
||||||
AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
|
|
||||||
[ac_save_LIBS="$LIBS"
|
|
||||||
LIBS="-lkvm -lelf $LIBS"
|
|
||||||
AC_TRY_LINK([char kvm_open();], [kvm_open()],
|
|
||||||
ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
|
|
||||||
LIBS="$ac_save_LIBS"
|
|
||||||
])
|
|
||||||
if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
LIBS="-lkvm -lelf $LIBS"
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl For DEC OSF1
|
|
||||||
AC_CHECK_LIB(mach, vm_statistics)
|
|
||||||
|
|
||||||
dnl For some broken libc5 systems (Debian 1.3)
|
|
||||||
saved_CFLAGS=$CFLAGS
|
|
||||||
CFLAGS="$CFLAGS -D_GNU_SOURCE"
|
|
||||||
GCC_NEED_DECLARATION(program_invocation_name, [
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
])
|
|
||||||
CFLAGS=$saved_CFLAGS
|
|
||||||
|
|
||||||
dnl Check for Internet sockets.
|
|
||||||
AC_CHECK_FUNC(socket,
|
|
||||||
[AC_CHECK_HEADER(netinet/in.h,
|
|
||||||
[AC_CHECK_HEADER(arpa/inet.h, [
|
|
||||||
AC_DEFINE(HAVE_SOCKETS)
|
|
||||||
AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
|
|
||||||
AC_TRY_LINK([
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#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(no)])])])])
|
|
||||||
|
|
||||||
dnl Checks for library functions.
|
|
||||||
AC_FUNC_ALLOCA
|
|
||||||
AC_FUNC_MMAP
|
|
||||||
AC_TYPE_SIGNAL
|
|
||||||
AC_FUNC_STRFTIME
|
|
||||||
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
|
|
||||||
|
|
||||||
dnl ## all 'es_??' are only needed for format numbers different of 'es'
|
|
||||||
ALL_LINGUAS="da de es es_DO es_GT es_HN es_MX es_PA es_PE es_SV fi fr ja ko nl no pl pt_BR sv"
|
|
||||||
AM_GNOME_GETTEXT
|
|
||||||
|
|
||||||
AC_PATH_XTRA
|
|
||||||
|
|
||||||
dnl For Solaris
|
|
||||||
dnl Please don't move this before AC_PATH_XTRA
|
|
||||||
AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
|
|
||||||
AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect)])
|
|
||||||
AC_CHECK_FUNC(inet_aton,,[AC_CHECK_LIB(resolv,inet_aton)])
|
|
||||||
|
|
||||||
dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n
|
|
||||||
dnl So we use the following instead.
|
|
||||||
dnl XE_SPACE(var, words)
|
|
||||||
define([XE_SPACE],[
|
|
||||||
T=""
|
|
||||||
for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
|
|
||||||
$1="$T"
|
|
||||||
])dnl
|
|
||||||
|
|
||||||
dnl Autodetect Xauth
|
|
||||||
dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
|
|
||||||
saved_CPPFLAGS="$CPPFLAGS"
|
|
||||||
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
|
||||||
test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no) }
|
|
||||||
test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no, $X_LIBS) }
|
|
||||||
test -z "$with_xauth" && with_xauth=yes
|
|
||||||
if test "$with_xauth" = "yes"; then
|
|
||||||
AC_DEFINE(HAVE_XAUTH)
|
|
||||||
XE_SPACE(libs_xauth, $X_LIBS -lXau)
|
|
||||||
fi
|
|
||||||
CPPFLAGS="$saved_CPPFLAGS"
|
|
||||||
AC_SUBST(libs_xauth)
|
|
||||||
|
|
||||||
dnl For diskusage stuff
|
|
||||||
GNOME_FILEUTILS_CHECKS
|
|
||||||
|
|
||||||
dnl Debugging
|
|
||||||
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],AC_DEFINE(LIBGTOP_ENABLE_DEBUG),)
|
|
||||||
AC_ARG_ENABLE(fatal-warnings, [ --enable-fatal-warnings make all warnings fatal [debug=no]],AC_DEFINE(LIBGTOP_FATAL_WARNINGS),)
|
|
||||||
|
|
||||||
if test "x$gnome_found" = xyes ; then
|
|
||||||
LIBSUPPORT="$GNOME_LIBDIR -lgnomesupport"
|
|
||||||
SUPPORTINCS="$GNOME_INCLUDEDIR"
|
|
||||||
else
|
|
||||||
LIBSUPPORT='$(top_builddir)/support/libgnomesupport.la'
|
|
||||||
SUPPORTINCS='-DNEED_GNOMESUPPORT_H -I$(top_builddir)/support -I$(top_srcdir)/support'
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Some ugly hack; if '-lgnomesupport' is part of $GNOME_LIBS,
|
|
||||||
dnl we include it here.
|
|
||||||
case "$GNOME_LIBS" in
|
|
||||||
'*-lgnomesupport*' )
|
|
||||||
LIBSUPPORT="$GNOME_LIBDIR -lgnomesupport"
|
|
||||||
SUPPORTINCS="$GNOME_INCLUDEDIR" ;;
|
|
||||||
esac
|
|
||||||
AC_SUBST(LIBSUPPORT)
|
|
||||||
AC_SUBST(SUPPORTINCS)
|
|
||||||
|
|
||||||
dnl These definitions are expanded in make.
|
|
||||||
LIBGTOP_LIBS='-L$(libdir)'
|
|
||||||
LIBGTOP_INCS='-I$(includedir) -I$(pkglibdir)/include'
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
if test x$libgtop_have_sysinfo = xyes ; then
|
|
||||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LIBGTOP_INCS="$LIBGTOP_INCS $SUPPORTINCS $GLIB_CFLAGS"
|
|
||||||
|
|
||||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_LIBS"
|
|
||||||
LIBGTOP_GUILE_INCS="$LIBGTOP_INCS"
|
|
||||||
LIBGTOP_BINDIR='$(bindir)'
|
|
||||||
LIBGTOP_SERVER='$(bindir)/libgtop_server'
|
|
||||||
|
|
||||||
sysdeps_dir="$libgtop_sysdeps_dir"
|
|
||||||
AC_SUBST(sysdeps_dir)
|
|
||||||
|
|
||||||
if test x$ac_cv_guile_found = xyes ; then
|
|
||||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile"
|
|
||||||
libgtop_guile_found=yes
|
|
||||||
else
|
|
||||||
libgtop_guile_found=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(libgtop_guile_found)
|
|
||||||
|
|
||||||
if test -z "$LIBGTOP_EXTRA_LIBS" ; then
|
|
||||||
LIBGTOP_EXTRA_LIBS="$libs_xauth"
|
|
||||||
else
|
|
||||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $libs_xauth"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
|
|
||||||
|
|
||||||
LIBGTOP_LIBS="$LIBGTOP_LIBS -lgtop -lgtop_sysdeps -lgtop_common"
|
|
||||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop -lgtop_sysdeps -lgtop_common"
|
|
||||||
|
|
||||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS -lgtop_names"
|
|
||||||
LIBGTOP_GUILE_NAMES_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile_names -lgtop_names"
|
|
||||||
|
|
||||||
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
|
||||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_NAMES_LIBS"
|
|
||||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS"
|
|
||||||
LIBGTOP_GUILE_NAMES_LIBS="$LIBGTOP_GUILE_NAMES_LIBS"
|
|
||||||
|
|
||||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS $GUILE_LIBS"
|
|
||||||
LIBGTOP_GUILE_INCS="$LIBGTOP_GUILE_INCS $GUILE_INCS -DGLIBTOP_GUILE"
|
|
||||||
|
|
||||||
LIBGTOP_NAMES_INCS="$LIBGTOP_INCS -DGLIBTOP_NAMES"
|
|
||||||
LIBGTOP_GUILE_NAMES_INCS="$LIBGTOP_GUILE_INCS -DGLIBTOP_GUILE_NAMES"
|
|
||||||
LIBGTOP_GUILE_NAMES_INCS="$LIBGTOP_GUILE_INCS -DGLIBTOP_NAMES"
|
|
||||||
|
|
||||||
machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir"
|
|
||||||
|
|
||||||
AC_SUBST(machine_incs)
|
|
||||||
|
|
||||||
if test x$libgtop_guile_found = xyes ; then
|
|
||||||
guile_def="-DGLIBTOP_GUILE -DGLIBTOP_GUILE_NAMES $GUILE_INCS "
|
|
||||||
else
|
|
||||||
guile_def=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -DGLIBTOP_NAMES -I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include -I\$(top_srcdir)/intl $SUPPORTINCS $GLIB_CFLAGS $CFLAGS $X_CFLAGS $guile_def "'-DGTOPLOCALEDIR=\"$(datadir)/locale\" -DLIBGTOP_VERSION=\"'"$LIBGTOP_VERSION"'\" -DLIBGTOP_SERVER_VERSION=\"'"$LIBGTOP_SERVER_VERSION"'\" -DLIBGTOP_VERSION_CODE='$LIBGTOP_VERSION_CODE' -DLIBGTOP_SERVER=\"'"$LIBGTOP_SERVER"'\"'
|
|
||||||
|
|
||||||
AC_SUBST(INCLUDES)
|
|
||||||
|
|
||||||
AC_SUBST(LIBGTOP_EXTRA_LIBS)
|
|
||||||
|
|
||||||
AC_SUBST(LIBGTOP_LIBS)
|
|
||||||
AC_SUBST(LIBGTOP_INCS)
|
|
||||||
AC_SUBST(LIBGTOP_NAMES_LIBS)
|
|
||||||
AC_SUBST(LIBGTOP_NAMES_INCS)
|
|
||||||
AC_SUBST(LIBGTOP_GUILE_LIBS)
|
|
||||||
AC_SUBST(LIBGTOP_GUILE_INCS)
|
|
||||||
AC_SUBST(LIBGTOP_GUILE_NAMES_LIBS)
|
|
||||||
AC_SUBST(LIBGTOP_GUILE_NAMES_INCS)
|
|
||||||
AC_SUBST(LIBGTOP_BINDIR)
|
|
||||||
AC_SUBST(LIBGTOP_SERVER)
|
|
||||||
|
|
||||||
if test x$libgtop_need_server = xyes ; then
|
|
||||||
sysdeps_suid_lib="\$(top_builddir)/sysdeps/\$(sysdeps_dir)/libgtop_sysdeps_suid.la"
|
|
||||||
server_programs='libgtop_server'
|
|
||||||
else
|
|
||||||
sysdeps_suid_lib=
|
|
||||||
server_programs=
|
|
||||||
fi
|
|
||||||
AC_SUBST(sysdeps_suid_lib)
|
|
||||||
AC_SUBST(server_programs)
|
|
||||||
|
|
||||||
|
|
||||||
dnl The following one is copied from glib/configure.in
|
|
||||||
|
|
||||||
AC_OUTPUT_COMMANDS([
|
|
||||||
|
|
||||||
## Generate `glibconfig.h' in two cases
|
|
||||||
## 1. `config.status' is run either explicitly, or via configure.
|
|
||||||
## Esp. not when it is run in `Makefile' to generate makefiles and
|
|
||||||
## config.h
|
|
||||||
## 2. CONFIG_OTHER is set explicitly
|
|
||||||
##
|
|
||||||
## Case 1 is difficult. We know that `automake' sets one of
|
|
||||||
## CONFIG_FILES or CONFIG_HEADERS to empty. This heuristic works
|
|
||||||
## only when AM_CONFIG_HEADER is set, however.
|
|
||||||
|
|
||||||
if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
|
|
||||||
# Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
|
|
||||||
CONFIG_OTHER=${CONFIG_OTHER:-glibtop-config.h}
|
|
||||||
fi
|
|
||||||
case "$CONFIG_OTHER" in
|
|
||||||
*glibtop-config.h*)
|
|
||||||
echo creating glibtop-config.h
|
|
||||||
outfile=glibtop-config.h-tmp
|
|
||||||
cat > $outfile <<\_______EOF
|
|
||||||
/* glibtop-config.h
|
|
||||||
*
|
|
||||||
* This is a generated file. Please modify `configure.in'
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef GLIBTOP_CONFIG_H
|
|
||||||
#define GLIBTOP_CONFIG_H
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
_______EOF
|
|
||||||
|
|
||||||
did_typedefs=no
|
|
||||||
|
|
||||||
if test x$glibtop_uint64_t != xyes ; then
|
|
||||||
did_typedefs=yes
|
|
||||||
cat >> $outfile <<\_______EOF
|
|
||||||
|
|
||||||
#ifndef u_int64_t
|
|
||||||
typedef unsigned long long int u_int64_t;
|
|
||||||
#endif
|
|
||||||
_______EOF
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x$glibtop_int64_t != xyes ; then
|
|
||||||
did_typedefs=yes
|
|
||||||
cat >> $outfile <<\_______EOF
|
|
||||||
|
|
||||||
#ifndef int64_t
|
|
||||||
typedef signed long long int int64_t;
|
|
||||||
#endif
|
|
||||||
_______EOF
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x$did_typedefs = xyes ; then
|
|
||||||
cat >>$outfile <<_______EOF
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NOTE: If your application checks for "u_int64_t" or "int64_t" in its own
|
|
||||||
* config.h, you must not include it after any of the LibGTop headers.
|
|
||||||
*/
|
|
||||||
_______EOF
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat >>$outfile <<_______EOF
|
|
||||||
|
|
||||||
/* Define if we need the LibGTop server. */
|
|
||||||
_______EOF
|
|
||||||
|
|
||||||
if test x$glibtop_need_libgtop = xyes ; then
|
|
||||||
echo '#define NEED_LIBGTOP 1' >> $outfile
|
|
||||||
else
|
|
||||||
echo '#undef NEED_LIBGTOP' >> $outfile
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat >>$outfile <<_______EOF
|
|
||||||
|
|
||||||
/* Define if LibGTop has support for multiple processors. */
|
|
||||||
_______EOF
|
|
||||||
|
|
||||||
if test x$glibtop_have_smp = xyes ; then
|
|
||||||
echo '#define HAVE_LIBGTOP_SMP 1' >> $outfile
|
|
||||||
else
|
|
||||||
echo '#undef HAVE_LIBGTOP_SMP' >> $outfile
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat >>$outfile <<_______EOF
|
|
||||||
|
|
||||||
/* LibGTop major, minor and micro version. */
|
|
||||||
#define LIBGTOP_MAJOR_VERSION $libgtop_major_version
|
|
||||||
#define LIBGTOP_MINOR_VERSION $libgtop_minor_version
|
|
||||||
#define LIBGTOP_MICRO_VERSION $libgtop_micro_version
|
|
||||||
|
|
||||||
/* LibGTop version and numerical version code ("1.234.567" -> 1234567). */
|
|
||||||
#define LIBGTOP_VERSION "$libgtop_version"
|
|
||||||
#define LIBGTOP_VERSION_CODE $libgtop_version_code
|
|
||||||
|
|
||||||
/* LibGTop server version, increased each time the protocol changes. */
|
|
||||||
#define LIBGTOP_SERVER_VERSION $libgtop_server_version
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
#endif /* GLIBCONFIG_H */
|
|
||||||
_______EOF
|
|
||||||
|
|
||||||
if cmp -s $outfile glibtop-config.h; then
|
|
||||||
echo glibtop-config.h is unchanged
|
|
||||||
rm -f $outfile
|
|
||||||
else
|
|
||||||
mv $outfile glibtop-config.h
|
|
||||||
fi ;;
|
|
||||||
esac
|
|
||||||
],[
|
|
||||||
glibtop_uint64_t=$ac_cv_type_u_int64_t
|
|
||||||
glibtop_int64_t=$ac_cv_type_int64_t
|
|
||||||
libgtop_major_version=$LIBGTOP_MAJOR_VERSION
|
|
||||||
libgtop_minor_version=$LIBGTOP_MINOR_VERSION
|
|
||||||
libgtop_micro_version=$LIBGTOP_MICRO_VERSION
|
|
||||||
libgtop_version_code=$LIBGTOP_VERSION_CODE
|
|
||||||
libgtop_server_version=$LIBGTOP_SERVER_VERSION
|
|
||||||
libgtop_version=$LIBGTOP_VERSION
|
|
||||||
glibtop_need_libgtop=$libgtop_need_server
|
|
||||||
glibtop_have_smp=$libgtop_smp
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
AC_OUTPUT([
|
|
||||||
Makefile
|
|
||||||
libgtop.spec
|
|
||||||
po/Makefile.in
|
|
||||||
intl/Makefile
|
|
||||||
misc/Makefile
|
|
||||||
include/Makefile
|
|
||||||
include/glibtop/Makefile
|
|
||||||
sysdeps/Makefile
|
|
||||||
sysdeps/common/Makefile
|
|
||||||
sysdeps/names/Makefile
|
|
||||||
sysdeps/guile/Makefile
|
|
||||||
sysdeps/guile/names/Makefile
|
|
||||||
sysdeps/stub/Makefile
|
|
||||||
sysdeps/stub_suid/Makefile
|
|
||||||
sysdeps/sun4/Makefile
|
|
||||||
sysdeps/osf1/Makefile
|
|
||||||
sysdeps/linux/Makefile
|
|
||||||
sysdeps/kernel/Makefile
|
|
||||||
sysdeps/freebsd/Makefile
|
|
||||||
sysdeps/solaris/Makefile
|
|
||||||
src/Makefile
|
|
||||||
src/daemon/Makefile
|
|
||||||
src/inodedb/Makefile
|
|
||||||
lib/Makefile
|
|
||||||
examples/Makefile
|
|
||||||
doc/Makefile
|
|
||||||
support/Makefile
|
|
||||||
macros/Makefile])
|
|
||||||
@@ -1,23 +0,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
|
|
||||||
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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
@@ -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,53 +0,0 @@
|
|||||||
1999-10-18 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* about.texi: Added a note about LibGTop and GNOME.
|
|
||||||
|
|
||||||
* reference.texi (glibtop_proc_state): Fix description of the `state'
|
|
||||||
field for LibGTop 1.0.x.
|
|
||||||
|
|
||||||
1999-09-29 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am: Reverted Timur's commit.
|
|
||||||
(MAKEINFO): Add `-I @libgtop_top_builddir@/doc' here. This still
|
|
||||||
creates libgtop.info in srcdir, but that's an automake problem.
|
|
||||||
|
|
||||||
Tue Jun 15 15:59:50 1999 Timur Bakeyev <mc@bat.ru>
|
|
||||||
|
|
||||||
* Makefile.am: Force `auto-macros.texi' to be created in $(srcdir),
|
|
||||||
as, otherwise, makeinfo is unable to find it, if srcdir != builddir.
|
|
||||||
That's a buggy solution, as spoils srcdir, but, as libgtop.info also
|
|
||||||
created in srcdir - this is acceptable. Both SHOULD be fixed!
|
|
||||||
|
|
||||||
1999-05-28 Martin Baulig <baulig@Stud.Informatik.Uni-Trier.DE>
|
|
||||||
|
|
||||||
* internals.texi: New file documenting LibGTop internals.
|
|
||||||
* reference.texi: Started to document all library functions and
|
|
||||||
finished the sysdeps and common references.
|
|
||||||
|
|
||||||
1999-05-16 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* main.texi: This is now the main file which will @include all
|
|
||||||
chapter files so we can use `texinfo-multiple-files-update'.
|
|
||||||
|
|
||||||
* reference.texi: Added all missing sections with a "not yet written"
|
|
||||||
notice.
|
|
||||||
|
|
||||||
1999-05-16 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* white-paper.texi: Initial version of the LibGTop White Paper.
|
|
||||||
|
|
||||||
* Makefile.am: Create `auto-macros.texi' from `auto-macros.texi.in'
|
|
||||||
which will contain some `@set' commands for the LibGTop version etc.
|
|
||||||
|
|
||||||
* auto-macros.texi.in: New file. This is a template for
|
|
||||||
`auto-macros.texi' which will be automatically generated.
|
|
||||||
|
|
||||||
1999-05-09 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* about.texi: Split the `libgtop.texi' into one file pro chapter,
|
|
||||||
this is the "About LibGTop".
|
|
||||||
|
|
||||||
* reference.texi: The "LibGTop Reference Manual".
|
|
||||||
|
|
||||||
* libgtop.texi: Initial version of the new LibGTop Manual.
|
|
||||||
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
info_TEXINFOS = libgtop.texi
|
|
||||||
|
|
||||||
libgtop_TEXINFOS = libgtop.texi about.texi reference.texi \
|
|
||||||
auto-macros.texi version.texi main.texi \
|
|
||||||
white-paper.texi internals.texi
|
|
||||||
|
|
||||||
MAKEINFO += -I @libgtop_top_builddir@/doc
|
|
||||||
|
|
||||||
EXTRA_DIST = auto-macros.texi.in
|
|
||||||
|
|
||||||
auto-macros.texi: auto-macros.texi.in Makefile
|
|
||||||
## Use sed and then mv to avoid problems if the user interrupts.
|
|
||||||
sed -e 's#\%LIBGTOP_LIBDIR\%#$(libdir)#g' \
|
|
||||||
-e 's#\%LIBGTOP_INCLUDEDIR\%#$(includedir)#g' \
|
|
||||||
-e 's#\%LIBGTOP_DATADIR\%#$(datadir)#g' \
|
|
||||||
-e 's#\%LIBGTOP_EXTRA_LIBS\%#$(LIBGTOP_EXTRA_LIBS)#g' \
|
|
||||||
-e 's#\%LIBGTOP_LIBS\%#$(LIBGTOP_LIBS)#g' \
|
|
||||||
-e 's#\%LIBGTOP_INCS\%#$(LIBGTOP_INCS)#g' \
|
|
||||||
-e 's#\%LIBGTOP_NAMES_LIBS\%#$(LIBGTOP_NAMES_LIBS)#g' \
|
|
||||||
-e 's#\%LIBGTOP_NAMES_INCS\%#$(LIBGTOP_NAMES_INCS)#g' \
|
|
||||||
-e 's#\%LIBGTOP_GUILE_LIBS\%#$(LIBGTOP_GUILE_LIBS)#g' \
|
|
||||||
-e 's#\%LIBGTOP_GUILE_INCS\%#$(LIBGTOP_GUILE_INCS)#g' \
|
|
||||||
-e 's#\%LIBGTOP_GUILE_NAMES_LIBS\%#$(LIBGTOP_GUILE_NAMES_LIBS)#g' \
|
|
||||||
-e 's#\%LIBGTOP_GUILE_NAMES_INCS\%#$(LIBGTOP_GUILE_NAMES_INCS)#g' \
|
|
||||||
-e 's#\%LIBGTOP_BINDIR\%#$(LIBGTOP_BINDIR)#g' \
|
|
||||||
-e 's#\%LIBGTOP_SERVER\%#$(LIBGTOP_SERVER)#g' \
|
|
||||||
-e 's#\%LIBGTOP_MAJOR_VERSION\%#$(LIBGTOP_MAJOR_VERSION)#g' \
|
|
||||||
-e 's#\%LIBGTOP_MINOR_VERSION\%#$(LIBGTOP_MINOR_VERSION)#g' \
|
|
||||||
-e 's#\%LIBGTOP_MICRO_VERSION\%#$(LIBGTOP_MICRO_VERSION)#g' \
|
|
||||||
-e 's#\%LIBGTOP_VERSION\%#$(LIBGTOP_VERSION)#g' \
|
|
||||||
-e 's#\%LIBGTOP_VERSION_CODE\%#$(LIBGTOP_VERSION_CODE)#g' \
|
|
||||||
-e 's#\%LIBGTOP_SERVER_VERSION\%#$(LIBGTOP_SERVER_VERSION)#g' \
|
|
||||||
-e 's#\%libgtop_sysdeps_dir\%#$(libgtop_sysdeps_dir)#g' \
|
|
||||||
-e 's#\%libgtop_need_server\%#$(libgtop_need_server)#g' \
|
|
||||||
-e 's#\%libgtop_use_machine_h\%#$(libgtop_use_machine_h)#g' \
|
|
||||||
-e 's#\%libgtop_guile_found\%#$(libgtop_guile_found)#g' \
|
|
||||||
-e 's#\%libgtop_want_examples\%#$(libgtop_want_examples)#g' \
|
|
||||||
< $(srcdir)/auto-macros.texi.in > auto-macros.tmp
|
|
||||||
echo '@c Set this if this is LibGTop 1.1.x' >> auto-macros.tmp
|
|
||||||
if [ $(LIBGTOP_VERSION_CODE) -ge 1001000 ] ; then \
|
|
||||||
echo '@set LIBGTOP-1-1' >> auto-macros.tmp ; \
|
|
||||||
else \
|
|
||||||
echo '@clear LIBGTOP-1-1' >> auto-macros.tmp ; \
|
|
||||||
fi
|
|
||||||
mv auto-macros.tmp auto-macros.texi
|
|
||||||
121
doc/about.texi
121
doc/about.texi
@@ -1,121 +0,0 @@
|
|||||||
@node About, White Paper, Top, Top
|
|
||||||
@chapter About LibGTop
|
|
||||||
|
|
||||||
LibGTop is a library to get system specific data such as CPU and Memory Usage
|
|
||||||
and information about running Processes.
|
|
||||||
|
|
||||||
On Systems like Solaris or Digital Unix where you need special privileges to
|
|
||||||
get those data, it uses a setuid/setgid server to do so.
|
|
||||||
|
|
||||||
Even if LibGTop is a part of the GNOME desktop environment (@uref{http://www.gnome.org}),
|
|
||||||
the main interface of LibGTop is totally independent from any particular desktop environment,
|
|
||||||
so you can also use it as a standalone library in any piece of GPLed software.
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* Availability:: Where to get LibGTop
|
|
||||||
* Supported Platforms:: Supported Platforms
|
|
||||||
* Mailing List:: Helping with LibGTop development
|
|
||||||
* Thanks:: People who contributed to LibGTop
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@node Availability, Supported Platforms, About, About
|
|
||||||
@section Availability
|
|
||||||
|
|
||||||
The master source of LibGTop is the GNOME CVS tree
|
|
||||||
(see @uref{http://www.gnome.org} for details), but you can also get the
|
|
||||||
latest release tarballs from
|
|
||||||
|
|
||||||
@display
|
|
||||||
@uref{ftp://ftp.gnome.org/pub/GNOME/sources/libgtop/}
|
|
||||||
@end display
|
|
||||||
|
|
||||||
@noindent
|
|
||||||
or any of its mirror sites.
|
|
||||||
|
|
||||||
The latest stable version of LibGTop is 1.0.1 which is also the one that comes
|
|
||||||
together with GNOME 1.0. In CVS, there is a @code{LIBGTOP_STABLE_1_0} branch
|
|
||||||
which is rooted at the @code{LIBGTOP_1_0_1} tag while actual development occurs
|
|
||||||
in the @code{HEAD} which currently has version 1.1.0.
|
|
||||||
|
|
||||||
@node Supported Platforms, Mailing List, Availability, About
|
|
||||||
@section Supported Platforms
|
|
||||||
|
|
||||||
The stable branch currently supports the following platforms:
|
|
||||||
|
|
||||||
@itemize @bullet
|
|
||||||
@item All versions of Linux
|
|
||||||
|
|
||||||
LibGTop was tested under Linux 2.0.x and 2.2.x on the ix86 and the alpha, but
|
|
||||||
it should also work without problems on SparcLinux.
|
|
||||||
|
|
||||||
Note: I'm speaking of the Linux kernel here, not the GNU/Linux operating system.
|
|
||||||
|
|
||||||
@item FreeBSD, NetBSD and OpenBSD
|
|
||||||
|
|
||||||
LibGTop was tested under FreeBSD 2.2.6 and 3.0, NetBSD 1.3.2 and OpenBSD 2.4.
|
|
||||||
Support for NetBSD 1.4 was added in LibGTop 1.0.2.
|
|
||||||
|
|
||||||
@end itemize
|
|
||||||
|
|
||||||
The platforms listed above are known to be stable and working. However, if
|
|
||||||
you're using the latest development version, you can use it on the following
|
|
||||||
platforms as well:
|
|
||||||
|
|
||||||
@itemize @bullet
|
|
||||||
@item BSD/OS
|
|
||||||
|
|
||||||
There is a port for BSD/OS (aka BSDI) 2.x and 3.x from Timur Bakeyev which
|
|
||||||
should also work with 4.x. This isn't tested very well, but it should be
|
|
||||||
working.
|
|
||||||
|
|
||||||
@item Digital Unix
|
|
||||||
|
|
||||||
There is some basic support for Digital Unix (formerly DEC OSF/1) V3.2C, but
|
|
||||||
this may still be a bit unstable. I'm currently working on this port as time
|
|
||||||
permits so it should be fully supported soon.
|
|
||||||
|
|
||||||
@item Solaris
|
|
||||||
|
|
||||||
The Solaris port currently works on Solaris 7 and maybe also on other releases.
|
|
||||||
Thanks a lot to Drazen Kacar and everyone who helped working on this port. They
|
|
||||||
have really done excellent work here and I'm pretty sure that this port will be
|
|
||||||
fully functional on most Solaris versions in near future.
|
|
||||||
|
|
||||||
@end itemize
|
|
||||||
|
|
||||||
@node Mailing List, Thanks, Supported Platforms, About
|
|
||||||
@section Mailing List
|
|
||||||
|
|
||||||
There is a @email{libgtop-devel-list@@egroups.com} mailing list for people who
|
|
||||||
want to help with the development of LibGTop.
|
|
||||||
|
|
||||||
It is meant as a low-traffic, but high content-list where we can discuss
|
|
||||||
technical details such as adding new sysdeps ports etc.
|
|
||||||
|
|
||||||
Especially, I'd like to see people with a deeper knowledge of operating systems
|
|
||||||
internals joining my list so we can discuss technical details of the sysdeps
|
|
||||||
code.
|
|
||||||
|
|
||||||
It is *not* for users that want to know how to compile LibGTop etc.
|
|
||||||
|
|
||||||
You can subscribe to this mailing list and view the mailing list archives
|
|
||||||
on the LibGTop Page at @uref{http://www.home-of-linux.org/gnome/libgtop}.
|
|
||||||
|
|
||||||
@node Thanks, , Mailing List, About
|
|
||||||
@section Thanks
|
|
||||||
|
|
||||||
At the place I'd like to thank the following people who contributed to
|
|
||||||
LibGTop (listed in chronological order):
|
|
||||||
|
|
||||||
@itemize @bullet
|
|
||||||
@item Sebastian Wilhelmi who had the initial idea of LibGTop and helped
|
|
||||||
me a lot in the early beginning.
|
|
||||||
@item Josh Sled for the initial FreeBSD port.
|
|
||||||
@item Jeremy Lea for his BSD patches.
|
|
||||||
@item Timur Bakeyev for the BSDI port.
|
|
||||||
@item Drazen Kacar and the other people on the LibGTop development mailing
|
|
||||||
list for the Solaris port.
|
|
||||||
@item All people sending me patches, having good ideas, ...
|
|
||||||
@item Everyone I have forgotten in this list ...
|
|
||||||
@end itemize
|
|
||||||
|
|
||||||
@@ -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%
|
|
||||||
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
@node LibGTop Internals, , Reference Manual, Top
|
|
||||||
@chapter LibGTop Internals
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* General Internals:: General Internals
|
|
||||||
* Sysdeps Internals:: Sysdeps Internals
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@node General Internals, Sysdeps Internals, LibGTop Internals, LibGTop Internals
|
|
||||||
@section General Internals
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* glibtop:: The server structure
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@node glibtop, , General Internals, General Internals
|
|
||||||
@subsection The server structure - @code{glibtop}
|
|
||||||
|
|
||||||
@example
|
|
||||||
@cartouche
|
|
||||||
typedef struct _glibtop glibtop;
|
|
||||||
|
|
||||||
struct _glibtop
|
|
||||||
@{
|
|
||||||
unsigned flags;
|
|
||||||
unsigned method;
|
|
||||||
unsigned error_method;
|
|
||||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
|
||||||
glibtop_machine machine;
|
|
||||||
#endif
|
|
||||||
int input [2];
|
|
||||||
int output [2];
|
|
||||||
int socket;
|
|
||||||
int ncpu;
|
|
||||||
unsigned long os_version_code;
|
|
||||||
const char *name;
|
|
||||||
const char *server_command;
|
|
||||||
const char *server_host;
|
|
||||||
const char *server_user;
|
|
||||||
const char *server_rsh;
|
|
||||||
unsigned long features;
|
|
||||||
unsigned long server_port;
|
|
||||||
glibtop_sysdeps sysdeps;
|
|
||||||
glibtop_sysdeps required;
|
|
||||||
glibtop_sysdeps wanted;
|
|
||||||
pid_t pid;
|
|
||||||
@};
|
|
||||||
@end cartouche
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@node Sysdeps Internals, , General Internals, LibGTop Internals
|
|
||||||
@section Sysdeps Internals
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* glibtop_open_s:: Non-privileged initializations
|
|
||||||
* glibtop_close_s:: Non-privileged cleanups
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@node glibtop_open_s, glibtop_close_s, Sysdeps Internals, Sysdeps Internals
|
|
||||||
@subsection glibtop_open_s
|
|
||||||
|
|
||||||
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
|
|
||||||
initialize a server. It should do all initializations that do not need any
|
|
||||||
privileges.
|
|
||||||
|
|
||||||
@example
|
|
||||||
@cartouche
|
|
||||||
void
|
|
||||||
glibtop_open_s (glibtop *server, const char *program_name,
|
|
||||||
const unsigned long features,
|
|
||||||
const unsigned flags);
|
|
||||||
@end cartouche
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@table @code
|
|
||||||
@item server
|
|
||||||
Pointer to the @code{glibtop} server structure.
|
|
||||||
@item program_name
|
|
||||||
Name of the calling program; the implementation will usually
|
|
||||||
set @samp{server->name} to this so it'll be used as the program
|
|
||||||
name in error messages.
|
|
||||||
@end table
|
|
||||||
|
|
||||||
Typically, this function will set @code{server->name}, @code{server->ncpu} and
|
|
||||||
@code{server->os_version_code} and initialize any of the @code{server->machine}
|
|
||||||
fields which do not need any privileges.
|
|
||||||
|
|
||||||
It is normally implemented in @file{open.c} in the sysdeps directory.
|
|
||||||
|
|
||||||
@node glibtop_close_s, , glibtop_open_s, Sysdeps Internals
|
|
||||||
@subsection glibtop_close_s
|
|
||||||
|
|
||||||
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
|
|
||||||
clean-up a server when it's no longer used.
|
|
||||||
|
|
||||||
It must free all resources that were allocated in @code{glibtop_open_s}.
|
|
||||||
|
|
||||||
@example
|
|
||||||
@cartouche
|
|
||||||
void
|
|
||||||
glibtop_close_s (glibtop *server);
|
|
||||||
@end cartouche
|
|
||||||
@end example
|
|
||||||
|
|
||||||
It is normally implemented in @file{close.c} in the sysdeps directory, but may
|
|
||||||
be empty.
|
|
||||||
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
\input texinfo @c -*-texinfo-*-
|
|
||||||
@c %**start of header
|
|
||||||
@setfilename libgtop.info
|
|
||||||
@settitle LibGTop Reference Manual
|
|
||||||
@setchapternewpage odd
|
|
||||||
@c %**end of header
|
|
||||||
|
|
||||||
@include auto-macros.texi
|
|
||||||
@include version.texi
|
|
||||||
|
|
||||||
@ifinfo
|
|
||||||
This is the LibGTop Reference Manual version @value{VERSION}
|
|
||||||
(last modified @value{UPDATED}).
|
|
||||||
|
|
||||||
Copyright 1999 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim
|
|
||||||
copies of this manual provided the copyright notice and
|
|
||||||
this permission notice are preserved on all copies.
|
|
||||||
|
|
||||||
@ignore
|
|
||||||
Permission is granted to process this file through TeX
|
|
||||||
and print the results, provided the printed document
|
|
||||||
carries a copying permission notice identical to this
|
|
||||||
one except for the removal of this paragraph (this
|
|
||||||
paragraph not being relevant to the printed manual).
|
|
||||||
|
|
||||||
@end ignore
|
|
||||||
Permission is granted to copy and distribute modified
|
|
||||||
versions of this manual under the conditions for
|
|
||||||
verbatim copying, provided also that the sections
|
|
||||||
entitled ``Copying'' and ``GNU General Public License''
|
|
||||||
are included exactly as in the original, and provided
|
|
||||||
that the entire resulting derived work is distributed
|
|
||||||
under the terms of a permission notice identical to this
|
|
||||||
one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute
|
|
||||||
translations of this manual into another language,
|
|
||||||
under the above conditions for modified versions,
|
|
||||||
except that this permission notice may be stated in a
|
|
||||||
translation approved by the Free Software Foundation.
|
|
||||||
|
|
||||||
@format
|
|
||||||
@dircategory Libraries:
|
|
||||||
@direntry
|
|
||||||
* libgtop: (libgtop). Library to get system specific data
|
|
||||||
such as cpu and memory usage, active
|
|
||||||
processes
|
|
||||||
@end direntry
|
|
||||||
@end format
|
|
||||||
|
|
||||||
@end ifinfo
|
|
||||||
|
|
||||||
@titlepage
|
|
||||||
@title LibGTop Reference Manual
|
|
||||||
@subtitle Version @value{VERSION} - @value{UPDATED}
|
|
||||||
@author Martin Baulig
|
|
||||||
|
|
||||||
@page
|
|
||||||
@vskip 0pt plus 1filll
|
|
||||||
Copyright @copyright{} 1999 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim
|
|
||||||
copies of this manual provided the copyright notice and
|
|
||||||
this permission notice are preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified
|
|
||||||
versions of this manual under the conditions for
|
|
||||||
verbatim copying, provided also that the sections
|
|
||||||
entitled ``Copying'' and ``GNU General Public License''
|
|
||||||
are included exactly as in the original, and provided
|
|
||||||
that the entire resulting derived work is distributed
|
|
||||||
under the terms of a permission notice identical to this
|
|
||||||
one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute
|
|
||||||
translations of this manual into another language,
|
|
||||||
under the above conditions for modified versions,
|
|
||||||
except that this permission notice may be stated in a
|
|
||||||
translation approved by the Free Software Foundation.
|
|
||||||
@end titlepage
|
|
||||||
|
|
||||||
@contents
|
|
||||||
|
|
||||||
@include main.texi
|
|
||||||
|
|
||||||
@bye
|
|
||||||
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
@node Top, About, (dir), (dir)
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* About:: About LibGTop
|
|
||||||
* White Paper:: LibGTop White Paper
|
|
||||||
* Reference Manual:: LibGTop Reference Manual
|
|
||||||
* LibGTop Internals:: LibGTop Internals
|
|
||||||
|
|
||||||
--- The Detailed Node Listing ---
|
|
||||||
|
|
||||||
About LibGTop
|
|
||||||
|
|
||||||
* Availability:: Where to get LibGTop
|
|
||||||
* Supported Platforms:: Supported Platforms
|
|
||||||
* Mailing List:: Helping with LibGTop development
|
|
||||||
* Thanks:: People who contributed to LibGTop
|
|
||||||
|
|
||||||
LibGTop White Paper
|
|
||||||
|
|
||||||
* Introduction:: Introduction
|
|
||||||
* Overview:: Overview
|
|
||||||
* Servers and Daemons:: Servers and Daemons
|
|
||||||
|
|
||||||
Overview
|
|
||||||
|
|
||||||
* Interface Design:: Things that need to be considered
|
|
||||||
* Server Implementation:: The LibGTop "server"
|
|
||||||
|
|
||||||
LibGTop Reference Manual
|
|
||||||
|
|
||||||
* System Dependent:: System Dependent Functions.
|
|
||||||
* Common Functions:: Common Functions.
|
|
||||||
* Library Functions:: Library Functions.
|
|
||||||
|
|
||||||
System Dependent Functions
|
|
||||||
|
|
||||||
* glibtop_cpu:: CPU Usage.
|
|
||||||
* glibtop_mem:: Memory Usage.
|
|
||||||
* glibtop_swap:: Swap Usage.
|
|
||||||
* glibtop_uptime:: System Uptime.
|
|
||||||
* glibtop_loadavg:: Load Average.
|
|
||||||
* glibtop_proclist:: Process List.
|
|
||||||
* glibtop_proc_state:: Process State.
|
|
||||||
* glibtop_proc_uid:: Process UID and TTY Information.
|
|
||||||
* glibtop_proc_mem:: Process Memory Information.
|
|
||||||
* glibtop_proc_time:: Process Time Information.
|
|
||||||
* glibtop_proc_signal:: Process Signal Information.
|
|
||||||
* glibtop_proc_kernel:: Process Kernel Data Information.
|
|
||||||
* glibtop_proc_segment:: Process Segment Information.
|
|
||||||
* glibtop_proc_args:: Process Arguments.
|
|
||||||
* glibtop_proc_map:: Process Memory Maps.
|
|
||||||
* glibtop_netload:: Network Load.
|
|
||||||
* glibtop_ppp:: PPP Usage.
|
|
||||||
|
|
||||||
Common Functions
|
|
||||||
|
|
||||||
* glibtop_mountlist:: Mount List.
|
|
||||||
* glibtop_fsusage:: File System Usage.
|
|
||||||
|
|
||||||
Library Functions
|
|
||||||
|
|
||||||
* glibtop_init:: Server Initialization.
|
|
||||||
* glibtop_sysdeps:: Server Sysdeps.
|
|
||||||
* Library Parameters:: Library Parameters.
|
|
||||||
|
|
||||||
LibGTop Internals
|
|
||||||
|
|
||||||
* General Internals:: General Internals
|
|
||||||
* Sysdeps Internals:: Sysdeps Internals
|
|
||||||
|
|
||||||
General Internals
|
|
||||||
|
|
||||||
* glibtop:: The server structure
|
|
||||||
|
|
||||||
Sysdeps Internals
|
|
||||||
|
|
||||||
* glibtop_open_s:: Non-privileged initializations
|
|
||||||
* glibtop_close_s:: Non-privileged cleanups
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@include about.texi
|
|
||||||
@include white-paper.texi
|
|
||||||
@include reference.texi
|
|
||||||
@include internals.texi
|
|
||||||
|
|
||||||
1807
doc/reference.texi
1807
doc/reference.texi
File diff suppressed because it is too large
Load Diff
@@ -1,136 +0,0 @@
|
|||||||
@node White Paper, Reference Manual, About, Top
|
|
||||||
@chapter LibGTop White Paper
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* Introduction:: Introduction
|
|
||||||
* Overview:: Overview
|
|
||||||
* Servers and Daemons:: Servers and Daemons
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@node Introduction, Overview, White Paper, White Paper
|
|
||||||
@section Introduction
|
|
||||||
|
|
||||||
Many modern UNIX systems like Solaris, BSD or Digitial Unix only allow
|
|
||||||
priviledged processes to read information like CPU and Memory Usage or
|
|
||||||
information about running processes.
|
|
||||||
|
|
||||||
@itemize @bullet
|
|
||||||
@item
|
|
||||||
BSD, for instance, doesn't have any other way to get those data than reading
|
|
||||||
directly from @file{/dev/kmem} and you need to be in the @code{kmem} group to
|
|
||||||
be able to read this.
|
|
||||||
|
|
||||||
@item
|
|
||||||
Other systems, like Digital Unix, allow all users to get things like CPU and
|
|
||||||
Memory statistics, but only root may read information about any process other
|
|
||||||
than the current one (you may not even get information about your own processes
|
|
||||||
if you're not root).
|
|
||||||
|
|
||||||
@item
|
|
||||||
Linux has a very nice @file{/proc} filesystem, but reading and parsing
|
|
||||||
@file{/proc} is very slow and inefficient.
|
|
||||||
|
|
||||||
@item
|
|
||||||
Solaris is a bit better, but you still need to be in the @code{sys} group or
|
|
||||||
even root to get some data.
|
|
||||||
@end itemize
|
|
||||||
|
|
||||||
Because of this system utilities like @code{ps}, @code{uptime} or @code{top}
|
|
||||||
often are setgid kmem or setuid root. Usually, they're also very specific to
|
|
||||||
the system they're written for and not easily portable to other systems without
|
|
||||||
a lot of work.
|
|
||||||
|
|
||||||
This, of cause, becomes a problem for graphical tools like @code{gtop} - making
|
|
||||||
a GTK+ program setgid or even setuid would be a security hole as big as you can
|
|
||||||
drive the entire X11 source code through. For the GNOME project, we also needed
|
|
||||||
some kind of library which provides all the required information in a portable
|
|
||||||
since there's more than just one single program that wants to use them - for
|
|
||||||
instance @code{gtop} and the @code{multiload}, @code{cpumemusage} and
|
|
||||||
@code{netload} panel applets.
|
|
||||||
|
|
||||||
@node Overview, Servers and Daemons, Introduction, White Paper
|
|
||||||
@section Overview
|
|
||||||
|
|
||||||
This section should give you a short overview on how LibGTop was developed, which
|
|
||||||
things needed to be considered and how it works.
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* Interface Design:: Things that need to be considered
|
|
||||||
* Server Implementation:: The LibGTop "server"
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@node Interface Design, Server Implementation, Overview, Overview
|
|
||||||
@subsection Interface Design
|
|
||||||
|
|
||||||
At the very beginning, it was necessary to collect all the data the library part
|
|
||||||
should provide and put them into some C structures. This was not that easiy as it
|
|
||||||
might sound since LibGTop should be portable to any modern UNIX system with a common
|
|
||||||
library part on all those systems, but the data that should be returned vary from
|
|
||||||
system to system. For instance some systems support shared memory, but some others
|
|
||||||
may not.
|
|
||||||
|
|
||||||
The header files where we define these C structures (which are system-independent) are
|
|
||||||
shared between client and server. This way we can call the system dependent code
|
|
||||||
directly where we do not need any special privileges to do so.
|
|
||||||
|
|
||||||
All of those structures contain a @code{flags} member which is interpreted as a bit
|
|
||||||
mask and tells the caller of the library functions which of the fields in the returned
|
|
||||||
structure are valid and which are not.
|
|
||||||
|
|
||||||
@node Server Implementation, , Interface Design, Overview
|
|
||||||
@subsection Server Implementation
|
|
||||||
|
|
||||||
The LibGTop @dfn{server} is a setgid/setuid binary which contains all the system
|
|
||||||
dependent code which needs special privileges. It is only build if it's required
|
|
||||||
on the current system (for instance, the Linux kernel provides all the required
|
|
||||||
data via its @file{/proc} filesystem so we do not need the server at all) and it
|
|
||||||
only contains the @dfn{features} which need privileges.
|
|
||||||
|
|
||||||
Whenever we do not need any privileges to get all the data for some of the requested
|
|
||||||
structures (here called @dfn{features}) the library calls the sysdeps code directly
|
|
||||||
rather than using the server.
|
|
||||||
|
|
||||||
@node Servers and Daemons, , Overview, White Paper
|
|
||||||
@section Servers and Daemons
|
|
||||||
|
|
||||||
LibGTop gives you the possibility to use different LibGTop "servers" and
|
|
||||||
"daemons" in your application.
|
|
||||||
|
|
||||||
Normally you do not need to worry about this things since LibGTop auto-
|
|
||||||
matically opens a pipe to its server it it's required, but this can also
|
|
||||||
be customized to fit your needs.
|
|
||||||
|
|
||||||
For instance if you have a small applet which is only interested in disk
|
|
||||||
usage there's no need to fork a separate server process since you don't
|
|
||||||
need any privileges to get them on any of the supported systems. This can
|
|
||||||
be archieved with a special call to @code{glibtop_init_r} on startup.
|
|
||||||
|
|
||||||
There's also an option to tell @code{glibtop_init_r} that you're only
|
|
||||||
interested in several features - for instance cpu and memory usage. In
|
|
||||||
this case LibGTop will only fork a server process if it's required to get
|
|
||||||
cpu and memory.
|
|
||||||
|
|
||||||
You can also tell @code{glibtop_init_r} to start the server only on demand,
|
|
||||||
this might become useful in command-line based programs. For graphical
|
|
||||||
applications it's normally best to start the server directly during their
|
|
||||||
initialization. The same applies for any time critical applications (since
|
|
||||||
@code{fork} is an expensive operation on some systems this may lead to
|
|
||||||
incorrect statistics).
|
|
||||||
|
|
||||||
LibGTop also allows you to talk to a remote machine using the
|
|
||||||
@dfn{LibGTop daemon}. This daemon is based on @code{gnuserv} from
|
|
||||||
GNU Emacs and should be run as an unprivileged user. It has support
|
|
||||||
for either @code{xauth} or host based authorization.
|
|
||||||
|
|
||||||
This daemon itself behaves like a LibGTop client application, i.e. it
|
|
||||||
forks a server process if this is required.
|
|
||||||
|
|
||||||
The main use for this daemon is when you want to monitor a machine which
|
|
||||||
is either very slow or has very low disk space. In this case you don't need
|
|
||||||
to install the whole client application (for instance GTop) on the remote
|
|
||||||
machine but only a very small (maybe also statically linked) executable and
|
|
||||||
run the graphical application on a more powerful machine.
|
|
||||||
|
|
||||||
It can also be used to monitor a remote machine over a very slow link such
|
|
||||||
as a dialup connection since the conversation between LibGTop client and
|
|
||||||
daemon uses much less bandwith than an ordinary X11 connection.
|
|
||||||
@@ -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,92 +0,0 @@
|
|||||||
1999-05-28 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c, second.c, sysdeps.c: Use LibGTop version conditionals
|
|
||||||
so we can more easily merge the code into LIBGTOP_STABLE_1_0.
|
|
||||||
|
|
||||||
1999-05-08 Drazen Kacar <dave@srce.hr>
|
|
||||||
|
|
||||||
* mountlist.c: Changed pfintf formats to "%lld" when printing
|
|
||||||
u_int64_t. This is still utterly unportable, but will
|
|
||||||
hopefully work on all supported architectures. For now.
|
|
||||||
|
|
||||||
1999-05-07 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* timings.c (timersub): Renamed this to `libgtop_timersub' and define
|
|
||||||
it on all systems.
|
|
||||||
|
|
||||||
Fri Apr 9 00:14:52 1999 Timur Bakeyev <timur@gnu.org>
|
|
||||||
|
|
||||||
* timings.c: Added timersub defenition, to make code compilable on
|
|
||||||
BSDI.
|
|
||||||
|
|
||||||
1999-03-24 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* timings.c: New example.
|
|
||||||
|
|
||||||
1999-03-17 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c, second.c: Fixed a bug that caused a core dump when
|
|
||||||
the sysdeps code does not return all data.
|
|
||||||
|
|
||||||
1998-11-22 Martin Baulig <baulig@taurus.uni-trier.de>
|
|
||||||
|
|
||||||
* netload.c: Call inet_ntoa () to get address and subnet
|
|
||||||
in quatted dot notation (like 136.199.14.201) and not just
|
|
||||||
as a number (like 0xc90ec788).
|
|
||||||
|
|
||||||
1998-11-02 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* sysdeps.c: New example.
|
|
||||||
|
|
||||||
1998-10-26 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* netload.c: New file. Gets network load for the interface
|
|
||||||
given as command line argument.
|
|
||||||
|
|
||||||
1998-10-26 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c (glibtop_get_proc_args): Get command line arguments.
|
|
||||||
* second.c: Likewise.
|
|
||||||
|
|
||||||
1998-10-25 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c (glibtop_get_ppp): Get PPP/ISDN statistics.
|
|
||||||
|
|
||||||
1998-09-28 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am: Install everything in $(libexecdir)/libgtop.
|
|
||||||
|
|
||||||
1998-09-09 Martin Baulig <baulig@Stud.Informatik.uni-trier.de>
|
|
||||||
|
|
||||||
* smp.c: New file. Nice tool to show CPU statistics on SMP systems.
|
|
||||||
|
|
||||||
1998-08-25 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* first.c, second.c, procmap.c: Fixed some compiler warnings.
|
|
||||||
|
|
||||||
1998-08-18 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* procmap.c: We now display filenames when compiled
|
|
||||||
`--with-libgtop-inodedb'.
|
|
||||||
|
|
||||||
1998-08-12 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* second.c: Works a little bit more like `ps' - you can
|
|
||||||
give an optional command line argument to get information
|
|
||||||
about a single process.
|
|
||||||
|
|
||||||
1998-07-22 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* mountlist.c: New file.
|
|
||||||
|
|
||||||
1998-06-12 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* test.scm: New file.
|
|
||||||
|
|
||||||
1998-06-07 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am (CFLAGS): Disable optimize.
|
|
||||||
|
|
||||||
* first.c (PROFILE_COUNT): Number of times each function
|
|
||||||
should be called. Defaults to 1; to profile the code, you
|
|
||||||
can increase this when compiling.
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
|
||||||
|
|
||||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
INCLUDES = @INCLUDES@
|
|
||||||
|
|
||||||
DEFS = @DEFS@
|
|
||||||
|
|
||||||
# We install it in `libexec' since this will make it more easy
|
|
||||||
# to put the examples into an extra RPM package.
|
|
||||||
|
|
||||||
libgtopdir = $(libexecdir)/libgtop
|
|
||||||
|
|
||||||
libgtop_PROGRAMS = first second\
|
|
||||||
mountlist procmap netload sysdeps timings \
|
|
||||||
@static_targets@ @guile_examples@ @smp_examples@
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS = first_static second_static \
|
|
||||||
mountlist_static procmap_static \
|
|
||||||
third third_static smp smp_static \
|
|
||||||
netload_static sysdeps_static \
|
|
||||||
timings_static
|
|
||||||
|
|
||||||
first_SOURCES = first.c
|
|
||||||
first_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
first_static_SOURCES = $(first_SOURCES)
|
|
||||||
first_static_LDADD = $(first_LDADD)
|
|
||||||
first_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
second_SOURCES = second.c
|
|
||||||
second_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
second_static_SOURCES = $(second_SOURCES)
|
|
||||||
second_static_LDADD = $(second_LDADD)
|
|
||||||
second_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
procmap_SOURCES = procmap.c
|
|
||||||
procmap_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procmap_static_SOURCES = $(procmap_SOURCES)
|
|
||||||
procmap_static_LDADD = $(procmap_LDADD)
|
|
||||||
procmap_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
netload_SOURCES = netload.c
|
|
||||||
netload_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
netload_static_SOURCES = $(netload_SOURCES)
|
|
||||||
netload_static_LDADD = $(netload_LDADD)
|
|
||||||
netload_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
sysdeps_SOURCES = sysdeps.c
|
|
||||||
sysdeps_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
sysdeps_static_SOURCES = $(sysdeps_SOURCES)
|
|
||||||
sysdeps_static_LDADD = $(sysdeps_LDADD)
|
|
||||||
sysdeps_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
third_guile_names_LIBS = $(top_builddir)/sysdeps/guile/names/libgtop_guile_names.la
|
|
||||||
third_names_LIBS = $(top_builddir)/sysdeps/names/libgtop_names.la
|
|
||||||
|
|
||||||
third_SOURCES = third.c
|
|
||||||
third_LDADD = $(top_builddir)/sysdeps/guile/libgtop_guile.la \
|
|
||||||
$(third_guile_names_LIBS) $(third_names_LIBS) \
|
|
||||||
$(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@GUILE_LIBS@ @LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
third_static_SOURCES = $(third_SOURCES)
|
|
||||||
third_static_LDADD = $(third_LDADD)
|
|
||||||
third_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
mountlist_SOURCES = mountlist.c
|
|
||||||
mountlist_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
mountlist_static_SOURCES= $(mountlist_SOURCES)
|
|
||||||
mountlist_static_LDADD = $(mountlist_LDADD)
|
|
||||||
mountlist_static_LDFLAGS= -static
|
|
||||||
|
|
||||||
|
|
||||||
smp_SOURCES = smp.c
|
|
||||||
smp_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
smp_static_SOURCES = $(smp_SOURCES)
|
|
||||||
smp_static_LDADD = $(smp_LDADD)
|
|
||||||
smp_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
timings_SOURCES = timings.c
|
|
||||||
timings_LDADD = $(top_builddir)/lib/libgtop.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
timings_static_SOURCES = $(timings_SOURCES)
|
|
||||||
timings_static_LDADD = $(timings_LDADD)
|
|
||||||
timings_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
813
examples/first.c
813
examples/first.c
@@ -1,813 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
#include <sys/resource.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_union data;
|
|
||||||
glibtop_sysdeps sysdeps;
|
|
||||||
unsigned c, method, count, port, i, *ptr;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
pid_t pid, ppid;
|
|
||||||
char *args;
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_cpu (&data.cpu);
|
|
||||||
|
|
||||||
printf ("CPU (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.cpu.flags,
|
|
||||||
(unsigned long) data.cpu.total,
|
|
||||||
(unsigned long) data.cpu.user,
|
|
||||||
(unsigned long) data.cpu.nice,
|
|
||||||
(unsigned long) data.cpu.sys,
|
|
||||||
(unsigned long) data.cpu.idle,
|
|
||||||
(unsigned long) data.cpu.frequency);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_mem (&data.mem);
|
|
||||||
|
|
||||||
printf ("Memory (0x%08lx): "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.mem.flags,
|
|
||||||
(unsigned long) data.mem.total,
|
|
||||||
(unsigned long) data.mem.used,
|
|
||||||
(unsigned long) data.mem.free,
|
|
||||||
(unsigned long) data.mem.shared,
|
|
||||||
(unsigned long) data.mem.buffer,
|
|
||||||
(unsigned long) data.mem.cached,
|
|
||||||
(unsigned long) data.mem.user,
|
|
||||||
(unsigned long) data.mem.locked);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_swap (&data.swap);
|
|
||||||
|
|
||||||
printf ("Swap (0x%08lx): %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.swap.flags,
|
|
||||||
(unsigned long) data.swap.total,
|
|
||||||
(unsigned long) data.swap.used,
|
|
||||||
(unsigned long) data.swap.free,
|
|
||||||
(unsigned long) data.swap.pagein,
|
|
||||||
(unsigned long) data.swap.pageout);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_uptime (&data.uptime);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Uptime (0x%08lx): %f, %f, %lu\n",
|
|
||||||
(unsigned long) data.uptime.flags,
|
|
||||||
data.uptime.uptime, data.uptime.idletime,
|
|
||||||
(unsigned long) data.uptime.boot_time);
|
|
||||||
#else
|
|
||||||
printf ("Uptime (0x%08lx): %f, %f\n",
|
|
||||||
(unsigned long) data.uptime.flags,
|
|
||||||
data.uptime.uptime, data.uptime.idletime);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_loadavg (&data.loadavg);
|
|
||||||
|
|
||||||
printf ("Loadavg (0x%08lx): %f, %f, %f - %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.loadavg.flags,
|
|
||||||
(double) data.loadavg.loadavg [0],
|
|
||||||
(double) data.loadavg.loadavg [1],
|
|
||||||
(double) data.loadavg.loadavg [2],
|
|
||||||
(unsigned long) data.loadavg.nr_running,
|
|
||||||
(unsigned long) data.loadavg.nr_tasks,
|
|
||||||
(unsigned long) data.loadavg.last_pid);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_shm_limits (&data.shm_limits);
|
|
||||||
|
|
||||||
printf ("Shm Limits (0x%08lx): %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.shm_limits.flags,
|
|
||||||
(unsigned long) data.shm_limits.shmmax,
|
|
||||||
(unsigned long) data.shm_limits.shmmin,
|
|
||||||
(unsigned long) data.shm_limits.shmmni,
|
|
||||||
(unsigned long) data.shm_limits.shmseg,
|
|
||||||
(unsigned long) data.shm_limits.shmall);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_msg_limits (&data.msg_limits);
|
|
||||||
|
|
||||||
printf ("Msg Limits (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.msg_limits.flags,
|
|
||||||
(unsigned long) data.msg_limits.msgpool,
|
|
||||||
(unsigned long) data.msg_limits.msgmap,
|
|
||||||
(unsigned long) data.msg_limits.msgmax,
|
|
||||||
(unsigned long) data.msg_limits.msgmnb,
|
|
||||||
(unsigned long) data.msg_limits.msgmni,
|
|
||||||
(unsigned long) data.msg_limits.msgssz,
|
|
||||||
(unsigned long) data.msg_limits.msgtql);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_sem_limits (&data.sem_limits);
|
|
||||||
|
|
||||||
printf ("Sem Limits (0x%08lx): "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.sem_limits.flags,
|
|
||||||
(unsigned long) data.sem_limits.semmap,
|
|
||||||
(unsigned long) data.sem_limits.semmni,
|
|
||||||
(unsigned long) data.sem_limits.semmns,
|
|
||||||
(unsigned long) data.sem_limits.semmnu,
|
|
||||||
(unsigned long) data.sem_limits.semmsl,
|
|
||||||
(unsigned long) data.sem_limits.semopm,
|
|
||||||
(unsigned long) data.sem_limits.semume,
|
|
||||||
(unsigned long) data.sem_limits.semusz,
|
|
||||||
(unsigned long) data.sem_limits.semvmx,
|
|
||||||
(unsigned long) data.sem_limits.semaem);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_ppp (&data.ppp, 0);
|
|
||||||
|
|
||||||
printf ("PPP (0x%08lx): %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.ppp.flags,
|
|
||||||
(unsigned long) data.ppp.state,
|
|
||||||
(unsigned long) data.ppp.bytes_in,
|
|
||||||
(unsigned long) data.ppp.bytes_out);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
glibtop_get_sysdeps (&sysdeps);
|
|
||||||
|
|
||||||
printf ("Sysdeps (0x%08lx): %lu, %lu, %lu, %lu, %lu, "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) sysdeps.flags,
|
|
||||||
(unsigned long) sysdeps.cpu,
|
|
||||||
(unsigned long) sysdeps.mem,
|
|
||||||
(unsigned long) sysdeps.swap,
|
|
||||||
(unsigned long) sysdeps.uptime,
|
|
||||||
(unsigned long) sysdeps.loadavg,
|
|
||||||
(unsigned long) sysdeps.shm_limits,
|
|
||||||
(unsigned long) sysdeps.msg_limits,
|
|
||||||
(unsigned long) sysdeps.sem_limits,
|
|
||||||
(unsigned long) sysdeps.proclist,
|
|
||||||
(unsigned long) sysdeps.proc_state,
|
|
||||||
(unsigned long) sysdeps.proc_uid,
|
|
||||||
(unsigned long) sysdeps.proc_mem,
|
|
||||||
(unsigned long) sysdeps.proc_time,
|
|
||||||
(unsigned long) sysdeps.proc_signal,
|
|
||||||
(unsigned long) sysdeps.proc_kernel,
|
|
||||||
(unsigned long) sysdeps.proc_segment,
|
|
||||||
(unsigned long) sysdeps.proc_args,
|
|
||||||
(unsigned long) sysdeps.proc_map,
|
|
||||||
(unsigned long) sysdeps.mountlist,
|
|
||||||
(unsigned long) sysdeps.fsusage,
|
|
||||||
(unsigned long) sysdeps.netload,
|
|
||||||
(unsigned long) sysdeps.ppp);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
ptr = glibtop_get_proclist (&data.proclist, 0, 0);
|
|
||||||
|
|
||||||
printf ("Proclist (0x%08lx): %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) data.proclist.flags,
|
|
||||||
(unsigned long) data.proclist.number,
|
|
||||||
(unsigned long) data.proclist.size,
|
|
||||||
(unsigned long) data.proclist.total);
|
|
||||||
|
|
||||||
if (ptr) {
|
|
||||||
printf ("\nProcess: ");
|
|
||||||
for (i = 0; i < data.proclist.number; i++)
|
|
||||||
printf ("%s%u", i ? ", " : "", ptr [i]);
|
|
||||||
printf ("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_free (ptr);
|
|
||||||
|
|
||||||
pid = getpid ();
|
|
||||||
ppid = getppid ();
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_state (&data.proc_state, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_State PID %5d (0x%08lx): '%s', %u - "
|
|
||||||
"%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
data.proc_state.uid, data.proc_state.gid,
|
|
||||||
data.proc_state.ruid, data.proc_state.rgid,
|
|
||||||
data.proc_state.has_cpu, data.proc_state.processor,
|
|
||||||
data.proc_state.last_processor);
|
|
||||||
#else
|
|
||||||
printf ("Proc_State PID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
|
|
||||||
(int) pid, (unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
(unsigned long) data.proc_state.uid,
|
|
||||||
(unsigned long) data.proc_state.gid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
|
|
||||||
(int) pid, (unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.suid, data.proc_uid.sgid,
|
|
||||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice,
|
|
||||||
data.proc_uid.ngroups);
|
|
||||||
|
|
||||||
if (data.proc_uid.ngroups) {
|
|
||||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
|
||||||
if (i)
|
|
||||||
printf (" %d", data.proc_uid.groups [i]);
|
|
||||||
else
|
|
||||||
printf (" (%d", data.proc_uid.groups [i]);
|
|
||||||
}
|
|
||||||
printf (")");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#else
|
|
||||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Mem PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_mem.flags,
|
|
||||||
(unsigned long) data.proc_mem.size,
|
|
||||||
(unsigned long) data.proc_mem.vsize,
|
|
||||||
(unsigned long) data.proc_mem.resident,
|
|
||||||
(unsigned long) data.proc_mem.share,
|
|
||||||
(unsigned long) data.proc_mem.rss,
|
|
||||||
(unsigned long) data.proc_mem.rss_rlim);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_data,
|
|
||||||
(unsigned long) data.proc_segment.end_data,
|
|
||||||
(unsigned long) data.proc_segment.start_brk,
|
|
||||||
(unsigned long) data.proc_segment.end_brk,
|
|
||||||
(unsigned long) data.proc_segment.start_stack,
|
|
||||||
(unsigned long) data.proc_segment.start_mmap,
|
|
||||||
(unsigned long) data.proc_segment.arg_start,
|
|
||||||
(unsigned long) data.proc_segment.arg_end,
|
|
||||||
(unsigned long) data.proc_segment.env_start,
|
|
||||||
(unsigned long) data.proc_segment.env_end);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_stack);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_time (&data.proc_time, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Time PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_time.flags,
|
|
||||||
(unsigned long) data.proc_time.start_time,
|
|
||||||
(unsigned long) data.proc_time.rtime,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime,
|
|
||||||
(unsigned long) data.proc_time.cutime,
|
|
||||||
(unsigned long) data.proc_time.cstime,
|
|
||||||
(unsigned long) data.proc_time.timeout,
|
|
||||||
(unsigned long) data.proc_time.it_real_value,
|
|
||||||
(unsigned long) data.proc_time.frequency);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
|
||||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal [0],
|
|
||||||
(unsigned long) data.proc_signal.signal [1],
|
|
||||||
(unsigned long) data.proc_signal.blocked [0],
|
|
||||||
(unsigned long) data.proc_signal.blocked [1],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [0],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [1],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [0],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal,
|
|
||||||
(unsigned long) data.proc_signal.blocked,
|
|
||||||
(unsigned long) data.proc_signal.sigignore,
|
|
||||||
(unsigned long) data.proc_signal.sigcatch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_kernel.flags,
|
|
||||||
(unsigned long) data.proc_kernel.k_flags,
|
|
||||||
(unsigned long) data.proc_kernel.min_flt,
|
|
||||||
(unsigned long) data.proc_kernel.maj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmin_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmaj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_esp,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_eip,
|
|
||||||
(unsigned long) data.proc_kernel.nwchan,
|
|
||||||
data.proc_kernel.wchan);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
args = glibtop_get_proc_args (&data.proc_args, pid, 0);
|
|
||||||
|
|
||||||
for (i = 0; i < data.proc_args.size; i++) {
|
|
||||||
if (args [i]) continue;
|
|
||||||
args [i] = '|';
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_args.flags,
|
|
||||||
(unsigned long) data.proc_args.size,
|
|
||||||
args ? args : "");
|
|
||||||
|
|
||||||
glibtop_free (args);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_state (&data.proc_state, ppid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_State PPID %5d (0x%08lx): '%s', %u - "
|
|
||||||
"%u, %u, %u, %u - %u, %u, %u\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
data.proc_state.uid, data.proc_state.gid,
|
|
||||||
data.proc_state.ruid, data.proc_state.rgid,
|
|
||||||
data.proc_state.has_cpu, data.proc_state.processor,
|
|
||||||
data.proc_state.last_processor);
|
|
||||||
#else
|
|
||||||
printf ("Proc_State PPID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
|
|
||||||
(int) ppid, (unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
(unsigned long) data.proc_state.uid,
|
|
||||||
(unsigned long) data.proc_state.gid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, ppid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Uid PPID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
|
|
||||||
(int) ppid, (unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.suid, data.proc_uid.sgid,
|
|
||||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice,
|
|
||||||
data.proc_uid.ngroups);
|
|
||||||
|
|
||||||
if (data.proc_uid.ngroups) {
|
|
||||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
|
||||||
if (i)
|
|
||||||
printf (" %d", data.proc_uid.groups [i]);
|
|
||||||
else
|
|
||||||
printf (" (%d", data.proc_uid.groups [i]);
|
|
||||||
}
|
|
||||||
printf (")");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#else
|
|
||||||
printf ("Proc_Uid PPID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, ppid);
|
|
||||||
|
|
||||||
printf ("Proc_Mem PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_mem.flags,
|
|
||||||
(unsigned long) data.proc_mem.size,
|
|
||||||
(unsigned long) data.proc_mem.vsize,
|
|
||||||
(unsigned long) data.proc_mem.resident,
|
|
||||||
(unsigned long) data.proc_mem.share,
|
|
||||||
(unsigned long) data.proc_mem.rss,
|
|
||||||
(unsigned long) data.proc_mem.rss_rlim);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, ppid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Segment PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_data,
|
|
||||||
(unsigned long) data.proc_segment.end_data,
|
|
||||||
(unsigned long) data.proc_segment.start_brk,
|
|
||||||
(unsigned long) data.proc_segment.end_brk,
|
|
||||||
(unsigned long) data.proc_segment.start_stack,
|
|
||||||
(unsigned long) data.proc_segment.start_mmap,
|
|
||||||
(unsigned long) data.proc_segment.arg_start,
|
|
||||||
(unsigned long) data.proc_segment.arg_end,
|
|
||||||
(unsigned long) data.proc_segment.env_start,
|
|
||||||
(unsigned long) data.proc_segment.env_end);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Segment PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_stack);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_time (&data.proc_time, ppid);
|
|
||||||
|
|
||||||
printf ("Proc_Time PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_time.flags,
|
|
||||||
(unsigned long) data.proc_time.start_time,
|
|
||||||
(unsigned long) data.proc_time.rtime,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime,
|
|
||||||
(unsigned long) data.proc_time.cutime,
|
|
||||||
(unsigned long) data.proc_time.cstime,
|
|
||||||
(unsigned long) data.proc_time.timeout,
|
|
||||||
(unsigned long) data.proc_time.it_real_value,
|
|
||||||
(unsigned long) data.proc_time.frequency);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, ppid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Signal PPID %5d (0x%08lx): "
|
|
||||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n",
|
|
||||||
(int) ppid, (unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal [0],
|
|
||||||
(unsigned long) data.proc_signal.signal [1],
|
|
||||||
(unsigned long) data.proc_signal.blocked [0],
|
|
||||||
(unsigned long) data.proc_signal.blocked [1],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [0],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [1],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [0],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Signal PPID %5d (0x%08lx): %lu %lu %lu %lu\n",
|
|
||||||
(int) ppid, (unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal,
|
|
||||||
(unsigned long) data.proc_signal.blocked,
|
|
||||||
(unsigned long) data.proc_signal.sigignore,
|
|
||||||
(unsigned long) data.proc_signal.sigcatch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, ppid);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel PPID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_kernel.flags,
|
|
||||||
(unsigned long) data.proc_kernel.k_flags,
|
|
||||||
(unsigned long) data.proc_kernel.min_flt,
|
|
||||||
(unsigned long) data.proc_kernel.maj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmin_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmaj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_esp,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_eip,
|
|
||||||
(unsigned long) data.proc_kernel.nwchan,
|
|
||||||
data.proc_kernel.wchan);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
args = glibtop_get_proc_args (&data.proc_args, ppid, 0);
|
|
||||||
|
|
||||||
for (i = 0; i < data.proc_args.size; i++) {
|
|
||||||
if (args [i]) continue;
|
|
||||||
args [i] = '|';
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", (int) ppid,
|
|
||||||
(unsigned long) data.proc_args.flags,
|
|
||||||
(unsigned long) data.proc_args.size,
|
|
||||||
args ? args : "");
|
|
||||||
|
|
||||||
glibtop_free (args);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_state (&data.proc_state, 1);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_State INIT %5d (0x%08lx): '%s', %u - "
|
|
||||||
"%u, %u, %u, %u - %u, %u, %u\n", 1,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
data.proc_state.uid, data.proc_state.gid,
|
|
||||||
data.proc_state.ruid, data.proc_state.rgid,
|
|
||||||
data.proc_state.has_cpu, data.proc_state.processor,
|
|
||||||
data.proc_state.last_processor);
|
|
||||||
#else
|
|
||||||
printf ("Proc_State INIT %5d (0x%08lx): '%s', %c, %lu, %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
(unsigned long) data.proc_state.uid,
|
|
||||||
(unsigned long) data.proc_state.gid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, 1);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Uid INIT %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d", 1,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.suid, data.proc_uid.sgid,
|
|
||||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice,
|
|
||||||
data.proc_uid.ngroups);
|
|
||||||
|
|
||||||
if (data.proc_uid.ngroups) {
|
|
||||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
|
||||||
if (i)
|
|
||||||
printf (" %d", data.proc_uid.groups [i]);
|
|
||||||
else
|
|
||||||
printf (" (%d", data.proc_uid.groups [i]);
|
|
||||||
}
|
|
||||||
printf (")");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#else
|
|
||||||
printf ("Proc_Uid INIT %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", 1,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, 1);
|
|
||||||
|
|
||||||
printf ("Proc_Mem INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_mem.flags,
|
|
||||||
(unsigned long) data.proc_mem.size,
|
|
||||||
(unsigned long) data.proc_mem.vsize,
|
|
||||||
(unsigned long) data.proc_mem.resident,
|
|
||||||
(unsigned long) data.proc_mem.share,
|
|
||||||
(unsigned long) data.proc_mem.rss,
|
|
||||||
(unsigned long) data.proc_mem.rss_rlim);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, 1);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Segment INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", 1,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_data,
|
|
||||||
(unsigned long) data.proc_segment.end_data,
|
|
||||||
(unsigned long) data.proc_segment.start_brk,
|
|
||||||
(unsigned long) data.proc_segment.end_brk,
|
|
||||||
(unsigned long) data.proc_segment.start_stack,
|
|
||||||
(unsigned long) data.proc_segment.start_mmap,
|
|
||||||
(unsigned long) data.proc_segment.arg_start,
|
|
||||||
(unsigned long) data.proc_segment.arg_end,
|
|
||||||
(unsigned long) data.proc_segment.env_start,
|
|
||||||
(unsigned long) data.proc_segment.env_end);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Segment INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_stack);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_time (&data.proc_time, 1);
|
|
||||||
|
|
||||||
printf ("Proc_Time INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_time.flags,
|
|
||||||
(unsigned long) data.proc_time.start_time,
|
|
||||||
(unsigned long) data.proc_time.rtime,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime,
|
|
||||||
(unsigned long) data.proc_time.cutime,
|
|
||||||
(unsigned long) data.proc_time.cstime,
|
|
||||||
(unsigned long) data.proc_time.timeout,
|
|
||||||
(unsigned long) data.proc_time.it_real_value,
|
|
||||||
(unsigned long) data.proc_time.frequency);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, 1);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Signal INIT %5d (0x%08lx): "
|
|
||||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n", 1,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal [0],
|
|
||||||
(unsigned long) data.proc_signal.signal [1],
|
|
||||||
(unsigned long) data.proc_signal.blocked [0],
|
|
||||||
(unsigned long) data.proc_signal.blocked [1],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [0],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [1],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [0],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Signal INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu\n", 1,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal,
|
|
||||||
(unsigned long) data.proc_signal.blocked,
|
|
||||||
(unsigned long) data.proc_signal.sigignore,
|
|
||||||
(unsigned long) data.proc_signal.sigcatch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, 1);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel INIT %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", 1,
|
|
||||||
(unsigned long) data.proc_kernel.flags,
|
|
||||||
(unsigned long) data.proc_kernel.k_flags,
|
|
||||||
(unsigned long) data.proc_kernel.min_flt,
|
|
||||||
(unsigned long) data.proc_kernel.maj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmin_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmaj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_esp,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_eip,
|
|
||||||
(unsigned long) data.proc_kernel.nwchan,
|
|
||||||
data.proc_kernel.wchan);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
args = glibtop_get_proc_args (&data.proc_args, 1, 0);
|
|
||||||
|
|
||||||
for (i = 0; i < data.proc_args.size; i++) {
|
|
||||||
if (args [i]) continue;
|
|
||||||
args [i] = '|';
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", 1,
|
|
||||||
(unsigned long) data.proc_args.flags,
|
|
||||||
(unsigned long) data.proc_args.size,
|
|
||||||
args ? args : "");
|
|
||||||
|
|
||||||
glibtop_free (args);
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
@@ -1,113 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/mountlist.h>
|
|
||||||
#include <glibtop/fsusage.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_fsusage fsusage;
|
|
||||||
glibtop_mountlist mount_list;
|
|
||||||
glibtop_mountentry *mount_entries;
|
|
||||||
unsigned c, index, method, count, port;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
printf ("sbrk (0) = %p\n\n", sbrk (0));
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++) {
|
|
||||||
mount_entries = glibtop_get_mountlist (&mount_list, 1);
|
|
||||||
|
|
||||||
glibtop_free (mount_entries);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("sbrk (0) = %p\n\n", sbrk (0));
|
|
||||||
|
|
||||||
mount_entries = glibtop_get_mountlist (&mount_list, 1);
|
|
||||||
|
|
||||||
if (mount_entries == NULL)
|
|
||||||
_exit (1);
|
|
||||||
|
|
||||||
for (index = 0; index < mount_list.number; index++)
|
|
||||||
printf ("Mount_Entry: %-30s %-10s %-20s\n",
|
|
||||||
mount_entries [index].mountdir,
|
|
||||||
mount_entries [index].type,
|
|
||||||
mount_entries [index].devname);
|
|
||||||
|
|
||||||
printf ("\n\n%-23s %9s %9s %9s %9s %9s\n\n",
|
|
||||||
"", "Blocks", "Free", "Avail", "Files", "Free");
|
|
||||||
|
|
||||||
for (index = 0; index < mount_list.number; index++) {
|
|
||||||
glibtop_get_fsusage (&fsusage,
|
|
||||||
mount_entries [index].mountdir);
|
|
||||||
|
|
||||||
printf ("Usage: %-16s %9llu %9llu %9llu %9llu %9llu\n",
|
|
||||||
mount_entries [index].mountdir,
|
|
||||||
fsusage.blocks, fsusage.bfree,
|
|
||||||
fsusage.bavail, fsusage.files,
|
|
||||||
fsusage.ffree);
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_free (mount_entries);
|
|
||||||
|
|
||||||
printf ("\nsbrk (0) = %p\n\n", sbrk (0));
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
@@ -1,125 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/netload.h>
|
|
||||||
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_netload netload;
|
|
||||||
unsigned method, count, port;
|
|
||||||
struct in_addr addr, subnet;
|
|
||||||
char *address_string, *subnet_string;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
if (argc != 2)
|
|
||||||
glibtop_error ("Usage: %s interface", argv [0]);
|
|
||||||
|
|
||||||
glibtop_get_netload (&netload, argv [1]);
|
|
||||||
|
|
||||||
addr.s_addr = netload.address;
|
|
||||||
subnet.s_addr = netload.subnet;
|
|
||||||
|
|
||||||
address_string = glibtop_strdup (inet_ntoa (addr));
|
|
||||||
subnet_string = glibtop_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);
|
|
||||||
|
|
||||||
glibtop_free (address_string);
|
|
||||||
glibtop_free (subnet_string);
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
@@ -1,164 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/procmap.h>
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_INODEDB
|
|
||||||
#include <glibtop/inodedb.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/resource.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
#ifdef GLIBTOP_INODEDB
|
|
||||||
glibtop_inodedb *inodedb;
|
|
||||||
#endif
|
|
||||||
glibtop_proc_map procmap;
|
|
||||||
glibtop_map_entry *maps;
|
|
||||||
unsigned method, count, port, i;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
pid_t pid;
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
|
|
||||||
glibtop_error ("Usage: %s pid", argv [0]);
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_INODEDB
|
|
||||||
inodedb = glibtop_inodedb_open (0, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid);
|
|
||||||
|
|
||||||
maps = glibtop_get_proc_map (&procmap, pid);
|
|
||||||
|
|
||||||
for (i = 0; i < procmap.number; i++) {
|
|
||||||
const char *filename = NULL;
|
|
||||||
unsigned device, device_major, device_minor;
|
|
||||||
char perm [5];
|
|
||||||
|
|
||||||
if (maps [i].flags & (1L << GLIBTOP_MAP_ENTRY_FILENAME))
|
|
||||||
filename = maps [i].filename;
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_INODEDB
|
|
||||||
if (inodedb && !filename)
|
|
||||||
filename = glibtop_inodedb_lookup
|
|
||||||
(inodedb, maps [i].device, maps [i].inode);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
perm [0] = (maps [i].perm & GLIBTOP_MAP_PERM_READ) ? 'r' : '-';
|
|
||||||
perm [1] = (maps [i].perm & GLIBTOP_MAP_PERM_WRITE) ? 'w' : '-';
|
|
||||||
perm [2] = (maps [i].perm & GLIBTOP_MAP_PERM_EXECUTE) ? 'x' : '-';
|
|
||||||
perm [3] = (maps [i].perm & GLIBTOP_MAP_PERM_SHARED) ? 's' : '-';
|
|
||||||
perm [4] = (maps [i].perm & GLIBTOP_MAP_PERM_PRIVATE) ? 'p' : '-';
|
|
||||||
|
|
||||||
device = (unsigned long) maps [i].device;
|
|
||||||
device_minor = (device & 255);
|
|
||||||
device_major = ((device >> 8) & 255);
|
|
||||||
|
|
||||||
if (filename) {
|
|
||||||
char *format;
|
|
||||||
|
|
||||||
if (sizeof (void*) == 8)
|
|
||||||
format = "%016lx-%016lx %016lx - "
|
|
||||||
"%02x:%02x %08lu - %4s - %s\n";
|
|
||||||
else
|
|
||||||
format = "%08lx-%08lx %08lx - "
|
|
||||||
"%02x:%02x %08lu - %4s - %s\n";
|
|
||||||
|
|
||||||
fprintf (stderr, format,
|
|
||||||
(unsigned long) maps [i].start,
|
|
||||||
(unsigned long) maps [i].end,
|
|
||||||
(unsigned long) maps [i].offset,
|
|
||||||
device_major, device_minor,
|
|
||||||
(unsigned long) maps [i].inode,
|
|
||||||
perm, filename);
|
|
||||||
} else {
|
|
||||||
char * format;
|
|
||||||
|
|
||||||
if (sizeof (void*) == 8)
|
|
||||||
format = "%016lx-%016lx %016lx - "
|
|
||||||
"%02x:%02x %08lu - %4s\n";
|
|
||||||
else
|
|
||||||
format = "%08lx-%08lx %08lx - "
|
|
||||||
"%02x:%02x %08lu - %4s\n";
|
|
||||||
|
|
||||||
fprintf (stderr, format,
|
|
||||||
(unsigned long) maps [i].start,
|
|
||||||
(unsigned long) maps [i].end,
|
|
||||||
(unsigned long) maps [i].offset,
|
|
||||||
device_major, device_minor,
|
|
||||||
(unsigned long) maps [i].inode,
|
|
||||||
perm);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (filename && (filename != maps [i].filename))
|
|
||||||
glibtop_free (filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_free (maps);
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
@@ -1,376 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
static void
|
|
||||||
output (pid_t pid)
|
|
||||||
{
|
|
||||||
glibtop_union data;
|
|
||||||
char *args;
|
|
||||||
unsigned i;
|
|
||||||
|
|
||||||
#if HAVE_LIBGTOP_SMP
|
|
||||||
unsigned long total;
|
|
||||||
double p_total, p_utime, p_stime;
|
|
||||||
double b_total, b_utime, b_stime;
|
|
||||||
double s_total, s_utime, s_stime;
|
|
||||||
double my_utime, my_stime;
|
|
||||||
int ncpu;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
glibtop_get_proc_state (&data.proc_state, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_State PID %5d (0x%08lx): '%s', %u - "
|
|
||||||
"%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
data.proc_state.uid, data.proc_state.gid,
|
|
||||||
data.proc_state.ruid, data.proc_state.rgid,
|
|
||||||
data.proc_state.has_cpu, data.proc_state.processor,
|
|
||||||
data.proc_state.last_processor);
|
|
||||||
#else
|
|
||||||
printf ("Proc_State PID %5d (0x%08lx): "
|
|
||||||
"'%s', %c, %lu, %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_state.flags,
|
|
||||||
data.proc_state.cmd, data.proc_state.state,
|
|
||||||
(unsigned long) data.proc_state.uid,
|
|
||||||
(unsigned long) data.proc_state.gid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
|
|
||||||
(int) pid, (unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.suid, data.proc_uid.sgid,
|
|
||||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice,
|
|
||||||
data.proc_uid.ngroups);
|
|
||||||
|
|
||||||
if (data.proc_uid.ngroups) {
|
|
||||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
|
||||||
if (i)
|
|
||||||
printf (" %d", data.proc_uid.groups [i]);
|
|
||||||
else
|
|
||||||
printf (" (%d", data.proc_uid.groups [i]);
|
|
||||||
}
|
|
||||||
printf (")");
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#else
|
|
||||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
|
||||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_uid.flags,
|
|
||||||
data.proc_uid.uid, data.proc_uid.euid,
|
|
||||||
data.proc_uid.gid, data.proc_uid.egid,
|
|
||||||
data.proc_uid.pid, data.proc_uid.ppid,
|
|
||||||
data.proc_uid.pgrp, data.proc_uid.session,
|
|
||||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
|
||||||
data.proc_uid.priority, data.proc_uid.nice);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Mem PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_mem.flags,
|
|
||||||
(unsigned long) data.proc_mem.size,
|
|
||||||
(unsigned long) data.proc_mem.vsize,
|
|
||||||
(unsigned long) data.proc_mem.resident,
|
|
||||||
(unsigned long) data.proc_mem.share,
|
|
||||||
(unsigned long) data.proc_mem.rss,
|
|
||||||
(unsigned long) data.proc_mem.rss_rlim);
|
|
||||||
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
|
||||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_data,
|
|
||||||
(unsigned long) data.proc_segment.end_data,
|
|
||||||
(unsigned long) data.proc_segment.start_brk,
|
|
||||||
(unsigned long) data.proc_segment.end_brk,
|
|
||||||
(unsigned long) data.proc_segment.start_stack,
|
|
||||||
(unsigned long) data.proc_segment.start_mmap,
|
|
||||||
(unsigned long) data.proc_segment.arg_start,
|
|
||||||
(unsigned long) data.proc_segment.arg_end,
|
|
||||||
(unsigned long) data.proc_segment.env_start,
|
|
||||||
(unsigned long) data.proc_segment.env_end);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_segment.flags,
|
|
||||||
(unsigned long) data.proc_segment.text_rss,
|
|
||||||
(unsigned long) data.proc_segment.shlib_rss,
|
|
||||||
(unsigned long) data.proc_segment.data_rss,
|
|
||||||
(unsigned long) data.proc_segment.stack_rss,
|
|
||||||
(unsigned long) data.proc_segment.dirty_size,
|
|
||||||
(unsigned long) data.proc_segment.start_code,
|
|
||||||
(unsigned long) data.proc_segment.end_code,
|
|
||||||
(unsigned long) data.proc_segment.start_stack);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_get_proc_time (&data.proc_time, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Time PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_time.flags,
|
|
||||||
(unsigned long) data.proc_time.start_time,
|
|
||||||
(unsigned long) data.proc_time.rtime,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime,
|
|
||||||
(unsigned long) data.proc_time.cutime,
|
|
||||||
(unsigned long) data.proc_time.cstime,
|
|
||||||
(unsigned long) data.proc_time.timeout,
|
|
||||||
(unsigned long) data.proc_time.it_real_value,
|
|
||||||
(unsigned long) data.proc_time.frequency);
|
|
||||||
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
|
||||||
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
|
||||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal [0],
|
|
||||||
(unsigned long) data.proc_signal.signal [1],
|
|
||||||
(unsigned long) data.proc_signal.blocked [0],
|
|
||||||
(unsigned long) data.proc_signal.blocked [1],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [0],
|
|
||||||
(unsigned long) data.proc_signal.sigignore [1],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [0],
|
|
||||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
|
||||||
#else
|
|
||||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_signal.flags,
|
|
||||||
(unsigned long) data.proc_signal.signal,
|
|
||||||
(unsigned long) data.proc_signal.blocked,
|
|
||||||
(unsigned long) data.proc_signal.sigignore,
|
|
||||||
(unsigned long) data.proc_signal.sigcatch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, pid);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel PID %5d (0x%08lx): "
|
|
||||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_kernel.flags,
|
|
||||||
(unsigned long) data.proc_kernel.k_flags,
|
|
||||||
(unsigned long) data.proc_kernel.min_flt,
|
|
||||||
(unsigned long) data.proc_kernel.maj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmin_flt,
|
|
||||||
(unsigned long) data.proc_kernel.cmaj_flt,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_esp,
|
|
||||||
(unsigned long) data.proc_kernel.kstk_eip,
|
|
||||||
(unsigned long) data.proc_kernel.nwchan,
|
|
||||||
data.proc_kernel.wchan);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
args = glibtop_get_proc_args (&data.proc_args, pid, 0);
|
|
||||||
|
|
||||||
for (i = 0; i < data.proc_args.size; i++) {
|
|
||||||
if (args [i]) continue;
|
|
||||||
args [i] = '|';
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_args.flags,
|
|
||||||
(unsigned long) data.proc_args.size,
|
|
||||||
args ? args : "");
|
|
||||||
|
|
||||||
glibtop_free (args);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
#if HAVE_LIBGTOP_SMP
|
|
||||||
ncpu = glibtop_global_server->ncpu;
|
|
||||||
|
|
||||||
glibtop_get_proc_time (&data.proc_time, pid);
|
|
||||||
|
|
||||||
total = (unsigned long) data.proc_time.utime +
|
|
||||||
(unsigned long) data.proc_time.stime;
|
|
||||||
|
|
||||||
p_total = total ? (double) total : 1.0;
|
|
||||||
|
|
||||||
p_utime = (double) data.proc_time.utime * 100.0 / p_total;
|
|
||||||
p_stime = (double) data.proc_time.stime * 100.0 / p_total;
|
|
||||||
|
|
||||||
b_total = p_total / ncpu;
|
|
||||||
b_utime = (double) data.proc_time.utime / ncpu;
|
|
||||||
b_stime = (double) data.proc_time.stime / ncpu;
|
|
||||||
|
|
||||||
s_total = 0.0; s_utime = 0.0; s_stime = 0.0;
|
|
||||||
|
|
||||||
printf ("Proc_Time PID %5d (0x%08lx): %12lu %12lu %12lu\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_time.flags, total,
|
|
||||||
(unsigned long) data.proc_time.utime,
|
|
||||||
(unsigned long) data.proc_time.stime);
|
|
||||||
|
|
||||||
for (i = 0; i < ncpu; i++) {
|
|
||||||
unsigned long this_total;
|
|
||||||
|
|
||||||
this_total = (unsigned long) data.proc_time.xcpu_utime [i] +
|
|
||||||
(unsigned long) data.proc_time.xcpu_stime [i];
|
|
||||||
|
|
||||||
printf ("CPU %3d PID %5d (0x%08lx): %12lu %12lu %12lu\n", i,
|
|
||||||
(int) pid, (unsigned long) data.proc_time.flags, this_total,
|
|
||||||
(unsigned long) data.proc_time.xcpu_utime [i],
|
|
||||||
(unsigned long) data.proc_time.xcpu_stime [i]);
|
|
||||||
|
|
||||||
s_total += fabs (((double) this_total) - b_total);
|
|
||||||
s_utime += fabs (((double) data.proc_time.xcpu_utime [i]) - b_utime);
|
|
||||||
s_stime += fabs (((double) data.proc_time.xcpu_stime [i]) - b_stime);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
printf ("Proc_Time PID %5d (0x%08lx): %12.3f %12.3f %12.3f\n", (int) pid,
|
|
||||||
(unsigned long) data.proc_time.flags, 100.0, p_utime, p_stime);
|
|
||||||
|
|
||||||
for (i = 0; i < ncpu; i++) {
|
|
||||||
double this_p_total, this_p_utime, this_p_stime;
|
|
||||||
unsigned long this_total;
|
|
||||||
|
|
||||||
this_total = (unsigned long) data.proc_time.xcpu_utime [i] +
|
|
||||||
(unsigned long) data.proc_time.xcpu_stime [i];
|
|
||||||
|
|
||||||
this_p_total = (double) this_total * 100.0 / p_total;
|
|
||||||
|
|
||||||
this_p_utime = (double) data.proc_time.xcpu_utime [i] * 100.0 / p_total;
|
|
||||||
this_p_stime = (double) data.proc_time.xcpu_stime [i] * 100.0 / p_total;
|
|
||||||
|
|
||||||
printf ("CPU %3d PID %5d (0x%08lx): %12.3f %12.3f %12.3f\n", i,
|
|
||||||
(int) pid, (unsigned long) data.proc_time.flags,
|
|
||||||
this_p_total, this_p_utime, this_p_stime);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
my_utime = (unsigned long) data.proc_time.utime ?
|
|
||||||
(double) data.proc_time.utime : 1.0;
|
|
||||||
my_stime = (unsigned long) data.proc_time.stime ?
|
|
||||||
(double) data.proc_time.stime : 1.0;
|
|
||||||
|
|
||||||
printf ("SPIN: %31s %12.3f %12.3f %12.3f\n", "", s_total * 100.0 / p_total,
|
|
||||||
s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_proclist proclist;
|
|
||||||
glibtop_sysdeps sysdeps;
|
|
||||||
unsigned *ptr, pid, i;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init ();
|
|
||||||
|
|
||||||
glibtop_get_sysdeps (&sysdeps);
|
|
||||||
|
|
||||||
printf ("Sysdeps (0x%08lx): %lu, %lu, %lu, %lu, %lu, "
|
|
||||||
"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) sysdeps.flags,
|
|
||||||
(unsigned long) sysdeps.cpu,
|
|
||||||
(unsigned long) sysdeps.mem,
|
|
||||||
(unsigned long) sysdeps.swap,
|
|
||||||
(unsigned long) sysdeps.uptime,
|
|
||||||
(unsigned long) sysdeps.loadavg,
|
|
||||||
(unsigned long) sysdeps.shm_limits,
|
|
||||||
(unsigned long) sysdeps.msg_limits,
|
|
||||||
(unsigned long) sysdeps.sem_limits,
|
|
||||||
(unsigned long) sysdeps.proclist,
|
|
||||||
(unsigned long) sysdeps.proc_state,
|
|
||||||
(unsigned long) sysdeps.proc_uid,
|
|
||||||
(unsigned long) sysdeps.proc_mem,
|
|
||||||
(unsigned long) sysdeps.proc_time,
|
|
||||||
(unsigned long) sysdeps.proc_signal,
|
|
||||||
(unsigned long) sysdeps.proc_kernel,
|
|
||||||
(unsigned long) sysdeps.proc_segment);
|
|
||||||
|
|
||||||
if ((argc == 2) && (sscanf (argv [1], "%d", &pid) == 1)) {
|
|
||||||
output (pid);
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
ptr = glibtop_get_proclist (&proclist, 0, 0);
|
|
||||||
|
|
||||||
printf ("Proclist (0x%08lx): %lu, %lu, %lu\n",
|
|
||||||
(unsigned long) proclist.flags,
|
|
||||||
(unsigned long) proclist.number,
|
|
||||||
(unsigned long) proclist.size,
|
|
||||||
(unsigned long) proclist.total);
|
|
||||||
|
|
||||||
if (!ptr) exit (1);
|
|
||||||
|
|
||||||
for (i = 0; i < proclist.number; i++) {
|
|
||||||
|
|
||||||
pid = ptr [i];
|
|
||||||
|
|
||||||
output (pid);
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_free (ptr);
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
124
examples/smp.c
124
examples/smp.c
@@ -1,124 +0,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>, September 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/cpu.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_cpu cpu;
|
|
||||||
unsigned long frequency;
|
|
||||||
double total, user, nice, sys, idle;
|
|
||||||
double b_total, b_user, b_nice, b_sys, b_idle;
|
|
||||||
double s_total, s_user, s_nice, s_sys, s_idle;
|
|
||||||
char separator [BUFSIZ], buffer [BUFSIZ];
|
|
||||||
int ncpu, i;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_get_cpu (&cpu);
|
|
||||||
|
|
||||||
ncpu = glibtop_global_server->ncpu ? glibtop_global_server->ncpu : 1;
|
|
||||||
|
|
||||||
frequency = (unsigned long) cpu.frequency;
|
|
||||||
|
|
||||||
total = ((unsigned long) cpu.total) ? ((double) cpu.total) : 1.0;
|
|
||||||
user = ((unsigned long) cpu.user) ? ((double) cpu.user) : 1.0;
|
|
||||||
nice = ((unsigned long) cpu.nice) ? ((double) cpu.nice) : 1.0;
|
|
||||||
sys = ((unsigned long) cpu.sys) ? ((double) cpu.sys) : 1.0;
|
|
||||||
idle = ((unsigned long) cpu.idle) ? ((double) cpu.idle) : 1.0;
|
|
||||||
|
|
||||||
s_total = s_user = s_nice = s_sys = s_idle = 0.0;
|
|
||||||
|
|
||||||
b_total = total / ncpu;
|
|
||||||
b_user = user / ncpu;
|
|
||||||
b_nice = nice / ncpu;
|
|
||||||
b_sys = sys / ncpu;
|
|
||||||
b_idle = idle / ncpu;
|
|
||||||
|
|
||||||
memset (separator, '-', 91);
|
|
||||||
separator [92] = '\0';
|
|
||||||
|
|
||||||
sprintf (buffer, _("Ticks (%ld per second):"), frequency);
|
|
||||||
|
|
||||||
printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer,
|
|
||||||
_("Total"), _("User"), _("Nice"), _("Sys"), _("Idle"), separator);
|
|
||||||
|
|
||||||
printf (_("CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n"),
|
|
||||||
(unsigned long) cpu.flags, total, user, nice, sys, idle);
|
|
||||||
|
|
||||||
for (i = 0; i < glibtop_global_server->ncpu; i++) {
|
|
||||||
printf (_("CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"), i,
|
|
||||||
(unsigned long) cpu.flags,
|
|
||||||
(unsigned long) cpu.xcpu_total [i],
|
|
||||||
(unsigned long) cpu.xcpu_user [i],
|
|
||||||
(unsigned long) cpu.xcpu_nice [i],
|
|
||||||
(unsigned long) cpu.xcpu_sys [i],
|
|
||||||
(unsigned long) cpu.xcpu_idle [i]);
|
|
||||||
|
|
||||||
s_total += fabs (((double) cpu.xcpu_total [i]) - b_total);
|
|
||||||
s_user += fabs (((double) cpu.xcpu_user [i]) - b_user);
|
|
||||||
s_nice += fabs (((double) cpu.xcpu_nice [i]) - b_nice);
|
|
||||||
s_sys += fabs (((double) cpu.xcpu_sys [i]) - b_sys);
|
|
||||||
s_idle += fabs (((double) cpu.xcpu_idle [i]) - b_idle);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("%s\n\n\n", separator);
|
|
||||||
|
|
||||||
printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", _("Percent:"),
|
|
||||||
_("Total (%)"), _("User (%)"), _("Nice (%)"), _("Sys (%)"),
|
|
||||||
_("Idle (%)"), separator);
|
|
||||||
|
|
||||||
printf (_("CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n"),
|
|
||||||
(unsigned long) cpu.flags, (double) total * 100.0 / total,
|
|
||||||
(double) user * 100.0 / total,
|
|
||||||
(double) nice * 100.0 / total,
|
|
||||||
(double) sys * 100.0 / total,
|
|
||||||
(double) idle * 100.0 / total);
|
|
||||||
|
|
||||||
for (i = 0; i < glibtop_global_server->ncpu; i++) {
|
|
||||||
double p_total, p_user, p_nice, p_sys, p_idle;
|
|
||||||
|
|
||||||
p_total = ((double) cpu.xcpu_total [i]) * 100.0 / total;
|
|
||||||
p_user = ((double) cpu.xcpu_user [i]) * 100.0 / user;
|
|
||||||
p_nice = ((double) cpu.xcpu_nice [i]) * 100.0 / nice;
|
|
||||||
p_sys = ((double) cpu.xcpu_sys [i]) * 100.0 / sys;
|
|
||||||
p_idle = ((double) cpu.xcpu_idle [i]) * 100.0 / idle;
|
|
||||||
|
|
||||||
printf (_("CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"),
|
|
||||||
i, (unsigned long) cpu.flags, p_total, p_user, p_nice,
|
|
||||||
p_sys, p_idle);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf ("%s\n%-26s %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", separator,
|
|
||||||
_("Spin:"), s_total * 100.0 / total, s_user * 100.0 / user,
|
|
||||||
s_nice * 100.0 / nice, s_sys * 100.0 / sys, s_idle * 100.0 / idle);
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
@@ -1,154 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_sysdeps sysdeps;
|
|
||||||
unsigned method, count, port;
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
|
|
||||||
|
|
||||||
printf ("Method = %d\n", method);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
printf ("Command = '%s'\n", buffer);
|
|
||||||
|
|
||||||
count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
|
|
||||||
buffer [count] = 0;
|
|
||||||
|
|
||||||
glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
|
|
||||||
|
|
||||||
printf ("Host = '%s' - %u\n\n", buffer, port);
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
glibtop_get_sysdeps (&sysdeps);
|
|
||||||
|
|
||||||
#define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f##)) ? 1 : 0)
|
|
||||||
|
|
||||||
printf ("Sysdeps (0x%08lx):\n\n"
|
|
||||||
"\tfeatures:\t\t0x%08lx\n\n"
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
"\tpointer_size:\t\t0x%08lx\n\n"
|
|
||||||
#endif
|
|
||||||
"\tcpu:\t\t%d\t0x%08lx\n"
|
|
||||||
"\tmem:\t\t%d\t0x%08lx\n"
|
|
||||||
"\tswap:\t\t%d\t0x%08lx\n\n"
|
|
||||||
"\tuptime:\t\t%d\t0x%08lx\n"
|
|
||||||
"\tloadavg:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tshm_limits:\t%d\t0x%08lx\n"
|
|
||||||
"\tmsg_limits:\t%d\t0x%08lx\n"
|
|
||||||
"\tsem_limits:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tproclist:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tproc_state:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_uid:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_mem:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_time:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_signal:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_kernel:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_segment:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tproc_args:\t%d\t0x%08lx\n"
|
|
||||||
"\tproc_map:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tmountlist:\t%d\t0x%08lx\n"
|
|
||||||
"\tfsusage:\t%d\t0x%08lx\n\n"
|
|
||||||
"\tnetload:\t%d\t0x%08lx\n"
|
|
||||||
"\tppp:\t\t%d\t0x%08lx\n\n",
|
|
||||||
(unsigned long) sysdeps.flags,
|
|
||||||
(unsigned long) sysdeps.features,
|
|
||||||
#if LIBGTOP_VERSION_CODE > 1001000
|
|
||||||
(unsigned long) sysdeps.pointer_size,
|
|
||||||
#endif
|
|
||||||
FEATURE_CHECK(CPU),
|
|
||||||
(unsigned long) sysdeps.cpu,
|
|
||||||
FEATURE_CHECK(MEM),
|
|
||||||
(unsigned long) sysdeps.mem,
|
|
||||||
FEATURE_CHECK(SWAP),
|
|
||||||
(unsigned long) sysdeps.swap,
|
|
||||||
FEATURE_CHECK(UPTIME),
|
|
||||||
(unsigned long) sysdeps.uptime,
|
|
||||||
FEATURE_CHECK(LOADAVG),
|
|
||||||
(unsigned long) sysdeps.loadavg,
|
|
||||||
FEATURE_CHECK(SHM_LIMITS),
|
|
||||||
(unsigned long) sysdeps.shm_limits,
|
|
||||||
FEATURE_CHECK(MSG_LIMITS),
|
|
||||||
(unsigned long) sysdeps.msg_limits,
|
|
||||||
FEATURE_CHECK(SEM_LIMITS),
|
|
||||||
(unsigned long) sysdeps.sem_limits,
|
|
||||||
FEATURE_CHECK(PROCLIST),
|
|
||||||
(unsigned long) sysdeps.proclist,
|
|
||||||
FEATURE_CHECK(PROC_STATE),
|
|
||||||
(unsigned long) sysdeps.proc_state,
|
|
||||||
FEATURE_CHECK(PROC_UID),
|
|
||||||
(unsigned long) sysdeps.proc_uid,
|
|
||||||
FEATURE_CHECK(PROC_MEM),
|
|
||||||
(unsigned long) sysdeps.proc_mem,
|
|
||||||
FEATURE_CHECK(PROC_TIME),
|
|
||||||
(unsigned long) sysdeps.proc_time,
|
|
||||||
FEATURE_CHECK(PROC_SIGNAL),
|
|
||||||
(unsigned long) sysdeps.proc_signal,
|
|
||||||
FEATURE_CHECK(PROC_KERNEL),
|
|
||||||
(unsigned long) sysdeps.proc_kernel,
|
|
||||||
FEATURE_CHECK(PROC_SEGMENT),
|
|
||||||
(unsigned long) sysdeps.proc_segment,
|
|
||||||
FEATURE_CHECK(PROC_ARGS),
|
|
||||||
(unsigned long) sysdeps.proc_args,
|
|
||||||
FEATURE_CHECK(PROC_MAP),
|
|
||||||
(unsigned long) sysdeps.proc_map,
|
|
||||||
FEATURE_CHECK(MOUNTLIST),
|
|
||||||
(unsigned long) sysdeps.mountlist,
|
|
||||||
FEATURE_CHECK(FSUSAGE),
|
|
||||||
(unsigned long) sysdeps.fsusage,
|
|
||||||
FEATURE_CHECK(NETLOAD),
|
|
||||||
(unsigned long) sysdeps.netload,
|
|
||||||
FEATURE_CHECK(PPP),
|
|
||||||
(unsigned long) sysdeps.ppp);
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
(display (glibtop-names-sysdeps)) (newline)
|
|
||||||
(display (glibtop-labels-sysdeps)) (newline)
|
|
||||||
(display (glibtop-descriptions-sysdeps)) (newline)
|
|
||||||
(display (glibtop-types-sysdeps)) (newline)
|
|
||||||
|
|
||||||
(newline)
|
|
||||||
|
|
||||||
(display (glibtop-names-cpu)) (newline)
|
|
||||||
(display (glibtop-names-mem)) (newline)
|
|
||||||
(display (glibtop-names-swap)) (newline)
|
|
||||||
(display (glibtop-names-uptime)) (newline)
|
|
||||||
(display (glibtop-names-loadavg)) (newline)
|
|
||||||
(display (glibtop-names-shm_limits)) (newline)
|
|
||||||
(display (glibtop-names-msg_limits)) (newline)
|
|
||||||
(display (glibtop-names-sem_limits)) (newline)
|
|
||||||
(display (glibtop-names-proclist)) (newline)
|
|
||||||
(display (glibtop-names-proc_state)) (newline)
|
|
||||||
(display (glibtop-names-proc_uid)) (newline)
|
|
||||||
(display (glibtop-names-proc_mem)) (newline)
|
|
||||||
(display (glibtop-names-proc_time)) (newline)
|
|
||||||
(display (glibtop-names-proc_signal)) (newline)
|
|
||||||
(display (glibtop-names-proc_kernel)) (newline)
|
|
||||||
(display (glibtop-names-proc_segment)) (newline)
|
|
||||||
|
|
||||||
(newline)
|
|
||||||
|
|
||||||
(display (glibtop-labels-cpu)) (newline)
|
|
||||||
(display (glibtop-labels-mem)) (newline)
|
|
||||||
(display (glibtop-labels-swap)) (newline)
|
|
||||||
(display (glibtop-labels-uptime)) (newline)
|
|
||||||
(display (glibtop-labels-loadavg)) (newline)
|
|
||||||
(display (glibtop-labels-shm_limits)) (newline)
|
|
||||||
(display (glibtop-labels-msg_limits)) (newline)
|
|
||||||
(display (glibtop-labels-sem_limits)) (newline)
|
|
||||||
(display (glibtop-labels-proclist)) (newline)
|
|
||||||
(display (glibtop-labels-proc_state)) (newline)
|
|
||||||
(display (glibtop-labels-proc_uid)) (newline)
|
|
||||||
(display (glibtop-labels-proc_mem)) (newline)
|
|
||||||
(display (glibtop-labels-proc_time)) (newline)
|
|
||||||
(display (glibtop-labels-proc_signal)) (newline)
|
|
||||||
(display (glibtop-labels-proc_kernel)) (newline)
|
|
||||||
(display (glibtop-labels-proc_segment)) (newline)
|
|
||||||
|
|
||||||
(newline)
|
|
||||||
|
|
||||||
(display (glibtop-descriptions-cpu)) (newline)
|
|
||||||
(display (glibtop-descriptions-mem)) (newline)
|
|
||||||
(display (glibtop-descriptions-swap)) (newline)
|
|
||||||
(display (glibtop-descriptions-uptime)) (newline)
|
|
||||||
(display (glibtop-descriptions-loadavg)) (newline)
|
|
||||||
(display (glibtop-descriptions-shm_limits)) (newline)
|
|
||||||
(display (glibtop-descriptions-msg_limits)) (newline)
|
|
||||||
(display (glibtop-descriptions-sem_limits)) (newline)
|
|
||||||
(display (glibtop-descriptions-proclist)) (newline)
|
|
||||||
(display (glibtop-descriptions-proc_state)) (newline)
|
|
||||||
(display (glibtop-descriptions-proc_uid)) (newline)
|
|
||||||
(display (glibtop-descriptions-proc_mem)) (newline)
|
|
||||||
(display (glibtop-descriptions-proc_time)) (newline)
|
|
||||||
(display (glibtop-descriptions-proc_signal)) (newline)
|
|
||||||
(display (glibtop-descriptions-proc_kernel)) (newline)
|
|
||||||
(display (glibtop-descriptions-proc_segment)) (newline)
|
|
||||||
|
|
||||||
(newline)
|
|
||||||
|
|
||||||
(display (glibtop-types-cpu)) (newline)
|
|
||||||
(display (glibtop-types-mem)) (newline)
|
|
||||||
(display (glibtop-types-swap)) (newline)
|
|
||||||
(display (glibtop-types-uptime)) (newline)
|
|
||||||
(display (glibtop-types-loadavg)) (newline)
|
|
||||||
(display (glibtop-types-shm_limits)) (newline)
|
|
||||||
(display (glibtop-types-msg_limits)) (newline)
|
|
||||||
(display (glibtop-types-sem_limits)) (newline)
|
|
||||||
(display (glibtop-types-proclist)) (newline)
|
|
||||||
(display (glibtop-types-proc_state)) (newline)
|
|
||||||
(display (glibtop-types-proc_uid)) (newline)
|
|
||||||
(display (glibtop-types-proc_mem)) (newline)
|
|
||||||
(display (glibtop-types-proc_time)) (newline)
|
|
||||||
(display (glibtop-types-proc_signal)) (newline)
|
|
||||||
(display (glibtop-types-proc_kernel)) (newline)
|
|
||||||
(display (glibtop-types-proc_segment)) (newline)
|
|
||||||
@@ -1,57 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
void main_prog(int argc, char *argv[]);
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
gh_enter (argc, argv, main_prog);
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
main_prog (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
glibtop_boot_guile ();
|
|
||||||
#ifdef GLIBTOP_GUILE_NAMES
|
|
||||||
glibtop_boot_guile_names ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
gh_repl (argc, argv);
|
|
||||||
}
|
|
||||||
@@ -1,357 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
#include <sys/times.h>
|
|
||||||
#include <sys/resource.h>
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT
|
|
||||||
#define PROFILE_COUNT 100000L
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef PROFILE_COUNT_EXPENSIVE
|
|
||||||
#define PROFILE_COUNT_EXPENSIVE 10000L
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ELAPSED_UTIME ((unsigned long) elapsed_utime.tv_sec * 1000000 + (unsigned long) elapsed_utime.tv_usec)
|
|
||||||
#define ELAPSED_STIME ((unsigned long) elapsed_stime.tv_sec * 1000000 + (unsigned long) elapsed_stime.tv_usec)
|
|
||||||
|
|
||||||
#define libgtop_timeradd(tvp, uvp, vvp) \
|
|
||||||
do { \
|
|
||||||
(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \
|
|
||||||
(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \
|
|
||||||
if ((vvp)->tv_usec >= 1000000) { \
|
|
||||||
(vvp)->tv_sec++; \
|
|
||||||
(vvp)->tv_usec -= 1000000; \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
#define libgtop_timersub(tvp, uvp, vvp) \
|
|
||||||
do { \
|
|
||||||
(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \
|
|
||||||
(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \
|
|
||||||
if ((vvp)->tv_usec < 0) { \
|
|
||||||
(vvp)->tv_sec--; \
|
|
||||||
(vvp)->tv_usec += 1000000; \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv [])
|
|
||||||
{
|
|
||||||
glibtop_union data;
|
|
||||||
unsigned c, count, *ptr;
|
|
||||||
struct rusage total_start, total_end;
|
|
||||||
struct rusage rusage_start, rusage_end;
|
|
||||||
struct timeval elapsed_utime, elapsed_stime;
|
|
||||||
pid_t pid;
|
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (PACKAGE);
|
|
||||||
|
|
||||||
printf ("%-12s (%-10s): %7s - %9s - %9s\n",
|
|
||||||
"Feature", "Flags", "Count", "utime", "stime");
|
|
||||||
printf ("-------------------------------------------"
|
|
||||||
"---------------\n");
|
|
||||||
|
|
||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &total_start);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_cpu (&data.cpu);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("CPU (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.cpu.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
|
|
||||||
glibtop_get_mem (&data.mem);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Memory (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.mem.flags, PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
|
|
||||||
glibtop_get_swap (&data.swap);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Swap (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.swap.flags, PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_uptime (&data.uptime);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Uptime (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.uptime.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_loadavg (&data.loadavg);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Loadavg (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.loadavg.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
|
|
||||||
ptr = glibtop_get_proclist (&data.proclist, 0, 0);
|
|
||||||
glibtop_free (ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proclist (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proclist.flags,
|
|
||||||
PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
|
||||||
|
|
||||||
pid = getpid ();
|
|
||||||
|
|
||||||
printf ("\n");
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_state (&data.proc_state, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_State (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_state.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Uid (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_uid.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Mem (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_mem.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Segment (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_segment.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_time (&data.proc_time, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Time (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_time.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Signal (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_signal.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_start);
|
|
||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT; c++)
|
|
||||||
glibtop_get_proc_kernel (&data.proc_kernel, pid);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("Proc_Kernel (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
|
||||||
(unsigned long) data.proc_kernel.flags, PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
|
||||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &total_end);
|
|
||||||
|
|
||||||
libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime,
|
|
||||||
&elapsed_utime);
|
|
||||||
|
|
||||||
libgtop_timersub (&total_end.ru_stime, &total_start.ru_stime,
|
|
||||||
&elapsed_stime);
|
|
||||||
|
|
||||||
printf ("-------------------------------------------"
|
|
||||||
"---------------\n");
|
|
||||||
|
|
||||||
printf ("%-36s %9lu - %9lu\n\n", "TOTAL",
|
|
||||||
ELAPSED_UTIME, ELAPSED_STIME);
|
|
||||||
|
|
||||||
printf ("All timings are in clock ticks "
|
|
||||||
"(1000000 ticks per second).\n\n");
|
|
||||||
|
|
||||||
glibtop_close ();
|
|
||||||
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
22
features.def
22
features.def
@@ -1,22 +0,0 @@
|
|||||||
void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[GLIBTOP_NCPU],xcpu_user[GLIBTOP_NCPU],xcpu_nice[GLIBTOP_NCPU],xcpu_sys[GLIBTOP_NCPU],xcpu_idle[GLIBTOP_NCPU],xcpu_flags)
|
|
||||||
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
|
|
||||||
void|swap|ulong(total,used,free,pagein,pageout)
|
|
||||||
void|uptime|double(uptime,idletime):ulong(boot_time)
|
|
||||||
void|loadavg|double(loadavg[3]):ulong(nr_running,nr_tasks,last_pid)
|
|
||||||
void|shm_limits|ulong(shmmax,shmmin,shmmni,shmseg,shmall)
|
|
||||||
void|msg_limits|ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql)
|
|
||||||
void|sem_limits|ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem)
|
|
||||||
unsigned *|proclist|ulong(number,size,total)|long(which,arg)
|
|
||||||
void|proc_state|str(cmd):unsigned(state):ulong(uid,gid,ruid,rgid,has_cpu,processor,last_processor)|pid_t(pid)
|
|
||||||
void|proc_uid|long(uid,euid,gid,egid,suid,sgid,fsuid,fsgid,pid,ppid,pgrp,session,tty,tpgid,priority,nice,ngroups,groups[GLIBTOP_MAX_GROUPS])|pid_t(pid)
|
|
||||||
void|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid)
|
|
||||||
void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_value,frequency,xcpu_utime[GLIBTOP_NCPU],xcpu_stime[GLIBTOP_NCPU],xcpu_flags)|pid_t(pid)
|
|
||||||
void|proc_signal|ulong(signal[2],blocked[2],sigignore[2],sigcatch[2])|pid_t(pid)
|
|
||||||
void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,nwchan):str(wchan)|pid_t(pid)
|
|
||||||
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_data,end_data,start_brk,end_brk,start_stack,start_mmap,arg_start,arg_end,env_start,env_end)|pid_t(pid)
|
|
||||||
char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len)
|
|
||||||
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
|
|
||||||
glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs)
|
|
||||||
void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir
|
|
||||||
void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface
|
|
||||||
void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device)
|
|
||||||
109
glibtop.h
109
glibtop.h
@@ -1,109 +0,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
|
|
||||||
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_H__
|
|
||||||
#define __GLIBTOP_H__
|
|
||||||
|
|
||||||
#ifndef _IN_LIBGTOP
|
|
||||||
#include <glibtop-config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
#include <glibtop/limits.h>
|
|
||||||
|
|
||||||
#include <glibtop_server.h>
|
|
||||||
#include <glibtop/types.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
|
||||||
#include <glibtop_machine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct _glibtop glibtop;
|
|
||||||
|
|
||||||
#include <glibtop/sysdeps.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 */
|
|
||||||
unsigned long os_version_code; /* Version code of the operating system */
|
|
||||||
const char *name; /* Program name for error messages */
|
|
||||||
const char *server_command; /* Command used to invoke server */
|
|
||||||
const char *server_host; /* Host the server should run on */
|
|
||||||
const char *server_user; /* Name of the user on the target host */
|
|
||||||
const char *server_rsh; /* Command used to connect to the target host */
|
|
||||||
unsigned long features; /* Server is required for this features */
|
|
||||||
unsigned long server_port; /* Port on which daemon is listening */
|
|
||||||
glibtop_sysdeps sysdeps; /* Detailed feature list */
|
|
||||||
glibtop_sysdeps required; /* Required feature list */
|
|
||||||
glibtop_sysdeps wanted; /* We only want this features */
|
|
||||||
pid_t pid; /* PID of the server */
|
|
||||||
};
|
|
||||||
|
|
||||||
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_r (glibtop **server_ptr,
|
|
||||||
unsigned long features,
|
|
||||||
unsigned flags);
|
|
||||||
|
|
||||||
glibtop *
|
|
||||||
glibtop_init_s (glibtop **server_ptr,
|
|
||||||
unsigned long features,
|
|
||||||
unsigned flags);
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_GUILE
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_guile to get this stuff here. */
|
|
||||||
|
|
||||||
void glibtop_boot_guile (void);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_GUILE_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_guile_names to get this stuff here. */
|
|
||||||
|
|
||||||
void glibtop_boot_guile_names (void);
|
|
||||||
|
|
||||||
#ifndef GLIBTOP_NAMES
|
|
||||||
#define GLIBTOP_NAMES
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
SUBDIRS = glibtop
|
|
||||||
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
glibtopdir = $(includedir)/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 xmalloc.h global.h \
|
|
||||||
procsignal.h read_data.h union.h types.h gnuserv.h \
|
|
||||||
parameter.h mountlist.h fsusage.h procmap.h signal.h \
|
|
||||||
inodedb.h sysinfo.h ppp.h procargs.h netload.h \
|
|
||||||
limits.h
|
|
||||||
@@ -1,40 +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_CLOSE_H__
|
|
||||||
#define __GLIBTOP_CLOSE_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
void glibtop_close_r (glibtop *server);
|
|
||||||
|
|
||||||
void glibtop_close_s (glibtop *server);
|
|
||||||
void glibtop_close_p (glibtop *server);
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,104 +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_COMMAND_H__
|
|
||||||
#define __GLIBTOP_COMMAND_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_CMND_QUIT 0
|
|
||||||
#define GLIBTOP_CMND_SYSDEPS 1
|
|
||||||
|
|
||||||
#define GLIBTOP_CMND_CPU 2
|
|
||||||
#define GLIBTOP_CMND_MEM 3
|
|
||||||
#define GLIBTOP_CMND_SWAP 4
|
|
||||||
#define GLIBTOP_CMND_UPTIME 5
|
|
||||||
#define GLIBTOP_CMND_LOADAVG 6
|
|
||||||
#define GLIBTOP_CMND_SHM_LIMITS 7
|
|
||||||
#define GLIBTOP_CMND_MSG_LIMITS 8
|
|
||||||
#define GLIBTOP_CMND_SEM_LIMITS 9
|
|
||||||
#define GLIBTOP_CMND_PROCLIST 10
|
|
||||||
|
|
||||||
#define GLIBTOP_CMND_PROC_STATE 11
|
|
||||||
#define GLIBTOP_CMND_PROC_UID 12
|
|
||||||
#define GLIBTOP_CMND_PROC_MEM 13
|
|
||||||
#define GLIBTOP_CMND_PROC_TIME 14
|
|
||||||
#define GLIBTOP_CMND_PROC_SIGNAL 15
|
|
||||||
#define GLIBTOP_CMND_PROC_KERNEL 16
|
|
||||||
#define GLIBTOP_CMND_PROC_SEGMENT 17
|
|
||||||
#define GLIBTOP_CMND_PROC_ARGS 18
|
|
||||||
#define GLIBTOP_CMND_PROC_MAP 19
|
|
||||||
|
|
||||||
#define GLIBTOP_CMND_MOUNTLIST 20
|
|
||||||
#define GLIBTOP_CMND_FSUSAGE 21
|
|
||||||
#define GLIBTOP_CMND_NETLOAD 22
|
|
||||||
#define GLIBTOP_CMND_PPP 23
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_CMND 24
|
|
||||||
|
|
||||||
#define _GLIBTOP_PARAM_SIZE 16
|
|
||||||
|
|
||||||
typedef struct _glibtop_command glibtop_command;
|
|
||||||
|
|
||||||
typedef struct _glibtop_response glibtop_response;
|
|
||||||
typedef union _glibtop_response_union glibtop_response_union;
|
|
||||||
|
|
||||||
struct _glibtop_command
|
|
||||||
{
|
|
||||||
u_int64_t command;
|
|
||||||
u_int64_t size, data_size;
|
|
||||||
char parameter [_GLIBTOP_PARAM_SIZE];
|
|
||||||
};
|
|
||||||
|
|
||||||
union _glibtop_response_union
|
|
||||||
{
|
|
||||||
glibtop_union data;
|
|
||||||
glibtop_sysdeps sysdeps;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_response
|
|
||||||
{
|
|
||||||
int64_t offset;
|
|
||||||
u_int64_t size, data_size;
|
|
||||||
glibtop_response_union u;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_call(p1, p2, p3, p4) glibtop_call_r(glibtop_global_server, p1, p2, p3, p4)
|
|
||||||
|
|
||||||
void *
|
|
||||||
glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
|
|
||||||
const void *send_buf, size_t recv_size, void *recv_buf);
|
|
||||||
|
|
||||||
void *
|
|
||||||
glibtop_call_s (glibtop *server, unsigned command, size_t send_size,
|
|
||||||
const void *send_buf, size_t recv_size, void *recv_buf);
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_CPU_H__
|
|
||||||
#define __GLIBTOP_CPU_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_CPU_TOTAL 0
|
|
||||||
#define GLIBTOP_CPU_USER 1
|
|
||||||
#define GLIBTOP_CPU_NICE 2
|
|
||||||
#define GLIBTOP_CPU_SYS 3
|
|
||||||
#define GLIBTOP_CPU_IDLE 4
|
|
||||||
#define GLIBTOP_CPU_FREQUENCY 5
|
|
||||||
|
|
||||||
#define GLIBTOP_XCPU_TOTAL 6
|
|
||||||
#define GLIBTOP_XCPU_USER 7
|
|
||||||
#define GLIBTOP_XCPU_NICE 8
|
|
||||||
#define GLIBTOP_XCPU_SYS 9
|
|
||||||
#define GLIBTOP_XCPU_IDLE 10
|
|
||||||
#define GLIBTOP_XCPU_FLAGS 11
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_CPU 12
|
|
||||||
|
|
||||||
typedef struct _glibtop_cpu glibtop_cpu;
|
|
||||||
|
|
||||||
struct _glibtop_cpu
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
total, /* GLIBTOP_CPU_TOTAL */
|
|
||||||
user, /* GLIBTOP_CPU_USER */
|
|
||||||
nice, /* GLIBTOP_CPU_NICE */
|
|
||||||
sys, /* GLIBTOP_CPU_SYS */
|
|
||||||
idle, /* GLIBTOP_CPU_IDLE */
|
|
||||||
frequency, /* GLIBTOP_CPU_FREQUENCY */
|
|
||||||
xcpu_total [GLIBTOP_NCPU], /* GLIBTOP_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_FLAGS */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_cpu(cpu) glibtop_get_cpu_l(glibtop_global_server, cpu)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_CPU
|
|
||||||
#define glibtop_get_cpu_r glibtop_get_cpu_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_cpu_r glibtop_get_cpu_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_cpu_l (glibtop *server, glibtop_cpu *buf);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_CPU
|
|
||||||
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_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
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,138 +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_ERROR_H__
|
|
||||||
#define __GLIBTOP_ERROR_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#ifndef G_GNUC_UNUSED
|
|
||||||
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
|
|
||||||
#define G_GNUC_UNUSED \
|
|
||||||
__attribute__((unused))
|
|
||||||
#else /* !__GNUC__ */
|
|
||||||
#define G_GNUC_UNUSED
|
|
||||||
#endif /* !__GNUC__ */
|
|
||||||
#endif /* defined G_GNUC_UNUSED */
|
|
||||||
|
|
||||||
void glibtop_error_vr (glibtop *server, char *format, va_list args);
|
|
||||||
void glibtop_warn_vr (glibtop *server, char *format, va_list args);
|
|
||||||
|
|
||||||
void glibtop_error_io_vr (glibtop *server, char *format, int, va_list args);
|
|
||||||
void glibtop_warn_io_vr (glibtop *server, char *format, int, va_list args);
|
|
||||||
|
|
||||||
static void G_GNUC_UNUSED
|
|
||||||
glibtop_error_r (glibtop *server, char *format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
|
|
||||||
va_start (args, format);
|
|
||||||
glibtop_error_vr (server, format, args);
|
|
||||||
va_end (args);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void G_GNUC_UNUSED
|
|
||||||
glibtop_warn_r (glibtop *server, char *format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
|
|
||||||
va_start (args, format);
|
|
||||||
glibtop_warn_vr (server, format, args);
|
|
||||||
va_end (args);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void G_GNUC_UNUSED
|
|
||||||
glibtop_error_io_r (glibtop *server, char *format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
|
|
||||||
va_start (args, format);
|
|
||||||
glibtop_error_io_vr (server, format, errno, args);
|
|
||||||
va_end (args);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void G_GNUC_UNUSED
|
|
||||||
glibtop_warn_io_r (glibtop *server, char *format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
|
|
||||||
va_start (args, format);
|
|
||||||
glibtop_warn_io_vr (server, format, errno, args);
|
|
||||||
va_end (args);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
|
|
||||||
#define glibtop_error(p1, args...) glibtop_error_r(glibtop_global_server , p1 , ## args)
|
|
||||||
#define glibtop_warn(p1, args...) glibtop_warn_r(glibtop_global_server , p1 , ## args)
|
|
||||||
|
|
||||||
#define glibtop_error_io(p1, args...) glibtop_error_io_r(glibtop_global_server , p1 , ## args)
|
|
||||||
#define glibtop_warn_io(p1, args...) glibtop_warn_io_r(glibtop_global_server , p1 , ## args)
|
|
||||||
|
|
||||||
#else /* no __GNUC__ */
|
|
||||||
|
|
||||||
static void
|
|
||||||
glibtop_error (char *format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start (args, format);
|
|
||||||
glibtop_error_vr (glibtop_global_server, format, args);
|
|
||||||
va_end (args);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glibtop_warn (char *format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start (args, format);
|
|
||||||
glibtop_warn_vr (glibtop_global_server, format, args);
|
|
||||||
va_end (args);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glibtop_error_io (char *format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start (args, format);
|
|
||||||
glibtop_error_io_vr (glibtop_global_server, format, errno, args);
|
|
||||||
va_end (args);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glibtop_warn_io (char *format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start (args, format);
|
|
||||||
glibtop_warn_io_vr (glibtop_global_server, format, errno, args);
|
|
||||||
va_end (args);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* no __GNUC__ */
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_FSUSAGE_H__
|
|
||||||
#define __GLIBTOP_FSUSAGE_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_FSUSAGE_BLOCKS 0
|
|
||||||
#define GLIBTOP_FSUSAGE_BFREE 1
|
|
||||||
#define GLIBTOP_FSUSAGE_BAVAIL 2
|
|
||||||
#define GLIBTOP_FSUSAGE_FILES 3
|
|
||||||
#define GLIBTOP_FSUSAGE_FFREE 4
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_FSUSAGE 5
|
|
||||||
|
|
||||||
typedef struct _glibtop_fsusage glibtop_fsusage;
|
|
||||||
|
|
||||||
struct _glibtop_fsusage
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
blocks, /* Total blocks. */
|
|
||||||
bfree, /* Free blocks available to superuser. */
|
|
||||||
bavail, /* Free blocks available to non-superuser. */
|
|
||||||
files, /* Total file nodes. */
|
|
||||||
ffree; /* Free file nodes. */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_fsusage(fsusage,disk) glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk)
|
|
||||||
|
|
||||||
#define glibtop_get_fsusage_r glibtop_get_fsusage_s
|
|
||||||
|
|
||||||
void glibtop_get_fsusage_l (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
|
||||||
void glibtop_get_fsusage_s (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_fsusage [];
|
|
||||||
extern const unsigned glibtop_types_fsusage [];
|
|
||||||
extern const char *glibtop_labels_fsusage [];
|
|
||||||
extern const char *glibtop_descriptions_fsusage [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,144 +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_GLOBAL_H__
|
|
||||||
#define __GLIBTOP_GLOBAL_H__
|
|
||||||
|
|
||||||
#ifdef _IN_LIBGTOP
|
|
||||||
#include <config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* All declarations are enclosed in BEGIN_LIBGTOP_DECLS and
|
|
||||||
* END_LIBGTOP_DECLS so that C++ compilers don't mangle their names.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#undef BEGIN_LIBGTOP_DECLS
|
|
||||||
#undef END_LIBGTOP_DECLS
|
|
||||||
#ifdef __cplusplus
|
|
||||||
# define BEGIN_LIBGTOP_DECLS extern "C" {
|
|
||||||
# define END_LIBGTOP_DECLS }
|
|
||||||
#else
|
|
||||||
# define BEGIN_LIBGTOP_DECLS /* empty */
|
|
||||||
# define END_LIBGTOP_DECLS /* empty */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _IN_LIBGTOP
|
|
||||||
|
|
||||||
/* Provide macros to feature the GCC function attribute.
|
|
||||||
*/
|
|
||||||
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
|
|
||||||
#define G_GNUC_NORETURN \
|
|
||||||
__attribute__((noreturn))
|
|
||||||
#define G_GNUC_CONST \
|
|
||||||
__attribute__((const))
|
|
||||||
#define G_GNUC_UNUSED \
|
|
||||||
__attribute__((unused))
|
|
||||||
#else /* !__GNUC__ */
|
|
||||||
#define G_GNUC_NORETURN
|
|
||||||
#define G_GNUC_CONST
|
|
||||||
#define G_GNUC_UNUSED
|
|
||||||
#endif /* !__GNUC__ */
|
|
||||||
|
|
||||||
#endif /* _IN_LIBGTOP */
|
|
||||||
|
|
||||||
#if TIME_WITH_SYS_TIME
|
|
||||||
# include <sys/time.h>
|
|
||||||
# include <time.h>
|
|
||||||
#else
|
|
||||||
# if HAVE_SYS_TIME_H
|
|
||||||
# include <sys/time.h>
|
|
||||||
# else
|
|
||||||
# include <time.h>
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef NEED_GNOMESUPPORT_H
|
|
||||||
#include <gnomesupport.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WITHOUT_GUILE
|
|
||||||
#undef GLIBTOP_GUILE
|
|
||||||
#undef GLIBTOP_GUILE_NAMES
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_GUILE
|
|
||||||
#include <guile/gh.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _IN_LIBGTOP
|
|
||||||
#if (defined HAVE_LIBINTL_H) || (defined HAVE_GETTEXT)
|
|
||||||
#include <libintl.h>
|
|
||||||
#else
|
|
||||||
#include <libgettext.h>
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
|
||||||
#include <unistd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_MEMORY_H
|
|
||||||
#include <memory.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#ifdef _IN_LIBGTOP
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/param.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
|
|
||||||
#endif /* _IN_LIBGTOP */
|
|
||||||
|
|
||||||
#include <signal.h>
|
|
||||||
#include <errno.h>
|
|
||||||
|
|
||||||
#ifdef _IN_LIBGTOP
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#ifndef _
|
|
||||||
#define _(String) dgettext (PACKAGE, String)
|
|
||||||
#define N_(String) (String)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_STRERROR
|
|
||||||
char *strerror (int errno);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif /* _IN_LIBGTOP */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,161 +0,0 @@
|
|||||||
/* -*-C-*-
|
|
||||||
|
|
||||||
Header file for the GNU Emacs server and client C code.
|
|
||||||
|
|
||||||
This file is part of GNU Emacs.
|
|
||||||
|
|
||||||
Copying is permitted under those conditions described by the GNU
|
|
||||||
General Public License.
|
|
||||||
|
|
||||||
Copyright (C) 1989 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Author: Andy Norman (ange@hplb.hpl.hp.com), based on
|
|
||||||
'etc/server.c' and 'etc/emacsclient.c' from the 18.52 GNU
|
|
||||||
Emacs distribution.
|
|
||||||
|
|
||||||
Please mail bugs and suggestions to the author at the above address.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* HISTORY
|
|
||||||
* 11-Nov-1990 bristor@simba
|
|
||||||
* Added EOT stuff.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file incorporates new features added by Bob Weiner <weiner@mot.com>,
|
|
||||||
* Darrell Kindred <dkindred@cmu.edu> and Arup Mukherjee <arup@cmu.edu>.
|
|
||||||
* Please see the note at the end of the README file for details.
|
|
||||||
*
|
|
||||||
* (If gnuserv came bundled with your emacs, the README file is probably
|
|
||||||
* ../etc/gnuserv.README relative to the directory containing this file)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static char header_rcsid [] = "!Header: gnuserv.h,v 2.4 95/02/16 11:58:11 arup alpha !";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define NO_SHORTNAMES
|
|
||||||
|
|
||||||
#define PATCHLEVEL 2
|
|
||||||
|
|
||||||
#define NO_SHORTNAMES
|
|
||||||
/* gnuserv should not be compiled using SOCKS */
|
|
||||||
#define DO_NOT_SOCKSIFY
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/error.h>
|
|
||||||
#undef read
|
|
||||||
#undef write
|
|
||||||
#undef open
|
|
||||||
#undef close
|
|
||||||
#undef signal
|
|
||||||
|
|
||||||
/* Define the communication method between server and clients:
|
|
||||||
* You can have either or both kinds of sockets, but you can't mix
|
|
||||||
* sockets with sysv ipc
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define INTERNET_DOMAIN_SOCKETS
|
|
||||||
#define UNIX_DOMAIN_SOCKETS
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Define additional authentication protocols to be used. These methods will
|
|
||||||
* be tried before falling back to the default gnuserv protocol (based on
|
|
||||||
* the GNU_SECURE environment variable). Currently, only MIT-MAGIC-COOKIE-1
|
|
||||||
* is also supported.
|
|
||||||
*
|
|
||||||
* Comment out the next line(s) if you don't want to enable the
|
|
||||||
* appropriate authentication protocol.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined (HAVE_XAUTH)
|
|
||||||
#define AUTH_MAGIC_COOKIE
|
|
||||||
#endif /* HAVE_XAUTH */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* stuff related to supporting MIT-MAGIC-COOKIE-1
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
#define MCOOKIE_SCREEN "42980" /* screen # to use as the gnuserv cookie */
|
|
||||||
#endif
|
|
||||||
#define MCOOKIE_NAME "MAGIC-1" /* authentication protocol name */
|
|
||||||
#define MCOOKIE_X_NAME "MIT-MAGIC-COOKIE-1" /* as needed by X */
|
|
||||||
|
|
||||||
|
|
||||||
#define DEFAUTH_NAME "GNU-SECURE" /* name of default auth protocol */
|
|
||||||
#define AUTH_TIMEOUT 15 /* # seconds to wait for auth data */
|
|
||||||
#define AUTH_NAMESZ 15 /* max allows auth protocol name size */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Pick a default communication scheme, if none was specified.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if !defined(UNIX_DOMAIN_SOCKETS) && !defined(INTERNET_DOMAIN_SOCKETS)
|
|
||||||
|
|
||||||
/* BSD systems use Unix Domain sockets by default */
|
|
||||||
|
|
||||||
#ifdef BSD
|
|
||||||
#define UNIX_DOMAIN_SOCKETS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* No communication method pre-defined */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If you are using SYSV_IPC, you might want to make the buffer size bigger
|
|
||||||
* since it limits the size of requests and responses. Don't make it bigger
|
|
||||||
* than your system's max message size though (usually a couple of k) or else
|
|
||||||
* msgsend will start failing. For sockets, using the system BUFSIZ is usually
|
|
||||||
* what you want.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(INTERNET_DOMAIN_SOCKETS) || defined(UNIX_DOMAIN_SOCKETS)
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#endif /* INTERNET_DOMAIN_SOCKETS || UNIX_DOMAIN_SOCKETS */
|
|
||||||
|
|
||||||
#ifdef INTERNET_DOMAIN_SOCKETS
|
|
||||||
#include <netdb.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
#define TABLE_SIZE 101 /* The number of entries in the hash table */
|
|
||||||
#define HASH(host) host /* Rather simplistic hash function */
|
|
||||||
#define DEFAULT_PORT 21490 /* default port number to use is
|
|
||||||
* DEFAULT_PORT + uid */
|
|
||||||
#endif /* INTERNET_DOMAIN_SOCKETS */
|
|
||||||
|
|
||||||
#ifdef UNIX_DOMAIN_SOCKETS
|
|
||||||
#include <sys/un.h>
|
|
||||||
#define HIDE_UNIX_SOCKET /* put the unix socket in a protected dir */
|
|
||||||
#endif /* UNIX_DOMAIN_SOCKETS */
|
|
||||||
|
|
||||||
#define HOSTNAMSZ 255 /* max size of a hostname */
|
|
||||||
#define REPLYSIZ 300 /* max size of reply from server to client */
|
|
||||||
#undef FALSE
|
|
||||||
#define FALSE 0
|
|
||||||
#undef TRUE
|
|
||||||
#define TRUE 1
|
|
||||||
|
|
||||||
/* The casts shut Sun's compiler up and are safe in the context these
|
|
||||||
are actually used. */
|
|
||||||
#define max2(x,y) (((int) (x) > (int) (y)) ? (x) : (y))
|
|
||||||
#define min2(x,y) (((int) (x) < (int) (y)) ? (x) : (y))
|
|
||||||
|
|
||||||
#ifndef _NFILE /* rough guess at maximum number of open files */
|
|
||||||
#define _NFILE 20
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define EOT_STR "\004"
|
|
||||||
#define EOT_CHR '\004'
|
|
||||||
|
|
||||||
/* connection types */
|
|
||||||
#define CONN_UNIX 0
|
|
||||||
#define CONN_INTERNET 1
|
|
||||||
#define CONN_IPC 2
|
|
||||||
|
|
||||||
/* function declarations */
|
|
||||||
int glibtop_make_connection (const char *hostarg, int portarg, int *s);
|
|
||||||
|
|
||||||
#ifdef INTERNET_DOMAIN_SOCKETS
|
|
||||||
long glibtop_internet_addr (const char *host);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
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_INODEDB_H__
|
|
||||||
#define __GLIBTOP_INODEDB_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <gdbm.h>
|
|
||||||
|
|
||||||
#define GLIBTOP_INODEDB_SYSTEM 1
|
|
||||||
#define GLIBTOP_INODEDB_USER 2
|
|
||||||
#define GLIBTOP_INODEDB_CACHE 4
|
|
||||||
|
|
||||||
#define GLIBTOP_INODEDB_ALL 7
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
typedef struct _glibtop_inodedb glibtop_inodedb;
|
|
||||||
|
|
||||||
typedef struct _glibtop_inodedb_key glibtop_inodedb_key;
|
|
||||||
|
|
||||||
struct _glibtop_inodedb_key
|
|
||||||
{
|
|
||||||
u_int64_t device, inode;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_inodedb
|
|
||||||
{
|
|
||||||
GDBM_FILE system_dbf, user_dbf;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_inodedb_open(p1,p2) glibtop_inodedb_open_s(glibtop_global_server, p1, p2)
|
|
||||||
#define glibtop_inodedb_lookup(p1,p2,p3) glibtop_inodedb_lookup_s(glibtop_global_server, p1, p2, p3)
|
|
||||||
#define glibtop_inodedb_close(p1) glibtop_inodedb_close_s(glibtop_global_server)
|
|
||||||
|
|
||||||
glibtop_inodedb *
|
|
||||||
glibtop_inodedb_open_s (glibtop *server, unsigned databases, unsigned long cache_size);
|
|
||||||
|
|
||||||
const char *
|
|
||||||
glibtop_inodedb_lookup_s (glibtop *server,
|
|
||||||
glibtop_inodedb *inodedb,
|
|
||||||
u_int64_t device, u_int64_t inode);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb);
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_LIMITS_H__
|
|
||||||
#define __GLIBTOP_LIMITS_H__
|
|
||||||
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
/* Nobody should really be using more than 64 processors. */
|
|
||||||
#define GLIBTOP_NCPU 64
|
|
||||||
|
|
||||||
/* Maximum number of process groups in glibtop_proc_uid. */
|
|
||||||
#define GLIBTOP_MAX_GROUPS 32
|
|
||||||
|
|
||||||
/* Maximum length of a mountpoint/device name in glibtop_mountlist. */
|
|
||||||
#define GLIBTOP_MOUNTENTRY_LEN 79
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_LOADAVG_H__
|
|
||||||
#define __GLIBTOP_LOADAVG_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_LOADAVG_LOADAVG 0
|
|
||||||
#define GLIBTOP_LOADAVG_NR_RUNNING 1
|
|
||||||
#define GLIBTOP_LOADAVG_NR_TASKS 2
|
|
||||||
#define GLIBTOP_LOADAVG_LAST_PID 3
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_LOADAVG 4
|
|
||||||
|
|
||||||
typedef struct _glibtop_loadavg glibtop_loadavg;
|
|
||||||
|
|
||||||
struct _glibtop_loadavg
|
|
||||||
{
|
|
||||||
u_int64_t flags;
|
|
||||||
double loadavg [3]; /* GLIBTOP_LOADAVG_LOADAVG */
|
|
||||||
u_int64_t nr_running, /* GLIBTOP_LOADAVG_NR_RUNNING */
|
|
||||||
nr_tasks, /* GLIBTOP_LOADAVG_NR_TASKS */
|
|
||||||
last_pid; /* GLIBTOP_LOADAVG_LAST_PID */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_loadavg(loadavg) glibtop_get_loadavg_l(glibtop_global_server, loadavg)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_LOADAVG
|
|
||||||
#define glibtop_get_loadavg_r glibtop_get_loadavg_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_loadavg_r glibtop_get_loadavg_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_loadavg_l (glibtop *server, glibtop_loadavg *buf);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_LOADAVG
|
|
||||||
void glibtop_init_loadavg_p (glibtop *server);
|
|
||||||
void glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf);
|
|
||||||
#else
|
|
||||||
void glibtop_init_loadavg_s (glibtop *server);
|
|
||||||
void glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_loadavg [];
|
|
||||||
extern const unsigned glibtop_types_loadavg [];
|
|
||||||
extern const char *glibtop_labels_loadavg [];
|
|
||||||
extern const char *glibtop_descriptions_loadavg [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -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_MEM_H__
|
|
||||||
#define __GLIBTOP_MEM_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_MEM_TOTAL 0
|
|
||||||
#define GLIBTOP_MEM_USED 1
|
|
||||||
#define GLIBTOP_MEM_FREE 2
|
|
||||||
#define GLIBTOP_MEM_SHARED 3
|
|
||||||
#define GLIBTOP_MEM_BUFFER 4
|
|
||||||
#define GLIBTOP_MEM_CACHED 5
|
|
||||||
#define GLIBTOP_MEM_USER 6
|
|
||||||
#define GLIBTOP_MEM_LOCKED 7
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_MEM 8
|
|
||||||
|
|
||||||
typedef struct _glibtop_mem glibtop_mem;
|
|
||||||
|
|
||||||
struct _glibtop_mem
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
total, /* GLIBTOP_MEM_TOTAL */
|
|
||||||
used, /* GLIBTOP_MEM_USED */
|
|
||||||
free, /* GLIBTOP_MEM_FREE */
|
|
||||||
shared, /* GLIBTOP_MEM_SHARED */
|
|
||||||
buffer, /* GLIBTOP_MEM_BUFFER */
|
|
||||||
cached, /* GLIBTOP_MEM_CACHED */
|
|
||||||
user, /* GLIBTOP_MEM_USER */
|
|
||||||
locked; /* GLIBTOP_MEM_LOCKED */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_mem(mem) glibtop_get_mem_l(glibtop_global_server, mem)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_MEM
|
|
||||||
#define glibtop_get_mem_r glibtop_get_mem_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_mem_r glibtop_get_mem_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_mem_l (glibtop *server, glibtop_mem *buf);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_MEM
|
|
||||||
void glibtop_init_mem_p (glibtop *server);
|
|
||||||
void glibtop_get_mem_p (glibtop *server, glibtop_mem *buf);
|
|
||||||
#else
|
|
||||||
void glibtop_init_mem_s (glibtop *server);
|
|
||||||
void glibtop_get_mem_s (glibtop *server, glibtop_mem *buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_mem [];
|
|
||||||
extern const unsigned glibtop_types_mem [];
|
|
||||||
extern const char *glibtop_labels_mem [];
|
|
||||||
extern const char *glibtop_descriptions_mem [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_MOUNTLIST_H__
|
|
||||||
#define __GLIBTOP_MOUNTLIST_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_MOUNTLIST_NUMBER 0
|
|
||||||
#define GLIBTOP_MOUNTLIST_TOTAL 1
|
|
||||||
#define GLIBTOP_MOUNTLIST_SIZE 2
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_MOUNTLIST 3
|
|
||||||
|
|
||||||
typedef struct _glibtop_mountentry glibtop_mountentry;
|
|
||||||
|
|
||||||
typedef struct _glibtop_mountlist glibtop_mountlist;
|
|
||||||
|
|
||||||
struct _glibtop_mountentry
|
|
||||||
{
|
|
||||||
u_int64_t dev;
|
|
||||||
char devname [GLIBTOP_MOUNTENTRY_LEN+1];
|
|
||||||
char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
|
|
||||||
char type [GLIBTOP_MOUNTENTRY_LEN+1];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_mountlist
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
number, /* GLIBTOP_MOUNTLIST_NUMBER */
|
|
||||||
total, /* GLIBTOP_MOUNTLIST_TOTAL */
|
|
||||||
size; /* GLIBTOP_MOUNTLIST_SIZE */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_mountlist(mountlist,all_fs) glibtop_get_mountlist_l(glibtop_global_server, mountlist, all_fs)
|
|
||||||
|
|
||||||
#define glibtop_get_mountlist_r glibtop_get_mountlist_s
|
|
||||||
|
|
||||||
glibtop_mountentry *
|
|
||||||
glibtop_get_mountlist_l (glibtop *server, glibtop_mountlist *buf, int all_fs);
|
|
||||||
|
|
||||||
glibtop_mountentry *
|
|
||||||
glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs);
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_mountlist [];
|
|
||||||
extern const unsigned glibtop_types_mountlist [];
|
|
||||||
extern const char *glibtop_labels_mountlist [];
|
|
||||||
extern const char *glibtop_descriptions_mountlist [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,90 +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_MSG_LIMITS_H__
|
|
||||||
#define __GLIBTOP_MSG_LIMITS_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_IPC_MSGPOOL 0
|
|
||||||
#define GLIBTOP_IPC_MSGMAP 1
|
|
||||||
#define GLIBTOP_IPC_MSGMAX 2
|
|
||||||
#define GLIBTOP_IPC_MSGMNB 3
|
|
||||||
#define GLIBTOP_IPC_MSGMNI 4
|
|
||||||
#define GLIBTOP_IPC_MSGSSZ 5
|
|
||||||
#define GLIBTOP_IPC_MSGTQL 6
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_MSG_LIMITS 7
|
|
||||||
|
|
||||||
typedef struct _glibtop_msg_limits glibtop_msg_limits;
|
|
||||||
|
|
||||||
struct _glibtop_msg_limits
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
msgpool, /* GLIBTOP_IPC_MSGPOOL */
|
|
||||||
msgmap, /* GLIBTOP_IPC_MSGMAP */
|
|
||||||
msgmax, /* GLIBTOP_IPC_MSGMAX */
|
|
||||||
msgmnb, /* GLIBTOP_IPC_MSGMNB */
|
|
||||||
msgmni, /* GLIBTOP_IPC_MSGMNI */
|
|
||||||
msgssz, /* GLIBTOP_IPC_MSGSSZ */
|
|
||||||
msgtql; /* GLIBTOP_IPC_MSGTQL */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_msg_limits(msg) glibtop_get_msg_limits_l(glibtop_global_server, msg)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_MSG_LIMITS
|
|
||||||
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_msg_limits_l (glibtop *server, glibtop_msg_limits *buf);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_MSG_LIMITS
|
|
||||||
void glibtop_init_msg_limits_p (glibtop *server);
|
|
||||||
void glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf);
|
|
||||||
#else
|
|
||||||
void glibtop_init_msg_limits_s (glibtop *server);
|
|
||||||
void glibtop_get_msg_limits_s (glibtop *server, glibtop_msg_limits *buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_msg_limits [];
|
|
||||||
extern const unsigned glibtop_types_msg_limits [];
|
|
||||||
extern const char *glibtop_labels_msg_limits [];
|
|
||||||
extern const char *glibtop_descriptions_msg_limits [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -1,122 +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_NETLOAD_H__
|
|
||||||
#define __GLIBTOP_NETLOAD_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_NETLOAD_IF_FLAGS 0
|
|
||||||
#define GLIBTOP_NETLOAD_MTU 1
|
|
||||||
#define GLIBTOP_NETLOAD_SUBNET 2
|
|
||||||
#define GLIBTOP_NETLOAD_ADDRESS 3
|
|
||||||
#define GLIBTOP_NETLOAD_PACKETS_IN 4
|
|
||||||
#define GLIBTOP_NETLOAD_PACKETS_OUT 5
|
|
||||||
#define GLIBTOP_NETLOAD_PACKETS_TOTAL 6
|
|
||||||
#define GLIBTOP_NETLOAD_BYTES_IN 7
|
|
||||||
#define GLIBTOP_NETLOAD_BYTES_OUT 8
|
|
||||||
#define GLIBTOP_NETLOAD_BYTES_TOTAL 9
|
|
||||||
#define GLIBTOP_NETLOAD_ERRORS_IN 10
|
|
||||||
#define GLIBTOP_NETLOAD_ERRORS_OUT 11
|
|
||||||
#define GLIBTOP_NETLOAD_ERRORS_TOTAL 12
|
|
||||||
#define GLIBTOP_NETLOAD_COLLISIONS 13
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_NETLOAD 14
|
|
||||||
|
|
||||||
typedef struct _glibtop_netload glibtop_netload;
|
|
||||||
|
|
||||||
enum {
|
|
||||||
GLIBTOP_IF_FLAGS_UP = 1,
|
|
||||||
GLIBTOP_IF_FLAGS_BROADCAST,
|
|
||||||
GLIBTOP_IF_FLAGS_DEBUG,
|
|
||||||
GLIBTOP_IF_FLAGS_LOOPBACK,
|
|
||||||
GLIBTOP_IF_FLAGS_POINTOPOINT,
|
|
||||||
GLIBTOP_IF_FLAGS_RUNNING,
|
|
||||||
GLIBTOP_IF_FLAGS_NOARP,
|
|
||||||
GLIBTOP_IF_FLAGS_PROMISC,
|
|
||||||
GLIBTOP_IF_FLAGS_ALLMULTI,
|
|
||||||
GLIBTOP_IF_FLAGS_OACTIVE,
|
|
||||||
GLIBTOP_IF_FLAGS_SIMPLEX,
|
|
||||||
GLIBTOP_IF_FLAGS_LINK0,
|
|
||||||
GLIBTOP_IF_FLAGS_LINK1,
|
|
||||||
GLIBTOP_IF_FLAGS_LINK2,
|
|
||||||
GLIBTOP_IF_FLAGS_ALTPHYS,
|
|
||||||
GLIBTOP_IF_FLAGS_MULTICAST
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_netload
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
if_flags, /* GLIBTOP_NETLOAD_IF_FLAGS */
|
|
||||||
mtu, /* GLIBTOP_NETLOAD_MTU */
|
|
||||||
subnet, /* GLIBTOP_NETLOAD_SUBNET */
|
|
||||||
address, /* GLIBTOP_NETLOAD_ADDRESS */
|
|
||||||
packets_in, /* GLIBTOP_NETLOAD_PACKETS_IN */
|
|
||||||
packets_out, /* GLIBTOP_NETLOAD_PACKETS_OUT */
|
|
||||||
packets_total, /* GLIBTOP_NETLOAD_PACKETS_TOTAL*/
|
|
||||||
bytes_in, /* GLIBTOP_NETLOAD_BYTES_IN */
|
|
||||||
bytes_out, /* GLIBTOP_NETLOAD_BYTES_OUT */
|
|
||||||
bytes_total, /* GLIBTOP_NETLOAD_BYTES_TOTAL */
|
|
||||||
errors_in, /* GLIBTOP_NETLOAD_ERRORS_IN */
|
|
||||||
errors_out, /* GLIBTOP_NETLOAD_ERRORS_OUT */
|
|
||||||
errors_total, /* GLIBTOP_NETLOAD_ERRORS_TOTAL */
|
|
||||||
collisions; /* GLIBTOP_NETLOAD_COLLISIONS */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_netload(netload,interface) glibtop_get_netload_l(glibtop_global_server, netload, interface)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_NETLOAD
|
|
||||||
#define glibtop_get_netload_r glibtop_get_netload_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_netload_r glibtop_get_netload_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_netload_l (glibtop *server, glibtop_netload *buf, const char *interface);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_NETLOAD
|
|
||||||
void glibtop_init_netload_p (glibtop *server);
|
|
||||||
void glibtop_get_netload_p (glibtop *server, glibtop_netload *buf, const char *interface);
|
|
||||||
#else
|
|
||||||
void glibtop_init_netload_s (glibtop *server);
|
|
||||||
void glibtop_get_netload_s (glibtop *server, glibtop_netload *buf, const char *interface);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_netload [];
|
|
||||||
extern const unsigned glibtop_types_netload [];
|
|
||||||
extern const char *glibtop_labels_netload [];
|
|
||||||
extern const char *glibtop_descriptions_netload [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
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_OPEN_H__
|
|
||||||
#define __GLIBTOP_OPEN_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/read.h>
|
|
||||||
#include <glibtop/error.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define _GLIBTOP_INIT_STATE_INIT 0x10000
|
|
||||||
#define _GLIBTOP_INIT_STATE_OPEN 0x20000
|
|
||||||
#define _GLIBTOP_INIT_STATE_SERVER 0x40000
|
|
||||||
#define _GLIBTOP_INIT_STATE_SYSDEPS 0x80000
|
|
||||||
|
|
||||||
#define GLIBTOP_INIT_NO_OPEN 1
|
|
||||||
#define GLIBTOP_INIT_NO_INIT 2
|
|
||||||
|
|
||||||
#define GLIBTOP_FEATURES_NO_SERVER 4
|
|
||||||
#define GLIBTOP_FEATURES_EXCEPT 8
|
|
||||||
|
|
||||||
#define GLIBTOP_METHOD_DIRECT 1
|
|
||||||
#define GLIBTOP_METHOD_PIPE 2
|
|
||||||
#define GLIBTOP_METHOD_INET 3
|
|
||||||
#define GLIBTOP_METHOD_UNIX 4
|
|
||||||
|
|
||||||
#define GLIBTOP_ERROR_METHOD_IGNORE 0
|
|
||||||
#define GLIBTOP_ERROR_METHOD_WARN_ONCE 1
|
|
||||||
#define GLIBTOP_ERROR_METHOD_WARN 2
|
|
||||||
#define GLIBTOP_ERROR_METHOD_ABORT 3
|
|
||||||
|
|
||||||
#define GLIBTOP_ERROR_METHOD_DEFAULT GLIBTOP_ERROR_METHOD_WARN_ONCE
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_open_l (glibtop *server, const char *program_name,
|
|
||||||
const unsigned long features, const unsigned flags);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_init_p (glibtop *server, const unsigned long features,
|
|
||||||
const unsigned flags);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_open_p (glibtop *server, const char *program_name,
|
|
||||||
const unsigned long features, const unsigned flags);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_open_s (glibtop *server, const char *program_name,
|
|
||||||
const unsigned long features, const unsigned flags);
|
|
||||||
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
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_PARAMETER_H__
|
|
||||||
#define __GLIBTOP_PARAMETER_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PARAM_METHOD 1
|
|
||||||
#define GLIBTOP_PARAM_FEATURES 2
|
|
||||||
#define GLIBTOP_PARAM_COMMAND 3
|
|
||||||
#define GLIBTOP_PARAM_HOST 4
|
|
||||||
#define GLIBTOP_PARAM_PORT 5
|
|
||||||
#define GLIBTOP_PARAM_ERROR_METHOD 6
|
|
||||||
#define GLIBTOP_PARAM_REQUIRED 7
|
|
||||||
|
|
||||||
#define glibtop_get_parameter(p1,p2,p3) glibtop_get_parameter_l(glibtop_global_server,p1,p2,p3)
|
|
||||||
#define glibtop_set_parameter(p1,p2,p3) glibtop_set_parameter_l(glibtop_global_server,p1,p2,p3)
|
|
||||||
|
|
||||||
size_t
|
|
||||||
glibtop_get_parameter_l (glibtop *server, const unsigned parameter,
|
|
||||||
void *data_ptr, size_t data_size);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_set_parameter_l (glibtop *server, const unsigned parameter,
|
|
||||||
const void *data_ptr, size_t data_size);
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,87 +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_PPP_H__
|
|
||||||
#define __GLIBTOP_PPP_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PPP_STATE 0
|
|
||||||
#define GLIBTOP_PPP_BYTES_IN 1
|
|
||||||
#define GLIBTOP_PPP_BYTES_OUT 2
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PPP 3
|
|
||||||
|
|
||||||
typedef struct _glibtop_ppp glibtop_ppp;
|
|
||||||
|
|
||||||
enum {
|
|
||||||
GLIBTOP_PPP_STATE_UNKNOWN = 0,
|
|
||||||
GLIBTOP_PPP_STATE_HANGUP,
|
|
||||||
GLIBTOP_PPP_STATE_ONLINE
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_ppp
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
state, /* GLIBTOP_PPP_STATE */
|
|
||||||
bytes_in, /* GLIBTOP_PPP_BYTES_IN */
|
|
||||||
bytes_out; /* GLIBTOP_PPP_BYTES_OUT */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_ppp(ppp,device) glibtop_get_ppp_l(glibtop_global_server, ppp, device)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PPP
|
|
||||||
#define glibtop_get_ppp_r glibtop_get_ppp_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_ppp_r glibtop_get_ppp_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_ppp_l (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PPP
|
|
||||||
void glibtop_init_ppp_p (glibtop *server);
|
|
||||||
void glibtop_get_ppp_p (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
|
||||||
#else
|
|
||||||
void glibtop_init_ppp_s (glibtop *server);
|
|
||||||
void glibtop_get_ppp_s (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_ppp [];
|
|
||||||
extern const unsigned glibtop_types_ppp [];
|
|
||||||
extern const char *glibtop_labels_ppp [];
|
|
||||||
extern const char *glibtop_descriptions_ppp [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_PROC_ARGS_H__
|
|
||||||
#define __GLIBTOP_PROC_ARGS_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROC_ARGS_SIZE 0
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROC_ARGS 1
|
|
||||||
|
|
||||||
typedef struct _glibtop_proc_args glibtop_proc_args;
|
|
||||||
|
|
||||||
struct _glibtop_proc_args
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
size; /* GLIBTOP_PROC_ARGS_SIZE */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proc_args(proc_args,pid,max_len) glibtop_get_proc_args_l(glibtop_global_server, proc_args, pid, max_len)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_ARGS
|
|
||||||
#define glibtop_get_proc_args_r glibtop_get_proc_args_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proc_args_r glibtop_get_proc_args_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char *
|
|
||||||
glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf,
|
|
||||||
pid_t pid, unsigned max_len);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_ARGS
|
|
||||||
void glibtop_init_proc_args_p (glibtop *server);
|
|
||||||
|
|
||||||
char *
|
|
||||||
glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
|
|
||||||
pid_t pid, unsigned max_len);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proc_args_s (glibtop *server);
|
|
||||||
|
|
||||||
char *
|
|
||||||
glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf,
|
|
||||||
pid_t pid, unsigned max_len);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_args [];
|
|
||||||
extern const unsigned glibtop_types_proc_args [];
|
|
||||||
extern const char *glibtop_labels_proc_args [];
|
|
||||||
extern const char *glibtop_descriptions_proc_args [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,111 +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_PROCKERNEL_H__
|
|
||||||
#define __GLIBTOP_PROCKERNEL_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROC_KERNEL_K_FLAGS 0
|
|
||||||
#define GLIBTOP_PROC_KERNEL_MIN_FLT 1
|
|
||||||
#define GLIBTOP_PROC_KERNEL_MAJ_FLT 2
|
|
||||||
#define GLIBTOP_PROC_KERNEL_CMIN_FLT 3
|
|
||||||
#define GLIBTOP_PROC_KERNEL_CMAJ_FLT 4
|
|
||||||
#define GLIBTOP_PROC_KERNEL_KSTK_ESP 5
|
|
||||||
#define GLIBTOP_PROC_KERNEL_KSTK_EIP 6
|
|
||||||
#define GLIBTOP_PROC_KERNEL_NWCHAN 7
|
|
||||||
#define GLIBTOP_PROC_KERNEL_WCHAN 8
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROC_KERNEL 9
|
|
||||||
|
|
||||||
/* Constants for the `k_flags' field. */
|
|
||||||
#define GLIBTOP_KFLAGS_STARTING 1 /* being created */
|
|
||||||
#define GLIBTOP_KFLAGS_EXITING 2 /* getting shut down */
|
|
||||||
#define GLIBTOP_KFLAGS_PTRACED 4 /* set if ptrace (0) has
|
|
||||||
been called */
|
|
||||||
#define GLIBTOP_KFLAGS_TRACESYS 8 /* tracing system calls */
|
|
||||||
#define GLIBTOP_KFLAGS_FORKNOEXEC 16 /* forked but didn't exec */
|
|
||||||
#define GLIBTOP_KFLAGS_SUPERPRIV 32 /* used super-user privileges */
|
|
||||||
#define GLIBTOP_KFLAGS_DUMPEDCORE 64 /* dumped core */
|
|
||||||
#define GLIBTOP_KFLAGS_SIGNALED 128 /* killed by a signal */
|
|
||||||
|
|
||||||
typedef struct _glibtop_proc_kernel glibtop_proc_kernel;
|
|
||||||
|
|
||||||
/* Kernel stuff */
|
|
||||||
|
|
||||||
struct _glibtop_proc_kernel
|
|
||||||
{
|
|
||||||
u_int64_t flags;
|
|
||||||
u_int64_t k_flags, /* kernel flags for the process */
|
|
||||||
min_flt, /* number of minor page faults since
|
|
||||||
* process start */
|
|
||||||
maj_flt, /* number of major page faults since
|
|
||||||
* process start */
|
|
||||||
cmin_flt, /* cumulative min_flt of process and
|
|
||||||
* child processes */
|
|
||||||
cmaj_flt, /* cumulative maj_flt of process and
|
|
||||||
* child processes */
|
|
||||||
kstk_esp, /* kernel stack pointer */
|
|
||||||
kstk_eip, /* kernel stack pointer */
|
|
||||||
nwchan; /* address of kernel wait channel
|
|
||||||
* proc is sleeping in */
|
|
||||||
char wchan [40];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proc_kernel(p1, p2) glibtop_get_proc_kernel_l(glibtop_global_server, p1, p2)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_KERNEL
|
|
||||||
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_proc_kernel_l (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_KERNEL
|
|
||||||
void glibtop_init_proc_kernel_p (glibtop *server);
|
|
||||||
void glibtop_get_proc_kernel_p (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proc_kernel_s (glibtop *server);
|
|
||||||
void glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_kernel [];
|
|
||||||
extern const unsigned glibtop_types_proc_kernel [];
|
|
||||||
extern const char *glibtop_labels_proc_kernel [];
|
|
||||||
extern const char *glibtop_descriptions_proc_kernel [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,106 +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_PROCLIST_H__
|
|
||||||
#define __GLIBTOP_PROCLIST_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROCLIST_NUMBER 0
|
|
||||||
#define GLIBTOP_PROCLIST_TOTAL 1
|
|
||||||
#define GLIBTOP_PROCLIST_SIZE 2
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROCLIST 3
|
|
||||||
|
|
||||||
/* You can use the folowing constants as the `which' member of
|
|
||||||
* glibtop_get_proclist () to specify which processes to fetch. */
|
|
||||||
|
|
||||||
#define GLIBTOP_KERN_PROC_ALL 0 /* all processes */
|
|
||||||
#define GLIBTOP_KERN_PROC_PID 1
|
|
||||||
#define GLIBTOP_KERN_PROC_PGRP 2
|
|
||||||
#define GLIBTOP_KERN_PROC_SESSION 3
|
|
||||||
#define GLIBTOP_KERN_PROC_TTY 4
|
|
||||||
#define GLIBTOP_KERN_PROC_UID 5
|
|
||||||
#define GLIBTOP_KERN_PROC_RUID 6
|
|
||||||
|
|
||||||
#define GLIBTOP_KERN_PROC_MASK 15
|
|
||||||
|
|
||||||
#define GLIBTOP_EXCLUDE_IDLE 0x1000
|
|
||||||
#define GLIBTOP_EXCLUDE_SYSTEM 0x2000
|
|
||||||
#define GLIBTOP_EXCLUDE_NOTTY 0x4000
|
|
||||||
|
|
||||||
typedef struct _glibtop_proclist glibtop_proclist;
|
|
||||||
|
|
||||||
struct _glibtop_proclist
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
number, /* GLIBTOP_PROCLIST_NUMBER */
|
|
||||||
total, /* GLIBTOP_PROCLIST_TOTAL */
|
|
||||||
size; /* GLIBTOP_PROCLIST_SIZE */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proclist(proclist,which,arg) glibtop_get_proclist_l(glibtop_global_server, proclist, which, arg)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROCLIST
|
|
||||||
#define glibtop_get_proclist_r glibtop_get_proclist_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proclist_r glibtop_get_proclist_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
unsigned *
|
|
||||||
glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
|
|
||||||
int64_t which, int64_t arg);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROCLIST
|
|
||||||
void glibtop_init_proclist_p (glibtop *server);
|
|
||||||
|
|
||||||
unsigned *
|
|
||||||
glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
|
|
||||||
int64_t which, int64_t arg);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proclist_s (glibtop *server);
|
|
||||||
|
|
||||||
unsigned *
|
|
||||||
glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf,
|
|
||||||
int64_t which, int64_t arg);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proclist [];
|
|
||||||
extern const unsigned glibtop_types_proclist [];
|
|
||||||
extern const char *glibtop_labels_proclist [];
|
|
||||||
extern const char *glibtop_descriptions_proclist [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,112 +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_PROC_MAP_H__
|
|
||||||
#define __GLIBTOP_PROC_MAP_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROC_MAP_NUMBER 0
|
|
||||||
#define GLIBTOP_PROC_MAP_TOTAL 1
|
|
||||||
#define GLIBTOP_PROC_MAP_SIZE 2
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROC_MAP 3
|
|
||||||
|
|
||||||
#define GLIBTOP_MAP_ENTRY_START 1
|
|
||||||
#define GLIBTOP_MAP_ENTRY_END 2
|
|
||||||
#define GLIBTOP_MAP_ENTRY_OFFSET 3
|
|
||||||
#define GLIBTOP_MAP_ENTRY_PERM 4
|
|
||||||
#define GLIBTOP_MAP_ENTRY_INODE 5
|
|
||||||
#define GLIBTOP_MAP_ENTRY_DEVICE 6
|
|
||||||
#define GLIBTOP_MAP_ENTRY_FILENAME 7
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_MAP_ENTRY 8
|
|
||||||
|
|
||||||
#define GLIBTOP_MAP_FILENAME_LEN 215
|
|
||||||
|
|
||||||
#define GLIBTOP_MAP_PERM_READ 1
|
|
||||||
#define GLIBTOP_MAP_PERM_WRITE 2
|
|
||||||
#define GLIBTOP_MAP_PERM_EXECUTE 4
|
|
||||||
#define GLIBTOP_MAP_PERM_SHARED 8
|
|
||||||
#define GLIBTOP_MAP_PERM_PRIVATE 16
|
|
||||||
|
|
||||||
typedef struct _glibtop_map_entry glibtop_map_entry;
|
|
||||||
|
|
||||||
typedef struct _glibtop_proc_map glibtop_proc_map;
|
|
||||||
|
|
||||||
struct _glibtop_map_entry
|
|
||||||
{
|
|
||||||
u_int64_t flags, start, end, offset, perm, inode, device;
|
|
||||||
char filename [GLIBTOP_MAP_FILENAME_LEN+1];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_proc_map
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
number, /* GLIBTOP_PROC_MAP_NUMBER */
|
|
||||||
total, /* GLIBTOP_PROC_MAP_TOTAL */
|
|
||||||
size; /* GLIBTOP_PROC_MAP_SIZE */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proc_map(proc_map,pid) glibtop_get_proc_map_l(glibtop_global_server, proc_map, pid)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_MAP
|
|
||||||
#define glibtop_get_proc_map_r glibtop_get_proc_map_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proc_map_r glibtop_get_proc_map_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_map_entry *
|
|
||||||
glibtop_get_proc_map_l (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_MAP
|
|
||||||
void glibtop_init_proc_map_p (glibtop *server);
|
|
||||||
|
|
||||||
glibtop_map_entry *
|
|
||||||
glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proc_map_s (glibtop *server);
|
|
||||||
|
|
||||||
glibtop_map_entry *
|
|
||||||
glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_map [];
|
|
||||||
extern const unsigned glibtop_types_proc_map [];
|
|
||||||
extern const char *glibtop_labels_proc_map [];
|
|
||||||
extern const char *glibtop_descriptions_proc_map [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -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_PROCMEM_H__
|
|
||||||
#define __GLIBTOP_PROCMEM_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROC_MEM_SIZE 0
|
|
||||||
#define GLIBTOP_PROC_MEM_VSIZE 1
|
|
||||||
#define GLIBTOP_PROC_MEM_RESIDENT 2
|
|
||||||
#define GLIBTOP_PROC_MEM_SHARE 3
|
|
||||||
#define GLIBTOP_PROC_MEM_RSS 4
|
|
||||||
#define GLIBTOP_PROC_MEM_RSS_RLIM 5
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROC_MEM 6
|
|
||||||
|
|
||||||
typedef struct _glibtop_proc_mem glibtop_proc_mem;
|
|
||||||
|
|
||||||
/* Memory section */
|
|
||||||
|
|
||||||
struct _glibtop_proc_mem
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
size, /* total # of pages of memory */
|
|
||||||
vsize, /* number of pages of virtual memory ... */
|
|
||||||
resident, /* number of resident set
|
|
||||||
* (non-swapped) pages (4k) */
|
|
||||||
share, /* number of pages of shared (mmap'd) memory */
|
|
||||||
rss, /* resident set size */
|
|
||||||
rss_rlim; /* current limit (in bytes) of the rss
|
|
||||||
* of the process; usually 2,147,483,647 */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proc_mem(p1, p2) glibtop_get_proc_mem_l(glibtop_global_server, p1, p2)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_MEM
|
|
||||||
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_proc_mem_l (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_MEM
|
|
||||||
void glibtop_init_proc_mem_p (glibtop *server);
|
|
||||||
void glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proc_mem_s (glibtop *server);
|
|
||||||
void glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_mem [];
|
|
||||||
extern const unsigned glibtop_types_proc_mem [];
|
|
||||||
extern const char *glibtop_labels_proc_mem [];
|
|
||||||
extern const char *glibtop_descriptions_proc_mem [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,111 +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_PROCSEGMENT_H__
|
|
||||||
#define __GLIBTOP_PROCSEGMENT_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_TEXT_RSS 0
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_SHLIB_RSS 1
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_DATA_RSS 2
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_STACK_RSS 3
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_DIRTY_SIZE 4
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_START_CODE 5
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_END_CODE 6
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_START_DATA 7
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_END_DATA 8
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_START_BRK 9
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_END_BRK 10
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_START_STACK 11
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_START_MMAP 12
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_ARG_START 13
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_ARG_END 14
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_ENV_START 15
|
|
||||||
#define GLIBTOP_PROC_SEGMENT_ENV_END 16
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROC_SEGMENT 17
|
|
||||||
|
|
||||||
typedef struct _glibtop_proc_segment glibtop_proc_segment;
|
|
||||||
|
|
||||||
/* Segment stuff */
|
|
||||||
|
|
||||||
struct _glibtop_proc_segment
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
text_rss, /* text resident set size */
|
|
||||||
shlib_rss, /* shared-lib resident set size */
|
|
||||||
data_rss, /* data resident set size */
|
|
||||||
stack_rss, /* stack resident set size */
|
|
||||||
dirty_size, /* size of dirty pages */
|
|
||||||
start_code, /* address of beginning of code segment */
|
|
||||||
end_code, /* address of end of code segment */
|
|
||||||
start_data, /* address of beginning of data segment */
|
|
||||||
end_data, /* address of end of data segment */
|
|
||||||
start_brk,
|
|
||||||
end_brk,
|
|
||||||
start_stack, /* address of the bottom of stack segment */
|
|
||||||
start_mmap,
|
|
||||||
arg_start,
|
|
||||||
arg_end,
|
|
||||||
env_start,
|
|
||||||
env_end;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proc_segment(p1, p2) glibtop_get_proc_segment_l(glibtop_global_server, p1, p2)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_SEGMENT
|
|
||||||
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_proc_segment_l (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_SEGMENT
|
|
||||||
void glibtop_init_proc_segment_p (glibtop *server);
|
|
||||||
void glibtop_get_proc_segment_p (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proc_segment_s (glibtop *server);
|
|
||||||
void glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_segment [];
|
|
||||||
extern const unsigned glibtop_types_proc_segment [];
|
|
||||||
extern const char *glibtop_labels_proc_segment [];
|
|
||||||
extern const char *glibtop_descriptions_proc_segment [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_PROCSIGNAL_H__
|
|
||||||
#define __GLIBTOP_PROCSIGNAL_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROC_SIGNAL_SIGNAL 0
|
|
||||||
#define GLIBTOP_PROC_SIGNAL_BLOCKED 1
|
|
||||||
#define GLIBTOP_PROC_SIGNAL_SIGIGNORE 2
|
|
||||||
#define GLIBTOP_PROC_SIGNAL_SIGCATCH 3
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROC_SIGNAL 4
|
|
||||||
|
|
||||||
typedef struct _glibtop_proc_signal glibtop_proc_signal;
|
|
||||||
|
|
||||||
/* Signals section */
|
|
||||||
|
|
||||||
struct _glibtop_proc_signal
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
signal [2], /* mask of pending signals */
|
|
||||||
blocked [2], /* mask of blocked signals */
|
|
||||||
sigignore [2], /* mask of ignored signals */
|
|
||||||
sigcatch [2]; /* mask of caught signals */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proc_signal(p1, p2) glibtop_get_proc_signal_l(glibtop_global_server, p1, p2)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_SIGNAL
|
|
||||||
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_proc_signal_l (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_SIGNAL
|
|
||||||
void glibtop_init_proc_signal_p (glibtop *server);
|
|
||||||
void glibtop_get_proc_signal_p (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proc_signal_s (glibtop *server);
|
|
||||||
void glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_signal [];
|
|
||||||
extern const unsigned glibtop_types_proc_signal [];
|
|
||||||
extern const char *glibtop_labels_proc_signal [];
|
|
||||||
extern const char *glibtop_descriptions_proc_signal [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,111 +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_PROCSTATE_H__
|
|
||||||
#define __GLIBTOP_PROCSTATE_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROC_STATE_CMD 0
|
|
||||||
#define GLIBTOP_PROC_STATE_STATE 1
|
|
||||||
#define GLIBTOP_PROC_STATE_UID 2
|
|
||||||
#define GLIBTOP_PROC_STATE_GID 3
|
|
||||||
#define GLIBTOP_PROC_STATE_RUID 4
|
|
||||||
#define GLIBTOP_PROC_STATE_RGID 5
|
|
||||||
#define GLIBTOP_PROC_STATE_HAS_CPU 6
|
|
||||||
#define GLIBTOP_PROC_STATE_PROCESSOR 7
|
|
||||||
#define GLIBTOP_PROC_STATE_LAST_PROCESSOR 8
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROC_STATE 9
|
|
||||||
|
|
||||||
/* Constants for the `state' field. */
|
|
||||||
#define GLIBTOP_PROCESS_RUNNING 1
|
|
||||||
#define GLIBTOP_PROCESS_INTERRUPTIBLE 2
|
|
||||||
#define GLIBTOP_PROCESS_UNINTERRUPTIBLE 4
|
|
||||||
#define GLIBTOP_PROCESS_ZOMBIE 8
|
|
||||||
#define GLIBTOP_PROCESS_STOPPED 16
|
|
||||||
#define GLIBTOP_PROCESS_SWAPPING 32
|
|
||||||
|
|
||||||
typedef struct _glibtop_proc_state glibtop_proc_state;
|
|
||||||
|
|
||||||
/* Name and status */
|
|
||||||
|
|
||||||
struct _glibtop_proc_state
|
|
||||||
{
|
|
||||||
u_int64_t flags;
|
|
||||||
char cmd[40]; /* basename of executable file in
|
|
||||||
* call to exec(2) */
|
|
||||||
unsigned state; /* process state */
|
|
||||||
/* NOTE: when porting the library, TRY HARD to implement the
|
|
||||||
* following two fields. */
|
|
||||||
/* IMPORTANT NOTICE: For security reasons, it is extremely important
|
|
||||||
* only to set the flags value for those two
|
|
||||||
* fields if their values are corrent ! */
|
|
||||||
int uid, /* effective UID of process */
|
|
||||||
gid, /* effective GID of process */
|
|
||||||
ruid, /* real UID of process */
|
|
||||||
rgid; /* real GID of process */
|
|
||||||
/* SMP values. */
|
|
||||||
int has_cpu,
|
|
||||||
processor,
|
|
||||||
last_processor;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proc_state(p1, p2) glibtop_get_proc_state_l(glibtop_global_server, p1, p2)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_STATE
|
|
||||||
#define glibtop_get_proc_state_r glibtop_get_proc_state_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proc_state_r glibtop_get_proc_state_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_proc_state_l (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_STATE
|
|
||||||
void glibtop_init_proc_state_p (glibtop *server);
|
|
||||||
void glibtop_get_proc_state_p (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proc_state_s (glibtop *server);
|
|
||||||
void glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_state [];
|
|
||||||
extern const unsigned glibtop_types_proc_state [];
|
|
||||||
extern const char *glibtop_labels_proc_state [];
|
|
||||||
extern const char *glibtop_descriptions_proc_state [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,108 +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_PROCTIME_H__
|
|
||||||
#define __GLIBTOP_PROCTIME_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/cpu.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROC_TIME_START_TIME 0
|
|
||||||
#define GLIBTOP_PROC_TIME_RTIME 1
|
|
||||||
#define GLIBTOP_PROC_TIME_UTIME 2
|
|
||||||
#define GLIBTOP_PROC_TIME_STIME 3
|
|
||||||
#define GLIBTOP_PROC_TIME_CUTIME 4
|
|
||||||
#define GLIBTOP_PROC_TIME_CSTIME 5
|
|
||||||
#define GLIBTOP_PROC_TIME_TIMEOUT 6
|
|
||||||
#define GLIBTOP_PROC_TIME_IT_REAL_VALUE 7
|
|
||||||
#define GLIBTOP_PROC_TIME_FREQUENCY 8
|
|
||||||
#define GLIBTOP_PROC_TIME_XCPU_UTIME 9
|
|
||||||
#define GLIBTOP_PROC_TIME_XCPU_STIME 10
|
|
||||||
#define GLIBTOP_PROC_TIME_XCPU_FLAGS 11
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROC_TIME 12
|
|
||||||
|
|
||||||
typedef struct _glibtop_proc_time glibtop_proc_time;
|
|
||||||
|
|
||||||
/* Time section */
|
|
||||||
|
|
||||||
struct _glibtop_proc_time
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
start_time, /* start time of process --
|
|
||||||
* seconds since 1-1-70 */
|
|
||||||
rtime, /* real time accumulated by process */
|
|
||||||
utime, /* user-mode CPU time accumulated by process */
|
|
||||||
stime, /* kernel-mode CPU time accumulated by process */
|
|
||||||
cutime, /* cumulative utime of process and
|
|
||||||
* reaped children */
|
|
||||||
cstime, /* cumulative stime of process and
|
|
||||||
* reaped children */
|
|
||||||
timeout, /* The time (in jiffies) of the process's
|
|
||||||
* next timeout */
|
|
||||||
it_real_value, /* The time (in jiffies) before the
|
|
||||||
* next SIGALRM is sent to the process
|
|
||||||
* due to an interval timer. */
|
|
||||||
frequency, /* Tick frequency. */
|
|
||||||
xcpu_utime [GLIBTOP_NCPU], /* utime and stime for all CPUs on */
|
|
||||||
xcpu_stime [GLIBTOP_NCPU], /* SMP machines. */
|
|
||||||
xcpu_flags;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proc_time(p1, p2) glibtop_get_proc_time_l(glibtop_global_server, p1, p2)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_TIME
|
|
||||||
#define glibtop_get_proc_time_r glibtop_get_proc_time_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proc_time_r glibtop_get_proc_time_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_proc_time_l (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_TIME
|
|
||||||
void glibtop_init_proc_time_p (glibtop *server);
|
|
||||||
void glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proc_time_s (glibtop *server);
|
|
||||||
void glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_time [];
|
|
||||||
extern const unsigned glibtop_types_proc_time [];
|
|
||||||
extern const char *glibtop_labels_proc_time [];
|
|
||||||
extern const char *glibtop_descriptions_proc_time [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_PROCUID_H__
|
|
||||||
#define __GLIBTOP_PROCUID_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_PROC_UID_UID 0
|
|
||||||
#define GLIBTOP_PROC_UID_EUID 1
|
|
||||||
#define GLIBTOP_PROC_UID_GID 2
|
|
||||||
#define GLIBTOP_PROC_UID_EGID 3
|
|
||||||
#define GLIBTOP_PROC_UID_SUID 4
|
|
||||||
#define GLIBTOP_PROC_UID_SGID 5
|
|
||||||
#define GLIBTOP_PROC_UID_FSUID 6
|
|
||||||
#define GLIBTOP_PROC_UID_FSGID 7
|
|
||||||
#define GLIBTOP_PROC_UID_PID 8
|
|
||||||
#define GLIBTOP_PROC_UID_PPID 9
|
|
||||||
#define GLIBTOP_PROC_UID_PGRP 10
|
|
||||||
#define GLIBTOP_PROC_UID_SESSION 11
|
|
||||||
#define GLIBTOP_PROC_UID_TTY 12
|
|
||||||
#define GLIBTOP_PROC_UID_TPGID 13
|
|
||||||
#define GLIBTOP_PROC_UID_PRIORITY 14
|
|
||||||
#define GLIBTOP_PROC_UID_NICE 15
|
|
||||||
#define GLIBTOP_PROC_UID_NGROUPS 16
|
|
||||||
#define GLIBTOP_PROC_UID_GROUPS 17
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_PROC_UID 18
|
|
||||||
|
|
||||||
typedef struct _glibtop_proc_uid glibtop_proc_uid;
|
|
||||||
|
|
||||||
/* User, Group, Terminal and session */
|
|
||||||
|
|
||||||
struct _glibtop_proc_uid
|
|
||||||
{
|
|
||||||
u_int64_t flags;
|
|
||||||
int uid, /* user id */
|
|
||||||
euid, /* effective user id */
|
|
||||||
gid, /* group id */
|
|
||||||
egid, /* effective group id */
|
|
||||||
suid, /* saved user id */
|
|
||||||
sgid, /* saved group id */
|
|
||||||
fsuid, /* file system user id */
|
|
||||||
fsgid, /* file system group id */
|
|
||||||
pid, /* process id */
|
|
||||||
ppid, /* pid of parent process */
|
|
||||||
pgrp, /* process group id */
|
|
||||||
session, /* session id */
|
|
||||||
tty, /* full device number of controlling terminal */
|
|
||||||
tpgid, /* terminal process group id */
|
|
||||||
priority, /* kernel scheduling priority */
|
|
||||||
nice, /* standard unix nice level of process */
|
|
||||||
ngroups, /* number of additional process groups */
|
|
||||||
groups [GLIBTOP_MAX_GROUPS]; /* additional prcess groups */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_proc_uid(p1, p2) glibtop_get_proc_uid_l(glibtop_global_server, p1, p2)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_UID
|
|
||||||
#define glibtop_get_proc_uid_r glibtop_get_proc_uid_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_proc_uid_r glibtop_get_proc_uid_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_proc_uid_l (glibtop *server, glibtop_proc_uid *buf, pid_t pid);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_UID
|
|
||||||
void glibtop_init_proc_uid_p (glibtop *server);
|
|
||||||
void glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf, pid_t pid);
|
|
||||||
#else
|
|
||||||
void glibtop_init_proc_uid_s (glibtop *server);
|
|
||||||
void glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_uid [];
|
|
||||||
extern const unsigned glibtop_types_proc_uid [];
|
|
||||||
extern const char *glibtop_labels_proc_uid [];
|
|
||||||
extern const char *glibtop_descriptions_proc_uid [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,41 +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_READ_H__
|
|
||||||
#define __GLIBTOP_READ_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/error.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define glibtop_read(p1, p2) glibtop_read(glibtop_global_server, p1, p2)
|
|
||||||
|
|
||||||
void glibtop_read_l (glibtop *server, size_t size, void *buf);
|
|
||||||
void glibtop_read_s (glibtop *server, size_t size, void *buf);
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,41 +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_READ_DATA_H__
|
|
||||||
#define __GLIBTOP_READ_DATA_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/error.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define glibtop_read_data() glibtop_read_data_r(glibtop_global_server)
|
|
||||||
|
|
||||||
void *glibtop_read_data_l (glibtop *server);
|
|
||||||
void *glibtop_read_data_s (glibtop *server);
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_SEM_LIMITS_H__
|
|
||||||
#define __GLIBTOP_SEM_LIMITS_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_IPC_SEMMAP 0
|
|
||||||
#define GLIBTOP_IPC_SEMMNI 1
|
|
||||||
#define GLIBTOP_IPC_SEMMNS 2
|
|
||||||
#define GLIBTOP_IPC_SEMMNU 3
|
|
||||||
#define GLIBTOP_IPC_SEMMSL 4
|
|
||||||
#define GLIBTOP_IPC_SEMOPM 5
|
|
||||||
#define GLIBTOP_IPC_SEMUME 6
|
|
||||||
#define GLIBTOP_IPC_SEMUSZ 7
|
|
||||||
#define GLIBTOP_IPC_SEMVMX 8
|
|
||||||
#define GLIBTOP_IPC_SEMAEM 9
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_SEM_LIMITS 10
|
|
||||||
|
|
||||||
typedef struct _glibtop_sem_limits glibtop_sem_limits;
|
|
||||||
|
|
||||||
struct _glibtop_sem_limits
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
semmap, /* GLIBTOP_IPC_SEMMAP */
|
|
||||||
semmni, /* GLIBTOP_IPC_SEMMNI */
|
|
||||||
semmns, /* GLIBTOP_IPC_SEMMNS */
|
|
||||||
semmnu, /* GLIBTOP_IPC_SEMMNU */
|
|
||||||
semmsl, /* GLIBTOP_IPC_SEMMSL */
|
|
||||||
semopm, /* GLIBTOP_IPC_SEMOPM */
|
|
||||||
semume, /* GLIBTOP_IPC_SEMUME */
|
|
||||||
semusz, /* GLIBTOP_IPC_SEMUSZ */
|
|
||||||
semvmx, /* GLIBTOP_IPC_SEMVMX */
|
|
||||||
semaem; /* GLIBTOP_IPC_SEMAEM */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_sem_limits(sem) glibtop_get_sem_limits_l(glibtop_global_server, sem)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_SEM_LIMITS
|
|
||||||
#define glibtop_get_sem_limits_r glibtop_get_sem_limits_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_sem_limits_r glibtop_get_sem_limits_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_sem_limits_l (glibtop *server, glibtop_sem_limits *buf);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_SEM_LIMITS
|
|
||||||
void glibtop_init_sem_limits_p (glibtop *server);
|
|
||||||
void glibtop_get_sem_limits_p (glibtop *server, glibtop_sem_limits *buf);
|
|
||||||
#else
|
|
||||||
void glibtop_init_sem_limits_s (glibtop *server);
|
|
||||||
void glibtop_get_sem_limits_s (glibtop *server, glibtop_sem_limits *buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_sem_limits [];
|
|
||||||
extern const unsigned glibtop_types_sem_limits [];
|
|
||||||
extern const char *glibtop_labels_sem_limits [];
|
|
||||||
extern const char *glibtop_descriptions_sem_limits [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_SHM_LIMITS_H__
|
|
||||||
#define __GLIBTOP_SHM_LIMITS_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_IPC_SHMMAX 0
|
|
||||||
#define GLIBTOP_IPC_SHMMIN 1
|
|
||||||
#define GLIBTOP_IPC_SHMMNI 2
|
|
||||||
#define GLIBTOP_IPC_SHMSEG 3
|
|
||||||
#define GLIBTOP_IPC_SHMALL 4
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_SHM_LIMITS 5
|
|
||||||
|
|
||||||
typedef struct _glibtop_shm_limits glibtop_shm_limits;
|
|
||||||
|
|
||||||
struct _glibtop_shm_limits
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
shmmax, /* GLIBTOP_IPC_SHMMAX */
|
|
||||||
shmmin, /* GLIBTOP_IPC_SHMMIN */
|
|
||||||
shmmni, /* GLIBTOP_IPC_SHMMNI */
|
|
||||||
shmseg, /* GLIBTOP_IPC_SHMSEG */
|
|
||||||
shmall; /* GLIBTOP_IPC_SHMALL */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_shm_limits(shm) glibtop_get_shm_limits_l(glibtop_global_server, shm)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_SHM_LIMITS
|
|
||||||
#define glibtop_get_shm_limits_r glibtop_get_shm_limits_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_shm_limits_r glibtop_get_shm_limits_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_shm_limits_l (glibtop *server, glibtop_shm_limits *buf);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_SHM_LIMITS
|
|
||||||
void glibtop_init_shm_limits_p (glibtop *server);
|
|
||||||
void glibtop_get_shm_limits_p (glibtop *, glibtop_shm_limits *buf);
|
|
||||||
#else
|
|
||||||
void glibtop_init_shm_limits_s (glibtop *server);
|
|
||||||
void glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_shm_limits [];
|
|
||||||
extern const unsigned glibtop_types_shm_limits [];
|
|
||||||
extern const char *glibtop_labels_shm_limits [];
|
|
||||||
extern const char *glibtop_descriptions_shm_limits [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,49 +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_SIGNAL_H__
|
|
||||||
#define __GLIBTOP_SIGNAL_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_SYS_SIGNAL_H
|
|
||||||
#include <sys/signal.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
typedef struct _glibtop_signame glibtop_signame;
|
|
||||||
|
|
||||||
struct _glibtop_signame
|
|
||||||
{
|
|
||||||
const int number;
|
|
||||||
const char *name, *label;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern const glibtop_signame glibtop_sys_siglist [];
|
|
||||||
|
|
||||||
END_LIBGTOP_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 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_SWAP_H__
|
|
||||||
#define __GLIBTOP_SWAP_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_SWAP_TOTAL 0
|
|
||||||
#define GLIBTOP_SWAP_USED 1
|
|
||||||
#define GLIBTOP_SWAP_FREE 2
|
|
||||||
#define GLIBTOP_SWAP_PAGEIN 3
|
|
||||||
#define GLIBTOP_SWAP_PAGEOUT 4
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_SWAP 5
|
|
||||||
|
|
||||||
typedef struct _glibtop_swap glibtop_swap;
|
|
||||||
|
|
||||||
struct _glibtop_swap
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
total, /* GLIBTOP_SWAP_TOTAL */
|
|
||||||
used, /* GLIBTOP_SWAP_USED */
|
|
||||||
free, /* GLIBTOP_SWAP_FREE */
|
|
||||||
pagein, /* GLIBTOP_SWAP_PAGEIN */
|
|
||||||
pageout; /* GLIBTOP_SWAP_PAGEOUT */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_swap(swap) glibtop_get_swap_l(glibtop_global_server, swap)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_SWAP
|
|
||||||
#define glibtop_get_swap_r glibtop_get_swap_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_swap_r glibtop_get_swap_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_swap_l (glibtop *server, glibtop_swap *buf);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_SWAP
|
|
||||||
void glibtop_init_swap_p (glibtop *server);
|
|
||||||
void glibtop_get_swap_p (glibtop *server, glibtop_swap *buf);
|
|
||||||
#else
|
|
||||||
void glibtop_init_swap_s (glibtop *server);
|
|
||||||
void glibtop_get_swap_s (glibtop *server, glibtop_swap *buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_swap [];
|
|
||||||
extern const unsigned glibtop_types_swap [];
|
|
||||||
extern const char *glibtop_labels_swap [];
|
|
||||||
extern const char *glibtop_descriptions_swap [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,112 +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_SYSDEPS_H__
|
|
||||||
#define __GLIBTOP_SYSDEPS_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_SYSDEPS_CPU 0
|
|
||||||
#define GLIBTOP_SYSDEPS_MEM 1
|
|
||||||
#define GLIBTOP_SYSDEPS_SWAP 2
|
|
||||||
#define GLIBTOP_SYSDEPS_UPTIME 3
|
|
||||||
#define GLIBTOP_SYSDEPS_LOADAVG 4
|
|
||||||
#define GLIBTOP_SYSDEPS_SHM_LIMITS 5
|
|
||||||
#define GLIBTOP_SYSDEPS_MSG_LIMITS 6
|
|
||||||
#define GLIBTOP_SYSDEPS_SEM_LIMITS 7
|
|
||||||
#define GLIBTOP_SYSDEPS_PROCLIST 8
|
|
||||||
#define GLIBTOP_SYSDEPS_PROC_STATE 9
|
|
||||||
#define GLIBTOP_SYSDEPS_PROC_UID 10
|
|
||||||
#define GLIBTOP_SYSDEPS_PROC_MEM 11
|
|
||||||
#define GLIBTOP_SYSDEPS_PROC_TIME 12
|
|
||||||
#define GLIBTOP_SYSDEPS_PROC_SIGNAL 13
|
|
||||||
#define GLIBTOP_SYSDEPS_PROC_KERNEL 14
|
|
||||||
#define GLIBTOP_SYSDEPS_PROC_SEGMENT 15
|
|
||||||
#define GLIBTOP_SYSDEPS_PROC_ARGS 16
|
|
||||||
#define GLIBTOP_SYSDEPS_PROC_MAP 17
|
|
||||||
#define GLIBTOP_SYSDEPS_MOUNTLIST 18
|
|
||||||
#define GLIBTOP_SYSDEPS_FSUSAGE 19
|
|
||||||
#define GLIBTOP_SYSDEPS_NETLOAD 20
|
|
||||||
#define GLIBTOP_SYSDEPS_PPP 21
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_SYSDEPS 24
|
|
||||||
|
|
||||||
#define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1)
|
|
||||||
|
|
||||||
typedef void (*glibtop_init_func_t) (glibtop *);
|
|
||||||
extern glibtop_init_func_t _glibtop_init_hook_s [];
|
|
||||||
extern glibtop_init_func_t _glibtop_init_hook_p [];
|
|
||||||
|
|
||||||
typedef struct _glibtop_sysdeps glibtop_sysdeps;
|
|
||||||
|
|
||||||
struct _glibtop_sysdeps
|
|
||||||
{
|
|
||||||
u_int64_t flags,
|
|
||||||
features, /* server features */
|
|
||||||
pointer_size, /* sizeof(void*)*8 */
|
|
||||||
cpu, /* glibtop_cpu */
|
|
||||||
mem, /* glibtop_mem */
|
|
||||||
swap, /* glibtop_swap */
|
|
||||||
uptime, /* glibtop_uptime */
|
|
||||||
loadavg, /* glibtop_loadavg */
|
|
||||||
shm_limits, /* glibtop_shm_limits */
|
|
||||||
msg_limits, /* glibtop_msg_limits */
|
|
||||||
sem_limits, /* glibtop_sem_limits */
|
|
||||||
proclist, /* glibtop_proclist */
|
|
||||||
proc_state, /* glibtop_proc_state */
|
|
||||||
proc_uid, /* glibtop_proc_uid */
|
|
||||||
proc_mem, /* glibtop_proc_mem */
|
|
||||||
proc_time, /* glibtop_proc_time */
|
|
||||||
proc_signal, /* glibtop_proc_signal */
|
|
||||||
proc_kernel, /* glibtop_proc_kernel */
|
|
||||||
proc_segment, /* glibtop_proc_segment */
|
|
||||||
proc_args, /* glibtop_proc_args */
|
|
||||||
proc_map, /* glibtop_proc_map */
|
|
||||||
mountlist, /* glibtop_mountlist */
|
|
||||||
fsusage, /* glibtop_fsusage */
|
|
||||||
netload, /* glibtop_netload */
|
|
||||||
ppp; /* glibtop_ppp */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_sysdeps(sysdeps) glibtop_get_sysdeps_r(glibtop_global_server,sysdeps)
|
|
||||||
|
|
||||||
void glibtop_get_sysdeps_r (glibtop *server, glibtop_sysdeps *buf);
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_sysdeps [];
|
|
||||||
extern const unsigned glibtop_types_sysdeps [];
|
|
||||||
extern const char *glibtop_labels_sysdeps [];
|
|
||||||
extern const char *glibtop_descriptions_sysdeps [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_SYSINFO_H__
|
|
||||||
#define __GLIBTOP_SYSINFO_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/cpu.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
#include <glib.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_SYSINFO_CPUINFO 0
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_SYSINFO 1
|
|
||||||
|
|
||||||
typedef struct _glibtop_sysinfo glibtop_sysinfo;
|
|
||||||
|
|
||||||
typedef struct _glibtop_entry glibtop_entry;
|
|
||||||
|
|
||||||
struct _glibtop_entry
|
|
||||||
{
|
|
||||||
GPtrArray *labels;
|
|
||||||
GHashTable *values;
|
|
||||||
GHashTable *descriptions;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_sysinfo
|
|
||||||
{
|
|
||||||
u_int64_t flags, ncpu;
|
|
||||||
glibtop_entry cpuinfo [GLIBTOP_NCPU];
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_sysinfo() glibtop_get_sysinfo_s(glibtop_global_server)
|
|
||||||
|
|
||||||
#define glibtop_get_sysinfo_r glibtop_get_sysinfo_s
|
|
||||||
|
|
||||||
glibtop_sysinfo *glibtop_get_sysinfo_s (glibtop *server);
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,41 +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_TYPES_H__
|
|
||||||
#define __GLIBTOP_TYPES_H__
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_TYPE_LONG 1
|
|
||||||
#define GLIBTOP_TYPE_ULONG 2
|
|
||||||
#define GLIBTOP_TYPE_DOUBLE 3
|
|
||||||
#define GLIBTOP_TYPE_INT 4
|
|
||||||
#define GLIBTOP_TYPE_UNSIGNED 5
|
|
||||||
#define GLIBTOP_TYPE_CHAR 6
|
|
||||||
#define GLIBTOP_TYPE_STRING 7
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,87 +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_UNION_H__
|
|
||||||
#define __GLIBTOP_UNION_H__
|
|
||||||
|
|
||||||
#include <glibtop/cpu.h>
|
|
||||||
#include <glibtop/mem.h>
|
|
||||||
#include <glibtop/swap.h>
|
|
||||||
#include <glibtop/uptime.h>
|
|
||||||
#include <glibtop/loadavg.h>
|
|
||||||
#include <glibtop/shm_limits.h>
|
|
||||||
#include <glibtop/msg_limits.h>
|
|
||||||
#include <glibtop/sem_limits.h>
|
|
||||||
#include <glibtop/proclist.h>
|
|
||||||
|
|
||||||
#include <glibtop/procstate.h>
|
|
||||||
#include <glibtop/procuid.h>
|
|
||||||
#include <glibtop/procmem.h>
|
|
||||||
#include <glibtop/proctime.h>
|
|
||||||
#include <glibtop/procsignal.h>
|
|
||||||
#include <glibtop/prockernel.h>
|
|
||||||
#include <glibtop/procsegment.h>
|
|
||||||
#include <glibtop/procargs.h>
|
|
||||||
#include <glibtop/procmap.h>
|
|
||||||
|
|
||||||
#include <glibtop/mountlist.h>
|
|
||||||
#include <glibtop/fsusage.h>
|
|
||||||
|
|
||||||
#include <glibtop/netload.h>
|
|
||||||
#include <glibtop/ppp.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
typedef union _glibtop_union glibtop_union;
|
|
||||||
|
|
||||||
union _glibtop_union
|
|
||||||
{
|
|
||||||
glibtop_cpu cpu;
|
|
||||||
glibtop_mem mem;
|
|
||||||
glibtop_swap swap;
|
|
||||||
glibtop_uptime uptime;
|
|
||||||
glibtop_loadavg loadavg;
|
|
||||||
glibtop_shm_limits shm_limits;
|
|
||||||
glibtop_msg_limits msg_limits;
|
|
||||||
glibtop_sem_limits sem_limits;
|
|
||||||
glibtop_proclist proclist;
|
|
||||||
glibtop_proc_state proc_state;
|
|
||||||
glibtop_proc_uid proc_uid;
|
|
||||||
glibtop_proc_mem proc_mem;
|
|
||||||
glibtop_proc_time proc_time;
|
|
||||||
glibtop_proc_signal proc_signal;
|
|
||||||
glibtop_proc_kernel proc_kernel;
|
|
||||||
glibtop_proc_segment proc_segment;
|
|
||||||
glibtop_proc_args proc_args;
|
|
||||||
glibtop_proc_map proc_map;
|
|
||||||
glibtop_mountlist mountlist;
|
|
||||||
glibtop_fsusage fsusage;
|
|
||||||
glibtop_netload netload;
|
|
||||||
glibtop_ppp ppp;
|
|
||||||
};
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_UPTIME_H__
|
|
||||||
#define __GLIBTOP_UPTIME_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_UPTIME_UPTIME 0
|
|
||||||
#define GLIBTOP_UPTIME_IDLETIME 1
|
|
||||||
#define GLIBTOP_UPTIME_BOOT_TIME 2
|
|
||||||
|
|
||||||
#define GLIBTOP_MAX_UPTIME 3
|
|
||||||
|
|
||||||
typedef struct _glibtop_uptime glibtop_uptime;
|
|
||||||
|
|
||||||
struct _glibtop_uptime
|
|
||||||
{
|
|
||||||
u_int64_t flags;
|
|
||||||
double uptime, /* GLIBTOP_UPTIME_UPTIME */
|
|
||||||
idletime; /* GLIBTOP_UPTIME_IDLETIME */
|
|
||||||
u_int64_t boot_time; /* GLIBTOP_UPTIME_BOOT_TIME */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define glibtop_get_uptime(uptime) glibtop_get_uptime_l(glibtop_global_server, uptime)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_UPTIME
|
|
||||||
#define glibtop_get_uptime_r glibtop_get_uptime_p
|
|
||||||
#else
|
|
||||||
#define glibtop_get_uptime_r glibtop_get_uptime_s
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void glibtop_get_uptime_l (glibtop *server, glibtop_uptime *buf);
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_UPTIME
|
|
||||||
void glibtop_init_uptime_p (glibtop *server);
|
|
||||||
void glibtop_get_uptime_p (glibtop *server, glibtop_uptime *buf);
|
|
||||||
#else
|
|
||||||
void glibtop_init_uptime_s (glibtop *server);
|
|
||||||
void glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_uptime [];
|
|
||||||
extern const unsigned glibtop_types_uptime [];
|
|
||||||
extern const char *glibtop_labels_uptime [];
|
|
||||||
extern const char *glibtop_descriptions_uptime [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
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_VERSION_H__
|
|
||||||
#define __GLIBTOP_VERSION_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
#include <glibtop/command.h>
|
|
||||||
|
|
||||||
#define LIBGTOP_VERSION_STRING "Libgtop %s server version %s (%u,%u,%u,%u)."
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#if _IN_LIBGTOP
|
|
||||||
|
|
||||||
void glibtop_send_version (glibtop *server, int fd);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,41 +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_WRITE_H__
|
|
||||||
#define __GLIBTOP_WRITE_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/error.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define glibtop_write(p1, p2) glibtop_write(glibtop_global_server, p1, p2)
|
|
||||||
|
|
||||||
void glibtop_write_l (glibtop *server, size_t size, void *buf);
|
|
||||||
void glibtop_write_s (glibtop *server, size_t size, void *buf);
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,48 +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_XMALLOC_H__
|
|
||||||
#define __GLIBTOP_XMALLOC_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/error.h>
|
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#define glibtop_malloc(p1) glibtop_malloc_r(glibtop_global_server, p1)
|
|
||||||
#define glibtop_calloc(p1, p2) glibtop_calloc_r(glibtop_global_server, p1, p2)
|
|
||||||
#define glibtop_realloc(p1, p2) glibtop_realloc_r(glibtop_global_server, p1, p2)
|
|
||||||
#define glibtop_strdup(p1) glibtop_strdup_r(glibtop_global_server, p1)
|
|
||||||
#define glibtop_free(p1) glibtop_free_r(glibtop_global_server, p1)
|
|
||||||
|
|
||||||
void *glibtop_malloc_r (glibtop *server, size_t size);
|
|
||||||
void *glibtop_calloc_r (glibtop *server, size_t nmemb, size_t size);
|
|
||||||
void *glibtop_realloc_r (glibtop *server, void *ptr, size_t size);
|
|
||||||
char *glibtop_strdup_r (glibtop *server, const char *string);
|
|
||||||
void glibtop_free_r (glibtop *server, const void *ptr);
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
*.flags
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
#
|
|
||||||
# Makefile for the LibGTop linux sysctl interface.
|
|
||||||
#
|
|
||||||
# Note! Dependencies are done automagically by 'make dep', which also
|
|
||||||
# removes any old dependencies. DON'T put your own dependencies here
|
|
||||||
# unless it's something special (ie not a .c file).
|
|
||||||
#
|
|
||||||
# Note 2! The CFLAGS definition is now in the main makefile...
|
|
||||||
|
|
||||||
O_TARGET := kernel.o
|
|
||||||
ifeq ($(CONFIG_LIBGTOP),y)
|
|
||||||
O_OJBS := main.o libgtop.o
|
|
||||||
else
|
|
||||||
O_OBJS := main.o
|
|
||||||
endif
|
|
||||||
OX_OBJS := libgtop_syms.o
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_LIBGTOP),m)
|
|
||||||
M_OBJS := libgtop.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(TOPDIR)/Rules.make
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,242 +0,0 @@
|
|||||||
#ifndef _LINUX_LIBGTOP_H
|
|
||||||
#define _LINUX_LIBGTOP_H 1
|
|
||||||
|
|
||||||
#include <linux/tasks.h>
|
|
||||||
|
|
||||||
enum {
|
|
||||||
LIBGTOP_VERSION = 1,
|
|
||||||
LIBGTOP_UPDATE_EXPENSIVE,
|
|
||||||
LIBGTOP_STAT = 101,
|
|
||||||
LIBGTOP_MEM,
|
|
||||||
LIBGTOP_SWAP,
|
|
||||||
LIBGTOP_PROCLIST = 201,
|
|
||||||
LIBGTOP_PROC_STATE = 211,
|
|
||||||
LIBGTOP_PROC_KERNEL,
|
|
||||||
LIBGTOP_PROC_SEGMENT,
|
|
||||||
LIBGTOP_PROC_MEM,
|
|
||||||
LIBGTOP_PROC_SIGNAL,
|
|
||||||
LIBGTOP_PROC_ARGS = 251,
|
|
||||||
LIBGTOP_PROC_MAPS,
|
|
||||||
LIBGTOP_NETLOAD = 301
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
|
||||||
LIBGTOP_PROCLIST_ALL = 0,
|
|
||||||
LIBGTOP_PROCLIST_PID,
|
|
||||||
LIBGTOP_PROCLIST_PGRP,
|
|
||||||
LIBGTOP_PROCLIST_SESSION,
|
|
||||||
LIBGTOP_PROCLIST_TTY,
|
|
||||||
LIBGTOP_PROCLIST_UID,
|
|
||||||
LIBGTOP_PROCLIST_RUID
|
|
||||||
};
|
|
||||||
|
|
||||||
#define LIBGTOP_NSIG 4
|
|
||||||
|
|
||||||
#define LIBGTOP_PROCLIST_MASK 15
|
|
||||||
#define LIBGTOP_MAX_GROUPS 32
|
|
||||||
|
|
||||||
#define LIBGTOP_EXCLUDE_IDLE 0x1000
|
|
||||||
#define LIBGTOP_EXCLUDE_SYSTEM 0x2000
|
|
||||||
#define LIBGTOP_EXCLUDE_NOTTY 0x4000
|
|
||||||
|
|
||||||
#define LIBGTOP_TASK_RUNNING 1
|
|
||||||
#define LIBGTOP_TASK_INTERRUPTIBLE 2
|
|
||||||
#define LIBGTOP_TASK_UNINTERRUPTIBLE 4
|
|
||||||
#define LIBGTOP_TASK_ZOMBIE 8
|
|
||||||
#define LIBGTOP_TASK_STOPPED 16
|
|
||||||
#define LIBGTOP_TASK_SWAPPING 32
|
|
||||||
|
|
||||||
#define LIBGTOP_VM_READ 0x0001 /* currently active flags */
|
|
||||||
#define LIBGTOP_VM_WRITE 0x0002
|
|
||||||
#define LIBGTOP_VM_EXEC 0x0004
|
|
||||||
#define LIBGTOP_VM_SHARED 0x0008
|
|
||||||
|
|
||||||
#define LIBGTOP_VM_MAYREAD 0x0010 /* limits for mprotect() etc */
|
|
||||||
#define LIBGTOP_VM_MAYWRITE 0x0020
|
|
||||||
#define LIBGTOP_VM_MAYEXEC 0x0040
|
|
||||||
#define LIBGTOP_VM_MAYSHARE 0x0080
|
|
||||||
|
|
||||||
#define LIBGTOP_VM_GROWSDOWN 0x0100 /* general info on the segment */
|
|
||||||
#define LIBGTOP_VM_GROWSUP 0x0200
|
|
||||||
#define LIBGTOP_VM_SHM 0x0400 /* shared memory area, don't swap out */
|
|
||||||
#define LIBGTOP_VM_DENYWRITE 0x0800 /* ETXTBSY on write attempts.. */
|
|
||||||
|
|
||||||
#define LIBGTOP_VM_EXECUTABLE 0x1000
|
|
||||||
#define LIBGTOP_VM_LOCKED 0x2000
|
|
||||||
#define LIBGTOP_VM_IO 0x4000 /* Memory mapped I/O or similar */
|
|
||||||
|
|
||||||
#define LIBGTOP_MAP_PATH_LEN (PAGE_SIZE - sizeof (libgtop_proc_maps_header_t))
|
|
||||||
|
|
||||||
#ifndef min
|
|
||||||
#define min(a,b) ((a < b) ? a : b)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct libgtop_stat libgtop_stat_t;
|
|
||||||
|
|
||||||
typedef struct libgtop_cpu libgtop_cpu_t;
|
|
||||||
typedef struct libgtop_mem libgtop_mem_t;
|
|
||||||
typedef struct libgtop_swap libgtop_swap_t;
|
|
||||||
typedef struct libgtop_proclist libgtop_proclist_t;
|
|
||||||
|
|
||||||
typedef struct libgtop_proc_state libgtop_proc_state_t;
|
|
||||||
typedef struct libgtop_proc_kernel libgtop_proc_kernel_t;
|
|
||||||
typedef struct libgtop_proc_segment libgtop_proc_segment_t;
|
|
||||||
typedef struct libgtop_proc_mem libgtop_proc_mem_t;
|
|
||||||
typedef struct libgtop_proc_signal libgtop_proc_signal_t;
|
|
||||||
|
|
||||||
typedef struct libgtop_proc_maps_header libgtop_proc_maps_header_t;
|
|
||||||
typedef struct libgtop_proc_maps libgtop_proc_maps_t;
|
|
||||||
|
|
||||||
typedef struct libgtop_netload libgtop_netload_t;
|
|
||||||
|
|
||||||
struct libgtop_cpu
|
|
||||||
{
|
|
||||||
unsigned long total; /* Total CPU Time */
|
|
||||||
unsigned long user; /* CPU Time in User Mode */
|
|
||||||
unsigned long nice; /* CPU Time in User Mode (nice) */
|
|
||||||
unsigned long sys; /* CPU Time in System Mode */
|
|
||||||
unsigned long idle; /* CPU Time in the Idle Task */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_mem
|
|
||||||
{
|
|
||||||
unsigned long totalram; /* Total usable main memory size */
|
|
||||||
unsigned long freeram; /* Available memory size */
|
|
||||||
unsigned long sharedram; /* Amount of shared memory */
|
|
||||||
unsigned long bufferram; /* Memory used by buffers */
|
|
||||||
unsigned long cachedram;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_swap
|
|
||||||
{
|
|
||||||
unsigned long totalswap; /* Total swap space size */
|
|
||||||
unsigned long freeswap; /* swap space still available */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_proclist
|
|
||||||
{
|
|
||||||
int count;
|
|
||||||
int nr_running, nr_tasks, last_pid;
|
|
||||||
unsigned pids [NR_TASKS];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_stat
|
|
||||||
{
|
|
||||||
int ncpu; /* Number of CPUs */
|
|
||||||
unsigned long frequency; /* Tick frequency (HZ) */
|
|
||||||
libgtop_cpu_t cpu; /* CPU statistics */
|
|
||||||
libgtop_cpu_t xcpu [NR_CPUS]; /* SMP per-CPU statistics */
|
|
||||||
double loadavg [3]; /* Load average */
|
|
||||||
unsigned long total_forks; /* Total # of forks */
|
|
||||||
unsigned int context_swtch; /* Total # of context switches */
|
|
||||||
unsigned long boot_time; /* Boot time (seconds s. epoch) */
|
|
||||||
unsigned int pgpgin, pgpgout; /* # of pages paged in/out */
|
|
||||||
unsigned int pswpin, pswpout; /* # of swap pgs brought in/out */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_proc_state
|
|
||||||
{
|
|
||||||
long state;
|
|
||||||
unsigned long flags;
|
|
||||||
char comm [16];
|
|
||||||
int uid, euid, suid, fsuid;
|
|
||||||
int gid, egid, sgid, fsgid;
|
|
||||||
int pid, pgrp, ppid;
|
|
||||||
int session;
|
|
||||||
unsigned int tty;
|
|
||||||
int tpgid;
|
|
||||||
long priority, counter, def_priority;
|
|
||||||
long utime, stime, cutime, cstime, start_time;
|
|
||||||
long per_cpu_utime [NR_CPUS], per_cpu_stime [NR_CPUS];
|
|
||||||
int has_cpu, processor, last_processor;
|
|
||||||
|
|
||||||
unsigned long context;
|
|
||||||
unsigned long start_code, end_code, start_data, end_data;
|
|
||||||
unsigned long start_brk, brk, start_stack, start_mmap;
|
|
||||||
unsigned long arg_start, arg_end, env_start, env_end;
|
|
||||||
unsigned long rss, rlim, total_vm, locked_vm;
|
|
||||||
|
|
||||||
unsigned long policy, rt_priority;
|
|
||||||
unsigned long it_real_value, it_prof_value, it_virt_value;
|
|
||||||
unsigned long it_real_incr, it_prof_incr, it_virt_incr;
|
|
||||||
|
|
||||||
unsigned long keip, kesp;
|
|
||||||
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
|
|
||||||
unsigned long nswap, cnswap;
|
|
||||||
|
|
||||||
int ngroups, groups [LIBGTOP_MAX_GROUPS];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_proc_kernel
|
|
||||||
{
|
|
||||||
unsigned long wchan;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_proc_segment
|
|
||||||
{
|
|
||||||
unsigned long vsize, data, exec, stack, lib;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_proc_mem
|
|
||||||
{
|
|
||||||
libgtop_proc_segment_t segment;
|
|
||||||
int size, resident, share, trs, lrs, drs, dt;
|
|
||||||
unsigned long rss, rlim;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_proc_signal
|
|
||||||
{
|
|
||||||
unsigned long signal [LIBGTOP_NSIG];
|
|
||||||
unsigned long blocked [LIBGTOP_NSIG];
|
|
||||||
unsigned long ignore [LIBGTOP_NSIG];
|
|
||||||
unsigned long catch [LIBGTOP_NSIG];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_proc_maps_header
|
|
||||||
{
|
|
||||||
unsigned long start, end, offset, perm;
|
|
||||||
off_t filename_offset;
|
|
||||||
ino_t inode;
|
|
||||||
dev_t device;
|
|
||||||
} __attribute__ ((aligned (64)));
|
|
||||||
|
|
||||||
struct libgtop_proc_maps
|
|
||||||
{
|
|
||||||
libgtop_proc_maps_header_t header;
|
|
||||||
char filename [LIBGTOP_MAP_PATH_LEN];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct libgtop_netload
|
|
||||||
{
|
|
||||||
unsigned long rx_packets; /* total packets received */
|
|
||||||
unsigned long tx_packets; /* total packets transmitted */
|
|
||||||
unsigned long rx_bytes; /* total bytes received */
|
|
||||||
unsigned long tx_bytes; /* total bytes transmitted */
|
|
||||||
unsigned long rx_errors; /* bad packets received */
|
|
||||||
unsigned long tx_errors; /* packet transmit problems */
|
|
||||||
unsigned long rx_dropped; /* no space in linux buffers */
|
|
||||||
unsigned long tx_dropped; /* no space available in linux */
|
|
||||||
unsigned long multicast; /* multicast packets received */
|
|
||||||
unsigned long collisions;
|
|
||||||
|
|
||||||
/* detailed rx_errors: */
|
|
||||||
unsigned long rx_length_errors;
|
|
||||||
unsigned long rx_over_errors; /* receiver ring buff overflow */
|
|
||||||
unsigned long rx_crc_errors; /* recved pkt with crc error */
|
|
||||||
unsigned long rx_frame_errors; /* recv'd frame alignment error */
|
|
||||||
unsigned long rx_fifo_errors; /* recv'r fifo overrun */
|
|
||||||
unsigned long rx_missed_errors; /* receiver missed packet */
|
|
||||||
|
|
||||||
/* detailed tx_errors */
|
|
||||||
unsigned long tx_aborted_errors;
|
|
||||||
unsigned long tx_carrier_errors;
|
|
||||||
unsigned long tx_fifo_errors;
|
|
||||||
unsigned long tx_heartbeat_errors;
|
|
||||||
unsigned long tx_window_errors;
|
|
||||||
|
|
||||||
/* for cslip etc */
|
|
||||||
unsigned long rx_compressed;
|
|
||||||
unsigned long tx_compressed;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
* linux/libgtop/libgtop_syms.c
|
|
||||||
* Copyright (C) 1999 Martin Baulig
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/config.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
|
|
||||||
#include <linux/sched.h>
|
|
||||||
|
|
||||||
#include <linux/mm.h>
|
|
||||||
#include <linux/pagemap.h>
|
|
||||||
#include <linux/swap.h>
|
|
||||||
|
|
||||||
extern unsigned long total_forks;
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(task);
|
|
||||||
EXPORT_SYMBOL(init_mm);
|
|
||||||
EXPORT_SYMBOL(pidhash);
|
|
||||||
EXPORT_SYMBOL(avenrun);
|
|
||||||
EXPORT_SYMBOL(nr_running);
|
|
||||||
EXPORT_SYMBOL(nr_tasks);
|
|
||||||
EXPORT_SYMBOL(last_pid);
|
|
||||||
EXPORT_SYMBOL(total_forks);
|
|
||||||
EXPORT_SYMBOL(si_swapinfo);
|
|
||||||
|
|
||||||
extern void scheduling_functions_start_here(void);
|
|
||||||
extern void scheduling_functions_end_here(void);
|
|
||||||
EXPORT_SYMBOL(scheduling_functions_start_here);
|
|
||||||
EXPORT_SYMBOL(scheduling_functions_end_here);
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
/*
|
|
||||||
* linux/libgtop/main.c
|
|
||||||
* Copyright (C) 1999 Martin Baulig
|
|
||||||
*/
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
diff -ru linux-2.2.1/Makefile hacker/Makefile
|
|
||||||
--- linux-2.2.1/Makefile Sun Jan 31 22:45:42 1999
|
|
||||||
+++ hacker/Makefile Sun Mar 21 16:10:41 1999
|
|
||||||
@@ -109,6 +109,7 @@
|
|
||||||
DRIVERS =drivers/block/block.a \
|
|
||||||
drivers/char/char.a \
|
|
||||||
drivers/misc/misc.a
|
|
||||||
+EXTRAS =
|
|
||||||
LIBS =$(TOPDIR)/lib/lib.a
|
|
||||||
SUBDIRS =kernel drivers mm fs net ipc lib
|
|
||||||
|
|
||||||
@@ -186,6 +187,11 @@
|
|
||||||
DRIVERS := $(DRIVERS) drivers/net/irda/irda_drivers.a
|
|
||||||
endif
|
|
||||||
|
|
||||||
+ifdef CONFIG_LIBGTOP
|
|
||||||
+SUBDIRS := $(SUBDIRS) libgtop
|
|
||||||
+EXTRAS := $(EXTRAS) libgtop/kernel.o
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
include arch/$(ARCH)/Makefile
|
|
||||||
|
|
||||||
.S.s:
|
|
||||||
@@ -206,6 +212,7 @@
|
|
||||||
$(FILESYSTEMS) \
|
|
||||||
$(NETWORKS) \
|
|
||||||
$(DRIVERS) \
|
|
||||||
+ $(EXTRAS) \
|
|
||||||
$(LIBS) \
|
|
||||||
--end-group \
|
|
||||||
-o vmlinux
|
|
||||||
diff -ru linux-2.2.1/arch/i386/config.in hacker/arch/i386/config.in
|
|
||||||
--- linux-2.2.1/arch/i386/config.in Sun Jan 31 22:25:25 1999
|
|
||||||
+++ hacker/arch/i386/config.in Sat Mar 20 18:26:18 1999
|
|
||||||
@@ -84,6 +84,9 @@
|
|
||||||
bool 'System V IPC' CONFIG_SYSVIPC
|
|
||||||
bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
|
|
||||||
bool 'Sysctl support' CONFIG_SYSCTL
|
|
||||||
+if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
|
|
||||||
+ tristate 'LibGTop support' CONFIG_LIBGTOP
|
|
||||||
+fi
|
|
||||||
tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
|
|
||||||
tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
|
|
||||||
tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
|
|
||||||
diff -ru linux-2.2.1/include/linux/sysctl.h hacker/include/linux/sysctl.h
|
|
||||||
--- linux-2.2.1/include/linux/sysctl.h Sun Jan 31 22:24:14 1999
|
|
||||||
+++ hacker/include/linux/sysctl.h Sat Mar 20 19:12:54 1999
|
|
||||||
@@ -56,7 +56,8 @@
|
|
||||||
CTL_PROC=4, /* Process info */
|
|
||||||
CTL_FS=5, /* Filesystems */
|
|
||||||
CTL_DEBUG=6, /* Debugging */
|
|
||||||
- CTL_DEV=7 /* Devices */
|
|
||||||
+ CTL_DEV=7, /* Devices */
|
|
||||||
+ CTL_LIBGTOP=408 /* LibGTop */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
diff -ru linux-2.2.1/kernel/sysctl.c hacker/kernel/sysctl.c
|
|
||||||
--- linux-2.2.1/kernel/sysctl.c Sun Jan 31 22:24:43 1999
|
|
||||||
+++ hacker/kernel/sysctl.c Sat Mar 20 19:24:34 1999
|
|
||||||
@@ -82,7 +82,9 @@
|
|
||||||
static ctl_table fs_table[];
|
|
||||||
static ctl_table debug_table[];
|
|
||||||
static ctl_table dev_table[];
|
|
||||||
-
|
|
||||||
+#ifdef CONFIG_LIBGTOP
|
|
||||||
+extern ctl_table libgtop_table[];
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* /proc declarations: */
|
|
||||||
|
|
||||||
@@ -148,6 +150,9 @@
|
|
||||||
{CTL_FS, "fs", NULL, 0, 0555, fs_table},
|
|
||||||
{CTL_DEBUG, "debug", NULL, 0, 0555, debug_table},
|
|
||||||
{CTL_DEV, "dev", NULL, 0, 0555, dev_table},
|
|
||||||
+#ifdef CONFIG_LIBGTOP
|
|
||||||
+ {CTL_LIBGTOP, "libgtop", NULL, 0, 0555, libgtop_table},
|
|
||||||
+#endif
|
|
||||||
{0}
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
.deps
|
|
||||||
.libs
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
libgtop.la
|
|
||||||
*.lo
|
|
||||||
lib.c
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
INCLUDES = @INCLUDES@
|
|
||||||
|
|
||||||
lib_LTLIBRARIES = libgtop.la
|
|
||||||
|
|
||||||
libgtop_la_SOURCES = init.c open.c close.c command.c read.c \
|
|
||||||
read_data.c write.c lib.c parameter.c \
|
|
||||||
sysdeps.c
|
|
||||||
|
|
||||||
libgtop_la_LDFLAGS = $(LT_VERSION_INFO)
|
|
||||||
|
|
||||||
BUILT_SOURCES = lib.c
|
|
||||||
|
|
||||||
lib.c: lib.pl $(top_builddir)/config.h $(top_srcdir)/features.def
|
|
||||||
$(PERL) $(srcdir)/lib.pl < $(top_srcdir)/features.def > lib-t
|
|
||||||
mv lib-t lib.c
|
|
||||||
|
|
||||||
EXTRA_DIST = lib.pl
|
|
||||||
|
|
||||||
CLEANFILES = lib.c
|
|
||||||
|
|
||||||
50
lib/close.c
50
lib/close.c
@@ -1,50 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
#include <glibtop/command.h>
|
|
||||||
|
|
||||||
/* Closes server. */
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_close_r (glibtop *server)
|
|
||||||
{
|
|
||||||
switch (server->method) {
|
|
||||||
case GLIBTOP_METHOD_UNIX:
|
|
||||||
case GLIBTOP_METHOD_INET:
|
|
||||||
glibtop_call_l (server, GLIBTOP_CMND_QUIT,
|
|
||||||
0, NULL, 0, NULL);
|
|
||||||
|
|
||||||
if (close (server->socket))
|
|
||||||
glibtop_warn_io ("close");
|
|
||||||
|
|
||||||
break;
|
|
||||||
case GLIBTOP_METHOD_PIPE:
|
|
||||||
kill (server->pid, SIGKILL);
|
|
||||||
close (server->input [0]);
|
|
||||||
close (server->output [1]);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,77 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <glibtop/read.h>
|
|
||||||
#include <glibtop/write.h>
|
|
||||||
#include <glibtop/read_data.h>
|
|
||||||
|
|
||||||
#include <glibtop/command.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
void *
|
|
||||||
glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
|
|
||||||
const void *send_buf, size_t recv_size, void *recv_buf)
|
|
||||||
{
|
|
||||||
glibtop_command cmnd;
|
|
||||||
glibtop_response response;
|
|
||||||
|
|
||||||
glibtop_init_r (&server, 0, 0);
|
|
||||||
|
|
||||||
memset (&cmnd, 0, sizeof (glibtop_command));
|
|
||||||
|
|
||||||
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.size = send_size;
|
|
||||||
} else {
|
|
||||||
cmnd.data_size = send_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_write_l (server, sizeof (glibtop_command), &cmnd);
|
|
||||||
|
|
||||||
glibtop_read_l (server, sizeof (glibtop_response), &response);
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "RESPONSE: %lu - %d\n",
|
|
||||||
response.offset, response.data_size);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (recv_buf)
|
|
||||||
memcpy (recv_buf, ((char *) &response) + response.offset,
|
|
||||||
recv_size);
|
|
||||||
|
|
||||||
if (response.data_size) {
|
|
||||||
void *ptr = glibtop_malloc_r (server, response.data_size);
|
|
||||||
|
|
||||||
glibtop_read_l (server, response.data_size, ptr);
|
|
||||||
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
253
lib/init.c
253
lib/init.c
@@ -1,253 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#ifndef DEFAULT_PORT
|
|
||||||
#define DEFAULT_PORT 42800
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static glibtop _glibtop_global_server;
|
|
||||||
glibtop *glibtop_global_server = &_glibtop_global_server;
|
|
||||||
|
|
||||||
static void
|
|
||||||
_init_server (glibtop *server, const unsigned features)
|
|
||||||
{
|
|
||||||
char *command, *temp;
|
|
||||||
|
|
||||||
/* Try to get server command, but don't override if already
|
|
||||||
* set via glibtop_set_parameter () */
|
|
||||||
|
|
||||||
if (server->server_command == NULL) {
|
|
||||||
const char *temp = getenv ("LIBGTOP_SERVER") ?
|
|
||||||
getenv ("LIBGTOP_SERVER") : LIBGTOP_SERVER;
|
|
||||||
|
|
||||||
server->server_command = glibtop_strdup_r (server, temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (server->server_rsh == NULL) {
|
|
||||||
const char *temp = getenv ("LIBGTOP_RSH") ?
|
|
||||||
getenv ("LIBGTOP_RSH") : "/usr/bin/ssh";
|
|
||||||
|
|
||||||
server->server_rsh = glibtop_strdup_r (server, temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Try to get server method, but don't override if already
|
|
||||||
* set via glibtop_set_parameter () */
|
|
||||||
|
|
||||||
if (server->method) return;
|
|
||||||
|
|
||||||
/* If server->command doesn't start with a colon, then it is
|
|
||||||
* the full pathname of the server executable. */
|
|
||||||
|
|
||||||
if (server->server_command [0] != ':') {
|
|
||||||
if (features & glibtop_server_features) {
|
|
||||||
/* We really need the server. */
|
|
||||||
server->method = GLIBTOP_METHOD_PIPE;
|
|
||||||
} else {
|
|
||||||
/* Fine. No server is needed, so we call the
|
|
||||||
* sysdeps functions directly. */
|
|
||||||
server->method = GLIBTOP_METHOD_DIRECT;
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* If the first character of 'server_command' is a colon,
|
|
||||||
* the first field is the method to connect to the server. */
|
|
||||||
|
|
||||||
/* Everything up to the next colon is the method. */
|
|
||||||
|
|
||||||
command = glibtop_strdup_r (server, server->server_command+1);
|
|
||||||
temp = strstr (command, ":");
|
|
||||||
if (temp) *temp = 0;
|
|
||||||
|
|
||||||
/* Dispatch method. */
|
|
||||||
|
|
||||||
if (!strcmp (command, "direct")) {
|
|
||||||
/* Use sysdeps dir instead of connecting to server
|
|
||||||
* even if using the server would be required on
|
|
||||||
* the current system. */
|
|
||||||
server->method = GLIBTOP_METHOD_DIRECT;
|
|
||||||
|
|
||||||
} else if (!strcmp (command, "inet")) {
|
|
||||||
|
|
||||||
server->method = GLIBTOP_METHOD_INET;
|
|
||||||
|
|
||||||
/* Connect to internet server. */
|
|
||||||
|
|
||||||
if (temp == NULL) {
|
|
||||||
/* If no value was set, we use 'localhost'. */
|
|
||||||
if (server->server_host == NULL)
|
|
||||||
server->server_host = glibtop_strdup_r
|
|
||||||
(server, "localhost");
|
|
||||||
} else {
|
|
||||||
char *temp2 = strstr (temp+1, ":");
|
|
||||||
if (temp2) *temp2 = 0;
|
|
||||||
|
|
||||||
/* Override default. */
|
|
||||||
if (server->server_host)
|
|
||||||
glibtop_free_r (server,
|
|
||||||
(char *) server->server_host);
|
|
||||||
|
|
||||||
server->server_host = glibtop_strdup_r
|
|
||||||
(server, temp+1);
|
|
||||||
|
|
||||||
temp = temp2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (temp == NULL) {
|
|
||||||
/* If no value was set, we use DEFAULT_PORT. */
|
|
||||||
if (server->server_port == 0)
|
|
||||||
server->server_port = DEFAULT_PORT;
|
|
||||||
} else {
|
|
||||||
char *temp2 = strstr (temp+1, ":");
|
|
||||||
if (temp2) *temp2 = 0;
|
|
||||||
|
|
||||||
if (sscanf (temp+1, "%ld", &server->server_port) != 1)
|
|
||||||
server->server_port = DEFAULT_PORT;
|
|
||||||
|
|
||||||
temp = temp2 ? temp2 + 1 : temp2;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (!strcmp (command, "unix")) {
|
|
||||||
|
|
||||||
/* Connect to unix domain socket. */
|
|
||||||
server->method = GLIBTOP_METHOD_UNIX;
|
|
||||||
|
|
||||||
} else if (!strcmp (command, "pipe")) {
|
|
||||||
|
|
||||||
/* Open pipe to server. */
|
|
||||||
server->method = GLIBTOP_METHOD_PIPE;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
glibtop_error_r (server, "Unknown server method '%s'",
|
|
||||||
server->server_command+1);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop_free_r (server, command);
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop *
|
|
||||||
glibtop_init_r (glibtop **server_ptr, unsigned long features, unsigned flags)
|
|
||||||
{
|
|
||||||
glibtop *server;
|
|
||||||
|
|
||||||
if (server_ptr == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (*server_ptr == NULL)
|
|
||||||
*server_ptr = glibtop_global_server;
|
|
||||||
|
|
||||||
server = *server_ptr;
|
|
||||||
|
|
||||||
/* Should we do the initialization? */
|
|
||||||
|
|
||||||
if (flags & GLIBTOP_INIT_NO_INIT)
|
|
||||||
return server;
|
|
||||||
|
|
||||||
/* Do the initialization, but only if not already initialized. */
|
|
||||||
|
|
||||||
if ((server->flags & _GLIBTOP_INIT_STATE_INIT) == 0) {
|
|
||||||
if (flags & GLIBTOP_FEATURES_EXCEPT)
|
|
||||||
features = ~features & GLIBTOP_SYSDEPS_ALL;
|
|
||||||
|
|
||||||
if (features == 0)
|
|
||||||
features = GLIBTOP_SYSDEPS_ALL;
|
|
||||||
|
|
||||||
if (flags & GLIBTOP_FEATURES_NO_SERVER) {
|
|
||||||
server->method = GLIBTOP_METHOD_DIRECT;
|
|
||||||
features = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
server->features = features;
|
|
||||||
|
|
||||||
_init_server (server, features);
|
|
||||||
|
|
||||||
server->flags |= _GLIBTOP_INIT_STATE_INIT;
|
|
||||||
|
|
||||||
switch (server->method) {
|
|
||||||
case GLIBTOP_METHOD_PIPE:
|
|
||||||
case GLIBTOP_METHOD_UNIX:
|
|
||||||
if (glibtop_server_features & features)
|
|
||||||
break;
|
|
||||||
|
|
||||||
server->method = GLIBTOP_METHOD_DIRECT;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Should we open the server? */
|
|
||||||
|
|
||||||
if (flags & GLIBTOP_INIT_NO_OPEN)
|
|
||||||
return server;
|
|
||||||
|
|
||||||
/* Open server, but only if not already opened. */
|
|
||||||
|
|
||||||
if ((server->flags & _GLIBTOP_INIT_STATE_OPEN) == 0)
|
|
||||||
glibtop_open_l (glibtop_global_server, "glibtop",
|
|
||||||
features, flags);
|
|
||||||
|
|
||||||
return server;
|
|
||||||
}
|
|
||||||
|
|
||||||
glibtop *
|
|
||||||
glibtop_init_s (glibtop **server_ptr, unsigned long features, unsigned flags)
|
|
||||||
{
|
|
||||||
glibtop *server;
|
|
||||||
glibtop_init_func_t *init_fkt;
|
|
||||||
|
|
||||||
if (server_ptr == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (*server_ptr == NULL)
|
|
||||||
*server_ptr = glibtop_global_server;
|
|
||||||
|
|
||||||
server = *server_ptr;
|
|
||||||
|
|
||||||
/* Should we do the initialization? */
|
|
||||||
|
|
||||||
if (flags & GLIBTOP_INIT_NO_INIT)
|
|
||||||
return server;
|
|
||||||
|
|
||||||
/* Do the initialization, but only if not already initialized. */
|
|
||||||
|
|
||||||
if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) {
|
|
||||||
glibtop_open_s (server, "glibtop", features, flags);
|
|
||||||
|
|
||||||
for (init_fkt = _glibtop_init_hook_s; *init_fkt; init_fkt++)
|
|
||||||
(*init_fkt) (server);
|
|
||||||
|
|
||||||
server->sysdeps.pointer_size = sizeof (void*)*8;
|
|
||||||
|
|
||||||
server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS;
|
|
||||||
}
|
|
||||||
|
|
||||||
return server;
|
|
||||||
}
|
|
||||||
117
lib/inodedb.c
117
lib/inodedb.c
@@ -1,117 +0,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
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/error.h>
|
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
#include <glibtop/inodedb.h>
|
|
||||||
|
|
||||||
#include <pwd.h>
|
|
||||||
#include <gdbm.h>
|
|
||||||
|
|
||||||
#ifndef SYSTEM_INODEDB
|
|
||||||
#define SYSTEM_INODEDB "/usr/var/libgtop/inodedb.db"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glibtop_inodedb *
|
|
||||||
glibtop_inodedb_open_s (glibtop *server, unsigned databases,
|
|
||||||
unsigned long cachesize)
|
|
||||||
{
|
|
||||||
glibtop_inodedb *inodedb;
|
|
||||||
char filename [BUFSIZ];
|
|
||||||
struct passwd *pwd;
|
|
||||||
struct stat statb;
|
|
||||||
|
|
||||||
if (!databases)
|
|
||||||
databases = GLIBTOP_INODEDB_ALL;
|
|
||||||
|
|
||||||
inodedb = glibtop_calloc_r (server, 1, sizeof (glibtop_inodedb));
|
|
||||||
|
|
||||||
if (stat (SYSTEM_INODEDB, &statb))
|
|
||||||
databases &= ~GLIBTOP_INODEDB_SYSTEM;
|
|
||||||
|
|
||||||
if (databases & GLIBTOP_INODEDB_SYSTEM) {
|
|
||||||
inodedb->system_dbf = gdbm_open
|
|
||||||
(SYSTEM_INODEDB, 0, GDBM_READER, 0, 0);
|
|
||||||
if (!inodedb->system_dbf)
|
|
||||||
glibtop_error_io_r
|
|
||||||
(server, "gdbm_open (%s)", SYSTEM_INODEDB);
|
|
||||||
}
|
|
||||||
|
|
||||||
pwd = getpwuid (getuid ());
|
|
||||||
if (!pwd) glibtop_error_io_r (server, "getpwuid");
|
|
||||||
|
|
||||||
sprintf (filename, "%s/var/libgtop/inodedb.db", pwd->pw_dir);
|
|
||||||
|
|
||||||
if (stat (filename, &statb))
|
|
||||||
databases &= ~GLIBTOP_INODEDB_USER;
|
|
||||||
|
|
||||||
if (databases & GLIBTOP_INODEDB_USER) {
|
|
||||||
inodedb->user_dbf = gdbm_open
|
|
||||||
(filename, 0, GDBM_READER, 0, 0);
|
|
||||||
if (!inodedb->user_dbf)
|
|
||||||
glibtop_error_io_r
|
|
||||||
(server, "gdbm_open (%s)", filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
return inodedb;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
glibtop_inodedb_lookup_s (glibtop *server,
|
|
||||||
glibtop_inodedb *inodedb,
|
|
||||||
u_int64_t device, u_int64_t inode)
|
|
||||||
{
|
|
||||||
glibtop_inodedb_key key;
|
|
||||||
datum d_key, d_content;
|
|
||||||
|
|
||||||
d_key.dptr = (void *) &key;
|
|
||||||
d_key.dsize = sizeof (key);
|
|
||||||
|
|
||||||
key.device = device;
|
|
||||||
key.inode = inode;
|
|
||||||
|
|
||||||
if (inodedb->system_dbf) {
|
|
||||||
d_content = gdbm_fetch (inodedb->system_dbf, d_key);
|
|
||||||
if (d_content.dptr) return d_content.dptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (inodedb->user_dbf) {
|
|
||||||
d_content = gdbm_fetch (inodedb->user_dbf, d_key);
|
|
||||||
if (d_content.dptr) return d_content.dptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb)
|
|
||||||
{
|
|
||||||
if (inodedb->system_dbf)
|
|
||||||
gdbm_close (inodedb->system_dbf);
|
|
||||||
|
|
||||||
if (inodedb->user_dbf)
|
|
||||||
gdbm_close (inodedb->user_dbf);
|
|
||||||
|
|
||||||
glibtop_free_r (server, inodedb);
|
|
||||||
}
|
|
||||||
233
lib/lib.pl
233
lib/lib.pl
@@ -1,233 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
|
|
||||||
$[ = 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 $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
print '/* lib.c */';
|
|
||||||
print "/* This is a generated file. Please modify `lib.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/command.h>';
|
|
||||||
|
|
||||||
print '';
|
|
||||||
print '/* Some required fields are missing. */';
|
|
||||||
print '';
|
|
||||||
|
|
||||||
print 'static void';
|
|
||||||
print '_glibtop_missing_feature (glibtop *server, const char *feature,';
|
|
||||||
print "\t\t\t const u_int64_t present, u_int64_t *required)";
|
|
||||||
print '{';
|
|
||||||
print "\tu_int64_t old_required = *required;\n";
|
|
||||||
print "\t/* Return if we have all required fields. */";
|
|
||||||
print "\tif ((~present & old_required) == 0)";
|
|
||||||
print "\t\treturn;\n";
|
|
||||||
print "\tswitch (server->error_method) {";
|
|
||||||
print "\tcase GLIBTOP_ERROR_METHOD_WARN_ONCE:";
|
|
||||||
print "\t\t*required &= present;";
|
|
||||||
print "\tcase GLIBTOP_ERROR_METHOD_WARN:";
|
|
||||||
print "\t\tglibtop_warn_r (server,";
|
|
||||||
print "\t\t\t\t_(\"glibtop_get_%s (): Client requested \"";
|
|
||||||
print "\t\t\t\t \"field mask %05lx, but only have %05lx.\"),";
|
|
||||||
print "\t\t\t\t feature, (unsigned long) old_required,";
|
|
||||||
print "\t\t\t\t (unsigned long) present);";
|
|
||||||
print "\t\tbreak;";
|
|
||||||
print "\tcase GLIBTOP_ERROR_METHOD_ABORT:";
|
|
||||||
print "\t\tglibtop_error_r (server,";
|
|
||||||
print "\t\t\t\t _(\"glibtop_get_%s (): Client requested \"";
|
|
||||||
print "\t\t\t\t \"field mask %05lx, but only have %05lx.\"),";
|
|
||||||
print "\t\t\t\t feature, (unsigned long) old_required,";
|
|
||||||
print "\t\t\t\t (unsigned long) present);";
|
|
||||||
print "\t\tbreak;";
|
|
||||||
print "\t}";
|
|
||||||
print '}';
|
|
||||||
|
|
||||||
print '';
|
|
||||||
print '/* Library functions. */';
|
|
||||||
print '';
|
|
||||||
|
|
||||||
$convert{'long'} = 'int64_t';
|
|
||||||
$convert{'ulong'} = 'u_int64_t';
|
|
||||||
$convert{'pid_t'} = 'pid_t';
|
|
||||||
$convert{'int'} = 'int';
|
|
||||||
$convert{'ushort'} = 'unsigned short';
|
|
||||||
$convert{'unsigned'} = 'unsigned';
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
print $retval;
|
|
||||||
if ($retval !~ /^void$/) {
|
|
||||||
$prefix = 'retval = ';
|
|
||||||
$prefix_space = ' ';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$prefix = '';
|
|
||||||
$prefix_space = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($param_def eq 'string') {
|
|
||||||
$call_param = ', ' . $line_fields[5];
|
|
||||||
$param_decl = ",\n " . $space . ' const char *' .
|
|
||||||
|
|
||||||
$line_fields[5];
|
|
||||||
$send_ptr = "\n\tconst void *send_ptr = " . $line_fields[5] . ';';
|
|
||||||
$send_size = "\n\tconst size_t send_size =\n\t\tstrlen (" .
|
|
||||||
|
|
||||||
$line_fields[5] . ') + 1;';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$call_param = '';
|
|
||||||
$param_decl = '';
|
|
||||||
$send_size = '';
|
|
||||||
$send_ptr = '';
|
|
||||||
$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++) {
|
|
||||||
if ($param_decl eq '') {
|
|
||||||
$param_decl = ",\n " . $space . ' ';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$param_decl = $param_decl . ', ';
|
|
||||||
}
|
|
||||||
$param_decl = $param_decl . '' . $convert{$type} . ' ' .
|
|
||||||
|
|
||||||
$fields[$field];
|
|
||||||
$call_param = $call_param . ', ' . $fields[$field];
|
|
||||||
if ($send_ptr eq '') {
|
|
||||||
$send_ptr = "\n\tconst void *send_ptr = &" .
|
|
||||||
|
|
||||||
$fields[$field] . ';';
|
|
||||||
}
|
|
||||||
if ($send_size eq '') {
|
|
||||||
$send_size = "\n\tconst size_t send_size =\n\t\t";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$send_size = $send_size . ' + ';
|
|
||||||
}
|
|
||||||
$send_size = $send_size . 'sizeof (' . $fields[$field] . ')';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($send_size ne '') {
|
|
||||||
$send_size = $send_size . ';';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$send_size = "\n\tconst size_t send_size = 0;";
|
|
||||||
}
|
|
||||||
if ($send_ptr eq '') {
|
|
||||||
$send_ptr = "\n\tconst void *send_ptr = NULL;";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print 'glibtop_get_' . $feature . '_l (glibtop *server, glibtop_' .
|
|
||||||
|
|
||||||
$feature . ' *buf' . $param_decl . ')';
|
|
||||||
|
|
||||||
print '{' . $send_ptr . '' . $send_size;
|
|
||||||
if ($retval !~ /^void$/) {
|
|
||||||
print "\t" . $retval . ' retval = (' . $retval . ') 0;';
|
|
||||||
}
|
|
||||||
print '';
|
|
||||||
|
|
||||||
print "\tglibtop_init_r (&server, (1 << GLIBTOP_SYSDEPS_" .
|
|
||||||
|
|
||||||
&toupper($feature) . '), 0);';
|
|
||||||
|
|
||||||
print '';
|
|
||||||
print "\t/* If neccessary, we ask the server for the requested";
|
|
||||||
print "\t * feature. If not, we call the sysdeps function. */";
|
|
||||||
print '';
|
|
||||||
|
|
||||||
print "\tif ((server->flags & _GLIBTOP_INIT_STATE_SERVER) &&";
|
|
||||||
print "\t (server->features & (1 << GLIBTOP_SYSDEPS_" .
|
|
||||||
|
|
||||||
&toupper($feature) . ')))';
|
|
||||||
print "\t{";
|
|
||||||
|
|
||||||
print "\t\t" . $prefix . 'glibtop_call_l (server, GLIBTOP_CMND_' .
|
|
||||||
|
|
||||||
&toupper($feature) . ',';
|
|
||||||
print "\t\t\t\t" . $prefix_space . 'send_size, send_ptr,';
|
|
||||||
print "\t\t\t\t" . $prefix_space . 'sizeof (glibtop_' . $feature .
|
|
||||||
|
|
||||||
'), buf);';
|
|
||||||
|
|
||||||
print "\t} else {";
|
|
||||||
|
|
||||||
if ($orig !~ /^@/) {
|
|
||||||
print '#if (!GLIBTOP_SUID_' . &toupper($feature) . ')';
|
|
||||||
}
|
|
||||||
print "\t\t" . $prefix . 'glibtop_get_' . $feature . '_s (server, buf' .
|
|
||||||
|
|
||||||
$call_param . ');';
|
|
||||||
|
|
||||||
if ($orig !~ /^@/) {
|
|
||||||
print '#else';
|
|
||||||
print "\t\terrno = ENOSYS;";
|
|
||||||
print "\t\tglibtop_error_io_r (server, \"glibtop_get_" . $feature .
|
|
||||||
|
|
||||||
"\");";
|
|
||||||
print '#endif';
|
|
||||||
}
|
|
||||||
|
|
||||||
print "\t}";
|
|
||||||
|
|
||||||
print '';
|
|
||||||
print "\t/* Make sure that all required fields are present. */";
|
|
||||||
print '';
|
|
||||||
|
|
||||||
print "\tif (buf->flags & server->required." . $feature . ')';
|
|
||||||
print "\t\t_glibtop_missing_feature (server, \"" . $feature .
|
|
||||||
|
|
||||||
"\", buf->flags,";
|
|
||||||
print "\t\t\t\t\t &server->required." . $feature . ');';
|
|
||||||
|
|
||||||
if ($retval !~ /^void$/) {
|
|
||||||
print "\n\t/* Now we can return. */";
|
|
||||||
print "\n\treturn retval;";
|
|
||||||
}
|
|
||||||
|
|
||||||
print '}';
|
|
||||||
print '';
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user