Compare commits

..

284 Commits

Author SHA1 Message Date
Ting-Wei Lan
0b42b6bd90 Check for kinfo_getfile on FreeBSD
Code in sysdeps/freebsd contains a lot of HAVE_KINFO_GETFILE checks, but
the macro is always undefined because the configure script doesn't check
for it. To fix it, add required checks for kinfo_getfile function.
2019-08-29 15:13:18 +08:00
Ting-Wei Lan
31db82efce Mark glibtop_init_s as non-introspectable
This function isn't exported so it should be skipped.

https://gitlab.gnome.org/GNOME/gjs/issues/259
2019-07-24 09:21:32 +00:00
Ting-Wei Lan
0fd23dd185 Allow building with gettext ≥ 0.20
The use of AM_GNU_GETTEXT_VERSION in configure.ac instructs autopoint to
copy po/Makefile.in.in from the exact gettext version. It is fine if the
version of gettext installed on the system has the same minor version
number with the requested version, but it fails if you have a newer
version of gettext because of the mismatch between autoconf macros and
Makefile.in.in.

  *** error: gettext infrastructure mismatch: using a Makefile.in.in
  from gettext version 0.19 but the autoconf macros are from gettext
  version 0.20

Instead of specifying the exact version with AM_GNU_GETTEXT_VERSION, we
can use AM_GNU_GETTEXT_REQUIRE_VERSION to ask autopoint to simply use
the gettext version installed on the system to prevent the mismatch.

This also bumps the version requirement on gettext to 0.19.6 because
AM_GNU_GETTEXT_REQUIRE_VERSION was added in this version.
2019-07-24 17:04:00 +08:00
Robert Roth
abccaf488a Prepared release 2.40.0 2019-03-11 10:59:50 +02:00
Mart Raudsepp
8b37040b5b Update Estonian translation 2019-03-10 17:10:13 +00:00
Corentin Noël
8871660dac Fix several array and transfer annotations 2019-03-07 16:28:17 +01:00
Ask Hjorth Larsen
334f1e5c4c Updated Danish translation 2019-02-24 14:52:58 +01:00
Kristjan SCHMIDT
e88e854e57 Update Esperanto translation 2019-02-24 11:07:31 +00:00
Robert Roth
00140eadc8 Prepared release 2.39.91 2019-02-18 20:52:54 +02:00
Javier Jardón
0c1be6e7b6 autogen.sh: Use autoreconf instead deprecated gnome-common
See https://wiki.gnome.org/Projects/GnomeCommon/Migration
2019-02-09 12:28:56 +00:00
Robert Roth
30c771151d Prepared release 2.39.90 2019-02-04 22:27:23 +02:00
Charles Monzat
77912eae1d Update French translation 2018-12-29 14:53:23 +00:00
Robert Roth
b71a5c1404 Merge branch 'wip/lantw/freebsd-laundry-memory-and-zfs-arc' into 'master'
freebsd: Support laundry memory and ZFS ARC

See merge request GNOME/libgtop!3
2018-11-21 06:21:53 +00:00
Balasankar C
8e4c9c197b Update Malayalam translation 2018-10-26 15:13:16 +00:00
Ting-Wei Lan
bb118fa9d6 freebsd: Support laundry memory and ZFS ARC
FreeBSD 11.1 removes cache memory and adds laundry memory. The MIB of
cache memory still exists, but its value is always set to zero.
According to the man page of top(1), the value of laundry memory means
number of dirty pages queued for laundering, suggesting that it should
be added to the 'user' in libgtop because it cannot be freed immediately
without writing out data. Laundry memory was part of inactive memory in
older FreeBSD releases.

FreeBSD systems running on ZFS usually have a large portion of memory
used as ZFS ARC, which has similar purpose to buffer cache of other
filesystems. ZFS ARC can usually be freed quickly when the system needs
more memory, so we don't want to put it in 'user' in libgtop. However,
both buffer cache and ZFS ARC are parts of wired memory, and wired
memory is counted in 'user'. Therefore, we subtract the size of ZFS ARC
from wired memory when calculating 'user' value, making it more useful
to FreeBSD users.

This patch is based on the patch submiited three years ago by
Benoît Dejean <bdejean@gmail.com>.

https://bugzilla.gnome.org/show_bug.cgi?id=748928
https://gitlab.gnome.org/GNOME/libgtop/issues/31
2018-10-25 00:30:12 +08:00
Piotr Drąg
69f7b16421 Update MSGID_BUGS_ADDRESS in po/Makevars 2018-08-16 20:21:24 +02:00
Benoît Dejean
7c811a7826 Fixed 3 old compile warnings. 2018-07-22 12:23:11 +02:00
Mingcong Bai
40144f3908 Update Chinese (China) translation 2018-05-21 14:31:20 +00:00
Daniel Șerbănescu
35a0ba8e27 Update Romanian translation 2018-03-26 20:38:41 +00:00
Benoît Dejean
ec6a87e670 Bump version number and SO libgtop_revision. 2018-03-26 18:28:59 +02:00
Benoît Dejean
e4335d4db2 glibtop_get_proc_map on Linux doesn't need to be SUID.
Revert this proof of concept.
Add C file with comments to document how to make a call SUID.
2018-03-26 18:15:26 +02:00
Benoît Dejean
ec662d01da Make linux build with server.
Add suid infrastructure.
Demo proc_map.
2018-03-26 17:44:43 +02:00
Chao-Hsiung Liao
cab8791fdd Update Chinese (Taiwan) translation 2018-03-10 12:05:24 +00:00
Benoît Dejean
4f36c74b68 Fix build on freebsd and darwin. 2018-03-07 20:47:44 +01:00
Benoît Dejean
c65cb3e46b Rename GLIBTOP_SUID_PROC_FILE to GLIBTOP_SUID_PROC_OPEN_FILES.
The previous name is incorrect and inconsistent with the code generated
by lib.pl.
Also add missing hooks.

