Compare commits

..

29 Commits

Author SHA1 Message Date
Benoît Dejean
d07192b5c9 Released 2.24.3. Again.
svn path=/branches/gnome-2-24/; revision=2793
2009-01-12 21:07:01 +00:00
Benoît Dejean
b6464a97ec Fixed Darwin build. Patch by "paul" <ephraim_owns@hotmail.com>. See
Fixed Darwin build.
Patch by "paul" <ephraim_owns@hotmail.com>.
See #556904.

svn path=/branches/gnome-2-24/; revision=2792
2009-01-12 21:05:48 +00:00
Benoît Dejean
89aac22fac Released 2.24.3.
svn path=/branches/gnome-2-24/; revision=2791
2009-01-12 20:57:17 +00:00
Benoît Dejean
935d321bf0 Fixed read(2) usage.
Closes #468495.

svn path=/branches/gnome-2-24/; revision=2790
2009-01-12 18:39:44 +00:00
Benoît Dejean
9ea7201e24 Bumped version number.
svn path=/branches/gnome-2-24/; revision=2789
2009-01-11 22:59:27 +00:00
Benoît Dejean
f4089fa71f Fixed potential memory leak.
Patch by Vincent Untz <vuntz@gnome.org>.
Closes #566611.

svn path=/branches/gnome-2-24/; revision=2788
2009-01-11 22:59:11 +00:00
Benoît Dejean
ab3f8f58ef Updated example.
svn path=/trunk/; revision=2782
2008-10-24 19:28:51 +00:00
Djihed Afifi
e5fdd58fee Updated Arabic Translation by Khaled Hosny.
* Updated Arabic Translation by Khaled Hosny. 

svn path=/trunk/; revision=2781
2008-10-19 11:44:17 +00:00
Benoît Dejean
86f43f408b Released 2.24.0.
svn path=/trunk/; revision=2778
2008-09-22 07:31:53 +00:00
Laurent Dhima
1aab514cda Updated Translation
svn path=/trunk/; revision=2777
2008-09-20 10:32:56 +00:00
Mugurel Tudor
3a8f2335c9 Updated Romanian translation by Mişu Moldovan <dumol@gnome.ro>
2008-09-19  Mugurel Tudor  <mugurelu@gnome.ro>

	* ro.po: Updated Romanian translation by
	Mişu Moldovan <dumol@gnome.ro>

svn path=/trunk/; revision=2776
2008-09-19 14:57:10 +00:00
Baris Cicek
5b5c9215dc Updated Turkish Translation
svn path=/trunk/; revision=2775
2008-09-18 02:37:46 +00:00
Djihed Afifi
bf13e02061 Updated Arabic Translation by Khaled Hosny.
* Updated Arabic Translation by Khaled Hosny. 

svn path=/trunk/; revision=2774
2008-09-18 02:05:54 +00:00
Djihed Afifi
1e2c9d5517 Updated Arabic Translation by Khaled Hosny.
* Updated Arabic Translation by Khaled Hosny. 

svn path=/trunk/; revision=2773
2008-09-15 09:43:58 +00:00
Baris Cicek
5dccc423d8 Updated Turkish Translation
svn path=/trunk/; revision=2772
2008-09-13 23:31:54 +00:00
Robert Sedak
d58409351c Update: Croatian Language
svn path=/trunk/; revision=2771
2008-09-09 15:51:16 +00:00
Goran Rakic
1c20ceb694 Conversion from sr@Latn to sr@latin
svn path=/trunk/; revision=2770
2008-08-25 14:56:00 +00:00
Benoît Dejean
3d4491494f Released 2.23.90.
svn path=/trunk/; revision=2768
2008-08-18 16:11:59 +00:00
Benoît Dejean
10a04fc9c7 Improved freebsd port.
Patch by Joe Marcus Clarke <marcus@freebsd.org>.
Closes #548184.

svn path=/trunk/; revision=2767
2008-08-18 16:11:07 +00:00
Benoît Dejean
10e5124770 Bumped version number
svn path=/trunk/; revision=2766
2008-08-18 16:09:34 +00:00
Djihed Afifi
f269f738d7 Updated Arabic Translation by Khaled Hosny.
svn path=/trunk/; revision=2765
2008-08-06 08:32:20 +00:00
Djihed Afifi
bc86ee5421 Updated Arabic Translation by Khaled Hosny.
svn path=/trunk/; revision=2764
2008-07-29 01:34:38 +00:00
Leonardo Ferreira Fontenelle
7ea989c2b8 Terminology improvement by Vladimir Melo.
2008-07-25  Leonardo Ferreira Fontenelle  <leonardof@gnome.org>

	* pt_BR.po: Terminology improvement by Vladimir Melo.

svn path=/trunk/; revision=2763
2008-07-26 00:36:51 +00:00
Benoît Dejean
91b7ae4b11 Released 2.23.4.
svn path=/trunk/; revision=2759
2008-06-23 22:07:54 +00:00
Benoît Dejean
ce23ce407c Improved example.
svn path=/trunk/; revision=2758
2008-06-23 22:07:26 +00:00
Benoît Dejean
7f779e078d Fixed I/O stats so it works for unpartionned devices (e.g. cdrom).
svn path=/trunk/; revision=2757
2008-06-22 11:27:30 +00:00
Benoît Dejean
229eab1213 Updated example to display read/write counters.
svn path=/trunk/; revision=2756
2008-06-22 10:50:29 +00:00
Benoît Dejean
791e0dd859 Handle new /sys/block/.../stat format for linux >= 2.6.25.
Closes #539360.

svn path=/trunk/; revision=2755
2008-06-22 09:31:41 +00:00
Djihed Afifi
f63973eac5 Updated Arabic Translation by Khaled Hosny.
svn path=/trunk/; revision=2752
2008-06-11 21:40:37 +00:00
27 changed files with 1037 additions and 363 deletions

23
NEWS
View File

@@ -1,3 +1,26 @@
12 January 2009: Overview of changes in 2.24.3
==============================================
* linux:
- fixed potential memory leak. Vincent Untz.
- fixed read(2) usage. Should fix the missing cpus bug in system-monitor.
* darwin:
- fixed build. "paul".
22 Septembre 2008: Overview of changes in 2.24.0
================================================
* Translation updates.
18 August 2008: Overview of changes in 2.23.90
==============================================
* freebsd:
- updated port by Joe Marcus Clarke.
23 June 2008: Overview of changes in 2.23.4
===========================================
* linux:
- Fixed and improved glibtop_get_fsusage with kernel >= 2.6.25.
Closes #539360.
24 May 2008: Overview of changes in 2.23.2
==========================================
* glibtop_get_proc_open_files API can also lists IPv6 TCP sockets.

View File

@@ -3,8 +3,8 @@ dnl Configure script for the Gnome library
dnl
m4_define([libgtop_major_version], [2])
m4_define([libgtop_minor_version], [23])
m4_define([libgtop_micro_version], [2])
m4_define([libgtop_minor_version], [24])
m4_define([libgtop_micro_version], [3])
m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version])
dnl increment if the interface has additions, changes, removals.

View File

