Compare commits

..

154 Commits

Author SHA1 Message Date
Benoît Dejean
537bf34f94 Released 2.14.4.
2006-09-16  Benoît Dejean  <benoit@placenet.org>

	* NEWS:
	* configure.in:

	Released 2.14.4.
2006-09-16 16:20:52 +00:00
Benoît Dejean
5982287f48 Fixed parsing s?maps on 64bit kernel. Closes #355290. Removed useless
2006-09-11  Benoît Dejean  <benoit@placenet.org>

	* procmap.c: (glibtop_get_proc_map_s):

	Fixed parsing s?maps on 64bit kernel.
	Closes #355290.
	Removed useless casts.
2006-09-11 17:47:51 +00:00
Benoît Dejean
24f5bb1e22 Removed wrong inline documentation. Closes #355286.
2006-09-10  Benoît Dejean  <benoit@placenet.org>

	* configure.in:
	* include/glibtop/procstate.h:

	Removed wrong inline documentation.
	Closes #355286.
2006-09-10 21:53:29 +00:00
Benoît Dejean
499f599e95 Released 2.14.3.
2006-09-05  Benoît Dejean  <benoit@placenet.org>

	* NEWS:

	Released 2.14.3.
2006-09-05 18:38:03 +00:00
Runa Bhattacharjee
71ce0e790b Added Entry for Bengali India Translation Updation 2006-09-01 12:12:00 +00:00
Runa Bhattacharjee
05dfb867a3 Updated Bengali India Translation 2006-09-01 12:11:40 +00:00
Kwok-Koon Cheung
2345eaf4ee recover changelog 2006-09-01 10:47:16 +00:00
Kwok-Koon Cheung
7b3d57c9e9 Add missing entries into LINGUAS 2006-09-01 10:00:57 +00:00
Theppitak Karoonboonyanan
9ebea04e19 Fixed plural strings.
2006-08-27  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Fixed plural strings.
2006-08-27 10:59:49 +00:00
Gabor Kelemen
0cefbb6df0 Translation updated.
2006-08-16  Gabor Kelemen  <kelemeng@gnome.hu>

	* hu.po: Translation updated.
2006-08-16 02:25:49 +00:00
Matic Žgur
272a72d7bc Updated Slovenian translation.
2006-08-14  Matic Žgur  <mr.zgur@gmail.com>

	* sl.po: Updated Slovenian translation.
2006-08-14 09:50:36 +00:00
Benoît Dejean
75f11dc5d6 Fixed inodedb build with --as-needed to please people who want to compile
2006-08-14  Benoît Dejean  <benoit@placenet.org>

        * src/inodedb/Makefile.am:

        Fixed inodedb build with --as-needed to please people
        who want to compile and optimize broken, deprecated and
        never-used feature.
        Patch by Daniel Gryniewicz <dang@gentoo.org>
        Closes #341041.
2006-08-14 07:56:39 +00:00
Benoît Dejean
383b4c480e Bumped version number.
2006-08-10  Benoît Dejean  <benoit@placenet.org>

	* configure.in:

	Bumped version number.

	* glibtop.h:
	* include/glibtop/init_hooks.h:

	Added missing G_(BEGIN|END)_DECLS.
2006-08-10 20:36:58 +00:00
Benoît Dejean
610c0071cc Only print the warning if (number of real cpu's) != (number of cpu's
2006-08-10  Benoît Dejean  <benoit@placenet.org>

	* open.c: (glibtop_open_s):

	Only print the warning if
		(number of real cpu's) != (number of cpu's monitored).
	Patch by Wouter Bolsterlee (uws) <uws+gnome@xs4all.nl>.
	Closes #350705.
2006-08-10 11:21:39 +00:00
Runa Bhattacharjee
08887909fa Added Entry for Bengali India Translation Updation 2006-08-07 07:22:47 +00:00
Runa Bhattacharjee
6bd78a815b Updated Bengali India Translation 2006-08-07 07:22:06 +00:00
Ani Peter
34e8fd7400 Updated Malayalam Translation 2006-08-05 06:05:38 +00:00
Benoît Dejean
1f7f18b399 Released 2.14.2.
2006-07-27  Benoît Dejean  <benoit@placenet.org>

	* NEWS:

	Released 2.14.2.
2006-07-27 18:50:58 +00:00
Benoît Dejean
a7a9e7e9f8 Updated implementation.
2006-07-27  Benoît Dejean  <benoit@placenet.org>

	* netload.c: (glibtop_get_netload_s):

	Updated implementation.
2006-07-27 18:26:38 +00:00
Benoît Dejean
c51a13bf0e Tiny interface addition to handle wireless interfaces.
2006-07-27  Benoît Dejean  <benoit@placenet.org>

	* include/glibtop/netload.h:

	Tiny interface addition to handle wireless interfaces.
2006-07-27 18:25:24 +00:00
Benoît Dejean
d497c25081 New has_sysfs function to avoid stating over and over '/sys' on each
2006-07-27  Benoît Dejean  <benoit@placenet.org>

        * glibtop_private.c: (has_sysfs):
        * glibtop_private.h:
        * netload.c: (glibtop_get_netload_s):
        * open.c: (set_linux_version):

        New has_sysfs function to avoid stating
        over and over '/sys' on each netload call.
2006-07-27 09:23:32 +00:00
Thierry Randrianiriana
3345ef1704 Added Malagasy translation Added Malagasy code 'mg' to the list
* mg.po: Added Malagasy translation
* LINGUAS: Added Malagasy code 'mg' to the list
2006-07-05 19:00:42 +00:00
Runa Bhattacharjee
af52067b3a Added entry for addition of bengali India (bn_IN) translation and to LINGUAS 2006-07-03 13:59:08 +00:00
Runa Bhattacharjee
a3e3a224a2 Added bengali India (bn_IN) 2006-07-03 13:58:56 +00:00
Runa Bhattacharjee
b9e498c0b8 Added Bengali India Translation 2006-07-03 13:58:27 +00:00
Simos Xenitellis
875df72edf Fixed ^M issue with Nepali translation, bug #316750 2006-07-03 08:07:25 +00:00
Benoît Dejean
c5e81bacbf Dropped dead file.
2006-06-26  Benoît Dejean  <benoit@placenet.org>

	* po/Makefile.in.in.in:

	Dropped dead file.
2006-06-26 16:55:18 +00:00
Kwok-Koon Cheung
8663fc3fda Added zh_HK translation 2006-06-26 15:07:56 +00:00
Benoît Dejean
37487d4e62 Fixed build. Closes #341779.
2006-06-25  Benoît Dejean  <benoit@placenet.org>

	* Makefile.am:

	Fixed build.
	Closes #341779.
2006-06-25 08:07:55 +00:00
Benoît Dejean
d52fc3f868 Build examples only when needed. Patch by dmacks@netspace.org. Closes
2006-06-24  Benoît Dejean  <benoit@placenet.org>

	* Makefile.am:

	Build examples only when needed.
	Patch by dmacks@netspace.org.
	Closes #342863.
2006-06-24 17:54:41 +00:00
Benoît Dejean
bc79bf010a Updated the GLIBTOP_SOLARIS_RELEASE
2006-06-24  Benoît Dejean  <benoit@placenet.org>

	* libgtop-sysdeps.m4:
	* sysdeps/solaris/glibtop_machine.h:

	Updated the GLIBTOP_SOLARIS_RELEASE

	Patch by hua.zhang@sun.com.
	Closes #345821.
2006-06-24 17:52:28 +00:00
Benoît Dejean
7f477561f0 Fixed start time.
2006-06-24  Benoît Dejean  <benoit@placenet.org>

	* proctime.c: (glibtop_get_proc_time_s):

	Fixed start time.

	Patch by hua.zhang@sun.com.
	Closes #345819.
2006-06-24 17:47:34 +00:00
Benoît Dejean
c7e0a7ac59 Fixed writable memory.
2006-06-24  Benoît Dejean  <benoit@placenet.org>

	* procmap.c: (glibtop_get_proc_map_s):

	Fixed writable memory.

	Patch by hua.zhang@sun.com.
	Closes #345817.
2006-06-24 17:45:29 +00:00
Benoît Dejean
bc6ff2cb59 Can't get cpu_stat_kstat, didn't close kstat, this will make other program
2006-06-24  Benoît Dejean  <benoit@placenet.org>

	* open.c: (glibtop_get_kstats), (glibtop_open_s):

	Can't get cpu_stat_kstat, didn't close kstat, this will make other
	program used kstat wrong.
	Patch by hua.zhang@sun.com.
	Closes #345814.
2006-06-24 17:39:49 +00:00
Benoît Dejean
1826be8ef6 Fixed. Patch by hua.zhang@sun.com. Closes #345813.
2006-06-24  Benoît Dejean  <benoit@placenet.org>

	* netlist.c: (glibtop_get_netlist_s):

	Fixed.
	Patch by hua.zhang@sun.com.
	Closes #345813.
2006-06-24 17:35:39 +00:00
Benoît Dejean
739e9cac4a Ensure file is closed.
2006-06-24  Benoît Dejean  <benoit@placenet.org>

	* mountlist.c: (read_filesystem_list):

	Ensure file is closed.

	(glibtop_get_mountlist_s):

	Fixed .flags.

	Patch by hua.zhang@sun.com.
	Closes #345812.
2006-06-24 17:28:48 +00:00
Benoît Dejean
8c7e0e6f2e Don't use kvm on newer solaris. Patch by hua.zhang@sun.com. Closes
2006-06-24  Benoît Dejean  <benoit@placenet.org>

	* configure.in:

	Don't use kvm on newer solaris.
	Patch by hua.zhang@sun.com.
	Closes #345811.
2006-06-24 17:20:22 +00:00
Benoît Dejean
46c9f6ebeb Don't use kvm anymore. Patch by hua.zhang@sun.com. Closes #345811.
2006-06-24  Benoît Dejean  <benoit@placenet.org>

	* msg_limits.c: (glibtop_init_msg_limits_p),
	(glibtop_get_msg_limits_p):
	* open_suid.c: (glibtop_open_p):
	* sem_limits.c: (glibtop_init_sem_limits_p),
	(glibtop_get_sem_limits_p):
	* shm_limits.c: (glibtop_init_shm_limits_p),
	(glibtop_get_shm_limits_p):

	Don't use kvm anymore.
	Patch by hua.zhang@sun.com.
	Closes #345811.
2006-06-24 17:16:53 +00:00
Gora Mohanty
e6d6b0bba7 po/LINGUAS: Added 'eo' (Esperanto)
po/eo.po: Added Esperanto translation
po/ChangeLog: Changed to reflect this
2006-06-07 19:06:49 +00:00
Benoît Dejean
8d60c52922 Removed undefined LIBGTOP_HACKER_TESTS. Closes #342890.
2006-06-04  Benoît Dejean  <benoit@placenet.org>

	* libgtop-sysdeps.m4:

	Removed undefined LIBGTOP_HACKER_TESTS.
	Closes #342890.
2006-06-03 22:06:53 +00:00
Benoît Dejean
21f74a6427 Use po/LINGUAS. Closes #337902.
2006-06-03  Benoît Dejean  <benoit@placenet.org>

	* .cvsignore:
	* Makefile.am:
	* configure.in:
	* po/LINGUAS:

	Use po/LINGUAS.
	Closes #337902.
2006-06-03 17:03:47 +00:00
German Poo-Caaman~o
05b94bd263 Changed struct's definitions to be one type-one member. To avoid problems
2006-04-18  German Poo-Caaman~o  <gpoo@ubiobio.cl>

	* /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/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/uptime.h:

	Changed struct's definitions to be one type-one member.  To
	avoid problems with any further gtk-doc's implementation.
2006-04-18 20:17:25 +00:00
Kjartan Maraas
956527cb57 Remove obsolete entry for no_NO And the translation.
2006-04-18  Kjartan Maraas  <kmaraas@gnome.org>

	* configure.in: Remove obsolete entry for no_NO
	* po/no.po: And the translation.
2006-04-18 09:11:53 +00:00
Benoît Dejean
d8f9e265cf Released 2.14.1.
2006-04-10  Benoît Dejean  <benoit@placenet.org>

        * NEWS:

        Released 2.14.1.
2006-04-10 10:18:12 +00:00
Benoît Dejean
64fe5d591b Fixed a bunch of signedness warnings.
2006-04-10  Benoît Dejean  <benoit@placenet.org>

        * lib/open.c: (glibtop_open_l):
        * lib/read.c: (glibtop_read_l):
        * lib/write.c: (glibtop_write_l):

        Fixed a bunch of signedness warnings.
2006-04-10 08:41:46 +00:00
Benoît Dejean
12502c2673 Fixed typo.
2006-04-09  Benoît Dejean  <benoit@placenet.org>

	* fsusage.c: (_glibtop_freebsd_get_fsusage_read_write):

	Fixed typo.
2006-04-09 16:54:29 +00:00
Benoît Dejean
5d2f45803b Fixed trivial warning.
2006-04-09  Benoît Dejean  <benoit@placenet.org>

	* Makefile.am: Fixed trivial warning.
2006-04-09 10:55:03 +00:00
Julio M. Merino Vidal
3c21c70b64 Use configure checks to detect whether we need to define either KERNEL or
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* libgtop-sysdeps.m4:
	* sysdeps/freebsd/msg_limits.c:

	Use configure checks to detect whether we need to define either
	KERNEL or _KERNEL to get the definition of 'struct msginfo' in a
	BSD system.  This replaces the previous checks in the code that
	relied on __FreeBSD__ and similar macros.

	Before this change, the explicit definition of _KERNEL in the
	msg_limits.c file broke the build in NetBSD because it made the
	system headers pull in stuff unavailable to userland.

	Fixes bug #337207.
2006-04-09 10:50:43 +00:00
Julio M. Merino Vidal
9e6115f322 Check for the kvm library and use it to link the suid freebsd sysdeps code
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* libgtop-sysdeps.m4:
	* sysdeps/freebsd/Makefile.am:

	Check for the kvm library and use it to link the suid freebsd
	sysdeps code (only if available).  This library provides all the
	kvm_* functions used in it and is needed, at least, under NetBSD.

	Fixes bug #337247.
2006-04-09 10:12:17 +00:00
Julio M. Merino Vidal
cead508eae Use statvfs(2) if available instead of statfs(2). The latter was replaced
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* sysdeps/freebsd/fsusage.c:

	Use statvfs(2) if available instead of statfs(2).  The latter was
	replaced by the former and is no longer available under, e.g. NetBSD.

	Fixes bug #337235.
2006-04-09 10:08:22 +00:00
Ales Nyakhaychyk
26d85d02fb Updated Belarusian translaiton. 2006-04-07 15:12:07 +00:00
Benoît Dejean
afa9757a0e Store only strings in values' values. g_strdup these strings. Even if
2006-04-04  Benoît Dejean  <benoit@placenet.org>

	* sysinfo.c: (init_sysinfo):

	Store only strings in values' values. g_strdup these strings.
	Even if values is never destroyed, set key_destroy_func to NULL.

	Leave description to NULL.
2006-04-04 21:23:46 +00:00
Julio M. Merino Vidal
80855eabe2 Bring back to life (from the 1.x versions) the sysinfo.c file for the
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* sysdeps/freebsd/Makefile.am:
	* sysdeps/freebsd/sysinfo.c:

	Bring back to life (from the 1.x versions) the sysinfo.c file for
	the freebsd sysdeps.  The new file comes from the FreeBSD ports
	repository and has some minor style changes by me.  This is required
	to get the glibtop_get_sysinfo_s function used by the sysdeps common
	code.

	Fixes bug #337251.
2006-04-04 20:36:43 +00:00
Julio M. Merino Vidal
3558c4d5c3 Synch the list of GLIBTOP_SUID_* constants with those expected by the
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* sysdeps/aix/glibtop_server.h:
	* sysdeps/freebsd/glibtop_server.h:
	* sysdeps/osf1/glibtop_server.h:
	* sysdeps/stub/glibtop_server.h:
	* sysdeps/stub_suid/glibtop_server.h:

	Synch the list of GLIBTOP_SUID_* constants with those expected by
	the lib/sysdeps.c file.  Fixes the build under, at least, NetBSD
	and FreeBSD.

	Fixes bug #337246.
2006-04-04 20:06:14 +00:00
Julio M. Merino Vidal
1870a03538 Remove obsolete and non-functional code that breaks the build under
2006-04-04  Julio M. Merino Vidal  <jmmv@NetBSD.org>

	* sysdeps/freebsd/proctime.c:

	Remove obsolete and non-functional code that breaks the build under
	NetBSD.  It was guarded by a conditional but could not compile
	anyway because it referred to an undefined variable.

	Fixes bug #337234.
2006-04-04 20:01:43 +00:00
Kjartan Maraas
214e1decbd Remove non-existing files. Updated Norwegian bokmål translation.
2006-04-02  Kjartan Maraas  <kmaraas@gnome.org>

	* POTFILES.skip: Remove non-existing files.
	* nb.po: Updated Norwegian bokmål translation.
2006-04-02 12:49:06 +00:00
Benoît Dejean
3c173b95b4 Bumped version to 2.14.1. Removed no longer needed gcc flag.
* configure.in:

	Bumped version to 2.14.1.
	Removed no longer needed gcc flag.
2006-04-02 09:27:48 +00:00
Benoît Dejean
2083db6c34 Fixed a bunch of warnings.
* msg_limits.c: (glibtop_get_msg_limits_s):
	* sem_limits.c: (glibtop_get_sem_limits_s):
	* shm_limits.c: (glibtop_get_shm_limits_s):

	Fixed a bunch of warnings.
2006-04-02 09:16:20 +00:00
Benoît Dejean
a7cf016d67 Reverted. See #336837
* configure.in:
	* src/daemon/daemon.h:
	* src/daemon/gnuserv.c: (main):

	Reverted. See #336837
2006-04-02 09:09:41 +00:00
Michael Terry
ec7922c6bd bug 336837: convert from popt to goption 2006-04-02 03:58:45 +00:00
Guntupalli Karunakar
c2104f2f0b Added Dzongkha translation 2006-03-30 15:27:29 +00:00
Yair Hershkovitz
47776e8f21 Updated Hebrew translation 2006-03-27 15:41:46 +00:00
Gora Mohanty
88cd202147 po/or.po: Updated Oriya translation.
po/Changelog: Changed to reflect this.
2006-03-21 18:44:20 +00:00
Vladimer Sichinava
6226594f04 Update Georgian translation 2006-03-18 02:32:28 +00:00
Benoît Dejean
580558333e Released 2.14.0.
* NEWS:
	* configure.in:

	Released 2.14.0.
2006-03-13 09:14:52 +00:00
Žygimantas Beručka
702e3775c3 Updated Lithuanian translation.
2006-03-03  Žygimantas Beručka  <zygis@gnome.org>

	* lt.po: Updated Lithuanian translation.
2006-03-03 10:25:08 +00:00
Clytie Siddall
a597640830 lv.po: Updated Latvian translation. 2006-02-28 05:15:51 +00:00
Benoît Dejean
a956784797 Released 2.13.92.
* NEWS:
        * configure.in:

        Released 2.13.92.
2006-02-27 08:26:56 +00:00
Benoît Dejean
e71023b362 Added proc_mem example.
* pprint.c: (pprint_get_proc_mem), (main):

        Added proc_mem example.
2006-02-27 08:14:12 +00:00
Benoît Dejean
89f9c1d43a Fixed glibtop_get_proc_state doc. Patch by Emil Nowak <emil5@go2.pl>.
* reference.texi: Fixed glibtop_get_proc_state doc.
        Patch by Emil Nowak <emil5@go2.pl>.
2006-02-21 10:17:21 +00:00
Benoît Dejean
29adf02352 Also ignores linprocfs, mfs and devfs. Closes #331856. Patch by Andreas
* mountlist.c: (ignore_mount_entry): Also ignores linprocfs, mfs
	and devfs.
	Closes #331856.
	Patch by Andreas Kohn <andreas.kohn@gmail.com>
2006-02-21 09:06:40 +00:00
Benoît Dejean
35030c878b Bump version to 2.13.4. Reordered libs. Closes #329153.
* configure.in:

	Bump version to 2.13.4.
	Reordered libs. Closes #329153.
2006-02-20 18:58:41 +00:00
Benoît Dejean
9b916ee402 Released 2.13.3.
* configure.in:
	* NEW:

	Released 2.13.3.
2006-01-23 18:02:22 +00:00
Benoît Dejean
23ca9669ae I can't believe i've been so stupid :) Uses smaps if linux > 2.6.14.
* procmap.c: (glibtop_get_proc_map_s):

	I can't believe i've been so stupid :)
	Uses smaps if linux > 2.6.14.