This symbol, although exposed in public headers is not part of the API
and is only used internally.
2018-03-07 19:44:41 +01:00
Benoît Dejean
b450bbc67c Try to fix all format flags in pprint example. 2018-03-07 19:39:36 +01:00
Jiri Grönroos
f80b08a865 Update Finnish translation 2018-03-03 16:19:43 +00:00
Benoît Dejean
42b049f338 Fix darwin build by adding dummy proc_io implementation.
https://gitlab.gnome.org/GNOME/libgtop/issues/36
2018-02-11 09:12:54 +01:00
Benoît Dejean
b31bce292b Add Robert and fix my email in AUTHORS. 2018-01-25 10:49:05 +01:00
Hannie Dumoleyn
32a02dfcdb Update Dutch translation 2017-11-06 16:33:03 +00:00
Kjartan Maraas
286db6d137 Updated Norwegian bokmål translation. 2017-11-06 15:01:17 +01:00
Matej Urbančič
aa4b2dc5ee Updated Slovenian translation 2017-10-20 16:58:26 +02:00
Xavi Ivars
d61659c143 [l10n] Updated Catalan (Valencian) translation 2017-10-05 14:35:35 +02:00
Arash Mousavi
9308027409 [L10N] Update Persian translation 2017-09-29 19:26:59 +03:30
Efstathios Iosifidis
487e584a18 Update Greek translation 2017-09-12 19:52:49 +00:00
Robert Roth
e9775e1a40 Prepared release 2.38.0 2017-09-11 23:25:03 +03:00
Ask Hjorth Larsen
b50c07af1d Updated Danish translation 2017-09-10 18:12:33 +02:00
Inaki Larranaga Murgoitio
68509e60d1 Update Basque language 2017-09-09 18:00:16 +02:00
Jordi Mas
f7ff106859 Update Catalan translation 2017-09-09 14:14:40 +02:00
Emin Tufan Çetin
ad8e73957c Update Turkish translation 2017-09-05 16:54:32 +00:00
Robert Roth
8a8c00f4fe Prepared release 2.37.92 2017-09-05 07:50:49 +03:00
Rafael Fontenelle
d30928e8d4 Update Brazilian Portuguese translation 2017-09-03 14:59:33 +00:00
Dušan Kazik
0c23240d5b Update Slovak translation 2017-09-02 08:18:12 +00:00
Alexander Shopov
947156e5d0 Updated Bulgarian translation 2017-09-02 09:32:16 +03:00
Changwoo Ryu
6d194c11d2 Update Korean translation 2017-09-02 04:00:57 +00:00
Yuras Shumovich
73b86f8744 Update Belarusian translation 2017-09-01 16:01:50 +00:00
Benoît Dejean
7dcc6c51d6 Fix API documentation typo. 2017-08-31 18:10:21 +02:00
Benoît Dejean
f5939dc69e Rework code to get rid of $[ assigment.
Use directly uc instead of customer toupper.
2017-08-31 18:10:21 +02:00
Benoît Dejean
0203aa18aa Drop dead files. 2017-08-31 18:10:21 +02:00
Benoît Dejean
f38d9c6523 Regenerate with gperf-3.1. 2017-08-31 18:10:21 +02:00
Rūdolfs Mazurs
9b966f6f1a Update Latvian translation 2017-08-27 23:39:14 +03:00
Rūdolfs Mazurs
cb4721b27d Update Latvian translation 2017-08-27 23:38:30 +03:00
Milo Casagrande
ed9248f04f Update Italian translation 2017-08-25 07:16:44 +00:00
Aurimas Černius
609b8c7e1a Updated Lithuanian translation 2017-08-22 23:26:28 +03:00
Claude Paroz
72b6e2bad4 Updated French translation 2017-08-15 09:18:59 +02:00
Мирослав Николић
7a84a9260d Updated Serbian translation 2017-08-15 06:12:19 +02:00
Мирослав Николић
74b92b5389 Updated Serbian translation 2017-08-15 06:09:44 +02:00
Fran Dieguez
25f5de7d90 Update Galician translation 2017-08-12 10:25:37 +00:00
Robert Roth
80a9763a7e Prepared release 2.37.90 2017-08-08 01:47:41 +03:00
Marek Cernocky
e54dd89d5e Updated Czech translation 2017-08-02 07:23:04 +02:00
Benoit Dejean
d3df61ddbf Fix build for FreeBSD 11.1.
The ufs struct inode has changed a requires a different code to get the
device number.
2017-07-29 14:18:45 +02:00
Daniel Mustieles
44d46a18b3 Update Spanish translation 2017-06-05 14:21:14 +00:00
Benoît Dejean
2f08841044 All fields in glibtop_* are public. The flags indicates which fields were set. 2017-05-23 06:27:28 +02:00
Benoît Dejean
de6e0c1c90 Add reserved fields so that future features won't break the sysdep struct
and the ABI (it means that all past addition broke it).
2017-05-23 06:25:47 +02:00
Robert Roth
ba61b54eb3 Prepared release 2.37.2 2017-05-23 00:10:33 +03:00
Robert Roth
0a00b3522a Fixed autogen warning 2017-05-23 00:06:54 +03:00
Robert Roth
43740ddab7 Merge branch 'wip/diskio' 2017-05-23 00:02:47 +03:00
Robert Roth
063de1a712 Added reserved fields 2017-05-23 00:02:11 +03:00
Benoit Dejean
779386cb15 Implement disk_rbytes and disk_wbytes for FreeBSD. 2017-05-20 11:34:25 +02:00
Balázs Úr
2e2215c5b6 Update Hungarian translation 2017-05-14 19:24:28 +00:00
Mario Blättermann
ec8d59ab48 Update German translation 2017-05-12 15:17:31 +00:00
Robert Roth
5880e04fcc Prepended disk io struct fields with disk_ prefix 2017-05-12 05:14:17 +03:00
Robert Roth
1bf16bfffd Renamed procdiskio to procio 2017-05-12 05:08:41 +03:00
Matej Urbančič
6f04d33af2 Updated Slovenian translation 2017-05-05 14:16:11 +02:00
Fabio Tomat
c22e7de346 Update Friulian translation 2017-05-03 05:38:33 +00:00
Kukuh Syafaat
e611d16997 Update Indonesian translation 2017-05-02 08:25:11 +00:00
Benoît Dejean
aae804c3dc Add NULL pointer checker (bug found with scan-build). 2017-05-01 06:32:41 +02:00
gogo
ce020a63ba Update Croatian translation 2017-04-30 19:51:25 +00:00
Piotr Drąg
526d2e5a2f Update po/Makevars
This is not a GNU package and the Free Software Foundation has no copyright
over it. Also adds MSGID_BUGS_ADDRESS.
2017-04-27 17:29:23 +02:00
Fabio Tomat
ab6f7b39d3 Update Friulian translation 2017-04-21 21:00:25 +00:00
gogo
e73e7691d1 Update Croatian translation
(cherry picked from commit d530a2d2a8)
2017-04-11 17:09:11 +00:00
Anders Jonsson
5c8593ec19 Update Swedish translation 2017-04-07 19:12:44 +00:00
Piotr Drąg
3403ef72b1 Update Polish translation 2017-04-07 13:45:17 +02:00
Piotr Drąg
2f7e2438aa Use Unicode in translatable strings
See https://developer.gnome.org/hig/stable/typography.html

https://bugzilla.gnome.org/show_bug.cgi?id=772757
2017-04-07 14:24:22 +03:00
Robert Roth
88ecae1d00 Prepared release 2.36.0 2017-03-21 09:24:03 +02:00
Robert Roth
89a73e2746 Prepared release 2.35.92 2017-03-13 23:51:13 +02:00
Benoit Dejean
c29d7de9a0 Add dummy proc_diskio implementation for FreeBSD. 2017-02-25 16:30:18 +01:00
Benoit Dejean
07abbd2dfe Add slave proc_diskio handler. 2017-02-25 16:29:26 +01:00
Benoît Dejean
afec9bbf58 Add proc_diskio in sysdeps and timings tests. 2017-02-24 09:04:23 +01:00
Benoît Dejean
b7a684fbbc Also display the flags value. 2017-02-24 09:04:06 +01:00
Benoît Dejean
b589a4fcf0 Fix GLIBTOP_MAX variable name for diskio. 2017-02-21 13:01:04 +01:00
Benoît Dejean
1defc74f07 Set glibtop_proc_diskio.flags.
Check linux version code before reading /proc/PID/io.
2017-02-21 12:50:37 +01:00
Benoît Dejean
35bf89632a Better output format for arrays. 2017-02-16 19:52:57 +01:00
Robert Roth
4285abe72b Prepared release 2.35.90 2017-02-13 23:21:31 +02:00
Robert Roth
dff7c5588e New API to retrieve process io stats, with Linux implementation 2017-02-12 17:59:08 +02:00
Benoît Dejean
1a103bf142 When parsing /proc/cpuinfo, ignore paragraphs that do not describe a CPU/core. 2017-01-28 09:39:43 +01:00
Benoît Dejean
3ff313dd03 Update git ignore list. 2017-01-22 10:56:59 +01:00
Benoît Dejean
01a56e2e30 Use g_ascii_isspace instead of isspace because the later is slower and we
only need to deal with ascii.
2017-01-22 10:45:26 +01:00
Benoît Dejean
7afc81f99d Do not cache getpagesize(), it is already. 2017-01-22 10:45:26 +01:00
Benoît Dejean
b0ab056e99 Use a dynamically allocated buffer to read /proc/cpuinfo to handle computers
with a lot of CPUs.

https://bugzilla.gnome.org/show_bug.cgi?id=323354
2017-01-22 10:45:26 +01:00
Robert Roth
d2bc9b4331 Prepared release 2.34.2 2017-01-16 20:38:11 +02:00
Robert Roth
70e00a0262 Fixed indentation problem 2016-11-27 20:10:00 +02:00
Florian Müllner
f99bb61446 procstate: Fill in last_processor member on linux
The field was added almost 20 years ago, but has only been set on
Solaris so far. It turns out we have a use for it now in the new
"Usage" application, so also fill it in on Linux.

https://bugzilla.gnome.org/show_bug.cgi?id=775182
2016-11-27 20:07:20 +02:00
gogo
a0166d2844 Updated Croatian translation 2016-09-24 10:54:48 +00:00
Piotr Drąg
5f39f4f8f9 Add more options to XGETTEXT_OPTIONS in po/Makevars 2016-09-12 19:55:14 +02:00
Robert Roth
e5e303d497 Prepared release 2.34.1 2016-08-20 17:08:15 +03:00
Piotr Drąg
235ffb4cb6 Updated Polish translation 2016-08-20 15:55:13 +02:00
Ting-Wei Lan
59d9780eae freebsd: Support GLIBTOP_IF_FLAGS_WIRELESS in netload
The ioctl call used in this patch doesn't seems to be documented. It is
what ifconfig(8) command uses to display the media type, and its usage
can be learned by reading the source code of ifconfig(8).

https://bugzilla.gnome.org/show_bug.cgi?id=770165
2016-08-20 16:46:15 +03:00
Gleb Smirnoff
305701c637 freebsd: Rewrite netload implementation with getifaddrs and ioctl
Instead of using a documented and official API to get information related
to a network interface, the old implementation uses kvm library to access
kernel memory directly, which is not easy to understand and can be easily
broken by changing kernel symbols or structs. Besides, FreeBSD 11 hides
severai required kernel struct definitions from userspace programs, which
causes compilation error because the definition of 'struct ifaddr' is not
available unless _KERNEL is defined.

This patch is primarily authored by Gleb Smirnoff <glebius@FreeBSD.org>,
with other simple modification made by Antoine Brodin <antoine@FreeBSD.org>,
Koop Mast <kwm@FreeBSD.org> and Ting-Wei Lan <lantw@src.gnome.org> applied.
It was first submitted to FreeBSD ports and has been used by FreeBSD users
for more than 18 months on all supported versions of FreeBSD.

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194187
https://svnweb.freebsd.org/changeset/ports/371082
https://github.com/freebsd/freebsd-ports-gnome/commit/be884cd
https://github.com/freebsd/freebsd-ports-gnome/commit/422a418
https://github.com/freebsd/freebsd-ports-gnome/commit/a4b1913
https://bugzilla.gnome.org/show_bug.cgi?id=770165
2016-08-20 16:46:15 +03:00
Ting-Wei Lan
b68b2ec65e Rename --with-libgtop-examples to --with-examples
This makes what commit 598374b wanted to do really work. The 9-year-old
commit was intented to rename the option, but it modified the help string
without changing the first argument of AC_ARG_WITH.

https://bugzilla.gnome.org/show_bug.cgi?id=770165
2016-08-20 16:46:15 +03:00
Piotr Drąg
1a8d18a17f Add Language headers to po files
Future versions of gettext will fail if this header is missing.
2016-07-24 03:39:05 +02:00
Javier Jardón
04d39eca02 Use upstream gettext intead intltool/glib-gettext
https://bugzilla.gnome.org/show_bug.cgi?id=768704
2016-07-12 01:01:01 +01:00
Cédric Valmary
36110deac8 Updated Occitan translation 2016-05-30 19:44:04 +00:00
Cédric Valmary
72f10ecfe6 Updated Occitan translation 2016-05-05 20:08:42 +00:00
Robert Roth
1a8f092264 Prepared release 2.34.0 2016-03-22 09:00:27 +02:00
Robert Roth
5522fae242 Prepared release 2.33.91 2016-02-29 23:08:18 +02:00
Cédric Valmary
870dd5afa6 Updated Occitan translation 2016-02-29 19:07:51 +00:00
Kylie McClain
94968b4406 Fix building on musl-libc
libgtop fails to build on musl libc, due to the header
resulting in the headers that would be loaded for libc 5 being
loaded on musl libc.
musl defines headers which are also defined in linux-headers'
in.h, causing redefinition errors.

https://bugzilla.gnome.org/show_bug.cgi?id=760655

Signed-off-by: Benoît Dejean <bdejean@gmail.com>
2016-02-16 18:12:00 +01:00
Robert Roth
819bfe56ee Prepared release 2.33.4 2016-01-18 23:22:18 +02:00
Antoine Jacoutot
de408a6bba openbsd: only PID 1 is special (init) 2016-01-12 17:14:20 +01:00
Ting-Wei Lan
05cb14dbb2 Call setlocale in main function of libgtop_daemon2
It is required to correctly show translated messages on some locales.

https://bugzilla.gnome.org/show_bug.cgi?id=760432
2016-01-11 14:30:41 +08:00
Robert Roth
7e3e4b6860 Prepared release 3.19.3 2015-12-14 19:40:21 +02:00
Jasper Lievisse Adriaanse
02070b7170 Add various headers to unbreak compilation 2015-12-11 15:03:49 +01:00
Jasper Lievisse Adriaanse
fcfacf3213 PROT_EXECUTE -> PROT_EXEC 2015-12-11 14:59:11 +01:00
Jasper Lievisse Adriaanse
7925f83b57 Fix compilation because glibtop_machine definition has moved. 2015-12-11 14:57:34 +01:00
Cédric Valmary
68104bdde1 Updated Occitan translation 2015-11-10 14:02:39 +00:00
Robert Roth
ac2aef0f47 Prepared release 3.18.0 2015-09-21 20:10:23 +03:00
Robert Roth
9764518807 Prepare release 2.31.91 2015-09-14 19:56:24 +03:00
Piotr Drąg
13f08cf164 Updated Polish translation 2015-08-26 19:48:14 +02:00
Benoît Dejean
c8a4c3d2a1 Post-release version bump. 2015-08-25 22:33:47 +02:00
Benoît Dejean
52c35c1b81 Fix constant name for GLIBTOP_MAX_PROC_WD. 2015-08-25 22:32:57 +02:00
Benoît Dejean
e528a7280b Fix a bunch of doc tags for GI. 2015-08-25 22:32:06 +02:00
Benoît Dejean
99ff3d4dff Define missing GLIBTOP_MAX_PROC_AFFINITY. 2015-08-25 22:31:28 +02:00
Benoît Dejean
f865e95e20 Don't ship glibtop/version.h as this is private. 2015-08-23 12:50:43 +02:00
Benoît Dejean
eec96d8ae8 Fix Darwin build.
Patch by  David Evans.
Bug https://bugzilla.gnome.org/show_bug.cgi?id=753743 .
2015-08-18 16:43:00 +02:00
Robert Roth
d10a584e40 Prepared release 2.31.90 2015-08-17 22:52:24 +03:00
Benoît Dejean
a55eee5863 NEWS for 2.31.5. 2015-08-16 19:34:08 +02:00
Benoit Dejean
7437509412 Fix compilation because glibtop_machine definition has moved. 2015-08-15 10:57:25 +02:00
Benoit Dejean
c9e73e52ac glibtop_machine is defined in glibtop.h.
Don't duplicate the typedef (error unless C11).
2015-08-15 10:56:41 +02:00
Benoit Dejean
4c455ac8a0 Implement glibtop_map_entry Pss and Swap.
Regenerate hash function for fast parsing.
2015-08-15 10:39:39 +02:00
Benoit Dejean
56f03d0987 New API/ABI: add Pss (partial set size) and Swap in glibtop_map_entry. 2015-08-15 10:39:38 +02:00
Benoît Dejean
a3b502ec3f Don't include non-installed glibtop_machine.h in glibtop.h.
That would defeat its purpose.
2015-08-15 10:28:14 +02:00
Benoît Dejean
b74d6abf19 server->machine is now a pointer, so propagate the change from . to ->. 2015-08-08 14:36:47 +02:00
Benoît Dejean
ca42f1f3af Define glibtop_machine for Linux as empty because it's not used.
Fix compilation.
2015-08-08 11:11:30 +02:00
Benoit Dejean
106ee901bb Add missing file. 2015-08-08 11:08:50 +02:00
Benoit Dejean
0642c2d610 Turn glibtop::machine from a value to a pointer, allocated on init.
This hides the glibtop_machine implementation.
2015-08-08 11:00:57 +02:00
Benoit Dejean
42e860e5ad Add uid/euid/gid/egid members to struct glibtop. 2015-08-08 11:00:57 +02:00
Benoit Dejean
8f2f236404 No use for glibtop_machine for now, but who knows in the future. 2015-08-08 11:00:57 +02:00
Benoit Dejean
4e0d819264 Always define gligtop_machine.
There was an ABI mismatch because HAVE_GLIBTOP_MACHINE was only
defined when compiling the library itself. The library code would then
use a larger struct glibtop (with a machine member) than the
application code.

Everyone defines a glibtop_machine but linux (though it as a
glibtop_machine.h) and cygwin (code unchanged for 5 years) so this
should not break anything.
2015-08-08 11:00:57 +02:00
Benoit Dejean
5c6879baab Exclude the "idle" kernel process when GLIBTOP_EXCLUDE_IDLE. 2015-08-08 10:56:25 +02:00
Benoît Dejean
a0e97885c1 Post-release version bump. 2015-08-08 10:56:25 +02:00
Benoit Dejean
d817bee619 Remove useless/meaningless calls to glibtop_init_[prs]() with sysdeps/{freebsd,linux}. 2015-08-08 10:56:25 +02:00
Benoit Dejean
58d50d3546 Ignore *.bak files. 2015-08-08 10:56:24 +02:00
Benoit Dejean
d3a247a60f Don't include the ':' in smaps keys.
Regenerate the hashtable.
2015-08-08 10:56:24 +02:00
Benoit Dejean
45c8452140 More debug messages to trace euid/egid changes. 2015-08-08 10:56:24 +02:00
Benoit Dejean
72b4aed8f1 Display features in hex in debug message. 2015-08-08 10:56:24 +02:00
Benoit Dejean
0e8f911410 Add some debug code to trace effective GID changes. 2015-08-08 10:56:24 +02:00
Benoit Dejean
db8ad19eef Move _glibtop_global_server from .data to .bss. 2015-08-08 10:56:24 +02:00
Benoit Dejean
d30fbb22e0 Also display file/line/function in debug messages. 2015-08-08 10:56:24 +02:00
Robert Roth
6762719e43 Prepared release 2.31.4 2015-08-05 23:15:53 +03:00
Benoît Dejean
ad7dc16d89 Some NEWS for 2.31.4. 2015-07-19 15:34:06 +02:00
Benoit Dejean
f2e57d9fec Don't define twice glibtop_global_server and server_features.
I don't know how the linker was even able to cope with that.

This is somehow related with previous commit:
4808aac Make libgtop_server2 link against its libgtop.
2015-07-18 22:10:05 +02:00
Benoit Dejean
1481823085 Use the server parameter, not the global/default one. 2015-07-18 22:08:52 +02:00
Benoit Dejean
4e57a6222d Don't install glibtop_private.h. 2015-07-18 22:07:59 +02:00
Benoit Dejean
cf531d3faf Ignore the new examples/free binary. 2015-07-18 20:53:50 +02:00
Benoit Dejean
b447260691 Turn the proclist example into a minimal ps. 2015-07-18 20:52:10 +02:00
Benoit Dejean
1dbe133a24 Fix utime/stime/cutime/cstime computation. 2015-07-18 20:46:07 +02:00
Benoit Dejean
5ee8d4cb58 It's been 26 years since C89, let modern compilers do what they
want.
2015-07-18 15:56:42 +02:00
Benoit Dejean
3bd720ad81 Do the math correctly to avoid loss of precision for rtime.
I've noticed this with system-monitor where all processes got
a perfectly round CPU time to the second.
2015-07-18 15:46:26 +02:00
Benoit Dejean
6acebf416d Fix printf format/type mistmatch. 2015-07-18 15:46:07 +02:00
Benoit Dejean
51fd022bdd Fixed sprintf format/args type mismatch. 2015-07-15 18:47:51 +02:00
Benoit Dejean
6239438dce Check the command value even if !LIBGTOP_ENABLE_DEBUG. 2015-07-15 18:39:06 +02:00
Benoit Dejean
0099cbb6b4 Rework logic by turning two dark while into fors.
Also, if kvm_read fail, exit rather than looping forever.
2015-07-15 18:39:06 +02:00
Benoit Dejean
cd5649f326 Print message to stderr at once, to avoid mixups. 2015-07-15 18:39:06 +02:00
Benoit Dejean
d8a5e2162d Fix signedness issue when printing HW address. 2015-07-15 18:39:06 +02:00
Benoit Dejean
185396d674 Check getloadavg() return value and call the function directly
on the glibtop_loadavg buffer member.
2015-07-15 18:39:06 +02:00
Benoit Dejean
90f0e40395 More files to ignore. 2015-07-15 18:39:06 +02:00
Benoit Dejean
172f0a50ba Convert lots of fprintf(stderr, ...) to glibtop_debug*(). 2015-07-15 18:38:28 +02:00
Benoit Dejean
887092a05d Define glibtop_debug(_r) as macros, eventually calling real C function.
Keep these as macros so that if debug is not enable, although the
debug message is parsed, it's not run.
It's better this way because the debug message is always parsed and
checked instead of being deleted by the preprocessor.
2015-07-15 18:38:27 +02:00
Benoit Dejean
b2a2f6b5c2 Print client and server pids in messages. 2015-07-15 18:38:27 +02:00
Benoit Dejean
6bdb9a76eb Fixed glibtop_debug for calls without arguments. 2015-07-15 18:38:27 +02:00
Benoit Dejean
fd29dae933 Always define LIBGTOP_ENABLE_DEBUG (0|1) to be used in if() statements. 2015-07-15 18:38:27 +02:00
Benoit Dejean
65c5ca842f Add a level (DEBUG, WARNING, ERROR) to printing functions. 2015-07-15 18:38:27 +02:00
Benoit Dejean
edd08e6fd6 Fix macro definition. 2015-07-15 18:38:27 +02:00
Benoit Dejean
82ff91b74c Add proper (and private) debug functions glibtop_debug* 2015-07-15 18:38:27 +02:00
Benoit Dejean
ca6cabe41d For processes with threads, only reports the pid once.
On my system, this brings proclist's output from +300 to 72.
2015-07-15 18:38:27 +02:00
Benoit Dejean
4fb241097f Fix alignment issue with proclist arguments unpacking. 2015-07-15 18:38:26 +02:00
Benoit Dejean
214c3635da The perl generator for the *_l() functions does not need to know
about the glibtop_* struct layout, so drop this from the definitions.
2015-07-15 18:38:26 +02:00
Benoit Dejean
fba67da65d Reorder GI annotations and remove duplicate for _l(). 2015-07-15 18:34:49 +02:00
Benoit Dejean
119049b8c0 Fix autotools deprecation warning with s/INCLUDES/AM_CPPFLAGS/g. 2015-07-15 18:24:29 +02:00
Benoît Dejean
1908c00d32 Ignore the free example binary. 2015-07-14 11:21:45 +02:00
Benoît Dejean
70640d297e Implement a GNU free -m clone. 2015-07-14 11:17:59 +02:00
Benoît Dejean
c33623c097 Provide stats about shared memory and account Slab as cached.
This matches exactly `free`.
2015-07-14 11:11:38 +02:00
Benoît Dejean
6fe3b94f13 Make git ignore more files. 2015-07-14 10:31:13 +02:00
Benoît Dejean
f1a01a543c Define and initialize param_buf, send_{size,ptr} only when using
glibtop_call.
2015-07-10 20:36:12 +02:00
Benoît Dejean
758862e272 Add proc_affinity example. 2015-07-10 20:36:12 +02:00
Benoît Dejean
6941e7e22f Update and clean .gitignored files list. 2015-07-10 20:36:12 +02:00
Benoît Dejean
ee2ac6d563 Add glibtop_get_shm_limits gtk-doc/gi tags. 2015-07-10 20:36:12 +02:00
Benoît Dejean
4c0632ccbd Move gtk-doc/gi tag for glibtop_netlist_* to the correct place. 2015-07-10 20:36:12 +02:00
Benoît Dejean
71c7d65b1d Add gtk-doc/gi for glibtop_netlist. 2015-07-10 20:36:12 +02:00
Benoît Dejean
94aa63f796 Add an assertion to ensure that GLIBTOP_SYSDEPS_* fit in an unsigned long. 2015-07-10 20:36:12 +02:00
Benoît Dejean
931a8364ff Fix a few gtk-doc/gi function tags. 2015-07-10 20:36:12 +02:00
Benoît Dejean
598764c171 Add gtk-doc annotations for the glibtop_init functions.
Their return value should not be freed.
This fixes usage from gnome-instrospection (invalid free).
2015-07-10 20:36:12 +02:00
Benoît Dejean
aa7f9df00e Drop --with-libgtop-smp.
No code uses this switch.
2015-07-10 20:36:12 +02:00
Benoît Dejean
4c4466292e Fixed sscanf format string as arguments are unsigned ints. 2015-07-10 20:36:12 +02:00
Ionut Biru
fcc1d9d957 Add support for linux x.y versioning schema
Since linux 3.0, a valid version can have two digits

Signed-off-by: Ionut Biru <ibiru@archlinux.org>
2015-07-10 20:36:12 +02:00
Benoît Dejean
0580b2fb2c Linux >= 3.14 provides a "MemAvailable" field in /proc/meminfo which gives the
estimated amount of memory available for applications.
Use this to compute glibtop_mem::user.

https://bugzilla.gnome.org/show_bug.cgi?id=727543.
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/fs/proc/meminfo.c?id=34e431b0ae398fc54ea69ff85ec700722c9da773
2015-07-10 20:36:12 +02:00
Ting-Wei Lan
a206cfc728 freebsd: rework system memory usage
Change the value of memory usage from:

  Used   = Wired
  Free   = Total - Wired
  Shared = 0
  Buffer = 0
  Cached = Cache
  User   = Wired - Cache
  Locked = Not Supported

To:

  Used   = Total - Free
  Free   = Free
  Shared = 0
  Buffer = Buf
  Cached = Cache
  User   = Active + Wired
  Locked = Not Supported

The left-hand side means fields in the glibtop_mem struct and the right-hand
side means the value showed by `top' command. This change should make the value
showed by gnome-system-monitor, which uses `User' field, become closer to
the real memory usage.

All sysctlbyname code in sysdeps/freebsd/mem.c has been moved to separate
functions to make the code cleaner.
2015-07-03 22:42:07 +08:00
Pedro Albuquerque
58ca70eaee Updated Portuguese translation 2015-07-01 22:01:19 +00:00
Robert Roth
421419fdbf Fixed build problem with procmap example 2015-06-26 03:10:51 +03:00
Benoit Dejean
ebb7f9d5e2 Better debug message. 2015-06-26 02:57:42 +03:00
Benoit Dejean
1f3b08e6dc Display self-timings using ps. 2015-06-26 02:57:42 +03:00
Benoit Dejean
a870dfc8f2 Print more fields about each filesystem. 2015-06-26 02:57:42 +03:00
Benoit Dejean
e0244ad3fc Don't try to print a NULL hash_table. 2015-06-26 02:57:41 +03:00
Benoit Dejean
1156794b33 Add command tracing in glibtop_call_l when debugging. 2015-06-26 02:57:41 +03:00
Benoit Dejean
874771ec1c Ignore more output files. 2015-06-26 02:57:41 +03:00
Benoit Dejean
16f262985d Use glibtop_warn_r instead of fprintf. 2015-06-26 02:57:41 +03:00
Benoit Dejean
0a94dc7992 Display inode number without zero padding. 2015-06-26 02:57:41 +03:00
Benoit Dejean
50b5dea402 Implement dev/inode for mapped files on ZFS. 2015-06-26 02:57:41 +03:00
Benoit Dejean
f4b23ef0c6 Split the code that works only with UFS inode. Will ease new code for ZFS. 2015-06-26 02:57:41 +03:00
Benoit Dejean
1f41349a7e Fix format for permissions. Display mappings' sizes. Avoid duplicating formatting code. 2015-06-26 02:57:41 +03:00
Benoit Dejean
548f104f35 If no argument is given, defaults to self. When self-testing, try to mmap some files as an example. 2015-06-26 02:57:41 +03:00
Benoit Dejean
4808aac8ef Make libgtop_server2 link against its libgtop. 2015-06-26 02:57:41 +03:00
Benoit Dejean
f04ce61b80 Run server_command instead of hardcoded LIBGTOP_SERVER. 2015-06-26 02:57:41 +03:00
Benoit Dejean
c7f7e5a1c6 Set the FSUSAGE_(READ|WRITE) flags only we managed to get something. Currently, it doesn't seem to work on ZFS. 2015-06-26 02:57:41 +03:00
Benoit Dejean
e2348c24a0 When pretty-printing an array, don't display 0 elements. 2015-06-26 02:57:41 +03:00
Benoit Dejean
f76b37be1b Rename NEED_LIBGTOP to LIBGTOP_NEED_SERVER. 2015-06-26 02:57:41 +03:00
Benoit Dejean
b2fee3e111 No special case for pid == 0. As of 2015, with FreeBSD 10.1-RELEASE #0 r274401 on amd64, this really works and sets the name to "kernel" for pid == 0. 2015-06-26 02:57:41 +03:00
Benoit Dejean
7b2416a8d1 Use LIBGTOP_ENABLE_DEBUG instead of undefined SLAVE_DEBUG. 2015-06-26 02:57:41 +03:00
Benoit Dejean
d006da7e54 Drop dead file, 2015-06-26 02:57:41 +03:00
Benoit Dejean
a93dc2526d The DEBUG macro enabled by --enable-debug is actually LIBGTOP_ENABLE_DEBUG. 2015-06-26 02:57:41 +03:00
Benoit Dejean
a3a16707b5 Enable silent build. 2015-06-26 02:57:41 +03:00
Robert Roth
fd53595189 Prepare 2.31.3 2015-06-22 22:43:35 +03:00
Benoit Dejean
0057bbbc47 Don't set GLIBTOP_PROC_MEM_SHARE because it's not implemented anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=744890
2015-06-21 10:57:11 +08:00
Benoit Dejean
e6d776ee61 It doesn't make any sense to count as shared each and every mmaped file. Disable that code while we figure how to really do it.
https://bugzilla.gnome.org/show_bug.cgi?id=744890
2015-06-21 10:56:39 +08:00
Juan RP
c68e077909 Implemented procaffinity for netBSD.
https://bugzilla.gnome.org/show_bug.cgi?id=553713
2015-06-20 03:35:56 +03:00
Juan RP
72e46fc6b4 Define some GLIBTOP_SUID constants to build procaffinity on NetBSD
https://bugzilla.gnome.org/show_bug.cgi?id=553713
2015-06-20 03:33:42 +03:00
Juan RP
2ea8a156f3 Enable procaffinity.c on sysdeps/bsd/Makefile.am.
(Please also double check the author and subject.)

https://bugzilla.gnome.org/show_bug.cgi?id=553713
2015-06-20 03:33:42 +03:00
Ting-Wei Lan
40e1a86d52 freebsd: Add fdescfs to the ignored filesystem list
fdescfs is the filesystem mounted on /dev/fd to provide access to file
descriptors via filsystem paths. It is not a real filesystem used on disks.

https://bugzilla.gnome.org/show_bug.cgi?id=748790
2015-06-14 14:19:24 +08:00
Cédric Valmary
a101d6b27a Updated Occitan translation 2015-04-30 07:47:26 +00:00
Robert Roth
9770db12d2 Let's stick to the GNOME release process
To stick to the GNOME release train from now on, we start with an
unstable number and the next stable will be released along with
GNOME 3.18.0.
2015-04-02 06:50:28 +03:00
Robert Roth
a61052dc59 Version bump required to 2.32.0 2015-03-21 20:13:08 +02:00
Samir Ribic
8985e7e239 Updated Bosnian translation 2015-03-13 21:02:02 +00:00
Robert Roth
1c1449306b Added some more files to .gitignore 2015-01-03 15:36:57 +02:00
Jasper St. Pierre
3f8f65386e Make some APIs that return struct introspectable
In order to do this, we need to define some boxed types. So we need
to add a new dependency, GObject, to GTop.

https://bugzilla.gnome.org/show_bug.cgi?id=663265
2015-01-03 15:32:56 +02:00
Jasper St. Pierre
30d29e624b Warn on introspection errors
https://bugzilla.gnome.org/show_bug.cgi?id=663265
2015-01-03 15:32:55 +02:00
Ryan Lortie
bea8b6790a stub sysdep: add some missing files
https://bugzilla.gnome.org/show_bug.cgi?id=724196
2015-01-03 15:12:10 +02:00
Ryan Lortie
5e6c25d29d stub sysdep: add missing defines
https://bugzilla.gnome.org/show_bug.cgi?id=724196
2015-01-03 15:12:10 +02:00
Ryan Lortie
b7e1219e0a stub sysdep: fix mismatched function vs. prototype
https://bugzilla.gnome.org/show_bug.cgi?id=724196
2015-01-03 15:12:10 +02:00
Jasper Lievisse Adriaanse
057dcf77d6 Sync with OpenBSD's uvm_extern.h changes 2014-11-18 19:33:38 +01:00
Jasper Lievisse Adriaanse
b7edd1542e dkstat.h is going away on OpenBSD, so use sys/sched.h instead for CP_* 2014-09-08 09:36:07 +02:00
Jasper Lievisse Adriaanse
7326f8816d Add SMP support for OpenBSD 2014-09-01 15:21:31 +02:00
Robert Roth
ed1b3f5834 Use configure.ac instead of configure.in 2014-08-20 05:25:50 +03:00
Robert Roth
7a3414d002 Update old FSF address.
https://bugzilla.gnome.org/show_bug.cgi?id=721514
2014-08-20 04:44:27 +03:00
Märt Põder
564506bb0d Add annotations to get_proclist* to make Python bindings work.
https://bugzilla.gnome.org/show_bug.cgi?id=734170
2014-08-20 04:23:56 +03:00
Andre Klapper
9e0843064d doap: add <programming-language> 2014-07-31 21:05:19 +02:00
Olav Vitters
d8d8aac9d3 doap category core 2014-07-30 20:30:20 +02:00
Jasper Lievisse Adriaanse
9a887feed2 Unbreak build on OpenBSD after recent header changes. 2014-07-10 13:15:50 +02:00
Tom Tryfonidis
81dfeb526c Updated Greek translation 2014-07-09 23:20:20 +00:00
Steven Chamberlain
d9c01aac4a Don't include sys/pipe.h on kFreeBSD
Defining _KERNEL to include sys/pipe.h subsequently breaks sys/conf.h;
 since sys/pipe.h is not meant to be used in userland, and libgtop2 builds
 anyway on kFreeBSD without it, don't include it.
https://bugzilla.gnome.org/show_bug.cgi?id=674067
2014-04-29 00:30:07 +03:00
Ting-Wei Lan
82c28b2ad2 src/daemon: remove LINK variable
https://bugzilla.gnome.org/show_bug.cgi?id=724904
2014-04-29 00:14:49 +03:00
Benoît Dejean
05345dc032 ABI breakage by efaaf6eb77. Fixing libtool version to 10.0.0.
https://bugzilla.gnome.org/show_bug.cgi?id=323354
2014-04-29 00:11:30 +03:00
Jasper Lievisse Adriaanse
63ba7b2c12 switch from VM_METER to VM_UVMEXP 2014-04-10 16:32:47 +02:00
Antoine Jacoutot
5371e8ec88 openbsd: drop empty EXTRA_SYSDEPS_LIBS.
https://bugzilla.gnome.org/show_bug.cgi?id=727375
2014-03-31 12:50:44 +02:00
Ryan Lortie
e682094418 examples: don't override LINK and other variables
Defining our own LINK causes us to run into some trouble with LDFLAGS,
which commit 16bb5c8075 already
demonstrated.

LDFLAGS does need to be included here, but it's probably even easier to
just use the default value.

https://bugzilla.gnome.org/show_bug.cgi?id=724195
2014-02-20 20:58:16 -05:00
Ryan Lortie
2e861977a6 freebsd: don't link to libgeom
libgeom declares several symbols in GLib's namespace, including
g_close() and it therefore cannot be used from any program that also
uses GLib.

For now, disable the parts of the FreeBSD sysdep that use libgeom.
Hopefully the libgeom API will be changed soon.

https://bugzilla.gnome.org/show_bug.cgi?id=723685
2014-02-20 20:56:57 -05:00
Ting-Wei Lan
a39f290683 Fix build issues on FreeBSD 2014-02-20 20:55:39 -05:00
Antoine Jacoutot
02b55313f3 openbsd: bring glibtop_get_proc_segment from FreeBSD 2014-02-08 11:54:07 +01:00
Antoine Jacoutot
596c42d7f1 openbsd: drop unecessary check 2014-02-08 11:53:26 +01:00
Shankar Prasad
d4d4f7735a updated kn.po 2014-02-05 16:38:05 +05:30
Antoine Jacoutot
4cd3e4fed6 openbsd: merge patches from ports tree
Bring OpenBSD closer to FreeBSD to help checking what is missing/different.
Also we make sure to use and build mountlist and fsusage from the
sysdeps/openbsd directory instead of the common one.

https://bugzilla.gnome.org/show_bug.cgi?id=723521
2014-02-03 10:59:05 +01:00
Antoine Jacoutot
c99ceeaa65 openbsd: better handling of p_wchan 2014-02-01 19:09:21 +01:00
Antoine Jacoutot
ecbfade528 openbsd: really drop all lsof related code 2014-01-23 15:03:36 +01:00
Jasper Lievisse Adriaanse
73d4679ad8 Remove OpenBSD RCS ID which bears no meaning here. 2014-01-23 11:24:33 +01:00
Robert Nagy
df1db43032 Fix several issues related to process information on OpenBSD and drop lsof usage. 2014-01-23 10:39:39 +01:00
Jasper Lievisse Adriaanse
ff07ba102f Some fields have moved in struct proc from timeval to timespec. 2014-01-23 10:34:52 +01:00
Jasper Lievisse Adriaanse
07d2816d5b Adjust header inclusion on OpenBSD
- fixup header inclusion after netinet/in_var.h was made private
- configure fails to define HAVE_NET_IF_VAR_H
2014-01-23 10:30:53 +01:00
Victor Ibragimov
2caff8bf5c Tajik translation updated 2013-12-20 13:36:26 +05:00
Victor Ibragimov
78e257e958 Tajik translation updated 2013-12-20 13:32:00 +05:00
Jason Xing
efaaf6eb77 Extending the cpu number from 32 to 1024 (bgo #323354, bgo #681632)
From: Jason Xing <xinggang861@gmail.com>

In 'Bug 323354 - Support a dynamic number of CPUs', there will be a
solution which can dynamically allocate memory for large number of
CPUs. As libgtop supports multiple operating systems, this work
may take some time.

This patch is a temporary patch, which worked before the whole
solution comes out. It only supports linux platform with CPU number
up to 1024.

There are two Macroes which limit the statistics of CPU. One is
GLIBTOP_NCPU. The other is a buffer size. This buffer used to read
/proc/stat contents into.

https://bugzilla.gnome.org/show_bug.cgi?id=323354
https://bugzilla.gnome.org/show_bug.cgi?id=681632
2013-12-12 22:36:10 +02:00
Robert Roth
47bcd423b5 Linux cpuinfo count fixed for SMP PPC processors (bgo #621831)
libgtop processor count has been simply determined by the number
of sections in /proc/cpuinfo split by \n\n. On PPC processors
supporting SMP after the per-cpu description for each core a
new section is listed (after \n\n) with the common attributes
of the cores [1]. Work around this by only counting a section
as describing a CPU if it contains "processor" to fix bug #621831 [0]
[0] https://bugzilla.gnome.org/show_bug.cgi?id=621831
[1] https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/arch/powerpc/kernel/setup-common.c?id=9fc2105aeaaf56b0cf75296a84702d0f9e64437b#n319
2013-12-09 04:02:38 +02:00
Robert Roth
38bfee6739 pprint example extended to print cpu info 2013-12-09 04:02:21 +02:00
Robert Roth
3147bf2e34 Log error on statvfs failure.
When doing stat on a FS and failing, log the error message based
on the errno set to help the user find the reason.
https://bugzilla.gnome.org/show_bug.cgi?id=685172
2013-12-09 01:57:01 +02:00
Antoine Jacoutot
2506662196 OpenBSD: add missing header
netinet6/in6_var.h is not included automatically  anymore from netinet/in_var.h
on OpenBSD, so explicitely #include <netinet6/in6_var.h>.
2013-10-16 17:09:16 +02:00
598 changed files with 7430 additions and 5983 deletions

118
.gitignore vendored
View File

@@ -1,83 +1,66 @@
service/*.o *.a
service/.deps *.bak
service/gtop-dbus-service *.core
sysdeps/Makefile *.diff
sysdeps/Makefile.in *.gmo
sysdeps/*/Makefile *.header
sysdeps/*/Makefile.in *.in
sysdeps/*/.deps *.la
sysdeps/*/.libs *.lo
sysdeps/*/*.o *.new
sysdeps/*/*.lo *.o
sysdeps/*/*.la *.old
src/*/Makefile *.out
src/*/Makefile.in *.patch
src/*/.deps *.pot
src/Makefile *.s
src/Makefile.in *.sed
stamp-h1 *.sin
po/*.gmo *.stamp
po/stamp-it *.swp
po/POTFILES *~
po/Makefile.in.in .deps
po/Makefile.in .libs
po/Makefile ABOUT-NLS
missing
misc/Makefile
misc/Makefile.in
m4/
ltmain.sh
libtool
libgtopconfig.h
libgtop.spec
libgtop-2.0.pc
lib/Makefile
lib/Makefile.in
lib/.deps
lib/.libs
lib/*.o
lib/*.lo
lib/*.la
lib/lib.c
lib/GTop-2.0.gir
lib/GTop-2.0.typelib
INSTALL INSTALL
Makefile Makefile
Makefile.in Makevars.template
Rules-quot
\#*\#
aclocal.m4 aclocal.m4
autom4te.cache/ autom4te.cache/
compile
config.guess config.guess
config.h config.h
config.h.in
config.log config.log
config.status config.status
config.sub config.sub
configure configure
depcomp depcomp
doc/Makefile
doc/Makefile.in
doc/libgtop2.info doc/libgtop2.info
doc/mdate-sh doc/mdate-sh
doc/reference/Makefile
doc/reference/Makefile.in
doc/reference/html/ doc/reference/html/
doc/reference/libgtop-decl-list.txt doc/reference/libgtop-decl-list.txt
doc/reference/libgtop-decl.txt doc/reference/libgtop-decl.txt
doc/reference/libgtop-undeclared.txt
doc/reference/libgtop-undocumented.txt
doc/reference/libgtop-unused.txt
doc/reference/libgtop.args
doc/reference/libgtop.hierarchy
doc/reference/libgtop.interfaces
doc/reference/libgtop.prerequisites
doc/reference/libgtop.signals
doc/reference/tmpl/ doc/reference/tmpl/
doc/reference/version.xml doc/reference/version.xml
doc/reference/xml/ doc/reference/xml/
doc/stamp-vti doc/stamp-vti
doc/texinfo.tex doc/texinfo.tex
doc/version.texi doc/version.texi
examples/.deps/
examples/.libs/
examples/*.o
examples/Makefile
examples/Makefile.in
examples/affinity examples/affinity
examples/df examples/df
examples/diskio
examples/first examples/first
examples/mem examples/free
examples/mountlist examples/mountlist
examples/netlist examples/netlist
examples/netload examples/netload
@@ -92,12 +75,21 @@ examples/sysdeps
examples/timings examples/timings
examples/wd examples/wd
gtk-doc.make gtk-doc.make
include/Makefile
include/Makefile.in
include/glibtop/Makefile
include/glibtop/Makefile.in
install-sh install-sh
intltool-extract.in lib/GTop-2.0.gir
intltool-merge.in lib/GTop-2.0.typelib
intltool-update.in lib/lib.c
libgtop-2.0.pc
libgtop.spec
libgtopconfig.h
libtool
ltmain.sh
m4/
missing
po/POTFILES
po/stamp-it
src/daemon/libgtop_daemon2
src/daemon/libgtop_server2
stamp-h1
stamp-po
tmp-*

View File

@@ -1,3 +1,4 @@
Martin Baulig (martin@home-of-linux.org) Martin Baulig (martin@home-of-linux.org)
Drazen Kacar (dave@srce.hr) Drazen Kacar (dave@srce.hr)
Benoît Dejean (tazforever@dlfp.org) Benoît Dejean (bdejean@gmail.com)
Robert Roth (robert.roth.off@gmail.com)

View File

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

185
NEWS
View File

@@ -1,3 +1,188 @@
11 March 2019: Overview of changes in 2.40.0
================================================
* Fixed array and transfer annotations for documentation
18 February 2019: Overview of changes in 2.39.91
* Replace deprecated gnome-common with autoreconf
04 February 2019: Overview of changes in 2.39.90
================================================
* Updated translations
* FreeBSD:
- added support for laundry memory
- added support for ZFS ARC
* Fixed compile warnings
* Fix build on FreeBSD and darwin
* Linux:
- get procmap doesn't need suid
11 September 2017: Overview of changes in 2.38.0
================================================
* Updated translations
04 September 2017: Overview of changes in 2.37.92
================================================
* Updated translations
* Code cleanup
07 August 2017: Overview of changes in 2.37.90
================================================
* Added reserved fields to the sysdeps struct
* Updated translations
* Fixed build failure in FreeBSD 11
22 May 2017: Overview of changes in 2.37.2
================================================
* Added support for per-process io monitoring
* Linux
* FreeBSD
* Updated translations
* Added nullpointer check
* Use unicode in translatable strings
20 March 2017: Overview of changes in 2.36.0
================================================
* Version bumped
13 March 2017: Overview of changes in 2.35.92
================================================
* Better output format for arrays
13 February 2017: Overview of changes in 2.35.90
================================================
* Linux:
- Use dynamically allocated cpu buffer
- Do not cache getpagesize()
- Use faster g_ascii_isspace in tokenization
- Ignore paragraphs not describing a CPU/core
* Updated translations
* Added more gettext options
16 January 2017: Overview of changes in 2.34.2
================================================
* Linux:
- fill last_processor member
* Updated translations
* Added more gettext options
20 August 2016: Overview of changes in 2.34.1
================================================
* FreeBSD:
- rewrite netload to use official APIs
- mark wireless interfaces as such
* All
- rename --with-libgtop-examples to --with-examples
- use gettext instead of intltool/glib-gettext
- added Language headers to the translations
Special thanks to Gleb Smirnoff, Antoine Brodin, Koop Mast and Ting-Wei Lan for
the FreeBSD fixes, to Javier Jardón for the gettext migration and to Piotr Drąg
for adding the Language headers.
22 March 2016: Overview of changes in 2.34.0
================================================
* Stable release
29 February 2016: Overview of changes in 2.33.91
* Updated translations
* Fix building on must-libc
18 January 2016: Overview of changes in 2.33.4
* On OpenBSD only PID 1 is special
* Call setlocale in main
14 December: Overview of changes in 2.33.3
* Fixed borken compilation on OpenBSD
* Updated translations.
21 September 2015: Overview of changes in 2.32.0
* Stable release
14 September 2015: Overview of changes in 2.31.91
================================================
* Darwin:
- Fixed build.
* All
- GI docs fixes
- include fixes
- Updated translations
16 August 2015: Overview of changes in 2.31.90
=============================================
* ABI changes:
- ABI was inconsistent on platforms like FreeBSD which make use of
glibtop_machine. The ABI was actually different between the
library and the server. Fixed this by simply always defining
glibtop_machine in glibtop struct.
- Add Pss and Swap members in glibtop_proc_mem.
- This is the second ABI breakage in since 2.28 (the first one was
bumping NCPU), there were no release for 2.30.
* FreeBSD:
- proclist: exclude the "idle" kernel process when GLIBTOP_EXCLUDE_IDLE.
- Remove extraneous glibtop_init() calls.
* Linux:
- proc_mem: implement Pss and Swap.
- Remove extraneous glibtop_init() calls.
* All:
- Propagate the change that machine in struct glibtop is now a
pointer. Hope that change doesn't break build on other platforms,
I can only test Linux and FreeBSD.
5 August 2015: Overview of changes in 2.31.4
=============================================
* 71 commits !
* Implement a proper --enable-debug mode.
* FreeBSD:
- procstate: set process name for kernel (pid=0)
- procmap: get dev/inode for ZFS (no filename yet)
- mem: rework memory usage to something more meaningful
- proclist: don't report threads
- proctime: fix CPU times
* Linux:
- mem: use MemAvailable when available
- mem: match `free`, report Slab as Cached.
- support for x.y versionsmemory to match `free`
* Fix a lot of GI tags: it now works without crashing.
* Server and daemon binaries are now dynamically linked against their libgtop.
* Update a lot of examples/.
* Clean up some very old code.
* Updated translations.
Special thanks to Ting-Wei Lan for providing patches and feedback on FreeBSD.
22 June 2015: Overview of changes in 2.31.3
=============================================
* Numerous OpenBSD backend fixes.
* Fixed FreeBSD build issues.
* Implemented procaffinity support for NetBSD.
* Updated translations
19 August 2013: Overview of changes in 2.28.5 19 August 2013: Overview of changes in 2.28.5
============================================= =============================================
* Fix numerous bugs in the OpenBSD backend. * Fix numerous bugs in the OpenBSD backend.

View File

@@ -1,22 +1,40 @@
#!/bin/sh #!/bin/sh
# Run this to generate all the initial makefiles, etc. # Run this to generate all the initial makefiles, etc.
test -n "$srcdir" || srcdir=$(dirname "$0")
test -n "$srcdir" || srcdir=.
srcdir=`dirname $0` olddir=$(pwd)
test -z "$srcdir" && srcdir=.
PKG_NAME="Gnome Top Library" cd $srcdir
(test -f $srcdir/configure.ac \ (test -f configure.ac) || {
&& test -f $srcdir/copyright.txt \ echo "*** ERROR: Directory '$srcdir' does not look like the top-level project directory ***"
&& test -d $srcdir/sysdeps) || { exit 1
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level gnome directory"
exit 1
} }
which gnome-autogen.sh || { # shellcheck disable=SC2016
echo "You need to install gnome-common from the GNOME CVS" PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac)
exit 1
} if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then
REQUIRED_AUTOMAKE_VERSION=1.9 echo "*** WARNING: I am going to run 'configure' with no arguments." >&2
. gnome-autogen.sh echo "*** If you wish to pass any to it, please specify them on the" >&2
echo "*** '$0' command line." >&2
echo "" >&2
fi
aclocal --install || exit 1
gtkdocize --copy || exit 1
autoreconf --verbose --force --install || exit 1
cd "$olddir"
if [ "$NOCONFIGURE" = "" ]; then
$srcdir/configure "$@" || exit 1
if [ "$1" = "--help" ]; then
exit 0
else
echo "Now type 'make' to compile $PKG_NAME" || exit 1
fi
else
echo "Skipping configure process."
fi

View File

@@ -3,21 +3,21 @@ dnl Configure script for the Gnome library
dnl dnl
m4_define([libgtop_major_version], [2]) m4_define([libgtop_major_version], [2])
m4_define([libgtop_minor_version], [28]) m4_define([libgtop_minor_version], [40])
m4_define([libgtop_micro_version], [6]) m4_define([libgtop_micro_version], [0])
m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version]) m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version])
dnl increment if the interface has additions, changes, removals. dnl increment if the interface has additions, changes, removals.
m4_define([libgtop_current], [9]) m4_define([libgtop_current], [11])
dnl increment any time the source changes; set to dnl increment any time the source changes; set to
dnl 0 if you increment CURRENT dnl 0 if you increment CURRENT
m4_define([libgtop_revision], [0]) m4_define([libgtop_revision], [1])
dnl increment if any interfaces have been added; set to 0 dnl increment if any interfaces have been added; set to 0
dnl if any interfaces have been removed. removal has dnl if any interfaces have been removed. removal has
dnl precedence over adding, so set to 0 if both happened. dnl precedence over adding, so set to 0 if both happened.
m4_define([libgtop_age], [2]) m4_define([libgtop_age], [0])
# Increase each time you change the client/server protocol. # Increase each time you change the client/server protocol.
m4_define([libgtop_server_version], [5]) m4_define([libgtop_server_version], [5])
@@ -34,6 +34,7 @@ AC_CONFIG_HEADERS(config.h)
AC_CANONICAL_HOST AC_CANONICAL_HOST
AM_INIT_AUTOMAKE([-Wno-portability tar-ustar no-dist-gzip dist-xz]) AM_INIT_AUTOMAKE([-Wno-portability tar-ustar no-dist-gzip dist-xz])
AM_SILENT_RULES([yes])
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
GOBJECT_INTROSPECTION_CHECK([0.6.7]) GOBJECT_INTROSPECTION_CHECK([0.6.7])
@@ -91,8 +92,9 @@ GNOME_LIBGTOP_SYSDEPS
GNOME_LIBGTOP_TYPES GNOME_LIBGTOP_TYPES
GLIB_REQUIRED=2.6.0 GLIB_REQUIRED=2.6.0
GOBJECT_REQUIRED=2.26.0
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED) PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GOBJECT_REQUIRED)
AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_LIBS)
@@ -213,20 +215,20 @@ AC_TYPE_SIGNAL
AC_FUNC_STRFTIME AC_FUNC_STRFTIME
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname) AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
IT_PROG_INTLTOOL([0.35.0]) # FIXME: Remove AM_GNU_GETTEXT_VERSION once autoreconf supports REQUIRE_VERSION
AM_GNU_GETTEXT_VERSION([0.19.6])
AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
AM_GNU_GETTEXT([external])
GETTEXT_PACKAGE=libgtop-2.0 GETTEXT_PACKAGE=libgtop-2.0
AC_SUBST(GETTEXT_PACKAGE) 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]) [Define to the gettext package used by the library])
AM_GLIB_GNU_GETTEXT
GLIB_DEFINE_LOCALEDIR([GTOPLOCALEDIR])
AC_PATH_XTRA AC_PATH_XTRA
dnl For Solaris dnl For Solaris
dnl Please don\'t move this before AC_PATH_XTRA dnl Please don't move this before AC_PATH_XTRA
AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)]) AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect)]) AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect)])
AC_CHECK_FUNC(inet_aton,,[AC_CHECK_LIB(resolv,inet_aton)]) AC_CHECK_FUNC(inet_aton,,[AC_CHECK_LIB(resolv,inet_aton)])
@@ -261,7 +263,8 @@ dnl Debugging
AC_ARG_ENABLE(debug, AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug], AS_HELP_STRING([--enable-debug],
[Turn on debugging @<:@default=no@:>@]), [Turn on debugging @<:@default=no@:>@]),
AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 1, [Define to enable debugging])) AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 1, [Define to enable debugging]),
AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 0, [Define to disable debugging]))
AC_ARG_ENABLE(fatal-warnings, AC_ARG_ENABLE(fatal-warnings,
AS_HELP_STRING([--enable-fatal-warnings], AS_HELP_STRING([--enable-fatal-warnings],
[Make all warnings fatal @<:@debug=no@:>@]), [Make all warnings fatal @<:@debug=no@:>@]),
@@ -272,14 +275,6 @@ dnl These definitions are expanded in make.
LIBGTOP_LIBS='-L$(libdir)' LIBGTOP_LIBS='-L$(libdir)'
LIBGTOP_INCS='-I$(includedir)/libgtop-2.0' LIBGTOP_INCS='-I$(includedir)/libgtop-2.0'
if test x$libgtop_use_machine_h = xyes ; then
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_GLIBTOP_MACHINE_H"
fi
if test x$libgtop_smp = xyes ; then
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SMP"
fi
if test x$libgtop_have_sysinfo = xyes ; then if test x$libgtop_have_sysinfo = xyes ; then
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO" LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
fi fi
@@ -308,24 +303,17 @@ LIBGTOP_EXTRA_LIBS="$GLIB_LIBS $LIBGTOP_EXTRA_LIBS"
LIBGTOP_LIBS="$LIBGTOP_LIBS" LIBGTOP_LIBS="$LIBGTOP_LIBS"
LIBGTOP_LIBS="$LIBGTOP_LIBS"
machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir"
AC_SUBST(machine_incs)
if test "$GCC" = "yes" ; then if test "$GCC" = "yes" ; then
CFLAGS="\ CFLAGS="\
-Winline \ -Winline \
-Wall \ -Wall \
-std=gnu89 \
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
-Wnested-externs -Wpointer-arith \ -Wnested-externs -Wpointer-arith \
-Wcast-align -Wsign-compare \ -Wcast-align -Wsign-compare \
$CFLAGS" $CFLAGS"
fi fi
INCLUDES="-I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $X_CFLAGS" AM_CPPFLAGS="-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 ... # Add various defines to the config.h file ...
AH_VERBATIM([_GNU_SOURCE], AH_VERBATIM([_GNU_SOURCE],
@@ -344,7 +332,7 @@ AC_DEFINE([LIBGTOP_VERSION_CODE], [libgtop_version_code],
AC_DEFINE_UNQUOTED([LIBGTOP_SERVER], ["$LIBGTOP_SERVER"], AC_DEFINE_UNQUOTED([LIBGTOP_SERVER], ["$LIBGTOP_SERVER"],
[The path to the libgtop server]) [The path to the libgtop server])
AC_SUBST(INCLUDES) AC_SUBST(AM_CPPFLAGS)
AC_SUBST(LIBGTOP_EXTRA_LIBS) AC_SUBST(LIBGTOP_EXTRA_LIBS)
AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_LIBS)
@@ -364,20 +352,12 @@ AC_SUBST(sysdeps_suid_lib)
AC_SUBST(server_programs) AC_SUBST(server_programs)
GTK_DOC_CHECK(1.4) GTK_DOC_CHECK(1.4)
GLIB_REQUIRED=2.37.3
PKG_CHECK_MODULES(GTOP_DBUS,
glib-2.0 >= $GLIB_REQUIRED
gio-2.0 >= $GLIB_REQUIRED
gio-unix-2.0 >= $GLIB_REQUIRED
)
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile
libgtop.spec libgtop.spec
po/Makefile.in po/Makefile.in
misc/Makefile misc/Makefile
service/Makefile
include/Makefile include/Makefile
include/glibtop/Makefile include/glibtop/Makefile
sysdeps/Makefile sysdeps/Makefile

View File

@@ -16,7 +16,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */

2
debian/rules.in vendored
View File

@@ -10,7 +10,7 @@
i=$(shell pwd)/debian/tmp i=$(shell pwd)/debian/tmp
b=$(shell pwd)/debian/build b=$(shell pwd)/debian/build
configure: configure.in configure: configure.ac
@echo "--- Making configure script and configuring" @echo "--- Making configure script and configuring"
chmod +x autogen.sh chmod +x autogen.sh
./autogen.sh --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \ ./autogen.sh --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \

View File

@@ -46,9 +46,9 @@ HTML_IMAGES=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget # Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties. # signals and properties.
# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. AM_CPPFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
INCLUDES= AM_CPPFLAGS=
GTKDOC_LIBS= GTKDOC_LIBS=
# This includes the standard gtk-doc make rules, copied by gtkdocize. # This includes the standard gtk-doc make rules, copied by gtkdocize.

View File

@@ -36,8 +36,8 @@
Documentation License</citetitle> from the Free Software Documentation License</citetitle> from the Free Software
Foundation by visiting <ulink type="http" Foundation by visiting <ulink type="http"
url="http://www.fsf.org">their Web site</ulink> or by writing url="http://www.fsf.org">their Web site</ulink> or by writing
to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, to: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA.</para> Boston, MA 02110-1301, USA.</para>
<para>Many of the names used by companies to distinguish their <para>Many of the names used by companies to distinguish their
products and services are claimed as trademarks. Where those products and services are claimed as trademarks. Where those

View File

@@ -1,16 +1,17 @@
## Process this file with automake to produce Makefile.in ## Process this file with automake to produce Makefile.in
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(AM_LDFLAGS) -o $@ AM_CPPFLAGS = \
-I$(top_srcdir) \
INCLUDES = @INCLUDES@ -I$(top_srcdir)/include \
-I$(top_srcdir)/sysdeps/$(sysdeps_dir) \
DEFS = @DEFS@ -DGTOPLOCALEDIR=\"$(localedir)\" \
$(GLIB_CFLAGS)
AM_LDFLAGS = $(LIBGTOP_EXTRA_LIBS) AM_LDFLAGS = $(LIBGTOP_EXTRA_LIBS)
noinst_PROGRAMS = first second pprint procargs df netlist \ noinst_PROGRAMS = first second pprint procargs df netlist \
mountlist procmap netload sysdeps timings \ mountlist procmap netload sysdeps timings \
openfiles smp proclist mem wd affinity openfiles smp proclist free wd affinity diskio
first_SOURCES = first.c first_SOURCES = first.c
first_LDADD = $(top_builddir)/lib/libgtop-2.0.la first_LDADD = $(top_builddir)/lib/libgtop-2.0.la
@@ -42,6 +43,7 @@ pprint_LDADD = $(top_builddir)/lib/libgtop-2.0.la
procargs_SOURCES = procargs.c procargs_SOURCES = procargs.c
procargs_LDADD = $(top_builddir)/lib/libgtop-2.0.la procargs_LDADD = $(top_builddir)/lib/libgtop-2.0.la
df_SOURCES = df.c df_SOURCES = df.c
df_LDADD = $(top_builddir)/lib/libgtop-2.0.la df_LDADD = $(top_builddir)/lib/libgtop-2.0.la
@@ -57,8 +59,11 @@ proclist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
wd_SOURCES = wd.c wd_SOURCES = wd.c
wd_LDADD = $(top_builddir)/lib/libgtop-2.0.la wd_LDADD = $(top_builddir)/lib/libgtop-2.0.la
mem_SOURCE = mem.c free_SOURCE = mem.c
mem_LDADD = $(top_builddir)/lib/libgtop-2.0.la free_LDADD = $(top_builddir)/lib/libgtop-2.0.la
affinity_SOURCES = affinity.c affinity_SOURCES = affinity.c
affinity_LDADD = $(top_builddir)/lib/libgtop-2.0.la affinity_LDADD = $(top_builddir)/lib/libgtop-2.0.la
diskio_SOURCES = diskio.c
diskio_LDADD = $(top_builddir)/lib/libgtop-2.0.la

View File

@@ -13,19 +13,36 @@ static void print_fsusage(const char *mountpoint)
{ {
glibtop_fsusage buf; glibtop_fsusage buf;
enum { SIZE, USED, FREE, AVAIL, READ, WRITE, MAX };
char **a = g_new0(char*, MAX);
glibtop_get_fsusage(&buf, mountpoint); glibtop_get_fsusage(&buf, mountpoint);
printf("%-30s %10llu %10llu %10llu %5.1f %10llu %10llu\n",
mountpoint,
buf.blocks * buf.block_size >> 20,
(buf.blocks - buf.bavail) * buf.block_size >> 20,
buf.bavail * buf.block_size >> 20,
(buf.blocks - buf.bavail) * 100.0 / (buf.blocks ? buf.blocks : 1.0),
buf.read,
buf.write
);
}
#define I(X) a[(X)]
I(SIZE) = g_format_size_full(buf.blocks * buf.block_size, G_FORMAT_SIZE_IEC_UNITS);
I(USED) = g_format_size_full((buf.blocks - buf.bavail) * buf.block_size, G_FORMAT_SIZE_IEC_UNITS);
I(FREE) = g_format_size_full(buf.bfree * buf.block_size, G_FORMAT_SIZE_IEC_UNITS);
I(AVAIL) = g_format_size_full(buf.bavail * buf.block_size, G_FORMAT_SIZE_IEC_UNITS);
I(READ) = g_format_size_full(buf.read, G_FORMAT_SIZE_IEC_UNITS);
I(WRITE) = g_format_size_full(buf.write, G_FORMAT_SIZE_IEC_UNITS);
printf("%#7x %10s %10s %10s %10s %5.1f%% %10s %10s %8lu %8lu %s\n",
(unsigned)buf.flags,
I(SIZE),
I(USED),
I(FREE),
I(AVAIL),
(buf.blocks - buf.bavail) * 100.0 / (buf.blocks ? buf.blocks : 1.0),
I(READ),
I(WRITE),
(unsigned long)buf.files,
(unsigned long)buf.ffree,
mountpoint
);
g_strfreev(a);
}
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
@@ -33,8 +50,8 @@ int main(int argc, char **argv)
glibtop_init(); glibtop_init();
printf("%-30s %10s %10s %10s %5s %10s %10s\n", printf("%-6s %10s %10s %10s %10s %5s %10s %10s %10s %10s %s\n",
"Filesystem", "Size", "Used", "Avail", "Use%", "Read", "Write"); "(flags)", "Size", "Used", "Free", "Avail", "Use%", "Read", "Write", "Files", "Files Free", "Mountpoint");
if (argc > 1) { if (argc > 1) {
while (*++argv) while (*++argv)

39
examples/diskio.c Normal file
View File

@@ -0,0 +1,39 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <glibtop.h>
#include <glibtop/procio.h>
#include <stdlib.h>
#include <unistd.h>
static void show_diskio(pid_t pid)
{
glibtop_proc_io io;
glibtop_get_proc_io (&io, pid);
printf("<%ld>\t", (long)pid);
printf("flags: %08lx disk_rchar : %lu, disk_wchar : %lu, disk_read_bytes : %lu, disk_write_bytes : %lu\n", (unsigned long)io.flags, io.disk_rchar, io.disk_wchar, io.disk_rbytes, io.disk_wbytes);
}
int main(int argc, char **argv)
{
glibtop_init();
while(*++argv)
{
pid_t pid = strtol(*argv, NULL, 10);
show_diskio(pid);
}
glibtop_close();
return 0;
}

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

44
examples/free.c Normal file
View File

@@ -0,0 +1,44 @@
#include <glibtop.h>
#include <glibtop/mem.h>
#include <glibtop/swap.h>
#include <glib.h>
#include <unistd.h>
static unsigned mb(guint64 n)
{
return n >> 20;
}
int main(int argc, char **argv)
{
glibtop_mem mem;
glibtop_swap swap;
glibtop_init();
glibtop_get_mem(&mem);
glibtop_get_swap(&swap);
printf(" total used free shared buff/cache available\n");
printf("%-7s %11u %11u %11u %11u %11u %11u\n",
"Mem:",
mb(mem.total),
mb(mem.used - mem.buffer - mem.cached),
mb(mem.free),
mb(mem.shared),
mb(mem.buffer + mem.cached),
mb(mem.total - mem.user));
printf("%-7s %11u %11u %11u\n",
"Swap:",
mb(swap.total),
mb(swap.used),
mb(swap.free));
glibtop_close();
return 0;
}

View File

@@ -1,21 +0,0 @@
#include <glibtop.h>
#include <glibtop/mem.h>
#include <glib.h>
#include <unistd.h>
int main(int argc, char **argv)
{
glibtop_mem buf;
glibtop_init();
g_print("%lx\n", glibtop_global_server->features);
glibtop_get_mem(&buf);
glibtop_close();
return 0;
}

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -99,7 +99,7 @@ main (int argc, char *argv [])
glibtop_get_fsusage (&fsusage, glibtop_get_fsusage (&fsusage,
mount_entries [index].mountdir); mount_entries [index].mountdir);
printf ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n", printf ("%-16s %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9d\n",
mount_entries [index].mountdir, mount_entries [index].mountdir,
fsusage.blocks, fsusage.bfree, fsusage.blocks, fsusage.bfree,
fsusage.bavail, fsusage.files, fsusage.bavail, fsusage.files,

View File

@@ -14,8 +14,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -51,7 +51,7 @@ static char* hwaddress_format_for_display(glibtop_netload *buf)
for(i = 0; i < sizeof buf->hwaddress; ++i) for(i = 0; i < sizeof buf->hwaddress; ++i)
g_string_append_printf(repr, "%02X:", g_string_append_printf(repr, "%02X:",
(unsigned) ((char*)buf->hwaddress)[i]); ((unsigned char*)buf->hwaddress)[i]);
repr->str [ repr->len - 1] = ' '; repr->str [ repr->len - 1] = ' ';
str = g_string_free(repr, FALSE); str = g_string_free(repr, FALSE);
@@ -118,22 +118,22 @@ main (int argc, char *argv [])
"\tAddress:\t\t0x%08x - %s\n" "\tAddress:\t\t0x%08x - %s\n"
"\tSubnet:\t\t\t0x%08x - %s\n\n" "\tSubnet:\t\t\t0x%08x - %s\n\n"
"\tMTU:\t\t\t%d\n" "\tMTU:\t\t\t%d\n"
"\tCollisions:\t\t%llu\n\n" "\tCollisions:\t\t%" G_GUINT64_FORMAT "\n\n"
"\tPackets In:\t\t%llu\n" "\tPackets In:\t\t%" G_GUINT64_FORMAT "\n"
"\tPackets Out:\t\t%llu\n" "\tPackets Out:\t\t%" G_GUINT64_FORMAT "\n"
"\tPackets Total:\t\t%llu\n\n" "\tPackets Total:\t\t%" G_GUINT64_FORMAT "\n\n"
"\tBytes In:\t\t%llu\n" "\tBytes In:\t\t%" G_GUINT64_FORMAT "\n"
"\tBytes Out:\t\t%llu\n" "\tBytes Out:\t\t%" G_GUINT64_FORMAT "\n"
"\tBytes Total:\t\t%llu\n\n" "\tBytes Total:\t\t%" G_GUINT64_FORMAT "\n\n"
"\tErrors In:\t\t%llu\n" "\tErrors In:\t\t%" G_GUINT64_FORMAT "\n"
"\tErrors Out:\t\t%llu\n" "\tErrors Out:\t\t%" G_GUINT64_FORMAT "\n"
"\tErrors Total:\t\t%llu\n\n" "\tErrors Total:\t\t%" G_GUINT64_FORMAT "\n\n"
"\tAddress6:\t\t%s\n" "\tAddress6:\t\t%s\n"
"\tPrefix6:\t\t%s\n" "\tPrefix6:\t\t%s\n"
"\tScope6:\t\t\t%#03x\n\n" "\tScope6:\t\t\t%#03x\n\n"
"\tHarware Address:\t%s\n\n", "\tHarware Address:\t%s\n\n",
netload.flags, (unsigned long long)netload.flags,
netload.if_flags, (unsigned long long)netload.if_flags,
(guint32) netload.address, address_string, (guint32) netload.address, address_string,
(guint32) netload.subnet, subnet_string, (guint32) netload.subnet, subnet_string,
netload.mtu, netload.mtu,

View File

@@ -3,6 +3,7 @@
#endif #endif
#include <glibtop.h> #include <glibtop.h>
#include <glibtop/sysinfo.h>
#include <glibtop/union.h> #include <glibtop/union.h>
@@ -17,21 +18,68 @@
#define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \ #define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \
(unsigned long) sizeof buf) (unsigned long) sizeof buf)
#define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \ #define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = %" FORMAT "\n", \
(unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA) (unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA)
#define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \ #define PPRINT_GUINT64(DATA) PPRINT(DATA, G_GUINT64_FORMAT)
#define PPRINT_FLAGS(DATA) printf("\t%4lu B %3lu " "flags" " = " "%#llx" "\n", \
(unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), (unsigned long long)buf.DATA)
#define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \
size_t i; \
printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \
(unsigned long) sizeof buf.ARRAY, \
(unsigned long) buf_offsetof(ARRAY), \
(unsigned long) G_N_ELEMENTS(buf.ARRAY)); \
for (i = 0; i < (SIZE); ++i) { \
if (!buf.ARRAY[i] && i < (SIZE - 1) && !buf.ARRAY[i + 1]) { \
do { i++; } while (i < SIZE && !buf.ARRAY[i]); \
printf("..., "); \
} else { \
printf(".%zd = %" FORMAT ", ", i, buf.ARRAY[i]); \
} \
} \
printf("}\n"); \
} while(0)
#define PPRINT_ENTRY_ARRAY(ARRAY, SIZE) do { \
size_t i; \ size_t i; \
printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \ printf("\t%4lu B " #ARRAY "[%lu/%lu] = { \n", \
(unsigned long) sizeof buf.ARRAY, (unsigned long) buf_offsetof(ARRAY),\ (unsigned long) sizeof buf->ARRAY, (unsigned long)(SIZE), \
(unsigned long) G_N_ELEMENTS(buf.ARRAY)); \ (unsigned long) G_N_ELEMENTS(buf->ARRAY)); \
for(i = 0; i < (SIZE - 1); ++i) printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \ for(i = 0; i < SIZE; ++i) { \
printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \ if (buf->ARRAY[i].values) { \
printf ("\t[ "); \
PPRINT_HASHTABLE(buf->ARRAY[i].values); \
printf ("]\n"); \
} \
} \
printf("} "); \
} while(0)
#define PPRINT_HASHTABLE(HASHTABLE) do { \
g_hash_table_foreach (HASHTABLE, (GHFunc)pprint_hashtable_item, NULL); \
} while(0) } while(0)
#define FOOTER_PPRINT() putchar('\n'); #define FOOTER_PPRINT() putchar('\n');
static void pprint_hashtable_item(gchar* key, gchar* value, gpointer user_data)
{
printf ("'%s': '%s', ", key, value);
}
static void pprint_get_sysinfo(void)
{
const glibtop_sysinfo *buf;
buf = glibtop_get_sysinfo();
HEADER_PPRINT(glibtop_get_sysinfo);
//PPRINT_FLAGS(flags);
// PPRINT_GUINT64(ncpu);
PPRINT_ENTRY_ARRAY(cpuinfo, buf->ncpu);
FOOTER_PPRINT();
}
static void pprint_get_cpu(void) static void pprint_get_cpu(void)
{ {
@@ -40,25 +88,25 @@ static void pprint_get_cpu(void)
glibtop_get_cpu(&buf); glibtop_get_cpu(&buf);
HEADER_PPRINT(glibtop_get_cpu); HEADER_PPRINT(glibtop_get_cpu);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT(total, "%llu"); PPRINT_GUINT64(total);
PPRINT(user, "%llu"); PPRINT_GUINT64(user);
PPRINT(nice, "%llu"); PPRINT_GUINT64(nice);
PPRINT(sys, "%llu"); PPRINT_GUINT64(sys);
PPRINT(idle, "%llu"); PPRINT_GUINT64(idle);
PPRINT(iowait, "%llu"); PPRINT_GUINT64(iowait);
PPRINT(irq, "%llu"); PPRINT_GUINT64(irq);
PPRINT(softirq, "%llu"); PPRINT_GUINT64(softirq);
PPRINT(frequency, "%llu"); PPRINT_GUINT64(frequency);
PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu"); PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, G_GUINT64_FORMAT);
PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu"); PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, G_GUINT64_FORMAT);
PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu"); PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, G_GUINT64_FORMAT);
PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu"); PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, G_GUINT64_FORMAT);
PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu"); PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, G_GUINT64_FORMAT);
PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, "%llu"); PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, G_GUINT64_FORMAT);
PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, "%llu"); PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, G_GUINT64_FORMAT);
PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, "%llu"); PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, G_GUINT64_FORMAT);
PPRINT(xcpu_flags, "%llx"); PPRINT_FLAGS(xcpu_flags);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -72,15 +120,15 @@ static void pprint_get_fsusage(const char *mountpoint)
HEADER_PPRINT(glibtop_get_fsusage); HEADER_PPRINT(glibtop_get_fsusage);
printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint); printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT(blocks, "%llu"); PPRINT_GUINT64(blocks);
PPRINT(bfree, "%llu"); PPRINT_GUINT64(bfree);
PPRINT(bavail, "%llu"); PPRINT_GUINT64(bavail);
PPRINT(files, "%llu"); PPRINT_GUINT64(files);
PPRINT(ffree, "%llu"); PPRINT_GUINT64(ffree);
PPRINT(block_size, "%u"); PPRINT(block_size, "u");
PPRINT(read, "%llu"); PPRINT_GUINT64(read);
PPRINT(write, "%llu"); PPRINT_GUINT64(write);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -93,11 +141,11 @@ static void pprint_get_loadavg(void)
glibtop_get_loadavg(&buf); glibtop_get_loadavg(&buf);
HEADER_PPRINT(glibtop_get_loadavg); HEADER_PPRINT(glibtop_get_loadavg);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT_ARRAY(loadavg, 3, "%f"); PPRINT_ARRAY(loadavg, 3, "f");
PPRINT(nr_running, "%llu"); PPRINT_GUINT64(nr_running);
PPRINT(nr_tasks, "%llu"); PPRINT_GUINT64(nr_tasks);
PPRINT(last_pid, "%llu"); PPRINT_GUINT64(last_pid);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -110,15 +158,15 @@ static void pprint_get_mem(void)
glibtop_get_mem(&buf); glibtop_get_mem(&buf);
HEADER_PPRINT(glibtop_get_mem); HEADER_PPRINT(glibtop_get_mem);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT(total, "%llu"); PPRINT_GUINT64(total);
PPRINT(used, "%llu"); PPRINT_GUINT64(used);
PPRINT(free, "%llu"); PPRINT_GUINT64(free);
PPRINT(shared, "%llu"); PPRINT_GUINT64(shared);
PPRINT(buffer, "%llu"); PPRINT_GUINT64(buffer);
PPRINT(cached, "%llu"); PPRINT_GUINT64(cached);
PPRINT(user, "%llu"); PPRINT_GUINT64(user);
PPRINT(locked, "%llu"); PPRINT_GUINT64(locked);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -134,12 +182,12 @@ static void pprint_get_mountlist(gboolean allfs)
HEADER_PPRINT(glibtop_get_mountlist); HEADER_PPRINT(glibtop_get_mountlist);
printf("glibtop_get_mountlist (allfs = %d)\n", allfs); printf("glibtop_get_mountlist (allfs = %d)\n", allfs);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT(number, "%llu"); PPRINT_GUINT64(number);
PPRINT(total, "%llu"); PPRINT_GUINT64(total);
PPRINT(size, "%llu"); PPRINT_GUINT64(size);
printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number); printf("\t%4" G_GUINT64_FORMAT " B entries[%" G_GUINT64_FORMAT "] = \n\t\t{\n", buf.total, buf.number);
for(i = 0; i < buf.number; ++i) for(i = 0; i < buf.number; ++i)
{ {
@@ -147,7 +195,7 @@ static void pprint_get_mountlist(gboolean allfs)
" .devname = \"%s\"," " .devname = \"%s\","
" .mountir = \"%s\"," " .mountir = \"%s\","
" .type = \"%s\" }\n", " .type = \"%s\" }\n",
(unsigned long) i, entries[i].dev, (unsigned long) i, (unsigned long long)entries[i].dev,
entries[i].devname, entries[i].devname,
entries[i].mountdir, entries[i].mountdir,
entries[i].type); entries[i].type);
@@ -168,14 +216,14 @@ static void pprint_get_msg_limits(void)
glibtop_get_msg_limits(&buf); glibtop_get_msg_limits(&buf);
HEADER_PPRINT(glibtop_get_msg_limits); HEADER_PPRINT(glibtop_get_msg_limits);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT(msgpool, "%llu"); PPRINT_GUINT64(msgpool);
PPRINT(msgmap, "%llu"); PPRINT_GUINT64(msgmap);
PPRINT(msgmax, "%llu"); PPRINT_GUINT64(msgmax);
PPRINT(msgmnb, "%llu"); PPRINT_GUINT64(msgmnb);
PPRINT(msgmni, "%llu"); PPRINT_GUINT64(msgmni);
PPRINT(msgssz, "%llu"); PPRINT_GUINT64(msgssz);
PPRINT(msgtql, "%llu"); PPRINT_GUINT64(msgtql);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -189,7 +237,7 @@ static void pprint_get_netload(const char *iface)
HEADER_PPRINT(glibtop_get_netload); HEADER_PPRINT(glibtop_get_netload);
printf("glibtop_get_netload (iface = \"%s\")\n", iface); printf("glibtop_get_netload (iface = \"%s\")\n", iface);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -223,12 +271,12 @@ static void pprint_get_swap(void)
glibtop_get_swap(&buf); glibtop_get_swap(&buf);
HEADER_PPRINT(glibtop_get_swap); HEADER_PPRINT(glibtop_get_swap);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT(total, "%llu"); PPRINT_GUINT64(total);
PPRINT(used, "%llu"); PPRINT_GUINT64(used);
PPRINT(free, "%llu"); PPRINT_GUINT64(free);
PPRINT(pagein, "%llu"); PPRINT_GUINT64(pagein);
PPRINT(pageout, "%llu"); PPRINT_GUINT64(pageout);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -241,10 +289,10 @@ static void pprint_get_uptime(void)
glibtop_get_uptime(&buf); glibtop_get_uptime(&buf);
HEADER_PPRINT(glibtop_get_uptime); HEADER_PPRINT(glibtop_get_uptime);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT(uptime, "%f"); PPRINT(uptime, "f");
PPRINT(idletime, "%f"); PPRINT(idletime, "f");
PPRINT(boot_time, "%llu"); PPRINT_GUINT64(boot_time);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -258,12 +306,12 @@ static void pprint_get_proc_kernel(pid_t pid)
glibtop_get_proc_kernel(&buf, pid); glibtop_get_proc_kernel(&buf, pid);
HEADER_PPRINT(glibtop_get_proc_kernel); HEADER_PPRINT(glibtop_get_proc_kernel);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT(k_flags, "%llu"); PPRINT_GUINT64(k_flags);
PPRINT(min_flt, "%llu"); PPRINT_GUINT64(min_flt);
PPRINT(maj_flt, "%llu"); PPRINT_GUINT64(maj_flt);
PPRINT(cmin_flt, "%llu"); PPRINT_GUINT64(cmin_flt);
PPRINT(cmaj_flt, "%llu"); PPRINT_GUINT64(cmaj_flt);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -275,22 +323,45 @@ static void pprint_get_proc_mem(pid_t pid)
glibtop_get_proc_mem(&buf, pid); glibtop_get_proc_mem(&buf, pid);
HEADER_PPRINT(glibtop_get_proc_mem); HEADER_PPRINT(glibtop_get_proc_mem);
PPRINT(flags, "%#llx"); PPRINT_FLAGS(flags);
PPRINT(size, "%llu"); PPRINT_GUINT64(size);
PPRINT(vsize, "%llu"); PPRINT_GUINT64(vsize);
PPRINT(resident, "%llu"); PPRINT_GUINT64(resident);
PPRINT(share, "%llu"); PPRINT_GUINT64(share);
PPRINT(rss, "%llu"); PPRINT_GUINT64(rss);
PPRINT(rss_rlim, "%llu"); PPRINT_GUINT64(rss_rlim);
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
static void pprint_get_proc_affinity(pid_t pid)
{
glibtop_proc_affinity buf;
guint32 i;
guint16* cpus;
cpus = glibtop_get_proc_affinity(&buf, pid);
HEADER_PPRINT(glibtop_get_proc_affinity);
PPRINT_FLAGS(flags);
PPRINT(number, "u");
PPRINT(all, "d");
printf("\taffinity=");
for (i = 0; i < buf.number; i++) {
printf("%d, ", cpus[i]);
}
putchar('\n');
FOOTER_PPRINT();
}
int main() int main()
{ {
glibtop_init(); glibtop_init();
pprint_get_sysinfo();
pprint_get_cpu(); pprint_get_cpu();
pprint_get_fsusage("/"); pprint_get_fsusage("/");
@@ -317,6 +388,7 @@ int main()
pprint_get_proc_kernel(getpid()); pprint_get_proc_kernel(getpid());
pprint_get_proc_mem(getpid()); pprint_get_proc_mem(getpid());
pprint_get_proc_affinity(getpid());
glibtop_close(); glibtop_close();

View File

@@ -1,5 +1,8 @@
#include <glibtop.h> #include <glibtop.h>
#include <glibtop/proclist.h> #include <glibtop/proclist.h>
#include <glibtop/procstate.h>
#include <glibtop/proctime.h>
#include <glibtop/procuid.h>
#include <glib.h> #include <glib.h>
@@ -17,14 +20,28 @@ static void print_pids(guint64 which, guint64 arg)
pids = glibtop_get_proclist(&buf, which, arg); pids = glibtop_get_proclist(&buf, which, arg);
printf("glibtop_get_proclist(%#llx, %llu) -> %lu processes\n", for (i = 0; i < buf.number; ++i) {
which, arg, (unsigned long)buf.number); glibtop_proc_time ptime;
glibtop_proc_uid puid;
glibtop_proc_state pstate;
for (i = 0; i < buf.number; ++i) pid_t p = pids[i];
printf("%u ", pids[i]);
putchar('\n'); glibtop_get_proc_time(&ptime, p);
putchar('\n'); glibtop_get_proc_uid(&puid, p);
glibtop_get_proc_state(&pstate, p);
/* almost equivalent to ps -x -o user,pid,time,usertime,systime,start,command */
printf("%u pid=%u real=%.2f user=%.2f sys=%.2f start=%lu %s (%lx)\n",
puid.uid,
p,
(double)ptime.rtime / ptime.frequency,
(double)ptime.utime / ptime.frequency,
(double)ptime.stime / ptime.frequency,
(unsigned long)ptime.start_time,
pstate.cmd,
(long)ptime.flags);
}
g_free(pids); g_free(pids);
} }
@@ -34,7 +51,6 @@ int main()
{ {
glibtop_init(); glibtop_init();
print_pids(GLIBTOP_KERN_PROC_ALL, 0);
print_pids(GLIBTOP_KERN_PROC_UID, getuid()); print_pids(GLIBTOP_KERN_PROC_UID, getuid());
glibtop_close(); glibtop_close();

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -39,10 +39,36 @@
#include <sys/resource.h> #include <sys/resource.h>
#include <sys/mman.h> #include <sys/mman.h>
#include <fcntl.h>
#ifndef PROFILE_COUNT #ifndef PROFILE_COUNT
#define PROFILE_COUNT 1 #define PROFILE_COUNT 1
#endif #endif
static void
try_mmap(const char *path)
{
struct stat buf;
int fd;
if ((fd = open(path, O_RDONLY)) < 0)
goto out;
if (fstat(fd, &buf) < 0)
goto out;
if (mmap(NULL, buf.st_size, PROT_READ, MAP_PRIVATE, fd, 0) == MAP_FAILED)
goto out;
close(fd);
return;
out:
fprintf(stderr, "Failed to test mmap with '%s'\n", path);
}
int int
main (int argc, char *argv []) main (int argc, char *argv [])
{ {
@@ -78,8 +104,18 @@ main (int argc, char *argv [])
glibtop_init_r (&glibtop_global_server, 0, 0); glibtop_init_r (&glibtop_global_server, 0, 0);
if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1)) if (argc == 1) {
g_error ("Usage: %s pid", argv [0]); pid = getpid();
}
else if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
g_error ("Usage: %s [pid]", argv [0]);
if (pid == getpid()) {
/* let's map something for a try */
try_mmap("/etc/passwd");
try_mmap("/etc/resolv.conf");
try_mmap(argv[0]);
}
fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid); fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid);
@@ -87,6 +123,7 @@ main (int argc, char *argv [])
for (i = 0; i < procmap.number; i++) { for (i = 0; i < procmap.number; i++) {
const char *filename = NULL; const char *filename = NULL;
char * format;
unsigned device, device_major, device_minor; unsigned device, device_major, device_minor;
char perm [5]; char perm [5];
@@ -103,47 +140,32 @@ main (int argc, char *argv [])
device_minor = (device & 255); device_minor = (device & 255);
device_major = ((device >> 8) & 255); device_major = ((device >> 8) & 255);
if (sizeof (void*) == 8)
format = "%016lx-%016lx +%016lx (%8lu bytes mapped) - "
"%02x:%02x % 8lu - %.*s";
else
format = "%08lx-%08lx +%08lx (%8lu bytes mapped) - "
"%02x:%02x % 8lu - %.*s";
fprintf (stderr, format,
(unsigned long) maps [i].start,
(unsigned long) maps [i].end,
(unsigned long) maps [i].offset,
(unsigned long) (maps [i].end - (maps [i].start + maps [i].offset)),
device_major, device_minor,
(unsigned long) maps [i].inode,
sizeof perm, perm);
if (filename) { if (filename) {
char *format; fprintf(stderr, " - %s", filename);
if (sizeof (void*) == 8)
format = "%016lx-%016lx %016lx - "
"%02x:%02x %08lu - %5.5s - %s\n";
else
format = "%08lx-%08lx %08lx - "
"%02x:%02x %08lu - %5.5s - %s\n";
fprintf (stderr, format,
(unsigned long) maps [i].start,
(unsigned long) maps [i].end,
(unsigned long) maps [i].offset,
device_major, device_minor,
(unsigned long) maps [i].inode,
perm, filename);
} else {
char * format;
if (sizeof (void*) == 8)
format = "%016lx-%016lx %016lx - "
"%02x:%02x %08lu - %4s\n";
else
format = "%08lx-%08lx %08lx - "
"%02x:%02x %08lu - %4s\n";
fprintf (stderr, format,
(unsigned long) maps [i].start,
(unsigned long) maps [i].end,
(unsigned long) maps [i].offset,
device_major, device_minor,
(unsigned long) maps [i].inode,
perm);
} }
fputc('\n', stderr);
g_print("smaps flags:%#llx size:%lluKiB rss:%lluKiB " g_print("smaps flags:%#llx size:%" G_GUINT64_FORMAT "KiB rss:%" G_GUINT64_FORMAT "KiB "
"shared_clean:%lluKib shared_dirty:%lluKiB " "shared_clean:%" G_GUINT64_FORMAT "Kib shared_dirty:%" G_GUINT64_FORMAT "KiB "
"private_clean:%lluKiB private_dirty: %lluKiB\n", "private_clean:%" G_GUINT64_FORMAT "KiB private_dirty: %" G_GUINT64_FORMAT "KiB\n",
maps[i].flags, (unsigned long long)maps[i].flags,
maps[i].size >> 10, maps[i].size >> 10,
maps[i].rss >> 10, maps[i].rss >> 10,
maps[i].shared_clean >> 10, maps[i].shared_clean >> 10,

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -42,14 +42,12 @@ output (pid_t pid)
char *args; char *args;
unsigned i; unsigned i;
#if HAVE_LIBGTOP_SMP
unsigned long total; unsigned long total;
double p_total, p_utime, p_stime; double p_total, p_utime, p_stime;
double b_total, b_utime, b_stime; double b_total, b_utime, b_stime;
double s_total, s_utime, s_stime; double s_total, s_utime, s_stime;
double my_utime, my_stime; double my_utime, my_stime;
unsigned int ncpu; unsigned int ncpu;
#endif
printf ("\n"); printf ("\n");
@@ -158,7 +156,6 @@ output (pid_t pid)
printf ("\n"); printf ("\n");
#if HAVE_LIBGTOP_SMP
ncpu = glibtop_global_server->ncpu; ncpu = glibtop_global_server->ncpu;
glibtop_get_proc_time (&data.proc_time, pid); glibtop_get_proc_time (&data.proc_time, pid);
@@ -231,7 +228,6 @@ output (pid_t pid)
s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime); s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime);
printf ("\n"); printf ("\n");
#endif
} }
int int

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -92,9 +92,10 @@ main (int argc, char *argv [])
"\tproc_time:\t%d\t0x%08lx\n" "\tproc_time:\t%d\t0x%08lx\n"
"\tproc_signal:\t%d\t0x%08lx\n" "\tproc_signal:\t%d\t0x%08lx\n"
"\tproc_kernel:\t%d\t0x%08lx\n" "\tproc_kernel:\t%d\t0x%08lx\n"
"\tproc_segment:\t%d\t0x%08lx\n\n" "\tproc_segment:\t%d\t0x%08lx\n"
"\tproc_args:\t%d\t0x%08lx\n" "\tproc_args:\t%d\t0x%08lx\n"
"\tproc_map:\t%d\t0x%08lx\n\n" "\tproc_map:\t%d\t0x%08lx\n"
"\tproc_io:\t%d\t0x%08lx\n\n"
"\tmountlist:\t%d\t0x%08lx\n" "\tmountlist:\t%d\t0x%08lx\n"
"\tfsusage:\t%d\t0x%08lx\n\n" "\tfsusage:\t%d\t0x%08lx\n\n"
"\tnetload:\t%d\t0x%08lx\n" "\tnetload:\t%d\t0x%08lx\n"
@@ -137,6 +138,8 @@ main (int argc, char *argv [])
(unsigned long) sysdeps.proc_args, (unsigned long) sysdeps.proc_args,
FEATURE_CHECK(PROC_MAP), FEATURE_CHECK(PROC_MAP),
(unsigned long) sysdeps.proc_map, (unsigned long) sysdeps.proc_map,
FEATURE_CHECK(PROC_IO),
(unsigned long) sysdeps.proc_io,
FEATURE_CHECK(MOUNTLIST), FEATURE_CHECK(MOUNTLIST),
(unsigned long) sysdeps.mountlist, (unsigned long) sysdeps.mountlist,
FEATURE_CHECK(FSUSAGE), FEATURE_CHECK(FSUSAGE),

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -69,6 +69,21 @@
} \ } \
} while (0) } while (0)
static void display_self_times(void)
{
printf("-- Overview using `ps` --------------------"
"---------------\n");
printf("-- this client is %8u ----------------"
"---------------\n", (unsigned)getpid());
printf("-- this server is %8u ----------------"
"---------------\n", (unsigned)glibtop_global_server->pid);
system("ps xjf | egrep 'timings|libgtop_server'");
printf("-------------------------------------------"
"---------------\n");
}
int int
main (int argc, char *argv []) main (int argc, char *argv [])
{ {
@@ -85,13 +100,16 @@ main (int argc, char *argv [])
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
textdomain (GETTEXT_PACKAGE); textdomain (GETTEXT_PACKAGE);
glibtop_init_r (&glibtop_global_server, 0, 0);
display_self_times();
printf ("%-12s (%-10s): %7s - %9s - %9s\n", printf ("%-12s (%-10s): %7s - %9s - %9s\n",
"Feature", "Flags", "Count", "utime", "stime"); "Feature", "Flags", "Count", "utime", "stime");
printf ("-------------------------------------------" printf ("-------------------------------------------"
"---------------\n"); "---------------\n");
glibtop_init_r (&glibtop_global_server, 0, 0);
getrusage (RUSAGE_SELF, &total_start); getrusage (RUSAGE_SELF, &total_start);
getrusage (RUSAGE_SELF, &rusage_start); getrusage (RUSAGE_SELF, &rusage_start);
@@ -394,6 +412,26 @@ main (int argc, char *argv [])
(long double) ELAPSED_UTIME / PROFILE_COUNT, (long double) ELAPSED_UTIME / PROFILE_COUNT,
(long double) ELAPSED_STIME / PROFILE_COUNT); (long double) ELAPSED_STIME / PROFILE_COUNT);
getrusage (RUSAGE_SELF, &rusage_start);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_io (&data.proc_io, pid);
getrusage (RUSAGE_SELF, &rusage_end);
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
&elapsed_utime);
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
&elapsed_stime);
printf ("Proc_Io (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
(unsigned long) data.proc_io.flags, PROFILE_COUNT,
(long double) ELAPSED_UTIME / PROFILE_COUNT,
(long double) ELAPSED_STIME / PROFILE_COUNT);
getrusage (RUSAGE_SELF, &total_end); getrusage (RUSAGE_SELF, &total_end);
libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime, libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime,
@@ -411,6 +449,8 @@ main (int argc, char *argv [])
printf ("All timings are in clock ticks " printf ("All timings are in clock ticks "
"(1000000 ticks per second).\n\n"); "(1000000 ticks per second).\n\n");
display_self_times();
glibtop_close (); glibtop_close ();
exit (0); exit (0);