@@ -15,35 +15,43 @@ static void print_fsusage(const char *mountpoint)
glibtop_get_fsusage(&buf, mountpoint);
printf("%-20s %-10llu %-10llu %-10llu %.1f\n",
printf("%-30s %10llu %10llu %10llu %5.1f %10llu %10llu\n",
mountpoint,
buf.blocks * buf.block_size >> 20,
(buf.blocks - buf.bavail) * buf.block_size >> 20,
buf.bavail * buf.block_size >> 20,
(buf.blocks - buf.bavail) * 100.0 / buf.blocks
(buf.blocks - buf.bavail) * 100.0 / (buf.blocks ? buf.blocks : 1.0),
buf.read,
buf.write
);
}
int main()
int main(int argc, char **argv)
{
glibtop_mountlist buf;
glibtop_mountentry *entries;
size_t i;
glibtop_init();
printf("%-20s %-10s %-10s %-10s %-10s\n",
"Filesystem", "Size", "Used", "Avail", "Use%");
printf("%-30s %10s %10s %10s %5s %10s %10s\n",
"Filesystem", "Size", "Used", "Avail", "Use%", "Read", "Write");
entries = glibtop_get_mountlist(&buf, TRUE);
if (argc > 1) {
while (*++argv)
print_fsusage(*argv);
} else {
glibtop_mountentry *entries;
size_t i;
for(i = 0; i < buf.number; ++i)
{
print_fsusage(entries[i].mountdir);
}
entries = glibtop_get_mountlist(&buf, TRUE);
g_free(entries);
for(i = 0; i < buf.number; ++i)
{
print_fsusage(entries[i].mountdir);
}
g_free(entries);
}
glibtop_close();

View File

@@ -44,7 +44,7 @@
#endif
#ifndef PROFILE_COUNT_EXPENSIVE
#define PROFILE_COUNT_EXPENSIVE 10000L
#define PROFILE_COUNT_EXPENSIVE (PROFILE_COUNT / 10)
#endif
#define ELAPSED_UTIME ((unsigned long) elapsed_utime.tv_sec * 1000000 + (unsigned long) elapsed_utime.tv_usec)
@@ -73,13 +73,13 @@ int
main (int argc, char *argv [])
{
glibtop_union data;
unsigned c, count;
unsigned c;
struct rusage total_start, total_end;
struct rusage rusage_start, rusage_end;
struct timeval elapsed_utime, elapsed_stime;
pid_t pid, *ptr;
pid_t pid;
count = PROFILE_COUNT;
pid = getpid ();
setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
@@ -184,12 +184,10 @@ main (int argc, char *argv [])
(long double) ELAPSED_UTIME / PROFILE_COUNT,
(long double) ELAPSED_STIME / PROFILE_COUNT);
printf ("\n");
getrusage (RUSAGE_SELF, &rusage_start);
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
ptr = glibtop_get_proclist (&data.proclist, 0, 0);
pid_t* ptr = glibtop_get_proclist (&data.proclist, 0, 0);
g_free (ptr);
}
@@ -207,9 +205,26 @@ main (int argc, char *argv [])
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
pid = getpid ();
getrusage (RUSAGE_SELF, &rusage_start);
printf ("\n");
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
char** ptr = glibtop_get_netlist (&data.netlist);
g_strfreev (ptr);
}
getrusage (RUSAGE_SELF, &rusage_end);
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
&elapsed_utime);
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
&elapsed_stime);
printf ("Netlist (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
(unsigned long) data.proclist.flags,
PROFILE_COUNT_EXPENSIVE,
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
getrusage (RUSAGE_SELF, &rusage_start);
@@ -267,6 +282,27 @@ main (int argc, char *argv [])
getrusage (RUSAGE_SELF, &rusage_start);
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
glibtop_map_entry* entries;
entries = glibtop_get_proc_map (&data.proc_map, pid);
g_free (entries);
}
getrusage (RUSAGE_SELF, &rusage_end);
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
&elapsed_utime);
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
&elapsed_stime);
printf ("Proc_Map (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
(unsigned long) data.proc_map.flags, PROFILE_COUNT_EXPENSIVE,
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
getrusage (RUSAGE_SELF, &rusage_start);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_segment (&data.proc_segment, pid);
@@ -285,6 +321,27 @@ main (int argc, char *argv [])
getrusage (RUSAGE_SELF, &rusage_start);
for (c = 0; c < PROFILE_COUNT; c++) {
char** argv;
argv = glibtop_get_proc_argv (&data.proc_args, pid, 0);
g_strfreev(argv);
}
getrusage (RUSAGE_SELF, &rusage_end);
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
&elapsed_utime);
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
&elapsed_stime);
printf ("Proc_Args (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
(unsigned long) data.proc_args.flags, PROFILE_COUNT,
(long double) ELAPSED_UTIME / PROFILE_COUNT,
(long double) ELAPSED_STIME / PROFILE_COUNT);
getrusage (RUSAGE_SELF, &rusage_start);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_time (&data.proc_time, pid);

View File

@@ -79,6 +79,8 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
libgtop_sysdeps_dir=freebsd
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 2755 $(bindir)/libgtop_server2'
;;
solaris*)
@@ -99,7 +101,7 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
libgtop_use_machine_h=yes
libgtop_need_server=yes
libgtop_have_sysinfo=yes
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server && chmod g+s $(bindir)/libgtop_server2'
libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod g+s $(bindir)/libgtop_server2'
;;
*)
if test x$hacker_mode = xyes ; then

View File

@@ -1,3 +1,56 @@
2008-10-19 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-09-20 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian Translation.
2008-09-19 Mugurel Tudor <mugurelu@gnome.ro>
* ro.po: Updated Romanian translation by
Mişu Moldovan <dumol@gnome.ro>
2008-09-18 Baris Cicek <baris@teamforce.name.tr>
* tr.po: Fixed wrong plural forms
2008-09-18 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-09-15 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-09-14 Baris Cicek <baris@teamforce.name.tr>
* tr.po: Updated Turkish Translation.
2008-09-09 Robert Sedak <robert.sedak@sk.t-com.hr>
* hr.po: Updated Croatian translation.
2008-08-25 Goran Rakic <grakic@devbase.net>
* LINGUAS, sr@latin.po, sr@Latn.po: Conversion from sr@Latn to sr@latin.
2008-08-6 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-07-29 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-07-25 Leonardo Ferreira Fontenelle <leonardof@gnome.org>
* pt_BR.po: Terminology improvement by Vladimir Melo.
2008-06-11 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-05-22 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.

View File

@@ -64,7 +64,7 @@ sk
sl
sq
sr
sr@Latn
sr@latin
sv
ta
te

View File

