Compare commits
889 Commits
LIBGTOP_2_
...
gnome-2-6
Author | SHA1 | Date | |
---|---|---|---|
|
df2efa95d8 | ||
|
f73649ea24 | ||
|
3bc207f6df | ||
|
6f4f70853d | ||
|
c73d0eb3c9 | ||
|
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 | ||
|
ebbeb1a058 | ||
|
afeb4d50a5 | ||
|
7fb4f43469 | ||
|
ca0cdbae5a | ||
|
879b173ae4 | ||
|
58b341ceec | ||
|
98981183d8 | ||
|
2747d6bd2a | ||
|
e76df47af0 | ||
|
04fbf58c18 | ||
|
10dcb079f7 | ||
|
8da7856780 | ||
|
78a6bcd553 | ||
|
66dd76be8f | ||
|
2174194bbd | ||
|
d58d11fa29 | ||
|
20bc40ac18 | ||
|
7881e4212f | ||
|
aaca4e7cd6 | ||
|
3250583253 | ||
|
be4c952542 | ||
|
5656ad7f6c | ||
|
ed3ab3d31d | ||
|
7c0f91b7f5 | ||
|
8619b3a79b | ||
|
f71e60619d | ||
|
3274a72cda | ||
|
c285171500 | ||
|
16156b8e27 | ||
|
56f34dd385 | ||
|
4d910a33fc | ||
|
e0ec7f5c67 | ||
|
886896137c | ||
|
e0a91cb479 | ||
|
bc51f8c734 | ||
|
a396e42fa8 | ||
|
009c491b9b | ||
|
9667d88e60 | ||
|
de68843eda | ||
|
cb52909ded | ||
|
52c9bb06c7 | ||
|
2957ec5b57 | ||
|
f384aae3a4 | ||
|
3a3899fda1 | ||
|
9cba48fbc9 | ||
|
86fbcede24 | ||
|
6e7ba4a9ca | ||
|
8f02d15fb9 | ||
|
cecae08c13 | ||
|
9152479981 | ||
|
2814206ffa | ||
|
a5c839da3a | ||
|
e3c3db72e2 | ||
|
1318d89456 | ||
|
68f97794bd | ||
|
9bd351abae | ||
|
60a6d0876e | ||
|
6b11b4b581 | ||
|
58cfb44e52 | ||
|
df3fb1c6fa | ||
|
71bda8b99d | ||
|
331e128116 | ||
|
69de36e70f | ||
|
b9cbea40e7 | ||
|
7654d547d7 | ||
|
995e9ffd47 | ||
|
11e6109a4a | ||
|
9e79025aef | ||
|
c1ea6cd689 | ||
|
4322ef4b37 | ||
|
e56d9e3fb0 | ||
|
833170d18c | ||
|
9ef8c5739b | ||
|
b8cdd9e090 | ||
|
cad4a8da0d | ||
|
432adade05 | ||
|
e9baa3543e | ||
|
d5c8af57f3 | ||
|
deeadb6648 | ||
|
f8f0ee6882 | ||
|
76be244662 | ||
|
d97a151695 | ||
|
c9dfc76155 | ||
|
506023c898 | ||
|
0e9245ba28 | ||
|
091811a4d6 | ||
|
18f4bccb37 | ||
|
37af4964cc | ||
|
f248d99d7a | ||
|
ca80d88a74 | ||
|
56765d966f | ||
|
d169afcafa | ||
|
1f4b738639 | ||
|
981668a56b | ||
|
b55257d0d3 | ||
|
ae6f746cf2 | ||
|
68e7b7a1d4 | ||
|
7b7071cf6d | ||
|
b1e908e6b6 | ||
|
f91050a7c7 | ||
|
e3f9aa526b | ||
|
7db0c756d6 | ||
|
c1bd844673 | ||
|
914354adb2 | ||
|
2ac4fb92c2 | ||
|
0c1dd954eb | ||
|
116767b8b8 | ||
|
3eb5394474 | ||
|
953f59195f | ||
|
309f3998d7 | ||
|
887c4013a0 | ||
|
f232ddcdcb | ||
|
bd0424ee7d | ||
|
62824e1537 | ||
|
36e7d3133b | ||
|
20c69951ab | ||
|
d9d8cdf043 | ||
|
29fba02b4a | ||
|
1954718e3f | ||
|
6712cae260 | ||
|
6ddf213d5d | ||
|
b700a17efa | ||
|
bedec591a2 | ||
|
2c4568119c | ||
|
efd8e2f343 | ||
|
f29793c868 | ||
|
e8bbb15f7e | ||
|
fdb2e5eb7b | ||
|
da58e7edb4 | ||
|
e81b8ba479 | ||
|
cfbe553724 | ||
|
17634e05d4 | ||
|
7d216d364e | ||
|
9e16f6e88c | ||
|
f23e8b3d1c | ||
|
04d988357f | ||
|
14ed950dad | ||
|
f107c34f82 | ||
|
9b5bfd33ef | ||
|
8fc6c79b6d | ||
|
2d838b9f09 | ||
|
c1649507e9 | ||
|
a246a6390f | ||
|
6a9317238a | ||
|
0a45542477 | ||
|
03be66c857 | ||
|
777c371be9 | ||
|
d8bb202fbd | ||
|
f0f9167682 | ||
|
6fbde2ea22 | ||
|
2378f459de | ||
|
1b4ae67f51 | ||
|
ec67c56cc7 | ||
|
393c1dba75 | ||
|
5b76314ef4 | ||
|
0ca2053a27 | ||
|
c2c209d19a | ||
|
de5137ff28 | ||
|
ffb4b0fade | ||
|
bfd03680cc | ||
|
82280b673e | ||
|
27dbd28c5c | ||
|
4d55985151 | ||
|
2635e545bf | ||
|
e8a3a40691 | ||
|
3a7d7778a0 | ||
|
437c7585cc | ||
|
507766bff6 | ||
|
74d11991ab | ||
|
217a1e92c6 | ||
|
83bc7b831d | ||
|
1071b2ee69 | ||
|
3753ac5ee6 | ||
|
6120c5e4a8 | ||
|
b252a80b7e | ||
|
d67182f411 | ||
|
fec8f23ad4 | ||
|
ab7f1cc3be | ||
|
3f65468299 | ||
|
333d0c5709 | ||
|
8c47939ad2 | ||
|
664d24f258 | ||
|
f8adb23062 | ||
|
a2a4b1d170 | ||
|
aa6f26f9fb | ||
|
fd2ddf8b50 | ||
|
0408c86065 | ||
|
e1555fc335 | ||
|
75141bdb65 | ||
|
3951c8863f | ||
|
bdc1579a9c | ||
|
8e1c6601af | ||
|
1c634bd736 | ||
|
2868191440 | ||
|
a567adcce5 | ||
|
5db1ee8fc4 | ||
|
a6729d9454 | ||
|
57f7039795 | ||
|
5c3775c6ee | ||
|
1cec9b70a2 | ||
|
eca34c37d9 | ||
|
58acfc4042 | ||
|
feab865203 | ||
|
754f09cdad | ||
|
fac354623b | ||
|
5967e6c3e4 | ||
|
174f316a62 | ||
|
c9651a012e | ||
|
3130d7db33 | ||
|
30af079f99 | ||
|
3ccae8efee | ||
|
5b946cb261 | ||
|
885045ca55 | ||
|
01d728ac6b | ||
|
f9e670f464 | ||
|
868e1677e3 | ||
|
84407de2aa | ||
|
7011b04cb2 | ||
|
ede4594dd9 | ||
|
3a7f02352a | ||
|
e2cb4ed031 | ||
|
24a1fe55bb | ||
|
66dddd9799 | ||
|
b3b2411cb7 | ||
|
eb71d82ecc | ||
|
298fc043ff | ||
|
63f678210a | ||
|
7a38246284 | ||
|
5390903a22 | ||
|
4b9e977fdc | ||
|
6a9a681559 | ||
|
a6e919767c | ||
|
290e9ac767 | ||
|
cd8ac36e9b | ||
|
3068969b51 | ||
|
e947e72169 | ||
|
86a53dbfc9 | ||
|
aa5c5c4553 | ||
|
1f93237ee3 | ||
|
3d248e9ad2 | ||
|
ec9aedea0b | ||
|
33021311b2 | ||
|
2a3d9e080a | ||
|
b528d0b1db | ||
|
a429e9c3f9 | ||
|
b90d2c1c90 | ||
|
27dc7ef79a | ||
|
76441b1d5f | ||
|
d2e3577784 | ||
|
4a0344182f | ||
|
ddc496cdaa | ||
|
746981611b | ||
|
c1beefce3a | ||
|
1667cc8a8d | ||
|
0aea46a643 | ||
|
820ab2210e | ||
|
f40e8a57b4 | ||
|
005357e821 | ||
|
5fcfc95280 | ||
|
dfc9e912b5 | ||
|
a6385288aa | ||
|
2f6457b3f7 | ||
|
ba2f0f753b | ||
|
38554dbcbe | ||
|
fe98fde338 | ||
|
c3ea69f26a | ||
|
367e1f047c | ||
|
7db1ed695c | ||
|
26b4615262 | ||
|
c4ccf53aad | ||
|
8fe9163e6b |
@@ -33,3 +33,9 @@ libgtop.spec
|
|||||||
libgtop*.tar.gz
|
libgtop*.tar.gz
|
||||||
*-debstamp
|
*-debstamp
|
||||||
libgtop*.pc
|
libgtop*.pc
|
||||||
|
autom4te.cache
|
||||||
|
COPYING
|
||||||
|
INSTALL
|
||||||
|
install-sh
|
||||||
|
missing
|
||||||
|
mkinstalldirs
|
||||||
|
517
ChangeLog
517
ChangeLog
@@ -1,8 +1,509 @@
|
|||||||
|
2004-10-27 Gora Mohanty <gmohanty@cvs.gnome.org>
|
||||||
|
|
||||||
|
* configure.in: Added 'or' to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2004-06-13 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: version 2.6.1
|
||||||
|
|
||||||
|
2004-06-13 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* include/glibtop/sysinfo.h: Changed get_sysinfo prototype so that it
|
||||||
|
returns a const pointer. Added missing macro.
|
||||||
|
|
||||||
|
2004-06-12 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* include/glibtop/fsusage.h: block_size is now defined as a guint32
|
||||||
|
instead of a fuzzy gint.
|
||||||
|
|
||||||
|
* lib/sysdeps.c: (glibtop_get_sysdeps_r): Small cleanup.
|
||||||
|
|
||||||
|
2004-06-12 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* lib/init.c: Added missing initializer.
|
||||||
|
|
||||||
|
2004-06-09 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* *.{c,h} : whitespace clean up.
|
||||||
|
|
||||||
|
2004-06-07 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* lib/parameter.c:
|
||||||
|
* support/popt.c: (poptGetContext): Cleaned.
|
||||||
|
|
||||||
|
* support/vsnprintf.c: s/strncpy/g_strlcpy
|
||||||
|
|
||||||
|
2004-05-28 Benoît Dejean <TazForEver@free.fr>
|
||||||
|
|
||||||
|
* examples/*: Added missing #include.
|
||||||
|
* ChangeLog: Converted to UTF-8.
|
||||||
|
|
||||||
|
2004-04-16 Iñaki Larrañaga <dooteo@euskalgnu.org>
|
||||||
|
|
||||||
|
* configure.in: Added "eu" (Basque) to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2004-04-09 Guntupalli Karunakar <karunakar@freedomink.org>
|
||||||
|
|
||||||
|
* configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2004-04-07 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* configure.in: version 2.6.0
|
||||||
|
|
||||||
|
2004-04-07 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* include/glibtop/fsusage.h: fix typo in the #defines for
|
||||||
|
FSUSAGE_BLOCK_SIZE (patch by Benoît Dejean <TazForEver@free.fr>)
|
||||||
|
|
||||||
|
2004-03-30 Adam Weinberger <adamw@gnome.org>
|
||||||
|
|
||||||
|
* configure.in: Added en_CA (Canadian English) to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2004-03-22 Gareth Owen <gowen72@yahoo.com>
|
||||||
|
|
||||||
|
* configure.in: Added en_GB to ALL_LINGUAS
|
||||||
|
|
||||||
|
2004-03-22 Guntupalli Karunakar <karunakar@freedomink.org>
|
||||||
|
|
||||||
|
* configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2004-03-15 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* include/glibtop/fsusage.h: set GLIBTOP_MAX_FSUSAGE properly,
|
||||||
|
use gint in the headers instead of int (Closes: #125049)
|
||||||
|
|
||||||
|
2004-03-11 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
|
* configure.in: Up versions etc.
|
||||||
|
* po/am.po: Update foo.
|
||||||
|
* po/ar.po:
|
||||||
|
* po/az.po:
|
||||||
|
* po/be.po:
|
||||||
|
* po/bg.po:
|
||||||
|
* po/bn.po:
|
||||||
|
* po/ca.po:
|
||||||
|
* po/cs.po:
|
||||||
|
* po/cy.po:
|
||||||
|
* po/da.po:
|
||||||
|
* po/de.po:
|
||||||
|
* po/el.po:
|
||||||
|
* po/es.po:
|
||||||
|
* po/et.po:
|
||||||
|
* po/fa.po:
|
||||||
|
* po/fi.po:
|
||||||
|
* po/fr.po:
|
||||||
|
* po/ga.po:
|
||||||
|
* po/gl.po:
|
||||||
|
* po/he.po:
|
||||||
|
* po/hi.po:
|
||||||
|
* po/hr.po:
|
||||||
|
* po/hu.po:
|
||||||
|
* po/id.po:
|
||||||
|
* po/it.po:
|
||||||
|
* po/ja.po:
|
||||||
|
* po/ko.po:
|
||||||
|
* po/lt.po:
|
||||||
|
* po/lv.po:
|
||||||
|
* po/mk.po:
|
||||||
|
* po/ml.po:
|
||||||
|
* po/mn.po:
|
||||||
|
* po/ms.po:
|
||||||
|
* po/nl.po:
|
||||||
|
* po/nn.po:
|
||||||
|
* po/no.po:
|
||||||
|
* po/pl.po:
|
||||||
|
* po/pt.po:
|
||||||
|
* po/pt_BR.po:
|
||||||
|
* po/ro.po:
|
||||||
|
* po/ru.po:
|
||||||
|
* po/sk.po:
|
||||||
|
* po/sl.po:
|
||||||
|
* po/sq.po:
|
||||||
|
* po/sr.po:
|
||||||
|
* po/sr@Latn.po:
|
||||||
|
* po/sv.po:
|
||||||
|
* po/ta.po:
|
||||||
|
* po/tr.po:
|
||||||
|
* po/uk.po:
|
||||||
|
* po/vi.po:
|
||||||
|
* po/zh_CN.po:
|
||||||
|
* po/zh_TW.po:
|
||||||
|
|
||||||
|
2004-03-11 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* NEWS: update the NEWS file for the release
|
||||||
|
|
||||||
|
2004-03-11 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* include/Makefile.am: fix distchecking
|
||||||
|
|
||||||
|
2003-12-27 Ole Laursen <olau@hardworking.dk>
|
||||||
|
|
||||||
|
* include/glibtop/fsusage.h: Added block_size field. (Closes: #125049)
|
||||||
|
|
||||||
|
2004-03-05 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* include/glibtop/procmap.h: patch by Benoit Dejean <bnet@ifrance.com>
|
||||||
|
to break the API, I mean, to make it easier to generate Python bindings
|
||||||
|
(Closes: #129701)
|
||||||
|
|
||||||
|
2004-03-04 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* configure.in:
|
||||||
|
* include/libgtop-i18n.h:
|
||||||
|
* lib/lib.pl:
|
||||||
|
* lib/read.c:
|
||||||
|
* lib/read_data.c:
|
||||||
|
* lib/write.c:
|
||||||
|
* sysdeps/names/cpu.c:
|
||||||
|
* sysdeps/names/fsusage.c:
|
||||||
|
* sysdeps/names/loadavg.c:
|
||||||
|
* sysdeps/names/mem.c:
|
||||||
|
* sysdeps/names/mountlist.c:
|
||||||
|
* sysdeps/names/msg_limits.c:
|
||||||
|
* sysdeps/names/netload.c:
|
||||||
|
* sysdeps/names/ppp.c:
|
||||||
|
* sysdeps/names/procargs.c:
|
||||||
|
* sysdeps/names/prockernel.c:
|
||||||
|
* sysdeps/names/proclist.c:
|
||||||
|
* sysdeps/names/procmap.c:
|
||||||
|
* sysdeps/names/procmem.c:
|
||||||
|
* sysdeps/names/procsegment.c:
|
||||||
|
* sysdeps/names/procsignal.c:
|
||||||
|
* sysdeps/names/procstate.c:
|
||||||
|
* sysdeps/names/proctime.c:
|
||||||
|
* sysdeps/names/procuid.c:
|
||||||
|
* sysdeps/names/sem_limits.c:
|
||||||
|
* sysdeps/names/shm_limits.c:
|
||||||
|
* sysdeps/names/swap.c:
|
||||||
|
* sysdeps/names/sysdeps.c:
|
||||||
|
* sysdeps/names/uptime.c: remove dependency on libgnome,
|
||||||
|
check for linux/isdn.h for distros using the 2.6 kernel headers
|
||||||
|
|
||||||
|
2004-02-07 Kevin Vandersloot
|
||||||
|
|
||||||
|
* configure.in: release 2.5.1
|
||||||
|
|
||||||
|
2004-02-02 Sebastien Bacher <seb128@debian.org>
|
||||||
|
|
||||||
|
* sysdeps/linux/mem.c: (glibtop_get_mem_s): patch from
|
||||||
|
Benoît Dejean <bnet@ifrance.com> to fix libtop_mem.used
|
||||||
|
and glibtop_mem.shared values (Closes: #129863).
|
||||||
|
|
||||||
|
Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
|
||||||
|
|
||||||
|
* libgtop-2.0.pc.in: Should be -lgtop-2.0, #130506
|
||||||
|
|
||||||
|
2004-01-05 Frederic Crozat <fcrozat@mandrakesoft.com>
|
||||||
|
|
||||||
|
* libgtop.spec.in: License is GPL, not LGPL.
|
||||||
|
|
||||||
|
2004-01-05 Malcolm Tredinnick <malcolm@commsecure.com.au>
|
||||||
|
|
||||||
|
* libgtop-2.0.pc.in: Include -lgtop in the linking flags.
|
||||||
|
Bug #130506.
|
||||||
|
|
||||||
|
2004-01-03 Robert Sedak <robert.sedak@sk.htnet.hr>
|
||||||
|
|
||||||
|
* configure.in: Added "hr" in ALL_LINGUAS.
|
||||||
|
|
||||||
|
2003-12-22 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* acinclude.m4:
|
||||||
|
* configure.in: remove linking to libgtop and checks for 64-bit
|
||||||
|
integer bytes (fixes warning on build on glib 2.0 systems)
|
||||||
|
|
||||||
|
2003-11-02 ÄÅygimantas BeruÃÂka <uid0@tuxfamily.org>
|
||||||
|
|
||||||
|
* configure.in: Added "lt" to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2003-10-21 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* Makefile.am:
|
||||||
|
* configure.in:
|
||||||
|
* src/inodedb/.cvsignore:
|
||||||
|
* sysdeps/names/Makefile.am:
|
||||||
|
install only one library, libgtop-2.0
|
||||||
|
Fix build-time warnings due to the redefinition of guint64
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* lib/read.c: (glibtop_read_l):
|
||||||
|
* lib/read_data.c: (glibtop_read_data_l):
|
||||||
|
* lib/write.c: (glibtop_write_l): apply patch for ngettext support
|
||||||
|
by Christian Neumair <chris@gnome-de.org>
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* include/glibtop/cpu.h:
|
||||||
|
* include/glibtop/procstate.h:
|
||||||
|
* include/glibtop/procuid.h:
|
||||||
|
* include/glibtop/uptime.h:
|
||||||
|
* lib/sysdeps.c:
|
||||||
|
* sysdeps/names/cpu.c:
|
||||||
|
* sysdeps/names/procstate.c:
|
||||||
|
* sysdeps/names/procuid.c:
|
||||||
|
* sysdeps/names/uptime.c: Apply patch by the_h1ghlander@yahoo.com and
|
||||||
|
Cory Omand <cory.omand@Sun.com> for Solaris support
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* src/inodedb/Makefile.am: link to libgtop_suid_common-2.0.la
|
||||||
|
(Closes: #107990)
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* acconfig.h:
|
||||||
|
* acinclude.m4:
|
||||||
|
* include/glibtop/array.h:
|
||||||
|
* include/glibtop/command.h:
|
||||||
|
* include/glibtop/cpu.h:
|
||||||
|
* include/glibtop/fsusage.h:
|
||||||
|
* include/glibtop/glibtop-backend-info.h:
|
||||||
|
* include/glibtop/glibtop-backend.h:
|
||||||
|
* include/glibtop/glibtop-client.h:
|
||||||
|
* include/glibtop/inodedb.h:
|
||||||
|
* include/glibtop/interfaces.h:
|
||||||
|
* include/glibtop/limits.h:
|
||||||
|
* include/glibtop/loadavg.h:
|
||||||
|
* include/glibtop/mem.h:
|
||||||
|
* include/glibtop/mountlist.h:
|
||||||
|
* include/glibtop/msg_limits.h:
|
||||||
|
* include/glibtop/netinfo.h:
|
||||||
|
* include/glibtop/netload.h:
|
||||||
|
* include/glibtop/ppp.h:
|
||||||
|
* include/glibtop/procargs.h:
|
||||||
|
* include/glibtop/proccwd.h:
|
||||||
|
* include/glibtop/prockernel.h:
|
||||||
|
* include/glibtop/proclist.h:
|
||||||
|
* include/glibtop/procmap.h:
|
||||||
|
* include/glibtop/procmem.h:
|
||||||
|
* include/glibtop/procsegment.h:
|
||||||
|
* include/glibtop/procsignal.h:
|
||||||
|
* include/glibtop/procstate.h:
|
||||||
|
* include/glibtop/proctime.h:
|
||||||
|
* include/glibtop/procuid.h:
|
||||||
|
* include/glibtop/sem_limits.h:
|
||||||
|
* include/glibtop/shm_limits.h:
|
||||||
|
* include/glibtop/swap.h:
|
||||||
|
* include/glibtop/sysdeps.h:
|
||||||
|
* include/glibtop/sysinfo.h:
|
||||||
|
* include/glibtop/uptime.h:
|
||||||
|
* lib/glibtop-backend.c: (glibtop_backend_get):
|
||||||
|
* lib/glibtop-client.c: (glibtop_client_open_backend):
|
||||||
|
* lib/inodedb.c: (glibtop_inodedb_lookup_s):
|
||||||
|
* lib/lib.pl:
|
||||||
|
* src/inodedb/README.inodedb:
|
||||||
|
* src/inodedb/mkinodedb2.c: (main): s/u_int64_t/guint64/
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* Makefile.am: fix distchecking, release 2.5.0
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* configure.in: fix the library versioning to be hand-made rather
|
||||||
|
than uber-calculated from some esoteric numbers
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* glibtop.h:
|
||||||
|
* include/glibtop/close.h:
|
||||||
|
* include/glibtop/command.h:
|
||||||
|
* include/glibtop/cpu.h:
|
||||||
|
* include/glibtop/error.h:
|
||||||
|
* include/glibtop/fsusage.h:
|
||||||
|
* include/glibtop/global.h:
|
||||||
|
* include/glibtop/inodedb.h:
|
||||||
|
* include/glibtop/loadavg.h:
|
||||||
|
* include/glibtop/mem.h:
|
||||||
|
* include/glibtop/mountlist.h:
|
||||||
|
* include/glibtop/msg_limits.h:
|
||||||
|
* include/glibtop/netload.h:
|
||||||
|
* include/glibtop/open.h:
|
||||||
|
* include/glibtop/parameter.h:
|
||||||
|
* include/glibtop/ppp.h:
|
||||||
|
* include/glibtop/procargs.h:
|
||||||
|
* include/glibtop/prockernel.h:
|
||||||
|
* include/glibtop/proclist.h:
|
||||||
|
* include/glibtop/procmap.h:
|
||||||
|
* include/glibtop/procmem.h:
|
||||||
|
* include/glibtop/procsegment.h:
|
||||||
|
* include/glibtop/procsignal.h:
|
||||||
|
* include/glibtop/procstate.h:
|
||||||
|
* include/glibtop/proctime.h:
|
||||||
|
* include/glibtop/procuid.h:
|
||||||
|
* include/glibtop/read.h:
|
||||||
|
* include/glibtop/read_data.h:
|
||||||
|
* include/glibtop/sem_limits.h:
|
||||||
|
* include/glibtop/shm_limits.h:
|
||||||
|
* include/glibtop/signal.h:
|
||||||
|
* include/glibtop/swap.h:
|
||||||
|
* include/glibtop/sysdeps.h:
|
||||||
|
* include/glibtop/sysinfo.h:
|
||||||
|
* include/glibtop/types.h:
|
||||||
|
* include/glibtop/union.h:
|
||||||
|
* include/glibtop/uptime.h:
|
||||||
|
* include/glibtop/version.h:
|
||||||
|
* include/glibtop/write.h:
|
||||||
|
* lib/Makefile.am:
|
||||||
|
* lib/command.c: (glibtop_call_l):
|
||||||
|
* lib/init.c:
|
||||||
|
* lib/inodedb.c:
|
||||||
|
* lib/lib.pl:
|
||||||
|
* lib/open.c:
|
||||||
|
* lib/read.c:
|
||||||
|
* lib/read_data.c: (glibtop_read_data_l):
|
||||||
|
* lib/structures.pl:
|
||||||
|
* lib/write.c:
|
||||||
|
* sysdeps/names/cpu.c:
|
||||||
|
* sysdeps/names/fsusage.c:
|
||||||
|
* sysdeps/names/loadavg.c:
|
||||||
|
* sysdeps/names/mem.c:
|
||||||
|
* sysdeps/names/mountlist.c:
|
||||||
|
* sysdeps/names/msg_limits.c:
|
||||||
|
* sysdeps/names/netinfo.c:
|
||||||
|
* sysdeps/names/netload.c:
|
||||||
|
* sysdeps/names/ppp.c:
|
||||||
|
* sysdeps/names/procargs.c:
|
||||||
|
* sysdeps/names/proccwd.c:
|
||||||
|
* sysdeps/names/prockernel.c:
|
||||||
|
* sysdeps/names/proclist.c:
|
||||||
|
* sysdeps/names/procmap.c:
|
||||||
|
* sysdeps/names/procmem.c:
|
||||||
|
* sysdeps/names/procsegment.c:
|
||||||
|
* sysdeps/names/procsignal.c:
|
||||||
|
* sysdeps/names/procstate.c:
|
||||||
|
* sysdeps/names/proctime.c:
|
||||||
|
* sysdeps/names/procuid.c:
|
||||||
|
* sysdeps/names/sem_limits.c:
|
||||||
|
* sysdeps/names/shm_limits.c:
|
||||||
|
* sysdeps/names/swap.c:
|
||||||
|
* sysdeps/names/sysdeps.c:
|
||||||
|
* sysdeps/names/uptime.c: fixed compilation
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* RELNOTES-0.25: removed
|
||||||
|
* RELNOTES-1.0: removed
|
||||||
|
* RELNOTES-1.0.x: removed
|
||||||
|
* RELNOTES-1.1.x: removed
|
||||||
|
* include/glibtop/Makefile.am:
|
||||||
|
* include/glibtop/xmalloc.h: removed xmalloc.h
|
||||||
|
* lib/command.c: (glibtop_call_l):
|
||||||
|
* lib/init.c: (_init_server):
|
||||||
|
* lib/inodedb.c: (glibtop_inodedb_open_s),
|
||||||
|
(glibtop_inodedb_close_s):
|
||||||
|
* lib/read_data.c: (glibtop_read_data_l):
|
||||||
|
* lib/xmalloc.c: removed xmalloc.h
|
||||||
|
replace all the xmalloc crap by glib memory management functions
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* lib/Makefile.am:
|
||||||
|
* libgtop-config.in:
|
||||||
|
* libgtop.spec.in:
|
||||||
|
* libgtopConf.sh.in:
|
||||||
|
* src/inodedb/Makefile.am: removed traces of guile, intllibs and
|
||||||
|
libgnomesupport
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* .cvsignore: updated
|
||||||
|
* configure.in: removed all traces of guile stuff
|
||||||
|
* sysdeps/guile/.cvsignore: removed
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* sysdeps/Makefile.am:
|
||||||
|
* sysdeps/guile/ChangeLog:
|
||||||
|
* sysdeps/guile/Makefile.am:
|
||||||
|
* sysdeps/guile/guile.pl:
|
||||||
|
* sysdeps/guile/names/.cvsignore:
|
||||||
|
* sysdeps/guile/names/Makefile.am:
|
||||||
|
* sysdeps/guile/names/guile-names.pl: removed guile
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* Makefile.am:
|
||||||
|
* configure.in: remove guile and libgnome-support stuff
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* configure.in: make it compile
|
||||||
|
|
||||||
|
2003-10-19 Carlos PerellÄÅ MarÄÂn <carlos@gnome.org>
|
||||||
|
|
||||||
|
* support/*: Reverted libgtop changes. It's a common module
|
||||||
|
and I should not modify it.
|
||||||
|
* Added/removed files. Now the move should be done.
|
||||||
|
|
||||||
|
2003-10-19 Carlos PerellÄÅ MarÄÂn <carlos@gnome.org>
|
||||||
|
|
||||||
|
* libgtop-GNOME-2-0-branch moved to HEAD.
|
||||||
|
|
||||||
|
2003-09-30 Laurent Dhima <laurenti@alblinux.net>
|
||||||
|
|
||||||
|
* configure.in: Added "sq" to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2003-09-17 Fatih Demir <kabalak@gtranslator.org>
|
||||||
|
|
||||||
|
* configure.in: Added "ta" (Tamil) to the languages' list.
|
||||||
|
|
||||||
|
2003-09-13 Carlos PerellÄÅ MarÄÂn <carlos@gnome.org>
|
||||||
|
|
||||||
|
* configure.in (ALL_LINGUAS): Removed es_ES.
|
||||||
|
|
||||||
|
2003-09-08 Kevin Vandersloot
|
||||||
|
|
||||||
|
* configure.in: release 2.0.5
|
||||||
|
|
||||||
|
2003-09-06 Taneem Ahmed <taneem@bengalinux.org>
|
||||||
|
|
||||||
|
* configure.in: Added "bn" to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2003-08-24 Kevin Vandersloot
|
||||||
|
|
||||||
|
* configure.in: release 2.0.4
|
||||||
|
|
||||||
|
2003-08-13 Guntupalli Karunakar <karunakar@freedomink.org>
|
||||||
|
|
||||||
|
* configure.in: Added "hi" (Hindi) in ALL_LINGUAS.
|
||||||
|
|
||||||
|
2003-08-13 Andrew Sobala <aes@gnome.org>
|
||||||
|
|
||||||
|
* configure.in: release 2.0.3
|
||||||
|
|
||||||
|
2003-08-09 Dafydd Harries <daf@parnassus.ath.cx>
|
||||||
|
|
||||||
|
* configure.in: Added "cy" (Welsh) to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2003-08-03 Malcolm Tredinnick <malcolm@commsecure.com.au>
|
||||||
|
|
||||||
|
* Makefile.am: Change subdirectory build order so that
|
||||||
|
'distclean' target work (and other targets remain working).
|
||||||
|
Fixes bug #84622.
|
||||||
|
|
||||||
|
2003-06-10 Kjartan Maraas <set EMAIL_ADDRESS environment variable>
|
||||||
|
|
||||||
|
* libgtop-2.0.pc.in: Fix missing build flags. Patch from
|
||||||
|
Julio Merino. Fixes bug #103086.
|
||||||
|
* sysdeps/linux/mem.c: (glibtop_get_mem_s): Fix memory calculation
|
||||||
|
under Linux. Patch from <rwahl@gmx.de>. Fixes bug #68626.
|
||||||
|
|
||||||
|
2003-06-10 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
|
* sysdeps/freebsd/glibtop_machine.h:
|
||||||
|
* sysdeps/kernel/glibtop_private.h:
|
||||||
|
* sysdeps/solaris/glibtop_machine.h:
|
||||||
|
* sysdeps/solaris/glibtop_private.h: Comment out text after
|
||||||
|
#endif to make some compilers happy.
|
||||||
|
|
||||||
2003-05-11 Andrew Sobala <aes@gnome.org>
|
2003-05-11 Andrew Sobala <aes@gnome.org>
|
||||||
|
|
||||||
* configure.in: release 2.0.2
|
* configure.in: release 2.0.2
|
||||||
|
|
||||||
2003-05-10 Danilo Šegan <dsegan@gmx.net>
|
2003-05-10 Danilo ÄÂ egan <dsegan@gmx.net>
|
||||||
|
|
||||||
* configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
|
* configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
|
||||||
|
|
||||||
@@ -22,7 +523,7 @@
|
|||||||
|
|
||||||
* configure.in: Added he to ALL_LINGUAS.
|
* configure.in: Added he to ALL_LINGUAS.
|
||||||
|
|
||||||
2003-02-25 T?µivo Leedj?¤rv <toivo@linux.ee>
|
2003-02-25 T?Ãâivo Leedj?Ãâ¬rv <toivo@linux.ee>
|
||||||
|
|
||||||
* configure.in: Added et to ALL_LINGUAS.
|
* configure.in: Added et to ALL_LINGUAS.
|
||||||
|
|
||||||
@@ -726,7 +1227,7 @@
|
|||||||
1998-10-20 Martin Baulig <martin@home-of-linux.org>
|
1998-10-20 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
* include/glibtop/proc_signal.h: Use a 2-element-array of
|
* include/glibtop/proc_signal.h: Use a 2-element-array of
|
||||||
type `u_int64_t' for all signal masks instead of just
|
type `guint64' for all signal masks instead of just
|
||||||
scalar numbers. This avoids problems on systems with more
|
scalar numbers. This avoids problems on systems with more
|
||||||
than 64 signals.
|
than 64 signals.
|
||||||
|
|
||||||
@@ -736,7 +1237,7 @@
|
|||||||
|
|
||||||
[NOTE for people porting libgtop:
|
[NOTE for people porting libgtop:
|
||||||
|
|
||||||
Please use all 64 bits of the `u_int64_t' and not just 32 - the
|
Please use all 64 bits of the `guint64' and not just 32 - the
|
||||||
signal number (as it is used in calls to kill () ...) should be
|
signal number (as it is used in calls to kill () ...) should be
|
||||||
a bit-index into this field; if a process ignores for instance
|
a bit-index into this field; if a process ignores for instance
|
||||||
signal 64, it has the 0-bit of sigcatch[1] set, if it ignores 63,
|
signal 64, it has the 0-bit of sigcatch[1] set, if it ignores 63,
|
||||||
@@ -876,7 +1377,7 @@
|
|||||||
* include/glibtop/command.h (glibtop_call): Third argument is
|
* include/glibtop/command.h (glibtop_call): Third argument is
|
||||||
now `const void *'.
|
now `const void *'.
|
||||||
|
|
||||||
* include/glibtop/xmalloc.h (glibtop_free): Now taking a
|
* include/glibtop/xmalloc.h (g_free): Now taking a
|
||||||
`const void *'.
|
`const void *'.
|
||||||
|
|
||||||
1998-08-25 Martin Baulig <martin@home-of-linux.org>
|
1998-08-25 Martin Baulig <martin@home-of-linux.org>
|
||||||
@@ -1077,14 +1578,14 @@
|
|||||||
|
|
||||||
1998-07-30 Martin Baulig <martin@home-of-linux.org>
|
1998-07-30 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
* acconfig.h (u_int64_t, int64_t): Added.
|
* acconfig.h (guint64, int64_t): Added.
|
||||||
|
|
||||||
* lib/lib.awk: Using correct `(1 << GLIBTOP_SYSDEPS_<feature>)'
|
* lib/lib.awk: Using correct `(1 << GLIBTOP_SYSDEPS_<feature>)'
|
||||||
in call to `glibtop_init_r'.
|
in call to `glibtop_init_r'.
|
||||||
|
|
||||||
* configure.in (GNOME_LIBGTOP_TYPES): New check.
|
* configure.in (GNOME_LIBGTOP_TYPES): New check.
|
||||||
|
|
||||||
* include/glibtop/*.h: Using `u_int64_t' instead of `unsigned long'
|
* include/glibtop/*.h: Using `guint64' instead of `unsigned long'
|
||||||
and `long' to avoid problems when client is on a 32bit system and
|
and `long' to avoid problems when client is on a 32bit system and
|
||||||
the server on a 64bit system.
|
the server on a 64bit system.
|
||||||
|
|
||||||
@@ -1462,7 +1963,7 @@
|
|||||||
|
|
||||||
* glibtop.h (_glibtop): New field `server_port'.
|
* glibtop.h (_glibtop): New field `server_port'.
|
||||||
|
|
||||||
* lib/xmalloc.c (glibtop_strdup_r): New function.
|
* lib/xmalloc.c (g_strdup): New function.
|
||||||
|
|
||||||
* lib/gnuclient.c: Removed.
|
* lib/gnuclient.c: Removed.
|
||||||
|
|
||||||
|
2
MAINTAINERS
Normal file
2
MAINTAINERS
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Email: martin@home-of-linux.org
|
||||||
|
Email: dave@srce.hr
|
81
Makefile.am
81
Makefile.am
@@ -1,93 +1,20 @@
|
|||||||
## Process this file with automake to produce Makefile.in.
|
|
||||||
|
|
||||||
if EXAMPLES
|
SUBDIRS = po misc include sysdeps lib src examples doc
|
||||||
examples_SUBDIRS = examples
|
|
||||||
else
|
|
||||||
examples_SUBDIRS =
|
|
||||||
endif
|
|
||||||
|
|
||||||
if BUILD_GNOME_SUPPORT
|
|
||||||
support = support
|
|
||||||
endif
|
|
||||||
|
|
||||||
SUBDIRS = po $(support) misc include sysdeps lib src \
|
|
||||||
$(examples_SUBDIRS) doc
|
|
||||||
|
|
||||||
libgtopinclude_HEADERS = glibtop.h
|
libgtopinclude_HEADERS = glibtop.h
|
||||||
libgtopincludedir = $(includedir)/libgtop-2.0
|
libgtopincludedir = $(includedir)/libgtop-2.0
|
||||||
|
|
||||||
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt libgtopConf.sh.in \
|
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \
|
||||||
LIBGTOP-VERSION features.def libgtop-config.in RELNOTES-0.25 \
|
LIBGTOP-VERSION features.def \
|
||||||
RELNOTES-1.0 RELNOTES-1.0.x libgtop-sysdeps.m4 README \
|
libgtop-sysdeps.m4 README \
|
||||||
libgtop-mirror.sh libgtop-2.0.pc.in acinclude.m4
|
libgtop-mirror.sh libgtop-2.0.pc.in acinclude.m4
|
||||||
|
|
||||||
dist-hook:
|
dist-hook:
|
||||||
cp libgtop.spec $(distdir)
|
cp libgtop.spec $(distdir)
|
||||||
|
|
||||||
release:
|
|
||||||
$(MAKE) dist distdir=$(PACKAGE)-$(VERSION)
|
|
||||||
|
|
||||||
## Put `exec' in the name because this should be installed by
|
|
||||||
## `install-exec', not `install-data'.
|
|
||||||
## confexecdir = $(libdir)
|
|
||||||
## confexec_DATA = $(top_builddir)/libgtopConf.sh \
|
|
||||||
## $(top_builddir)/libgtop-features.def
|
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
pkgconfig_DATA = libgtop-2.0.pc
|
pkgconfig_DATA = libgtop-2.0.pc
|
||||||
|
|
||||||
CLEANFILES=libgtopConf.sh
|
|
||||||
|
|
||||||
## bin_SCRIPTS = $(top_builddir)/libgtop-config
|
|
||||||
|
|
||||||
## to automatically rebuild aclocal.m4 if any of the macros in
|
|
||||||
## `macros/' change
|
|
||||||
## @MAINT@ include macros/macros.dep
|
|
||||||
## @MAINT@macros/macros.dep: macros/Makefile.am
|
|
||||||
## @MAINT@ cd macros && $(MAKE) macros.dep
|
|
||||||
|
|
||||||
@MAINT@$(top_srcdir)/aclocal.m4: libgtop-sysdeps.m4 LIBGTOP-VERSION
|
|
||||||
|
|
||||||
## We create libgtopConf.sh here and not from configure because we want
|
|
||||||
## to get the paths expanded correctly. Macros like srcdir are given
|
|
||||||
## the value NONE in configure if the user doesn't specify them (this
|
|
||||||
## is an autoconf feature, not a bug).
|
|
||||||
libgtopConf.sh: libgtopConf.sh.in Makefile
|
|
||||||
## Use sed and then mv to avoid problems if the user interrupts.
|
|
||||||
sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
|
|
||||||
-e 's#\@LIBGTOP_INCLUDEDIR\@#$(includedir)/libgtop-2.0#g' \
|
|
||||||
-e 's#\@LIBGTOP_DATADIR\@#$(datadir)#g' \
|
|
||||||
-e 's#\@LIBGTOP_EXTRA_LIBS\@#$(LIBGTOP_EXTRA_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_LIBS\@#$(LIBGTOP_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_INCS\@#$(LIBGTOP_INCS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_NAMES_LIBS\@#$(LIBGTOP_NAMES_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_NAMES_INCS\@#$(LIBGTOP_NAMES_INCS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_GUILE_LIBS\@#$(LIBGTOP_GUILE_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_GUILE_INCS\@#$(LIBGTOP_GUILE_INCS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_GUILE_NAMES_LIBS\@#$(LIBGTOP_GUILE_NAMES_LIBS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_GUILE_NAMES_INCS\@#$(LIBGTOP_GUILE_NAMES_INCS)#g' \
|
|
||||||
-e 's#\@LIBGTOP_BINDIR\@#$(LIBGTOP_BINDIR)#g' \
|
|
||||||
-e 's#\@LIBGTOP_SERVER\@#$(LIBGTOP_SERVER)#g' \
|
|
||||||
-e 's#\@LIBGTOP_MAJOR_VERSION\@#$(LIBGTOP_MAJOR_VERSION)#g' \
|
|
||||||
-e 's#\@LIBGTOP_MINOR_VERSION\@#$(LIBGTOP_MINOR_VERSION)#g' \
|
|
||||||
-e 's#\@LIBGTOP_MICRO_VERSION\@#$(LIBGTOP_MICRO_VERSION)#g' \
|
|
||||||
-e 's#\@LIBGTOP_VERSION\@#$(LIBGTOP_VERSION)#g' \
|
|
||||||
-e 's#\@LIBGTOP_VERSION_CODE\@#$(LIBGTOP_VERSION_CODE)#g' \
|
|
||||||
-e 's#\@LIBGTOP_SERVER_VERSION\@#$(LIBGTOP_SERVER_VERSION)#g' \
|
|
||||||
-e 's#\@libgtop_sysdeps_dir\@#$(libgtop_sysdeps_dir)#g' \
|
|
||||||
-e 's#\@libgtop_need_server\@#$(libgtop_need_server)#g' \
|
|
||||||
-e 's#\@libgtop_use_machine_h\@#$(libgtop_use_machine_h)#g' \
|
|
||||||
-e 's#\@libgtop_guile_found\@#$(libgtop_guile_found)#g' \
|
|
||||||
-e 's#\@libgtop_want_examples\@#$(libgtop_want_examples)#g' \
|
|
||||||
< $(srcdir)/libgtopConf.sh.in > libgtopConf.tmp \
|
|
||||||
&& mv libgtopConf.tmp libgtopConf.sh
|
|
||||||
|
|
||||||
# libgtop-config: libgtop-config.in Makefile
|
|
||||||
# sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
|
|
||||||
# < $(srcdir)/libgtop-config.in > libgtop-config.tmp \
|
|
||||||
# && mv libgtop-config.tmp libgtop-config && \
|
|
||||||
# chmod 755 libgtop-config
|
|
||||||
|
|
||||||
libgtop-features.def: features.def
|
libgtop-features.def: features.def
|
||||||
@LN_S@ $< $@
|
@LN_S@ $< $@
|
||||||
|
|
||||||
|
29
NEWS
29
NEWS
@@ -1,3 +1,32 @@
|
|||||||
|
July 11, 2004:
|
||||||
|
==============
|
||||||
|
|
||||||
|
* Released LibGTop 2.6.1
|
||||||
|
|
||||||
|
- code cleanups.
|
||||||
|
|
||||||
|
- glibtop_mountlist()'s all_fs parameter now works.
|
||||||
|
|
||||||
|
- glibtop_uptime.boot_time is set on every arch.
|
||||||
|
|
||||||
|
- linux SMP support is fixed.
|
||||||
|
|
||||||
|
- Replaced unsafe strcpy by g_strlcpy.
|
||||||
|
|
||||||
|
March 11, 2004:
|
||||||
|
===============
|
||||||
|
|
||||||
|
* Released LibGTop 2.5.99 "Gross Work", dedicated to people who do push-ups
|
||||||
|
in the loos.
|
||||||
|
|
||||||
|
- plenty of code cleanups
|
||||||
|
|
||||||
|
- removed the dependency on libgnome, only glib required now
|
||||||
|
|
||||||
|
- Linux 2.6 support, NetBSD support and better FreeBSD support
|
||||||
|
|
||||||
|
- Make the block size available for filesystem statistics
|
||||||
|
|
||||||
February 27, 2001:
|
February 27, 2001:
|
||||||
=================
|
=================
|
||||||
|
|
||||||
|
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 GPL license, I
|
|
||||||
spent most my time during the last months to work in the GNOME project
|
|
||||||
so this is the primary use for LibGTop (and currently the only one).
|
|
||||||
|
|
||||||
However, you can also give its configure.in script the `--without-gnome'
|
|
||||||
parameter and then use it fully without GNOME in your own applications.
|
|
||||||
|
|
||||||
LIBGTOP AND GNOME - PART II:
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
LibGTop was tested with FreeBSD 3.0 but it should also work with
|
|
||||||
FreeBSD 2.2.7, NetBSD and OpenBSD.
|
|
||||||
|
|
||||||
Currently my primary aim is to help the GNOME people with our 1.0 release
|
|
||||||
so I won't have much time to test it with any other system than Linux.
|
|
||||||
|
|
||||||
However, I consider FreeBSD, NetBSD and OpenBSD as supported systems for
|
|
||||||
LibGTop and whenever I get bug reports I will do my best to fix them as
|
|
||||||
quickly as possible.
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES FOR LINUX:
|
|
||||||
==================================
|
|
||||||
|
|
||||||
Under Linux, LibGTop should work without problems and read everything
|
|
||||||
from /proc.
|
|
||||||
|
|
||||||
LibGTop 0.25 also had an experimental kernel interface to read this
|
|
||||||
information directly from the kernel with a system call - but I have
|
|
||||||
currently dropped support for this as I am too busy with GNOME
|
|
||||||
development to keep current with kernel hacking.
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES FOR SOLARIS:
|
|
||||||
====================================
|
|
||||||
|
|
||||||
Since so many people were asking me about this:
|
|
||||||
|
|
||||||
LibGTop currently does not have any support for Solaris, and it will
|
|
||||||
never have until some volunteer writes the code for it. I can't do this
|
|
||||||
myself since I do not have any machine to test it on.
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES FOR BSD:
|
|
||||||
=================================
|
|
||||||
|
|
||||||
There are a few caveats:
|
|
||||||
|
|
||||||
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to
|
|
||||||
kmem after installation and mount the /proc file system of FreeBSD
|
|
||||||
(/proc/<pid>/mem is used within kvm_uread ()).
|
|
||||||
|
|
||||||
* To get the filenames of the process maps displayed in GTop, you need
|
|
||||||
to configure with the `--with-libgtop-inodedb' option (you need GDBM
|
|
||||||
for this to work).
|
|
||||||
|
|
||||||
You have then to create an inode database which is used to look up
|
|
||||||
filenames. This is done using the `mkinodedb' program which comes
|
|
||||||
along with libgtop.
|
|
||||||
|
|
||||||
See the file src/inodedb/README for details:
|
|
||||||
|
|
||||||
The `mkinodedb' program which is build in this directory takes two
|
|
||||||
command line arguments: the full pathname of the database to be
|
|
||||||
created and the name of a configuration file consisting of directory
|
|
||||||
and file names each on a line by itself - see `/etc/ld.so.conf' for
|
|
||||||
an example.
|
|
||||||
|
|
||||||
Putting a directory name in this file means all regular files found
|
|
||||||
in this directory are included in the database, but it will not
|
|
||||||
recursively descend into subdirectories (for instance, we want
|
|
||||||
everything in `/usr/lib' but not every single file in `/usr/lib/sgml').
|
|
||||||
You can also use filenames to include a single file.
|
|
||||||
|
|
||||||
Have fun,
|
|
||||||
|
|
||||||
Martin <martin@home-of-linux.org>
|
|
172
RELNOTES-1.0.x
172
RELNOTES-1.0.x
@@ -1,172 +0,0 @@
|
|||||||
RELEASE NOTES FOR LIBGTOP 1.0.7
|
|
||||||
===============================
|
|
||||||
|
|
||||||
OVERVIEW
|
|
||||||
--------
|
|
||||||
|
|
||||||
LibGTop is a library that read information about processes and the
|
|
||||||
running systems. This information include:
|
|
||||||
|
|
||||||
General System Information:
|
|
||||||
|
|
||||||
cpu - CPU Usage
|
|
||||||
mem - Memory Usage
|
|
||||||
swap - Swap Usage (including paging activity)
|
|
||||||
loadavg - Load average (including nr_running, nr_tasks, last_pid)
|
|
||||||
uptime - Uptime and Idle time, can be calculated from CPU usage
|
|
||||||
|
|
||||||
SYS V IPC Limits:
|
|
||||||
|
|
||||||
shm_limits - Shared Memory Limits
|
|
||||||
msg_limits - Message Queue Limits
|
|
||||||
sem_limits - Semaphore Set Limits
|
|
||||||
|
|
||||||
Network:
|
|
||||||
|
|
||||||
netload - Network load
|
|
||||||
ppp - PPP statistics
|
|
||||||
|
|
||||||
Process List:
|
|
||||||
|
|
||||||
proclist - List of processes
|
|
||||||
|
|
||||||
Process information:
|
|
||||||
|
|
||||||
proc_state - cmd, state, uid, gid
|
|
||||||
proc_uid - uid,euid,gid,egid,pid,ppid,pgrp
|
|
||||||
session,tty,tpgid,priority,nice
|
|
||||||
proc_mem - size,vsize,resident,share,rss,rss_rlim
|
|
||||||
proc_time - start_time,rtime,utime,stime,cutime,cstime
|
|
||||||
timeout,it_real_value,frequency
|
|
||||||
proc_signal - signal,blocked,sigignore,sigcatch
|
|
||||||
proc_kernel - k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
|
|
||||||
kstk_esp,kstk_eip,nwchan,wchan
|
|
||||||
proc_segment - text_rss,shlib_rss,data_rss,stack_rss,dirty_size
|
|
||||||
start_code,end_code,start_stack
|
|
||||||
|
|
||||||
Process maps:
|
|
||||||
|
|
||||||
proc_args - Command line arguments
|
|
||||||
proc_map - Process map (/proc/<pid>/maps under Linux)
|
|
||||||
|
|
||||||
File system usage:
|
|
||||||
|
|
||||||
mountlist - List of currently mounted filesystems
|
|
||||||
fsusage - File system usage
|
|
||||||
|
|
||||||
PORTABILITY:
|
|
||||||
-----------
|
|
||||||
|
|
||||||
LibGTop is designed to be as portable as possible. None of the
|
|
||||||
functions and retrieved information should be specific to a specific
|
|
||||||
operating system. So you only need to port the system dependent part
|
|
||||||
of the library to a new system and all application programs can then
|
|
||||||
use libgtop on this new system.
|
|
||||||
|
|
||||||
CLIENT/SERVER MODEL:
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Some systems like DEC OSF/1 or BSD require special privileges for the
|
|
||||||
calling process to fetch the required information (SUID root/SGID
|
|
||||||
kmem). To solve this problem, I designed a client/server model which
|
|
||||||
makes a call to a SUID/SGID server which fetches the required
|
|
||||||
information whenever it is required. This server is only called for
|
|
||||||
features that really require privileges, otherwise the sysdeps code
|
|
||||||
is called directory (every user can get the CPU usage on DEC OSF/1,
|
|
||||||
but only root can get information about processes other than the
|
|
||||||
current one).
|
|
||||||
|
|
||||||
There is also some kind of daemon which can be used to fetch
|
|
||||||
information from remote systems (still experimental). This daemon
|
|
||||||
normally runs as nobody and calls the SUID/SGID itself when needed.
|
|
||||||
|
|
||||||
LIBGTOP AND GNOME:
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Although LibGTop is part of the GNOME desktop environment, its main
|
|
||||||
interface is totally independent from any particular desktop environment,
|
|
||||||
so you can also use it as a standalone library in any piece of GPLed
|
|
||||||
software which makes it also a valuable part of the GNU project.
|
|
||||||
|
|
||||||
LibGTop is currently used in various places in the GNOME Project,
|
|
||||||
for instance in some of the applets in gnome-core and - of cause -
|
|
||||||
this ultra-cool application called GTop ...
|
|
||||||
|
|
||||||
However, you need to give the configure.in script the `--without-gnome'
|
|
||||||
parameter when you want to use LibGTop without GNOME (this is because,
|
|
||||||
if you want to use it with GNOME, you need to compile it after the main
|
|
||||||
GNOME libraries and I wanted to avoid getting unnecessary bug reports
|
|
||||||
about this).
|
|
||||||
|
|
||||||
LIBGTOP AND GNOME - PART II:
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
LibGTop was tested with FreeBSD 3.0 but it should also work with
|
|
||||||
FreeBSD 2.2.7, NetBSD and OpenBSD.
|
|
||||||
|
|
||||||
Unfortunately, I don't have the power and disk space to install all
|
|
||||||
possible operating systems out there on my machine and test things myself,
|
|
||||||
so I depend on people telling me whether it works and sending me bug
|
|
||||||
reports and patches if not.
|
|
||||||
|
|
||||||
However, I consider FreeBSD, NetBSD and OpenBSD as supported systems for
|
|
||||||
LibGTop and whenever I get bug reports I will do my best to fix them as
|
|
||||||
quickly as possible.
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES FOR LINUX:
|
|
||||||
==================================
|
|
||||||
|
|
||||||
[I am speaking of the Linux kernel here.]
|
|
||||||
|
|
||||||
Under Linux, LibGTop should work without problems and read everything
|
|
||||||
from /proc.
|
|
||||||
|
|
||||||
LibGTop 0.25 also had an experimental kernel interface to read this
|
|
||||||
information directly from the kernel with a system call - but I have
|
|
||||||
currently dropped support for this as I am too busy with GNOME
|
|
||||||
development to keep current with kernel hacking.
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES FOR SOLARIS:
|
|
||||||
====================================
|
|
||||||
|
|
||||||
The development branch of LibGTop (the 1.1.x series) has a first version
|
|
||||||
of the Solaris port which works at least on Solaris 7.
|
|
||||||
|
|
||||||
If you are on a Solaris system and want to give it a try, just fetch the
|
|
||||||
latest 1.1.x tarball from ftp://ftp.home-of-linux.org/pub/libgtop/1.1/
|
|
||||||
and try it out.
|
|
||||||
|
|
||||||
PLATFORM SPECIFIC NOTES FOR BSD:
|
|
||||||
=================================
|
|
||||||
|
|
||||||
There are a few caveats:
|
|
||||||
|
|
||||||
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to
|
|
||||||
kmem after installation and mount the /proc file system of FreeBSD
|
|
||||||
(/proc/<pid>/mem is used within kvm_uread ()).
|
|
||||||
|
|
||||||
* To get the filenames of the process maps displayed in GTop, you need
|
|
||||||
to configure with the `--with-libgtop-inodedb' option (you need GDBM
|
|
||||||
for this to work).
|
|
||||||
|
|
||||||
You have then to create an inode database which is used to look up
|
|
||||||
filenames. This is done using the `mkinodedb' program which comes
|
|
||||||
along with libgtop.
|
|
||||||
|
|
||||||
See the file src/inodedb/README for details:
|
|
||||||
|
|
||||||
The `mkinodedb' program which is build in this directory takes two
|
|
||||||
command line arguments: the full pathname of the database to be
|
|
||||||
created and the name of a configuration file consisting of directory
|
|
||||||
and file names each on a line by itself - see `/etc/ld.so.conf' for
|
|
||||||
an example.
|
|
||||||
|
|
||||||
Putting a directory name in this file means all regular files found
|
|
||||||
in this directory are included in the database, but it will not
|
|
||||||
recursively descend into subdirectories (for instance, we want
|
|
||||||
everything in `/usr/lib' but not every single file in `/usr/lib/sgml').
|
|
||||||
You can also use filenames to include a single file.
|
|
||||||
|
|
||||||
Have fun,
|
|
||||||
|
|
||||||
Martin <martin@home-of-linux.org>
|
|
@@ -126,7 +126,7 @@
|
|||||||
#undef HAVE_GUILE
|
#undef HAVE_GUILE
|
||||||
|
|
||||||
#undef ssize_t
|
#undef ssize_t
|
||||||
#undef u_int64_t
|
#undef guint64
|
||||||
#undef int64_t
|
#undef int64_t
|
||||||
|
|
||||||
#undef HAVE_GLIBTOP_MACHINE_H
|
#undef HAVE_GLIBTOP_MACHINE_H
|
||||||
|
@@ -43,8 +43,6 @@ dnl
|
|||||||
AC_DEFUN([GNOME_LIBGTOP_TYPES],
|
AC_DEFUN([GNOME_LIBGTOP_TYPES],
|
||||||
[
|
[
|
||||||
AC_CHECK_HEADERS(sys/bitypes.h)
|
AC_CHECK_HEADERS(sys/bitypes.h)
|
||||||
AC_LIBGTOP_CHECK_TYPE(u_int64_t, unsigned long long int)
|
|
||||||
AC_LIBGTOP_CHECK_TYPE(int64_t, signed long long int)
|
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl See whether we need a declaration for a function.
|
dnl See whether we need a declaration for a function.
|
||||||
|
5
backends/.cvsignore
Normal file
5
backends/.cvsignore
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.deps
|
||||||
|
.libs
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
*.lo
|
15
backends/Makefile.am
Normal file
15
backends/Makefile.am
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
if NEED_LIBGTOP
|
||||||
|
server_dir = server
|
||||||
|
else
|
||||||
|
server_dir =
|
||||||
|
endif
|
||||||
|
|
||||||
|
if HAVE_SYSDEPS
|
||||||
|
sysdeps_dir = sysdeps
|
||||||
|
else
|
||||||
|
sysdeps_dir =
|
||||||
|
endif
|
||||||
|
|
||||||
|
SUBDIRS = $(server_dir) $(sysdeps_dir) common
|
||||||
|
|
||||||
|
DIST_SUBDIRS = server sysdeps common
|
7
backends/common/.cvsignore
Normal file
7
backends/common/.cvsignore
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
.deps
|
||||||
|
.libs
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
*.lo
|
||||||
|
*.la
|
||||||
|
marshal.c
|
50
backends/common/ChangeLog
Normal file
50
backends/common/ChangeLog
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* backend-common.c: (_open_common): s/u_int64_t/guint64/
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* backend-common.h: fixed compilation
|
||||||
|
|
||||||
|
2000-11-26 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* glibtop-backend-private.h: Removed.
|
||||||
|
|
||||||
|
* backend-common.h: New files.
|
||||||
|
|
||||||
|
* backend-common.c (_open_common): Don't overwrite
|
||||||
|
`backend->_priv'.
|
||||||
|
|
||||||
|
2000-11-22 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* Makefile.am: Link libgtop_backend_common.la against
|
||||||
|
$(top_builddir)/sysdeps/common/libgtop_common.la and
|
||||||
|
$(top_builddir)/lib/libgtop_server.la.
|
||||||
|
|
||||||
|
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* backend-sysdeps.c (LibGTopBackendInfo): Call this
|
||||||
|
`LibGTopBackendInfo_Common' when we don't use gmodule.
|
||||||
|
|
||||||
|
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
|
||||||
|
when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
|
||||||
|
|
||||||
|
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR).
|
||||||
|
|
||||||
|
* libgtop-common.backend: New file.
|
||||||
|
|
||||||
|
* backend-common.c (glibtop_backend_common): Renamed to
|
||||||
|
`LibGTopBackendInfo'.
|
||||||
|
|
||||||
|
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
Initial version of the "glibtop-backend-common" backend.
|
||||||
|
|
||||||
|
* backend-common.c: New file.
|
||||||
|
* glibtop-backend-private.h: New file.
|
||||||
|
* marshal.pl: New file. Automatically creates `marshal.c'.
|
||||||
|
|
47
backends/common/Makefile.am
Normal file
47
backends/common/Makefile.am
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
INCLUDES = @INCLUDES@
|
||||||
|
|
||||||
|
backenddir = @LIBGTOP_BACKEND_DIR@
|
||||||
|
|
||||||
|
if LIBGTOP_USE_GMODULE
|
||||||
|
backendlibdir = $(backenddir)
|
||||||
|
else
|
||||||
|
backendlibdir = $(libdir)
|
||||||
|
endif
|
||||||
|
|
||||||
|
dynamic_ldflags = @libgtop_dynamic_ldflags@
|
||||||
|
|
||||||
|
backend_DATA = \
|
||||||
|
libgtop-common.backend
|
||||||
|
|
||||||
|
noinst_HEADERS = \
|
||||||
|
backend-common.h
|
||||||
|
|
||||||
|
backendlib_LTLIBRARIES = \
|
||||||
|
libgtop_backend_common.la
|
||||||
|
|
||||||
|
libgtop_backend_common_la_SOURCES = \
|
||||||
|
backend-common.c \
|
||||||
|
marshal.c
|
||||||
|
|
||||||
|
libgtop_backend_common_la_LDFLAGS = \
|
||||||
|
$(LT_VERSION_INFO) $(dynamic_ldflags)
|
||||||
|
|
||||||
|
libgtop_backend_common_la_LIBADD = \
|
||||||
|
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||||
|
$(top_builddir)/lib/libgtop_server.la
|
||||||
|
|
||||||
|
BUILT_SOURCES = \
|
||||||
|
marshal.c
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
marshal.pl \
|
||||||
|
libgtop-common.backend
|
||||||
|
|
||||||
|
CLEANFILES = $(BUILT_SOURCES)
|
||||||
|
|
||||||
|
marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||||
|
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t
|
||||||
|
mv tmp-t marshal.c
|
||||||
|
|
61
backends/common/backend-common.c
Normal file
61
backends/common/backend-common.c
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <backend-common.h>
|
||||||
|
|
||||||
|
static int
|
||||||
|
_open_common (glibtop_server *, glibtop_backend *, guint64, const char **);
|
||||||
|
|
||||||
|
static int
|
||||||
|
_close_common (glibtop_server *, glibtop_backend *, void *closure);
|
||||||
|
|
||||||
|
extern glibtop_call_vector glibtop_backend_common_call_vector;
|
||||||
|
|
||||||
|
#ifdef LIBGTOP_USE_GMODULE
|
||||||
|
glibtop_backend_info LibGTopBackendInfo = {
|
||||||
|
"glibtop-backend-common", _open_common, _close_common,
|
||||||
|
&glibtop_backend_common_call_vector
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
glibtop_backend_info LibGTopBackendInfo_Common = {
|
||||||
|
"glibtop-backend-common", _open_common, _close_common,
|
||||||
|
&glibtop_backend_common_call_vector
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static int
|
||||||
|
_open_common (glibtop_server *server, glibtop_backend *backend,
|
||||||
|
guint64 features, const char **backend_args)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_close_common (glibtop_server *server, glibtop_backend *backend,
|
||||||
|
void *closure)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
36
backends/common/backend-common.h
Normal file
36
backends/common/backend-common.h
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_BACKEND_COMMON_H__
|
||||||
|
#define __GLIBTOP_BACKEND_COMMON_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
#include <glibtop/open.h>
|
||||||
|
#include <glibtop/glibtop-backend.h>
|
||||||
|
#include <glibtop/glibtop-backend-info.h>
|
||||||
|
|
||||||
|
#endif
|
13
backends/common/libgtop-common.backend
Normal file
13
backends/common/libgtop-common.backend
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0"?> <!-- -*-xml-*- -->
|
||||||
|
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
|
||||||
|
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
|
||||||
|
|
||||||
|
<libgtop:Backend>
|
||||||
|
<libgtop:Name>glibtop-backend-common</libgtop:Name>
|
||||||
|
<libgtop:Location>
|
||||||
|
<libgtop:LibtoolName>libgtop_backend_common.la</libgtop:LibtoolName>
|
||||||
|
<libgtop:ShlibName>libgtop_backend_common.so</libgtop:ShlibName>
|
||||||
|
</libgtop:Location>
|
||||||
|
</libgtop:Backend>
|
||||||
|
|
||||||
|
</libgtop:Backends>
|
175
backends/common/marshal.pl
Normal file
175
backends/common/marshal.pl
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
require 'c_types.pl';
|
||||||
|
|
||||||
|
$[ = 1; # set array base to 1
|
||||||
|
$, = ' '; # set output field separator
|
||||||
|
$\ = "\n"; # set output record separator
|
||||||
|
|
||||||
|
$always_use_temp_storage = 1;
|
||||||
|
|
||||||
|
sub toupper {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/a-z/A-Z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub tolower {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/A-Z/a-z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
print '/* marshal.c */';
|
||||||
|
print "/* This is a generated file. Please modify `marshal.pl' */";
|
||||||
|
print '';
|
||||||
|
|
||||||
|
print '#include <backend-common.h>';
|
||||||
|
print '';
|
||||||
|
print '#include <glibtop/sysdeps.h>';
|
||||||
|
print '#include <glibtop/union.h>';
|
||||||
|
print '';
|
||||||
|
print '#include <glibtop/call-vector.h>';
|
||||||
|
print '';
|
||||||
|
|
||||||
|
$feature_count = 0;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
chop; # strip record separator
|
||||||
|
|
||||||
|
if (/^[^#]/) {
|
||||||
|
&output($_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub output {
|
||||||
|
local($line) = @_;
|
||||||
|
@line_fields = split(/\|/, $line, 9999);
|
||||||
|
$retval = $line_fields[1];
|
||||||
|
$feature = $line_fields[2];
|
||||||
|
$param_def = $line_fields[4];
|
||||||
|
|
||||||
|
$orig = $feature;
|
||||||
|
$feature =~ s/^@//;
|
||||||
|
$space = $feature;
|
||||||
|
$space =~ s/./ /g;
|
||||||
|
|
||||||
|
$features{++$feature_count} = $orig;
|
||||||
|
|
||||||
|
return unless $orig =~ /^@/;
|
||||||
|
|
||||||
|
if ($retval eq 'retval') {
|
||||||
|
$retval_param = '&retval';
|
||||||
|
$call_prefix = '';
|
||||||
|
$call_prefix_space = '';
|
||||||
|
$prefix = 'retval = ';
|
||||||
|
$prefix_space = ' ';
|
||||||
|
$retval = 'int';
|
||||||
|
}
|
||||||
|
elsif ($retval !~ /^void$/) {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
$prefix = 'retval = ';
|
||||||
|
$prefix_space = ' ';
|
||||||
|
$call_prefix = 'retval = ';
|
||||||
|
$call_prefix_space = ' ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
$call_prefix = '';
|
||||||
|
$call_prefix_space = '';
|
||||||
|
$prefix = '';
|
||||||
|
$prefix_space = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
||||||
|
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
||||||
|
}
|
||||||
|
|
||||||
|
$need_temp_storage = $always_use_temp_storage;
|
||||||
|
$first_param_name = '';
|
||||||
|
|
||||||
|
$call_param = '';
|
||||||
|
$param_decl = '';
|
||||||
|
$need_temp_len = 0;
|
||||||
|
$nr_params = (@params = split(/:/, $param_def, 9999));
|
||||||
|
for ($param = 1; $param <= $nr_params; $param++) {
|
||||||
|
$list = $params[$param];
|
||||||
|
$type = $params[$param];
|
||||||
|
$type =~ s/\(.*//;
|
||||||
|
$list =~ s/^.*\(//;
|
||||||
|
$list =~ s/\)$//;
|
||||||
|
$count = (@fields = split(/,/, $list, 9999));
|
||||||
|
for ($field = 1; $field <= $count; $field++) {
|
||||||
|
my $c_type = $typeinfo->{$type}->[1];
|
||||||
|
|
||||||
|
if ($first_param_name eq '') {
|
||||||
|
$first_param_name = $fields[$field];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($typeinfo->{$type}->[2]) {
|
||||||
|
$need_temp_storage = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($param_decl eq '') {
|
||||||
|
$param_decl = ",\n " . $space . ' ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$param_decl = $param_decl . ', ';
|
||||||
|
}
|
||||||
|
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
||||||
|
$call_param = $call_param . ', ' . $fields[$field];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
$total_code = sprintf
|
||||||
|
("\treturn glibtop_get_%s_s (server%s);\n", $feature, $call_param);
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$total_code = sprintf
|
||||||
|
("\treturn glibtop_get_%s_s (server, array%s);\n", $feature, $call_param);
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$total_code = sprintf
|
||||||
|
("\treturn glibtop_get_%s_s (server, array, buf%s);\n", $feature, $call_param);
|
||||||
|
} else {
|
||||||
|
$total_code = sprintf
|
||||||
|
("\treturn glibtop_get_%s_s (server, buf%s);\n", $feature, $call_param);
|
||||||
|
}
|
||||||
|
|
||||||
|
$func_decl = 'static '.$retval."\n";
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
|
||||||
|
$feature, $param_decl);
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
|
||||||
|
$feature, $param_decl);
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
|
||||||
|
$feature, 'glibtop_'.$feature, $param_decl);
|
||||||
|
} else {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
|
||||||
|
$feature, 'glibtop_'.$feature, $param_decl);
|
||||||
|
}
|
||||||
|
|
||||||
|
$total_code = sprintf ("%s{\n%s\n%s}\n", $func_decl, $total_code);
|
||||||
|
|
||||||
|
print $total_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
$call_vector_code = '';
|
||||||
|
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
||||||
|
$feature = $features{$nr};
|
||||||
|
|
||||||
|
if ($feature =~ /^@/) {
|
||||||
|
$feature =~ s/^@//;
|
||||||
|
|
||||||
|
$call_vector_code .= sprintf (qq[\t_glibtop_get_%s_c,\n], $feature);
|
||||||
|
} else {
|
||||||
|
$call_vector_code .= sprintf (qq[\tNULL,\n]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print 'glibtop_call_vector glibtop_backend_common_call_vector = {';
|
||||||
|
print $call_vector_code;
|
||||||
|
print '};';
|
||||||
|
print '';
|
||||||
|
|
10
backends/server/.cvsignore
Normal file
10
backends/server/.cvsignore
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
.deps
|
||||||
|
.libs
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
*.lo
|
||||||
|
*.la
|
||||||
|
marshal.c
|
||||||
|
demarshal.c
|
||||||
|
libgtop_server
|
||||||
|
command.h
|
121
backends/server/ChangeLog
Normal file
121
backends/server/ChangeLog
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
2004-03-09 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* command.c: (glibtop_call_i):
|
||||||
|
* demarshal.pl:
|
||||||
|
* marshal.pl:
|
||||||
|
* read_data.c: (glibtop_read_data_i):
|
||||||
|
* server.c: (handle_slave_connection): fix g_malloc usage on non-Linux
|
||||||
|
platforms (patch by Benoit Dejean <bnet@ifrance.com>)
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* backend-server.c: (_open_server):
|
||||||
|
* backend-server.h:
|
||||||
|
* command.h.in: s/u_int64_t/guint64/
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* backend-server.h:
|
||||||
|
* command.h.in:
|
||||||
|
* demarshal.pl:
|
||||||
|
* server.h: fixed compilation
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* backend-server.c: (_open_server):
|
||||||
|
* command.c: (glibtop_call_i):
|
||||||
|
* demarshal.pl:
|
||||||
|
* marshal.pl:
|
||||||
|
* read_data.c: (glibtop_read_data_i):
|
||||||
|
* server.c: (main), (handle_slave_connection):
|
||||||
|
replace all the xmalloc crap by glib memory management functions
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* Makefile.am: removed traces of guile, intllibs and libgnomesupport
|
||||||
|
|
||||||
|
2000-11-27 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* backend-server.c (backend_server_quark): New global variable.
|
||||||
|
(_open_server, _close_server): Use the quark.
|
||||||
|
* commands.c: Likewise.
|
||||||
|
|
||||||
|
2000-11-26 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* backend-server.h: New file.
|
||||||
|
(backend_server_private): New struct, formerly known
|
||||||
|
as glibtop_backend_private.
|
||||||
|
|
||||||
|
* glibtop-backend-private.h: Removed.
|
||||||
|
|
||||||
|
* backend-server.c: (_open_server): Use g_object_set_data()
|
||||||
|
to set add the backend_server_private data to the glibtop_backend,
|
||||||
|
don't override `backend->_priv'.
|
||||||
|
(_close_server): Use g_object_get_data() to get the data.
|
||||||
|
[FIXME: Use quarks directly.]
|
||||||
|
|
||||||
|
* read.c: (glibtop_read_i): Replaced the glibtop_server and
|
||||||
|
glibtop_backend arguments with backend_server_private.
|
||||||
|
* read_data.c: (glibtop_read_data_i): Likewise.
|
||||||
|
* write.c: (glibtop_write_i): Likewise.
|
||||||
|
|
||||||
|
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* backend-sysdeps.c (LibGTopBackendInfo): Call this
|
||||||
|
`LibGTopBackendInfo_Server' when we don't use gmodule.
|
||||||
|
|
||||||
|
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
|
||||||
|
when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
|
||||||
|
|
||||||
|
2000-01-18 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* demarshal.pl: Only emit code for functions which are
|
||||||
|
really suid/sgid.
|
||||||
|
|
||||||
|
2000-01-13 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* write.c (glibtop_write_i): The buffer which we write is
|
||||||
|
now a `const'.
|
||||||
|
|
||||||
|
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* Makefile.am: Install everything except the server binary
|
||||||
|
in $(LIBGTOP_BACKEND_DIR).
|
||||||
|
|
||||||
|
* libgtop-server.backend: New file.
|
||||||
|
|
||||||
|
* backend-server.c (glibtop_backend_server): Renamed to
|
||||||
|
`LibGTopBackendInfo'.
|
||||||
|
|
||||||
|
2000-01-08 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* command.h.in (glibtop_response): New structure.
|
||||||
|
|
||||||
|
2000-01-02 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* command.pl: New file. Creates `command.h' from `command.h.in'.
|
||||||
|
* command.h.in: New file. Template file for `command.h'.
|
||||||
|
|
||||||
|
* io.c, version.c: New files. Copied here from `src/daemon'.
|
||||||
|
|
||||||
|
* demarshal.pl: New file. Automatically creates `demarshal.c'.
|
||||||
|
* demarshal.c: This automatically created file handles the
|
||||||
|
demarshalling in the libgtop_server.
|
||||||
|
|
||||||
|
* Makefile.am: Build the `libgtop_server' here.
|
||||||
|
* server.c, server.h: New files. Copied here from `src/daemon'.
|
||||||
|
|
||||||
|
2000-01-01 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
Initial version of the "glibtop-backend-server" backend.
|
||||||
|
|
||||||
|
* command.c, read.c, read_data.c, write.c: New files. Moved here
|
||||||
|
from the `lib' directory.
|
||||||
|
|
||||||
|
* backend-server.c: New file.
|
||||||
|
* glibtop-backend-private.h: New file.
|
||||||
|
|
||||||
|
* marshal.pl: New file. Automatically creates `marshal.c'.
|
||||||
|
|
84
backends/server/Makefile.am
Normal file
84
backends/server/Makefile.am
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
INCLUDES = @INCLUDES@ -D_BSD \
|
||||||
|
-DLIBGTOP_COMPILE_SYSTEM=\"`uname -s`\" \
|
||||||
|
-DLIBGTOP_COMPILE_RELEASE=\"`uname -r`\" \
|
||||||
|
-DLIBGTOP_COMPILE_MACHINE=\"`uname -m`\"
|
||||||
|
|
||||||
|
backenddir = @LIBGTOP_BACKEND_DIR@
|
||||||
|
|
||||||
|
if LIBGTOP_USE_GMODULE
|
||||||
|
backendlibdir = $(backenddir)
|
||||||
|
else
|
||||||
|
backendlibdir = $(libdir)
|
||||||
|
endif
|
||||||
|
|
||||||
|
dynamic_ldflags = @libgtop_dynamic_ldflags@
|
||||||
|
|
||||||
|
backend_DATA = \
|
||||||
|
libgtop-server.backend
|
||||||
|
|
||||||
|
noinst_HEADERS = \
|
||||||
|
backend-server.h
|
||||||
|
|
||||||
|
backendlib_LTLIBRARIES = \
|
||||||
|
libgtop_backend_server.la
|
||||||
|
|
||||||
|
bin_PROGRAMS = \
|
||||||
|
@server_programs@
|
||||||
|
|
||||||
|
EXTRA_PROGRAMS = \
|
||||||
|
libgtop_server
|
||||||
|
|
||||||
|
libgtop_backend_server_la_SOURCES = \
|
||||||
|
backend-server.c \
|
||||||
|
marshal.c \
|
||||||
|
command.c \
|
||||||
|
read.c \
|
||||||
|
read_data.c \
|
||||||
|
write.c
|
||||||
|
|
||||||
|
libgtop_backend_server_la_LDFLAGS = \
|
||||||
|
$(LT_VERSION_INFO) $(dynamic_ldflags)
|
||||||
|
|
||||||
|
libgtop_server_SOURCES = \
|
||||||
|
server.c \
|
||||||
|
server.h \
|
||||||
|
demarshal.c \
|
||||||
|
version.c \
|
||||||
|
io.c
|
||||||
|
|
||||||
|
libgtop_server_LDADD = \
|
||||||
|
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps_suid.la \
|
||||||
|
$(top_builddir)/sysdeps/common/libgtop_suid_common.la
|
||||||
|
|
||||||
|
if ENABLE_STATIC
|
||||||
|
libgtop_server_LDFLAGS = -static
|
||||||
|
endif
|
||||||
|
|
||||||
|
BUILT_SOURCES = \
|
||||||
|
marshal.c \
|
||||||
|
demarshal.c \
|
||||||
|
command.h
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
marshal.pl \
|
||||||
|
demarshal.pl \
|
||||||
|
command.pl \
|
||||||
|
command.h.in \
|
||||||
|
libgtop-server.backend
|
||||||
|
|
||||||
|
CLEANFILES = $(BUILT_SOURCES)
|
||||||
|
|
||||||
|
marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||||
|
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t
|
||||||
|
mv tmp-t marshal.c
|
||||||
|
|
||||||
|
demarshal.c: demarshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||||
|
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/demarshal.pl < $(top_srcdir)/features.def > tmp-t
|
||||||
|
mv tmp-t demarshal.c
|
||||||
|
|
||||||
|
command.h: command.pl command.h.in $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||||
|
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/command.pl $(top_srcdir)/features.def $(srcdir)/command.h.in > tmp-t
|
||||||
|
mv tmp-t command.h
|
||||||
|
|
113
backends/server/backend-server.c
Normal file
113
backends/server/backend-server.c
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <backend-server.h>
|
||||||
|
|
||||||
|
static int
|
||||||
|
_open_server (glibtop_server *, glibtop_backend *, guint64, const char **);
|
||||||
|
|
||||||
|
static int
|
||||||
|
_close_server (glibtop_server *, glibtop_backend *, void *);
|
||||||
|
|
||||||
|
extern glibtop_call_vector glibtop_backend_server_call_vector;
|
||||||
|
|
||||||
|
#ifdef LIBGTOP_USE_GMODULE
|
||||||
|
glibtop_backend_info LibGTopBackendInfo = {
|
||||||
|
"glibtop-backend-server", _open_server, _close_server,
|
||||||
|
&glibtop_backend_server_call_vector
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
glibtop_backend_info LibGTopBackendInfo_Server = {
|
||||||
|
"glibtop-backend-server", _open_server, _close_server,
|
||||||
|
&glibtop_backend_server_call_vector
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static int
|
||||||
|
_open_server (glibtop_server *server, glibtop_backend *backend,
|
||||||
|
guint64 features, const char **backend_args)
|
||||||
|
{
|
||||||
|
backend_server_private *priv;
|
||||||
|
|
||||||
|
priv = g_malloc (sizeof (backend_server_private));
|
||||||
|
|
||||||
|
glibtop_backend_set_closure_data (backend, priv);
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "open_server - %p, %p, %p\n", server, backend, priv);
|
||||||
|
|
||||||
|
fprintf (stderr, "Opening pipe to server (%s).\n", LIBGTOP_SERVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (pipe (priv->input) || pipe (priv->output)) {
|
||||||
|
glibtop_warn_io_r (server, "cannot make a pipe");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
priv->pid = fork ();
|
||||||
|
|
||||||
|
if (priv->pid < 0) {
|
||||||
|
glibtop_warn_io_r (server, "fork failed");
|
||||||
|
return -1;
|
||||||
|
} else if (priv->pid == 0) {
|
||||||
|
close (0); close (1);
|
||||||
|
close (priv->input [0]);
|
||||||
|
close (priv->output [1]);
|
||||||
|
dup2 (priv->input [1], 1);
|
||||||
|
dup2 (priv->output [0], 0);
|
||||||
|
execl (LIBGTOP_SERVER, "libgtop-server", NULL);
|
||||||
|
glibtop_error_io_r (server, "execl (%s)",
|
||||||
|
LIBGTOP_SERVER);
|
||||||
|
_exit (2);
|
||||||
|
}
|
||||||
|
|
||||||
|
close (priv->input [1]);
|
||||||
|
close (priv->output [0]);
|
||||||
|
|
||||||
|
glibtop_server_ref (server);
|
||||||
|
priv->server = server;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_close_server (glibtop_server *server, glibtop_backend *backend,
|
||||||
|
void *closure)
|
||||||
|
{
|
||||||
|
backend_server_private *priv = closure;
|
||||||
|
|
||||||
|
kill (priv->pid, SIGKILL);
|
||||||
|
close (priv->input [0]);
|
||||||
|
close (priv->output [1]);
|
||||||
|
|
||||||
|
glibtop_server_unref (priv->server);
|
||||||
|
|
||||||
|
priv->pid = 0;
|
||||||
|
|
||||||
|
g_free (priv);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
65
backends/server/backend-server.h
Normal file
65
backends/server/backend-server.h
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_BACKEND_COMMON_H__
|
||||||
|
#define __GLIBTOP_BACKEND_COMMON_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
#include <glibtop/open.h>
|
||||||
|
#include <glibtop/glibtop-backend.h>
|
||||||
|
#include <glibtop/glibtop-backend-info.h>
|
||||||
|
|
||||||
|
typedef struct _backend_server_private backend_server_private;
|
||||||
|
|
||||||
|
struct _backend_server_private
|
||||||
|
{
|
||||||
|
guint64 flags;
|
||||||
|
int input [2]; /* Pipe client <- server */
|
||||||
|
int output [2]; /* Pipe client -> server */
|
||||||
|
pid_t pid; /* PID of the server */
|
||||||
|
|
||||||
|
glibtop_server *server;
|
||||||
|
};
|
||||||
|
|
||||||
|
void *
|
||||||
|
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
|
||||||
|
unsigned command, size_t send_size, const void *send_ptr,
|
||||||
|
size_t data_size, const void *data_ptr,
|
||||||
|
size_t recv_size, void *recv_ptr,
|
||||||
|
int *retval_ptr);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_read_i (backend_server_private *priv, size_t size, void *buf);
|
||||||
|
|
||||||
|
void *
|
||||||
|
glibtop_read_data_i (backend_server_private *priv);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_write_i (backend_server_private *priv, size_t size, const void *buf);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
100
backends/server/command.c
Normal file
100
backends/server/command.c
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <backend-server.h>
|
||||||
|
|
||||||
|
#include "command.h"
|
||||||
|
|
||||||
|
void *
|
||||||
|
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
|
||||||
|
unsigned command, size_t send_size, const void *send_buf,
|
||||||
|
size_t data_size, const void *data_buf,
|
||||||
|
size_t recv_size, void *recv_ptr,
|
||||||
|
int *retval_ptr)
|
||||||
|
{
|
||||||
|
glibtop_command cmnd;
|
||||||
|
glibtop_response resp;
|
||||||
|
#if 0
|
||||||
|
int retval;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
memset (&cmnd, 0, sizeof (glibtop_command));
|
||||||
|
memset (&resp, 0, sizeof (glibtop_response));
|
||||||
|
|
||||||
|
cmnd.command = command;
|
||||||
|
|
||||||
|
/* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we
|
||||||
|
* send it together with command, so we only need one system call instead
|
||||||
|
* of two. */
|
||||||
|
|
||||||
|
if (send_size <= _GLIBTOP_PARAM_SIZE) {
|
||||||
|
memcpy (cmnd.parameter, send_buf, send_size);
|
||||||
|
cmnd.param_size = send_size;
|
||||||
|
} else {
|
||||||
|
cmnd.send_size = send_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmnd.data_size = data_size;
|
||||||
|
|
||||||
|
glibtop_write_i (priv, sizeof (glibtop_command), &cmnd);
|
||||||
|
|
||||||
|
if (data_size) {
|
||||||
|
#ifdef SLAVE_DEBUG
|
||||||
|
fprintf (stderr, "SENDING %d bytes of DATA.\n", data_size);
|
||||||
|
#endif
|
||||||
|
glibtop_write_i (priv, data_size, data_buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
glibtop_read_i (priv, sizeof (glibtop_response), &resp);
|
||||||
|
|
||||||
|
#ifdef SLAVE_DEBUG
|
||||||
|
fprintf (stderr, "RESPONSE: %d - %d - %ld - %ld - %p - %ld\n",
|
||||||
|
resp.retval, resp.glibtop_errno,
|
||||||
|
(long) resp.recv_size, (long) resp.data_size,
|
||||||
|
recv_ptr, (long) recv_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (retval_ptr)
|
||||||
|
*retval_ptr = resp.glibtop_errno;
|
||||||
|
|
||||||
|
if (resp.recv_size != recv_size) {
|
||||||
|
glibtop_warn_r (server, "Expected %ld bytes, but got %ld.",
|
||||||
|
(long) recv_size, (long) resp.recv_size);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (recv_ptr)
|
||||||
|
glibtop_read_i (priv, recv_size, recv_ptr);
|
||||||
|
|
||||||
|
if (resp.data_size) {
|
||||||
|
void *ptr = g_malloc (resp.data_size);
|
||||||
|
|
||||||
|
glibtop_read_i (priv, resp.data_size, ptr);
|
||||||
|
|
||||||
|
return ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
@@ -1,5 +1,9 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
|
@@AUTOGEN_COMMENT@@
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
This file is part of LibGTop 1.0.
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
@@ -21,26 +25,35 @@
|
|||||||
Boston, MA 02111-1307, USA.
|
Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __GLIBTOP_XMALLOC_H__
|
#ifndef __GLIBTOP_COMMAND_H__
|
||||||
#define __GLIBTOP_XMALLOC_H__
|
#define __GLIBTOP_COMMAND_H__
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/error.h>
|
#include <glibtop/union.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define glibtop_malloc(p1) glibtop_malloc_r(glibtop_global_server, p1)
|
@@GLIBTOP_COMMAND_CONSTANTS@@
|
||||||
#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);
|
#define _GLIBTOP_PARAM_SIZE 16
|
||||||
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
|
typedef struct _glibtop_command glibtop_command;
|
||||||
|
typedef struct _glibtop_response glibtop_response;
|
||||||
|
|
||||||
|
struct _glibtop_command
|
||||||
|
{
|
||||||
|
guint64 command;
|
||||||
|
guint64 param_size, send_size, data_size;
|
||||||
|
char parameter [_GLIBTOP_PARAM_SIZE];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _glibtop_response
|
||||||
|
{
|
||||||
|
int retval;
|
||||||
|
int glibtop_errno;
|
||||||
|
guint64 recv_size, data_size;
|
||||||
|
};
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
76
backends/server/command.pl
Normal file
76
backends/server/command.pl
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
require 'c_types.pl';
|
||||||
|
|
||||||
|
die "Usage: $0 features.def command.h.in" unless $#ARGV == 1;
|
||||||
|
|
||||||
|
$[ = 1; # set array base to 1
|
||||||
|
$, = ' '; # set output field separator
|
||||||
|
$\ = "\n"; # set output record separator
|
||||||
|
|
||||||
|
sub toupper {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/a-z/A-Z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub tolower {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/A-Z/a-z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
$constants_decl_code = '';
|
||||||
|
|
||||||
|
open FEATURESDEF, $ARGV[1] or
|
||||||
|
die "open ($ARGV[1]): $!";
|
||||||
|
|
||||||
|
while (<FEATURESDEF>) {
|
||||||
|
chop; # strip record separator
|
||||||
|
|
||||||
|
if (/^[^\#]/) {
|
||||||
|
&parse_features_def ($_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
close FEATURESDEF;
|
||||||
|
|
||||||
|
sub parse_features_def {
|
||||||
|
local($line) = @_;
|
||||||
|
@line_fields = split(/\|/, $line, 9999);
|
||||||
|
$retval = $line_fields[1];
|
||||||
|
$element_def = $line_fields[3];
|
||||||
|
$feature = $line_fields[2];
|
||||||
|
$param_def = $line_fields[4];
|
||||||
|
|
||||||
|
$orig = $feature;
|
||||||
|
$feature =~ s/^@//;
|
||||||
|
$space = $feature;
|
||||||
|
$space =~ s/./ /g;
|
||||||
|
|
||||||
|
$constants_decl_code .= sprintf
|
||||||
|
(qq[\#define %-40s %d\n], 'GLIBTOP_CMND_'.&toupper($feature),
|
||||||
|
++$feature_count);
|
||||||
|
|
||||||
|
$features{$feature_count} = $feature;
|
||||||
|
}
|
||||||
|
|
||||||
|
chop $constants_decl_code;
|
||||||
|
|
||||||
|
$auto_gen_comment = sprintf
|
||||||
|
(qq[/*\n * This file is automatically generated.\n * Please modify `command.pl' and `command.h.in'.\n */]);
|
||||||
|
|
||||||
|
open COMMAND, $ARGV[2] or
|
||||||
|
die "open ($ARGV[2]): $!";
|
||||||
|
|
||||||
|
while (<COMMAND>) {
|
||||||
|
chop;
|
||||||
|
|
||||||
|
s/^\s*\@\@GLIBTOP_COMMAND_CONSTANTS\@\@\s*$/$constants_decl_code/;
|
||||||
|
|
||||||
|
s/^\s*\@\@AUTOGEN_COMMENT\@\@\s*$/$auto_gen_comment/;
|
||||||
|
} continue {
|
||||||
|
print $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
close COMMAND;
|
385
backends/server/demarshal.pl
Normal file
385
backends/server/demarshal.pl
Normal file
@@ -0,0 +1,385 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
require 'c_types.pl';
|
||||||
|
|
||||||
|
$[ = 1; # set array base to 1
|
||||||
|
$, = ' '; # set output field separator
|
||||||
|
$\ = "\n"; # set output record separator
|
||||||
|
|
||||||
|
$always_use_temp_storage = 0;
|
||||||
|
|
||||||
|
sub toupper {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/a-z/A-Z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub tolower {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/A-Z/a-z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
print '/* demarshal.c */';
|
||||||
|
print "/* This is a generated file. Please modify `demarshal.pl' */";
|
||||||
|
print '';
|
||||||
|
|
||||||
|
print '#include <glibtop.h>';
|
||||||
|
print '#include <glibtop/open.h>';
|
||||||
|
print '';
|
||||||
|
print '#include <glibtop/sysdeps.h>';
|
||||||
|
print '#include <glibtop/union.h>';
|
||||||
|
print '';
|
||||||
|
print '#include <glibtop/backend.h>';
|
||||||
|
print '';
|
||||||
|
print '#include <glibtop-backend-private.h>';
|
||||||
|
print '#include "server.h"';
|
||||||
|
print '';
|
||||||
|
|
||||||
|
$feature_count = 0;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
chop; # strip record separator
|
||||||
|
|
||||||
|
if (/^[^\#]/) {
|
||||||
|
&output($_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub output {
|
||||||
|
local($line) = @_;
|
||||||
|
@line_fields = split(/\|/, $line, 9999);
|
||||||
|
$retval = $line_fields[1];
|
||||||
|
$element_def = $line_fields[3];
|
||||||
|
$feature = $line_fields[2];
|
||||||
|
$param_def = $line_fields[4];
|
||||||
|
|
||||||
|
return if $feature =~ /^@/;
|
||||||
|
$name = 'glibtop_'.$feature;
|
||||||
|
|
||||||
|
$orig = $feature;
|
||||||
|
$feature =~ s/^@//;
|
||||||
|
$space = $feature;
|
||||||
|
$space =~ s/./ /g;
|
||||||
|
|
||||||
|
$features{++$feature_count} = $feature;
|
||||||
|
|
||||||
|
$orig_retval = $retval;
|
||||||
|
|
||||||
|
if ($retval eq 'retval') {
|
||||||
|
$retval_param = '&retval';
|
||||||
|
$call_prefix = '';
|
||||||
|
$call_prefix_space = '';
|
||||||
|
$prefix = 'retval = ';
|
||||||
|
$prefix_space = ' ';
|
||||||
|
$retval = 'int';
|
||||||
|
} elsif ($retval !~ /^void$/) {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
$prefix = 'retval = ';
|
||||||
|
$prefix_space = ' ';
|
||||||
|
$call_prefix = 'retval = ';
|
||||||
|
$call_prefix_space = ' ';
|
||||||
|
} else {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
$call_prefix = '';
|
||||||
|
$call_prefix_space = '';
|
||||||
|
$prefix = '';
|
||||||
|
$prefix_space = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
||||||
|
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
||||||
|
}
|
||||||
|
|
||||||
|
$need_temp_storage = $always_use_temp_storage;
|
||||||
|
$first_param_name = '';
|
||||||
|
$size_code = "\t/* send size */\n";
|
||||||
|
$size_code .= "\t_LIBGTOP_SEND_len = 0;\n";
|
||||||
|
|
||||||
|
$local_var_decl_code = '';
|
||||||
|
$local_var_decl_code .= "\tsize_t _LIBGTOP_SEND_len, _LIBGTOP_RECV_len;\n";
|
||||||
|
$local_var_decl_code .= "\toff_t _LIBGTOP_SEND_offset;\n";
|
||||||
|
$local_var_decl_code .= "\tchar *_LIBGTOP_RECV_buf, *_LIBGTOP_RECV_ptr;\n";
|
||||||
|
$local_var_decl_code .= "\tconst char *_LIBGTOP_SEND_ptr;\n";
|
||||||
|
$local_var_decl_code .= sprintf
|
||||||
|
(qq[\tglibtop_%s %s;\n], $feature, $feature);
|
||||||
|
if ($retval !~ /^void$/) {
|
||||||
|
$local_var_decl_code .= sprintf ("\t%s retval = (%s) 0;\n",
|
||||||
|
$retval, $retval);
|
||||||
|
}
|
||||||
|
|
||||||
|
$init_local_var_code = "\t/* variable initialization */\n";
|
||||||
|
$init_local_var_code .= sprintf
|
||||||
|
(qq[\tmemset (&%s, 0, sizeof (glibtop_%s));\n], $feature, $feature);
|
||||||
|
$init_local_var_code .= "\t_LIBGTOP_SEND_offset = 0;\n";
|
||||||
|
$init_local_var_code .= "\t_LIBGTOP_SEND_ptr = ".
|
||||||
|
"(char *) send_ptr;\n";
|
||||||
|
|
||||||
|
$demarshal_code = '';
|
||||||
|
|
||||||
|
$call_param = '';
|
||||||
|
$param_decl = '';
|
||||||
|
$need_temp_len = 0;
|
||||||
|
$nr_params = (@params = split(/:/, $param_def, 9999));
|
||||||
|
for ($param = 1; $param <= $nr_params; $param++) {
|
||||||
|
$list = $params[$param];
|
||||||
|
$type = $params[$param];
|
||||||
|
$type =~ s/\(.*//;
|
||||||
|
$list =~ s/^.*\(//;
|
||||||
|
$list =~ s/\)$//;
|
||||||
|
$count = (@fields = split(/,/, $list, 9999));
|
||||||
|
for ($field = 1; $field <= $count; $field++) {
|
||||||
|
my $c_type = $typeinfo->{$type}->[1];
|
||||||
|
|
||||||
|
if ($first_param_name eq '') {
|
||||||
|
$first_param_name = $fields[$field];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($typeinfo->{$type}->[2]) {
|
||||||
|
$need_temp_storage = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($param_decl eq '') {
|
||||||
|
$param_decl = ",\n " . $space . ' ';
|
||||||
|
} else {
|
||||||
|
$param_decl = $param_decl . ', ';
|
||||||
|
}
|
||||||
|
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
||||||
|
$call_param = $call_param . ', _LIBGTOP_demarshal_' . $fields[$field];
|
||||||
|
|
||||||
|
$size_code .= "\t_LIBGTOP_SEND_len += ";
|
||||||
|
if ($typeinfo->{$type}->[2]) {
|
||||||
|
$size_code .= sprintf ("sizeof (size_t)");
|
||||||
|
} else {
|
||||||
|
$size_code .= sprintf ("sizeof (%s)", $c_type);
|
||||||
|
}
|
||||||
|
$size_code .= ";\n";
|
||||||
|
|
||||||
|
$local_var_decl_code .= sprintf
|
||||||
|
(qq[\t%s _LIBGTOP_demarshal_%s;\n], $c_type, $fields[$field]);
|
||||||
|
$init_local_var_code .= sprintf
|
||||||
|
(qq[\tmemset (&_LIBGTOP_demarshal_%s, 0, sizeof (%s));\n],
|
||||||
|
$fields[$field], $c_type);
|
||||||
|
|
||||||
|
$demarshal_code .= "\t_LIBGTOP_SEND_ptr = ".
|
||||||
|
"(char *) send_ptr + _LIBGTOP_SEND_offset;\n";
|
||||||
|
|
||||||
|
if ($typeinfo->{$type}->[2]) {
|
||||||
|
$demarshal_code .= sprintf ("\tmemcpy (&_LIBGTOP_TEMP_len, _LIBGTOP_SEND_ptr, sizeof (size_t));\n");
|
||||||
|
$demarshal_code .= sprintf
|
||||||
|
(qq[\t_LIBGTOP_DATA_len += _LIBGTOP_TEMP_len;\n]);
|
||||||
|
$demarshal_code .= sprintf
|
||||||
|
(qq[\tif (_LIBGTOP_DATA_len > data_size)\n\t\treturn -GLIBTOP_ERROR_DEMARSHAL_ERROR;\n]);
|
||||||
|
$demarshal_code .= sprintf
|
||||||
|
(qq[\t_LIBGTOP_DATA_offset += _LIBGTOP_TEMP_len;\n]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (defined $demarshal_funcs->{$type}) {
|
||||||
|
$demarshal_code .= $demarshal_funcs->{$type}->($c_type, $fields[$field], "\t");
|
||||||
|
} else {
|
||||||
|
$demarshal_code .= sprintf ("\tmemcpy (&_LIBGTOP_demarshal_%s, _LIBGTOP_SEND_ptr, %s);\n",
|
||||||
|
$fields[$field], "sizeof ($c_type)");
|
||||||
|
}
|
||||||
|
|
||||||
|
$demarshal_code .= "\t_LIBGTOP_SEND_offset += ";
|
||||||
|
if ($typeinfo->{$type}->[2]) {
|
||||||
|
$demarshal_code .= sprintf ("sizeof (size_t)");
|
||||||
|
} else {
|
||||||
|
$demarshal_code .= sprintf ("sizeof (%s)", $c_type);
|
||||||
|
}
|
||||||
|
$demarshal_code .= ";\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!($demarshal_code eq '')) {
|
||||||
|
$demarshal_code = sprintf (qq[\t/* demarshal start */\n%s\n],
|
||||||
|
$demarshal_code);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
$call_code = sprintf
|
||||||
|
("\tretval = glibtop_get_%s_p (server%s);\n",
|
||||||
|
$feature, $call_param);
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$call_code = sprintf
|
||||||
|
("\tretval = glibtop_get_%s_p (server, &array%s);\n",
|
||||||
|
$feature, $call_param);
|
||||||
|
$local_var_decl_code .= sprintf (qq[\tglibtop_array array;\n]);
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$call_code = sprintf
|
||||||
|
("\tretval = glibtop_get_%s_p (server, &array, &%s%s);\n",
|
||||||
|
$feature, $feature, $call_param);
|
||||||
|
$local_var_decl_code .= sprintf (qq[\tglibtop_array array;\n]);
|
||||||
|
} else {
|
||||||
|
$call_code = sprintf
|
||||||
|
("\tretval = glibtop_get_%s_p (server, &%s%s);\n",
|
||||||
|
$feature, $feature, $call_param);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($orig_retval eq 'retval') {
|
||||||
|
$call_code .= sprintf
|
||||||
|
(qq[\tif (retval_ptr)\n\t\t*retval_ptr = retval;\n]);
|
||||||
|
} else {
|
||||||
|
$call_code .= sprintf
|
||||||
|
(qq[\tif (retval_ptr)\n\t\t*retval_ptr = server->glibtop_errno;\n]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$size_code .= sprintf
|
||||||
|
(qq[\tif (_LIBGTOP_SEND_len != send_size)\n\t\treturn -GLIBTOP_ERROR_DEMARSHAL_ERROR;\n\n]);
|
||||||
|
|
||||||
|
$size_code .= "\t/* recv size */\n";
|
||||||
|
$size_code .= "\t_LIBGTOP_RECV_len = 0;\n";
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$size_code .= "\t_LIBGTOP_RECV_len += sizeof (glibtop_array);\n";
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$size_code .= "\t_LIBGTOP_RECV_len += sizeof (glibtop_array);\n";
|
||||||
|
$size_code .= sprintf
|
||||||
|
(qq[\t_LIBGTOP_RECV_len += sizeof (glibtop_%s);\n], $feature);
|
||||||
|
} else {
|
||||||
|
$size_code .= sprintf
|
||||||
|
(qq[\t_LIBGTOP_RECV_len += sizeof (glibtop_%s);\n], $feature);
|
||||||
|
}
|
||||||
|
$size_code .= "\n";
|
||||||
|
|
||||||
|
$size_code .= "\t/* recv buffer */\n";
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
$size_code .= "\t_LIBGTOP_RECV_buf = NULL;\n";
|
||||||
|
} else {
|
||||||
|
$size_code .= "\t_LIBGTOP_RECV_buf = g_malloc (_LIBGTOP_RECV_len);\n";
|
||||||
|
}
|
||||||
|
$size_code .= "\t_LIBGTOP_RECV_ptr = _LIBGTOP_RECV_buf;\n\n";
|
||||||
|
|
||||||
|
$recv_buf_code = '';
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$recv_buf_code = "\t/* write recv buffer */\n";
|
||||||
|
$recv_buf_code .= sprintf
|
||||||
|
(qq[\tmemcpy (_LIBGTOP_RECV_ptr, &array, sizeof (glibtop_array));\n]);
|
||||||
|
$recv_buf_code .= sprintf
|
||||||
|
(qq[\t_LIBGTOP_RECV_ptr += sizeof (glibtop_array);\n]);
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$recv_buf_code = "\t/* write recv buffer */\n";
|
||||||
|
$recv_buf_code .= sprintf
|
||||||
|
(qq[\tmemcpy (_LIBGTOP_RECV_ptr, &array, sizeof (glibtop_array));\n]);
|
||||||
|
$recv_buf_code .= sprintf
|
||||||
|
(qq[\t_LIBGTOP_RECV_ptr += sizeof (glibtop_array);\n]);
|
||||||
|
$recv_buf_code .= sprintf
|
||||||
|
(qq[\tmemcpy (_LIBGTOP_RECV_ptr, &%s, sizeof (glibtop_%s));\n],
|
||||||
|
$feature, $feature);
|
||||||
|
$recv_buf_code .= sprintf
|
||||||
|
(qq[\t_LIBGTOP_RECV_ptr += sizeof (glibtop_%s);\n], $feature);
|
||||||
|
} else {
|
||||||
|
$recv_buf_code = "\t/* write recv buffer */\n";
|
||||||
|
$recv_buf_code .= sprintf
|
||||||
|
(qq[\tmemcpy (_LIBGTOP_RECV_ptr, &%s, sizeof (glibtop_%s));\n],
|
||||||
|
$feature, $feature);
|
||||||
|
$recv_buf_code .= sprintf
|
||||||
|
(qq[\t_LIBGTOP_RECV_ptr += sizeof (glibtop_%s);\n], $feature);
|
||||||
|
}
|
||||||
|
|
||||||
|
$recv_buf_code .= "\n";
|
||||||
|
$recv_buf_code .= "\t*recv_buf_ptr = _LIBGTOP_RECV_buf;\n";
|
||||||
|
$recv_buf_code .= "\t*recv_size_ptr = _LIBGTOP_RECV_len;\n";
|
||||||
|
|
||||||
|
if ($orig_retval eq 'pointer(string)') {
|
||||||
|
$need_temp_storage = 1;
|
||||||
|
$local_var_decl_code .= "\tchar **_LIBGTOP_TEMP_ptr;\n";
|
||||||
|
$local_var_decl_code .= "\tchar *_LIBGTOP_ARRAY_ptr;\n";
|
||||||
|
$local_var_decl_code .= "\tchar *_LIBGTOP_ARRAY_base;\n";
|
||||||
|
$local_var_decl_code .= "\toff_t _LIBGTOP_ARRAY_offset;\n";
|
||||||
|
$local_var_decl_code .= "\toff_t *_LIBGTOP_ARRAY_off_ptr;\n";
|
||||||
|
|
||||||
|
$recv_buf_code .= "\n";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_TEMP_len = 0;\n";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_TEMP_ptr = retval;\n";
|
||||||
|
$recv_buf_code .= "\tfor (_LIBGTOP_TEMP_ptr = retval; _LIBGTOP_TEMP_ptr && *_LIBGTOP_TEMP_ptr; _LIBGTOP_TEMP_ptr++)\n";
|
||||||
|
$recv_buf_code .= "\t\t_LIBGTOP_TEMP_len += strlen (*_LIBGTOP_TEMP_ptr)+1;\n";
|
||||||
|
$recv_buf_code .= "\n";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_TEMP_len += sizeof (off_t) + 1;\n";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_TEMP_len += array.number * sizeof (off_t);\n";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_ARRAY_base = g_malloc (_LIBGTOP_TEMP_len);";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_ARRAY_ptr = _LIBGTOP_ARRAY_base;\n";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_ARRAY_offset = array.number * sizeof (off_t);\n";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_ARRAY_offset += sizeof (off_t);\n";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_ARRAY_off_ptr = (off_t *) _LIBGTOP_ARRAY_ptr;\n";
|
||||||
|
$recv_buf_code .= "\n";
|
||||||
|
$recv_buf_code .= "\t*_LIBGTOP_ARRAY_off_ptr++ = _LIBGTOP_ARRAY_offset;\n";
|
||||||
|
$recv_buf_code .= "\tfor (_LIBGTOP_TEMP_ptr = retval; _LIBGTOP_TEMP_ptr && *_LIBGTOP_TEMP_ptr; _LIBGTOP_TEMP_ptr++) {\n";
|
||||||
|
$recv_buf_code .= "\t\t*_LIBGTOP_ARRAY_off_ptr++ = _LIBGTOP_ARRAY_offset;\n";
|
||||||
|
$recv_buf_code .= "\t\t_LIBGTOP_ARRAY_offset += strlen (*_LIBGTOP_TEMP_ptr)+1;\n";
|
||||||
|
$recv_buf_code .= "\t}\n\n";
|
||||||
|
$recv_buf_code .= "\t_LIBGTOP_ARRAY_ptr = (char *) _LIBGTOP_ARRAY_off_ptr;\n";
|
||||||
|
$recv_buf_code .= "\tfor (_LIBGTOP_TEMP_ptr = retval; _LIBGTOP_TEMP_ptr && *_LIBGTOP_TEMP_ptr; _LIBGTOP_TEMP_ptr++) {\n";
|
||||||
|
$recv_buf_code .= "\t\tstrcpy (_LIBGTOP_ARRAY_ptr, *_LIBGTOP_TEMP_ptr);\n";
|
||||||
|
$recv_buf_code .= "\t\t_LIBGTOP_ARRAY_ptr += strlen (*_LIBGTOP_TEMP_ptr)+1;\n";
|
||||||
|
$recv_buf_code .= "\t}\n\n";
|
||||||
|
$recv_buf_code .= "\tif (recv_data_ptr) {\n";
|
||||||
|
$recv_buf_code .= "\t\t*recv_data_ptr = _LIBGTOP_ARRAY_base;\n";
|
||||||
|
$recv_buf_code .= "\t\t*recv_data_size_ptr = _LIBGTOP_TEMP_len;\n";
|
||||||
|
$recv_buf_code .= "\t}\n";
|
||||||
|
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$recv_buf_code .= "\n";
|
||||||
|
$recv_buf_code .= "\tif (recv_data_ptr) {\n";
|
||||||
|
$recv_buf_code .= "\t\t*recv_data_ptr = retval;\n";
|
||||||
|
$recv_buf_code .= "\t\t*recv_data_size_ptr = array.total;\n";
|
||||||
|
$recv_buf_code .= "\t}\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($need_temp_storage) {
|
||||||
|
$local_var_decl_code .= "\tsize_t _LIBGTOP_TEMP_len;\n";
|
||||||
|
$local_var_decl_code .= "\tsize_t _LIBGTOP_DATA_len;\n";
|
||||||
|
$local_var_decl_code .= "\toff_t _LIBGTOP_DATA_offset;\n";
|
||||||
|
$local_var_decl_code .= "\tchar *_LIBGTOP_DATA_ptr;\n";
|
||||||
|
|
||||||
|
$init_local_var_code .= "\t_LIBGTOP_DATA_len = 0;\n";
|
||||||
|
$init_local_var_code .= "\t_LIBGTOP_DATA_offset = 0;\n";
|
||||||
|
$init_local_var_code .= "\t_LIBGTOP_DATA_ptr = ".
|
||||||
|
"(char *) data_ptr;\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$func_decl_code = sprintf
|
||||||
|
(qq[static int\n_glibtop_demarshal_%s_i (glibtop *server, glibtop_backend *backend, const void *send_ptr, size_t send_size, void *data_ptr, size_t data_size, void **recv_buf_ptr, size_t *recv_size_ptr, void **recv_data_ptr, size_t *recv_data_size_ptr, int *retval_ptr)\n], $feature);
|
||||||
|
|
||||||
|
if (!($call_code eq '')) {
|
||||||
|
$call_code .= "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$func_body_code = sprintf
|
||||||
|
(qq[%s%s%s%s], $size_code, $demarshal_code, $call_code, $recv_buf_code);
|
||||||
|
|
||||||
|
$total_code = sprintf
|
||||||
|
(qq[%s{\n%s\n%s\n%s\n\treturn 0;\n}\n],
|
||||||
|
$func_decl_code, $local_var_decl_code, $init_local_var_code,
|
||||||
|
$func_body_code);
|
||||||
|
|
||||||
|
$total_code = sprintf ("#if GLIBTOP_SUID_%s\n\n%s\n#endif /* GLIBTOP_SUID_%s */\n\n",
|
||||||
|
&toupper($feature), $total_code,
|
||||||
|
&toupper($feature));
|
||||||
|
|
||||||
|
print $total_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
$func_decl_code = sprintf
|
||||||
|
(qq[int\nglibtop_demarshal_func_i (glibtop *server, glibtop_backend *backend, unsigned command, const void *send_ptr, size_t send_size, void *data_ptr, size_t data_size, void **recv_buf_ptr, size_t *recv_size_ptr, void **recv_data_ptr, size_t *recv_data_size_ptr, int *retval_ptr)]);
|
||||||
|
|
||||||
|
$switch_body_code = '';
|
||||||
|
|
||||||
|
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
||||||
|
$feature = $features{$nr};
|
||||||
|
|
||||||
|
$switch_body_code .= sprintf
|
||||||
|
(qq[#if GLIBTOP_SUID_%s\n\tcase GLIBTOP_CMND_%s:\n\t\treturn _glibtop_demarshal_%s_i\n\t\t\t(server, backend, send_ptr, send_size,\n\t\t\t data_ptr, data_size,\n\t\t\t recv_buf_ptr, recv_size_ptr,\n\t\t\t recv_data_ptr, recv_data_size_ptr, retval_ptr);\n#endif /* GLIBTOP_SUID_%s */\n],
|
||||||
|
&toupper ($feature), &toupper ($feature), $feature, &toupper ($feature));
|
||||||
|
}
|
||||||
|
|
||||||
|
$switch_code = sprintf
|
||||||
|
(qq[\tswitch (command) {\n%s\tdefault:\n\t\treturn -GLIBTOP_ERROR_INVALID_ARGUMENT;\n\t}\n], $switch_body_code);
|
||||||
|
|
||||||
|
$total_code = sprintf
|
||||||
|
(qq[%s\n{\n%s}\n\n], $func_decl_code, $switch_code);
|
||||||
|
|
||||||
|
print $total_code;
|
||||||
|
|
||||||
|
1;
|
114
backends/server/io.c
Normal file
114
backends/server/io.c
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "server.h"
|
||||||
|
|
||||||
|
void
|
||||||
|
do_output (int s, glibtop_response *resp, const void *recv_ptr,
|
||||||
|
const void *data_ptr)
|
||||||
|
{
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "Really writing %d bytes.\n",
|
||||||
|
sizeof (glibtop_response));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (s == 0) {
|
||||||
|
if (write (1, (const void *) resp, sizeof (glibtop_response)) < 0)
|
||||||
|
glibtop_warn_io ("write");
|
||||||
|
} else {
|
||||||
|
if (send (s, (const void *) resp, sizeof (glibtop_response), 0) < 0)
|
||||||
|
glibtop_warn_io ("send");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (resp->recv_size) {
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "Writing %ld bytes of data.\n",
|
||||||
|
(long) resp->recv_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (s == 0) {
|
||||||
|
if (write (1, recv_ptr, resp->recv_size) < 0)
|
||||||
|
glibtop_warn_io ("write");
|
||||||
|
} else {
|
||||||
|
if (send (s, recv_ptr, resp->recv_size, 0) < 0)
|
||||||
|
glibtop_warn_io ("send");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (resp->data_size) {
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "Writing %ld bytes of extra data.\n",
|
||||||
|
(long) resp->data_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (s == 0) {
|
||||||
|
if (write (1, data_ptr, resp->data_size) < 0)
|
||||||
|
glibtop_warn_io ("write");
|
||||||
|
} else {
|
||||||
|
if (send (s, data_ptr, resp->data_size, 0) < 0)
|
||||||
|
glibtop_warn_io ("send");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
do_read (int s, void *ptr, size_t total_size)
|
||||||
|
{
|
||||||
|
int nread;
|
||||||
|
char *tmp_ptr;
|
||||||
|
size_t already_read = 0, remaining = total_size;
|
||||||
|
|
||||||
|
while (already_read < total_size) {
|
||||||
|
if (s)
|
||||||
|
nread = recv (s, ptr, remaining, 0);
|
||||||
|
else
|
||||||
|
nread = read (0, ptr, remaining);
|
||||||
|
|
||||||
|
if ((already_read == 0) && (nread == 0)) {
|
||||||
|
glibtop_warn ("pid %d received eof.", getpid ());
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nread <= 0) {
|
||||||
|
glibtop_warn_io ("recv");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
already_read += nread;
|
||||||
|
remaining -= nread;
|
||||||
|
/* (char *) ptr += nread; */
|
||||||
|
tmp_ptr = ptr;
|
||||||
|
tmp_ptr += nread;
|
||||||
|
ptr = tmp_ptr;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "READ (%d): %d - %d - %d\n",
|
||||||
|
nread, already_read, remaining, total_size);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return already_read;
|
||||||
|
}
|
13
backends/server/libgtop-server.backend
Normal file
13
backends/server/libgtop-server.backend
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0"?> <!-- -*-xml-*- -->
|
||||||
|
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
|
||||||
|
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
|
||||||
|
|
||||||
|
<libgtop:Backend>
|
||||||
|
<libgtop:Name>glibtop-backend-server</libgtop:Name>
|
||||||
|
<libgtop:Location>
|
||||||
|
<libgtop:LibtoolName>libgtop_backend_server.la</libgtop:LibtoolName>
|
||||||
|
<libgtop:ShlibName>libgtop_backend_server.so</libgtop:ShlibName>
|
||||||
|
</libgtop:Location>
|
||||||
|
</libgtop:Backend>
|
||||||
|
|
||||||
|
</libgtop:Backends>
|
305
backends/server/marshal.pl
Normal file
305
backends/server/marshal.pl
Normal file
@@ -0,0 +1,305 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
require 'c_types.pl';
|
||||||
|
|
||||||
|
$[ = 1; # set array base to 1
|
||||||
|
$, = ' '; # set output field separator
|
||||||
|
$\ = "\n"; # set output record separator
|
||||||
|
|
||||||
|
$always_use_temp_storage = 1;
|
||||||
|
|
||||||
|
sub toupper {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/a-z/A-Z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub tolower {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/A-Z/a-z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
print '/* marshal.c */';
|
||||||
|
print "/* This is a generated file. Please modify `marshal.pl' */";
|
||||||
|
print '';
|
||||||
|
|
||||||
|
print '#include <backend-server.h>';
|
||||||
|
print '';
|
||||||
|
print '#include <glibtop/sysdeps.h>';
|
||||||
|
print '#include <glibtop/union.h>';
|
||||||
|
print '';
|
||||||
|
print '#include "command.h"';
|
||||||
|
print '#include <glibtop/call-vector.h>';
|
||||||
|
print '';
|
||||||
|
|
||||||
|
$feature_count = 0;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
chop; # strip record separator
|
||||||
|
|
||||||
|
if (/^[^#]/) {
|
||||||
|
&output($_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub output {
|
||||||
|
local($line) = @_;
|
||||||
|
@line_fields = split(/\|/, $line, 9999);
|
||||||
|
$retval = $line_fields[1];
|
||||||
|
$feature = $line_fields[2];
|
||||||
|
$param_def = $line_fields[4];
|
||||||
|
|
||||||
|
$orig = $feature;
|
||||||
|
$feature =~ s/^@//;
|
||||||
|
$space = $feature;
|
||||||
|
$space =~ s/./ /g;
|
||||||
|
|
||||||
|
$features{++$feature_count} = $orig;
|
||||||
|
return if $orig =~ /^@/;
|
||||||
|
|
||||||
|
$orig_retval = $retval;
|
||||||
|
if ($retval eq 'retval') {
|
||||||
|
$retval_param = '&retval';
|
||||||
|
$call_prefix = '';
|
||||||
|
$call_prefix_space = '';
|
||||||
|
$prefix = 'retval = ';
|
||||||
|
$prefix_space = ' ';
|
||||||
|
$retval = 'int';
|
||||||
|
}
|
||||||
|
elsif ($retval !~ /^void$/) {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
$prefix = 'retval = ';
|
||||||
|
$prefix_space = ' ';
|
||||||
|
$call_prefix = 'retval = ';
|
||||||
|
$call_prefix_space = ' ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
$call_prefix = '';
|
||||||
|
$call_prefix_space = '';
|
||||||
|
$prefix = '';
|
||||||
|
$prefix_space = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
||||||
|
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
||||||
|
}
|
||||||
|
|
||||||
|
$need_temp_storage = $always_use_temp_storage;
|
||||||
|
$local_var_init_code = "\t/* variable initialization */\n";
|
||||||
|
$local_var_init_code .= "\t_LIBGTOP_SEND_len = 0;\n";
|
||||||
|
$local_var_init_code .= "\t_LIBGTOP_DATA_len = 0;\n";
|
||||||
|
$local_var_init_code .= "\t_LIBGTOP_SEND_offset = 0;\n";
|
||||||
|
$local_var_init_code .= "\t_LIBGTOP_SEND_ptr = ".
|
||||||
|
"(char *) _LIBGTOP_SEND_buf;\n";
|
||||||
|
$marshal_code = "\t/* marshal start */\n";
|
||||||
|
$marshal_code .= "\tmemset (_LIBGTOP_SEND_buf, 0, _LIBGTOP_SEND_len);\n";
|
||||||
|
$first_param_name = '';
|
||||||
|
$size_code = '';
|
||||||
|
|
||||||
|
$call_param = '';
|
||||||
|
$param_decl = '';
|
||||||
|
$need_temp_len = 0;
|
||||||
|
$nr_params = (@params = split(/:/, $param_def, 9999));
|
||||||
|
for ($param = 1; $param <= $nr_params; $param++) {
|
||||||
|
$list = $params[$param];
|
||||||
|
$type = $params[$param];
|
||||||
|
$type =~ s/\(.*//;
|
||||||
|
$list =~ s/^.*\(//;
|
||||||
|
$list =~ s/\)$//;
|
||||||
|
$count = (@fields = split(/,/, $list, 9999));
|
||||||
|
for ($field = 1; $field <= $count; $field++) {
|
||||||
|
my $c_type = $typeinfo->{$type}->[1];
|
||||||
|
|
||||||
|
if ($first_param_name eq '') {
|
||||||
|
$first_param_name = $fields[$field];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($typeinfo->{$type}->[2]) {
|
||||||
|
$need_temp_storage = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($param_decl eq '') {
|
||||||
|
$param_decl = ",\n " . $space . ' ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$param_decl = $param_decl . ', ';
|
||||||
|
}
|
||||||
|
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
||||||
|
$call_param = $call_param . ', ' . $fields[$field];
|
||||||
|
|
||||||
|
$size_code .= "\t_LIBGTOP_SEND_len += ";
|
||||||
|
if ($typeinfo->{$type}->[2]) {
|
||||||
|
$size_code .= sprintf ("sizeof (size_t)");
|
||||||
|
} else {
|
||||||
|
$size_code .= sprintf ("sizeof (%s)", $c_type);
|
||||||
|
}
|
||||||
|
$size_code .= ";\n";
|
||||||
|
|
||||||
|
if (defined $sizeof_funcs->{$type}) {
|
||||||
|
$size_code .= "\t_LIBGTOP_DATA_len += ";
|
||||||
|
$size_code .= $sizeof_funcs->{$type}->($fields[$field]);
|
||||||
|
$size_code .= ";\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$marshal_code .= "\t_LIBGTOP_SEND_ptr = ".
|
||||||
|
"(char *) _LIBGTOP_SEND_buf + _LIBGTOP_SEND_offset;\n";
|
||||||
|
|
||||||
|
if (defined $marshal_funcs->{$type}) {
|
||||||
|
$marshal_code .= $marshal_funcs->{$type}->($c_type, $fields[$field], "\t");
|
||||||
|
} else {
|
||||||
|
$marshal_code .= sprintf ("\tmemcpy (_LIBGTOP_SEND_ptr, %s, %s);\n",
|
||||||
|
'&'.$fields[$field], "sizeof ($c_type)");
|
||||||
|
}
|
||||||
|
|
||||||
|
$marshal_code .= "\t_LIBGTOP_SEND_offset += ";
|
||||||
|
if ($typeinfo->{$type}->[2]) {
|
||||||
|
$marshal_code .= sprintf ("sizeof (size_t)");
|
||||||
|
} else {
|
||||||
|
$marshal_code .= sprintf ("sizeof (%s)", $c_type);
|
||||||
|
}
|
||||||
|
$marshal_code .= ";\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$local_var_code = "";
|
||||||
|
$local_var_code .= "\tunsigned _LIBGTOP_SEND_offset, _LIBGTOP_SEND_len;\n";
|
||||||
|
$local_var_code .= "\tunsigned _LIBGTOP_DATA_len;\n";
|
||||||
|
if ($need_temp_len) {
|
||||||
|
$local_var_code .= "\tunsigned _LIBGTOP_SEND_temp_len;\n";
|
||||||
|
}
|
||||||
|
$local_var_code .= "\tvoid *_LIBGTOP_SEND_buf, *_LIBGTOP_DATA_buf;\n";
|
||||||
|
$local_var_code .= "\tchar *_LIBGTOP_SEND_ptr, *_LIBGTOP_DATA_ptr;\n";
|
||||||
|
if ($retval !~ /^void$/) {
|
||||||
|
$local_var_code .= sprintf ("\t%s retval = (%s) 0;\n",
|
||||||
|
$retval, $retval);
|
||||||
|
}
|
||||||
|
|
||||||
|
$total_code = '';
|
||||||
|
|
||||||
|
$send_buf_code = "\t/* send buffer */\n";
|
||||||
|
$send_buf_code .= "\t_LIBGTOP_SEND_buf = ";
|
||||||
|
if ($need_temp_storage) {
|
||||||
|
$send_buf_code .= "g_malloc (_LIBGTOP_SEND_len+1)";
|
||||||
|
} else {
|
||||||
|
$send_buf_code .= '(void *) &'.$first_param_name;
|
||||||
|
}
|
||||||
|
$send_buf_code .= ";\n\n";
|
||||||
|
|
||||||
|
$send_buf_code .= "\t/* data buffer */\n";
|
||||||
|
$send_buf_code .= "\t_LIBGTOP_DATA_buf = ";
|
||||||
|
if ($need_temp_storage) {
|
||||||
|
$send_buf_code .= "g_malloc (_LIBGTOP_DATA_len+1)";
|
||||||
|
} else {
|
||||||
|
$send_buf_code .= 'NULL';
|
||||||
|
}
|
||||||
|
$send_buf_code .= ";\n";
|
||||||
|
$send_buf_code .= "\t_LIBGTOP_DATA_ptr = _LIBGTOP_DATA_buf;\n";
|
||||||
|
|
||||||
|
$call_code = '';
|
||||||
|
$call_code .= sprintf ("\t%sglibtop_call_i (server, closure, GLIBTOP_CMND_%s,\n",
|
||||||
|
$call_prefix, &toupper($feature));
|
||||||
|
$call_code .= sprintf ("\t\t\t%s%s, %s,\n", $call_prefix_space,
|
||||||
|
"_LIBGTOP_SEND_len", "_LIBGTOP_SEND_buf");
|
||||||
|
$call_code .= sprintf ("\t\t\t%s%s, %s,\n", $call_prefix_space,
|
||||||
|
"_LIBGTOP_DATA_len", "_LIBGTOP_DATA_buf");
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
$call_code .= sprintf ("\t\t\t%s0, NULL,\n", $call_prefix_space);
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$call_code .= sprintf ("\t\t\t%ssizeof (glibtop_array), array,\n",
|
||||||
|
$call_prefix_space);
|
||||||
|
} else {
|
||||||
|
$call_code .= sprintf ("\t\t\t%ssizeof (glibtop_%s), buf,\n",
|
||||||
|
$call_prefix_space, $feature);
|
||||||
|
}
|
||||||
|
$call_code .= sprintf ("\t\t\t%s%s);\n", $call_prefix_space, $retval_param);
|
||||||
|
|
||||||
|
if ($need_temp_storage) {
|
||||||
|
$send_buf_free_code = "\tg_free (_LIBGTOP_SEND_buf);\n";
|
||||||
|
$send_buf_free_code .= "\tg_free (_LIBGTOP_DATA_buf);\n";
|
||||||
|
} else {
|
||||||
|
$send_buf_free_code = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!($size_code eq '')) {
|
||||||
|
$size_code = sprintf (qq[\t/* send size */\n%s\n], $size_code);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($orig_retval eq 'pointer(string)') {
|
||||||
|
$call_code .= "\n";
|
||||||
|
$local_var_code .= "\tchar *_LIBGTOP_ARRAY_ptr, **ptrlist;\n";
|
||||||
|
$local_var_code .= "\toff_t *_LIBGTOP_ARRAY_off_ptr;\n";
|
||||||
|
$local_var_code .= "\tint i;\n";
|
||||||
|
$call_code .= "\tptrlist = g_malloc (array->number+1 * sizeof (char *));\n";
|
||||||
|
$call_code .= "\t_LIBGTOP_ARRAY_off_ptr = (off_t *) retval;\n";
|
||||||
|
$call_code .= "\t_LIBGTOP_ARRAY_ptr = (char *) retval;\n";
|
||||||
|
$call_code .= "\t_LIBGTOP_ARRAY_off_ptr++;\n\n";
|
||||||
|
$call_code .= "\tfor (i = 0; i < array->number; i++)\n";
|
||||||
|
$call_code .= "\t\tptrlist [i] = g_strdup (_LIBGTOP_ARRAY_ptr + *_LIBGTOP_ARRAY_off_ptr++);\n";
|
||||||
|
$call_code .= "\tptrlist [array->number] = NULL;\n\n";
|
||||||
|
$call_code .= "\tg_free (retval);\n";
|
||||||
|
$call_code .= "\tretval = ptrlist;\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$total_code .= sprintf ("%s%s\n%s\n%s\n%s\n",
|
||||||
|
$size_code, $send_buf_code, $marshal_code,
|
||||||
|
$call_code, $send_buf_free_code);
|
||||||
|
|
||||||
|
$return_code = '';
|
||||||
|
if ($retval !~ /^void$/) {
|
||||||
|
$return_code .= "\treturn retval;\n";
|
||||||
|
} else {
|
||||||
|
$return_code .= "\treturn;\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$total_code .= $return_code;
|
||||||
|
|
||||||
|
$func_decl = 'static '.$retval."\n";
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
|
||||||
|
$feature, $param_decl);
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
|
||||||
|
$feature, $param_decl);
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
|
||||||
|
$feature, 'glibtop_'.$feature, $param_decl);
|
||||||
|
} else {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
|
||||||
|
$feature, 'glibtop_'.$feature, $param_decl);
|
||||||
|
}
|
||||||
|
|
||||||
|
$total_code = sprintf ("%s{\n%s\n%s\n%s\n%s}\n", $func_decl,
|
||||||
|
$local_var_code, $local_var_init_code,
|
||||||
|
$total_code);
|
||||||
|
|
||||||
|
|
||||||
|
$total_code = sprintf ("#if GLIBTOP_SUID_%s\n\n%s\n#endif /* GLIBTOP_SUID_%s */\n\n",
|
||||||
|
&toupper($feature), $total_code,
|
||||||
|
&toupper($feature));
|
||||||
|
|
||||||
|
print $total_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
$call_vector_code = '';
|
||||||
|
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
||||||
|
$feature = $features{$nr};
|
||||||
|
|
||||||
|
$orig = $feature;
|
||||||
|
$feature =~ s/^@//;
|
||||||
|
|
||||||
|
if ($orig =~ /^@/) {
|
||||||
|
$call_vector_code .= sprintf (qq[\tNULL,\n]);
|
||||||
|
} else {
|
||||||
|
$call_vector_code .= sprintf
|
||||||
|
(qq[\#if GLIBTOP_SUID_%s\n\t_glibtop_get_%s_c,\n\#else\n\tNULL,\n\#endif\n],
|
||||||
|
&toupper($feature), $feature);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print 'glibtop_call_vector glibtop_backend_server_call_vector = {';
|
||||||
|
print $call_vector_code;
|
||||||
|
print '};';
|
||||||
|
print '';
|
||||||
|
|
46
backends/server/read.c
Normal file
46
backends/server/read.c
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <backend-server.h>
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_read_i (backend_server_private *priv, size_t size, void *buf)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "LIBRARY: really reading %d bytes from %d.\n",
|
||||||
|
size, priv->input [0]);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret = read (priv->input [0], buf, size);
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "LIBRARY: read %d bytes.\n", ret);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (ret < 0)
|
||||||
|
glibtop_error_io_r (priv->server, "read %d bytes", size);
|
||||||
|
}
|
@@ -1,3 +1,5 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
@@ -21,52 +23,36 @@
|
|||||||
Boston, MA 02111-1307, USA.
|
Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <glibtop/xmalloc.h>
|
#include <backend-server.h>
|
||||||
|
|
||||||
/* Wrappers to malloc, calloc, realloc ... */
|
|
||||||
|
|
||||||
void *
|
void *
|
||||||
glibtop_malloc_r (glibtop *server, size_t size)
|
glibtop_read_data_i (backend_server_private *priv)
|
||||||
{
|
{
|
||||||
void *buf = malloc (size);
|
size_t size;
|
||||||
|
void *ptr;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (!buf)
|
#ifdef DEBUG
|
||||||
glibtop_error_io_r (server, "malloc %d bytes", size);
|
fprintf (stderr, "LIBRARY: reading %d data bytes.\n", sizeof (size_t));
|
||||||
|
#endif
|
||||||
|
|
||||||
return buf;
|
ret = read (priv->input [0], (void *)&size, sizeof (size_t));
|
||||||
}
|
|
||||||
|
if (ret < 0)
|
||||||
void *
|
glibtop_error_io_r (priv->server, "read data size");
|
||||||
glibtop_calloc_r (glibtop *server, size_t nmemb, size_t size)
|
|
||||||
{
|
#ifdef DEBUG
|
||||||
void *buf = calloc (nmemb, size);
|
fprintf (stderr, "LIBRARY: really reading %d data bytes (ret = %d).\n", size, ret);
|
||||||
|
#endif
|
||||||
if (!buf)
|
|
||||||
glibtop_error_io_r (server, "calloc %d blocks (%d bytes each)",
|
if (!size) return NULL;
|
||||||
nmemb, size);
|
|
||||||
|
ptr = g_malloc (size);
|
||||||
return buf;
|
|
||||||
}
|
ret = read (priv->input [0], ptr, size);
|
||||||
|
|
||||||
void *
|
if (ret < 0)
|
||||||
glibtop_realloc_r (glibtop *server, void *ptr, size_t size)
|
glibtop_error_io_r (priv->server, "read data %d bytes");
|
||||||
{
|
|
||||||
void *buf = realloc (ptr, size);
|
return ptr;
|
||||||
|
|
||||||
if (!buf)
|
|
||||||
glibtop_error_io_r (server, "realloc %d bytes", size);
|
|
||||||
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
glibtop_strdup_r (glibtop *server, const char *string)
|
|
||||||
{
|
|
||||||
return strcpy (glibtop_malloc_r (server, strlen (string) + 1), string);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_free_r (glibtop *server, const void *ptr)
|
|
||||||
{
|
|
||||||
if (ptr) free ((void *) ptr);
|
|
||||||
}
|
}
|
189
backends/server/server.c
Normal file
189
backends/server/server.c
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "server.h"
|
||||||
|
|
||||||
|
static glibtop _glibtop_global_server;
|
||||||
|
glibtop *glibtop_global_server = &_glibtop_global_server;
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/union.h>
|
||||||
|
#include <glibtop/sysdeps.h>
|
||||||
|
|
||||||
|
#include <sys/utsname.h>
|
||||||
|
|
||||||
|
const unsigned long glibtop_server_features =
|
||||||
|
GLIBTOP_SUID_CPU +
|
||||||
|
GLIBTOP_SUID_MEM +
|
||||||
|
GLIBTOP_SUID_SWAP +
|
||||||
|
GLIBTOP_SUID_UPTIME +
|
||||||
|
GLIBTOP_SUID_LOADAVG +
|
||||||
|
GLIBTOP_SUID_SHM_LIMITS +
|
||||||
|
GLIBTOP_SUID_MSG_LIMITS +
|
||||||
|
GLIBTOP_SUID_SEM_LIMITS +
|
||||||
|
GLIBTOP_SUID_PROCLIST +
|
||||||
|
GLIBTOP_SUID_PROC_STATE +
|
||||||
|
GLIBTOP_SUID_PROC_UID +
|
||||||
|
GLIBTOP_SUID_PROC_MEM +
|
||||||
|
GLIBTOP_SUID_PROC_TIME +
|
||||||
|
GLIBTOP_SUID_PROC_SIGNAL +
|
||||||
|
GLIBTOP_SUID_PROC_KERNEL +
|
||||||
|
GLIBTOP_SUID_PROC_SEGMENT +
|
||||||
|
GLIBTOP_SUID_PROC_ARGS +
|
||||||
|
GLIBTOP_SUID_PROC_MAP +
|
||||||
|
GLIBTOP_SUID_NETINFO +
|
||||||
|
GLIBTOP_SUID_NETLOAD +
|
||||||
|
GLIBTOP_SUID_INTERFACE_NAMES +
|
||||||
|
GLIBTOP_SUID_PPP;
|
||||||
|
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <locale.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
struct utsname uts;
|
||||||
|
int uid, euid, gid, egid;
|
||||||
|
glibtop *server;
|
||||||
|
|
||||||
|
/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
|
||||||
|
|
||||||
|
uid = getuid (); euid = geteuid ();
|
||||||
|
gid = getgid (); egid = getegid ();
|
||||||
|
|
||||||
|
if (uname (&uts) < 0) _exit (1);
|
||||||
|
|
||||||
|
if (strcmp (uts.sysname, LIBGTOP_COMPILE_SYSTEM) ||
|
||||||
|
strcmp (uts.release, LIBGTOP_COMPILE_RELEASE) ||
|
||||||
|
strcmp (uts.machine, LIBGTOP_COMPILE_MACHINE)) {
|
||||||
|
fprintf (stderr, "Can only run on %s %s %s\n",
|
||||||
|
LIBGTOP_COMPILE_SYSTEM,
|
||||||
|
LIBGTOP_COMPILE_RELEASE,
|
||||||
|
LIBGTOP_COMPILE_MACHINE);
|
||||||
|
_exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
server = glibtop_global_server;
|
||||||
|
|
||||||
|
if (!server->_priv)
|
||||||
|
server->_priv = g_malloc (sizeof (glibtop_server_private));
|
||||||
|
|
||||||
|
glibtop_init_p (server, 0, 0);
|
||||||
|
|
||||||
|
if (setreuid (euid, uid)) _exit (1);
|
||||||
|
|
||||||
|
if (setregid (egid, gid)) _exit (1);
|
||||||
|
|
||||||
|
/* !!! END OF SUID ROOT PART !!! */
|
||||||
|
|
||||||
|
handle_slave_connection (0, 0);
|
||||||
|
|
||||||
|
_exit (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
handle_slave_connection (int input, int output)
|
||||||
|
{
|
||||||
|
glibtop_command _cmnd, *cmnd = &_cmnd;
|
||||||
|
glibtop *server = glibtop_global_server;
|
||||||
|
|
||||||
|
// glibtop_send_version_i (glibtop_global_server, output);
|
||||||
|
|
||||||
|
while (do_read (input, cmnd, sizeof (glibtop_command))) {
|
||||||
|
size_t recv_size = 0, send_size = 0, recv_data_size = 0;
|
||||||
|
void *recv_ptr = NULL, *recv_data_ptr = NULL, *data_ptr = NULL;
|
||||||
|
char parameter [BUFSIZ];
|
||||||
|
int retval, func_retval;
|
||||||
|
glibtop_response resp;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "Slave %d received command "
|
||||||
|
"%ld from client.\n", getpid (), (long) cmnd->command);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (cmnd->send_size >= BUFSIZ)
|
||||||
|
glibtop_error ("Client sent %d bytes, but buffer is %d",
|
||||||
|
cmnd->send_size, BUFSIZ);
|
||||||
|
else if (cmnd->param_size >= BUFSIZ)
|
||||||
|
glibtop_error ("Client sent %d bytes, but buffer is %d",
|
||||||
|
cmnd->param_size, BUFSIZ);
|
||||||
|
|
||||||
|
memset (parameter, 0, sizeof (parameter));
|
||||||
|
|
||||||
|
if (cmnd->send_size) {
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "Client has %d bytes of data.\n",
|
||||||
|
cmnd->send_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
send_size = cmnd->send_size;
|
||||||
|
do_read (input, parameter, send_size);
|
||||||
|
} else if (cmnd->param_size) {
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "Client has %d bytes of parameter data.\n",
|
||||||
|
cmnd->param_size);
|
||||||
|
#endif
|
||||||
|
send_size = cmnd->param_size;
|
||||||
|
memcpy (parameter, cmnd->parameter, send_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cmnd->data_size) {
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "CLIENT has %d bytes of extra data for us.\n",
|
||||||
|
cmnd->data_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
data_ptr = g_malloc (cmnd->data_size);
|
||||||
|
do_read (input, data_ptr, cmnd->data_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
retval = glibtop_demarshal_func_i (server, NULL,
|
||||||
|
cmnd->command,
|
||||||
|
parameter, send_size,
|
||||||
|
data_ptr, cmnd->data_size,
|
||||||
|
&recv_ptr, &recv_size,
|
||||||
|
&recv_data_ptr, &recv_data_size,
|
||||||
|
&func_retval);
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "Retval %d / %d - %p - %d\n",
|
||||||
|
retval, func_retval, recv_ptr, recv_size);
|
||||||
|
|
||||||
|
if (recv_data_size) {
|
||||||
|
fprintf (stderr, "Returning %d bytes of data from %p.\n",
|
||||||
|
recv_data_size, recv_data_ptr);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
memset (&resp, 0, sizeof (glibtop_response));
|
||||||
|
|
||||||
|
resp.retval = retval;
|
||||||
|
resp.glibtop_errno = func_retval;
|
||||||
|
resp.recv_size = recv_size;
|
||||||
|
resp.data_size = recv_data_size;
|
||||||
|
|
||||||
|
do_output (output, &resp, recv_ptr, recv_data_ptr);
|
||||||
|
}
|
||||||
|
}
|
84
backends/server/server.h
Normal file
84
backends/server/server.h
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_DAEMON_H__
|
||||||
|
#define __GLIBTOP_DAEMON_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/error.h>
|
||||||
|
|
||||||
|
#include <glibtop/open.h>
|
||||||
|
#include <glibtop/union.h>
|
||||||
|
#include <glibtop/parameter.h>
|
||||||
|
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <syslog.h>
|
||||||
|
|
||||||
|
#include <glibtop/backend.h>
|
||||||
|
#include <glibtop-backend-private.h>
|
||||||
|
|
||||||
|
#include "command.h"
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* Some don't have LOG_PERROR */
|
||||||
|
#ifndef LOG_PERROR
|
||||||
|
#define LOG_PERROR 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LIBGTOP_VERSION_STRING "Libgtop %s server version %s (%u,%u,%u,%u)."
|
||||||
|
|
||||||
|
#if defined(HAVE_GETDTABLESIZE)
|
||||||
|
#define GET_MAX_FDS() getdtablesize()
|
||||||
|
#else
|
||||||
|
/* Fallthrough case - please add other #elif cases above
|
||||||
|
for different OS's as necessary */
|
||||||
|
#define GET_MAX_FDS() 256
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void
|
||||||
|
do_output (int s, glibtop_response *resp, const void *recv_ptr,
|
||||||
|
const void *data_ptr);
|
||||||
|
|
||||||
|
int
|
||||||
|
do_read (int s, void *ptr, size_t total_size);
|
||||||
|
|
||||||
|
void
|
||||||
|
handle_slave_connection (int input, int output);
|
||||||
|
|
||||||
|
int
|
||||||
|
glibtop_demarshal_func_i (glibtop *server, glibtop_backend *backend, unsigned command, const void *send_ptr, size_t send_size, void *data_ptr, size_t data_size, void **recv_buf_ptr, size_t *recv_size_ptr, void **recv_data_ptr, size_t *recv_data_size_ptr, int *retval_ptr);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_send_version_i (glibtop *server, int fd);
|
||||||
|
|
||||||
|
extern int enable_debug;
|
||||||
|
extern int verbose_output;
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
62
backends/server/version.c
Normal file
62
backends/server/version.c
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "server.h"
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_send_version_i (glibtop *server, int fd)
|
||||||
|
{
|
||||||
|
char buffer [BUFSIZ];
|
||||||
|
size_t size;
|
||||||
|
|
||||||
|
sprintf (buffer, LIBGTOP_VERSION_STRING,
|
||||||
|
LIBGTOP_VERSION, LIBGTOP_SERVER_VERSION,
|
||||||
|
sizeof (glibtop_command),
|
||||||
|
sizeof (glibtop_response),
|
||||||
|
sizeof (glibtop_union),
|
||||||
|
sizeof (glibtop_sysdeps));
|
||||||
|
|
||||||
|
size = strlen (buffer) + 1;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "SERVER ID: |%s|\n", buffer);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fd == 0) {
|
||||||
|
if (write (1, (const void *) &size, sizeof (size)) < 0)
|
||||||
|
glibtop_warn_io_r (server, "write");
|
||||||
|
} else {
|
||||||
|
if (send (fd, (const void *) &size, sizeof (size), 0) < 0)
|
||||||
|
glibtop_warn_io_r (server, "send");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fd == 0) {
|
||||||
|
if (write (1, (const void *) buffer, size) < 0)
|
||||||
|
glibtop_warn_io_r (server, "write");
|
||||||
|
} else {
|
||||||
|
if (send (fd, (const void *) buffer, size, 0) < 0)
|
||||||
|
glibtop_warn_io_r (server, "send");
|
||||||
|
}
|
||||||
|
}
|
43
backends/server/write.c
Normal file
43
backends/server/write.c
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <backend-server.h>
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_write_i (backend_server_private *priv, size_t size, const void *buf)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (size == 0) return;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf (stderr, "LIBRARY: really writing %d bytes.\n", size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret = write (priv->output [1], buf, size);
|
||||||
|
|
||||||
|
if (ret < 0)
|
||||||
|
glibtop_error_io_r (priv->server, "write %d bytes", size);
|
||||||
|
}
|
7
backends/sysdeps/.cvsignore
Normal file
7
backends/sysdeps/.cvsignore
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
.deps
|
||||||
|
.libs
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
*.lo
|
||||||
|
*.la
|
||||||
|
marshal.c
|
68
backends/sysdeps/ChangeLog
Normal file
68
backends/sysdeps/ChangeLog
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* backend-sysdeps.c: (_open_sysdeps): s/u_int64_t/guint64/
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* backend-sysdeps.h: fixed compilation
|
||||||
|
|
||||||
|
2000-11-26 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* glibtop-backend-private.h: Removed.
|
||||||
|
|
||||||
|
* backend-sysdeps.h: New files.
|
||||||
|
|
||||||
|
* backend-sysdeps.c (_open_sysdeps): Don't overwrite
|
||||||
|
`backend->_priv'.
|
||||||
|
|
||||||
|
2000-11-22 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* Makefile.am: Link libgtop_backend_sysdeps.la against
|
||||||
|
$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la and
|
||||||
|
$(top_builddir)/lib/libgtop_server.la.
|
||||||
|
|
||||||
|
* libgtop-sysdeps.backend: Removed the ExtraLibs section.
|
||||||
|
|
||||||
|
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* backend-sysdeps.c (LibGTopBackendInfo): Call this
|
||||||
|
`LibGTopBackendInfo_Sysdeps' when we don't use gmodule.
|
||||||
|
|
||||||
|
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
|
||||||
|
when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
|
||||||
|
|
||||||
|
2000-01-22 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* libgtop-sysdeps.backend: Added "ExtraLibs" section to
|
||||||
|
load `-lgtop_sysdeps'.
|
||||||
|
|
||||||
|
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR).
|
||||||
|
|
||||||
|
* libgtop-sysdeps.backend: New file.
|
||||||
|
|
||||||
|
* backend-sysdeps.c (glibtop_backend_sysdeps): Renamed to
|
||||||
|
`LibGTopBackendInfo'.
|
||||||
|
|
||||||
|
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* marshal.pl: Create the `_glibtop_init_hook_s' as well.
|
||||||
|
|
||||||
|
* marshal.pl: Don't create code for things which are now
|
||||||
|
in the new `glibtop-backend-common' backend.
|
||||||
|
|
||||||
|
2000-01-02 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
* marshal.pl: New file. Automatically creates `marshal.c'.
|
||||||
|
* call-vector.c: Removed.
|
||||||
|
|
||||||
|
2000-01-01 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
|
Initial version of the "glibtop-backend-sysdeps" backend.
|
||||||
|
|
||||||
|
* backend-sysdeps.c: New file.
|
||||||
|
* glibtop-backend-private.h: New file.
|
||||||
|
|
47
backends/sysdeps/Makefile.am
Normal file
47
backends/sysdeps/Makefile.am
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
INCLUDES = @INCLUDES@
|
||||||
|
|
||||||
|
backenddir = @LIBGTOP_BACKEND_DIR@
|
||||||
|
|
||||||
|
if LIBGTOP_USE_GMODULE
|
||||||
|
backendlibdir = $(backenddir)
|
||||||
|
else
|
||||||
|
backendlibdir = $(libdir)
|
||||||
|
endif
|
||||||
|
|
||||||
|
dynamic_ldflags = @libgtop_dynamic_ldflags@
|
||||||
|
|
||||||
|
backend_DATA = \
|
||||||
|
libgtop-sysdeps.backend
|
||||||
|
|
||||||
|
noinst_HEADERS = \
|
||||||
|
backend-sysdeps.h
|
||||||
|
|
||||||
|
backendlib_LTLIBRARIES = \
|
||||||
|
libgtop_backend_sysdeps.la
|
||||||
|
|
||||||
|
libgtop_backend_sysdeps_la_SOURCES = \
|
||||||
|
backend-sysdeps.c \
|
||||||
|
marshal.c
|
||||||
|
|
||||||
|
libgtop_backend_sysdeps_la_LDFLAGS = \
|
||||||
|
$(LT_VERSION_INFO) $(dynamic_ldflags)
|
||||||
|
|
||||||
|
libgtop_backend_sysdeps_la_LIBADD = \
|
||||||
|
$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la
|
||||||
|
$(top_builddir)/lib/libgtop_server.la
|
||||||
|
|
||||||
|
BUILT_SOURCES = \
|
||||||
|
marshal.c
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
marshal.pl \
|
||||||
|
libgtop-sysdeps.backend
|
||||||
|
|
||||||
|
CLEANFILES = $(BUILT_SOURCES)
|
||||||
|
|
||||||
|
marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
||||||
|
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t
|
||||||
|
mv tmp-t marshal.c
|
||||||
|
|
76
backends/sysdeps/backend-sysdeps.c
Normal file
76
backends/sysdeps/backend-sysdeps.c
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <backend-sysdeps.h>
|
||||||
|
|
||||||
|
static int
|
||||||
|
_open_sysdeps (glibtop_server *, glibtop_backend *, guint64, const char **);
|
||||||
|
|
||||||
|
static int
|
||||||
|
_close_sysdeps (glibtop_server *, glibtop_backend *, void *);
|
||||||
|
|
||||||
|
extern glibtop_call_vector glibtop_backend_sysdeps_call_vector;
|
||||||
|
|
||||||
|
#ifdef LIBGTOP_USE_GMODULE
|
||||||
|
glibtop_backend_info LibGTopBackendInfo = {
|
||||||
|
"glibtop-backend-sysdeps", _open_sysdeps, _close_sysdeps,
|
||||||
|
&glibtop_backend_sysdeps_call_vector
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
glibtop_backend_info LibGTopBackendInfo_Sysdeps = {
|
||||||
|
"glibtop-backend-sysdeps", _open_sysdeps, _close_sysdeps,
|
||||||
|
&glibtop_backend_sysdeps_call_vector
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static int
|
||||||
|
_open_sysdeps (glibtop_server *server, glibtop_backend *backend,
|
||||||
|
guint64 features, const char **backend_args)
|
||||||
|
{
|
||||||
|
glibtop_init_func_t *init_fkt;
|
||||||
|
|
||||||
|
/* Do the initialization, but only if not already initialized. */
|
||||||
|
|
||||||
|
if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) {
|
||||||
|
glibtop_open_s (server, "glibtop", features, 0);
|
||||||
|
|
||||||
|
for (init_fkt = _glibtop_init_hook_s; *init_fkt; init_fkt++)
|
||||||
|
(*init_fkt) (server);
|
||||||
|
|
||||||
|
server->info->sysdeps.pointer_size = sizeof (void*)*8;
|
||||||
|
|
||||||
|
server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_close_sysdeps (glibtop_server *server, glibtop_backend *backend,
|
||||||
|
void *closure)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
36
backends/sysdeps/backend-sysdeps.h
Normal file
36
backends/sysdeps/backend-sysdeps.h
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_BACKEND_SYSDEPS_H__
|
||||||
|
#define __GLIBTOP_BACKEND_SYSDEPS_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
#include <glibtop/open.h>
|
||||||
|
#include <glibtop/glibtop-backend.h>
|
||||||
|
#include <glibtop/glibtop-backend-info.h>
|
||||||
|
|
||||||
|
#endif
|
13
backends/sysdeps/libgtop-sysdeps.backend
Normal file
13
backends/sysdeps/libgtop-sysdeps.backend
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0"?> <!-- -*-xml-*- -->
|
||||||
|
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
|
||||||
|
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
|
||||||
|
|
||||||
|
<libgtop:Backend>
|
||||||
|
<libgtop:Name>glibtop-backend-sysdeps</libgtop:Name>
|
||||||
|
<libgtop:Location>
|
||||||
|
<libgtop:LibtoolName>libgtop_backend_sysdeps.la</libgtop:LibtoolName>
|
||||||
|
<libgtop:ShlibName>libgtop_backend_sysdeps.so</libgtop:ShlibName>
|
||||||
|
</libgtop:Location>
|
||||||
|
</libgtop:Backend>
|
||||||
|
|
||||||
|
</libgtop:Backends>
|
195
backends/sysdeps/marshal.pl
Normal file
195
backends/sysdeps/marshal.pl
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
require 'c_types.pl';
|
||||||
|
|
||||||
|
$[ = 1; # set array base to 1
|
||||||
|
$, = ' '; # set output field separator
|
||||||
|
$\ = "\n"; # set output record separator
|
||||||
|
|
||||||
|
$always_use_temp_storage = 1;
|
||||||
|
|
||||||
|
sub toupper {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/a-z/A-Z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub tolower {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/A-Z/a-z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
print '/* marshal.c */';
|
||||||
|
print "/* This is a generated file. Please modify `marshal.pl' */";
|
||||||
|
print '';
|
||||||
|
|
||||||
|
print '#include <backend-sysdeps.h>';
|
||||||
|
print '';
|
||||||
|
print '#include <glibtop/sysdeps.h>';
|
||||||
|
print '#include <glibtop/union.h>';
|
||||||
|
print '';
|
||||||
|
print '#include <glibtop/call-vector.h>';
|
||||||
|
print '';
|
||||||
|
|
||||||
|
$feature_count = 0;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
chop; # strip record separator
|
||||||
|
|
||||||
|
if (/^[^#]/) {
|
||||||
|
&output($_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub output {
|
||||||
|
local($line) = @_;
|
||||||
|
@line_fields = split(/\|/, $line, 9999);
|
||||||
|
$retval = $line_fields[1];
|
||||||
|
$feature = $line_fields[2];
|
||||||
|
$param_def = $line_fields[4];
|
||||||
|
|
||||||
|
$orig = $feature;
|
||||||
|
$feature =~ s/^@//;
|
||||||
|
$space = $feature;
|
||||||
|
$space =~ s/./ /g;
|
||||||
|
|
||||||
|
$features{++$feature_count} = $orig;
|
||||||
|
|
||||||
|
return if $orig =~ /^@/;
|
||||||
|
|
||||||
|
if ($retval eq 'retval') {
|
||||||
|
$retval_param = '&retval';
|
||||||
|
$call_prefix = '';
|
||||||
|
$call_prefix_space = '';
|
||||||
|
$prefix = 'retval = ';
|
||||||
|
$prefix_space = ' ';
|
||||||
|
$retval = 'int';
|
||||||
|
}
|
||||||
|
elsif ($retval !~ /^void$/) {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
$prefix = 'retval = ';
|
||||||
|
$prefix_space = ' ';
|
||||||
|
$call_prefix = 'retval = ';
|
||||||
|
$call_prefix_space = ' ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
$call_prefix = '';
|
||||||
|
$call_prefix_space = '';
|
||||||
|
$prefix = '';
|
||||||
|
$prefix_space = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
||||||
|
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
||||||
|
}
|
||||||
|
|
||||||
|
$need_temp_storage = $always_use_temp_storage;
|
||||||
|
$first_param_name = '';
|
||||||
|
|
||||||
|
$call_param = '';
|
||||||
|
$param_decl = '';
|
||||||
|
$need_temp_len = 0;
|
||||||
|
$nr_params = (@params = split(/:/, $param_def, 9999));
|
||||||
|
for ($param = 1; $param <= $nr_params; $param++) {
|
||||||
|
$list = $params[$param];
|
||||||
|
$type = $params[$param];
|
||||||
|
$type =~ s/\(.*//;
|
||||||
|
$list =~ s/^.*\(//;
|
||||||
|
$list =~ s/\)$//;
|
||||||
|
$count = (@fields = split(/,/, $list, 9999));
|
||||||
|
for ($field = 1; $field <= $count; $field++) {
|
||||||
|
my $c_type = $typeinfo->{$type}->[1];
|
||||||
|
|
||||||
|
if ($first_param_name eq '') {
|
||||||
|
$first_param_name = $fields[$field];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($typeinfo->{$type}->[2]) {
|
||||||
|
$need_temp_storage = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($param_decl eq '') {
|
||||||
|
$param_decl = ",\n " . $space . ' ';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$param_decl = $param_decl . ', ';
|
||||||
|
}
|
||||||
|
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
||||||
|
$call_param = $call_param . ', ' . $fields[$field];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
$total_code = sprintf
|
||||||
|
("\treturn glibtop_get_%s_s (server%s);\n", $feature, $call_param);
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$total_code = sprintf
|
||||||
|
("\treturn glibtop_get_%s_s (server, array%s);\n", $feature, $call_param);
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$total_code = sprintf
|
||||||
|
("\treturn glibtop_get_%s_s (server, array, buf%s);\n", $feature, $call_param);
|
||||||
|
} else {
|
||||||
|
$total_code = sprintf
|
||||||
|
("\treturn glibtop_get_%s_s (server, buf%s);\n", $feature, $call_param);
|
||||||
|
}
|
||||||
|
|
||||||
|
$func_decl = 'static '.$retval."\n";
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
|
||||||
|
$feature, $param_decl);
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
|
||||||
|
$feature, $param_decl);
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
|
||||||
|
$feature, 'glibtop_'.$feature, $param_decl);
|
||||||
|
} else {
|
||||||
|
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
|
||||||
|
$feature, 'glibtop_'.$feature, $param_decl);
|
||||||
|
}
|
||||||
|
|
||||||
|
$total_code = sprintf ("%s{\n%s\n%s}\n", $func_decl, $total_code);
|
||||||
|
|
||||||
|
$total_code = sprintf ("#if (!GLIBTOP_SUID_%s)\n\n%s\n#endif /* not GLIBTOP_SUID_%s */\n\n",
|
||||||
|
&toupper($feature), $total_code,
|
||||||
|
&toupper($feature));
|
||||||
|
|
||||||
|
print $total_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
$init_hook_code = '';
|
||||||
|
$call_vector_code = '';
|
||||||
|
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
||||||
|
$feature = $features{$nr};
|
||||||
|
|
||||||
|
if ($feature =~ /^@/) {
|
||||||
|
$call_vector_code .= sprintf (qq[\tNULL,\n]);
|
||||||
|
} else {
|
||||||
|
$call_vector_code .= sprintf
|
||||||
|
(qq[\#if GLIBTOP_SUID_%s\n\tNULL,\n\#else\n\t_glibtop_get_%s_c,\n\#endif\n],
|
||||||
|
&toupper($feature), $feature);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!($feature =~ /^@/)) {
|
||||||
|
$init_hook_code .= sprintf
|
||||||
|
(qq[\#if !GLIBTOP_SUID_%s\n\tglibtop_init_%s_s,\n\#endif\n],
|
||||||
|
&toupper($feature), $feature);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$init_hook_code .= sprintf (qq[\tNULL\n]);
|
||||||
|
|
||||||
|
chop $init_hook_code;
|
||||||
|
chop $call_vector_code;
|
||||||
|
|
||||||
|
print 'glibtop_call_vector glibtop_backend_sysdeps_call_vector = {';
|
||||||
|
print $call_vector_code;
|
||||||
|
print '};';
|
||||||
|
print '';
|
||||||
|
|
||||||
|
print 'glibtop_init_func_t _glibtop_init_hook_s [] = {';
|
||||||
|
print $init_hook_code;
|
||||||
|
print '};';
|
||||||
|
print '';
|
||||||
|
|
170
configure.in
170
configure.in
@@ -7,12 +7,22 @@ AM_CONFIG_HEADER(config.h)
|
|||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
|
|
||||||
LIBGTOP_MAJOR_VERSION=2
|
LIBGTOP_MAJOR_VERSION=2
|
||||||
LIBGTOP_MINOR_VERSION=0
|
LIBGTOP_MINOR_VERSION=6
|
||||||
LIBGTOP_MICRO_VERSION=2
|
LIBGTOP_MICRO_VERSION=1
|
||||||
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
|
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
|
||||||
AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION)
|
AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION)
|
||||||
LIBGTOP_INTERFACE_AGE=1
|
|
||||||
LIBGTOP_BINARY_AGE=1
|
dnl increment if the interface has additions, changes, removals.
|
||||||
|
LIBGTOP_CURRENT=3
|
||||||
|
|
||||||
|
dnl increment any time the source changes; set to
|
||||||
|
dnl 0 if you increment CURRENT
|
||||||
|
LIBGTOP_REVISION=0
|
||||||
|
|
||||||
|
dnl increment if any interfaces have been added; set to 0
|
||||||
|
dnl if any interfaces have been removed. removal has
|
||||||
|
dnl precedence over adding, so set to 0 if both happened.
|
||||||
|
LIBGTOP_AGE=1
|
||||||
|
|
||||||
# you can set this to `-snap' for instance to create
|
# you can set this to `-snap' for instance to create
|
||||||
# a `libgtop-1.x.y-snap.tar.gz' tarball.
|
# a `libgtop-1.x.y-snap.tar.gz' tarball.
|
||||||
@@ -36,10 +46,10 @@ AC_SUBST(LIBGTOP_VERSION_SUFFIX)
|
|||||||
|
|
||||||
# libtool versioning
|
# libtool versioning
|
||||||
LT_RELEASE=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION
|
LT_RELEASE=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION
|
||||||
LT_CURRENT=`expr $LIBGTOP_MICRO_VERSION - $LIBGTOP_INTERFACE_AGE`
|
LT_CURRENT=$LIBGTOP_CURRENT
|
||||||
LT_REVISION=$LIBGTOP_INTERFACE_AGE
|
LT_REVISION=$LIBGTOP_REVISION
|
||||||
LT_AGE=`expr $LIBGTOP_BINARY_AGE - $LIBGTOP_INTERFACE_AGE`
|
LT_AGE=$LIBGTOP_AGE
|
||||||
LT_VERSION_INFO='-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}'
|
LT_VERSION_INFO="-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}"
|
||||||
AC_SUBST(LT_VERSION_INFO)
|
AC_SUBST(LT_VERSION_INFO)
|
||||||
AC_SUBST(LT_RELEASE)
|
AC_SUBST(LT_RELEASE)
|
||||||
AC_SUBST(LT_CURRENT)
|
AC_SUBST(LT_CURRENT)
|
||||||
@@ -81,46 +91,11 @@ export cross_compiling
|
|||||||
|
|
||||||
AM_PROG_LIBTOOL
|
AM_PROG_LIBTOOL
|
||||||
|
|
||||||
dnl Let the user enable compiler warnings
|
|
||||||
dnl GNOME_COMPILE_WARNINGS
|
|
||||||
|
|
||||||
dnl GNOME_INIT_HOOK(gnome_found=yes)
|
|
||||||
|
|
||||||
dnl if test "x$gnome_found" != xyes; then
|
|
||||||
dnl if test "x$want_gnome" != xno ; then
|
|
||||||
dnl AC_MSG_ERROR([
|
|
||||||
dnl *** GNOME was not found on this system. ***
|
|
||||||
dnl
|
|
||||||
dnl *** If you want to use LibGTop without GNOME, you need
|
|
||||||
dnl *** to give configure the --without-gnome parameter.
|
|
||||||
dnl ])
|
|
||||||
dnl else
|
|
||||||
dnl AC_DEFINE(WITHOUT_GNOME)
|
|
||||||
dnl fi
|
|
||||||
dnl GNOME_SUPPORT_CHECKS
|
|
||||||
dnl else
|
|
||||||
dnl if test "x$want_gnome" != xno ; then
|
|
||||||
dnl AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false)
|
|
||||||
dnl else
|
|
||||||
dnl GNOME_SUPPORT_CHECKS
|
|
||||||
dnl fi
|
|
||||||
dnl fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(BUILD_GNOME_SUPPORT, false)
|
|
||||||
|
|
||||||
AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
|
AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
|
||||||
|
|
||||||
GNOME_LIBGTOP_SYSDEPS
|
GNOME_LIBGTOP_SYSDEPS
|
||||||
GNOME_LIBGTOP_TYPES
|
GNOME_LIBGTOP_TYPES
|
||||||
|
|
||||||
dnl AC_ARG_WITH(libgtop-guile,
|
|
||||||
dnl [ --with-libgtop-guile Build the libgtop guile interface (default=no)],
|
|
||||||
dnl [build_guile="$withval"], [build_guile=yes])
|
|
||||||
|
|
||||||
dnl if test x$build_guile != xno ; then
|
|
||||||
dnl GNOME_CHECK_GUILE
|
|
||||||
dnl fi
|
|
||||||
|
|
||||||
AC_ARG_WITH(libgtop-inodedb,
|
AC_ARG_WITH(libgtop-inodedb,
|
||||||
[ --with-libgtop-inodedb Build the inodedb stuff (default=no)],
|
[ --with-libgtop-inodedb Build the inodedb stuff (default=no)],
|
||||||
[build_inodedb="$withval"], [build_inodedb=no])
|
[build_inodedb="$withval"], [build_inodedb=no])
|
||||||
@@ -139,20 +114,6 @@ fi
|
|||||||
|
|
||||||
AC_DEFINE(GLIBTOP_NAMES)
|
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
|
if test x$libgtop_smp = xyes ; then
|
||||||
smp_examples='smp'
|
smp_examples='smp'
|
||||||
smp_static_examples='smp_static'
|
smp_static_examples='smp_static'
|
||||||
@@ -162,7 +123,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$enable_static" != xno; then
|
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"
|
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $smp_static_examples"
|
||||||
else
|
else
|
||||||
static_targets=""
|
static_targets=""
|
||||||
fi
|
fi
|
||||||
@@ -172,10 +133,6 @@ AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes)
|
|||||||
|
|
||||||
AC_SUBST(static_targets)
|
AC_SUBST(static_targets)
|
||||||
AC_SUBST(smp_examples)
|
AC_SUBST(smp_examples)
|
||||||
AC_SUBST(guile_examples)
|
|
||||||
AC_SUBST(guile_subdirs)
|
|
||||||
|
|
||||||
AM_PROG_LIBTOOL
|
|
||||||
|
|
||||||
GLIB_REQUIRED=2.0.0
|
GLIB_REQUIRED=2.0.0
|
||||||
|
|
||||||
@@ -183,11 +140,13 @@ PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
|
|||||||
AC_SUBST(GLIB_CFLAGS)
|
AC_SUBST(GLIB_CFLAGS)
|
||||||
AC_SUBST(GLIB_LIBS)
|
AC_SUBST(GLIB_LIBS)
|
||||||
|
|
||||||
dnl (1.2.0,,AC_MSG_ERROR(GLIB >= 1.2.0 is required for LibGTop))
|
AC_CHECK_HEADER(popt.h,[POPT=yes],[POPT=no])
|
||||||
|
AC_MSG_CHECKING(for popt.h)
|
||||||
dnl You need to uncomment the following line if you want to use
|
if test x$POPT = xyes ; then
|
||||||
dnl libGTop without Gnome.
|
AC_MSG_RESULT(yes)
|
||||||
GNOME_SUPPORT_CHECKS
|
else
|
||||||
|
AC_MSG_ERROR([libgtop requires the popt development libraries])
|
||||||
|
fi
|
||||||
|
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||||
AC_C_CONST
|
AC_C_CONST
|
||||||
@@ -221,8 +180,14 @@ AC_CHECK_FUNCS(dlerror,,)
|
|||||||
LIBS="$oLIBS"
|
LIBS="$oLIBS"
|
||||||
AC_SUBST(DL_LIB)
|
AC_SUBST(DL_LIB)
|
||||||
|
|
||||||
|
dnl Linux
|
||||||
|
AC_CHECK_HEADER(linux/isdn.h,[HAVE_ISDN_H=yes],[HAVE_ISDN_H=no])
|
||||||
|
if test x$HAVE_ISDN_H = xyes ; then
|
||||||
|
AC_DEFINE(HAVE_ISDN_H, 1, [defined if you have linux/isdn.h])
|
||||||
|
fi
|
||||||
|
|
||||||
dnl AIX
|
dnl AIX
|
||||||
AH_TEMPLATE(HAVE_VMGETINFO, [Define to 1 if you have the `vmgetinfo' function in libperfstat])
|
AH_TEMPLATE(HAVE_VMGETINFO, [Define to 1 if you have the 'vmgetinfo' function in libperfstat])
|
||||||
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
|
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
|
||||||
|
|
||||||
dnl Solaris
|
dnl Solaris
|
||||||
@@ -285,8 +250,7 @@ AC_TYPE_SIGNAL
|
|||||||
AC_FUNC_STRFTIME
|
AC_FUNC_STRFTIME
|
||||||
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
|
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
|
||||||
|
|
||||||
dnl ## 'es_ES' is only needed for format numbers different of 'es'
|
ALL_LINGUAS="am ar az be bg bn ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu id it ja ko lt lv mk ml mn ms nl nn no or pa pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta tr uk vi zh_CN zh_TW"
|
||||||
ALL_LINGUAS="am ar az be bg ca cs da de el es es_ES et fa fi fr ga gl he hu id it ja ko lv mk ml mn ms nl nn no pl pt pt_BR ro ru sk sl sr sr@Latn sv tr uk vi zh_CN zh_TW"
|
|
||||||
|
|
||||||
GETTEXT_PACKAGE=libgtop-2.0
|
GETTEXT_PACKAGE=libgtop-2.0
|
||||||
AC_SUBST(GETTEXT_PACKAGE)
|
AC_SUBST(GETTEXT_PACKAGE)
|
||||||
@@ -332,24 +296,6 @@ dnl Debugging
|
|||||||
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],AC_DEFINE(LIBGTOP_ENABLE_DEBUG),)
|
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],AC_DEFINE(LIBGTOP_ENABLE_DEBUG),)
|
||||||
AC_ARG_ENABLE(fatal-warnings, [ --enable-fatal-warnings make all warnings fatal [debug=no]],AC_DEFINE(LIBGTOP_FATAL_WARNINGS),)
|
AC_ARG_ENABLE(fatal-warnings, [ --enable-fatal-warnings make all warnings fatal [debug=no]],AC_DEFINE(LIBGTOP_FATAL_WARNINGS),)
|
||||||
|
|
||||||
if test "x$gnome_found" = xyes ; then
|
|
||||||
LIBSUPPORT="$GNOME_LIBDIR -lgnomesupport"
|
|
||||||
SUPPORTINCS="$GNOME_INCLUDEDIR"
|
|
||||||
else
|
|
||||||
LIBSUPPORT='$(top_builddir)/support/libgnomesupport-2.0.la'
|
|
||||||
SUPPORTINCS='-DNEED_GNOMESUPPORT_H -I$(top_builddir)/support -I$(top_srcdir)/support'
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Some ugly hack; if '-lgnomesupport' is part of $GNOME_LIBS,
|
|
||||||
dnl we include it here.
|
|
||||||
case "$GNOME_LIBS" in
|
|
||||||
'*-lgnomesupport*' )
|
|
||||||
LIBSUPPORT="$GNOME_LIBDIR -lgnomesupport"
|
|
||||||
SUPPORTINCS="$GNOME_INCLUDEDIR" ;;
|
|
||||||
esac
|
|
||||||
AC_SUBST(LIBSUPPORT)
|
|
||||||
AC_SUBST(SUPPORTINCS)
|
|
||||||
|
|
||||||
dnl These definitions are expanded in make.
|
dnl These definitions are expanded in make.
|
||||||
LIBGTOP_LIBS='-L$(libdir)'
|
LIBGTOP_LIBS='-L$(libdir)'
|
||||||
LIBGTOP_INCS='-I$(includedir)/libgtop-2.0'
|
LIBGTOP_INCS='-I$(includedir)/libgtop-2.0'
|
||||||
@@ -370,25 +316,14 @@ if test x$libgtop_have_sysinfo = xyes ; then
|
|||||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
|
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LIBGTOP_INCS="$LIBGTOP_INCS $SUPPORTINCS $GLIB_CFLAGS"
|
LIBGTOP_INCS="$LIBGTOP_INCS $GLIB_CFLAGS"
|
||||||
|
|
||||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_LIBS"
|
|
||||||
LIBGTOP_GUILE_INCS="$LIBGTOP_INCS"
|
|
||||||
LIBGTOP_BINDIR='$(bindir)'
|
LIBGTOP_BINDIR='$(bindir)'
|
||||||
LIBGTOP_SERVER='$(bindir)/libgtop_server2'
|
LIBGTOP_SERVER='$(bindir)/libgtop_server2'
|
||||||
|
|
||||||
sysdeps_dir="$libgtop_sysdeps_dir"
|
sysdeps_dir="$libgtop_sysdeps_dir"
|
||||||
AC_SUBST(sysdeps_dir)
|
AC_SUBST(sysdeps_dir)
|
||||||
|
|
||||||
if test x$ac_cv_guile_found = xyes ; then
|
|
||||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile-2.0"
|
|
||||||
libgtop_guile_found=yes
|
|
||||||
else
|
|
||||||
libgtop_guile_found=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(libgtop_guile_found)
|
|
||||||
|
|
||||||
if test -z "$LIBGTOP_EXTRA_LIBS" ; then
|
if test -z "$LIBGTOP_EXTRA_LIBS" ; then
|
||||||
LIBGTOP_EXTRA_LIBS="$libs_xauth"
|
LIBGTOP_EXTRA_LIBS="$libs_xauth"
|
||||||
else
|
else
|
||||||
@@ -397,35 +332,29 @@ fi
|
|||||||
|
|
||||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
|
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
|
||||||
|
|
||||||
LIBGTOP_LIBS="$LIBGTOP_LIBS -lgtop-2.0 -lgtop_sysdeps-2.0 -lgtop_common-2.0"
|
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
||||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop-2.0 -lgtop_sysdeps-2.0 -lgtop_common-2.0"
|
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS"
|
||||||
|
|
||||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS -lgtop_names-2.0"
|
|
||||||
LIBGTOP_GUILE_NAMES_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile_names-2.0 -lgtop_names-2.0"
|
|
||||||
|
|
||||||
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
||||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_NAMES_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_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"
|
machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir"
|
||||||
|
|
||||||
AC_SUBST(machine_incs)
|
AC_SUBST(machine_incs)
|
||||||
|
|
||||||
if test x$libgtop_guile_found = xyes ; then
|
if test "$GCC" = "yes" ; then
|
||||||
guile_def="-DGLIBTOP_GUILE -DGLIBTOP_GUILE_NAMES $GUILE_INCS "
|
CFLAGS="\
|
||||||
else
|
-Wall \
|
||||||
guile_def=""
|
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
|
||||||
|
-Wnested-externs -Wpointer-arith \
|
||||||
|
-Wcast-align -Wsign-compare \
|
||||||
|
-fno-strict-aliasing \
|
||||||
|
$CFLAGS"
|
||||||
fi
|
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 $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"'\"'
|
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -DGLIBTOP_NAMES -I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $CFLAGS $X_CFLAGS "'-DGTOPLOCALEDIR=\"$(datadir)/locale\" -DLIBGTOP_VERSION=\"'"$LIBGTOP_VERSION"'\" -DLIBGTOP_SERVER_VERSION=\"'"$LIBGTOP_SERVER_VERSION"'\" -DLIBGTOP_VERSION_CODE='$LIBGTOP_VERSION_CODE' -DLIBGTOP_SERVER=\"'"$LIBGTOP_SERVER"'\"'
|
||||||
|
|
||||||
AC_SUBST(INCLUDES)
|
AC_SUBST(INCLUDES)
|
||||||
|
|
||||||
@@ -435,10 +364,6 @@ AC_SUBST(LIBGTOP_LIBS)
|
|||||||
AC_SUBST(LIBGTOP_INCS)
|
AC_SUBST(LIBGTOP_INCS)
|
||||||
AC_SUBST(LIBGTOP_NAMES_LIBS)
|
AC_SUBST(LIBGTOP_NAMES_LIBS)
|
||||||
AC_SUBST(LIBGTOP_NAMES_INCS)
|
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_BINDIR)
|
||||||
AC_SUBST(LIBGTOP_SERVER)
|
AC_SUBST(LIBGTOP_SERVER)
|
||||||
|
|
||||||
@@ -462,8 +387,6 @@ include/glibtop/Makefile
|
|||||||
sysdeps/Makefile
|
sysdeps/Makefile
|
||||||
sysdeps/common/Makefile
|
sysdeps/common/Makefile
|
||||||
sysdeps/names/Makefile
|
sysdeps/names/Makefile
|
||||||
sysdeps/guile/Makefile
|
|
||||||
sysdeps/guile/names/Makefile
|
|
||||||
sysdeps/stub/Makefile
|
sysdeps/stub/Makefile
|
||||||
sysdeps/stub_suid/Makefile
|
sysdeps/stub_suid/Makefile
|
||||||
sysdeps/sun4/Makefile
|
sysdeps/sun4/Makefile
|
||||||
@@ -479,6 +402,5 @@ src/inodedb/Makefile
|
|||||||
lib/Makefile
|
lib/Makefile
|
||||||
examples/Makefile
|
examples/Makefile
|
||||||
doc/Makefile
|
doc/Makefile
|
||||||
support/Makefile
|
|
||||||
libgtop-2.0.pc
|
libgtop-2.0.pc
|
||||||
])
|
])
|
||||||
|
5
debian/libgtop2.README.Debian
vendored
Normal file
5
debian/libgtop2.README.Debian
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
The Debian package of libgtop, a GNOME library.
|
||||||
|
|
||||||
|
--
|
||||||
|
Ian Lynagh <ian@lynagh.demon.co.uk>
|
12
debian/libgtop2.copyright
vendored
Normal file
12
debian/libgtop2.copyright
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
libgtop is released under the GPL.
|
||||||
|
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||||
|
Public License can be found in /usr/share/common-licenses/GPL
|
||||||
|
|
||||||
|
Original authors: Martin Baulig <martin@home-of-linux.org>
|
||||||
|
Drazen Kacar <dave@srce.hr>
|
||||||
|
|
||||||
|
Originally Debianised by Jim Pick <jim@jimpick.com>
|
||||||
|
Then re-Debianised in October 1998 by Martin Schulze
|
||||||
|
<joey@finlandia.infodrom.north.de> before being taken over by Ian Lynagh
|
||||||
|
<ian@lynagh.demon.co.uk> in November 1998.
|
7
debian/libgtop2.docs
vendored
Normal file
7
debian/libgtop2.docs
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
RELNOTES-0.25
|
||||||
|
RELNOTES-1.0
|
||||||
|
RELNOTES-1.1.x
|
||||||
|
NEWS
|
||||||
|
AUTHORS
|
||||||
|
TODO
|
||||||
|
debian/changelog
|
2
debian/libgtop2.files.in
vendored
Normal file
2
debian/libgtop2.files.in
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
@PREFIX@/lib/libgtop*-1.1.so.*.*
|
||||||
|
@PREFIX@/lib/libgtop*-1.1.so.*
|
@@ -8,3 +8,4 @@ auto-macros.texi
|
|||||||
version.texi
|
version.texi
|
||||||
stamp-vti
|
stamp-vti
|
||||||
*.html *.pdf
|
*.html *.pdf
|
||||||
|
mdate-sh
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
|
2004-03-05 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* reference.texi: update for new API
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* reference.texi: s/u_int64_t/guint64/
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* Makefile.am: removed traces of guile, intllibs and libgnomesupport
|
||||||
|
|
||||||
2002-03-12 James Henstridge <james@daa.com.au>
|
2002-03-12 James Henstridge <james@daa.com.au>
|
||||||
|
|
||||||
* Makefile.am (MAKEINFO): using += seems to screw up the build
|
* Makefile.am (MAKEINFO): using += seems to screw up the build
|
||||||
|
@@ -18,10 +18,6 @@ auto-macros.texi: auto-macros.texi.in Makefile
|
|||||||
-e 's#\%LIBGTOP_INCS\%#$(LIBGTOP_INCS)#g' \
|
-e 's#\%LIBGTOP_INCS\%#$(LIBGTOP_INCS)#g' \
|
||||||
-e 's#\%LIBGTOP_NAMES_LIBS\%#$(LIBGTOP_NAMES_LIBS)#g' \
|
-e 's#\%LIBGTOP_NAMES_LIBS\%#$(LIBGTOP_NAMES_LIBS)#g' \
|
||||||
-e 's#\%LIBGTOP_NAMES_INCS\%#$(LIBGTOP_NAMES_INCS)#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_BINDIR\%#$(LIBGTOP_BINDIR)#g' \
|
||||||
-e 's#\%LIBGTOP_SERVER\%#$(LIBGTOP_SERVER)#g' \
|
-e 's#\%LIBGTOP_SERVER\%#$(LIBGTOP_SERVER)#g' \
|
||||||
-e 's#\%LIBGTOP_MAJOR_VERSION\%#$(LIBGTOP_MAJOR_VERSION)#g' \
|
-e 's#\%LIBGTOP_MAJOR_VERSION\%#$(LIBGTOP_MAJOR_VERSION)#g' \
|
||||||
@@ -33,7 +29,6 @@ auto-macros.texi: auto-macros.texi.in Makefile
|
|||||||
-e 's#\%libgtop_sysdeps_dir\%#$(libgtop_sysdeps_dir)#g' \
|
-e 's#\%libgtop_sysdeps_dir\%#$(libgtop_sysdeps_dir)#g' \
|
||||||
-e 's#\%libgtop_need_server\%#$(libgtop_need_server)#g' \
|
-e 's#\%libgtop_need_server\%#$(libgtop_need_server)#g' \
|
||||||
-e 's#\%libgtop_use_machine_h\%#$(libgtop_use_machine_h)#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' \
|
-e 's#\%libgtop_want_examples\%#$(libgtop_want_examples)#g' \
|
||||||
< $(srcdir)/auto-macros.texi.in > auto-macros.tmp
|
< $(srcdir)/auto-macros.texi.in > auto-macros.tmp
|
||||||
echo '@c Set this if this is LibGTop 1.1.x' >> auto-macros.tmp
|
echo '@c Set this if this is LibGTop 1.1.x' >> auto-macros.tmp
|
||||||
|
107
doc/internals.texi
Normal file
107
doc/internals.texi
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
@node LibGTop Internals, , Reference Manual, Top
|
||||||
|
@chapter LibGTop Internals
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* General Internals:: General Internals
|
||||||
|
* Sysdeps Internals:: Sysdeps Internals
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@node General Internals, Sysdeps Internals, LibGTop Internals, LibGTop Internals
|
||||||
|
@section General Internals
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* glibtop:: The server structure
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@node glibtop, , General Internals, General Internals
|
||||||
|
@subsection The server structure - @code{glibtop}
|
||||||
|
|
||||||
|
@example
|
||||||
|
@cartouche
|
||||||
|
typedef struct _glibtop glibtop;
|
||||||
|
|
||||||
|
struct _glibtop
|
||||||
|
@{
|
||||||
|
unsigned flags;
|
||||||
|
unsigned method;
|
||||||
|
unsigned error_method;
|
||||||
|
#ifdef HAVE_GLIBTOP_MACHINE_H
|
||||||
|
glibtop_machine machine;
|
||||||
|
#endif
|
||||||
|
int input [2];
|
||||||
|
int output [2];
|
||||||
|
int socket;
|
||||||
|
int ncpu;
|
||||||
|
unsigned long os_version_code;
|
||||||
|
const char *name;
|
||||||
|
const char *server_command;
|
||||||
|
const char *server_host;
|
||||||
|
const char *server_user;
|
||||||
|
const char *server_rsh;
|
||||||
|
unsigned long features;
|
||||||
|
unsigned long server_port;
|
||||||
|
glibtop_sysdeps sysdeps;
|
||||||
|
glibtop_sysdeps required;
|
||||||
|
glibtop_sysdeps wanted;
|
||||||
|
pid_t pid;
|
||||||
|
@};
|
||||||
|
@end cartouche
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@node Sysdeps Internals, , General Internals, LibGTop Internals
|
||||||
|
@section Sysdeps Internals
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* glibtop_open_s:: Non-privileged initializations
|
||||||
|
* glibtop_close_s:: Non-privileged cleanups
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@node glibtop_open_s, glibtop_close_s, Sysdeps Internals, Sysdeps Internals
|
||||||
|
@subsection glibtop_open_s
|
||||||
|
|
||||||
|
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
|
||||||
|
initialize a server. It should do all initializations that do not need any
|
||||||
|
privileges.
|
||||||
|
|
||||||
|
@example
|
||||||
|
@cartouche
|
||||||
|
void
|
||||||
|
glibtop_open_s (glibtop *server, const char *program_name,
|
||||||
|
const unsigned long features,
|
||||||
|
const unsigned flags);
|
||||||
|
@end cartouche
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item server
|
||||||
|
Pointer to the @code{glibtop} server structure.
|
||||||
|
@item program_name
|
||||||
|
Name of the calling program; the implementation will usually
|
||||||
|
set @samp{server->name} to this so it'll be used as the program
|
||||||
|
name in error messages.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
Typically, this function will set @code{server->name}, @code{server->ncpu} and
|
||||||
|
@code{server->os_version_code} and initialize any of the @code{server->machine}
|
||||||
|
fields which do not need any privileges.
|
||||||
|
|
||||||
|
It is normally implemented in @file{open.c} in the sysdeps directory.
|
||||||
|
|
||||||
|
@node glibtop_close_s, , glibtop_open_s, Sysdeps Internals
|
||||||
|
@subsection glibtop_close_s
|
||||||
|
|
||||||
|
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
|
||||||
|
clean-up a server when it's no longer used.
|
||||||
|
|
||||||
|
It must free all resources that were allocated in @code{glibtop_open_s}.
|
||||||
|
|
||||||
|
@example
|
||||||
|
@cartouche
|
||||||
|
void
|
||||||
|
glibtop_close_s (glibtop *server);
|
||||||
|
@end cartouche
|
||||||
|
@end example
|
||||||
|
|
||||||
|
It is normally implemented in @file{close.c} in the sysdeps directory, but may
|
||||||
|
be empty.
|
||||||
|
|
@@ -50,7 +50,7 @@ typedef struct _glibtop_cpu glibtop_cpu;
|
|||||||
|
|
||||||
struct _glibtop_cpu
|
struct _glibtop_cpu
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
total,
|
total,
|
||||||
user,
|
user,
|
||||||
nice,
|
nice,
|
||||||
@@ -139,7 +139,7 @@ typedef struct _glibtop_mem glibtop_mem;
|
|||||||
|
|
||||||
struct _glibtop_mem
|
struct _glibtop_mem
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
total,
|
total,
|
||||||
used,
|
used,
|
||||||
free,
|
free,
|
||||||
@@ -207,7 +207,7 @@ typedef struct _glibtop_swap glibtop_swap;
|
|||||||
|
|
||||||
struct _glibtop_swap
|
struct _glibtop_swap
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
total,
|
total,
|
||||||
used,
|
used,
|
||||||
free,
|
free,
|
||||||
@@ -266,10 +266,10 @@ typedef struct _glibtop_uptime glibtop_uptime;
|
|||||||
|
|
||||||
struct _glibtop_uptime
|
struct _glibtop_uptime
|
||||||
@{
|
@{
|
||||||
u_int64_t flags;
|
guint64 flags;
|
||||||
double uptime,
|
double uptime,
|
||||||
idletime;
|
idletime;
|
||||||
u_int64_t boot_time;
|
guint64 boot_time;
|
||||||
@};
|
@};
|
||||||
@end cartouche
|
@end cartouche
|
||||||
@end example
|
@end example
|
||||||
@@ -318,9 +318,9 @@ typedef struct _glibtop_loadavg glibtop_loadavg;
|
|||||||
|
|
||||||
struct _glibtop_loadavg
|
struct _glibtop_loadavg
|
||||||
@{
|
@{
|
||||||
u_int64_t flags;
|
guint64 flags;
|
||||||
double loadavg [3];
|
double loadavg [3];
|
||||||
u_int64_t nr_running,
|
guint64 nr_running,
|
||||||
nr_tasks,
|
nr_tasks,
|
||||||
last_pid;
|
last_pid;
|
||||||
@};
|
@};
|
||||||
@@ -395,7 +395,7 @@ typedef struct _glibtop_proclist glibtop_proclist;
|
|||||||
|
|
||||||
struct _glibtop_proclist
|
struct _glibtop_proclist
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
number,
|
number,
|
||||||
total,
|
total,
|
||||||
size;
|
size;
|
||||||
@@ -464,8 +464,8 @@ Size of a single entry in the returned list
|
|||||||
(this equals @code{sizeof (unsigned)}).
|
(this equals @code{sizeof (unsigned)}).
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
The returned list is allocated using @code{glibtop_malloc} and must be freed
|
The returned list is allocated using @code{g_malloc} and must be freed
|
||||||
using @code{glibtop_free} to avoid a memory leak.
|
using @code{g_free} to avoid a memory leak.
|
||||||
|
|
||||||
@page
|
@page
|
||||||
@node glibtop_proc_state, glibtop_proc_uid, glibtop_proclist, System Dependent
|
@node glibtop_proc_state, glibtop_proc_uid, glibtop_proclist, System Dependent
|
||||||
@@ -492,7 +492,7 @@ typedef struct _glibtop_proc_state glibtop_proc_state;
|
|||||||
|
|
||||||
struct _glibtop_proc_state
|
struct _glibtop_proc_state
|
||||||
@{
|
@{
|
||||||
u_int64_t flags;
|
guint64 flags;
|
||||||
char cmd[40];
|
char cmd[40];
|
||||||
@ifset LIBGTOP-1-1
|
@ifset LIBGTOP-1-1
|
||||||
unsigned state;
|
unsigned state;
|
||||||
@@ -618,7 +618,7 @@ typedef struct _glibtop_proc_uid glibtop_proc_uid;
|
|||||||
|
|
||||||
struct _glibtop_proc_uid
|
struct _glibtop_proc_uid
|
||||||
@{
|
@{
|
||||||
u_int64_t flags;
|
guint64 flags;
|
||||||
int uid,
|
int uid,
|
||||||
euid,
|
euid,
|
||||||
gid,
|
gid,
|
||||||
@@ -698,7 +698,7 @@ typedef struct _glibtop_proc_mem glibtop_proc_mem;
|
|||||||
|
|
||||||
struct _glibtop_proc_mem
|
struct _glibtop_proc_mem
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
size,
|
size,
|
||||||
vsize,
|
vsize,
|
||||||
resident,
|
resident,
|
||||||
@@ -813,7 +813,7 @@ typedef struct _glibtop_proc_time glibtop_proc_time;
|
|||||||
|
|
||||||
struct _glibtop_proc_time
|
struct _glibtop_proc_time
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
start_time,
|
start_time,
|
||||||
rtime,
|
rtime,
|
||||||
utime,
|
utime,
|
||||||
@@ -881,7 +881,7 @@ typedef struct _glibtop_proc_signal glibtop_proc_signal;
|
|||||||
|
|
||||||
struct _glibtop_proc_signal
|
struct _glibtop_proc_signal
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
signal [2],
|
signal [2],
|
||||||
blocked [2],
|
blocked [2],
|
||||||
sigignore [2],
|
sigignore [2],
|
||||||
@@ -902,7 +902,7 @@ Mask of caught signals
|
|||||||
@end table
|
@end table
|
||||||
|
|
||||||
All signal masks are interpreted as bit mask; it is an array of two
|
All signal masks are interpreted as bit mask; it is an array of two
|
||||||
@code{u_int64_t}'s so we can save 128 signals there.
|
@code{guint64}'s so we can save 128 signals there.
|
||||||
|
|
||||||
@page
|
@page
|
||||||
@node glibtop_proc_kernel, glibtop_proc_segment, glibtop_proc_signal, System Dependent
|
@node glibtop_proc_kernel, glibtop_proc_segment, glibtop_proc_signal, System Dependent
|
||||||
@@ -929,8 +929,8 @@ typedef struct _glibtop_proc_kernel glibtop_proc_kernel;
|
|||||||
|
|
||||||
struct _glibtop_proc_kernel
|
struct _glibtop_proc_kernel
|
||||||
@{
|
@{
|
||||||
u_int64_t flags;
|
guint64 flags;
|
||||||
u_int64_t k_flags,
|
guint64 k_flags,
|
||||||
min_flt,
|
min_flt,
|
||||||
maj_flt,
|
maj_flt,
|
||||||
cmin_flt,
|
cmin_flt,
|
||||||
@@ -1029,7 +1029,7 @@ typedef struct _glibtop_proc_segment glibtop_proc_segment;
|
|||||||
|
|
||||||
struct _glibtop_proc_segment
|
struct _glibtop_proc_segment
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
text_rss,
|
text_rss,
|
||||||
shlib_rss,
|
shlib_rss,
|
||||||
data_rss,
|
data_rss,
|
||||||
@@ -1096,7 +1096,7 @@ typedef struct _glibtop_proc_args glibtop_proc_args;
|
|||||||
|
|
||||||
struct _glibtop_proc_args
|
struct _glibtop_proc_args
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
size;
|
size;
|
||||||
@};
|
@};
|
||||||
@end cartouche
|
@end cartouche
|
||||||
@@ -1108,7 +1108,7 @@ Returns a string with all command line arguments of process @code{pid}
|
|||||||
The command line arguments in the returned string are separated by zero bytes;
|
The command line arguments in the returned string are separated by zero bytes;
|
||||||
the lenght of this string is returned in the @code{size} field.
|
the lenght of this string is returned in the @code{size} field.
|
||||||
|
|
||||||
Remember to @code{glibtop_free} the returned string to avoid a memory leak.
|
Remember to @code{g_free} the returned string to avoid a memory leak.
|
||||||
|
|
||||||
@page
|
@page
|
||||||
@node glibtop_proc_map, glibtop_netload, glibtop_proc_args, System Dependent
|
@node glibtop_proc_map, glibtop_netload, glibtop_proc_args, System Dependent
|
||||||
@@ -1135,7 +1135,7 @@ typedef struct _glibtop_proc_map glibtop_proc_map;
|
|||||||
|
|
||||||
struct _glibtop_proc_map
|
struct _glibtop_proc_map
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
number,
|
number,
|
||||||
total,
|
total,
|
||||||
size;
|
size;
|
||||||
@@ -1144,7 +1144,7 @@ struct _glibtop_proc_map
|
|||||||
@end example
|
@end example
|
||||||
|
|
||||||
Returns a @code{glibtop_map_entry *} list (which needs to be freed with
|
Returns a @code{glibtop_map_entry *} list (which needs to be freed with
|
||||||
@code{glibtop_free}) of memory maps of process @code{pid}.
|
@code{g_free}) of memory maps of process @code{pid}.
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@item number
|
@item number
|
||||||
@@ -1164,7 +1164,7 @@ typedef struct _glibtop_map_entry glibtop_map_entry;
|
|||||||
|
|
||||||
struct _glibtop_map_entry
|
struct _glibtop_map_entry
|
||||||
@{
|
@{
|
||||||
u_int64_t flags, start, end, offset, perm, inode, device;
|
guint64 flags, start, end, offset, perm, inode, device;
|
||||||
char filename [GLIBTOP_MAP_FILENAME_LEN+1];
|
char filename [GLIBTOP_MAP_FILENAME_LEN+1];
|
||||||
@};
|
@};
|
||||||
@end cartouche
|
@end cartouche
|
||||||
@@ -1175,13 +1175,13 @@ fields are valid:
|
|||||||
|
|
||||||
@example
|
@example
|
||||||
@cartouche
|
@cartouche
|
||||||
#define GLIBTOP_MAP_ENTRY_START 1
|
#define GLIBTOP_MAP_ENTRY_START 0
|
||||||
#define GLIBTOP_MAP_ENTRY_END 2
|
#define GLIBTOP_MAP_ENTRY_END 1
|
||||||
#define GLIBTOP_MAP_ENTRY_OFFSET 3
|
#define GLIBTOP_MAP_ENTRY_OFFSET 2
|
||||||
#define GLIBTOP_MAP_ENTRY_PERM 4
|
#define GLIBTOP_MAP_ENTRY_PERM 3
|
||||||
#define GLIBTOP_MAP_ENTRY_INODE 5
|
#define GLIBTOP_MAP_ENTRY_INODE 4
|
||||||
#define GLIBTOP_MAP_ENTRY_DEVICE 6
|
#define GLIBTOP_MAP_ENTRY_DEVICE 5
|
||||||
#define GLIBTOP_MAP_ENTRY_FILENAME 7
|
#define GLIBTOP_MAP_ENTRY_FILENAME 6
|
||||||
@end cartouche
|
@end cartouche
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@@ -1222,7 +1222,7 @@ typedef struct _glibtop_netload glibtop_netload;
|
|||||||
|
|
||||||
struct _glibtop_netload
|
struct _glibtop_netload
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
if_flags,
|
if_flags,
|
||||||
mtu,
|
mtu,
|
||||||
subnet,
|
subnet,
|
||||||
@@ -1329,7 +1329,7 @@ typedef struct _glibtop_ppp glibtop_ppp;
|
|||||||
|
|
||||||
struct _glibtop_ppp
|
struct _glibtop_ppp
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
state,
|
state,
|
||||||
bytes_in,
|
bytes_in,
|
||||||
bytes_out;
|
bytes_out;
|
||||||
@@ -1409,7 +1409,7 @@ typedef struct _glibtop_mountlist glibtop_mountlist;
|
|||||||
|
|
||||||
struct _glibtop_mountlist
|
struct _glibtop_mountlist
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
number,
|
number,
|
||||||
total,
|
total,
|
||||||
size;
|
size;
|
||||||
@@ -1418,7 +1418,7 @@ struct _glibtop_mountlist
|
|||||||
@end example
|
@end example
|
||||||
|
|
||||||
Returns a @code{glibtop_mountentry *} list (which needs to be freed with
|
Returns a @code{glibtop_mountentry *} list (which needs to be freed with
|
||||||
@code{glibtop_free}) of mounted filesystems.
|
@code{g_free}) of mounted filesystems.
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@item number
|
@item number
|
||||||
@@ -1438,7 +1438,7 @@ typedef struct _glibtop_mountentry glibtop_mountentry;
|
|||||||
|
|
||||||
struct _glibtop_mountentry
|
struct _glibtop_mountentry
|
||||||
@{
|
@{
|
||||||
u_int64_t dev;
|
guint64 dev;
|
||||||
char devname [GLIBTOP_MOUNTENTRY_LEN+1];
|
char devname [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||||
char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
|
char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||||
char type [GLIBTOP_MOUNTENTRY_LEN+1];
|
char type [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||||
@@ -1488,7 +1488,7 @@ typedef struct _glibtop_fsusage glibtop_fsusage;
|
|||||||
|
|
||||||
struct _glibtop_fsusage
|
struct _glibtop_fsusage
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
blocks,
|
blocks,
|
||||||
bfree,
|
bfree,
|
||||||
bavail,
|
bavail,
|
||||||
@@ -1639,7 +1639,7 @@ typedef struct _glibtop_sysdeps glibtop_sysdeps;
|
|||||||
|
|
||||||
struct _glibtop_sysdeps
|
struct _glibtop_sysdeps
|
||||||
@{
|
@{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
features,
|
features,
|
||||||
pointer_size,
|
pointer_size,
|
||||||
cpu,
|
cpu,
|
||||||
|
2
dtd/.cvsignore
Normal file
2
dtd/.cvsignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Makefile.in
|
||||||
|
Makefile
|
9
dtd/Makefile.am
Normal file
9
dtd/Makefile.am
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
backenddir = @LIBGTOP_BACKEND_DIR@
|
||||||
|
|
||||||
|
backend_DATA = \
|
||||||
|
libgtop-backends.dtd \
|
||||||
|
libgtop-backend-info.dtd
|
||||||
|
|
||||||
|
EXTRA_DIST = |
|
||||||
|
$(backend_DATA)
|
||||||
|
|
23
dtd/libgtop-backend-info.dtd
Normal file
23
dtd/libgtop-backend-info.dtd
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<!ELEMENT BackendInfo (name,description?,comments?,authors,legalnotice)>
|
||||||
|
<!ELEMENT name (short_name,long_name?)>
|
||||||
|
<!ELEMENT short_name (#PCDATA)>
|
||||||
|
<!ELEMENT long_name (#PCDATA)>
|
||||||
|
|
||||||
|
<!ELEMENT description (#PCDATA)>
|
||||||
|
|
||||||
|
<!ELEMENT authors (author)+>
|
||||||
|
<!ELEMENT author (author_name,author_email?)>
|
||||||
|
<!ELEMENT author_name (#PCDATA)>
|
||||||
|
<!ELEMENT author_email (#PCDATA)>
|
||||||
|
|
||||||
|
<!ELEMENT legalnotice (license,copyright?)>
|
||||||
|
<!ELEMENT license (#PCDATA)>
|
||||||
|
|
||||||
|
<!ELEMENT copyright (holder)+>
|
||||||
|
<!ELEMENT holder (holder_year?,holder_name,holder_email?)>
|
||||||
|
<!ELEMENT holder_year (#PCDATA)>
|
||||||
|
<!ELEMENT holder_name (#PCDATA)>
|
||||||
|
<!ELEMENT holder_email (#PCDATA)>
|
||||||
|
|
||||||
|
<!ELEMENT comments (comment)+>
|
||||||
|
<!ELEMENT comment (#PCDATA)>
|
11
dtd/libgtop-backends.dtd
Normal file
11
dtd/libgtop-backends.dtd
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<!ELEMENT Backends (Backend)+>
|
||||||
|
|
||||||
|
<!ELEMENT Backend (Name,Location)>
|
||||||
|
<!ELEMENT Name (#PCDATA)>
|
||||||
|
|
||||||
|
<!ELEMENT Location (LibtoolName?,ShlibName,ExtraLibs?)>
|
||||||
|
<!ELEMENT LibtoolName (#PCDATA)>
|
||||||
|
<!ELEMENT ShlibName (#PCDATA)>
|
||||||
|
|
||||||
|
<!ELEMENT ExtraLibs (ExtraLib)+>
|
||||||
|
<!ELEMENT ExtraLib (LibtoolName?,ShlibName)>
|
@@ -1,3 +1,35 @@
|
|||||||
|
2003-12-27 Ole Laursen <olau@hardworking.dk>
|
||||||
|
|
||||||
|
* mountlist.c: Updated to display block size too.
|
||||||
|
|
||||||
|
2004-03-04 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* smp.c: use libgtop-i18n.h
|
||||||
|
|
||||||
|
2003-10-21 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* Makefile.am:
|
||||||
|
* smp.c:
|
||||||
|
* sysdeps.c: (main): install only one library, libgtop-2.0
|
||||||
|
Fix build-time warnings due to the redefinition of guint64
|
||||||
|
Fix building smp.c and sysdeps.c
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* first.c:
|
||||||
|
* mountlist.c:
|
||||||
|
* netload.c:
|
||||||
|
* procmap.c:
|
||||||
|
* second.c:
|
||||||
|
* smp.c:
|
||||||
|
* sysdeps.c:
|
||||||
|
* third.c:
|
||||||
|
* timings.c: fixed compilation
|
||||||
|
|
||||||
|
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* Makefile.am: removed traces of guile, intllibs and libgnomesupport
|
||||||
|
|
||||||
2001-01-14 Abel Cheung <maddog@linux.org.hk>
|
2001-01-14 Abel Cheung <maddog@linux.org.hk>
|
||||||
|
|
||||||
* \*.c: bindtextdomain and textdomain uses GETTEXT_PACKAGE.
|
* \*.c: bindtextdomain and textdomain uses GETTEXT_PACKAGE.
|
||||||
|
@@ -6,14 +6,9 @@ INCLUDES = @INCLUDES@
|
|||||||
|
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
|
||||||
# We install it in `libexec' since this will make it more easy
|
noinst_PROGRAMS = first second\
|
||||||
# to put the examples into an extra RPM package.
|
|
||||||
|
|
||||||
libgtopdir = $(libexecdir)/libgtop
|
|
||||||
|
|
||||||
libgtop_PROGRAMS = first second\
|
|
||||||
mountlist procmap netload sysdeps timings \
|
mountlist procmap netload sysdeps timings \
|
||||||
@static_targets@ @guile_examples@ @smp_examples@
|
@static_targets@ @smp_examples@
|
||||||
|
|
||||||
EXTRA_PROGRAMS = first_static second_static \
|
EXTRA_PROGRAMS = first_static second_static \
|
||||||
mountlist_static procmap_static \
|
mountlist_static procmap_static \
|
||||||
@@ -22,77 +17,53 @@ EXTRA_PROGRAMS = first_static second_static \
|
|||||||
timings_static
|
timings_static
|
||||||
|
|
||||||
first_SOURCES = first.c
|
first_SOURCES = first.c
|
||||||
first_LDADD = $(top_builddir)/lib/libgtop-2.0.la \
|
first_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
first_static_SOURCES = $(first_SOURCES)
|
first_static_SOURCES = $(first_SOURCES)
|
||||||
first_static_LDADD = $(first_LDADD)
|
first_static_LDADD = $(first_LDADD)
|
||||||
first_static_LDFLAGS = -static
|
first_static_LDFLAGS = -static
|
||||||
|
|
||||||
second_SOURCES = second.c
|
second_SOURCES = second.c
|
||||||
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la \
|
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
second_static_SOURCES = $(second_SOURCES)
|
second_static_SOURCES = $(second_SOURCES)
|
||||||
second_static_LDADD = $(second_LDADD)
|
second_static_LDADD = $(second_LDADD)
|
||||||
second_static_LDFLAGS = -static
|
second_static_LDFLAGS = -static
|
||||||
|
|
||||||
procmap_SOURCES = procmap.c
|
procmap_SOURCES = procmap.c
|
||||||
procmap_LDADD = $(top_builddir)/lib/libgtop-2.0.la \
|
procmap_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procmap_static_SOURCES = $(procmap_SOURCES)
|
procmap_static_SOURCES = $(procmap_SOURCES)
|
||||||
procmap_static_LDADD = $(procmap_LDADD)
|
procmap_static_LDADD = $(procmap_LDADD)
|
||||||
procmap_static_LDFLAGS = -static
|
procmap_static_LDFLAGS = -static
|
||||||
|
|
||||||
netload_SOURCES = netload.c
|
netload_SOURCES = netload.c
|
||||||
netload_LDADD = $(top_builddir)/lib/libgtop-2.0.la \
|
netload_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
netload_static_SOURCES = $(netload_SOURCES)
|
netload_static_SOURCES = $(netload_SOURCES)
|
||||||
netload_static_LDADD = $(netload_LDADD)
|
netload_static_LDADD = $(netload_LDADD)
|
||||||
netload_static_LDFLAGS = -static
|
netload_static_LDFLAGS = -static
|
||||||
|
|
||||||
sysdeps_SOURCES = sysdeps.c
|
sysdeps_SOURCES = sysdeps.c
|
||||||
sysdeps_LDADD = $(top_builddir)/lib/libgtop-2.0.la \
|
sysdeps_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
sysdeps_static_SOURCES = $(sysdeps_SOURCES)
|
sysdeps_static_SOURCES = $(sysdeps_SOURCES)
|
||||||
sysdeps_static_LDADD = $(sysdeps_LDADD)
|
sysdeps_static_LDADD = $(sysdeps_LDADD)
|
||||||
sysdeps_static_LDFLAGS = -static
|
sysdeps_static_LDFLAGS = -static
|
||||||
|
|
||||||
third_guile_names_LIBS = $(top_builddir)/sysdeps/guile/names/libgtop_guile_names-2.0.la
|
|
||||||
third_names_LIBS = $(top_builddir)/sysdeps/names/libgtop_names-2.0.la
|
third_names_LIBS = $(top_builddir)/sysdeps/names/libgtop_names-2.0.la
|
||||||
|
|
||||||
third_SOURCES = third.c
|
third_SOURCES = third.c
|
||||||
third_LDADD = $(top_builddir)/sysdeps/guile/libgtop_guile-2.0.la \
|
third_LDADD = $(third_names_LIBS) \
|
||||||
$(third_guile_names_LIBS) $(third_names_LIBS) \
|
|
||||||
$(top_builddir)/lib/libgtop-2.0.la \
|
$(top_builddir)/lib/libgtop-2.0.la \
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
|
@INTLLIBS@
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
|
|
||||||
@GUILE_LIBS@ @LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
third_static_SOURCES = $(third_SOURCES)
|
third_static_SOURCES = $(third_SOURCES)
|
||||||
third_static_LDADD = $(third_LDADD)
|
third_static_LDADD = $(third_LDADD)
|
||||||
third_static_LDFLAGS = -static
|
third_static_LDFLAGS = -static
|
||||||
|
|
||||||
mountlist_SOURCES = mountlist.c
|
mountlist_SOURCES = mountlist.c
|
||||||
mountlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la \
|
mountlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
mountlist_static_SOURCES= $(mountlist_SOURCES)
|
mountlist_static_SOURCES= $(mountlist_SOURCES)
|
||||||
mountlist_static_LDADD = $(mountlist_LDADD)
|
mountlist_static_LDADD = $(mountlist_LDADD)
|
||||||
@@ -100,20 +71,14 @@ mountlist_static_LDFLAGS= -static
|
|||||||
|
|
||||||
|
|
||||||
smp_SOURCES = smp.c
|
smp_SOURCES = smp.c
|
||||||
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la \
|
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
smp_static_SOURCES = $(smp_SOURCES)
|
smp_static_SOURCES = $(smp_SOURCES)
|
||||||
smp_static_LDADD = $(smp_LDADD)
|
smp_static_LDADD = $(smp_LDADD)
|
||||||
smp_static_LDFLAGS = -static
|
smp_static_LDFLAGS = -static
|
||||||
|
|
||||||
timings_SOURCES = timings.c
|
timings_SOURCES = timings.c
|
||||||
timings_LDADD = $(top_builddir)/lib/libgtop-2.0.la \
|
timings_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common-2.0.la \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la \
|
|
||||||
@LIBSUPPORT@ @INTLLIBS@
|
|
||||||
|
|
||||||
timings_static_SOURCES = $(timings_SOURCES)
|
timings_static_SOURCES = $(timings_SOURCES)
|
||||||
timings_static_LDADD = $(timings_LDADD)
|
timings_static_LDADD = $(timings_LDADD)
|
||||||
|
@@ -22,11 +22,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/open.h>
|
#include <glibtop/open.h>
|
||||||
#include <glibtop/close.h>
|
#include <glibtop/close.h>
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
#include <glibtop/parameter.h>
|
||||||
|
|
||||||
@@ -232,7 +233,7 @@ main (int argc, char *argv [])
|
|||||||
printf ("\n");
|
printf ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
glibtop_free (ptr);
|
g_free (ptr);
|
||||||
|
|
||||||
pid = getpid ();
|
pid = getpid ();
|
||||||
ppid = getppid ();
|
ppid = getppid ();
|
||||||
@@ -346,7 +347,7 @@ main (int argc, char *argv [])
|
|||||||
(unsigned long) data.proc_args.size,
|
(unsigned long) data.proc_args.size,
|
||||||
args ? args : "");
|
args ? args : "");
|
||||||
|
|
||||||
glibtop_free (args);
|
g_free (args);
|
||||||
|
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
|
|
||||||
@@ -456,7 +457,7 @@ main (int argc, char *argv [])
|
|||||||
(unsigned long) data.proc_args.size,
|
(unsigned long) data.proc_args.size,
|
||||||
args ? args : "");
|
args ? args : "");
|
||||||
|
|
||||||
glibtop_free (args);
|
g_free (args);
|
||||||
|
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
|
|
||||||
@@ -567,7 +568,7 @@ main (int argc, char *argv [])
|
|||||||
(unsigned long) data.proc_args.size,
|
(unsigned long) data.proc_args.size,
|
||||||
args ? args : "");
|
args ? args : "");
|
||||||
|
|
||||||
glibtop_free (args);
|
g_free (args);
|
||||||
|
|
||||||
glibtop_close ();
|
glibtop_close ();
|
||||||
|
|
||||||
|
@@ -22,11 +22,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/open.h>
|
#include <glibtop/open.h>
|
||||||
#include <glibtop/close.h>
|
#include <glibtop/close.h>
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
#include <glibtop/parameter.h>
|
||||||
|
|
||||||
@@ -73,7 +74,7 @@ main (int argc, char *argv [])
|
|||||||
for (c = 0; c < PROFILE_COUNT; c++) {
|
for (c = 0; c < PROFILE_COUNT; c++) {
|
||||||
mount_entries = glibtop_get_mountlist (&mount_list, 1);
|
mount_entries = glibtop_get_mountlist (&mount_list, 1);
|
||||||
|
|
||||||
glibtop_free (mount_entries);
|
g_free (mount_entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf ("sbrk (0) = %p\n\n", sbrk (0));
|
printf ("sbrk (0) = %p\n\n", sbrk (0));
|
||||||
@@ -89,21 +90,21 @@ main (int argc, char *argv [])
|
|||||||
mount_entries [index].type,
|
mount_entries [index].type,
|
||||||
mount_entries [index].devname);
|
mount_entries [index].devname);
|
||||||
|
|
||||||
printf ("\n\n%-23s %9s %9s %9s %9s %9s\n\n",
|
printf ("\n\n%-16s %9s %9s %9s %9s %9s %9s\n",
|
||||||
"", "Blocks", "Free", "Avail", "Files", "Free");
|
"Mount", "Blocks", "Free", "Avail", "Files", "Free", "BlockSz");
|
||||||
|
|
||||||
for (index = 0; index < mount_list.number; index++) {
|
for (index = 0; index < mount_list.number; index++) {
|
||||||
glibtop_get_fsusage (&fsusage,
|
glibtop_get_fsusage (&fsusage,
|
||||||
mount_entries [index].mountdir);
|
mount_entries [index].mountdir);
|
||||||
|
|
||||||
printf ("Usage: %-16s %9Lu %9Lu %9Lu %9Lu %9Lu\n",
|
printf ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n",
|
||||||
mount_entries [index].mountdir,
|
mount_entries [index].mountdir,
|
||||||
fsusage.blocks, fsusage.bfree,
|
fsusage.blocks, fsusage.bfree,
|
||||||
fsusage.bavail, fsusage.files,
|
fsusage.bavail, fsusage.files,
|
||||||
fsusage.ffree);
|
fsusage.ffree, fsusage.block_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
glibtop_free (mount_entries);
|
g_free (mount_entries);
|
||||||
|
|
||||||
printf ("\nsbrk (0) = %p\n\n", sbrk (0));
|
printf ("\nsbrk (0) = %p\n\n", sbrk (0));
|
||||||
|
|
||||||
|
@@ -22,11 +22,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/open.h>
|
#include <glibtop/open.h>
|
||||||
#include <glibtop/close.h>
|
#include <glibtop/close.h>
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
#include <glibtop/parameter.h>
|
||||||
|
|
||||||
@@ -82,8 +83,8 @@ main (int argc, char *argv [])
|
|||||||
addr.s_addr = netload.address;
|
addr.s_addr = netload.address;
|
||||||
subnet.s_addr = netload.subnet;
|
subnet.s_addr = netload.subnet;
|
||||||
|
|
||||||
address_string = glibtop_strdup (inet_ntoa (addr));
|
address_string = g_strdup (inet_ntoa (addr));
|
||||||
subnet_string = glibtop_strdup (inet_ntoa (subnet));
|
subnet_string = g_strdup (inet_ntoa (subnet));
|
||||||
|
|
||||||
printf ("Network Load (0x%08lx):\n\n"
|
printf ("Network Load (0x%08lx):\n\n"
|
||||||
"\tInterface Flags:\t0x%08lx\n"
|
"\tInterface Flags:\t0x%08lx\n"
|
||||||
@@ -116,8 +117,8 @@ main (int argc, char *argv [])
|
|||||||
(unsigned long) netload.errors_out,
|
(unsigned long) netload.errors_out,
|
||||||
(unsigned long) netload.errors_total);
|
(unsigned long) netload.errors_total);
|
||||||
|
|
||||||
glibtop_free (address_string);
|
g_free (address_string);
|
||||||
glibtop_free (subnet_string);
|
g_free (subnet_string);
|
||||||
|
|
||||||
glibtop_close ();
|
glibtop_close ();
|
||||||
|
|
||||||
|
30
examples/procargs.c
Normal file
30
examples/procargs.c
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#include <glibtop/procargs.h>
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
while(*++argv)
|
||||||
|
{
|
||||||
|
glibtop_proc_args buf;
|
||||||
|
pid_t pid = strtol(*argv, NULL, 10);
|
||||||
|
char ** const pargv = glibtop_get_proc_argv(&buf, pid, 20);
|
||||||
|
|
||||||
|
char **parg = pargv;
|
||||||
|
|
||||||
|
printf("<%ld>\t", (long)pid);
|
||||||
|
|
||||||
|
while(*parg)
|
||||||
|
{
|
||||||
|
printf("\"%s\"\t", *parg);
|
||||||
|
parg++;
|
||||||
|
}
|
||||||
|
|
||||||
|
putchar('\n');
|
||||||
|
|
||||||
|
g_strfreev(pargv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -22,11 +22,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/open.h>
|
#include <glibtop/open.h>
|
||||||
#include <glibtop/close.h>
|
#include <glibtop/close.h>
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
#include <glibtop/parameter.h>
|
||||||
|
|
||||||
@@ -153,10 +154,10 @@ main (int argc, char *argv [])
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (filename && (filename != maps [i].filename))
|
if (filename && (filename != maps [i].filename))
|
||||||
glibtop_free (filename);
|
g_free ((void*)filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
glibtop_free (maps);
|
g_free (maps);
|
||||||
|
|
||||||
glibtop_close ();
|
glibtop_close ();
|
||||||
|
|
||||||
|
@@ -23,11 +23,12 @@
|
|||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/open.h>
|
#include <glibtop/open.h>
|
||||||
#include <glibtop/close.h>
|
#include <glibtop/close.h>
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
#include <glibtop/union.h>
|
||||||
#include <glibtop/sysdeps.h>
|
#include <glibtop/sysdeps.h>
|
||||||
@@ -45,7 +46,7 @@ output (pid_t pid)
|
|||||||
double b_total, b_utime, b_stime;
|
double b_total, b_utime, b_stime;
|
||||||
double s_total, s_utime, s_stime;
|
double s_total, s_utime, s_stime;
|
||||||
double my_utime, my_stime;
|
double my_utime, my_stime;
|
||||||
int ncpu;
|
unsigned int ncpu;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
@@ -151,7 +152,7 @@ output (pid_t pid)
|
|||||||
(unsigned long) data.proc_args.size,
|
(unsigned long) data.proc_args.size,
|
||||||
args ? args : "");
|
args ? args : "");
|
||||||
|
|
||||||
glibtop_free (args);
|
g_free (args);
|
||||||
|
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
|
|
||||||
@@ -291,7 +292,7 @@ main (int argc, char *argv [])
|
|||||||
output (pid);
|
output (pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
glibtop_free (ptr);
|
g_free (ptr);
|
||||||
|
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
@@ -21,12 +21,17 @@
|
|||||||
Boston, MA 02111-1307, USA.
|
Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <libintl.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/cpu.h>
|
#include <glibtop/cpu.h>
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
#include "libgtop-i18n.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char *argv [])
|
main (int argc, char *argv [])
|
||||||
|
@@ -22,11 +22,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/open.h>
|
#include <glibtop/open.h>
|
||||||
#include <glibtop/close.h>
|
#include <glibtop/close.h>
|
||||||
#include <glibtop/xmalloc.h>
|
#include <glibtop/sysdeps.h>
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
#include <glibtop/parameter.h>
|
||||||
|
|
||||||
@@ -69,7 +71,7 @@ main (int argc, char *argv [])
|
|||||||
|
|
||||||
glibtop_get_sysdeps (&sysdeps);
|
glibtop_get_sysdeps (&sysdeps);
|
||||||
|
|
||||||
#define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f##)) ? 1 : 0)
|
#define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f)) ? 1 : 0)
|
||||||
|
|
||||||
printf ("Sysdeps (0x%08lx):\n\n"
|
printf ("Sysdeps (0x%08lx):\n\n"
|
||||||
"\tfeatures:\t\t0x%08lx\n\n"
|
"\tfeatures:\t\t0x%08lx\n\n"
|
||||||
|
@@ -22,12 +22,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
|
|
||||||
#include <glibtop/open.h>
|
#include <glibtop/open.h>
|
||||||
#include <glibtop/close.h>
|
#include <glibtop/close.h>
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
#include <glibtop/union.h>
|
||||||
#include <glibtop/sysdeps.h>
|
#include <glibtop/sysdeps.h>
|
||||||
|
@@ -22,11 +22,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <libintl.h>
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/open.h>
|
#include <glibtop/open.h>
|
||||||
#include <glibtop/close.h>
|
#include <glibtop/close.h>
|
||||||
#include <glibtop/xmalloc.h>
|
|
||||||
|
|
||||||
#include <glibtop/parameter.h>
|
#include <glibtop/parameter.h>
|
||||||
|
|
||||||
@@ -187,7 +188,7 @@ main (int argc, char *argv [])
|
|||||||
|
|
||||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
|
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
|
||||||
ptr = glibtop_get_proclist (&data.proclist, 0, 0);
|
ptr = glibtop_get_proclist (&data.proclist, 0, 0);
|
||||||
glibtop_free (ptr);
|
g_free (ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
getrusage (RUSAGE_SELF, &rusage_end);
|
getrusage (RUSAGE_SELF, &rusage_end);
|
||||||
|
20
glibtop.h
20
glibtop.h
@@ -84,24 +84,4 @@ glibtop_init_s (glibtop **server_ptr,
|
|||||||
unsigned long features,
|
unsigned long features,
|
||||||
unsigned flags);
|
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
|
#endif
|
||||||
|
@@ -1,2 +1,4 @@
|
|||||||
SUBDIRS = glibtop
|
SUBDIRS = glibtop
|
||||||
|
|
||||||
|
EXTRA_DIST = libgtop-i18n.h
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@ glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \
|
|||||||
sem_limits.h uptime.h command.h mem.h proclist.h \
|
sem_limits.h uptime.h command.h mem.h proclist.h \
|
||||||
proctime.h shm_limits.h version.h cpu.h msg_limits.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 \
|
procmem.h procuid.h swap.h write.h error.h open.h \
|
||||||
procsegment.h read.h sysdeps.h xmalloc.h global.h \
|
procsegment.h read.h sysdeps.h global.h \
|
||||||
procsignal.h read_data.h union.h types.h gnuserv.h \
|
procsignal.h read_data.h union.h types.h gnuserv.h \
|
||||||
parameter.h mountlist.h fsusage.h procmap.h signal.h \
|
parameter.h mountlist.h fsusage.h procmap.h signal.h \
|
||||||
inodedb.h sysinfo.h ppp.h procargs.h netload.h
|
inodedb.h sysinfo.h ppp.h procargs.h netload.h
|
||||||
|
50
include/glibtop/array.h
Normal file
50
include/glibtop/array.h
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_ARRAY_H__
|
||||||
|
#define __GLIBTOP_ARRAY_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define GLIBTOP_ARRAY_NUMBER 0
|
||||||
|
#define GLIBTOP_ARRAY_SIZE 1
|
||||||
|
#define GLIBTOP_ARRAY_TOTAL 2
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_ARRAY 3
|
||||||
|
|
||||||
|
typedef struct _glibtop_array glibtop_array;
|
||||||
|
|
||||||
|
struct _glibtop_array
|
||||||
|
{
|
||||||
|
guint64 flags,
|
||||||
|
number, /* GLIBTOP_ARRAY_NUMBER */
|
||||||
|
size, /* GLIBTOP_ARRAY_SIZE */
|
||||||
|
total; /* GLIBTOP_ARRAY_TOTAL */
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
43
include/glibtop/call-vector.h.in
Normal file
43
include/glibtop/call-vector.h.in
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
@@AUTOGEN_COMMENT@@
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_CALL_VECTOR_H__
|
||||||
|
#define __GLIBTOP_CALL_VECTOR_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/union.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
struct _glibtop_call_vector
|
||||||
|
{
|
||||||
|
@@GLIBTOP_CALL_VECTOR@@
|
||||||
|
};
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
116
include/glibtop/call-vector.pl
Normal file
116
include/glibtop/call-vector.pl
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
require 'c_types.pl';
|
||||||
|
|
||||||
|
die "Usage: $0 features.def call-vector.h.in" unless $#ARGV == 1;
|
||||||
|
|
||||||
|
$[ = 1; # set array base to 1
|
||||||
|
$, = ' '; # set output field separator
|
||||||
|
$\ = "\n"; # set output record separator
|
||||||
|
|
||||||
|
sub toupper {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/a-z/A-Z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub tolower {
|
||||||
|
local($_) = @_;
|
||||||
|
tr/A-Z/a-z/;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
$func_decl_code = '';
|
||||||
|
|
||||||
|
open FEATURESDEF, $ARGV[1] or
|
||||||
|
die "open ($ARGV[1]): $!";
|
||||||
|
|
||||||
|
while (<FEATURESDEF>) {
|
||||||
|
chop; # strip record separator
|
||||||
|
|
||||||
|
if (/^[^\#]/) {
|
||||||
|
&parse_features_def ($_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
close FEATURESDEF;
|
||||||
|
|
||||||
|
sub parse_features_def {
|
||||||
|
local($line) = @_;
|
||||||
|
@line_fields = split(/\|/, $line, 9999);
|
||||||
|
$retval = $line_fields[1];
|
||||||
|
$element_def = $line_fields[3];
|
||||||
|
$feature = $line_fields[2];
|
||||||
|
$param_def = $line_fields[4];
|
||||||
|
|
||||||
|
$orig = $feature;
|
||||||
|
$feature =~ s/^@//;
|
||||||
|
$space = $feature;
|
||||||
|
$space =~ s/./ /g;
|
||||||
|
|
||||||
|
if ($retval eq 'retval') {
|
||||||
|
$retval_param = '&retval';
|
||||||
|
$retval = 'int';
|
||||||
|
}
|
||||||
|
elsif ($retval !~ /^void$/) {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$retval_param = 'NULL';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
||||||
|
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
||||||
|
}
|
||||||
|
|
||||||
|
$param_decl = '';
|
||||||
|
$nr_params = (@params = split(/:/, $param_def, 9999));
|
||||||
|
for ($param = 1; $param <= $nr_params; $param++) {
|
||||||
|
$list = $params[$param];
|
||||||
|
$type = $params[$param];
|
||||||
|
$type =~ s/\(.*//;
|
||||||
|
$list =~ s/^.*\(//;
|
||||||
|
$list =~ s/\)$//;
|
||||||
|
$count = (@fields = split(/,/, $list, 9999));
|
||||||
|
for ($field = 1; $field <= $count; $field++) {
|
||||||
|
my $c_type = $typeinfo->{$type}->[1];
|
||||||
|
|
||||||
|
$param_decl = $param_decl . ', ';
|
||||||
|
$param_decl = $param_decl . $c_type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($line_fields[3] eq '') {
|
||||||
|
$func_decl_code .= sprintf
|
||||||
|
(qq[\t%s (*%s) (glibtop_server *, glibtop_closure *%s);\n], $retval, $feature, $param_decl);
|
||||||
|
} elsif ($line_fields[3] eq 'array') {
|
||||||
|
$func_decl_code .= sprintf
|
||||||
|
(qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *%s);\n], $retval, $feature, $param_decl);
|
||||||
|
} elsif ($line_fields[3] =~ /^array/) {
|
||||||
|
$func_decl_code .= sprintf
|
||||||
|
(qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
|
||||||
|
} else {
|
||||||
|
$func_decl_code .= sprintf
|
||||||
|
(qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
chop $func_decl_code;
|
||||||
|
|
||||||
|
$auto_gen_comment = sprintf
|
||||||
|
(qq[/*\n * This file is automatically generated.\n * Please modify `call-vector.pl' and `call-vector.h.in'.\n */]);
|
||||||
|
|
||||||
|
open CALLVECTOR, $ARGV[2] or
|
||||||
|
die "open ($ARGV[2]): $!";
|
||||||
|
|
||||||
|
while (<CALLVECTOR>) {
|
||||||
|
chop;
|
||||||
|
|
||||||
|
s/^\s*\@\@GLIBTOP_CALL_VECTOR\@\@\s*$/$func_decl_code/;
|
||||||
|
|
||||||
|
s/^\s*\@\@AUTOGEN_COMMENT\@\@\s*$/$auto_gen_comment/;
|
||||||
|
} continue {
|
||||||
|
print $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
close CALLVECTOR;
|
@@ -26,13 +26,13 @@
|
|||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
void glibtop_close_r (glibtop *server);
|
void glibtop_close_r (glibtop *server);
|
||||||
|
|
||||||
void glibtop_close_s (glibtop *server);
|
void glibtop_close_s (glibtop *server);
|
||||||
void glibtop_close_p (glibtop *server);
|
void glibtop_close_p (glibtop *server);
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
#include <glibtop/sysdeps.h>
|
#include <glibtop/sysdeps.h>
|
||||||
#include <glibtop/union.h>
|
#include <glibtop/union.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLIBTOP_CMND_QUIT 0
|
#define GLIBTOP_CMND_QUIT 0
|
||||||
#define GLIBTOP_CMND_SYSDEPS 1
|
#define GLIBTOP_CMND_SYSDEPS 1
|
||||||
@@ -69,8 +69,8 @@ typedef union _glibtop_response_union glibtop_response_union;
|
|||||||
|
|
||||||
struct _glibtop_command
|
struct _glibtop_command
|
||||||
{
|
{
|
||||||
u_int64_t command;
|
guint64 command;
|
||||||
u_int64_t size, data_size;
|
guint64 size, data_size;
|
||||||
char parameter [_GLIBTOP_PARAM_SIZE];
|
char parameter [_GLIBTOP_PARAM_SIZE];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -83,7 +83,7 @@ union _glibtop_response_union
|
|||||||
struct _glibtop_response
|
struct _glibtop_response
|
||||||
{
|
{
|
||||||
int64_t offset;
|
int64_t offset;
|
||||||
u_int64_t size, data_size;
|
guint64 size, data_size;
|
||||||
glibtop_response_union u;
|
glibtop_response_union u;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -97,6 +97,6 @@ void *
|
|||||||
glibtop_call_s (glibtop *server, unsigned command, size_t send_size,
|
glibtop_call_s (glibtop *server, unsigned command, size_t send_size,
|
||||||
const void *send_buf, size_t recv_size, void *recv_buf);
|
const void *send_buf, size_t recv_size, void *recv_buf);
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
91
include/glibtop/compat_10.h
Normal file
91
include/glibtop/compat_10.h
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_COMPAT10_H__
|
||||||
|
#define __GLIBTOP_COMPAT10_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* glibtop_cpu */
|
||||||
|
|
||||||
|
#define GLIBTOP_XCPU_TOTAL GLIBTOP_CPU_XCPU_TOTAL
|
||||||
|
#define GLIBTOP_XCPU_USER GLIBTOP_CPU_XCPU_USER
|
||||||
|
#define GLIBTOP_XCPU_NICE GLIBTOP_CPU_XCPU_NICE
|
||||||
|
#define GLIBTOP_XCPU_SYS GLIBTOP_CPU_XCPU_SYS
|
||||||
|
#define GLIBTOP_XCPU_IDLE GLIBTOP_CPU_XCPU_IDLE
|
||||||
|
#define GLIBTOP_XCPU_FLAGS GLIBTOP_CPU_XCPU_FLAGS
|
||||||
|
|
||||||
|
/* glibtop_proclist */
|
||||||
|
|
||||||
|
#define GLIBTOP_PROCLIST_NUMBER GLIBTOP_ARRAY_NUMBER
|
||||||
|
#define GLIBTOP_PROCLIST_SIZE GLIBTOP_ARRAY_SIZE
|
||||||
|
#define GLIBTOP_PROCLIST_TOTAL GLIBTOP_ARRAY_TOTAL
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_PROCLIST GLIBTOP_MAX_ARRAY
|
||||||
|
|
||||||
|
typedef struct _glibtop_array glibtop_proclist;
|
||||||
|
|
||||||
|
/* glibtop_mountlist */
|
||||||
|
|
||||||
|
#define GLIBTOP_MOUNTLIST_NUMBER GLIBTOP_ARRAY_NUMBER
|
||||||
|
#define GLIBTOP_MOUNTLIST_SIZE GLIBTOP_ARRAY_SIZE
|
||||||
|
#define GLIBTOP_MOUNTLIST_TOTAL GLIBTOP_ARRAY_TOTAL
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_MOUNTLIST GLIBTOP_MAX_ARRAY
|
||||||
|
|
||||||
|
typedef struct _glibtop_array glibtop_mountlist;
|
||||||
|
|
||||||
|
/* glibtop_proc_args */
|
||||||
|
|
||||||
|
#define GLIBTOP_PROC_ARGS_SIZE 0
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_PROC_ARGS 1
|
||||||
|
|
||||||
|
typedef struct _glibtop_array glibtop_proc_args;
|
||||||
|
|
||||||
|
/* glibtop_proc_map */
|
||||||
|
|
||||||
|
#define GLIBTOP_PROC_MAP_NUMBER GLIBTOP_ARRAY_NUMBER
|
||||||
|
#define GLIBTOP_PROC_MAP_SIZE GLIBTOP_ARRAY_SIZE
|
||||||
|
#define GLIBTOP_PROC_MAP_TOTAL GLIBTOP_ARRAY_TOTAL
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_PROC_MAP GLIBTOP_MAX_ARRAY
|
||||||
|
|
||||||
|
typedef struct _glibtop_array glibtop_proc_map;
|
||||||
|
|
||||||
|
/* glibtop_interface_names */
|
||||||
|
|
||||||
|
#define GLIBTOP_INTERFACE_NAMES_NUMBER GLIBTOP_ARRAY_NUMBER
|
||||||
|
#define GLIBTOP_INTERFACE_NAMES_SIZE GLIBTOP_ARRAY_SIZE
|
||||||
|
#define GLIBTOP_INTERFACE_NAMES_TOTAL GLIBTOP_ARRAY_TOTAL
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_INTERFACE_NAMES GLIBTOP_MAX_ARRAY
|
||||||
|
|
||||||
|
typedef struct _glibtop_array glibtop_interface_names;
|
||||||
|
|
||||||
|
#endif
|
@@ -27,7 +27,7 @@
|
|||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/global.h>
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLIBTOP_CPU_TOTAL 0
|
#define GLIBTOP_CPU_TOTAL 0
|
||||||
#define GLIBTOP_CPU_USER 1
|
#define GLIBTOP_CPU_USER 1
|
||||||
@@ -41,8 +41,9 @@ BEGIN_LIBGTOP_DECLS
|
|||||||
#define GLIBTOP_XCPU_NICE 8
|
#define GLIBTOP_XCPU_NICE 8
|
||||||
#define GLIBTOP_XCPU_SYS 9
|
#define GLIBTOP_XCPU_SYS 9
|
||||||
#define GLIBTOP_XCPU_IDLE 10
|
#define GLIBTOP_XCPU_IDLE 10
|
||||||
|
#define GLIBTOP_XCPU_FLAGS 11
|
||||||
|
|
||||||
#define GLIBTOP_MAX_CPU 11
|
#define GLIBTOP_MAX_CPU 12
|
||||||
|
|
||||||
/* Nobody should really be using more than 4 processors. */
|
/* Nobody should really be using more than 4 processors. */
|
||||||
#define GLIBTOP_NCPU 4
|
#define GLIBTOP_NCPU 4
|
||||||
@@ -51,7 +52,7 @@ typedef struct _glibtop_cpu glibtop_cpu;
|
|||||||
|
|
||||||
struct _glibtop_cpu
|
struct _glibtop_cpu
|
||||||
{
|
{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
total, /* GLIBTOP_CPU_TOTAL */
|
total, /* GLIBTOP_CPU_TOTAL */
|
||||||
user, /* GLIBTOP_CPU_USER */
|
user, /* GLIBTOP_CPU_USER */
|
||||||
nice, /* GLIBTOP_CPU_NICE */
|
nice, /* GLIBTOP_CPU_NICE */
|
||||||
@@ -62,7 +63,8 @@ struct _glibtop_cpu
|
|||||||
xcpu_user [GLIBTOP_NCPU], /* GLIBTOP_XCPU_USER */
|
xcpu_user [GLIBTOP_NCPU], /* GLIBTOP_XCPU_USER */
|
||||||
xcpu_nice [GLIBTOP_NCPU], /* GLIBTOP_XCPU_NICE */
|
xcpu_nice [GLIBTOP_NCPU], /* GLIBTOP_XCPU_NICE */
|
||||||
xcpu_sys [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SYS */
|
xcpu_sys [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SYS */
|
||||||
xcpu_idle [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IDLE */
|
xcpu_idle [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IDLE */
|
||||||
|
xcpu_flags; /* GLIBTOP_XCPU_IDLE */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_cpu(cpu) glibtop_get_cpu_l(glibtop_global_server, cpu)
|
#define glibtop_get_cpu(cpu) glibtop_get_cpu_l(glibtop_global_server, cpu)
|
||||||
@@ -94,6 +96,6 @@ extern const char *glibtop_descriptions_cpu [];
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#ifndef G_GNUC_UNUSED
|
#ifndef G_GNUC_UNUSED
|
||||||
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
|
||||||
@@ -131,6 +131,6 @@ glibtop_warn_io (char *format, ...)
|
|||||||
|
|
||||||
#endif /* no __GNUC__ */
|
#endif /* no __GNUC__ */
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
95
include/glibtop/errors.h
Normal file
95
include/glibtop/errors.h
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_ERRORS_H__
|
||||||
|
#define __GLIBTOP_ERRORS_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define GLIBTOP_ERROR glibtop_error_quark ()
|
||||||
|
|
||||||
|
GQuark glibtop_error_quark (void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
GLIBTOP_ERROR_NO_ERROR = 0,
|
||||||
|
GLIBTOP_ERROR_UNKNOWN,
|
||||||
|
GLIBTOP_ERROR_INVALID_ARGUMENT,
|
||||||
|
GLIBTOP_ERROR_NO_SUCH_PARAMETER,
|
||||||
|
GLIBTOP_ERROR_READONLY_VALUE,
|
||||||
|
GLIBTOP_ERROR_SIZE_MISMATCH,
|
||||||
|
|
||||||
|
GLIBTOP_ERROR_SERVER_COMM_FAILURE,
|
||||||
|
|
||||||
|
GLIBTOP_ERROR_NO_SUCH_PROCESS,
|
||||||
|
|
||||||
|
GLIBTOP_ERROR_NO_KERNEL_SUPPORT,
|
||||||
|
GLIBTOP_ERROR_INCOMPATIBLE_KERNEL,
|
||||||
|
|
||||||
|
GLIBTOP_ERROR_NO_SUCH_BACKEND,
|
||||||
|
GLIBTOP_ERROR_NOT_IMPLEMENTED,
|
||||||
|
GLIBTOP_ERROR_NO_BACKEND_OPENED,
|
||||||
|
|
||||||
|
GLIBTOP_ERROR_DEMARSHAL_ERROR
|
||||||
|
} glibtop_error;
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_error_vl (glibtop_client *client, glibtop_error code,
|
||||||
|
const char *format, va_list args);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_error_io_vl (glibtop_client *client, glibtop_error code,
|
||||||
|
int io_errno, const char *format, va_list args);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_warn_vl (glibtop_client *client, glibtop_error code,
|
||||||
|
const char *format, va_list args);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_warn_io_vl (glibtop_client *client, glibtop_error code,
|
||||||
|
int io_errno, const char *format, va_list args);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_error_l (glibtop_client *client, glibtop_error code,
|
||||||
|
char *format, ...);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_warn_l (glibtop_client *client, glibtop_error code,
|
||||||
|
char *format, ...);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_error_io_l (glibtop_client *client, glibtop_error code,
|
||||||
|
char *format, ...);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_warn_io_l (glibtop_client *client, glibtop_error code,
|
||||||
|
char *format, ...);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
@@ -1,7 +1,6 @@
|
|||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
/* 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.
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
@@ -27,26 +26,29 @@
|
|||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/global.h>
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLIBTOP_FSUSAGE_BLOCKS 0
|
#define GLIBTOP_FSUSAGE_BLOCKS 0
|
||||||
#define GLIBTOP_FSUSAGE_BFREE 1
|
#define GLIBTOP_FSUSAGE_BFREE 1
|
||||||
#define GLIBTOP_FSUSAGE_BAVAIL 2
|
#define GLIBTOP_FSUSAGE_BAVAIL 2
|
||||||
#define GLIBTOP_FSUSAGE_FILES 3
|
#define GLIBTOP_FSUSAGE_FILES 3
|
||||||
#define GLIBTOP_FSUSAGE_FFREE 4
|
#define GLIBTOP_FSUSAGE_FFREE 4
|
||||||
|
#define GLIBTOP_FSUSAGE_BLOCK_SIZE 5
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_FSUSAGE 6
|
||||||
|
|
||||||
#define GLIBTOP_MAX_FSUSAGE 5
|
|
||||||
|
|
||||||
typedef struct _glibtop_fsusage glibtop_fsusage;
|
typedef struct _glibtop_fsusage glibtop_fsusage;
|
||||||
|
|
||||||
struct _glibtop_fsusage
|
struct _glibtop_fsusage
|
||||||
{
|
{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
blocks, /* Total blocks. */
|
blocks, /* Total number of blocks. */
|
||||||
bfree, /* Free blocks available to superuser. */
|
bfree, /* Free blocks available to superuser. */
|
||||||
bavail, /* Free blocks available to non-superuser. */
|
bavail, /* Free blocks available to non-superuser. */
|
||||||
files, /* Total file nodes. */
|
files, /* Total file nodes. */
|
||||||
ffree; /* Free file nodes. */
|
ffree; /* Free file nodes. */
|
||||||
|
guint32 block_size; /* Size of a block in bytes. */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_fsusage(fsusage,disk) glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk)
|
#define glibtop_get_fsusage(fsusage,disk) glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk)
|
||||||
@@ -67,6 +69,6 @@ extern const char *glibtop_descriptions_fsusage [];
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
50
include/glibtop/glib-arrays.h
Normal file
50
include/glibtop/glib-arrays.h
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_GLIB_ARRAYS_H__
|
||||||
|
#define __GLIBTOP_GLIB_ARRAYS_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/array.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GPtrArray *
|
||||||
|
glibtop_get_proc_args_as_array_l (glibtop_client *client, pid_t pid);
|
||||||
|
|
||||||
|
GArray *
|
||||||
|
glibtop_get_proclist_as_array_l (glibtop_client *client, int64_t which, int64_t arg);
|
||||||
|
|
||||||
|
GPtrArray *
|
||||||
|
glibtop_get_proc_map_as_array_l (glibtop_client *client, pid_t pid);
|
||||||
|
|
||||||
|
GPtrArray *
|
||||||
|
glibtop_get_mountlist_as_array_l (glibtop_client *client, int all_fs);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
#endif
|
102
include/glibtop/glibtop-backend-info.h
Normal file
102
include/glibtop/glibtop-backend-info.h
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_BACKEND_INFO_H__
|
||||||
|
#define __GLIBTOP_BACKEND_INFO_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
#include <glibtop/glibtop-server.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _glibtop_backend_info glibtop_backend_info;
|
||||||
|
typedef struct _glibtop_backend_entry glibtop_backend_entry;
|
||||||
|
typedef struct _glibtop_backend_module glibtop_backend_module;
|
||||||
|
|
||||||
|
typedef struct _glibtop_call_vector glibtop_call_vector;
|
||||||
|
|
||||||
|
typedef int (*glibtop_backend_open_func_t) (glibtop_server *, glibtop_backend *,
|
||||||
|
guint64, const char **);
|
||||||
|
typedef int (*glibtop_backend_close_func_t) (glibtop_server *, glibtop_backend *,
|
||||||
|
glibtop_closure *);
|
||||||
|
|
||||||
|
struct _glibtop_backend_info
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
glibtop_backend_open_func_t open;
|
||||||
|
glibtop_backend_close_func_t close;
|
||||||
|
glibtop_call_vector *call_vector;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef _IN_LIBGTOP
|
||||||
|
|
||||||
|
#include <gmodule.h>
|
||||||
|
|
||||||
|
/* private structure */
|
||||||
|
struct _glibtop_backend_module
|
||||||
|
{
|
||||||
|
int refcount;
|
||||||
|
GModule *module;
|
||||||
|
GSList *extra_modules;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _glibtop_backend_entry
|
||||||
|
{
|
||||||
|
char *name;
|
||||||
|
char *libtool_name;
|
||||||
|
char *shlib_name;
|
||||||
|
|
||||||
|
GSList *extra_libs;
|
||||||
|
|
||||||
|
/* This is const since you must not attempt to
|
||||||
|
* write into gmodule loaded memory. */
|
||||||
|
const glibtop_backend_info *info;
|
||||||
|
|
||||||
|
/* private pointer */
|
||||||
|
glibtop_backend_module *_priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* _IN_LIBGTOP */
|
||||||
|
|
||||||
|
long
|
||||||
|
glibtop_register_backend (glibtop_backend_entry *entry);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_unregister_backend (long id);
|
||||||
|
|
||||||
|
glibtop_backend_entry *
|
||||||
|
glibtop_backend_by_id (long id);
|
||||||
|
|
||||||
|
glibtop_backend_entry *
|
||||||
|
glibtop_backend_by_name (const char *backend_name);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_init_backends (void);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
85
include/glibtop/glibtop-backend.h
Normal file
85
include/glibtop/glibtop-backend.h
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 2.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_BACKEND_H__
|
||||||
|
#define __GLIBTOP_BACKEND_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glib-object.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define GLIBTOP_TYPE_BACKEND (glibtop_backend_get_type ())
|
||||||
|
#define GLIBTOP_BACKEND(backend) (G_TYPE_CHECK_INSTANCE_CAST ((backend), GLIBTOP_TYPE_BACKEND, glibtop_backend))
|
||||||
|
#define GLIBTOP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLIBTOP_TYPE_BACKEND, glibtop_backend_class))
|
||||||
|
#define GLIBTOP_IS_BACKEND(backend) (G_TYPE_CHECK_INSTANCE_TYPE ((backend), GLIBTOP_TYPE_BACKEND))
|
||||||
|
#define GLIBTOP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLIBTOP_TYPE_BACKEND))
|
||||||
|
#define GLIBTOP_BACKEND_GET_CLASS(backend)(G_TYPE_INSTANCE_GET_CLASS ((backend), GLIBTOP_TYPE_BACKEND, glibtop_backend_class))
|
||||||
|
|
||||||
|
#define GLIBTOP_BACKEND_TYPE(backend) (G_TYPE_FROM_INSTANCE (backend))
|
||||||
|
#define GLIBTOP_BACKEND_TYPE_NAME(backend)(g_type_name (GLIBTOP_BACKEND_TYPE (backend)))
|
||||||
|
|
||||||
|
/* --- typedefs & structures --- */
|
||||||
|
typedef struct _glibtop_backend glibtop_backend;
|
||||||
|
typedef struct _glibtop_backend_class glibtop_backend_class;
|
||||||
|
typedef struct _glibtop_backend_private glibtop_backend_private;
|
||||||
|
|
||||||
|
#include <glibtop/glibtop-backend-info.h>
|
||||||
|
|
||||||
|
struct _glibtop_backend
|
||||||
|
{
|
||||||
|
GObject object;
|
||||||
|
|
||||||
|
/* <private> */
|
||||||
|
glibtop_backend_private *_priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _glibtop_backend_class
|
||||||
|
{
|
||||||
|
GObjectClass parent_class;;
|
||||||
|
};
|
||||||
|
|
||||||
|
GType
|
||||||
|
glibtop_backend_get_type (void);
|
||||||
|
|
||||||
|
glibtop_backend *
|
||||||
|
glibtop_backend_get (const char *backend_name, guint64 features,
|
||||||
|
const char **backend_args, GError **error);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_backend_set_closure_data (glibtop_backend *backend, glibtop_closure *closure);
|
||||||
|
|
||||||
|
glibtop_closure *
|
||||||
|
glibtop_backend_get_closure_data (glibtop_backend *backend);
|
||||||
|
|
||||||
|
glibtop_call_vector *
|
||||||
|
glibtop_backend_get_call_vector (glibtop_backend *backend);
|
||||||
|
|
||||||
|
glibtop_server *
|
||||||
|
glibtop_backend_get_server (glibtop_backend *backend);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
97
include/glibtop/glibtop-client.h
Normal file
97
include/glibtop/glibtop-client.h
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 2.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_CLIENT_H__
|
||||||
|
#define __GLIBTOP_CLIENT_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
|
||||||
|
#include <glib-object.h>
|
||||||
|
|
||||||
|
#include <glibtop/glibtop-backend.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define GLIBTOP_TYPE_CLIENT (glibtop_client_get_type ())
|
||||||
|
#define GLIBTOP_CLIENT(client) (G_TYPE_CHECK_INSTANCE_CAST ((client), GLIBTOP_TYPE_CLIENT, glibtop_client))
|
||||||
|
#define GLIBTOP_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLIBTOP_TYPE_CLIENT, glibtop_client_class))
|
||||||
|
#define GLIBTOP_IS_CLIENT(client) (G_TYPE_CHECK_INSTANCE_TYPE ((client), GLIBTOP_TYPE_CLIENT))
|
||||||
|
#define GLIBTOP_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLIBTOP_TYPE_CLIENT))
|
||||||
|
#define GLIBTOP_CLIENT_GET_CLASS(client)(G_TYPE_INSTANCE_GET_CLASS ((client), GLIBTOP_TYPE_CLIENT, glibtop_client_class))
|
||||||
|
|
||||||
|
#define GLIBTOP_CLIENT_TYPE(client) (G_TYPE_FROM_INSTANCE (client))
|
||||||
|
#define GLIBTOP_CLIENT_TYPE_NAME(client)(g_type_name (GLIBTOP_CLIENT_TYPE (client)))
|
||||||
|
|
||||||
|
/* --- typedefs & structures --- */
|
||||||
|
typedef struct _glibtop_client glibtop_client;
|
||||||
|
typedef struct _glibtop_client_class glibtop_client_class;
|
||||||
|
typedef struct _glibtop_client_private glibtop_client_private;
|
||||||
|
|
||||||
|
struct _glibtop_client
|
||||||
|
{
|
||||||
|
GObject object;
|
||||||
|
|
||||||
|
/* <public> */
|
||||||
|
GError *error;
|
||||||
|
|
||||||
|
/* <private> */
|
||||||
|
glibtop_client_private *_priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _glibtop_client_class
|
||||||
|
{
|
||||||
|
GObjectClass parent_class;;
|
||||||
|
|
||||||
|
void (*error) (glibtop_client *client, GError *error);
|
||||||
|
void (*warning) (glibtop_client *client, GError *error);
|
||||||
|
};
|
||||||
|
|
||||||
|
GType
|
||||||
|
glibtop_client_get_type (void);
|
||||||
|
|
||||||
|
glibtop_client *
|
||||||
|
glibtop_client_new (void);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_client_propagate_error (glibtop_client *client, GError *error);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_client_propagate_warning (glibtop_client *client, GError *error);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_client_open_backend (glibtop_client *client, const char *backend_name,
|
||||||
|
guint64 features, const char **backend_args);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_client_add_backend (glibtop_client *client,
|
||||||
|
glibtop_backend *backend);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_client_remove_backend (glibtop_client *client,
|
||||||
|
glibtop_backend *backend);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
75
include/glibtop/glibtop-server.h
Normal file
75
include/glibtop/glibtop-server.h
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 2.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_SERVER_H__
|
||||||
|
#define __GLIBTOP_SERVER_H__
|
||||||
|
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
#include <glibtop/sysdeps.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _glibtop_server glibtop_server;
|
||||||
|
typedef struct _glibtop_server_info glibtop_server_info;
|
||||||
|
|
||||||
|
typedef struct _glibtop_closure glibtop_closure;
|
||||||
|
|
||||||
|
typedef int (*glibtop_init_func_t) (glibtop_server *, glibtop_closure *);
|
||||||
|
|
||||||
|
extern glibtop_init_func_t _glibtop_init_hook_s [];
|
||||||
|
extern glibtop_init_func_t _glibtop_init_hook_p [];
|
||||||
|
|
||||||
|
struct _glibtop_server_info
|
||||||
|
{
|
||||||
|
int ncpu; /* Number of CPUs, zero if single-processor */
|
||||||
|
unsigned long features; /* Server is required for this features */
|
||||||
|
glibtop_sysdeps sysdeps; /* Detailed feature list */
|
||||||
|
glibtop_sysdeps required; /* Required feature list */
|
||||||
|
glibtop_sysdeps wanted; /* We only want this features */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _glibtop_server
|
||||||
|
{
|
||||||
|
glibtop_server_info *info;
|
||||||
|
|
||||||
|
int refcount;
|
||||||
|
unsigned flags;
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
void *_priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
glibtop_server *
|
||||||
|
glibtop_server_new (void);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_server_ref (glibtop_server *server);
|
||||||
|
|
||||||
|
void
|
||||||
|
glibtop_server_unref (glibtop_server *server);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
@@ -24,43 +24,14 @@
|
|||||||
#ifndef __GLIBTOP_GLOBAL_H__
|
#ifndef __GLIBTOP_GLOBAL_H__
|
||||||
#define __GLIBTOP_GLOBAL_H__
|
#define __GLIBTOP_GLOBAL_H__
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
#ifdef _IN_LIBGTOP
|
#ifdef _IN_LIBGTOP
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#endif
|
#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
|
#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 */
|
#endif /* _IN_LIBGTOP */
|
||||||
|
|
||||||
#if TIME_WITH_SYS_TIME
|
#if TIME_WITH_SYS_TIME
|
||||||
@@ -74,27 +45,6 @@
|
|||||||
# endif
|
# endif
|
||||||
#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 <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
@@ -124,18 +74,13 @@
|
|||||||
|
|
||||||
#ifdef _IN_LIBGTOP
|
#ifdef _IN_LIBGTOP
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#ifndef _
|
|
||||||
#define _(String) dgettext (PACKAGE, String)
|
|
||||||
#define N_(String) (String)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_STRERROR
|
#ifndef HAVE_STRERROR
|
||||||
char *strerror (int errno);
|
char *strerror (int errno);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* _IN_LIBGTOP */
|
#endif /* _IN_LIBGTOP */
|
||||||
|
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
#define GLIBTOP_INODEDB_ALL 7
|
#define GLIBTOP_INODEDB_ALL 7
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
typedef struct _glibtop_inodedb glibtop_inodedb;
|
typedef struct _glibtop_inodedb glibtop_inodedb;
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ typedef struct _glibtop_inodedb_key glibtop_inodedb_key;
|
|||||||
|
|
||||||
struct _glibtop_inodedb_key
|
struct _glibtop_inodedb_key
|
||||||
{
|
{
|
||||||
u_int64_t device, inode;
|
guint64 device, inode;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _glibtop_inodedb
|
struct _glibtop_inodedb
|
||||||
@@ -57,11 +57,11 @@ glibtop_inodedb_open_s (glibtop *server, unsigned databases, unsigned long cache
|
|||||||
const char *
|
const char *
|
||||||
glibtop_inodedb_lookup_s (glibtop *server,
|
glibtop_inodedb_lookup_s (glibtop *server,
|
||||||
glibtop_inodedb *inodedb,
|
glibtop_inodedb *inodedb,
|
||||||
u_int64_t device, u_int64_t inode);
|
guint64 device, guint64 inode);
|
||||||
|
|
||||||
void
|
void
|
||||||
glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb);
|
glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb);
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
203
include/glibtop/interfaces.h
Normal file
203
include/glibtop/interfaces.h
Normal file
@@ -0,0 +1,203 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_INTERFACES_H__
|
||||||
|
#define __GLIBTOP_INTERFACES_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
#include <glibtop/compat_10.h>
|
||||||
|
#include <glibtop/array.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define GLIBTOP_INTERFACE_IF_FLAGS 0
|
||||||
|
#define GLIBTOP_INTERFACE_TRANSPORT 1
|
||||||
|
#define GLIBTOP_INTERFACE_TYPE 2
|
||||||
|
#define GLIBTOP_INTERFACE_NUMBER 3
|
||||||
|
#define GLIBTOP_INTERFACE_INSTANCE 4
|
||||||
|
#define GLIBTOP_INTERFACE_NUM_LOGICAL 5
|
||||||
|
#define GLIBTOP_INTERFACE_NAME 6
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_INTERFACE 7
|
||||||
|
|
||||||
|
#define GLIBTOP_IFADDR_TRANSPORT 0
|
||||||
|
#define GLIBTOP_IFADDR_ADDR_LEN 1
|
||||||
|
#define GLIBTOP_IFADDR_ADDRESS 2
|
||||||
|
#define GLIBTOP_IFADDR_SUBNET 3
|
||||||
|
#define GLIBTOP_IFADDR_SCOPE 4
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_IFADDR 5
|
||||||
|
|
||||||
|
typedef struct _glibtop_interface glibtop_interface;
|
||||||
|
typedef struct _glibtop_ifaddr glibtop_ifaddr;
|
||||||
|
|
||||||
|
typedef enum _glibtop_interface_type glibtop_interface_type;
|
||||||
|
typedef enum _glibtop_transport glibtop_transport;
|
||||||
|
typedef enum _glibtop_protocol glibtop_protocol;
|
||||||
|
|
||||||
|
typedef enum _glibtop_ipv6_scope glibtop_ipv6_scope;
|
||||||
|
|
||||||
|
typedef enum _glibtop_strategy glibtop_strategy;
|
||||||
|
typedef enum _glibtop_interface_flags glibtop_interface_flags;
|
||||||
|
|
||||||
|
enum _glibtop_protocol {
|
||||||
|
GLIBTOP_PROTOCOL_OTHERS = 0,
|
||||||
|
GLIBTOP_PROTOCOL_ICMP = 1 << 0,
|
||||||
|
GLIBTOP_PROTOCOL_TCP = 1 << 1,
|
||||||
|
GLIBTOP_PROTOCOL_UDP = 1 << 2,
|
||||||
|
GLIBTOP_PROTOCOL_IGMP = 1 << 3,
|
||||||
|
GLIBTOP_PROTOCOL_RAW = 1 << 4,
|
||||||
|
GLIBTOP_PROTOCOL_ICMP6 = 1 << 5,
|
||||||
|
GLIBTOP_PROTOCOL_TCP6 = 1 << 6,
|
||||||
|
GLIBTOP_PROTOCOL_UDP6 = 1 << 7,
|
||||||
|
GLIBTOP_PROTOCOL_IGMP6 = 1 << 8,
|
||||||
|
GLIBTOP_PROTOCOL_RAW6 = 1 << 9
|
||||||
|
};
|
||||||
|
|
||||||
|
enum _glibtop_transport {
|
||||||
|
GLIBTOP_TRANSPORT_DEFAULT = 0,
|
||||||
|
GLIBTOP_TRANSPORT_IPV4 = 1 << 0,
|
||||||
|
GLIBTOP_TRANSPORT_IPV6 = 1 << 1,
|
||||||
|
GLIBTOP_TRANSPORT_IPX = 1 << 2,
|
||||||
|
GLIBTOP_TRANSPORT_X25 = 1 << 3,
|
||||||
|
GLIBTOP_TRANSPORT_DECNET = 1 << 4,
|
||||||
|
GLIBTOP_TRANSPORT_APPLETALK = 1 << 5,
|
||||||
|
GLIBTOP_TRANSPORT_NETBEUI = 1 << 6
|
||||||
|
};
|
||||||
|
|
||||||
|
#define GLIBTOP_TRANSPORT_ALL GLIBTOP_UNLIMITED
|
||||||
|
#define GLIBTOP_PROTOCOL_ALL GLIBTOP_UNLIMITED
|
||||||
|
|
||||||
|
enum _glibtop_interface_type {
|
||||||
|
GLIBTOP_INTERFACE_ALL = 0,
|
||||||
|
GLIBTOP_INTERFACE_OTHER,
|
||||||
|
/* Network interfaces */
|
||||||
|
GLIBTOP_INTERFACE_ETHERNET = 101,
|
||||||
|
GLIBTOP_INTERFACE_FDDI,
|
||||||
|
GLIBTOP_INTERFACE_FRAME_RELAY,
|
||||||
|
GLIBTOP_INTERFACE_TOKEN_RING,
|
||||||
|
GLIBTOP_INTERFACE_ARCNET,
|
||||||
|
GLIBTOP_INTERFACE_ATM,
|
||||||
|
/* Dummy interfaces */
|
||||||
|
GLIBTOP_INTERFACE_LOOPBACK = 501,
|
||||||
|
GLIBTOP_INTERFACE_DUMMY,
|
||||||
|
/* Dialup interfaces */
|
||||||
|
GLIBTOP_INTERFACE_PARA = 801,
|
||||||
|
GLIBTOP_INTERFACE_SLIP,
|
||||||
|
GLIBTOP_INTERFACE_PPP,
|
||||||
|
GLIBTOP_INTERFACE_ISDN
|
||||||
|
};
|
||||||
|
|
||||||
|
enum _glibtop_ipv6_scope {
|
||||||
|
GLIBTOP_IPV6_SCOPE_GLOBAL = 0,
|
||||||
|
GLIBTOP_IPV6_SCOPE_LOOPBACK = 1 << 1,
|
||||||
|
GLIBTOP_IPV6_SCOPE_LINKLOCAL = 1 << 2,
|
||||||
|
GLIBTOP_IPV6_SCOPE_SITELOCAL = 1 << 3,
|
||||||
|
GLIBTOP_IPV6_SCOPE_COMPATv4 = 1 << 4,
|
||||||
|
GLIBTOP_IPV6_SCOPE_UNKNOWN = 1 << 5
|
||||||
|
};
|
||||||
|
|
||||||
|
enum _glibtop_strategy {
|
||||||
|
GLIBTOP_INTERFACES_ALL = 0,
|
||||||
|
GLIBTOP_INTERFACES_BEST_MATCHING,
|
||||||
|
GLIBTOP_INTERFACES_ONLY_THIS_ONE,
|
||||||
|
GLIBTOP_INTERFACES_INCLUDE_LOGICAL = 1 << 7
|
||||||
|
};
|
||||||
|
|
||||||
|
#define GLIBTOP_STRATEGY_FLAGS_MASK (1 << 7)
|
||||||
|
|
||||||
|
enum _glibtop_interface_flags {
|
||||||
|
GLIBTOP_IF_FLAGS_UP = 1,
|
||||||
|
GLIBTOP_IF_FLAGS_BROADCAST,
|
||||||
|
GLIBTOP_IF_FLAGS_DEBUG,
|
||||||
|
GLIBTOP_IF_FLAGS_LOOPBACK,
|
||||||
|
GLIBTOP_IF_FLAGS_POINTOPOINT,
|
||||||
|
GLIBTOP_IF_FLAGS_RUNNING,
|
||||||
|
GLIBTOP_IF_FLAGS_NOARP,
|
||||||
|
GLIBTOP_IF_FLAGS_PROMISC,
|
||||||
|
GLIBTOP_IF_FLAGS_ALLMULTI,
|
||||||
|
GLIBTOP_IF_FLAGS_OACTIVE,
|
||||||
|
GLIBTOP_IF_FLAGS_SIMPLEX,
|
||||||
|
GLIBTOP_IF_FLAGS_LINK0,
|
||||||
|
GLIBTOP_IF_FLAGS_LINK1,
|
||||||
|
GLIBTOP_IF_FLAGS_LINK2,
|
||||||
|
GLIBTOP_IF_FLAGS_ALTPHYS,
|
||||||
|
GLIBTOP_IF_FLAGS_MULTICAST
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _glibtop_ifaddr
|
||||||
|
{
|
||||||
|
guint64 flags,
|
||||||
|
transport; /* GLIBTOP_IFADDR_TRANSPORT */
|
||||||
|
u_int8_t addr_len, /* GLIBTOP_IFADDR_ADDR_LEN */
|
||||||
|
address [GLIBTOP_IFADDR_LEN]; /* GLIBTOP_IFADDR_ADDRESS */
|
||||||
|
guint64 subnet, /* GLIBTOP_IFADDR_SUBNET */
|
||||||
|
scope; /* GLIBTOP_IFADDR_SCOPE */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _glibtop_interface
|
||||||
|
{
|
||||||
|
guint64 flags,
|
||||||
|
if_flags, /* GLIBTOP_INTERFACE_IF_FLAGS */
|
||||||
|
transport, /* GLIBTOP_INTERFACE_TRANSPORT */
|
||||||
|
type, /* GLIBTOP_INTERFACE_TYPE */
|
||||||
|
number, /* GLIBTOP_INTERFACE_NUMBER */
|
||||||
|
instance, /* GLIBTOP_INTERFACE_INSTANCE */
|
||||||
|
num_logical; /* GLIBTOP_INTERFACE_NUM_LOGICAL */
|
||||||
|
char name [GLIBTOP_INTERFACE_LEN];
|
||||||
|
};
|
||||||
|
|
||||||
|
#if GLIBTOP_SUID_INTERFACE_NAMES
|
||||||
|
#define glibtop_get_interface_names_r glibtop_get_interface_names_p
|
||||||
|
#else
|
||||||
|
#define glibtop_get_interface_names_r glibtop_get_interface_names_s
|
||||||
|
#endif
|
||||||
|
|
||||||
|
glibtop_interface *glibtop_get_interface_names_l (glibtop_client *client, glibtop_array *array, guint64 interface, guint64 number, guint64 instance, guint64 strategy);
|
||||||
|
|
||||||
|
#if GLIBTOP_SUID_INTERFACE_NAMES
|
||||||
|
int glibtop_init_interface_names_p (glibtop_server *server, glibtop_closure *closure);
|
||||||
|
glibtop_interface *glibtop_get_interface_names_p (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, guint64 interface, guint64 number, guint64 instance, guint64 strategy);
|
||||||
|
#else
|
||||||
|
int glibtop_init_interface_names_s (glibtop_server *server, glibtop_closure *closure);
|
||||||
|
glibtop_interface *glibtop_get_interface_names_s (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, guint64 interface, guint64 number, guint64 instance, guint64 strategy);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GLIBTOP_NAMES
|
||||||
|
|
||||||
|
/* You need to link with -lgtop_names to get this stuff here. */
|
||||||
|
|
||||||
|
extern const char *glibtop_names_interface_names [];
|
||||||
|
extern const unsigned glibtop_types_interface_names [];
|
||||||
|
extern const char *glibtop_labels_interface_names [];
|
||||||
|
extern const char *glibtop_descriptions_interface_names [];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
56
include/glibtop/limits.h
Normal file
56
include/glibtop/limits.h
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_LIMITS_H__
|
||||||
|
#define __GLIBTOP_LIMITS_H__
|
||||||
|
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* Nobody should really be using more than 64 processors. */
|
||||||
|
#define GLIBTOP_NCPU 64
|
||||||
|
|
||||||
|
/* Maximum number of process groups in glibtop_proc_uid. */
|
||||||
|
#define GLIBTOP_MAX_GROUPS 32
|
||||||
|
|
||||||
|
/* Maximum length of a mountpoint/device name in glibtop_mountlist. */
|
||||||
|
#define GLIBTOP_MOUNTENTRY_LEN 79
|
||||||
|
|
||||||
|
/* Maximum length of a network interface name. */
|
||||||
|
#define GLIBTOP_INTERFACE_LEN 32
|
||||||
|
|
||||||
|
/* Length of a network interface address in bytes. */
|
||||||
|
#define GLIBTOP_IFADDR_LEN 16
|
||||||
|
|
||||||
|
/* This is ((guint64)-1) */
|
||||||
|
#define GLIBTOP_UNLIMITED (~(guint64)0)
|
||||||
|
|
||||||
|
/* Maximum length of a backend name. */
|
||||||
|
#define GLIBTOP_BACKEND_NAME_LEN 40
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
@@ -27,7 +27,7 @@
|
|||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/global.h>
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLIBTOP_LOADAVG_LOADAVG 0
|
#define GLIBTOP_LOADAVG_LOADAVG 0
|
||||||
#define GLIBTOP_LOADAVG_NR_RUNNING 1
|
#define GLIBTOP_LOADAVG_NR_RUNNING 1
|
||||||
@@ -40,9 +40,9 @@ typedef struct _glibtop_loadavg glibtop_loadavg;
|
|||||||
|
|
||||||
struct _glibtop_loadavg
|
struct _glibtop_loadavg
|
||||||
{
|
{
|
||||||
u_int64_t flags;
|
guint64 flags;
|
||||||
double loadavg [3]; /* GLIBTOP_LOADAVG_LOADAVG */
|
double loadavg [3]; /* GLIBTOP_LOADAVG_LOADAVG */
|
||||||
u_int64_t nr_running, /* GLIBTOP_LOADAVG_NR_RUNNING */
|
guint64 nr_running, /* GLIBTOP_LOADAVG_NR_RUNNING */
|
||||||
nr_tasks, /* GLIBTOP_LOADAVG_NR_TASKS */
|
nr_tasks, /* GLIBTOP_LOADAVG_NR_TASKS */
|
||||||
last_pid; /* GLIBTOP_LOADAVG_LAST_PID */
|
last_pid; /* GLIBTOP_LOADAVG_LAST_PID */
|
||||||
};
|
};
|
||||||
@@ -76,6 +76,6 @@ extern const char *glibtop_descriptions_loadavg [];
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/global.h>
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLIBTOP_MEM_TOTAL 0
|
#define GLIBTOP_MEM_TOTAL 0
|
||||||
#define GLIBTOP_MEM_USED 1
|
#define GLIBTOP_MEM_USED 1
|
||||||
@@ -44,7 +44,7 @@ typedef struct _glibtop_mem glibtop_mem;
|
|||||||
|
|
||||||
struct _glibtop_mem
|
struct _glibtop_mem
|
||||||
{
|
{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
total, /* GLIBTOP_MEM_TOTAL */
|
total, /* GLIBTOP_MEM_TOTAL */
|
||||||
used, /* GLIBTOP_MEM_USED */
|
used, /* GLIBTOP_MEM_USED */
|
||||||
free, /* GLIBTOP_MEM_FREE */
|
free, /* GLIBTOP_MEM_FREE */
|
||||||
@@ -84,6 +84,6 @@ extern const char *glibtop_descriptions_mem [];
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/global.h>
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLIBTOP_MOUNTLIST_NUMBER 0
|
#define GLIBTOP_MOUNTLIST_NUMBER 0
|
||||||
#define GLIBTOP_MOUNTLIST_TOTAL 1
|
#define GLIBTOP_MOUNTLIST_TOTAL 1
|
||||||
@@ -41,7 +41,7 @@ typedef struct _glibtop_mountlist glibtop_mountlist;
|
|||||||
|
|
||||||
struct _glibtop_mountentry
|
struct _glibtop_mountentry
|
||||||
{
|
{
|
||||||
u_int64_t dev;
|
guint64 dev;
|
||||||
char devname [GLIBTOP_MOUNTENTRY_LEN+1];
|
char devname [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||||
char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
|
char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||||
char type [GLIBTOP_MOUNTENTRY_LEN+1];
|
char type [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||||
@@ -49,7 +49,7 @@ struct _glibtop_mountentry
|
|||||||
|
|
||||||
struct _glibtop_mountlist
|
struct _glibtop_mountlist
|
||||||
{
|
{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
number, /* GLIBTOP_MOUNTLIST_NUMBER */
|
number, /* GLIBTOP_MOUNTLIST_NUMBER */
|
||||||
total, /* GLIBTOP_MOUNTLIST_TOTAL */
|
total, /* GLIBTOP_MOUNTLIST_TOTAL */
|
||||||
size; /* GLIBTOP_MOUNTLIST_SIZE */
|
size; /* GLIBTOP_MOUNTLIST_SIZE */
|
||||||
@@ -76,6 +76,6 @@ extern const char *glibtop_descriptions_mountlist [];
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/global.h>
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLIBTOP_IPC_MSGPOOL 0
|
#define GLIBTOP_IPC_MSGPOOL 0
|
||||||
#define GLIBTOP_IPC_MSGMAP 1
|
#define GLIBTOP_IPC_MSGMAP 1
|
||||||
@@ -43,7 +43,7 @@ typedef struct _glibtop_msg_limits glibtop_msg_limits;
|
|||||||
|
|
||||||
struct _glibtop_msg_limits
|
struct _glibtop_msg_limits
|
||||||
{
|
{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
msgpool, /* GLIBTOP_IPC_MSGPOOL */
|
msgpool, /* GLIBTOP_IPC_MSGPOOL */
|
||||||
msgmap, /* GLIBTOP_IPC_MSGMAP */
|
msgmap, /* GLIBTOP_IPC_MSGMAP */
|
||||||
msgmax, /* GLIBTOP_IPC_MSGMAX */
|
msgmax, /* GLIBTOP_IPC_MSGMAX */
|
||||||
@@ -82,7 +82,7 @@ extern const char *glibtop_descriptions_msg_limits [];
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
83
include/glibtop/netinfo.h
Normal file
83
include/glibtop/netinfo.h
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_NETINFO_H__
|
||||||
|
#define __GLIBTOP_NETINFO_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define GLIBTOP_NETINFO_IF_FLAGS 0
|
||||||
|
#define GLIBTOP_NETINFO_TRANSPORT 1
|
||||||
|
#define GLIBTOP_NETINFO_MTU 2
|
||||||
|
#define GLIBTOP_NETINFO_SUBNET 3
|
||||||
|
#define GLIBTOP_NETINFO_ADDRESS 4
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_NETINFO 5
|
||||||
|
|
||||||
|
typedef struct _glibtop_netinfo glibtop_netinfo;
|
||||||
|
|
||||||
|
#include <glibtop/interfaces.h>
|
||||||
|
|
||||||
|
struct _glibtop_netinfo
|
||||||
|
{
|
||||||
|
guint64 flags,
|
||||||
|
if_flags, /* GLIBTOP_NETINFO_IF_FLAGS */
|
||||||
|
transport, /* GLIBTOP_NETINFO_TRANSPORT */
|
||||||
|
mtu; /* GLIBTOP_NETINFO_MTU */
|
||||||
|
};
|
||||||
|
|
||||||
|
#if GLIBTOP_SUID_NETINFO
|
||||||
|
#define glibtop_get_netinfo_r glibtop_get_netinfo_p
|
||||||
|
#else
|
||||||
|
#define glibtop_get_netinfo_r glibtop_get_netinfo_s
|
||||||
|
#endif
|
||||||
|
|
||||||
|
glibtop_ifaddr *glibtop_get_netinfo_l (glibtop_client *client, glibtop_array *array, glibtop_netinfo *buf, const char *interface, guint64 transport);
|
||||||
|
|
||||||
|
#if GLIBTOP_SUID_NETINFO
|
||||||
|
int glibtop_init_netinfo_p (glibtop_server *server, glibtop_closure *closure);
|
||||||
|
glibtop_ifaddr *glibtop_get_netinfo_p (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, glibtop_netinfo *buf, const char *interface, guint64 transport);
|
||||||
|
#else
|
||||||
|
int glibtop_init_netinfo_s (glibtop_server *server, glibtop_closure *closure);
|
||||||
|
glibtop_ifaddr *glibtop_get_netinfo_s (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, glibtop_netinfo *buf, const char *interface, guint64 transport);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GLIBTOP_NAMES
|
||||||
|
|
||||||
|
/* You need to link with -lgtop_names to get this stuff here. */
|
||||||
|
|
||||||
|
extern const char *glibtop_names_netinfo [];
|
||||||
|
extern const unsigned glibtop_types_netinfo [];
|
||||||
|
extern const char *glibtop_labels_netinfo [];
|
||||||
|
extern const char *glibtop_descriptions_netinfo [];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
@@ -27,7 +27,7 @@
|
|||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/global.h>
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLIBTOP_NETLOAD_IF_FLAGS 0
|
#define GLIBTOP_NETLOAD_IF_FLAGS 0
|
||||||
#define GLIBTOP_NETLOAD_MTU 1
|
#define GLIBTOP_NETLOAD_MTU 1
|
||||||
@@ -69,7 +69,7 @@ enum {
|
|||||||
|
|
||||||
struct _glibtop_netload
|
struct _glibtop_netload
|
||||||
{
|
{
|
||||||
u_int64_t flags,
|
guint64 flags,
|
||||||
if_flags, /* GLIBTOP_NETLOAD_IF_FLAGS */
|
if_flags, /* GLIBTOP_NETLOAD_IF_FLAGS */
|
||||||
mtu, /* GLIBTOP_NETLOAD_MTU */
|
mtu, /* GLIBTOP_NETLOAD_MTU */
|
||||||
subnet, /* GLIBTOP_NETLOAD_SUBNET */
|
subnet, /* GLIBTOP_NETLOAD_SUBNET */
|
||||||
@@ -115,6 +115,6 @@ extern const char *glibtop_descriptions_netload [];
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
#include <glibtop/read.h>
|
#include <glibtop/read.h>
|
||||||
#include <glibtop/error.h>
|
#include <glibtop/error.h>
|
||||||
|
|
||||||
BEGIN_LIBGTOP_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define _GLIBTOP_INIT_STATE_INIT 0x10000
|
#define _GLIBTOP_INIT_STATE_INIT 0x10000
|
||||||
#define _GLIBTOP_INIT_STATE_OPEN 0x20000
|
#define _GLIBTOP_INIT_STATE_OPEN 0x20000
|
||||||
@@ -68,6 +68,6 @@ glibtop_open_s (glibtop *server, const char *program_name,
|
|||||||
const unsigned long features, const unsigned flags);
|
const unsigned long features, const unsigned flags);
|
||||||
|
|
||||||
|
|
||||||
END_LIBGTOP_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user