2006-01-23 16:41:10 +00:00
Benoît Dejean
d66ae501f9 /me stupid. Revert last commit. Sorry 2006-01-02 17:43:45 +00:00
Benoît Dejean
ccb10a7b33 Updated. 2006-01-02 17:13:18 +00:00
Benoît Dejean
9d2131a4b5 Released 2.13.2.
* NEWS:
	* configure.in:

	Released 2.13.2.
2006-01-02 13:13:11 +00:00
James Henstridge
7d3059e732 add quotes around symbol definition.
2006-01-02  James Henstridge  <james@jamesh.id.au>

	* configure.in (LT_VERSION_INFO): add quotes around symbol definition.
2006-01-02 11:30:32 +00:00
Benoît Dejean
d3add9e115 Released 2.13.1.
* configure.in:
	* NEWS:

	Released 2.13.1.
2005-12-15 13:10:53 +00:00
Benoît Dejean
101fe5874f Improved example.
* proclist.c: (print_pids), (main):

	Improved example.
2005-12-15 13:05:55 +00:00
Benoît Dejean
3afe2bf629 Fixed when which == GLIBTOP_KERN_PROC_UID. Closes #324055.
* proclist.c: (glibtop_get_proclist_s):

	Fixed when which == GLIBTOP_KERN_PROC_UID.
	Closes #324055.
2005-12-15 13:04:04 +00:00
Benoît Dejean
e296c3a37a Implemented server->real_ncpu. Add a warning to display ncpu and real_ncpu
* open.c: (glibtop_open_s):

	Implemented server->real_ncpu.
	Add a warning to display ncpu and real_ncpu on open.
2005-12-14 10:53:53 +00:00
Benoît Dejean
2f3120d6c9 Released 2.13.0.
* NEWS:

	Released 2.13.0.
2005-12-13 09:23:02 +00:00
Benoît Dejean
806a816026 Fixed server->ncpu usage (SMP handling). Need more testing.
* cpu.c: (glibtop_get_cpu_s):
	* glibtop_private.c: (get_scaled), (check_cpu_line):
	* glibtop_private.h:
	* open.c: (glibtop_open_s):
	* proctime.c: (glibtop_get_proc_time_s):

	Fixed server->ncpu usage (SMP handling). Need more testing.
2005-12-13 09:15:49 +00:00
Benoît Dejean
ba7355df9e Implemented smap support. Closes #320710.
* procmap.c: (add_smaps), (glibtop_get_proc_map_s):

	Implemented smap support.
	Closes #320710.
2005-12-12 13:37:15 +00:00
Benoît Dejean
451f9f9d6c Improved so that it doesn't stat(2) every /proc/<PID>/.
* proclist.c: (glibtop_get_proclist_s):

	Improved so that it doesn't stat(2) every /proc/<PID>/.
2005-12-12 13:32:06 +00:00
Benoît Dejean
52fa57a39b Added quick example for glibtop_get_proclist() and updated procmap example
* .cvsignore:
	* Makefile.am:
	* proclist.c: (main):
	* procmap.c: (main):

	Added quick example for glibtop_get_proclist()
	and updated procmap example to display smap.