@@ -1,4 +1,4 @@
# translation of libgtop.HEAD.ar.po to Arabic
# translation of libgtop.HEAD.po to Arabic
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
#
@@ -8,18 +8,17 @@
# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2008.
msgid ""
msgstr ""
"Project-Id-Version: libgtop.HEAD.ar\n"
"Project-Id-Version: libgtop.HEAD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-01-12 01:07+0000\n"
"PO-Revision-Date: 2008-01-11 23:29+0200\n"
"PO-Revision-Date: 2008-07-28 19:26+0300\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n>=3 && "
"n<=10 ? 3 : n>=11 && n<=99 ? 4 : 5;\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: ../lib/read.c:51
#, c-format
@@ -28,9 +27,9 @@ msgid_plural "read %d bytes"
msgstr[0] "قرأ صفر بايت"
msgstr[1] "قرأ بايت واحدة"
msgstr[2] "قرأ بايتين"
msgstr[3] "قرأ %d بايتات"
msgstr[4] "قرأ %d بايت"
msgstr[5] "قرأ %d بايت"
msgstr[3] "قرأ %Id بايتات"
msgstr[4] "قرأ %Id بايت"
msgstr[5] "قرأ %Id بايت"
#: ../lib/read_data.c:51
msgid "read data size"
@@ -54,9 +53,9 @@ msgid_plural "wrote %d bytes"
msgstr[0] "كتب صفر بايت"
msgstr[1] "كتب بايت واحدة"
msgstr[2] "كتب بايتين"
msgstr[3] "كتب %d بايتات"
msgstr[4] "كتب %d بايت"
msgstr[5] "كتب %d بايت"
msgstr[3] "كتب %Id بايتات"
msgstr[4] "كتب %Id بايت"
msgstr[5] "كتب %Id بايت"
#: ../src/daemon/gnuserv.c:458
msgid "Enable debugging"
@@ -202,3 +201,4 @@ msgstr "إشارة 1 معرفة من طرف المستخدم"
#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57
msgid "User defined signal 2"
msgstr "إشارة 2 معرفة من طرف المستخدم"

137
po/hr.po
View File

@@ -5,207 +5,188 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtop 0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-09-25 18:15+0200\n"
"PO-Revision-Date: 2004-02-05 23:51+CET\n"
"Last-Translator: auto\n"
"POT-Creation-Date: 2008-03-11 15:24+0000\n"
"PO-Revision-Date: 2007-06-19 23:43+0000\n"
"Last-Translator: Ante Karamatić <ivoks@grad.hr>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: TransDict server\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Launchpad-Export-Date: 2008-05-27 21:06+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#: lib/read.c:65
#: ../lib/read.c:51
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "čitaj %d bajt"
msgstr[1] "čitaj %d bajtova"
msgstr[2] ""
msgstr[0] "čitaj %d byte"
msgstr[1] "čitaj %d bytea"
msgstr[2] "čitaj %d byteova"
#: lib/read_data.c:53
#: ../lib/read_data.c:51
msgid "read data size"
msgstr "veličina pročitanih podataka"
#: lib/read_data.c:72
#, fuzzy, c-format
#: ../lib/read_data.c:70
#, c-format
msgid "read %lu byte of data"
msgid_plural "read %lu bytes of data"
msgstr[0] "čitaj %d bajt"
msgstr[1] "čitaj %d bajtova"
msgstr[2] ""
msgstr[0] "čitaj %lu byte podataka"
msgstr[1] "čitaj %lu bytea podataka"
msgstr[2] "čitaj %lu byteova podataka"
#: lib/write.c:52
#, fuzzy, c-format
#: ../lib/write.c:51
#, c-format
msgid "wrote %d byte"
msgid_plural "wrote %d bytes"
msgstr[0] "piši %d bajt"
msgstr[1] "piši %d bajtova"
msgstr[2] ""
msgstr[0] "zapisao %d byte"
msgstr[1] "zapisao %d bytea"
msgstr[2] "zapisao %d byteova"
#: src/daemon/gnuserv.c:460
#: ../src/daemon/gnuserv.c:458
msgid "Enable debugging"
msgstr "Omogućavanje debugiranja"
#: src/daemon/gnuserv.c:460
msgid "DEBUG"
msgstr "Uklanjanje grešaka"
#: src/daemon/gnuserv.c:462
#: ../src/daemon/gnuserv.c:460
msgid "Enable verbose output"
msgstr "Omogući opširni izlaz"
#: src/daemon/gnuserv.c:462
msgid "VERBOSE"
msgstr "OPŠIRNO"
#: src/daemon/gnuserv.c:464
#: ../src/daemon/gnuserv.c:462
msgid "Don't fork into background"
msgstr "Bez forkanja u pozadini"
#: src/daemon/gnuserv.c:464
msgid "NO-DAEMON"
msgstr "NO-DAEMON"
#: src/daemon/gnuserv.c:466
#: ../src/daemon/gnuserv.c:464
msgid "Invoked from inetd"
msgstr "Pozvano iz inetda"
#: src/daemon/gnuserv.c:466
msgid "INETD"
msgstr "INETD"
#: src/daemon/gnuserv.c:500
#: ../src/daemon/gnuserv.c:498
#, c-format
msgid ""
"Error on option %s: %s.\n"
"Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
"Greška na opciji %s: %s.\n"
"Pokrenite '%s --help' za potpuni popis svih opcija mogućih u naredbenoj "
"liniji.\n"
msgstr "Pokrenite naredbu '%s --help' kako biste vidjeli popis dostupnih opcija.\n"
#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"
msgstr "Prekidanje veze"
#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
msgid "Interrupt"
msgstr "Prekid"
#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "Izlaz"
#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"
msgstr "Nedopuštena instrukcija"
#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
msgid "Trace trap"
msgstr "Prati trap"
#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "Odustani"
#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
msgstr "EMT greška"
#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
msgid "Floating-point exception"
msgstr "Iznimka pomičnog zareza"
#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
msgstr "Ubij"
#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
msgid "Bus error"
msgstr "Sabirnička greška"
#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation"
msgstr "Povreda segmenta"
#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39
#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38
msgid "Bad argument to system call"
msgstr "Neispravan argument za sistemski poziv"
#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
msgstr "Prekinut kanal"
#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock"
msgstr "Budilica"
#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
msgid "Termination"
msgstr "Završetak"
#: 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 "Hitno stanje na socketu"
#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop"
msgstr "Zaustavi"
#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
msgid "Keyboard stop"
msgstr "Zaustavljanje tipkovnice"
#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
msgid "Continue"
msgstr "Nastavi"
#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47
#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46
msgid "Child status has changed"
msgstr "Status djeteta je promijenjen"
#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48
#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47
msgid "Background read from tty"
msgstr "Pozadinsko čitanje iz tty-a"
#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49
#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48
msgid "Background write to tty"
msgstr "Pozadinsko pisanje na tty"
#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50
#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49
msgid "I/O now possible"
msgstr "U/I je sada moguć"
#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51
#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded"
msgstr "CPU granica iskorištena"
#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52
#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51
msgid "File size limit exceeded"
msgstr "Prekoračeno ograničenje veličine spisa"
#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53
#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock"
msgstr "Virtualni alarmni sat"
#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54
#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53
msgid "Profiling alarm clock"
msgstr "Profiliranje sata alarma"
#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55
#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54
msgid "Window size change"
msgstr "Promjena veličine prozora"
#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "Zahtjev za informacijom"
#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
msgid "User defined signal 1"
msgstr "Korisnički definiran signal 1"
#: sysdeps/osf1/siglist.c:58 sysdeps/sun4/siglist.c:58
#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57
msgid "User defined signal 2"
msgstr "Korisnički definiran signal 2"

View File