View File

@@ -1,27 +1,28 @@
void|cpu|ulong(total,user,nice,sys,idle,iowait,irq,softirq,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4],xcpu_iowait[4],xcpu_irq[4],xcpu_softirq[4]) void|cpu
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked) void|mem
void|swap|ulong(total,used,free,pagein,pageout) void|swap
void|uptime|double(uptime,idletime) void|uptime
void|loadavg|double(loadavg[3]):ulong(nr_running,nr_tasks,last_pid) void|loadavg
void|shm_limits|ulong(shmmax,shmmin,shmmni,shmseg,shmall) void|shm_limits
void|msg_limits|ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql) void|msg_limits
void|sem_limits|ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem) void|sem_limits
pid_t*|proclist|ulong(number,size,total)|long(which,arg) pid_t*|proclist|long(which,arg)
void|proc_state|str(cmd):char(state):ulong(uid,gid)|pid_t(pid) void|proc_state|pid_t(pid)
void|proc_uid|long(uid,euid,gid,egid,pid,ppid,pgrp,session,tty,tpgid,priority,nice)|pid_t(pid) void|proc_uid|pid_t(pid)
void|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid) void|proc_mem|pid_t(pid)
void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_value,frequency,xcpu_utime[4],xcpu_stime[4])|pid_t(pid) void|proc_time|pid_t(pid)
void|proc_signal|ulong(signal[2],blocked[2],sigignore[2],sigcatch[2])|pid_t(pid) void|proc_signal|pid_t(pid)
void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,nwchan):str(wchan)|pid_t(pid) void|proc_kernel|pid_t(pid)
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid) void|proc_segment|pid_t(pid)
char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len) char *|proc_args|pid_t(pid):unsigned(max_len)
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid) glibtop_map_entry *|proc_map|pid_t(pid)
glibtop_open_files_entry *|proc_open_files|ulong(number)|pid_t(pid) glibtop_open_files_entry *|proc_open_files|pid_t(pid)
glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs) glibtop_mountentry *|@mountlist|int(all_fs)
void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir void|@fsusage|string|mount_dir
void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface void|netload|string|interface
void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device) void|ppp|ushort(device)
char **|netlist|unsigned(number) char **|netlist
char **|proc_wd|ulong(number),str(root),str(exe)|pid_t(pid) char **|proc_wd|pid_t(pid)
guint16*|proc_affinity|ulong(number),int(all)|pid_t(pid) guint16*|proc_affinity|pid_t(pid)
void|proc_io|pid_t(pid)