2005-12-12 13:23:54 +00:00
James Henstridge
aa5ac8fc10 remove unused file.
2005-12-12  James Henstridge  <james@jamesh.id.au>

	* doc/auto-macros.texi.in: remove unused file.

	* doc/libgtop2.texi: don't include auto-macros.texi.

	* doc/Makefile.am: don't build auto-macros.texi, since none of its
	macros are used in the documentation any more.

	* include/glibtop/global.h: don't include <config.h> from headers.

	* .../*.c: make sure <config.h> is the first thing included.

	* acinclude.m4: m4_include() libgtop-sysdeps.m4 rather than
	inlining it.

	* acinclude.m4, libgtop-sysdeps.m4: use third argument to
	AC_DEFINE() to set the comment.

	* configure.in: modernise a bit.

	* acconfig.h: remove file, since it is deprecated

	* autogen.sh: require automake 1.9 instead of 1.4.
2005-12-12 09:38:15 +00:00
Benoît Dejean
a7db1f4dfd Increased GLIBTOP_NCPU to 32. Added real_ncpu to struct glibtop. Added
* configure.in:
	* glibtop.h:
	* include/glibtop/cpu.h:
	* include/glibtop/procmap.h:

	Increased GLIBTOP_NCPU to 32.
	Added real_ncpu to struct glibtop.
	Added smaps members to glibtop_map_entry.

	Bumped version number to 2.13.0
	Broke ABI again. Sorry.
2005-12-09 16:15:44 +00:00
Benoît Dejean
91a312768d Dropped unused file and updated documentation.
* doc/reference.texi:
        * include/glibtop/limits.h:

        Dropped unused file and updated documentation.
2005-12-08 10:25:56 +00:00
Benoît Dejean
d9a666470c Bumped version number.
* configure.in:

        Bumped version number.
2005-12-07 09:52:36 +00:00
Benoît Dejean
79fc0e70c0 Small improvements. Use g_array_sized_new instead of g_array_new with
* procmap.c: (glibtop_get_proc_map_s):

        Small improvements.
        Use g_array_sized_new instead of g_array_new with
        reserved_size = 100.
        Don't use g_array_append_val to avoid copying
        glibtop_map_entries. Use g_array_set_size(size + 1) instead.

        I've run a little python benchmark and this shows a little
        speedup. I hope this would be more sensible in
        gnome-system-monitor (glibtop_get_procmap is intensively used for
        the 'Writable Memory' column).
2005-12-07 09:35:50 +00:00
Theppitak Karoonboonyanan
532f5ceb4f Added 'th' (Thai) to ALL_LINGUAS. Added Thai translation.
2005-12-04  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* configure.in: Added 'th' (Thai) to ALL_LINGUAS.
	* po/th.po: Added Thai translation.
2005-12-04 10:08:56 +00:00
Benoît Dejean
a326e2dcac Released 2.12.2. No 2.12.1.
* NEWS:
	* configure.in:

	Released 2.12.2.
	No 2.12.1.
2005-11-29 11:04:28 +00:00
Timur Jamakeev
8a626d9f97 Added 'ky' to ALL_LINGUAS.
2005-11-17  Timur Jamakeev  <timurj@cvs.gnome.org>

	* configure.in: Added 'ky' to ALL_LINGUAS.
2005-11-17 11:50:34 +00:00
Priit Laes
a6513af1c6 Translation updated by Ivar Smolin.
2005-11-16  Priit Laes  <plaes@cvs.gnome.org>

	* et.po: Translation updated by Ivar Smolin.
2005-11-16 06:23:21 +00:00
Benoît Dejean
95b2dfa326 Dropped many dead files. Bumped release number. I guess this closes
* 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-30 18:46:27 +00:00
Benoît Dejean
ac3ad6d2aa Removed 1 g_return_*.
* glibtop_private.c: (read_boot_time):

	Removed 1 g_return_*.
2005-10-29 19:23:50 +00:00
Erdal Ronahi
4186c9a956 Added Kurdish translation 2005-10-28 21:45:43 +00:00
Christian Rose
7770480ad2 Reverted unauthorized changes made by user 'kloczek'.
2005-10-03  Christian Rose  <menthos@menthos.com>

	* sv.po: Reverted unauthorized changes made by
	user 'kloczek'.
2005-10-02 22:17:33 +00:00
Runa Bhattacharjee
50f20979df Added entry for Bengali (bn) Translation updation:10/01 2005-10-01 09:55:48 +00:00
Runa Bhattacharjee
78ec6945df Updated Bengali (bn) Translaion:10/01 2005-10-01 09:55:32 +00:00
Tomasz Kłoczko
170b03f4f2 s/charset=utf-8/charset=UTF-8/ 2005-09-25 16:25:35 +00:00
Tomasz Kłoczko
c183276e2b remove outdated strings and run "make update-po". 2005-09-25 16:24:46 +00:00
Inaki Larranaga
d7945bdc36 Updated Basque translation.
2005-09-08  Inaki Larranaga  <dooteo@euskalgnu.org>

	* eu.po: Updated Basque translation.
2005-09-08 19:29:41 +00:00
Benoît Dejean
2930c9f092 Released 2.12.0.
* NEWS:
        * configure.in:

        Released 2.12.0.
2005-09-04 22:31:58 +00:00
Josep Puigdemont i Casamajó
fe6a33a5fd Fixed some typos and strings. 2005-09-03 23:17:21 +00:00
Telsa Gwynne
30ebfb45d0 Updated Welsh Translation 2005-08-29 19:34:50 +00:00
Benoît Dejean
b43a1e01c0 Hum hum, it's better if release number is 2.11.92 too.
* configure.in:

	Hum hum, it's better if release number is 2.11.92 too.
2005-08-22 17:06:23 +00:00
Benoît Dejean
88d606d814 Released 2.11.92.
* NEWS:

	Released 2.11.92.
2005-08-22 17:02:57 +00:00
Mugurel Tudor
dd0d06898a Updated Romanian translation by Misu Moldovan <dumol@gnome.ro>
2005-08-22  Mugurel Tudor  <mugurelu@gnome.ro>

        * ro.po: Updated Romanian translation
	 by Misu Moldovan <dumol@gnome.ro>
2005-08-21 23:37:57 +00:00
Benoît Dejean
3e77f3cf13 Do not add irq, softirq and iowait to idle.
* cpu.c: (glibtop_get_cpu_s):

	Do not add irq, softirq and iowait to idle.
2005-08-15 00:09:47 +00:00
Benoît Dejean
22a1120348 Added missing includes. Added missing GLIBTOP_SUID_NETLIST.
* glibtop_server.h:
	* open.c:
	* open_suid.c:
	* procdata.c:

	Added missing includes.
	Added missing GLIBTOP_SUID_NETLIST.
2005-08-12 14:55:38 +00:00
Benoît Dejean
da4dc46b7a Released 2.11.91.
* NEWS:

	Released 2.11.91.
2005-08-07 23:12:39 +00:00
Benoît Dejean
03bcc48da6 Removed static examples.
* configure.in:
	* examples/Makefile.am:

	Removed static examples.
2005-08-03 22:47:19 +00:00
Benoît Dejean
708285f0d2 Reworked a bit. Warn on 2.6 without /sys.
* open.c: (set_linux_version), (glibtop_open_s):

	Reworked a bit.
	Warn on 2.6 without /sys.
2005-08-03 22:39:17 +00:00
Benoît Dejean
a0493a0ff1 Fixed for people running 2.6 without /sys.
* netload.c: (glibtop_get_netload_s):

	Fixed for people running 2.6 without /sys.
2005-08-03 13:26:06 +00:00
Dave Neary
9f7d505d20 Fix a C formatting string translation.
2005-08-02  Dave Neary  <bolsh@gimp.org>

	* tr.po: Fix a C formatting string translation.
2005-08-03 13:21:44 +00:00
Benoît Dejean
78cb7832c5 Moved _glibtop_init_hook_[sp] declaration to private glibtop/init_hooks.h.
* 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-08-02 09:47:21 +00:00
Benoît Dejean
b3979e6942 Added GLIBTOP_SUID_NETLIST.
* glibtop_server.h:

	Added GLIBTOP_SUID_NETLIST.
2005-08-02 05:04:35 +00:00
Benoît Dejean
92d3176303 Added pprint_get_proc_kernel(pid).
Fixed prototypes.
2005-08-02 04:39:13 +00:00
Alexander Shopov
e5c7f87f50 Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>
2005-06-28  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Alexander Shopov <ash@contact.bg>
2005-07-28 11:01:25 +00:00
Benoît Dejean
7e506a6c83 Released 2.11.90.
* NEWS:
        * configure.in: Released 2.11.90.
2005-07-25 13:20:08 +00:00
Benoît Dejean
1645027004 Fixed .flags.
* uptime.c:

	Fixed .flags.
2005-07-23 00:01:11 +00:00
Benoît Dejean
8e656af060 2.11.3 post release version bump.
* configure.in: 2.11.3 post release version bump.
2005-07-22 19:24:40 +00:00
Benoît Dejean
4efcfb2cb3 Cached getpagesize().
* glibtop_private.c: (get_page_size):
	* glibtop_private.h:
	* procmem.c: (glibtop_get_proc_mem_s):
	* procsegment.c: (glibtop_get_proc_segment_s):

	Cached getpagesize().
2005-07-22 19:20:39 +00:00
Nguyen Thai Ngoc Duy
59da1618b0 Merged from gnome-2.10 2005-07-21 11:47:39 +00:00
Ivan Stojmirov
e9ce3ccc1c done 2005-07-20 16:02:35 +00:00
Benoît Dejean
84e45a6519 Released 2.11.2.
* NEWS: Released 2.11.2.
2005-07-13 14:50:16 +00:00
Benoît Dejean
96fe554afd Split implementations. New (simpler) implementation for 2.6 (/sys is so
* netload.c: (read_value), (linux_2_6_stats), (linux_2_0_stats),
	(linux_2_4_stats), (glibtop_get_netload_s): Split implementations.
	New (simpler) implementation for 2.6 (/sys is so nice ;)
2005-07-09 21:09:15 +00:00
Benoît Dejean
16e0c943b2 Cached boot_time.
* glibtop_private.c: (read_boot_time), (get_boot_time): Cached boot_time.
2005-07-07 19:34:18 +00:00
Benoît Dejean
f409c553f5 Et m***e ... CVS got me. I wanted to commit a single change on the
toplevel configure.in but commited the whole tree. Sorry.

	* glibtop_private.c:
	* glibtop_private.h:
	* proctime.c:
	* uptime.c:

	Added new function get_boot_time.

	Retrieve boot_time from /proc/stat.
2005-07-05 23:08:58 +00:00
Benoît Dejean
b6a10fd8f7 Made some checks solaris only.
* configure.in: Made some checks solaris only.
2005-07-05 23:05:20 +00:00
Benoît Dejean
efeca4a865 2.11.2 post release version bump.
* configure.in: 2.11.2 post release version bump.
2005-07-05 23:02:46 +00:00
Hendrik Richter
5e70932b66 Fixed German translation by Jens Seidel <jensseidel@users.sf.net>.
2005-07-04  Hendrik Richter  <hendi@gnome-de.org>

	* de.po: Fixed German translation by
	Jens Seidel <jensseidel@users.sf.net>.
2005-07-04 18:01:16 +00:00
Benoît Dejean
d499bd3761 Released 2.11.1.
* NEWS: Released 2.11.1.
2005-07-03 10:08:38 +00:00
Ivan Stojmirov
48e3d5b2ec translated 100% 2005-07-02 10:17:37 +00:00
Rajesh Ranjan
55270e618e updted by rranjan@redhat.com 2005-06-24 07:53:11 +00:00
Kwok-Koon Cheung
a5c897b846 fix language team reference 2005-06-24 03:32:09 +00:00
Alexander Shopov
b0093954b3 Updated Bulgarian translation by Rostislav Raykov <zbrox@i-space.org>
2005-06-15  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Rostislav Raykov <zbrox@i-space.org>
2005-06-15 13:26:39 +00:00
Benoît Dejean
c81e055427 Removed LT_VERSION_INFO from LDFLAGS when unused.
* sysdeps/common/Makefile.am:
	* sysdeps/linux/Makefile.am: Removed LT_VERSION_INFO from LDFLAGS
	when unused.
2005-06-14 22:21:06 +00:00
Benoît Dejean
06fb19b5c6 Ensures buffer is 0-terminated.
* glibtop_private.c: (try_file_to_buffer): Ensures buffer is 0-terminated.
2005-06-14 22:17:49 +00:00
Ignacio Casal Quinteiro
f8d9557257 *** empty log message *** 2005-06-13 15:28:03 +00:00
Benoît Dejean
ef2ed50bf7 Added pagein/pageout for linux 2.6.
* swap.c: (glibtop_get_swap_s): Added pagein/pageout for linux 2.6.
2005-06-13 09:03:41 +00:00
Benoît Dejean
c19ba1af03 2.11.1 post release version bump.
* configure.in: 2.11.1 post release version bump.
2005-06-08 08:55:03 +00:00
Benoît Dejean
c1e5bdfb16 Released 2.11.0.
* NEWS: Released 2.11.0.
2005-06-08 08:41:13 +00:00
Benoît Dejean
be7dabf75d Added a lot of new functions to replace dirty macros. Every macro
* 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-07 09:54:44 +00:00
Benoît Dejean
d37b1b9a2e Bye bye.
* dtd/: Bye bye.
2005-06-06 12:42:41 +00:00
Benoît Dejean
6f755a5ca7 Removed useless files.
* backends/: Removed useless files.
2005-06-06 12:40:47 +00:00
Benoît Dejean
4cd022b315 Removed translation.
* 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 12:33:42 +00:00
Benoît Dejean
69873a143d bye bye support.
* acinclude.m4: bye bye support.
2005-06-06 11:50:00 +00:00
Benoît Dejean
f5655f12d3 Removed unused files.
* support/ : Removed unused files.
2005-06-06 11:46:39 +00:00
Benoît Dejean
a71839c0a7 Got rid of include/libgtop-i18n.h.
* 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 11:25:36 +00:00
Benoît Dejean
74d9b24132 version bump.
* configure.in: version bump.
2005-06-06 10:02:33 +00:00
434 changed files with 8071 additions and 56715 deletions

View File

@@ -40,3 +40,9 @@ install-sh
missing
mkinstalldirs
libgtopconfig.h
intltool-extract.in
intltool-extract
intltool-merge.in
intltool-merge
intltool-update.in
intltool-update

539
ChangeLog
View File

@@ -1,6 +1,541 @@
2005-06-13 Benoît Dejean <TazForEver@dlfp.org>
2006-09-16 Benoît Dejean <benoit@placenet.org>
* NEWS: Released 2.10.2.
* NEWS:
* configure.in:
Released 2.14.4.
2006-09-10 Benoît Dejean <benoit@placenet.org>
* configure.in:
* include/glibtop/procstate.h:
Removed wrong inline documentation.
Closes #355286.
2006-09-05 Benoît Dejean <benoit@placenet.org>
* NEWS:
Released 2.14.3.
2006-08-14 Benoît Dejean <benoit@placenet.org>
* src/inodedb/Makefile.am:
Fixed inodedb build with --as-needed to please people
who want to compile and optimize broken, deprecated and
never-used feature.
Patch by Daniel Gryniewicz <dang@gentoo.org>
Closes #341041.
2006-08-10 Benoît Dejean <benoit@placenet.org>
* configure.in:
Bumped version number.
* glibtop.h:
* include/glibtop/init_hooks.h:
Added missing G_(BEGIN|END)_DECLS.
2006-07-27 Benoît Dejean <benoit@placenet.org>
* NEWS:
Released 2.14.2.
2006-07-27 Benoît Dejean <benoit@placenet.org>
* include/glibtop/netload.h:
Tiny interface addition to handle wireless interfaces.
2006-06-26 Benoît Dejean <benoit@placenet.org>
* po/Makefile.in.in.in:
Dropped dead file.
2006-06-25 Benoît Dejean <benoit@placenet.org>
* Makefile.am:
Fixed build.
Closes #341779.
2006-06-24 Benoît Dejean <benoit@placenet.org>
* Makefile.am:
Build examples only when needed.
Patch by dmacks@netspace.org.
Closes #342863.
2006-06-24 Benoît Dejean <benoit@placenet.org>
* libgtop-sysdeps.m4:
* sysdeps/solaris/glibtop_machine.h:
Updated the GLIBTOP_SOLARIS_RELEASE
Patch by hua.zhang@sun.com.
Closes #345821.
2006-06-24 Benoît Dejean <benoit@placenet.org>
* configure.in:
Don't use kvm on newer solaris.
Patch by hua.zhang@sun.com.
Closes #345811.
2006-06-04 Benoît Dejean <benoit@placenet.org>
* libgtop-sysdeps.m4:
Removed undefined LIBGTOP_HACKER_TESTS.
Closes #342890.
2006-06-03 Benoît Dejean <benoit@placenet.org>
* .cvsignore:
* Makefile.am:
* configure.in:
* po/LINGUAS:
Use po/LINGUAS.
Closes #337902.
2006-04-18 German Poo-Caaman~o <gpoo@ubiobio.cl>
* /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/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/uptime.h:
Changed struct's definitions to be one type-one member. To
avoid problems with any further gtk-doc's implementation.
2006-04-18 Kjartan Maraas <kmaraas@gnome.org>
* configure.in: Remove obsolete entry for no_NO
* po/no.po: And the translation.
2006-04-10 Benoît Dejean <benoit@placenet.org>
* NEWS:
Released 2.14.1.
2006-04-10 Benoît Dejean <benoit@placenet.org>
* lib/open.c: (glibtop_open_l):
* lib/read.c: (glibtop_read_l):
* lib/write.c: (glibtop_write_l):
Fixed a bunch of signedness warnings.
2006-04-04 Julio M. Merino Vidal <jmmv@NetBSD.org>
* libgtop-sysdeps.m4:
* sysdeps/freebsd/msg_limits.c:
Use configure checks to detect whether we need to define either
KERNEL or _KERNEL to get the definition of 'struct msginfo' in a
BSD system. This replaces the previous checks in the code that
relied on __FreeBSD__ and similar macros.
Before this change, the explicit definition of _KERNEL in the
msg_limits.c file broke the build in NetBSD because it made the
system headers pull in stuff unavailable to userland.
Fixes bug #337207.
2006-04-04 Julio M. Merino Vidal <jmmv@NetBSD.org>
* libgtop-sysdeps.m4:
* sysdeps/freebsd/Makefile.am:
Check for the kvm library and use it to link the suid freebsd
sysdeps code (only if available). This library provides all the
kvm_* functions used in it and is needed, at least, under NetBSD.
Fixes bug #337247.
2006-04-04 Julio M. Merino Vidal <jmmv@NetBSD.org>
* sysdeps/aix/glibtop_server.h:
* sysdeps/freebsd/glibtop_server.h:
* sysdeps/osf1/glibtop_server.h:
* sysdeps/stub/glibtop_server.h:
* sysdeps/stub_suid/glibtop_server.h:
Synch the list of GLIBTOP_SUID_* constants with those expected by
the lib/sysdeps.c file. Fixes the build under, at least, NetBSD
and FreeBSD.
Fixes bug #337246.
2006-04-02 Benoît Dejean <benoit@placenet.org>
* configure.in:
Bumped version to 2.14.1.
Removed no longer needed gcc flag.
2006-04-02 Benoît Dejean <benoit@placenet.org>
* configure.in:
* src/daemon/daemon.h:
* src/daemon/gnuserv.c: (main):
Reverted. See #336837
2006-03-18 Vladimer Sichinava <vlsichinava@gmail.com>
* configure.in: Added "ka" (Georgian) to ALL_LINGUAS
2006-03-13 Benoît Dejean <benoit@placenet.org>
* NEWS:
* configure.in:
Released 2.14.0.
2006-02-27 Benoît Dejean <benoit@placenet.org>
* NEWS:
* configure.in:
Released 2.13.92.
2006-02-20 Benoît Dejean <benoit@placenet.org>
* configure.in:
Bump version to 2.13.4.
Reordered libs. Closes #329153.
2006-01-23 Benoît Dejean <benoit@placenet.org>
* configure.in:
* NEW:
Released 2.13.3.
2006-01-02 Benoît Dejean <benoit@placenet.org>
* NEWS:
* configure.in:
Released 2.13.2.
2006-01-02 James Henstridge <james@jamesh.id.au>
* configure.in (LT_VERSION_INFO): add quotes around symbol definition.
2005-12-15 Benoît Dejean <benoit@placenet.org>
* configure.in:
* NEWS:
Released 2.13.1.
2005-12-13 Benoît Dejean <benoit@placenet.org>
* NEWS:
Released 2.13.0.
2005-12-12 James Henstridge <james@jamesh.id.au>
* doc/auto-macros.texi.in: remove unused file.
* doc/libgtop2.texi: don't include auto-macros.texi.
* doc/Makefile.am: don't build auto-macros.texi, since none of its
macros are used in the documentation any more.
* include/glibtop/global.h: don't include <config.h> from headers.
* .../*.c: make sure <config.h> is the first thing included.
* acinclude.m4: m4_include() libgtop-sysdeps.m4 rather than
inlining it.
* acinclude.m4, libgtop-sysdeps.m4: use third argument to
AC_DEFINE() to set the comment.
* configure.in: modernise a bit.
* acconfig.h: remove file, since it is deprecated
* autogen.sh: require automake 1.9 instead of 1.4.
2005-12-09 Benoît Dejean <benoit@placenet.org>
* configure.in:
* glibtop.h:
* include/glibtop/cpu.h:
* include/glibtop/procmap.h:
Increased GLIBTOP_NCPU to 32.
Added real_ncpu to struct glibtop.
Added smaps members to glibtop_map_entry.
Bumped version number to 2.13.0
Broke ABI again. Sorry.
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>

View File

@@ -1,3 +1,3 @@
Email: martin@home-of-linux.org
Email: dave@srce.hr
Benoît Dejean (tazforever@dlfp.org)
Current maintainer : Benoît Dejean (benoit@placenet.org)

View File

@@ -1,5 +1,11 @@
SUBDIRS = po misc include sysdeps lib src examples doc
if EXAMPLES
EXAMPLES_DIR = examples
else
EXAMPLES_DIR =
endif
SUBDIRS = po misc include sysdeps lib src $(EXAMPLES_DIR) doc
libgtopinclude_HEADERS = glibtop.h libgtopconfig.h
libgtopincludedir = $(includedir)/libgtop-2.0
@@ -7,7 +13,15 @@ libgtopincludedir = $(includedir)/libgtop-2.0
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \
features.def libgtopconfig.h.in \
libgtop-sysdeps.m4 README \
libgtop-2.0.pc.in acinclude.m4
libgtop-2.0.pc.in acinclude.m4 \
intltool-extract.in \
intltool-merge.in \
intltool-update.in
DISTCLEANFILES = \
intltool-extract \
intltool-merge \
intltool-update
dist-hook:
cp libgtop.spec $(distdir)

101
NEWS
View File

@@ -1,10 +1,99 @@
June 12, 2005: Overview of changes from 2.10.1 to 2.10.2
========================================================
* glibtop_get_mountlist() : Added tmpfs to ignore list.
* Re-install open.h to please GTop (libgtop perl wrapper).
September 16, 2006: Overview of changes in 2.14.4
=================================================
* Fixed linux maps/smaps parsing on 64bit kernel.
September 5, 2006: Overview of changes in 2.14.3
================================================
* Fixed build with --as-needed.
* Added missing G_BEGIN_DECLS/G_END_DECLS.
July 27, 2006: Overview of changes in 2.14.2
============================================
* Updated solaris support (hua.zhang@sun.com)
* Small linux updates and improvments.
April 10, 2006: Overview of changes in 2.14.1
=============================================
* Updated translations.
* Fixed NetBSD port (Julio M. Merino Vidal <jmmv@NetBSD.org>).
* Fixed some warnings.
Mars 13, 2006: Overview of changes in 2.14.0
============================================
* Updated translations.
February 27, 2006: Overview of changes in 2.13.92
=================================================
* Fixed proc_state documentation.
* Updated mountlist ignore list.
January 23, 2006: Overview of changes in 2.13.3
===============================================
* linux:
- fixe get_procmap for linux < 2.6.14.
January 2, 2006: Overview of changes in 2.13.2
==============================================
* Fixed libtool versioning (James Henstridge)
December 15, 2005: Overview of changes in 2.13.1
================================================
* linux:
- fixed proclist
- implemented server->real_ncpu
December 13, 2005: Overview of changes in 2.13.0
================================================
* Requires automake-1.9 (James Henstridge)
* Supports up to 32 CPU
* Supports Linux smaps
* linux: fixed SMP detection
This release is not ABI compatible with previous releases. Sorry.
November 29, 2005: Overview of changes from 2.12.0 to 2.12.1
============================================================
* Dropped dead files
* linux: 1-line cleanup.
September 4, 2005: Overview of changes from 2.11.92 to 2.12.0
=============================================================
* Updated translations.
August 22, 2005: Overview of changes from 2.11.91 to 2.11.92
============================================================
* Linux:
* Fixed compilation on mips.
* Added pagein/pageout for 2.6.
- 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
=========================================================

View File

@@ -1,168 +0,0 @@
/* Define if gethostname () must be declared. */
#undef NEED_DECLARATION_GETHOSTNAME
/* Define if setreuid () must be declared. */
#undef NEED_DECLARATION_SETREUID
/* Define if setregid () must be declared. */
#undef NEED_DECLARATION_SETREGID
/* Define if getpagesize () must be declared. */
#undef NEED_DECLARATION_GETPAGESIZE
/* Define if program_invocation_name must be declared. */
#undef NEED_DECLARATION_PROGRAM_INVOCATION_NAME
@TOP@
#undef ENABLE_NLS
#undef HAVE_CATGETS
#undef GETTEXT_PACKAGE
#undef HAVE_GETTEXT
#undef HAVE_LC_MESSAGES
#undef HAVE_STPCPY
#undef HAVE_STRUCT_OSOCKADDR
#undef PACKAGE
#undef VERSION
#undef HAVE_LIBSM
#undef HAVE_LIBINTL_H
#undef HAVE_GTK_SIGNAL_HANDLER_PENDING
/* Do not remove this comments and the empty lines; they are needed */
#undef HAVE_PROGRAM_INVOCATION_SHORT_NAME
/* Define if you have the Andrew File System. */
#undef AFS
/* Define one of the following to indicate how a program can
get a list of mounted filesystems. */
/* Define if there is no specific function for reading the list of
mounted filesystems. fread will be used to read /etc/mnttab. [SVR2] */
#undef MOUNTED_FREAD
/* Define if (like SVR2) there is no specific function for reading the
list of mounted filesystems, and your system has these header files:
<sys/fstyp.h> and <sys/statfs.h>. [SVR3] */
#undef MOUNTED_FREAD_FSTYP
/* Define if there is a function named getfsstat for reading the list
of mounted filesystems. [DEC Alpha running OSF/1] */
#undef MOUNTED_GETFSSTAT
/* Define if there is a function named getmnt for reading the list of
mounted filesystems. [Ultrix] */
#undef MOUNTED_GETMNT
/* Define if there is a function named getmntent for reading the list
of mounted filesystems, and that function takes a single argument.
[4.3BSD, SunOS, HP-UX, Dynix, Irix] */
#undef MOUNTED_GETMNTENT1
/* Define if there is a function named getmntent for reading the list of
mounted filesystems, and that function takes two arguments. [SVR4] */
#undef MOUNTED_GETMNTENT2
/* Define if there is a function named getmntinfo for reading the list
of mounted filesystems. [4.4BSD] */
#undef MOUNTED_GETMNTINFO
/* Define if there is a function named listmntent that can be used to
list all mounted filesystems. [UNICOS] */
#undef MOUNTED_LISTMNTENT
/* Define if there is a function named mntctl that can be used to read
the list of mounted filesystems, and there is a system header file
that declares `struct vmount.' [AIX] */
#undef MOUNTED_VMOUNT
/* Define one of the following to indicate how a program can obtain
filesystems usage information. */
/* Define if statfs takes 3 args. [DEC Alpha running OSF/1] */
#undef STAT_STATFS3_OSF1
/* Define if there is no specific function for reading filesystems usage
information and you have the <sys/filsys.h> header file. [SVR2] */
#undef STAT_READ_FILSYS
/* Define if statfs takes 2 args and struct statfs has a field named f_bsize.
[4.3BSD, SunOS 4, HP-UX, AIX PS/2] */
#undef STAT_STATFS2_BSIZE
/* Define if statfs takes 2 args and struct statfs has a field named f_fsize.
[4.4BSD, NetBSD] */
#undef STAT_STATFS2_FSIZE
/* Define if statfs takes 2 args and the second argument has
type struct fs_data. [Ultrix] */
#undef STAT_STATFS2_FS_DATA
/* Define if statfs takes 4 args. [SVR3, Dynix, Irix, Dolphin] */
#undef STAT_STATFS4
/* Define if there is a function named statvfs. [SVR4] */
#undef STAT_STATVFS
/* Define if the block counts reported by statfs may be truncated to 2GB
and the correct values may be stored in the f_spare array.
[SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
SunOS 4.1.1 seems not to be affected.] */
#undef STATFS_TRUNCATES_BLOCK_COUNTS
/* to fix a bug in autoheader on DEC OSF1. */
#undef HAVE_PROGRAM_INVOCATION_NAME
#undef HAVE_SOCKETS
#undef HAVE_SOCKADDR_SUN_LEN
#undef HAVE_LIBJPEG
#undef HAVE_LIBGIF
#undef HAVE_LIBTIFF
#undef HAVE_LIBZ
#undef HAVE_LIBPNG
#undef HAVE_GMP2_INCLUDE_DIR
#undef HAVE_GUILE
#undef ssize_t
#undef guint64
#undef int64_t
#undef HAVE_GLIBTOP_MACHINE_H
#undef GLIBTOP_GUILE
#undef GLIBTOP_GUILE_NAMES
#undef GLIBTOP_EXAMPLES
#undef GLIBTOP_INODEDB
#undef NEED_LIBGTOP
#undef HAVE_LIBGTOP_SMP
#undef HAVE_XAUTH
/* Define if your have the I4B package. */
#undef HAVE_I4B
#undef HAVE_I4B_ACCT
/* Define to enable debugging. */
#undef LIBGTOP_ENABLE_DEBUG
#undef LIBGTOP_FATAL_WARNINGS
/* Same as LINUX_VERSION_CODE either from <linux/version.h> or from
* the running kernel (if we don't have configured kernel sources).
*/
#undef GLIBTOP_LINUX_VERSION_CODE
/* Solaris release code (eg. 251 for Solaris 2.5.1). */
#undef GLIBTOP_SOLARIS_RELEASE
/* Define if you want to use LibGTop without GNOME. */
#undef WITHOUT_GNOME
/* Define if you have the <procfs.h> header file */
#undef HAVE_PROCFS_H
/* Define if you have the <sys/procfs.h> header file */
#undef HAVE_SYS_PROCFS_H