@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-07-21 14:34-0300\n"
"PO-Revision-Date: 2007-07-21 14:37-0300\n"
"Last-Translator: Og Maciel <ogmaciel@gnome.org>\n"
"PO-Revision-Date: 2008-07-24 13:23-0300\n"
"Last-Translator: Vladimir Melo <vladimirmelo.psi@gmail.com>\n"
"Language-Team: Brazilian Portuguese <gnome-l10n-br@listas.cipsga.org.br>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -76,7 +76,7 @@ msgstr "Interromper"
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "Encerrar"
msgstr "Sair"
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"

View File

@@ -1,14 +1,14 @@
# Romanian translation for libgtop
# Copyright (C) 2003 - 2007, Free Software Foundation, Inc.
# Mişu Moldovan <dumol@gnome.ro>, 2003 - 2007.
# Copyright (C) 2003 - 2008, Free Software Foundation, Inc.
# Mișu Moldovan <dumol@gnome.ro>, 2003 - 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-05-14 03:41+0100\n"
"PO-Revision-Date: 2007-09-12 01:20+0300\n"
"Last-Translator: Mişu Moldovan <dumol@gnome.ro>\n"
"POT-Creation-Date: 2007-09-13 08:49+0100\n"
"PO-Revision-Date: 2008-09-18 22:36+0300\n"
"Last-Translator: Mișu Moldovan <dumol@gnome.ro>\n"
"Language-Team: Romanian <gnomero-list@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,9 +20,9 @@ msgstr ""
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "citeşte %d octet"
msgstr[1] "citeşte %d octeţi"
msgstr[2] "citeşte %d de octeţi"
msgstr[0] "s-a citit un octet"
msgstr[1] "s-au citit %d octeți"
msgstr[2] "s-au citit %d de octeți"
#: ../lib/read_data.c:51
msgid "read data size"
@@ -32,17 +32,17 @@ msgstr "mărime date citire"
#, c-format
msgid "read %lu byte of data"
msgid_plural "read %lu bytes of data"
msgstr[0] "citeşte %lu octet de date"
msgstr[1] "citeşte %lu octeţi de date"
msgstr[2] "citeşte %lu de octeţi de date"
msgstr[0] "s-a citit un octet de date"
msgstr[1] "s-au citit %lu octeți de date"
msgstr[2] "s-au citit %lu de octeți de date"
#: ../lib/write.c:51
#, c-format
msgid "wrote %d byte"
msgid_plural "wrote %d bytes"
msgstr[0] "a scris %d octet"
msgstr[1] "a scris %d octeţi"
msgstr[2] "a scris %d de octeţi"
msgstr[0] "s-a scris un octet"
msgstr[1] "s-au scris %d octeți"
msgstr[2] "s-au scris %d de octeți"
#: ../src/daemon/gnuserv.c:458
msgid "Enable debugging"
@@ -50,7 +50,7 @@ msgstr "Activare depanare"
#: ../src/daemon/gnuserv.c:460
msgid "Enable verbose output"
msgstr "Mesaje de ieşire explicite"
msgstr "Mesaje de ieșire explicite"
#: ../src/daemon/gnuserv.c:462
msgid "Don't fork into background"
@@ -63,7 +63,7 @@ msgstr "Pornit de inetd"
#: ../src/daemon/gnuserv.c:498
#, c-format
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr "Încercaţi „%s --help” pentru a vedea o listă completă a opţiunilor.\n"
msgstr "Încercați „%s --help” pentru a vedea o listă completă a opțiunilor.\n"
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"
@@ -75,11 +75,11 @@ msgstr "Întrerupere"
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "Ieşire"
msgstr "Ieșire"
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"
msgstr "Instrucţiune ilegală"
msgstr "Instrucțiune ilegală"
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
msgid "Trace trap"
@@ -87,7 +87,7 @@ msgstr "Punct de oprire întâlnit"
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "Renunţă"
msgstr "Renunță"
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
@@ -95,7 +95,7 @@ msgstr "Eroare EMT"
#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34
msgid "Floating-point exception"
msgstr "Excepţie în virgulă mobilă"
msgstr "Excepție în virgulă mobilă"
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
@@ -111,11 +111,11 @@ msgstr "Violare a segmentului"
#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38
msgid "Bad argument to system call"
msgstr "Argument greşit în apelul de sistem"
msgstr "Argument greșit în apelul de sistem"
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
msgstr "Filtru nefuncţional"
msgstr "Filtru nefuncțional"
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock"
@@ -127,7 +127,7 @@ msgstr "Terminare"
#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42
msgid "Urgent condition on socket"
msgstr "Condiţie de urgenţă în socket"
msgstr "Condiție de urgență în socket"
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop"
@@ -155,15 +155,15 @@ msgstr "Scriere în fundal către tty"
#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49
msgid "I/O now possible"
msgstr "Operaţiile I/O sunt acum posibile"
msgstr "Operațiile I/O sunt acum posibile"
#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50
msgid "CPU limit exceeded"
msgstr "Limită depăşită CPU"
msgstr "Limită depășită CPU"
#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51
msgid "File size limit exceeded"
msgstr "Limită depăşită mărime fişier"
msgstr "Limită depășită mărime fișier"
#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52
msgid "Virtual alarm clock"
@@ -179,7 +179,7 @@ msgstr "Schimbare de mărime a ferestrei"
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "Cerere de informaţie"
msgstr "Cerere de informație"
#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56
msgid "User defined signal 1"
@@ -189,14 +189,3 @@ msgstr "Semnal 1 definit de utilizator"
msgid "User defined signal 2"
msgstr "Semnal 2 definit de utilizator"
#~ msgid "DEBUG"
#~ msgstr "DEBUG"
#~ msgid "VERBOSE"
#~ msgstr "VERBOSE"
#~ msgid "NO-DAEMON"
#~ msgstr "NO-DAEMON"
#~ msgid "INETD"
#~ msgstr "INETD"

115
po/sq.po
View File