View File

@@ -15,18 +15,24 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_H__ #ifndef __GLIBTOP_H__
#define __GLIBTOP_H__ #define __GLIBTOP_H__
/* for pid_t, uid_t, gid_t */
#include <sys/types.h>
#include <glib.h> #include <glib.h>
#include <glib-object.h>
G_BEGIN_DECLS G_BEGIN_DECLS
typedef struct _glibtop glibtop; typedef struct _glibtop glibtop;
typedef struct _glibtop_machine glibtop_machine;
/** /**
* LIBGTOP_CHECK_VERSION * LIBGTOP_CHECK_VERSION
@@ -54,10 +60,6 @@ LIBGTOP_MICRO_VERSION >= (micro)))
#include <glibtop_server.h> #include <glibtop_server.h>
#ifdef HAVE_GLIBTOP_MACHINE_H
#include <glibtop_machine.h>
#endif
#ifndef GLIBTOP_MOUNTENTRY_LEN #ifndef GLIBTOP_MOUNTENTRY_LEN
#define GLIBTOP_MOUNTENTRY_LEN 79 #define GLIBTOP_MOUNTENTRY_LEN 79
#endif #endif
@@ -68,34 +70,6 @@ LIBGTOP_MICRO_VERSION >= (micro)))
#include <glibtop/close.h> #include <glibtop/close.h>
#ifdef HAVE_GLIBTOP_MACHINE_H
struct _glibtop
{
unsigned flags;
unsigned method; /* Server Method */
unsigned error_method; /* Error Method */
glibtop_machine machine; /* Machine dependent data */
int input [2]; /* Pipe client <- server */
int output [2]; /* Pipe client -> server */
int socket; /* Accepted connection of a socket */
int ncpu; /* Number of CPUs, zero if single-processor */
int real_ncpu; /* Real number of CPUs. Only ncpu are monitored */
unsigned long os_version_code; /* Version code of the operating system */
const char *name; /* Program name for error messages */
const char *server_command; /* Command used to invoke server */
const char *server_host; /* Host the server should run on */
const char *server_user; /* Name of the user on the target host */
const char *server_rsh; /* Command used to connect to the target host */
unsigned long features; /* Server is required for this features */
unsigned long server_port; /* Port on which daemon is listening */
glibtop_sysdeps sysdeps; /* Detailed feature list */
glibtop_sysdeps required; /* Required feature list */
pid_t pid; /* PID of the server */
};
#else /* !HAVE_GLIBTOP_MACHINE_H */
struct _glibtop struct _glibtop
{ {
unsigned flags; unsigned flags;
@@ -117,27 +91,57 @@ struct _glibtop
glibtop_sysdeps sysdeps; /* Detailed feature list */ glibtop_sysdeps sysdeps; /* Detailed feature list */
glibtop_sysdeps required; /* Required feature list */ glibtop_sysdeps required; /* Required feature list */
pid_t pid; /* PID of the server */ pid_t pid; /* PID of the server */
};
#endif /* HAVE_GLIBTOP_MACHINE_H */ uid_t uid;
uid_t euid;
gid_t gid;
gid_t egid;
glibtop_machine *machine; /* Machine dependent data */
};
extern glibtop *glibtop_global_server; extern glibtop *glibtop_global_server;
extern const unsigned long glibtop_server_features; extern const unsigned long glibtop_server_features;
/**
* glibtop_init:
*
* Returns: (transfer none):
*/
glibtop * glibtop *
glibtop_init (void); glibtop_init (void);
/**
* glibtop_init_r:
* @server_ptr: (out):
* @features:
* @flags:
*
* Returns: (transfer none):
*/
glibtop * glibtop *
glibtop_init_r (glibtop **server_ptr, glibtop_init_r (glibtop **server_ptr,
unsigned long features, unsigned long features,
unsigned flags); unsigned flags);
/**
* glibtop_init_s: (skip)
* @server_ptr: (out):
* @features:
* @flags:
*
* Returns: (transfer none):
*/
glibtop * glibtop *
glibtop_init_s (glibtop **server_ptr, glibtop_init_s (glibtop **server_ptr,
unsigned long features, unsigned long features,
unsigned flags); unsigned flags);
GType glibtop_get_type (void) G_GNUC_CONST;
G_END_DECLS G_END_DECLS
#endif #endif