View File

@@ -30,7 +30,7 @@ changequote([,]), [#include <sys/types.h>
], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
AC_MSG_RESULT($ac_cv_type_$1)
if test $ac_cv_type_$1 = no; then
AC_DEFINE($1, $2)
AC_DEFINE($1, $2, [Define to $2 if <sys/types.h> does not define.])
fi
])
@@ -72,7 +72,7 @@ if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then
AC_MSG_RESULT(yes)
gcc_need_declarations="$gcc_need_declarations $1"
gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
AC_DEFINE_UNQUOTED($gcc_tr_decl)
AC_DEFINE_UNQUOTED($gcc_tr_decl, 1, [Define if $1 () must be declared.])
else
AC_MSG_RESULT(no)
fi
@@ -157,7 +157,8 @@ yes
AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent)
if test $fu_cv_sys_mounted_cray_listmntent = yes; then
list_mounted_fs=found
AC_DEFINE(MOUNTED_LISTMNTENT)
AC_DEFINE(MOUNTED_LISTMNTENT, 1,
[Define if there is a function named listmntent that can be used to list all mounted filesystems. [UNICOS]])
fi
fi
@@ -176,7 +177,8 @@ AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1,
AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1)
if test $fu_cv_sys_mounted_getmntent1 = yes; then
list_mounted_fs=found
AC_DEFINE(MOUNTED_GETMNTENT1)
AC_DEFINE(MOUNTED_GETMNTENT1, 1,
[Define if there is a function named getmntent for reading the list of mounted filesystems, and that function takes a single argument. [4.3BSD, SunOS, HP-UX, Dynix, Irix]])
fi
fi
@@ -190,7 +192,8 @@ fu_cv_sys_mounted_getmntent2=no)])
AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2)
if test $fu_cv_sys_mounted_getmntent2 = yes; then
list_mounted_fs=found
AC_DEFINE(MOUNTED_GETMNTENT2)
AC_DEFINE(MOUNTED_GETMNTENT2, 1,
[Define if there is a function named getmntent for reading the list of mounted filesystems, and that function takes two arguments. [SVR4]])
fi
fi
@@ -215,7 +218,8 @@ fu_cv_sys_mounted_getsstat=no)])
AC_MSG_RESULT($fu_cv_sys_mounted_getsstat)
if test $fu_cv_sys_mounted_getsstat = yes; then
list_mounted_fs=found
AC_DEFINE(MOUNTED_GETFSSTAT)
AC_DEFINE(MOUNTED_GETFSSTAT, 1,
[Define if there is a function named getfsstat for reading the list of mounted filesystems. [DEC Alpha running OSF/1]])
fi
fi
@@ -229,7 +233,8 @@ fu_cv_sys_mounted_vmount=no)])
AC_MSG_RESULT($fu_cv_sys_mounted_vmount)
if test $fu_cv_sys_mounted_vmount = yes; then
list_mounted_fs=found
AC_DEFINE(MOUNTED_VMOUNT)
AC_DEFINE(MOUNTED_VMOUNT, 1,
[Define if there is a function named mntctl that can be used to read the list of mounted filesystems, and there is a system header file that declares `struct vmount.' [AIX]])
fi
fi
@@ -246,7 +251,8 @@ fu_cv_sys_mounted_fread_fstyp=no)])
AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp)
if test $fu_cv_sys_mounted_fread_fstyp = yes; then
list_mounted_fs=found
AC_DEFINE(MOUNTED_FREAD_FSTYP)
AC_DEFINE(MOUNTED_FREAD_FSTYP, 1,
[Define if (like SVR2) there is no specific function for reading the list of mounted filesystems, and your system has these header files: <sys/fstyp.h> and <sys/statfs.h>. [SVR3]])
fi
fi
@@ -267,7 +273,8 @@ test -n "$ok" \
AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo)
if test $fu_cv_sys_mounted_getmntinfo = yes; then
list_mounted_fs=found
AC_DEFINE(MOUNTED_GETMNTINFO)
AC_DEFINE(MOUNTED_GETMNTINFO, 1,
[Define if there is a function named getmntinfo for reading the list of mounted filesystems. [4.4BSD]])
fi
fi
@@ -285,7 +292,8 @@ fu_cv_sys_mounted_getmnt=no)])
AC_MSG_RESULT($fu_cv_sys_mounted_getmnt)
if test $fu_cv_sys_mounted_getmnt = yes; then
list_mounted_fs=found
AC_DEFINE(MOUNTED_GETMNT)
AC_DEFINE(MOUNTED_GETMNT, 1,
[Define if there is a function named getmnt for reading the list of mounted filesystems. [Ultrix]])
fi
fi
@@ -299,7 +307,8 @@ fu_cv_sys_mounted_fread=no)])
AC_MSG_RESULT($fu_cv_sys_mounted_fread)
if test $fu_cv_sys_mounted_fread = yes; then
list_mounted_fs=found
AC_DEFINE(MOUNTED_FREAD)
AC_DEFINE(MOUNTED_FREAD, 1,
[Define if there is no specific function for reading the list of mounted filesystems. fread will be used to read /etc/mnttab. [SVR2]])
fi
fi
@@ -328,7 +337,8 @@ fu_cv_sys_stat_statvfs=yes,
fu_cv_sys_stat_statvfs=no)])
if test $fu_cv_sys_stat_statvfs = yes; then
space=yes
AC_DEFINE(STAT_STATVFS)
AC_DEFINE(STAT_STATVFS, 1,
[Define if there is a function named statvfs. [SVR4]])
fi
fi
@@ -352,7 +362,8 @@ fu_cv_sys_stat_statfs3_osf1=no)])
AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
space=yes
AC_DEFINE(STAT_STATFS3_OSF1)
AC_DEFINE(STAT_STATFS3_OSF1, 1,
[Define if statfs takes 3 args. [DEC Alpha running OSF/1]])
fi
fi
@@ -383,7 +394,8 @@ fu_cv_sys_stat_statfs2_bsize=no)])
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
if test $fu_cv_sys_stat_statfs2_bsize = yes; then
space=yes
AC_DEFINE(STAT_STATFS2_BSIZE)
AC_DEFINE(STAT_STATFS2_BSIZE, 1,
[Define if statfs takes 2 args and struct statfs has a field named f_bsize. [4.3BSD, SunOS 4, HP-UX, AIX PS/2]])
fi
fi
@@ -404,7 +416,8 @@ fu_cv_sys_stat_statfs4=no)])
AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
if test $fu_cv_sys_stat_statfs4 = yes; then
space=yes
AC_DEFINE(STAT_STATFS4)
AC_DEFINE(STAT_STATFS4, 1,
[Define if statfs takes 4 args. [SVR3, Dynix, Irix, Dolphin]])
fi
fi
@@ -432,7 +445,8 @@ fu_cv_sys_stat_statfs2_fsize=no)])
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
if test $fu_cv_sys_stat_statfs2_fsize = yes; then
space=yes
AC_DEFINE(STAT_STATFS2_FSIZE)
AC_DEFINE(STAT_STATFS2_FSIZE, 1,
[Define if statfs takes 2 args and struct statfs has a field named f_fsize. [4.4BSD, NetBSD]])
fi
fi
@@ -463,14 +477,17 @@ fu_cv_sys_stat_fs_data=no)])
AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
if test $fu_cv_sys_stat_fs_data = yes; then
space=yes
AC_DEFINE(STAT_STATFS2_FS_DATA)
AC_DEFINE(STAT_STATFS2_FS_DATA, 1,
[Define if statfs takes 2 args and the second argument has type struct fs_data. [Ultrix]])
fi
fi
if test $space = no; then
# SVR2
AC_TRY_CPP([#include <sys/filsys.h>],
AC_DEFINE(STAT_READ_FILSYS) space=yes)
AC_DEFINE(STAT_READ_FILSYS, 1,
[Define if there is no specific function for reading filesystems usage information and you have the <sys/filsys.h> header file. [SVR2]])
space=yes)
fi
if test -n "$list_mounted_fs" && test $space != no; then
@@ -495,330 +512,14 @@ fu_cv_sys_truncating_statfs=yes,
fu_cv_sys_truncating_statfs=no,
)])
if test $fu_cv_sys_truncating_statfs = yes; then
AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS)
AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
[Define if the block counts reported by statfs may be truncated to 2GB and the correct values may be stored in the f_spare array. [SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem. SunOS 4.1.1 seems not to be affected.]])
fi
AC_MSG_RESULT($fu_cv_sys_truncating_statfs)
AC_CHECKING(for AFS)
test -d /afs && AC_DEFINE(AFS)
])
dnl GNOME_SUPPORT_CHECKS
dnl Check for various support functions needed by the standard
dnl Gnome libraries. Sets LIBOBJS, might define some macros.
dnl This should only be used when building the Gnome libs;
dnl Gnome clients should not need this macro.
AC_DEFUN([GNOME_SUPPORT_CHECKS],[
# we need an `awk' to build `gnomesupport.h'
AC_REQUIRE([AC_PROG_AWK])
# this should go away soon
need_gnome_support=yes
AC_CHECK_FUNCS(getopt_long,,
[AC_LIBOBJ(getopt)
AC_LIBOBJ(getopt1)])
# for `scandir'
AC_HEADER_DIRENT
# copied from `configure.in' of `libiberty'
vars="program_invocation_short_name program_invocation_name sys_errlist"
for v in $vars; do
AC_MSG_CHECKING([for $v])
AC_CACHE_VAL(gnome_cv_var_$v,
[AC_TRY_LINK([int *p;], [extern int $v; p = &$v;],
[eval "gnome_cv_var_$v=yes"],
[eval "gnome_cv_var_$v=no"])])
if eval "test \"`echo '$gnome_cv_var_'$v`\" = yes"; then
AC_MSG_RESULT(yes)
n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
AC_DEFINE_UNQUOTED($n)
else
AC_MSG_RESULT(no)
fi
done
AC_REPLACE_FUNCS(memmove mkstemp scandir strcasecmp strerror strndup strnlen)
AC_REPLACE_FUNCS(strtok_r strtod strtol strtoul vasprintf vsnprintf)
AC_CHECK_FUNCS(realpath,,AC_LIBOBJ(canonicalize))
# to include `error.c' error.c has some HAVE_* checks
AC_CHECK_FUNCS(vprintf doprnt strerror_r)
# stolen from am_func_error_at_line
AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
[AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
am_cv_lib_error_at_line=yes,
am_cv_lib_error_at_line=no)])
if test $am_cv_lib_error_at_line = no; then
AC_LIBOBJ(error)
fi
# This is required if we declare setreuid () and setregid ().
AC_TYPE_UID_T
# see if we need to declare some functions. Solaris is notorious for
# putting functions into the `libc' but not listing them in the headers
AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h dirent.h)
GCC_NEED_DECLARATIONS(gethostname setreuid setregid getpagesize)
GCC_NEED_DECLARATION(scandir,[
#ifdef HAVE_DIRENT_H
#include <dirent.h>
#endif
])
AC_SUBST(need_gnome_support)
AM_CONDITIONAL(BUILD_GNOME_SUPPORT, test "$need_gnome_support" = yes)
test -d /afs && AC_DEFINE(AFS, 1, [Define if you have the Andrew File System.])
])
dnl This file is intended for use both internally in libgtop and in every program
dnl that wants to use it.
dnl
dnl It defines the following variables:
dnl
dnl * 'libgtop_sysdeps_dir' - sysdeps dir for libgtop.
dnl * 'libgtop_use_machine_h' - some of system dependend parts of libgtop provide
dnl their own header file. In this case we need to
dnl define 'HAVE_GLIBTOP_MACHINE_H'.
dnl * 'libgtop_need_server' - is the server really needed? Defines 'NEED_LIBGTOP'
dnl if true; defines conditional 'NEED_LIBGTOP'.
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_SUBST(libgtop_sysdeps_dir)
AC_SUBST(libgtop_use_machine_h)
AC_SUBST(libgtop_need_server)
AC_ARG_WITH(libgtop-examples,
[ --with-libgtop-examples Build the libgtop examples (default=no)],[
build_examples="$withval"], [build_examples=no])
AM_CONDITIONAL(EXAMPLES, test x"$build_examples" = xyes)
AC_ARG_ENABLE(hacker-mode,
[ --enable-hacker-mode Enable building of unstable sysdeps],
[hacker_mode="$enableval"], [hacker_mode=no])
AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
if test x$hacker_mode = xyes ; then
LIBGTOP_HACKER_TESTS
fi
AC_ARG_WITH(libgtop-smp,
[ --with-libgtop-smp Enable SMP support (default-auto)],[
libgtop_smp="$withval"],[libgtop_smp=auto])
if test $libgtop_smp = auto ; then
AC_MSG_CHECKING(whether to enable SMP support)
case "$host_os" in
linux*)
libgtop_smp=yes
;;
aix*)
libgtop_smp=yes
;;
*)
libgtop_smp=no
;;
esac
AC_MSG_RESULT($libgtop_smp)
fi
if test $libgtop_smp = yes ; then
AC_DEFINE(HAVE_LIBGTOP_SMP)
fi
AM_CONDITIONAL(LIBGTOP_SMP, test $libgtop_smp = yes)
AC_MSG_CHECKING(for libgtop sysdeps directory)
case "$host_os" in
linux*)
libgtop_sysdeps_dir=linux
libgtop_use_machine_h=no
libgtop_have_sysinfo=yes
libgtop_need_server=no
;;
freebsd*|netbsd*|openbsd*|bsdi*)
libgtop_sysdeps_dir=freebsd
libgtop_use_machine_h=yes
libgtop_need_server=yes
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
;;
solaris*)
libgtop_sysdeps_dir=solaris
libgtop_use_machine_h=yes
libgtop_need_server=yes
libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
;;
aix*)
libgtop_sysdeps_dir=aix
libgtop_use_machine_h=yes
libgtop_need_server=yes
libgtop_have_sysinfo=yes
libgtop_postinstall='chgrp system $(bindir)/libgtop_server && chmod g+s $(bindir)/libgtop_server2'
;;
*)
if test x$hacker_mode = xyes ; then
case "$host_os" in
sunos4*)
#Please note that this port is obsolete and not working at
#all. It is only useful for people who want to fix it ... :-)
libgtop_sysdeps_dir=sun4
libgtop_use_machine_h=yes
libgtop_need_server=yes
;;
osf*)
libgtop_sysdeps_dir=osf1
libgtop_use_machine_h=yes
libgtop_need_server=yes
;;
*)
libgtop_sysdeps_dir=stub
libgtop_use_machine_h=no
libgtop_need_server=no
;;
esac
else
libgtop_sysdeps_dir=stub
libgtop_use_machine_h=no
libgtop_need_server=no
fi
;;
esac
test -z "$libgtop_postinstall" && libgtop_postinstall=:
AC_MSG_RESULT($libgtop_sysdeps_dir)
AC_SUBST(libgtop_sysdeps_dir)
AC_SUBST(libgtop_postinstall)
AC_SUBST(libgtop_have_sysinfo)
case "$host_os" in
*bsd*)
AC_CHECK_HEADERS(net/if_var.h)
AC_MSG_CHECKING([for I4B])
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>
#include <net/if_types.h>
#ifdef HAVE_NET_IF_VAR_H
#include <net/if_var.h>
#endif
#include <net/netisr.h>
#include <net/route.h>
#if defined(__FreeBSD__) || defined(__NetBSD__)
#include <net/if_sppp.h>
#else
#include <i4b/sppp/if_sppp.h>
#endif
],[
size_t size = sizeof (struct sppp);
], have_i4b=yes, have_i4b=no)
AC_MSG_RESULT($have_i4b)
if test x$have_i4b = xyes; then
AC_DEFINE(HAVE_I4B)
AC_MSG_CHECKING([for I4B accounting])
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>
#include <net/if_types.h>
#ifdef HAVE_NET_IF_VAR_H
#include <net/if_var.h>
#endif
#include <net/netisr.h>
#include <net/route.h>
#if defined(__FreeBSD__) || defined(__NetBSD__)
#include <net/if_sppp.h>
#else
#include <i4b/sppp/if_sppp.h>
#endif
#include <machine/i4b_acct.h>
],[
size_t size = sizeof (struct i4bisppp_softc);
], have_i4b_acct=yes, have_i4b_acct=no)
AC_MSG_RESULT($have_i4b_acct)
if test x$have_i4b_acct = xyes ; then
AC_DEFINE(HAVE_I4B_ACCT)
else
AC_WARN([
*** I4B accounting disabled - you won't get any PPP statistics.
*** Read "misc/i4b_acct.txt" in the LibGTop source directory
*** to see how to enable it.])
fi
fi
;;
linux*)
os_major_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
os_minor_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
os_micro_version=`uname -r | sed 's/-pre[[0-9]]*//' | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
os_version_expr="$os_major_version 65536 * $os_minor_version 256 * + $os_micro_version + p q"
AC_CHECK_HEADERS(linux/version.h, have_linux_version_h=yes,
have_linux_version_h=no)
if test x$have_linux_version_h = xyes ; then
version_code=`cat /usr/include/linux/version.h | \
grep \#define | grep LINUX_VERSION_CODE`
os_version_code=`echo $version_code | \
sed 's/^.*LINUX_VERSION_CODE[[ \t]]*\([[0-9]]*\).*$/\1/'`
else
os_version_code=`echo "$os_version_expr" | dc`
fi
AC_MSG_CHECKING(for Linux kernel version code)
AC_DEFINE_UNQUOTED(GLIBTOP_LINUX_VERSION_CODE, $os_version_code)
AC_MSG_RESULT($os_version_code)
;;
solaris*)
os_major_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]\)\.*\([[0-9]]*\)/\1/'`
os_minor_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]\)\.*\([[0-9]]*\)/\2/'`
os_micro_version=`uname -r | sed 's/\([[0-9]]*\).\([[0-9]]\)\.*\([[0-9]]*\)/\3/'`
test -z "$os_micro_version" && os_micro_version=0
os_version_expr="$os_major_version 100 * $os_minor_version 10 * + $os_micro_version + p q"
os_version_code=`echo "$os_version_expr" | dc`
AC_MSG_CHECKING(for Solaris release code)
AC_DEFINE_UNQUOTED(GLIBTOP_SOLARIS_RELEASE, $os_version_code)
AC_MSG_RESULT($os_version_code)
;;
esac
AC_MSG_CHECKING(for machine.h in libgtop sysdeps dir)
AC_MSG_RESULT($libgtop_use_machine_h)
AC_MSG_CHECKING(whether we need libgtop)
AC_MSG_RESULT($libgtop_need_server)
if test x$libgtop_need_server = xyes ; then
AC_DEFINE(NEED_LIBGTOP)
fi
if test x$libgtop_use_machine_h = xyes ; then
AC_DEFINE(HAVE_GLIBTOP_MACHINE_H)
fi
AM_CONDITIONAL(NEED_LIBGTOP, test x$libgtop_need_server = xyes)
])
m4_include([libgtop-sysdeps.m4])