@@ -1,207 +1,188 @@
# Përkthimi i mesazheve të libgtop në shqip
# This file is distributed under the same license as the libgtop package.
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
# Laurent Dhima <laurenti@alblinux.net>, 2003, 2004, 2005.
# Copyright (C) 2003-2008 Free Software Foundation, Inc.
#
# Laurent Dhima <laurenti@alblinux.net>, 2003-2008.
msgid ""
msgstr ""
"Project-Id-Version: libgtop HEAD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-09-25 18:15+0200\n"
"PO-Revision-Date: 2005-02-14 13:23+0100\n"
"POT-Creation-Date: 2007-05-14 03:41+0100\n"
"PO-Revision-Date: 2008-09-20 12:25+0200\n"
"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
"Language-Team: Albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n"
"Language-Team: albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\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:65
#: ../lib/read.c:51
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "u lexua %d byte"
msgstr[1] "u lexuan %d bytes"
#: lib/read_data.c:53
#: ../lib/read_data.c:51
msgid "read data size"
msgstr "madhësia e të dhënave të lexuara"
#: 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] "u lexua %lu byte me të dhëna"
msgstr[1] "u lexuan %lu bytes me të dhëna"
#: lib/write.c:52
#: ../lib/write.c:51
#, c-format
msgid "wrote %d byte"
msgid_plural "wrote %d bytes"
msgstr[0] "u shkrua %d byte"
msgstr[1] "u shkruan %d bytes"
#: src/daemon/gnuserv.c:460
#: ../src/daemon/gnuserv.c:458
msgid "Enable debugging"
msgstr "Aktivo proçesin e kontrollit"
#: src/daemon/gnuserv.c:460
msgid "DEBUG"
msgstr "DEBUG"
#: src/daemon/gnuserv.c:462
#: ../src/daemon/gnuserv.c:460
msgid "Enable verbose output"
msgstr "Aktivo output e hollësishëm"
#: src/daemon/gnuserv.c:462
msgid "VERBOSE"
msgstr "VERBOSE"
#: src/daemon/gnuserv.c:464
#: ../src/daemon/gnuserv.c:462
msgid "Don't fork into background"
msgstr "Mos kryej fork në background"
#: src/daemon/gnuserv.c:464
msgid "NO-DAEMON"
msgstr "NO-DAEMON"
#: src/daemon/gnuserv.c:466
#: ../src/daemon/gnuserv.c:464
msgid "Invoked from inetd"
msgstr "Thërritur nga inetd"
#: src/daemon/gnuserv.c:466
msgid "INETD"
msgstr "INETD"
#: src/daemon/gnuserv.c:500
#: ../src/daemon/gnuserv.c:498
#, c-format
msgid ""
"Error on option %s: %s.\n"
"Run '%s --help' to see a full list of available command line options.\n"
msgstr ""
"Gabim në opcionin %s: %s.\n"
"Zbato '%s --help' për të shikuar listën e plotë të opcioneve të komandës.\n"
msgid "Run '%s --help' to see a full list of available command line options.\n"
msgstr "Zbato '%s --help' për të shikuar listën e plotë të opsioneve të komandës.\n"
#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"
msgstr "Mbylle"
#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
msgid "Interrupt"
msgstr "Ndërprit"
#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "Dalja"
#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"
msgstr "Instruktim ilegal"
#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
msgid "Trace trap"
msgstr "Merr gjurmët"
#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "Anullo"
#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34
#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33
msgid "EMT error"
msgstr "Gabim 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 "Floating-point exception"
#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
msgstr "Vrit"
#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
msgid "Bus error"
msgstr "Gabim i bus"
#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation"
msgstr "Violim i segmentimit"
#: 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 "Argument i gabuar në thirrjen e sistemit"
#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
msgstr "Pipe e ndërprerë"
#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock"
msgstr "Alarmi"
#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
msgid "Termination"
msgstr "Përfundimi"
#: 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 "Konditë urgjente në socket "
#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop"
msgstr "Ndal"
#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
msgid "Keyboard stop"
msgstr "Ndalim nga tastiera"
#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
msgid "Continue"
msgstr "Vazhdo"
#: 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 "Gjendja e birit ka ndryshuar"
#: 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 "Lexim në sfond nga 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 "Shkrim në sfond tek 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 "I/O tashmë e mundshme"
#: 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 "Limiti i CPU është tejkaluar"
#: 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 "Limiti i madhësisë së file është tejkaluar"
#: 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 "Alarm virtual"
#: 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 "Duke profiluar orën e alarmit"
#: 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 "Ndryshimi i madhësisë së dritares"
#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "Kërkesë informacioni"
#: 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 "Sinjal 1 i përcaktuar nga përdoruesi"
#: 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 "Sinjal 2 i përcaktuar nga përdoruesi"

131
po/tr.po
View File

@@ -2,14 +2,14 @@
# Copyright (C) 2004 Free Software Foundation, Inc.
# Görkem Çetin <gorkem@gelecek.com.tr>, 2001.
# Ömer Fadıl USTA <omer_fad@hotmail.com>,2002.
# Baris Cicek <baris@teamforce.name.tr>, 2004.
#
# Baris Cicek <baris@teamforce.name.tr>, 2004, 2008.
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-09-25 18:15+0200\n"
"PO-Revision-Date: 2004-05-14 18:09+0300\n"
"POT-Creation-Date: 2008-09-14 02:30+0300\n"
"PO-Revision-Date: 2008-09-14 02:31+0300\n"
"Last-Translator: Baris Cicek <baris@teamforce.name.tr>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\n"
"MIME-Version: 1.0\n"
@@ -17,192 +17,183 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: lib/read.c:65
#: ../lib/read.c:51
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "%d bayt oku"
msgstr[1] "%d bayt oku"
msgstr[0] "%d bayt okundu"
#: lib/read_data.c:53
#: ../lib/read_data.c:51
msgid "read data size"
msgstr "okunan veri miktarı"
#: 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 bayt oku"
msgstr[1] "%lu bayt oku"
msgstr[0] "%lu bayt okundu"
#: lib/write.c:52
#: ../lib/write.c:51
#, c-format
msgid "wrote %d byte"
msgid_plural "wrote %d bytes"
msgstr[0] "%d bayt yaz"
msgstr[1] "%d bayt yaz"
msgstr[0] "%d bayt yazıldı"
#: src/daemon/gnuserv.c:460
#: ../src/daemon/gnuserv.c:458
msgid "Enable debugging"
msgstr "Hata ayıklamayı etkinleştir"
#: src/daemon/gnuserv.c:460
msgid "DEBUG"
msgstr "HATA AYIKLA"
#: src/daemon/gnuserv.c:462
#: ../src/daemon/gnuserv.c:460
msgid "Enable verbose output"
msgstr "Detaylı çıktıyı etkinleştir"
#: src/daemon/gnuserv.c:462
msgid "VERBOSE"
msgstr "DETAYLI"
#: src/daemon/gnuserv.c:464
#: ../src/daemon/gnuserv.c:462
msgid "Don't fork into background"
msgstr "Arkaplana çatallama"
#: src/daemon/gnuserv.c:464
msgid "NO-DAEMON"
msgstr "SERVİS-YOK"
#: src/daemon/gnuserv.c:466
#: ../src/daemon/gnuserv.c:464
msgid "Invoked from inetd"
msgstr "Inetd'den çalıştırıldı"
#: src/daemon/gnuserv.c:466
msgid "INETD"
msgstr "INETD"
#: src/daemon/gnuserv.c:500
#: ../src/daemon/gnuserv.c:498
#, 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 seçeneğinde hata: %s.\n"
"Kullanılabilecek tüm seçenekleri görmek için '%s --help' yazın.\n"
"Mevcut tüm komut satırı seçeneklerinin tam listesini görmek için '%s --help' "
"çalıştırın.\n"
#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28
#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27
msgid "Hangup"
msgstr "Takılma"
#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29
#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28
msgid "Interrupt"
msgstr "Kesme"
#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30
#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29
msgid "Quit"
msgstr "Çıkış"
#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31
#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30
msgid "Illegal instruction"
msgstr "Tanımsız yönerge"
#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32
#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31
msgid "Trace trap"
msgstr "Takip hatası"
#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33
#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32
msgid "Abort"
msgstr "İptal"
#: 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 hatası"
#: 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 "Kayar nokta (floating point) hatası"
#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36
#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35
msgid "Kill"
msgstr "Öldür"
#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37
#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36
msgid "Bus error"
msgstr "Veriyolu hatası"
#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38
#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37
msgid "Segmentation violation"
msgstr "Bölümleme ihlali"
#: 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 "Sistem çağrısına hatalı argüman"
#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40
#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39
msgid "Broken pipe"
msgstr "Kırık boru"
#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41
#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40
msgid "Alarm clock"
msgstr "Alarm saati"
#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42
#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41
msgid "Termination"
msgstr "Sonlandırma"
#: 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 "Sokette acil durum"
#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44
#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43
msgid "Stop"
msgstr "Dur"
#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45
#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44
msgid "Keyboard stop"
msgstr "Klavyeden durdurma"
#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46
#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45
msgid "Continue"
msgstr "Devam"
#: 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 "Alt sürecin durumu değişti"
#: 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'dan arkaplanda okuma"
#: 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'a arkaplanda yazma"
#: 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 "G/Ç mümkün"
#: 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 "İşlemci sınırııldı"
#: 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 "Dosya sınırııldı"
#: 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 "Sanal alarm saati"
#: 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 "Alarm saati"
#: 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 "Pencere boyutu değişimi"
#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56
#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55
msgid "Information request"
msgstr "Bilgi talebi"
#: 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 "Kullanıcı tanımlı sinyal 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 "Kullanıcı tanımlı sinyal 2"
#~ msgid "DEBUG"
#~ msgstr "HATA AYIKLA"
#~ msgid "VERBOSE"
#~ msgstr "DETAYLI"
#~ msgid "NO-DAEMON"
#~ msgstr "SERVİS-YOK"
#~ msgid "INETD"
#~ msgstr "INETD"