View File

@@ -2,13 +2,16 @@ glibtopdir = $(includedir)/libgtop-2.0/glibtop
glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \ glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \
sem_limits.h uptime.h command.h mem.h proclist.h \ sem_limits.h uptime.h command.h mem.h proclist.h \
proctime.h shm_limits.h version.h cpu.h msg_limits.h \ proctime.h shm_limits.h cpu.h msg_limits.h \
procmem.h procuid.h swap.h \ procmem.h procuid.h swap.h \
procsegment.h sysdeps.h global.h \ procsegment.h sysdeps.h global.h \
procsignal.h union.h gnuserv.h \ procsignal.h union.h gnuserv.h \
parameter.h mountlist.h fsusage.h procmap.h signal.h \ parameter.h mountlist.h fsusage.h procmap.h signal.h \
sysinfo.h ppp.h procargs.h netload.h \ sysinfo.h ppp.h procargs.h netload.h \
procwd.h procaffinity.h \ procwd.h procaffinity.h \
procio.h \
netlist.h procopenfiles.h open.h netlist.h procopenfiles.h open.h
noinst_HEADERS = error.h write.h read_data.h read.h init_hooks.h noinst_HEADERS = error.h write.h read_data.h read.h init_hooks.h machine.h \
version.h

View File

@@ -19,8 +19,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_CALL_VECTOR_H__ #ifndef __GLIBTOP_CALL_VECTOR_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_CLOSE_H__ #ifndef __GLIBTOP_CLOSE_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_COMMAND_H__ #ifndef __GLIBTOP_COMMAND_H__
@@ -59,8 +59,9 @@ G_BEGIN_DECLS
#define GLIBTOP_CMND_PROC_OPEN_FILES 25 #define GLIBTOP_CMND_PROC_OPEN_FILES 25
#define GLIBTOP_CMND_PROC_WD 26 #define GLIBTOP_CMND_PROC_WD 26
#define GLIBTOP_CMND_PROC_AFFINITY 27 #define GLIBTOP_CMND_PROC_AFFINITY 27
#define GLIBTOP_CMND_PROC_IO 28
#define GLIBTOP_MAX_CMND 28 #define GLIBTOP_MAX_CMND 29
#define _GLIBTOP_PARAM_SIZE 16 #define _GLIBTOP_PARAM_SIZE 16

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_CPU_H__ #ifndef __GLIBTOP_CPU_H__
@@ -54,7 +54,7 @@ G_BEGIN_DECLS
Yes we are :) Yes we are :)
Nobody should really be using more than 32 processors. Nobody should really be using more than 32 processors.
*/ */
#define GLIBTOP_NCPU 32 #define GLIBTOP_NCPU 1024
typedef struct _glibtop_cpu glibtop_cpu; typedef struct _glibtop_cpu glibtop_cpu;

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
@@ -46,6 +46,18 @@ void glibtop_warn (const char *format, ...) G_GNUC_PRINTF(1, 2);
void glibtop_error_io (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN; void glibtop_error_io (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN;
void glibtop_warn_io (const char *format, ...) G_GNUC_PRINTF(1, 2); void glibtop_warn_io (const char *format, ...) G_GNUC_PRINTF(1, 2);
/* FIXME: C99 */
#define glibtop_debug_r(server, fmt, ...) \
G_STMT_START { \
if (LIBGTOP_ENABLE_DEBUG) \
glibtop_debug_r_real(server, "%s:%d %s(): " fmt, __FILE__, __LINE__, __func__, ##__VA_ARGS__); \
} G_STMT_END
#define glibtop_debug(...) glibtop_debug_r(glibtop_global_server, __VA_ARGS__)
void glibtop_debug_vr (glibtop *server, const char *format, va_list args);
void glibtop_debug_r_real (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
G_END_DECLS G_END_DECLS
#endif #endif

View File

@@ -14,8 +14,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_FSUSAGE_H__ #ifndef __GLIBTOP_FSUSAGE_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_GLOBAL_H__ #ifndef __GLIBTOP_GLOBAL_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_LOADAVG_H__ #ifndef __GLIBTOP_LOADAVG_H__

22
include/glibtop/machine.h Normal file
View File

@@ -0,0 +1,22 @@
#ifndef GLIBTOP_SYSDEPS_COMMON_MACHINE_H_1437506041
#define GLIBTOP_SYSDEPS_COMMON_MACHINE_H_1437506041
#include <glib.h>
#include <glibtop_machine.h>
/* private */
static inline void
glibtop_machine_new(glibtop *server)
{
server->machine = g_new0(glibtop_machine, 1);
}
/* private */
static inline void
glibtop_machine_delete(glibtop *server)
{
g_free(server->machine);
server->machine = NULL;
}
#endif /* GLIBTOP_SYSDEPS_COMMON_MACHINE_H_1437506041 */

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_MEM_H__ #ifndef __GLIBTOP_MEM_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_MOUNTLIST_H__ #ifndef __GLIBTOP_MOUNTLIST_H__
@@ -53,6 +53,38 @@ struct _glibtop_mountlist
guint64 size; /* GLIBTOP_MOUNTLIST_SIZE */ guint64 size; /* GLIBTOP_MOUNTLIST_SIZE */
}; };
/**
* glibtop_get_mountlist:
* @buf:
* @all_fs:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_mountlist_r:
* @buf: (out):
* @all_fs:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_mountlist_s:
* @buf: (out):
* @all_fs:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_mountlist_l:
* @buf: (out):
* @all_fs:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_mountentry * glibtop_mountentry *
glibtop_get_mountlist(glibtop_mountlist *buf, int all_fs); glibtop_get_mountlist(glibtop_mountlist *buf, int all_fs);
@@ -64,6 +96,8 @@ glibtop_get_mountlist_l (glibtop *server, glibtop_mountlist *buf, int all_fs);
glibtop_mountentry * glibtop_mountentry *
glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs); glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs);
GType glibtop_mountlist_get_type (void) G_GNUC_CONST;
GType glibtop_mountentry_get_type (void) G_GNUC_CONST;
G_END_DECLS G_END_DECLS

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_MSG_LIMITS_H__ #ifndef __GLIBTOP_MSG_LIMITS_H__

View File

@@ -13,8 +13,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_NETLIST_H__ #ifndef __GLIBTOP_NETLIST_H__
@@ -31,12 +31,23 @@ G_BEGIN_DECLS
typedef struct _glibtop_netlist glibtop_netlist; typedef struct _glibtop_netlist glibtop_netlist;
/**
* glibtop_netlist:
* @number: Number of entries in the returned list.
*/
struct _glibtop_netlist struct _glibtop_netlist
{ {
guint64 flags; guint64 flags;
guint32 number; guint32 number;
}; };
/**
* glibtop_get_netlist:
* @buf: a #glibtop_netlist
*
* Returns: (array zero-terminated=1) (transfer full): an array of network
* interface names.
*/
char** glibtop_get_netlist(glibtop_netlist *buf); char** glibtop_get_netlist(glibtop_netlist *buf);
#if GLIBTOP_SUID_NETLIST #if GLIBTOP_SUID_NETLIST
@@ -45,13 +56,39 @@ char** glibtop_get_netlist(glibtop_netlist *buf);
#define glibtop_get_netlist_r glibtop_get_netlist_s #define glibtop_get_netlist_r glibtop_get_netlist_s
#endif #endif
/**
* glibtop_get_netlist_l:
* @server: a #glibtop server
* @buf: a #glibtop_netlist
*
* Returns: (array zero-terminated=1) (transfer full): an array of network
* interface names.
*/
char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf); char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf);
#if GLIBTOP_SUID_NETLIST #if GLIBTOP_SUID_NETLIST
void _glibtop_init_netlist_p (glibtop *server); void _glibtop_init_netlist_p (glibtop *server);
/**
* glibtop_get_netlist_p:
* @server: a #glibtop server
* @buf: a #glibtop_netlist
*
* Returns: (array zero-terminated=1) (transfer full): an array of network
* interface names.
*/
char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf); char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf);
#else #else
void _glibtop_init_netlist_s (glibtop *server); void _glibtop_init_netlist_s (glibtop *server);
/**
* glibtop_get_netlist_s:
* @server: a #glibtop server
* @buf: a #glibtop_netlist
*
* Returns: (array zero-terminated=1) (transfer full): an array of network
* interface names.
*/
char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf); char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf);
#endif #endif

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_NETLOAD_H__ #ifndef __GLIBTOP_NETLOAD_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_OPEN_H__ #ifndef __GLIBTOP_OPEN_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PARAMETER_H__ #ifndef __GLIBTOP_PARAMETER_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PPP_H__ #ifndef __GLIBTOP_PPP_H__

View File

@@ -13,8 +13,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCAFFINITY_H__ #ifndef __GLIBTOP_PROCAFFINITY_H__
@@ -29,6 +29,7 @@ typedef struct _glibtop_proc_affinity glibtop_proc_affinity;
#define GLIBTOP_PROC_AFFINITY_NUMBER 0 #define GLIBTOP_PROC_AFFINITY_NUMBER 0
#define GLIBTOP_PROC_AFFINITY_ALL 1 #define GLIBTOP_PROC_AFFINITY_ALL 1
#define GLIBTOP_MAX_PROC_AFFINITY 2
struct _glibtop_proc_affinity struct _glibtop_proc_affinity
{ {

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROC_ARGS_H__ #ifndef __GLIBTOP_PROC_ARGS_H__
@@ -79,6 +79,15 @@ char **
glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf, glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len); pid_t pid, unsigned max_len);
/**
* glibtop_get_proc_argv:
* @buf:
* @pid:
* @max_len:
*
* Returns: (transfer full):
*/
char ** char **
glibtop_get_proc_argv (glibtop_proc_args *buf, pid_t pid, unsigned max_len); glibtop_get_proc_argv (glibtop_proc_args *buf, pid_t pid, unsigned max_len);

91
include/glibtop/procio.h Normal file
View File

@@ -0,0 +1,91 @@
/* Copyright (C) 2017 Robert Roth
This file is part of LibGTop.
Contributed by Robert Roth <robert.roth.off@gmail.com>, February 2017.
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., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef __GLIBTOP_PROCIO_H__
#define __GLIBTOP_PROCIO_H__
#include <glibtop.h>
#include <glibtop/global.h>
G_BEGIN_DECLS
#define GLIBTOP_PROC_IO_DISK_RCHAR 0
#define GLIBTOP_PROC_IO_DISK_WCHAR 1
#define GLIBTOP_PROC_IO_DISK_RBYTES 2
#define GLIBTOP_PROC_IO_DISK_WBYTES 3
#define GLIBTOP_MAX_PROC_IO 3
typedef struct _glibtop_proc_io glibtop_proc_io;
/* Time section */
/**
* glibtop_proc_io:
* @disk_rchar: The number of bytes which this task has caused to be read from storage. This
* is simply the sum of bytes which this process passed to read() and pread(), also including tty IO,
* and it is unaffected by whether or not actual physical disk IO was required.
* @disk_wchar: The number of bytes which this task has caused, or shall cause to be written
* to disk. Similar caveats apply here as with rchar.
* @disk_rbytes: Attempt to count the number of bytes which this process really did cause to
* be fetched from the storage layer. Done at the submit_bio() level, so it is
* accurate for block-backed filesystems.
* @disk_wbytes: Attempt to count the number of bytes which this process caused to be sent to
* the storage layer. This is done at page-dirtying time.
*
* Process disk io data filled by glibtop_get_proc_io().
*
*/
struct _glibtop_proc_io
{
guint64 flags;
guint64 disk_rchar;
guint64 disk_wchar;
guint64 disk_rbytes;
guint64 disk_wbytes;
/* reserved for future extensions, e.g. per-process netio */
guint64 reserved[10];
};
void glibtop_get_proc_io (glibtop_proc_io *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_IO
#define glibtop_get_proc_io_r glibtop_get_proc_io_p
#else
#define glibtop_get_proc_io_r glibtop_get_proc_io_s
#endif
void glibtop_get_proc_io_l (glibtop *server, glibtop_proc_io *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_IO
void _glibtop_init_proc_io_p (glibtop *server);
void glibtop_get_proc_io_p (glibtop *server, glibtop_proc_io *buf, pid_t pid);
#else
void _glibtop_init_proc_io_s (glibtop *server);
void glibtop_get_proc_io_s (glibtop *server, glibtop_proc_io *buf, pid_t pid);
#endif
G_END_DECLS
#endif

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCKERNEL_H__ #ifndef __GLIBTOP_PROCKERNEL_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCLIST_H__ #ifndef __GLIBTOP_PROCLIST_H__
@@ -127,6 +127,15 @@ struct _glibtop_proclist
guint64 size; /* GLIBTOP_PROCLIST_SIZE */ guint64 size; /* GLIBTOP_PROCLIST_SIZE */
}; };
/**
* glibtop_get_proclist:
* @buf: a #glibtop_proclist
* @which: a #GLIBTOP_* constant specifying process type
* @arg: an argument specific for the process type
*
* Returns: (array zero-terminated=1) (transfer full): an array of process
* ids
*/
pid_t* pid_t*
glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg); glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg);
@@ -136,6 +145,16 @@ glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg);
#define glibtop_get_proclist_r glibtop_get_proclist_s #define glibtop_get_proclist_r glibtop_get_proclist_s
#endif #endif
/**
* glibtop_get_proclist_l:
* @server: a #glibtop server
* @buf: a #glibtop_proclist
* @which: a #GLIBTOP_* constant specifying process type
* @arg: an argument specific for the process type
*
* Returns: (array zero-terminated=1) (transfer full): an array of process
* ids
*/
pid_t* pid_t*
glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf, glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg); gint64 which, gint64 arg);
@@ -143,12 +162,32 @@ glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
#if GLIBTOP_SUID_PROCLIST #if GLIBTOP_SUID_PROCLIST
void _glibtop_init_proclist_p (glibtop *server); void _glibtop_init_proclist_p (glibtop *server);
/**
* glibtop_get_proclist_p:
* @server: a #glibtop server
* @buf: a #glibtop_proclist
* @which: a #GLIBTOP_* constant specifying process type
* @arg: an argument specific for the process type
*
* Returns: (array zero-terminated=1) (transfer full): an array of process
* ids
*/
pid_t* pid_t*
glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf, glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg); gint64 which, gint64 arg);
#else #else
void _glibtop_init_proclist_s (glibtop *server); void _glibtop_init_proclist_s (glibtop *server);
/**
* glibtop_get_proclist_s:
* @server: a #glibtop server
* @buf: a #glibtop_proclist
* @which: a #GLIBTOP_* constant specifying process type
* @arg: an argument specific for the process type
*
* Returns: (array zero-terminated=1) (transfer full): an array of process
* ids
*/
pid_t* pid_t*
glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf, glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg); gint64 which, gint64 arg);

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROC_MAP_H__ #ifndef __GLIBTOP_PROC_MAP_H__
@@ -48,8 +48,10 @@ G_BEGIN_DECLS
#define GLIBTOP_MAP_ENTRY_SHARED_DIRTY 10 #define GLIBTOP_MAP_ENTRY_SHARED_DIRTY 10
#define GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN 11 #define GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN 11
#define GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY 12 #define GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY 12
#define GLIBTOP_MAP_ENTRY_PSS 13
#define GLIBTOP_MAP_ENTRY_SWAP 14
#define GLIBTOP_MAX_MAP_ENTRY 13 #define GLIBTOP_MAX_MAP_ENTRY 15
#define GLIBTOP_MAP_FILENAME_LEN 215 #define GLIBTOP_MAP_FILENAME_LEN 215
@@ -78,6 +80,8 @@ struct _glibtop_map_entry
guint64 shared_dirty; guint64 shared_dirty;
guint64 private_clean; guint64 private_clean;
guint64 private_dirty; guint64 private_dirty;
guint64 pss;
guint64 swap;
char filename [GLIBTOP_MAP_FILENAME_LEN+1]; char filename [GLIBTOP_MAP_FILENAME_LEN+1];
}; };
@@ -88,10 +92,46 @@ struct _glibtop_proc_map
guint64 total; /* GLIBTOP_PROC_MAP_TOTAL */ guint64 total; /* GLIBTOP_PROC_MAP_TOTAL */
guint64 size; /* GLIBTOP_PROC_MAP_SIZE */ guint64 size; /* GLIBTOP_PROC_MAP_SIZE */
}; };
/**
* glibtop_get_proc_map:
* @buf:
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_map_entry * glibtop_map_entry *
glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid); glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid);
/**
* glibtop_get_proc_map_l:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_proc_map_p:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_proc_map_s:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
#if GLIBTOP_SUID_PROC_MAP #if GLIBTOP_SUID_PROC_MAP
#define glibtop_get_proc_map_r glibtop_get_proc_map_p #define glibtop_get_proc_map_r glibtop_get_proc_map_p
#else #else
@@ -113,6 +153,8 @@ glibtop_map_entry *
glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid); glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid);
#endif #endif
GType glibtop_map_entry_get_type (void) G_GNUC_CONST;
GType glibtop_proc_map_get_type (void) G_GNUC_CONST;
G_END_DECLS G_END_DECLS

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCMEM_H__ #ifndef __GLIBTOP_PROCMEM_H__
@@ -53,6 +53,12 @@ struct _glibtop_proc_mem
* of the process; usually 2,147,483,647 */ * of the process; usually 2,147,483,647 */
}; };
/**
* glibtop_get_proc_mem:
* @buf:
* @pid:
*
*/
void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid); void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_MEM #if GLIBTOP_SUID_PROC_MEM

View File