View File

@@ -18,4 +18,5 @@ which gnome-autogen.sh || {
echo "You need to install gnome-common from the GNOME CVS"
exit 1
}
USE_GNOME2_MACROS=1 . gnome-autogen.sh
REQUIRED_AUTOMAKE_VERSION=1.9
. gnome-autogen.sh

View File

@@ -1,5 +0,0 @@
.deps
.libs
Makefile
Makefile.in
*.lo

View File

@@ -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

View File

@@ -1,7 +0,0 @@
.deps
.libs
Makefile
Makefile.in
*.lo
*.la
marshal.c

View File

@@ -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'.

View 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-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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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>

View File

@@ -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 '';

View File

@@ -1,10 +0,0 @@
.deps
.libs
Makefile
Makefile.in
*.lo
*.la
marshal.c
demarshal.c
libgtop_server
command.h

View File

@@ -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'.

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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>

View File

@@ -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 '';

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -1,83 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* $Id$ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
LibGTop is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef __GLIBTOP_DAEMON_H__
#define __GLIBTOP_DAEMON_H__
#include <glibtop.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

View File

@@ -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");
}
}

View File

@@ -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);
}

View File

@@ -1,7 +0,0 @@
.deps
.libs
Makefile
Makefile.in
*.lo
*.la
marshal.c

View File

@@ -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.

View 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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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>

View File

@@ -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 '';

View File

