Compare commits

...

73 Commits

Author SHA1 Message Date
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
Robert Roth
b6eb0873e7 Revert "Increased major version"
This reverts commit f9e8ae8dfc.
2013-08-31 01:11:56 +03:00
Robert Roth
2c08229f04 Merge remote-tracking branch 'origin' into wip/libgtop-ng 2013-08-30 07:34:15 +03:00
Tristan Hill
753d9abb13 proclist, procarg and proctime gtkdoc updates
Added gtkdoc for proclist, procarg and proctime.

Author:    Tristan Hill <stan@saticed.me.uk>

https://bugzilla.gnome.org/show_bug.cgi?id=616082
2013-08-30 07:31:31 +03:00
Robert Roth
af7e9cd1b6 Increased buffersize to be able to hold larger cpuinfo files (bgo #681632) 2013-08-22 01:48:12 +03:00
Robert Roth
552ea7ec3a Fixed automake warning 2013-08-22 01:37:02 +03:00
Robert Roth
43f19912e3 Fixed automake warning 2013-08-22 01:34:34 +03:00
Robert Roth
16bb5c8075 Fixed automake warning 2013-08-22 01:30:29 +03:00
Robert Roth
bebcb377af Revert "Fixed missing cache-id warning" as it breaks jhbuild.
This reverts commit 4cffb2f094.
2013-08-22 01:11:06 +03:00
Robert Roth
4cffb2f094 Fixed missing cache-id warning 2013-08-21 15:43:10 +03:00
Robert Roth
5adaa90de3 Added files created by make to .gitignore 2013-08-20 23:26:29 +03:00
Robert Roth
f9e8ae8dfc Increased major version 2013-08-20 23:26:00 +03:00
Robert Roth
efeb24a96c Added gitignore 2013-08-20 22:49:02 +03:00
Robert Roth
3c4ddb5572 release: post-release bump to 2.28.6 2013-08-19 23:49:15 +03:00
Robert Roth
fec9e956e3 Release: 2.28.5 2013-08-19 23:46:16 +03:00
Robert Roth
2ee4fa70a5 Added new maintainer in DOAP file 2013-08-09 23:41:24 +03:00
Jasper Lievisse Adriaanse
7a4b2d91ad unbreak after swapin and swapout were removed from OpenBSD uvm statistics. 2013-05-29 20:59:23 +02:00
Jasper Lievisse Adriaanse
dc7eab4329 Adjust for the fact that regular users cannot read wchan anymore in OpenBSD 5.4. 2013-04-01 13:40:11 +02:00
Jasper Lievisse Adriaanse
a44392d948 Don't error out when running on a different release than built on
https://bugzilla.gnome.org/show_bug.cgi?id=653177
2013-04-01 13:35:24 +02:00
Victor Ibragimov
b013937b2c [l10n] Added Tadjik translation 2013-03-19 22:39:27 +01:00
Changwoo Ryu
4bded8fa91 Updated Korean translation 2013-03-19 02:23:50 +09:00
Duarte Loreto
f88a38aa52 Converted Portuguese translation to New Spelling (Novo AO) 2013-03-17 01:06:48 +00:00
Cole Robinson
37774dc02d fsusage: Fix fetching rootfs stats on Fedora 17
When fsusage scans mtab, it matches on the first entry, but since 'rootfs'
isn't of the expected format '/dev/<blah>' it bails out.

Match early on any rootfs entries and skip them.

Fixes #685897
2013-01-28 23:02:04 +01:00
TmTFx
4efe3721e7 Updated Friulian translation 2012-12-28 22:26:12 -02:00
Jasper Lievisse Adriaanse
31cbc3374d sysctl.h on OpenBSD no longer pulls in proc.h. 2012-12-18 22:47:09 +01:00
Timur Zhamakeev
c8a33802c2 Updated Kyrgyz translation 2012-09-27 12:16:13 +06:00
Rūdolfs Mazurs
a3ff5fb398 Updated Latvian translation 2012-09-24 15:36:41 +03:00
Piotr Drąg
8d5b3dd86a Updated Polish translation 2012-09-04 18:42:25 +02:00
Nilamdyuti Goswami
fecedf8c72 Implemented FUEL entries to Assamese translation 2012-08-28 00:32:40 +05:30
Nilamdyuti Goswami
183b7b0cf1 Assamese translation reviewed 2012-07-11 18:14:32 +05:30
Carles Ferrando
1523fae41e [l10n]Updated Catalan (Valencian) translation 2012-04-10 21:12:29 +02:00
Jordi Serratosa
a6d0d61175 [l10n] Fixes on Catalan translation 2012-04-10 21:12:28 +02:00
Jasper Lievisse Adriaanse
b0f4bee85e sync with openbsd to use the new vmmap memory allocator 2012-04-04 19:23:07 +02:00
Alexander Shopov
1d1d3fb907 Updated Bulgarian translation 2012-04-01 18:21:12 +03:00
Kjartan Maraas
bd363a9ca6 Updated Norwegian bokmål translation 2012-01-28 16:54:28 +01:00
Kjartan Maraas
46c1169ab1 Add missing #include <config.h> 2012-01-23 21:28:10 +01:00
Antoine Jacoutot
b11aa1517e OpenBSD: kinfo_proc2 -> kinfo_proc
The kinfo_proc2 interface has been removed from OpenBSD (it was
deprecated anyway), so use the correct replacement: kinfo_proc.

https://bugzilla.gnome.org/show_bug.cgi?id=667591
2012-01-22 12:47:49 +01:00
Nilamdyuti Goswami
aa7572abfd Updated Assamese Translations:bugzilla#659595 2011-09-24 16:37:35 +05:30
Nilamdyuti Goswami
17b03f33ab Updated Assamese translation 2011-09-22 19:42:27 +02:00
Jasper Lievisse Adriaanse
dd46d6a00e Don't bother with PIDs below 20 as they are highly likely to be kernel threads anyway. 2011-09-18 13:42:13 +02:00
Jasper Lievisse Adriaanse
7bd52fc397 Extend comment a bit regarding processes dying before we get to kvm_getproc2(). 2011-09-18 13:41:20 +02:00
Jiro Matsuzawa
ff7cbcbe61 Updated Japanese translation 2011-09-17 12:46:17 +09:00
Marc-Andre Laperle
d1d565aa60 Fix Darwin support
glibtop_get_proclist_p's signature didn't match the headers prototype.

https://bugzilla.gnome.org/show_bug.cgi?id=556904
2011-09-08 09:26:58 +02:00
Piotr Drąg
169b76a88f Fixed ky.po 2011-09-05 23:46:54 +02:00
Petr Salinger
0a265d05d4 Dont add extra libs for kfreebsd
The current version fails to build on GNU/kFreeBSD.
The problem is due to cleanup in GNU/kFreeBSD world

https://bugzilla.gnome.org/show_bug.cgi?id=601319
2011-08-30 18:05:33 +02:00
Jasper Lievisse Adriaanse
08ac661b19 Apply a fix from the OpenBSD backend by using the same type to store the
temporary amounts of swap, as is used in the struct that's eventually used
to export it.
2011-08-30 17:52:40 +02:00
Petr Salinger
1baa3fcc6a kFreeBSD 8.0 build fix
fixes a couple of checks for kFreeBSD 8.0.
https://bugzilla.gnome.org/show_bug.cgi?id=608518
2011-08-30 17:00:18 +02:00
Thomas Klausner
eaff15b741 NetBSD-5.99.21 lost struct uvmexp.swap{ins,outs}
In NetBSD-5.99.21, the uarea swap-out functionality was removed, which also
removed two members from struct uvmexp, swapins and swapouts.
2011-08-30 14:44:43 +02:00
Frédéric Péters
4612e7c7eb release: post-release bump to 2.28.5 2011-08-30 13:35:14 +02:00
78 changed files with 1735 additions and 1049 deletions

100
.gitignore vendored Normal file
View File

@@ -0,0 +1,100 @@
sysdeps/Makefile
sysdeps/Makefile.in
sysdeps/*/Makefile
sysdeps/*/Makefile.in
sysdeps/*/.deps
sysdeps/*/.libs
sysdeps/*/*.o
sysdeps/*/*.lo
sysdeps/*/*.la
src/*/Makefile
src/*/Makefile.in
src/*/.deps
src/Makefile
src/Makefile.in
stamp-h1
po/*.gmo
po/stamp-it
po/POTFILES
po/Makefile.in.in
po/Makefile.in
po/Makefile
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
Makefile
Makefile.in
aclocal.m4
autom4te.cache/
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
depcomp
doc/Makefile
doc/Makefile.in
doc/libgtop2.info
doc/mdate-sh
doc/reference/Makefile
doc/reference/Makefile.in
doc/reference/html/
doc/reference/libgtop-decl-list.txt
doc/reference/libgtop-decl.txt
doc/reference/tmpl/
doc/reference/version.xml
doc/reference/xml/
doc/stamp-vti
doc/texinfo.tex
doc/version.texi
examples/.deps/
examples/.libs/
examples/*.o
examples/Makefile
examples/Makefile.in
examples/affinity
examples/df
examples/first
examples/mem
examples/mountlist
examples/netlist
examples/netload
examples/openfiles
examples/pprint
examples/procargs
examples/proclist
examples/procmap
examples/second
examples/smp
examples/sysdeps
examples/timings
examples/wd
gtk-doc.make
include/Makefile
include/Makefile.in
include/glibtop/Makefile
include/glibtop/Makefile.in
install-sh
intltool-extract.in
intltool-merge.in
intltool-update.in

5
NEWS
View File

@@ -1,3 +1,8 @@
19 August 2013: Overview of changes in 2.28.5
=============================================
* Fix numerous bugs in the OpenBSD backend.
* Updated translations.
30 August 2011: Overview of changes in 2.28.4
=============================================
* Fix numerous bugs in the FreeBSD backend.

View File

@@ -4,11 +4,11 @@ dnl
m4_define([libgtop_major_version], [2])
m4_define([libgtop_minor_version], [28])
m4_define([libgtop_micro_version], [4])
m4_define([libgtop_micro_version], [6])
m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version])
dnl increment if the interface has additions, changes, removals.
m4_define([libgtop_current], [9])
m4_define([libgtop_current], [10])
dnl increment any time the source changes; set to
dnl 0 if you increment CURRENT
@@ -17,7 +17,7 @@ m4_define([libgtop_revision], [0])
dnl increment if any interfaces have been added; set to 0
dnl if any interfaces have been removed. removal has
dnl precedence over adding, so set to 0 if both happened.
m4_define([libgtop_age], [2])
m4_define([libgtop_age], [0])
# Increase each time you change the client/server protocol.
m4_define([libgtop_server_version], [5])

View File

@@ -219,17 +219,8 @@ glibtop_set_parameter_l
<INCLUDE>glibtop/procargs.h</INCLUDE>
<SECTION>
<FILE>procargs</FILE>
GLIBTOP_PROC_ARGS_SIZE
GLIBTOP_MAX_PROC_ARGS
glibtop_proc_args
glibtop_get_proc_args_l
glibtop_get_proc_args
glibtop_get_proc_args_r
glibtop_init_proc_args_p
glibtop_get_proc_args_p
glibtop_init_proc_args_s
glibtop_get_proc_args_s
glibtop_get_proc_argv_l
glibtop_get_proc_argv
</SECTION>
@@ -420,26 +411,8 @@ glibtop_get_proc_uid_s
<INCLUDE>glibtop/proctime.h</INCLUDE>
<SECTION>
<FILE>proctime</FILE>
GLIBTOP_PROC_TIME_START_TIME
GLIBTOP_PROC_TIME_RTIME
GLIBTOP_PROC_TIME_UTIME
GLIBTOP_PROC_TIME_STIME
GLIBTOP_PROC_TIME_CUTIME
GLIBTOP_PROC_TIME_CSTIME
GLIBTOP_PROC_TIME_TIMEOUT
GLIBTOP_PROC_TIME_IT_REAL_VALUE
GLIBTOP_PROC_TIME_FREQUENCY
GLIBTOP_PROC_TIME_XCPU_UTIME
GLIBTOP_PROC_TIME_XCPU_STIME
GLIBTOP_MAX_PROC_TIME
glibtop_proc_time
glibtop_get_proc_time
glibtop_get_proc_time_r
glibtop_get_proc_time_l
glibtop_init_proc_time_p
glibtop_get_proc_time_p
glibtop_init_proc_time_s
glibtop_get_proc_time_s
</SECTION>
<INCLUDE>glibtop/signal.h</INCLUDE>
@@ -515,10 +488,6 @@ glibtop_send_version
<INCLUDE>glibtop/proclist.h</INCLUDE>
<SECTION>
<FILE>proclist</FILE>
GLIBTOP_PROCLIST_NUMBER
GLIBTOP_PROCLIST_TOTAL
GLIBTOP_PROCLIST_SIZE
GLIBTOP_MAX_PROCLIST
GLIBTOP_KERN_PROC_ALL
GLIBTOP_KERN_PROC_PID
GLIBTOP_KERN_PROC_PGRP
@@ -532,12 +501,6 @@ GLIBTOP_EXCLUDE_SYSTEM
GLIBTOP_EXCLUDE_NOTTY
glibtop_proclist
glibtop_get_proclist
glibtop_get_proclist_r
glibtop_get_proclist_l
glibtop_init_proclist_p
glibtop_get_proclist_p
glibtop_init_proclist_s
glibtop_get_proclist_s
</SECTION>
<INCLUDE>glibtop/sem_limits.h</INCLUDE>

View File

@@ -1,12 +1,6 @@
## Process this file with automake to produce Makefile.in
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
INCLUDES = @INCLUDES@
DEFS = @DEFS@
LDFLAGS = $(LIBGTOP_EXTRA_LIBS)
AM_LDFLAGS = $(LIBGTOP_EXTRA_LIBS)
noinst_PROGRAMS = first second pprint procargs df netlist \
mountlist procmap netload sysdeps timings \

View File

@@ -3,6 +3,7 @@
#endif
#include <glibtop.h>
#include <glibtop/sysinfo.h>
#include <glibtop/union.h>
@@ -29,9 +30,41 @@ for(i = 0; i < (SIZE - 1); ++i) printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \
printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \
} while(0)
#define PPRINT_ENTRY_ARRAY(ARRAY, SIZE) do { \
size_t i; \
printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \
(unsigned long) sizeof buf->ARRAY, 0,\
(unsigned long) G_N_ELEMENTS(buf->ARRAY)); \
for(i = 0; i < SIZE; ++i) { \
printf ("[ ");\
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)
#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, "%#llx");
//PPRINT(ncpu, "%llu");
PPRINT_ENTRY_ARRAY(cpuinfo, 4);
FOOTER_PPRINT();
}
static void pprint_get_cpu(void)
{
@@ -291,6 +324,7 @@ int main()
{
glibtop_init();
pprint_get_sysinfo();
pprint_get_cpu();
pprint_get_fsusage("/");

View File

@@ -54,7 +54,7 @@ G_BEGIN_DECLS
Yes we are :)
Nobody should really be using more than 32 processors.
*/
#define GLIBTOP_NCPU 32
#define GLIBTOP_NCPU 1024
typedef struct _glibtop_cpu glibtop_cpu;

View File

@@ -36,22 +36,89 @@ G_BEGIN_DECLS
/* You can use the folowing constants as the `which' member of
* glibtop_get_proclist () to specify which processes to fetch. */
#define GLIBTOP_KERN_PROC_ALL 0 /* all processes */
/**
* GLIBTOP_KERN_PROC_ALL:
*
* Return information about all processes
**/
#define GLIBTOP_KERN_PROC_ALL 0
/**
* GLIBTOP_KERN_PROC_PID:
*
* Return all processes with the pid which is passed in @arg. You can use this to find out whether some process still exists.
**/
#define GLIBTOP_KERN_PROC_PID 1
/**
* GLIBTOP_KERN_PROC_PGRP:
*
* Return all processes in the process group passed in @arg.
**/
#define GLIBTOP_KERN_PROC_PGRP 2
/**
* GLIBTOP_KERN_PROC_SESSION:
*
* Return all processes in the session passed in @arg.
**/
#define GLIBTOP_KERN_PROC_SESSION 3
/**
* GLIBTOP_KERN_PROC_TTY:
*
* Return all processes which have the controlling tty passed in @arg
* (which is interpreted as the device number).
**/
#define GLIBTOP_KERN_PROC_TTY 4
/**
* GLIBTOP_KERN_PROC_UID:
*
* Return all processes with the effective uid passed in @arg.
**/
#define GLIBTOP_KERN_PROC_UID 5
/**
* GLIBTOP_KERN_PROC_RUID:
*
* Return all processes with the real uid passed in @arg.
**/
#define GLIBTOP_KERN_PROC_RUID 6
#define GLIBTOP_KERN_PROC_MASK 15
/**
* GLIBTOP_EXCLUDE_IDLE:
*
* Exclude idle processes.
**/
#define GLIBTOP_EXCLUDE_IDLE 0x1000
/**
* GLIBTOP_EXCLUDE_SYSTEM:
*
* Exclude system (on most UNIXes root's) processes.
**/
#define GLIBTOP_EXCLUDE_SYSTEM 0x2000
/**
* GLIBTOP_EXCLUDE_NOTTY:
*
* Exclude processes without a controlling terminal.
**/
#define GLIBTOP_EXCLUDE_NOTTY 0x4000
typedef struct _glibtop_proclist glibtop_proclist;
/**
* glibtop_proclist:
* @number: Number of entries in the returned list.
* @total: Total size of the returned list (this equals @number * @size).
* @size: Size of a single entry in the returned list
* (this equals <type>sizeof(unsigned)</type>).
*/
struct _glibtop_proclist
{
guint64 flags;

View File

@@ -46,26 +46,50 @@ typedef struct _glibtop_proc_time glibtop_proc_time;
/* Time section */
/**
* glibtop_proc_time:
* @start_time: Start time of process in seconds since the epoch.
* @rtime: Real time accumulated by process (should be @utime + @stime).
* @utime: User-mode CPU time accumulated by process.
* @stime: Kernel-mode CPU time accumulated by process.
* @cutime: Cumulative utime of process and reaped children.
* @cstime: Cumulative stime of process and reaped children.
* @timeout: The time (in jiffies) of the processs next timeout.
* @it_real_value: The time (in jiffies) before the next <type>SIGALRM</type>
* is sent to the process due to an interval timer.
* @frequency: Tick frequency.
* @xcpu_utime: SMP user-mode CPU time accumulated by process.
* @xcpu_stime: SMP kernel-mode CPU time accumulated by process
*
* Process time data filled by glibtop_get_proc_time().
*
* Under Linux the @start_time value may be wrong due to the information
* available from the kernel.
*
* The Linux kernel defines <type>INITIAL_JIFFIES</type> which implies a time
* shift. Because <type>INITIAL_JIFFIES</type> is not user-space defined,
* we cannot use it to compute an accurate @start_time. On Linux 2.6,
* <type>INITIAL_JIFFIES</type> is 300 so @start_time is
* always 3s different from the real start time of the given process. You
* may also get shift results if your system clock is not synchronised
* with your hardware clock. See <command>man hwclock</command>.
*/
struct _glibtop_proc_time
{
/*< private >*/
guint64 flags;
guint64 start_time; /* start time of process --
* seconds since 1-1-70 */
guint64 rtime; /* real time accumulated by process */
guint64 utime; /* user-mode CPU time accumulated by process */
guint64 stime; /* kernel-mode CPU time accumulated by process */
guint64 cutime; /* cumulative utime of process and
* reaped children */
guint64 cstime; /* cumulative stime of process and
* reaped children */
guint64 timeout; /* The time (in jiffies) of the process's
* next timeout */
guint64 it_real_value; /* The time (in jiffies) before the
* next SIGALRM is sent to the process
* due to an interval timer. */
guint64 frequency; /* Tick frequency. */
guint64 xcpu_utime [GLIBTOP_NCPU]; /* utime and stime for all CPUs on */
guint64 xcpu_stime [GLIBTOP_NCPU]; /* SMP machines. */
/*< public >*/
guint64 start_time;
guint64 rtime;
guint64 utime;
guint64 stime;
guint64 cutime;
guint64 cstime;
guint64 timeout;
guint64 it_real_value;
guint64 frequency;
guint64 xcpu_utime [GLIBTOP_NCPU];
guint64 xcpu_stime [GLIBTOP_NCPU];
};

View File

@@ -79,6 +79,8 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
libgtop_sysdeps_dir=openbsd
libgtop_use_machine_h=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'
;;
freebsd*|kfreebsd*)
@@ -155,30 +157,13 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
case "$host_os" in
*bsd*)
case "$host_os" in
*kfreebsd*)
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS="-lkvm -lfreebsd -lbsd", KVM_LIBS=, -lfreebsd -lbsd);;
*)
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS=-lkvm, KVM_LIBS=);;
esac
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS=-lkvm, KVM_LIBS=)
AC_SUBST(KVM_LIBS)
case "$host_os" in
kfreebsd*)
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)
AC_CHECK_HEADERS(net/if_var.h,,, [
#include <net/if.h>
#include <sys/types.h>
#include <sys/socket.h>])
AC_MSG_CHECKING([for I4B])
AC_TRY_COMPILE([
#include <sys/types.h>
@@ -243,10 +228,10 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
fi
AC_MSG_CHECKING(what we need to define to get struct msginfo)
AC_CACHE_VAL(msginfo_needs,
msginfo_needs=
AC_CACHE_VAL(msginfo_cv_needs,
msginfo_cv_needs=
for def in nothing KERNEL _KERNEL; do
AC_COMPILE_IFELSE([#define $def
AC_COMPILE_IFELSE([AC_LANG_SOURCE([#define $def
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
@@ -258,23 +243,23 @@ main (void)
struct msginfo mi;
mi.msgmax = 0;
return 0;
}],
}])],
[
msginfo_needs=$def
if test ${msginfo_needs} = KERNEL; then
msginfo_cv_needs=$def
if test ${msginfo_cv_needs} = KERNEL; then
AC_DEFINE(STRUCT_MSGINFO_NEEDS_KERNEL, 1,
[Define to 1 if we need to define KERNEL to get 'struct msginfo'])
elif test ${msginfo_needs} = _KERNEL; then
elif test ${msginfo_cv_needs} = _KERNEL; then
AC_DEFINE(STRUCT_MSGINFO_NEEDS__KERNEL, 1,
[Define to 1 if we need to define _KERNEL to get 'struct msginfo'])
fi
]
)
test -n "${msginfo_needs}" && break
test -n "${msginfo_cv_needs}" && break
done
)
AC_MSG_RESULT($msginfo_needs)
if test -z "${msginfo_needs}"; then
AC_MSG_RESULT($msginfo_cv_needs)
if test -z "${msginfo_cv_needs}"; then
AC_MSG_ERROR([Could not find the definition of 'struct msginfo'])
fi
;;

View File

@@ -17,5 +17,14 @@
<gnome:userid>bdejean</gnome:userid>
</foaf:Person>
</maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Robert Roth</foaf:name>
<foaf:mbox rdf:resource="mailto:robert.roth.off@gmail.com" />
<gnome:userid>robertroth</gnome:userid>
</foaf:Person>
</maintainer>
</Project>

View File

@@ -28,6 +28,7 @@ eu
fa
fi
fr
fur
ga
gl
gu
@@ -75,6 +76,7 @@ sr@latin
sv
ta
te
tg
th
tr
ug

View File

@@ -2,68 +2,68 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Amitakhya Phukan <aphukan@fedoraproject.org>, 2009.
# Nilamdyuti Goswami <ngoswami@redhat.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: as\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
"cgi?product=libgtop&component=general\n"
"POT-Creation-Date: 2009-03-01 23:08+0000\n"
"PO-Revision-Date: 2009-03-16 11:01+0530\n"
"Last-Translator: Amitakhya Phukan <aphukan@fedoraproject.org>\n"
"Language-Team: Assamese <fedora-trans-as@redhat.com>\n"
"POT-Creation-Date: 2010-11-17 08:15+0000\n"
"PO-Revision-Date: 2011-08-17 16:13+0530\n"
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
"Language-Team: as_IN <kde-i18n-doc@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 0.3\n"
"X-Generator: Lokalize 1.0\n"
#: ../lib/read.c:51
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "%d বাইট পা হৈছে"
msgstr[1] "%d বাইট পা হৈছে"
msgstr[0] "%d বাইট পা হ"
msgstr[1] "%d বাইটসমূহা হ"
#: ../lib/read_data.c:51
msgid "read data size"
msgstr "তথ্যমাপা হ'ব"
msgstr "তথ্যৰ আকাৰা হ"
#: ../lib/read_data.c:70
#, c-format
msgid "read %lu byte of data"
msgid_plural "read %lu bytes of data"
msgstr[0] "%lu বাইট তথ্যা হৈছে"
msgstr[1] "%lu বাইট তথ্যা হৈছে"
msgstr[0] "তথ্যৰ %lu বাইট পা হ"
msgstr[1] "তথ্যৰ %lu বাইটসমূহ া হ"
#: ../lib/write.c:51
#, c-format
msgid "wrote %d byte"
msgid_plural "wrote %d bytes"
msgstr[0] "%d বাইট লখা হৈছে"
msgstr[1] "%d বাইট লখা হৈছে"
msgstr[0] "%d বাইট লিখা হ"
msgstr[1] "%d বাইট লিখা হ"
#: ../src/daemon/gnuserv.c:455
msgid "Enable debugging"
msgstr "ডিবাগ ব্যবস্থা সক্ৰিয় কৰক"
msgstr "ডিবাগিং সামৰ্থবান কৰক"
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "বিস্তাৰিত (ভাৰ্বোস) আউটপুট সক্ৰিয় কৰা হ'ব"
msgstr "ভাৰ্বো আউটপুট সামৰ্থবান কৰক"
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
msgstr "পটভূমিত fork কৰা হ'ব না"
msgstr "পটভূমিত fork কৰিব"
#: ../src/daemon/gnuserv.c:461
msgid "Invoked from inetd"
msgstr "inetd ৰ পৰা আৰম্ভ কৰা হৈছে"
msgstr "inetd ৰ পৰা আৱাহন কৰা হৈছে"
#: ../src/daemon/gnuserv.c:495, c-format
#: ../src/daemon/gnuserv.c:495
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
"কমান্ড-লাইন ৰ পৰা ব্যবহাৰযোগ্য সমস্ত উপলব্ধ বিকল্পেৰ তালিকা দেখতে '%s "
"--help' "
"ব্যবহাৰ কৰক।\n"
"উপলব্ধ কমান্ড শাৰী বিকল্পসমূহৰ এটা সম্পূৰ্ণ তালিকা চাবলে '%s --help' চলাওক। \n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"
@@ -71,11 +71,11 @@ msgstr "বন্ধ কৰক"
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
msgid "Interrupt"
msgstr "ইন্টাৰাপ্ট উৎপন্ন কৰা হ'ব"
msgstr "বাধা দিয়ক"
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "প্ৰস্থান"
msgstr "প্ৰস্থান কৰক"
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"
@@ -83,19 +83,19 @@ msgstr "অবৈধ নিৰ্দেশ"
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
msgid "Trace trap"
msgstr "ট্ৰে ট্ৰ্যাপ"
msgstr "ট্ৰেইচ ট্ৰ্যাপ"
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "অস্বাভাবিক প্ৰস্থান"
msgstr "বাদ দিয়ক"
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
msgstr "EMT সংক্ৰান্ত সমস্যা"
msgstr "EMT ত্ৰুটি"
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
msgid "Floating-point exception"
msgstr "ফ্লোটিং-পয়েন্ট এক্সেপশন"
msgstr "দশমিক-বিন্দু ব্যতিক্ৰম"
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
@@ -103,23 +103,23 @@ msgstr "Kill কৰক"
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
msgid "Bus error"
msgstr "বাস সংক্ৰান্ত সমস্যা"
msgstr "বাচ ত্ৰুটি"
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation"
msgstr "সেগমেন্টেশন সংক্ৰান্ত সমস্যা"
msgstr "বিভাজন অমান্যকৰণ"
#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38
msgid "Bad argument to system call"
msgstr "িস্টেম-কল'এ ভুল আৰ্গুমেন্ট প্ৰেৰিত হৈছে"
msgstr "িস্টেম কললে বেয়া তৰ্ক"
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
msgstr "ক্ষতিগ্ৰস্ত পাইপ"
msgstr "ভঙা পাইপ"
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock"
msgstr "অ্যালাৰ্ম ঘড়ি"
msgstr "লাৰ্ম ঘড়ি"
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
msgid "Termination"
@@ -127,7 +127,7 @@ msgstr "সমাপ্তি"
#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42
msgid "Urgent condition on socket"
msgstr "কেট গুৰুতৰ অবস্থা"
msgstr "কেট গুৰুতৰ অবস্থা"
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop"
@@ -135,57 +135,57 @@ msgstr "বন্ধ কৰক"
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
msgid "Keyboard stop"
msgstr "কি-বোৰ্ড বন্ধ কৰক"
msgstr "কিৰ্ড বন্ধ কৰক"
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
msgid "Continue"
msgstr "অগ্ৰসৰ হওক"
msgstr "চলাই যাওক"
#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46
msgid "Child status has changed"
msgstr "চাইল্ডৰ অবস্থা পৰিবৰ্তিত হৈছে"
msgstr "চাইল্ডৰ অবস্থা সলনি হৈছে"
#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47
msgid "Background read from tty"
msgstr "পটভূমিতে tty'ৰ পৰা পড়া হচ্ছে"
msgstr "tty ৰ পৰা পটভূমি পঢ়া"
#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48
msgid "Background write to tty"
msgstr "পটভূমিতে tty'এখা হচ্ছে"
msgstr "tty ৰ পৰা পটভূমি লিখা"
#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49
msgid "I/O now possible"
msgstr "I/O বৰ্তমানে কৰা সম্ভব"
msgstr "I/O বৰ্তমান সম্ভব"
#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded"
msgstr "CPU'ৰ সীমা অতিক্ৰান্ত"
msgstr "CPU ৰ সীমা পাৰ হৈছে"
#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51
msgid "File size limit exceeded"
msgstr "ফাইলমাপেৰ সীমা অতিক্ৰান্ত"
msgstr "ফাইলৰ আকাৰৰ সীমা পাৰ হৈছে"
#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock"
msgstr "ভাৰ্চুয়াল অ্যালাৰ্ম ঘড়ি"
msgstr "ভাৰ্ছুৱেল এলাৰ্ম ঘড়ি"
#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53
msgid "Profiling alarm clock"
msgstr "অ্যালাৰ্ম ঘড়ি প্ৰোফাইল কৰা হ'ব"
msgstr "লাৰ্ম ঘড়ি আলেখ্যন কৰা হৈছে"
#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54
msgid "Window size change"
msgstr "উইন্ডোৰ মাপে পৰিবৰ্তন"
msgstr "উইন্ডোৰ আকাৰত পৰিবৰ্তন"
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "তথ্যৰ অনুৰোধ"
msgstr "তথ্যৰ অনুৰোধ"
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
msgid "User defined signal 1"
msgstr "ব্যবহাৰকাৰী নিৰ্ধাৰিত সিগনাল ১"
msgstr "ব্যবহাৰকাৰী নিৰ্ধাৰিত সংকেত ১"
#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57
msgid "User defined signal 2"
msgstr "ব্যবহাৰকাৰী নিৰ্ধাৰিত সিগনাল ২"
msgstr "ব্যবহাৰকাৰী নিৰ্ধাৰিত সংকেত ২"

View File

@@ -3,21 +3,22 @@
# Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>, 2002.
# Yanko Kaneti <yaneti@declera.com>, 2002.
# Rostislav Raykov <zbrox@i-space.org>, 2004.
# Vladimir Petkov <vpetkov@i-space.org>, 2005.
# Alexander Shopov <ash@contact.bg>, 2007.
# Vladimir Petkov <kaladan@gmail.com>, 2005.
# Alexander Shopov <ash@kambanaria.org>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop trunk\n"
"Project-Id-Version: libgtop master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-09-18 10:43+0300\n"
"PO-Revision-Date: 2007-09-18 10:43+0300\n"
"Last-Translator: Alexander Shopov <ash@contact.bg>\n"
"POT-Creation-Date: 2012-04-01 18:21+0300\n"
"PO-Revision-Date: 2012-04-01 18:20+0300\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\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
#, c-format
@@ -44,23 +45,23 @@ msgid_plural "wrote %d bytes"
msgstr[0] "записан %d байт"
msgstr[1] "записани %d байта"
#: ../src/daemon/gnuserv.c:458
#: ../src/daemon/gnuserv.c:455
msgid "Enable debugging"
msgstr "Включване на изчистване на грешките"
#: ../src/daemon/gnuserv.c:460
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "Включване на подробен изход"
#: ../src/daemon/gnuserv.c:462
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
msgstr "Не се поражда процес във фонов режим"
#: ../src/daemon/gnuserv.c:464
#: ../src/daemon/gnuserv.c:461
msgid "Invoked from inetd"
msgstr "Извикан от inetd"
#: ../src/daemon/gnuserv.c:498
#: ../src/daemon/gnuserv.c:495
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr "Изпълнете „%s --help“ за пълния списък от опции за командата.\n"

View File

@@ -2,12 +2,14 @@
# Copyright © 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# Softcatalà <gnome@softcatala.net>, 2000, 2001, 2002.
# Jordi Mallach <jordi@sindominio.net>, 2002, 2003, 2004, 2005.
# Jordi Serratosa <jordis@softcatala.cat>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop 2.9.91\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-09-16 22:33+0200\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=libgtop&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-04-04 20:06+0000\n"
"PO-Revision-Date: 2011-04-04 22:04+0200\n"
"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -41,23 +43,23 @@ msgid_plural "wrote %d bytes"
msgstr[0] "s'ha escrit %d octet"
msgstr[1] "s'ha escrit %d octets"
#: ../src/daemon/gnuserv.c:458
#: ../src/daemon/gnuserv.c:455
msgid "Enable debugging"
msgstr "Activa la depuració"
#: ../src/daemon/gnuserv.c:460
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "Activa la sortida detallada"
#: ../src/daemon/gnuserv.c:462
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
msgstr "No bifurquis al segon pla"
#: ../src/daemon/gnuserv.c:464
#: ../src/daemon/gnuserv.c:461
msgid "Invoked from inetd"
msgstr "Ha estat cridat des d'inetd"
#: ../src/daemon/gnuserv.c:498
#: ../src/daemon/gnuserv.c:495
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
@@ -178,7 +180,7 @@ msgstr "Canvi de la mida de la finestra"
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "Petició d'informació"
msgstr "Sol·licitud d'informació"
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
msgid "User defined signal 1"

View File

@@ -2,16 +2,17 @@
# Copyright © 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# Softcatalà <gnome@softcatala.net>, 2000, 2001, 2002.
# Jordi Mallach <jordi@sindominio.net>, 2002, 2003, 2004, 2005.
# Jordi Serratosa <jordis@softcatala.cat>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop 2.9.91\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-10-29 21:31+0100\n"
"PO-Revision-Date: 2005-09-04 01:16+0200\n"
"POT-Creation-Date: 2012-04-10 21:12+0200\n"
"PO-Revision-Date: 2011-04-04 22:04+0200\n"
"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n"
"Language: ca-XV\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -48,7 +49,7 @@ msgstr "Activa la depuració"
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "Activa la eixida detallada"
msgstr "Activa l'eixida detallada"
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
@@ -62,7 +63,7 @@ msgstr "Ha estat cridat des d'inetd"
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
"Executeu «%s --help» per a veure una llista completa de les opcions "
"Executeu «%s --help» per veure una llista completa de les opcions "
"disponibles de la línia d'ordes.\n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
@@ -87,7 +88,7 @@ msgstr "Captura traça"
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "Avorta"
msgstr "Interromp"
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
@@ -179,7 +180,7 @@ msgstr "Canvi de la mida de la finestra"
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "Petició d'informació"
msgstr "Sol·licitud d'informació"
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
msgid "User defined signal 1"

191
po/fur.po Normal file
View File

@@ -0,0 +1,191 @@
# Friulian translation for libgtop.
# Copyright (C) 2012 libgtop's COPYRIGHT HOLDER
# This file is distributed under the same license as the libgtop package.
# TmTFx <f.t.public@gmail.com>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=libgtop&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-12-18 21:48+0000\n"
"PO-Revision-Date: 2012-12-28 13:37+0100\n"
"Last-Translator: TmTFx <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../lib/read.c:51
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "let %d byte"
msgstr[1] "lets %d bytes"
#: ../lib/read_data.c:51
msgid "read data size"
msgstr "Dimension dai dâts lets"
#: ../lib/read_data.c:70
#, c-format
msgid "read %lu byte of data"
msgid_plural "read %lu bytes of data"
msgstr[0] "let %lu byte di dâts"
msgstr[1] "lets %lu bytes di dâts"
#: ../lib/write.c:51
#, c-format
msgid "wrote %d byte"
msgid_plural "wrote %d bytes"
msgstr[0] "scrit %d byte"
msgstr[1] "scrits %d bytes"
#: ../src/daemon/gnuserv.c:455
msgid "Enable debugging"
msgstr "Abilite debug"
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "Abilite jessude verbôs"
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
msgstr "No stâ fâ fork in background"
#: ../src/daemon/gnuserv.c:461
msgid "Invoked from inetd"
msgstr "Clamât di inetd"
#: ../src/daemon/gnuserv.c:495
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
"Fâs partî '%s --help' par viodi une liste complete dis opzions par la rie di "
"comant.\n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"
msgstr "Hangup"
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
msgid "Interrupt"
msgstr "Interrupt"
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "Quit"
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"
msgstr "Istruzion no legâl"
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
msgid "Trace trap"
msgstr "Trace trap"
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "Abort"
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
msgstr "EMT error"
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
msgid "Floating-point exception"
msgstr "Floating-point exception"
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
msgstr "Kill"
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
msgid "Bus error"
msgstr "Bus error"
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation"
msgstr "Segmentation violation"
#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38
msgid "Bad argument to system call"
msgstr "Bad argument to system call"
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
msgstr "Broken pipe"
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock"
msgstr "Alarm clock"
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
msgid "Termination"
msgstr "Termination"
#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42
msgid "Urgent condition on socket"
msgstr "Urgent condition on socket"
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop"
msgstr "Stop"
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
msgid "Keyboard stop"
msgstr "Keyboard stop"
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
msgid "Continue"
msgstr "Continue"
#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46
msgid "Child status has changed"
msgstr "Il stât dal fî al è cambiât"
#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47
msgid "Background read from tty"
msgstr "Leture in background di tty"
#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48
msgid "Background write to tty"
msgstr "Scriture in background su tty"
#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49
msgid "I/O now possible"
msgstr "I/O cumò pussibil"
#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded"
msgstr "Limit CPU superât"
#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51
msgid "File size limit exceeded"
msgstr "Limit di dimension di file superât"
#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock"
msgstr "Virtual alarm clock"
#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53
msgid "Profiling alarm clock"
msgstr "Profiling alarm clock"
#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54
msgid "Window size change"
msgstr "Window size change"
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "Information request"
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
msgid "User defined signal 1"
msgstr "Segnâl definît da l'utent 1"
#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57
msgid "User defined signal 2"
msgstr "Segnâl definît da l'utent 2"

View File

@@ -10,10 +10,10 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtop master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=libgtop&component=general\n"
"POT-Creation-Date: 2010-06-27 13:25+0000\n"
"PO-Revision-Date: 2009-10-04 17:38+0900\n"
"Last-Translator: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>\n"
"product=libgtop&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-09-08 07:27+0000\n"
"PO-Revision-Date: 2011-09-11 07:40+0900\n"
"Last-Translator: Jiro Matsuzawa <jmatsuzawa@src.gnome.org>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -183,8 +183,8 @@ msgstr "情報リクエスト"
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
msgid "User defined signal 1"
msgstr "ユーザ定義のシグナル1"
msgstr "ユーザ定義のシグナル1"
#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57
msgid "User defined signal 2"
msgstr "ユーザ定義のシグナル2"
msgstr "ユーザ定義のシグナル2"

109
po/kn.po
View File

@@ -1,21 +1,23 @@
# translation of libgtop.HEAD.po to Kannada
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Shankar Prasad <svenkate@redhat.com>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: libgtop.HEAD\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop&component=general\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product="
"libgtop&component=general\n"
"POT-Creation-Date: 2009-03-01 23:08+0000\n"
"PO-Revision-Date: 2009-03-14 20:01+0530\n"
"PO-Revision-Date: 2009-03-14 10:31-0400\n"
"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
"Language-Team: Kannada <en@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.11.4\n"
"Language: kn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Zanata 3.2.3\n"
#: ../lib/read.c:51
#, c-format
@@ -61,129 +63,160 @@ msgstr "inetd ಇಂದ ರದ್ದು ಮಾಡಲಾದ"
#: ../src/daemon/gnuserv.c:495
#, c-format
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
msgid "Hangup"
msgstr "ನೇತಾಡು"
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
#: ../sysdeps/osf1/siglist.c:28
#: ../sysdeps/sun4/siglist.c:28
msgid "Interrupt"
msgstr "ತಡೆ"
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
#: ../sysdeps/osf1/siglist.c:29
#: ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "ತ್ಯಜಿಸು"
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
#: ../sysdeps/osf1/siglist.c:30
#: ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"
msgstr "ಅನಧೀಕೃತ ಸೂಚನೆ"
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
#: ../sysdeps/osf1/siglist.c:31
#: ../sysdeps/sun4/siglist.c:31
msgid "Trace trap"
msgstr "ಜಾಡಿನ ಟ್ರಾಪ್"
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
#: ../sysdeps/osf1/siglist.c:32
#: ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "ಸ್ಥಗಿತಗೊಳಿಸು"
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
#: ../sysdeps/osf1/siglist.c:33
#: ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
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"
msgstr "ತೇಲುವ-ಬಿಂದುವಿನ ವಿನಾಯಿತಿ"
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
#: ../sysdeps/osf1/siglist.c:35
#: ../sysdeps/sun4/siglist.c:35
msgid "Kill"
msgstr "ಕೊಲ್ಲು"
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
#: ../sysdeps/osf1/siglist.c:36
#: ../sysdeps/sun4/siglist.c:36
msgid "Bus error"
msgstr "ಬಸ್ ದೋಷ"
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
#: ../sysdeps/osf1/siglist.c:37
#: ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation"
msgstr "ಸೆಗ್ಮೆಂಟೇಶನ್ ಉಲ್ಲಂಘನೆ"
#: ../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"
msgstr "ವ್ಯವಸ್ಥೆಯ ಕೋಶಕ್ಕೆ ಸರಿಯಲ್ಲದ ಆರ್ಗ್ಯುಮೆಂಟ್"
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
#: ../sysdeps/osf1/siglist.c:39
#: ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
msgstr "ತುಂಡಾದ ಪೈಪ್"
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
#: ../sysdeps/osf1/siglist.c:40
#: ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock"
msgstr "ಅಲಾರಮ್ ಗಡಿಯಾರ"
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
#: ../sysdeps/osf1/siglist.c:41
#: ../sysdeps/sun4/siglist.c:41
msgid "Termination"
msgstr "ಅಂತ್ಯಗೊಳಿಕೆ"
#: ../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"
msgstr "ಸಾಕೆಟ್‌ನಲ್ಲಿ ತುರ್ತು ಪರಿಸ್ಥಿತಿ"
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
#: ../sysdeps/osf1/siglist.c:43
#: ../sysdeps/sun4/siglist.c:43
msgid "Stop"
msgstr "ನಿಲ್ಲಿಸು"
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
#: ../sysdeps/osf1/siglist.c:44
#: ../sysdeps/sun4/siglist.c:44
msgid "Keyboard stop"
msgstr "ಕೀಲಿಮಣೆ ನಿಲುಗಡೆ"
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
#: ../sysdeps/osf1/siglist.c:45
#: ../sysdeps/sun4/siglist.c:45
msgid "Continue"
msgstr "ಮುಂದುವರೆ"
#: ../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"
msgstr "ಚೈಲ್ಡಿನ ಸ್ಥಿತಿ ಬದಲಾಗಿದೆ"
#: ../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"
msgstr "tty ಇಂದ ಓದಲಾದ ಹಿನ್ನಲೆ"
#: ../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"
msgstr "tty ಗೆ ಹಿನ್ನಲೆ ಬರೆಯುವಿಕೆ"
#: ../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"
msgstr "I/O ಈಗ ಸಾಧ್ಯವಿದೆ"
#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50
#: ../sysdeps/osf1/siglist.c:50
#: ../sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded"
msgstr "CPU ಮಿತಿಯನ್ನು ಮೀರಲಾಗಿದೆ"
#: ../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"
msgstr "ಕಡತದ ಗಾತ್ರದ ಮಿತಿಯನ್ನು ಮೀರಲಾಗಿದೆ"
#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52
#: ../sysdeps/osf1/siglist.c:52
#: ../sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock"
msgstr "ವರ್ಚುವಲ್ ಅಲಾರಮ್ ಗಡಿಯಾರ"
#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53
#: ../sysdeps/osf1/siglist.c:53
#: ../sysdeps/sun4/siglist.c:53
msgid "Profiling alarm clock"
msgstr "ಪ್ರೊಫೈಲಿಂಗ್ ಅಲಾರಮ್ ಗಡಿಯಾರ"
#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54
#: ../sysdeps/osf1/siglist.c:54
#: ../sysdeps/sun4/siglist.c:54
msgid "Window size change"
msgstr "ವಿಂಡೋ ಗಾತ್ರದ ಬದಲಾವಣೆ"
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
#: ../sysdeps/osf1/siglist.c:55
#: ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "ಮಾಹಿತಿಯ ಮನವಿ"
#: ../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"
msgstr "ಬಳಕೆದಾರ ಸೂಚಿತ ಸಂಕೇತ ೧"
#: ../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"
msgstr "ಬಳಕೆದಾರ ಸೂಚಿತ ಸಂಕೇತ ೨"

View File

@@ -1,15 +1,15 @@
# libgtop ko.po
# Sung-Hyun Nam <namsh@lgic.co.kr>, 1998
# Changwoo Ryu <cwryu@debian.org>, 2002, 2004, 2005, 2008.
# Changwoo Ryu <cwryu@debian.org>, 2002, 2004, 2005, 2008, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop&component=general\n"
"POT-Creation-Date: 2008-02-26 19:13+0900\n"
"PO-Revision-Date: 2009-01-29 16:18+0900\n"
"PO-Revision-Date: 2013-03-19 02:23+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr-hackers@lists.kldp.net>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -51,7 +51,7 @@ msgstr "백그라운드로 실행 안 함"
#: ../src/daemon/gnuserv.c:464
msgid "Invoked from inetd"
msgstr "inetd에 의해 불림"
msgstr "inetd가 호출"
#: ../src/daemon/gnuserv.c:498
#, c-format
@@ -181,15 +181,3 @@ msgstr "사용자 정의 신호 1"
#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57
msgid "User defined signal 2"
msgstr "사용자 정의 신호 2"
#~ msgid "DEBUG"
#~ msgstr "디버그"
#~ msgid "VERBOSE"
#~ msgstr "VERBOSE"
#~ msgid "NO-DAEMON"
#~ msgstr "NO-DAEMON"
#~ msgid "INETD"
#~ msgstr "INETD"

142
po/ky.po
View File

@@ -1,210 +1,192 @@
# translation of ky.po to Kitghiz
# translation of libgtop to Kyrgyz
# Kirghiz translation of libgtop.
# Copyright (C) 1999, 2005 Free Software Foundation, Inc.
# This file is distributed under the same license as the libgtop package.
# Timur Jamakeev <ztimur@gmail.com>, 2005.
#
# Timur Zhamakeev <ztimur@gmail.com>, 2005, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: ky\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-17 17:07+0500\n"
"PO-Revision-Date: 2005-11-17 17:42+0500\n"
"Last-Translator: Timur Jamakeev <ztimur@gmail.com>\n"
"Language-Team: Kitghiz\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=libgtop&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2011-09-05 21:47+0000\n"
"PO-Revision-Date: 2012-09-27 12:10+0600\n"
"Last-Translator: Timur Zhamakeev <ztimur@gmail.com>\n"
"Language-Team: Kirghiz <gnome-i18n@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ky\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: KBabel 1.9.1\n"
"X-Generator: Lokalize 1.4\n"
#: ../lib/read.c:65
#: ../lib/read.c:51
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "%d байт окулду"
msgstr[1] ""
#: ../lib/read_data.c:53
#: ../lib/read_data.c:51
msgid "read data size"
msgstr "окулган берилиштердин көлөмү"
msgstr "окулган маалымат көлөмү"
#: ../lib/read_data.c:72
#: ../lib/read_data.c:70
#, c-format
msgid "read %lu byte of data"
msgid_plural "read %lu bytes of data"
msgstr[0] "%lu байт берилиш окулду"
msgstr[1] ""
msgstr[0] "%lu байт маалымат окулду"
#: ../lib/write.c:52
#: ../lib/write.c:51
#, c-format
msgid "wrote %d byte"
msgid_plural "wrote %d bytes"
msgstr[0] "%d байт жазылды"
msgstr[1] ""
#: ../src/daemon/gnuserv.c:460
#: ../src/daemon/gnuserv.c:455
msgid "Enable debugging"
msgstr "Дебагды иштетүү"
msgstr "Ката издөөнү иштетүү"
#: ../src/daemon/gnuserv.c:460
msgid "DEBUG"
msgstr "ДЕБАГ"
#: ../src/daemon/gnuserv.c:462
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "Кеңири чыгаруу"
#: ../src/daemon/gnuserv.c:462
msgid "VERBOSE"
msgstr "КЕҢИРИ"
#: ../src/daemon/gnuserv.c:464
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
msgstr "Фондук режимге бөлбөө"
#: ../src/daemon/gnuserv.c:464
msgid "NO-DAEMON"
msgstr "ДЕМОНУ-ЖОК"
#: ../src/daemon/gnuserv.c:466
#: ../src/daemon/gnuserv.c:461
msgid "Invoked from inetd"
msgstr "inetd аркылуу чакырылган"
#: ../src/daemon/gnuserv.c:466
msgid "INETD"
msgstr "INETD"
#: ../src/daemon/gnuserv.c:500
#: ../src/daemon/gnuserv.c:495
#, c-format
msgid ""
"Error on option %s: %s.\n"
"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\" параметринде ката байкалды: %s\n"
"Командалык саптын мүмкүн болгон бардык параметрлерин көрүү үчүн \"%s --help\" командасын колдонуңуз.\n"
"Командалык саптын мүмкүн болгон бардык параметрлерин көрүү үчүн \"%s --help\" "
"командасын колдонуңуз.\n"
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"
msgstr "Үзүү"
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
msgid "Interrupt"
msgstr "Убактылуу токтотуу"
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "Чыгуу"
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"
msgstr "Туура эмес инструкция"
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
msgid "Trace trap"
msgstr "Трассировканы кармоо"
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "Токтотуу"
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
msgstr "EMT катасы"
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
msgid "Floating-point exception"
msgstr ""
msgstr "Анык сан катасы"
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
msgstr "Өлтүрүү"
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
msgid "Bus error"
msgstr "Шина катасы"
#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation"
msgstr "Сегментациянын бузулушу"
#: ../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"
msgstr "Системалык чакыруудагы туура эмес аргумент"
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
msgstr "Бузулган канал"
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock"
msgstr "Таймер"
#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
msgid "Termination"
msgstr "Аяктоо"
#: ../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"
msgstr "Көңүл бурууну талап кылган сокет"
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop"
msgstr "Стоп"
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
msgid "Keyboard stop"
msgstr "Алиптергичти токтотуу"
#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
msgid "Continue"
msgstr "Улантуу"
#: ../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"
msgstr "Тукумдун абалы өзгөрүлдү"
msgstr "Туунду процесстин абалы өзгөрүлдү"
#: ../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"
msgstr "tty-ден фондук режимде окуу"
#: ../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"
msgstr "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"
msgstr "Киргизүү/Чыгаруу эми мүмкүн"
#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51
#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded"
msgstr "CPU пределинен ашты"
#: ../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"
msgstr "Файл көлөмүнүн пределинен ашты"
msgstr "Файл көлөмү пределинен ашты"
#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53
#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock"
msgstr "Виртуалдык таймер"
#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54
#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53
msgid "Profiling alarm clock"
msgstr "Профилдик таймер"
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54
msgid "Window size change"
msgstr "Терезе өлчөмүн өзгөртүү"
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "Маалымат талап кылуу"
#: ../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"
msgstr "Колдонуучу сигналы 1"
msgstr "Колдонуучу аныктаган сигналы 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"
msgstr "Колдонуучу сигналы 2"
msgstr "Колдонуучу аныктаган сигналы 2"

View File

@@ -5,21 +5,22 @@
# Peteris Krisjanis <peteris.krisjanis@os.lv>, 2002.
# Raivis Dejus <orvils@gmail.com>, 2006, 2009.
# Peteris Krisjanis <pecisk@gmail.com>, 2010.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: lv\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
"cgi?product=libgtop&component=general\n"
"POT-Creation-Date: 2009-11-12 10:53+0000\n"
"PO-Revision-Date: 2010-04-26 11:18+0300\n"
"Last-Translator: Peteris Krisjanis <pecisk@gmail.com>\n"
"Language-Team: Latviešu <lata-l10n@googlegroups.com>\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-09-24 15:33+0300\n"
"PO-Revision-Date: 2012-09-24 15:36+0300\n"
"Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
"X-Generator: Lokalize 1.0\n"
"X-Generator: Lokalize 1.4\n"
#: ../lib/read.c:51
#, c-format
@@ -51,15 +52,15 @@ msgstr[2] "ierakstīti %d baitu"
#: ../src/daemon/gnuserv.c:455
msgid "Enable debugging"
msgstr "Aktivizēt atkļūdošanu"
msgstr "Aktivēt atkļūdošanu"
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "Aktivizēt vārdisku izvadi"
msgstr "Aktivēt detalizētu izvadi"
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
msgstr "Nesadalīties fona"
msgstr "Nesadalīties fonā"
#: ../src/daemon/gnuserv.c:461
msgid "Invoked from inetd"
@@ -69,7 +70,7 @@ msgstr "Izsaukts no inetd"
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
"Palaidiet '%s --help' lai redzētu pilnu pieejamo komandrindas iespēju "
"Palaidiet %s --help”, lai redzētu pilnu pieejamo komandrindas opciju "
"sarakstu.\n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
@@ -94,7 +95,7 @@ msgstr "Izsekot slazdu"
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "Pātraukt"
msgstr "Pārtraukt"
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
@@ -102,7 +103,7 @@ msgstr "EMT kļūda"
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
msgid "Floating-point exception"
msgstr "Peldošā punkta izņēmums"
msgstr "Peldošā komata izņēmums"
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
@@ -110,7 +111,7 @@ msgstr "Nobeigt"
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
msgid "Bus error"
msgstr "Šinas kļūda"
msgstr "Kopnes kļūda"
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation"
@@ -118,7 +119,7 @@ msgstr "Segmentācijas pārkāpums"
#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38
msgid "Bad argument to system call"
msgstr "Slikts arguments sistēmas izsaukumam"
msgstr "Slikts parametrs sistēmas izsaukumam"
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
@@ -134,7 +135,7 @@ msgstr "Pārtraukšana"
#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42
msgid "Urgent condition on socket"
msgstr "Steidzama situācija kontaktā"
msgstr "Steidzama situācija ligzdā"
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop"
@@ -170,7 +171,7 @@ msgstr "CPU limits pārsniegts"
#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51
msgid "File size limit exceeded"
msgstr "Faila izmēra limits pārsniegts"
msgstr "Datnes izmēra limits pārsniegts"
#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock"

View File

@@ -1,15 +1,16 @@
# Norwegian translation for Libgtop (bokmål dialect)
# Norwegian bokmål translation for libgtop
# Copyright (C) 1998-2004 Free Software Foundation, Inc.
# Kjartan Maraas <kmaraas@gnome.org>, 1998-2007.
# Kjartan Maraas <kmaraas@gnome.org>, 1998-2012.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop 2.21.x\n"
"Project-Id-Version: libgtop 2.28.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-06-23 11:52+0200\n"
"PO-Revision-Date: 2007-06-23 11:52+0200\n"
"POT-Creation-Date: 2012-01-28 16:53+0100\n"
"PO-Revision-Date: 2012-01-28 16:54+0100\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
@@ -40,26 +41,28 @@ msgid_plural "wrote %d bytes"
msgstr[0] "skrev %d byte"
msgstr[1] "skrev %d bytes"
#: ../src/daemon/gnuserv.c:458
#: ../src/daemon/gnuserv.c:455
msgid "Enable debugging"
msgstr "Slå på avlusing"
#: ../src/daemon/gnuserv.c:460
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "Slå på utfyllende utskrift"
#: ../src/daemon/gnuserv.c:462
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
msgstr "Ikke forgren til bakgrunnen"
#: ../src/daemon/gnuserv.c:464
#: ../src/daemon/gnuserv.c:461
msgid "Invoked from inetd"
msgstr "Kalt fra inetd"
#: ../src/daemon/gnuserv.c:498
#: ../src/daemon/gnuserv.c:495
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr "Kjør '%s --help' for å se en full liste av tilgjengelige kommandolinjeflagg.\n"
msgstr ""
"Kjør '%s --help' for å se en full liste av tilgjengelige "
"kommandolinjeflagg.\n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"

View File

@@ -4,14 +4,19 @@
# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
# gnomepl@aviary.pl
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Zbigniew Chyla <chyla@alice.ci.pwr.wroc.pl>, 1999-2002.
# Artur Flinta <aflinta@at.kernel.pl>, 2004-2007.
# Piotr Drąg <piotrdrag@gmail.com>, 2010-2012.
# Aviary.pl <gnomepl@aviary.pl>, 2010-2012.
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-02-25 12:52+0100\n"
"PO-Revision-Date: 2010-02-25 12:47+0100\n"
"Last-Translator: Tomasz Dominikowski <dominikowski@gmail.com>\n"
"POT-Creation-Date: 2012-09-04 18:37+0200\n"
"PO-Revision-Date: 2012-09-04 18:42+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -68,7 +73,8 @@ msgstr "Wywołanie przez inetd"
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
"Proszę wykonać \"%s --help\", aby wyświetlić pełną listę dostępnych opcji.\n"
"Polecenie \"%s --help\" wyświetli pełną listę dostępnych opcji wiersza "
"poleceń.\n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"
@@ -164,7 +170,7 @@ msgstr "Wejście/wyjście jest teraz dostępne"
#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded"
msgstr "Przekroczenie ograniczenia procesora"
msgstr "Przekroczono ograniczenie procesora"
#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51
msgid "File size limit exceeded"

View File

@@ -1,16 +1,17 @@
# libgtop's Portuguese Translation
# Copyright © 2001, 2002, 2003, 2004, 2005, 2007 libgtop
# Distributed under the same licence as the libgtop package
# Duarte Loreto <happyguy_pt@hotmail.com>, 2001, 2002, 2003, 2004, 2005, 2007.
#
# libgtop's Portuguese Translation
# Copyright © 2001, 2002, 2003, 2004, 2005, 2007, 2013 libgtop
# Distributed under the same licence as the libgtop package
# Duarte Loreto <happyguy_pt@hotmail.com>, 2001, 2002, 2003, 2004, 2005, 2007, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: 2.20\n"
"Project-Id-Version: 3.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-09-08 01:57+0100\n"
"PO-Revision-Date: 2007-09-08 02:00+0000\n"
"POT-Creation-Date: 2013-03-17 01:06+0000\n"
"PO-Revision-Date: 2013-03-17 01:10+0000\n"
"Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n"
"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -41,23 +42,23 @@ msgid_plural "wrote %d bytes"
msgstr[0] "%d byte escrito"
msgstr[1] "%d bytes escritos"
#: ../src/daemon/gnuserv.c:458
#: ../src/daemon/gnuserv.c:455
msgid "Enable debugging"
msgstr "Activar depuração"
msgstr "Ativar depuração"
#: ../src/daemon/gnuserv.c:460
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "Activar resultados extensos"
msgstr "Ativar resultados extensos"
#: ../src/daemon/gnuserv.c:462
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
msgstr "Não efectuar fork em fundo"
msgstr "Não efetuar fork em fundo"
#: ../src/daemon/gnuserv.c:464
#: ../src/daemon/gnuserv.c:461
msgid "Invoked from inetd"
msgstr "Invocado pelo inetd"
#: ../src/daemon/gnuserv.c:498
#: ../src/daemon/gnuserv.c:495
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
@@ -94,7 +95,7 @@ msgstr "Erro EMT"
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
msgid "Floating-point exception"
msgstr "Excepção de vírgula flutuante"
msgstr "Exceção de vírgula flutuante"
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
@@ -170,7 +171,7 @@ msgstr "Alarme virtual"
#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53
msgid "Profiling alarm clock"
msgstr "Alarme de optimização"
msgstr "Alarme de otimização"
#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54
msgid "Window size change"

192
po/tg.po Normal file
View File

@@ -0,0 +1,192 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Victor Ibragimov <victor.ibragimov@gmail.com>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: Tajik Gnome\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=libgtop&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-12-19 14:39+0000\n"
"PO-Revision-Date: 2013-12-20 13:36+0500\n"
"Last-Translator: Victor Ibragimov <victor.ibragimov@gmail.com>\n"
"Language-Team: \n"
"Language: tg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=1;\n"
"X-Generator: Poedit 1.6.3\n"
#: ../lib/read.c:51
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "%d байти хондашуда"
msgstr[1] "%d байти хондашуда"
#: ../lib/read_data.c:51
msgid "read data size"
msgstr "андозаи иттилооти хондашуда"
#: ../lib/read_data.c:70
#, c-format
msgid "read %lu byte of data"
msgid_plural "read %lu bytes of data"
msgstr[0] "%lu байти иттилооти хондашуда"
msgstr[1] "%lu байти иттилооти хондашуда"
#: ../lib/write.c:51
#, c-format
msgid "wrote %d byte"
msgid_plural "wrote %d bytes"
msgstr[0] "%d байти сабтшуда"
msgstr[1] "%d байти сабтшуда"
#: ../src/daemon/gnuserv.c:455
msgid "Enable debugging"
msgstr "Фаъол кардани ислоҳи хатоҳо"
#: ../src/daemon/gnuserv.c:457
msgid "Enable verbose output"
msgstr "Фаъол кардани барориши ботафсил"
#: ../src/daemon/gnuserv.c:459
msgid "Don't fork into background"
msgstr "Нагузаштан ба пасзамина"
#: ../src/daemon/gnuserv.c:461
msgid "Invoked from inetd"
msgstr "Дархостшуда аз inetd"
#: ../src/daemon/gnuserv.c:495
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
"Барои намоиш додани рӯйхати ҳамаи фармонҳои имконпазир '%s --help'-ро иҷро "
"намоед.\n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"
msgstr "Боздоштан"
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
msgid "Interrupt"
msgstr "Қатъ"
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "Баромад"
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"
msgstr "Дастури нодуруст"
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
msgid "Trace trap"
msgstr "Таҳлил"
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "Қатъ кардан"
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
msgstr "Хатои EMT"
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
msgid "Floating-point exception"
msgstr "Истиснои нуқтаи тағйирёбанда"
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
msgstr "Қатъ кардан"
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
msgid "Bus error"
msgstr "Хатои гузаргоҳ"
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation"
msgstr "Вайронии қисматбандӣ"
#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38
msgid "Bad argument to system call"
msgstr "Аргументи нокифоя барои дархости системавӣ"
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
msgstr "Вуруди вайроншуда"
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock"
msgstr "Соати зангдор"
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
msgid "Termination"
msgstr "Анҷоми кор"
#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42
msgid "Urgent condition on socket"
msgstr "Шарти таъҷилӣ дар бастагоҳ"
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop"
msgstr "Истодан"
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
msgid "Keyboard stop"
msgstr "Қатъи клавиатура"
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
msgid "Continue"
msgstr "Идома додан"
#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46
msgid "Child status has changed"
msgstr "Вазъияти иловагӣ тағйир ёфт"
#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47
msgid "Background read from tty"
msgstr "Пасзаминаи хониш аз tty"
#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48
msgid "Background write to tty"
msgstr "Пасзаминаи сабт ба tty"
#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49
msgid "I/O now possible"
msgstr "I/O ҳоло имконпазир аст"
#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded"
msgstr "Аз ҳудуди CPU афзуд"
#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51
msgid "File size limit exceeded"
msgstr "Аз ҳудуди андозаи файл афзуд"
#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock"
msgstr "Соати зангдори виртуалӣ"
#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53
msgid "Profiling alarm clock"
msgstr "Соати зангдори профил"
#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54
msgid "Window size change"
msgstr "Тағйири андозаи равзана"
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "Дархости иттилоот"
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
msgid "User defined signal 1"
msgstr "Сигнали интихобшудаи 1"
#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57
msgid "User defined signal 2"
msgstr "Сигнали интихобшудаи 2"

View File

@@ -12,8 +12,6 @@
## Martin <martin@home-of-linux.org>
##
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
INCLUDES = $(LIBGTOP_CFLAGS) @INCLUDES@ -D_BSD \
-DLIBGTOP_COMPILE_SYSTEM="\"`uname -s`\"" \
-DLIBGTOP_COMPILE_RELEASE="\"`uname -r`\"" \

View File

@@ -90,11 +90,13 @@ main(int argc, char *argv[])
if (strcmp (uts.sysname, LIBGTOP_COMPILE_SYSTEM) ||
strcmp (uts.release, LIBGTOP_COMPILE_RELEASE) ||
strcmp (uts.machine, LIBGTOP_COMPILE_MACHINE)) {
fprintf (stderr, "Can only run on %s %s %s\n",
fprintf (stderr, "This libgtop was compiled on %s %s %s\n",
LIBGTOP_COMPILE_SYSTEM,
LIBGTOP_COMPILE_RELEASE,
LIBGTOP_COMPILE_MACHINE);
_exit (1);
fprintf (stderr, "If you see strange problems caused by it,\n");
fprintf (stderr, "you should recompile libgtop and dependent "
"applications.\n");
}
#endif

View File

@@ -153,7 +153,7 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
#endif
int nswap, i;
int avail = 0, inuse = 0;
guint64 avail = 0, inuse = 0;
#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
struct uvmexp uvmexp;
@@ -195,29 +195,32 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
buf->pagein = vmm.v_swappgsin - swappgsin;
buf->pageout = vmm.v_swappgsout - swappgsout;
#else
#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
#elif defined(__NetBSD__) && (__NetBSD_Version__ >= 599002100)
/* no uvmexp.swap{ins,outs} */
buf->pagein = 0;
buf->pageout = 0;
#elif defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
buf->pagein = uvmexp.swapins - swappgsin;
buf->pageout = uvmexp.swapouts - swappgsout;
#else
buf->pagein = vmm.v_swpin - swappgsin;
buf->pageout = vmm.v_swpout - swappgsout;
#endif
#endif
}
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
swappgsin = vmm.v_swappgsin;
swappgsout = vmm.v_swappgsout;
#else
#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
#elif defined(__NetBSD__) && (__NetBSD_Version__ >= 599002100)
swappgsin = 0;
swappgsout = 0;
#elif defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
swappgsin = uvmexp.swapins;
swappgsout = uvmexp.swapouts;
#else
swappgsin = vmm.v_swpin;
swappgsout = vmm.v_swpout;
#endif
#endif
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)

View File

@@ -134,19 +134,19 @@ glibtop_get_proc_uid(glibtop_proc_uid *buf, pid_t pid)
}
/**
* SECTION:proctime
* @title: Process Time
* @short_description: Get process time information
* @stability: Stable
*/
/**
* glibtop_get_proc_time:
* @buf:
* @pid: Process id to get the user and tty information
* @buf: Returned process time information - see #glibtop_proc_time.
* @pid: Process id
*
* Please note that under Linux, #start_time value may be strange.
* Linux kernel defines <type>INITIAL_JIFFIES</type> which implies a time
* shift. Because <type>INITIAL_JIFFIES</type> is not user-space defined,
* we cannot use it to compute accurate @code{start_time}. On Linux2.6,
* <type>INITIAL_JIFFIES</type> is 300 so <type>start_time</type> is
* always 3s different from real start time of the given process. You
* may also get shift results if your system clock is not synchronised
* with your hardware clock. See <command>man hwclock</command>.
* Get process time information.
*/
void
glibtop_get_proc_time(glibtop_proc_time *buf, pid_t pid)
@@ -197,6 +197,26 @@ glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid)
}
/**
* SECTION:procargs
* @title: Process Arguments
* @short_description: Get process command line arguments
* @see_also: #libgtop-Process-List
* @stability: Stable
*/
/**
* glibtop_get_proc_args:
* @buf: Struct with @size of returned string.
* @pid: Process id
* @max_len: Maximum length of string to return (use zero to get all arguments).
*
* Get process command line arguments.
*
* Returns: @pid's command line arguments separated by null bytes; the length of
* this string is returned in the @buf size field. You are required to free
* the string when done.
*/
char *
glibtop_get_proc_args(glibtop_proc_args *buf, pid_t pid, unsigned max_len)
{
@@ -204,6 +224,18 @@ glibtop_get_proc_args(glibtop_proc_args *buf, pid_t pid, unsigned max_len)
}
/**
* glibtop_get_proc_argv
* @buf: Struct with @size of combined returned arguments.
* @pid: Process id
* @max_len: Maximum length of all arguments combined (use zero to get all arguments).
*
* Get process command line arguments.
*
* Returns: A NULL-terminated array of strings with all arguments of process pid
* (up to @max_len characters). Remember to <function>g_strfreev</function>
* the returned array to avoid a memory leak.
*/
char **
glibtop_get_proc_argv(glibtop_proc_args *buf, pid_t pid, unsigned max_len)
{
@@ -211,6 +243,23 @@ glibtop_get_proc_argv(glibtop_proc_args *buf, pid_t pid, unsigned max_len)
}
/**
* SECTION:proclist
* @title: Process List
* @short_description: List running processes
* @stability: Stable
*/
/**
* glibtop_get_proclist
* @buf: Extra return information, see #glibtop_proclist.
* @which: Criteria for processes in returned list. See the <type>GLIBTOP_KERN_PROC_*</type> and <type>GLIBTOP_EXCLUDE_*</type> constants.
* @arg: Extra arguments applied to @which. Only <type>GLIBTOP_KERN_PROC_*</type> constants take arguments, see each constant definition for particular @arg description.
*
* Returns: A list of running processes or <type>NULL</type> on error. The
* returned list is allocated using <function>g_malloc</function> and must be
* freed using <function>g_free</function> to avoid a memory leak.
*/
pid_t*
glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg)
{

View File

@@ -43,7 +43,7 @@ _glibtop_init_proclist_p (glibtop *server)
pid_t *
glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
int64_t which, int64_t arg)
gint64 which, gint64 arg)
{
unsigned count, total, i;
pid_t *pids_chain;

View File

@@ -11,7 +11,7 @@ libgtop_sysdeps_2_0_la_SOURCES = nosuid.c siglist.c sysinfo.c shm_limits.c \
libgtop_sysdeps_2_0_la_LDFLAGS = $(LT_VERSION_INFO)
libgtop_sysdeps_suid_2_0_la_LIBADD = $(KVM_LIBS) $(EXTRA_SYSDEPS_LIBS)
libgtop_sysdeps_suid_2_0_la_LIBADD = $(KVM_LIBS)
libgtop_sysdeps_suid_2_0_la_SOURCES = suid_open.c close.c swap.c \
proclist.c procstate.c procuid.c \
proctime.c procmem.c procsignal.c \

View File

@@ -11,7 +11,7 @@
#include <sys/param.h>
#include <sys/mount.h>
#include <sys/statvfs.h>
#if __FreeBSD_version >= 600000 || defined(__FreeBSD_kernel__)
#if 0
#include <libgeom.h>
#include <sys/resource.h>
#include <devstat.h>
@@ -32,7 +32,7 @@ _glibtop_get_fsusage_read_write (glibtop *server, glibtop_fsusage *buf, const ch
{
int result;
struct statfs sfs;
#if __FreeBSD_version >= 600000 || defined(__FreeBSD_kernel__)
#if 0
struct devstat *ds;
void *sc;
struct timespec ts;
@@ -49,7 +49,7 @@ _glibtop_get_fsusage_read_write (glibtop *server, glibtop_fsusage *buf, const ch
glibtop_warn_io_r (server, "statfs");
return;
}
#if __FreeBSD_version >= 600000 || defined(__FreeBSD_kernel__)
#if 0
ld[0] = 0;
ld[1] = 0;
result = geom_gettree (&gmp);

View File

@@ -43,10 +43,6 @@ glibtop_open_s (glibtop *server, const char *program_name,
server->real_ncpu = ncpus - 1;
server->ncpu = MIN(GLIBTOP_NCPU - 1, server->real_ncpu);
#if defined(__FreeBSD_kernel__)
server->os_version_code = __FreeBSD_kernel_version;
#else
server->os_version_code = __FreeBSD_version;
#endif
}

View File

@@ -38,11 +38,8 @@
#include <sys/vnode.h>
#undef _KVM_VNODE
#define _KERNEL
#include <sys/pipe.h>
#include <sys/conf.h>
#undef _KERNEL
#if __FreeBSD_version >= 800038
#if (__FreeBSD_version >= 800038) || (__FreeBSD_kernel_version >= 800038)
#define _WANT_FILE
#include <sys/file.h>
#undef _WANT_FILE
@@ -113,7 +110,7 @@ _glibtop_sysdeps_freebsd_dev_inode (glibtop *server, struct vnode *vnode,
return;
}
#if __FreeBSD_version >= 800039
#if (__FreeBSD_version >= 800039) || (__FreeBSD_kernel_version >= 800039)
if (kvm_read (server->machine.kd, (gulong) cdev2priv(inode.i_dev), (char *) &priv,
sizeof (priv))
#else

View File

@@ -66,11 +66,12 @@ _glibtop_init_cpu_s (glibtop *server)
/* Provides information about cpu usage. */
#define FILENAME "/proc/stat"
#define STAT_BUFSIZ 81920
void
glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
{
char buffer [BUFSIZ], *p;
char buffer [STAT_BUFSIZ], *p;
int i;
memset (buf, 0, sizeof (glibtop_cpu));

View File

@@ -15,6 +15,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <mntent.h>
@@ -41,6 +42,10 @@ get_device(glibtop* server, const char *mountpoint,
while ((mnt = getmntent(fp)))
{
/* There can be multiple root mount entries, skip the unuseful one */
if (!strcmp(mnt->mnt_fsname, "rootfs"))
continue;
if (!strcmp(mountpoint, mnt->mnt_dir)) {
if (!strncmp(mnt->mnt_fsname, "/dev/", 5)) {
g_strlcpy(device, mnt->mnt_fsname + 5, device_size);
@@ -193,7 +198,7 @@ glibtop_get_fsusage_s(glibtop *server, glibtop_fsusage *buf, const char *path)
memset(buf, 0, sizeof(glibtop_fsusage));
if (statvfs(path, &fsd) < 0) {
glibtop_warn_r(server, "statvfs '%s' failed", path);
glibtop_warn_r(server, "statvfs '%s' failed: %s", path, strerror (errno));
return;
}

View File

@@ -61,13 +61,14 @@ static void set_linux_version(glibtop *server)
/* Opens pipe to gtop server. Returns 0 on success and -1 on error. */
#define FILENAME "/proc/stat"
#define STAT_BUFSIZ 81920
void
glibtop_open_s (glibtop *server, const char *program_name,
const unsigned long features,
const unsigned flags)
{
char buffer [BUFSIZ], *p = buffer;
char buffer [STAT_BUFSIZ], *p = buffer;
server->name = program_name;

View File

@@ -1,3 +1,7 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf sysdeps/linux/procmap_smaps.gperf */
/* Computed positions: -k'9' */

View File

@@ -36,7 +36,7 @@ static glibtop_sysinfo sysinfo = { .flags = 0 };
static void
init_sysinfo (glibtop *server)
{
char buffer [16384];
char buffer [65536];
gchar ** processors;
if(G_LIKELY(sysinfo.flags)) return;
@@ -51,7 +51,8 @@ init_sysinfo (glibtop *server)
sysinfo.ncpu++) {
gchar **parts, **p;
if (g_strrstr (processors[sysinfo.ncpu], "processor" ) == NULL)
continue;
glibtop_entry * const cpuinfo = &sysinfo.cpuinfo[sysinfo.ncpu];
cpuinfo->labels = g_ptr_array_new ();

View File

@@ -1,21 +1,24 @@
# $OpenBSD: Makefile.am,v 1.2 2011/05/23 19:35:52 jasper Exp $
INCLUDES = @INCLUDES@
noinst_LTLIBRARIES = libgtop_sysdeps-2.0.la libgtop_sysdeps_suid-2.0.la
libgtop_sysdeps_2_0_la_SOURCES = nosuid.c siglist.c sysinfo.c
libgtop_sysdeps_2_0_la_SOURCES = nosuid.c siglist.c sysinfo.c \
cpu.c loadavg.c \
uptime.c netlist.c fsusage.c mem.c \
mountlist.c procopenfiles.c procwd.c \
procaffinity.c glibtop_private.c open.c
libgtop_sysdeps_2_0_la_LDFLAGS = $(LT_VERSION_INFO)
libgtop_sysdeps_suid_2_0_la_LIBADD = $(KVM_LIBS)
libgtop_sysdeps_suid_2_0_la_SOURCES = open.c close.c cpu.c mem.c swap.c \
uptime.c loadavg.c shm_limits.c msg_limits.c \
sem_limits.c proclist.c procstate.c procuid.c \
proctime.c procmem.c procsignal.c prockernel.c \
procsegment.c procargs.c procmap.c netlist.c \
netload.c ppp.c procopenfiles.c fsusage.c \
procwd.c procaffinity.c glibtop_private.c
libgtop_sysdeps_suid_2_0_la_SOURCES = suid_open.c close.c swap.c \
proclist.c procstate.c procuid.c \
proctime.c procmem.c procsignal.c \
prockernel.c procsegment.c procargs.c \
procmap.c netload.c ppp.c
# TODO should be made nosuid like FreeBSD
libgtop_sysdeps_suid_2_0_la_SOURCES += shm_limits.c msg_limits.c sem_limits.c
libgtop_sysdeps_suid_2_0_la_LDFLAGS = $(LT_VERSION_INFO)

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: close.c,v 1.2 2011/05/23 19:35:53 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: cpu.c,v 1.7 2011/07/10 15:23:01 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -44,7 +42,7 @@ static int mib2 [] = { CTL_KERN, KERN_CPTIME };
/* Init function. */
void
_glibtop_init_cpu_p (glibtop *server)
_glibtop_init_cpu_s (glibtop *server)
{
server->sysdeps.cpu = _glibtop_sysdeps_cpu;
}
@@ -52,7 +50,7 @@ _glibtop_init_cpu_p (glibtop *server)
/* Provides information about cpu usage. */
void
glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
{
gulong cpts [CPUSTATES];

View File

@@ -1,15 +1,4 @@
/* $OpenBSD: fsusage.c,v 1.4 2011/05/31 19:25:31 jasper Exp $ */
#include <config.h>
/*
* statvfs is lacking various members which are present in statfs,
* like f_(a)syncreads and f_(a)syncwrites. So eventhough we have
* statvfs, undef it here untill those members are added.
*/
#undef HAVE_SYS_STATVFS_H
#undef STAT_STATVFS
#include <glibtop.h>
#include <glibtop/error.h>
#include <glibtop/fsusage.h>
@@ -20,44 +9,57 @@
#include <unistd.h>
#include <sys/param.h>
#if defined (HAVE_SYS_STATVFS_H)
#include <sys/statvfs.h>
#else
#include <sys/mount.h>
#endif
#include <sys/statvfs.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void
_glibtop_openbsd_get_fsusage_read_write(glibtop *server,
glibtop_fsusage *buf,
const char *path);
static const unsigned long _glibtop_sysdeps_fsusage =
(1L << GLIBTOP_FSUSAGE_BLOCKS) + (1L << GLIBTOP_FSUSAGE_BFREE)
+ (1L << GLIBTOP_FSUSAGE_BAVAIL) + (1L << GLIBTOP_FSUSAGE_FILES)
+ (1L << GLIBTOP_FSUSAGE_FFREE) + (1L << GLIBTOP_FSUSAGE_BLOCK_SIZE);
void
_glibtop_openbsd_get_fsusage_read_write(glibtop *server,
glibtop_fsusage *buf,
const char *path)
static void
_glibtop_get_fsusage_read_write (glibtop *server, glibtop_fsusage *buf, const char *path)
{
int result;
#if defined (STAT_STATVFS)
struct statvfs sfs;
#else
struct statfs sfs;
#endif
int result;
struct statfs sfs;
#if defined (STAT_STATVFS)
result = statvfs (path, &sfs);
#else
result = statfs (path, &sfs);
#endif
result = statfs (path, &sfs);
if (result == -1) {
return;
}
if (result == -1) {
glibtop_warn_io_r (server, "statfs");
return;
}
buf->read = sfs.f_syncreads + sfs.f_asyncreads;
buf->write = sfs.f_syncwrites + sfs.f_asyncwrites;
buf->flags |= (1 << GLIBTOP_FSUSAGE_READ) | (1 << GLIBTOP_FSUSAGE_WRITE);
buf->read = sfs.f_syncreads + sfs.f_asyncreads;
buf->write = sfs.f_syncwrites + sfs.f_asyncwrites;
buf->flags |= (1 << GLIBTOP_FSUSAGE_READ) | (1 << GLIBTOP_FSUSAGE_WRITE);
}
void
glibtop_get_fsusage_s(glibtop *server, glibtop_fsusage *buf, const char *path)
{
struct statvfs fsd;
glibtop_init_r (&server, 0, 0);
memset (buf, 0, sizeof (glibtop_fsusage));
if (statvfs (path, &fsd) < 0)
return;
buf->block_size = fsd.f_frsize;
buf->blocks = fsd.f_blocks;
buf->bfree = fsd.f_bfree;
buf->bavail = (fsd.f_bavail > fsd.f_bfree) ? 0 : fsd.f_bavail;
buf->files = fsd.f_files;
buf->ffree = fsd.f_ffree;
buf->flags = _glibtop_sysdeps_fsusage;
_glibtop_get_fsusage_read_write(server, buf, path);
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: glibtop_machine.h,v 1.3 2011/05/23 19:35:53 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
@@ -31,6 +29,7 @@
#include <time.h>
#include <sys/user.h>
#include <sys/types.h>
#include <sys/proc.h>
#include <sys/sysctl.h>
#include <fcntl.h>

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: glibtop_private.c,v 1.2 2011/05/23 19:35:53 jasper Exp $ */
#include <config.h>
#include <glibtop.h>
#include <glibtop/error.h>
@@ -12,32 +10,6 @@
#include <glib.h>
#include <errno.h>
char *
execute_lsof(pid_t pid) {
char *output = NULL;
char *lsof;
char *command;
int exit_status;
lsof = g_find_program_in_path("lsof");
if (lsof == NULL)
return NULL;
command = g_strdup_printf("%s -n -P -Fftn -p %d", lsof, pid);
g_free(lsof);
if (g_spawn_command_line_sync (command, &output, NULL, &exit_status, NULL)) {
if (exit_status != 0) {
g_warning("Could not execute \"%s\" (%i)\nMake sure lsof(8) is installed sgid kmem.",
command, exit_status);
output = NULL;
}
}
g_free(command);
return output;
}
/* Ported from linux/glibtop_private.c */
gboolean
safe_readlink(const char *path, char *buf, int bufsiz)

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: glibtop_private.h,v 1.2 2011/05/23 19:35:53 jasper Exp $ */
/* Copyright (C) 2007 Joe Marcus Clarke
This file is part of LibGTop 2.0.
@@ -34,7 +32,6 @@
G_BEGIN_DECLS
char *execute_lsof(pid_t pid);
gboolean safe_readlink(const char *path, char *buf, int bufsiz);
G_END_DECLS

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: glibtop_server.h,v 1.2 2011/05/23 19:35:53 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
@@ -26,11 +24,7 @@
G_BEGIN_DECLS
#define GLIBTOP_SUID_CPU (1 << GLIBTOP_SYSDEPS_CPU)
#define GLIBTOP_SUID_MEM (1 << GLIBTOP_SYSDEPS_MEM)
#define GLIBTOP_SUID_SWAP (1 << GLIBTOP_SYSDEPS_SWAP)
#define GLIBTOP_SUID_UPTIME (1 << GLIBTOP_SYSDEPS_UPTIME)
#define GLIBTOP_SUID_LOADAVG (1 << GLIBTOP_SYSDEPS_LOADAVG)
#define GLIBTOP_SUID_SHM_LIMITS (1 << GLIBTOP_SYSDEPS_SHM_LIMITS)
#define GLIBTOP_SUID_MSG_LIMITS (1 << GLIBTOP_SYSDEPS_MSG_LIMITS)
#define GLIBTOP_SUID_SEM_LIMITS (1 << GLIBTOP_SYSDEPS_SEM_LIMITS)
@@ -45,8 +39,12 @@ G_BEGIN_DECLS
#define GLIBTOP_SUID_PROC_ARGS (1 << GLIBTOP_SYSDEPS_PROC_ARGS)
#define GLIBTOP_SUID_PROC_MAP (1 << GLIBTOP_SYSDEPS_PROC_MAP)
#define GLIBTOP_SUID_NETLOAD (1 << GLIBTOP_SYSDEPS_NETLOAD)
#define GLIBTOP_SUID_NETLIST 0
#define GLIBTOP_SUID_PPP (1 << GLIBTOP_SYSDEPS_PPP)
#define GLIBTOP_SUID_CPU 0
#define GLIBTOP_SUID_MEM 0
#define GLIBTOP_SUID_UPTIME 0
#define GLIBTOP_SUID_LOADAVG 0
#define GLIBTOP_SUID_NETLIST 0
#define GLIBTOP_SUID_PROC_WD 0
#define GLIBTOP_SUID_PROC_AFFINITY 0

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: glibtop_suid.h,v 1.2 2011/05/23 19:35:53 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: loadavg.c,v 1.2 2011/05/23 19:35:53 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -34,7 +32,7 @@ static const unsigned long _glibtop_sysdeps_loadavg =
/* Init function. */
void
_glibtop_init_loadavg_p (glibtop *server)
_glibtop_init_loadavg_s (glibtop *server)
{
server->sysdeps.loadavg = _glibtop_sysdeps_loadavg;
}
@@ -42,7 +40,7 @@ _glibtop_init_loadavg_p (glibtop *server)
/* Provides load averange. */
void
glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf)
glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf)
{
double ldavg[3];
int i;

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: mem.c,v 1.11 2011/07/10 15:23:01 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -30,9 +28,7 @@
#include <sys/mount.h>
#include <sys/sysctl.h>
#include <sys/vmmeter.h>
#include <uvm/uvm_extern.h>
#include <uvm/uvm_param.h>
static const unsigned long _glibtop_sysdeps_mem =
(1L << GLIBTOP_MEM_TOTAL) + (1L << GLIBTOP_MEM_USED) +
@@ -50,29 +46,17 @@ static int pageshift; /* log base 2 of the pagesize */
/* define pagetok in terms of pageshift */
#define pagetok(size) ((size) << pageshift)
/* nlist structure for kernel access */
static struct nlist nlst [] = {
{ "_bufpages" },
{ 0 }
};
/* MIB array for sysctl */
static int vmmeter_mib [] = { CTL_VM, VM_METER };
static int uvmexp_mib [] = { CTL_VM, VM_UVMEXP };
static int bcstats_mib [] = { CTL_VFS, VFS_GENERIC, VFS_BCACHESTAT };
/* Init function. */
void
_glibtop_init_mem_p (glibtop *server)
_glibtop_init_mem_s (glibtop *server)
{
register int pagesize;
if (kvm_nlist (server->machine.kd, nlst) < 0) {
glibtop_warn_io_r (server, "kvm_nlist (mem)");
return;
}
/* get the page size and calculate pageshift from it */
pagesize = sysconf(_SC_PAGESIZE);
pageshift = 0;
@@ -88,14 +72,10 @@ _glibtop_init_mem_p (glibtop *server)
}
void
glibtop_get_mem_p (glibtop *server, glibtop_mem *buf)
glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
{
struct vmtotal vmt;
struct uvmexp uvmexp;
struct bcachestats bcstats;
u_int v_used_count;
u_int v_total_count;
u_int v_free_count;
size_t length;
glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_MEM), 0);
@@ -106,13 +86,6 @@ glibtop_get_mem_p (glibtop *server, glibtop_mem *buf)
return;
/* Get the data from sysctl */
length = sizeof (vmt);
if (sysctl (vmmeter_mib, 2, &vmt, &length, NULL, 0)) {
glibtop_warn_io_r (server, "sysctl (vm.vmmeter)");
bzero(&vmt, sizeof(length));
return;
}
length = sizeof (uvmexp);
if (sysctl (uvmexp_mib, 2, &uvmexp, &length, NULL, 0)) {
glibtop_warn_io_r (server, "sysctl (vm.uvmexp)");
@@ -127,21 +100,12 @@ glibtop_get_mem_p (glibtop *server, glibtop_mem *buf)
return;
}
/*
* t_arm = active real memory
* t_rm = total real memory in use
* t_free = free memory pages
*/
v_total_count = vmt.t_rm + vmt.t_free;
v_used_count = vmt.t_rm;
v_free_count = vmt.t_free;
/* convert memory stats to Kbytes */
buf->total = (guint64) pagetok (v_total_count) << LOG1024;
buf->used = (guint64) pagetok (v_used_count) << LOG1024;
buf->free = (guint64) pagetok (v_free_count) << LOG1024;
buf->total = (guint64) pagetok (uvmexp.npages) << LOG1024;
buf->used = (guint64) pagetok (uvmexp.npages - uvmexp.free) << LOG1024;
buf->free = (guint64) pagetok (uvmexp.free) << LOG1024;
buf->locked = (guint64) pagetok (uvmexp.wired) << LOG1024;
buf->shared = (guint64) pagetok (vmt.t_rmshr) << LOG1024;
buf->shared = (guint64) pagetok (0 /* XXX */) << LOG1024;
buf->cached = (guint64) pagetok (bcstats.numbufpages) << LOG1024;
buf->buffer = 0;

168
sysdeps/openbsd/mountlist.c Normal file
View File

@@ -0,0 +1,168 @@
/* mountlist.c -- return a list of mounted filesystems
Copyright (C) 1991, 1992 Free Software Foundation, Inc.
This program 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, or (at your option)
any later version.
This program 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 this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include <config.h>
#include <glib.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/param.h>
#include <sys/mount.h>
#include <string.h>
#include <glibtop.h>
#include <glibtop/mountlist.h>
/* A mount table entry. */
struct mount_entry
{
char *me_devname; /* Device node pathname, including "/dev/". */
char *me_mountdir; /* Mount point directory pathname. */
char *me_type; /* "nfs", "4.2", etc. */
dev_t me_dev; /* Device number of me_mountdir. */
struct mount_entry *me_next;
};
static struct mount_entry *read_filesystem_list (void);
/* Return a list of the currently mounted filesystems, or NULL on error.
Add each entry to the tail of the list so that they stay in order.
*/
static struct mount_entry *
read_filesystem_list (void)
{
struct mount_entry *mount_list;
struct mount_entry *me;
struct mount_entry *mtail;
/* Start the list off with a dummy entry. */
me = g_new (struct mount_entry, 1);
me->me_next = NULL;
mount_list = mtail = me;
{
struct statfs *fsp;
int entries;
entries = getmntinfo (&fsp, MNT_NOWAIT);
if (entries < 0)
return NULL;
while (entries-- > 0)
{
me = (struct mount_entry *) g_malloc (sizeof (struct mount_entry));
me->me_devname = g_strdup (fsp->f_mntfromname);
me->me_mountdir = g_strdup (fsp->f_mntonname);
me->me_type = g_strdup (fsp->f_fstypename);
me->me_dev = (dev_t) -1; /* Magic; means not known yet. */
me->me_next = NULL;
/* Add to the linked list. */
mtail->me_next = me;
mtail = me;
fsp++;
}
}
/* Free the dummy head. */
me = mount_list;
mount_list = mount_list->me_next;
g_free (me);
return mount_list;
}
static gboolean ignore_mount_entry(const struct mount_entry *me)
{
/* keep sorted */
static const char ignored[][17] = {
"autofs",
"devfs",
"fusectl",
"linprocfs",
"linsysfs",
"mfs",
"none",
"nfs",
"nullfs",
"nwfs",
"portalfs",
"proc",
"procfs",
"smbfs",
"tmpfs",
"unionfs",
"unknown"
};
typedef int (*Comparator)(const void*, const void*);
return bsearch(me->me_type,
ignored, G_N_ELEMENTS(ignored), sizeof ignored[0],
(Comparator) strcmp) != NULL;
}
glibtop_mountentry *
glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs)
{
struct mount_entry *entries, *cur, *next;
GArray *mount_array = g_array_new(FALSE, FALSE,
sizeof(glibtop_mountentry));
glibtop_init_r (&server, 0, 0);
memset (buf, 0, sizeof (glibtop_mountlist));
/* Read filesystem list. */
if((entries = read_filesystem_list ()) == NULL)
return NULL;
for (cur = &entries[0]; cur != NULL; cur = next) {
if(all_fs || !ignore_mount_entry(cur)) {
/* add a new glibtop_mountentry */
glibtop_mountentry e;
g_strlcpy(e.devname, cur->me_devname, sizeof e.devname);
g_strlcpy(e.mountdir, cur->me_mountdir, sizeof e.mountdir);
g_strlcpy(e.type, cur->me_type, sizeof e.type);
e.dev = cur->me_dev;
g_array_append_val(mount_array, e);
}
/* free current mount_entry and move to the next */
next = cur->me_next;
g_free(cur->me_devname);
g_free(cur->me_mountdir);
g_free(cur->me_type);
g_free(cur);
}
buf->size = sizeof (glibtop_mountentry);
buf->number = mount_array->len;
buf->total = buf->number * buf->size;
buf->flags = (1 << GLIBTOP_MOUNTLIST_SIZE)
| (1 << GLIBTOP_MOUNTLIST_NUMBER)
| (1 << GLIBTOP_MOUNTLIST_TOTAL);
return (glibtop_mountentry*) g_array_free(mount_array, FALSE);
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: msg_limits.c,v 1.3 2011/05/23 19:35:54 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: netlist.c,v 1.2 2011/05/23 19:35:54 jasper Exp $ */
/*
This file is part of LibGTop 2.0.

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: netload.c,v 1.4 2011/06/20 09:50:04 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
@@ -36,12 +34,13 @@
#include <sys/ioctl.h>
#ifdef HAVE_NET_IF_VAR_H
#include <net/if_var.h>
#endif
#include <netinet/in.h>
#define _KERNEL
#include <netinet/in_var.h>
#undef _KERNEL
#include <netinet6/in6_var.h>
static const unsigned long _glibtop_sysdeps_netload =
(1L << GLIBTOP_NETLOAD_IF_FLAGS) +

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: nosuid.c,v 1.2 2011/05/23 19:35:54 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
@@ -23,16 +21,8 @@
#include <config.h>
#include <glibtop.h>
#include <glibtop/open.h>
#include <glibtop/close.h>
void
glibtop_open_s (glibtop *server,
const char *program_name,
const unsigned long features,
const unsigned flags)
{ }
void
glibtop_close_s (glibtop *server)
{ }

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: open.c,v 1.4 2011/05/23 19:35:54 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -22,74 +20,17 @@
*/
#include <config.h>
#include <sys/types.h>
#include <glibtop.h>
#include <glibtop/error.h>
#include <glibtop/open.h>
#include <glibtop/init_hooks.h>
/* !!! THIS FUNCTION RUNS SUID ROOT - CHANGE WITH CAUTION !!! */
#include <glibtop_private.h>
void
glibtop_init_p (glibtop *server, const unsigned long features,
const unsigned flags)
{
const _glibtop_init_func_t *init_fkt;
if (server == NULL)
glibtop_error_r (NULL, "glibtop_init_p (server == NULL)");
/* Do the initialization, but only if not already initialized. */
if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) {
glibtop_open_p (server, "glibtop", features, flags);
for (init_fkt = _glibtop_init_hook_p; *init_fkt; init_fkt++)
(*init_fkt) (server);
server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS;
}
}
void
glibtop_open_p (glibtop *server, const char *program_name,
glibtop_open_s (glibtop *server, const char *program_name,
const unsigned long features,
const unsigned flags)
{
#ifdef DEBUG
fprintf (stderr, "DEBUG (%d): glibtop_open_p ()\n", getpid ());
#endif
/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
server->machine.uid = getuid ();
server->machine.euid = geteuid ();
server->machine.gid = getgid ();
server->machine.egid = getegid ();
server->os_version_code = OpenBSD;
/* Setup machine-specific data */
server->machine.kd = kvm_open (NULL, NULL, NULL, O_RDONLY, "kvm_open");
if (server->machine.kd == NULL)
glibtop_error_io_r (server, "kvm_open");
/* Drop priviledges. */
if (setreuid (server->machine.euid, server->machine.uid))
_exit (1);
if (setregid (server->machine.egid, server->machine.gid))
_exit (1);
/* !!! END OF SUID ROOT PART !!! */
/* Our effective uid is now those of the user invoking the server,
* so we do no longer have any priviledges. */
/* NOTE: On FreeBSD, we do not need to be suid root, we just need to
* be sgid kmem.
*
* The server will only use setegid() to get back it's priviledges,
* so it will fail if it is suid root and not sgid kmem. */
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: ppp.c,v 1.3 2011/05/23 19:35:54 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.

View File

@@ -1,6 +1,5 @@
/*
* $OpenBSD: procaffinity.c,v 1.1 2009/10/16 10:56:04 jasper Exp $
* procaffinity stub.
* TODO (procaffinity stub)
*/
#include <config.h>

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: procargs.c,v 1.3 2011/05/23 19:35:54 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -49,7 +47,7 @@ char *
glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len)
{
struct kinfo_proc2 *pinfo;
struct kinfo_proc *pinfo;
char *retval, **args, **ptr;
size_t size = 0, pos = 0;
int count;
@@ -58,21 +56,24 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
memset (buf, 0, sizeof (glibtop_proc_args));
/* swapper, init, pagedaemon, vmdaemon, update - this doen't work. */
if (pid < 5) return NULL;
/*
* Don't bother with PIDs below 20, because everything below this
* number is highly likely to be a kernel thread.
*/
if (pid < 19) return NULL;
glibtop_suid_enter (server);
/* Get the process data */
pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
sizeof (*pinfo), &count);
if ((pinfo == NULL) || (count < 1)) {
if (pinfo == NULL) {
glibtop_suid_leave (server);
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
return NULL;
}
args = kvm_getargv2 (server->machine.kd, pinfo, max_len);
args = kvm_getargv (server->machine.kd, pinfo, max_len);
if (args == NULL) {
glibtop_suid_leave (server);
glibtop_warn_io_r (server, "kvm_getargv (%d)", pid);

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: prockernel.c,v 1.4 2011/05/31 14:02:26 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -36,12 +34,13 @@
#include <fcntl.h>
static const unsigned long _glibtop_sysdeps_proc_kernel_pstats =
(1L << GLIBTOP_PROC_KERNEL_K_FLAGS) +
(1L << GLIBTOP_PROC_KERNEL_MIN_FLT) +
(1L << GLIBTOP_PROC_KERNEL_MAJ_FLT);
static const unsigned long _glibtop_sysdeps_proc_kernel_wchan =
(1L << GLIBTOP_PROC_KERNEL_NWCHAN) +
(1L << GLIBTOP_PROC_KERNEL_WCHAN);
(1L << GLIBTOP_PROC_KERNEL_WCHAN) +
(1L << GLIBTOP_PROC_KERNEL_NWCHAN);
/* Init function. */
@@ -57,7 +56,7 @@ glibtop_get_proc_kernel_p (glibtop *server,
glibtop_proc_kernel *buf,
pid_t pid)
{
struct kinfo_proc2 *pinfo;
struct kinfo_proc *pinfo;
int count;
glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_KERNEL), 0);
@@ -70,23 +69,39 @@ glibtop_get_proc_kernel_p (glibtop *server,
/* It does not work for the swapper task. */
if (pid == 0) return;
glibtop_suid_enter (server);
/* Get the process information */
pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
sizeof(*pinfo), &count);
if ((pinfo == NULL) || (count != 1)) {
if (pinfo == NULL) {
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
glibtop_suid_leave (server);
return;
}
buf->nwchan = pinfo[0].p_wchan;
if (pinfo[0].p_wchan && pinfo[0].p_wmesg)
g_strlcpy(buf->wchan, pinfo[0].p_wmesg,
sizeof buf->wchan);
buf->min_flt = pinfo[0].p_uru_minflt;
buf->maj_flt = pinfo[0].p_uru_majflt;
glibtop_suid_leave (server);
buf->flags |= (_glibtop_sysdeps_proc_kernel_wchan
| _glibtop_sysdeps_proc_kernel_pstats);
#define PROC_WCHAN p_wchan
#define PROC_WMESG p_wmesg
buf->nwchan = (unsigned long) pinfo [0].PROC_WCHAN;
buf->flags |= (1L << GLIBTOP_PROC_KERNEL_NWCHAN);
if (pinfo [0].PROC_WCHAN && pinfo [0].PROC_WMESG[0] != 0) {
g_strlcpy (buf->wchan, pinfo [0].PROC_WMESG,
sizeof buf->wchan);
buf->flags |= (1L << GLIBTOP_PROC_KERNEL_WCHAN);
} else {
buf->wchan [0] = 0;
}
buf->k_flags = (unsigned long) pinfo [0].p_flag;
buf->min_flt = (unsigned long) pinfo [0].p_uru_minflt;
buf->maj_flt = (unsigned long) pinfo [0].p_uru_majflt;
buf->flags |= _glibtop_sysdeps_proc_kernel_pstats;
return;
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: proclist.c,v 1.3 2011/05/23 19:35:55 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -62,7 +60,7 @@ pid_t *
glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
gint64 real_which, gint64 arg)
{
struct kinfo_proc2 *pinfo;
struct kinfo_proc *pinfo;
unsigned *pids = NULL;
int which, count;
int i,j;
@@ -74,7 +72,7 @@ glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
which = (int)(real_which & GLIBTOP_KERN_PROC_MASK);
/* Get the process data */
pinfo = kvm_getproc2 (server->machine.kd, which, arg,
pinfo = kvm_getprocs (server->machine.kd, which, arg,
sizeof (*pinfo), &count);
if ((pinfo == NULL) || (count < 1)) {
glibtop_warn_io_r (server, "kvm_getprocs (proclist)");

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: procmap.c,v 1.6 2011/06/06 17:12:12 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -29,6 +27,7 @@
#include <glibtop_suid.h>
#include <kvm.h>
#include <stdlib.h>
#include <sys/param.h>
#include <sys/proc.h>
#include <sys/resource.h>
@@ -56,6 +55,12 @@ static const unsigned long _glibtop_sysdeps_map_entry =
(1L << GLIBTOP_MAP_ENTRY_OFFSET) + (1L << GLIBTOP_MAP_ENTRY_PERM) +
(1L << GLIBTOP_MAP_ENTRY_INODE) + (1L << GLIBTOP_MAP_ENTRY_DEVICE);
/* Local helper functions. */
ssize_t load_vmmap_entries(glibtop*, unsigned long, struct vm_map_entry**,
struct vm_map_entry*);
void unload_vmmap_entries(struct vm_map_entry *);
/* Init function. */
void
@@ -64,22 +69,107 @@ _glibtop_init_proc_map_p (glibtop *server)
server->sysdeps.proc_map = _glibtop_sysdeps_proc_map;
}
/* Provides detailed information about a process. */
/*
* Download vmmap_entries from the kernel into our address space.
* We fix up the addr tree while downloading.
*
* Returns: the size of the tree on succes, or -1 on failure.
* On failure, *rptr needs to be passed to unload_vmmap_entries to free
* the lot.
*/
ssize_t
load_vmmap_entries(glibtop *server, unsigned long kptr,
struct vm_map_entry **rptr, struct vm_map_entry *parent)
{
struct vm_map_entry *entry;
unsigned long left_kptr, right_kptr;
ssize_t left_sz;
ssize_t right_sz;
if (kptr == 0)
return 0;
/* Need space. */
entry = malloc(sizeof(*entry));
if (entry == NULL)
return -1;
/* Download entry at kptr. */
if (kvm_read (server->machine.kd, kptr,
(char *)entry, sizeof(*entry)) != sizeof(*entry)) {
free(entry);
return -1;
}
/*
* Update addr pointers to have sane values in this address space.
* We save the kernel pointers in {left,right}_kptr, so we have them
* available to download children.
*/
left_kptr = (unsigned long) RB_LEFT(entry, daddrs.addr_entry);
right_kptr = (unsigned long) RB_RIGHT(entry, daddrs.addr_entry);
RB_LEFT(entry, daddrs.addr_entry) =
RB_RIGHT(entry, daddrs.addr_entry) = NULL;
/* Fill in parent pointer. */
RB_PARENT(entry, daddrs.addr_entry) = parent;
/*
* Consistent state reached, fill in *rptr.
*/
*rptr = entry;
/*
* Download left, right.
* On failure, our map is in a state that can be handled by
* unload_vmmap_entries.
*/
left_sz = load_vmmap_entries(server, left_kptr,
&RB_LEFT(entry, daddrs.addr_entry), entry);
if (left_sz == -1)
return -1;
right_sz = load_vmmap_entries(server, right_kptr,
&RB_RIGHT(entry, daddrs.addr_entry), entry);
if (right_sz == -1)
return -1;
return 1 + left_sz + right_sz;
}
/*
* Free the vmmap entries in the given tree.
*/
void
unload_vmmap_entries(struct vm_map_entry *entry)
{
if (entry == NULL)
return;
unload_vmmap_entries(RB_LEFT(entry, daddrs.addr_entry));
unload_vmmap_entries(RB_RIGHT(entry, daddrs.addr_entry));
free(entry);
}
/*
* Provides detailed information about a process.
* Due to the fact we are only requested info about one process, it's possible
* the process has been reaped before we get to kvm_getprocs. Tough luck.
*/
glibtop_map_entry *
glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
pid_t pid)
{
struct kinfo_proc2 *pinfo;
struct vm_map_entry entry, *first;
struct kinfo_proc *pinfo;
struct vm_map_entry *entry;
struct uvm_map_addr root;
struct vmspace vmspace;
struct vnode vnode;
struct inode inode;
ssize_t nentries;
GArray *maps = g_array_sized_new(FALSE, FALSE,
sizeof(glibtop_map_entry),
100);
int count, i = 0;
int update = 0;
int count = 0;
glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_MAP), 0);
@@ -91,8 +181,8 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
glibtop_suid_enter (server);
/* Get the process data */
pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid, sizeof(struct kinfo_proc2), &count);
if ((pinfo == NULL) || (count < 1)) {
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), &count);
if (pinfo == NULL) {
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
return (glibtop_map_entry*) g_array_free(maps, TRUE);
}
@@ -101,19 +191,24 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
if (kvm_read (server->machine.kd,
(unsigned long) pinfo [0].p_vmspace,
(char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace))
glibtop_error_io_r (server, "kvm_read (vmspace)");
(char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace)) {
glibtop_warn_io_r (server, "kvm_read (vmspace)");
glibtop_suid_leave (server);
return NULL;
}
first = vmspace.vm_map.header.next;
if (kvm_read (server->machine.kd,
(unsigned long) vmspace.vm_map.header.next,
(char *) &entry, sizeof (entry)) != sizeof (entry))
RB_INIT(&root);
nentries = load_vmmap_entries(server,
(unsigned long) RB_ROOT(&vmspace.vm_map.addr),
&RB_ROOT(&root), NULL);
if (nentries == -1) {
unload_vmmap_entries(RB_ROOT(&root));
glibtop_error_io_r (server, "kvm_read (entry)");
}
/* Allocate space. */
buf->number = vmspace.vm_map.nentries;
buf->number = nentries;
buf->size = sizeof (glibtop_map_entry);
buf->total = buf->number * buf->size;
@@ -124,34 +219,27 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
/* I tested this a few times with `mmap'; as soon as you write
* to the mmap'ed area, the object type changes from OBJT_VNODE
* to OBJT_DEFAULT so it seems this really works. */
* to OBJT_DEFAULT so it seems this really works.
*/
do {
RB_FOREACH(entry, uvm_map_addr, &root) {
glibtop_map_entry *mentry;
unsigned long inum, dev;
guint len;
if (update) {
if (kvm_read (server->machine.kd,
(unsigned long) entry.next,
&entry, sizeof (entry)) != sizeof (entry))
glibtop_error_io_r (server, "kvm_read (entry)");
} else {
update = 1;
}
if (UVM_ET_ISSUBMAP (&entry))
if (UVM_ET_ISSUBMAP(entry))
continue;
if (!entry.object.uvm_obj)
if (!entry->object.uvm_obj)
continue;
/* We're only interested in vnodes */
if (kvm_read (server->machine.kd,
(unsigned long) entry.object.uvm_obj,
(unsigned long) entry->object.uvm_obj,
&vnode, sizeof (vnode)) != sizeof (vnode)) {
glibtop_warn_io_r (server, "kvm_read (vnode)");
unload_vmmap_entries(RB_ROOT(&root));
glibtop_suid_leave (server);
return (glibtop_map_entry*) g_array_free(maps, TRUE);
}
@@ -164,8 +252,12 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
if (kvm_read (server->machine.kd,
(unsigned long) vnode.v_data,
&inode, sizeof (inode)) != sizeof (inode))
glibtop_error_io_r (server, "kvm_read (inode)");
&inode, sizeof (inode)) != sizeof (inode)) {
glibtop_warn_io_r (server, "kvm_read (inode)");
unload_vmmap_entries(RB_ROOT(&root));
glibtop_suid_leave (server);
return (glibtop_map_entry*) g_array_free(maps, TRUE);
}
inum = inode.i_number;
dev = inode.i_dev;
@@ -176,21 +268,23 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
mentry->flags = _glibtop_sysdeps_map_entry;
mentry->start = (guint64) entry.start;
mentry->end = (guint64) entry.end;
mentry->offset = (guint64) entry.offset;
mentry->start = (guint64) entry->start;
mentry->end = (guint64) entry->end;
mentry->offset = (guint64) entry->offset;
mentry->device = (guint64) dev;
mentry->inode = (guint64) inum;
mentry->perm = (guint64) 0;
if (entry.protection & VM_PROT_READ)
if (entry->protection & VM_PROT_READ)
mentry->perm |= GLIBTOP_MAP_PERM_READ;
if (entry.protection & VM_PROT_WRITE)
if (entry->protection & VM_PROT_WRITE)
mentry->perm |= GLIBTOP_MAP_PERM_WRITE;
if (entry.protection & VM_PROT_EXECUTE)
if (entry->protection & VM_PROT_EXECUTE)
mentry->perm |= GLIBTOP_MAP_PERM_EXECUTE;
} while (entry.next != first);
}
glibtop_suid_leave (server);
buf->flags = _glibtop_sysdeps_proc_map;
@@ -198,5 +292,18 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
buf->size = sizeof (glibtop_map_entry);
buf->total = buf->number * buf->size;
unload_vmmap_entries(RB_ROOT(&root));
return (glibtop_map_entry*) g_array_free(maps, FALSE);
}
/*
* Don't implement address comparison.
*/
static __inline int
no_impl(void *p, void *q)
{
abort(); /* Should not be called. */
return 0;
}
RB_GENERATE(uvm_map_addr, vm_map_entry, daddrs.addr_entry, no_impl);

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: procmem.c,v 1.4 2011/05/24 10:40:47 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -96,7 +94,7 @@ void
glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
pid_t pid)
{
struct kinfo_proc2 *pinfo;
struct kinfo_proc *pinfo;
int count;
@@ -111,7 +109,7 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
if (pid == 0) return;
/* Get the process data */
pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
sizeof (*pinfo), &count);
if ((pinfo == NULL) || (count < 1)) {
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);

View File

@@ -1,8 +1,7 @@
/* $OpenBSD: procopenfiles.c,v 1.2 2011/05/23 19:35:55 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
Copyright (C) 2004 Nicol\ufffds Lichtmaier
Copyright (C) 2007 Joe Marcus Clarke
Copyright (C) 2013 Robert Nagy
This file is part of LibGTop 1.0.
Modified by Nicol\ufffds Lichtmaier to give a process open files.
@@ -33,7 +32,12 @@
#include <sys/socket.h>
#include <sys/param.h>
#include <sys/sysctl.h>
#define _KERNEL
#include <sys/file.h>
#undef _KERNEL
#include <sys/mount.h>
#include <sys/un.h>
#include <sys/vnode.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
@@ -46,6 +50,20 @@ static const unsigned long _glibtop_sysdeps_proc_open_files =
(1L << GLIBTOP_PROC_OPEN_FILES_TOTAL)|
(1L << GLIBTOP_PROC_OPEN_FILES_SIZE);
kvm_t *kd;
struct filearg {
SLIST_ENTRY(filearg) next;
dev_t dev;
ino_t ino;
char *name;
TAILQ_HEAD(fuserhead, fuser) fusers;
};
SLIST_HEAD(fileargs, filearg);
struct fileargs fileargs = SLIST_HEAD_INITIALIZER(fileargs);
/* Init function. */
void
@@ -54,167 +72,121 @@ _glibtop_init_proc_open_files_s (glibtop *server)
server->sysdeps.proc_open_files = _glibtop_sysdeps_proc_open_files;
}
static GArray *
parse_output(const char *output) {
GArray *entries;
char **lines;
char *ftype = NULL;
char *fname = NULL;
guint i;
guint len;
int fd = -1;
static char *
addr_to_string(struct kinfo_file *kf)
{
char *buffer = NULL;
struct in_addr faddr;
entries = g_array_new(FALSE, FALSE, sizeof(glibtop_open_files_entry));
memcpy(&faddr, kf->inp_faddru, sizeof(faddr));
lines = g_strsplit(output, "\n", 0);
len = g_strv_length(lines);
for (i = 0; i < len && lines[i]; i++) {
glibtop_open_files_entry entry = {0};
if (strlen(lines[i]) < 2)
continue;
if (!g_str_has_prefix(lines[i], "f") &&
!g_str_has_prefix(lines[i], "t") &&
!g_str_has_prefix(lines[i], "n"))
continue;
if (g_str_has_prefix(lines[i], "f")) {
if (!g_ascii_isdigit(*(lines[i] + 1)))
i += 2;
else
fd = atoi(lines[i] + 1);
continue;
if ((kf->so_protocol == IPPROTO_TCP) ||
(kf->so_protocol == IPPROTO_UDP)) {
if (kf->inp_fport) {
buffer = g_strdup(faddr.s_addr == INADDR_ANY ? "*" :
inet_ntoa(faddr));
}
if (g_str_has_prefix(lines[i], "t")) {
ftype = lines[i];
ftype++;
continue;
} else {
fname = lines[i];
fname++;
}
if (ftype == NULL || fname == NULL)
continue;
if (!strcmp(ftype, "unix")) {
entry.type = GLIBTOP_FILE_TYPE_LOCALSOCKET;
g_strlcpy(entry.info.localsock.name, fname,
sizeof(entry.info.localsock.name));
} else if (!strcmp(ftype, "PIPE")) {
entry.type = GLIBTOP_FILE_TYPE_PIPE;
} else if (!strcmp(ftype, "VREG") ||
!strcmp(ftype, "GDIR") ||
!strcmp(ftype, "GREG") ||
!strcmp(ftype, "VCHR") ||
!strcmp(ftype, "VBLK") ||
!strcmp(ftype, "DIR") ||
!strcmp(ftype, "LINK") ||
!strcmp(ftype, "REG") ||
!strcmp(ftype, "VDIR")) {
entry.type = GLIBTOP_FILE_TYPE_FILE;
g_strlcpy(entry.info.file.name, fname,
sizeof(entry.info.file.name));
} else if (!strcmp(ftype, "IPv4")) {
char **hosts;
char **remote_host;
if (!strstr(fname, "->")) {
remote_host = g_strsplit(fname, ":", 0);
} else {
hosts = g_strsplit(fname, "->", 0);
if (g_strv_length(hosts) < 2) {
g_strfreev(hosts);
continue;
}
remote_host = g_strsplit(hosts[1], ":", 0);
g_strfreev(hosts);
}
if (g_strv_length(remote_host) < 2) {
g_strfreev(remote_host);
continue;
}
entry.type = GLIBTOP_FILE_TYPE_INETSOCKET;
if (!strcmp(remote_host[0], "*"))
g_strlcpy(entry.info.sock.dest_host, "0.0.0.0",
sizeof(entry.info.sock.dest_host));
else
g_strlcpy(entry.info.sock.dest_host,
remote_host[0],
sizeof(entry.info.sock.dest_host));
entry.info.sock.dest_port = atoi(remote_host[1]);
g_strfreev(remote_host);
} else if (!strcmp(ftype, "IPv6")) {
char **hosts;
char **remote_host;
if (!strstr(fname, "->")) {
remote_host = g_strsplit(fname, ":", 0);
} else {
hosts = g_strsplit(fname, "->", 0);
if (g_strv_length(hosts) < 2) {
g_strfreev(hosts);
continue;
}
remote_host = g_strsplit(hosts[1], "]", 0);
g_strfreev(hosts);
}
if (g_strv_length(remote_host) < 2) {
g_strfreev(remote_host);
continue;
}
entry.type = GLIBTOP_FILE_TYPE_INET6SOCKET;
if (!strcmp(remote_host[0], "*"))
g_strlcpy(entry.info.sock.dest_host, "0.0.0.0",
sizeof(entry.info.sock.dest_host));
else
g_strlcpy(entry.info.sock.dest_host,
remote_host[0] + 1,
sizeof(entry.info.sock.dest_host));
entry.info.sock.dest_port = atoi(remote_host[1] + 1);
g_strfreev(remote_host);
} else
continue;
entry.fd = fd;
fd = -1;
ftype = NULL;
fname = NULL;
g_array_append_val(entries, entry);
}
g_strfreev(lines);
return entries;
return buffer;
}
glibtop_open_files_entry *
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid)
{
char *output;
struct kinfo_file *kf, *kflast;
int cnt;
char kbuf[_POSIX2_LINE_MAX];
GArray *entries;
memset(buf, 0, sizeof (glibtop_proc_open_files));
output = execute_lsof(pid);
if (output == NULL) return NULL;
if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, kbuf)) == NULL)
g_warning("%s", kbuf);
entries = parse_output(output);
if ((kf = kvm_getfiles(kd, KERN_FILE_BYPID, pid, sizeof(*kf), &cnt)) == NULL)
g_warning("%s", kvm_geterr(kd));
g_free(output);
entries = g_array_new(FALSE, FALSE, sizeof(glibtop_open_files_entry));
for (kflast = &kf[cnt]; kf < kflast; ++kf) {
glibtop_open_files_entry entry = {0};
if (kf->fd_fd < 0)
continue;
if (kf->f_type == DTYPE_SOCKET) {
if (kf->so_family == AF_LOCAL) {
entry.type = GLIBTOP_FILE_TYPE_LOCALSOCKET;
static char *stypename[] = {
"unused", /* 0 */
"stream",
"dgram",
"raw",
"rdm",
"seqpak"
};
#define STYPEMAX 5
char *stype, stypebuf[24];
if (kf->so_type > STYPEMAX) {
snprintf(stypebuf, sizeof(stypebuf), "?%d", kf->so_type);
stype = stypebuf;
} else {
stype = stypename[kf->so_type];
}
g_strlcpy(entry.info.localsock.name, stype,
sizeof(entry.info.localsock.name));
} else if (kf->so_family == AF_INET ||
kf->so_family == AF_INET6) {
char *addrstr;
if (kf->so_family == AF_INET)
entry.type = GLIBTOP_FILE_TYPE_INETSOCKET;
else
entry.type = GLIBTOP_FILE_TYPE_INET6SOCKET;
addrstr = addr_to_string(kf);
g_strlcpy(entry.info.sock.dest_host,
addrstr,
sizeof(entry.info.sock.dest_host));
g_free(addrstr);
entry.info.sock.dest_port = kf->inp_fport ? ntohs(kf->inp_fport) : 0;
}
} else if (kf->f_type == DTYPE_PIPE) {
entry.type = GLIBTOP_FILE_TYPE_PIPE;
} else if (kf->f_type == DTYPE_VNODE) {
int badtype = 0;
char nbuf[MAXPATHLEN];
entry.type = GLIBTOP_FILE_TYPE_FILE;
if ((kf->v_type == VNON) ||
(kf->v_type == VBAD) ||
(kf->v_tag == VT_NON && !(kf->v_flag & VCLONE))) {
badtype = 1;
}
if (badtype)
continue;
if ((kf->v_type == VBLK) ||
(kf->v_type == VCHR)) {
snprintf(nbuf, sizeof(nbuf), "/dev/%s",
devname(kf->va_rdev, kf->v_type == VCHR ? S_IFCHR : S_IFBLK));
} else {
snprintf(nbuf, sizeof(nbuf), "inode %llu on %s", kf->va_fileid,
kf->f_mntonname);
}
g_strlcpy(entry.info.file.name, nbuf,
sizeof(entry.info.file.name));
} else
continue;
entry.fd = kf->fd_fd;
g_array_append_val(entries, entry);
}
buf->flags = _glibtop_sysdeps_proc_open_files;
buf->number = entries->len;

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: procsegment.c,v 1.2 2011/05/23 19:35:55 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -32,13 +30,18 @@
#include <sys/param.h>
#include <sys/sysctl.h>
static const unsigned long _glibtop_sysdeps_proc_segment = 0;
static const unsigned long _glibtop_sysdeps_proc_segment =
(1L << GLIBTOP_PROC_SEGMENT_TEXT_RSS) +
(1L << GLIBTOP_PROC_SEGMENT_DATA_RSS);
static int pagesize;
/* Init function. */
void
_glibtop_init_proc_segment_p (glibtop *server)
{
pagesize = getpagesize ();
server->sysdeps.proc_segment = _glibtop_sysdeps_proc_segment;
}
@@ -49,35 +52,26 @@ glibtop_get_proc_segment_p (glibtop *server,
glibtop_proc_segment *buf,
pid_t pid)
{
struct kinfo_proc *pinfo;
int count = 0;
glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_SEGMENT), 0);
memset (buf, 0, sizeof (glibtop_proc_segment));
#if 0
/* It does not work for the swapper task. */
if (pid == 0) return;
/* Get the process info from the kernel */
kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, count);
if (*count != 1) {
return; /* the zeroed-out buffer indicating no data */
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
sizeof (*pinfo), &count);
if (pinfo == NULL) {
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
return;
}
/* trs: text resident set size
pinfo[0]->kp_eproc.e_xrssize;
*/
/* buf->trs = pinfo[0]->kp_eproc.e_xrssize; */
/* lrs: shared-lib resident set size
? */
/* drs: data resident set size
pinfo[0]->kp_eproc.e_vm.vm_map.vm_dsize;
*/
/* dt: dirty pages
*/
/* start_code: address of beginning of code segment
buf->text_rss = pinfo[0].p_vm_tsize * pagesize;
buf->data_rss = pinfo[0].p_vm_dsize * pagesize;
*/
/* end_code: address of end of code segment
*/
/* start_stack: address of the bottom of stack segment
*/
#endif
buf->flags = _glibtop_sysdeps_proc_segment;
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: procsignal.c,v 1.3 2011/05/23 19:35:55 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -49,7 +47,7 @@ glibtop_get_proc_signal_p (glibtop *server,
glibtop_proc_signal *buf,
pid_t pid)
{
struct kinfo_proc2 *pinfo;
struct kinfo_proc *pinfo;
int count = 0;
glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_SIGNAL), 0);
@@ -60,9 +58,9 @@ glibtop_get_proc_signal_p (glibtop *server,
if (pid == 0) return;
/* Get the process information */
pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
sizeof (*pinfo), &count);
if ((pinfo == NULL) || (count != 1)) {
if (pinfo == NULL) {
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
return;
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: procstate.c,v 1.3 2011/05/23 19:35:55 jasper Exp $ */
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
@@ -51,7 +49,7 @@ glibtop_get_proc_state_p (glibtop *server,
glibtop_proc_state *buf,
pid_t pid)
{
struct kinfo_proc2 *pinfo;
struct kinfo_proc *pinfo;
int count = 0;
glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_STATE), 0);
@@ -62,9 +60,9 @@ glibtop_get_proc_state_p (glibtop *server,
if (pid == 0) return;
/* Get the process information */
pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
sizeof (*pinfo), &count);
if ((pinfo == NULL) || (count != 1)) {
if (pinfo == NULL) {
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
return;
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: proctime.c,v 1.5 2011/07/10 15:29:26 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
@@ -58,66 +56,13 @@ _glibtop_init_proc_time_p (glibtop *server)
_glibtop_sysdeps_proc_time_user;
}
/* Taken from /usr/src/sys/kern/kern_resource.c */
/*
* Transform the running time and tick information in proc p into user,
* system, and interrupt time usage.
*/
static void
calcru(struct proc *p, struct timeval *up, struct timeval *sp,
struct timeval *ip)
{
quad_t totusec;
u_quad_t u, st, ut, it, tot;
long sec, usec;
struct timeval tv;
st = p->p_sticks;
ut = p->p_uticks;
it = p->p_iticks;
tot = st + ut + it;
if (tot == 0) {
st = 1;
tot = 1;
}
sec = p->p_rtime.tv_sec;
usec = p->p_rtime.tv_usec;
totusec = (quad_t)sec * 1000000 + usec;
if (totusec < 0) {
/* XXX no %qd in kernel. Truncate. */
fprintf (stderr, "calcru: negative time: %ld usec\n",
(long)totusec);
totusec = 0;
}
u = totusec;
st = (u * st) / tot;
sp->tv_sec = st / 1000000;
sp->tv_usec = st % 1000000;
ut = (u * ut) / tot;
up->tv_sec = ut / 1000000;
up->tv_usec = ut % 1000000;
if (ip != NULL) {
it = (u * it) / tot;
ip->tv_sec = it / 1000000;
ip->tv_usec = it % 1000000;
}
}
/* Provides detailed information about a process. */
void
glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
pid_t pid)
{
struct kinfo_proc2 *pinfo;
struct kinfo_proc *pinfo;
int count;
glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_TIME), 0);
@@ -129,9 +74,9 @@ glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf,
/* Get the process information */
pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
sizeof (*pinfo), &count);
if ((pinfo == NULL) || (count != 1)) {
if (pinfo == NULL) {
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
return;
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: procuid.c,v 1.3 2011/05/23 19:35:56 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
@@ -54,7 +52,7 @@ void
glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf,
pid_t pid)
{
struct kinfo_proc2 *pinfo;
struct kinfo_proc *pinfo;
int count = 0;
glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_UID), 0);
@@ -65,9 +63,9 @@ glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf,
if (pid == 0) return;
/* Get the process information */
pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
sizeof (*pinfo), &count);
if ((pinfo == NULL) || (count != 1)) {
if (pinfo == NULL) {
glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
return;
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: procwd.c,v 1.2 2011/05/23 19:35:56 jasper Exp $ */
/* Copyright (C) 2007 Joe Marcus Clarke
This file is part of LibGTop 2.
@@ -41,84 +39,9 @@ _glibtop_init_proc_wd_s(glibtop *server)
server->sysdeps.proc_wd = _glibtop_sysdeps_proc_wd;
}
static GPtrArray *
parse_output(const char *output, glibtop_proc_wd *buf)
{
GPtrArray *dirs;
char **lines;
gboolean nextwd = FALSE;
gboolean nextrtd = FALSE;
gboolean havertd = FALSE;
guint i;
guint len;
dirs = g_ptr_array_sized_new(1);
lines = g_strsplit(output, "\n", 0);
len = g_strv_length(lines);
for (i = 0; i < len && lines[i]; i++) {
if (strlen(lines[i]) < 2)
continue;
if (!strcmp(lines[i], "fcwd")) {
nextwd = TRUE;
continue;
}
if (!strcmp(lines[i], "frtd")) {
nextrtd = TRUE;
continue;
}
if (!g_str_has_prefix(lines[i], "n"))
continue;
if (nextwd) {
g_ptr_array_add(dirs, g_strdup(lines[i] + 1));
nextwd = FALSE;
}
if (nextrtd && !havertd) {
g_strlcpy(buf->root, lines[i] + 1,
sizeof(buf->root));
buf->flags |= (1 << GLIBTOP_PROC_WD_ROOT);
nextrtd = FALSE;
havertd = TRUE;
}
}
g_strfreev(lines);
return dirs;
}
char**
glibtop_get_proc_wd_s(glibtop *server, glibtop_proc_wd *buf, pid_t pid)
{
char path[MAXPATHLEN];
char *output;
memset (buf, 0, sizeof (glibtop_proc_wd));
g_snprintf(path, sizeof(path), "/proc/%u/file", pid);
if (safe_readlink(path, buf->exe, sizeof(buf->exe)))
buf->flags |= (1 << GLIBTOP_PROC_WD_EXE);
output = execute_lsof(pid);
if (output != NULL) {
GPtrArray *dirs;
dirs = parse_output(output, buf);
g_free(output);
buf->number = dirs->len;
buf->flags |= (1 << GLIBTOP_PROC_WD_NUMBER);
g_ptr_array_add(dirs, NULL);
return (char **)g_ptr_array_free(dirs, FALSE);
}
/* TODO */
return NULL;
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: sem_limits.c,v 1.3 2011/05/23 19:35:56 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: shm_limits.c,v 1.3 2011/05/23 19:35:56 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: siglist.c,v 1.2 2011/05/23 19:35:56 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.

View File

@@ -0,0 +1,92 @@
/* Copyright (C) 1998 Joshua Sled
This file is part of LibGTop 1.0.
Contributed by Joshua Sled <jsled@xcf.berkeley.edu>, July 1998.
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
LibGTop is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <config.h>
#include <glibtop.h>
#include <glibtop/error.h>
#include <glibtop/cpu.h>
#include <glibtop/open.h>
#include <glibtop/init_hooks.h>
/* !!! THIS FUNCTION RUNS SUID ROOT - CHANGE WITH CAUTION !!! */
void
glibtop_init_p (glibtop *server, const unsigned long features,
const unsigned flags)
{
const _glibtop_init_func_t *init_fkt;
if (server == NULL)
glibtop_error_r (NULL, "glibtop_init_p (server == NULL)");
/* Do the initialization, but only if not already initialized. */
if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) {
glibtop_open_p (server, "glibtop", features, flags);
for (init_fkt = _glibtop_init_hook_p; *init_fkt; init_fkt++)
(*init_fkt) (server);
server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS;
}
}
void
glibtop_open_p (glibtop *server, const char *program_name,
const unsigned long features,
const unsigned flags)
{
char errbuf[_POSIX2_LINE_MAX];
#ifdef DEBUG
fprintf (stderr, "DEBUG (%d): glibtop_open_p ()\n", getpid ());
#endif
/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
server->machine.uid = getuid ();
server->machine.euid = geteuid ();
server->machine.gid = getgid ();
server->machine.egid = getegid ();
/* Setup machine-specific data */
server->machine.kd = kvm_openfiles (NULL, NULL, NULL, O_RDONLY, errbuf);
if (server->machine.kd == NULL)
glibtop_error_io_r (server, "kvm_open");
/* Drop priviledges. */
if (setreuid (server->machine.euid, server->machine.uid))
_exit (1);
if (setregid (server->machine.egid, server->machine.gid))
_exit (1);
/* !!! END OF SUID ROOT PART !!! */
/* Our effective uid is now those of the user invoking the server,
* so we do no longer have any priviledges. */
/* NOTE: On OpenBSD, we do not need to be suid root, we just need to
* be sgid kmem.
*
* The server will only use setegid() to get back it's priviledges,
* so it will fail if it is suid root and not sgid kmem. */
}

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: swap.c,v 1.7 2011/07/10 15:23:01 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
@@ -87,12 +85,12 @@ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
buf->pagein = 0;
buf->pageout = 0;
} else {
buf->pagein = uvmexp.swapins - swappgsin;
buf->pageout = uvmexp.swapouts - swappgsout;
buf->pagein = uvmexp.pgswapin - swappgsin;
buf->pageout = uvmexp.pgswapout - swappgsout;
}
swappgsin = uvmexp.swapins;
swappgsout = uvmexp.swapouts;
swappgsin = uvmexp.pgswapin;
swappgsout = uvmexp.pgswapout;
nswap = swapctl (SWAP_NSWAP, 0, 0);
if (nswap < 0) {

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: sysinfo.c,v 1.4 2011/05/31 14:02:26 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.

View File

@@ -1,5 +1,3 @@
/* $OpenBSD: uptime.c,v 1.6 2011/06/01 07:24:49 jasper Exp $ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
@@ -39,7 +37,7 @@ static const unsigned long _required_cpu_flags =
/* Init function. */
void
_glibtop_init_uptime_p (glibtop *server)
_glibtop_init_uptime_s (glibtop *server)
{
server->sysdeps.uptime = _glibtop_sysdeps_uptime;
}
@@ -47,7 +45,7 @@ _glibtop_init_uptime_p (glibtop *server)
/* Provides uptime and idle time. */
void
glibtop_get_uptime_p (glibtop *server, glibtop_uptime *buf)
glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf)
{
time_t now;
int mib[2];
@@ -65,7 +63,7 @@ glibtop_get_uptime_p (glibtop *server, glibtop_uptime *buf)
buf->boot_time = boottime.tv_sec;
}
glibtop_get_cpu_p (server, &cpu);
glibtop_get_cpu_s (server, &cpu);
/* Put something clever in buf->idletime: CP_IDLE. */
buf->idletime = (double) cpu.idle / (double) cpu.frequency;