@@ -18,8 +18,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROC_OPEN_FILES_H__ #ifndef __GLIBTOP_PROC_OPEN_FILES_H__
@@ -94,21 +94,49 @@ struct _glibtop_proc_open_files
guint64 size; /* GLIBTOP_PROC_OPEN_FILES_SIZE */ guint64 size; /* GLIBTOP_PROC_OPEN_FILES_SIZE */
}; };
/**
* glibtop_get_proc_open_files:
* @buf:
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_open_files_entry * glibtop_open_files_entry *
glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid); glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_FILE #if GLIBTOP_SUID_PROC_OPEN_FILES
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_p #define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_p
#else #else
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_s #define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_s
#endif #endif
/**
* glibtop_get_proc_open_files_l:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_open_files_entry * glibtop_open_files_entry *
glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_FILE #if GLIBTOP_SUID_PROC_OPEN_FILES
void _glibtop_init_proc_open_files_p (glibtop *server); void _glibtop_init_proc_open_files_p (glibtop *server);
/**
* glibtop_get_proc_open_files_p:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_open_files_entry * glibtop_open_files_entry *
glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
#else #else
@@ -118,6 +146,9 @@ glibtop_open_files_entry *
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
#endif #endif
GType glibtop_open_files_entry_get_type (void) G_GNUC_CONST;
GType glibtop_proc_open_files_get_type (void) G_GNUC_CONST;
G_END_DECLS G_END_DECLS
#endif #endif

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCSEGMENT_H__ #ifndef __GLIBTOP_PROCSEGMENT_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCSIGNAL_H__ #ifndef __GLIBTOP_PROCSIGNAL_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCSTATE_H__ #ifndef __GLIBTOP_PROCSTATE_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCTIME_H__ #ifndef __GLIBTOP_PROCTIME_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCUID_H__ #ifndef __GLIBTOP_PROCUID_H__

View File

@@ -13,8 +13,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_PROCWD_H__ #ifndef __GLIBTOP_PROCWD_H__
@@ -30,7 +30,7 @@ typedef struct _glibtop_proc_wd glibtop_proc_wd;
#define GLIBTOP_PROC_WD_NUMBER 0 #define GLIBTOP_PROC_WD_NUMBER 0
#define GLIBTOP_PROC_WD_ROOT 1 #define GLIBTOP_PROC_WD_ROOT 1
#define GLIBTOP_PROC_WD_EXE 2 #define GLIBTOP_PROC_WD_EXE 2
#define GLIBTOP_PROC_WD_MAX 3 #define GLIBTOP_MAX_PROC_WD 3
#define GLIBTOP_PROC_WD_ROOT_LEN 215 #define GLIBTOP_PROC_WD_ROOT_LEN 215
#define GLIBTOP_PROC_WD_EXE_LEN 215 #define GLIBTOP_PROC_WD_EXE_LEN 215
@@ -44,6 +44,13 @@ struct _glibtop_proc_wd
}; };
/**
* glibtop_get_proc_wd:
* @buf:
* @pid:
*
* Returns: (transfer full):
*/
char ** glibtop_get_proc_wd(glibtop_proc_wd *buf, pid_t pid); char ** glibtop_get_proc_wd(glibtop_proc_wd *buf, pid_t pid);
char ** glibtop_get_proc_wd_l(glibtop *server, glibtop_proc_wd *buf, pid_t pid); char ** glibtop_get_proc_wd_l(glibtop *server, glibtop_proc_wd *buf, pid_t pid);

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_READ_H__ #ifndef __GLIBTOP_READ_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_READ_DATA_H__ #ifndef __GLIBTOP_READ_DATA_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_SEM_LIMITS_H__ #ifndef __GLIBTOP_SEM_LIMITS_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_SHM_LIMITS_H__ #ifndef __GLIBTOP_SHM_LIMITS_H__
@@ -37,6 +37,9 @@ G_BEGIN_DECLS
typedef struct _glibtop_shm_limits glibtop_shm_limits; typedef struct _glibtop_shm_limits glibtop_shm_limits;
/**
* glibtop_shm_limits:
*/
struct _glibtop_shm_limits struct _glibtop_shm_limits
{ {
guint64 flags; guint64 flags;
@@ -47,6 +50,10 @@ struct _glibtop_shm_limits
guint64 shmall; /* GLIBTOP_IPC_SHMALL */ guint64 shmall; /* GLIBTOP_IPC_SHMALL */
}; };
/**
* glibtop_get_shm_limits:
* @buf: a #glibtop_shm_limits
*/
void glibtop_get_shm_limits(glibtop_shm_limits *buf); void glibtop_get_shm_limits(glibtop_shm_limits *buf);
#if GLIBTOP_SUID_SHM_LIMITS #if GLIBTOP_SUID_SHM_LIMITS
@@ -55,13 +62,28 @@ void glibtop_get_shm_limits(glibtop_shm_limits *buf);
#define glibtop_get_shm_limits_r glibtop_get_shm_limits_s #define glibtop_get_shm_limits_r glibtop_get_shm_limits_s
#endif #endif
/**
* glibtop_get_shm_limits_l:
* @server: a #glibtop server
* @buf: a #glibtop_shm_limits
*/
void glibtop_get_shm_limits_l (glibtop *server, glibtop_shm_limits *buf); void glibtop_get_shm_limits_l (glibtop *server, glibtop_shm_limits *buf);
#if GLIBTOP_SUID_SHM_LIMITS #if GLIBTOP_SUID_SHM_LIMITS
void _glibtop_init_shm_limits_p (glibtop *server); void _glibtop_init_shm_limits_p (glibtop *server);
/**
* glibtop_get_shm_limits_p:
* @server: a #glibtop server
* @buf: a #glibtop_shm_limits
*/
void glibtop_get_shm_limits_p (glibtop *, glibtop_shm_limits *buf); void glibtop_get_shm_limits_p (glibtop *, glibtop_shm_limits *buf);
#else #else
void _glibtop_init_shm_limits_s (glibtop *server); void _glibtop_init_shm_limits_s (glibtop *server);
/**
* glibtop_get_shm_limits_s:
* @server: a #glibtop server
* @buf: a #glibtop_shm_limits
*/
void glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf); void glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf);
#endif #endif

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_SIGNAL_H__ #ifndef __GLIBTOP_SIGNAL_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_SWAP_H__ #ifndef __GLIBTOP_SWAP_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_SYSDEPS_H__ #ifndef __GLIBTOP_SYSDEPS_H__
@@ -53,8 +53,12 @@ G_BEGIN_DECLS
#define GLIBTOP_SYSDEPS_PROC_OPEN_FILES 24 #define GLIBTOP_SYSDEPS_PROC_OPEN_FILES 24
#define GLIBTOP_SYSDEPS_PROC_WD 25 #define GLIBTOP_SYSDEPS_PROC_WD 25
#define GLIBTOP_SYSDEPS_PROC_AFFINITY 26 #define GLIBTOP_SYSDEPS_PROC_AFFINITY 26
#define GLIBTOP_SYSDEPS_PROC_IO 27
#define GLIBTOP_MAX_SYSDEPS 27 #define GLIBTOP_MAX_SYSDEPS 28
/* The 'features' args to glibtop_init_* is an unsigned long */
G_STATIC_ASSERT((1UL << (GLIBTOP_MAX_SYSDEPS - 1)) <= ULONG_MAX);
#define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1) #define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1)
@@ -90,6 +94,15 @@ struct _glibtop_sysdeps
guint64 ppp; /* glibtop_ppp */ guint64 ppp; /* glibtop_ppp */
guint64 proc_wd; /* glibtop_proc_wd */ guint64 proc_wd; /* glibtop_proc_wd */
guint64 proc_affinity; /* glibtop_proc_affinity */ guint64 proc_affinity; /* glibtop_proc_affinity */
guint64 proc_io; /* glibtop_proc_io */
guint64 reserved0;
guint64 reserved1;
guint64 reserved2;
guint64 reserved3;
guint64 reserved4;
guint64 reserved5;
guint64 reserved6;
guint64 reserved7;
}; };
void glibtop_get_sysdeps (glibtop_sysdeps *buf); void glibtop_get_sysdeps (glibtop_sysdeps *buf);

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_SYSINFO_H__ #ifndef __GLIBTOP_SYSINFO_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_UNION_H__ #ifndef __GLIBTOP_UNION_H__
@@ -44,6 +44,7 @@
#include <glibtop/procopenfiles.h> #include <glibtop/procopenfiles.h>
#include <glibtop/procwd.h> #include <glibtop/procwd.h>
#include <glibtop/procaffinity.h> #include <glibtop/procaffinity.h>
#include <glibtop/procio.h>
#include <glibtop/mountlist.h> #include <glibtop/mountlist.h>
#include <glibtop/fsusage.h> #include <glibtop/fsusage.h>
@@ -84,6 +85,7 @@ union _glibtop_union
glibtop_proc_open_files proc_open_files; glibtop_proc_open_files proc_open_files;
glibtop_proc_wd proc_wd; glibtop_proc_wd proc_wd;
glibtop_proc_affinity proc_affinity; glibtop_proc_affinity proc_affinity;
glibtop_proc_io proc_io;
}; };
G_END_DECLS G_END_DECLS

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_UPTIME_H__ #ifndef __GLIBTOP_UPTIME_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_VERSION_H__ #ifndef __GLIBTOP_VERSION_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef __GLIBTOP_WRITE_H__ #ifndef __GLIBTOP_WRITE_H__

View File

@@ -1,11 +1,11 @@
INCLUDES = @INCLUDES@ AM_CPPFLAGS = @AM_CPPFLAGS@
lib_LTLIBRARIES = libgtop-2.0.la lib_LTLIBRARIES = libgtop-2.0.la
libgtop_2_0_la_SOURCES = init.c open.c close.c command.c read.c \ libgtop_2_0_la_SOURCES = init.c open.c close.c command.c read.c \
read_data.c write.c lib.c parameter.c \ read_data.c write.c lib.c parameter.c \
sysdeps.c sysdeps.c boxed.c
libgtop_2_0_la_LDFLAGS = $(LT_VERSION_INFO) -export-symbols $(srcdir)/libgtop.sym -no-undefined libgtop_2_0_la_LDFLAGS = $(LT_VERSION_INFO) -export-symbols $(srcdir)/libgtop.sym -no-undefined
libgtop_2_0_la_LIBADD = $(GLIB_LIBS) $(top_builddir)/sysdeps/common/libgtop_common-2.0.la $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la $(sysdeps_suid_lib) libgtop_2_0_la_LIBADD = $(GLIB_LIBS) $(top_builddir)/sysdeps/common/libgtop_common-2.0.la $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la $(sysdeps_suid_lib)
@@ -22,25 +22,25 @@ CLEANFILES = lib.c
-include $(INTROSPECTION_MAKEFILE) -include $(INTROSPECTION_MAKEFILE)
INTROSPECTION_GIRS = INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS = --accept-unprefixed INTROSPECTION_SCANNER_ARGS = --accept-unprefixed --warn-all
INTROSPECTION_COMPILER_ARGS = INTROSPECTION_COMPILER_ARGS =
if HAVE_INTROSPECTION if HAVE_INTROSPECTION
introspection_sources = $(libgtop_2_0_la_SOURCES) lib.c ../glibtop.h \ introspection_sources = $(libgtop_2_0_la_SOURCES) lib.c ../glibtop.h ../libgtopconfig.h \
../include/glibtop/close.h ../include/glibtop/loadavg.h ../include/glibtop/prockernel.h ../include/glibtop/procstate.h \ ../include/glibtop/close.h ../include/glibtop/loadavg.h ../include/glibtop/prockernel.h ../include/glibtop/procstate.h \
../include/glibtop/sem_limits.h ../include/glibtop/uptime.h ../include/glibtop/command.h ../include/glibtop/mem.h ../include/glibtop/proclist.h \ ../include/glibtop/sem_limits.h ../include/glibtop/uptime.h ../include/glibtop/command.h ../include/glibtop/mem.h ../include/glibtop/proclist.h \
../include/glibtop/proctime.h ../include/glibtop/shm_limits.h ../include/glibtop/version.h ../include/glibtop/cpu.h ../include/glibtop/msg_limits.h \ ../include/glibtop/proctime.h ../include/glibtop/shm_limits.h ../include/glibtop/cpu.h ../include/glibtop/msg_limits.h \
../include/glibtop/procmem.h ../include/glibtop/procuid.h ../include/glibtop/swap.h \ ../include/glibtop/procmem.h ../include/glibtop/procuid.h ../include/glibtop/swap.h \
../include/glibtop/procsegment.h ../include/glibtop/sysdeps.h ../include/glibtop/global.h \ ../include/glibtop/procsegment.h ../include/glibtop/sysdeps.h ../include/glibtop/global.h \
../include/glibtop/procsignal.h ../include/glibtop/union.h ../include/glibtop/gnuserv.h \ ../include/glibtop/procsignal.h ../include/glibtop/union.h ../include/glibtop/gnuserv.h \
../include/glibtop/parameter.h ../include/glibtop/mountlist.h ../include/glibtop/fsusage.h ../include/glibtop/procmap.h ../include/glibtop/signal.h \ ../include/glibtop/parameter.h ../include/glibtop/mountlist.h ../include/glibtop/fsusage.h ../include/glibtop/procmap.h ../include/glibtop/signal.h \
../include/glibtop/sysinfo.h ../include/glibtop/ppp.h ../include/glibtop/procargs.h ../include/glibtop/netload.h \ ../include/glibtop/sysinfo.h ../include/glibtop/ppp.h ../include/glibtop/procargs.h ../include/glibtop/netload.h \
../include/glibtop/procwd.h ../include/glibtop/procaffinity.h \ ../include/glibtop/procwd.h ../include/glibtop/procaffinity.h ../include/glibtop/procio.h \
../include/glibtop/netlist.h ../include/glibtop/procopenfiles.h ../include/glibtop/open.h ../include/glibtop/netlist.h ../include/glibtop/procopenfiles.h ../include/glibtop/open.h
GTop-2.0.gir: libgtop-2.0.la GTop-2.0.gir: libgtop-2.0.la
GTop_2_0_gir_INCLUDES = GObject-2.0 GTop_2_0_gir_AM_CPPFLAGS = GObject-2.0
GTop_2_0_gir_CFLAGS = $(INCLUDES) GTop_2_0_gir_CFLAGS = $(AM_CPPFLAGS)
GTop_2_0_gir_LIBS = libgtop-2.0.la GTop_2_0_gir_LIBS = libgtop-2.0.la
GTop_2_0_gir_FILES = $(introspection_sources) GTop_2_0_gir_FILES = $(introspection_sources)
INTROSPECTION_GIRS += GTop-2.0.gir INTROSPECTION_GIRS += GTop-2.0.gir

47
lib/boxed.c Normal file
View File

