Compare commits
214 Commits
LIBGTOP_2_
...
gnome-2-12
Author | SHA1 | Date | |
---|---|---|---|
|
0d0f8ca467 | ||
|
f752847e59 | ||
|
36cfd2e35d | ||
|
617c8a2122 | ||
|
d733f8063d | ||
|
dbed81644f | ||
|
91a312768d | ||
|
d9a666470c | ||
|
79fc0e70c0 | ||
|
532f5ceb4f | ||
|
a326e2dcac | ||
|
8a626d9f97 | ||
|
a6513af1c6 | ||
|
95b2dfa326 | ||
|
ac3ad6d2aa | ||
|
4186c9a956 | ||
|
7770480ad2 | ||
|
50f20979df | ||
|
78ec6945df | ||
|
170b03f4f2 | ||
|
c183276e2b | ||
|
d7945bdc36 | ||
|
2930c9f092 | ||
|
fe6a33a5fd | ||
|
30ebfb45d0 | ||
|
b43a1e01c0 | ||
|
88d606d814 | ||
|
dd0d06898a | ||
|
3e77f3cf13 | ||
|
22a1120348 | ||
|
da4dc46b7a | ||
|
03bcc48da6 | ||
|
708285f0d2 | ||
|
a0493a0ff1 | ||
|
9f7d505d20 | ||
|
78cb7832c5 | ||
|
b3979e6942 | ||
|
92d3176303 | ||
|
e5c7f87f50 | ||
|
7e506a6c83 | ||
|
1645027004 | ||
|
8e656af060 | ||
|
4efcfb2cb3 | ||
|
59da1618b0 | ||
|
e9ce3ccc1c | ||
|
84e45a6519 | ||
|
96fe554afd | ||
|
16e0c943b2 | ||
|
f409c553f5 | ||
|
b6a10fd8f7 | ||
|
efeca4a865 | ||
|
5e70932b66 | ||
|
d499bd3761 | ||
|
48e3d5b2ec | ||
|
55270e618e | ||
|
a5c897b846 | ||
|
b0093954b3 | ||
|
c81e055427 | ||
|
06fb19b5c6 | ||
|
f8d9557257 | ||
|
ef2ed50bf7 | ||
|
c19ba1af03 | ||
|
c1e5bdfb16 | ||
|
be7dabf75d | ||
|
d37b1b9a2e | ||
|
6f755a5ca7 | ||
|
4cd022b315 | ||
|
69873a143d | ||
|
f5655f12d3 | ||
|
a71839c0a7 | ||
|
74d9b24132 | ||
|
d4ee5eb884 | ||
|
872a4180e4 | ||
|
e8351bae05 | ||
|
adb38dd2a3 | ||
|
755d5fe5f5 | ||
|
d1891b11ef | ||
|
765a919305 | ||
|
ad2f74dbc3 | ||
|
b017d60c83 | ||
|
29a991160c | ||
|
59fd67c7e0 | ||
|
bbc10e3790 | ||
|
f4f88ff224 | ||
|
fffccf3309 | ||
|
3c0e03ee89 | ||
|
fa9216f771 | ||
|
83a9bef192 | ||
|
ca4dc56342 | ||
|
a97ee0a513 | ||
|
41a723fde4 | ||
|
f673d2ea37 | ||
|
cae488a4ee | ||
|
ad79ab9540 | ||
|
e958d8dbbe | ||
|
a58e2f6385 | ||
|
c505f26427 | ||
|
53aec7429f | ||
|
6099a46f42 | ||
|
1711b912f1 | ||
|
c817a9fac1 | ||
|
a1657f81cb | ||
|
0561316344 | ||
|
2c0f291b3c | ||
|
fc7d872381 | ||
|
c97d63f368 | ||
|
675145ea55 | ||
|
965bd33d55 | ||
|
7a5e1a0f37 | ||
|
da24dd8fd9 | ||
|
717ee1c88f | ||
|
f031b77b3b | ||
|
e0ae6ebcaa | ||
|
16123b6fe9 | ||
|
672da9122e | ||
|
35f0277afd | ||
|
8d77e50c03 | ||
|
82dc5aefe1 | ||
|
f2f5ab9b73 | ||
|
49acc8769c | ||
|
15759a964a | ||
|
649b88a7fa | ||
|
073a6dd8c1 | ||
|
d61ad50e23 | ||
|
53c43e6e90 | ||
|
b43e879cc0 | ||
|
0fdfd65a2a | ||
|
1ac8744251 | ||
|
bbbbb27edc | ||
|
a5982555b9 | ||
|
7d44f04aed | ||
|
c9dc0d0ef8 | ||
|
e82f908824 | ||
|
8365f40856 | ||
|
b2917db0be | ||
|
3d21fd97f6 | ||
|
666a347f25 | ||
|
68db204d6a | ||
|
fbe5c8da8e | ||
|
a354ca2635 | ||
|
639ea4870c | ||
|
702d9a1501 | ||
|
ea1a6dbaca | ||
|
bb60753844 | ||
|
d9781917c5 | ||
|
bd119a72e2 | ||
|
78c10bca9b | ||
|
270ec235c1 | ||
|
2362be986b | ||
|
8a1e1cff91 | ||
|
46380bf655 | ||
|
91dda5b70d | ||
|
9b263e0fbb | ||
|
793807b07e | ||
|
9898e7ee58 | ||
|
7ecdcd712d | ||
|
703a17f3f0 | ||
|
92a9e7d937 | ||
|
01c7e99aa6 | ||
|
6fe16f1d91 | ||
|
fcb83e637d | ||
|
50e4e07013 | ||
|
ab40c94db3 | ||
|
fee415ecd8 | ||
|
647a313d5b | ||
|
70ac398a44 | ||
|
48056f7d8a | ||
|
7ca4171652 | ||
|
1537eea7e5 | ||
|
0a425e4e41 | ||
|
0fa9c9bc61 | ||
|
9561cf34b2 | ||
|
be721ca476 | ||
|
265da513de | ||
|
a180cb5b10 | ||
|
c517f20195 | ||
|
e4ad12fd93 | ||
|
c22300d109 | ||
|
bffc09b594 | ||
|
b7fd73bc5c | ||
|
15904773f3 | ||
|
b76ae7b1ca | ||
|
006eddb5fe | ||
|
7566ccf311 | ||
|
cde49f488c | ||
|
ce9ce223ca | ||
|
71900c0e30 | ||
|
817057bc3c | ||
|
9fe6dadcec | ||
|
3e06f95c84 | ||
|
2ca1905547 | ||
|
65d2d61d41 | ||
|
8a4fd3c971 | ||
|
c09e2fdead | ||
|
fe5bb1c39c | ||
|
4b310d26f7 | ||
|
83759b2a4a | ||
|
209219d5ce | ||
|
8ce468228a | ||
|
e9e2b7c09b | ||
|
2fa0dc1cd8 | ||
|
faa80b7b24 | ||
|
7ff2372249 | ||
|
f378a263b0 | ||
|
77b892ebf7 | ||
|
db2fed4da3 | ||
|
160bdeaecd | ||
|
1d6debfa56 | ||
|
bbb6cbaa87 | ||
|
ce229a4e19 | ||
|
544aff2f18 | ||
|
74f20ca469 | ||
|
edd5156ca0 | ||
|
7e5ccec8bf |
@@ -39,3 +39,4 @@ INSTALL
|
|||||||
install-sh
|
install-sh
|
||||||
missing
|
missing
|
||||||
mkinstalldirs
|
mkinstalldirs
|
||||||
|
libgtopconfig.h
|
||||||
|
2
AUTHORS
2
AUTHORS
@@ -1,3 +1,3 @@
|
|||||||
Martin Baulig (martin@home-of-linux.org)
|
Martin Baulig (martin@home-of-linux.org)
|
||||||
Drazen Kacar (dave@srce.hr)
|
Drazen Kacar (dave@srce.hr)
|
||||||
Beno<EFBFBD>t Dejean (tazforever@dlfp.org)
|
Benoît Dejean (tazforever@dlfp.org)
|
||||||
|
639
ChangeLog
639
ChangeLog
@@ -1,3 +1,642 @@
|
|||||||
|
2006-03-30 Guntupalli Karunakar <karunakar@indlinux.org>
|
||||||
|
|
||||||
|
* configure.in: Added "dz" (Dzongkha) to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2006-02-21 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
|
||||||
|
Released 2.12.3.
|
||||||
|
|
||||||
|
2005-12-08 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* doc/reference.texi:
|
||||||
|
* include/glibtop/limits.h:
|
||||||
|
|
||||||
|
Dropped unused file and updated documentation.
|
||||||
|
|
||||||
|
2005-12-07 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* configure.in:
|
||||||
|
|
||||||
|
Bumped version number.
|
||||||
|
|
||||||
|
2005-12-04 Theppitak Karoonboonyanan <thep@linux.thai.net>
|
||||||
|
|
||||||
|
* configure.in: Added 'th' (Thai) to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2005-11-29 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
* configure.in:
|
||||||
|
|
||||||
|
Released 2.12.2.
|
||||||
|
No 2.12.1.
|
||||||
|
|
||||||
|
2005-11-17 Timur Jamakeev <timurj@cvs.gnome.org>
|
||||||
|
|
||||||
|
* configure.in: Added 'ky' (Kirghiz) to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2005-10-30 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* configure.in:
|
||||||
|
* include/glibtop/glibtop-backend-info.h:
|
||||||
|
* include/glibtop/glibtop-backend.h:
|
||||||
|
* include/glibtop/glibtop-client.h:
|
||||||
|
* lib/glibtop-backend-info.c:
|
||||||
|
* lib/glibtop-backend.c:
|
||||||
|
* lib/glibtop-client-private.h:
|
||||||
|
* lib/glibtop-client.c:
|
||||||
|
* lib/test-backends.c:
|
||||||
|
* sysdeps/common/backend.c:
|
||||||
|
* sysdeps/common/libgtop-common.backend:
|
||||||
|
|
||||||
|
Dropped many dead files.
|
||||||
|
Bumped release number.
|
||||||
|
I guess this closes #320250.
|
||||||
|
|
||||||
|
2005-10-28 Erdal Ronahi <erdal.ronahi@gmail.com>
|
||||||
|
|
||||||
|
* configure.in: Added ku (Kurdish) to ALL_LINGUAS
|
||||||
|
|
||||||
|
2005-09-04 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
* configure.in:
|
||||||
|
|
||||||
|
Released 2.12.0.
|
||||||
|
|
||||||
|
2005-08-22 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* configure.in:
|
||||||
|
|
||||||
|
Hum hum, it's better if release number is 2.11.92 too.
|
||||||
|
|
||||||
|
2005-08-22 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
|
||||||
|
Released 2.11.92.
|
||||||
|
|
||||||
|
2005-08-08 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
|
||||||
|
Released 2.11.91.
|
||||||
|
|
||||||
|
2005-08-04 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in:
|
||||||
|
* examples/Makefile.am:
|
||||||
|
|
||||||
|
Removed static examples.
|
||||||
|
|
||||||
|
2005-08-02 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in:
|
||||||
|
* include/glibtop/Makefile.am:
|
||||||
|
* include/glibtop/glibtop-server.h:
|
||||||
|
* include/glibtop/init_hooks.h:
|
||||||
|
* include/glibtop/sysdeps.h:
|
||||||
|
* lib/init.c: (glibtop_init_s):
|
||||||
|
* lib/sysdeps.c:
|
||||||
|
* sysdeps/aix/open.c: (glibtop_init_p):
|
||||||
|
* sysdeps/common/sysdeps_suid.c:
|
||||||
|
* sysdeps/freebsd/open.c: (glibtop_init_p):
|
||||||
|
* sysdeps/osf1/open_suid.c: (glibtop_init_p):
|
||||||
|
* sysdeps/solaris/open_suid.c: (glibtop_init_p):
|
||||||
|
* sysdeps/stub_suid/open.c: (glibtop_init_p):
|
||||||
|
|
||||||
|
Moved _glibtop_init_hook_[sp] declaration to private
|
||||||
|
glibtop/init_hooks.h. Marked them const.
|
||||||
|
|
||||||
|
Fixed GLIBTOP_SUID_NETLIST issues.
|
||||||
|
|
||||||
|
2005-07-24 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
* configure.in: Released 2.11.90.
|
||||||
|
|
||||||
|
2005-07-22 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: 2.11.3 post release version bump.
|
||||||
|
|
||||||
|
2005-07-13 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS: Released 2.11.2.
|
||||||
|
|
||||||
|
2005-07-06 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: 2.11.2 post release version bump.
|
||||||
|
|
||||||
|
2005-07-03 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS: Released 2.11.1.
|
||||||
|
|
||||||
|
2005-06-15 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* sysdeps/common/Makefile.am:
|
||||||
|
* sysdeps/linux/Makefile.am: Removed LT_VERSION_INFO from LDFLAGS
|
||||||
|
when unused.
|
||||||
|
|
||||||
|
2005-06-08 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: 2.11.1 post release version bump.
|
||||||
|
|
||||||
|
2005-06-08 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS: Released 2.11.0.
|
||||||
|
|
||||||
|
2005-06-07 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in:
|
||||||
|
* glibtop.h:
|
||||||
|
* include/glibtop/close.h:
|
||||||
|
* include/glibtop/cpu.h:
|
||||||
|
* include/glibtop/fsusage.h:
|
||||||
|
* include/glibtop/loadavg.h:
|
||||||
|
* include/glibtop/mem.h:
|
||||||
|
* include/glibtop/mountlist.h:
|
||||||
|
* include/glibtop/msg_limits.h:
|
||||||
|
* include/glibtop/netlist.h:
|
||||||
|
* include/glibtop/netload.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/procopenfiles.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:
|
||||||
|
* sysdeps/common/Makefile.am:
|
||||||
|
* sysdeps/common/default.c: (glibtop_close), (glibtop_init),
|
||||||
|
(glibtop_get_cpu), (glibtop_get_fsusage), (glibtop_get_uptime),
|
||||||
|
(glibtop_get_sysinfo), (glibtop_get_swap), (glibtop_get_proc_uid),
|
||||||
|
(glibtop_get_proc_time), (glibtop_get_proc_state),
|
||||||
|
(glibtop_get_proc_signal), (glibtop_get_proc_segment),
|
||||||
|
(glibtop_get_proc_open_files), (glibtop_get_proc_mem),
|
||||||
|
(glibtop_get_proc_map), (glibtop_get_proc_args),
|
||||||
|
(glibtop_get_proc_argv), (glibtop_get_proclist),
|
||||||
|
(glibtop_get_proc_kernel), (glibtop_get_ppp),
|
||||||
|
(glibtop_get_netlist), (glibtop_get_netload),
|
||||||
|
(glibtop_get_mountlist), (glibtop_get_mem), (glibtop_get_loadavg),
|
||||||
|
(glibtop_get_msg_limits), (glibtop_get_sem_limits),
|
||||||
|
(glibtop_get_shm_limits), (glibtop_get_sysdeps):
|
||||||
|
|
||||||
|
Added a lot of new functions to replace dirty macros.
|
||||||
|
Every macro glibtop_get_*(buf[, args]) has been turned to a function.
|
||||||
|
|
||||||
|
2005-06-06 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* dtd/: Bye bye.
|
||||||
|
|
||||||
|
2005-06-06 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* backends/: Removed useless files.
|
||||||
|
|
||||||
|
2005-06-06 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* examples/smp.c: (main): Removed translation.
|
||||||
|
|
||||||
|
* lib/lib.pl:
|
||||||
|
* lib/read.c:
|
||||||
|
* lib/read_data.c:
|
||||||
|
* lib/write.c:
|
||||||
|
* src/daemon/gnuserv.c: s/gi18n.h/gi18n-lib.h.
|
||||||
|
|
||||||
|
2005-06-06 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* acinclude.m4: bye bye support.
|
||||||
|
|
||||||
|
2005-06-06 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* support/ : Removed unused files.
|
||||||
|
|
||||||
|
2005-06-06 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* examples/smp.c:
|
||||||
|
* include/Makefile.am:
|
||||||
|
* include/libgtop-i18n.h:
|
||||||
|
* lib/lib.pl:
|
||||||
|
* lib/read.c:
|
||||||
|
* lib/read_data.c:
|
||||||
|
* lib/write.c:
|
||||||
|
* src/daemon/gnuserv.c: Got rid of include/libgtop-i18n.h.
|
||||||
|
|
||||||
|
2005-06-06 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: version bump.
|
||||||
|
|
||||||
|
2005-06-05 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* README: Updated so people can find the ChangeLogs.
|
||||||
|
|
||||||
|
2005-04-27 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: 2.10.2 post release bump.
|
||||||
|
|
||||||
|
* include/glibtop/Makefile.am:
|
||||||
|
* include/glibtop/parameter.h:
|
||||||
|
* lib/init.c: Re-install open.h to please GTop (libgtop perl wrapper).
|
||||||
|
|
||||||
|
2005-04-10 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS: Released 2.10.1.
|
||||||
|
|
||||||
|
2005-04-01 Adi Attar <aattar@cvs.gnome.org>
|
||||||
|
|
||||||
|
* configure.in: Added "xh" to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2005-03-31 Steve Murphy <murf@e-tools.com>
|
||||||
|
|
||||||
|
* configure.in: Added "rw" to ALL_LINGUAS.
|
||||||
|
|
||||||
|
2005-03-31 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* libgtop-2.0.pc.in: Fixed.
|
||||||
|
|
||||||
|
2005-03-29 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* lib/read_data.c: (glibtop_read_data_l): Fixed warning.
|
||||||
|
|
||||||
|
2005-03-25 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* lib/error.c: (glibtop_error_io_vr), (glibtop_warn_io_vr):
|
||||||
|
s/strerror/g_strerror.
|
||||||
|
|
||||||
|
2005-03-11 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: Post release version bump.
|
||||||
|
|
||||||
|
2005-03-07 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
* configure.in: Released 2.10.0.
|
||||||
|
|
||||||
|
2005-02-28 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS: Released 2.9.92.
|
||||||
|
|
||||||
|
2005-02-25 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: /me stupid. I've already post-bumped version.
|
||||||
|
|
||||||
|
2005-02-24 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: post release bump 2.9.93.
|
||||||
|
|
||||||
|
2005-02-22 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* src/Makefile.am: Build and install libgtop2_daemon only if needed.
|
||||||
|
|
||||||
|
2005-02-21 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* lib/Makefile.am: don't export private symbols.
|
||||||
|
|
||||||
|
2005-02-15 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* backends/server/server.h:
|
||||||
|
* configure.in:
|
||||||
|
* glibtop.h:
|
||||||
|
* include/glibtop/Makefile.am:
|
||||||
|
* include/glibtop/gnuserv.h:
|
||||||
|
* include/glibtop/open.h:
|
||||||
|
* include/glibtop/read.h:
|
||||||
|
* include/glibtop/read_data.h:
|
||||||
|
* include/glibtop/types.h:
|
||||||
|
* include/glibtop/write.h:
|
||||||
|
* lib/close.c:
|
||||||
|
* lib/init.c:
|
||||||
|
* lib/lib.pl:
|
||||||
|
* lib/open.c:
|
||||||
|
* lib/parameter.c:
|
||||||
|
* lib/read.c:
|
||||||
|
* lib/read_data.c:
|
||||||
|
* lib/write.c:
|
||||||
|
* src/daemon/daemon.h:
|
||||||
|
* src/daemon/io.c:
|
||||||
|
* src/daemon/main.c: (handle_parent_connection):
|
||||||
|
* src/daemon/slave.c: (handle_slave_connection),
|
||||||
|
(handle_slave_command):
|
||||||
|
* sysdeps/common/gnuslib.c:
|
||||||
|
* sysdeps/solaris/glibtop_private.h: Removed some dead files.
|
||||||
|
Don't install private headers.
|
||||||
|
|
||||||
|
Depends on glib-2.6.
|
||||||
|
Post-release bump : 2.9.92
|
||||||
|
|
||||||
|
2005-02-15 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* include/glibtop/error.h: Don't export private symbols.
|
||||||
|
|
||||||
|
2005-02-15 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* include/glibtop/error.h: G_GNUC_NORETURN love.
|
||||||
|
|
||||||
|
* include/glibtop/errors.h:
|
||||||
|
* lib/errors.c: Bye bye dead code.
|
||||||
|
|
||||||
|
2005-02-06 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
* configure.in: Released 2.9.91.
|
||||||
|
|
||||||
|
2005-01-24 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
* configure.in: Released 2.9.90.
|
||||||
|
|
||||||
|
2005-01-24 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* include/glibtop/procopenfiles.h:
|
||||||
|
* sysdeps/linux/procopenfiles.c:
|
||||||
|
* sysdeps/stub/procopenfiles.c: UTF-8-ified.
|
||||||
|
|
||||||
|
2005-01-22 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* examples/openfiles.c: (show_open_files):
|
||||||
|
* include/glibtop/procopenfiles.h: added localsock { name } to
|
||||||
|
glibtop_open_files_entry. Should not break ABI.
|
||||||
|
|
||||||
|
2005-01-12 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: 2.9.5.
|
||||||
|
|
||||||
|
2005-01-10 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS: Released 2.9.4.
|
||||||
|
|
||||||
|
2005-01-10 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in:
|
||||||
|
* examples/.cvsignore:
|
||||||
|
* examples/Makefile.am:
|
||||||
|
* examples/openfiles.c: (show_open_files), (main):
|
||||||
|
* features.def:
|
||||||
|
* include/glibtop/Makefile.am:
|
||||||
|
* include/glibtop/command.h:
|
||||||
|
* include/glibtop/procopenfiles.h:
|
||||||
|
* include/glibtop/sysdeps.h:
|
||||||
|
* include/glibtop/union.h:
|
||||||
|
* structures.def:
|
||||||
|
* sysdeps/linux/Makefile.am:
|
||||||
|
* sysdeps/linux/procopenfiles.c: (glibtop_init_proc_open_files_s),
|
||||||
|
(get_socket_endpoint), (glibtop_get_proc_open_files_s):
|
||||||
|
* sysdeps/stub/Makefile.am:
|
||||||
|
* sysdeps/stub/procopenfiles.c: (glibtop_init_proc_open_files_s),
|
||||||
|
(glibtop_get_proc_open_files_s):
|
||||||
|
|
||||||
|
New feature by nick@reloco.com.ar (Nicolás Lichtmaier).
|
||||||
|
|
||||||
|
glibtop_get_open_files(pid) -> list of files by process.
|
||||||
|
TODO: Add documentation.
|
||||||
|
|
||||||
|
2005-01-03 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* examples/pprint.c: (pprint_get_cpu):
|
||||||
|
* features.def:
|
||||||
|
* include/glibtop/cpu.h:
|
||||||
|
* sysdeps/linux/cpu.c: (glibtop_init_cpu_s), (glibtop_get_cpu_s):
|
||||||
|
Added I/O and IRQ wait time to glibtop_cpu. Closes #160443.
|
||||||
|
|
||||||
|
* configure.in: Post-release bump 2.9.4
|
||||||
|
|
||||||
|
2004-12-29 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* lib/read_data.c: (glibtop_read_data_l):
|
||||||
|
* lib/write.c: (glibtop_write_l): Fixed error messages.
|
||||||
|
Closes #162406.
|
||||||
|
|
||||||
|
2004-12-23 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* include/glibtop/error.h:
|
||||||
|
* lib/parameter.c: (glibtop_set_parameter_l):
|
||||||
|
* lib/read_data.c: (glibtop_read_data_l):
|
||||||
|
* sysdeps/common/error.c: (print_server_name), (glibtop_error_vr),
|
||||||
|
(glibtop_error_io_vr), (glibtop_warn_vr), (glibtop_warn_io_vr),
|
||||||
|
(glibtop_error_r), (glibtop_warn_r), (glibtop_error_io_r),
|
||||||
|
(glibtop_warn_io_r), (glibtop_error), (glibtop_warn),
|
||||||
|
(glibtop_error_io), (glibtop_warn_io): Turned all macros to functions.
|
||||||
|
Marked everything as G_GNUC_PRINTF and fixed format bugs.
|
||||||
|
|
||||||
|
* sysdeps/common/fsusage.c: Marked some functions as G_GNUC_INTERNAL
|
||||||
|
|
||||||
|
2004-12-20 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
* configure.in: Released 2.9.3.
|
||||||
|
|
||||||
|
2004-12-10 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* lib/lib.pl: Fixed Argument passing between library and server.
|
||||||
|
Thanks everyone. Closes #139809.
|
||||||
|
|
||||||
|
2004-12-06 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* acconfig.h:
|
||||||
|
* configure.in:
|
||||||
|
* debian/libgtop-dev.files.in:
|
||||||
|
* doc/Makefile.am:
|
||||||
|
* examples/Makefile.am:
|
||||||
|
* examples/third.c:
|
||||||
|
* include/glibtop/cpu.h:
|
||||||
|
* include/glibtop/fsusage.h:
|
||||||
|
* include/glibtop/loadavg.h:
|
||||||
|
* include/glibtop/mem.h:
|
||||||
|
* include/glibtop/mountlist.h:
|
||||||
|
* include/glibtop/msg_limits.h:
|
||||||
|
* include/glibtop/netlist.h:
|
||||||
|
* include/glibtop/netload.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/sem_limits.h:
|
||||||
|
* include/glibtop/shm_limits.h:
|
||||||
|
* include/glibtop/swap.h:
|
||||||
|
* include/glibtop/sysdeps.h:
|
||||||
|
* include/glibtop/uptime.h:
|
||||||
|
* po/POTFILES.in:
|
||||||
|
* sysdeps/Makefile.am:
|
||||||
|
* sysdeps/names/.cvsignore:
|
||||||
|
* sysdeps/names/Makefile.am:
|
||||||
|
* 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/netlist.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: Removed libgtop_names :)
|
||||||
|
|
||||||
|
2004-11-30 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: post-release bump to 2.9.1.
|
||||||
|
|
||||||
|
2004-11-30 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* NEWS:
|
||||||
|
* configure.in: released 2.9.0
|
||||||
|
|
||||||
|
2004-11-22 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* AUTHORS:
|
||||||
|
* MAINTAINERS: UTF-8-ified.
|
||||||
|
|
||||||
|
* acconfig.h:
|
||||||
|
* acinclude.m4:
|
||||||
|
* configure.in:
|
||||||
|
* kernel/ChangeLog:
|
||||||
|
* kernel/sysctl/.cvsignore:
|
||||||
|
* kernel/sysctl/Makefile:
|
||||||
|
* kernel/sysctl/libgtop.c:
|
||||||
|
* kernel/sysctl/libgtop.h:
|
||||||
|
* kernel/sysctl/libgtop_syms.c:
|
||||||
|
* kernel/sysctl/main.c:
|
||||||
|
* kernel/sysctl/patch-2.2.1:
|
||||||
|
* kernel/sysctl/patch-2.2.x:
|
||||||
|
* kernel/table.h:
|
||||||
|
* kernel/table20/Makefile:
|
||||||
|
* kernel/table20/README:
|
||||||
|
* kernel/table20/entry-i386.S:
|
||||||
|
* kernel/table20/kernel.patch:
|
||||||
|
* kernel/table20/main.c:
|
||||||
|
* kernel/table20/unistd-i386.h:
|
||||||
|
* kernel/table20/version.h:
|
||||||
|
* kernel/table21/.cvsignore:
|
||||||
|
* kernel/table21/Makefile:
|
||||||
|
* kernel/table21/README:
|
||||||
|
* kernel/table21/entry-i386.S:
|
||||||
|
* kernel/table21/main.c:
|
||||||
|
* kernel/table21/module.c:
|
||||||
|
* kernel/table21/unistd-i386.h:
|
||||||
|
* kernel/table21/version.h:
|
||||||
|
* kernel/version.h:
|
||||||
|
* libgtop-sysdeps.m4:
|
||||||
|
* sysdeps/Makefile.am:
|
||||||
|
* sysdeps/kernel/.cvsignore:
|
||||||
|
* sysdeps/kernel/ChangeLog:
|
||||||
|
* sysdeps/kernel/Makefile.am:
|
||||||
|
* sysdeps/kernel/close.c:
|
||||||
|
* sysdeps/kernel/cpu.c:
|
||||||
|
* sysdeps/kernel/glibtop_private.h:
|
||||||
|
* sysdeps/kernel/glibtop_server.h:
|
||||||
|
* sysdeps/kernel/kernel.h:
|
||||||
|
* sysdeps/kernel/kernel.s:
|
||||||
|
* sysdeps/kernel/loadavg.c:
|
||||||
|
* sysdeps/kernel/mem.c:
|
||||||
|
* sysdeps/kernel/msg_limits.c:
|
||||||
|
* sysdeps/kernel/netload.c:
|
||||||
|
* sysdeps/kernel/open.c:
|
||||||
|
* sysdeps/kernel/ppp.c:
|
||||||
|
* sysdeps/kernel/procargs.c:
|
||||||
|
* sysdeps/kernel/procdata.c:
|
||||||
|
* sysdeps/kernel/prockernel.c:
|
||||||
|
* sysdeps/kernel/proclist.c:
|
||||||
|
* sysdeps/kernel/procmap.c:
|
||||||
|
* sysdeps/kernel/procmem.c:
|
||||||
|
* sysdeps/kernel/procsegment.c:
|
||||||
|
* sysdeps/kernel/procsignal.c:
|
||||||
|
* sysdeps/kernel/procstate.c:
|
||||||
|
* sysdeps/kernel/proctime.c:
|
||||||
|
* sysdeps/kernel/procuid.c:
|
||||||
|
* sysdeps/kernel/sem_limits.c:
|
||||||
|
* sysdeps/kernel/shm_limits.c:
|
||||||
|
* sysdeps/kernel/siglist.c:
|
||||||
|
* sysdeps/kernel/swap.c:
|
||||||
|
* sysdeps/kernel/sysinfo.c:
|
||||||
|
* sysdeps/kernel/uptime.c: Removed kernel patch and implementation.
|
||||||
|
|
||||||
|
2004-11-18 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* Makefile.am: Forgot to ship libgtopconfig.h.
|
||||||
|
|
||||||
|
2004-11-18 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* LIBGTOP-VERSION:
|
||||||
|
* libgtop-mirror.sh: Removed unused files.
|
||||||
|
|
||||||
|
* libgtopconfig.h.in: Added.
|
||||||
|
* Makefile.am:
|
||||||
|
* configure.in:
|
||||||
|
* glibtop.h: Added libgtopconfig.h and LIBGTOP_VERSION_CHECK(X, Y, Z).
|
||||||
|
This can be used in build tests.
|
||||||
|
|
||||||
|
2004-11-15 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* copyright.txt: Added myself.
|
||||||
|
|
||||||
|
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* include/glibtop/procargs.h:
|
||||||
|
* sysdeps/common/procargs.c: (glibtop_get_proc_argv_l): Removed SUID
|
||||||
|
wrappers because glibtop_proc_argv_l is a client-side function that wraps
|
||||||
|
glibtop_get_proc_args.
|
||||||
|
|
||||||
|
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* structures.def: Removed old functions. OMG, everything is really broken
|
||||||
|
here :/
|
||||||
|
|
||||||
|
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* configure.in: Bumped to 2.9.0
|
||||||
|
|
||||||
|
* configure.in:
|
||||||
|
* examples/.cvsignore:
|
||||||
|
* examples/Makefile.am:
|
||||||
|
* examples/netlist.c: (main):
|
||||||
|
* features.def:
|
||||||
|
* include/glibtop/Makefile.am:
|
||||||
|
* include/glibtop/command.h:
|
||||||
|
* include/glibtop/netlist.h:
|
||||||
|
* include/glibtop/sysdeps.h:
|
||||||
|
* include/glibtop/union.h:
|
||||||
|
* include/glibtop/version.h:
|
||||||
|
* src/daemon/version.c:
|
||||||
|
* sysdeps/linux/Makefile.am:
|
||||||
|
* sysdeps/linux/netlist.c: (glibtop_init_netlist_s),
|
||||||
|
(glibtop_get_netlist_s):
|
||||||
|
* sysdeps/names/Makefile.am:
|
||||||
|
* sysdeps/names/netlist.c:
|
||||||
|
* sysdeps/solaris/Makefile.am:
|
||||||
|
* sysdeps/solaris/netlist.c: (glibtop_init_netlist_s),
|
||||||
|
(glibtop_get_netlist_s): Added new function glibtop_get_netlist().
|
||||||
|
Implemented for linux and solaris. Doc needed.
|
||||||
|
|
||||||
2004-10-11 Benoît Dejean <tazforever@dlfp.org>
|
2004-10-11 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
* NEWS: Released 2.8.1.
|
* NEWS: Released 2.8.1.
|
||||||
|
@@ -1,28 +0,0 @@
|
|||||||
# Making releases:
|
|
||||||
# LIBGTOP_MICRO_VERSION += 1;
|
|
||||||
# LIBGTOP_INTERFACE_AGE += 1;
|
|
||||||
# LIBGTOP_BINARY_AGE += 1;
|
|
||||||
# if any functions have been added, set LIBGTOP_INTERFACE_AGE to 0.
|
|
||||||
# if backwards compatibility has been broken,
|
|
||||||
# set LIBGTOP_BINARY_AGE and LIBGTOP_INTERFACE_AGE to 0.
|
|
||||||
#
|
|
||||||
LIBGTOP_MAJOR_VERSION=1
|
|
||||||
LIBGTOP_MINOR_VERSION=90
|
|
||||||
LIBGTOP_MICRO_VERSION=0
|
|
||||||
|
|
||||||
LIBGTOP_INTERFACE_AGE=0
|
|
||||||
LIBGTOP_BINARY_AGE=0
|
|
||||||
# you can set this to `-snap' for instance to create
|
|
||||||
# a `libgtop-1.x.y-snap.tar.gz' tarball.
|
|
||||||
LIBGTOP_VERSION_SUFFIX=
|
|
||||||
|
|
||||||
# Increase each time you change the client/server protocol.
|
|
||||||
LIBGTOP_SERVER_VERSION=5
|
|
||||||
|
|
||||||
# Don't change this
|
|
||||||
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
|
|
||||||
LIBGTOP_VERSION_CODE=`echo "$LIBGTOP_MAJOR_VERSION 1000000 * $LIBGTOP_MINOR_VERSION 1000 * + $LIBGTOP_MICRO_VERSION + p q" | dc`
|
|
||||||
|
|
||||||
# For automake.
|
|
||||||
VERSION=$LIBGTOP_VERSION$LIBGTOP_VERSION_SUFFIX
|
|
||||||
PACKAGE=libgtop
|
|
@@ -1,3 +1,3 @@
|
|||||||
Email: martin@home-of-linux.org
|
Email: martin@home-of-linux.org
|
||||||
Email: dave@srce.hr
|
Email: dave@srce.hr
|
||||||
Beno<EFBFBD>t Dejean (tazforever@dlfp.org)
|
Benoît Dejean (tazforever@dlfp.org)
|
||||||
|
@@ -1,13 +1,13 @@
|
|||||||
|
|
||||||
SUBDIRS = po misc include sysdeps lib src examples doc
|
SUBDIRS = po misc include sysdeps lib src examples doc
|
||||||
|
|
||||||
libgtopinclude_HEADERS = glibtop.h
|
libgtopinclude_HEADERS = glibtop.h libgtopconfig.h
|
||||||
libgtopincludedir = $(includedir)/libgtop-2.0
|
libgtopincludedir = $(includedir)/libgtop-2.0
|
||||||
|
|
||||||
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \
|
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \
|
||||||
LIBGTOP-VERSION features.def \
|
features.def libgtopconfig.h.in \
|
||||||
libgtop-sysdeps.m4 README \
|
libgtop-sysdeps.m4 README \
|
||||||
libgtop-mirror.sh libgtop-2.0.pc.in acinclude.m4
|
libgtop-2.0.pc.in acinclude.m4
|
||||||
|
|
||||||
dist-hook:
|
dist-hook:
|
||||||
cp libgtop.spec $(distdir)
|
cp libgtop.spec $(distdir)
|
||||||
|
97
NEWS
97
NEWS
@@ -1,3 +1,100 @@
|
|||||||
|
February 21, 2006: Overview of changes from 2.12.2 to 2.12.3
|
||||||
|
============================================================
|
||||||
|
* Fixed documentation.
|
||||||
|
* linux: glibtop_get_proc_map small optimization.
|
||||||
|
|
||||||
|
November 29, 2005: Overview of changes from 2.12.0 to 2.12.1
|
||||||
|
============================================================
|
||||||
|
* Dropped dead files
|
||||||
|
* linux: 1-line cleanup.
|
||||||
|
|
||||||
|
September 4, 2005: Overview of changes from 2.11.92 to 2.12.0
|
||||||
|
=============================================================
|
||||||
|
* Updated translations.
|
||||||
|
|
||||||
|
August 22, 2005: Overview of changes from 2.11.91 to 2.11.92
|
||||||
|
============================================================
|
||||||
|
* Linux:
|
||||||
|
- fixed for 2.6 without /sys
|
||||||
|
- glibtop_get_cpu() : Do not add irq, softirq and iowait to idle.
|
||||||
|
|
||||||
|
August 9, 2005: Overview of changes from 2.11.90 to 2.11.91
|
||||||
|
===========================================================
|
||||||
|
* All:
|
||||||
|
- cleaned some headers.
|
||||||
|
- removed static examples.
|
||||||
|
* Linux:
|
||||||
|
- fixed some issues with 2.6 without /sys
|
||||||
|
|
||||||
|
July 24, 2005: Overview of changes from 2.11.2 to 2.11.90
|
||||||
|
=========================================================
|
||||||
|
* Linux:
|
||||||
|
- fixed glibtop_uptime .flags.
|
||||||
|
|
||||||
|
July &3, 2005: Overview of changes from 2.11.1 to 2.11.2
|
||||||
|
========================================================
|
||||||
|
* Linux:
|
||||||
|
- little improvements for 2.6.
|
||||||
|
|
||||||
|
July 3, 2005: Overview of changes from 2.11.0 to 2.11.1
|
||||||
|
=======================================================
|
||||||
|
* Linux:
|
||||||
|
- glibtop_get_swap : added page(in|out) for linux 2.6.
|
||||||
|
|
||||||
|
June 8, 2005: Overview of changes from 2.10.x to 2.11.0
|
||||||
|
=======================================================
|
||||||
|
* Replaced a lot of macros by functions
|
||||||
|
* Got rid of dozens of useless files.
|
||||||
|
* libgtop 2.11.x are and will stay API and ABI compatible with 2.10.x, i swear.
|
||||||
|
|
||||||
|
April 10, 2005: Overview of changes from 2.10.0 to 2.10.1
|
||||||
|
=========================================================
|
||||||
|
* Updated i18n.
|
||||||
|
* Little cleanup and fixed gcc-4.0 compilation.
|
||||||
|
* linux: fixed loadavg and uptime if locale != C.
|
||||||
|
Updated siglist.
|
||||||
|
* Tighter libgtop-2.0.pc.
|
||||||
|
|
||||||
|
Mars 7, 2005: Overview of Changes from 2.9.92 to 2.10.0
|
||||||
|
=======================================================
|
||||||
|
* Updated i18n.
|
||||||
|
|
||||||
|
February 28, 2005: Overview of Changes from 2.9.90 to 2.9.92
|
||||||
|
============================================================
|
||||||
|
* *BSD updated by marcus@freebsd.org (Joe Marcus Clarke).
|
||||||
|
* Removed a lot of dead files :)
|
||||||
|
* Don't build&install libgtop_daemon when it's never used.
|
||||||
|
|
||||||
|
February 6, 2004: Overview of Changes from 2.9.90 to 2.9.91
|
||||||
|
==========================================================
|
||||||
|
* Fixed typo in stub.
|
||||||
|
* Updated i18n.
|
||||||
|
|
||||||
|
January 24, 2004: Overview of Changes from 2.9.4 to 2.9.90
|
||||||
|
==========================================================
|
||||||
|
* Updated Linux support.
|
||||||
|
|
||||||
|
January 10, 2004: Overview of Changes from 2.9.3 to 2.9.4
|
||||||
|
=========================================================
|
||||||
|
* New glibtop_proc_open_files nick@reloco.com.ar (Nicolás Lichtmaier).
|
||||||
|
* Updated AIX support (Christophe Belle).
|
||||||
|
|
||||||
|
December 20, 2004: Overview of Changes from 2.9.0 to 2.9.3
|
||||||
|
==========================================================
|
||||||
|
* Removed libgtop_names.
|
||||||
|
* Fixed Argument passing between library and server. #139809.
|
||||||
|
* *BSD updated by marcus@freebsd.org (Joe Marcus Clarke).
|
||||||
|
* glibtop_get_mountlist(False) now ignores 'unknown' fs.
|
||||||
|
|
||||||
|
|
||||||
|
November 30, 2004: Overview of Changes from 2.8.1 to 2.9.0
|
||||||
|
=========================================================
|
||||||
|
* glibtop_get_netload : Fixed segfault on linux with ppp devices.
|
||||||
|
* NEW glibtop_get_netlist : retrieves the list of all available interfaces.
|
||||||
|
* NEW LIBGTOP_CHECK_VERSION(major, minor, micro)
|
||||||
|
* Removed dead kernel patch and implementation.
|
||||||
|
* Cleanups on Linux and Solaris.
|
||||||
|
|
||||||
October 11, 2004: Overview of Changes from 2.8.0 to 2.8.1
|
October 11, 2004: Overview of Changes from 2.8.0 to 2.8.1
|
||||||
=========================================================
|
=========================================================
|
||||||
* Improved Solaris and AIX support.
|
* Improved Solaris and AIX support.
|
||||||
|
16
README
16
README
@@ -1,8 +1,20 @@
|
|||||||
$Id$
|
|
||||||
|
|
||||||
LATEST NEWS:
|
LATEST NEWS:
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Please look also in the file 'NEWS' for latest news.
|
Please look also in the file 'NEWS' for latest news.
|
||||||
|
|
||||||
Martin
|
Martin
|
||||||
|
|
||||||
|
|
||||||
|
ChangeLogs:
|
||||||
|
==========
|
||||||
|
|
||||||
|
LibGTop has many ChangeLogs files. The following files are the the
|
||||||
|
most important :
|
||||||
|
|
||||||
|
- ChangeLog is the main ChangeLog.
|
||||||
|
- sysdeps/<arch>/ChangeLog is the ChangeLog for arch specific changes.
|
||||||
|
- sysdeps/common/ChangeLog is the ChangeLog for common changes (shared
|
||||||
|
implementation between archs).
|
||||||
|
|
||||||
|
Benoît
|
||||||
|
@@ -131,7 +131,6 @@
|
|||||||
|
|
||||||
#undef HAVE_GLIBTOP_MACHINE_H
|
#undef HAVE_GLIBTOP_MACHINE_H
|
||||||
|
|
||||||
#undef GLIBTOP_NAMES
|
|
||||||
#undef GLIBTOP_GUILE
|
#undef GLIBTOP_GUILE
|
||||||
#undef GLIBTOP_GUILE_NAMES
|
#undef GLIBTOP_GUILE_NAMES
|
||||||
#undef GLIBTOP_EXAMPLES
|
#undef GLIBTOP_EXAMPLES
|
||||||
@@ -139,7 +138,6 @@
|
|||||||
|
|
||||||
#undef NEED_LIBGTOP
|
#undef NEED_LIBGTOP
|
||||||
|
|
||||||
#undef HAVE_LINUX_TABLE
|
|
||||||
#undef HAVE_LIBGTOP_SMP
|
#undef HAVE_LIBGTOP_SMP
|
||||||
|
|
||||||
#undef HAVE_XAUTH
|
#undef HAVE_XAUTH
|
||||||
|
130
acinclude.m4
130
acinclude.m4
@@ -503,76 +503,6 @@ AC_CHECKING(for AFS)
|
|||||||
test -d /afs && AC_DEFINE(AFS)
|
test -d /afs && AC_DEFINE(AFS)
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl GNOME_SUPPORT_CHECKS
|
|
||||||
dnl Check for various support functions needed by the standard
|
|
||||||
dnl Gnome libraries. Sets LIBOBJS, might define some macros.
|
|
||||||
dnl This should only be used when building the Gnome libs;
|
|
||||||
dnl Gnome clients should not need this macro.
|
|
||||||
AC_DEFUN([GNOME_SUPPORT_CHECKS],[
|
|
||||||
# we need an `awk' to build `gnomesupport.h'
|
|
||||||
AC_REQUIRE([AC_PROG_AWK])
|
|
||||||
|
|
||||||
# this should go away soon
|
|
||||||
need_gnome_support=yes
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS(getopt_long,,
|
|
||||||
[AC_LIBOBJ(getopt)
|
|
||||||
AC_LIBOBJ(getopt1)])
|
|
||||||
|
|
||||||
# for `scandir'
|
|
||||||
AC_HEADER_DIRENT
|
|
||||||
|
|
||||||
# copied from `configure.in' of `libiberty'
|
|
||||||
vars="program_invocation_short_name program_invocation_name sys_errlist"
|
|
||||||
for v in $vars; do
|
|
||||||
AC_MSG_CHECKING([for $v])
|
|
||||||
AC_CACHE_VAL(gnome_cv_var_$v,
|
|
||||||
[AC_TRY_LINK([int *p;], [extern int $v; p = &$v;],
|
|
||||||
[eval "gnome_cv_var_$v=yes"],
|
|
||||||
[eval "gnome_cv_var_$v=no"])])
|
|
||||||
if eval "test \"`echo '$gnome_cv_var_'$v`\" = yes"; then
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
|
|
||||||
AC_DEFINE_UNQUOTED($n)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
AC_REPLACE_FUNCS(memmove mkstemp scandir strcasecmp strerror strndup strnlen)
|
|
||||||
AC_REPLACE_FUNCS(strtok_r strtod strtol strtoul vasprintf vsnprintf)
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS(realpath,,AC_LIBOBJ(canonicalize))
|
|
||||||
|
|
||||||
# to include `error.c' error.c has some HAVE_* checks
|
|
||||||
AC_CHECK_FUNCS(vprintf doprnt strerror_r)
|
|
||||||
# stolen from am_func_error_at_line
|
|
||||||
AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
|
|
||||||
[AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
|
|
||||||
am_cv_lib_error_at_line=yes,
|
|
||||||
am_cv_lib_error_at_line=no)])
|
|
||||||
if test $am_cv_lib_error_at_line = no; then
|
|
||||||
AC_LIBOBJ(error)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# This is required if we declare setreuid () and setregid ().
|
|
||||||
AC_TYPE_UID_T
|
|
||||||
|
|
||||||
# see if we need to declare some functions. Solaris is notorious for
|
|
||||||
# putting functions into the `libc' but not listing them in the headers
|
|
||||||
AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h dirent.h)
|
|
||||||
GCC_NEED_DECLARATIONS(gethostname setreuid setregid getpagesize)
|
|
||||||
GCC_NEED_DECLARATION(scandir,[
|
|
||||||
#ifdef HAVE_DIRENT_H
|
|
||||||
#include <dirent.h>
|
|
||||||
#endif
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_SUBST(need_gnome_support)
|
|
||||||
|
|
||||||
AM_CONDITIONAL(BUILD_GNOME_SUPPORT, test "$need_gnome_support" = yes)
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
dnl This file is intended for use both internally in libgtop and in every program
|
dnl This file is intended for use both internally in libgtop and in every program
|
||||||
dnl that wants to use it.
|
dnl that wants to use it.
|
||||||
@@ -586,53 +516,6 @@ dnl define 'HAVE_GLIBTOP_MACHINE_H'.
|
|||||||
dnl * 'libgtop_need_server' - is the server really needed? Defines 'NEED_LIBGTOP'
|
dnl * 'libgtop_need_server' - is the server really needed? Defines 'NEED_LIBGTOP'
|
||||||
dnl if true; defines conditional 'NEED_LIBGTOP'.
|
dnl if true; defines conditional 'NEED_LIBGTOP'.
|
||||||
|
|
||||||
AC_DEFUN([LIBGTOP_HACKER_TESTS],[
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
||||||
|
|
||||||
AC_ARG_WITH(linux-table,
|
|
||||||
[ --with-linux-table Use the table () function from Martin Baulig],
|
|
||||||
[linux_table="$withval"],[linux_table=auto])
|
|
||||||
case "$host_os" in
|
|
||||||
linux*)
|
|
||||||
if test $linux_table = yes ; then
|
|
||||||
AC_CHECK_HEADER(linux/table.h, linux_table=yes, linux_table=no)
|
|
||||||
elif test $linux_table = auto ; then
|
|
||||||
AC_MSG_CHECKING(for table function in Linux Kernel)
|
|
||||||
AC_TRY_RUN([
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <linux/unistd.h>
|
|
||||||
#include <linux/table.h>
|
|
||||||
|
|
||||||
#include <syscall.h>
|
|
||||||
|
|
||||||
static inline _syscall3 (int, table, int, type, union table *, tbl, const void *, param);
|
|
||||||
|
|
||||||
int
|
|
||||||
main (void)
|
|
||||||
{
|
|
||||||
union table tbl;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = table (TABLE_VERSION, NULL, NULL);
|
|
||||||
|
|
||||||
if (ret == -1)
|
|
||||||
exit (-errno);
|
|
||||||
|
|
||||||
exit (ret < 1 ? ret : 0);
|
|
||||||
}
|
|
||||||
], linux_table=yes, linux_table=no, linux_table=no)
|
|
||||||
AC_MSG_RESULT($linux_table)
|
|
||||||
fi
|
|
||||||
if test $linux_table = yes ; then
|
|
||||||
AC_DEFINE(HAVE_LINUX_TABLE)
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
|
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
|
|
||||||
@@ -652,11 +535,9 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
|
|||||||
|
|
||||||
AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
|
AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
|
||||||
|
|
||||||
linux_table=auto
|
|
||||||
if test x$hacker_mode = xyes ; then
|
if test x$hacker_mode = xyes ; then
|
||||||
LIBGTOP_HACKER_TESTS
|
LIBGTOP_HACKER_TESTS
|
||||||
fi
|
fi
|
||||||
AM_CONDITIONAL(LINUX_TABLE, test $linux_table = yes)
|
|
||||||
|
|
||||||
AC_ARG_WITH(libgtop-smp,
|
AC_ARG_WITH(libgtop-smp,
|
||||||
[ --with-libgtop-smp Enable SMP support (default-auto)],[
|
[ --with-libgtop-smp Enable SMP support (default-auto)],[
|
||||||
@@ -688,14 +569,9 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
|
|||||||
|
|
||||||
case "$host_os" in
|
case "$host_os" in
|
||||||
linux*)
|
linux*)
|
||||||
if test x$linux_table = xyes ; then
|
libgtop_sysdeps_dir=linux
|
||||||
libgtop_sysdeps_dir=kernel
|
libgtop_use_machine_h=no
|
||||||
libgtop_use_machine_h=no
|
libgtop_have_sysinfo=yes
|
||||||
else
|
|
||||||
libgtop_sysdeps_dir=linux
|
|
||||||
libgtop_use_machine_h=no
|
|
||||||
libgtop_have_sysinfo=yes
|
|
||||||
fi
|
|
||||||
libgtop_need_server=no
|
libgtop_need_server=no
|
||||||
;;
|
;;
|
||||||
freebsd*|netbsd*|openbsd*|bsdi*)
|
freebsd*|netbsd*|openbsd*|bsdi*)
|
||||||
|
@@ -1,5 +0,0 @@
|
|||||||
.deps
|
|
||||||
.libs
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
*.lo
|
|
@@ -1,15 +0,0 @@
|
|||||||
if NEED_LIBGTOP
|
|
||||||
server_dir = server
|
|
||||||
else
|
|
||||||
server_dir =
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_SYSDEPS
|
|
||||||
sysdeps_dir = sysdeps
|
|
||||||
else
|
|
||||||
sysdeps_dir =
|
|
||||||
endif
|
|
||||||
|
|
||||||
SUBDIRS = $(server_dir) $(sysdeps_dir) common
|
|
||||||
|
|
||||||
DIST_SUBDIRS = server sysdeps common
|
|
@@ -1,7 +0,0 @@
|
|||||||
.deps
|
|
||||||
.libs
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
*.lo
|
|
||||||
*.la
|
|
||||||
marshal.c
|
|
@@ -1,50 +0,0 @@
|
|||||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
|
||||||
|
|
||||||
* backend-common.c: (_open_common): s/u_int64_t/guint64/
|
|
||||||
|
|
||||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
|
||||||
|
|
||||||
* backend-common.h: fixed compilation
|
|
||||||
|
|
||||||
2000-11-26 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* glibtop-backend-private.h: Removed.
|
|
||||||
|
|
||||||
* backend-common.h: New files.
|
|
||||||
|
|
||||||
* backend-common.c (_open_common): Don't overwrite
|
|
||||||
`backend->_priv'.
|
|
||||||
|
|
||||||
2000-11-22 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am: Link libgtop_backend_common.la against
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la and
|
|
||||||
$(top_builddir)/lib/libgtop_server.la.
|
|
||||||
|
|
||||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* backend-sysdeps.c (LibGTopBackendInfo): Call this
|
|
||||||
`LibGTopBackendInfo_Common' when we don't use gmodule.
|
|
||||||
|
|
||||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
|
|
||||||
when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
|
|
||||||
|
|
||||||
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR).
|
|
||||||
|
|
||||||
* libgtop-common.backend: New file.
|
|
||||||
|
|
||||||
* backend-common.c (glibtop_backend_common): Renamed to
|
|
||||||
`LibGTopBackendInfo'.
|
|
||||||
|
|
||||||
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
Initial version of the "glibtop-backend-common" backend.
|
|
||||||
|
|
||||||
* backend-common.c: New file.
|
|
||||||
* glibtop-backend-private.h: New file.
|
|
||||||
* marshal.pl: New file. Automatically creates `marshal.c'.
|
|
||||||
|
|
@@ -1,47 +0,0 @@
|
|||||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
INCLUDES = @INCLUDES@
|
|
||||||
|
|
||||||
backenddir = @LIBGTOP_BACKEND_DIR@
|
|
||||||
|
|
||||||
if LIBGTOP_USE_GMODULE
|
|
||||||
backendlibdir = $(backenddir)
|
|
||||||
else
|
|
||||||
backendlibdir = $(libdir)
|
|
||||||
endif
|
|
||||||
|
|
||||||
dynamic_ldflags = @libgtop_dynamic_ldflags@
|
|
||||||
|
|
||||||
backend_DATA = \
|
|
||||||
libgtop-common.backend
|
|
||||||
|
|
||||||
noinst_HEADERS = \
|
|
||||||
backend-common.h
|
|
||||||
|
|
||||||
backendlib_LTLIBRARIES = \
|
|
||||||
libgtop_backend_common.la
|
|
||||||
|
|
||||||
libgtop_backend_common_la_SOURCES = \
|
|
||||||
backend-common.c \
|
|
||||||
marshal.c
|
|
||||||
|
|
||||||
libgtop_backend_common_la_LDFLAGS = \
|
|
||||||
$(LT_VERSION_INFO) $(dynamic_ldflags)
|
|
||||||
|
|
||||||
libgtop_backend_common_la_LIBADD = \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
|
||||||
$(top_builddir)/lib/libgtop_server.la
|
|
||||||
|
|
||||||
BUILT_SOURCES = \
|
|
||||||
marshal.c
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
marshal.pl \
|
|
||||||
libgtop-common.backend
|
|
||||||
|
|
||||||
CLEANFILES = $(BUILT_SOURCES)
|
|
||||||
|
|
||||||
marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
|
||||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t
|
|
||||||
mv tmp-t marshal.c
|
|
||||||
|
|
@@ -1,61 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <backend-common.h>
|
|
||||||
|
|
||||||
static int
|
|
||||||
_open_common (glibtop_server *, glibtop_backend *, guint64, const char **);
|
|
||||||
|
|
||||||
static int
|
|
||||||
_close_common (glibtop_server *, glibtop_backend *, void *closure);
|
|
||||||
|
|
||||||
extern glibtop_call_vector glibtop_backend_common_call_vector;
|
|
||||||
|
|
||||||
#ifdef LIBGTOP_USE_GMODULE
|
|
||||||
glibtop_backend_info LibGTopBackendInfo = {
|
|
||||||
"glibtop-backend-common", _open_common, _close_common,
|
|
||||||
&glibtop_backend_common_call_vector
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
glibtop_backend_info LibGTopBackendInfo_Common = {
|
|
||||||
"glibtop-backend-common", _open_common, _close_common,
|
|
||||||
&glibtop_backend_common_call_vector
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
|
||||||
_open_common (glibtop_server *server, glibtop_backend *backend,
|
|
||||||
guint64 features, const char **backend_args)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
_close_common (glibtop_server *server, glibtop_backend *backend,
|
|
||||||
void *closure)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,36 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_BACKEND_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
|
|
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0"?> <!-- -*-xml-*- -->
|
|
||||||
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
|
|
||||||
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
|
|
||||||
|
|
||||||
<libgtop:Backend>
|
|
||||||
<libgtop:Name>glibtop-backend-common</libgtop:Name>
|
|
||||||
<libgtop:Location>
|
|
||||||
<libgtop:LibtoolName>libgtop_backend_common.la</libgtop:LibtoolName>
|
|
||||||
<libgtop:ShlibName>libgtop_backend_common.so</libgtop:ShlibName>
|
|
||||||
</libgtop:Location>
|
|
||||||
</libgtop:Backend>
|
|
||||||
|
|
||||||
</libgtop:Backends>
|
|
@@ -1,175 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
|
|
||||||
require 'c_types.pl';
|
|
||||||
|
|
||||||
$[ = 1; # set array base to 1
|
|
||||||
$, = ' '; # set output field separator
|
|
||||||
$\ = "\n"; # set output record separator
|
|
||||||
|
|
||||||
$always_use_temp_storage = 1;
|
|
||||||
|
|
||||||
sub toupper {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/a-z/A-Z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub tolower {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/A-Z/a-z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
print '/* marshal.c */';
|
|
||||||
print "/* This is a generated file. Please modify `marshal.pl' */";
|
|
||||||
print '';
|
|
||||||
|
|
||||||
print '#include <backend-common.h>';
|
|
||||||
print '';
|
|
||||||
print '#include <glibtop/sysdeps.h>';
|
|
||||||
print '#include <glibtop/union.h>';
|
|
||||||
print '';
|
|
||||||
print '#include <glibtop/call-vector.h>';
|
|
||||||
print '';
|
|
||||||
|
|
||||||
$feature_count = 0;
|
|
||||||
|
|
||||||
while (<>) {
|
|
||||||
chop; # strip record separator
|
|
||||||
|
|
||||||
if (/^[^#]/) {
|
|
||||||
&output($_);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub output {
|
|
||||||
local($line) = @_;
|
|
||||||
@line_fields = split(/\|/, $line, 9999);
|
|
||||||
$retval = $line_fields[1];
|
|
||||||
$feature = $line_fields[2];
|
|
||||||
$param_def = $line_fields[4];
|
|
||||||
|
|
||||||
$orig = $feature;
|
|
||||||
$feature =~ s/^@//;
|
|
||||||
$space = $feature;
|
|
||||||
$space =~ s/./ /g;
|
|
||||||
|
|
||||||
$features{++$feature_count} = $orig;
|
|
||||||
|
|
||||||
return unless $orig =~ /^@/;
|
|
||||||
|
|
||||||
if ($retval eq 'retval') {
|
|
||||||
$retval_param = '&retval';
|
|
||||||
$call_prefix = '';
|
|
||||||
$call_prefix_space = '';
|
|
||||||
$prefix = 'retval = ';
|
|
||||||
$prefix_space = ' ';
|
|
||||||
$retval = 'int';
|
|
||||||
}
|
|
||||||
elsif ($retval !~ /^void$/) {
|
|
||||||
$retval_param = 'NULL';
|
|
||||||
$prefix = 'retval = ';
|
|
||||||
$prefix_space = ' ';
|
|
||||||
$call_prefix = 'retval = ';
|
|
||||||
$call_prefix_space = ' ';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$retval_param = 'NULL';
|
|
||||||
$call_prefix = '';
|
|
||||||
$call_prefix_space = '';
|
|
||||||
$prefix = '';
|
|
||||||
$prefix_space = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
|
||||||
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
|
||||||
}
|
|
||||||
|
|
||||||
$need_temp_storage = $always_use_temp_storage;
|
|
||||||
$first_param_name = '';
|
|
||||||
|
|
||||||
$call_param = '';
|
|
||||||
$param_decl = '';
|
|
||||||
$need_temp_len = 0;
|
|
||||||
$nr_params = (@params = split(/:/, $param_def, 9999));
|
|
||||||
for ($param = 1; $param <= $nr_params; $param++) {
|
|
||||||
$list = $params[$param];
|
|
||||||
$type = $params[$param];
|
|
||||||
$type =~ s/\(.*//;
|
|
||||||
$list =~ s/^.*\(//;
|
|
||||||
$list =~ s/\)$//;
|
|
||||||
$count = (@fields = split(/,/, $list, 9999));
|
|
||||||
for ($field = 1; $field <= $count; $field++) {
|
|
||||||
my $c_type = $typeinfo->{$type}->[1];
|
|
||||||
|
|
||||||
if ($first_param_name eq '') {
|
|
||||||
$first_param_name = $fields[$field];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($typeinfo->{$type}->[2]) {
|
|
||||||
$need_temp_storage = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($param_decl eq '') {
|
|
||||||
$param_decl = ",\n " . $space . ' ';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$param_decl = $param_decl . ', ';
|
|
||||||
}
|
|
||||||
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
|
||||||
$call_param = $call_param . ', ' . $fields[$field];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($line_fields[3] eq '') {
|
|
||||||
$total_code = sprintf
|
|
||||||
("\treturn glibtop_get_%s_s (server%s);\n", $feature, $call_param);
|
|
||||||
} elsif ($line_fields[3] eq 'array') {
|
|
||||||
$total_code = sprintf
|
|
||||||
("\treturn glibtop_get_%s_s (server, array%s);\n", $feature, $call_param);
|
|
||||||
} elsif ($line_fields[3] =~ /^array/) {
|
|
||||||
$total_code = sprintf
|
|
||||||
("\treturn glibtop_get_%s_s (server, array, buf%s);\n", $feature, $call_param);
|
|
||||||
} else {
|
|
||||||
$total_code = sprintf
|
|
||||||
("\treturn glibtop_get_%s_s (server, buf%s);\n", $feature, $call_param);
|
|
||||||
}
|
|
||||||
|
|
||||||
$func_decl = 'static '.$retval."\n";
|
|
||||||
if ($line_fields[3] eq '') {
|
|
||||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
|
|
||||||
$feature, $param_decl);
|
|
||||||
} elsif ($line_fields[3] eq 'array') {
|
|
||||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
|
|
||||||
$feature, $param_decl);
|
|
||||||
} elsif ($line_fields[3] =~ /^array/) {
|
|
||||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
|
|
||||||
$feature, 'glibtop_'.$feature, $param_decl);
|
|
||||||
} else {
|
|
||||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
|
|
||||||
$feature, 'glibtop_'.$feature, $param_decl);
|
|
||||||
}
|
|
||||||
|
|
||||||
$total_code = sprintf ("%s{\n%s\n%s}\n", $func_decl, $total_code);
|
|
||||||
|
|
||||||
print $total_code;
|
|
||||||
}
|
|
||||||
|
|
||||||
$call_vector_code = '';
|
|
||||||
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
|
||||||
$feature = $features{$nr};
|
|
||||||
|
|
||||||
if ($feature =~ /^@/) {
|
|
||||||
$feature =~ s/^@//;
|
|
||||||
|
|
||||||
$call_vector_code .= sprintf (qq[\t_glibtop_get_%s_c,\n], $feature);
|
|
||||||
} else {
|
|
||||||
$call_vector_code .= sprintf (qq[\tNULL,\n]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print 'glibtop_call_vector glibtop_backend_common_call_vector = {';
|
|
||||||
print $call_vector_code;
|
|
||||||
print '};';
|
|
||||||
print '';
|
|
||||||
|
|
@@ -1,10 +0,0 @@
|
|||||||
.deps
|
|
||||||
.libs
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
*.lo
|
|
||||||
*.la
|
|
||||||
marshal.c
|
|
||||||
demarshal.c
|
|
||||||
libgtop_server
|
|
||||||
command.h
|
|
@@ -1,125 +0,0 @@
|
|||||||
2004-08-22 Benoît Dejean <tazforever@dlfp.org>
|
|
||||||
|
|
||||||
* server.c: (handle_slave_connection): Replaced //comment by /*C89*/.
|
|
||||||
|
|
||||||
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 Benoît 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'.
|
|
||||||
|
|
@@ -1,84 +0,0 @@
|
|||||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
INCLUDES = @INCLUDES@ -D_BSD \
|
|
||||||
-DLIBGTOP_COMPILE_SYSTEM=\"`uname -s`\" \
|
|
||||||
-DLIBGTOP_COMPILE_RELEASE=\"`uname -r`\" \
|
|
||||||
-DLIBGTOP_COMPILE_MACHINE=\"`uname -m`\"
|
|
||||||
|
|
||||||
backenddir = @LIBGTOP_BACKEND_DIR@
|
|
||||||
|
|
||||||
if LIBGTOP_USE_GMODULE
|
|
||||||
backendlibdir = $(backenddir)
|
|
||||||
else
|
|
||||||
backendlibdir = $(libdir)
|
|
||||||
endif
|
|
||||||
|
|
||||||
dynamic_ldflags = @libgtop_dynamic_ldflags@
|
|
||||||
|
|
||||||
backend_DATA = \
|
|
||||||
libgtop-server.backend
|
|
||||||
|
|
||||||
noinst_HEADERS = \
|
|
||||||
backend-server.h
|
|
||||||
|
|
||||||
backendlib_LTLIBRARIES = \
|
|
||||||
libgtop_backend_server.la
|
|
||||||
|
|
||||||
bin_PROGRAMS = \
|
|
||||||
@server_programs@
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS = \
|
|
||||||
libgtop_server
|
|
||||||
|
|
||||||
libgtop_backend_server_la_SOURCES = \
|
|
||||||
backend-server.c \
|
|
||||||
marshal.c \
|
|
||||||
command.c \
|
|
||||||
read.c \
|
|
||||||
read_data.c \
|
|
||||||
write.c
|
|
||||||
|
|
||||||
libgtop_backend_server_la_LDFLAGS = \
|
|
||||||
$(LT_VERSION_INFO) $(dynamic_ldflags)
|
|
||||||
|
|
||||||
libgtop_server_SOURCES = \
|
|
||||||
server.c \
|
|
||||||
server.h \
|
|
||||||
demarshal.c \
|
|
||||||
version.c \
|
|
||||||
io.c
|
|
||||||
|
|
||||||
libgtop_server_LDADD = \
|
|
||||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps_suid.la \
|
|
||||||
$(top_builddir)/sysdeps/common/libgtop_suid_common.la
|
|
||||||
|
|
||||||
if ENABLE_STATIC
|
|
||||||
libgtop_server_LDFLAGS = -static
|
|
||||||
endif
|
|
||||||
|
|
||||||
BUILT_SOURCES = \
|
|
||||||
marshal.c \
|
|
||||||
demarshal.c \
|
|
||||||
command.h
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
marshal.pl \
|
|
||||||
demarshal.pl \
|
|
||||||
command.pl \
|
|
||||||
command.h.in \
|
|
||||||
libgtop-server.backend
|
|
||||||
|
|
||||||
CLEANFILES = $(BUILT_SOURCES)
|
|
||||||
|
|
||||||
marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
|
||||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t
|
|
||||||
mv tmp-t marshal.c
|
|
||||||
|
|
||||||
demarshal.c: demarshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
|
||||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/demarshal.pl < $(top_srcdir)/features.def > tmp-t
|
|
||||||
mv tmp-t demarshal.c
|
|
||||||
|
|
||||||
command.h: command.pl command.h.in $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
|
||||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/command.pl $(top_srcdir)/features.def $(srcdir)/command.h.in > tmp-t
|
|
||||||
mv tmp-t command.h
|
|
||||||
|
|
@@ -1,113 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <backend-server.h>
|
|
||||||
|
|
||||||
static int
|
|
||||||
_open_server (glibtop_server *, glibtop_backend *, guint64, const char **);
|
|
||||||
|
|
||||||
static int
|
|
||||||
_close_server (glibtop_server *, glibtop_backend *, void *);
|
|
||||||
|
|
||||||
extern glibtop_call_vector glibtop_backend_server_call_vector;
|
|
||||||
|
|
||||||
#ifdef LIBGTOP_USE_GMODULE
|
|
||||||
glibtop_backend_info LibGTopBackendInfo = {
|
|
||||||
"glibtop-backend-server", _open_server, _close_server,
|
|
||||||
&glibtop_backend_server_call_vector
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
glibtop_backend_info LibGTopBackendInfo_Server = {
|
|
||||||
"glibtop-backend-server", _open_server, _close_server,
|
|
||||||
&glibtop_backend_server_call_vector
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
|
||||||
_open_server (glibtop_server *server, glibtop_backend *backend,
|
|
||||||
guint64 features, const char **backend_args)
|
|
||||||
{
|
|
||||||
backend_server_private *priv;
|
|
||||||
|
|
||||||
priv = g_malloc (sizeof (backend_server_private));
|
|
||||||
|
|
||||||
glibtop_backend_set_closure_data (backend, priv);
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "open_server - %p, %p, %p\n", server, backend, priv);
|
|
||||||
|
|
||||||
fprintf (stderr, "Opening pipe to server (%s).\n", LIBGTOP_SERVER);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (pipe (priv->input) || pipe (priv->output)) {
|
|
||||||
glibtop_warn_io_r (server, "cannot make a pipe");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
priv->pid = fork ();
|
|
||||||
|
|
||||||
if (priv->pid < 0) {
|
|
||||||
glibtop_warn_io_r (server, "fork failed");
|
|
||||||
return -1;
|
|
||||||
} else if (priv->pid == 0) {
|
|
||||||
close (0); close (1);
|
|
||||||
close (priv->input [0]);
|
|
||||||
close (priv->output [1]);
|
|
||||||
dup2 (priv->input [1], 1);
|
|
||||||
dup2 (priv->output [0], 0);
|
|
||||||
execl (LIBGTOP_SERVER, "libgtop-server", NULL);
|
|
||||||
glibtop_error_io_r (server, "execl (%s)",
|
|
||||||
LIBGTOP_SERVER);
|
|
||||||
_exit (2);
|
|
||||||
}
|
|
||||||
|
|
||||||
close (priv->input [1]);
|
|
||||||
close (priv->output [0]);
|
|
||||||
|
|
||||||
glibtop_server_ref (server);
|
|
||||||
priv->server = server;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
_close_server (glibtop_server *server, glibtop_backend *backend,
|
|
||||||
void *closure)
|
|
||||||
{
|
|
||||||
backend_server_private *priv = closure;
|
|
||||||
|
|
||||||
kill (priv->pid, SIGKILL);
|
|
||||||
close (priv->input [0]);
|
|
||||||
close (priv->output [1]);
|
|
||||||
|
|
||||||
glibtop_server_unref (priv->server);
|
|
||||||
|
|
||||||
priv->pid = 0;
|
|
||||||
|
|
||||||
g_free (priv);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,65 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_BACKEND_COMMON_H__
|
|
||||||
#define __GLIBTOP_BACKEND_COMMON_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/glibtop-backend.h>
|
|
||||||
#include <glibtop/glibtop-backend-info.h>
|
|
||||||
|
|
||||||
typedef struct _backend_server_private backend_server_private;
|
|
||||||
|
|
||||||
struct _backend_server_private
|
|
||||||
{
|
|
||||||
guint64 flags;
|
|
||||||
int input [2]; /* Pipe client <- server */
|
|
||||||
int output [2]; /* Pipe client -> server */
|
|
||||||
pid_t pid; /* PID of the server */
|
|
||||||
|
|
||||||
glibtop_server *server;
|
|
||||||
};
|
|
||||||
|
|
||||||
void *
|
|
||||||
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
|
|
||||||
unsigned command, size_t send_size, const void *send_ptr,
|
|
||||||
size_t data_size, const void *data_ptr,
|
|
||||||
size_t recv_size, void *recv_ptr,
|
|
||||||
int *retval_ptr);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_read_i (backend_server_private *priv, size_t size, void *buf);
|
|
||||||
|
|
||||||
void *
|
|
||||||
glibtop_read_data_i (backend_server_private *priv);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_write_i (backend_server_private *priv, size_t size, const void *buf);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@@ -1,94 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <backend-server.h>
|
|
||||||
|
|
||||||
#include "command.h"
|
|
||||||
|
|
||||||
void *
|
|
||||||
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
|
|
||||||
unsigned command, size_t send_size, const void *send_buf,
|
|
||||||
size_t data_size, const void *data_buf,
|
|
||||||
size_t recv_size, void *recv_ptr,
|
|
||||||
int *retval_ptr)
|
|
||||||
{
|
|
||||||
glibtop_command cmnd = {0};
|
|
||||||
glibtop_response resp = {0};
|
|
||||||
|
|
||||||
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,59 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
@@AUTOGEN_COMMENT@@
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_COMMAND_H__
|
|
||||||
#define __GLIBTOP_COMMAND_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
@@GLIBTOP_COMMAND_CONSTANTS@@
|
|
||||||
|
|
||||||
#define _GLIBTOP_PARAM_SIZE 16
|
|
||||||
|
|
||||||
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
|
|
@@ -1,76 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
|
|
||||||
require 'c_types.pl';
|
|
||||||
|
|
||||||
die "Usage: $0 features.def command.h.in" unless $#ARGV == 1;
|
|
||||||
|
|
||||||
$[ = 1; # set array base to 1
|
|
||||||
$, = ' '; # set output field separator
|
|
||||||
$\ = "\n"; # set output record separator
|
|
||||||
|
|
||||||
sub toupper {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/a-z/A-Z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub tolower {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/A-Z/a-z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
$constants_decl_code = '';
|
|
||||||
|
|
||||||
open FEATURESDEF, $ARGV[1] or
|
|
||||||
die "open ($ARGV[1]): $!";
|
|
||||||
|
|
||||||
while (<FEATURESDEF>) {
|
|
||||||
chop; # strip record separator
|
|
||||||
|
|
||||||
if (/^[^\#]/) {
|
|
||||||
&parse_features_def ($_);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
close FEATURESDEF;
|
|
||||||
|
|
||||||
sub parse_features_def {
|
|
||||||
local($line) = @_;
|
|
||||||
@line_fields = split(/\|/, $line, 9999);
|
|
||||||
$retval = $line_fields[1];
|
|
||||||
$element_def = $line_fields[3];
|
|
||||||
$feature = $line_fields[2];
|
|
||||||
$param_def = $line_fields[4];
|
|
||||||
|
|
||||||
$orig = $feature;
|
|
||||||
$feature =~ s/^@//;
|
|
||||||
$space = $feature;
|
|
||||||
$space =~ s/./ /g;
|
|
||||||
|
|
||||||
$constants_decl_code .= sprintf
|
|
||||||
(qq[\#define %-40s %d\n], 'GLIBTOP_CMND_'.&toupper($feature),
|
|
||||||
++$feature_count);
|
|
||||||
|
|
||||||
$features{$feature_count} = $feature;
|
|
||||||
}
|
|
||||||
|
|
||||||
chop $constants_decl_code;
|
|
||||||
|
|
||||||
$auto_gen_comment = sprintf
|
|
||||||
(qq[/*\n * This file is automatically generated.\n * Please modify `command.pl' and `command.h.in'.\n */]);
|
|
||||||
|
|
||||||
open COMMAND, $ARGV[2] or
|
|
||||||
die "open ($ARGV[2]): $!";
|
|
||||||
|
|
||||||
while (<COMMAND>) {
|
|
||||||
chop;
|
|
||||||
|
|
||||||
s/^\s*\@\@GLIBTOP_COMMAND_CONSTANTS\@\@\s*$/$constants_decl_code/;
|
|
||||||
|
|
||||||
s/^\s*\@\@AUTOGEN_COMMENT\@\@\s*$/$auto_gen_comment/;
|
|
||||||
} continue {
|
|
||||||
print $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
close COMMAND;
|
|
@@ -1,385 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
|
|
||||||
require 'c_types.pl';
|
|
||||||
|
|
||||||
$[ = 1; # set array base to 1
|
|
||||||
$, = ' '; # set output field separator
|
|
||||||
$\ = "\n"; # set output record separator
|
|
||||||
|
|
||||||
$always_use_temp_storage = 0;
|
|
||||||
|
|
||||||
sub toupper {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/a-z/A-Z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub tolower {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/A-Z/a-z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
print '/* demarshal.c */';
|
|
||||||
print "/* This is a generated file. Please modify `demarshal.pl' */";
|
|
||||||
print '';
|
|
||||||
|
|
||||||
print '#include <glibtop.h>';
|
|
||||||
print '#include <glibtop/open.h>';
|
|
||||||
print '';
|
|
||||||
print '#include <glibtop/sysdeps.h>';
|
|
||||||
print '#include <glibtop/union.h>';
|
|
||||||
print '';
|
|
||||||
print '#include <glibtop/backend.h>';
|
|
||||||
print '';
|
|
||||||
print '#include <glibtop-backend-private.h>';
|
|
||||||
print '#include "server.h"';
|
|
||||||
print '';
|
|
||||||
|
|
||||||
$feature_count = 0;
|
|
||||||
|
|
||||||
while (<>) {
|
|
||||||
chop; # strip record separator
|
|
||||||
|
|
||||||
if (/^[^\#]/) {
|
|
||||||
&output($_);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub output {
|
|
||||||
local($line) = @_;
|
|
||||||
@line_fields = split(/\|/, $line, 9999);
|
|
||||||
$retval = $line_fields[1];
|
|
||||||
$element_def = $line_fields[3];
|
|
||||||
$feature = $line_fields[2];
|
|
||||||
$param_def = $line_fields[4];
|
|
||||||
|
|
||||||
return if $feature =~ /^@/;
|
|
||||||
$name = 'glibtop_'.$feature;
|
|
||||||
|
|
||||||
$orig = $feature;
|
|
||||||
$feature =~ s/^@//;
|
|
||||||
$space = $feature;
|
|
||||||
$space =~ s/./ /g;
|
|
||||||
|
|
||||||
$features{++$feature_count} = $feature;
|
|
||||||
|
|
||||||
$orig_retval = $retval;
|
|
||||||
|
|
||||||
if ($retval eq 'retval') {
|
|
||||||
$retval_param = '&retval';
|
|
||||||
$call_prefix = '';
|
|
||||||
$call_prefix_space = '';
|
|
||||||
$prefix = 'retval = ';
|
|
||||||
$prefix_space = ' ';
|
|
||||||
$retval = 'int';
|
|
||||||
} elsif ($retval !~ /^void$/) {
|
|
||||||
$retval_param = 'NULL';
|
|
||||||
$prefix = 'retval = ';
|
|
||||||
$prefix_space = ' ';
|
|
||||||
$call_prefix = 'retval = ';
|
|
||||||
$call_prefix_space = ' ';
|
|
||||||
} else {
|
|
||||||
$retval_param = 'NULL';
|
|
||||||
$call_prefix = '';
|
|
||||||
$call_prefix_space = '';
|
|
||||||
$prefix = '';
|
|
||||||
$prefix_space = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
|
||||||
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
|
||||||
}
|
|
||||||
|
|
||||||
$need_temp_storage = $always_use_temp_storage;
|
|
||||||
$first_param_name = '';
|
|
||||||
$size_code = "\t/* send size */\n";
|
|
||||||
$size_code .= "\t_LIBGTOP_SEND_len = 0;\n";
|
|
||||||
|
|
||||||
$local_var_decl_code = '';
|
|
||||||
$local_var_decl_code .= "\tsize_t _LIBGTOP_SEND_len, _LIBGTOP_RECV_len;\n";
|
|
||||||
$local_var_decl_code .= "\toff_t _LIBGTOP_SEND_offset;\n";
|
|
||||||
$local_var_decl_code .= "\tchar *_LIBGTOP_RECV_buf, *_LIBGTOP_RECV_ptr;\n";
|
|
||||||
$local_var_decl_code .= "\tconst char *_LIBGTOP_SEND_ptr;\n";
|
|
||||||
$local_var_decl_code .= sprintf
|
|
||||||
(qq[\tglibtop_%s %s;\n], $feature, $feature);
|
|
||||||
if ($retval !~ /^void$/) {
|
|
||||||
$local_var_decl_code .= sprintf ("\t%s retval = (%s) 0;\n",
|
|
||||||
$retval, $retval);
|
|
||||||
}
|
|
||||||
|
|
||||||
$init_local_var_code = "\t/* variable initialization */\n";
|
|
||||||
$init_local_var_code .= sprintf
|
|
||||||
(qq[\tmemset (&%s, 0, sizeof (glibtop_%s));\n], $feature, $feature);
|
|
||||||
$init_local_var_code .= "\t_LIBGTOP_SEND_offset = 0;\n";
|
|
||||||
$init_local_var_code .= "\t_LIBGTOP_SEND_ptr = ".
|
|
||||||
"(char *) send_ptr;\n";
|
|
||||||
|
|
||||||
$demarshal_code = '';
|
|
||||||
|
|
||||||
$call_param = '';
|
|
||||||
$param_decl = '';
|
|
||||||
$need_temp_len = 0;
|
|
||||||
$nr_params = (@params = split(/:/, $param_def, 9999));
|
|
||||||
for ($param = 1; $param <= $nr_params; $param++) {
|
|
||||||
$list = $params[$param];
|
|
||||||
$type = $params[$param];
|
|
||||||
$type =~ s/\(.*//;
|
|
||||||
$list =~ s/^.*\(//;
|
|
||||||
$list =~ s/\)$//;
|
|
||||||
$count = (@fields = split(/,/, $list, 9999));
|
|
||||||
for ($field = 1; $field <= $count; $field++) {
|
|
||||||
my $c_type = $typeinfo->{$type}->[1];
|
|
||||||
|
|
||||||
if ($first_param_name eq '') {
|
|
||||||
$first_param_name = $fields[$field];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($typeinfo->{$type}->[2]) {
|
|
||||||
$need_temp_storage = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($param_decl eq '') {
|
|
||||||
$param_decl = ",\n " . $space . ' ';
|
|
||||||
} else {
|
|
||||||
$param_decl = $param_decl . ', ';
|
|
||||||
}
|
|
||||||
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
|
||||||
$call_param = $call_param . ', _LIBGTOP_demarshal_' . $fields[$field];
|
|
||||||
|
|
||||||
$size_code .= "\t_LIBGTOP_SEND_len += ";
|
|
||||||
if ($typeinfo->{$type}->[2]) {
|
|
||||||
$size_code .= sprintf ("sizeof (size_t)");
|
|
||||||
} else {
|
|
||||||
$size_code .= sprintf ("sizeof (%s)", $c_type);
|
|
||||||
}
|
|
||||||
$size_code .= ";\n";
|
|
||||||
|
|
||||||
$local_var_decl_code .= sprintf
|
|
||||||
(qq[\t%s _LIBGTOP_demarshal_%s;\n], $c_type, $fields[$field]);
|
|
||||||
$init_local_var_code .= sprintf
|
|
||||||
(qq[\tmemset (&_LIBGTOP_demarshal_%s, 0, sizeof (%s));\n],
|
|
||||||
$fields[$field], $c_type);
|
|
||||||
|
|
||||||
$demarshal_code .= "\t_LIBGTOP_SEND_ptr = ".
|
|
||||||
"(char *) send_ptr + _LIBGTOP_SEND_offset;\n";
|
|
||||||
|
|
||||||
if ($typeinfo->{$type}->[2]) {
|
|
||||||
$demarshal_code .= sprintf ("\tmemcpy (&_LIBGTOP_TEMP_len, _LIBGTOP_SEND_ptr, sizeof (size_t));\n");
|
|
||||||
$demarshal_code .= sprintf
|
|
||||||
(qq[\t_LIBGTOP_DATA_len += _LIBGTOP_TEMP_len;\n]);
|
|
||||||
$demarshal_code .= sprintf
|
|
||||||
(qq[\tif (_LIBGTOP_DATA_len > data_size)\n\t\treturn -GLIBTOP_ERROR_DEMARSHAL_ERROR;\n]);
|
|
||||||
$demarshal_code .= sprintf
|
|
||||||
(qq[\t_LIBGTOP_DATA_offset += _LIBGTOP_TEMP_len;\n]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined $demarshal_funcs->{$type}) {
|
|
||||||
$demarshal_code .= $demarshal_funcs->{$type}->($c_type, $fields[$field], "\t");
|
|
||||||
} else {
|
|
||||||
$demarshal_code .= sprintf ("\tmemcpy (&_LIBGTOP_demarshal_%s, _LIBGTOP_SEND_ptr, %s);\n",
|
|
||||||
$fields[$field], "sizeof ($c_type)");
|
|
||||||
}
|
|
||||||
|
|
||||||
$demarshal_code .= "\t_LIBGTOP_SEND_offset += ";
|
|
||||||
if ($typeinfo->{$type}->[2]) {
|
|
||||||
$demarshal_code .= sprintf ("sizeof (size_t)");
|
|
||||||
} else {
|
|
||||||
$demarshal_code .= sprintf ("sizeof (%s)", $c_type);
|
|
||||||
}
|
|
||||||
$demarshal_code .= ";\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!($demarshal_code eq '')) {
|
|
||||||
$demarshal_code = sprintf (qq[\t/* demarshal start */\n%s\n],
|
|
||||||
$demarshal_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($line_fields[3] eq '') {
|
|
||||||
$call_code = sprintf
|
|
||||||
("\tretval = glibtop_get_%s_p (server%s);\n",
|
|
||||||
$feature, $call_param);
|
|
||||||
} elsif ($line_fields[3] eq 'array') {
|
|
||||||
$call_code = sprintf
|
|
||||||
("\tretval = glibtop_get_%s_p (server, &array%s);\n",
|
|
||||||
$feature, $call_param);
|
|
||||||
$local_var_decl_code .= sprintf (qq[\tglibtop_array array;\n]);
|
|
||||||
} elsif ($line_fields[3] =~ /^array/) {
|
|
||||||
$call_code = sprintf
|
|
||||||
("\tretval = glibtop_get_%s_p (server, &array, &%s%s);\n",
|
|
||||||
$feature, $feature, $call_param);
|
|
||||||
$local_var_decl_code .= sprintf (qq[\tglibtop_array array;\n]);
|
|
||||||
} else {
|
|
||||||
$call_code = sprintf
|
|
||||||
("\tretval = glibtop_get_%s_p (server, &%s%s);\n",
|
|
||||||
$feature, $feature, $call_param);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($orig_retval eq 'retval') {
|
|
||||||
$call_code .= sprintf
|
|
||||||
(qq[\tif (retval_ptr)\n\t\t*retval_ptr = retval;\n]);
|
|
||||||
} else {
|
|
||||||
$call_code .= sprintf
|
|
||||||
(qq[\tif (retval_ptr)\n\t\t*retval_ptr = server->glibtop_errno;\n]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$size_code .= sprintf
|
|
||||||
(qq[\tif (_LIBGTOP_SEND_len != send_size)\n\t\treturn -GLIBTOP_ERROR_DEMARSHAL_ERROR;\n\n]);
|
|
||||||
|
|
||||||
$size_code .= "\t/* recv size */\n";
|
|
||||||
$size_code .= "\t_LIBGTOP_RECV_len = 0;\n";
|
|
||||||
if ($line_fields[3] eq '') {
|
|
||||||
} elsif ($line_fields[3] eq 'array') {
|
|
||||||
$size_code .= "\t_LIBGTOP_RECV_len += sizeof (glibtop_array);\n";
|
|
||||||
} elsif ($line_fields[3] =~ /^array/) {
|
|
||||||
$size_code .= "\t_LIBGTOP_RECV_len += sizeof (glibtop_array);\n";
|
|
||||||
$size_code .= sprintf
|
|
||||||
(qq[\t_LIBGTOP_RECV_len += sizeof (glibtop_%s);\n], $feature);
|
|
||||||
} else {
|
|
||||||
$size_code .= sprintf
|
|
||||||
(qq[\t_LIBGTOP_RECV_len += sizeof (glibtop_%s);\n], $feature);
|
|
||||||
}
|
|
||||||
$size_code .= "\n";
|
|
||||||
|
|
||||||
$size_code .= "\t/* recv buffer */\n";
|
|
||||||
if ($line_fields[3] eq '') {
|
|
||||||
$size_code .= "\t_LIBGTOP_RECV_buf = NULL;\n";
|
|
||||||
} else {
|
|
||||||
$size_code .= "\t_LIBGTOP_RECV_buf = g_malloc (_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;
|
|
@@ -1,114 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "server.h"
|
|
||||||
|
|
||||||
void
|
|
||||||
do_output (int s, glibtop_response *resp, const void *recv_ptr,
|
|
||||||
const void *data_ptr)
|
|
||||||
{
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "Really writing %d bytes.\n",
|
|
||||||
sizeof (glibtop_response));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (s == 0) {
|
|
||||||
if (write (1, (const void *) resp, sizeof (glibtop_response)) < 0)
|
|
||||||
glibtop_warn_io ("write");
|
|
||||||
} else {
|
|
||||||
if (send (s, (const void *) resp, sizeof (glibtop_response), 0) < 0)
|
|
||||||
glibtop_warn_io ("send");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (resp->recv_size) {
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "Writing %ld bytes of data.\n",
|
|
||||||
(long) resp->recv_size);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (s == 0) {
|
|
||||||
if (write (1, recv_ptr, resp->recv_size) < 0)
|
|
||||||
glibtop_warn_io ("write");
|
|
||||||
} else {
|
|
||||||
if (send (s, recv_ptr, resp->recv_size, 0) < 0)
|
|
||||||
glibtop_warn_io ("send");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (resp->data_size) {
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "Writing %ld bytes of extra data.\n",
|
|
||||||
(long) resp->data_size);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (s == 0) {
|
|
||||||
if (write (1, data_ptr, resp->data_size) < 0)
|
|
||||||
glibtop_warn_io ("write");
|
|
||||||
} else {
|
|
||||||
if (send (s, data_ptr, resp->data_size, 0) < 0)
|
|
||||||
glibtop_warn_io ("send");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
do_read (int s, void *ptr, size_t total_size)
|
|
||||||
{
|
|
||||||
int nread;
|
|
||||||
char *tmp_ptr;
|
|
||||||
size_t already_read = 0, remaining = total_size;
|
|
||||||
|
|
||||||
while (already_read < total_size) {
|
|
||||||
if (s)
|
|
||||||
nread = recv (s, ptr, remaining, 0);
|
|
||||||
else
|
|
||||||
nread = read (0, ptr, remaining);
|
|
||||||
|
|
||||||
if ((already_read == 0) && (nread == 0)) {
|
|
||||||
glibtop_warn ("pid %d received eof.", getpid ());
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nread <= 0) {
|
|
||||||
glibtop_warn_io ("recv");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
already_read += nread;
|
|
||||||
remaining -= nread;
|
|
||||||
/* (char *) ptr += nread; */
|
|
||||||
tmp_ptr = ptr;
|
|
||||||
tmp_ptr += nread;
|
|
||||||
ptr = tmp_ptr;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "READ (%d): %d - %d - %d\n",
|
|
||||||
nread, already_read, remaining, total_size);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
return already_read;
|
|
||||||
}
|
|
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0"?> <!-- -*-xml-*- -->
|
|
||||||
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
|
|
||||||
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
|
|
||||||
|
|
||||||
<libgtop:Backend>
|
|
||||||
<libgtop:Name>glibtop-backend-server</libgtop:Name>
|
|
||||||
<libgtop:Location>
|
|
||||||
<libgtop:LibtoolName>libgtop_backend_server.la</libgtop:LibtoolName>
|
|
||||||
<libgtop:ShlibName>libgtop_backend_server.so</libgtop:ShlibName>
|
|
||||||
</libgtop:Location>
|
|
||||||
</libgtop:Backend>
|
|
||||||
|
|
||||||
</libgtop:Backends>
|
|
@@ -1,305 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
|
|
||||||
require 'c_types.pl';
|
|
||||||
|
|
||||||
$[ = 1; # set array base to 1
|
|
||||||
$, = ' '; # set output field separator
|
|
||||||
$\ = "\n"; # set output record separator
|
|
||||||
|
|
||||||
$always_use_temp_storage = 1;
|
|
||||||
|
|
||||||
sub toupper {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/a-z/A-Z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub tolower {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/A-Z/a-z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
print '/* marshal.c */';
|
|
||||||
print "/* This is a generated file. Please modify `marshal.pl' */";
|
|
||||||
print '';
|
|
||||||
|
|
||||||
print '#include <backend-server.h>';
|
|
||||||
print '';
|
|
||||||
print '#include <glibtop/sysdeps.h>';
|
|
||||||
print '#include <glibtop/union.h>';
|
|
||||||
print '';
|
|
||||||
print '#include "command.h"';
|
|
||||||
print '#include <glibtop/call-vector.h>';
|
|
||||||
print '';
|
|
||||||
|
|
||||||
$feature_count = 0;
|
|
||||||
|
|
||||||
while (<>) {
|
|
||||||
chop; # strip record separator
|
|
||||||
|
|
||||||
if (/^[^#]/) {
|
|
||||||
&output($_);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub output {
|
|
||||||
local($line) = @_;
|
|
||||||
@line_fields = split(/\|/, $line, 9999);
|
|
||||||
$retval = $line_fields[1];
|
|
||||||
$feature = $line_fields[2];
|
|
||||||
$param_def = $line_fields[4];
|
|
||||||
|
|
||||||
$orig = $feature;
|
|
||||||
$feature =~ s/^@//;
|
|
||||||
$space = $feature;
|
|
||||||
$space =~ s/./ /g;
|
|
||||||
|
|
||||||
$features{++$feature_count} = $orig;
|
|
||||||
return if $orig =~ /^@/;
|
|
||||||
|
|
||||||
$orig_retval = $retval;
|
|
||||||
if ($retval eq 'retval') {
|
|
||||||
$retval_param = '&retval';
|
|
||||||
$call_prefix = '';
|
|
||||||
$call_prefix_space = '';
|
|
||||||
$prefix = 'retval = ';
|
|
||||||
$prefix_space = ' ';
|
|
||||||
$retval = 'int';
|
|
||||||
}
|
|
||||||
elsif ($retval !~ /^void$/) {
|
|
||||||
$retval_param = 'NULL';
|
|
||||||
$prefix = 'retval = ';
|
|
||||||
$prefix_space = ' ';
|
|
||||||
$call_prefix = 'retval = ';
|
|
||||||
$call_prefix_space = ' ';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$retval_param = 'NULL';
|
|
||||||
$call_prefix = '';
|
|
||||||
$call_prefix_space = '';
|
|
||||||
$prefix = '';
|
|
||||||
$prefix_space = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
|
||||||
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
|
||||||
}
|
|
||||||
|
|
||||||
$need_temp_storage = $always_use_temp_storage;
|
|
||||||
$local_var_init_code = "\t/* variable initialization */\n";
|
|
||||||
$local_var_init_code .= "\t_LIBGTOP_SEND_len = 0;\n";
|
|
||||||
$local_var_init_code .= "\t_LIBGTOP_DATA_len = 0;\n";
|
|
||||||
$local_var_init_code .= "\t_LIBGTOP_SEND_offset = 0;\n";
|
|
||||||
$local_var_init_code .= "\t_LIBGTOP_SEND_ptr = ".
|
|
||||||
"(char *) _LIBGTOP_SEND_buf;\n";
|
|
||||||
$marshal_code = "\t/* marshal start */\n";
|
|
||||||
$marshal_code .= "\tmemset (_LIBGTOP_SEND_buf, 0, _LIBGTOP_SEND_len);\n";
|
|
||||||
$first_param_name = '';
|
|
||||||
$size_code = '';
|
|
||||||
|
|
||||||
$call_param = '';
|
|
||||||
$param_decl = '';
|
|
||||||
$need_temp_len = 0;
|
|
||||||
$nr_params = (@params = split(/:/, $param_def, 9999));
|
|
||||||
for ($param = 1; $param <= $nr_params; $param++) {
|
|
||||||
$list = $params[$param];
|
|
||||||
$type = $params[$param];
|
|
||||||
$type =~ s/\(.*//;
|
|
||||||
$list =~ s/^.*\(//;
|
|
||||||
$list =~ s/\)$//;
|
|
||||||
$count = (@fields = split(/,/, $list, 9999));
|
|
||||||
for ($field = 1; $field <= $count; $field++) {
|
|
||||||
my $c_type = $typeinfo->{$type}->[1];
|
|
||||||
|
|
||||||
if ($first_param_name eq '') {
|
|
||||||
$first_param_name = $fields[$field];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($typeinfo->{$type}->[2]) {
|
|
||||||
$need_temp_storage = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($param_decl eq '') {
|
|
||||||
$param_decl = ",\n " . $space . ' ';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$param_decl = $param_decl . ', ';
|
|
||||||
}
|
|
||||||
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
|
||||||
$call_param = $call_param . ', ' . $fields[$field];
|
|
||||||
|
|
||||||
$size_code .= "\t_LIBGTOP_SEND_len += ";
|
|
||||||
if ($typeinfo->{$type}->[2]) {
|
|
||||||
$size_code .= sprintf ("sizeof (size_t)");
|
|
||||||
} else {
|
|
||||||
$size_code .= sprintf ("sizeof (%s)", $c_type);
|
|
||||||
}
|
|
||||||
$size_code .= ";\n";
|
|
||||||
|
|
||||||
if (defined $sizeof_funcs->{$type}) {
|
|
||||||
$size_code .= "\t_LIBGTOP_DATA_len += ";
|
|
||||||
$size_code .= $sizeof_funcs->{$type}->($fields[$field]);
|
|
||||||
$size_code .= ";\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
$marshal_code .= "\t_LIBGTOP_SEND_ptr = ".
|
|
||||||
"(char *) _LIBGTOP_SEND_buf + _LIBGTOP_SEND_offset;\n";
|
|
||||||
|
|
||||||
if (defined $marshal_funcs->{$type}) {
|
|
||||||
$marshal_code .= $marshal_funcs->{$type}->($c_type, $fields[$field], "\t");
|
|
||||||
} else {
|
|
||||||
$marshal_code .= sprintf ("\tmemcpy (_LIBGTOP_SEND_ptr, %s, %s);\n",
|
|
||||||
'&'.$fields[$field], "sizeof ($c_type)");
|
|
||||||
}
|
|
||||||
|
|
||||||
$marshal_code .= "\t_LIBGTOP_SEND_offset += ";
|
|
||||||
if ($typeinfo->{$type}->[2]) {
|
|
||||||
$marshal_code .= sprintf ("sizeof (size_t)");
|
|
||||||
} else {
|
|
||||||
$marshal_code .= sprintf ("sizeof (%s)", $c_type);
|
|
||||||
}
|
|
||||||
$marshal_code .= ";\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$local_var_code = "";
|
|
||||||
$local_var_code .= "\tunsigned _LIBGTOP_SEND_offset, _LIBGTOP_SEND_len;\n";
|
|
||||||
$local_var_code .= "\tunsigned _LIBGTOP_DATA_len;\n";
|
|
||||||
if ($need_temp_len) {
|
|
||||||
$local_var_code .= "\tunsigned _LIBGTOP_SEND_temp_len;\n";
|
|
||||||
}
|
|
||||||
$local_var_code .= "\tvoid *_LIBGTOP_SEND_buf, *_LIBGTOP_DATA_buf;\n";
|
|
||||||
$local_var_code .= "\tchar *_LIBGTOP_SEND_ptr, *_LIBGTOP_DATA_ptr;\n";
|
|
||||||
if ($retval !~ /^void$/) {
|
|
||||||
$local_var_code .= sprintf ("\t%s retval = (%s) 0;\n",
|
|
||||||
$retval, $retval);
|
|
||||||
}
|
|
||||||
|
|
||||||
$total_code = '';
|
|
||||||
|
|
||||||
$send_buf_code = "\t/* send buffer */\n";
|
|
||||||
$send_buf_code .= "\t_LIBGTOP_SEND_buf = ";
|
|
||||||
if ($need_temp_storage) {
|
|
||||||
$send_buf_code .= "g_malloc (_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 '';
|
|
||||||
|
|
@@ -1,46 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <backend-server.h>
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_read_i (backend_server_private *priv, size_t size, void *buf)
|
|
||||||
{
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "LIBRARY: really reading %d bytes from %d.\n",
|
|
||||||
size, priv->input [0]);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = read (priv->input [0], buf, size);
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "LIBRARY: read %d bytes.\n", ret);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (ret < 0)
|
|
||||||
glibtop_error_io_r (priv->server, "read %d bytes", size);
|
|
||||||
}
|
|
@@ -1,58 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <backend-server.h>
|
|
||||||
|
|
||||||
void *
|
|
||||||
glibtop_read_data_i (backend_server_private *priv)
|
|
||||||
{
|
|
||||||
size_t size;
|
|
||||||
void *ptr;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "LIBRARY: reading %d data bytes.\n", sizeof (size_t));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = read (priv->input [0], (void *)&size, sizeof (size_t));
|
|
||||||
|
|
||||||
if (ret < 0)
|
|
||||||
glibtop_error_io_r (priv->server, "read data size");
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "LIBRARY: really reading %d data bytes (ret = %d).\n", size, ret);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!size) return NULL;
|
|
||||||
|
|
||||||
ptr = g_malloc (size);
|
|
||||||
|
|
||||||
ret = read (priv->input [0], ptr, size);
|
|
||||||
|
|
||||||
if (ret < 0)
|
|
||||||
glibtop_error_io_r (priv->server, "read data %d bytes");
|
|
||||||
|
|
||||||
return ptr;
|
|
||||||
}
|
|
@@ -1,189 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "server.h"
|
|
||||||
|
|
||||||
static glibtop _glibtop_global_server;
|
|
||||||
glibtop *glibtop_global_server = &_glibtop_global_server;
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
#include <sys/utsname.h>
|
|
||||||
|
|
||||||
const unsigned long glibtop_server_features =
|
|
||||||
GLIBTOP_SUID_CPU +
|
|
||||||
GLIBTOP_SUID_MEM +
|
|
||||||
GLIBTOP_SUID_SWAP +
|
|
||||||
GLIBTOP_SUID_UPTIME +
|
|
||||||
GLIBTOP_SUID_LOADAVG +
|
|
||||||
GLIBTOP_SUID_SHM_LIMITS +
|
|
||||||
GLIBTOP_SUID_MSG_LIMITS +
|
|
||||||
GLIBTOP_SUID_SEM_LIMITS +
|
|
||||||
GLIBTOP_SUID_PROCLIST +
|
|
||||||
GLIBTOP_SUID_PROC_STATE +
|
|
||||||
GLIBTOP_SUID_PROC_UID +
|
|
||||||
GLIBTOP_SUID_PROC_MEM +
|
|
||||||
GLIBTOP_SUID_PROC_TIME +
|
|
||||||
GLIBTOP_SUID_PROC_SIGNAL +
|
|
||||||
GLIBTOP_SUID_PROC_KERNEL +
|
|
||||||
GLIBTOP_SUID_PROC_SEGMENT +
|
|
||||||
GLIBTOP_SUID_PROC_ARGS +
|
|
||||||
GLIBTOP_SUID_PROC_MAP +
|
|
||||||
GLIBTOP_SUID_NETINFO +
|
|
||||||
GLIBTOP_SUID_NETLOAD +
|
|
||||||
GLIBTOP_SUID_INTERFACE_NAMES +
|
|
||||||
GLIBTOP_SUID_PPP;
|
|
||||||
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
struct utsname uts;
|
|
||||||
int uid, euid, gid, egid;
|
|
||||||
glibtop *server;
|
|
||||||
|
|
||||||
/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
|
|
||||||
|
|
||||||
uid = getuid (); euid = geteuid ();
|
|
||||||
gid = getgid (); egid = getegid ();
|
|
||||||
|
|
||||||
if (uname (&uts) < 0) _exit (1);
|
|
||||||
|
|
||||||
if (strcmp (uts.sysname, LIBGTOP_COMPILE_SYSTEM) ||
|
|
||||||
strcmp (uts.release, LIBGTOP_COMPILE_RELEASE) ||
|
|
||||||
strcmp (uts.machine, LIBGTOP_COMPILE_MACHINE)) {
|
|
||||||
fprintf (stderr, "Can only run on %s %s %s\n",
|
|
||||||
LIBGTOP_COMPILE_SYSTEM,
|
|
||||||
LIBGTOP_COMPILE_RELEASE,
|
|
||||||
LIBGTOP_COMPILE_MACHINE);
|
|
||||||
_exit (1);
|
|
||||||
}
|
|
||||||
|
|
||||||
server = glibtop_global_server;
|
|
||||||
|
|
||||||
if (!server->_priv)
|
|
||||||
server->_priv = g_malloc (sizeof (glibtop_server_private));
|
|
||||||
|
|
||||||
glibtop_init_p (server, 0, 0);
|
|
||||||
|
|
||||||
if (setreuid (euid, uid)) _exit (1);
|
|
||||||
|
|
||||||
if (setregid (egid, gid)) _exit (1);
|
|
||||||
|
|
||||||
/* !!! END OF SUID ROOT PART !!! */
|
|
||||||
|
|
||||||
handle_slave_connection (0, 0);
|
|
||||||
|
|
||||||
_exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
handle_slave_connection (int input, int output)
|
|
||||||
{
|
|
||||||
glibtop_command _cmnd, *cmnd = &_cmnd;
|
|
||||||
glibtop *server = glibtop_global_server;
|
|
||||||
|
|
||||||
/* glibtop_send_version_i (glibtop_global_server, output); */
|
|
||||||
|
|
||||||
while (do_read (input, cmnd, sizeof (glibtop_command))) {
|
|
||||||
size_t recv_size = 0, send_size = 0, recv_data_size = 0;
|
|
||||||
void *recv_ptr = NULL, *recv_data_ptr = NULL, *data_ptr = NULL;
|
|
||||||
char parameter [BUFSIZ];
|
|
||||||
int retval, func_retval;
|
|
||||||
glibtop_response resp;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "Slave %d received command "
|
|
||||||
"%ld from client.\n", getpid (), (long) cmnd->command);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (cmnd->send_size >= BUFSIZ)
|
|
||||||
glibtop_error ("Client sent %d bytes, but buffer is %d",
|
|
||||||
cmnd->send_size, BUFSIZ);
|
|
||||||
else if (cmnd->param_size >= BUFSIZ)
|
|
||||||
glibtop_error ("Client sent %d bytes, but buffer is %d",
|
|
||||||
cmnd->param_size, BUFSIZ);
|
|
||||||
|
|
||||||
memset (parameter, 0, sizeof (parameter));
|
|
||||||
|
|
||||||
if (cmnd->send_size) {
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "Client has %d bytes of data.\n",
|
|
||||||
cmnd->send_size);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
send_size = cmnd->send_size;
|
|
||||||
do_read (input, parameter, send_size);
|
|
||||||
} else if (cmnd->param_size) {
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "Client has %d bytes of parameter data.\n",
|
|
||||||
cmnd->param_size);
|
|
||||||
#endif
|
|
||||||
send_size = cmnd->param_size;
|
|
||||||
memcpy (parameter, cmnd->parameter, send_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cmnd->data_size) {
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "CLIENT has %d bytes of extra data for us.\n",
|
|
||||||
cmnd->data_size);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
data_ptr = g_malloc (cmnd->data_size);
|
|
||||||
do_read (input, data_ptr, cmnd->data_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
retval = glibtop_demarshal_func_i (server, NULL,
|
|
||||||
cmnd->command,
|
|
||||||
parameter, send_size,
|
|
||||||
data_ptr, cmnd->data_size,
|
|
||||||
&recv_ptr, &recv_size,
|
|
||||||
&recv_data_ptr, &recv_data_size,
|
|
||||||
&func_retval);
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "Retval %d / %d - %p - %d\n",
|
|
||||||
retval, func_retval, recv_ptr, recv_size);
|
|
||||||
|
|
||||||
if (recv_data_size) {
|
|
||||||
fprintf (stderr, "Returning %d bytes of data from %p.\n",
|
|
||||||
recv_data_size, recv_data_ptr);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
memset (&resp, 0, sizeof (glibtop_response));
|
|
||||||
|
|
||||||
resp.retval = retval;
|
|
||||||
resp.glibtop_errno = func_retval;
|
|
||||||
resp.recv_size = recv_size;
|
|
||||||
resp.data_size = recv_data_size;
|
|
||||||
|
|
||||||
do_output (output, &resp, recv_ptr, recv_data_ptr);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,84 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_DAEMON_H__
|
|
||||||
#define __GLIBTOP_DAEMON_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/error.h>
|
|
||||||
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/parameter.h>
|
|
||||||
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <syslog.h>
|
|
||||||
|
|
||||||
#include <glibtop/backend.h>
|
|
||||||
#include <glibtop-backend-private.h>
|
|
||||||
|
|
||||||
#include "command.h"
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
/* Some don't have LOG_PERROR */
|
|
||||||
#ifndef LOG_PERROR
|
|
||||||
#define LOG_PERROR 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define LIBGTOP_VERSION_STRING "Libgtop %s server version %s (%u,%u,%u,%u)."
|
|
||||||
|
|
||||||
#if defined(HAVE_GETDTABLESIZE)
|
|
||||||
#define GET_MAX_FDS() getdtablesize()
|
|
||||||
#else
|
|
||||||
/* Fallthrough case - please add other #elif cases above
|
|
||||||
for different OS's as necessary */
|
|
||||||
#define GET_MAX_FDS() 256
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
|
||||||
do_output (int s, glibtop_response *resp, const void *recv_ptr,
|
|
||||||
const void *data_ptr);
|
|
||||||
|
|
||||||
int
|
|
||||||
do_read (int s, void *ptr, size_t total_size);
|
|
||||||
|
|
||||||
void
|
|
||||||
handle_slave_connection (int input, int output);
|
|
||||||
|
|
||||||
int
|
|
||||||
glibtop_demarshal_func_i (glibtop *server, glibtop_backend *backend, unsigned command, const void *send_ptr, size_t send_size, void *data_ptr, size_t data_size, void **recv_buf_ptr, size_t *recv_size_ptr, void **recv_data_ptr, size_t *recv_data_size_ptr, int *retval_ptr);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_send_version_i (glibtop *server, int fd);
|
|
||||||
|
|
||||||
extern int enable_debug;
|
|
||||||
extern int verbose_output;
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
@@ -1,62 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "server.h"
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_send_version_i (glibtop *server, int fd)
|
|
||||||
{
|
|
||||||
char buffer [BUFSIZ];
|
|
||||||
size_t size;
|
|
||||||
|
|
||||||
sprintf (buffer, LIBGTOP_VERSION_STRING,
|
|
||||||
LIBGTOP_VERSION, LIBGTOP_SERVER_VERSION,
|
|
||||||
sizeof (glibtop_command),
|
|
||||||
sizeof (glibtop_response),
|
|
||||||
sizeof (glibtop_union),
|
|
||||||
sizeof (glibtop_sysdeps));
|
|
||||||
|
|
||||||
size = strlen (buffer) + 1;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "SERVER ID: |%s|\n", buffer);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (fd == 0) {
|
|
||||||
if (write (1, (const void *) &size, sizeof (size)) < 0)
|
|
||||||
glibtop_warn_io_r (server, "write");
|
|
||||||
} else {
|
|
||||||
if (send (fd, (const void *) &size, sizeof (size), 0) < 0)
|
|
||||||
glibtop_warn_io_r (server, "send");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fd == 0) {
|
|
||||||
if (write (1, (const void *) buffer, size) < 0)
|
|
||||||
glibtop_warn_io_r (server, "write");
|
|
||||||
} else {
|
|
||||||
if (send (fd, (const void *) buffer, size, 0) < 0)
|
|
||||||
glibtop_warn_io_r (server, "send");
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,43 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <backend-server.h>
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_write_i (backend_server_private *priv, size_t size, const void *buf)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (size == 0) return;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
fprintf (stderr, "LIBRARY: really writing %d bytes.\n", size);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = write (priv->output [1], buf, size);
|
|
||||||
|
|
||||||
if (ret < 0)
|
|
||||||
glibtop_error_io_r (priv->server, "write %d bytes", size);
|
|
||||||
}
|
|
@@ -1,7 +0,0 @@
|
|||||||
.deps
|
|
||||||
.libs
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
*.lo
|
|
||||||
*.la
|
|
||||||
marshal.c
|
|
@@ -1,68 +0,0 @@
|
|||||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
|
||||||
|
|
||||||
* backend-sysdeps.c: (_open_sysdeps): s/u_int64_t/guint64/
|
|
||||||
|
|
||||||
2003-10-20 Bastien Nocera <hadess@hadess.net>
|
|
||||||
|
|
||||||
* backend-sysdeps.h: fixed compilation
|
|
||||||
|
|
||||||
2000-11-26 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* glibtop-backend-private.h: Removed.
|
|
||||||
|
|
||||||
* backend-sysdeps.h: New files.
|
|
||||||
|
|
||||||
* backend-sysdeps.c (_open_sysdeps): Don't overwrite
|
|
||||||
`backend->_priv'.
|
|
||||||
|
|
||||||
2000-11-22 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am: Link libgtop_backend_sysdeps.la against
|
|
||||||
$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la and
|
|
||||||
$(top_builddir)/lib/libgtop_server.la.
|
|
||||||
|
|
||||||
* libgtop-sysdeps.backend: Removed the ExtraLibs section.
|
|
||||||
|
|
||||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* backend-sysdeps.c (LibGTopBackendInfo): Call this
|
|
||||||
`LibGTopBackendInfo_Sysdeps' when we don't use gmodule.
|
|
||||||
|
|
||||||
2000-02-22 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am: Only install the libs in $(LIBGTOP_BACKEND_DIR)
|
|
||||||
when we LIBGTOP_USE_GMODULE and in $(libdir) otherwise.
|
|
||||||
|
|
||||||
2000-01-22 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* libgtop-sysdeps.backend: Added "ExtraLibs" section to
|
|
||||||
load `-lgtop_sysdeps'.
|
|
||||||
|
|
||||||
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* Makefile.am: Install everything in $(LIBGTOP_BACKEND_DIR).
|
|
||||||
|
|
||||||
* libgtop-sysdeps.backend: New file.
|
|
||||||
|
|
||||||
* backend-sysdeps.c (glibtop_backend_sysdeps): Renamed to
|
|
||||||
`LibGTopBackendInfo'.
|
|
||||||
|
|
||||||
2000-01-12 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* marshal.pl: Create the `_glibtop_init_hook_s' as well.
|
|
||||||
|
|
||||||
* marshal.pl: Don't create code for things which are now
|
|
||||||
in the new `glibtop-backend-common' backend.
|
|
||||||
|
|
||||||
2000-01-02 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
* marshal.pl: New file. Automatically creates `marshal.c'.
|
|
||||||
* call-vector.c: Removed.
|
|
||||||
|
|
||||||
2000-01-01 Martin Baulig <martin@home-of-linux.org>
|
|
||||||
|
|
||||||
Initial version of the "glibtop-backend-sysdeps" backend.
|
|
||||||
|
|
||||||
* backend-sysdeps.c: New file.
|
|
||||||
* glibtop-backend-private.h: New file.
|
|
||||||
|
|
@@ -1,47 +0,0 @@
|
|||||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
INCLUDES = @INCLUDES@
|
|
||||||
|
|
||||||
backenddir = @LIBGTOP_BACKEND_DIR@
|
|
||||||
|
|
||||||
if LIBGTOP_USE_GMODULE
|
|
||||||
backendlibdir = $(backenddir)
|
|
||||||
else
|
|
||||||
backendlibdir = $(libdir)
|
|
||||||
endif
|
|
||||||
|
|
||||||
dynamic_ldflags = @libgtop_dynamic_ldflags@
|
|
||||||
|
|
||||||
backend_DATA = \
|
|
||||||
libgtop-sysdeps.backend
|
|
||||||
|
|
||||||
noinst_HEADERS = \
|
|
||||||
backend-sysdeps.h
|
|
||||||
|
|
||||||
backendlib_LTLIBRARIES = \
|
|
||||||
libgtop_backend_sysdeps.la
|
|
||||||
|
|
||||||
libgtop_backend_sysdeps_la_SOURCES = \
|
|
||||||
backend-sysdeps.c \
|
|
||||||
marshal.c
|
|
||||||
|
|
||||||
libgtop_backend_sysdeps_la_LDFLAGS = \
|
|
||||||
$(LT_VERSION_INFO) $(dynamic_ldflags)
|
|
||||||
|
|
||||||
libgtop_backend_sysdeps_la_LIBADD = \
|
|
||||||
$(top_builddir)/sysdeps/$(sysdeps_dir)/libgtop_sysdeps.la
|
|
||||||
$(top_builddir)/lib/libgtop_server.la
|
|
||||||
|
|
||||||
BUILT_SOURCES = \
|
|
||||||
marshal.c
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
marshal.pl \
|
|
||||||
libgtop-sysdeps.backend
|
|
||||||
|
|
||||||
CLEANFILES = $(BUILT_SOURCES)
|
|
||||||
|
|
||||||
marshal.c: marshal.pl $(top_builddir)/config.h $(top_srcdir)/features.def $(top_srcdir)/scripts/c_types.pl
|
|
||||||
$(PERL) -I $(top_srcdir)/scripts $(srcdir)/marshal.pl < $(top_srcdir)/features.def > tmp-t
|
|
||||||
mv tmp-t marshal.c
|
|
||||||
|
|
@@ -1,76 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <backend-sysdeps.h>
|
|
||||||
|
|
||||||
static int
|
|
||||||
_open_sysdeps (glibtop_server *, glibtop_backend *, guint64, const char **);
|
|
||||||
|
|
||||||
static int
|
|
||||||
_close_sysdeps (glibtop_server *, glibtop_backend *, void *);
|
|
||||||
|
|
||||||
extern glibtop_call_vector glibtop_backend_sysdeps_call_vector;
|
|
||||||
|
|
||||||
#ifdef LIBGTOP_USE_GMODULE
|
|
||||||
glibtop_backend_info LibGTopBackendInfo = {
|
|
||||||
"glibtop-backend-sysdeps", _open_sysdeps, _close_sysdeps,
|
|
||||||
&glibtop_backend_sysdeps_call_vector
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
glibtop_backend_info LibGTopBackendInfo_Sysdeps = {
|
|
||||||
"glibtop-backend-sysdeps", _open_sysdeps, _close_sysdeps,
|
|
||||||
&glibtop_backend_sysdeps_call_vector
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
|
||||||
_open_sysdeps (glibtop_server *server, glibtop_backend *backend,
|
|
||||||
guint64 features, const char **backend_args)
|
|
||||||
{
|
|
||||||
glibtop_init_func_t *init_fkt;
|
|
||||||
|
|
||||||
/* Do the initialization, but only if not already initialized. */
|
|
||||||
|
|
||||||
if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) {
|
|
||||||
glibtop_open_s (server, "glibtop", features, 0);
|
|
||||||
|
|
||||||
for (init_fkt = _glibtop_init_hook_s; *init_fkt; init_fkt++)
|
|
||||||
(*init_fkt) (server);
|
|
||||||
|
|
||||||
server->info->sysdeps.pointer_size = sizeof (void*)*8;
|
|
||||||
|
|
||||||
server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
_close_sysdeps (glibtop_server *server, glibtop_backend *backend,
|
|
||||||
void *closure)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,36 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_BACKEND_SYSDEPS_H__
|
|
||||||
#define __GLIBTOP_BACKEND_SYSDEPS_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/glibtop-backend.h>
|
|
||||||
#include <glibtop/glibtop-backend-info.h>
|
|
||||||
|
|
||||||
#endif
|
|
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0"?> <!-- -*-xml-*- -->
|
|
||||||
<!DOCTYPE libgtop:backends SYSTEM 'libgtop-backends.dtd'>
|
|
||||||
<libgtop:Backends xmlns:libgtop="http://www.home-of-linux.org/libgtop/1.1">
|
|
||||||
|
|
||||||
<libgtop:Backend>
|
|
||||||
<libgtop:Name>glibtop-backend-sysdeps</libgtop:Name>
|
|
||||||
<libgtop:Location>
|
|
||||||
<libgtop:LibtoolName>libgtop_backend_sysdeps.la</libgtop:LibtoolName>
|
|
||||||
<libgtop:ShlibName>libgtop_backend_sysdeps.so</libgtop:ShlibName>
|
|
||||||
</libgtop:Location>
|
|
||||||
</libgtop:Backend>
|
|
||||||
|
|
||||||
</libgtop:Backends>
|
|
@@ -1,195 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
|
|
||||||
require 'c_types.pl';
|
|
||||||
|
|
||||||
$[ = 1; # set array base to 1
|
|
||||||
$, = ' '; # set output field separator
|
|
||||||
$\ = "\n"; # set output record separator
|
|
||||||
|
|
||||||
$always_use_temp_storage = 1;
|
|
||||||
|
|
||||||
sub toupper {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/a-z/A-Z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub tolower {
|
|
||||||
local($_) = @_;
|
|
||||||
tr/A-Z/a-z/;
|
|
||||||
return $_;
|
|
||||||
}
|
|
||||||
|
|
||||||
print '/* marshal.c */';
|
|
||||||
print "/* This is a generated file. Please modify `marshal.pl' */";
|
|
||||||
print '';
|
|
||||||
|
|
||||||
print '#include <backend-sysdeps.h>';
|
|
||||||
print '';
|
|
||||||
print '#include <glibtop/sysdeps.h>';
|
|
||||||
print '#include <glibtop/union.h>';
|
|
||||||
print '';
|
|
||||||
print '#include <glibtop/call-vector.h>';
|
|
||||||
print '';
|
|
||||||
|
|
||||||
$feature_count = 0;
|
|
||||||
|
|
||||||
while (<>) {
|
|
||||||
chop; # strip record separator
|
|
||||||
|
|
||||||
if (/^[^#]/) {
|
|
||||||
&output($_);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub output {
|
|
||||||
local($line) = @_;
|
|
||||||
@line_fields = split(/\|/, $line, 9999);
|
|
||||||
$retval = $line_fields[1];
|
|
||||||
$feature = $line_fields[2];
|
|
||||||
$param_def = $line_fields[4];
|
|
||||||
|
|
||||||
$orig = $feature;
|
|
||||||
$feature =~ s/^@//;
|
|
||||||
$space = $feature;
|
|
||||||
$space =~ s/./ /g;
|
|
||||||
|
|
||||||
$features{++$feature_count} = $orig;
|
|
||||||
|
|
||||||
return if $orig =~ /^@/;
|
|
||||||
|
|
||||||
if ($retval eq 'retval') {
|
|
||||||
$retval_param = '&retval';
|
|
||||||
$call_prefix = '';
|
|
||||||
$call_prefix_space = '';
|
|
||||||
$prefix = 'retval = ';
|
|
||||||
$prefix_space = ' ';
|
|
||||||
$retval = 'int';
|
|
||||||
}
|
|
||||||
elsif ($retval !~ /^void$/) {
|
|
||||||
$retval_param = 'NULL';
|
|
||||||
$prefix = 'retval = ';
|
|
||||||
$prefix_space = ' ';
|
|
||||||
$call_prefix = 'retval = ';
|
|
||||||
$call_prefix_space = ' ';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$retval_param = 'NULL';
|
|
||||||
$call_prefix = '';
|
|
||||||
$call_prefix_space = '';
|
|
||||||
$prefix = '';
|
|
||||||
$prefix_space = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($retval =~ /^(array|pointer)\((.*)\)$/) {
|
|
||||||
$retval = ($2 eq 'string') ? 'char **' : "$2 *";
|
|
||||||
}
|
|
||||||
|
|
||||||
$need_temp_storage = $always_use_temp_storage;
|
|
||||||
$first_param_name = '';
|
|
||||||
|
|
||||||
$call_param = '';
|
|
||||||
$param_decl = '';
|
|
||||||
$need_temp_len = 0;
|
|
||||||
$nr_params = (@params = split(/:/, $param_def, 9999));
|
|
||||||
for ($param = 1; $param <= $nr_params; $param++) {
|
|
||||||
$list = $params[$param];
|
|
||||||
$type = $params[$param];
|
|
||||||
$type =~ s/\(.*//;
|
|
||||||
$list =~ s/^.*\(//;
|
|
||||||
$list =~ s/\)$//;
|
|
||||||
$count = (@fields = split(/,/, $list, 9999));
|
|
||||||
for ($field = 1; $field <= $count; $field++) {
|
|
||||||
my $c_type = $typeinfo->{$type}->[1];
|
|
||||||
|
|
||||||
if ($first_param_name eq '') {
|
|
||||||
$first_param_name = $fields[$field];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($typeinfo->{$type}->[2]) {
|
|
||||||
$need_temp_storage = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($param_decl eq '') {
|
|
||||||
$param_decl = ",\n " . $space . ' ';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$param_decl = $param_decl . ', ';
|
|
||||||
}
|
|
||||||
$param_decl = $param_decl . $c_type . ' ' . $fields[$field];
|
|
||||||
$call_param = $call_param . ', ' . $fields[$field];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($line_fields[3] eq '') {
|
|
||||||
$total_code = sprintf
|
|
||||||
("\treturn glibtop_get_%s_s (server%s);\n", $feature, $call_param);
|
|
||||||
} elsif ($line_fields[3] eq 'array') {
|
|
||||||
$total_code = sprintf
|
|
||||||
("\treturn glibtop_get_%s_s (server, array%s);\n", $feature, $call_param);
|
|
||||||
} elsif ($line_fields[3] =~ /^array/) {
|
|
||||||
$total_code = sprintf
|
|
||||||
("\treturn glibtop_get_%s_s (server, array, buf%s);\n", $feature, $call_param);
|
|
||||||
} else {
|
|
||||||
$total_code = sprintf
|
|
||||||
("\treturn glibtop_get_%s_s (server, buf%s);\n", $feature, $call_param);
|
|
||||||
}
|
|
||||||
|
|
||||||
$func_decl = 'static '.$retval."\n";
|
|
||||||
if ($line_fields[3] eq '') {
|
|
||||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
|
|
||||||
$feature, $param_decl);
|
|
||||||
} elsif ($line_fields[3] eq 'array') {
|
|
||||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
|
|
||||||
$feature, $param_decl);
|
|
||||||
} elsif ($line_fields[3] =~ /^array/) {
|
|
||||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
|
|
||||||
$feature, 'glibtop_'.$feature, $param_decl);
|
|
||||||
} else {
|
|
||||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
|
|
||||||
$feature, 'glibtop_'.$feature, $param_decl);
|
|
||||||
}
|
|
||||||
|
|
||||||
$total_code = sprintf ("%s{\n%s\n%s}\n", $func_decl, $total_code);
|
|
||||||
|
|
||||||
$total_code = sprintf ("#if (!GLIBTOP_SUID_%s)\n\n%s\n#endif /* not GLIBTOP_SUID_%s */\n\n",
|
|
||||||
&toupper($feature), $total_code,
|
|
||||||
&toupper($feature));
|
|
||||||
|
|
||||||
print $total_code;
|
|
||||||
}
|
|
||||||
|
|
||||||
$init_hook_code = '';
|
|
||||||
$call_vector_code = '';
|
|
||||||
for ($nr = 1; $nr <= $feature_count; $nr++) {
|
|
||||||
$feature = $features{$nr};
|
|
||||||
|
|
||||||
if ($feature =~ /^@/) {
|
|
||||||
$call_vector_code .= sprintf (qq[\tNULL,\n]);
|
|
||||||
} else {
|
|
||||||
$call_vector_code .= sprintf
|
|
||||||
(qq[\#if GLIBTOP_SUID_%s\n\tNULL,\n\#else\n\t_glibtop_get_%s_c,\n\#endif\n],
|
|
||||||
&toupper($feature), $feature);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!($feature =~ /^@/)) {
|
|
||||||
$init_hook_code .= sprintf
|
|
||||||
(qq[\#if !GLIBTOP_SUID_%s\n\tglibtop_init_%s_s,\n\#endif\n],
|
|
||||||
&toupper($feature), $feature);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$init_hook_code .= sprintf (qq[\tNULL\n]);
|
|
||||||
|
|
||||||
chop $init_hook_code;
|
|
||||||
chop $call_vector_code;
|
|
||||||
|
|
||||||
print 'glibtop_call_vector glibtop_backend_sysdeps_call_vector = {';
|
|
||||||
print $call_vector_code;
|
|
||||||
print '};';
|
|
||||||
print '';
|
|
||||||
|
|
||||||
print 'glibtop_init_func_t _glibtop_init_hook_s [] = {';
|
|
||||||
print $init_hook_code;
|
|
||||||
print '};';
|
|
||||||
print '';
|
|
||||||
|
|
92
configure.in
92
configure.in
@@ -7,13 +7,13 @@ AM_CONFIG_HEADER(config.h)
|
|||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
|
|
||||||
LIBGTOP_MAJOR_VERSION=2
|
LIBGTOP_MAJOR_VERSION=2
|
||||||
LIBGTOP_MINOR_VERSION=8
|
LIBGTOP_MINOR_VERSION=12
|
||||||
LIBGTOP_MICRO_VERSION=1
|
LIBGTOP_MICRO_VERSION=3
|
||||||
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)
|
||||||
|
|
||||||
dnl increment if the interface has additions, changes, removals.
|
dnl increment if the interface has additions, changes, removals.
|
||||||
LIBGTOP_CURRENT=4
|
LIBGTOP_CURRENT=6
|
||||||
|
|
||||||
dnl increment any time the source changes; set to
|
dnl increment any time the source changes; set to
|
||||||
dnl 0 if you increment CURRENT
|
dnl 0 if you increment CURRENT
|
||||||
@@ -22,7 +22,7 @@ LIBGTOP_REVISION=0
|
|||||||
dnl increment if any interfaces have been added; set to 0
|
dnl increment if any interfaces have been added; set to 0
|
||||||
dnl if any interfaces have been removed. removal has
|
dnl if any interfaces have been removed. removal has
|
||||||
dnl precedence over adding, so set to 0 if both happened.
|
dnl precedence over adding, so set to 0 if both happened.
|
||||||
LIBGTOP_AGE=0
|
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.
|
||||||
@@ -112,29 +112,7 @@ if test x$build_inodedb = xyes ; then
|
|||||||
AC_DEFINE(GLIBTOP_INODEDB)
|
AC_DEFINE(GLIBTOP_INODEDB)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_DEFINE(GLIBTOP_NAMES)
|
GLIB_REQUIRED=2.6.0
|
||||||
|
|
||||||
if test x$libgtop_smp = xyes ; then
|
|
||||||
smp_examples='smp'
|
|
||||||
smp_static_examples='smp_static'
|
|
||||||
else
|
|
||||||
smp_examples=
|
|
||||||
smp_static_examples=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$enable_static" != xno; then
|
|
||||||
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $smp_static_examples pprint_static procargs_static df_static"
|
|
||||||
else
|
|
||||||
static_targets=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
|
|
||||||
AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes)
|
|
||||||
|
|
||||||
AC_SUBST(static_targets)
|
|
||||||
AC_SUBST(smp_examples)
|
|
||||||
|
|
||||||
GLIB_REQUIRED=2.4.0
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
|
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
|
||||||
AC_SUBST(GLIB_CFLAGS)
|
AC_SUBST(GLIB_CFLAGS)
|
||||||
@@ -196,28 +174,33 @@ AH_TEMPLATE(HAVE_VMGETINFO, [Define to 1 if you have the 'vmgetinfo' function in
|
|||||||
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
|
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
|
||||||
|
|
||||||
dnl Solaris
|
dnl Solaris
|
||||||
AC_CHECK_LIB(kstat, kstat_open)
|
case "$host_os" in
|
||||||
AC_CHECK_FUNCS(getloadavg swapctl)
|
solaris*)
|
||||||
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
|
AC_CHECK_LIB(kstat, kstat_open)
|
||||||
|
AC_CHECK_FUNCS(getloadavg swapctl)
|
||||||
|
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
|
||||||
|
|
||||||
dnl Some versions of Solaris require -lelf for -lkvm
|
|
||||||
AC_CHECK_LIB(kvm, kvm_open,[
|
dnl Some versions of Solaris require -lelf for -lkvm
|
||||||
LIBS="-lkvm $LIBS"
|
AC_CHECK_LIB(kvm, kvm_open,[
|
||||||
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
|
LIBS="-lkvm $LIBS"
|
||||||
AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
|
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
|
||||||
[ac_save_LIBS="$LIBS"
|
AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
|
||||||
LIBS="-lkvm -lelf $LIBS"
|
[ac_save_LIBS="$LIBS"
|
||||||
AC_TRY_LINK([char kvm_open();], [kvm_open()],
|
LIBS="-lkvm -lelf $LIBS"
|
||||||
ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
|
AC_TRY_LINK([char kvm_open();], [kvm_open()],
|
||||||
LIBS="$ac_save_LIBS"
|
ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
|
||||||
])
|
LIBS="$ac_save_LIBS"
|
||||||
if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
|
])
|
||||||
AC_MSG_RESULT(yes)
|
if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
|
||||||
LIBS="-lkvm -lelf $LIBS"
|
AC_MSG_RESULT(yes)
|
||||||
else
|
LIBS="-lkvm -lelf $LIBS"
|
||||||
AC_MSG_RESULT(no)
|
else
|
||||||
fi
|
AC_MSG_RESULT(no)
|
||||||
])
|
fi
|
||||||
|
])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
dnl For DEC OSF1
|
dnl For DEC OSF1
|
||||||
AC_CHECK_LIB(mach, vm_statistics)
|
AC_CHECK_LIB(mach, vm_statistics)
|
||||||
@@ -255,7 +238,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)
|
||||||
|
|
||||||
ALL_LINGUAS="am ar az be bg bn bs 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 mi mk ml mn ms nb 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 bn bs ca cs cy da de dz el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu id it ja ko ku ky lt lv mi mk ml mn ms nb ne nl nn no or pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sv ta th tr uk vi xh zh_CN zh_TW"
|
||||||
|
|
||||||
GETTEXT_PACKAGE=libgtop-2.0
|
GETTEXT_PACKAGE=libgtop-2.0
|
||||||
AC_SUBST(GETTEXT_PACKAGE)
|
AC_SUBST(GETTEXT_PACKAGE)
|
||||||
@@ -338,12 +321,8 @@ fi
|
|||||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
|
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
|
||||||
|
|
||||||
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
||||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS"
|
|
||||||
|
|
||||||
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
LIBGTOP_LIBS="$LIBGTOP_LIBS"
|
||||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_NAMES_LIBS"
|
|
||||||
|
|
||||||
LIBGTOP_NAMES_INCS="$LIBGTOP_INCS -DGLIBTOP_NAMES"
|
|
||||||
|
|
||||||
machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir"
|
machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir"
|
||||||
|
|
||||||
@@ -361,7 +340,7 @@ if test "$GCC" = "yes" ; then
|
|||||||
$CFLAGS"
|
$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 $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"'\"'
|
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -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)
|
||||||
|
|
||||||
@@ -369,8 +348,6 @@ AC_SUBST(LIBGTOP_EXTRA_LIBS)
|
|||||||
AC_SUBST(GLIB_LIBS)
|
AC_SUBST(GLIB_LIBS)
|
||||||
AC_SUBST(LIBGTOP_LIBS)
|
AC_SUBST(LIBGTOP_LIBS)
|
||||||
AC_SUBST(LIBGTOP_INCS)
|
AC_SUBST(LIBGTOP_INCS)
|
||||||
AC_SUBST(LIBGTOP_NAMES_LIBS)
|
|
||||||
AC_SUBST(LIBGTOP_NAMES_INCS)
|
|
||||||
AC_SUBST(LIBGTOP_BINDIR)
|
AC_SUBST(LIBGTOP_BINDIR)
|
||||||
AC_SUBST(LIBGTOP_SERVER)
|
AC_SUBST(LIBGTOP_SERVER)
|
||||||
|
|
||||||
@@ -393,13 +370,11 @@ include/Makefile
|
|||||||
include/glibtop/Makefile
|
include/glibtop/Makefile
|
||||||
sysdeps/Makefile
|
sysdeps/Makefile
|
||||||
sysdeps/common/Makefile
|
sysdeps/common/Makefile
|
||||||
sysdeps/names/Makefile
|
|
||||||
sysdeps/stub/Makefile
|
sysdeps/stub/Makefile
|
||||||
sysdeps/stub_suid/Makefile
|
sysdeps/stub_suid/Makefile
|
||||||
sysdeps/sun4/Makefile
|
sysdeps/sun4/Makefile
|
||||||
sysdeps/osf1/Makefile
|
sysdeps/osf1/Makefile
|
||||||
sysdeps/linux/Makefile
|
sysdeps/linux/Makefile
|
||||||
sysdeps/kernel/Makefile
|
|
||||||
sysdeps/freebsd/Makefile
|
sysdeps/freebsd/Makefile
|
||||||
sysdeps/solaris/Makefile
|
sysdeps/solaris/Makefile
|
||||||
sysdeps/aix/Makefile
|
sysdeps/aix/Makefile
|
||||||
@@ -410,4 +385,5 @@ lib/Makefile
|
|||||||
examples/Makefile
|
examples/Makefile
|
||||||
doc/Makefile
|
doc/Makefile
|
||||||
libgtop-2.0.pc
|
libgtop-2.0.pc
|
||||||
|
libgtopconfig.h
|
||||||
])
|
])
|
||||||
|
@@ -1,10 +1,9 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* 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 2.0.
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
Contributed by Benoît Dejean <TazForEver@dlfp.org>, 2004.
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; either version 2 of the License,
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
3
debian/libgtop-dev.files.in
vendored
3
debian/libgtop-dev.files.in
vendored
@@ -1,17 +1,14 @@
|
|||||||
@PREFIX@/lib/libgtop.a
|
@PREFIX@/lib/libgtop.a
|
||||||
@PREFIX@/lib/libgtop_common.a
|
@PREFIX@/lib/libgtop_common.a
|
||||||
@PREFIX@/lib/libgtop_names.a
|
|
||||||
@PREFIX@/lib/libgtop_suid_common.a
|
@PREFIX@/lib/libgtop_suid_common.a
|
||||||
@PREFIX@/lib/libgtop_sysdeps.a
|
@PREFIX@/lib/libgtop_sysdeps.a
|
||||||
@PREFIX@/lib/libgtop.la
|
@PREFIX@/lib/libgtop.la
|
||||||
@PREFIX@/lib/libgtop_common.la
|
@PREFIX@/lib/libgtop_common.la
|
||||||
@PREFIX@/lib/libgtop_names.la
|
|
||||||
@PREFIX@/lib/libgtop_suid_common.la
|
@PREFIX@/lib/libgtop_suid_common.la
|
||||||
@PREFIX@/lib/libgtop_sysdeps.la
|
@PREFIX@/lib/libgtop_sysdeps.la
|
||||||
@PREFIX@/lib/libgtopConf.sh
|
@PREFIX@/lib/libgtopConf.sh
|
||||||
@PREFIX@/lib/libgtop.so
|
@PREFIX@/lib/libgtop.so
|
||||||
@PREFIX@/lib/libgtop_common.so
|
@PREFIX@/lib/libgtop_common.so
|
||||||
@PREFIX@/lib/libgtop_names.so
|
|
||||||
@PREFIX@/lib/libgtop_suid_common.so
|
@PREFIX@/lib/libgtop_suid_common.so
|
||||||
@PREFIX@/lib/libgtop_sysdeps.so
|
@PREFIX@/lib/libgtop_sysdeps.so
|
||||||
@PREFIX@/lib/libgtop-features.def
|
@PREFIX@/lib/libgtop-features.def
|
||||||
|
@@ -1,3 +1,15 @@
|
|||||||
|
2006-02-21 Benoît Dejean <benoit@placenet.org>
|
||||||
|
|
||||||
|
* reference.texi: Fixed reference to glibtop/procstate.h
|
||||||
|
|
||||||
|
2005-01-03 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* reference.texi: Updated.
|
||||||
|
|
||||||
|
2004-12-04 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* reference.texi: Updated.
|
||||||
|
|
||||||
2004-08-03 Benoît Dejean <tazforever@dlfp.org>
|
2004-08-03 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
* reference.texi: Updated.
|
* reference.texi: Updated.
|
||||||
|
@@ -16,8 +16,6 @@ auto-macros.texi: auto-macros.texi.in Makefile
|
|||||||
-e 's#\%LIBGTOP_EXTRA_LIBS\%#$(LIBGTOP_EXTRA_LIBS)#g' \
|
-e 's#\%LIBGTOP_EXTRA_LIBS\%#$(LIBGTOP_EXTRA_LIBS)#g' \
|
||||||
-e 's#\%LIBGTOP_LIBS\%#$(LIBGTOP_LIBS)#g' \
|
-e 's#\%LIBGTOP_LIBS\%#$(LIBGTOP_LIBS)#g' \
|
||||||
-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_INCS\%#$(LIBGTOP_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' \
|
||||||
|
@@ -56,18 +56,19 @@ struct _glibtop_cpu
|
|||||||
nice,
|
nice,
|
||||||
sys,
|
sys,
|
||||||
idle,
|
idle,
|
||||||
|
iowait,
|
||||||
|
irq,
|
||||||
|
softirq,
|
||||||
frequency,
|
frequency,
|
||||||
xcpu_total [GLIBTOP_NCPU],
|
xcpu_total [GLIBTOP_NCPU],
|
||||||
xcpu_user [GLIBTOP_NCPU],
|
xcpu_user [GLIBTOP_NCPU],
|
||||||
xcpu_nice [GLIBTOP_NCPU],
|
xcpu_nice [GLIBTOP_NCPU],
|
||||||
xcpu_sys [GLIBTOP_NCPU],
|
xcpu_sys [GLIBTOP_NCPU],
|
||||||
@ifset LIBGTOP-1-1
|
|
||||||
xcpu_idle [GLIBTOP_NCPU],
|
xcpu_idle [GLIBTOP_NCPU],
|
||||||
|
xcpu_iowait [GLIBTOP_NCPU],
|
||||||
|
xcpu_irq [GLIBTOP_NCPU],
|
||||||
|
xcpu_softirq [GLIBTOP_NCPU],
|
||||||
xcpu_flags;
|
xcpu_flags;
|
||||||
@end ifset
|
|
||||||
@ifclear LIBGTOP-1-1
|
|
||||||
xcpu_idle [GLIBTOP_NCPU];
|
|
||||||
@end ifclear
|
|
||||||
@};
|
@};
|
||||||
@end cartouche
|
@end cartouche
|
||||||
@end example
|
@end example
|
||||||
@@ -92,25 +93,33 @@ Number of clock ticks the system spent in system mode.
|
|||||||
@item idle
|
@item idle
|
||||||
Number of clock ticks the system spent in the idle task.
|
Number of clock ticks the system spent in the idle task.
|
||||||
|
|
||||||
|
@item iowait
|
||||||
|
Number of clock ticks the system spent waiting for I/O to complete.
|
||||||
|
|
||||||
|
@item irq
|
||||||
|
Number of clock ticks the system spent servicing interrupts.
|
||||||
|
|
||||||
|
@item softirq
|
||||||
|
Number of clock ticks the system spent servicing softirqs.
|
||||||
|
|
||||||
@item frequency
|
@item frequency
|
||||||
Tick frequency (default is 100).
|
Tick frequency (default is 100).
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
The @samp{xcpu_} values are for SMP systems - they are the same than
|
The @samp{xcpu_} values are for SMP systems - they are the same than
|
||||||
@code{total}, @code{user}, @code{nice}, @code{sys} and @code{idle}
|
@code{total}, @code{user}, @code{nice}, @code{sys}, @code{idle},
|
||||||
|
@code{iowait}, @code{irq} and @code{softirq}
|
||||||
except that they are arrays of @code{GLIBTOP_NCPU} (defined in
|
except that they are arrays of @code{GLIBTOP_NCPU} (defined in
|
||||||
@file{<glibtop/limits.h>}) elements and contain one value for each CPU
|
@file{<glibtop/cpu.h>}) elements and contain one value for each CPU
|
||||||
in the system.
|
in the system.
|
||||||
|
|
||||||
@ifset LIBGTOP-1-1
|
|
||||||
@table @code
|
@table @code
|
||||||
@item xcpu_flags
|
@item xcpu_flags
|
||||||
This is interpreted as a bit-field: on systems like Solaris, not all CPUs
|
This is interpreted as a bit-field: on systems like Solaris, not all CPUs
|
||||||
need to be running all the time, so we set the corresponding bit for each
|
need to be running all the time, so we set the corresponding bit for each
|
||||||
CPU that is currently running.
|
CPU that is currently running.
|
||||||
@end table
|
@end table
|
||||||
@end ifset
|
|
||||||
|
|
||||||
Please note that all of the cpu values are absolute values measured in
|
Please note that all of the cpu values are absolute values measured in
|
||||||
certain units (to get seconds, divide them by @code{frequency}) since system
|
certain units (to get seconds, divide them by @code{frequency}) since system
|
||||||
@@ -484,7 +493,7 @@ glibtop_get_proc_state_l (glibtop *server, glibtop_proc_state *buf,
|
|||||||
@end cartouche
|
@end cartouche
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
Declaration of @code{glibtop_proc_state} in @file{<glibtop/proc_state.h>}:
|
Declaration of @code{glibtop_proc_state} in @file{<glibtop/procstate.h>}:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
@cartouche
|
@cartouche
|
||||||
@@ -671,7 +680,7 @@ Standard unix nice level of process.
|
|||||||
Number of additional process groups.
|
Number of additional process groups.
|
||||||
@item groups
|
@item groups
|
||||||
Array of additional process groups@*
|
Array of additional process groups@*
|
||||||
(@code{GLIBTOP_MAX_GROUPS} is defined in @file{<glibtop/limits.h>}).
|
(@code{GLIBTOP_MAX_GROUPS} is defined in @file{<glibtop/procuid.h>}).
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@page
|
@page
|
||||||
@@ -1051,16 +1060,7 @@ struct _glibtop_proc_segment
|
|||||||
dirty_size,
|
dirty_size,
|
||||||
start_code,
|
start_code,
|
||||||
end_code,
|
end_code,
|
||||||
start_data,
|
start_stack;
|
||||||
end_data,
|
|
||||||
start_brk,
|
|
||||||
end_brk,
|
|
||||||
start_stack,
|
|
||||||
start_mmap,
|
|
||||||
arg_start,
|
|
||||||
arg_end,
|
|
||||||
env_start,
|
|
||||||
env_end;
|
|
||||||
@};
|
@};
|
||||||
@end cartouche
|
@end cartouche
|
||||||
@end example
|
@end example
|
||||||
@@ -1484,13 +1484,7 @@ struct _glibtop_mountentry
|
|||||||
@end cartouche
|
@end cartouche
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@ifset LIBGTOP-1-1
|
@code{GLIBTOP_MOUNTENTRY_LEN} is defined in @file{<glibtop.h>}.
|
||||||
@code{GLIBTOP_MOUNTENTRY_LEN} is defined in @file{<glibtop/limits.h>}.
|
|
||||||
@end ifset
|
|
||||||
@ifclear LIBGTOP-1-1
|
|
||||||
@code{GLIBTOP_MOUNTENTRY_LEN} is defined in @file{<glibtop.h>}
|
|
||||||
(this was moved to @file{<glibtop/limits.h>} in LibGTop 1.1.0).
|
|
||||||
@end ifclear
|
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@item devname
|
@item devname
|
||||||
@@ -1533,6 +1527,8 @@ struct _glibtop_fsusage
|
|||||||
files,
|
files,
|
||||||
ffree;
|
ffree;
|
||||||
guint32 block_size;
|
guint32 block_size;
|
||||||
|
guint64 read,
|
||||||
|
write;
|
||||||
@};
|
@};
|
||||||
@end cartouche
|
@end cartouche
|
||||||
@end example
|
@end example
|
||||||
@@ -1550,10 +1546,12 @@ Total file nodes.
|
|||||||
Free file nodes.
|
Free file nodes.
|
||||||
@item block_size
|
@item block_size
|
||||||
Block size in bytes.
|
Block size in bytes.
|
||||||
|
@item read
|
||||||
|
Total blocks read.
|
||||||
|
@item write
|
||||||
|
Total blocks written.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
Blocks are usually 512 bytes.
|
|
||||||
|
|
||||||
@page
|
@page
|
||||||
@node Library Functions, , Common Functions, Reference Manual
|
@node Library Functions, , Common Functions, Reference Manual
|
||||||
@section Library Functions
|
@section Library Functions
|
||||||
|
@@ -1,2 +0,0 @@
|
|||||||
Makefile.in
|
|
||||||
Makefile
|
|
@@ -1,9 +0,0 @@
|
|||||||
backenddir = @LIBGTOP_BACKEND_DIR@
|
|
||||||
|
|
||||||
backend_DATA = \
|
|
||||||
libgtop-backends.dtd \
|
|
||||||
libgtop-backend-info.dtd
|
|
||||||
|
|
||||||
EXTRA_DIST = |
|
|
||||||
$(backend_DATA)
|
|
||||||
|
|
@@ -1,23 +0,0 @@
|
|||||||
<!ELEMENT BackendInfo (name,description?,comments?,authors,legalnotice)>
|
|
||||||
<!ELEMENT name (short_name,long_name?)>
|
|
||||||
<!ELEMENT short_name (#PCDATA)>
|
|
||||||
<!ELEMENT long_name (#PCDATA)>
|
|
||||||
|
|
||||||
<!ELEMENT description (#PCDATA)>
|
|
||||||
|
|
||||||
<!ELEMENT authors (author)+>
|
|
||||||
<!ELEMENT author (author_name,author_email?)>
|
|
||||||
<!ELEMENT author_name (#PCDATA)>
|
|
||||||
<!ELEMENT author_email (#PCDATA)>
|
|
||||||
|
|
||||||
<!ELEMENT legalnotice (license,copyright?)>
|
|
||||||
<!ELEMENT license (#PCDATA)>
|
|
||||||
|
|
||||||
<!ELEMENT copyright (holder)+>
|
|
||||||
<!ELEMENT holder (holder_year?,holder_name,holder_email?)>
|
|
||||||
<!ELEMENT holder_year (#PCDATA)>
|
|
||||||
<!ELEMENT holder_name (#PCDATA)>
|
|
||||||
<!ELEMENT holder_email (#PCDATA)>
|
|
||||||
|
|
||||||
<!ELEMENT comments (comment)+>
|
|
||||||
<!ELEMENT comment (#PCDATA)>
|
|
@@ -1,11 +0,0 @@
|
|||||||
<!ELEMENT Backends (Backend)+>
|
|
||||||
|
|
||||||
<!ELEMENT Backend (Name,Location)>
|
|
||||||
<!ELEMENT Name (#PCDATA)>
|
|
||||||
|
|
||||||
<!ELEMENT Location (LibtoolName?,ShlibName,ExtraLibs?)>
|
|
||||||
<!ELEMENT LibtoolName (#PCDATA)>
|
|
||||||
<!ELEMENT ShlibName (#PCDATA)>
|
|
||||||
|
|
||||||
<!ELEMENT ExtraLibs (ExtraLib)+>
|
|
||||||
<!ELEMENT ExtraLib (LibtoolName?,ShlibName)>
|
|
@@ -20,4 +20,7 @@ procargs
|
|||||||
procargs_static
|
procargs_static
|
||||||
df
|
df
|
||||||
df_static
|
df_static
|
||||||
|
netlist
|
||||||
|
netlist_static
|
||||||
|
openfiles
|
||||||
|
openfiles_static
|
||||||
|
@@ -1,3 +1,31 @@
|
|||||||
|
2005-08-02 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* pprint.c: (pprint_get_cpu), (pprint_get_loadavg),
|
||||||
|
(pprint_get_mem), (pprint_get_msg_limits), (pprint_get_netlist),
|
||||||
|
(pprint_get_swap), (pprint_get_uptime), (pprint_get_proc_kernel),
|
||||||
|
(main):
|
||||||
|
|
||||||
|
Added pprint_get_proc_kernel(pid).
|
||||||
|
Fixed prototypes.
|
||||||
|
|
||||||
|
2005-01-22 Benoît Dejean <TazForEver@dlfp.org>
|
||||||
|
|
||||||
|
* openfiles.c: (show_open_files): Updated.
|
||||||
|
|
||||||
|
2004-12-23 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* netload.c: (main):
|
||||||
|
* procmap.c: (main): s/glibtop_error/g_error/g
|
||||||
|
|
||||||
|
2004-11-15 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* netload.c: (hwaddress_format_for_display), (main): Updated.
|
||||||
|
|
||||||
|
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
|
* pprint.c: (pprint_get_fsusage), (pprint_get_mountlist),
|
||||||
|
(pprint_get_netload), (pprint_get_netlist), (main): Updated.
|
||||||
|
|
||||||
2004-09-25 Benoît Dejean <tazforever@dlfp.org>
|
2004-09-25 Benoît Dejean <tazforever@dlfp.org>
|
||||||
|
|
||||||
* pprint.c: (main): Re-added pprint_get_msg_limits()
|
* pprint.c: (main): Re-added pprint_get_msg_limits()
|
||||||
|
@@ -6,106 +6,45 @@ INCLUDES = @INCLUDES@
|
|||||||
|
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
|
|
||||||
noinst_PROGRAMS = first second pprint procargs df \
|
noinst_PROGRAMS = first second pprint procargs df netlist \
|
||||||
mountlist procmap netload sysdeps timings \
|
mountlist procmap netload sysdeps timings \
|
||||||
@static_targets@ @smp_examples@
|
openfiles smp
|
||||||
|
|
||||||
EXTRA_PROGRAMS = first_static second_static \
|
|
||||||
mountlist_static procmap_static \
|
|
||||||
third third_static smp smp_static \
|
|
||||||
netload_static sysdeps_static \
|
|
||||||
timings_static pprint_static procargs_static \
|
|
||||||
df_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
|
||||||
|
|
||||||
first_static_SOURCES = $(first_SOURCES)
|
|
||||||
first_static_LDADD = $(first_LDADD)
|
|
||||||
first_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
second_SOURCES = second.c
|
second_SOURCES = second.c
|
||||||
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
|
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
|
||||||
|
|
||||||
second_static_SOURCES = $(second_SOURCES)
|
|
||||||
second_static_LDADD = $(second_LDADD)
|
|
||||||
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
|
||||||
|
|
||||||
procmap_static_SOURCES = $(procmap_SOURCES)
|
|
||||||
procmap_static_LDADD = $(procmap_LDADD)
|
|
||||||
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
|
||||||
|
|
||||||
netload_static_SOURCES = $(netload_SOURCES)
|
|
||||||
netload_static_LDADD = $(netload_LDADD)
|
|
||||||
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
|
||||||
|
|
||||||
sysdeps_static_SOURCES = $(sysdeps_SOURCES)
|
|
||||||
sysdeps_static_LDADD = $(sysdeps_LDADD)
|
|
||||||
sysdeps_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
third_names_LIBS = $(top_builddir)/sysdeps/names/libgtop_names-2.0.la
|
|
||||||
|
|
||||||
third_SOURCES = third.c
|
|
||||||
third_LDADD = $(third_names_LIBS) \
|
|
||||||
$(top_builddir)/lib/libgtop-2.0.la \
|
|
||||||
@INTLLIBS@
|
|
||||||
|
|
||||||
third_static_SOURCES = $(third_SOURCES)
|
|
||||||
third_static_LDADD = $(third_LDADD)
|
|
||||||
third_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
mountlist_SOURCES = mountlist.c
|
mountlist_SOURCES = mountlist.c
|
||||||
mountlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
mountlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
|
|
||||||
mountlist_static_SOURCES= $(mountlist_SOURCES)
|
|
||||||
mountlist_static_LDADD = $(mountlist_LDADD)
|
|
||||||
mountlist_static_LDFLAGS= -static
|
|
||||||
|
|
||||||
|
|
||||||
smp_SOURCES = smp.c
|
smp_SOURCES = smp.c
|
||||||
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
|
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
|
||||||
|
|
||||||
smp_static_SOURCES = $(smp_SOURCES)
|
|
||||||
smp_static_LDADD = $(smp_LDADD)
|
|
||||||
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
|
||||||
|
|
||||||
timings_static_SOURCES = $(timings_SOURCES)
|
|
||||||
timings_static_LDADD = $(timings_LDADD)
|
|
||||||
timings_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
|
|
||||||
pprint_SOURCES = pprint.c
|
pprint_SOURCES = pprint.c
|
||||||
pprint_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
pprint_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
|
|
||||||
pprint_static_SOURCES = $(pprint_SOURCES)
|
|
||||||
pprint_static_LDADD = $(pprint_LDADD)
|
|
||||||
pprint_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
|
|
||||||
procargs_SOURCES = procargs.c
|
procargs_SOURCES = procargs.c
|
||||||
procargs_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
procargs_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
|
|
||||||
procargs_static_SOURCES = $(procargs_SOURCES)
|
|
||||||
procargs_static_LDADD = $(procargs_LDADD)
|
|
||||||
procargs_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
|
|
||||||
df_SOURCES = df.c
|
df_SOURCES = df.c
|
||||||
df_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
df_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
|
|
||||||
df_static_SOURCES = $(df_SOURCES)
|
netlist_SOURCES = netlist.c
|
||||||
df_static_LDADD = $(df_LDADD)
|
netlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
df_static_LDFLAGS = -static
|
|
||||||
|
|
||||||
|
openfiles_SOURCES = openfiles.c
|
||||||
|
openfiles_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||||
|
@@ -1,11 +1,6 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
/* Copyright (C) 2004 Benoît Dejean
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 2.0.
|
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
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
@@ -23,12 +18,29 @@
|
|||||||
Boston, MA 02111-1307, USA.
|
Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __GLIBTOP_CLIENT_PRIVATE_H__
|
#include <stdio.h>
|
||||||
#define __GLIBTOP_CLIENT_PRIVATE_H__
|
|
||||||
|
|
||||||
struct _glibtop_client_private
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/netlist.h>
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char *argv [])
|
||||||
{
|
{
|
||||||
GSList *backend_list;
|
glibtop_netlist buf;
|
||||||
};
|
char **devices;
|
||||||
|
guint32 i;
|
||||||
|
|
||||||
#endif
|
glibtop_init();
|
||||||
|
|
||||||
|
devices = glibtop_get_netlist(&buf);
|
||||||
|
|
||||||
|
for(i = 0; i < buf.number; ++i)
|
||||||
|
{
|
||||||
|
printf("net device '%s'\n", devices[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_strfreev(devices);
|
||||||
|
|
||||||
|
glibtop_close();
|
||||||
|
return 0;
|
||||||
|
}
|
@@ -40,6 +40,24 @@
|
|||||||
#define PROFILE_COUNT 1
|
#define PROFILE_COUNT 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
static char* hwaddress_format_for_display(glibtop_netload *buf)
|
||||||
|
{
|
||||||
|
unsigned i;
|
||||||
|
GString *repr = g_string_new("");
|
||||||
|
char *str;
|
||||||
|
|
||||||
|
for(i = 0; i < sizeof buf->hwaddress; ++i)
|
||||||
|
g_string_append_printf(repr, "%02X:",
|
||||||
|
(unsigned) ((char*)buf->hwaddress)[i]);
|
||||||
|
|
||||||
|
repr->str [ repr->len - 1] = ' ';
|
||||||
|
str = g_string_free(repr, FALSE);
|
||||||
|
g_strstrip(str);
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char *argv [])
|
main (int argc, char *argv [])
|
||||||
{
|
{
|
||||||
@@ -47,6 +65,8 @@ main (int argc, char *argv [])
|
|||||||
unsigned method, count, port;
|
unsigned method, count, port;
|
||||||
struct in_addr addr, subnet;
|
struct in_addr addr, subnet;
|
||||||
char *address_string, *subnet_string;
|
char *address_string, *subnet_string;
|
||||||
|
char address6_string[INET6_ADDRSTRLEN], prefix6_string[INET6_ADDRSTRLEN];
|
||||||
|
char *hwaddress_string;
|
||||||
char buffer [BUFSIZ];
|
char buffer [BUFSIZ];
|
||||||
|
|
||||||
count = PROFILE_COUNT;
|
count = PROFILE_COUNT;
|
||||||
@@ -76,7 +96,7 @@ main (int argc, char *argv [])
|
|||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
glibtop_init_r (&glibtop_global_server, 0, 0);
|
||||||
|
|
||||||
if (argc != 2)
|
if (argc != 2)
|
||||||
glibtop_error ("Usage: %s interface", argv [0]);
|
g_error ("Usage: %s interface", argv [0]);
|
||||||
|
|
||||||
glibtop_get_netload (&netload, argv [1]);
|
glibtop_get_netload (&netload, argv [1]);
|
||||||
|
|
||||||
@@ -86,36 +106,50 @@ main (int argc, char *argv [])
|
|||||||
address_string = g_strdup (inet_ntoa (addr));
|
address_string = g_strdup (inet_ntoa (addr));
|
||||||
subnet_string = g_strdup (inet_ntoa (subnet));
|
subnet_string = g_strdup (inet_ntoa (subnet));
|
||||||
|
|
||||||
printf ("Network Load (0x%08lx):\n\n"
|
inet_ntop (AF_INET6, netload.address6, address6_string, INET6_ADDRSTRLEN);
|
||||||
"\tInterface Flags:\t0x%08lx\n"
|
inet_ntop (AF_INET6, netload.prefix6, prefix6_string, INET6_ADDRSTRLEN);
|
||||||
"\tAddress:\t\t0x%08lx - %s\n"
|
|
||||||
"\tSubnet:\t\t\t0x%08lx - %s\n\n"
|
hwaddress_string = hwaddress_format_for_display(&netload);
|
||||||
"\tMTU:\t\t\t%ld\n"
|
|
||||||
"\tCollisions:\t\t%ld\n\n"
|
printf ("Network Load (0x%016llx):\n\n"
|
||||||
"\tPackets In:\t\t%ld\n"
|
"\tInterface Flags:\t0x%016llx\n"
|
||||||
"\tPackets Out:\t\t%ld\n"
|
"\tAddress:\t\t0x%08x - %s\n"
|
||||||
"\tPackets Total:\t\t%ld\n\n"
|
"\tSubnet:\t\t\t0x%08x - %s\n\n"
|
||||||
"\tBytes In:\t\t%ld\n"
|
"\tMTU:\t\t\t%d\n"
|
||||||
"\tBytes Out:\t\t%ld\n"
|
"\tCollisions:\t\t%llu\n\n"
|
||||||
"\tBytes Total:\t\t%ld\n\n"
|
"\tPackets In:\t\t%llu\n"
|
||||||
"\tErrors In:\t\t%ld\n"
|
"\tPackets Out:\t\t%llu\n"
|
||||||
"\tErrors Out:\t\t%ld\n"
|
"\tPackets Total:\t\t%llu\n\n"
|
||||||
"\tErrors Total:\t\t%ld\n\n",
|
"\tBytes In:\t\t%llu\n"
|
||||||
(unsigned long) netload.flags,
|
"\tBytes Out:\t\t%llu\n"
|
||||||
(unsigned long) netload.if_flags,
|
"\tBytes Total:\t\t%llu\n\n"
|
||||||
(unsigned long) netload.address, address_string,
|
"\tErrors In:\t\t%llu\n"
|
||||||
(unsigned long) netload.subnet, subnet_string,
|
"\tErrors Out:\t\t%llu\n"
|
||||||
(unsigned long) netload.mtu,
|
"\tErrors Total:\t\t%llu\n\n"
|
||||||
(unsigned long) netload.collisions,
|
"\tAddress6:\t\t%s\n"
|
||||||
(unsigned long) netload.packets_in,
|
"\tPrefix6:\t\t%s\n"
|
||||||
(unsigned long) netload.packets_out,
|
"\tScope6:\t\t\t%#03x\n\n"
|
||||||
(unsigned long) netload.packets_total,
|
"\tHarware Address:\t%s\n\n",
|
||||||
(unsigned long) netload.bytes_in,
|
netload.flags,
|
||||||
(unsigned long) netload.bytes_out,
|
netload.if_flags,
|
||||||
(unsigned long) netload.bytes_total,
|
(guint32) netload.address, address_string,
|
||||||
(unsigned long) netload.errors_in,
|
(guint32) netload.subnet, subnet_string,
|
||||||
(unsigned long) netload.errors_out,
|
netload.mtu,
|
||||||
(unsigned long) netload.errors_total);
|
netload.collisions,
|
||||||
|
netload.packets_in,
|
||||||
|
netload.packets_out,
|
||||||
|
netload.packets_total,
|
||||||
|
netload.bytes_in,
|
||||||
|
netload.bytes_out,
|
||||||
|
netload.bytes_total,
|
||||||
|
netload.errors_in,
|
||||||
|
netload.errors_out,
|
||||||
|
netload.errors_total,
|
||||||
|
address6_string,
|
||||||
|
prefix6_string,
|
||||||
|
(int) netload.scope6,
|
||||||
|
hwaddress_string);
|
||||||
|
|
||||||
|
|
||||||
g_free (address_string);
|
g_free (address_string);
|
||||||
g_free (subnet_string);
|
g_free (subnet_string);
|
||||||
|
64
examples/openfiles.c
Normal file
64
examples/openfiles.c
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/procopenfiles.h>
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
static void show_open_files(pid_t pid)
|
||||||
|
{
|
||||||
|
glibtop_proc_open_files buf;
|
||||||
|
glibtop_open_files_entry *files;
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
|
files = glibtop_get_proc_open_files(&buf, pid);
|
||||||
|
|
||||||
|
printf("<%ld>\n", (long)pid);
|
||||||
|
|
||||||
|
for(i = 0; i < buf.number; ++i)
|
||||||
|
{
|
||||||
|
printf("\tfd = %d\t", files[i].fd);
|
||||||
|
|
||||||
|
switch(files[i].type)
|
||||||
|
{
|
||||||
|
case GLIBTOP_FILE_TYPE_FILE:
|
||||||
|
printf("file \"%s\"\n", files[i].info.file.name);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GLIBTOP_FILE_TYPE_PIPE:
|
||||||
|
printf("pipe\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GLIBTOP_FILE_TYPE_INETSOCKET:
|
||||||
|
printf("socket %s:%d\n", files[i].info.sock.dest_host, files[i].info.sock.dest_port);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GLIBTOP_FILE_TYPE_LOCALSOCKET:
|
||||||
|
printf("localsocket %s\n", files[i].info.localsock.name);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
putchar('\n');
|
||||||
|
|
||||||
|
g_free(files);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
glibtop_init();
|
||||||
|
|
||||||
|
show_open_files(getpid());
|
||||||
|
|
||||||
|
while(*++argv)
|
||||||
|
{
|
||||||
|
pid_t pid = strtol(*argv, NULL, 10);
|
||||||
|
show_open_files(pid);
|
||||||
|
}
|
||||||
|
|
||||||
|
glibtop_close();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <glibtop/union.h>
|
#include <glibtop/union.h>
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
@@ -9,7 +10,7 @@
|
|||||||
|
|
||||||
#define buf_offsetof(MEMBER) ((ptrdiff_t)&(buf.MEMBER) - (ptrdiff_t)&buf)
|
#define buf_offsetof(MEMBER) ((ptrdiff_t)&(buf.MEMBER) - (ptrdiff_t)&buf)
|
||||||
|
|
||||||
#define HEADER_PPRINT(FUNC) printf(#FUNC "\tsizeof = %lu B\n", \
|
#define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \
|
||||||
(unsigned long) sizeof buf)
|
(unsigned long) sizeof buf)
|
||||||
|
|
||||||
#define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \
|
#define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \
|
||||||
@@ -24,11 +25,11 @@ for(i = 0; i < (SIZE - 1); ++i) printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \
|
|||||||
printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \
|
printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
#define FOOTER_PPRINT() putchar('\n')
|
#define FOOTER_PPRINT() putchar('\n');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void pprint_get_cpu()
|
static void pprint_get_cpu(void)
|
||||||
{
|
{
|
||||||
glibtop_cpu buf;
|
glibtop_cpu buf;
|
||||||
|
|
||||||
@@ -41,12 +42,18 @@ static void pprint_get_cpu()
|
|||||||
PPRINT(nice, "%llu");
|
PPRINT(nice, "%llu");
|
||||||
PPRINT(sys, "%llu");
|
PPRINT(sys, "%llu");
|
||||||
PPRINT(idle, "%llu");
|
PPRINT(idle, "%llu");
|
||||||
|
PPRINT(iowait, "%llu");
|
||||||
|
PPRINT(irq, "%llu");
|
||||||
|
PPRINT(softirq, "%llu");
|
||||||
PPRINT(frequency, "%llu");
|
PPRINT(frequency, "%llu");
|
||||||
PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu");
|
PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu");
|
||||||
PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu");
|
PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu");
|
||||||
PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu");
|
PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu");
|
||||||
PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu");
|
PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu");
|
||||||
PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu");
|
PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu");
|
||||||
|
PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, "%llu");
|
||||||
|
PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, "%llu");
|
||||||
|
PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, "%llu");
|
||||||
PPRINT(xcpu_flags, "%llx");
|
PPRINT(xcpu_flags, "%llx");
|
||||||
FOOTER_PPRINT();
|
FOOTER_PPRINT();
|
||||||
}
|
}
|
||||||
@@ -60,6 +67,7 @@ static void pprint_get_fsusage(const char *mountpoint)
|
|||||||
glibtop_get_fsusage(&buf, mountpoint);
|
glibtop_get_fsusage(&buf, mountpoint);
|
||||||
|
|
||||||
HEADER_PPRINT(glibtop_get_fsusage);
|
HEADER_PPRINT(glibtop_get_fsusage);
|
||||||
|
printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint);
|
||||||
PPRINT(flags, "%#llx");
|
PPRINT(flags, "%#llx");
|
||||||
PPRINT(blocks, "%llu");
|
PPRINT(blocks, "%llu");
|
||||||
PPRINT(bfree, "%llu");
|
PPRINT(bfree, "%llu");
|
||||||
@@ -74,7 +82,7 @@ static void pprint_get_fsusage(const char *mountpoint)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void pprint_get_loadavg()
|
static void pprint_get_loadavg(void)
|
||||||
{
|
{
|
||||||
glibtop_loadavg buf;
|
glibtop_loadavg buf;
|
||||||
|
|
||||||
@@ -91,7 +99,7 @@ static void pprint_get_loadavg()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void pprint_get_mem()
|
static void pprint_get_mem(void)
|
||||||
{
|
{
|
||||||
glibtop_mem buf;
|
glibtop_mem buf;
|
||||||
|
|
||||||
@@ -121,6 +129,7 @@ static void pprint_get_mountlist(gboolean allfs)
|
|||||||
entries = glibtop_get_mountlist(&buf, allfs);
|
entries = glibtop_get_mountlist(&buf, allfs);
|
||||||
|
|
||||||
HEADER_PPRINT(glibtop_get_mountlist);
|
HEADER_PPRINT(glibtop_get_mountlist);
|
||||||
|
printf("glibtop_get_mountlist (allfs = %d)\n", allfs);
|
||||||
PPRINT(flags, "%#llx");
|
PPRINT(flags, "%#llx");
|
||||||
PPRINT(number, "%llu");
|
PPRINT(number, "%llu");
|
||||||
PPRINT(total, "%llu");
|
PPRINT(total, "%llu");
|
||||||
@@ -148,7 +157,7 @@ static void pprint_get_mountlist(gboolean allfs)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void pprint_get_msg_limits()
|
static void pprint_get_msg_limits(void)
|
||||||
{
|
{
|
||||||
glibtop_msg_limits buf;
|
glibtop_msg_limits buf;
|
||||||
|
|
||||||
@@ -175,12 +184,35 @@ static void pprint_get_netload(const char *iface)
|
|||||||
glibtop_get_netload(&buf, iface);
|
glibtop_get_netload(&buf, iface);
|
||||||
|
|
||||||
HEADER_PPRINT(glibtop_get_netload);
|
HEADER_PPRINT(glibtop_get_netload);
|
||||||
|
printf("glibtop_get_netload (iface = \"%s\")\n", iface);
|
||||||
|
PPRINT(flags, "%#llx");
|
||||||
FOOTER_PPRINT();
|
FOOTER_PPRINT();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void pprint_get_netlist(void)
|
||||||
|
{
|
||||||
|
glibtop_netlist buf;
|
||||||
|
char **devices;
|
||||||
|
guint32 i;
|
||||||
|
|
||||||
static void pprint_get_swap()
|
devices = glibtop_get_netlist(&buf);
|
||||||
|
|
||||||
|
HEADER_PPRINT(glibtop_get_netlist);
|
||||||
|
|
||||||
|
for(i = 0; i < buf.number; ++i)
|
||||||
|
{
|
||||||
|
printf("\t%s\n", devices[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
FOOTER_PPRINT();
|
||||||
|
|
||||||
|
g_strfreev(devices);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void pprint_get_swap(void)
|
||||||
{
|
{
|
||||||
glibtop_swap buf;
|
glibtop_swap buf;
|
||||||
|
|
||||||
@@ -198,7 +230,7 @@ static void pprint_get_swap()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void pprint_get_uptime()
|
static void pprint_get_uptime(void)
|
||||||
{
|
{
|
||||||
glibtop_uptime buf;
|
glibtop_uptime buf;
|
||||||
|
|
||||||
@@ -214,6 +246,25 @@ static void pprint_get_uptime()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void pprint_get_proc_kernel(pid_t pid)
|
||||||
|
{
|
||||||
|
glibtop_proc_kernel buf;
|
||||||
|
|
||||||
|
glibtop_get_proc_kernel(&buf, pid);
|
||||||
|
|
||||||
|
HEADER_PPRINT(glibtop_get_proc_kernel);
|
||||||
|
PPRINT(flags, "%#llx");
|
||||||
|
PPRINT(k_flags, "%llu");
|
||||||
|
PPRINT(min_flt, "%llu");
|
||||||
|
PPRINT(maj_flt, "%llu");
|
||||||
|
PPRINT(cmin_flt, "%llu");
|
||||||
|
PPRINT(cmaj_flt, "%llu");
|
||||||
|
FOOTER_PPRINT();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
glibtop_init();
|
glibtop_init();
|
||||||
@@ -231,15 +282,19 @@ int main()
|
|||||||
|
|
||||||
pprint_get_msg_limits();
|
pprint_get_msg_limits();
|
||||||
|
|
||||||
/* pprint_get_netload("lo"); */
|
|
||||||
|
|
||||||
|
|
||||||
pprint_get_swap();
|
pprint_get_swap();
|
||||||
|
|
||||||
|
pprint_get_netlist();
|
||||||
|
|
||||||
|
pprint_get_netload("eth0");
|
||||||
|
pprint_get_netload("ppp0");
|
||||||
|
pprint_get_netload("<unknown>");
|
||||||
/* pprint_get_sysinfo(); */
|
/* pprint_get_sysinfo(); */
|
||||||
|
|
||||||
pprint_get_uptime();
|
pprint_get_uptime();
|
||||||
|
|
||||||
|
pprint_get_proc_kernel(getpid());
|
||||||
|
|
||||||
glibtop_close();
|
glibtop_close();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -83,7 +83,7 @@ main (int argc, char *argv [])
|
|||||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
glibtop_init_r (&glibtop_global_server, 0, 0);
|
||||||
|
|
||||||
if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
|
if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
|
||||||
glibtop_error ("Usage: %s pid", argv [0]);
|
g_error ("Usage: %s pid", argv [0]);
|
||||||
|
|
||||||
#ifdef GLIBTOP_INODEDB
|
#ifdef GLIBTOP_INODEDB
|
||||||
inodedb = glibtop_inodedb_open (0, 0);
|
inodedb = glibtop_inodedb_open (0, 0);
|
||||||
|
@@ -31,8 +31,6 @@
|
|||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/cpu.h>
|
#include <glibtop/cpu.h>
|
||||||
|
|
||||||
#include "libgtop-i18n.h"
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char *argv [])
|
main (int argc, char *argv [])
|
||||||
{
|
{
|
||||||
@@ -44,10 +42,6 @@ main (int argc, char *argv [])
|
|||||||
char separator [BUFSIZ], buffer [BUFSIZ];
|
char separator [BUFSIZ], buffer [BUFSIZ];
|
||||||
int ncpu, i;
|
int ncpu, i;
|
||||||
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (GETTEXT_PACKAGE);
|
|
||||||
|
|
||||||
glibtop_init();
|
glibtop_init();
|
||||||
|
|
||||||
glibtop_get_cpu (&cpu);
|
glibtop_get_cpu (&cpu);
|
||||||
@@ -73,16 +67,16 @@ main (int argc, char *argv [])
|
|||||||
memset (separator, '-', 91);
|
memset (separator, '-', 91);
|
||||||
separator [92] = '\0';
|
separator [92] = '\0';
|
||||||
|
|
||||||
sprintf (buffer, _("Ticks (%ld per second):"), frequency);
|
sprintf (buffer, "Ticks (%ld per second):", frequency);
|
||||||
|
|
||||||
printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer,
|
printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer,
|
||||||
_("Total"), _("User"), _("Nice"), _("Sys"), _("Idle"), separator);
|
"Total", "User", "Nice", "Sys", "Idle", separator);
|
||||||
|
|
||||||
printf (_("CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n"),
|
printf ("CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n",
|
||||||
(unsigned long) cpu.flags, total, user, nice, sys, idle);
|
(unsigned long) cpu.flags, total, user, nice, sys, idle);
|
||||||
|
|
||||||
for (i = 0; i < glibtop_global_server->ncpu; i++) {
|
for (i = 0; i < glibtop_global_server->ncpu; i++) {
|
||||||
printf (_("CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"), i,
|
printf ("CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n", i,
|
||||||
(unsigned long) cpu.flags,
|
(unsigned long) cpu.flags,
|
||||||
(unsigned long) cpu.xcpu_total [i],
|
(unsigned long) cpu.xcpu_total [i],
|
||||||
(unsigned long) cpu.xcpu_user [i],
|
(unsigned long) cpu.xcpu_user [i],
|
||||||
@@ -99,11 +93,11 @@ main (int argc, char *argv [])
|
|||||||
|
|
||||||
printf ("%s\n\n\n", separator);
|
printf ("%s\n\n\n", separator);
|
||||||
|
|
||||||
printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", _("Percent:"),
|
printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", "Percent:",
|
||||||
_("Total (%)"), _("User (%)"), _("Nice (%)"), _("Sys (%)"),
|
"Total (%)", "User (%)", "Nice (%)", "Sys (%)",
|
||||||
_("Idle (%)"), separator);
|
"Idle (%)", separator);
|
||||||
|
|
||||||
printf (_("CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n"),
|
printf ("CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n",
|
||||||
(unsigned long) cpu.flags, (double) total * 100.0 / total,
|
(unsigned long) cpu.flags, (double) total * 100.0 / total,
|
||||||
(double) user * 100.0 / total,
|
(double) user * 100.0 / total,
|
||||||
(double) nice * 100.0 / total,
|
(double) nice * 100.0 / total,
|
||||||
@@ -119,13 +113,13 @@ main (int argc, char *argv [])
|
|||||||
p_sys = ((double) cpu.xcpu_sys [i]) * 100.0 / sys;
|
p_sys = ((double) cpu.xcpu_sys [i]) * 100.0 / sys;
|
||||||
p_idle = ((double) cpu.xcpu_idle [i]) * 100.0 / idle;
|
p_idle = ((double) cpu.xcpu_idle [i]) * 100.0 / idle;
|
||||||
|
|
||||||
printf (_("CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"),
|
printf ("CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n",
|
||||||
i, (unsigned long) cpu.flags, p_total, p_user, p_nice,
|
i, (unsigned long) cpu.flags, p_total, p_user, p_nice,
|
||||||
p_sys, p_idle);
|
p_sys, p_idle);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf ("%s\n%-26s %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", separator,
|
printf ("%s\n%-26s %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", separator,
|
||||||
_("Spin:"), s_total * 100.0 / total, s_user * 100.0 / user,
|
"Spin:", s_total * 100.0 / total, s_user * 100.0 / user,
|
||||||
s_nice * 100.0 / nice, s_sys * 100.0 / sys, s_idle * 100.0 / idle);
|
s_nice * 100.0 / nice, s_sys * 100.0 / sys, s_idle * 100.0 / idle);
|
||||||
|
|
||||||
exit (0);
|
exit (0);
|
||||||
|
@@ -1,58 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
#include <libintl.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
|
|
||||||
#include <glibtop/open.h>
|
|
||||||
#include <glibtop/close.h>
|
|
||||||
|
|
||||||
#include <glibtop/union.h>
|
|
||||||
#include <glibtop/sysdeps.h>
|
|
||||||
|
|
||||||
void main_prog(int argc, char *argv[]);
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
setlocale (LC_ALL, "");
|
|
||||||
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
|
|
||||||
textdomain (GETTEXT_PACKAGE);
|
|
||||||
|
|
||||||
gh_enter (argc, argv, main_prog);
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
main_prog (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
glibtop_boot_guile ();
|
|
||||||
#ifdef GLIBTOP_GUILE_NAMES
|
|
||||||
glibtop_boot_guile_names ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
gh_repl (argc, argv);
|
|
||||||
}
|
|
@@ -1,4 +1,4 @@
|
|||||||
void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4])
|
void|cpu|ulong(total,user,nice,sys,idle,iowait,irq,softirq,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4],xcpu_iowait[4],xcpu_irq[4],xcpu_softirq[4])
|
||||||
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
|
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
|
||||||
void|swap|ulong(total,used,free,pagein,pageout)
|
void|swap|ulong(total,used,free,pagein,pageout)
|
||||||
void|uptime|double(uptime,idletime)
|
void|uptime|double(uptime,idletime)
|
||||||
@@ -16,7 +16,10 @@ void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_e
|
|||||||
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid)
|
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid)
|
||||||
char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len)
|
char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len)
|
||||||
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
|
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
|
||||||
|
glibtop_open_files_entry *|proc_open_files|ulong(number)|pid_t(pid)
|
||||||
glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs)
|
glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs)
|
||||||
void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir
|
void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir
|
||||||
void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface
|
void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface
|
||||||
void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device)
|
void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device)
|
||||||
|
char **|netlist|unsigned(number)
|
||||||
|
|
||||||
|
27
glibtop.h
27
glibtop.h
@@ -26,11 +26,31 @@
|
|||||||
|
|
||||||
typedef struct _glibtop glibtop;
|
typedef struct _glibtop glibtop;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LIBGTOP_CHECK_VERSION
|
||||||
|
* @major: Major version number
|
||||||
|
* @minor: Minor version number
|
||||||
|
* @micro: Micro version number
|
||||||
|
*
|
||||||
|
* Checks if the version given is compatable with this version of the
|
||||||
|
* library. For example, LIBGTOP_CHECK_VERSION(1.2.3) would return TRUE
|
||||||
|
* if the version is 1.2.5, and FALSE if 1.1.0. This can be used in
|
||||||
|
* build tests.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
|
||||||
|
#include <libgtopconfig.h>
|
||||||
|
|
||||||
|
#define LIBGTOP_CHECK_VERSION(major, minor, micro) \
|
||||||
|
(LIBGTOP_MAJOR_VERSION > (major) || \
|
||||||
|
(LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION > (minor)) || \
|
||||||
|
(LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION == (minor) && \
|
||||||
|
LIBGTOP_MICRO_VERSION >= (micro)))
|
||||||
|
|
||||||
|
|
||||||
#include <glibtop/global.h>
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
#include <glibtop_server.h>
|
#include <glibtop_server.h>
|
||||||
#include <glibtop/types.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
#ifdef HAVE_GLIBTOP_MACHINE_H
|
||||||
#include <glibtop_machine.h>
|
#include <glibtop_machine.h>
|
||||||
@@ -74,9 +94,8 @@ extern glibtop *glibtop_global_server;
|
|||||||
|
|
||||||
extern const unsigned long glibtop_server_features;
|
extern const unsigned long glibtop_server_features;
|
||||||
|
|
||||||
#define glibtop_init() glibtop_init_r(&glibtop_global_server, 0, 0);
|
glibtop *
|
||||||
|
glibtop_init (void);
|
||||||
#define glibtop_close() glibtop_close_r(glibtop_global_server);
|
|
||||||
|
|
||||||
glibtop *
|
glibtop *
|
||||||
glibtop_init_r (glibtop **server_ptr,
|
glibtop_init_r (glibtop **server_ptr,
|
||||||
|
@@ -1,4 +1,2 @@
|
|||||||
SUBDIRS = glibtop
|
SUBDIRS = glibtop
|
||||||
|
|
||||||
EXTRA_DIST = libgtop-i18n.h
|
|
||||||
|
|
||||||
|
@@ -3,8 +3,11 @@ glibtopdir = $(includedir)/libgtop-2.0/glibtop
|
|||||||
glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \
|
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 \
|
||||||
procsegment.h read.h sysdeps.h global.h \
|
procsegment.h sysdeps.h global.h \
|
||||||
procsignal.h read_data.h union.h types.h gnuserv.h \
|
procsignal.h union.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 \
|
||||||
|
netlist.h procopenfiles.h open.h
|
||||||
|
|
||||||
|
noinst_HEADERS = error.h write.h read_data.h read.h init_hooks.h
|
||||||
|
@@ -28,6 +28,8 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
void glibtop_close (void);
|
||||||
|
|
||||||
void glibtop_close_r (glibtop *server);
|
void glibtop_close_r (glibtop *server);
|
||||||
|
|
||||||
void glibtop_close_s (glibtop *server);
|
void glibtop_close_s (glibtop *server);
|
||||||
|
@@ -57,8 +57,10 @@ G_BEGIN_DECLS
|
|||||||
#define GLIBTOP_CMND_FSUSAGE 21
|
#define GLIBTOP_CMND_FSUSAGE 21
|
||||||
#define GLIBTOP_CMND_NETLOAD 22
|
#define GLIBTOP_CMND_NETLOAD 22
|
||||||
#define GLIBTOP_CMND_PPP 23
|
#define GLIBTOP_CMND_PPP 23
|
||||||
|
#define GLIBTOP_CMND_NETLIST 24
|
||||||
|
#define GLIBTOP_CMND_PROC_OPEN_FILES 25
|
||||||
|
|
||||||
#define GLIBTOP_MAX_CMND 24
|
#define GLIBTOP_MAX_CMND 26
|
||||||
|
|
||||||
#define _GLIBTOP_PARAM_SIZE 16
|
#define _GLIBTOP_PARAM_SIZE 16
|
||||||
|
|
||||||
|
@@ -41,9 +41,16 @@ G_BEGIN_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_XCPU_FLAGS 11
|
||||||
|
|
||||||
#define GLIBTOP_MAX_CPU 12
|
#define GLIBTOP_CPU_IOWAIT 12
|
||||||
|
#define GLIBTOP_CPU_IRQ 13
|
||||||
|
#define GLIBTOP_CPU_SOFTIRQ 14
|
||||||
|
#define GLIBTOP_XCPU_IOWAIT 15
|
||||||
|
#define GLIBTOP_XCPU_IRQ 16
|
||||||
|
#define GLIBTOP_XCPU_SOFTIRQ 17
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_CPU 18
|
||||||
|
|
||||||
/* 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
|
||||||
@@ -58,16 +65,22 @@ struct _glibtop_cpu
|
|||||||
nice, /* GLIBTOP_CPU_NICE */
|
nice, /* GLIBTOP_CPU_NICE */
|
||||||
sys, /* GLIBTOP_CPU_SYS */
|
sys, /* GLIBTOP_CPU_SYS */
|
||||||
idle, /* GLIBTOP_CPU_IDLE */
|
idle, /* GLIBTOP_CPU_IDLE */
|
||||||
|
iowait, /* GLIBTOP_CPU_IOWAIT */
|
||||||
|
irq, /* GLIBTOP_CPU_IRQ */
|
||||||
|
softirq, /* GLIBTOP_CPU_SOFTIRQ */
|
||||||
frequency, /* GLIBTOP_CPU_FREQUENCY */
|
frequency, /* GLIBTOP_CPU_FREQUENCY */
|
||||||
xcpu_total [GLIBTOP_NCPU], /* GLIBTOP_XCPU_TOTAL */
|
xcpu_total [GLIBTOP_NCPU], /* GLIBTOP_XCPU_TOTAL */
|
||||||
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_iowait [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IOWAIT */
|
||||||
|
xcpu_irq [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IRQ */
|
||||||
|
xcpu_softirq [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SOFTIRQ */
|
||||||
xcpu_flags; /* GLIBTOP_XCPU_IDLE */
|
xcpu_flags; /* GLIBTOP_XCPU_IDLE */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_cpu(cpu) glibtop_get_cpu_l(glibtop_global_server, cpu)
|
void glibtop_get_cpu(glibtop_cpu *buf);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_CPU
|
#if GLIBTOP_SUID_CPU
|
||||||
#define glibtop_get_cpu_r glibtop_get_cpu_p
|
#define glibtop_get_cpu_r glibtop_get_cpu_p
|
||||||
@@ -85,16 +98,6 @@ void glibtop_init_cpu_s (glibtop *server);
|
|||||||
void glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf);
|
void glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_cpu [];
|
|
||||||
extern const unsigned glibtop_types_cpu [];
|
|
||||||
extern const char *glibtop_labels_cpu [];
|
|
||||||
extern const char *glibtop_descriptions_cpu [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -21,6 +21,11 @@
|
|||||||
Boston, MA 02111-1307, USA.
|
Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is private API
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __GLIBTOP_ERROR_H__
|
#ifndef __GLIBTOP_ERROR_H__
|
||||||
#define __GLIBTOP_ERROR_H__
|
#define __GLIBTOP_ERROR_H__
|
||||||
|
|
||||||
@@ -28,42 +33,20 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
void glibtop_error_vr (glibtop *server, char *format, va_list args);
|
void glibtop_error_vr (glibtop *server, const char *format, va_list args) G_GNUC_INTERNAL G_GNUC_NORETURN;
|
||||||
void glibtop_warn_vr (glibtop *server, char *format, va_list args);
|
void glibtop_warn_vr (glibtop *server, const char *format, va_list args) G_GNUC_INTERNAL;
|
||||||
|
void glibtop_error_io_vr (glibtop *server, const char *format, int, va_list args) G_GNUC_INTERNAL G_GNUC_NORETURN;
|
||||||
|
void glibtop_warn_io_vr (glibtop *server, const char *format, int, va_list args) G_GNUC_INTERNAL;
|
||||||
|
|
||||||
void glibtop_error_io_vr (glibtop *server, char *format, int, va_list args);
|
void glibtop_error_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN;
|
||||||
void glibtop_warn_io_vr (glibtop *server, char *format, int, va_list args);
|
void glibtop_warn_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3);
|
||||||
|
void glibtop_error_io_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN;
|
||||||
|
void glibtop_warn_io_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3);
|
||||||
|
|
||||||
void G_GNUC_UNUSED glibtop_error_r (glibtop *server, char *format, ...);
|
void glibtop_error (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN;
|
||||||
void G_GNUC_UNUSED glibtop_warn_r (glibtop *server, char *format, ...);
|
void glibtop_warn (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2);
|
||||||
void G_GNUC_UNUSED glibtop_error_io_r (glibtop *server, char *format, ...);
|
void glibtop_error_io (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN;
|
||||||
void G_GNUC_UNUSED glibtop_warn_io_r (glibtop *server, char *format, ...);
|
void glibtop_warn_io (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
|
|
||||||
#define glibtop_error(p1, args...) glibtop_error_r(glibtop_global_server , p1 , ## args)
|
|
||||||
#define glibtop_warn(p1, args...) glibtop_warn_r(glibtop_global_server , p1 , ## args)
|
|
||||||
|
|
||||||
#define glibtop_error_io(p1, args...) glibtop_error_io_r(glibtop_global_server , p1 , ## args)
|
|
||||||
#define glibtop_warn_io(p1, args...) glibtop_warn_io_r(glibtop_global_server , p1 , ## args)
|
|
||||||
|
|
||||||
#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
|
||||||
|
|
||||||
#define glibtop_error(p1, ...) glibtop_error_r(glibtop_global_server , p1 , __VA_ARGS__)
|
|
||||||
#define glibtop_warn(p1, ...) glibtop_warn_r(glibtop_global_server , p1 , __VA_ARGS__)
|
|
||||||
|
|
||||||
#define glibtop_error_io(p1, ...) glibtop_error_io_r(glibtop_global_server , p1 , __VA_ARGS__)
|
|
||||||
#define glibtop_warn_io(p1, ...) glibtop_warn_io_r(glibtop_global_server , p1 , __VA_ARGS__)
|
|
||||||
|
|
||||||
#else /* no __GNUC__, no C99*/
|
|
||||||
|
|
||||||
void glibtop_error (char *format, ...);
|
|
||||||
void glibtop_warn (char *format, ...);
|
|
||||||
void glibtop_error_io (char *format, ...);
|
|
||||||
void glibtop_warn_io (char *format, ...);
|
|
||||||
|
|
||||||
#endif /* no __GNUC__ */
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -1,95 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_ERRORS_H__
|
|
||||||
#define __GLIBTOP_ERRORS_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
|
|
||||||
#include <glib/gerror.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_ERROR glibtop_error_quark ()
|
|
||||||
|
|
||||||
GQuark glibtop_error_quark (void) G_GNUC_CONST;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
GLIBTOP_ERROR_NO_ERROR = 0,
|
|
||||||
GLIBTOP_ERROR_UNKNOWN,
|
|
||||||
GLIBTOP_ERROR_INVALID_ARGUMENT,
|
|
||||||
GLIBTOP_ERROR_NO_SUCH_PARAMETER,
|
|
||||||
GLIBTOP_ERROR_READONLY_VALUE,
|
|
||||||
GLIBTOP_ERROR_SIZE_MISMATCH,
|
|
||||||
|
|
||||||
GLIBTOP_ERROR_SERVER_COMM_FAILURE,
|
|
||||||
|
|
||||||
GLIBTOP_ERROR_NO_SUCH_PROCESS,
|
|
||||||
|
|
||||||
GLIBTOP_ERROR_NO_KERNEL_SUPPORT,
|
|
||||||
GLIBTOP_ERROR_INCOMPATIBLE_KERNEL,
|
|
||||||
|
|
||||||
GLIBTOP_ERROR_NO_SUCH_BACKEND,
|
|
||||||
GLIBTOP_ERROR_NOT_IMPLEMENTED,
|
|
||||||
GLIBTOP_ERROR_NO_BACKEND_OPENED,
|
|
||||||
|
|
||||||
GLIBTOP_ERROR_DEMARSHAL_ERROR
|
|
||||||
} glibtop_error;
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_error_vl (glibtop_client *client, glibtop_error code,
|
|
||||||
const char *format, va_list args);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_error_io_vl (glibtop_client *client, glibtop_error code,
|
|
||||||
int io_errno, const char *format, va_list args);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_warn_vl (glibtop_client *client, glibtop_error code,
|
|
||||||
const char *format, va_list args);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_warn_io_vl (glibtop_client *client, glibtop_error code,
|
|
||||||
int io_errno, const char *format, va_list args);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_error_l (glibtop_client *client, glibtop_error code,
|
|
||||||
char *format, ...);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_warn_l (glibtop_client *client, glibtop_error code,
|
|
||||||
char *format, ...);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_error_io_l (glibtop_client *client, glibtop_error code,
|
|
||||||
char *format, ...);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_warn_io_l (glibtop_client *client, glibtop_error code,
|
|
||||||
char *format, ...);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
@@ -53,23 +53,13 @@ struct _glibtop_fsusage
|
|||||||
guint64 read, write; /* Total blocks read and written */
|
guint64 read, write; /* Total blocks read and written */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_fsusage(fsusage,disk) glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk)
|
void glibtop_get_fsusage(glibtop_fsusage *buf, const char *mount_dir);
|
||||||
|
|
||||||
#define glibtop_get_fsusage_r glibtop_get_fsusage_s
|
#define glibtop_get_fsusage_r glibtop_get_fsusage_s
|
||||||
|
|
||||||
void glibtop_get_fsusage_l (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
void glibtop_get_fsusage_l (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
||||||
void glibtop_get_fsusage_s (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
void glibtop_get_fsusage_s (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_fsusage [];
|
|
||||||
extern const unsigned glibtop_types_fsusage [];
|
|
||||||
extern const char *glibtop_labels_fsusage [];
|
|
||||||
extern const char *glibtop_descriptions_fsusage [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -1,102 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_BACKEND_INFO_H__
|
|
||||||
#define __GLIBTOP_BACKEND_INFO_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
#include <glibtop/glibtop-server.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
typedef struct _glibtop_backend_info glibtop_backend_info;
|
|
||||||
typedef struct _glibtop_backend_entry glibtop_backend_entry;
|
|
||||||
typedef struct _glibtop_backend_module glibtop_backend_module;
|
|
||||||
|
|
||||||
typedef struct _glibtop_call_vector glibtop_call_vector;
|
|
||||||
|
|
||||||
typedef int (*glibtop_backend_open_func_t) (glibtop_server *, glibtop_backend *,
|
|
||||||
guint64, const char **);
|
|
||||||
typedef int (*glibtop_backend_close_func_t) (glibtop_server *, glibtop_backend *,
|
|
||||||
glibtop_closure *);
|
|
||||||
|
|
||||||
struct _glibtop_backend_info
|
|
||||||
{
|
|
||||||
const char *name;
|
|
||||||
glibtop_backend_open_func_t open;
|
|
||||||
glibtop_backend_close_func_t close;
|
|
||||||
glibtop_call_vector *call_vector;
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef _IN_LIBGTOP
|
|
||||||
|
|
||||||
#include <gmodule.h>
|
|
||||||
|
|
||||||
/* private structure */
|
|
||||||
struct _glibtop_backend_module
|
|
||||||
{
|
|
||||||
int refcount;
|
|
||||||
GModule *module;
|
|
||||||
GSList *extra_modules;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_backend_entry
|
|
||||||
{
|
|
||||||
char *name;
|
|
||||||
char *libtool_name;
|
|
||||||
char *shlib_name;
|
|
||||||
|
|
||||||
GSList *extra_libs;
|
|
||||||
|
|
||||||
/* This is const since you must not attempt to
|
|
||||||
* write into gmodule loaded memory. */
|
|
||||||
const glibtop_backend_info *info;
|
|
||||||
|
|
||||||
/* private pointer */
|
|
||||||
glibtop_backend_module *_priv;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* _IN_LIBGTOP */
|
|
||||||
|
|
||||||
long
|
|
||||||
glibtop_register_backend (glibtop_backend_entry *entry);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_unregister_backend (long id);
|
|
||||||
|
|
||||||
glibtop_backend_entry *
|
|
||||||
glibtop_backend_by_id (long id);
|
|
||||||
|
|
||||||
glibtop_backend_entry *
|
|
||||||
glibtop_backend_by_name (const char *backend_name);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_init_backends (void);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
@@ -1,85 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 2.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_BACKEND_H__
|
|
||||||
#define __GLIBTOP_BACKEND_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
#include <glib-object.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_TYPE_BACKEND (glibtop_backend_get_type ())
|
|
||||||
#define GLIBTOP_BACKEND(backend) (G_TYPE_CHECK_INSTANCE_CAST ((backend), GLIBTOP_TYPE_BACKEND, glibtop_backend))
|
|
||||||
#define GLIBTOP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLIBTOP_TYPE_BACKEND, glibtop_backend_class))
|
|
||||||
#define GLIBTOP_IS_BACKEND(backend) (G_TYPE_CHECK_INSTANCE_TYPE ((backend), GLIBTOP_TYPE_BACKEND))
|
|
||||||
#define GLIBTOP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLIBTOP_TYPE_BACKEND))
|
|
||||||
#define GLIBTOP_BACKEND_GET_CLASS(backend)(G_TYPE_INSTANCE_GET_CLASS ((backend), GLIBTOP_TYPE_BACKEND, glibtop_backend_class))
|
|
||||||
|
|
||||||
#define GLIBTOP_BACKEND_TYPE(backend) (G_TYPE_FROM_INSTANCE (backend))
|
|
||||||
#define GLIBTOP_BACKEND_TYPE_NAME(backend)(g_type_name (GLIBTOP_BACKEND_TYPE (backend)))
|
|
||||||
|
|
||||||
/* --- typedefs & structures --- */
|
|
||||||
typedef struct _glibtop_backend glibtop_backend;
|
|
||||||
typedef struct _glibtop_backend_class glibtop_backend_class;
|
|
||||||
typedef struct _glibtop_backend_private glibtop_backend_private;
|
|
||||||
|
|
||||||
#include <glibtop/glibtop-backend-info.h>
|
|
||||||
|
|
||||||
struct _glibtop_backend
|
|
||||||
{
|
|
||||||
GObject object;
|
|
||||||
|
|
||||||
/* <private> */
|
|
||||||
glibtop_backend_private *_priv;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_backend_class
|
|
||||||
{
|
|
||||||
GObjectClass parent_class;;
|
|
||||||
};
|
|
||||||
|
|
||||||
GType
|
|
||||||
glibtop_backend_get_type (void);
|
|
||||||
|
|
||||||
glibtop_backend *
|
|
||||||
glibtop_backend_get (const char *backend_name, guint64 features,
|
|
||||||
const char **backend_args, GError **error);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_backend_set_closure_data (glibtop_backend *backend, glibtop_closure *closure);
|
|
||||||
|
|
||||||
glibtop_closure *
|
|
||||||
glibtop_backend_get_closure_data (glibtop_backend *backend);
|
|
||||||
|
|
||||||
glibtop_call_vector *
|
|
||||||
glibtop_backend_get_call_vector (glibtop_backend *backend);
|
|
||||||
|
|
||||||
glibtop_server *
|
|
||||||
glibtop_backend_get_server (glibtop_backend *backend);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
@@ -1,97 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 2.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_CLIENT_H__
|
|
||||||
#define __GLIBTOP_CLIENT_H__
|
|
||||||
|
|
||||||
#include <glibtop.h>
|
|
||||||
|
|
||||||
#include <glib-object.h>
|
|
||||||
|
|
||||||
#include <glibtop/glibtop-backend.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
#define GLIBTOP_TYPE_CLIENT (glibtop_client_get_type ())
|
|
||||||
#define GLIBTOP_CLIENT(client) (G_TYPE_CHECK_INSTANCE_CAST ((client), GLIBTOP_TYPE_CLIENT, glibtop_client))
|
|
||||||
#define GLIBTOP_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLIBTOP_TYPE_CLIENT, glibtop_client_class))
|
|
||||||
#define GLIBTOP_IS_CLIENT(client) (G_TYPE_CHECK_INSTANCE_TYPE ((client), GLIBTOP_TYPE_CLIENT))
|
|
||||||
#define GLIBTOP_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLIBTOP_TYPE_CLIENT))
|
|
||||||
#define GLIBTOP_CLIENT_GET_CLASS(client)(G_TYPE_INSTANCE_GET_CLASS ((client), GLIBTOP_TYPE_CLIENT, glibtop_client_class))
|
|
||||||
|
|
||||||
#define GLIBTOP_CLIENT_TYPE(client) (G_TYPE_FROM_INSTANCE (client))
|
|
||||||
#define GLIBTOP_CLIENT_TYPE_NAME(client)(g_type_name (GLIBTOP_CLIENT_TYPE (client)))
|
|
||||||
|
|
||||||
/* --- typedefs & structures --- */
|
|
||||||
typedef struct _glibtop_client glibtop_client;
|
|
||||||
typedef struct _glibtop_client_class glibtop_client_class;
|
|
||||||
typedef struct _glibtop_client_private glibtop_client_private;
|
|
||||||
|
|
||||||
struct _glibtop_client
|
|
||||||
{
|
|
||||||
GObject object;
|
|
||||||
|
|
||||||
/* <public> */
|
|
||||||
GError *error;
|
|
||||||
|
|
||||||
/* <private> */
|
|
||||||
glibtop_client_private *_priv;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _glibtop_client_class
|
|
||||||
{
|
|
||||||
GObjectClass parent_class;;
|
|
||||||
|
|
||||||
void (*error) (glibtop_client *client, GError *error);
|
|
||||||
void (*warning) (glibtop_client *client, GError *error);
|
|
||||||
};
|
|
||||||
|
|
||||||
GType
|
|
||||||
glibtop_client_get_type (void);
|
|
||||||
|
|
||||||
glibtop_client *
|
|
||||||
glibtop_client_new (void);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_client_propagate_error (glibtop_client *client, GError *error);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_client_propagate_warning (glibtop_client *client, GError *error);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_client_open_backend (glibtop_client *client, const char *backend_name,
|
|
||||||
guint64 features, const char **backend_args);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_client_add_backend (glibtop_client *client,
|
|
||||||
glibtop_backend *backend);
|
|
||||||
|
|
||||||
void
|
|
||||||
glibtop_client_remove_backend (glibtop_client *client,
|
|
||||||
glibtop_backend *backend);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
@@ -36,11 +36,6 @@ typedef struct _glibtop_server_info glibtop_server_info;
|
|||||||
|
|
||||||
typedef struct _glibtop_closure glibtop_closure;
|
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
|
struct _glibtop_server_info
|
||||||
{
|
{
|
||||||
int ncpu; /* Number of CPUs, zero if single-processor */
|
int ncpu; /* Number of CPUs, zero if single-processor */
|
||||||
|
@@ -42,7 +42,6 @@ static char header_rcsid [] = "!Header: gnuserv.h,v 2.4 95/02/16 11:58:11 arup a
|
|||||||
/* gnuserv should not be compiled using SOCKS */
|
/* gnuserv should not be compiled using SOCKS */
|
||||||
#define DO_NOT_SOCKSIFY
|
#define DO_NOT_SOCKSIFY
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/error.h>
|
|
||||||
#undef read
|
#undef read
|
||||||
#undef write
|
#undef write
|
||||||
#undef open
|
#undef open
|
||||||
|
11
include/glibtop/init_hooks.h
Normal file
11
include/glibtop/init_hooks.h
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#ifndef H_LIBGTOP_INIT_HOOKS_1122955666
|
||||||
|
#define H_LIBGTOP_INIT_HOOKS_1122955666
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
|
||||||
|
typedef void (*glibtop_init_func_t)(glibtop *);
|
||||||
|
|
||||||
|
extern const glibtop_init_func_t _glibtop_init_hook_s[];
|
||||||
|
extern const glibtop_init_func_t _glibtop_init_hook_p[];
|
||||||
|
|
||||||
|
#endif /* H_LIBGTOP_INIT_HOOKS_1122955666 */
|
@@ -1,56 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/* Copyright (C) 1998-99 Martin Baulig
|
|
||||||
This file is part of LibGTop 1.0.
|
|
||||||
|
|
||||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
|
||||||
|
|
||||||
LibGTop is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License,
|
|
||||||
or (at your option) any later version.
|
|
||||||
|
|
||||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with LibGTop; see the file COPYING. If not, write to the
|
|
||||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLIBTOP_LIMITS_H__
|
|
||||||
#define __GLIBTOP_LIMITS_H__
|
|
||||||
|
|
||||||
#include <glibtop/global.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
/* Nobody should really be using more than 64 processors. */
|
|
||||||
#define GLIBTOP_NCPU 64
|
|
||||||
|
|
||||||
/* Maximum number of process groups in glibtop_proc_uid. */
|
|
||||||
#define GLIBTOP_MAX_GROUPS 32
|
|
||||||
|
|
||||||
/* Maximum length of a mountpoint/device name in glibtop_mountlist. */
|
|
||||||
#define GLIBTOP_MOUNTENTRY_LEN 79
|
|
||||||
|
|
||||||
/* Maximum length of a network interface name. */
|
|
||||||
#define GLIBTOP_INTERFACE_LEN 32
|
|
||||||
|
|
||||||
/* Length of a network interface address in bytes. */
|
|
||||||
#define GLIBTOP_IFADDR_LEN 16
|
|
||||||
|
|
||||||
/* This is ((guint64)-1) */
|
|
||||||
#define GLIBTOP_UNLIMITED (~(guint64)0)
|
|
||||||
|
|
||||||
/* Maximum length of a backend name. */
|
|
||||||
#define GLIBTOP_BACKEND_NAME_LEN 40
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif
|
|
@@ -47,7 +47,7 @@ struct _glibtop_loadavg
|
|||||||
last_pid; /* GLIBTOP_LOADAVG_LAST_PID */
|
last_pid; /* GLIBTOP_LOADAVG_LAST_PID */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_loadavg(loadavg) glibtop_get_loadavg_l(glibtop_global_server, loadavg)
|
void glibtop_get_loadavg(glibtop_loadavg *buf);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_LOADAVG
|
#if GLIBTOP_SUID_LOADAVG
|
||||||
#define glibtop_get_loadavg_r glibtop_get_loadavg_p
|
#define glibtop_get_loadavg_r glibtop_get_loadavg_p
|
||||||
@@ -65,16 +65,6 @@ void glibtop_init_loadavg_s (glibtop *server);
|
|||||||
void glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf);
|
void glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_loadavg [];
|
|
||||||
extern const unsigned glibtop_types_loadavg [];
|
|
||||||
extern const char *glibtop_labels_loadavg [];
|
|
||||||
extern const char *glibtop_descriptions_loadavg [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -55,7 +55,7 @@ struct _glibtop_mem
|
|||||||
locked; /* GLIBTOP_MEM_LOCKED */
|
locked; /* GLIBTOP_MEM_LOCKED */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_mem(mem) glibtop_get_mem_l(glibtop_global_server, mem)
|
void glibtop_get_mem(glibtop_mem *buf);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_MEM
|
#if GLIBTOP_SUID_MEM
|
||||||
#define glibtop_get_mem_r glibtop_get_mem_p
|
#define glibtop_get_mem_r glibtop_get_mem_p
|
||||||
@@ -73,16 +73,6 @@ void glibtop_init_mem_s (glibtop *server);
|
|||||||
void glibtop_get_mem_s (glibtop *server, glibtop_mem *buf);
|
void glibtop_get_mem_s (glibtop *server, glibtop_mem *buf);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_mem [];
|
|
||||||
extern const unsigned glibtop_types_mem [];
|
|
||||||
extern const char *glibtop_labels_mem [];
|
|
||||||
extern const char *glibtop_descriptions_mem [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -55,7 +55,8 @@ struct _glibtop_mountlist
|
|||||||
size; /* GLIBTOP_MOUNTLIST_SIZE */
|
size; /* GLIBTOP_MOUNTLIST_SIZE */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_mountlist(mountlist,all_fs) glibtop_get_mountlist_l(glibtop_global_server, mountlist, all_fs)
|
glibtop_mountentry *
|
||||||
|
glibtop_get_mountlist(glibtop_mountlist *buf, int all_fs);
|
||||||
|
|
||||||
#define glibtop_get_mountlist_r glibtop_get_mountlist_s
|
#define glibtop_get_mountlist_r glibtop_get_mountlist_s
|
||||||
|
|
||||||
@@ -65,16 +66,6 @@ glibtop_get_mountlist_l (glibtop *server, glibtop_mountlist *buf, int all_fs);
|
|||||||
glibtop_mountentry *
|
glibtop_mountentry *
|
||||||
glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs);
|
glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs);
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_mountlist [];
|
|
||||||
extern const unsigned glibtop_types_mountlist [];
|
|
||||||
extern const char *glibtop_labels_mountlist [];
|
|
||||||
extern const char *glibtop_descriptions_mountlist [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -53,7 +53,7 @@ struct _glibtop_msg_limits
|
|||||||
msgtql; /* GLIBTOP_IPC_MSGTQL */
|
msgtql; /* GLIBTOP_IPC_MSGTQL */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_msg_limits(msg) glibtop_get_msg_limits_l(glibtop_global_server, msg)
|
void glibtop_get_msg_limits(glibtop_msg_limits *buf);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_MSG_LIMITS
|
#if GLIBTOP_SUID_MSG_LIMITS
|
||||||
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_p
|
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_p
|
||||||
@@ -71,16 +71,6 @@ void glibtop_init_msg_limits_s (glibtop *server);
|
|||||||
void glibtop_get_msg_limits_s (glibtop *server, glibtop_msg_limits *buf);
|
void glibtop_get_msg_limits_s (glibtop *server, glibtop_msg_limits *buf);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_msg_limits [];
|
|
||||||
extern const unsigned glibtop_types_msg_limits [];
|
|
||||||
extern const char *glibtop_labels_msg_limits [];
|
|
||||||
extern const char *glibtop_descriptions_msg_limits [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
61
include/glibtop/netlist.h
Normal file
61
include/glibtop/netlist.h
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright (C) 2004 Benoît Dejean
|
||||||
|
This file is part of LibGTop 2.0.
|
||||||
|
|
||||||
|
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_NETLIST_H__
|
||||||
|
#define __GLIBTOP_NETLIST_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define GLIBTOP_NETLIST_NUMBER 0
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_NETLIST 1
|
||||||
|
|
||||||
|
typedef struct _glibtop_netlist glibtop_netlist;
|
||||||
|
|
||||||
|
struct _glibtop_netlist
|
||||||
|
{
|
||||||
|
guint64 flags;
|
||||||
|
guint32 number;
|
||||||
|
};
|
||||||
|
|
||||||
|
char** glibtop_get_netlist(glibtop_netlist *buf);
|
||||||
|
|
||||||
|
#if GLIBTOP_SUID_NETLIST
|
||||||
|
#define glibtop_get_netlist_r glibtop_get_netlist_p
|
||||||
|
#else
|
||||||
|
#define glibtop_get_netlist_r glibtop_get_netlist_s
|
||||||
|
#endif
|
||||||
|
|
||||||
|
char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf);
|
||||||
|
|
||||||
|
#if GLIBTOP_SUID_NETLIST
|
||||||
|
void glibtop_init_netlist_p (glibtop *server);
|
||||||
|
char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf);
|
||||||
|
#else
|
||||||
|
void glibtop_init_netlist_s (glibtop *server);
|
||||||
|
char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
@@ -107,7 +107,7 @@ struct _glibtop_netload
|
|||||||
guint8 hwaddress[8]; /* GLIBTOP_NETLOAD_HWADDRESS */
|
guint8 hwaddress[8]; /* GLIBTOP_NETLOAD_HWADDRESS */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_netload(netload,interface) glibtop_get_netload_l(glibtop_global_server, netload, interface)
|
void glibtop_get_netload(glibtop_netload *buf, const char *interface);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_NETLOAD
|
#if GLIBTOP_SUID_NETLOAD
|
||||||
#define glibtop_get_netload_r glibtop_get_netload_p
|
#define glibtop_get_netload_r glibtop_get_netload_p
|
||||||
@@ -125,16 +125,6 @@ void glibtop_init_netload_s (glibtop *server);
|
|||||||
void glibtop_get_netload_s (glibtop *server, glibtop_netload *buf, const char *interface);
|
void glibtop_get_netload_s (glibtop *server, glibtop_netload *buf, const char *interface);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_netload [];
|
|
||||||
extern const unsigned glibtop_types_netload [];
|
|
||||||
extern const char *glibtop_labels_netload [];
|
|
||||||
extern const char *glibtop_descriptions_netload [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -23,8 +23,6 @@
|
|||||||
#define __GLIBTOP_OPEN_H__
|
#define __GLIBTOP_OPEN_H__
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/read.h>
|
|
||||||
#include <glibtop/error.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
@@ -23,7 +23,6 @@
|
|||||||
#define __GLIBTOP_PARAMETER_H__
|
#define __GLIBTOP_PARAMETER_H__
|
||||||
|
|
||||||
#include <glibtop.h>
|
#include <glibtop.h>
|
||||||
#include <glibtop/open.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
@@ -51,7 +51,7 @@ struct _glibtop_ppp
|
|||||||
bytes_out; /* GLIBTOP_PPP_BYTES_OUT */
|
bytes_out; /* GLIBTOP_PPP_BYTES_OUT */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_ppp(ppp,device) glibtop_get_ppp_l(glibtop_global_server, ppp, device)
|
void glibtop_get_ppp(glibtop_ppp *buf, unsigned short device);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PPP
|
#if GLIBTOP_SUID_PPP
|
||||||
#define glibtop_get_ppp_r glibtop_get_ppp_p
|
#define glibtop_get_ppp_r glibtop_get_ppp_p
|
||||||
@@ -69,16 +69,6 @@ void glibtop_init_ppp_s (glibtop *server);
|
|||||||
void glibtop_get_ppp_s (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
void glibtop_get_ppp_s (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_ppp [];
|
|
||||||
extern const unsigned glibtop_types_ppp [];
|
|
||||||
extern const char *glibtop_labels_ppp [];
|
|
||||||
extern const char *glibtop_descriptions_ppp [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -46,9 +46,8 @@ char *
|
|||||||
glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf,
|
glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf,
|
||||||
pid_t pid, unsigned max_len);
|
pid_t pid, unsigned max_len);
|
||||||
|
|
||||||
#define glibtop_get_proc_args(proc_args,pid,max_len) glibtop_get_proc_args_l(glibtop_global_server, proc_args, pid, max_len)
|
char *
|
||||||
|
glibtop_get_proc_args (glibtop_proc_args *buf, pid_t pid, unsigned max_len);
|
||||||
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_ARGS
|
#if GLIBTOP_SUID_PROC_ARGS
|
||||||
|
|
||||||
@@ -82,42 +81,10 @@ char **
|
|||||||
glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf,
|
glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf,
|
||||||
pid_t pid, unsigned max_len);
|
pid_t pid, unsigned max_len);
|
||||||
|
|
||||||
#define glibtop_get_proc_argv(proc_args,pid,max_len) glibtop_get_proc_argv_l(glibtop_global_server, proc_args, pid, max_len)
|
char **
|
||||||
|
glibtop_get_proc_argv (glibtop_proc_args *buf, pid_t pid, unsigned max_len);
|
||||||
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_ARGS
|
|
||||||
|
|
||||||
# define glibtop_get_proc_argv_r glibtop_get_proc_args_p
|
|
||||||
# define glibtop_init_proc_argv_p glibtop_init_proc_args_p
|
|
||||||
|
|
||||||
char **
|
|
||||||
glibtop_get_proc_argv_p (glibtop *server, glibtop_proc_args *buf,
|
|
||||||
pid_t pid, unsigned max_len);
|
|
||||||
|
|
||||||
|
|
||||||
#else /* !GLIBTOP_SUID_PROC_ARGS */
|
|
||||||
|
|
||||||
# define glibtop_get_proc_argv_r glibtop_get_proc_args_s
|
|
||||||
# define glibtop_init_proc_argv_s glibtop_init_proc_args_s
|
|
||||||
|
|
||||||
char **
|
|
||||||
glibtop_get_proc_argv_s (glibtop *server, glibtop_proc_args *buf,
|
|
||||||
pid_t pid, unsigned max_len);
|
|
||||||
#endif /* GLIBTOP_SUID_PROC_ARGS */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_args [];
|
|
||||||
extern const unsigned glibtop_types_proc_args [];
|
|
||||||
extern const char *glibtop_labels_proc_args [];
|
|
||||||
extern const char *glibtop_descriptions_proc_args [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -64,7 +64,7 @@ struct _glibtop_proc_kernel
|
|||||||
char wchan [40];
|
char wchan [40];
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_proc_kernel(p1, p2) glibtop_get_proc_kernel_l(glibtop_global_server, p1, p2)
|
void glibtop_get_proc_kernel(glibtop_proc_kernel *buf, pid_t pid);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_KERNEL
|
#if GLIBTOP_SUID_PROC_KERNEL
|
||||||
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_p
|
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_p
|
||||||
@@ -82,16 +82,6 @@ void glibtop_init_proc_kernel_s (glibtop *server);
|
|||||||
void glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
void glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_kernel [];
|
|
||||||
extern const unsigned glibtop_types_proc_kernel [];
|
|
||||||
extern const char *glibtop_labels_proc_kernel [];
|
|
||||||
extern const char *glibtop_descriptions_proc_kernel [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -62,7 +62,8 @@ struct _glibtop_proclist
|
|||||||
size; /* GLIBTOP_PROCLIST_SIZE */
|
size; /* GLIBTOP_PROCLIST_SIZE */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_proclist(proclist,which,arg) glibtop_get_proclist_l(glibtop_global_server, proclist, which, arg)
|
unsigned *
|
||||||
|
glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROCLIST
|
#if GLIBTOP_SUID_PROCLIST
|
||||||
#define glibtop_get_proclist_r glibtop_get_proclist_p
|
#define glibtop_get_proclist_r glibtop_get_proclist_p
|
||||||
@@ -88,16 +89,6 @@ glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf,
|
|||||||
gint64 which, gint64 arg);
|
gint64 which, gint64 arg);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proclist [];
|
|
||||||
extern const unsigned glibtop_types_proclist [];
|
|
||||||
extern const char *glibtop_labels_proclist [];
|
|
||||||
extern const char *glibtop_descriptions_proclist [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -70,8 +70,9 @@ struct _glibtop_proc_map
|
|||||||
total, /* GLIBTOP_PROC_MAP_TOTAL */
|
total, /* GLIBTOP_PROC_MAP_TOTAL */
|
||||||
size; /* GLIBTOP_PROC_MAP_SIZE */
|
size; /* GLIBTOP_PROC_MAP_SIZE */
|
||||||
};
|
};
|
||||||
|
glibtop_map_entry *
|
||||||
|
glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid);
|
||||||
|
|
||||||
#define glibtop_get_proc_map(proc_map,pid) glibtop_get_proc_map_l(glibtop_global_server, proc_map, pid)
|
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_MAP
|
#if GLIBTOP_SUID_PROC_MAP
|
||||||
#define glibtop_get_proc_map_r glibtop_get_proc_map_p
|
#define glibtop_get_proc_map_r glibtop_get_proc_map_p
|
||||||
@@ -94,16 +95,6 @@ glibtop_map_entry *
|
|||||||
glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_map [];
|
|
||||||
extern const unsigned glibtop_types_proc_map [];
|
|
||||||
extern const char *glibtop_labels_proc_map [];
|
|
||||||
extern const char *glibtop_descriptions_proc_map [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -55,7 +55,7 @@ struct _glibtop_proc_mem
|
|||||||
* of the process; usually 2,147,483,647 */
|
* of the process; usually 2,147,483,647 */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_proc_mem(p1, p2) glibtop_get_proc_mem_l(glibtop_global_server, p1, p2)
|
void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_MEM
|
#if GLIBTOP_SUID_PROC_MEM
|
||||||
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_p
|
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_p
|
||||||
@@ -73,16 +73,6 @@ void glibtop_init_proc_mem_s (glibtop *server);
|
|||||||
void glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
void glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_mem [];
|
|
||||||
extern const unsigned glibtop_types_proc_mem [];
|
|
||||||
extern const char *glibtop_labels_proc_mem [];
|
|
||||||
extern const char *glibtop_descriptions_proc_mem [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
123
include/glibtop/procopenfiles.h
Normal file
123
include/glibtop/procopenfiles.h
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 1998-99 Martin Baulig
|
||||||
|
Copyright (C) 2004 Nicolás Lichtmaier
|
||||||
|
This file is part of LibGTop 1.0.
|
||||||
|
|
||||||
|
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||||
|
|
||||||
|
Modified by Nicolás Lichtmaier to give open process files.
|
||||||
|
|
||||||
|
LibGTop is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with LibGTop; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GLIBTOP_PROC_OPEN_FILES_H__
|
||||||
|
#define __GLIBTOP_PROC_OPEN_FILES_H__
|
||||||
|
|
||||||
|
#include <glibtop.h>
|
||||||
|
#include <glibtop/global.h>
|
||||||
|
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define GLIBTOP_PROC_OPEN_FILES_NUMBER 0
|
||||||
|
#define GLIBTOP_PROC_OPEN_FILES_TOTAL 1
|
||||||
|
#define GLIBTOP_PROC_OPEN_FILES_SIZE 2
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_PROC_OPEN_FILES 3
|
||||||
|
|
||||||
|
#define GLIBTOP_FILE_ENTRY_FD 0
|
||||||
|
#define GLIBTOP_FILE_ENTRY_NAME 1
|
||||||
|
#define GLIBTOP_FILE_ENTRY_TYPE 2
|
||||||
|
#define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_HOST 3
|
||||||
|
#define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_PORT 4
|
||||||
|
|
||||||
|
#define GLIBTOP_MAX_OPEN_FILE_ENTRY 5
|
||||||
|
|
||||||
|
#define GLIBTOP_OPEN_FILENAME_LEN 215
|
||||||
|
/* ready for IPv6 */
|
||||||
|
#define GLIBTOP_OPEN_DEST_HOST_LEN 46
|
||||||
|
|
||||||
|
enum glibtop_file_type {
|
||||||
|
GLIBTOP_FILE_TYPE_FILE = 1,
|
||||||
|
GLIBTOP_FILE_TYPE_PIPE = 2,
|
||||||
|
GLIBTOP_FILE_TYPE_INETSOCKET = 4,
|
||||||
|
GLIBTOP_FILE_TYPE_LOCALSOCKET = 8
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _glibtop_open_files_entry glibtop_open_files_entry;
|
||||||
|
|
||||||
|
typedef struct _glibtop_proc_open_files glibtop_proc_open_files;
|
||||||
|
|
||||||
|
struct _glibtop_open_files_entry
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
guint16 type; /* An "enum glibtop_file_type" value. */
|
||||||
|
union {
|
||||||
|
/* When type == GLIBTOP_FILE_TYPE_INETSOCKET */
|
||||||
|
struct {
|
||||||
|
char dest_host[GLIBTOP_OPEN_DEST_HOST_LEN+1];
|
||||||
|
int dest_port;
|
||||||
|
} sock;
|
||||||
|
|
||||||
|
/* When type == GLIBTOP_FILE_TYPE_FILE */
|
||||||
|
struct {
|
||||||
|
char name[GLIBTOP_OPEN_FILENAME_LEN+1];
|
||||||
|
} file;
|
||||||
|
|
||||||
|
/* When type == GLIBTOP_FILE_TYPE_LOCALSOCKET */
|
||||||
|
struct {
|
||||||
|
char name[GLIBTOP_OPEN_FILENAME_LEN+1];
|
||||||
|
} localsock;
|
||||||
|
|
||||||
|
} info;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _glibtop_proc_open_files
|
||||||
|
{
|
||||||
|
guint64 flags,
|
||||||
|
number, /* GLIBTOP_PROC_OPEN_FILES_NUMBER */
|
||||||
|
total, /* GLIBTOP_PROC_OPEN_FILES_TOTAL */
|
||||||
|
size; /* GLIBTOP_PROC_OPEN_FILES_SIZE */
|
||||||
|
};
|
||||||
|
|
||||||
|
glibtop_open_files_entry *
|
||||||
|
glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid);
|
||||||
|
|
||||||
|
#if GLIBTOP_SUID_PROC_FILE
|
||||||
|
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_p
|
||||||
|
#else
|
||||||
|
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_s
|
||||||
|
#endif
|
||||||
|
|
||||||
|
glibtop_open_files_entry *
|
||||||
|
glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
|
||||||
|
|
||||||
|
#if GLIBTOP_SUID_PROC_FILE
|
||||||
|
void glibtop_init_proc_open_files_p (glibtop *server);
|
||||||
|
|
||||||
|
glibtop_open_files_entry *
|
||||||
|
glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
|
||||||
|
#else
|
||||||
|
void glibtop_init_proc_open_files_s (glibtop *server);
|
||||||
|
|
||||||
|
glibtop_open_files_entry *
|
||||||
|
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif
|
@@ -58,7 +58,7 @@ struct _glibtop_proc_segment
|
|||||||
start_stack; /* address of the bottom of stack segment */
|
start_stack; /* address of the bottom of stack segment */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_proc_segment(p1, p2) glibtop_get_proc_segment_l(glibtop_global_server, p1, p2)
|
void glibtop_get_proc_segment(glibtop_proc_segment *buf, pid_t pid);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_SEGMENT
|
#if GLIBTOP_SUID_PROC_SEGMENT
|
||||||
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_p
|
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_p
|
||||||
@@ -76,16 +76,6 @@ void glibtop_init_proc_segment_s (glibtop *server);
|
|||||||
void glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
void glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_segment [];
|
|
||||||
extern const unsigned glibtop_types_proc_segment [];
|
|
||||||
extern const char *glibtop_labels_proc_segment [];
|
|
||||||
extern const char *glibtop_descriptions_proc_segment [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -49,7 +49,7 @@ struct _glibtop_proc_signal
|
|||||||
sigcatch [2]; /* mask of caught signals */
|
sigcatch [2]; /* mask of caught signals */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_proc_signal(p1, p2) glibtop_get_proc_signal_l(glibtop_global_server, p1, p2)
|
void glibtop_get_proc_signal(glibtop_proc_signal *buf, pid_t pid);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_SIGNAL
|
#if GLIBTOP_SUID_PROC_SIGNAL
|
||||||
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_p
|
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_p
|
||||||
@@ -67,16 +67,6 @@ void glibtop_init_proc_signal_s (glibtop *server);
|
|||||||
void glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
void glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_signal [];
|
|
||||||
extern const unsigned glibtop_types_proc_signal [];
|
|
||||||
extern const char *glibtop_labels_proc_signal [];
|
|
||||||
extern const char *glibtop_descriptions_proc_signal [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -74,7 +74,7 @@ struct _glibtop_proc_state
|
|||||||
last_processor;
|
last_processor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_proc_state(p1, p2) glibtop_get_proc_state_l(glibtop_global_server, p1, p2)
|
void glibtop_get_proc_state(glibtop_proc_state *buf, pid_t pid);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_STATE
|
#if GLIBTOP_SUID_PROC_STATE
|
||||||
#define glibtop_get_proc_state_r glibtop_get_proc_state_p
|
#define glibtop_get_proc_state_r glibtop_get_proc_state_p
|
||||||
@@ -92,16 +92,6 @@ void glibtop_init_proc_state_s (glibtop *server);
|
|||||||
void glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
void glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_state [];
|
|
||||||
extern const unsigned glibtop_types_proc_state [];
|
|
||||||
extern const char *glibtop_labels_proc_state [];
|
|
||||||
extern const char *glibtop_descriptions_proc_state [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -70,7 +70,8 @@ struct _glibtop_proc_time
|
|||||||
xcpu_stime [GLIBTOP_NCPU]; /* SMP machines. */
|
xcpu_stime [GLIBTOP_NCPU]; /* SMP machines. */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define glibtop_get_proc_time(p1, p2) glibtop_get_proc_time_l(glibtop_global_server, p1, p2)
|
|
||||||
|
void glibtop_get_proc_time(glibtop_proc_time *buf, pid_t pid);
|
||||||
|
|
||||||
#if GLIBTOP_SUID_PROC_TIME
|
#if GLIBTOP_SUID_PROC_TIME
|
||||||
#define glibtop_get_proc_time_r glibtop_get_proc_time_p
|
#define glibtop_get_proc_time_r glibtop_get_proc_time_p
|
||||||
@@ -88,16 +89,6 @@ void glibtop_init_proc_time_s (glibtop *server);
|
|||||||
void glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
void glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef GLIBTOP_NAMES
|
|
||||||
|
|
||||||
/* You need to link with -lgtop_names to get this stuff here. */
|
|
||||||
|
|
||||||
extern const char *glibtop_names_proc_time [];
|
|
||||||
extern const unsigned glibtop_types_proc_time [];
|
|
||||||
extern const char *glibtop_labels_proc_time [];
|
|
||||||
extern const char *glibtop_descriptions_proc_time [];
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user