@@ -2,59 +2,49 @@ dnl
dnl Configure script for the Gnome library
dnl
AC_INIT(copyright.txt)
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_SYSTEM
LIBGTOP_MAJOR_VERSION=2
LIBGTOP_MINOR_VERSION=10
LIBGTOP_MICRO_VERSION=2
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION)
m4_define([libgtop_major_version], [2])
m4_define([libgtop_minor_version], [14])
m4_define([libgtop_micro_version], [4])
m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version])
dnl increment if the interface has additions, changes, removals.
LIBGTOP_CURRENT=5
m4_define([libgtop_current], [7])
dnl increment any time the source changes; set to
dnl 0 if you increment CURRENT
LIBGTOP_REVISION=0
m4_define([libgtop_revision], [0])
dnl increment if any interfaces have been added; set to 0
dnl if any interfaces have been removed. removal has
dnl precedence over adding, so set to 0 if both happened.
LIBGTOP_AGE=0
# you can set this to `-snap' for instance to create
# a `libgtop-1.x.y-snap.tar.gz' tarball.
LIBGTOP_VERSION_SUFFIX=
m4_define([libgtop_age], [0])
# Increase each time you change the client/server protocol.
LIBGTOP_SERVER_VERSION=5
m4_define([libgtop_server_version], [5])
# Version code calculation
LIBGTOP_VERSION_CODE=`expr $LIBGTOP_MAJOR_VERSION \* 1000000 + $LIBGTOP_MINOR_VERSION \* 1000 + $LIBGTOP_MICRO_VERSION`
m4_define([libgtop_version_code], [m4_eval(libgtop_major_version * 1000000 + libgtop_minor_version * 1000 + libgtop_micro_version)])
AC_SUBST(LIBGTOP_MAJOR_VERSION)
AC_SUBST(LIBGTOP_MINOR_VERSION)
AC_SUBST(LIBGTOP_MICRO_VERSION)
AC_SUBST(LIBGTOP_INTERFACE_AGE)
AC_SUBST(LIBGTOP_BINARY_AGE)
AC_SUBST(LIBGTOP_SERVER_VERSION)
AC_SUBST(LIBGTOP_VERSION)
AC_SUBST(LIBGTOP_VERSION_CODE)
AC_SUBST(LIBGTOP_VERSION_SUFFIX)
AC_INIT([libgtop], [libgtop_version],
[http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop])
AC_CONFIG_SRCDIR(copyright.txt)
AC_CONFIG_HEADERS(config.h)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE
AC_SUBST(ACLOCAL_AMFLAGS, [\${ACLOCAL_FLAGS}])
AC_SUBST(LIBGTOP_MAJOR_VERSION, [libgtop_major_version])
AC_SUBST(LIBGTOP_MINOR_VERSION, [libgtop_minor_version])
AC_SUBST(LIBGTOP_MICRO_VERSION, [libgtop_micro_version])
AC_SUBST(LIBGTOP_SERVER_VERSION, [libgtop_server_version])
AC_SUBST(LIBGTOP_VERSION, [libgtop_version])
AC_SUBST(LIBGTOP_VERSION_CODE, [libgtop_version_code])
# libtool versioning
LT_RELEASE=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION
LT_CURRENT=$LIBGTOP_CURRENT
LT_REVISION=$LIBGTOP_REVISION
LT_AGE=$LIBGTOP_AGE
LT_VERSION_INFO="-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}"
AC_SUBST(LT_VERSION_INFO)
AC_SUBST(LT_RELEASE)
AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
AC_SUBST(LT_AGE)
AC_SUBST(LT_VERSION_INFO,
["-version-info libgtop_current:libgtop_revision:libgtop_age"])
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I ."
@@ -109,30 +99,10 @@ fi
AM_CONDITIONAL(INODEDB, test x$build_inodedb = xyes)
if test x$build_inodedb = xyes ; then
AC_DEFINE(GLIBTOP_INODEDB)
AC_DEFINE(GLIBTOP_INODEDB, 1,
[Define if the libgtop inodedb should be built])
fi
if test x$libgtop_smp = xyes ; then
smp_examples='smp'
smp_static_examples='smp_static'
else
smp_examples=
smp_static_examples=
fi
if test "x$enable_static" != xno; then
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $smp_static_examples pprint_static procargs_static df_static netlist netlist_static openfiles_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.6.0
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
@@ -191,32 +161,42 @@ if test x$HAVE_ISDN_H = xyes ; then
fi
dnl AIX
AH_TEMPLATE(HAVE_VMGETINFO, [Define to 1 if you have the 'vmgetinfo' function in libperfstat])
AC_CHECK_LIB(perfstat, vmgetinfo, AC_DEFINE(HAVE_VMGETINFO))
AC_CHECK_LIB(perfstat, vmgetinfo,
AC_DEFINE(HAVE_VMGETINFO, 1,
[Define to 1 if you have the 'vmgetinfo' function in libperfstat]))
dnl Solaris
AC_CHECK_LIB(kstat, kstat_open)
AC_CHECK_FUNCS(getloadavg swapctl)
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
case "$host_os" in
solaris*)
AC_CHECK_LIB(kstat, kstat_open)
AC_CHECK_FUNCS(getloadavg swapctl)
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
dnl Some versions of Solaris require -lelf for -lkvm
AC_CHECK_LIB(kvm, kvm_open,[
LIBS="-lkvm $LIBS"
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
[ac_save_LIBS="$LIBS"
LIBS="-lkvm -lelf $LIBS"
AC_TRY_LINK([char kvm_open();], [kvm_open()],
ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
LIBS="$ac_save_LIBS"
])
if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
AC_MSG_RESULT(yes)
LIBS="-lkvm -lelf $LIBS"
else
AC_MSG_RESULT(no)
fi
])
dnl Some versions of Solaris require -lelf for -lkvm
case $host_os in
solaris[[8-9]] | solaris2.[[0-9]].*)
AC_CHECK_LIB(kvm, kvm_open,[
LIBS="-lkvm $LIBS"
],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf)
AC_CACHE_VAL(ac_cv_lib_kvm_with_elf,
[ac_save_LIBS="$LIBS"
LIBS="-lkvm -lelf $LIBS"
AC_TRY_LINK([char kvm_open();], [kvm_open()],
ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no)
LIBS="$ac_save_LIBS"
])
if test "$ac_cv_lib_kvm_with_elf" = "yes"; then
AC_MSG_RESULT(yes)
LIBS="-lkvm -lelf $LIBS"
else
AC_MSG_RESULT(no)
fi
])
;;
esac
;;
esac
dnl For DEC OSF1
AC_CHECK_LIB(mach, vm_statistics)
@@ -236,7 +216,7 @@ CFLAGS=$saved_CFLAGS
AC_CHECK_FUNC(socket,
[AC_CHECK_HEADER(netinet/in.h,
[AC_CHECK_HEADER(arpa/inet.h, [
AC_DEFINE(HAVE_SOCKETS)
AC_DEFINE(HAVE_SOCKETS, 1, [Define if BSD sockets are supported])
AC_MSG_CHECKING("for sun_len member in struct sockaddr_un")
AC_TRY_LINK([
#include <sys/types.h>
@@ -244,7 +224,7 @@ AC_CHECK_FUNC(socket,
#include <sys/un.h>
],
[static struct sockaddr_un x; x.sun_len = 1;],
[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)],
[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un has a sun_len member])],
[AC_MSG_RESULT(no)])])])])
dnl Checks for library functions.
@@ -254,13 +234,15 @@ AC_TYPE_SIGNAL
AC_FUNC_STRFTIME
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
ALL_LINGUAS="am ar az be bg bn 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 ne nl nn no or pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sv ta tr uk vi xh zh_CN zh_TW"
IT_PROG_INTLTOOL([0.35.0])
GETTEXT_PACKAGE=libgtop-2.0
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[Define to the gettext package used by the library])
AM_GLIB_GNU_GETTEXT
GLIB_DEFINE_LOCALEDIR([GTOPLOCALEDIR])
AC_PATH_XTRA
@@ -287,7 +269,7 @@ test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h, ,with_xauth=no)
test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no, $X_LIBS) }
test -z "$with_xauth" && with_xauth=yes
if test "$with_xauth" = "yes"; then
AC_DEFINE(HAVE_XAUTH)
AC_DEFINE(HAVE_XAUTH, 1, [Define if Xauth is supported])
XE_SPACE(libs_xauth, $X_LIBS -lXau)
fi
CPPFLAGS="$saved_CPPFLAGS"
@@ -297,8 +279,8 @@ dnl For diskusage stuff
GNOME_FILEUTILS_CHECKS
dnl Debugging
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],AC_DEFINE(LIBGTOP_ENABLE_DEBUG),)
AC_ARG_ENABLE(fatal-warnings, [ --enable-fatal-warnings make all warnings fatal [debug=no]],AC_DEFINE(LIBGTOP_FATAL_WARNINGS),)
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 1, [Define to enable debugging]),)
AC_ARG_ENABLE(fatal-warnings, [ --enable-fatal-warnings make all warnings fatal [debug=no]],AC_DEFINE(LIBGTOP_FATAL_WARNINGS, 1, [Define to enable fatal warnings]),)
dnl These definitions are expanded in make.
LIBGTOP_LIBS='-L$(libdir)'
@@ -322,8 +304,14 @@ fi
LIBGTOP_INCS="$LIBGTOP_INCS $GLIB_CFLAGS"
LIBGTOP_BINDIR='$(bindir)'
LIBGTOP_SERVER='$(bindir)/libgtop_server2'
libgtop_save_prefix="$prefix"
libgtop_save_exec_prefix="$exec_prefix"
test "x$prefix" = xNONE && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix=$prefix
LIBGTOP_BINDIR=`eval echo "${bindir}"`
LIBGTOP_SERVER=`eval echo "${bindir}/libgtop_server2"`
prefix="$libgtop_save_prefix"
exec_prefix="$libgtop_save_exec_prefix"
sysdeps_dir="$libgtop_sysdeps_dir"
AC_SUBST(sysdeps_dir)
@@ -334,7 +322,7 @@ else
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $libs_xauth"
fi
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
LIBGTOP_EXTRA_LIBS="$GLIB_LIBS $LIBGTOP_EXTRA_LIBS"
LIBGTOP_LIBS="$LIBGTOP_LIBS"
@@ -352,11 +340,27 @@ if test "$GCC" = "yes" ; then
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
-Wnested-externs -Wpointer-arith \
-Wcast-align -Wsign-compare \
-fno-strict-aliasing \
$CFLAGS"
fi
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"'\"'
INCLUDES="-I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $X_CFLAGS"
# Add various defines to the config.h file ...
AH_VERBATIM([_GNU_SOURCE],
[/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE
#endif])
AC_DEFINE([_IN_LIBGTOP], 1,
[Note that we are building libgtop rather than using it])
AC_DEFINE([LIBGTOP_VERSION], ["libgtop_version"],
[The libgtop version number])
AC_DEFINE([LIBGTOP_SERVER_VERSION], ["libgtop_server_version"],
[The libgtop server version])
AC_DEFINE([LIBGTOP_VERSION_CODE], [libgtop_version_code],
[The libgtop version number as an integer])
AC_DEFINE_UNQUOTED([LIBGTOP_SERVER], ["$LIBGTOP_SERVER"],
[The path to the libgtop server])
AC_SUBST(INCLUDES)
@@ -377,7 +381,7 @@ fi
AC_SUBST(sysdeps_suid_lib)
AC_SUBST(server_programs)
AC_OUTPUT([
AC_CONFIG_FILES([
Makefile
libgtop.spec
po/Makefile.in
@@ -403,3 +407,5 @@ doc/Makefile
libgtop-2.0.pc
libgtopconfig.h
])
AC_OUTPUT

View File

@@ -1,3 +1,8 @@
2006-02-21 Benoît Dejean <benoit@placenet.org>
* reference.texi: Fixed glibtop_get_proc_state doc.
Patch by Emil Nowak <emil5@go2.pl>.
2005-01-03 Benoît Dejean <TazForEver@dlfp.org>
* reference.texi: Updated.

View File

@@ -1,38 +1,6 @@
info_TEXINFOS = libgtop2.texi
libgtop2_TEXINFOS = libgtop2.texi about.texi reference.texi \
auto-macros.texi version.texi main.texi \
white-paper.texi
version.texi main.texi white-paper.texi
MAKEINFO = @MAKEINFO@ -I @libgtop_top_builddir@/doc
EXTRA_DIST = auto-macros.texi.in
auto-macros.texi: auto-macros.texi.in Makefile
## Use sed and then mv to avoid problems if the user interrupts.
sed -e 's#\%LIBGTOP_LIBDIR\%#$(libdir)#g' \
-e 's#\%LIBGTOP_INCLUDEDIR\%#$(includedir)/libgtop-2.0#g' \
-e 's#\%LIBGTOP_DATADIR\%#$(datadir)#g' \
-e 's#\%LIBGTOP_EXTRA_LIBS\%#$(LIBGTOP_EXTRA_LIBS)#g' \
-e 's#\%LIBGTOP_LIBS\%#$(LIBGTOP_LIBS)#g' \
-e 's#\%LIBGTOP_INCS\%#$(LIBGTOP_INCS)#g' \
-e 's#\%LIBGTOP_BINDIR\%#$(LIBGTOP_BINDIR)#g' \
-e 's#\%LIBGTOP_SERVER\%#$(LIBGTOP_SERVER)#g' \
-e 's#\%LIBGTOP_MAJOR_VERSION\%#$(LIBGTOP_MAJOR_VERSION)#g' \
-e 's#\%LIBGTOP_MINOR_VERSION\%#$(LIBGTOP_MINOR_VERSION)#g' \
-e 's#\%LIBGTOP_MICRO_VERSION\%#$(LIBGTOP_MICRO_VERSION)#g' \
-e 's#\%LIBGTOP_VERSION\%#$(LIBGTOP_VERSION)#g' \
-e 's#\%LIBGTOP_VERSION_CODE\%#$(LIBGTOP_VERSION_CODE)#g' \
-e 's#\%LIBGTOP_SERVER_VERSION\%#$(LIBGTOP_SERVER_VERSION)#g' \
-e 's#\%libgtop_sysdeps_dir\%#$(libgtop_sysdeps_dir)#g' \
-e 's#\%libgtop_need_server\%#$(libgtop_need_server)#g' \
-e 's#\%libgtop_use_machine_h\%#$(libgtop_use_machine_h)#g' \
-e 's#\%libgtop_want_examples\%#$(libgtop_want_examples)#g' \
< $(srcdir)/auto-macros.texi.in > auto-macros.tmp
echo '@c Set this if this is LibGTop 1.1.x' >> auto-macros.tmp
if [ $(LIBGTOP_VERSION_CODE) -ge 1001000 ] ; then \
echo '@set LIBGTOP-1-1' >> auto-macros.tmp ; \
else \
echo '@clear LIBGTOP-1-1' >> auto-macros.tmp ; \
fi
mv auto-macros.tmp auto-macros.texi
AM_MAKEINFOFLAGS = -I $(libgtop_top_builddir)/doc

View File

@@ -1,12 +0,0 @@
@c LibGTop major, minor and micro version.
@set LIBGTOP_MAJOR_VERSION %LIBGTOP_MAJOR_VERSION%
@set LIBGTOP_MINOR_VERSION %LIBGTOP_MINOR_VERSION%
@set LIBGTOP_MICRO_VERSION %LIBGTOP_MICRO_VERSION%
@c LibGTop version and numerical version code ("1.234.567" -> 1234567).
@set LIBGTOP_VERSION "%LIBGTOP_VERSION%"
@set LIBGTOP_VERSION_CODE %LIBGTOP_VERSION_CODE%
@c LibGTop server version, increased each time the protocol changes.
@set LIBGTOP_SERVER_VERSION %LIBGTOP_SERVER_VERSION%

View File

@@ -5,7 +5,6 @@
@setchapternewpage odd
@c %**end of header
@include auto-macros.texi
@include version.texi
@ifinfo

View File

@@ -111,7 +111,7 @@ The @samp{xcpu_} values are for SMP systems - they are the same than
@code{total}, @code{user}, @code{nice}, @code{sys}, @code{idle},
@code{iowait}, @code{irq} and @code{softirq}
except that they are arrays of @code{GLIBTOP_NCPU} (defined in
@file{<glibtop/limits.h>}) elements and contain one value for each CPU
@file{<glibtop/cpu.h>}) elements and contain one value for each CPU
in the system.
@table @code
@@ -493,7 +493,7 @@ glibtop_get_proc_state_l (glibtop *server, glibtop_proc_state *buf,
@end cartouche
@end example
Declaration of @code{glibtop_proc_state} in @file{<glibtop/proc_state.h>}:
Declaration of @code{glibtop_proc_state} in @file{<glibtop/procstate.h>}:
@example
@cartouche
@@ -680,7 +680,7 @@ Standard unix nice level of process.
Number of additional process groups.
@item groups
Array of additional process groups@*
(@code{GLIBTOP_MAX_GROUPS} is defined in @file{<glibtop/limits.h>}).
(@code{GLIBTOP_MAX_GROUPS} is defined in @file{<glibtop/procuid.h>}).
@end table
@page
@@ -1484,13 +1484,7 @@ struct _glibtop_mountentry
@end cartouche
@end example
@ifset LIBGTOP-1-1
@code{GLIBTOP_MOUNTENTRY_LEN} is defined in @file{<glibtop/limits.h>}.
@end ifset
@ifclear LIBGTOP-1-1
@code{GLIBTOP_MOUNTENTRY_LEN} is defined in @file{<glibtop.h>}
(this was moved to @file{<glibtop/limits.h>} in LibGTop 1.1.0).
@end ifclear
@code{GLIBTOP_MOUNTENTRY_LEN} is defined in @file{<glibtop.h>}.
@table @code
@item devname

View File

@@ -1,2 +0,0 @@
Makefile.in
Makefile

View File

@@ -1,9 +0,0 @@
backenddir = @LIBGTOP_BACKEND_DIR@
backend_DATA = \
libgtop-backends.dtd \
libgtop-backend-info.dtd
EXTRA_DIST = |
$(backend_DATA)

View File

@@ -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)>

View File

@@ -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)>

View File

@@ -18,6 +18,7 @@ pprint
pprint_static
procargs
procargs_static
proclist
df
df_static
netlist

View File

@@ -1,3 +1,35 @@
2006-02-27 Benoît Dejean <benoit@placenet.org>
* pprint.c: (pprint_get_proc_mem), (main):
Added proc_mem example.
2005-12-15 Benoît Dejean <benoit@placenet.org>
* proclist.c: (print_pids), (main):
Improved example.
2005-12-12 Benoît Dejean <benoit@placenet.org>
* .cvsignore:
* Makefile.am:
* proclist.c: (main):
* procmap.c: (main):
Added quick example for glibtop_get_proclist()
and updated procmap example to display smap.
2005-08-02 Benoît Dejean <TazForEver@dlfp.org>
* pprint.c: (pprint_get_cpu), (pprint_get_loadavg),
(pprint_get_mem), (pprint_get_msg_limits), (pprint_get_netlist),
(pprint_get_swap), (pprint_get_uptime), (pprint_get_proc_kernel),
(main):
Added pprint_get_proc_kernel(pid).
Fixed prototypes.
2005-01-22 Benoît Dejean <TazForEver@dlfp.org>
* openfiles.c: (show_open_files): Updated.

View File

@@ -8,112 +8,46 @@ DEFS = @DEFS@
noinst_PROGRAMS = first second pprint procargs df netlist \
mountlist procmap netload sysdeps timings \
openfiles \
@static_targets@ @smp_examples@
EXTRA_PROGRAMS = first_static second_static \
mountlist_static procmap_static \
smp smp_static openfiles_static \
netload_static sysdeps_static \
timings_static pprint_static procargs_static \
df_static netlist_static
openfiles smp proclist
first_SOURCES = first.c
first_LDADD = $(top_builddir)/lib/libgtop-2.0.la
first_static_SOURCES = $(first_SOURCES)
first_static_LDADD = $(first_LDADD)
first_static_LDFLAGS = -static
second_SOURCES = second.c
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
second_static_SOURCES = $(second_SOURCES)
second_static_LDADD = $(second_LDADD)
second_static_LDFLAGS = -static
procmap_SOURCES = procmap.c
procmap_LDADD = $(top_builddir)/lib/libgtop-2.0.la
procmap_static_SOURCES = $(procmap_SOURCES)
procmap_static_LDADD = $(procmap_LDADD)
procmap_static_LDFLAGS = -static
netload_SOURCES = netload.c
netload_LDADD = $(top_builddir)/lib/libgtop-2.0.la
netload_static_SOURCES = $(netload_SOURCES)
netload_static_LDADD = $(netload_LDADD)
netload_static_LDFLAGS = -static
sysdeps_SOURCES = sysdeps.c
sysdeps_LDADD = $(top_builddir)/lib/libgtop-2.0.la
sysdeps_static_SOURCES = $(sysdeps_SOURCES)
sysdeps_static_LDADD = $(sysdeps_LDADD)
sysdeps_static_LDFLAGS = -static
mountlist_SOURCES = mountlist.c
mountlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
mountlist_static_SOURCES= $(mountlist_SOURCES)
mountlist_static_LDADD = $(mountlist_LDADD)
mountlist_static_LDFLAGS= -static
smp_SOURCES = smp.c
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
smp_static_SOURCES = $(smp_SOURCES)
smp_static_LDADD = $(smp_LDADD)
smp_static_LDFLAGS = -static
timings_SOURCES = timings.c
timings_LDADD = $(top_builddir)/lib/libgtop-2.0.la
timings_static_SOURCES = $(timings_SOURCES)
timings_static_LDADD = $(timings_LDADD)
timings_static_LDFLAGS = -static
pprint_SOURCES = pprint.c
pprint_LDADD = $(top_builddir)/lib/libgtop-2.0.la
pprint_static_SOURCES = $(pprint_SOURCES)
pprint_static_LDADD = $(pprint_LDADD)
pprint_static_LDFLAGS = -static
procargs_SOURCES = procargs.c
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_LDADD = $(top_builddir)/lib/libgtop-2.0.la
df_static_SOURCES = $(df_SOURCES)
df_static_LDADD = $(df_LDADD)
df_static_LDFLAGS = -static
netlist_SOURCES = netlist.c
netlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
netlist_static_SOURCES = $(netlist_SOURCES)
netlist_static_LDADD = $(netlist_LDADD)
netlist_static_LDFLAGS = -static
openfiles_SOURCES = openfiles.c
openfiles_LDADD = $(top_builddir)/lib/libgtop-2.0.la
openfiles_static_SOURCES = $(openfiles_SOURCES)
openfiles_static_LDADD = $(openfiles_LDADD)
openfiles_static_LDFLAGS = -static
proclist_SOURCES = proclist.c
proclist_LDADD = $(top_builddir)/lib/libgtop-2.0.la

View File

@@ -1,3 +1,6 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <glibtop.h>
#include <glibtop/fsusage.h>

View File

@@ -21,6 +21,10 @@
Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include <libintl.h>
#include <stdio.h>

View File

@@ -21,6 +21,10 @@
Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include <libintl.h>
#include <stdio.h>

View File

@@ -18,6 +18,10 @@
Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <glibtop.h>

View File

@@ -21,6 +21,10 @@
Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include <libintl.h>
#include <stdio.h>

View File

@@ -1,3 +1,7 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <glibtop.h>
#include <glibtop/procopenfiles.h>

View File

@@ -1,7 +1,12 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <glibtop.h>
#include <glibtop/union.h>
#include <unistd.h>
#include <stdio.h>
#include <stddef.h>
@@ -28,7 +33,7 @@ printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \
static void pprint_get_cpu()
static void pprint_get_cpu(void)
{
glibtop_cpu buf;
@@ -81,7 +86,7 @@ static void pprint_get_fsusage(const char *mountpoint)
static void pprint_get_loadavg()
static void pprint_get_loadavg(void)
{
glibtop_loadavg buf;
@@ -98,7 +103,7 @@ static void pprint_get_loadavg()
static void pprint_get_mem()
static void pprint_get_mem(void)
{
glibtop_mem buf;
@@ -156,7 +161,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;
@@ -189,7 +194,7 @@ static void pprint_get_netload(const char *iface)
}
static void pprint_get_netlist()
static void pprint_get_netlist(void)
{
glibtop_netlist buf;
char **devices;
@@ -211,7 +216,7 @@ static void pprint_get_netlist()
static void pprint_get_swap()
static void pprint_get_swap(void)
{
glibtop_swap buf;
@@ -229,7 +234,7 @@ static void pprint_get_swap()
static void pprint_get_uptime()
static void pprint_get_uptime(void)
{
glibtop_uptime buf;
@@ -246,6 +251,41 @@ 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();
}
static void pprint_get_proc_mem(pid_t pid)
{
glibtop_proc_mem buf;
glibtop_get_proc_mem(&buf, pid);
HEADER_PPRINT(glibtop_get_proc_mem);
PPRINT(flags, "%#llx");
PPRINT(size, "%llu");
PPRINT(vsize, "%llu");
PPRINT(resident, "%llu");
PPRINT(share, "%llu");
PPRINT(rss, "%llu");
PPRINT(rss_rlim, "%llu");
FOOTER_PPRINT();
}
int main()
{
@@ -275,6 +315,9 @@ int main()
pprint_get_uptime();
pprint_get_proc_kernel(getpid());
pprint_get_proc_mem(getpid());
glibtop_close();
return 0;

View File

@@ -1,3 +1,7 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <glibtop.h>
#include <glibtop/procargs.h>

43
examples/proclist.c Normal file
View File

@@ -0,0 +1,43 @@
#include <glibtop.h>
#include <glibtop/proclist.h>
#include <glib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
static void print_pids(guint64 which, guint64 arg)
{
unsigned *pids;
unsigned i;
glibtop_proclist buf;
pids = glibtop_get_proclist(&buf, which, arg);
printf("glibtop_get_proclist(%#llx, %llu) -> %lu processes\n",
which, arg, (unsigned long)buf.number);
for (i = 0; i < buf.number; ++i)
printf("%u ", pids[i]);
putchar('\n');
putchar('\n');
g_free(pids);
}
int main()
{
glibtop_init();
print_pids(GLIBTOP_KERN_PROC_ALL, 0);
print_pids(GLIBTOP_KERN_PROC_UID, getuid());
glibtop_close();
return 0;
}

View File

@@ -21,6 +21,10 @@
Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include <libintl.h>
#include <stdio.h>
@@ -153,6 +157,18 @@ main (int argc, char *argv [])
perm);
}
g_print("smaps flags:%#llx size:%llu rss:%llu "
"shared_clean:%llu shared_dirty:%llu "
"private_clean:%llu private_dirty: %llu\n",
maps[i].flags,
maps[i].size >> 10,
maps[i].rss >> 10,
maps[i].shared_clean >> 10,
maps[i].shared_dirty >> 10,
maps[i].private_clean >> 10,
maps[i].private_dirty >> 10);
if (filename && (filename != maps [i].filename))
g_free ((void*)filename);
}

View File

@@ -21,6 +21,10 @@
Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include <math.h>
#include <stdio.h>

View File

@@ -31,8 +31,6 @@
#include <glibtop.h>
#include <glibtop/cpu.h>
#include "libgtop-i18n.h"
int
main (int argc, char *argv [])
{
@@ -44,10 +42,6 @@ main (int argc, char *argv [])
char separator [BUFSIZ], buffer [BUFSIZ];
int ncpu, i;
setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
textdomain (GETTEXT_PACKAGE);
glibtop_init();
glibtop_get_cpu (&cpu);
@@ -73,16 +67,16 @@ main (int argc, char *argv [])
memset (separator, '-', 91);
separator [92] = '\0';
sprintf (buffer, _("Ticks (%ld per second):"), frequency);
sprintf (buffer, "Ticks (%ld per second):", frequency);
printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer,
_("Total"), _("User"), _("Nice"), _("Sys"), _("Idle"), separator);
"Total", "User", "Nice", "Sys", "Idle", separator);
printf (_("CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n"),
printf ("CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n",
(unsigned long) cpu.flags, total, user, nice, sys, idle);
for (i = 0; i < glibtop_global_server->ncpu; i++) {
printf (_("CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"), i,
printf ("CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n", i,
(unsigned long) cpu.flags,
(unsigned long) cpu.xcpu_total [i],
(unsigned long) cpu.xcpu_user [i],
@@ -99,11 +93,11 @@ main (int argc, char *argv [])
printf ("%s\n\n\n", separator);
printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", _("Percent:"),
_("Total (%)"), _("User (%)"), _("Nice (%)"), _("Sys (%)"),
_("Idle (%)"), separator);
printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", "Percent:",
"Total (%)", "User (%)", "Nice (%)", "Sys (%)",
"Idle (%)", separator);
printf (_("CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n"),
printf ("CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n",
(unsigned long) cpu.flags, (double) total * 100.0 / total,
(double) user * 100.0 / total,
(double) nice * 100.0 / total,
@@ -119,13 +113,13 @@ main (int argc, char *argv [])
p_sys = ((double) cpu.xcpu_sys [i]) * 100.0 / sys;
p_idle = ((double) cpu.xcpu_idle [i]) * 100.0 / idle;
printf (_("CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"),
printf ("CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n",
i, (unsigned long) cpu.flags, p_total, p_user, p_nice,
p_sys, p_idle);
}
printf ("%s\n%-26s %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", separator,
_("Spin:"), s_total * 100.0 / total, s_user * 100.0 / user,
"Spin:", s_total * 100.0 / total, s_user * 100.0 / user,
s_nice * 100.0 / nice, s_sys * 100.0 / sys, s_idle * 100.0 / idle);
exit (0);

View File

@@ -21,6 +21,10 @@
Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include <libintl.h>
#include <stdio.h>

View File

@@ -21,6 +21,10 @@
Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include <stdio.h>
#include <libintl.h>

View File

@@ -24,6 +24,10 @@
#ifndef __GLIBTOP_H__
#define __GLIBTOP_H__
#include <glib/gmacros.h>
G_BEGIN_DECLS
typedef struct _glibtop glibtop;
/**
@@ -77,6 +81,7 @@ struct _glibtop
int output [2]; /* Pipe client -> server */
int socket; /* Accepted connection of a socket */
int ncpu; /* Number of CPUs, zero if single-processor */
int real_ncpu; /* Real number of CPUs. Only ncpu are monitored */
unsigned long os_version_code; /* Version code of the operating system */
const char *name; /* Program name for error messages */
const char *server_command; /* Command used to invoke server */
@@ -94,9 +99,8 @@ extern glibtop *glibtop_global_server;
extern const unsigned long glibtop_server_features;
#define glibtop_init() glibtop_init_r(&glibtop_global_server, 0, 0);
#define glibtop_close() glibtop_close_r(glibtop_global_server);
glibtop *
glibtop_init (void);
glibtop *
glibtop_init_r (glibtop **server_ptr,
@@ -108,4 +112,6 @@ glibtop_init_s (glibtop **server_ptr,
unsigned long features,
unsigned flags);
G_END_DECLS
#endif

View File

@@ -1,4 +1,2 @@
SUBDIRS = glibtop
EXTRA_DIST = libgtop-i18n.h

View File

@@ -10,4 +10,4 @@ glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.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
noinst_HEADERS = error.h write.h read_data.h read.h init_hooks.h

View File

@@ -28,6 +28,8 @@
G_BEGIN_DECLS
void glibtop_close (void);
void glibtop_close_r (glibtop *server);
void glibtop_close_s (glibtop *server);

View File

@@ -52,35 +52,38 @@ G_BEGIN_DECLS
#define GLIBTOP_MAX_CPU 18
/* Nobody should really be using more than 4 processors. */
#define GLIBTOP_NCPU 4
/* Nobody should really be using more than 4 processors.
Yes we are :)
Nobody should really be using more than 32 processors.
*/
#define GLIBTOP_NCPU 32
typedef struct _glibtop_cpu glibtop_cpu;
struct _glibtop_cpu
{
guint64 flags,
total, /* GLIBTOP_CPU_TOTAL */
user, /* GLIBTOP_CPU_USER */
nice, /* GLIBTOP_CPU_NICE */
sys, /* GLIBTOP_CPU_SYS */
idle, /* GLIBTOP_CPU_IDLE */
iowait, /* GLIBTOP_CPU_IOWAIT */
irq, /* GLIBTOP_CPU_IRQ */
softirq, /* GLIBTOP_CPU_SOFTIRQ */
frequency, /* GLIBTOP_CPU_FREQUENCY */
xcpu_total [GLIBTOP_NCPU], /* GLIBTOP_XCPU_TOTAL */
xcpu_user [GLIBTOP_NCPU], /* GLIBTOP_XCPU_USER */
xcpu_nice [GLIBTOP_NCPU], /* GLIBTOP_XCPU_NICE */
xcpu_sys [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SYS */
xcpu_idle [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IDLE */
xcpu_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 */
guint64 flags;
guint64 total; /* GLIBTOP_CPU_TOTAL */
guint64 user; /* GLIBTOP_CPU_USER */
guint64 nice; /* GLIBTOP_CPU_NICE */
guint64 sys; /* GLIBTOP_CPU_SYS */
guint64 idle; /* GLIBTOP_CPU_IDLE */
guint64 iowait; /* GLIBTOP_CPU_IOWAIT */
guint64 irq; /* GLIBTOP_CPU_IRQ */
guint64 softirq; /* GLIBTOP_CPU_SOFTIRQ */
guint64 frequency; /* GLIBTOP_CPU_FREQUENCY */
guint64 xcpu_total [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_TOTAL */
guint64 xcpu_user [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_USER */
guint64 xcpu_nice [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_NICE */
guint64 xcpu_sys [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_SYS */
guint64 xcpu_idle [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IDLE */
guint64 xcpu_iowait [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IOWAIT */
guint64 xcpu_irq [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IRQ */
guint64 xcpu_softirq [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_SOFTIRQ */
guint64 xcpu_flags; /* GLIBTOP_XCPU_IDLE */
};
#define glibtop_get_cpu(cpu) glibtop_get_cpu_l(glibtop_global_server, cpu)
void glibtop_get_cpu(glibtop_cpu *buf);
#if GLIBTOP_SUID_CPU
#define glibtop_get_cpu_r glibtop_get_cpu_p

View File

@@ -43,17 +43,17 @@ typedef struct _glibtop_fsusage glibtop_fsusage;
struct _glibtop_fsusage
{
guint64 flags,
blocks, /* Total number of blocks. */
bfree, /* Free blocks available to superuser. */
bavail, /* Free blocks available to non-superuser. */
files, /* Total file nodes. */
ffree; /* Free file nodes. */
guint64 flags;
guint64 blocks; /* Total number of blocks. */
guint64 bfree; /* Free blocks available to superuser. */
guint64 bavail; /* Free blocks available to non-superuser. */
guint64 files; /* Total file nodes. */
guint64 ffree; /* Free file nodes. */
guint32 block_size; /* Size of a block in bytes. */
guint64 read, write; /* Total blocks read and written */
};
#define glibtop_get_fsusage(fsusage,disk) glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk)
void glibtop_get_fsusage(glibtop_fsusage *buf, const char *mount_dir);
#define glibtop_get_fsusage_r glibtop_get_fsusage_s

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -36,11 +36,6 @@ typedef struct _glibtop_server_info glibtop_server_info;
typedef struct _glibtop_closure glibtop_closure;
typedef int (*glibtop_init_func_t) (glibtop_server *, glibtop_closure *);
extern glibtop_init_func_t _glibtop_init_hook_s [];
extern glibtop_init_func_t _glibtop_init_hook_p [];
struct _glibtop_server_info
{
int ncpu; /* Number of CPUs, zero if single-processor */

View File

@@ -26,10 +26,6 @@
#include <glib.h>
#ifdef _IN_LIBGTOP
#include <config.h>
#endif
#ifdef _IN_LIBGTOP
#endif /* _IN_LIBGTOP */

View File

@@ -0,0 +1,15 @@
#ifndef H_LIBGTOP_INIT_HOOKS_1122955666
#define H_LIBGTOP_INIT_HOOKS_1122955666
#include <glibtop.h>
G_BEGIN_DECLS
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[];
G_END_DECLS
#endif /* H_LIBGTOP_INIT_HOOKS_1122955666 */

View File

@@ -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

View File

@@ -42,12 +42,12 @@ struct _glibtop_loadavg
{
guint64 flags;
double loadavg [3]; /* GLIBTOP_LOADAVG_LOADAVG */
guint64 nr_running, /* GLIBTOP_LOADAVG_NR_RUNNING */
nr_tasks, /* GLIBTOP_LOADAVG_NR_TASKS */
last_pid; /* GLIBTOP_LOADAVG_LAST_PID */
guint64 nr_running; /* GLIBTOP_LOADAVG_NR_RUNNING */
guint64 nr_tasks; /* GLIBTOP_LOADAVG_NR_TASKS */
guint64 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
#define glibtop_get_loadavg_r glibtop_get_loadavg_p

View File

@@ -44,18 +44,18 @@ typedef struct _glibtop_mem glibtop_mem;
struct _glibtop_mem
{
guint64 flags,
total, /* GLIBTOP_MEM_TOTAL */
used, /* GLIBTOP_MEM_USED */
free, /* GLIBTOP_MEM_FREE */
shared, /* GLIBTOP_MEM_SHARED */
buffer, /* GLIBTOP_MEM_BUFFER */
cached, /* GLIBTOP_MEM_CACHED */
user, /* GLIBTOP_MEM_USER */
locked; /* GLIBTOP_MEM_LOCKED */
guint64 flags;
guint64 total; /* GLIBTOP_MEM_TOTAL */
guint64 used; /* GLIBTOP_MEM_USED */
guint64 free; /* GLIBTOP_MEM_FREE */
guint64 shared; /* GLIBTOP_MEM_SHARED */
guint64 buffer; /* GLIBTOP_MEM_BUFFER */
guint64 cached; /* GLIBTOP_MEM_CACHED */
guint64 user; /* GLIBTOP_MEM_USER */
guint64 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
#define glibtop_get_mem_r glibtop_get_mem_p

View File

@@ -49,13 +49,14 @@ struct _glibtop_mountentry
struct _glibtop_mountlist
{
guint64 flags,
number, /* GLIBTOP_MOUNTLIST_NUMBER */
total, /* GLIBTOP_MOUNTLIST_TOTAL */
size; /* GLIBTOP_MOUNTLIST_SIZE */
guint64 flags;
guint64 number; /* GLIBTOP_MOUNTLIST_NUMBER */
guint64 total; /* GLIBTOP_MOUNTLIST_TOTAL */
guint64 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

View File

@@ -43,17 +43,17 @@ typedef struct _glibtop_msg_limits glibtop_msg_limits;
struct _glibtop_msg_limits
{
guint64 flags,
msgpool, /* GLIBTOP_IPC_MSGPOOL */
msgmap, /* GLIBTOP_IPC_MSGMAP */
msgmax, /* GLIBTOP_IPC_MSGMAX */
msgmnb, /* GLIBTOP_IPC_MSGMNB */
msgmni, /* GLIBTOP_IPC_MSGMNI */
msgssz, /* GLIBTOP_IPC_MSGSSZ */
msgtql; /* GLIBTOP_IPC_MSGTQL */
guint64 flags;
guint64 msgpool; /* GLIBTOP_IPC_MSGPOOL */
guint64 msgmap; /* GLIBTOP_IPC_MSGMAP */
guint64 msgmax; /* GLIBTOP_IPC_MSGMAX */
guint64 msgmnb; /* GLIBTOP_IPC_MSGMNB */
guint64 msgmni; /* GLIBTOP_IPC_MSGMNI */
guint64 msgssz; /* GLIBTOP_IPC_MSGSSZ */
guint64 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
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_p

View File

@@ -37,7 +37,7 @@ struct _glibtop_netlist
guint32 number;
};
#define glibtop_get_netlist(netlist) glibtop_get_netlist_l(glibtop_global_server, netlist)
char** glibtop_get_netlist(glibtop_netlist *buf);
#if GLIBTOP_SUID_NETLIST
#define glibtop_get_netlist_r glibtop_get_netlist_p

View File

@@ -68,7 +68,8 @@ enum {
GLIBTOP_IF_FLAGS_LINK1,
GLIBTOP_IF_FLAGS_LINK2,
GLIBTOP_IF_FLAGS_ALTPHYS,
GLIBTOP_IF_FLAGS_MULTICAST
GLIBTOP_IF_FLAGS_MULTICAST,
GLIBTOP_IF_FLAGS_WIRELESS
};
enum GLIBTOP_IF_IN6_SCOPE
@@ -82,23 +83,23 @@ enum GLIBTOP_IF_IN6_SCOPE
struct _glibtop_netload
{
guint64 flags,
if_flags; /* GLIBTOP_NETLOAD_IF_FLAGS */
guint64 flags;
guint64 if_flags; /* GLIBTOP_NETLOAD_IF_FLAGS */
guint32 mtu, /* GLIBTOP_NETLOAD_MTU */
subnet, /* GLIBTOP_NETLOAD_SUBNET */
address; /* GLIBTOP_NETLOAD_ADDRESS */
guint32 mtu; /* GLIBTOP_NETLOAD_MTU */
guint32 subnet; /* GLIBTOP_NETLOAD_SUBNET */
guint32 address; /* GLIBTOP_NETLOAD_ADDRESS */
guint64 packets_in, /* GLIBTOP_NETLOAD_PACKETS_IN */
packets_out, /* GLIBTOP_NETLOAD_PACKETS_OUT */
packets_total, /* GLIBTOP_NETLOAD_PACKETS_TOTAL*/
bytes_in, /* GLIBTOP_NETLOAD_BYTES_IN */
bytes_out, /* GLIBTOP_NETLOAD_BYTES_OUT */
bytes_total, /* GLIBTOP_NETLOAD_BYTES_TOTAL */
errors_in, /* GLIBTOP_NETLOAD_ERRORS_IN */
errors_out, /* GLIBTOP_NETLOAD_ERRORS_OUT */
errors_total, /* GLIBTOP_NETLOAD_ERRORS_TOTAL */
collisions; /* GLIBTOP_NETLOAD_COLLISIONS */
guint64 packets_in; /* GLIBTOP_NETLOAD_PACKETS_IN */
guint64 packets_out; /* GLIBTOP_NETLOAD_PACKETS_OUT */
guint64 packets_total; /* GLIBTOP_NETLOAD_PACKETS_TOTAL*/
guint64 bytes_in; /* GLIBTOP_NETLOAD_BYTES_IN */
guint64 bytes_out; /* GLIBTOP_NETLOAD_BYTES_OUT */
guint64 bytes_total; /* GLIBTOP_NETLOAD_BYTES_TOTAL */
guint64 errors_in; /* GLIBTOP_NETLOAD_ERRORS_IN */
guint64 errors_out; /* GLIBTOP_NETLOAD_ERRORS_OUT */
guint64 errors_total; /* GLIBTOP_NETLOAD_ERRORS_TOTAL */
guint64 collisions; /* GLIBTOP_NETLOAD_COLLISIONS */
guint8 address6[16]; /* GLIBTOP_NETLOAD_ADDRESS6 */
guint8 prefix6[16]; /* GLIBTOP_NETLOAD_PREXIF6 */
@@ -107,7 +108,7 @@ struct _glibtop_netload
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
#define glibtop_get_netload_r glibtop_get_netload_p

View File

@@ -45,13 +45,13 @@ enum {
struct _glibtop_ppp
{
guint64 flags,
state, /* GLIBTOP_PPP_STATE */
bytes_in, /* GLIBTOP_PPP_BYTES_IN */
bytes_out; /* GLIBTOP_PPP_BYTES_OUT */
guint64 flags;
guint64 state; /* GLIBTOP_PPP_STATE */
guint64 bytes_in; /* GLIBTOP_PPP_BYTES_IN */
guint64 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
#define glibtop_get_ppp_r glibtop_get_ppp_p

View File

@@ -37,8 +37,8 @@ typedef struct _glibtop_proc_args glibtop_proc_args;
struct _glibtop_proc_args
{
guint64 flags,
size; /* GLIBTOP_PROC_ARGS_SIZE */
guint64 flags;
guint64 size; /* GLIBTOP_PROC_ARGS_SIZE */
};
@@ -46,9 +46,8 @@ char *
glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf,
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
@@ -82,8 +81,8 @@ char **
glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf,
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);
G_END_DECLS

View File

@@ -48,23 +48,23 @@ typedef struct _glibtop_proc_kernel glibtop_proc_kernel;
struct _glibtop_proc_kernel
{
guint64 flags;
guint64 k_flags, /* kernel flags for the process */
min_flt, /* number of minor page faults since
guint64 k_flags; /* kernel flags for the process */
guint64 min_flt; /* number of minor page faults since
* process start */
maj_flt, /* number of major page faults since
guint64 maj_flt; /* number of major page faults since
* process start */
cmin_flt, /* cumulative min_flt of process and
guint64 cmin_flt; /* cumulative min_flt of process and
* child processes */
cmaj_flt, /* cumulative maj_flt of process and
guint64 cmaj_flt; /* cumulative maj_flt of process and
* child processes */
kstk_esp, /* kernel stack pointer */
kstk_eip, /* kernel stack pointer */
nwchan; /* address of kernel wait channel
guint64 kstk_esp; /* kernel stack pointer */
guint64 kstk_eip; /* kernel stack pointer */
guint64 nwchan; /* address of kernel wait channel
* proc is sleeping in */
char wchan [40];
};
#define glibtop_get_proc_kernel(p1, p2) glibtop_get_proc_kernel_l(glibtop_global_server, p1, p2)
void glibtop_get_proc_kernel(glibtop_proc_kernel *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_KERNEL
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_p

View File

@@ -56,13 +56,14 @@ typedef struct _glibtop_proclist glibtop_proclist;
struct _glibtop_proclist
{
guint64 flags,
number, /* GLIBTOP_PROCLIST_NUMBER */
total, /* GLIBTOP_PROCLIST_TOTAL */
size; /* GLIBTOP_PROCLIST_SIZE */
guint64 flags;
guint64 number; /* GLIBTOP_PROCLIST_NUMBER */
guint64 total; /* GLIBTOP_PROCLIST_TOTAL */
guint64 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
#define glibtop_get_proclist_r glibtop_get_proclist_p

View File

@@ -43,7 +43,15 @@ G_BEGIN_DECLS
#define GLIBTOP_MAP_ENTRY_DEVICE 5
#define GLIBTOP_MAP_ENTRY_FILENAME 6
#define GLIBTOP_MAX_MAP_ENTRY 7
/* Smap support */
#define GLIBTOP_MAP_ENTRY_SIZE 7
#define GLIBTOP_MAP_ENTRY_RSS 8
#define GLIBTOP_MAP_ENTRY_SHARED_CLEAN 9
#define GLIBTOP_MAP_ENTRY_SHARED_DIRTY 10
#define GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN 11
#define GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY 12
#define GLIBTOP_MAX_MAP_ENTRY 13
#define GLIBTOP_MAP_FILENAME_LEN 215
@@ -59,19 +67,32 @@ typedef struct _glibtop_proc_map glibtop_proc_map;
struct _glibtop_map_entry
{
guint64 flags, start, end, offset, perm, inode, device;
guint64 flags;
guint64 start;
guint64 end;
guint64 offset;
guint64 perm;
guint64 inode;
guint64 device;
guint64 size;
guint64 rss;
guint64 shared_clean;
guint64 shared_dirty;
guint64 private_clean;
guint64 private_dirty;
char filename [GLIBTOP_MAP_FILENAME_LEN+1];
};
struct _glibtop_proc_map
{
guint64 flags,
number, /* GLIBTOP_PROC_MAP_NUMBER */
total, /* GLIBTOP_PROC_MAP_TOTAL */
size; /* GLIBTOP_PROC_MAP_SIZE */
guint64 flags;
guint64 number; /* GLIBTOP_PROC_MAP_NUMBER */
guint64 total; /* GLIBTOP_PROC_MAP_TOTAL */
guint64 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
#define glibtop_get_proc_map_r glibtop_get_proc_map_p

View File

@@ -44,18 +44,18 @@ typedef struct _glibtop_proc_mem glibtop_proc_mem;
struct _glibtop_proc_mem
{
guint64 flags,
size, /* total # of pages of memory */
vsize, /* number of pages of virtual memory ... */
resident, /* number of resident set
guint64 flags;
guint64 size; /* total # of pages of memory */
guint64 vsize; /* number of pages of virtual memory ... */
guint64 resident; /* number of resident set
* (non-swapped) pages (4k) */
share, /* number of pages of shared (mmap'd) memory */
rss, /* resident set size */
rss_rlim; /* current limit (in bytes) of the rss
guint64 share; /* number of pages of shared (mmap'd) memory */
guint64 rss; /* resident set size */
guint64 rss_rlim; /* current limit (in bytes) of the rss
* of the process; usually 2,147,483,647 */
};
#define glibtop_get_proc_mem(p1, p2) glibtop_get_proc_mem_l(glibtop_global_server, p1, p2)
void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_MEM
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_p

View File

@@ -88,13 +88,14 @@ struct _glibtop_open_files_entry
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 */
guint64 flags;
guint64 number; /* GLIBTOP_PROC_OPEN_FILES_NUMBER */
guint64 total; /* GLIBTOP_PROC_OPEN_FILES_TOTAL */
guint64 size; /* GLIBTOP_PROC_OPEN_FILES_SIZE */
};
#define glibtop_get_proc_open_files(proc_open_files,pid) glibtop_get_proc_open_files_l(glibtop_global_server, proc_open_files, pid)
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

View File

@@ -46,19 +46,19 @@ typedef struct _glibtop_proc_segment glibtop_proc_segment;
struct _glibtop_proc_segment
{
guint64 flags,
text_rss, /* text resident set size */
shlib_rss, /* shared-lib resident set size */
data_rss, /* data resident set size */
stack_rss, /* stack resident set size */
dirty_size, /* size of dirty pages */
start_code,
guint64 flags;
guint64 text_rss; /* text resident set size */
guint64 shlib_rss; /* shared-lib resident set size */
guint64 data_rss; /* data resident set size */
guint64 stack_rss; /* stack resident set size */
guint64 dirty_size; /* size of dirty pages */
guint64 start_code;
/* address of beginning of code segment */
end_code, /* address of end of code segment */
start_stack; /* address of the bottom of stack segment */
guint64 end_code; /* address of end of code segment */
guint64 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
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_p

View File

@@ -42,14 +42,14 @@ typedef struct _glibtop_proc_signal glibtop_proc_signal;
struct _glibtop_proc_signal
{
guint64 flags,
signal [2], /* mask of pending signals */
blocked [2], /* mask of blocked signals */
sigignore [2], /* mask of ignored signals */
sigcatch [2]; /* mask of caught signals */
guint64 flags;
guint64 signal [2]; /* mask of pending signals */
guint64 blocked [2]; /* mask of blocked signals */
guint64 sigignore [2]; /* mask of ignored signals */
guint64 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
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_p

View File

@@ -58,23 +58,22 @@ struct _glibtop_proc_state
guint64 flags;
char cmd[40]; /* basename of executable file in
* call to exec(2) */
unsigned state; /* single-char code for process state
* (S=sleeping) */
unsigned state;
/* NOTE: when porting the library, TRY HARD to implement the
* following two fields. */
/* IMPORTANT NOTICE: For security reasons, it is extremely important
* only to set the flags value for those two
* fields if their values are corrent ! */
int uid, /* UID of process */
gid, /* GID of process */
ruid,
rgid;
int has_cpu,
processor,
last_processor;
int uid; /* UID of process */
int gid; /* GID of process */
int ruid;
int rgid;
int has_cpu;
int processor;
int 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
#define glibtop_get_proc_state_r glibtop_get_proc_state_p

View File

@@ -50,27 +50,28 @@ typedef struct _glibtop_proc_time glibtop_proc_time;
struct _glibtop_proc_time
{
guint64 flags,
start_time, /* start time of process --
guint64 flags;
guint64 start_time; /* start time of process --
* seconds since 1-1-70 */
rtime, /* real time accumulated by process */
utime, /* user-mode CPU time accumulated by process */
stime, /* kernel-mode CPU time accumulated by process */
cutime, /* cumulative utime of process and
guint64 rtime; /* real time accumulated by process */
guint64 utime; /* user-mode CPU time accumulated by process */
guint64 stime; /* kernel-mode CPU time accumulated by process */
guint64 cutime; /* cumulative utime of process and
* reaped children */
cstime, /* cumulative stime of process and
guint64 cstime; /* cumulative stime of process and
* reaped children */
timeout, /* The time (in jiffies) of the process's
guint64 timeout; /* The time (in jiffies) of the process's
* next timeout */
it_real_value, /* The time (in jiffies) before the
guint64 it_real_value; /* The time (in jiffies) before the
* next SIGALRM is sent to the process
* due to an interval timer. */
frequency, /* Tick frequency. */
xcpu_utime [GLIBTOP_NCPU], /* utime and stime for all CPUs on */
xcpu_stime [GLIBTOP_NCPU]; /* SMP machines. */
guint64 frequency; /* Tick frequency. */
guint64 xcpu_utime [GLIBTOP_NCPU]; /* utime and stime for all CPUs on */
guint64 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
#define glibtop_get_proc_time_r glibtop_get_proc_time_p

View File

@@ -59,28 +59,28 @@ typedef struct _glibtop_proc_uid glibtop_proc_uid;
struct _glibtop_proc_uid
{
guint64 flags;
gint32 uid, /* user id */
euid, /* effective user id */
gid, /* group id */
egid, /* effective group id */
suid, /* set user id */
sgid, /* set group id */
fsuid, /* ??? user id */
fsgid, /* ??? group id */
pid, /* process id */
ppid, /* pid of parent process */
pgrp, /* process group id */
session, /* session id */
tty, /* full device number of controlling terminal */
tpgid, /* terminal process group id */
priority, /* kernel scheduling priority */
nice, /* standard unix nice level of process */
ngroups,
groups [GLIBTOP_MAX_GROUPS];
gint32 uid; /* user id */
gint32 euid; /* effective user id */
gint32 gid; /* group id */
gint32 egid; /* effective group id */
gint32 suid; /* set user id */
gint32 sgid; /* set group id */
gint32 fsuid; /* ??? user id */
gint32 fsgid; /* ??? group id */
gint32 pid; /* process id */
gint32 ppid; /* pid of parent process */
gint32 pgrp; /* process group id */
gint32 session; /* session id */
gint32 tty; /* full device number of controlling terminal */
gint32 tpgid; /* terminal process group id */
gint32 priority; /* kernel scheduling priority */
gint32 nice; /* standard unix nice level of process */
gint32 ngroups;
gint32 groups [GLIBTOP_MAX_GROUPS];
};
#define glibtop_get_proc_uid(p1, p2) glibtop_get_proc_uid_l(glibtop_global_server, p1, p2)
void glibtop_get_proc_uid(glibtop_proc_uid *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_UID
#define glibtop_get_proc_uid_r glibtop_get_proc_uid_p

Some files were not shown because too many files have changed in this diff Show More