@@ -0,0 +1,47 @@
/* Copyright (C) 2011 Red Hat
This file is part of LibGTop 1.0.
Contributed by Jasper St. Pierre <jstpierre@mecheye.net>, November 2011
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
LibGTop is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <glibtop.h>
#include <glibtop/mountlist.h>
#include <glibtop/procmap.h>
#include <glibtop/procopenfiles.h>
#define DEFINE_BOXED(type) \
static type * \
type##_copy (type *p) \
{ \
type *n = g_new (type, 1); \
memcpy (n, p, sizeof (type)); \
return n; \
} \
\
G_DEFINE_BOXED_TYPE (type, \
type, \
type##_copy, \
g_free)
DEFINE_BOXED (glibtop);
DEFINE_BOXED (glibtop_map_entry);
DEFINE_BOXED (glibtop_proc_map);
DEFINE_BOXED (glibtop_open_files_entry);
DEFINE_BOXED (glibtop_proc_open_files);
DEFINE_BOXED (glibtop_mountentry);
DEFINE_BOXED (glibtop_mountlist);

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -15,11 +15,12 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>
#include <glibtop/error.h>
#include <glibtop/read.h> #include <glibtop/read.h>
#include <glibtop/write.h> #include <glibtop/write.h>
#include <glibtop/read_data.h> #include <glibtop/read_data.h>
@@ -35,6 +36,44 @@ glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
glibtop_init_r (&server, 0, 0); glibtop_init_r (&server, 0, 0);
g_assert(command >= GLIBTOP_CMND_QUIT && command < GLIBTOP_MAX_CMND);
switch (command) {
#define CHECK_CMND(CMND) case (CMND): glibtop_debug("CALL: command %s sending %lu bytes", #CMND, (unsigned long)send_size); break
CHECK_CMND(GLIBTOP_CMND_QUIT);
CHECK_CMND(GLIBTOP_CMND_SYSDEPS);
CHECK_CMND(GLIBTOP_CMND_CPU);
CHECK_CMND(GLIBTOP_CMND_MEM);
CHECK_CMND(GLIBTOP_CMND_SWAP);
CHECK_CMND(GLIBTOP_CMND_UPTIME);
CHECK_CMND(GLIBTOP_CMND_LOADAVG);
CHECK_CMND(GLIBTOP_CMND_SHM_LIMITS);
CHECK_CMND(GLIBTOP_CMND_MSG_LIMITS);
CHECK_CMND(GLIBTOP_CMND_SEM_LIMITS);
CHECK_CMND(GLIBTOP_CMND_PROCLIST);
CHECK_CMND(GLIBTOP_CMND_PROC_STATE);
CHECK_CMND(GLIBTOP_CMND_PROC_UID);
CHECK_CMND(GLIBTOP_CMND_PROC_MEM);
CHECK_CMND(GLIBTOP_CMND_PROC_TIME);
CHECK_CMND(GLIBTOP_CMND_PROC_SIGNAL);
CHECK_CMND(GLIBTOP_CMND_PROC_KERNEL);
CHECK_CMND(GLIBTOP_CMND_PROC_SEGMENT);
CHECK_CMND(GLIBTOP_CMND_PROC_ARGS);
CHECK_CMND(GLIBTOP_CMND_PROC_MAP);
CHECK_CMND(GLIBTOP_CMND_MOUNTLIST);
CHECK_CMND(GLIBTOP_CMND_FSUSAGE);
CHECK_CMND(GLIBTOP_CMND_NETLOAD);
CHECK_CMND(GLIBTOP_CMND_PPP);
CHECK_CMND(GLIBTOP_CMND_NETLIST);
CHECK_CMND(GLIBTOP_CMND_PROC_OPEN_FILES);
CHECK_CMND(GLIBTOP_CMND_PROC_WD);
CHECK_CMND(GLIBTOP_CMND_PROC_AFFINITY);
CHECK_CMND(GLIBTOP_CMND_PROC_IO);
default:
glibtop_error_r(server, "CALL: command UNKNOWN(%d) sending %lu bytes", command, (unsigned long)send_size); break;
}
#undef CHECK_CMND
cmnd.command = command; cmnd.command = command;
/* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we /* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we
@@ -52,10 +91,8 @@ glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
glibtop_read_l (server, sizeof (glibtop_response), &response); glibtop_read_l (server, sizeof (glibtop_response), &response);
#ifdef DEBUG glibtop_debug ("RESPONSE: offset=%lu - data_size=%lu",
fprintf (stderr, "RESPONSE: %lu - %d\n",
response.offset, response.data_size); response.offset, response.data_size);
#endif
if (recv_buf) if (recv_buf)
memcpy (recv_buf, ((char *) &response) + response.offset, memcpy (recv_buf, ((char *) &response) + response.offset,

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>
@@ -26,12 +26,14 @@
#include <glibtop/open.h> #include <glibtop/open.h>
#include <glibtop/parameter.h> #include <glibtop/parameter.h>
#include <glibtop/init_hooks.h> #include <glibtop/init_hooks.h>
#include <glibtop/machine.h>
#ifndef DEFAULT_PORT #ifndef DEFAULT_PORT
#define DEFAULT_PORT 42800 #define DEFAULT_PORT 42800
#endif #endif
static glibtop _glibtop_global_server = { 0 }; static glibtop _glibtop_global_server;
glibtop *glibtop_global_server = &_glibtop_global_server; glibtop *glibtop_global_server = &_glibtop_global_server;
static void static void
@@ -141,7 +143,7 @@ _init_server (glibtop *server, const unsigned features)
/* Open pipe to server. */ /* Open pipe to server. */
server->method = GLIBTOP_METHOD_PIPE; server->method = GLIBTOP_METHOD_PIPE;
server->server_command = g_strdup(LIBGTOP_SERVER);
} else { } else {
glibtop_error_r (server, "Unknown server method '%s'", glibtop_error_r (server, "Unknown server method '%s'",
@@ -173,6 +175,9 @@ glibtop_init_r (glibtop **server_ptr, unsigned long features, unsigned flags)
/* Do the initialization, but only if not already initialized. */ /* Do the initialization, but only if not already initialized. */
if ((server->flags & _GLIBTOP_INIT_STATE_INIT) == 0) { if ((server->flags & _GLIBTOP_INIT_STATE_INIT) == 0) {
glibtop_machine_new (server);
if (flags & GLIBTOP_FEATURES_EXCEPT) if (flags & GLIBTOP_FEATURES_EXCEPT)
features = ~features & GLIBTOP_SYSDEPS_ALL; features = ~features & GLIBTOP_SYSDEPS_ALL;
@@ -209,7 +214,7 @@ glibtop_init_r (glibtop **server_ptr, unsigned long features, unsigned flags)
/* Open server, but only if not already opened. */ /* Open server, but only if not already opened. */
if ((server->flags & _GLIBTOP_INIT_STATE_OPEN) == 0) if ((server->flags & _GLIBTOP_INIT_STATE_OPEN) == 0)
glibtop_open_l (glibtop_global_server, "glibtop", glibtop_open_l (server, "glibtop",
features, flags); features, flags);
return server; return server;
@@ -221,6 +226,8 @@ glibtop_init_s (glibtop **server_ptr, unsigned long features, unsigned flags)
glibtop *server; glibtop *server;
const _glibtop_init_func_t *init_fkt; const _glibtop_init_func_t *init_fkt;
glibtop_debug("init_s with features=%#0lx and flags=%#0x", features, flags);
if (server_ptr == NULL) if (server_ptr == NULL)
return NULL; return NULL;

View File

@@ -1,21 +1,8 @@
#!/usr/bin/perl #!/usr/bin/perl
$[ = 1; # set array base to 1
$, = ' '; # set output field separator $, = ' '; # set output field separator
$\ = "\n"; # set output record separator $\ = "\n"; # set output record separator
sub toupper {
local($_) = @_;
tr/a-z/A-Z/;
return $_;
}
sub tolower {
local($_) = @_;
tr/A-Z/a-z/;
return $_;
}
print '/* lib.c */'; print '/* lib.c */';
print "/* This is a generated file. Please modify `lib.pl' */"; print "/* This is a generated file. Please modify `lib.pl' */";
print ''; print '';
@@ -86,9 +73,9 @@ while (<>) {
sub output { sub output {
local($line) = @_; local($line) = @_;
@line_fields = split(/\|/, $line, 9999); @line_fields = split(/\|/, $line, 9999);
$retval = $line_fields[1]; $retval = $line_fields[0];
$feature = $line_fields[2]; $feature = $line_fields[1];
$param_def = $line_fields[4]; $param_def = $line_fields[2];
$orig = $feature; $orig = $feature;
$feature =~ s/^@//; $feature =~ s/^@//;
@@ -106,16 +93,16 @@ sub output {
} }
if ($param_def eq 'string') { if ($param_def eq 'string') {
$call_param = ', ' . $line_fields[5]; $call_param = ', ' . $line_fields[3];
$param_buf = ''; $param_buf = '';
$buf_set = ''; $buf_set = '';
$param_decl = ",\n " . $space . ' const char *' . $param_decl = ",\n " . $space . ' const char *' .
$line_fields[5]; $line_fields[3];
$send_ptr = "\n\tconst void *send_ptr = " . $line_fields[5] . ';'; $send_ptr = "\n\tconst void *send_ptr = " . $line_fields[3] . ';';
$send_size = "\n\tconst size_t send_size =\n\t\tstrlen (" . $send_size = "\n\tconst size_t send_size =\n\t\tstrlen (" .
$line_fields[5] . ') + 1;'; $line_fields[3] . ') + 1;';
} }
else { else {
$call_param = ''; $call_param = '';
@@ -126,9 +113,9 @@ sub output {
$buf_set = ''; $buf_set = '';
$nr_params = (@params = split(/:/, $param_def, 9999)); $nr_params = (@params = split(/:/, $param_def, 9999));
if ($nr_params) { if ($nr_params) {
$param_buf = "\n\tstruct {\n"; $param_buf = "\t\tstruct {\n";
} }
for ($param = 1; $param <= $nr_params; $param++) { for ($param = 0; $param < $nr_params; $param++) {
$list = $params[$param]; $list = $params[$param];
$type = $params[$param]; $type = $params[$param];
$type =~ s/\(.*//; $type =~ s/\(.*//;
@@ -137,13 +124,13 @@ sub output {
$count = (@fields = split(/,/, $list, 9999)); $count = (@fields = split(/,/, $list, 9999));
if ($count > 0) { if ($count > 0) {
for ($field = 1; $field <= $count; $field++) { for ($field = 0; $field < $count; $field++) {
$param_buf .= "\t\t$convert{$type} buf_$fields[$field];\n"; $param_buf .= "\t\t\t$convert{$type} buf_$fields[$field];\n";
$buf_set .= "\tparam_buf.buf_$fields[$field] = $fields[$field];\n"; $buf_set .= "\t\tparam_buf.buf_$fields[$field] = $fields[$field];\n";
} }
} }
for ($field = 1; $field <= $count; $field++) { for ($field = 0; $field < $count; $field++) {
if ($param_decl eq '') { if ($param_decl eq '') {
$param_decl = ",\n " . $space . ' '; $param_decl = ",\n " . $space . ' ';
} }
@@ -155,19 +142,19 @@ sub output {
$fields[$field]; $fields[$field];
$call_param = $call_param . ', ' . $fields[$field]; $call_param = $call_param . ', ' . $fields[$field];
if ($send_ptr eq '') { if ($send_ptr eq '') {
$send_ptr = "\n\tconst void *send_ptr = &param_buf;"; $send_ptr = "\t\tconst void *send_ptr = &param_buf;";
} }
} }
} }
if ($nr_params) { if ($nr_params) {
$param_buf .= "\t} param_buf;"; $param_buf .= "\t\t} param_buf;\n";
$send_size = "\n\tconst size_t send_size = sizeof param_buf;"; $send_size = "\t\tconst size_t send_size = sizeof param_buf;";
} }
else { else {
$send_size = "\n\tconst size_t send_size = 0;"; $send_size = "\t\tconst size_t send_size = 0;";
} }
if ($send_ptr eq '') { if ($send_ptr eq '') {
$send_ptr = "\n\tconst void *send_ptr = NULL;"; $send_ptr = "\t\tconst void *send_ptr = NULL;";
} }
} }
@@ -175,17 +162,15 @@ sub output {
$feature . ' *buf' . $param_decl . ')'; $feature . ' *buf' . $param_decl . ')';
print "{" . $param_buf; print "{";
print $send_ptr . '' . $send_size;
if ($retval !~ /^void$/) { if ($retval !~ /^void$/) {
print "\t" . $retval . ' retval = (' . $retval . ') 0;'; print "\t" . $retval . ' retval = (' . $retval . ') 0;';
} }
print $buf_set;
print "\tglibtop_init_r (&server, (1 << GLIBTOP_SYSDEPS_" . print "\tglibtop_init_r (&server, (1 << GLIBTOP_SYSDEPS_" .
&toupper($feature) . '), 0);'; uc($feature) . '), 0);';
print ''; print '';
print "\t/* If neccessary, we ask the server for the requested"; print "\t/* If neccessary, we ask the server for the requested";
@@ -195,12 +180,21 @@ sub output {
print "\tif ((server->flags & _GLIBTOP_INIT_STATE_SERVER) &&"; print "\tif ((server->flags & _GLIBTOP_INIT_STATE_SERVER) &&";
print "\t (server->features & (1 << GLIBTOP_SYSDEPS_" . print "\t (server->features & (1 << GLIBTOP_SYSDEPS_" .
&toupper($feature) . ')))'; uc($feature) . ')))';
print "\t{"; print "\t{";
if ($param_buf) {
print $param_buf;
print $buf_set;
}
print $send_ptr;
print $send_size;
print '';
print "\t\t" . $prefix . 'glibtop_call_l (server, GLIBTOP_CMND_' . print "\t\t" . $prefix . 'glibtop_call_l (server, GLIBTOP_CMND_' .
&toupper($feature) . ','; uc($feature) . ',';
print "\t\t\t\t" . $prefix_space . 'send_size, send_ptr,'; print "\t\t\t\t" . $prefix_space . 'send_size, send_ptr,';
print "\t\t\t\t" . $prefix_space . 'sizeof (glibtop_' . $feature . print "\t\t\t\t" . $prefix_space . 'sizeof (glibtop_' . $feature .
@@ -209,7 +203,7 @@ sub output {
print "\t} else {"; print "\t} else {";
if ($orig !~ /^@/) { if ($orig !~ /^@/) {
print '#if (!GLIBTOP_SUID_' . &toupper($feature) . ')'; print '#if (!GLIBTOP_SUID_' . uc($feature) . ')';
} }
print "\t\t" . $prefix . 'glibtop_get_' . $feature . '_s (server, buf' . print "\t\t" . $prefix . 'glibtop_get_' . $feature . '_s (server, buf' .

View File

@@ -52,6 +52,8 @@ glibtop_get_shm_limits
glibtop_get_shm_limits_l glibtop_get_shm_limits_l
glibtop_get_proc_affinity glibtop_get_proc_affinity
glibtop_get_proc_affinity_l glibtop_get_proc_affinity_l
glibtop_get_proc_io
glibtop_get_proc_io_l
glibtop_get_swap glibtop_get_swap
glibtop_get_swap_l glibtop_get_swap_l
glibtop_get_sysdeps glibtop_get_sysdeps
@@ -68,3 +70,10 @@ glibtop_open_l
glibtop_server_features glibtop_server_features
glibtop_set_parameter_l glibtop_set_parameter_l
glibtop_sys_siglist glibtop_sys_siglist
glibtop_mountlist_get_type
glibtop_mountentry_get_type
glibtop_open_files_entry_get_type
glibtop_proc_open_files_get_type
glibtop_map_entry_get_type
glibtop_proc_map_get_type
glibtop_get_type

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>
@@ -47,56 +47,44 @@ glibtop_open_l (glibtop *server, const char *program_name,
server->error_method = GLIBTOP_ERROR_METHOD_DEFAULT; server->error_method = GLIBTOP_ERROR_METHOD_DEFAULT;
#ifdef DEBUG glibtop_debug ("SIZEOF: %zu - %zu - %zu - %zu - %zu - %zu",
fprintf (stderr, "SIZEOF: %u - %u - %u - %u - %u - %u\n",
sizeof (glibtop_command), sizeof (glibtop_response), sizeof (glibtop_command), sizeof (glibtop_response),
sizeof (glibtop_mountentry), sizeof (glibtop_union), sizeof (glibtop_mountentry), sizeof (glibtop_union),
sizeof (glibtop_sysdeps), sizeof (glibtop_response_union)); sizeof (glibtop_sysdeps), sizeof (glibtop_response_union));
#endif
switch (server->method) { switch (server->method) {
case GLIBTOP_METHOD_DIRECT: case GLIBTOP_METHOD_DIRECT:
server->features = 0; server->features = 0;
break; break;
case GLIBTOP_METHOD_INET: case GLIBTOP_METHOD_INET:
#ifdef DEBUG glibtop_debug ("Connecting to '%s' port %ld.",
fprintf (stderr, "Connecting to '%s' port %ld.\n",
server->server_host, server->server_port); server->server_host, server->server_port);
#endif
connect_type = glibtop_make_connection connect_type = glibtop_make_connection
(server->server_host, server->server_port, (server->server_host, server->server_port,
&server->socket); &server->socket);
#ifdef DEBUG glibtop_debug ("Connect Type is %d.", connect_type);
fprintf (stderr, "Connect Type is %d.\n", connect_type);
#endif
server->flags |= _GLIBTOP_INIT_STATE_SERVER; server->flags |= _GLIBTOP_INIT_STATE_SERVER;
server->features = -1; server->features = -1;
break; break;
case GLIBTOP_METHOD_UNIX: case GLIBTOP_METHOD_UNIX:
#ifdef DEBUG glibtop_debug ("Connecting to Unix Domain Socket.");
fprintf (stderr, "Connecting to Unix Domain Socket.\n");
#endif
connect_type = glibtop_make_connection connect_type = glibtop_make_connection
("unix", 0, &server->socket); ("unix", 0, &server->socket);
#ifdef DEBUG glibtop_debug ("Connect Type is %d.", connect_type);
fprintf (stderr, "Connect Type is %d.\n", connect_type);
#endif
server->flags |= _GLIBTOP_INIT_STATE_SERVER; server->flags |= _GLIBTOP_INIT_STATE_SERVER;
server->features = -1; server->features = -1;
break; break;
case GLIBTOP_METHOD_PIPE: case GLIBTOP_METHOD_PIPE:
#ifdef DEBUG glibtop_debug ("Opening pipe to server (%s).",
fprintf (stderr, "Opening pipe to server (%s).\n", server->server_command);
LIBGTOP_SERVER);
#endif
if (pipe (server->input) || pipe (server->output)) if (pipe (server->input) || pipe (server->output))
glibtop_error_io_r (server, "cannot make a pipe"); glibtop_error_io_r (server, "cannot make a pipe");
@@ -110,9 +98,9 @@ glibtop_open_l (glibtop *server, const char *program_name,
close (server->input [0]); close (server->output [1]); close (server->input [0]); close (server->output [1]);
dup2 (server->input [1], 1); dup2 (server->input [1], 1);
dup2 (server->output [0], 0); dup2 (server->output [0], 0);
execl (LIBGTOP_SERVER, "libgtop-server", NULL); execl (server->server_command, "libgtop-server", NULL);
glibtop_error_io_r (server, "execl (%s)", glibtop_error_io_r (server, "execl (%s)",
LIBGTOP_SERVER); server->server_command);
_exit (2); _exit (2);
} }
@@ -165,18 +153,14 @@ glibtop_open_l (glibtop *server, const char *program_name,
memcpy (&server->sysdeps, &sysdeps, sizeof (glibtop_sysdeps)); memcpy (&server->sysdeps, &sysdeps, sizeof (glibtop_sysdeps));
#ifdef DEBUG glibtop_debug ("Server features are %#0lx.",
fprintf (stderr, "Server features are %lu.\n",
server->features); server->features);
#endif
} }
/* In any case, we call the open functions of our own sysdeps /* In any case, we call the open functions of our own sysdeps
* directory. */ * directory. */
#ifdef DEBUG glibtop_debug ("Calling sysdeps open function.");
fprintf (stderr, "Calling sysdeps open function.\n");
#endif
glibtop_init_s (&server, features, flags); glibtop_init_s (&server, features, flags);
} }

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>
@@ -33,9 +33,7 @@ glibtop_read_l (glibtop *server, size_t size, void *buf)
int fd; int fd;
glibtop_init_r (&server, 0, 0); glibtop_init_r (&server, 0, 0);
#ifdef DEBUG glibtop_debug("LIBRARY: really reading %d bytes.", (int)size);
fprintf (stderr, "LIBRARY: really reading %d bytes.\n", (int)size);
#endif
fd = server->socket ? server->socket : server->input[0]; fd = server->socket ? server->socket : server->input[0];

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>
@@ -36,10 +36,8 @@ glibtop_read_data_l (glibtop *server)
glibtop_init_r (&server, 0, 0); glibtop_init_r (&server, 0, 0);
#ifdef DEBUG glibtop_debug ("LIBRARY: reading %lu data bytes.",
fprintf (stderr, "LIBRARY: reading %lu data bytes.\n",
(unsigned long) sizeof (size_t)); (unsigned long) sizeof (size_t));
#endif
if (server->socket) { if (server->socket) {
ret = recv (server->socket, &size, sizeof (size_t), 0); ret = recv (server->socket, &size, sizeof (size_t), 0);
@@ -50,10 +48,8 @@ glibtop_read_data_l (glibtop *server)
if (ret < 0) if (ret < 0)
glibtop_error_io_r (server, _("read data size")); glibtop_error_io_r (server, _("read data size"));
#ifdef DEBUG glibtop_debug ("LIBRARY: really reading %lu data bytes (ret = %d).",
fprintf (stderr, "LIBRARY: really reading %lu data bytes (ret = %d).\n",
(unsigned long) size, ret); (unsigned long) size, ret);
#endif
if (!size) return NULL; if (!size) return NULL;

View File

@@ -1,104 +0,0 @@
#!/usr/bin/perl
die "Usage: $0 features.def structures.def" unless $#ARGV == 2;
$[ = 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 $_;
}
$structures{$structure_count++} = 'glibtop';
open FEATURESDEF, $ARGV[1] or
die "open ($ARGV[1]): $!";
while (<FEATURESDEF>) {
chop; # strip record separator
if (/^[^\#]/) {
&parse_features_def ($_);
}
}
close FEATURESDEF;
open STRUCTDEF, $ARGV[2] or
die "open ($ARGV[2]): $!";
while (<STRUCTDEF>) {
chop; # strip record separator
if (/^[^\#]/) {
&parse_structure_def ($_);
}
}
close STRUCTDEF;
$init_structures_code = sprintf
(qq[\tscm_glibtop_structure_tags [GLIBTOP_STRUCTURE_GLIBTOP] = scm_make_structure_type\n\t\t("glibtop", sizeof (glibtop));\n]);
for ($nr = 0; $nr < $structure_count; $nr++) {
$structure = $structures{$nr};
$init_structures_code .= sprintf
(qq[\tscm_glibtop_structure_tags [GLIBTOP_STRUCTURE_%s] = scm_make_structure_type\n\t\t("%s", sizeof (%s));\n],
toupper($structure), $structure, $structure);
}
print qq[/* structures.h */];
print qq[/* This is a generated file. Please modify \`guile.pl\' */];
print '';
print qq[\#ifndef __GLIBTOP_STRUCTURES_H__];
print qq[\#define __GLIBTOP_STRUCTURES_H__];
print '';
print qq[\#include <glibtop.h>];
print '';
print qq[G_BEGIN_DECLS];
print '';
for ($nr = 0; $nr < $structure_count; $nr++) {
$structure = $structures{$nr};
printf (qq[\#define %-40s\t%d\n], 'GLIBTOP_STRUCTURE_'.&toupper($structure), $nr);
}
print '';
printf (qq[\#define %-40s\t%d\n], 'GLIBTOP_MAX_STRUCTURES', $structure_count);
print '';
print qq[G_END_DECLS];
print '';
print qq[\#endif /* __GLIBTOP_STRUCTURES_H__ */];
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];
$feature =~ s/^@//;
$features{$feature} = $feature;
$structures{$structure_count++} = 'glibtop_'.$feature;
}
sub parse_structure_def {
local($line) = @_;
@line_fields = split(/\|/, $line, 9999);
$name = $line_fields[1];
$structures{$structure_count++} = $name;
}

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>
@@ -44,11 +44,13 @@ GLIBTOP_SUID_PROC_KERNEL +
GLIBTOP_SUID_PROC_SEGMENT + GLIBTOP_SUID_PROC_SEGMENT +
GLIBTOP_SUID_PROC_ARGS + GLIBTOP_SUID_PROC_ARGS +
GLIBTOP_SUID_PROC_MAP + GLIBTOP_SUID_PROC_MAP +
GLIBTOP_SUID_PROC_OPEN_FILES +
GLIBTOP_SUID_NETLOAD + GLIBTOP_SUID_NETLOAD +
GLIBTOP_SUID_NETLIST + GLIBTOP_SUID_NETLIST +
GLIBTOP_SUID_PROC_WD + GLIBTOP_SUID_PROC_WD +
GLIBTOP_SUID_PROC_AFFINITY + GLIBTOP_SUID_PROC_AFFINITY +
GLIBTOP_SUID_PPP; GLIBTOP_SUID_PPP +
GLIBTOP_SUID_PROC_IO;
const _glibtop_init_func_t _glibtop_init_hook_s [] = { const _glibtop_init_func_t _glibtop_init_hook_s [] = {
#if !GLIBTOP_SUID_CPU #if !GLIBTOP_SUID_CPU
@@ -119,6 +121,12 @@ const _glibtop_init_func_t _glibtop_init_hook_s [] = {
#endif #endif
#if !GLIBTOP_SUID_PPP #if !GLIBTOP_SUID_PPP
_glibtop_init_ppp_s, _glibtop_init_ppp_s,
#endif
#if !GLIBTOP_SUID_PROC_IO
_glibtop_init_proc_io_s,
#endif
#if !GLIBTOP_SUID_PROC_OPEN_FILES
_glibtop_init_proc_open_files_s,
#endif #endif
NULL NULL
}; };
@@ -192,6 +200,12 @@ const _glibtop_init_func_t _glibtop_init_hook_p [] = {
#endif #endif
#if GLIBTOP_SUID_PPP #if GLIBTOP_SUID_PPP
_glibtop_init_ppp_p, _glibtop_init_ppp_p,
#endif
#if GLIBTOP_SUID_PROC_IO
_glibtop_init_proc_io_p,
#endif
#if GLIBTOP_SUID_PROC_OPEN_FILES
_glibtop_init_proc_open_files_p,
#endif #endif
NULL NULL
}; };

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02111-1307, USA. Boston, MA 02110-1301, USA.
*/ */
#include <config.h> #include <config.h>
@@ -37,9 +37,7 @@ glibtop_write_l (glibtop *server, size_t size, void *buf)
if (size == 0) return; if (size == 0) return;
#ifdef DEBUG glibtop_debug("LIBRARY: really writing %d bytes.", (int)size);
fprintf (stderr, "LIBRARY: really writing %d bytes.\n", (int)size);
#endif
fd = server->socket ? server->socket : server->output[1]; fd = server->socket ? server->socket : server->output[1];

View File

@@ -4,20 +4,16 @@ dnl
dnl It defines the following variables: dnl It defines the following variables:
dnl dnl
dnl * 'libgtop_sysdeps_dir' - sysdeps dir for libgtop. dnl * 'libgtop_sysdeps_dir' - sysdeps dir for libgtop.
dnl * 'libgtop_use_machine_h' - some of system dependend parts of libgtop provide dnl * 'libgtop_need_server' - is the server really needed? Defines 'LIBGTOP_NEED_SERVER'
dnl their own header file. In this case we need to dnl if true; defines conditional 'LIBGTOP_NEED_SERVER'.
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_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_CANONICAL_HOST])
AC_SUBST(libgtop_sysdeps_dir) AC_SUBST(libgtop_sysdeps_dir)
AC_SUBST(libgtop_use_machine_h)
AC_SUBST(libgtop_need_server) AC_SUBST(libgtop_need_server)
AC_ARG_WITH(libgtop-examples, AC_ARG_WITH(examples,
AS_HELP_STRING([--with-examples], AS_HELP_STRING([--with-examples],
[Build the libgtop examples @<:@default=yes@:>@]),[ [Build the libgtop examples @<:@default=yes@:>@]),[
build_examples="$withval"], [build_examples=yes]) build_examples="$withval"], [build_examples=yes])
@@ -31,59 +27,31 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes) AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
AC_ARG_WITH(libgtop-smp,
AS_HELP_STRING([--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, 1, [Define if libgtop supports SMP])
fi
AM_CONDITIONAL(LIBGTOP_SMP, test $libgtop_smp = yes)
AC_MSG_CHECKING(for libgtop sysdeps directory) AC_MSG_CHECKING(for libgtop sysdeps directory)
case "$host_os" in case "$host_os" in
linux*) linux*)
libgtop_sysdeps_dir=linux libgtop_sysdeps_dir=linux
libgtop_use_machine_h=no
libgtop_have_sysinfo=yes libgtop_have_sysinfo=yes
libgtop_need_server=no libgtop_need_server=yes
libgtop_sysdeps_private_mountlist=yes libgtop_sysdeps_private_mountlist=yes
libgtop_sysdeps_private_fsusage=yes libgtop_sysdeps_private_fsusage=yes
libgtop_postinstall='chown root $(bindir)/libgtop_server2 && chmod 4755 $(bindir)/libgtop_server2'
;; ;;
netbsd*|bsdi*) netbsd*|bsdi*)
libgtop_sysdeps_dir=bsd libgtop_sysdeps_dir=bsd
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server2' libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server2'
;; ;;
openbsd*) openbsd*)
libgtop_sysdeps_dir=openbsd libgtop_sysdeps_dir=openbsd
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_sysdeps_private_mountlist=yes
libgtop_sysdeps_private_fsusage=yes
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2555 $(bindir)/libgtop_server2' libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2555 $(bindir)/libgtop_server2'
;; ;;
freebsd*|kfreebsd*) freebsd*|kfreebsd*)
libgtop_sysdeps_dir=freebsd libgtop_sysdeps_dir=freebsd
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_sysdeps_private_mountlist=yes libgtop_sysdeps_private_mountlist=yes
libgtop_sysdeps_private_fsusage=yes libgtop_sysdeps_private_fsusage=yes
@@ -91,27 +59,23 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
;; ;;
solaris*) solaris*)
libgtop_sysdeps_dir=solaris libgtop_sysdeps_dir=solaris
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server' libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
;; ;;
aix*) aix*)
libgtop_sysdeps_dir=aix libgtop_sysdeps_dir=aix
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_have_sysinfo=yes libgtop_have_sysinfo=yes
libgtop_postinstall='chgrp system $(bindir)/libgtop_server && chmod g+s $(bindir)/libgtop_server2' libgtop_postinstall='chgrp system $(bindir)/libgtop_server && chmod g+s $(bindir)/libgtop_server2'
;; ;;
darwin*) darwin*)
libgtop_sysdeps_dir=darwin libgtop_sysdeps_dir=darwin
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_have_sysinfo=yes libgtop_have_sysinfo=yes
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod g+s $(bindir)/libgtop_server2' libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod g+s $(bindir)/libgtop_server2'
;; ;;
cygwin*) cygwin*)
libgtop_sysdeps_dir=cygwin libgtop_sysdeps_dir=cygwin
libgtop_use_machine_h=no
libgtop_need_server=no libgtop_need_server=no
libgtop_have_sysinfo=yes libgtop_have_sysinfo=yes
libgtop_sysdeps_private_mountlist=yes libgtop_sysdeps_private_mountlist=yes
@@ -123,23 +87,19 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
#Please note that this port is obsolete and not working at #Please note that this port is obsolete and not working at
#all. It is only useful for people who want to fix it ... :-) #all. It is only useful for people who want to fix it ... :-)
libgtop_sysdeps_dir=sun4 libgtop_sysdeps_dir=sun4
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
;; ;;
osf*) osf*)
libgtop_sysdeps_dir=osf1 libgtop_sysdeps_dir=osf1
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
;; ;;
*) *)
libgtop_sysdeps_dir=stub libgtop_sysdeps_dir=stub
libgtop_use_machine_h=no
libgtop_need_server=no libgtop_need_server=no
;; ;;
esac esac
else else
libgtop_sysdeps_dir=stub libgtop_sysdeps_dir=stub
libgtop_use_machine_h=no
libgtop_need_server=no libgtop_need_server=no
fi fi
;; ;;
@@ -158,21 +118,13 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS=-lkvm, KVM_LIBS=) AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS=-lkvm, KVM_LIBS=)
AC_SUBST(KVM_LIBS) AC_SUBST(KVM_LIBS)
case "$host_os" in AC_CHECK_LIB(util, kinfo_getfile)
kfreebsd*) AC_CHECK_FUNCS(kinfo_getfile)
EXTRA_SYSDEPS_LIBS="-lgeom -ldevstat"
;;
freebsd*)
osreldate=`sysctl -n kern.osreldate 2>/dev/null`
if test -n "${osreldate}" && test ${osreldate} -ge 600000 ; then
EXTRA_SYSDEPS_LIBS="-lgeom -ldevstat"
fi
;;
esac
AC_SUBST(EXTRA_SYSDEPS_LIBS) AC_CHECK_HEADERS(net/if_var.h,,, [
#include <net/if.h>
AC_CHECK_HEADERS(net/if_var.h) #include <sys/types.h>
#include <sys/socket.h>])
AC_MSG_CHECKING([for I4B]) AC_MSG_CHECKING([for I4B])
AC_TRY_COMPILE([ AC_TRY_COMPILE([
#include <sys/types.h> #include <sys/types.h>
@@ -313,22 +265,14 @@ main (void)
;; ;;
esac 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_CHECKING(whether we need libgtop)
AC_MSG_RESULT($libgtop_need_server) AC_MSG_RESULT($libgtop_need_server)
if test x$libgtop_need_server = xyes ; then if test x$libgtop_need_server = xyes ; then
AC_DEFINE(NEED_LIBGTOP, 1, [Define if libgtop is required]) AC_DEFINE(LIBGTOP_NEED_SERVER, 1, [Define if libgtop server is required])
fi fi
if test x$libgtop_use_machine_h = xyes ; then AM_CONDITIONAL(LIBGTOP_NEED_SERVER, test x$libgtop_need_server = xyes)
AC_DEFINE(HAVE_GLIBTOP_MACHINE_H, 1,
[Define if machine.h in libgtop sysdeps dir])
fi
AM_CONDITIONAL(NEED_LIBGTOP, test x$libgtop_need_server = xyes)
AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_MOUNTLIST, test x$libgtop_sysdeps_private_mountlist = xyes) AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_MOUNTLIST, test x$libgtop_sysdeps_private_mountlist = xyes)
AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_FSUSAGE, test x$libgtop_sysdeps_private_fsusage = xyes) AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_FSUSAGE, test x$libgtop_sysdeps_private_fsusage = xyes)
]) ])

View File

@@ -8,7 +8,8 @@
<shortdesc xml:lang="en">LibGTop2</shortdesc> <shortdesc xml:lang="en">LibGTop2</shortdesc>
<download-page rdf:resource="http://download.gnome.org/sources/libgtop/" /> <download-page rdf:resource="http://download.gnome.org/sources/libgtop/" />
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=libgtop" /> <bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=libgtop" />
<category rdf:resource="http://api.gnome.org/doap-extensions#desktop" /> <category rdf:resource="http://api.gnome.org/doap-extensions#core" />
<programming-language>C</programming-language>
<maintainer> <maintainer>
<foaf:Person> <foaf:Person>

View File

@@ -16,7 +16,7 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# #
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a
@@ -2756,7 +2756,7 @@ case "$ltmain" in
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# #
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a

78
po/Makevars Normal file
View File

@@ -0,0 +1,78 @@
# Makefile variables for PO directory in any package using GNU gettext.
# Usually the message domain is the same as the package name.
DOMAIN = $(PACKAGE)
# These two variables depend on the location of this directory.
subdir = po
top_builddir = ..
# These options get passed to xgettext.
XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments
# This is the copyright holder that gets inserted into the header of the
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
# package. (Note that the msgstr strings, extracted from the package's
# sources, belong to the copyright holder of the package.) Translators are
# expected to transfer the copyright for their translations to this person
# or entity, or to disclaim their copyright. The empty string stands for
# the public domain; in this case the translators are expected to disclaim
# their copyright.
COPYRIGHT_HOLDER = libgtop authors
# This tells whether or not to prepend "GNU " prefix to the package
# name that gets inserted into the header of the $(DOMAIN).pot file.
# Possible values are "yes", "no", or empty. If it is empty, try to
# detect it automatically by scanning the files in $(top_srcdir) for
# "GNU packagename" string.
PACKAGE_GNU = no
# This is the email address or URL to which the translators shall report
# bugs in the untranslated strings:
# - Strings which are not entire sentences, see the maintainer guidelines
# in the GNU gettext documentation, section 'Preparing Strings'.
# - Strings which use unclear terms or require additional context to be
# understood.
# - Strings which make invalid assumptions about notation of date, time or
# money.
# - Pluralisation problems.
# - Incorrect English spelling.
# - Incorrect formatting.
# It can be your email address, or a mailing list address where translators
# can write to without being subscribed, or the URL of a web page through
# which the translators can contact you.
MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/libgtop/issues
# This is the list of locale categories, beyond LC_MESSAGES, for which the
# message catalogs shall be used. It is usually empty.
EXTRA_LOCALE_CATEGORIES =
# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
# context. Possible values are "yes" and "no". Set this to yes if the
# package uses functions taking also a message context, like pgettext(), or
# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
USE_MSGCTXT = yes
# These options get passed to msgmerge.
# Useful options are in particular:
# --previous to keep previous msgids of translated messages,
# --quiet to reduce the verbosity.
MSGMERGE_OPTIONS =
# These options get passed to msginit.
# If you want to disable line wrapping when writing PO files, add
# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
# MSGINIT_OPTIONS.
MSGINIT_OPTIONS =
# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
# has changed. Possible values are "yes" and "no". Set this to no if
# the POT file is checked in the repository and the version control
# program ignores timestamps.
PO_DEPENDS_ON_POT = no
# This tells whether or not to forcibly update $(DOMAIN).pot and
# regenerate PO files on "make dist". Possible values are "yes" and
# "no". Set this to no if the POT file and PO files are maintained
# externally.
DIST_DEPENDS_ON_UPDATE_PO = no