View File

@@ -6,7 +6,7 @@ libgtop_sysdeps_2_0_la_SOURCES = nosuid.c siglist.c sysinfo.c
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 \
sem_limits.c procaffinity.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 netlist.c procopenfiles.c procwd.c

View File

@@ -44,6 +44,7 @@ G_BEGIN_DECLS
#define GLIBTOP_SUID_NETLIST 0
#define GLIBTOP_SUID_PPP (1 << GLIBTOP_SYSDEPS_PPP)
#define GLIBTOP_SUID_PROC_WD (1 << GLIBTOP_SYSDEPS_PROC_WD)
#define GLIBTOP_SUID_PROC_AFFINITY 0
G_END_DECLS

View File

@@ -6,8 +6,8 @@ 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 shm_limits.c \
cpu.c msg_limits.c sem_limits.c loadavg.c \
uptime.c netlist.c fsusage.c mem.c \
procopenfiles.c procwd.c \
glibtop_private.c
mountlist.c procopenfiles.c procwd.c \
procaffinity.c glibtop_private.c
libgtop_sysdeps_2_0_la_LDFLAGS = $(LT_VERSION_INFO)

View File

@@ -10,6 +10,7 @@
#include <unistd.h>
#include <sys/param.h>
#include <sys/mount.h>
#include <sys/statvfs.h>
#if __FreeBSD_version >= 600000 || defined(__FreeBSD_kernel__)
#include <libgeom.h>
#include <sys/resource.h>
@@ -21,15 +22,13 @@
#include <string.h>
#include <stdlib.h>
void
_glibtop_freebsd_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_freebsd_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;
struct statfs sfs;
@@ -135,3 +134,28 @@ _glibtop_freebsd_get_fsusage_read_write(glibtop *server,
#endif
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

@@ -46,6 +46,7 @@ G_BEGIN_DECLS
#define GLIBTOP_SUID_SEM_LIMITS 0
#define GLIBTOP_SUID_NETLIST 0
#define GLIBTOP_SUID_PROC_WD 0
#define GLIBTOP_SUID_PROC_AFFINITY 0
G_END_DECLS

168
sysdeps/freebsd/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

@@ -0,0 +1,84 @@
/* Copyright (C) 2007 Joe Marcus Clarke <marcus@FreeBSD.org>
This file is part of LibGTop 2.
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/procaffinity.h>
#include <glibtop/error.h>
#include <glibtop_private.h>
#include <sys/param.h>
#if __FreeBSD_version > 800024
#include <sys/cpuset.h>
#endif
void
_glibtop_init_proc_affinity_s(glibtop *server)
{
server->sysdeps.proc_affinity =
(1 << GLIBTOP_PROC_AFFINITY_NUMBER) |
(1 << GLIBTOP_PROC_AFFINITY_ALL);
}
guint16 *
glibtop_get_proc_affinity_s(glibtop *server, glibtop_proc_affinity *buf, pid_t pid)
{
#if __FreeBSD_version > 800024
id_t id;
cpulevel_t level;
cpuwhich_t which;
cpuset_t mask;
size_t i;
GArray* cpus;
memset(buf, 0, sizeof *buf);
which = CPU_WHICH_PID;
level = CPU_LEVEL_WHICH;
id = pid;
if (cpuset_getaffinity(level, which, id, sizeof(mask), &mask) != 0) {
glibtop_error_r(server, "cpuset_getaffinity failed");
return NULL;
}
cpus = g_array_new(FALSE, FALSE, sizeof(guint16));
for (i = 0; i < MIN(CPU_SETSIZE, (size_t)(server->ncpu + 1)); i++) {
if (CPU_ISSET(i, &mask)) {
guint16 n = i;
g_array_append_val(cpus, n);
}
}
buf->number = cpus->len;
buf->all = (cpus->len == (size_t)(server->ncpu + 1));
buf->flags = (1 << GLIBTOP_PROC_AFFINITY_NUMBER)
| (1 << GLIBTOP_PROC_AFFINITY_ALL);
return (guint16*) g_array_free(cpus, FALSE);
#else
memset(buf, 0, sizeof *buf);
return NULL;
#endif
}

View File

@@ -41,7 +41,17 @@
#define _KERNEL
#include <sys/pipe.h>
#include <sys/conf.h>
#undef _KERNEL
#if __FreeBSD_version >= 800038
#define _WANT_FILE
#include <sys/file.h>
#undef _WANT_FILE
#else
#define _KERNEL
#include <sys/file.h>
#undef _KERNEL
#endif
#define _KERNEL
#include <sys/mount.h>
#include <ufs/ufs/quota.h>
#include <ufs/ufs/inode.h>
@@ -103,8 +113,14 @@ _glibtop_sysdeps_freebsd_dev_inode (glibtop *server, struct vnode *vnode,
if (kvm_read (server->machine.kd, (gulong) inode.i_dev, (char *) &si,
sizeof (si)) != sizeof (si) ||
#if __FreeBSD_version >= 800039
kvm_read (server->machine.kd, (gulong) cdev2priv(&si), (char *) &priv,
sizeof (priv))
#else
kvm_read (server->machine.kd, (gulong) si.si_priv, (char *) &priv,
sizeof (priv)) != sizeof (priv))
sizeof (priv))
#endif
!= sizeof (priv))
{
glibtop_warn_io_r (server, "kvm_read (si)");
return;

View File

@@ -28,6 +28,13 @@
#include <glibtop/error.h>
#include <glibtop/procopenfiles.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/param.h>
#include <sys/sysctl.h>
#include <sys/un.h>
#include <sys/user.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>
@@ -46,6 +53,63 @@ _glibtop_init_proc_open_files_s (glibtop *server)
server->sysdeps.proc_open_files = _glibtop_sysdeps_proc_open_files;
}
#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104)
static char *
addr_to_string(struct sockaddr_storage *ss)
{
char *buffer = NULL;
char buffer2[INET6_ADDRSTRLEN];
struct sockaddr_in6 *sin6;
struct sockaddr_in *sin;
struct sockaddr_un *sun;
switch (ss->ss_family) {
case AF_LOCAL:
sun = (struct sockaddr_un *)ss;
if (strlen(sun->sun_path) == 0)
buffer = g_strdup("-");
else
buffer = g_strdup(sun->sun_path);
break;
case AF_INET:
sin = (struct sockaddr_in *)ss;
buffer = g_strdup(inet_ntoa(sin->sin_addr));
break;
case AF_INET6:
sin6 = (struct sockaddr_in6 *)ss;
if (inet_ntop(AF_INET6, &sin6->sin6_addr, buffer2,
sizeof(buffer2)) != NULL)
buffer = g_strdup(buffer2);
else
buffer = g_strdup("-");
break;
}
return buffer;
}
static int
addr_to_port(struct sockaddr_storage *ss)
{
int port = 0;
struct sockaddr_in6 *sin6;
struct sockaddr_in *sin;
switch (ss->ss_family) {
case AF_INET:
sin = (struct sockaddr_in *)ss;
port = ntohs(sin->sin_port);
break;
case AF_INET6:
sin6 = (struct sockaddr_in6 *)ss;
port = ntohs(sin6->sin6_port);
break;
}
return port;
}
#else
static GArray *
parse_output(const char *output) {
GArray *entries;
@@ -142,6 +206,39 @@ parse_output(const char *output) {
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;
@@ -159,21 +256,108 @@ parse_output(const char *output) {
return entries;
}
#endif
glibtop_open_files_entry *
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid)
{
#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104)
struct kinfo_file *freep, *kif;
int name[4];
size_t len;
size_t i;
#else
char *output;
#endif
GArray *entries;
memset(buf, 0, sizeof (glibtop_proc_open_files));
#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104)
name[0] = CTL_KERN;
name[1] = KERN_PROC;
name[2] = KERN_PROC_FILEDESC;
name[3] = pid;
if (sysctl(name, 4, NULL, &len, NULL, 0) < 0)
return NULL;
freep = kif = g_malloc(len);
if (sysctl(name, 4, kif, &len, NULL, 0) < 0) {
g_free(freep);
return NULL;
}
entries = g_array_new(FALSE, FALSE, sizeof(glibtop_open_files_entry));
for (i = 0; i < len / sizeof(*kif); i++, kif++) {
glibtop_open_files_entry entry = {0};
if (kif->kf_fd < 0)
continue;
if (kif->kf_type == KF_TYPE_SOCKET) {
if (kif->kf_sock_domain == AF_LOCAL) {
struct sockaddr_un *sun;
entry.type = GLIBTOP_FILE_TYPE_LOCALSOCKET;
sun = (struct sockaddr_un *)&kif->kf_sa_local;
if (sun->sun_path[0]) {
char *addrstr;
addrstr = addr_to_string(&kif->kf_sa_local);
g_strlcpy(entry.info.localsock.name,
addrstr,
sizeof(entry.info.localsock.name));
g_free(addrstr);
} else {
char *addrstr;
addrstr = addr_to_string(&kif->kf_sa_peer);
g_strlcpy(entry.info.localsock.name,
addrstr,
sizeof(entry.info.localsock.name));
g_free(addrstr);
}
} else if (kif->kf_sock_domain == AF_INET ||
kif->kf_sock_domain == AF_INET6) {
char *addrstr;
if (kif->kf_sock_domain == AF_INET)
entry.type = GLIBTOP_FILE_TYPE_INETSOCKET;
else
entry.type = GLIBTOP_FILE_TYPE_INET6SOCKET;
addrstr = addr_to_string(&kif->kf_sa_peer);
g_strlcpy(entry.info.sock.dest_host,
addrstr,
sizeof(entry.info.sock.dest_host));
g_free(addrstr);
entry.info.sock.dest_port = addr_to_port(&kif->kf_sa_peer);
}
} else if (kif->kf_type == KF_TYPE_PIPE) {
entry.type = GLIBTOP_FILE_TYPE_PIPE;
} else if (kif->kf_type == KF_TYPE_VNODE) {
entry.type = GLIBTOP_FILE_TYPE_FILE;
g_strlcpy(entry.info.file.name, kif->kf_path,
sizeof(entry.info.file.name));
} else
continue;
entry.fd = kif->kf_fd;
g_array_append_val(entries, entry);
}
g_free(freep);
#else
output = execute_lsof(pid);
if (output == NULL) return NULL;
entries = parse_output(output);
g_free(output);
#endif
buf->flags = _glibtop_sysdeps_proc_open_files;
buf->number = entries->len;

View File

@@ -24,7 +24,9 @@
#include <glibtop_private.h>
#include <sys/types.h>
#include <sys/sysctl.h>
#include <sys/param.h>
#include <sys/user.h>
#include <string.h>
static const unsigned long _glibtop_sysdeps_proc_wd =
@@ -38,6 +40,7 @@ _glibtop_init_proc_wd_s(glibtop *server)
server->sysdeps.proc_wd = _glibtop_sysdeps_proc_wd;
}
#if (__FreeBSD_version >= 800000 && __FreeBSD_version < 800019) || _FreeBSD_version < 700104
static GPtrArray *
parse_output(const char *output, glibtop_proc_wd *buf)
{
@@ -89,12 +92,21 @@ parse_output(const char *output, glibtop_proc_wd *buf)
return dirs;
}
#endif
char**
glibtop_get_proc_wd_s(glibtop *server, glibtop_proc_wd *buf, pid_t pid)
{
char path[MAXPATHLEN];
#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104)
struct kinfo_file *freep, *kif;
GPtrArray *dirs;
size_t len;
int i;
int name[4];
#else
char *output;
#endif
memset (buf, 0, sizeof (glibtop_proc_wd));
@@ -102,6 +114,43 @@ glibtop_get_proc_wd_s(glibtop *server, glibtop_proc_wd *buf, pid_t pid)
if (safe_readlink(path, buf->exe, sizeof(buf->exe)))
buf->flags |= (1 << GLIBTOP_PROC_WD_EXE);
#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104)
name[0] = CTL_KERN;
name[1] = KERN_PROC;
name[2] = KERN_PROC_FILEDESC;
name[3] = pid;
if (sysctl(name, 4, NULL, &len, NULL, 0) < 0)
return NULL;
freep = kif = g_malloc(len);
if (sysctl(name, 4, kif, &len, NULL, 0) < 0) {
g_free(freep);
return NULL;
}
dirs = g_ptr_array_sized_new(1);
for (i = 0; i < len / sizeof(*kif); i++, kif++) {
switch (kif->kf_fd) {
case KF_FD_TYPE_ROOT:
g_strlcpy(buf->root, kif->kf_path,
sizeof(buf->root));
buf->flags |= (1 << GLIBTOP_PROC_WD_ROOT);
break;
case KF_FD_TYPE_CWD:
g_ptr_array_add(dirs, g_strdup (kif->kf_path));
break;
}
}
g_free(freep);
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);
#else
output = execute_lsof(pid);
if (output != NULL) {
GPtrArray *dirs;
@@ -116,6 +165,7 @@ glibtop_get_proc_wd_s(glibtop *server, glibtop_proc_wd *buf, pid_t pid)
return (char **)g_ptr_array_free(dirs, FALSE);
}
#endif
return NULL;
}

View File

@@ -25,6 +25,7 @@
#include <glibtop/shm_limits.h>
#include <sys/types.h>
#include <sys/param.h>
#include <sys/sysctl.h>
static unsigned long _glibtop_sysdeps_shm_limits =
@@ -46,7 +47,11 @@ void
glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf)
{
size_t len;
#if __FreeBSD_version < 700002
int shmmax, shmmin, shmmni, shmseg, shmall;
#else
unsigned long shmmax, shmmin, shmmni, shmseg, shmall;
#endif
glibtop_init_s (&server, GLIBTOP_SYSDEPS_SHM_LIMITS, 0);

View File

@@ -15,6 +15,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <mntent.h>
/*
@@ -25,66 +26,102 @@
static char *
get_partition(const char *mountpoint)
static gboolean
get_device(glibtop* server, const char *mountpoint,
char* device, size_t device_size)
{
FILE *partitions;
char *name = NULL;
char line[1024];
struct stat statb;
const struct mntent *mnt;
FILE *fp;
gboolean found = FALSE;
if(stat(mountpoint, &statb) == -1)
return NULL;
if((partitions = fopen("/proc/partitions", "r")) == NULL)
return NULL;
while(fgets(line, sizeof line, partitions))
{
unsigned major, minor;
char dev[32];
if(sscanf(line, "%u %u %*u %31s", &major, &minor, dev) != 3)
continue;
if(MKDEV(major, minor) != statb.st_dev)
continue;
name = g_strdup(dev);
break;
if (!(fp = setmntent(MOUNTED, "r"))) {
glibtop_warn_io_r(server, "Could not open %s", MOUNTED);
goto out;
}
fclose(partitions);
return name;
while ((mnt = getmntent(fp)))
{
if (!strcmp(mountpoint, mnt->mnt_dir)) {
if (!strncmp(mnt->mnt_fsname, "/dev/", 5)) {
g_strlcpy(device, mnt->mnt_fsname + 5, device_size);
found = TRUE;
}
break;
}
}
endmntent(fp);
out:
return found;
}
static void
get_sys_path(const char *device, char **stat_path, const char **parse_format)
/*
TRUE if device is like "hda3" and then set prefix to "hda".
*/
static gboolean
is_partition(const char* device, char* prefix, size_t prefix_size)
{
if(g_str_has_prefix(device, "hd") || g_str_has_prefix(device, "sd"))
{
char *prefix;
char *path;
size_t offset;
g_strlcpy(prefix, device, prefix_size);
offset = strcspn(device, "0123456789");
for ( ; *prefix; prefix++) {
if (isdigit(*prefix)) {
*prefix = '\0';
return TRUE;
}
}
prefix = g_strdup(device);
prefix [offset] = '\0';
return FALSE;
}
path = g_strdup_printf("/sys/block/%s/%s/stat",
prefix, device);
g_free(prefix);
/*
Bug #539360.
/sys/.../stat format is partially defined in
linux/Documentation/block/stat.txt (looks outdated). Before linux
2.5.25, /sys/block/%s/stat and /sys/block/%s/%s/stat were not the
same, but the following commit changed the latter to have the same
format and broke compatibility.
*stat_path = path;
*parse_format = "%*llu %llu %*llu %llu";
Commit 34e8beac92c27d292938065f8375842d2840767c
Author: Jerome Marchand <jmarchan@redhat.com>
Date: Fri Feb 8 11:04:55 2008 +0100
Enhanced partition statistics: sysfs
Reports enhanced partition statistics in sysfs.
Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
fs/partitions/check.c | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
*/
static void
get_sys_path(glibtop* server, const char *device, char **stat_path, const char **parse_format)
{
const char* linux_2_6_25_format = "%*llu %*llu %llu %*llu"
"%*llu %*llu %llu %*llu";
char prefix[32];
if (is_partition(device, prefix, sizeof prefix)) {
*stat_path = g_strdup_printf("/sys/block/%s/%s/stat",
prefix, device);
if (server->os_version_code < LINUX_VERSION_CODE(2, 6, 25))
*parse_format = "%*llu %llu %*llu %llu";
else
*parse_format = linux_2_6_25_format;
}
else
{
*stat_path = g_strdup_printf("/sys/block/%s/stat", device);
*parse_format = "%*llu %*llu %llu %*llu %*llu %*llu %llu";
if (server->os_version_code < LINUX_VERSION_CODE(2, 6, 25))
*parse_format = "%*llu %*llu %llu %*llu %*llu %*llu %llu";
else
*parse_format = linux_2_6_25_format;
}
}
@@ -92,30 +129,29 @@ get_sys_path(const char *device, char **stat_path, const char **parse_format)
static void linux_2_6_0(glibtop *server, glibtop_fsusage *buf, const char *path)
{
char *device;
char *filename;
char *filename = NULL;
const char *format;
int ret;
char buffer[BUFSIZ];
char device[64];
device = get_partition(path);
if(!device) return;
if (!get_device(server, path, device, sizeof device))
goto out;
get_sys_path(device, &filename, &format);
g_free(device);
get_sys_path(server, device, &filename, &format);
ret = try_file_to_buffer(buffer, sizeof buffer, filename);
if(ret < 0) return;
if (ret < 0) goto out;
if (sscanf(buffer, format, &buf->read, &buf->write) != 2) {
glibtop_warn_io_r(server, "Could not parse %s", filename);
return;
goto out;
}
g_free(filename);
buf->flags |= (1 << GLIBTOP_FSUSAGE_READ) | (1 << GLIBTOP_FSUSAGE_WRITE);
out:
g_free(filename);
}

View File

@@ -67,14 +67,18 @@ enum TRY_FILE_TO_BUFFER
TRY_FILE_TO_BUFFER_READ = -2
};
/*
* Doesn't handle bufsiz == 0
*/
int try_file_to_buffer(char *buffer, size_t bufsiz, const char *format, ...)
{
char path[4096];
int fd;
ssize_t len;
size_t len = 0;
ssize_t nread = 0;
va_list pa;
if (bufsiz <= sizeof(char*))
if (G_UNLIKELY(bufsiz <= sizeof(char*)))
g_warning("Huhu, bufsiz of %lu looks bad", (gulong)bufsiz);
va_start(pa, format);
@@ -84,15 +88,31 @@ int try_file_to_buffer(char *buffer, size_t bufsiz, const char *format, ...)
va_end(pa);
bufsiz--; /* reserve 1 for trailing NUL */
buffer [0] = '\0';
if((fd = open (path, O_RDONLY)) < 0)
return TRY_FILE_TO_BUFFER_OPEN;
len = read (fd, buffer, bufsiz - 1);
while (len < bufsiz) {
nread = read (fd, buffer + len, bufsiz - len);
if (G_UNLIKELY(nread < 0)) {
if (errno == EINTR)
continue;
else
break;
}
len += nread;
if (nread == 0)
break;
}
close (fd);
if (len < 0)
if (nread < 0)
return TRY_FILE_TO_BUFFER_READ;
buffer [len] = '\0';