View File

@@ -12,6 +12,7 @@ msgstr ""
"PO-Revision-Date: 2003-01-16 08:39+EDT\n" "PO-Revision-Date: 2003-01-16 08:39+EDT\n"
"Last-Translator: Ge'ez Frontier Foundation <locales@geez.org>\n" "Last-Translator: Ge'ez Frontier Foundation <locales@geez.org>\n"
"Language-Team: Amharic <locales@geez.org>\n" "Language-Team: Amharic <locales@geez.org>\n"
"Language: am\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View File

@@ -15,6 +15,7 @@ msgstr ""
"PO-Revision-Date: 2008-07-28 19:26+0300\n" "PO-Revision-Date: 2008-07-28 19:26+0300\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n" "Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n" "Language-Team: Arabic <doc@arabeyes.org>\n"
"Language: ar\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View File

@@ -12,6 +12,7 @@ msgstr ""
"PO-Revision-Date: 2011-08-17 16:13+0530\n" "PO-Revision-Date: 2011-08-17 16:13+0530\n"
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n" "Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
"Language-Team: as_IN <kde-i18n-doc@kde.org>\n" "Language-Team: as_IN <kde-i18n-doc@kde.org>\n"
"Language: as\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View File

@@ -11,6 +11,7 @@ msgstr ""
"PO-Revision-Date: 2010-01-06 18:12+0100\n" "PO-Revision-Date: 2010-01-06 18:12+0100\n"
"Last-Translator: astur <malditoastur@gmail.com>\n" "Last-Translator: astur <malditoastur@gmail.com>\n"
"Language-Team: Asturian <alministradores@softastur.org>\n" "Language-Team: Asturian <alministradores@softastur.org>\n"
"Language: ast\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View File

@@ -12,6 +12,7 @@ msgstr ""
"Last-Translator: Mətin Əmirov <metin@karegen.com>\n" "Last-Translator: Mətin Əmirov <metin@karegen.com>\n"
"Language-Team: Azerbaijani Turkish <translation-team-az@lists.sourceforge." "Language-Team: Azerbaijani Turkish <translation-team-az@lists.sourceforge."
"net>\n" "net>\n"
"Language: az\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

100
po/be.po
View File

@@ -1,14 +1,16 @@
# Vital Khilko <dojlid@mova.org>, 2003. # Vital Khilko <dojlid@mova.org>, 2003.
# Ales Nyakhaychyk <nab@mail.by>, 2004. # Ales Nyakhaychyk <nab@mail.by>, 2004.
# Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2011. # Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2011.
# Yuras Shumovich <shumovichy@gmail.com>, 2017.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: libgtop.master\n" "Project-Id-Version: libgtop.master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?"
"POT-Creation-Date: 2011-07-24 19:42+0300\n" "product=libgtop&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2011-07-24 19:41+0300\n" "POT-Creation-Date: 2017-04-07 11:26+0000\n"
"Last-Translator: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>\n" "PO-Revision-Date: 2017-09-01 19:01+0300\n"
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n" "Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\n" "Language: be\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -16,9 +18,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: KBabel 1.0.2\n" "X-Generator: Poedit 1.8.11\n"
#: ../lib/read.c:51 #: lib/read.c:49
#, c-format #, c-format
msgid "read %d byte" msgid "read %d byte"
msgid_plural "read %d bytes" msgid_plural "read %d bytes"
@@ -26,11 +28,11 @@ msgstr[0] "прачытаны %d байт"
msgstr[1] "прачытана %d байты" msgstr[1] "прачытана %d байты"
msgstr[2] "прачытана %d байтаў" msgstr[2] "прачытана %d байтаў"
#: ../lib/read_data.c:51 #: lib/read_data.c:49
msgid "read data size" msgid "read data size"
msgstr "прачытаны памер даных" msgstr "прачытаны памер даных"
#: ../lib/read_data.c:70 #: lib/read_data.c:66
#, c-format #, c-format
msgid "read %lu byte of data" msgid "read %lu byte of data"
msgid_plural "read %lu bytes of data" msgid_plural "read %lu bytes of data"
@@ -38,7 +40,7 @@ msgstr[0] "прачытаны %lu байт даных"
msgstr[1] "прачытана %lu байты даных" msgstr[1] "прачытана %lu байты даных"
msgstr[2] "прачытана %lu байтаў даных" msgstr[2] "прачытана %lu байтаў даных"
#: ../lib/write.c:51 #: lib/write.c:49
#, c-format #, c-format
msgid "wrote %d byte" msgid "wrote %d byte"
msgid_plural "wrote %d bytes" msgid_plural "wrote %d bytes"
@@ -46,148 +48,150 @@ msgstr[0] "запісаны %d байт"
msgstr[1] "запісана %d байты" msgstr[1] "запісана %d байты"
msgstr[2] "запісана %d байтаў" msgstr[2] "запісана %d байтаў"
#: ../src/daemon/gnuserv.c:455 #: src/daemon/gnuserv.c:456
msgid "Enable debugging" msgid "Enable debugging"
msgstr "Уключыць адладачны код" msgstr "Уключыць адладачны код"
#: ../src/daemon/gnuserv.c:457 #: src/daemon/gnuserv.c:458
msgid "Enable verbose output" msgid "Enable verbose output"
msgstr "Уключыць падрабязны вывад" msgstr "Уключыць падрабязны вывад"
#: ../src/daemon/gnuserv.c:459 #: src/daemon/gnuserv.c:460
msgid "Don't fork into background" msgid "Dont fork into background"
msgstr "Не адгаліноўваць фонавы працэс" msgstr "Не адгаліноўваць фонавы працэс"
#: ../src/daemon/gnuserv.c:461 #: src/daemon/gnuserv.c:462
msgid "Invoked from inetd" msgid "Invoked from inetd"
msgstr "Запушчаны з дапамогай inetd" msgstr "Запушчаны з дапамогай inetd"
#: ../src/daemon/gnuserv.c:495 #: src/daemon/gnuserv.c:498
#, c-format #, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n" msgid ""
"Run “%s --help” to see a full list of available command line options.\n"
msgstr "" msgstr ""
"Каб убачыць спіс наяўных опцый загаднага радка, запусціце \"%s --help\".\n" "Каб убачыць спіс наяўных опцый загаднага радка, запусціце \"%s --help"
"\".\n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 #: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27
msgid "Hangup" msgid "Hangup"
msgstr "Абрыў сувязі (HUP)" msgstr "Абрыў сувязі (HUP)"
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 #: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28
msgid "Interrupt" msgid "Interrupt"
msgstr "Перарыў (INT)" msgstr "Перарыў (INT)"
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 #: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29
msgid "Quit" msgid "Quit"
msgstr "Выхад (QUIT)" msgstr "Выхад (QUIT)"
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 #: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30
msgid "Illegal instruction" msgid "Illegal instruction"
msgstr "Забароненая інструкцыя (ILL)" msgstr "Забароненая інструкцыя (ILL)"
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31
msgid "Trace trap" msgid "Trace trap"
msgstr "Захоп трасіроўкі (TRAP)" msgstr "Захоп трасіроўкі (TRAP)"
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 #: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32
msgid "Abort" msgid "Abort"
msgstr "Перарванне (ABRT)" msgstr "Перарванне (ABRT)"
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 #: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33
msgid "EMT error" msgid "EMT error"
msgstr "Памылка (EMT)" msgstr "Памылка (EMT)"
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 #: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34
msgid "Floating-point exception" msgid "Floating-point exception"
msgstr "Выключэнне float (FPE)" msgstr "Выключэнне float (FPE)"
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 #: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35
msgid "Kill" msgid "Kill"
msgstr "Забойства (KILL)" msgstr "Забойства (KILL)"
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 #: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36
msgid "Bus error" msgid "Bus error"
msgstr "Памылка магістралі (BUS)" msgstr "Памылка магістралі (BUS)"
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 #: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37
msgid "Segmentation violation" msgid "Segmentation violation"
msgstr "Парушэнне сегментацыі (SEGV)" msgstr "Парушэнне сегментацыі (SEGV)"
#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 #: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38
msgid "Bad argument to system call" msgid "Bad argument to system call"
msgstr "Хібны аргумент сістэмнага выкліку (SYS)" msgstr "Хібны аргумент сістэмнага выкліку (SYS)"
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 #: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39
msgid "Broken pipe" msgid "Broken pipe"
msgstr "Зламаны канал (PIPE)" msgstr "Зламаны канал (PIPE)"
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 #: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40
msgid "Alarm clock" msgid "Alarm clock"
msgstr "Таймер (ALRM)" msgstr "Таймер (ALRM)"
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 #: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41
msgid "Termination" msgid "Termination"
msgstr "Знішчэнне (TERM)" msgstr "Знішчэнне (TERM)"
#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 #: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42
msgid "Urgent condition on socket" msgid "Urgent condition on socket"
msgstr "Тэрміновыя даныя на сокеце (URG)" msgstr "Тэрміновыя даныя на сокеце (URG)"
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 #: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43
msgid "Stop" msgid "Stop"
msgstr "Прыпыненне (STOP)" msgstr "Прыпыненне (STOP)"
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 #: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44
msgid "Keyboard stop" msgid "Keyboard stop"
msgstr "Прыпыненне з клавіятуры (TSTP)" msgstr "Прыпыненне з клавіятуры (TSTP)"
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 #: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45
msgid "Continue" msgid "Continue"
msgstr "Працяг працы (CONT)" msgstr "Працяг працы (CONT)"
#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 #: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46
msgid "Child status has changed" msgid "Child status has changed"
msgstr "Змена стану нашчадка (CHLD)" msgstr "Змена стану нашчадка (CHLD)"
#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47
msgid "Background read from tty" msgid "Background read from tty"
msgstr "Фонавае чытанне з tty (TTIN)" msgstr "Фонавае чытанне з tty (TTIN)"
#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 #: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48
msgid "Background write to tty" msgid "Background write to tty"
msgstr "Фонавы запіс у tty (TTOU)" msgstr "Фонавы запіс у tty (TTOU)"
#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 #: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49
msgid "I/O now possible" msgid "I/O now possible"
msgstr "Магчымасць уводу/вываду (IO)" msgstr "Магчымасць уводу/вываду (IO)"
#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 #: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded" msgid "CPU limit exceeded"
msgstr "Абмежаванне працэсара (XCPU)" msgstr "Абмежаванне працэсара (XCPU)"
#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 #: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51
msgid "File size limit exceeded" msgid "File size limit exceeded"
msgstr "Абмежаванне памеру файла (XFSZ)" msgstr "Абмежаванне памеру файла (XFSZ)"
#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 #: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock" msgid "Virtual alarm clock"
msgstr "Віртуальны таймер (VTALRM)" msgstr "Віртуальны таймер (VTALRM)"
#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53
msgid "Profiling alarm clock" msgid "Profiling alarm clock"
msgstr "Таймер прафілявання (PROF)" msgstr "Таймер прафілявання (PROF)"
#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 #: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54
msgid "Window size change" msgid "Window size change"
msgstr "Змена памераў акна (WINCH)" msgstr "Змена памераў акна (WINCH)"
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 #: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55
msgid "Information request" msgid "Information request"
msgstr "Запыт інфармацыі (INFO)" msgstr "Запыт інфармацыі (INFO)"
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 #: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56
msgid "User defined signal 1" msgid "User defined signal 1"
msgstr "Карыстальніцкі сігнал 1 (USR1)" msgstr "Карыстальніцкі сігнал 1 (USR1)"
#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 #: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57
msgid "User defined signal 2" msgid "User defined signal 2"
msgstr "Карыстальніцкі сігнал 2 (USR2)" msgstr "Карыстальніцкі сігнал 2 (USR2)"

View File

@@ -1,17 +1,18 @@
# Bulgarian translation for libgtop po-file # Bulgarian translation for libgtop po-file
# Copyright (C) 2002, 2004, 2005, 2007 Free Software Foundation, Inc. # Copyright (C) 2002, 2004, 2005, 2007, 2017 Free Software Foundation, Inc.
# Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>, 2002. # Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>, 2002.
# Yanko Kaneti <yaneti@declera.com>, 2002. # Yanko Kaneti <yaneti@declera.com>, 2002.
# Rostislav Raykov <zbrox@i-space.org>, 2004. # Rostislav Raykov <zbrox@i-space.org>, 2004.
# Vladimir Petkov <kaladan@gmail.com>, 2005. # Vladimir Petkov <kaladan@gmail.com>, 2005.
# Alexander Shopov <ash@kambanaria.org>, 2007. # Alexander Shopov <ash@kambanaria.org>, 2007, 2017.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: libgtop master\n" "Project-Id-Version: libgtop master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?"
"POT-Creation-Date: 2012-04-01 18:21+0300\n" "product=libgtop&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2012-04-01 18:20+0300\n" "POT-Creation-Date: 2017-09-02 09:32+0300\n"
"PO-Revision-Date: 2017-08-25 11:00+0200\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n" "Language: bg\n"
@@ -20,50 +21,50 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../lib/read.c:51 #: ../lib/read.c:49
#, c-format #, c-format
msgid "read %d byte" msgid "read %d byte"
msgid_plural "read %d bytes" msgid_plural "read %d bytes"
msgstr[0] "прочетен %d байт" msgstr[0] "прочетен %d байт"
msgstr[1] "прочетени %d байта" msgstr[1] "прочетени %d байта"
#: ../lib/read_data.c:51 #: ../lib/read_data.c:49
msgid "read data size" msgid "read data size"
msgstr "прочетен е размерът на данните" msgstr "прочетен е размерът на данните"
#: ../lib/read_data.c:70 #: ../lib/read_data.c:66
#, c-format #, c-format
msgid "read %lu byte of data" msgid "read %lu byte of data"
msgid_plural "read %lu bytes of data" msgid_plural "read %lu bytes of data"
msgstr[0] "прочетен %lu байт данни" msgstr[0] "прочетен %lu байт данни"
msgstr[1] "прочетени %lu байта данни" msgstr[1] "прочетени %lu байта данни"
#: ../lib/write.c:51 #: ../lib/write.c:49
#, c-format #, c-format
msgid "wrote %d byte" msgid "wrote %d byte"
msgid_plural "wrote %d bytes" msgid_plural "wrote %d bytes"
msgstr[0] "записан %d байт" msgstr[0] "записан %d байт"
msgstr[1] "записани %d байта" msgstr[1] "записани %d байта"
#: ../src/daemon/gnuserv.c:455 #: ../src/daemon/gnuserv.c:456
msgid "Enable debugging" msgid "Enable debugging"
msgstr "Включване на изчистване на грешките" msgstr "Включване на изчистване на грешките"
#: ../src/daemon/gnuserv.c:457 #: ../src/daemon/gnuserv.c:458
msgid "Enable verbose output" msgid "Enable verbose output"
msgstr "Включване на подробен изход" msgstr "Включване на подробен изход"
#: ../src/daemon/gnuserv.c:459 #: ../src/daemon/gnuserv.c:460
msgid "Don't fork into background" msgid "Dont fork into background"
msgstr "Не се поражда процес във фонов режим" msgstr "Да не се поражда процес във фонов режим"
#: ../src/daemon/gnuserv.c:461 #: ../src/daemon/gnuserv.c:462
msgid "Invoked from inetd" msgid "Invoked from inetd"
msgstr "Извикан от inetd" msgstr "Извикан от inetd"
#: ../src/daemon/gnuserv.c:495 #: ../src/daemon/gnuserv.c:498
#, c-format #, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n" msgid "Run %s --help to see a full list of available command line options.\n"
msgstr "Изпълнете „%s --help“ за пълния списък от опции за командата.\n" msgstr "Изпълнете „%s --help“ за пълния списък от опции за командата.\n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 #: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27

View File

@@ -15,6 +15,7 @@ msgstr ""
"PO-Revision-Date: 2010-01-21 16:02+0600\n" "PO-Revision-Date: 2010-01-21 16:02+0600\n"
"Last-Translator: Israt Jahan <israt@ankur.org.bd>\n" "Last-Translator: Israt Jahan <israt@ankur.org.bd>\n"
"Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\n" "Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\n"
"Language: bn\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View File

@@ -14,6 +14,7 @@ msgstr ""
"PO-Revision-Date: 2007-08-10 14:47+0530\n" "PO-Revision-Date: 2007-08-10 14:47+0530\n"
"Last-Translator: Runa Bhattacharjee <runabh@gmail.com>\n" "Last-Translator: Runa Bhattacharjee <runabh@gmail.com>\n"
"Language-Team: Bengali INDIA\n" "Language-Team: Bengali INDIA\n"
"Language: bn_IN\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

144
po/bs.po
View File

@@ -1,25 +1,22 @@
# translation of libgtop.HEAD.po to Bosnian
# This file is distributed under the same license as the libgtop package.
# Copyright (C) 2004 Free Software Foundation, Inc.
# Vedran Ljubovic <vljubovic@smartnet.ba>, 2004.
# Kemal Šanjta <gomez@lugzdk.ba>, 2004.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: libgtop.HEAD\n" "Project-Id-Version: libgtop.HEAD\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"POT-Creation-Date: 2005-09-25 18:15+0200\n" "product=libgtop&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2004-09-05 16:54+0200\n" "POT-Creation-Date: 2015-02-26 22:47+0000\n"
"Last-Translator: Kemal Šanjta <gomez@lugzdk.ba>\n" "PO-Revision-Date: 2013-01-30 21:42+0000\n"
"Last-Translator: Samir Ribić <Unknown>\n"
"Language-Team: Bosnian <lokal@linux.org.ba>\n" "Language-Team: Bosnian <lokal@linux.org.ba>\n"
"Language: bs\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: KBabel 1.3\n" "X-Launchpad-Export-Date: 2014-10-23 07:17+0000\n"
"X-Generator: Launchpad (build 17203)\n"
#: lib/read.c:65 #: ../lib/read.c:51
#, c-format #, c-format
msgid "read %d byte" msgid "read %d byte"
msgid_plural "read %d bytes" msgid_plural "read %d bytes"
@@ -27,188 +24,169 @@ msgstr[0] "čitaj %d bajt"
msgstr[1] "čitaj %d bajta" msgstr[1] "čitaj %d bajta"
msgstr[2] "čitaj %d bajtova" msgstr[2] "čitaj %d bajtova"
#: lib/read_data.c:53 #: ../lib/read_data.c:51
msgid "read data size" msgid "read data size"
msgstr "veličina pročitanih podataka" msgstr "veličina pročitanih podataka"
#: lib/read_data.c:72 #: ../lib/read_data.c:70
#, fuzzy, c-format #, c-format
msgid "read %lu byte of data" msgid "read %lu byte of data"
msgid_plural "read %lu bytes of data" msgid_plural "read %lu bytes of data"
msgstr[0] "čitaj %d bajt" msgstr[0] "pročitaj %lu bajt podataka"
msgstr[1] "čitaj %d bajta" msgstr[1] "pročitaj %lu bajta podataka"
msgstr[2] "čitaj %d bajtova" msgstr[2] "pročitano %lu bajtova podataka"
#: lib/write.c:52 #: ../lib/write.c:51
#, fuzzy, c-format #, c-format
msgid "wrote %d byte" msgid "wrote %d byte"
msgid_plural "wrote %d bytes" msgid_plural "wrote %d bytes"
msgstr[0] "piši %d bajt" msgstr[0] "upisan %d bajt"
msgstr[1] "piši %d bajta" msgstr[1] "upisana %d bajta"
msgstr[2] "piši %d bajtova" msgstr[2] "upisano %d bajtova"
#: src/daemon/gnuserv.c:460 #: ../src/daemon/gnuserv.c:455
msgid "Enable debugging" msgid "Enable debugging"
msgstr "Uključi debugging" msgstr "Uključi debugging"
#: src/daemon/gnuserv.c:460 #: ../src/daemon/gnuserv.c:457
msgid "DEBUG"
msgstr "DEBUG"
#: src/daemon/gnuserv.c:462
msgid "Enable verbose output" msgid "Enable verbose output"
msgstr "Uključi rječiti izlaz" msgstr "Uključi rječiti izlaz"
#: src/daemon/gnuserv.c:462 #: ../src/daemon/gnuserv.c:459
msgid "VERBOSE"
msgstr "VERBOSE"
#: src/daemon/gnuserv.c:464
msgid "Don't fork into background" msgid "Don't fork into background"
msgstr "Ne fork-uj u pozadinu" msgstr "Ne fork-uj u pozadinu"
#: src/daemon/gnuserv.c:464 #: ../src/daemon/gnuserv.c:461
msgid "NO-DAEMON"
msgstr "NO-DAEMON"
#: src/daemon/gnuserv.c:466
msgid "Invoked from inetd" msgid "Invoked from inetd"
msgstr "Pozvan iz inetd" msgstr "Pozvan iz inetd"
#: src/daemon/gnuserv.c:466 #: ../src/daemon/gnuserv.c:495
msgid "INETD"
msgstr "INETD"
#: src/daemon/gnuserv.c:500
#, c-format #, c-format
msgid "" msgid "Run '%s --help' to see a full list of available command line options.\n"
"Error on option %s: %s.\n"
"Run '%s --help' to see a full list of available command line options.\n"
msgstr "" msgstr ""
"Greška u opciji %s: %s.\n" "Pokrenite „%s --help“ da biste vidjeli cijelu listu dostupnih opcija "
"Pokrenite '%s --help' da vidite punu listu dostupnih opcija na komandnoj " "komandne linije.\n"
"liniji.\n"
#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 #: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup" msgid "Hangup"
msgstr "Prekidanje veze" msgstr "Prekidanje veze"
#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 #: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
msgid "Interrupt" msgid "Interrupt"
msgstr "Prekid" msgstr "Prekid"
#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 #: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit" msgid "Quit"
msgstr "Izađi" msgstr "Izađi"
#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 #: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction" msgid "Illegal instruction"
msgstr "Nedopuštena instrukcija" msgstr "Nedopuštena instrukcija"
#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 #: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
msgid "Trace trap" msgid "Trace trap"
msgstr "Prati trap" msgstr "Prati trap"
#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 #: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort" msgid "Abort"
msgstr "Odustani" msgstr "Odustani"
#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 #: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error" msgid "EMT error"
msgstr "EMT greška" msgstr "EMT greška"
#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 #: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
msgid "Floating-point exception" msgid "Floating-point exception"
msgstr "Floating-point exception" msgstr "Floating-point exception"
#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 #: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill" msgid "Kill"
msgstr "Ubij" msgstr "Ubij"
#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 #: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
msgid "Bus error" msgid "Bus error"
msgstr "Sabirnička greška" msgstr "Sabirnička greška"
#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 #: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation" msgid "Segmentation violation"
msgstr "Povreda segmenta" msgstr "Povreda segmenta"
#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 #: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38
msgid "Bad argument to system call" msgid "Bad argument to system call"
msgstr "Neispravan argument za sistemski poziv" msgstr "Neispravan argument za sistemski poziv"
#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 #: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe" msgid "Broken pipe"
msgstr "Prekinut kanal" msgstr "Prekinut kanal"
#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 #: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock" msgid "Alarm clock"
msgstr "Alarm" msgstr "Alarm"
#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 #: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
msgid "Termination" msgid "Termination"
msgstr "Završavanje" msgstr "Završavanje"
#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 #: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42
msgid "Urgent condition on socket" msgid "Urgent condition on socket"
msgstr "Hitno stanje na socketu" msgstr "Hitno stanje na socketu"
#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 #: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop" msgid "Stop"
msgstr "Zaustavi" msgstr "Zaustavi"
#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 #: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
msgid "Keyboard stop" msgid "Keyboard stop"
msgstr "Zaustavljanje tastature" msgstr "Zaustavljanje tastature"
#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 #: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
msgid "Continue" msgid "Continue"
msgstr "Nastavi" msgstr "Nastavi"
#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 #: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46
msgid "Child status has changed" msgid "Child status has changed"
msgstr "Status djeteta je promijenjen" msgstr "Status djeteta je promijenjen"
#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 #: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47
msgid "Background read from tty" msgid "Background read from tty"
msgstr "Pozadinsko čitanje iz tty-a" msgstr "Pozadinsko čitanje iz tty-a"
#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 #: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48
msgid "Background write to tty" msgid "Background write to tty"
msgstr "Pozadinsko pisanje na tty" msgstr "Pozadinsko pisanje na tty"
#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 #: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49
msgid "I/O now possible" msgid "I/O now possible"
msgstr "U/I je sada moguć" msgstr "U/I je sada moguć"
#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 #: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded" msgid "CPU limit exceeded"
msgstr "CPU granica iskorištena" msgstr "CPU granica iskorištena"
#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 #: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51
msgid "File size limit exceeded" msgid "File size limit exceeded"
msgstr "Prekoračeno ograničenje veličine spisa" msgstr "Prekoračeno ograničenje veličine spisa"
#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 #: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock" msgid "Virtual alarm clock"
msgstr "Virtualni alarmni sat" msgstr "Virtualni alarmni sat"
#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 #: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53
msgid "Profiling alarm clock" msgid "Profiling alarm clock"
msgstr "Profiliranje sata alarma" msgstr "Profiliranje sata alarma"
#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 #: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54
msgid "Window size change" msgid "Window size change"
msgstr "Promjena veličine prozora" msgstr "Promjena veličine prozora"
#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 #: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request" msgid "Information request"
msgstr "Zahtjev za informacijom" msgstr "Zahtjev za informacijom"
#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 #: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
msgid "User defined signal 1" msgid "User defined signal 1"
msgstr "Korisnički definisan signal 1" msgstr "Korisnički definisan signal 1"
#: sysdeps/osf1/siglist.c:58 sysdeps/sun4/siglist.c:58 #: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57
msgid "User defined signal 2" msgid "User defined signal 2"
msgstr "Korisnički definisan signal 2" msgstr "Korisnički definisan signal 2"

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