Compare commits

..

4 Commits

Author SHA1 Message Date
Benoît Dejean
f73649ea24 Updated. 2004-07-13 12:53:08 +00:00
Benoît Dejean
3bc207f6df Updated.
* am.po:
	* ar.po:
	* az.po:
	* be.po:
	* bg.po:
	* bn.po:
	* ca.po:
	* cs.po:
	* cy.po:
	* da.po:
	* de.po:
	* el.po:
	* en_CA.po:
	* en_GB.po:
	* es.po:
	* et.po:
	* eu.po:
	* fa.po:
	* fi.po:
	* fr.po:
	* ga.po:
	* gl.po:
	* gu.po:
	* he.po:
	* hi.po:
	* hr.po:
	* hu.po:
	* id.po:
	* it.po:
	* ja.po:
	* ko.po:
	* lt.po:
	* lv.po:
	* mk.po:
	* ml.po:
	* mn.po:
	* ms.po:
	* nl.po:
	* nn.po:
	* no.po:
	* pa.po:
	* pl.po:
	* pt.po:
	* pt_BR.po:
	* ro.po:
	* ru.po:
	* sk.po:
	* sl.po:
	* sq.po:
	* sr.po:
	* sr@Latn.po:
	* sv.po:
	* ta.po:
	* tr.po:
	* uk.po:
	* vi.po:
	* zh_CN.po:
	* zh_TW.po: Updated.
2004-07-13 12:50:00 +00:00
Benoît Dejean
6f4f70853d Updated 2004-07-12 05:56:26 +00:00
Benoît Dejean
c73d0eb3c9 version 2.6.1
* configure.in: version 2.6.1
2004-07-11 21:01:27 +00:00
285 changed files with 13211 additions and 11660 deletions

View File

@@ -39,4 +39,3 @@ INSTALL
install-sh
missing
mkinstalldirs
libgtopconfig.h

View File

@@ -1,3 +1,2 @@
Martin Baulig (martin@home-of-linux.org)
Drazen Kacar (dave@srce.hr)
Benoît Dejean (tazforever@dlfp.org)

494
ChangeLog
View File

@@ -1,328 +1,6 @@
2004-11-30 Benoît Dejean <tazforever@dlfp.org>
2004-06-13 Benoît Dejean <tazforever@dlfp.org>
* NEWS:
* configure.in: released 2.9.0
2004-11-22 Benoît Dejean <tazforever@dlfp.org>
* AUTHORS:
* MAINTAINERS: UTF-8-ified.
* acconfig.h:
* acinclude.m4:
* configure.in:
* kernel/ChangeLog:
* kernel/sysctl/.cvsignore:
* kernel/sysctl/Makefile:
* kernel/sysctl/libgtop.c:
* kernel/sysctl/libgtop.h:
* kernel/sysctl/libgtop_syms.c:
* kernel/sysctl/main.c:
* kernel/sysctl/patch-2.2.1:
* kernel/sysctl/patch-2.2.x:
* kernel/table.h:
* kernel/table20/Makefile:
* kernel/table20/README:
* kernel/table20/entry-i386.S:
* kernel/table20/kernel.patch:
* kernel/table20/main.c:
* kernel/table20/unistd-i386.h:
* kernel/table20/version.h:
* kernel/table21/.cvsignore:
* kernel/table21/Makefile:
* kernel/table21/README:
* kernel/table21/entry-i386.S:
* kernel/table21/main.c:
* kernel/table21/module.c:
* kernel/table21/unistd-i386.h:
* kernel/table21/version.h:
* kernel/version.h:
* libgtop-sysdeps.m4:
* sysdeps/Makefile.am:
* sysdeps/kernel/.cvsignore:
* sysdeps/kernel/ChangeLog:
* sysdeps/kernel/Makefile.am:
* sysdeps/kernel/close.c:
* sysdeps/kernel/cpu.c:
* sysdeps/kernel/glibtop_private.h:
* sysdeps/kernel/glibtop_server.h:
* sysdeps/kernel/kernel.h:
* sysdeps/kernel/kernel.s:
* sysdeps/kernel/loadavg.c:
* sysdeps/kernel/mem.c:
* sysdeps/kernel/msg_limits.c:
* sysdeps/kernel/netload.c:
* sysdeps/kernel/open.c:
* sysdeps/kernel/ppp.c:
* sysdeps/kernel/procargs.c:
* sysdeps/kernel/procdata.c:
* sysdeps/kernel/prockernel.c:
* sysdeps/kernel/proclist.c:
* sysdeps/kernel/procmap.c:
* sysdeps/kernel/procmem.c:
* sysdeps/kernel/procsegment.c:
* sysdeps/kernel/procsignal.c:
* sysdeps/kernel/procstate.c:
* sysdeps/kernel/proctime.c:
* sysdeps/kernel/procuid.c:
* sysdeps/kernel/sem_limits.c:
* sysdeps/kernel/shm_limits.c:
* sysdeps/kernel/siglist.c:
* sysdeps/kernel/swap.c:
* sysdeps/kernel/sysinfo.c:
* sysdeps/kernel/uptime.c: Removed kernel patch and implementation.
2004-11-18 Benoît Dejean <tazforever@dlfp.org>
* Makefile.am: Forgot to ship libgtopconfig.h.
2004-11-18 Benoît Dejean <tazforever@dlfp.org>
* LIBGTOP-VERSION:
* libgtop-mirror.sh: Removed unused files.
* libgtopconfig.h.in: Added.
* Makefile.am:
* configure.in:
* glibtop.h: Added libgtopconfig.h and LIBGTOP_VERSION_CHECK(X, Y, Z).
This can be used in build tests.
2004-11-15 Benoît Dejean <tazforever@dlfp.org>
* copyright.txt: Added myself.
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
* include/glibtop/procargs.h:
* sysdeps/common/procargs.c: (glibtop_get_proc_argv_l): Removed SUID
wrappers because glibtop_proc_argv_l is a client-side function that wraps
glibtop_get_proc_args.
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
* structures.def: Removed old functions. OMG, everything is really broken
here :/
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
* configure.in: Bumped to 2.9.0
* configure.in:
* examples/.cvsignore:
* examples/Makefile.am:
* examples/netlist.c: (main):
* features.def:
* include/glibtop/Makefile.am:
* include/glibtop/command.h:
* include/glibtop/netlist.h:
* include/glibtop/sysdeps.h:
* include/glibtop/union.h:
* include/glibtop/version.h:
* src/daemon/version.c:
* sysdeps/linux/Makefile.am:
* sysdeps/linux/netlist.c: (glibtop_init_netlist_s),
(glibtop_get_netlist_s):
* sysdeps/names/Makefile.am:
* sysdeps/names/netlist.c:
* sysdeps/solaris/Makefile.am:
* sysdeps/solaris/netlist.c: (glibtop_init_netlist_s),
(glibtop_get_netlist_s): Added new function glibtop_get_netlist().
Implemented for linux and solaris. Doc needed.
2004-10-11 Benoît Dejean <tazforever@dlfp.org>
* NEWS: Released 2.8.1.
2004-10-10 Benoît Dejean <tazforever@dlfp.org>
* lib/init.c: Replaced C99 initializer.
* lib/read.c: (do_read): 1-line cleanup.
2004-10-09 Benoît Dejean <tazforever@dlfp.org>
* configure.in: Depends on glib 2.4.0
2004-09-25 Benoît Dejean <tazforever@dlfp.org>
* glibtop.h: Added missing include <glibtop/close.h>.
2004-09-22 Benoît Dejean <tazforever@dlfp.org>
* configure.in: CFLAGS: Removed -W, added -Winline.
2004-09-14 Gora Mohanty <gmohanty@cvs.gnome.org>
* configure.in: Added 'or' to ALL_LINGUAS.
2004-09-13 Benoît Dejean <tazforever@dlfp.org>
* configure.in: bumped to 2.8.1.
* sysdeps/common/fsusage.c:
* sysdeps/common/gnuslib.c: (glibtop_make_connection),
(connect_to_unix_server), (glibtop_internet_addr):
* sysdeps/linux/glibtop_server.c: (get_pageshift):
* sysdeps/linux/glibtop_server.h:
* sysdeps/linux/open.c: (glibtop_open_s):
* sysdeps/linux/ppp.c: (is_ISDN_on): Cleanups. Thanks to Kjartan Maraas.
Closes #151557.
2004-09-13 Benoît Dejean <tazforever@dlfp.org>
* NEWS:
* configure.in: 2.8.0
2004-08-30 Benoît Dejean <tazforever@dlfp.org>
* NEWS: Released 2.7.92.
2004-08-28 Benoît Dejean <tazforever@dlfp.org>
* backends/server/command.c: (glibtop_call_i): Zeroed all args.
* configure.in: Bumped soname (thanks to seb128 and Dodji even if i've
fully understand everything.
* include/glibtop/array.h:
* include/glibtop/compat_10.h:
* include/glibtop/glib-arrays.h:
* include/glibtop/interfaces.h:
* include/glibtop/proccwd.h:
* lib/glib-arrays.c:
* sysdeps/names/interfaces.c:
* sysdeps/names/proccwd.c: Got rid of never-used / never-implemented files.
2004-08-28 Akagic Amila <bono@linux.org.ba>
* configure.in: Added 'bs' to ALL_LINGUAS.
2004-08-22 Benoît Dejean <tazforever@dlfp.org>
* lib/command.c: (glibtop_call_l): Zeroed all args.
2004-08-21 Kjartan Maraas <kmaraas@gnome.org>
* configure.in: Add «nb» to ALL_LINGUAS.
2004-08-15 Benoît Dejean <tazforever@dlfp.org>
* NEWS:
* configure.in: LibGTop 2.7.91.
2004-08-09 Benoît Dejean <tazforever@dlfp.org>
* configure.in: Added HAVE_IFADDRS_H
* sysdeps/linux/netload.c: (glibtop_get_netload_s): Disable IPv6
support is ifaddrs.h is not available.
Closes #149376.
2004-08-09 Benoît Dejean <tazforever@dlfp.org>
* configure.in: Added -gnu89 to CFLAGS.
* examples/Makefile.am: Fixed LDFLAGS.
* sysdeps/common/fsusage.c: (glibtop_get_fsusage_s):
* sysdeps/linux/fsusage.c: (linux_2_6_0):
* sysdeps/linux/proctime.c: (glibtop_get_proc_time_s):
* sysdeps/linux/sysinfo.c: (init_sysinfo): Fixed C89 issues.
Closes #149375.
2004-08-03 Benoît Dejean <tazforever@dlfp.org>
* NEWS:
* configure.in: LibGTop 2.7.90.
2004-07-20 Benoît Dejean <tazforever@dlfp.org>
* configure.in: LibGTop 2.7.5.
2004-07-20 Benoît Dejean <tazforever@dlfp.org>
* NEWS:
* configure.in: Released LibGTop 2.7.4.
2004-07-18 Benoît Dejean <tazforever@dlfp.org>
* doc/reference.texi:
* include/glibtop/command.h:
* include/glibtop/glib-arrays.h:
* include/glibtop/proclist.h:
* lib/glib-arrays.c: (glibtop_get_proclist_as_array_l):
* lib/lib.pl:
* scripts/c_types.pl:
* src/daemon/main.c: (handle_parent_connection):
* src/daemon/slave.c: (handle_slave_connection):
* support/mkstemp.c:
* sysdeps/aix/proclist.c: (glibtop_get_proclist_s):
* sysdeps/freebsd/cpu.c: (glibtop_get_cpu_p):
* sysdeps/freebsd/prockernel.c: (glibtop_get_proc_kernel_p):
* sysdeps/freebsd/proclist.c: (glibtop_get_proclist_p):
* sysdeps/freebsd/procmem.c: (glibtop_get_proc_mem_p):
* sysdeps/kernel/proclist.c: (glibtop_get_proclist_s):
* sysdeps/linux/proclist.c: (glibtop_get_proclist_s):
* sysdeps/osf1/proclist.c: (glibtop_get_proclist_p):
* sysdeps/solaris/proclist.c: (glibtop_get_proclist_s):
* sysdeps/stub/proclist.c: (glibtop_get_proclist_s):
* sysdeps/stub_suid/proclist.c: (glibtop_get_proclist_p):
* sysdeps/sun4/proclist.c: (glibtop_get_proclist_p): Glibify a bit more.
Closes #147618.
2004-07-17 Benoît Dejean <tazforever@dlfp.org>
* include/glibtop/fsusage.h: Added read, write. This members provides
total read and write in bytes since boot_time.
* include/glibtop/netload.h: Added hwaddress : provides harware address,
eg MAC address. mtu, address and subnet are now guint32.
2004-07-15 Benoît Dejean <tazforever@dlfp.org>
* include/glibtop/procstate.h: Added GLIBTOP_PROCESS_DEAD constant.
2004-07-07 Benoît Dejean <tazforever@dlfp.org>
* include/glibtop/procargs.h: Added new glibtop_get_proc_argv*() functions.
These are more easier to use than glibtop_get_proc_args*(). They return
a NULL-terminated array of string (like main's char* argv[]).
2004-07-07 Benoît Dejean <tazforever@dlfp.org>
* include/glibtop/netinfo.h:
* structures.def:
* sysdeps/names/netinfo.c: Removed netinfo.[ch] that were never used.
2004-07-03 Benoît Dejean <tazforever@dlfp.org>
* sysdeps/names/fsusage.c: Added missing fsusage names.
2004-07-03 Benoît Dejean <tazforever@dlfp.org>
* glibtop.h: Moved foward declaration of glibtop to break circular
#includes dependencies.
2004-06-18 Benoît Dejean <tazforever@dlfp.org>
* include/glibtop/error.h: Also tries C99 __VA_ARGS__ before using
functions.
* include/glibtop/error.h: Moved 8 static error functions to
sysdeps/common/error.c. This is the end of an big useless code
bloat : expect ~8KB of object size reduction.
* include/glibtop/procuid.h: s/int/gint32/g
* lib/errors.c: (glibtop_error_quark):
* lib/read.c: (do_read), (glibtop_read_l):
* lib/read_data.c: (glibtop_read_data_l): Minor cleanups.
* sysdeps/names/netload.c:
* include/glibtop/netload.h: Added IPv6 feature : provides address,
prefix and scope. This breaks the ABI. Not documented yet : check
this file.
* configure.in: version 2.6.1
2004-06-13 Benoît Dejean <tazforever@dlfp.org>
@@ -333,9 +11,11 @@
* include/glibtop/fsusage.h: block_size is now defined as a guint32
instead of a fuzzy gint.
* lib/sysdeps.c: (glibtop_get_sysdeps_r): Small cleanup.
2004-06-12 Benoît Dejean <tazforever@dlfp.org>
* lib/init.c: Added missing initializer.
2004-06-09 Benoît Dejean <TazForEver@dlfp.org>
@@ -346,7 +26,7 @@
* lib/parameter.c:
* support/popt.c: (poptGetContext): Cleaned.
* support/vsnprintf.c: s/strncpy/g_strlcpy
2004-05-28 Benoît Dejean <TazForEver@free.fr>
@@ -459,7 +139,7 @@
2004-03-05 Bastien Nocera <hadess@hadess.net>
* include/glibtop/procmap.h: patch by Benoît Dejean <bnet@ifrance.com>
* include/glibtop/procmap.h: patch by Benoit Dejean <bnet@ifrance.com>
to break the API, I mean, to make it easier to generate Python bindings
(Closes: #129701)
@@ -502,8 +182,8 @@
2004-02-02 Sebastien Bacher <seb128@debian.org>
* sysdeps/linux/mem.c: (glibtop_get_mem_s): patch from
Benoît Dejean <bnet@ifrance.com> to fix libtop_mem.used
* sysdeps/linux/mem.c: (glibtop_get_mem_s): patch from
Benoît Dejean <bnet@ifrance.com> to fix libtop_mem.used
and glibtop_mem.shared values (Closes: #129863).
Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
@@ -873,7 +553,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
2003-01-16 Daniel Yacob <locales@geez.org>
* configure.in: added am to ALL_LINGUAS
2003-01-12 Kevin Vandersloot <kfv101@psu.edu>
* configure.in: release 2.0.1
@@ -886,7 +566,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* Framework for AIX support
2002-08-07 Vincent Berger <Vincent.Berger@ext.bull.net>
2002-08-07 Vincent Berger <Vincent.Berger@ext.bull.net>
* support/: Add alloca management for AIX
* configure.in: correct checking for nm
@@ -968,7 +648,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* acininclude.m4: add back the support stuf but make it really
work
* configure.in: bump version number, add back GNOME_SUPPORT
* configure.in: bump version number, add back GNOME_SUPPORT
check since that was causing a build failure
* release 1.90.1
@@ -1015,7 +695,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* port stable libgtop to GNOME 2.0. Too much to detail.
pkgconfig is now used. Libs are named libgtop-2.0 etc for
parallel install.
parallel install.
2001-10-17 Abel Chueng <maddog@linux.org.hk>
@@ -1161,7 +841,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
1999-09-22 Kjartan Maraas <kmaraas@online.no>
* configure.in: Added "da" to ALL_LINGUAS.
1999-09-19 Martin Baulig <martin@home-of-linux.org>
* libgtopConf.sh.in: Added MODULE_VERSION on Miguel's
@@ -1386,7 +1066,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
contain all possible features.
* configure.in: LibGTop will now require GLIB >= 1.1.12.
1999-01-05 Martin Baulig <martin@home-of-linux.org>
* configure.in: Make it abort if the `dc' utility is not installed.
@@ -1552,7 +1232,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
here.
[NOTE for people porting libgtop:
Please use all 64 bits of the `guint64' and not just 32 - the
signal number (as it is used in calls to kill () ...) should be
a bit-index into this field; if a process ignores for instance
@@ -1733,7 +1413,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* LIBGTOP-VERSION: Set version number to 0.25.0. There is now really
a feature freeze until it's released, bug fixes only ...
* include/glibtop/procmap (glibtop_map_entry): Added `flags' and
`filename' fields.
@@ -1741,7 +1421,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* libgtopConf.sh.in: Likewise.
* libgtopConf.sh.in: Added `LIBGTOP_EXTRA_LIBS'.
* sysdeps/linux/procmap.c: Added implementation.
1998-08-17 Martin Baulig <martin@home-of-linux.org>
@@ -1831,7 +1511,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* LIBGTOP-VERSION: Added `LIBGTOP_SERVER_VERSION'.
* src/daemon/gnuserv.c, lib/open.c: Improved version check between
client and server.
* include/glibtop/output.h: Removed.
* sysdeps/stub_suid: New directory. This is mainly used as example
@@ -1842,7 +1522,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* sysdeps/osf1/*.c (glibtop_init_<no-suid-feature>_s): New functions.
(glibtop_init_<suid-feature>_p): New functions.
1998-08-07 Martin Baulig <martin@home-of-linux.org>
* glibtop.h (_glibtop): New fields `error_method', `sysdeps' and
@@ -2018,7 +1698,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* lib/open.c (glibtop_open_l): Unconditionally calling
`glibtop_init_s' after server initialization.
* lib/lib.awk: Removed references to functions from
`libgtop_sysdeps_suid.la' to avoid undefined symbols.
@@ -2039,20 +1719,20 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* sysdeps/linux/close.c (glibtop_close_s): Renamed this
function from `glibtop_close_l'.
* sysdeps/osf1/Makefile.am (lib_LTLIBRARIES): Added
`libgtop_sysdeps_suid.la' for the suid server.
* sysdeps/osf1/open_suid.c (glibtop_open_p): New file.
Contains all stuff that was formerly in `open.c'.
* sysdeps/osf1/open.c: Moved everything from here into
the new file `open_suid.c'.
* sysdeps/osf1/open.c (glibtop_open_s): New function.
* sysdeps/osf1/close_suid.c (glibtop_close_p): New file.
* sysdeps/osf1/close.c (glibtop_close_s): New function.
* sysdeps/osf1/*.c: Using the new init, open and close
@@ -2095,7 +1775,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
1998-07-18 Martin Baulig <martin@home-of-linux.org>
* lib/{init, open}.c: Added `GLIBTOP_METHOD_PIPE' again.
* src/server/main.c: Removed gettext stuff.
1998-07-17 Martin Baulig <baulig@Stud.Informatik.uni-trier.de>
@@ -2104,10 +1784,10 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
library functions with '_l' prefix instead of directly calling
sysdeps code with '_r' prefix. This is necessary for client/server
mode.
* lib/lib.awk (glibtop_get_*): Now correctly using
`(1 << GLIBTOP_SYSDEPS_*)' instead of `GLIBTOP_SYSDEPS_*'.
* sysdeps/sun4/proclist.c (glibtop_get_proclist_p): Added
implementation of that feature.
@@ -2115,7 +1795,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* sysdeps/sun4/proc_{mem, time, signal, kernel, segment}.c: Added
some basic implementation; this isn't really working yet.
* sysdeps/linux/sem_limits.c: Applied patch from Albert K T Hui
<avatar@deva.net> for glibc 2.1.
@@ -2135,7 +1815,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
1998-07-14 Martin Baulig <baulig@Stud.Informatik.uni-trier.de>
* src/daemon/server_config.h.in: Added some comments.
* src/daemon/server_config.pl: New file. This is a script you can use
to create `server_config.h'. It will query you for some configuration
options.
@@ -2160,11 +1840,11 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* src/daemon/slave.c: New file.
* src/daemon/*.c: Done some more work on the daemon.
* sysdeps/common/gnuslib.c: Removed IPC stuff.
* include/glibtop/gnuserv.h: Removed IPC stuff.
* include/glibtop/command.h (glibtop_response_unit): Added
typedef for `struct _glibtop_response_unit'.
@@ -2194,7 +1874,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* sysdeps/linux/procstate.c: Added missing `fclose'.
* include/glibtop/gnuserv.h (UNIX_DOMAIN_SOCKETS): Defining.
* include/glibtop/open.h (GLIBTOP_METHOD_UNIX): Added.
* lib/init.c: Added new method `GLIBTOP_METHOD_UNIX'.
@@ -2282,12 +1962,12 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* lib/xmalloc.c (g_strdup): New function.
* lib/gnuclient.c: Removed.
* lib/{command, write, read}.c: Changed client <-> server
interface to make less system calls.
* src/daemon/main.c: Changed server side of interface.
* include/glibtop/command.h (struct _glibtop_response): New
structure to return data from the server to the client.
@@ -2358,7 +2038,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* include/glibtop/sysdeps.h (glibtop_types_sysdeps):
Forgot to change declaration on Jun 6.
* sysdeps/names/sysdeps.c (glibtop_types_sysdeps):
Using numeric constants from `types.h' instead of string
constants; forgot to change this on Jun 6. Added information
@@ -2385,30 +2065,30 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
1998-06-07 Martin Baulig <martin@home-of-linux.org>
* examples/ChangeLog: New file.
* macros/gnome-libgtop-sysdeps.m4: Include
`glibtop_machine.h' for Linux.
* sysdeps/linux/glibtop_machine.h: New file.
* sysdeps/linux/*.c: Performance optimizations. We now use
`open' and `read' instead of `fopen' and `fscanf'.
* *.[ch]: Using single underscore instead of two underscores
for function prefixes (regexp: ``s,__([rspl])\b,_$1,g'') to
avoid ambiguity with mangled C++ names.
1998-06-06 Martin Baulig <martin@home-of-linux.org>
* sysdeps/osf1/glibtop_server.h: New file.
* sysdeps/osf1/*.c: renamed all functions implementing
features that don't need to be suid to '__s'.
* sysdeps/names/procdata.c: Removed that file.
* include/glibtop/*.h (glibtop_types_*): Changed declaration.
* glibtop.h: Added `#include <types.h>'.
* include/glibtop/types.h: New file - numeric constants
@@ -2434,10 +2114,10 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
1998-06-03 Martin Baulig <baulig@merkur.uni-trier.de>
* libgtop.spec: New file.
* Makefile.am (EXTRA_DIST): Added `autogen.sh' and
`libgtop.spec'.
* configure.in (LIBGTOP_INCS): is now identically to
`LIBGTOP_GUILE_INCS'.
@@ -2474,7 +2154,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* NEWS: added more detailed description of today's and
yesterday's changes.
* include/glibtop/*.h: to use the ChangeLog entry from May 28:
'__l' is a function defined in the client part;
'__s' is a function defined in the sysdeps part and
@@ -2507,26 +2187,26 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* src/server/main.c: we now use the '__p' functions,
but only if the appropriate 'GLIBTOP_SUID_<feature>'
has a non-zero value.
* configure.in (@machine_incs@): always use
* configure.in (@machine_incs@): always use
`-I$(top_srcdir)/sysdeps/@sysdeps_dir@'; it's no
longer conditional.
* examples/Makefile.am: removed the '_linux' examples.
* sysdeps/linux/*.c: renamed all functions implementing
features to '__s'.
* lib/*.c: renamed all functions implementing features
to '__l'; we only emit code for those functions if the
corresponding 'GLIBTOP_SUID_<feature>' has a positive value.
* include/glibtop/*.h: added some new function suffixes:
'__l' is a function defined in the client part;
'__s' is a function defined in the sysdeps part and
'__p' is a function that needs special priviledges.
'__r' is mapped either on '__l' or on '__s'.
* sysdeps/linux/glibtop_server.h: New file -
defines system dependent constants 'GLIBTOP_SUID_<feature>'
being either 'GLIBTOP_SYSDEPS_<feature>'+1 depending upon
@@ -2592,9 +2272,9 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
'libgtop_use_machine_h', 'libgtop_guile_found',
'libgtop_want_names', 'libgtop_want_guile_names',
'libgtop_want_examples'.
* gtopConf.sh.in: renamed to 'libgtopConf.sh.in'.
* acinclude.m4 (AC_LC_SYSDEPS): rewrote that macro -
moved some of the code to 'macros/gnome-libgtop-sysdeps.m4';
renamed variables: look at the ChangeLog entry for the
@@ -2657,7 +2337,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* NEWS: added more detailed description of
today's changes.
* examples/third.c: added required check for
'GLIBGTOP_GUILE_NAMES'.
@@ -2691,20 +2371,20 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* sysdeps/osf1/procuid.c (glibtop_get_proc_uid__r):
added implementation for DEC OSF/1.
* sysdeps/sun4/uptime.c: forgot to checkin
* sysdeps/sun4/loadavg.c: forgot to checkin
* sysdeps/osf1/uptime.c: forgot to checkin
* sysdeps/osf1/loadavg.c: forgot to checkin
1998-05-19 Martin Baulig <baulig@merkur.uni-trier.de>
* sysdeps/stub/uptime.c: forgot this file all the
time - stub for glibtop_uptime
* sysdeps/stub/loadavg.c: forgot this file all the
time - stub for glibtop_loadavg
@@ -2723,7 +2403,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* include/glibtop: added references to
'glibtop_types_* []' and 'glibtop_guile_types_*'.
* sysdeps/guile/names: added implementations of
'glibtop_types_*' and 'glibtop_description_*'.
@@ -2738,7 +2418,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* sysdeps/guile: all guile functions now return
the 'flags' member as first element of the list.
* include/glibtop/procstate.h (glibtop_proc_state):
* include/glibtop/procstate.h (glibtop_proc_state):
added 'uid' and 'gid' members; the library tries hard
to set those values; it will never set the corresponding
'flags' value unless the values are correct.
@@ -2780,7 +2460,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* sysdeps/guile/sysdeps.c: changes to reflect the
new flags of procdata.
* sysdeps/common/sysdeps.c: changes to reflect the
new flags of procdata.
@@ -2840,9 +2520,9 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* src/mico/proclist.idl: new file - simple mico interface
* src/version.c: moved to src/server
* src/output.c: moved to src/server
* src/main.c: moved to src/server
1998-04-11 Martin Baulig <martin@home-of-linux.org>
@@ -2912,7 +2592,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
this directory
* sysdeps/common/sem_limits.c: moved to sysdeps/names
* sysdeps/common/msg_limits.c: moved to sysdeps/names
* sysdeps/common/sem_limits.c: moved to sysdeps/names
@@ -2946,25 +2626,25 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
some arbitrary data
* lib/proclist.c: new file - library function for glibtop_proclist
* sysdeps/linux/proclist.c: new file - implementation for glibtop_proclist
* sysdeps/stub/proclist.c: new file - stub for glibtop_proclist
* include/glibtop/proclist.h: new file - glibtop_proclist
* include/glibtop/union.h: new file
* lib/read_data.c: new file
* include/glibtop/read_data.h: new file
* sysdeps/common/xmalloc.c: new file - moved here from lib
* sysdeps/common/error.c: new file - moved here from lib
* lib/xmalloc.c: moved to sysdeps/common
* lib/error.c: moved to sysdeps/common
1998-04-05 Martin Baulig <martin@home-of-linux.org>
@@ -3001,9 +2681,9 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* sysdeps/common/msg_limits.c: new file - limit names
* sysdeps/common/sem_limits.c: new file - limit names
* include/glibtop/shm_limits.h: new file - glibtop_shm_limits
* include/glibtop/msg_limits.h: new file - glibtop_msg_limits
* include/glibtop/sem_limits.h: new file - glibtop_sem_limits
@@ -3028,13 +2708,13 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* lib/ipc_limits.c: new file - library function for
glibtop_ipc_limits
* sysdeps/linux/ipc_limits.c: new file - implementation for
glibtop_ipc_limits
* sysdeps/stub/ipc_limits.c: new file - stub for
glibtop_ipc_limits
* include/glibtop/ipc_limits.h: new file - glibtop_ipc_limits -
sysv ipc limits
@@ -3042,7 +2722,7 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* lib/uptime.c: new file - library function for
glibtop_uptime
* lib/loadavg.c: new file - library function for
glibtop_loadavg
@@ -3066,14 +2746,14 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* sysdeps/stub/sysinfo.c: removed - splitted into
uptime.c and loadavg.c
* src/main.c: added GLIBTOP_CMND_UPTIME and
GLIBTOP_CMND_LOADAVG implementation
* include/glibtop/loadavg.h: new file - glibtop_loadavg
* include/glibtop/uptime.h: new file - glibtop_uptime
* include/glibtop/loadavg.h: removed - splitted into
uptime.h and loadavg.h
@@ -3082,10 +2762,10 @@ Wed Jan 7 02:23:28 2004 Jonathan Blandford <jrb@gnome.org>
* lib/sysdeps.c: new file - library function for glibtop_sysdeps
* sysdeps/linux/sysdeps.c: new file - copied from sysdeps/stub
* sysdeps/stub/sysdeps.c: new file - implementation for glibtop_sysinfo -
this is really the implementation and not just a stub
* src/sysdeps.c: moved to sysdeps/stub - this file is now part
of the library

28
LIBGTOP-VERSION Normal file
View File

@@ -0,0 +1,28 @@
# Making releases:
# LIBGTOP_MICRO_VERSION += 1;
# LIBGTOP_INTERFACE_AGE += 1;
# LIBGTOP_BINARY_AGE += 1;
# if any functions have been added, set LIBGTOP_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set LIBGTOP_BINARY_AGE and LIBGTOP_INTERFACE_AGE to 0.
#
LIBGTOP_MAJOR_VERSION=1
LIBGTOP_MINOR_VERSION=90
LIBGTOP_MICRO_VERSION=0
LIBGTOP_INTERFACE_AGE=0
LIBGTOP_BINARY_AGE=0
# you can set this to `-snap' for instance to create
# a `libgtop-1.x.y-snap.tar.gz' tarball.
LIBGTOP_VERSION_SUFFIX=
# Increase each time you change the client/server protocol.
LIBGTOP_SERVER_VERSION=5
# Don't change this
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
LIBGTOP_VERSION_CODE=`echo "$LIBGTOP_MAJOR_VERSION 1000000 * $LIBGTOP_MINOR_VERSION 1000 * + $LIBGTOP_MICRO_VERSION + p q" | dc`
# For automake.
VERSION=$LIBGTOP_VERSION$LIBGTOP_VERSION_SUFFIX
PACKAGE=libgtop

View File

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

View File

@@ -1,13 +1,13 @@
SUBDIRS = po misc include sysdeps lib src examples doc
libgtopinclude_HEADERS = glibtop.h libgtopconfig.h
libgtopinclude_HEADERS = glibtop.h
libgtopincludedir = $(includedir)/libgtop-2.0
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \
features.def libgtopconfig.h.in \
LIBGTOP-VERSION features.def \
libgtop-sysdeps.m4 README \
libgtop-2.0.pc.in acinclude.m4
libgtop-mirror.sh libgtop-2.0.pc.in acinclude.m4
dist-hook:
cp libgtop.spec $(distdir)

57
NEWS
View File

@@ -1,52 +1,17 @@
December 30, 2004: Overview of Changes from 2.8.1 to 2.9.0
=========================================================
* glibtop_get_netload : Fixed segfault on linux with ppp devices.
* NEW glibtop_get_netlist : retrieves the list of all available interfaces.
* NEW LIBGTOP_CHECK_VERSION(major, minor, micro)
* Removed dead kernel patch and implementation.
* Cleanups on Linux and Solaris.
October 11, 2004: Overview of Changes from 2.8.0 to 2.8.1
=========================================================
* Improved Solaris and AIX support.
August 13, 2004: Overview of Changes from 2.7.92 to 2.8.0
=========================================================
* No changes
August 30, 2004:
===============
* Applied some *BSD patches.
* Removed old files.
August 15, 2004:
===============
* Fixed compilation with C89-only compilers and old libc.
August 3, 2004:
July 11, 2004:
==============
* Some cleanups.
* Fixed the behaviour of some linux proc_*() functions.
* Updated the documentation.
* Released LibGTop 2.6.1
July 19, 2004: Overview of Changes from 2.6.1 to 2.7.4
======================================================
* Plenty of code cleanups. Uninlined a lot of functions. ~5-10KB object size
reduction.
* Glibify a bit more.
* API changes:
- glibtop_fsusage provides total read and writes since boot_time.
- glibtop_netload provides hardware address. IPv6 enable.
- Added glibtop_get_proc_argv.
Work in progress :
* Finish glibtop_fsusage implementation for Linux.
* Some fuctions don't conform to the documentation, e.g. proctime.
- code cleanups.
- glibtop_mountlist()'s all_fs parameter now works.
- glibtop_uptime.boot_time is set on every arch.
- linux SMP support is fixed.
- Replaced unsafe strcpy by g_strlcpy.
March 11, 2004:
===============

View File

@@ -139,6 +139,7 @@
#undef NEED_LIBGTOP
#undef HAVE_LINUX_TABLE
#undef HAVE_LIBGTOP_SMP
#undef HAVE_XAUTH

View File

@@ -586,6 +586,53 @@ dnl define 'HAVE_GLIBTOP_MACHINE_H'.
dnl * 'libgtop_need_server' - is the server really needed? Defines 'NEED_LIBGTOP'
dnl if true; defines conditional 'NEED_LIBGTOP'.
AC_DEFUN([LIBGTOP_HACKER_TESTS],[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_ARG_WITH(linux-table,
[ --with-linux-table Use the table () function from Martin Baulig],
[linux_table="$withval"],[linux_table=auto])
case "$host_os" in
linux*)
if test $linux_table = yes ; then
AC_CHECK_HEADER(linux/table.h, linux_table=yes, linux_table=no)
elif test $linux_table = auto ; then
AC_MSG_CHECKING(for table function in Linux Kernel)
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <linux/unistd.h>
#include <linux/table.h>
#include <syscall.h>
static inline _syscall3 (int, table, int, type, union table *, tbl, const void *, param);
int
main (void)
{
union table tbl;
int ret;
ret = table (TABLE_VERSION, NULL, NULL);
if (ret == -1)
exit (-errno);
exit (ret < 1 ? ret : 0);
}
], linux_table=yes, linux_table=no, linux_table=no)
AC_MSG_RESULT($linux_table)
fi
if test $linux_table = yes ; then
AC_DEFINE(HAVE_LINUX_TABLE)
fi
;;
esac
])
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
AC_REQUIRE([AC_CANONICAL_HOST])
@@ -605,9 +652,11 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
linux_table=auto
if test x$hacker_mode = xyes ; then
LIBGTOP_HACKER_TESTS
fi
AM_CONDITIONAL(LINUX_TABLE, test $linux_table = yes)
AC_ARG_WITH(libgtop-smp,
[ --with-libgtop-smp Enable SMP support (default-auto)],[
@@ -639,9 +688,14 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
case "$host_os" in
linux*)
libgtop_sysdeps_dir=linux
libgtop_use_machine_h=no
libgtop_have_sysinfo=yes
if test x$linux_table = xyes ; then
libgtop_sysdeps_dir=kernel
libgtop_use_machine_h=no
else
libgtop_sysdeps_dir=linux
libgtop_use_machine_h=no
libgtop_have_sysinfo=yes
fi
libgtop_need_server=no
;;
freebsd*|netbsd*|openbsd*|bsdi*)

View File

@@ -1,7 +1,3 @@
2004-08-22 Benoît Dejean <tazforever@dlfp.org>
* server.c: (handle_slave_connection): Replaced //comment by /*C89*/.
2004-03-09 Bastien Nocera <hadess@hadess.net>
* command.c: (glibtop_call_i):
@@ -9,7 +5,7 @@
* marshal.pl:
* read_data.c: (glibtop_read_data_i):
* server.c: (handle_slave_connection): fix g_malloc usage on non-Linux
platforms (patch by Benoît Dejean <bnet@ifrance.com>)
platforms (patch by Benoit Dejean <bnet@ifrance.com>)
2003-10-20 Bastien Nocera <hadess@hadess.net>

View File

@@ -34,8 +34,14 @@ glibtop_call_i (glibtop_server *server, backend_server_private *priv,
size_t recv_size, void *recv_ptr,
int *retval_ptr)
{
glibtop_command cmnd = {0};
glibtop_response resp = {0};
glibtop_command cmnd;
glibtop_response resp;
#if 0
int retval;
#endif
memset (&cmnd, 0, sizeof (glibtop_command));
memset (&resp, 0, sizeof (glibtop_response));
cmnd.command = command;

View File

@@ -109,7 +109,7 @@ handle_slave_connection (int input, int output)
glibtop_command _cmnd, *cmnd = &_cmnd;
glibtop *server = glibtop_global_server;
/* glibtop_send_version_i (glibtop_global_server, output); */
// glibtop_send_version_i (glibtop_global_server, output);
while (do_read (input, cmnd, sizeof (glibtop_command))) {
size_t recv_size = 0, send_size = 0, recv_data_size = 0;

View File

@@ -7,13 +7,13 @@ AM_CONFIG_HEADER(config.h)
AC_CANONICAL_SYSTEM
LIBGTOP_MAJOR_VERSION=2
LIBGTOP_MINOR_VERSION=9
LIBGTOP_MICRO_VERSION=0
LIBGTOP_MINOR_VERSION=6
LIBGTOP_MICRO_VERSION=1
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION)
dnl increment if the interface has additions, changes, removals.
LIBGTOP_CURRENT=5
LIBGTOP_CURRENT=3
dnl increment any time the source changes; set to
dnl 0 if you increment CURRENT
@@ -22,7 +22,7 @@ LIBGTOP_REVISION=0
dnl increment if any interfaces have been added; set to 0
dnl if any interfaces have been removed. removal has
dnl precedence over adding, so set to 0 if both happened.
LIBGTOP_AGE=0
LIBGTOP_AGE=1
# you can set this to `-snap' for instance to create
# a `libgtop-1.x.y-snap.tar.gz' tarball.
@@ -123,7 +123,7 @@ else
fi
if test "x$enable_static" != xno; then
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $smp_static_examples pprint_static procargs_static df_static netlist netlist_static"
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $smp_static_examples"
else
static_targets=""
fi
@@ -134,7 +134,7 @@ AM_CONDITIONAL(ENABLE_SHARED, test x$enable_static = xyes)
AC_SUBST(static_targets)
AC_SUBST(smp_examples)
GLIB_REQUIRED=2.4.0
GLIB_REQUIRED=2.0.0
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
AC_SUBST(GLIB_CFLAGS)
@@ -148,11 +148,6 @@ else
AC_MSG_ERROR([libgtop requires the popt development libraries])
fi
AC_CHECK_HEADER(ifaddrs.h, [HAVE_IFADDRS_H=yes], [HAVE_IFADDRS_H=no])
if test x$HAVE_IFADDRS_H = xyes ; then
AC_DEFINE(HAVE_IFADDRS_H, 1, [defined if you have ifaddrs.h])
fi
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
@@ -255,7 +250,7 @@ AC_TYPE_SIGNAL
AC_FUNC_STRFTIME
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
ALL_LINGUAS="am ar az be bg bn bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu id it ja ko lt lv mi mk ml mn ms nb nl nn no or pa pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta tr uk vi zh_CN zh_TW"
ALL_LINGUAS="am ar az be bg bn ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu id it ja ko lt lv mk ml mn ms nl nn no pa pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta tr uk vi zh_CN zh_TW"
GETTEXT_PACKAGE=libgtop-2.0
AC_SUBST(GETTEXT_PACKAGE)
@@ -351,9 +346,7 @@ AC_SUBST(machine_incs)
if test "$GCC" = "yes" ; then
CFLAGS="\
-Winline \
-Wall \
-std=gnu89 \
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
-Wnested-externs -Wpointer-arith \
-Wcast-align -Wsign-compare \
@@ -399,6 +392,7 @@ sysdeps/stub_suid/Makefile
sysdeps/sun4/Makefile
sysdeps/osf1/Makefile
sysdeps/linux/Makefile
sysdeps/kernel/Makefile
sysdeps/freebsd/Makefile
sysdeps/solaris/Makefile
sysdeps/aix/Makefile
@@ -409,5 +403,4 @@ lib/Makefile
examples/Makefile
doc/Makefile
libgtop-2.0.pc
libgtopconfig.h
])

View File

@@ -1,9 +1,10 @@
/* $Id$ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 2.0.
This file is part of LibGTop 1.0.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
Contributed by Benoît Dejean <TazForEver@dlfp.org>, 2004.
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,

View File

@@ -1,13 +1,3 @@
2004-08-03 Benoît Dejean <tazforever@dlfp.org>
* reference.texi: Updated.
2004-07-07 Benoît Dejean <tazforever@dlfp.org>
* reference.texi: updated.
Added glibtop_get_proc_argv.
Added glibtop_fsusage.block_size.
2004-03-05 Bastien Nocera <hadess@hadess.net>
* reference.texi: update for new API

View File

@@ -359,11 +359,11 @@ Library function @code{glibtop_get_proclist}:
@cartouche
unsigned *
glibtop_get_proclist (glibtop_proclist *buf,
gint64 which, gint64 arg);
int64_t which, int64_t arg);
unsigned *
glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg);
int64_t which, int64_t arg);
@end cartouche
@end example
@@ -572,7 +572,6 @@ There are some constants for the @code{state} field:
#define GLIBTOP_PROCESS_ZOMBIE 8
#define GLIBTOP_PROCESS_STOPPED 16
#define GLIBTOP_PROCESS_SWAPPING 32
#define GLIBTOP_PROCESS_DEAD 64
@end cartouche
@end example
@end ifset
@@ -718,7 +717,7 @@ Number of pages of virtual memory.
@item resident
Number of residnet set (non-swapped) pages.
@item share
Number of pages of shared (mmap\'d) memory.
Number of pages of shared (mmap'd) memory.
@item rss
Number of pages the process has in real memory, minus 3 for administrative
purposes.
@@ -831,7 +830,6 @@ struct _glibtop_proc_time
@end cartouche
@end example
@table @code
@item start_time
Start time of process in seconds since the epoch
@@ -858,18 +856,6 @@ SMP user-mode CPU time accumulated by process
SMP kernel-mode CPU time accumulated by process
@end table
Please note that under Linux, @code{start_time} value may be strange.
Linux kernel defines @code{INITIAL_JIFFIES} which implies a time
shift. Because @code{INITIAL_JIFFIES} is not user-space defined, we
cannot use it to compute accurate @code{start_time}. On Linux2.6,
@code{INITIAL_JIFFIES} is 300 so @code{start_time} 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 @samp{man hwclock}.
@page
@node glibtop_proc_signal, glibtop_proc_kernel, glibtop_proc_time, System Dependent
@subsection Process Signal information
@@ -1093,7 +1079,7 @@ Library function @code{glibtop_get_proc_args}:
@example
@cartouche
char *
glibtop_get_proc_args(glibtop_proc_args *buf, pid_t pid,
glibtop_get_proc_args_l (glibtop_proc_args *buf, pid_t pid,
unsigned max_len);
char *
@@ -1124,30 +1110,6 @@ the lenght of this string is returned in the @code{size} field.
Remember to @code{g_free} the returned string to avoid a memory leak.
@strong{New functions}
@example
@cartouche
char **
glibtop_get_proc_argv(glibtop_proc_args *buf, pid_t pid,
unsigned max_len);
char **
glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len);
@end cartouche
@end example
Returns a NULL-terminated array of strings with all arguments of
process @code{pid} (up to @code{max_len} characters, use zero to get
all arguments). @code{glibtop_get_proc_argv()} and
@code{glibtop_get_proc_argv_l()} are wrappers to
@code{glibtop_get_proc_args()} and @code{glibtop_get_proc_args_l()}
that return process' arguments like the C @code{argv}.
Remember to @code{g_strfreev} the returned array to avoid a memory
leak.
@page
@node glibtop_proc_map, glibtop_netload, glibtop_proc_args, System Dependent
@subsection Process Memory Maps
@@ -1532,7 +1494,6 @@ struct _glibtop_fsusage
bavail,
files,
ffree;
guint32 block_size;
@};
@end cartouche
@end example
@@ -1548,8 +1509,6 @@ Free blocks available to ordinary users.
Total file nodes.
@item ffree
Free file nodes.
@item block_size
Block size in bytes.
@end table
Blocks are usually 512 bytes.

View File

@@ -14,12 +14,3 @@ second_linux
smp_static sysdeps_static netload_static procmap_static mountlist_static
smp sysdeps netload procmap mountlist
timings timings_static
pprint
pprint_static
procargs
procargs_static
df
df_static
netlist
netlist_static

View File

@@ -1,71 +1,3 @@
2004-11-15 Benoît Dejean <tazforever@dlfp.org>
* netload.c: (hwaddress_format_for_display), (main): Updated.
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
* pprint.c: (pprint_get_fsusage), (pprint_get_mountlist),
(pprint_get_netload), (pprint_get_netlist), (main): Updated.
2004-09-25 Benoît Dejean <tazforever@dlfp.org>
* pprint.c: (main): Re-added pprint_get_msg_limits()
i2004-09-25 Benoît Dejean <tazforever@dlfp.org>
* df.c: (main):
* pprint.c: (main):
* procargs.c: (main): Added missing call to glibgtop_init() / glibtop_close()
2004-09-24 Benoît Dejean <tazforever@dlfp.org>
* .cvsignore:
* Makefile.am:
* ../configure.in
* df.c: (print_fsusage), (main): Added new example, just like 'df'.
2004-09-22 Benoît Dejean <tazforever@dlfp.org>
* pprint.c: (main): Disable pprint_get_msg_limits() because it can fail.
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
* pprint.c: (pprint_get_swap), (main): Updated.
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
* procargs.c: (show_args), (main): Updated.
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
* pprint.c: (pprint_get_mountlist), (pprint_get_netload),
(pprint_get_uptime), (main): Updated.
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
* pprint.c: (pprint_get_mountlist): Updated.
2004-09-21 Benoît Dejean <tazforever@dlfp.org>
* procargs.c: (show_args), (main): Updated.
2004-09-20 Benoît Dejean <tazforever@dlfp.org>
* .cvsignore:
* Makefile.am:
* pprint.c: (pprint_get_cpu), (pprint_get_fsusage),
(pprint_get_loadavg), (pprint_get_mem), (pprint_get_mountlist),
(pprint_get_msg_limits), (main): Added new example : pretty prints
the result of glibtop_*. Work in progress.
Now builds procargs.
* ../configure.in: Added to static list.
2004-07-07 Benoît Dejean <tazforever@dlfp.org>
* procargs.c: Added glibtop_get_proc_argv demo.
2003-12-27 Ole Laursen <olau@hardworking.dk>
* mountlist.c: Updated to display block size too.
@@ -118,7 +50,7 @@ i2004-09-25 Benoît Dejean <tazforever@dlfp.org>
Fri Apr 9 00:14:52 1999 Timur Bakeyev <timur@gnu.org>
* timings.c: Added timersub defenition, to make code compilable on
* timings.c: Added timersub defenition, to make code compilable on
BSDI.
1999-03-24 Martin Baulig <martin@home-of-linux.org>
@@ -184,11 +116,11 @@ Fri Apr 9 00:14:52 1999 Timur Bakeyev <timur@gnu.org>
1998-06-12 Martin Baulig <martin@home-of-linux.org>
* test.scm: New file.
1998-06-07 Martin Baulig <martin@home-of-linux.org>
* Makefile.am (CFLAGS): Disable optimize.
* first.c (PROFILE_COUNT): Number of times each function
should be called. Defaults to 1; to profile the code, you
can increase this when compiling.

View File

@@ -6,7 +6,7 @@ INCLUDES = @INCLUDES@
DEFS = @DEFS@
noinst_PROGRAMS = first second pprint procargs df netlist \
noinst_PROGRAMS = first second\
mountlist procmap netload sysdeps timings \
@static_targets@ @smp_examples@
@@ -14,8 +14,7 @@ EXTRA_PROGRAMS = first_static second_static \
mountlist_static procmap_static \
third third_static smp smp_static \
netload_static sysdeps_static \
timings_static pprint_static procargs_static \
df_static netlist_static
timings_static
first_SOURCES = first.c
first_LDADD = $(top_builddir)/lib/libgtop-2.0.la
@@ -25,7 +24,7 @@ first_static_LDADD = $(first_LDADD)
first_static_LDFLAGS = -static
second_SOURCES = second.c
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
second_LDADD = $(top_builddir)/lib/libgtop-2.0.la
second_static_SOURCES = $(second_SOURCES)
second_static_LDADD = $(second_LDADD)
@@ -72,7 +71,7 @@ mountlist_static_LDFLAGS= -static
smp_SOURCES = smp.c
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la
smp_static_SOURCES = $(smp_SOURCES)
smp_static_LDADD = $(smp_LDADD)
@@ -85,36 +84,3 @@ timings_static_SOURCES = $(timings_SOURCES)
timings_static_LDADD = $(timings_LDADD)
timings_static_LDFLAGS = -static
pprint_SOURCES = pprint.c
pprint_LDADD = $(top_builddir)/lib/libgtop-2.0.la
pprint_static_SOURCES = $(pprint_SOURCES)
pprint_static_LDADD = $(pprint_LDADD)
pprint_static_LDFLAGS = -static
procargs_SOURCES = procargs.c
procargs_LDADD = $(top_builddir)/lib/libgtop-2.0.la
procargs_static_SOURCES = $(procargs_SOURCES)
procargs_static_LDADD = $(procargs_LDADD)
procargs_static_LDFLAGS = -static
df_SOURCES = df.c
df_LDADD = $(top_builddir)/lib/libgtop-2.0.la
df_static_SOURCES = $(df_SOURCES)
df_static_LDADD = $(df_LDADD)
df_static_LDFLAGS = -static
netlist_SOURCES = netlist.c
netlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
netlist_static_SOURCES = $(netlist_SOURCES)
netlist_static_LDADD = $(netlist_LDADD)
netlist_static_LDFLAGS = -static

View File

@@ -1,48 +0,0 @@
#include <glibtop.h>
#include <glibtop/fsusage.h>
#include <glibtop/mountlist.h>
#include <stdio.h>
static void print_fsusage(const char *mountpoint)
{
glibtop_fsusage buf;
glibtop_get_fsusage(&buf, mountpoint);
printf("%-20s %-10llu %-10llu %-10llu %.1f\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
);
}
int main()
{
glibtop_mountlist buf;
glibtop_mountentry *entries;
size_t i;
glibtop_init();
printf("%-20s %-10s %-10s %-10s %-10s\n",
"Filesystem", "Size", "Used", "Avail", "Use%");
entries = glibtop_get_mountlist(&buf, FALSE);
for(i = 0; i < buf.number; ++i)
{
print_fsusage(entries[i].mountdir);
}
g_free(entries);
glibtop_close();
return 0;
}

View File

@@ -40,24 +40,6 @@
#define PROFILE_COUNT 1
#endif
static char* hwaddress_format_for_display(glibtop_netload *buf)
{
unsigned i;
GString *repr = g_string_new("");
char *str;
for(i = 0; i < sizeof buf->hwaddress; ++i)
g_string_append_printf(repr, "%02X:",
(unsigned) ((char*)buf->hwaddress)[i]);
repr->str [ repr->len - 1] = ' ';
str = g_string_free(repr, FALSE);
g_strstrip(str);
return str;
}
int
main (int argc, char *argv [])
{
@@ -65,8 +47,6 @@ main (int argc, char *argv [])
unsigned method, count, port;
struct in_addr addr, subnet;
char *address_string, *subnet_string;
char address6_string[INET6_ADDRSTRLEN], prefix6_string[INET6_ADDRSTRLEN];
char *hwaddress_string;
char buffer [BUFSIZ];
count = PROFILE_COUNT;
@@ -106,50 +86,36 @@ main (int argc, char *argv [])
address_string = g_strdup (inet_ntoa (addr));
subnet_string = g_strdup (inet_ntoa (subnet));
inet_ntop (AF_INET6, netload.address6, address6_string, INET6_ADDRSTRLEN);
inet_ntop (AF_INET6, netload.prefix6, prefix6_string, INET6_ADDRSTRLEN);
hwaddress_string = hwaddress_format_for_display(&netload);
printf ("Network Load (0x%016llx):\n\n"
"\tInterface Flags:\t0x%016llx\n"
"\tAddress:\t\t0x%08x - %s\n"
"\tSubnet:\t\t\t0x%08x - %s\n\n"
"\tMTU:\t\t\t%d\n"
"\tCollisions:\t\t%llu\n\n"
"\tPackets In:\t\t%llu\n"
"\tPackets Out:\t\t%llu\n"
"\tPackets Total:\t\t%llu\n\n"
"\tBytes In:\t\t%llu\n"
"\tBytes Out:\t\t%llu\n"
"\tBytes Total:\t\t%llu\n\n"
"\tErrors In:\t\t%llu\n"
"\tErrors Out:\t\t%llu\n"
"\tErrors Total:\t\t%llu\n\n"
"\tAddress6:\t\t%s\n"
"\tPrefix6:\t\t%s\n"
"\tScope6:\t\t\t%#03x\n\n"
"\tHarware Address:\t%s\n\n",
netload.flags,
netload.if_flags,
(guint32) netload.address, address_string,
(guint32) netload.subnet, subnet_string,
netload.mtu,
netload.collisions,
netload.packets_in,
netload.packets_out,
netload.packets_total,
netload.bytes_in,
netload.bytes_out,
netload.bytes_total,
netload.errors_in,
netload.errors_out,
netload.errors_total,
address6_string,
prefix6_string,
(int) netload.scope6,
hwaddress_string);
printf ("Network Load (0x%08lx):\n\n"
"\tInterface Flags:\t0x%08lx\n"
"\tAddress:\t\t0x%08lx - %s\n"
"\tSubnet:\t\t\t0x%08lx - %s\n\n"
"\tMTU:\t\t\t%ld\n"
"\tCollisions:\t\t%ld\n\n"
"\tPackets In:\t\t%ld\n"
"\tPackets Out:\t\t%ld\n"
"\tPackets Total:\t\t%ld\n\n"
"\tBytes In:\t\t%ld\n"
"\tBytes Out:\t\t%ld\n"
"\tBytes Total:\t\t%ld\n\n"
"\tErrors In:\t\t%ld\n"
"\tErrors Out:\t\t%ld\n"
"\tErrors Total:\t\t%ld\n\n",
(unsigned long) netload.flags,
(unsigned long) netload.if_flags,
(unsigned long) netload.address, address_string,
(unsigned long) netload.subnet, subnet_string,
(unsigned long) netload.mtu,
(unsigned long) netload.collisions,
(unsigned long) netload.packets_in,
(unsigned long) netload.packets_out,
(unsigned long) netload.packets_total,
(unsigned long) netload.bytes_in,
(unsigned long) netload.bytes_out,
(unsigned long) netload.bytes_total,
(unsigned long) netload.errors_in,
(unsigned long) netload.errors_out,
(unsigned long) netload.errors_total);
g_free (address_string);
g_free (subnet_string);

View File

@@ -1,275 +0,0 @@
#include <glibtop.h>
#include <glibtop/union.h>
#include <stdio.h>
#include <stddef.h>
#define buf_offsetof(MEMBER) ((ptrdiff_t)&(buf.MEMBER) - (ptrdiff_t)&buf)
#define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \
(unsigned long) sizeof buf)
#define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \
(unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA)
#define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \
size_t i; \
printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \
(unsigned long) sizeof buf.ARRAY, (unsigned long) buf_offsetof(ARRAY),\
(unsigned long) G_N_ELEMENTS(buf.ARRAY)); \
for(i = 0; i < (SIZE - 1); ++i) printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \
printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \
} while(0)
#define FOOTER_PPRINT() putchar('\n');
static void pprint_get_cpu()
{
glibtop_cpu buf;
glibtop_get_cpu(&buf);
HEADER_PPRINT(glibtop_get_cpu);
PPRINT(flags, "%#llx");
PPRINT(total, "%llu");
PPRINT(user, "%llu");
PPRINT(nice, "%llu");
PPRINT(sys, "%llu");
PPRINT(idle, "%llu");
PPRINT(frequency, "%llu");
PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu");
PPRINT(xcpu_flags, "%llx");
FOOTER_PPRINT();
}
static void pprint_get_fsusage(const char *mountpoint)
{
glibtop_fsusage buf;
glibtop_get_fsusage(&buf, mountpoint);
HEADER_PPRINT(glibtop_get_fsusage);
printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint);
PPRINT(flags, "%#llx");
PPRINT(blocks, "%llu");
PPRINT(bfree, "%llu");
PPRINT(bavail, "%llu");
PPRINT(files, "%llu");
PPRINT(ffree, "%llu");
PPRINT(block_size, "%u");
PPRINT(read, "%llu");
PPRINT(write, "%llu");
FOOTER_PPRINT();
}
static void pprint_get_loadavg()
{
glibtop_loadavg buf;
glibtop_get_loadavg(&buf);
HEADER_PPRINT(glibtop_get_loadavg);
PPRINT(flags, "%#llx");
PPRINT_ARRAY(loadavg, 3, "%f");
PPRINT(nr_running, "%llu");
PPRINT(nr_tasks, "%llu");
PPRINT(last_pid, "%llu");
FOOTER_PPRINT();
}
static void pprint_get_mem()
{
glibtop_mem buf;
glibtop_get_mem(&buf);
HEADER_PPRINT(glibtop_get_mem);
PPRINT(flags, "%#llx");
PPRINT(total, "%llu");
PPRINT(used, "%llu");
PPRINT(free, "%llu");
PPRINT(shared, "%llu");
PPRINT(buffer, "%llu");
PPRINT(cached, "%llu");
PPRINT(user, "%llu");
PPRINT(locked, "%llu");
FOOTER_PPRINT();
}
static void pprint_get_mountlist(gboolean allfs)
{
glibtop_mountlist buf;
glibtop_mountentry *entries;
size_t i;
entries = glibtop_get_mountlist(&buf, allfs);
HEADER_PPRINT(glibtop_get_mountlist);
printf("glibtop_get_mountlist (allfs = %d)\n", allfs);
PPRINT(flags, "%#llx");
PPRINT(number, "%llu");
PPRINT(total, "%llu");
PPRINT(size, "%llu");
printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number);
for(i = 0; i < buf.number; ++i)
{
printf("\t\t .%lu = { .dev = %#llx,"
" .devname = \"%s\","
" .mountir = \"%s\","
" .type = \"%s\" }\n",
(unsigned long) i, entries[i].dev,
entries[i].devname,
entries[i].mountdir,
entries[i].type);
}
printf("\t\t}\n");
FOOTER_PPRINT();
g_free(entries);
}
static void pprint_get_msg_limits()
{
glibtop_msg_limits buf;
glibtop_get_msg_limits(&buf);
HEADER_PPRINT(glibtop_get_msg_limits);
PPRINT(flags, "%#llx");
PPRINT(msgpool, "%llu");
PPRINT(msgmap, "%llu");
PPRINT(msgmax, "%llu");
PPRINT(msgmnb, "%llu");
PPRINT(msgmni, "%llu");
PPRINT(msgssz, "%llu");
PPRINT(msgtql, "%llu");
FOOTER_PPRINT();
}
static void pprint_get_netload(const char *iface)
{
glibtop_netload buf;
glibtop_get_netload(&buf, iface);
HEADER_PPRINT(glibtop_get_netload);
printf("glibtop_get_netload (iface = \"%s\")\n", iface);
PPRINT(flags, "%#llx");
FOOTER_PPRINT();
}
static void pprint_get_netlist()
{
glibtop_netlist buf;
char **devices;
guint32 i;
devices = glibtop_get_netlist(&buf);
HEADER_PPRINT(glibtop_get_netlist);
for(i = 0; i < buf.number; ++i)
{
printf("\t%s\n", devices[i]);
}
FOOTER_PPRINT();
g_strfreev(devices);
}
static void pprint_get_swap()
{
glibtop_swap buf;
glibtop_get_swap(&buf);
HEADER_PPRINT(glibtop_get_swap);
PPRINT(flags, "%#llx");
PPRINT(total, "%llu");
PPRINT(used, "%llu");
PPRINT(free, "%llu");
PPRINT(pagein, "%llu");
PPRINT(pageout, "%llu");
FOOTER_PPRINT();
}
static void pprint_get_uptime()
{
glibtop_uptime buf;
glibtop_get_uptime(&buf);
HEADER_PPRINT(glibtop_get_uptime);
PPRINT(flags, "%#llx");
PPRINT(uptime, "%f");
PPRINT(idletime, "%f");
PPRINT(boot_time, "%llu");
FOOTER_PPRINT();
}
int main()
{
glibtop_init();
pprint_get_cpu();
pprint_get_fsusage("/");
pprint_get_loadavg();
pprint_get_mem();
pprint_get_mountlist(TRUE);
pprint_get_mountlist(FALSE);
pprint_get_msg_limits();
pprint_get_swap();
pprint_get_netlist();
pprint_get_netload("eth0");
pprint_get_netload("ppp0");
pprint_get_netload("<unknown>");
/* pprint_get_sysinfo(); */
pprint_get_uptime();
glibtop_close();
return 0;
}

View File

@@ -1,47 +1,30 @@
#include <glibtop.h>
#include <glibtop/procargs.h>
#include <stdlib.h>
#include <unistd.h>
static void show_args(pid_t pid, unsigned max_len)
{
glibtop_proc_args buf;
char ** const pargv = glibtop_get_proc_argv(&buf, pid, max_len);
char **parg = pargv;
printf("<%ld>\t", (long)pid);
while(*parg)
{
printf("\"%s\" ", *parg);
parg++;
}
putchar('\n');
g_strfreev(pargv);
}
int main(int argc, char **argv)
{
glibtop_init();
show_args(getpid(), 0);
show_args(getpid(), 15);
while(*++argv)
{
glibtop_proc_args buf;
pid_t pid = strtol(*argv, NULL, 10);
show_args(pid, 0);
show_args(pid, 15);
char ** const pargv = glibtop_get_proc_argv(&buf, pid, 20);
char **parg = pargv;
printf("<%ld>\t", (long)pid);
while(*parg)
{
printf("\"%s\"\t", *parg);
parg++;
}
putchar('\n');
g_strfreev(pargv);
}
glibtop_close();
return 0;
}

View File

@@ -20,5 +20,3 @@ glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs)
void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir
void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface
void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device)
char **|netlist|unsigned(number)

View File

@@ -24,30 +24,6 @@
#ifndef __GLIBTOP_H__
#define __GLIBTOP_H__
typedef struct _glibtop glibtop;
/**
* LIBGTOP_CHECK_VERSION
* @major: Major version number
* @minor: Minor version number
* @micro: Micro version number
*
* Checks if the version given is compatable with this version of the
* library. For example, LIBGTOP_CHECK_VERSION(1.2.3) would return TRUE
* if the version is 1.2.5, and FALSE if 1.1.0. This can be used in
* build tests.
*
**/
#include <libgtopconfig.h>
#define LIBGTOP_CHECK_VERSION(major, minor, micro) \
(LIBGTOP_MAJOR_VERSION > (major) || \
(LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION > (minor)) || \
(LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION == (minor) && \
LIBGTOP_MICRO_VERSION >= (micro)))
#include <glibtop/global.h>
#include <glibtop_server.h>
@@ -61,11 +37,10 @@ LIBGTOP_MICRO_VERSION >= (micro)))
#define GLIBTOP_MOUNTENTRY_LEN 79
#endif
typedef struct _glibtop glibtop;
#include <glibtop/sysdeps.h>
#include <glibtop/close.h>
struct _glibtop
{
unsigned flags;

View File

@@ -7,4 +7,4 @@ glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \
procsegment.h read.h sysdeps.h global.h \
procsignal.h read_data.h union.h types.h gnuserv.h \
parameter.h mountlist.h fsusage.h procmap.h signal.h \
inodedb.h sysinfo.h ppp.h procargs.h netload.h netlist.h
inodedb.h sysinfo.h ppp.h procargs.h netload.h

50
include/glibtop/array.h Normal file
View File

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

View File

@@ -57,9 +57,8 @@ G_BEGIN_DECLS
#define GLIBTOP_CMND_FSUSAGE 21
#define GLIBTOP_CMND_NETLOAD 22
#define GLIBTOP_CMND_PPP 23
#define GLIBTOP_CMND_NETLIST 24
#define GLIBTOP_MAX_CMND 25
#define GLIBTOP_MAX_CMND 24
#define _GLIBTOP_PARAM_SIZE 16
@@ -83,7 +82,7 @@ union _glibtop_response_union
struct _glibtop_response
{
gint64 offset;
int64_t offset;
guint64 size, data_size;
glibtop_response_union u;
};

View File

@@ -0,0 +1,91 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* $Id$ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
LibGTop is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef __GLIBTOP_COMPAT10_H__
#define __GLIBTOP_COMPAT10_H__
#include <glibtop.h>
#include <glibtop/global.h>
G_BEGIN_DECLS
/* glibtop_cpu */
#define GLIBTOP_XCPU_TOTAL GLIBTOP_CPU_XCPU_TOTAL
#define GLIBTOP_XCPU_USER GLIBTOP_CPU_XCPU_USER
#define GLIBTOP_XCPU_NICE GLIBTOP_CPU_XCPU_NICE
#define GLIBTOP_XCPU_SYS GLIBTOP_CPU_XCPU_SYS
#define GLIBTOP_XCPU_IDLE GLIBTOP_CPU_XCPU_IDLE
#define GLIBTOP_XCPU_FLAGS GLIBTOP_CPU_XCPU_FLAGS
/* glibtop_proclist */
#define GLIBTOP_PROCLIST_NUMBER GLIBTOP_ARRAY_NUMBER
#define GLIBTOP_PROCLIST_SIZE GLIBTOP_ARRAY_SIZE
#define GLIBTOP_PROCLIST_TOTAL GLIBTOP_ARRAY_TOTAL
#define GLIBTOP_MAX_PROCLIST GLIBTOP_MAX_ARRAY
typedef struct _glibtop_array glibtop_proclist;
/* glibtop_mountlist */
#define GLIBTOP_MOUNTLIST_NUMBER GLIBTOP_ARRAY_NUMBER
#define GLIBTOP_MOUNTLIST_SIZE GLIBTOP_ARRAY_SIZE
#define GLIBTOP_MOUNTLIST_TOTAL GLIBTOP_ARRAY_TOTAL
#define GLIBTOP_MAX_MOUNTLIST GLIBTOP_MAX_ARRAY
typedef struct _glibtop_array glibtop_mountlist;
/* glibtop_proc_args */
#define GLIBTOP_PROC_ARGS_SIZE 0
#define GLIBTOP_MAX_PROC_ARGS 1
typedef struct _glibtop_array glibtop_proc_args;
/* glibtop_proc_map */
#define GLIBTOP_PROC_MAP_NUMBER GLIBTOP_ARRAY_NUMBER
#define GLIBTOP_PROC_MAP_SIZE GLIBTOP_ARRAY_SIZE
#define GLIBTOP_PROC_MAP_TOTAL GLIBTOP_ARRAY_TOTAL
#define GLIBTOP_MAX_PROC_MAP GLIBTOP_MAX_ARRAY
typedef struct _glibtop_array glibtop_proc_map;
/* glibtop_interface_names */
#define GLIBTOP_INTERFACE_NAMES_NUMBER GLIBTOP_ARRAY_NUMBER
#define GLIBTOP_INTERFACE_NAMES_SIZE GLIBTOP_ARRAY_SIZE
#define GLIBTOP_INTERFACE_NAMES_TOTAL GLIBTOP_ARRAY_TOTAL
#define GLIBTOP_MAX_INTERFACE_NAMES GLIBTOP_MAX_ARRAY
typedef struct _glibtop_array glibtop_interface_names;
#endif

View File

@@ -28,17 +28,60 @@
G_BEGIN_DECLS
#ifndef G_GNUC_UNUSED
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
#define G_GNUC_UNUSED \
__attribute__((unused))
#else /* !__GNUC__ */
#define G_GNUC_UNUSED
#endif /* !__GNUC__ */
#endif /* defined G_GNUC_UNUSED */
void glibtop_error_vr (glibtop *server, char *format, va_list args);
void glibtop_warn_vr (glibtop *server, char *format, va_list args);
void glibtop_error_io_vr (glibtop *server, char *format, int, va_list args);
void glibtop_warn_io_vr (glibtop *server, char *format, int, va_list args);
void G_GNUC_UNUSED glibtop_error_r (glibtop *server, char *format, ...);
void G_GNUC_UNUSED glibtop_warn_r (glibtop *server, char *format, ...);
void G_GNUC_UNUSED glibtop_error_io_r (glibtop *server, char *format, ...);
void G_GNUC_UNUSED glibtop_warn_io_r (glibtop *server, char *format, ...);
static void G_GNUC_UNUSED
glibtop_error_r (glibtop *server, char *format, ...)
{
va_list args;
va_start (args, format);
glibtop_error_vr (server, format, args);
va_end (args);
}
static void G_GNUC_UNUSED
glibtop_warn_r (glibtop *server, char *format, ...)
{
va_list args;
va_start (args, format);
glibtop_warn_vr (server, format, args);
va_end (args);
}
static void G_GNUC_UNUSED
glibtop_error_io_r (glibtop *server, char *format, ...)
{
va_list args;
va_start (args, format);
glibtop_error_io_vr (server, format, errno, args);
va_end (args);
}
static void G_GNUC_UNUSED
glibtop_warn_io_r (glibtop *server, char *format, ...)
{
va_list args;
va_start (args, format);
glibtop_warn_io_vr (server, format, errno, args);
va_end (args);
}
#ifdef __GNUC__
@@ -48,20 +91,43 @@ void G_GNUC_UNUSED glibtop_warn_io_r (glibtop *server, char *format, ...);
#define glibtop_error_io(p1, args...) glibtop_error_io_r(glibtop_global_server , p1 , ## args)
#define glibtop_warn_io(p1, args...) glibtop_warn_io_r(glibtop_global_server , p1 , ## args)
#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#else /* no __GNUC__ */
#define glibtop_error(p1, ...) glibtop_error_r(glibtop_global_server , p1 , __VA_ARGS__)
#define glibtop_warn(p1, ...) glibtop_warn_r(glibtop_global_server , p1 , __VA_ARGS__)
static void
glibtop_error (char *format, ...)
{
va_list args;
va_start (args, format);
glibtop_error_vr (glibtop_global_server, format, args);
va_end (args);
}
#define glibtop_error_io(p1, ...) glibtop_error_io_r(glibtop_global_server , p1 , __VA_ARGS__)
#define glibtop_warn_io(p1, ...) glibtop_warn_io_r(glibtop_global_server , p1 , __VA_ARGS__)
static void
glibtop_warn (char *format, ...)
{
va_list args;
va_start (args, format);
glibtop_warn_vr (glibtop_global_server, format, args);
va_end (args);
}
#else /* no __GNUC__, no C99*/
static void
glibtop_error_io (char *format, ...)
{
va_list args;
va_start (args, format);
glibtop_error_io_vr (glibtop_global_server, format, errno, args);
va_end (args);
}
void glibtop_error (char *format, ...);
void glibtop_warn (char *format, ...);
void glibtop_error_io (char *format, ...);
void glibtop_warn_io (char *format, ...);
static void
glibtop_warn_io (char *format, ...)
{
va_list args;
va_start (args, format);
glibtop_warn_io_vr (glibtop_global_server, format, errno, args);
va_end (args);
}
#endif /* no __GNUC__ */

View File

@@ -34,9 +34,8 @@ G_BEGIN_DECLS
#define GLIBTOP_FSUSAGE_FILES 3
#define GLIBTOP_FSUSAGE_FFREE 4
#define GLIBTOP_FSUSAGE_BLOCK_SIZE 5
#define GLIBTOP_FSUSAGE_READ 6
#define GLIBTOP_FSUSAGE_WRITE 7
#define GLIBTOP_MAX_FSUSAGE 8
#define GLIBTOP_MAX_FSUSAGE 6
typedef struct _glibtop_fsusage glibtop_fsusage;
@@ -50,7 +49,6 @@ struct _glibtop_fsusage
files, /* Total file nodes. */
ffree; /* Free file nodes. */
guint32 block_size; /* Size of a block in bytes. */
guint64 read, write; /* Total blocks read and written */
};
#define glibtop_get_fsusage(fsusage,disk) glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk)

View File

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

View File

@@ -0,0 +1,203 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* $Id$ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
LibGTop is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef __GLIBTOP_INTERFACES_H__
#define __GLIBTOP_INTERFACES_H__
#include <glibtop.h>
#include <glibtop/global.h>
#include <glibtop/compat_10.h>
#include <glibtop/array.h>
G_BEGIN_DECLS
#define GLIBTOP_INTERFACE_IF_FLAGS 0
#define GLIBTOP_INTERFACE_TRANSPORT 1
#define GLIBTOP_INTERFACE_TYPE 2
#define GLIBTOP_INTERFACE_NUMBER 3
#define GLIBTOP_INTERFACE_INSTANCE 4
#define GLIBTOP_INTERFACE_NUM_LOGICAL 5
#define GLIBTOP_INTERFACE_NAME 6
#define GLIBTOP_MAX_INTERFACE 7
#define GLIBTOP_IFADDR_TRANSPORT 0
#define GLIBTOP_IFADDR_ADDR_LEN 1
#define GLIBTOP_IFADDR_ADDRESS 2
#define GLIBTOP_IFADDR_SUBNET 3
#define GLIBTOP_IFADDR_SCOPE 4
#define GLIBTOP_MAX_IFADDR 5
typedef struct _glibtop_interface glibtop_interface;
typedef struct _glibtop_ifaddr glibtop_ifaddr;
typedef enum _glibtop_interface_type glibtop_interface_type;
typedef enum _glibtop_transport glibtop_transport;
typedef enum _glibtop_protocol glibtop_protocol;
typedef enum _glibtop_ipv6_scope glibtop_ipv6_scope;
typedef enum _glibtop_strategy glibtop_strategy;
typedef enum _glibtop_interface_flags glibtop_interface_flags;
enum _glibtop_protocol {
GLIBTOP_PROTOCOL_OTHERS = 0,
GLIBTOP_PROTOCOL_ICMP = 1 << 0,
GLIBTOP_PROTOCOL_TCP = 1 << 1,
GLIBTOP_PROTOCOL_UDP = 1 << 2,
GLIBTOP_PROTOCOL_IGMP = 1 << 3,
GLIBTOP_PROTOCOL_RAW = 1 << 4,
GLIBTOP_PROTOCOL_ICMP6 = 1 << 5,
GLIBTOP_PROTOCOL_TCP6 = 1 << 6,
GLIBTOP_PROTOCOL_UDP6 = 1 << 7,
GLIBTOP_PROTOCOL_IGMP6 = 1 << 8,
GLIBTOP_PROTOCOL_RAW6 = 1 << 9
};
enum _glibtop_transport {
GLIBTOP_TRANSPORT_DEFAULT = 0,
GLIBTOP_TRANSPORT_IPV4 = 1 << 0,
GLIBTOP_TRANSPORT_IPV6 = 1 << 1,
GLIBTOP_TRANSPORT_IPX = 1 << 2,
GLIBTOP_TRANSPORT_X25 = 1 << 3,
GLIBTOP_TRANSPORT_DECNET = 1 << 4,
GLIBTOP_TRANSPORT_APPLETALK = 1 << 5,
GLIBTOP_TRANSPORT_NETBEUI = 1 << 6
};
#define GLIBTOP_TRANSPORT_ALL GLIBTOP_UNLIMITED
#define GLIBTOP_PROTOCOL_ALL GLIBTOP_UNLIMITED
enum _glibtop_interface_type {
GLIBTOP_INTERFACE_ALL = 0,
GLIBTOP_INTERFACE_OTHER,
/* Network interfaces */
GLIBTOP_INTERFACE_ETHERNET = 101,
GLIBTOP_INTERFACE_FDDI,
GLIBTOP_INTERFACE_FRAME_RELAY,
GLIBTOP_INTERFACE_TOKEN_RING,
GLIBTOP_INTERFACE_ARCNET,
GLIBTOP_INTERFACE_ATM,
/* Dummy interfaces */
GLIBTOP_INTERFACE_LOOPBACK = 501,
GLIBTOP_INTERFACE_DUMMY,
/* Dialup interfaces */
GLIBTOP_INTERFACE_PARA = 801,
GLIBTOP_INTERFACE_SLIP,
GLIBTOP_INTERFACE_PPP,
GLIBTOP_INTERFACE_ISDN
};
enum _glibtop_ipv6_scope {
GLIBTOP_IPV6_SCOPE_GLOBAL = 0,
GLIBTOP_IPV6_SCOPE_LOOPBACK = 1 << 1,
GLIBTOP_IPV6_SCOPE_LINKLOCAL = 1 << 2,
GLIBTOP_IPV6_SCOPE_SITELOCAL = 1 << 3,
GLIBTOP_IPV6_SCOPE_COMPATv4 = 1 << 4,
GLIBTOP_IPV6_SCOPE_UNKNOWN = 1 << 5
};
enum _glibtop_strategy {
GLIBTOP_INTERFACES_ALL = 0,
GLIBTOP_INTERFACES_BEST_MATCHING,
GLIBTOP_INTERFACES_ONLY_THIS_ONE,
GLIBTOP_INTERFACES_INCLUDE_LOGICAL = 1 << 7
};
#define GLIBTOP_STRATEGY_FLAGS_MASK (1 << 7)
enum _glibtop_interface_flags {
GLIBTOP_IF_FLAGS_UP = 1,
GLIBTOP_IF_FLAGS_BROADCAST,
GLIBTOP_IF_FLAGS_DEBUG,
GLIBTOP_IF_FLAGS_LOOPBACK,
GLIBTOP_IF_FLAGS_POINTOPOINT,
GLIBTOP_IF_FLAGS_RUNNING,
GLIBTOP_IF_FLAGS_NOARP,
GLIBTOP_IF_FLAGS_PROMISC,
GLIBTOP_IF_FLAGS_ALLMULTI,
GLIBTOP_IF_FLAGS_OACTIVE,
GLIBTOP_IF_FLAGS_SIMPLEX,
GLIBTOP_IF_FLAGS_LINK0,
GLIBTOP_IF_FLAGS_LINK1,
GLIBTOP_IF_FLAGS_LINK2,
GLIBTOP_IF_FLAGS_ALTPHYS,
GLIBTOP_IF_FLAGS_MULTICAST
};
struct _glibtop_ifaddr
{
guint64 flags,
transport; /* GLIBTOP_IFADDR_TRANSPORT */
u_int8_t addr_len, /* GLIBTOP_IFADDR_ADDR_LEN */
address [GLIBTOP_IFADDR_LEN]; /* GLIBTOP_IFADDR_ADDRESS */
guint64 subnet, /* GLIBTOP_IFADDR_SUBNET */
scope; /* GLIBTOP_IFADDR_SCOPE */
};
struct _glibtop_interface
{
guint64 flags,
if_flags, /* GLIBTOP_INTERFACE_IF_FLAGS */
transport, /* GLIBTOP_INTERFACE_TRANSPORT */
type, /* GLIBTOP_INTERFACE_TYPE */
number, /* GLIBTOP_INTERFACE_NUMBER */
instance, /* GLIBTOP_INTERFACE_INSTANCE */
num_logical; /* GLIBTOP_INTERFACE_NUM_LOGICAL */
char name [GLIBTOP_INTERFACE_LEN];
};
#if GLIBTOP_SUID_INTERFACE_NAMES
#define glibtop_get_interface_names_r glibtop_get_interface_names_p
#else
#define glibtop_get_interface_names_r glibtop_get_interface_names_s
#endif
glibtop_interface *glibtop_get_interface_names_l (glibtop_client *client, glibtop_array *array, guint64 interface, guint64 number, guint64 instance, guint64 strategy);
#if GLIBTOP_SUID_INTERFACE_NAMES
int glibtop_init_interface_names_p (glibtop_server *server, glibtop_closure *closure);
glibtop_interface *glibtop_get_interface_names_p (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, guint64 interface, guint64 number, guint64 instance, guint64 strategy);
#else
int glibtop_init_interface_names_s (glibtop_server *server, glibtop_closure *closure);
glibtop_interface *glibtop_get_interface_names_s (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, guint64 interface, guint64 number, guint64 instance, guint64 strategy);
#endif
#ifdef GLIBTOP_NAMES
/* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_interface_names [];
extern const unsigned glibtop_types_interface_names [];
extern const char *glibtop_labels_interface_names [];
extern const char *glibtop_descriptions_interface_names [];
#endif
G_END_DECLS
#endif

83
include/glibtop/netinfo.h Normal file
View File

@@ -0,0 +1,83 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* $Id$ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
LibGTop is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef __GLIBTOP_NETINFO_H__
#define __GLIBTOP_NETINFO_H__
#include <glibtop.h>
#include <glibtop/global.h>
G_BEGIN_DECLS
#define GLIBTOP_NETINFO_IF_FLAGS 0
#define GLIBTOP_NETINFO_TRANSPORT 1
#define GLIBTOP_NETINFO_MTU 2
#define GLIBTOP_NETINFO_SUBNET 3
#define GLIBTOP_NETINFO_ADDRESS 4
#define GLIBTOP_MAX_NETINFO 5
typedef struct _glibtop_netinfo glibtop_netinfo;
#include <glibtop/interfaces.h>
struct _glibtop_netinfo
{
guint64 flags,
if_flags, /* GLIBTOP_NETINFO_IF_FLAGS */
transport, /* GLIBTOP_NETINFO_TRANSPORT */
mtu; /* GLIBTOP_NETINFO_MTU */
};
#if GLIBTOP_SUID_NETINFO
#define glibtop_get_netinfo_r glibtop_get_netinfo_p
#else
#define glibtop_get_netinfo_r glibtop_get_netinfo_s
#endif
glibtop_ifaddr *glibtop_get_netinfo_l (glibtop_client *client, glibtop_array *array, glibtop_netinfo *buf, const char *interface, guint64 transport);
#if GLIBTOP_SUID_NETINFO
int glibtop_init_netinfo_p (glibtop_server *server, glibtop_closure *closure);
glibtop_ifaddr *glibtop_get_netinfo_p (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, glibtop_netinfo *buf, const char *interface, guint64 transport);
#else
int glibtop_init_netinfo_s (glibtop_server *server, glibtop_closure *closure);
glibtop_ifaddr *glibtop_get_netinfo_s (glibtop_server *server, glibtop_closure *closure, glibtop_array *array, glibtop_netinfo *buf, const char *interface, guint64 transport);
#endif
#ifdef GLIBTOP_NAMES
/* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_netinfo [];
extern const unsigned glibtop_types_netinfo [];
extern const char *glibtop_labels_netinfo [];
extern const char *glibtop_descriptions_netinfo [];
#endif
G_END_DECLS
#endif

View File

@@ -1,71 +0,0 @@
/* Copyright (C) 2004 Benoît Dejean
This file is part of LibGTop 2.0.
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
LibGTop is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef __GLIBTOP_NETLIST_H__
#define __GLIBTOP_NETLIST_H__
#include <glibtop.h>
#include <glibtop/global.h>
G_BEGIN_DECLS
#define GLIBTOP_NETLIST_NUMBER 0
#define GLIBTOP_MAX_NETLIST 1
typedef struct _glibtop_netlist glibtop_netlist;
struct _glibtop_netlist
{
guint64 flags;
guint32 number;
};
#define glibtop_get_netlist(netlist) glibtop_get_netlist_l(glibtop_global_server, netlist)
#if GLIBTOP_SUID_NETLIST
#define glibtop_get_netlist_r glibtop_get_netlist_p
#else
#define glibtop_get_netlist_r glibtop_get_netlist_s
#endif
char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf);
#if GLIBTOP_SUID_NETLIST
void glibtop_init_netlist_p (glibtop *server);
char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf);
#else
void glibtop_init_netlist_s (glibtop *server);
char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf);
#endif
#ifdef GLIBTOP_NAMES
/* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_netlist [];
extern const unsigned glibtop_types_netlist [];
extern const char *glibtop_labels_netlist [];
extern const char *glibtop_descriptions_netlist [];
#endif
G_END_DECLS
#endif

View File

@@ -43,12 +43,8 @@ G_BEGIN_DECLS
#define GLIBTOP_NETLOAD_ERRORS_OUT 11
#define GLIBTOP_NETLOAD_ERRORS_TOTAL 12
#define GLIBTOP_NETLOAD_COLLISIONS 13
#define GLIBTOP_NETLOAD_ADDRESS6 14
#define GLIBTOP_NETLOAD_PREFIX6 15
#define GLIBTOP_NETLOAD_SCOPE6 16
#define GLIBTOP_NETLOAD_HWADDRESS 17
#define GLIBTOP_MAX_NETLOAD 18
#define GLIBTOP_MAX_NETLOAD 14
typedef struct _glibtop_netload glibtop_netload;
@@ -71,25 +67,14 @@ enum {
GLIBTOP_IF_FLAGS_MULTICAST
};
enum GLIBTOP_IF_IN6_SCOPE
{
GLIBTOP_IF_IN6_SCOPE_UNKNOWN = 0,
GLIBTOP_IF_IN6_SCOPE_LINK = 1,
GLIBTOP_IF_IN6_SCOPE_SITE = 2,
GLIBTOP_IF_IN6_SCOPE_GLOBAL = 4,
GLIBTOP_IF_IN6_SCOPE_HOST = 8
};
struct _glibtop_netload
{
guint64 flags,
if_flags; /* GLIBTOP_NETLOAD_IF_FLAGS */
guint32 mtu, /* GLIBTOP_NETLOAD_MTU */
if_flags, /* GLIBTOP_NETLOAD_IF_FLAGS */
mtu, /* GLIBTOP_NETLOAD_MTU */
subnet, /* GLIBTOP_NETLOAD_SUBNET */
address; /* GLIBTOP_NETLOAD_ADDRESS */
guint64 packets_in, /* GLIBTOP_NETLOAD_PACKETS_IN */
address, /* GLIBTOP_NETLOAD_ADDRESS */
packets_in, /* GLIBTOP_NETLOAD_PACKETS_IN */
packets_out, /* GLIBTOP_NETLOAD_PACKETS_OUT */
packets_total, /* GLIBTOP_NETLOAD_PACKETS_TOTAL*/
bytes_in, /* GLIBTOP_NETLOAD_BYTES_IN */
@@ -99,12 +84,6 @@ struct _glibtop_netload
errors_out, /* GLIBTOP_NETLOAD_ERRORS_OUT */
errors_total, /* GLIBTOP_NETLOAD_ERRORS_TOTAL */
collisions; /* GLIBTOP_NETLOAD_COLLISIONS */
guint8 address6[16]; /* GLIBTOP_NETLOAD_ADDRESS6 */
guint8 prefix6[16]; /* GLIBTOP_NETLOAD_PREXIF6 */
guint8 scope6; /* GLIBTOP_NETLOAD_SCOPE6 */
guint8 hwaddress[8]; /* GLIBTOP_NETLOAD_HWADDRESS */
};
#define glibtop_get_netload(netload,interface) glibtop_get_netload_l(glibtop_global_server, netload, interface)

View File

@@ -41,49 +41,31 @@ struct _glibtop_proc_args
size; /* GLIBTOP_PROC_ARGS_SIZE */
};
#define glibtop_get_proc_args(proc_args,pid,max_len) glibtop_get_proc_args_l(glibtop_global_server, proc_args, pid, max_len)
#if GLIBTOP_SUID_PROC_ARGS
#define glibtop_get_proc_args_r glibtop_get_proc_args_p
#else
#define glibtop_get_proc_args_r glibtop_get_proc_args_s
#endif
char *
glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len);
#define glibtop_get_proc_args(proc_args,pid,max_len) glibtop_get_proc_args_l(glibtop_global_server, proc_args, pid, max_len)
#if GLIBTOP_SUID_PROC_ARGS
void glibtop_init_proc_args_p (glibtop *server);
# define glibtop_get_proc_args_r glibtop_get_proc_args_p
void glibtop_init_proc_args_p (glibtop *server);
char *
glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len);
#else /* !GLIBTOP_SUID_PROC_ARGS */
# define glibtop_get_proc_args_r glibtop_get_proc_args_s
void glibtop_init_proc_args_s (glibtop *server);
char *
glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len);
#endif /* GLIBTOP_SUID_PROC_ARGS */
/*
* NEW functions
*/
char **
glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf,
char *
glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len);
#else
void glibtop_init_proc_args_s (glibtop *server);
#define glibtop_get_proc_argv(proc_args,pid,max_len) glibtop_get_proc_argv_l(glibtop_global_server, proc_args, pid, max_len)
char *
glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len);
#endif
#ifdef GLIBTOP_NAMES

81
include/glibtop/proccwd.h Normal file
View File

@@ -0,0 +1,81 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* $Id$ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
LibGTop is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef __GLIBTOP_PROCCWD_H__
#define __GLIBTOP_PROCCWD_H__
#include <glibtop.h>
#include <glibtop/global.h>
#include <glibtop/array.h>
G_BEGIN_DECLS
#define GLIBTOP_PROC_CWD_SIZE 0
#define GLIBTOP_PROC_CWD_DEVICE 1
#define GLIBTOP_PROC_CWD_INODE 2
#define GLIBTOP_MAX_PROC_CWD 3
typedef struct _glibtop_proc_cwd glibtop_proc_cwd;
/* Cwd stuff */
struct _glibtop_proc_cwd
{
guint64 flags,
size,
device,
inode;
};
#if GLIBTOP_SUID_PROC_CWD
#define glibtop_get_proc_cwd_r glibtop_get_proc_cwd_p
#else
#define glibtop_get_proc_cwd_r glibtop_get_proc_cwd_s
#endif
char *glibtop_get_proc_cwd_l (glibtop_client *client, glibtop_proc_cwd *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_CWD
int glibtop_init_proc_cwd_p (glibtop_server *server, glibtop_closure *closure);
char *glibtop_get_proc_cwd_p (glibtop_server *server, glibtop_closure *closure, glibtop_proc_cwd *buf, pid_t pid);
#else
int glibtop_init_proc_cwd_s (glibtop_server *server, glibtop_closure *closure);
char *glibtop_get_proc_cwd_s (glibtop_server *server, glibtop_closure *closure, glibtop_proc_cwd *buf, pid_t pid);
#endif
#ifdef GLIBTOP_NAMES
/* You need to link with -lgtop_names to get this stuff here. */
extern const char *glibtop_names_proc_cwd [];
extern const unsigned glibtop_types_proc_cwd [];
extern const char *glibtop_labels_proc_cwd [];
extern const char *glibtop_descriptions_proc_cwd [];
#endif
#endif

View File

@@ -72,20 +72,20 @@ struct _glibtop_proclist
unsigned *
glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg);
int64_t which, int64_t arg);
#if GLIBTOP_SUID_PROCLIST
void glibtop_init_proclist_p (glibtop *server);
unsigned *
glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg);
int64_t which, int64_t arg);
#else
void glibtop_init_proclist_s (glibtop *server);
unsigned *
glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg);
int64_t which, int64_t arg);
#endif
#ifdef GLIBTOP_NAMES

View File

@@ -47,7 +47,6 @@ G_BEGIN_DECLS
#define GLIBTOP_PROCESS_ZOMBIE 8
#define GLIBTOP_PROCESS_STOPPED 16
#define GLIBTOP_PROCESS_SWAPPING 32
#define GLIBTOP_PROCESS_DEAD 64
typedef struct _glibtop_proc_state glibtop_proc_state;

View File

@@ -59,7 +59,7 @@ typedef struct _glibtop_proc_uid glibtop_proc_uid;
struct _glibtop_proc_uid
{
guint64 flags;
gint32 uid, /* user id */
int uid, /* user id */
euid, /* effective user id */
gid, /* group id */
egid, /* effective group id */

View File

@@ -51,9 +51,8 @@ G_BEGIN_DECLS
#define GLIBTOP_SYSDEPS_FSUSAGE 20
#define GLIBTOP_SYSDEPS_NETLOAD 21
#define GLIBTOP_SYSDEPS_PPP 22
#define GLIBTOP_SYSDEPS_NETLIST 23
#define GLIBTOP_MAX_SYSDEPS 24
#define GLIBTOP_MAX_SYSDEPS 23
#define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1)
@@ -87,7 +86,6 @@ struct _glibtop_sysdeps
proc_map, /* glibtop_proc_map */
mountlist, /* glibtop_mountlist */
fsusage, /* glibtop_fsusage */
netlist, /* glibtop_netlist */
netload, /* glibtop_netload */
ppp; /* glibtop_ppp */
};

View File

@@ -48,7 +48,6 @@
#include <glibtop/fsusage.h>
#include <glibtop/netload.h>
#include <glibtop/netlist.h>
#include <glibtop/ppp.h>
G_BEGIN_DECLS
@@ -77,7 +76,6 @@ union _glibtop_union
glibtop_proc_map proc_map;
glibtop_mountlist mountlist;
glibtop_fsusage fsusage;
glibtop_netlist netlist;
glibtop_netload netload;
glibtop_ppp ppp;
};

View File

@@ -23,6 +23,9 @@
#define __GLIBTOP_VERSION_H__
#include <glibtop.h>
#include <glibtop/union.h>
#include <glibtop/sysdeps.h>
#include <glibtop/command.h>
#define LIBGTOP_VERSION_STRING "Libgtop %s server version %s (%u,%u,%u,%u)."

14
kernel/ChangeLog Normal file
View File

@@ -0,0 +1,14 @@
1998-07-21 Martin Baulig <martin@home-of-linux.org>
* table20: New directory for 2.0.xx kernels.
* table21: New directory for 2.1.xx kernels.
* *: Moved into `table20' and `table21'.
1998-06-14 Martin Baulig <baulig@taurus.uni-trier.de>
* README: Added README.
* kernel.patch: Patch for the Linux kernel to add the
new system call.

1
kernel/sysctl/.cvsignore Normal file
View File

@@ -0,0 +1 @@
*.flags

22
kernel/sysctl/Makefile Normal file
View File

@@ -0,0 +1,22 @@
#
# Makefile for the LibGTop linux sysctl interface.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definition is now in the main makefile...
O_TARGET := kernel.o
ifeq ($(CONFIG_LIBGTOP),y)
O_OJBS := main.o libgtop.o
else
O_OBJS := main.o
endif
OX_OBJS := libgtop_syms.o
ifeq ($(CONFIG_LIBGTOP),m)
M_OBJS := libgtop.o
endif
include $(TOPDIR)/Rules.make

1268
kernel/sysctl/libgtop.c Normal file

File diff suppressed because it is too large Load Diff

242
kernel/sysctl/libgtop.h Normal file
View File

@@ -0,0 +1,242 @@
#ifndef _LINUX_LIBGTOP_H
#define _LINUX_LIBGTOP_H 1
#include <linux/tasks.h>
enum {
LIBGTOP_VERSION = 1,
LIBGTOP_UPDATE_EXPENSIVE,
LIBGTOP_STAT = 101,
LIBGTOP_MEM,
LIBGTOP_SWAP,
LIBGTOP_PROCLIST = 201,
LIBGTOP_PROC_STATE = 211,
LIBGTOP_PROC_KERNEL,
LIBGTOP_PROC_SEGMENT,
LIBGTOP_PROC_MEM,
LIBGTOP_PROC_SIGNAL,
LIBGTOP_PROC_ARGS = 251,
LIBGTOP_PROC_MAPS,
LIBGTOP_NETLOAD = 301
};
enum {
LIBGTOP_PROCLIST_ALL = 0,
LIBGTOP_PROCLIST_PID,
LIBGTOP_PROCLIST_PGRP,
LIBGTOP_PROCLIST_SESSION,
LIBGTOP_PROCLIST_TTY,
LIBGTOP_PROCLIST_UID,
LIBGTOP_PROCLIST_RUID
};
#define LIBGTOP_NSIG 4
#define LIBGTOP_PROCLIST_MASK 15
#define LIBGTOP_MAX_GROUPS 32
#define LIBGTOP_EXCLUDE_IDLE 0x1000
#define LIBGTOP_EXCLUDE_SYSTEM 0x2000
#define LIBGTOP_EXCLUDE_NOTTY 0x4000
#define LIBGTOP_TASK_RUNNING 1
#define LIBGTOP_TASK_INTERRUPTIBLE 2
#define LIBGTOP_TASK_UNINTERRUPTIBLE 4
#define LIBGTOP_TASK_ZOMBIE 8
#define LIBGTOP_TASK_STOPPED 16
#define LIBGTOP_TASK_SWAPPING 32
#define LIBGTOP_VM_READ 0x0001 /* currently active flags */
#define LIBGTOP_VM_WRITE 0x0002
#define LIBGTOP_VM_EXEC 0x0004
#define LIBGTOP_VM_SHARED 0x0008
#define LIBGTOP_VM_MAYREAD 0x0010 /* limits for mprotect() etc */
#define LIBGTOP_VM_MAYWRITE 0x0020
#define LIBGTOP_VM_MAYEXEC 0x0040
#define LIBGTOP_VM_MAYSHARE 0x0080
#define LIBGTOP_VM_GROWSDOWN 0x0100 /* general info on the segment */
#define LIBGTOP_VM_GROWSUP 0x0200
#define LIBGTOP_VM_SHM 0x0400 /* shared memory area, don't swap out */
#define LIBGTOP_VM_DENYWRITE 0x0800 /* ETXTBSY on write attempts.. */
#define LIBGTOP_VM_EXECUTABLE 0x1000
#define LIBGTOP_VM_LOCKED 0x2000
#define LIBGTOP_VM_IO 0x4000 /* Memory mapped I/O or similar */
#define LIBGTOP_MAP_PATH_LEN (PAGE_SIZE - sizeof (libgtop_proc_maps_header_t))
#ifndef min
#define min(a,b) ((a < b) ? a : b)
#endif
typedef struct libgtop_stat libgtop_stat_t;
typedef struct libgtop_cpu libgtop_cpu_t;
typedef struct libgtop_mem libgtop_mem_t;
typedef struct libgtop_swap libgtop_swap_t;
typedef struct libgtop_proclist libgtop_proclist_t;
typedef struct libgtop_proc_state libgtop_proc_state_t;
typedef struct libgtop_proc_kernel libgtop_proc_kernel_t;
typedef struct libgtop_proc_segment libgtop_proc_segment_t;
typedef struct libgtop_proc_mem libgtop_proc_mem_t;
typedef struct libgtop_proc_signal libgtop_proc_signal_t;
typedef struct libgtop_proc_maps_header libgtop_proc_maps_header_t;
typedef struct libgtop_proc_maps libgtop_proc_maps_t;
typedef struct libgtop_netload libgtop_netload_t;
struct libgtop_cpu
{
unsigned long total; /* Total CPU Time */
unsigned long user; /* CPU Time in User Mode */
unsigned long nice; /* CPU Time in User Mode (nice) */
unsigned long sys; /* CPU Time in System Mode */
unsigned long idle; /* CPU Time in the Idle Task */
};
struct libgtop_mem
{
unsigned long totalram; /* Total usable main memory size */
unsigned long freeram; /* Available memory size */
unsigned long sharedram; /* Amount of shared memory */
unsigned long bufferram; /* Memory used by buffers */
unsigned long cachedram;
};
struct libgtop_swap
{
unsigned long totalswap; /* Total swap space size */
unsigned long freeswap; /* swap space still available */
};
struct libgtop_proclist
{
int count;
int nr_running, nr_tasks, last_pid;
unsigned pids [NR_TASKS];
};
struct libgtop_stat
{
int ncpu; /* Number of CPUs */
unsigned long frequency; /* Tick frequency (HZ) */
libgtop_cpu_t cpu; /* CPU statistics */
libgtop_cpu_t xcpu [NR_CPUS]; /* SMP per-CPU statistics */
double loadavg [3]; /* Load average */
unsigned long total_forks; /* Total # of forks */
unsigned int context_swtch; /* Total # of context switches */
unsigned long boot_time; /* Boot time (seconds s. epoch) */
unsigned int pgpgin, pgpgout; /* # of pages paged in/out */
unsigned int pswpin, pswpout; /* # of swap pgs brought in/out */
};
struct libgtop_proc_state
{
long state;
unsigned long flags;
char comm [16];
int uid, euid, suid, fsuid;
int gid, egid, sgid, fsgid;
int pid, pgrp, ppid;
int session;
unsigned int tty;
int tpgid;
long priority, counter, def_priority;
long utime, stime, cutime, cstime, start_time;
long per_cpu_utime [NR_CPUS], per_cpu_stime [NR_CPUS];
int has_cpu, processor, last_processor;
unsigned long context;
unsigned long start_code, end_code, start_data, end_data;
unsigned long start_brk, brk, start_stack, start_mmap;
unsigned long arg_start, arg_end, env_start, env_end;
unsigned long rss, rlim, total_vm, locked_vm;
unsigned long policy, rt_priority;
unsigned long it_real_value, it_prof_value, it_virt_value;
unsigned long it_real_incr, it_prof_incr, it_virt_incr;
unsigned long keip, kesp;
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
unsigned long nswap, cnswap;
int ngroups, groups [LIBGTOP_MAX_GROUPS];
};
struct libgtop_proc_kernel
{
unsigned long wchan;
};
struct libgtop_proc_segment
{
unsigned long vsize, data, exec, stack, lib;
};
struct libgtop_proc_mem
{
libgtop_proc_segment_t segment;
int size, resident, share, trs, lrs, drs, dt;
unsigned long rss, rlim;
};
struct libgtop_proc_signal
{
unsigned long signal [LIBGTOP_NSIG];
unsigned long blocked [LIBGTOP_NSIG];
unsigned long ignore [LIBGTOP_NSIG];
unsigned long catch [LIBGTOP_NSIG];
};
struct libgtop_proc_maps_header
{
unsigned long start, end, offset, perm;
off_t filename_offset;
ino_t inode;
dev_t device;
} __attribute__ ((aligned (64)));
struct libgtop_proc_maps
{
libgtop_proc_maps_header_t header;
char filename [LIBGTOP_MAP_PATH_LEN];
};
struct libgtop_netload
{
unsigned long rx_packets; /* total packets received */
unsigned long tx_packets; /* total packets transmitted */
unsigned long rx_bytes; /* total bytes received */
unsigned long tx_bytes; /* total bytes transmitted */
unsigned long rx_errors; /* bad packets received */
unsigned long tx_errors; /* packet transmit problems */
unsigned long rx_dropped; /* no space in linux buffers */
unsigned long tx_dropped; /* no space available in linux */
unsigned long multicast; /* multicast packets received */
unsigned long collisions;
/* detailed rx_errors: */
unsigned long rx_length_errors;
unsigned long rx_over_errors; /* receiver ring buff overflow */
unsigned long rx_crc_errors; /* recved pkt with crc error */
unsigned long rx_frame_errors; /* recv'd frame alignment error */
unsigned long rx_fifo_errors; /* recv'r fifo overrun */
unsigned long rx_missed_errors; /* receiver missed packet */
/* detailed tx_errors */
unsigned long tx_aborted_errors;
unsigned long tx_carrier_errors;
unsigned long tx_fifo_errors;
unsigned long tx_heartbeat_errors;
unsigned long tx_window_errors;
/* for cslip etc */
unsigned long rx_compressed;
unsigned long tx_compressed;
};
#endif

View File

@@ -0,0 +1,30 @@
/*
* linux/libgtop/libgtop_syms.c
* Copyright (C) 1999 Martin Baulig
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <linux/swap.h>
extern unsigned long total_forks;
EXPORT_SYMBOL(task);
EXPORT_SYMBOL(init_mm);
EXPORT_SYMBOL(pidhash);
EXPORT_SYMBOL(avenrun);
EXPORT_SYMBOL(nr_running);
EXPORT_SYMBOL(nr_tasks);
EXPORT_SYMBOL(last_pid);
EXPORT_SYMBOL(total_forks);
EXPORT_SYMBOL(si_swapinfo);
extern void scheduling_functions_start_here(void);
extern void scheduling_functions_end_here(void);
EXPORT_SYMBOL(scheduling_functions_start_here);
EXPORT_SYMBOL(scheduling_functions_end_here);

4
kernel/sysctl/main.c Normal file
View File

@@ -0,0 +1,4 @@
/*
* linux/libgtop/main.c
* Copyright (C) 1999 Martin Baulig
*/

81
kernel/sysctl/patch-2.2.1 Normal file
View File

@@ -0,0 +1,81 @@
diff -ru linux-2.2.1/Makefile hacker/Makefile
--- linux-2.2.1/Makefile Sun Jan 31 22:45:42 1999
+++ hacker/Makefile Sun Mar 21 16:10:41 1999
@@ -109,6 +109,7 @@
DRIVERS =drivers/block/block.a \
drivers/char/char.a \
drivers/misc/misc.a
+EXTRAS =
LIBS =$(TOPDIR)/lib/lib.a
SUBDIRS =kernel drivers mm fs net ipc lib
@@ -186,6 +187,11 @@
DRIVERS := $(DRIVERS) drivers/net/irda/irda_drivers.a
endif
+ifdef CONFIG_LIBGTOP
+SUBDIRS := $(SUBDIRS) libgtop
+EXTRAS := $(EXTRAS) libgtop/kernel.o
+endif
+
include arch/$(ARCH)/Makefile
.S.s:
@@ -206,6 +212,7 @@
$(FILESYSTEMS) \
$(NETWORKS) \
$(DRIVERS) \
+ $(EXTRAS) \
$(LIBS) \
--end-group \
-o vmlinux
diff -ru linux-2.2.1/arch/i386/config.in hacker/arch/i386/config.in
--- linux-2.2.1/arch/i386/config.in Sun Jan 31 22:25:25 1999
+++ hacker/arch/i386/config.in Sat Mar 20 18:26:18 1999
@@ -84,6 +84,9 @@
bool 'System V IPC' CONFIG_SYSVIPC
bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
bool 'Sysctl support' CONFIG_SYSCTL
+if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+ tristate 'LibGTop support' CONFIG_LIBGTOP
+fi
tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
diff -ru linux-2.2.1/include/linux/sysctl.h hacker/include/linux/sysctl.h
--- linux-2.2.1/include/linux/sysctl.h Sun Jan 31 22:24:14 1999
+++ hacker/include/linux/sysctl.h Sat Mar 20 19:12:54 1999
@@ -56,7 +56,8 @@
CTL_PROC=4, /* Process info */
CTL_FS=5, /* Filesystems */
CTL_DEBUG=6, /* Debugging */
- CTL_DEV=7 /* Devices */
+ CTL_DEV=7, /* Devices */
+ CTL_LIBGTOP=408 /* LibGTop */
};
diff -ru linux-2.2.1/kernel/sysctl.c hacker/kernel/sysctl.c
--- linux-2.2.1/kernel/sysctl.c Sun Jan 31 22:24:43 1999
+++ hacker/kernel/sysctl.c Sat Mar 20 19:24:34 1999
@@ -82,7 +82,9 @@
static ctl_table fs_table[];
static ctl_table debug_table[];
static ctl_table dev_table[];
-
+#ifdef CONFIG_LIBGTOP
+extern ctl_table libgtop_table[];
+#endif
/* /proc declarations: */
@@ -148,6 +150,9 @@
{CTL_FS, "fs", NULL, 0, 0555, fs_table},
{CTL_DEBUG, "debug", NULL, 0, 0555, debug_table},
{CTL_DEV, "dev", NULL, 0, 0555, dev_table},
+#ifdef CONFIG_LIBGTOP
+ {CTL_LIBGTOP, "libgtop", NULL, 0, 0555, libgtop_table},
+#endif
{0}
};

93
kernel/sysctl/patch-2.2.x Normal file
View File

@@ -0,0 +1,93 @@
diff -ru kernel-source-2.2.12/Makefile hacker-2.2.12/Makefile
--- kernel-source-2.2.12/Makefile Thu Aug 26 02:29:45 1999
+++ hacker-2.2.12/Makefile Sat Dec 18 17:33:04 1999
@@ -113,6 +113,7 @@
DRIVERS =drivers/block/block.a \
drivers/char/char.a \
drivers/misc/misc.a
+EXTRAS =
LIBS =$(TOPDIR)/lib/lib.a
SUBDIRS =kernel drivers mm fs net ipc lib
@@ -202,6 +203,11 @@
DRIVERS := $(DRIVERS) drivers/net/irda/irda_drivers.a
endif
+ifdef CONFIG_LIBGTOP
+SUBDIRS := $(SUBDIRS) libgtop
+EXTRAS := $(EXTRAS) libgtop/kernel.o
+endif
+
include arch/$(ARCH)/Makefile
.S.s:
@@ -222,6 +228,7 @@
$(FILESYSTEMS) \
$(NETWORKS) \
$(DRIVERS) \
+ $(EXTRAS) \
$(LIBS) \
--end-group \
-o vmlinux
diff -ru kernel-source-2.2.12/arch/i386/config.in hacker-2.2.12/arch/i386/config.in
--- kernel-source-2.2.12/arch/i386/config.in Thu Oct 14 00:57:46 1999
+++ hacker-2.2.12/arch/i386/config.in Sat Dec 18 17:33:04 1999
@@ -88,6 +88,9 @@
bool 'System V IPC' CONFIG_SYSVIPC
bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
bool 'Sysctl support' CONFIG_SYSCTL
+if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+ tristate 'LibGTop support' CONFIG_LIBGTOP
+fi
tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
diff -ru kernel-source-2.2.12/include/linux/autoconf.h hacker-2.2.12/include/linux/autoconf.h
--- kernel-source-2.2.12/include/linux/autoconf.h Sat Dec 4 01:20:30 1999
+++ hacker-2.2.12/include/linux/autoconf.h Sat Dec 18 17:41:44 1999
@@ -53,6 +53,8 @@
#define CONFIG_SYSVIPC 1
#define CONFIG_BSD_PROCESS_ACCT 1
#define CONFIG_SYSCTL 1
+#undef CONFIG_LIBGTOP
+#define CONFIG_LIBGTOP_MODULE 1
#undef CONFIG_BINFMT_AOUT
#define CONFIG_BINFMT_AOUT_MODULE 1
#define CONFIG_BINFMT_ELF 1
diff -ru kernel-source-2.2.12/include/linux/sysctl.h hacker-2.2.12/include/linux/sysctl.h
--- kernel-source-2.2.12/include/linux/sysctl.h Mon Aug 9 21:05:13 1999
+++ hacker-2.2.12/include/linux/sysctl.h Sat Dec 18 17:34:38 1999
@@ -57,7 +57,8 @@
CTL_FS=5, /* Filesystems */
CTL_DEBUG=6, /* Debugging */
CTL_DEV=7, /* Devices */
- CTL_BUS=8 /* Buses */
+ CTL_BUS=8, /* Buses */
+ CTL_LIBGTOP=408 /* LibGTop */
};
/* CTL_BUS names: */
diff -ru kernel-source-2.2.12/kernel/sysctl.c hacker-2.2.12/kernel/sysctl.c
--- kernel-source-2.2.12/kernel/sysctl.c Mon Aug 9 21:05:13 1999
+++ hacker-2.2.12/kernel/sysctl.c Sat Dec 18 17:33:04 1999
@@ -83,7 +83,9 @@
static ctl_table fs_table[];
static ctl_table debug_table[];
static ctl_table dev_table[];
-
+#ifdef CONFIG_LIBGTOP
+extern ctl_table libgtop_table[];
+#endif
/* /proc declarations: */
@@ -149,6 +151,9 @@
{CTL_FS, "fs", NULL, 0, 0555, fs_table},
{CTL_DEBUG, "debug", NULL, 0, 0555, debug_table},
{CTL_DEV, "dev", NULL, 0, 0555, dev_table},
+#ifdef CONFIG_LIBGTOP
+ {CTL_LIBGTOP, "libgtop", NULL, 0, 0555, libgtop_table},
+#endif
{0}
};

188
kernel/table.h Normal file
View File

@@ -0,0 +1,188 @@
#ifndef _LINUX_TABLE_H
#define _LINUX_TABLE_H
#ifdef _KERNEL
#include <linux/types.h>
#else
#define NR_TASKS 512
#endif
#define TABLE_KERN_PROC_ALL 0 /* all processes */
#define TABLE_KERN_PROC_PID 1
#define TABLE_KERN_PROC_PGRP 2
#define TABLE_KERN_PROC_SESSION 3
#define TABLE_KERN_PROC_TTY 4
#define TABLE_KERN_PROC_UID 5
#define TABLE_KERN_PROC_RUID 6
#define TABLE_KERN_PROC_MASK 15
#define TABLE_EXCLUDE_IDLE 0x1000
#define TABLE_EXCLUDE_SYSTEM 0x2000
#define TABLE_EXCLUDE_NOTTY 0x4000
#define TABLE_VERSION 0
#define TABLE_CPU 1
#define TABLE_MEM 2
#define TABLE_SWAP 3
#define TABLE_LOADAVG 4
#define TABLE_UPTIME 5
#define TABLE_PROCLIST 6
#define TABLE_PROC_UID 7
#define TABLE_PROC_MEM 8
#define TABLE_PROC_SEGMENT 9
#define TABLE_PROC_TIME 10
#define TABLE_PROC_STATE 11
#define TABLE_PROC_SIGNAL 12
#define TABLE_PROC_KERNEL 13
/* CPU Usage (in jiffies = 1/100th seconds) */
struct table_cpu
{
unsigned long total; /* Total CPU Time */
unsigned long user; /* CPU Time in User Mode */
unsigned long nice; /* CPU Time in User Mode (nice) */
unsigned long sys; /* CPU Time in System Mode */
unsigned long idle; /* CPU Time in the Idle Task */
unsigned long frequency; /* Tick frequency */
};
/* Memory Usage (in bytes) */
struct table_mem
{
unsigned long total; /* Total physical memory */
unsigned long used; /* Used memory size */
unsigned long free; /* Free memory size */
unsigned long shared; /* Shared memory size */
unsigned long buffer; /* Size of buffers */
unsigned long cached; /* Size of cached memory */
};
/* Swap Space (in bytes) */
struct table_swap
{
unsigned long total; /* Total swap space */
unsigned long used; /* Used swap space */
unsigned long free; /* Free swap space */
unsigned long pagein; /* Total # of pages swapped in */
unsigned long pageout; /* Total # of pages swapped out */
};
/* Load average */
struct table_loadavg
{
double loadavg [3];
unsigned nr_running;
unsigned nr_tasks;
unsigned last_pid;
};
/* Uptime */
struct table_uptime
{
unsigned long uptime;
unsigned long idle;
};
/* Process list. */
struct proclist_args
{
int which, arg;
};
struct table_proclist
{
int nr_running, nr_tasks, last_pid;
unsigned pids [NR_TASKS];
};
/* Information about processes. */
struct table_proc_state
{
long state;
unsigned long flags;
char comm[16];
int uid, gid;
};
struct table_proc_uid
{
int uid, euid, suid, fsuid;
int gid, egid, sgid, fsgid;
int pid, pgrp, ppid;
int session;
unsigned int tty;
int tpgid;
long priority;
long counter;
long def_priority;
};
struct table_proc_mem
{
unsigned long context;
unsigned long start_code, end_code, start_data, end_data;
unsigned long start_brk, brk, start_stack, start_mmap;
unsigned long arg_start, arg_end, env_start, env_end;
unsigned long rss, rlim, total_vm, locked_vm;
};
struct table_proc_segment
{
unsigned long vsize;
unsigned long size, resident, shared;
unsigned long trs, lrs, drs, srs, dt;
};
struct table_proc_time
{
long utime, stime, cutime, cstime, start_time;
unsigned long timeout, policy, rt_priority;
unsigned long it_real_value, it_prof_value, it_virt_value;
unsigned long it_real_incr, it_prof_incr, it_virt_incr;
};
struct table_proc_signal
{
unsigned long long signal,
blocked, /* bitmap of masked signals */
ignored, /* mask of ignored signals */
caught; /* mask of caught signals */
};
struct table_proc_kernel
{
unsigned long keip, kesp, wchan;
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
unsigned long nswap, cnswap;
};
/* Union */
union table
{
struct table_cpu cpu;
struct table_mem mem;
struct table_swap swap;
struct table_loadavg loadavg;
struct table_uptime uptime;
struct table_proclist proclist;
struct table_proc_uid proc_uid;
struct table_proc_mem proc_mem;
struct table_proc_segment proc_segment;
struct table_proc_time proc_time;
struct table_proc_state proc_state;
struct table_proc_signal proc_signal;
struct table_proc_kernel proc_kernel;
};
#endif /* _LINUX_IPC_H */

13
kernel/table20/Makefile Normal file
View File

@@ -0,0 +1,13 @@
#
# Makefile for the linux system information tables.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definition is now in the main makefile...
O_TARGET := table.o
O_OBJS := main.o
include $(TOPDIR)/Rules.make

21
kernel/table20/README Normal file
View File

@@ -0,0 +1,21 @@
This is a new system call `table ()' for the Linux table. It is faster
than reading from /proc and can be used to fetch all information required
for libgtop until whe have some other function (extended sysctl, ...) in
standard kernels.
I didn't want to change sysctl or some other function myself cause this may
cause other applications relying upon those function to fail. This is
something for the ``real'' kernel gurus ...
To use this new system call for libgtop, do the following:
* Copy this directory to /usr/src/linux/table
* Make /usr/src/linux/include/linux/table.h symlink to /usr/src/linux/table/table.h
* Apply the patch `kernel.patch' to the kernel, compile, install and reboot
* Recompile libgtop (remove `config.cache' and run the `autogen.sh' again).
If you want to change and/or add something - feel free to do so !
Have fun,
Martin

706
kernel/table20/entry-i386.S Normal file
View File

@@ -0,0 +1,706 @@
/*
* linux/arch/i386/entry.S
*
* Copyright (C) 1991, 1992 Linus Torvalds
*/
/*
* entry.S contains the system-call and fault low-level handling routines.
* This also contains the timer-interrupt handler, as well as all interrupts
* and faults that can result in a task-switch.
*
* NOTE: This code handles signal-recognition, which happens every time
* after a timer-interrupt and after each system call.
*
* I changed all the .align's to 4 (16 byte alignment), as that's faster
* on a 486.
*
* Stack layout in 'ret_from_system_call':
* ptrace needs to have all regs on the stack.
* if the order here is changed, it needs to be
* updated in fork.c:copy_process, signal.c:do_signal,
* ptrace.c and ptrace.h
*
* 0(%esp) - %ebx
* 4(%esp) - %ecx
* 8(%esp) - %edx
* C(%esp) - %esi
* 10(%esp) - %edi
* 14(%esp) - %ebp
* 18(%esp) - %eax
* 1C(%esp) - %ds
* 20(%esp) - %es
* 24(%esp) - %fs
* 28(%esp) - %gs
* 2C(%esp) - orig_eax
* 30(%esp) - %eip
* 34(%esp) - %cs
* 38(%esp) - %eflags
* 3C(%esp) - %oldesp
* 40(%esp) - %oldss
*/
#include <linux/sys.h>
#include <linux/linkage.h>
#include <asm/segment.h>
#define ASSEMBLY
#include <asm/smp.h>
EBX = 0x00
ECX = 0x04
EDX = 0x08
ESI = 0x0C
EDI = 0x10
EBP = 0x14
EAX = 0x18
DS = 0x1C
ES = 0x20
FS = 0x24
GS = 0x28
ORIG_EAX = 0x2C
EIP = 0x30
CS = 0x34
EFLAGS = 0x38
OLDESP = 0x3C
OLDSS = 0x40
CF_MASK = 0x00000001
IF_MASK = 0x00000200
NT_MASK = 0x00004000
VM_MASK = 0x00020000
/*
* these are offsets into the task-struct.
*/
state = 0
counter = 4
priority = 8
signal = 12
blocked = 16
flags = 20
dbgreg6 = 52
dbgreg7 = 56
exec_domain = 60
ENOSYS = 38
#define SAVE_ALL \
cld; \
push %gs; \
push %fs; \
push %es; \
push %ds; \
pushl %eax; \
pushl %ebp; \
pushl %edi; \
pushl %esi; \
pushl %edx; \
pushl %ecx; \
pushl %ebx; \
movl $(KERNEL_DS),%edx; \
mov %dx,%ds; \
mov %dx,%es; \
movl $(USER_DS),%edx; \
mov %dx,%fs;
#ifdef __SMP__
#define GET_PROCESSOR_ID \
movl SYMBOL_NAME(apic_reg), %edx; \
movl 32(%edx), %eax;\
movl %eax,SYMBOL_NAME(apic_retval); \
shrl $24,%eax; \
andb $0x0F,%al;
/*
* Get the processor ID multiplied by 4
*/
#define GET_PROCESSOR_OFFSET(x) \
movl SYMBOL_NAME(apic_reg), x ; \
movl 32( x ), x ; \
shrl $22, x ; \
andl $0x3C, x ;
/* macro LEAVE_KERNEL decrements kernel_counter and resets kernel_flag and
saves processor variables if zero */
#define LEAVE_KERNEL \
pushfl; \
cli; \
GET_PROCESSOR_ID \
btrl $ SMP_FROM_SYSCALL,SYMBOL_NAME(smp_proc_in_lock)(,%eax,4); \
decl SYMBOL_NAME(syscall_count); \
decl SYMBOL_NAME(kernel_counter); \
jnz 1f; \
movb SYMBOL_NAME(saved_active_kernel_processor), %al; \
movb %al, SYMBOL_NAME(active_kernel_processor); \
cmpb $(NO_PROC_ID), %al; \
jnz 1f; \
lock; \
btrl $0, SYMBOL_NAME(kernel_flag); \
1: popfl;
/* macro ENTER_KERNEL waits for entering the kernel, increments
kernel_counter, and reloads the processor variables if necessary
uses : %eax, %edx (pushed and popped)
Note: We go to great pains to minimise the number of locked operations.
We want to spin without locking, and lock when we attempt an update.
The pentium has a MESI cache so the spin without lock will exit when
another CPU write invalidates our cache, and the lock is avoided when
possible so we don't play ping-pong games with the cache line.
*/
#ifndef __SMP_PROF__
#define SMP_PROF_A
#define SMP_PROF_B
#else
#define SMP_PROF_A movl $0,SYMBOL_NAME(smp_spins_syscall_cur)(,%eax,4);
#define SMP_PROF_B incl SYMBOL_NAME(smp_spins_syscall)(,%eax,4); \
incl SYMBOL_NAME(smp_spins_syscall_cur)(,%eax,4);
#endif
#define ENTER_KERNEL \
pushl %eax; \
pushl %ebx; \
pushl %ecx; \
pushl %edx; \
pushfl; \
cli; \
movl $6000, %ebx; \
movl SYMBOL_NAME(smp_loops_per_tick), %ecx; \
GET_PROCESSOR_ID \
btsl $ SMP_FROM_SYSCALL,SYMBOL_NAME(smp_proc_in_lock)(,%eax,4); \
SMP_PROF_A \
1: lock; \
btsl $0, SYMBOL_NAME(kernel_flag); \
jnc 3f; \
cmpb SYMBOL_NAME(active_kernel_processor), %al; \
je 4f; \
2: SMP_PROF_B \
btl %eax, SYMBOL_NAME(smp_invalidate_needed); \
jnc 5f; \
lock; \
btrl %eax, SYMBOL_NAME(smp_invalidate_needed); \
jnc 5f; \
movl %cr3,%edx; \
movl %edx,%cr3; \
5: sti; \
decl %ecx; \
cli; \
jne 7f; \
decl %ebx; \
jne 6f; \
call SYMBOL_NAME(non_irq_deadlock_detected); \
6: movl SYMBOL_NAME(smp_loops_per_tick), %ecx; \
cmpb SYMBOL_NAME(boot_cpu_id), %al; \
jne 7f; \
incl SYMBOL_NAME(jiffies); \
7: btl $0, SYMBOL_NAME(kernel_flag); \
jc 2b; \
jmp 1b; \
3: movb %al, SYMBOL_NAME(active_kernel_processor); \
4: incl SYMBOL_NAME(kernel_counter); \
incl SYMBOL_NAME(syscall_count); \
popfl; \
popl %edx; \
popl %ecx; \
popl %ebx; \
popl %eax;
#define RESTORE_ALL \
cmpw $(KERNEL_CS),CS(%esp); \
je 1f; \
GET_PROCESSOR_OFFSET(%edx) \
movl SYMBOL_NAME(current_set)(,%edx), %eax ; ; \
movl dbgreg7(%eax),%ebx; \
movl %ebx,%db7; \
1: LEAVE_KERNEL \
popl %ebx; \
popl %ecx; \
popl %edx; \
popl %esi; \
popl %edi; \
popl %ebp; \
popl %eax; \
pop %ds; \
pop %es; \
pop %fs; \
pop %gs; \
addl $4,%esp; \
iret
#else
#define RESTORE_ALL \
cmpw $(KERNEL_CS),CS(%esp); \
je 1f; \
movl SYMBOL_NAME(current_set),%eax; \
movl dbgreg7(%eax),%ebx; \
movl %ebx,%db7; \
1: \
popl %ebx; \
popl %ecx; \
popl %edx; \
popl %esi; \
popl %edi; \
popl %ebp; \
popl %eax; \
pop %ds; \
pop %es; \
pop %fs; \
pop %gs; \
addl $4,%esp; \
iret
#endif
ENTRY(lcall7)
pushfl # We get a different stack layout with call gates,
pushl %eax # which has to be cleaned up later..
SAVE_ALL
#ifdef __SMP__
ENTER_KERNEL
#endif
movl EIP(%esp),%eax # due to call gates, this is eflags, not eip..
movl CS(%esp),%edx # this is eip..
movl EFLAGS(%esp),%ecx # and this is cs..
movl %eax,EFLAGS(%esp) #
movl %edx,EIP(%esp) # Now we move them to their "normal" places
movl %ecx,CS(%esp) #
movl %esp,%eax
#ifdef __SMP__
GET_PROCESSOR_OFFSET(%edx) # Processor offset into edx
movl SYMBOL_NAME(current_set)(,%edx),%edx
#else
movl SYMBOL_NAME(current_set),%edx
#endif
pushl %eax
movl exec_domain(%edx),%edx # Get the execution domain
movl 4(%edx),%edx # Get the lcall7 handler for the domain
call *%edx
popl %eax
jmp ret_from_sys_call
ALIGN
handle_bottom_half:
incl SYMBOL_NAME(intr_count)
call SYMBOL_NAME(do_bottom_half)
decl SYMBOL_NAME(intr_count)
jmp 9f
ALIGN
reschedule:
pushl $ret_from_sys_call
jmp SYMBOL_NAME(schedule) # test
ENTRY(system_call)
pushl %eax # save orig_eax
SAVE_ALL
#ifdef __SMP__
ENTER_KERNEL
#endif
movl $-ENOSYS,EAX(%esp)
cmpl $(NR_syscalls),%eax
jae ret_from_sys_call
movl SYMBOL_NAME(sys_call_table)(,%eax,4),%eax
testl %eax,%eax
je ret_from_sys_call
#ifdef __SMP__
GET_PROCESSOR_OFFSET(%edx)
movl SYMBOL_NAME(current_set)(,%edx),%ebx
#else
movl SYMBOL_NAME(current_set),%ebx
#endif
andl $~CF_MASK,EFLAGS(%esp) # clear carry - assume no errors
movl %db6,%edx
movl %edx,dbgreg6(%ebx) # save current hardware debugging status
testb $0x20,flags(%ebx) # PF_TRACESYS
jne 1f
call *%eax
movl %eax,EAX(%esp) # save the return value
jmp ret_from_sys_call
ALIGN
1: call SYMBOL_NAME(syscall_trace)
movl ORIG_EAX(%esp),%eax
call SYMBOL_NAME(sys_call_table)(,%eax,4)
movl %eax,EAX(%esp) # save the return value
#ifdef __SMP__
GET_PROCESSOR_OFFSET(%eax)
movl SYMBOL_NAME(current_set)(,%eax),%eax
#else
movl SYMBOL_NAME(current_set),%eax
#endif
call SYMBOL_NAME(syscall_trace)
ALIGN
.globl ret_from_sys_call
ret_from_sys_call:
cmpl $0,SYMBOL_NAME(intr_count)
jne 2f
9: movl SYMBOL_NAME(bh_mask),%eax
andl SYMBOL_NAME(bh_active),%eax
jne handle_bottom_half
#ifdef __SMP__
cmpb $(NO_PROC_ID), SYMBOL_NAME(saved_active_kernel_processor)
jne 2f
#endif
movl EFLAGS(%esp),%eax # check VM86 flag: CS/SS are
testl $(VM_MASK),%eax # different then
jne 1f
cmpw $(KERNEL_CS),CS(%esp) # was old code segment supervisor ?
je 2f
1: sti
orl $(IF_MASK),%eax # these just try to make sure
andl $~NT_MASK,%eax # the program doesn't do anything
movl %eax,EFLAGS(%esp) # stupid
cmpl $0,SYMBOL_NAME(need_resched)
jne reschedule
#ifdef __SMP__
GET_PROCESSOR_OFFSET(%eax)
movl SYMBOL_NAME(current_set)(,%eax), %eax
#else
movl SYMBOL_NAME(current_set),%eax
#endif
cmpl SYMBOL_NAME(task),%eax # task[0] cannot have signals
je 2f
movl blocked(%eax),%ecx
movl %ecx,%ebx # save blocked in %ebx for signal handling
notl %ecx
andl signal(%eax),%ecx
jne signal_return
2: RESTORE_ALL
ALIGN
signal_return:
movl %esp,%ecx
pushl %ecx
testl $(VM_MASK),EFLAGS(%ecx)
jne v86_signal_return
pushl %ebx
call SYMBOL_NAME(do_signal)
popl %ebx
popl %ebx
RESTORE_ALL
ALIGN
v86_signal_return:
call SYMBOL_NAME(save_v86_state)
movl %eax,%esp
pushl %eax
pushl %ebx
call SYMBOL_NAME(do_signal)
popl %ebx
popl %ebx
RESTORE_ALL
ENTRY(divide_error)
pushl $0 # no error code
pushl $ SYMBOL_NAME(do_divide_error)
ALIGN
error_code:
push %fs
push %es
push %ds
pushl %eax
xorl %eax,%eax
pushl %ebp
pushl %edi
pushl %esi
pushl %edx
decl %eax # eax = -1
pushl %ecx
pushl %ebx
cld
xorl %ebx,%ebx # zero ebx
xchgl %eax, ORIG_EAX(%esp) # orig_eax (get the error code. )
mov %gs,%bx # get the lower order bits of gs
movl %esp,%edx
xchgl %ebx, GS(%esp) # get the address and save gs.
pushl %eax # push the error code
pushl %edx
movl $(KERNEL_DS),%edx
mov %dx,%ds
mov %dx,%es
movl $(USER_DS),%edx
mov %dx,%fs
#ifdef __SMP__
ENTER_KERNEL
GET_PROCESSOR_OFFSET(%eax)
movl SYMBOL_NAME(current_set)(,%eax), %eax
#else
movl SYMBOL_NAME(current_set),%eax
#endif
movl %db6,%edx
movl %edx,dbgreg6(%eax) # save current hardware debugging status
call *%ebx
addl $8,%esp
jmp ret_from_sys_call
ENTRY(coprocessor_error)
pushl $0
pushl $ SYMBOL_NAME(do_coprocessor_error)
jmp error_code
ENTRY(device_not_available)
pushl $-1 # mark this as an int
SAVE_ALL
#ifdef __SMP__
ENTER_KERNEL
#endif
pushl $ret_from_sys_call
movl %cr0,%eax
testl $0x4,%eax # EM (math emulation bit)
je SYMBOL_NAME(math_state_restore)
pushl $0 # temporary storage for ORIG_EIP
call SYMBOL_NAME(math_emulate)
addl $4,%esp
ret
ENTRY(debug)
pushl $0
pushl $ SYMBOL_NAME(do_debug)
jmp error_code
ENTRY(nmi)
pushl $0
pushl $ SYMBOL_NAME(do_nmi)
jmp error_code
ENTRY(int3)
pushl $0
pushl $ SYMBOL_NAME(do_int3)
jmp error_code
ENTRY(overflow)
pushl $0
pushl $ SYMBOL_NAME(do_overflow)
jmp error_code
ENTRY(bounds)
pushl $0
pushl $ SYMBOL_NAME(do_bounds)
jmp error_code
ENTRY(invalid_op)
pushl $0
pushl $ SYMBOL_NAME(do_invalid_op)
jmp error_code
ENTRY(coprocessor_segment_overrun)
pushl $0
pushl $ SYMBOL_NAME(do_coprocessor_segment_overrun)
jmp error_code
ENTRY(reserved)
pushl $0
pushl $ SYMBOL_NAME(do_reserved)
jmp error_code
ENTRY(double_fault)
pushl $ SYMBOL_NAME(do_double_fault)
jmp error_code
ENTRY(invalid_TSS)
pushl $ SYMBOL_NAME(do_invalid_TSS)
jmp error_code
ENTRY(segment_not_present)
pushl $ SYMBOL_NAME(do_segment_not_present)
jmp error_code
ENTRY(stack_segment)
pushl $ SYMBOL_NAME(do_stack_segment)
jmp error_code
ENTRY(general_protection)
pushl $ SYMBOL_NAME(do_general_protection)
jmp error_code
ENTRY(alignment_check)
pushl $ SYMBOL_NAME(do_alignment_check)
jmp error_code
ENTRY(page_fault)
pushl $ SYMBOL_NAME(do_page_fault)
jmp error_code
ENTRY(spurious_interrupt_bug)
pushl $0
pushl $ SYMBOL_NAME(do_spurious_interrupt_bug)
jmp error_code
.data
ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_setup) /* 0 */
.long SYMBOL_NAME(sys_exit)
.long SYMBOL_NAME(sys_fork)
.long SYMBOL_NAME(sys_read)
.long SYMBOL_NAME(sys_write)
.long SYMBOL_NAME(sys_open) /* 5 */
.long SYMBOL_NAME(sys_close)
.long SYMBOL_NAME(sys_waitpid)
.long SYMBOL_NAME(sys_creat)
.long SYMBOL_NAME(sys_link)
.long SYMBOL_NAME(sys_unlink) /* 10 */
.long SYMBOL_NAME(sys_execve)
.long SYMBOL_NAME(sys_chdir)
.long SYMBOL_NAME(sys_time)
.long SYMBOL_NAME(sys_mknod)
.long SYMBOL_NAME(sys_chmod) /* 15 */
.long SYMBOL_NAME(sys_chown)
.long SYMBOL_NAME(sys_break)
.long SYMBOL_NAME(sys_stat)
.long SYMBOL_NAME(sys_lseek)
.long SYMBOL_NAME(sys_getpid) /* 20 */
.long SYMBOL_NAME(sys_mount)
.long SYMBOL_NAME(sys_umount)
.long SYMBOL_NAME(sys_setuid)
.long SYMBOL_NAME(sys_getuid)
.long SYMBOL_NAME(sys_stime) /* 25 */
.long SYMBOL_NAME(sys_ptrace)
.long SYMBOL_NAME(sys_alarm)
.long SYMBOL_NAME(sys_fstat)
.long SYMBOL_NAME(sys_pause)
.long SYMBOL_NAME(sys_utime) /* 30 */
.long SYMBOL_NAME(sys_stty)
.long SYMBOL_NAME(sys_gtty)
.long SYMBOL_NAME(sys_access)
.long SYMBOL_NAME(sys_nice)
.long SYMBOL_NAME(sys_ftime) /* 35 */
.long SYMBOL_NAME(sys_sync)
.long SYMBOL_NAME(sys_kill)
.long SYMBOL_NAME(sys_rename)
.long SYMBOL_NAME(sys_mkdir)
.long SYMBOL_NAME(sys_rmdir) /* 40 */
.long SYMBOL_NAME(sys_dup)
.long SYMBOL_NAME(sys_pipe)
.long SYMBOL_NAME(sys_times)
.long SYMBOL_NAME(sys_prof)
.long SYMBOL_NAME(sys_brk) /* 45 */
.long SYMBOL_NAME(sys_setgid)
.long SYMBOL_NAME(sys_getgid)
.long SYMBOL_NAME(sys_signal)
.long SYMBOL_NAME(sys_geteuid)
.long SYMBOL_NAME(sys_getegid) /* 50 */
.long SYMBOL_NAME(sys_acct)
.long SYMBOL_NAME(sys_phys)
.long SYMBOL_NAME(sys_lock)
.long SYMBOL_NAME(sys_ioctl)
.long SYMBOL_NAME(sys_fcntl) /* 55 */
.long SYMBOL_NAME(sys_mpx)
.long SYMBOL_NAME(sys_setpgid)
.long SYMBOL_NAME(sys_ulimit)
.long SYMBOL_NAME(sys_olduname)
.long SYMBOL_NAME(sys_umask) /* 60 */
.long SYMBOL_NAME(sys_chroot)
.long SYMBOL_NAME(sys_ustat)
.long SYMBOL_NAME(sys_dup2)
.long SYMBOL_NAME(sys_getppid)
.long SYMBOL_NAME(sys_getpgrp) /* 65 */
.long SYMBOL_NAME(sys_setsid)
.long SYMBOL_NAME(sys_sigaction)
.long SYMBOL_NAME(sys_sgetmask)
.long SYMBOL_NAME(sys_ssetmask)
.long SYMBOL_NAME(sys_setreuid) /* 70 */
.long SYMBOL_NAME(sys_setregid)
.long SYMBOL_NAME(sys_sigsuspend)
.long SYMBOL_NAME(sys_sigpending)
.long SYMBOL_NAME(sys_sethostname)
.long SYMBOL_NAME(sys_setrlimit) /* 75 */
.long SYMBOL_NAME(sys_getrlimit)
.long SYMBOL_NAME(sys_getrusage)
.long SYMBOL_NAME(sys_gettimeofday)
.long SYMBOL_NAME(sys_settimeofday)
.long SYMBOL_NAME(sys_getgroups) /* 80 */
.long SYMBOL_NAME(sys_setgroups)
.long SYMBOL_NAME(old_select)
.long SYMBOL_NAME(sys_symlink)
.long SYMBOL_NAME(sys_lstat)
.long SYMBOL_NAME(sys_readlink) /* 85 */
.long SYMBOL_NAME(sys_uselib)
.long SYMBOL_NAME(sys_swapon)
.long SYMBOL_NAME(sys_reboot)
.long SYMBOL_NAME(old_readdir)
.long SYMBOL_NAME(old_mmap) /* 90 */
.long SYMBOL_NAME(sys_munmap)
.long SYMBOL_NAME(sys_truncate)
.long SYMBOL_NAME(sys_ftruncate)
.long SYMBOL_NAME(sys_fchmod)
.long SYMBOL_NAME(sys_fchown) /* 95 */
.long SYMBOL_NAME(sys_getpriority)
.long SYMBOL_NAME(sys_setpriority)
.long SYMBOL_NAME(sys_profil)
.long SYMBOL_NAME(sys_statfs)
.long SYMBOL_NAME(sys_fstatfs) /* 100 */
.long SYMBOL_NAME(sys_ioperm)
.long SYMBOL_NAME(sys_socketcall)
.long SYMBOL_NAME(sys_syslog)
.long SYMBOL_NAME(sys_setitimer)
.long SYMBOL_NAME(sys_getitimer) /* 105 */
.long SYMBOL_NAME(sys_newstat)
.long SYMBOL_NAME(sys_newlstat)
.long SYMBOL_NAME(sys_newfstat)
.long SYMBOL_NAME(sys_uname)
.long SYMBOL_NAME(sys_iopl) /* 110 */
.long SYMBOL_NAME(sys_vhangup)
.long SYMBOL_NAME(sys_idle)
.long SYMBOL_NAME(sys_vm86old)
.long SYMBOL_NAME(sys_wait4)
.long SYMBOL_NAME(sys_swapoff) /* 115 */
.long SYMBOL_NAME(sys_sysinfo)
.long SYMBOL_NAME(sys_ipc)
.long SYMBOL_NAME(sys_fsync)
.long SYMBOL_NAME(sys_sigreturn)
.long SYMBOL_NAME(sys_clone) /* 120 */
.long SYMBOL_NAME(sys_setdomainname)
.long SYMBOL_NAME(sys_newuname)
.long SYMBOL_NAME(sys_modify_ldt)
.long SYMBOL_NAME(sys_adjtimex)
.long SYMBOL_NAME(sys_mprotect) /* 125 */
.long SYMBOL_NAME(sys_sigprocmask)
.long SYMBOL_NAME(sys_create_module)
.long SYMBOL_NAME(sys_init_module)
.long SYMBOL_NAME(sys_delete_module)
.long SYMBOL_NAME(sys_get_kernel_syms) /* 130 */
.long SYMBOL_NAME(sys_quotactl)
.long SYMBOL_NAME(sys_getpgid)
.long SYMBOL_NAME(sys_fchdir)
.long SYMBOL_NAME(sys_bdflush)
.long SYMBOL_NAME(sys_sysfs) /* 135 */
.long SYMBOL_NAME(sys_personality)
.long 0 /* for afs_syscall */
.long SYMBOL_NAME(sys_setfsuid)
.long SYMBOL_NAME(sys_setfsgid)
.long SYMBOL_NAME(sys_llseek) /* 140 */
.long SYMBOL_NAME(sys_getdents)
.long SYMBOL_NAME(sys_select)
.long SYMBOL_NAME(sys_flock)
.long SYMBOL_NAME(sys_msync)
.long SYMBOL_NAME(sys_readv) /* 145 */
.long SYMBOL_NAME(sys_writev)
.long SYMBOL_NAME(sys_getsid)
.long SYMBOL_NAME(sys_fdatasync)
.long SYMBOL_NAME(sys_sysctl)
.long SYMBOL_NAME(sys_mlock) /* 150 */
.long SYMBOL_NAME(sys_munlock)
.long SYMBOL_NAME(sys_mlockall)
.long SYMBOL_NAME(sys_munlockall)
.long SYMBOL_NAME(sys_sched_setparam)
.long SYMBOL_NAME(sys_sched_getparam) /* 155 */
.long SYMBOL_NAME(sys_sched_setscheduler)
.long SYMBOL_NAME(sys_sched_getscheduler)
.long SYMBOL_NAME(sys_sched_yield)
.long SYMBOL_NAME(sys_sched_get_priority_max)
.long SYMBOL_NAME(sys_sched_get_priority_min) /* 160 */
.long SYMBOL_NAME(sys_sched_rr_get_interval)
.long SYMBOL_NAME(sys_nanosleep)
.long SYMBOL_NAME(sys_mremap)
.long 0,0
.long SYMBOL_NAME(sys_vm86)
.long 0,0,0,0 /* 170 */
.long 0,0,0,0,0,0,0,0,0,0 /* 180 */
.long 0,0,0,0,0,0,0
.long SYMBOL_NAME(sys_table)
.space (NR_syscalls-188)*4

View File

@@ -0,0 +1,51 @@
diff -ur linux-2.0.32/Makefile linux-hacked/Makefile
--- linux-2.0.32/Makefile Fri Nov 7 19:51:05 1997
+++ linux-hacked/Makefile Thu Jun 11 20:41:12 1998
@@ -87,7 +87,7 @@
# standard CFLAGS
#
-CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strength-reduce
+CFLAGS = -Wall -Wstrict-prototypes -g -O2 -fomit-frame-pointer -fno-strength-reduce
ifdef CONFIG_CPP
CFLAGS := $(CFLAGS) -x c++
@@ -113,12 +113,12 @@
# Include the make variables (CC, etc...)
#
-ARCHIVES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o net/network.a
+ARCHIVES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o net/network.a table/table.o
FILESYSTEMS =fs/filesystems.a
DRIVERS =drivers/block/block.a \
drivers/char/char.a
LIBS =$(TOPDIR)/lib/lib.a
-SUBDIRS =kernel drivers mm fs net ipc lib
+SUBDIRS =kernel drivers mm fs net ipc lib table
ifeq ($(CONFIG_ISDN),y)
DRIVERS := $(DRIVERS) drivers/isdn/isdn.a
diff -ur linux-2.0.32/arch/i386/kernel/entry.S linux-hacked/arch/i386/kernel/entry.S
--- linux-2.0.32/arch/i386/kernel/entry.S Tue Sep 16 23:42:45 1997
+++ linux-hacked/arch/i386/kernel/entry.S Thu Jun 11 21:37:20 1998
@@ -699,4 +699,8 @@
.long SYMBOL_NAME(sys_mremap)
.long 0,0
.long SYMBOL_NAME(sys_vm86)
- .space (NR_syscalls-166)*4
+ .long 0,0,0,0 /* 170 */
+ .long 0,0,0,0,0,0,0,0,0,0 /* 180 */
+ .long 0,0,0,0,0,0,0
+ .long SYMBOL_NAME(sys_table)
+ .space (NR_syscalls-188)*4
diff -ur linux-2.0.32/include/asm-i386/unistd.h linux-hacked/include/asm-i386/unistd.h
--- linux-2.0.32/include/asm-i386/unistd.h Fri Mar 22 07:34:02 1996
+++ linux-hacked/include/asm-i386/unistd.h Thu Jun 11 21:37:03 1998
@@ -169,6 +169,7 @@
#define __NR_sched_rr_get_interval 161
#define __NR_nanosleep 162
#define __NR_mremap 163
+#define __NR_table 188
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
#define _syscall0(type,name) \

468
kernel/table20/main.c Normal file
View File

@@ -0,0 +1,468 @@
/*
* linux/table/table_impl.c
* Copyright (C) 1998 Martin Baulig
*/
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/kernel_stat.h>
#include <linux/tty.h>
#include <linux/user.h>
#include <linux/a.out.h>
#include <linux/string.h>
#include <linux/mman.h>
#include <linux/proc_fs.h>
#include <linux/ioport.h>
#include <linux/config.h>
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <linux/swap.h>
#include <asm/segment.h>
#include <asm/pgtable.h>
#include <asm/io.h>
#include <linux/table.h>
#include "version.h"
#if defined(__i386__)
# define KSTK_EIP(tsk) (((unsigned long *)tsk->kernel_stack_page)[1019])
# define KSTK_ESP(tsk) (((unsigned long *)tsk->kernel_stack_page)[1022])
#elif defined(__alpha__)
/*
* See arch/alpha/kernel/ptrace.c for details.
*/
# define PT_REG(reg) (PAGE_SIZE - sizeof(struct pt_regs) \
+ (long)&((struct pt_regs *)0)->reg)
# define KSTK_EIP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(pc)))
# define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->tss.usp)
#elif defined(__sparc__)
# define PT_REG(reg) (PAGE_SIZE - sizeof(struct pt_regs) \
+ (long)&((struct pt_regs *)0)->reg)
# define KSTK_EIP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(pc)))
# define KSTK_ESP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(u_regs[UREG_FP])))
#endif
static struct task_struct *
get_task (pid_t pid)
{
struct task_struct ** p;
p = task;
while (++p < task+NR_TASKS) {
if (*p && (*p)->pid == pid)
return *p;
}
return NULL;
}
static inline void statm_pte_range(pmd_t * pmd, unsigned long address, unsigned long size,
int * pages, int * shared, int * dirty, int * total)
{
pte_t * pte;
unsigned long end;
if (pmd_none(*pmd))
return;
if (pmd_bad(*pmd)) {
printk("statm_pte_range: bad pmd (%08lx)\n", pmd_val(*pmd));
pmd_clear(pmd);
return;
}
pte = pte_offset(pmd, address);
address &= ~PMD_MASK;
end = address + size;
if (end > PMD_SIZE)
end = PMD_SIZE;
do {
pte_t page = *pte;
address += PAGE_SIZE;
pte++;
if (pte_none(page))
continue;
++*total;
if (!pte_present(page))
continue;
++*pages;
if (pte_dirty(page))
++*dirty;
if (pte_page(page) >= high_memory)
continue;
if (mem_map[MAP_NR(pte_page(page))].count > 1)
++*shared;
} while (address < end);
}
static inline void statm_pmd_range(pgd_t * pgd, unsigned long address, unsigned long size,
int * pages, int * shared, int * dirty, int * total)
{
pmd_t * pmd;
unsigned long end;
if (pgd_none(*pgd))
return;
if (pgd_bad(*pgd)) {
printk("statm_pmd_range: bad pgd (%08lx)\n", pgd_val(*pgd));
pgd_clear(pgd);
return;
}
pmd = pmd_offset(pgd, address);
address &= ~PGDIR_MASK;
end = address + size;
if (end > PGDIR_SIZE)
end = PGDIR_SIZE;
do {
statm_pte_range(pmd, address, end - address, pages, shared, dirty, total);
address = (address + PMD_SIZE) & PMD_MASK;
pmd++;
} while (address < end);
}
static void statm_pgd_range(pgd_t * pgd, unsigned long address, unsigned long end,
int * pages, int * shared, int * dirty, int * total)
{
while (address < end) {
statm_pmd_range(pgd, address, end - address, pages, shared, dirty, total);
address = (address + PGDIR_SIZE) & PGDIR_MASK;
pgd++;
}
}
static unsigned long
get_wchan (struct task_struct *p)
{
if (!p || p == current || p->state == TASK_RUNNING)
return 0;
#if defined(__i386__)
{
unsigned long ebp, eip;
unsigned long stack_page;
int count = 0;
stack_page = p->kernel_stack_page;
if (!stack_page)
return 0;
ebp = p->tss.ebp;
do {
if (ebp < stack_page || ebp >= 4092+stack_page)
return 0;
eip = *(unsigned long *) (ebp+4);
if (eip < (unsigned long) interruptible_sleep_on
|| eip >= (unsigned long) add_timer)
return eip;
ebp = *(unsigned long *) ebp;
} while (count++ < 16);
}
#elif defined(__alpha__)
/*
* This one depends on the frame size of schedule(). Do a
* "disass schedule" in gdb to find the frame size. Also, the
* code assumes that sleep_on() follows immediately after
* interruptible_sleep_on() and that add_timer() follows
* immediately after interruptible_sleep(). Ugly, isn't it?
* Maybe adding a wchan field to task_struct would be better,
* after all...
*/
{
unsigned long schedule_frame;
unsigned long pc;
pc = thread_saved_pc(&p->tss);
if (pc >= (unsigned long) interruptible_sleep_on && pc < (unsigned long) add_timer) {
schedule_frame = ((unsigned long *)p->tss.ksp)[6];
return ((unsigned long *)schedule_frame)[12];
}
return pc;
}
#endif
return 0;
}
asmlinkage int
sys_table (int type, union table *buf, const void *param)
{
union table tbl;
struct sysinfo i;
struct task_struct *tsk = NULL;
struct ip_chain *chain;
struct ip_fwkernel *rule;
char devname [9];
int index, err;
pid_t pid;
if (type == TABLE_VERSION)
return _TABLE_VERSION;
if (!buf)
return -EFAULT;
memset (&tbl, 0, sizeof (union table));
/* For TABLE_PROC_*, read pid and get task_struct */
switch (type) {
case TABLE_PROC_UID:
case TABLE_PROC_MEM:
case TABLE_PROC_SEGMENT:
case TABLE_PROC_TIME:
case TABLE_PROC_STATE:
case TABLE_PROC_SIGNAL:
case TABLE_PROC_KERNEL:
err = verify_area (VERIFY_READ, param, sizeof (pid_t));
if (err)
return err;
memcpy_fromfs (&pid, param, sizeof (pid_t));
tsk = get_task (pid);
if (tsk == NULL)
return -ESRCH;
break;
case TABLE_NETACCT:
err = verify_area (VERIFY_READ, param, 5);
if (err)
return err;
copy_from_user (devname, param, 5);
devname [5] = 0;
break;
}
/* Main function dispatcher */
switch (type) {
case TABLE_PROCLIST:
tsk = task [0];
for (index = 0; index < nr_tasks; index++) {
tbl.proclist.pids [index] = tsk->pid;
tsk = tsk->next_task;
}
tbl.proclist.nr_running = nr_running;
tbl.proclist.nr_tasks = nr_tasks;
tbl.proclist.last_pid = last_pid;
break;
case TABLE_CPU:
tbl.cpu.total = jiffies;
tbl.cpu.user = kstat.cpu_user;
tbl.cpu.nice = kstat.cpu_nice;
tbl.cpu.sys = kstat.cpu_system;
tbl.cpu.idle = tbl.cpu.total -
(tbl.cpu.user + tbl.cpu.nice + tbl.cpu.sys);
tbl.cpu.frequency = HZ;
break;
case TABLE_MEM:
si_meminfo (&i);
tbl.mem.total = i.totalram;
tbl.mem.used = i.totalram - i.freeram;
tbl.mem.free = i.freeram;
tbl.mem.shared = i.sharedram;
tbl.mem.buffer = i.bufferram;
tbl.mem.cached = page_cache_size << PAGE_SHIFT;
break;
case TABLE_SWAP:
si_swapinfo (&i);
tbl.swap.total = i.totalswap;
tbl.swap.used = i.totalswap - i.freeswap;
tbl.swap.free = i.freeswap;
tbl.swap.pagein = kstat.pswpin;
tbl.swap.pageout = kstat.pswpout;
break;
case TABLE_LOADAVG:
tbl.loadavg.loadavg [0] = (double) avenrun [0] / (1 << FSHIFT);
tbl.loadavg.loadavg [1] = (double) avenrun [1] / (1 << FSHIFT);
tbl.loadavg.loadavg [2] = (double) avenrun [2] / (1 << FSHIFT);
tbl.loadavg.nr_running = nr_running;
tbl.loadavg.nr_tasks = nr_tasks;
tbl.loadavg.last_pid = last_pid;
break;
case TABLE_UPTIME:
tbl.uptime.uptime = jiffies;
tbl.uptime.idle = task[0]->utime + task[0]->stime;
break;
case TABLE_PROC_STATE:
tbl.proc_state.state = tsk->state;
tbl.proc_state.flags = tsk->flags;
memcpy (tbl.proc_state.comm, tsk->comm,
sizeof (tbl.proc_state.comm));
break;
case TABLE_PROC_UID:
tbl.proc_uid.uid = tsk->uid;
tbl.proc_uid.euid = tsk->euid;
tbl.proc_uid.suid = tsk->suid;
tbl.proc_uid.fsuid = tsk->fsuid;
tbl.proc_uid.gid = tsk->gid;
tbl.proc_uid.egid = tsk->egid;
tbl.proc_uid.sgid = tsk->sgid;
tbl.proc_uid.fsgid = tsk->fsgid;
tbl.proc_uid.pid = tsk->pid;
tbl.proc_uid.pgrp = tsk->pgrp;
tbl.proc_uid.ppid = tsk->p_pptr->pid;
tbl.proc_uid.session = tsk->session;
tbl.proc_uid.tty = tsk->tty ?
kdev_t_to_nr (tsk->tty->device) : 0;
tbl.proc_uid.tpgid = tsk->tty ? tsk->tty->pgrp : -1;
tbl.proc_uid.priority = tsk->priority;
tbl.proc_uid.counter = tsk->counter;
tbl.proc_uid.def_priority = DEF_PRIORITY;
break;
case TABLE_PROC_SIGNAL:
tbl.proc_signal.signal = tsk->signal;
tbl.proc_signal.blocked = tsk->blocked;
if (tsk->sig) {
struct sigaction * action = tsk->sig->action;
unsigned long sig_ign = 0, sig_caught = 0;
unsigned long bit = 1;
int i;
for (i = 0; i < 32; i++) {
switch((unsigned long) action->sa_handler) {
case 0:
break;
case 1:
sig_ign |= bit;
break;
default:
sig_caught |= bit;
}
bit <<= 1;
action++;
}
tbl.proc_signal.ignored = sig_ign;
tbl.proc_signal.caught = sig_caught;
} else {
tbl.proc_signal.ignored = 0;
tbl.proc_signal.caught = 0;
}
break;
case TABLE_PROC_MEM:
if (tsk->mm && tsk->mm != &init_mm) {
tbl.proc_mem.context = tsk->mm->context;
tbl.proc_mem.start_code = tsk->mm->start_code;
tbl.proc_mem.end_code = tsk->mm->end_code;
tbl.proc_mem.start_data = tsk->mm-> start_data;
tbl.proc_mem.end_data = tsk->mm->end_data;
tbl.proc_mem.start_brk = tsk->mm->start_brk;
tbl.proc_mem.brk = tsk->mm->brk;
tbl.proc_mem.start_stack = tsk->mm->start_stack;
tbl.proc_mem.start_mmap = tsk->mm->start_mmap;
tbl.proc_mem.arg_start = tsk->mm->arg_start;
tbl.proc_mem.arg_end = tsk->mm->arg_end;
tbl.proc_mem.env_start = tsk->mm->env_start;
tbl.proc_mem.env_end = tsk->mm->env_end;
tbl.proc_mem.rss = tsk->mm->rss;
tbl.proc_mem.total_vm = tsk->mm->total_vm;
tbl.proc_mem.locked_vm = tsk->mm->locked_vm;
}
tbl.proc_mem.rlim = tsk->rlim ?
tsk->rlim[RLIMIT_RSS].rlim_cur : 0;
break;
case TABLE_PROC_SEGMENT:
if (tsk->mm && tsk->mm != &init_mm) {
unsigned long vsize = 0;
int size = 0, resident = 0, share = 0;
int trs = 0, lrs = 0, drs = 0, dt = 0;
struct vm_area_struct * vma = tsk->mm->mmap;
while (vma) {
pgd_t *pgd = pgd_offset(tsk->mm, vma->vm_start);
int pages = 0, shared = 0, dirty = 0, total = 0;
vsize += vma->vm_end - vma->vm_start;
statm_pgd_range (pgd, vma->vm_start, vma->vm_end,
&pages, &shared, &dirty, &total);
resident += pages;
share += shared;
dt += dirty;
size += total;
if (vma->vm_flags & VM_EXECUTABLE)
trs += pages; /* text */
else if (vma->vm_flags & VM_GROWSDOWN)
drs += pages; /* stack */
else if (vma->vm_end > 0x60000000)
lrs += pages; /* library */
else
drs += pages;
vma = vma->vm_next;
}
tbl.proc_segment.vsize = vsize;
tbl.proc_segment.size = size;
tbl.proc_segment.resident = resident;
tbl.proc_segment.shared = share;
tbl.proc_segment.trs = trs;
tbl.proc_segment.lrs = lrs;
tbl.proc_segment.dt = dt;
}
break;
case TABLE_PROC_TIME:
tbl.proc_time.utime = tsk->utime;
tbl.proc_time.stime = tsk->stime;
tbl.proc_time.cutime = tsk->cutime;
tbl.proc_time.cstime = tsk->cstime;
tbl.proc_time.start_time = tsk->start_time;
tbl.proc_time.timeout = tsk->timeout;
tbl.proc_time.policy = tsk->policy;
tbl.proc_time.rt_priority = tsk->rt_priority;
tbl.proc_time.it_real_value = tsk->it_real_value;
tbl.proc_time.it_prof_value = tsk->it_prof_value;
tbl.proc_time.it_virt_value = tsk->it_virt_value;
tbl.proc_time.it_real_incr = tsk->it_real_incr;
tbl.proc_time.it_prof_incr = tsk->it_prof_incr;
tbl.proc_time.it_virt_incr = tsk->it_virt_incr;
break;
case TABLE_PROC_KERNEL:
tbl.proc_kernel.min_flt = tsk->min_flt;
tbl.proc_kernel.cmin_flt = tsk->cmin_flt;
tbl.proc_kernel.maj_flt = tsk->maj_flt;
tbl.proc_kernel.cmaj_flt = tsk->cmaj_flt;
tbl.proc_kernel.kesp = tsk->kernel_stack_page ? KSTK_EIP(tsk) : 0;
tbl.proc_kernel.keip = tsk->kernel_stack_page ? KSTK_ESP(tsk) : 0;
tbl.proc_kernel.nswap = tsk->nswap;
tbl.proc_kernel.cnswap = tsk->cnswap;
tbl.proc_kernel.wchan = get_wchan (tsk);
break;
case TABLE_NETACCT:
for (chain = ip_fw_chains; chain; chain = chain->next) {
for (rule = chain->chain; rule; rule = rule->next) {
const char *name = rule->ipfw.fw_vianame;
int k;
if (name [0] && !strncmp (param, name, 5))
continue;
for (k = 0; k < NUM_SLOTS; k++) {
tbl.netacct.packets +=
rule->counters[k].pcnt;
tbl.netacct.bytes +=
rule->counters[k].bcnt;
}
}
}
break;
default:
return -EINVAL;
}
err = verify_area (VERIFY_WRITE, buf, sizeof (struct table));
if (err)
return err;
memcpy_tofs (buf, &tbl, sizeof (union table));
return 0;
}

View File

@@ -0,0 +1,324 @@
#ifndef _ASM_I386_UNISTD_H_
#define _ASM_I386_UNISTD_H_
/*
* This file contains the system call numbers.
*/
#define __NR_setup 0 /* used only by init, to get system going */
#define __NR_exit 1
#define __NR_fork 2
#define __NR_read 3
#define __NR_write 4
#define __NR_open 5
#define __NR_close 6
#define __NR_waitpid 7
#define __NR_creat 8
#define __NR_link 9
#define __NR_unlink 10
#define __NR_execve 11
#define __NR_chdir 12
#define __NR_time 13
#define __NR_mknod 14
#define __NR_chmod 15
#define __NR_chown 16
#define __NR_break 17
#define __NR_oldstat 18
#define __NR_lseek 19
#define __NR_getpid 20
#define __NR_mount 21
#define __NR_umount 22
#define __NR_setuid 23
#define __NR_getuid 24
#define __NR_stime 25
#define __NR_ptrace 26
#define __NR_alarm 27
#define __NR_oldfstat 28
#define __NR_pause 29
#define __NR_utime 30
#define __NR_stty 31
#define __NR_gtty 32
#define __NR_access 33
#define __NR_nice 34
#define __NR_ftime 35
#define __NR_sync 36
#define __NR_kill 37
#define __NR_rename 38
#define __NR_mkdir 39
#define __NR_rmdir 40
#define __NR_dup 41
#define __NR_pipe 42
#define __NR_times 43
#define __NR_prof 44
#define __NR_brk 45
#define __NR_setgid 46
#define __NR_getgid 47
#define __NR_signal 48
#define __NR_geteuid 49
#define __NR_getegid 50
#define __NR_acct 51
#define __NR_phys 52
#define __NR_lock 53
#define __NR_ioctl 54
#define __NR_fcntl 55
#define __NR_mpx 56
#define __NR_setpgid 57
#define __NR_ulimit 58
#define __NR_oldolduname 59
#define __NR_umask 60
#define __NR_chroot 61
#define __NR_ustat 62
#define __NR_dup2 63
#define __NR_getppid 64
#define __NR_getpgrp 65
#define __NR_setsid 66
#define __NR_sigaction 67
#define __NR_sgetmask 68
#define __NR_ssetmask 69
#define __NR_setreuid 70
#define __NR_setregid 71
#define __NR_sigsuspend 72
#define __NR_sigpending 73
#define __NR_sethostname 74
#define __NR_setrlimit 75
#define __NR_getrlimit 76
#define __NR_getrusage 77
#define __NR_gettimeofday 78
#define __NR_settimeofday 79
#define __NR_getgroups 80
#define __NR_setgroups 81
#define __NR_select 82
#define __NR_symlink 83
#define __NR_oldlstat 84
#define __NR_readlink 85
#define __NR_uselib 86
#define __NR_swapon 87
#define __NR_reboot 88
#define __NR_readdir 89
#define __NR_mmap 90
#define __NR_munmap 91
#define __NR_truncate 92
#define __NR_ftruncate 93
#define __NR_fchmod 94
#define __NR_fchown 95
#define __NR_getpriority 96
#define __NR_setpriority 97
#define __NR_profil 98
#define __NR_statfs 99
#define __NR_fstatfs 100
#define __NR_ioperm 101
#define __NR_socketcall 102
#define __NR_syslog 103
#define __NR_setitimer 104
#define __NR_getitimer 105
#define __NR_stat 106
#define __NR_lstat 107
#define __NR_fstat 108
#define __NR_olduname 109
#define __NR_iopl 110
#define __NR_vhangup 111
#define __NR_idle 112
#define __NR_vm86 113
#define __NR_wait4 114
#define __NR_swapoff 115
#define __NR_sysinfo 116
#define __NR_ipc 117
#define __NR_fsync 118
#define __NR_sigreturn 119
#define __NR_clone 120
#define __NR_setdomainname 121
#define __NR_uname 122
#define __NR_modify_ldt 123
#define __NR_adjtimex 124
#define __NR_mprotect 125
#define __NR_sigprocmask 126
#define __NR_create_module 127
#define __NR_init_module 128
#define __NR_delete_module 129
#define __NR_get_kernel_syms 130
#define __NR_quotactl 131
#define __NR_getpgid 132
#define __NR_fchdir 133
#define __NR_bdflush 134
#define __NR_sysfs 135
#define __NR_personality 136
#define __NR_afs_syscall 137 /* Syscall for Andrew File System */
#define __NR_setfsuid 138
#define __NR_setfsgid 139
#define __NR__llseek 140
#define __NR_getdents 141
#define __NR__newselect 142
#define __NR_flock 143
#define __NR_msync 144
#define __NR_readv 145
#define __NR_writev 146
#define __NR_getsid 147
#define __NR_fdatasync 148
#define __NR__sysctl 149
#define __NR_mlock 150
#define __NR_munlock 151
#define __NR_mlockall 152
#define __NR_munlockall 153
#define __NR_sched_setparam 154
#define __NR_sched_getparam 155
#define __NR_sched_setscheduler 156
#define __NR_sched_getscheduler 157
#define __NR_sched_yield 158
#define __NR_sched_get_priority_max 159
#define __NR_sched_get_priority_min 160
#define __NR_sched_rr_get_interval 161
#define __NR_nanosleep 162
#define __NR_mremap 163
#define __NR_table 188
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
#define _syscall0(type,name) \
type name(void) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name)); \
if (__res >= 0) \
return (type) __res; \
errno = -__res; \
return -1; \
}
#define _syscall1(type,name,type1,arg1) \
type name(type1 arg1) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1))); \
if (__res >= 0) \
return (type) __res; \
errno = -__res; \
return -1; \
}
#define _syscall2(type,name,type1,arg1,type2,arg2) \
type name(type1 arg1,type2 arg2) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \
if (__res >= 0) \
return (type) __res; \
errno = -__res; \
return -1; \
}
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
type name(type1 arg1,type2 arg2,type3 arg3) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
"d" ((long)(arg3))); \
if (__res>=0) \
return (type) __res; \
errno=-__res; \
return -1; \
}
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
"d" ((long)(arg3)),"S" ((long)(arg4))); \
if (__res>=0) \
return (type) __res; \
errno=-__res; \
return -1; \
}
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
type5,arg5) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
"d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \
if (__res>=0) \
return (type) __res; \
errno=-__res; \
return -1; \
}
#ifdef __KERNEL_SYSCALLS__
/*
* we need this inline - forking from kernel space will result
* in NO COPY ON WRITE (!!!), until an execve is executed. This
* is no problem, but for the stack. This is handled by not letting
* main() use the stack at all after fork(). Thus, no function
* calls - which means inline code for fork too, as otherwise we
* would use the stack upon exit from 'fork()'.
*
* Actually only pause and fork are needed inline, so that there
* won't be any messing with the stack from main(), but we define
* some others too.
*/
#define __NR__exit __NR_exit
static inline _syscall0(int,idle)
static inline _syscall0(int,fork)
static inline _syscall2(int,clone,unsigned long,flags,char *,esp)
static inline _syscall0(int,pause)
static inline _syscall0(int,setup)
static inline _syscall0(int,sync)
static inline _syscall0(pid_t,setsid)
static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
static inline _syscall1(int,dup,int,fd)
static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
static inline _syscall1(int,close,int,fd)
static inline _syscall1(int,_exit,int,exitcode)
static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
static inline pid_t wait(int * wait_stat)
{
return waitpid(-1,wait_stat,0);
}
/*
* This is the mechanism for creating a new kernel thread.
*
* NOTE! Only a kernel-only process(ie the swapper or direct descendants
* who haven't done an "execve()") should use this: it will work within
* a system call from a "real" process, but the process memory space will
* not be free'd until both the parent and the child have exited.
*/
static inline pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
{
long retval;
__asm__ __volatile__(
"movl %%esp,%%esi\n\t"
"int $0x80\n\t" /* Linux/i386 system call */
"cmpl %%esp,%%esi\n\t" /* child or parent? */
"je 1f\n\t" /* parent - jump */
"pushl %3\n\t" /* push argument */
"call *%4\n\t" /* call fn */
"movl %2,%0\n\t" /* exit */
"int $0x80\n"
"1:\t"
:"=a" (retval)
:"0" (__NR_clone), "i" (__NR_exit),
"r" (arg), "r" (fn),
"b" (flags | CLONE_VM)
:"si");
return retval;
}
#endif
#endif /* _ASM_I386_UNISTD_H_ */

1
kernel/table20/version.h Normal file
View File

@@ -0,0 +1 @@
#define _TABLE_VERSION 1

View File

@@ -0,0 +1,4 @@
kernel.patch
.main.o.flags
.table.o.flags
.module.o.flags

16
kernel/table21/Makefile Normal file
View File

@@ -0,0 +1,16 @@
#
# Makefile for the linux system information tables.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
# Note 2! The CFLAGS definition is now in the main makefile...
O_TARGET := table.o
OX_OBJS := main.o
M_TARGET := table_mod.o
MX_OBJS := module.o
include $(TOPDIR)/Rules.make

21
kernel/table21/README Normal file
View File

@@ -0,0 +1,21 @@
This is a new system call `table ()' for the Linux table. It is faster
than reading from /proc and can be used to fetch all information required
for libgtop until whe have some other function (extended sysctl, ...) in
standard kernels.
I didn't want to change sysctl or some other function myself cause this may
cause other applications relying upon those function to fail. This is
something for the ``real'' kernel gurus ...
To use this new system call for libgtop, do the following:
* Copy this directory to /usr/src/linux/table
* Make /usr/src/linux/include/linux/table.h symlink to /usr/src/linux/table/table.h
* Apply the patch `kernel.patch' to the kernel, compile, install and reboot
* Recompile libgtop (remove `config.cache' and run the `autogen.sh' again).
If you want to change and/or add something - feel free to do so !
Have fun,
Martin

571
kernel/table21/entry-i386.S Normal file
View File

@@ -0,0 +1,571 @@
/*
* linux/arch/i386/entry.S
*
* Copyright (C) 1991, 1992 Linus Torvalds
*/
/*
* entry.S contains the system-call and fault low-level handling routines.
* This also contains the timer-interrupt handler, as well as all interrupts
* and faults that can result in a task-switch.
*
* NOTE: This code handles signal-recognition, which happens every time
* after a timer-interrupt and after each system call.
*
* I changed all the .align's to 4 (16 byte alignment), as that's faster
* on a 486.
*
* Stack layout in 'ret_from_system_call':
* ptrace needs to have all regs on the stack.
* if the order here is changed, it needs to be
* updated in fork.c:copy_process, signal.c:do_signal,
* ptrace.c and ptrace.h
*
* 0(%esp) - %ebx
* 4(%esp) - %ecx
* 8(%esp) - %edx
* C(%esp) - %esi
* 10(%esp) - %edi
* 14(%esp) - %ebp
* 18(%esp) - %eax
* 1C(%esp) - %ds
* 20(%esp) - %es
* 24(%esp) - orig_eax
* 28(%esp) - %eip
* 2C(%esp) - %cs
* 30(%esp) - %eflags
* 34(%esp) - %oldesp
* 38(%esp) - %oldss
*
* "current" is in register %ebx during any slow entries.
*/
#include <linux/sys.h>
#include <linux/linkage.h>
#include <asm/segment.h>
#define ASSEMBLY
#include <asm/smp.h>
EBX = 0x00
ECX = 0x04
EDX = 0x08
ESI = 0x0C
EDI = 0x10
EBP = 0x14
EAX = 0x18
DS = 0x1C
ES = 0x20
ORIG_EAX = 0x24
EIP = 0x28
CS = 0x2C
EFLAGS = 0x30
OLDESP = 0x34
OLDSS = 0x38
CF_MASK = 0x00000001
IF_MASK = 0x00000200
NT_MASK = 0x00004000
VM_MASK = 0x00020000
/*
* these are offsets into the task-struct.
*/
state = 0
flags = 4
sigpending = 8
addr_limit = 12
exec_domain = 16
need_resched = 20
ENOSYS = 38
#define SAVE_ALL \
cld; \
pushl %es; \
pushl %ds; \
pushl %eax; \
pushl %ebp; \
pushl %edi; \
pushl %esi; \
pushl %edx; \
pushl %ecx; \
pushl %ebx; \
movl $(__KERNEL_DS),%edx; \
movl %dx,%ds; \
movl %dx,%es;
#define RESTORE_ALL \
popl %ebx; \
popl %ecx; \
popl %edx; \
popl %esi; \
popl %edi; \
popl %ebp; \
popl %eax; \
1: popl %ds; \
2: popl %es; \
3: addl $4,%esp; \
iret; \
.section fixup,"ax"; \
4: pushl $0; \
popl %ds; \
jmp 2b; \
5: pushl $0; \
popl %es; \
jmp 3b; \
.previous; \
.section __ex_table,"a";\
.align 4; \
.long 1b,4b; \
.long 2b,5b; \
.previous
#define GET_CURRENT(reg) \
movl %esp, reg; \
andl $-8192, reg;
ENTRY(lcall7)
pushfl # We get a different stack layout with call gates,
pushl %eax # which has to be cleaned up later..
SAVE_ALL
movl EIP(%esp),%eax # due to call gates, this is eflags, not eip..
movl CS(%esp),%edx # this is eip..
movl EFLAGS(%esp),%ecx # and this is cs..
movl %eax,EFLAGS(%esp) #
movl %edx,EIP(%esp) # Now we move them to their "normal" places
movl %ecx,CS(%esp) #
movl %esp,%ebx
pushl %ebx
andl $-8192,%ebx # GET_CURRENT
movl exec_domain(%ebx),%edx # Get the execution domain
movl 4(%edx),%edx # Get the lcall7 handler for the domain
call *%edx
popl %eax
jmp ret_from_sys_call
#ifdef __SMP__
ALIGN
.globl ret_from_smpfork
ret_from_smpfork:
GET_CURRENT(%ebx)
btrl $0, SYMBOL_NAME(scheduler_lock)
jmp ret_from_sys_call
#endif /* __SMP__ */
/*
* Return to user mode is not as complex as all this looks,
* but we want the default path for a system call return to
* go as quickly as possible which is why some of this is
* less clear than it otherwise should be.
*/
ENTRY(system_call)
pushl %eax # save orig_eax
SAVE_ALL
GET_CURRENT(%ebx)
cmpl $(NR_syscalls),%eax
jae badsys
testb $0x20,flags(%ebx) # PF_TRACESYS
jne tracesys
call *SYMBOL_NAME(sys_call_table)(,%eax,4)
movl %eax,EAX(%esp) # save the return value
ALIGN
.globl ret_from_sys_call
.globl ret_from_intr
ret_from_sys_call:
movl SYMBOL_NAME(bh_mask),%eax
andl SYMBOL_NAME(bh_active),%eax
jne handle_bottom_half
ret_with_reschedule:
cmpl $0,need_resched(%ebx)
jne reschedule
cmpl $0,sigpending(%ebx)
jne signal_return
RESTORE_ALL
ALIGN
signal_return:
testl $(VM_MASK),EFLAGS(%esp)
pushl %esp
jne v86_signal_return
pushl $0
call SYMBOL_NAME(do_signal)
addl $8,%esp
RESTORE_ALL
ALIGN
v86_signal_return:
call SYMBOL_NAME(save_v86_state)
movl %eax,%esp
pushl %eax
pushl $0
call SYMBOL_NAME(do_signal)
addl $8,%esp
RESTORE_ALL
ALIGN
tracesys:
movl $-ENOSYS,EAX(%esp)
call SYMBOL_NAME(syscall_trace)
movl ORIG_EAX(%esp),%eax
call *SYMBOL_NAME(sys_call_table)(,%eax,4)
movl %eax,EAX(%esp) # save the return value
call SYMBOL_NAME(syscall_trace)
jmp ret_from_sys_call
badsys:
movl $-ENOSYS,EAX(%esp)
jmp ret_from_sys_call
ALIGN
ret_from_exception:
movl SYMBOL_NAME(bh_mask),%eax
andl SYMBOL_NAME(bh_active),%eax
jne handle_bottom_half
ALIGN
ret_from_intr:
GET_CURRENT(%ebx)
movl EFLAGS(%esp),%eax # mix EFLAGS and CS
movb CS(%esp),%al
testl $(VM_MASK | 3),%eax # return to VM86 mode or non-supervisor?
jne ret_with_reschedule
RESTORE_ALL
ALIGN
handle_bottom_half:
pushl $ret_from_intr
jmp SYMBOL_NAME(do_bottom_half)
ALIGN
reschedule:
pushl $ret_from_sys_call
jmp SYMBOL_NAME(schedule) # test
ENTRY(divide_error)
pushl $0 # no error code
pushl $ SYMBOL_NAME(do_divide_error)
ALIGN
error_code:
pushl %ds
pushl %eax
xorl %eax,%eax
pushl %ebp
pushl %edi
pushl %esi
pushl %edx
decl %eax # eax = -1
pushl %ecx
pushl %ebx
#if 1
xorl %ecx,%ecx # zero ecx
cld
mov %es,%cx # get the lower order bits of es
#else
cld
# Some older processors leave the top 16 bits of the 32 bit destination
# register undefined, rather than zeroed in the following instruction.
# This won't matter when restoring or loading a segment register from the
# stack. It may be a problem if any code reads the full 32 bit value.
# dosemu? kernel? Would somebody like to verify that this way is really OK?
movl %es,%cx
#endif
xchgl %eax, ORIG_EAX(%esp) # orig_eax (get the error code. )
movl %esp,%edx
xchgl %ecx, ES(%esp) # get the address and save es.
pushl %eax # push the error code
pushl %edx
movl $(__KERNEL_DS),%edx
movl %dx,%ds
movl %dx,%es
GET_CURRENT(%ebx)
call *%ecx
addl $8,%esp
jmp ret_from_exception
ENTRY(coprocessor_error)
pushl $0
pushl $ SYMBOL_NAME(do_coprocessor_error)
jmp error_code
ENTRY(device_not_available)
pushl $-1 # mark this as an int
SAVE_ALL
GET_CURRENT(%ebx)
pushl $ret_from_exception
movl %cr0,%eax
testl $0x4,%eax # EM (math emulation bit)
je SYMBOL_NAME(math_state_restore)
pushl $0 # temporary storage for ORIG_EIP
call SYMBOL_NAME(math_emulate)
addl $4,%esp
ret
ENTRY(debug)
pushl $0
pushl $ SYMBOL_NAME(do_debug)
jmp error_code
ENTRY(nmi)
pushl $0
pushl $ SYMBOL_NAME(do_nmi)
jmp error_code
ENTRY(int3)
pushl $0
pushl $ SYMBOL_NAME(do_int3)
jmp error_code
ENTRY(overflow)
pushl $0
pushl $ SYMBOL_NAME(do_overflow)
jmp error_code
ENTRY(bounds)
pushl $0
pushl $ SYMBOL_NAME(do_bounds)
jmp error_code
ENTRY(invalid_op)
pushl $0
pushl $ SYMBOL_NAME(do_invalid_op)
jmp error_code
ENTRY(coprocessor_segment_overrun)
pushl $0
pushl $ SYMBOL_NAME(do_coprocessor_segment_overrun)
jmp error_code
ENTRY(reserved)
pushl $0
pushl $ SYMBOL_NAME(do_reserved)
jmp error_code
ENTRY(double_fault)
pushl $ SYMBOL_NAME(do_double_fault)
jmp error_code
ENTRY(invalid_TSS)
pushl $ SYMBOL_NAME(do_invalid_TSS)
jmp error_code
ENTRY(segment_not_present)
pushl $ SYMBOL_NAME(do_segment_not_present)
jmp error_code
ENTRY(stack_segment)
pushl $ SYMBOL_NAME(do_stack_segment)
jmp error_code
ENTRY(general_protection)
pushl $ SYMBOL_NAME(do_general_protection)
jmp error_code
ENTRY(alignment_check)
pushl $ SYMBOL_NAME(do_alignment_check)
jmp error_code
ENTRY(page_fault)
pushl $ SYMBOL_NAME(do_page_fault)
jmp error_code
ENTRY(spurious_interrupt_bug)
pushl $0
pushl $ SYMBOL_NAME(do_spurious_interrupt_bug)
jmp error_code
.data
ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_setup) /* 0 */
.long SYMBOL_NAME(sys_exit)
.long SYMBOL_NAME(sys_fork)
.long SYMBOL_NAME(sys_read)
.long SYMBOL_NAME(sys_write)
.long SYMBOL_NAME(sys_open) /* 5 */
.long SYMBOL_NAME(sys_close)
.long SYMBOL_NAME(sys_waitpid)
.long SYMBOL_NAME(sys_creat)
.long SYMBOL_NAME(sys_link)
.long SYMBOL_NAME(sys_unlink) /* 10 */
.long SYMBOL_NAME(sys_execve)
.long SYMBOL_NAME(sys_chdir)
.long SYMBOL_NAME(sys_time)
.long SYMBOL_NAME(sys_mknod)
.long SYMBOL_NAME(sys_chmod) /* 15 */
.long SYMBOL_NAME(sys_lchown)
.long SYMBOL_NAME(sys_ni_syscall) /* old break syscall holder */
.long SYMBOL_NAME(sys_stat)
.long SYMBOL_NAME(sys_lseek)
.long SYMBOL_NAME(sys_getpid) /* 20 */
.long SYMBOL_NAME(sys_mount)
.long SYMBOL_NAME(sys_umount)
.long SYMBOL_NAME(sys_setuid)
.long SYMBOL_NAME(sys_getuid)
.long SYMBOL_NAME(sys_stime) /* 25 */
.long SYMBOL_NAME(sys_ptrace)
.long SYMBOL_NAME(sys_alarm)
.long SYMBOL_NAME(sys_fstat)
.long SYMBOL_NAME(sys_pause)
.long SYMBOL_NAME(sys_utime) /* 30 */
.long SYMBOL_NAME(sys_ni_syscall) /* old stty syscall holder */
.long SYMBOL_NAME(sys_ni_syscall) /* old gtty syscall holder */
.long SYMBOL_NAME(sys_access)
.long SYMBOL_NAME(sys_nice)
.long SYMBOL_NAME(sys_ni_syscall) /* 35 */ /* old ftime syscall holder */
.long SYMBOL_NAME(sys_sync)
.long SYMBOL_NAME(sys_kill)
.long SYMBOL_NAME(sys_rename)
.long SYMBOL_NAME(sys_mkdir)
.long SYMBOL_NAME(sys_rmdir) /* 40 */
.long SYMBOL_NAME(sys_dup)
.long SYMBOL_NAME(sys_pipe)
.long SYMBOL_NAME(sys_times)
.long SYMBOL_NAME(sys_ni_syscall) /* old prof syscall holder */
.long SYMBOL_NAME(sys_brk) /* 45 */
.long SYMBOL_NAME(sys_setgid)
.long SYMBOL_NAME(sys_getgid)
.long SYMBOL_NAME(sys_signal)
.long SYMBOL_NAME(sys_geteuid)
.long SYMBOL_NAME(sys_getegid) /* 50 */
.long SYMBOL_NAME(sys_acct)
.long SYMBOL_NAME(sys_ni_syscall) /* old phys syscall holder */
.long SYMBOL_NAME(sys_ni_syscall) /* old lock syscall holder */
.long SYMBOL_NAME(sys_ioctl)
.long SYMBOL_NAME(sys_fcntl) /* 55 */
.long SYMBOL_NAME(sys_ni_syscall) /* old mpx syscall holder */
.long SYMBOL_NAME(sys_setpgid)
.long SYMBOL_NAME(sys_ni_syscall) /* old ulimit syscall holder */
.long SYMBOL_NAME(sys_olduname)
.long SYMBOL_NAME(sys_umask) /* 60 */
.long SYMBOL_NAME(sys_chroot)
.long SYMBOL_NAME(sys_ustat)
.long SYMBOL_NAME(sys_dup2)
.long SYMBOL_NAME(sys_getppid)
.long SYMBOL_NAME(sys_getpgrp) /* 65 */
.long SYMBOL_NAME(sys_setsid)
.long SYMBOL_NAME(sys_sigaction)
.long SYMBOL_NAME(sys_sgetmask)
.long SYMBOL_NAME(sys_ssetmask)
.long SYMBOL_NAME(sys_setreuid) /* 70 */
.long SYMBOL_NAME(sys_setregid)
.long SYMBOL_NAME(sys_sigsuspend)
.long SYMBOL_NAME(sys_sigpending)
.long SYMBOL_NAME(sys_sethostname)
.long SYMBOL_NAME(sys_setrlimit) /* 75 */
.long SYMBOL_NAME(sys_getrlimit)
.long SYMBOL_NAME(sys_getrusage)
.long SYMBOL_NAME(sys_gettimeofday)
.long SYMBOL_NAME(sys_settimeofday)
.long SYMBOL_NAME(sys_getgroups) /* 80 */
.long SYMBOL_NAME(sys_setgroups)
.long SYMBOL_NAME(old_select)
.long SYMBOL_NAME(sys_symlink)
.long SYMBOL_NAME(sys_lstat)
.long SYMBOL_NAME(sys_readlink) /* 85 */
.long SYMBOL_NAME(sys_uselib)
.long SYMBOL_NAME(sys_swapon)
.long SYMBOL_NAME(sys_reboot)
.long SYMBOL_NAME(old_readdir)
.long SYMBOL_NAME(old_mmap) /* 90 */
.long SYMBOL_NAME(sys_munmap)
.long SYMBOL_NAME(sys_truncate)
.long SYMBOL_NAME(sys_ftruncate)
.long SYMBOL_NAME(sys_fchmod)
.long SYMBOL_NAME(sys_fchown) /* 95 */
.long SYMBOL_NAME(sys_getpriority)
.long SYMBOL_NAME(sys_setpriority)
.long SYMBOL_NAME(sys_ni_syscall) /* old profil syscall holder */
.long SYMBOL_NAME(sys_statfs)
.long SYMBOL_NAME(sys_fstatfs) /* 100 */
.long SYMBOL_NAME(sys_ioperm)
.long SYMBOL_NAME(sys_socketcall)
.long SYMBOL_NAME(sys_syslog)
.long SYMBOL_NAME(sys_setitimer)
.long SYMBOL_NAME(sys_getitimer) /* 105 */
.long SYMBOL_NAME(sys_newstat)
.long SYMBOL_NAME(sys_newlstat)
.long SYMBOL_NAME(sys_newfstat)
.long SYMBOL_NAME(sys_uname)
.long SYMBOL_NAME(sys_iopl) /* 110 */
.long SYMBOL_NAME(sys_vhangup)
.long SYMBOL_NAME(sys_idle)
.long SYMBOL_NAME(sys_vm86old)
.long SYMBOL_NAME(sys_wait4)
.long SYMBOL_NAME(sys_swapoff) /* 115 */
.long SYMBOL_NAME(sys_sysinfo)
.long SYMBOL_NAME(sys_ipc)
.long SYMBOL_NAME(sys_fsync)
.long SYMBOL_NAME(sys_sigreturn)
.long SYMBOL_NAME(sys_clone) /* 120 */
.long SYMBOL_NAME(sys_setdomainname)
.long SYMBOL_NAME(sys_newuname)
.long SYMBOL_NAME(sys_modify_ldt)
.long SYMBOL_NAME(sys_adjtimex)
.long SYMBOL_NAME(sys_mprotect) /* 125 */
.long SYMBOL_NAME(sys_sigprocmask)
.long SYMBOL_NAME(sys_create_module)
.long SYMBOL_NAME(sys_init_module)
.long SYMBOL_NAME(sys_delete_module)
.long SYMBOL_NAME(sys_get_kernel_syms) /* 130 */
.long SYMBOL_NAME(sys_quotactl)
.long SYMBOL_NAME(sys_getpgid)
.long SYMBOL_NAME(sys_fchdir)
.long SYMBOL_NAME(sys_bdflush)
.long SYMBOL_NAME(sys_sysfs) /* 135 */
.long SYMBOL_NAME(sys_personality)
.long SYMBOL_NAME(sys_ni_syscall) /* for afs_syscall */
.long SYMBOL_NAME(sys_setfsuid)
.long SYMBOL_NAME(sys_setfsgid)
.long SYMBOL_NAME(sys_llseek) /* 140 */
.long SYMBOL_NAME(sys_getdents)
.long SYMBOL_NAME(sys_select)
.long SYMBOL_NAME(sys_flock)
.long SYMBOL_NAME(sys_msync)
.long SYMBOL_NAME(sys_readv) /* 145 */
.long SYMBOL_NAME(sys_writev)
.long SYMBOL_NAME(sys_getsid)
.long SYMBOL_NAME(sys_fdatasync)
.long SYMBOL_NAME(sys_sysctl)
.long SYMBOL_NAME(sys_mlock) /* 150 */
.long SYMBOL_NAME(sys_munlock)
.long SYMBOL_NAME(sys_mlockall)
.long SYMBOL_NAME(sys_munlockall)
.long SYMBOL_NAME(sys_sched_setparam)
.long SYMBOL_NAME(sys_sched_getparam) /* 155 */
.long SYMBOL_NAME(sys_sched_setscheduler)
.long SYMBOL_NAME(sys_sched_getscheduler)
.long SYMBOL_NAME(sys_sched_yield)
.long SYMBOL_NAME(sys_sched_get_priority_max)
.long SYMBOL_NAME(sys_sched_get_priority_min) /* 160 */
.long SYMBOL_NAME(sys_sched_rr_get_interval)
.long SYMBOL_NAME(sys_nanosleep)
.long SYMBOL_NAME(sys_mremap)
.long SYMBOL_NAME(sys_setresuid)
.long SYMBOL_NAME(sys_getresuid) /* 165 */
.long SYMBOL_NAME(sys_vm86)
.long SYMBOL_NAME(sys_query_module)
.long SYMBOL_NAME(sys_poll)
.long SYMBOL_NAME(sys_nfsservctl)
.long SYMBOL_NAME(sys_setresgid) /* 170 */
.long SYMBOL_NAME(sys_getresgid)
.long SYMBOL_NAME(sys_prctl)
.long SYMBOL_NAME(sys_rt_sigreturn)
.long SYMBOL_NAME(sys_rt_sigaction)
.long SYMBOL_NAME(sys_rt_sigprocmask) /* 175 */
.long SYMBOL_NAME(sys_rt_sigpending)
.long SYMBOL_NAME(sys_rt_sigtimedwait)
.long SYMBOL_NAME(sys_rt_sigqueueinfo)
.long SYMBOL_NAME(sys_rt_sigsuspend)
.long SYMBOL_NAME(sys_pread) /* 180 */
.long SYMBOL_NAME(sys_pwrite)
.long SYMBOL_NAME(sys_chown)
.long SYMBOL_NAME(sys_getcwd)
.long SYMBOL_NAME(sys_capget)
.long SYMBOL_NAME(sys_capset) /* 185 */
.long SYMBOL_NAME(sys_sigaltstack)
.long SYMBOL_NAME(sys_sendfile)
.long SYMBOL_NAME(sys_ni_syscall) /* streams1 */
.long SYMBOL_NAME(sys_ni_syscall) /* streams2 */
.long SYMBOL_NAME(sys_table) /* 190 */
.rept NR_syscalls-190
.long SYMBOL_NAME(sys_ni_syscall)
.endr

61
kernel/table21/main.c Normal file
View File

@@ -0,0 +1,61 @@
/*
* linux/table/table_impl.c
* Copyright (C) 1998 Martin Baulig
*/
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/kernel_stat.h>
#include <linux/tty.h>
#include <linux/user.h>
#include <linux/a.out.h>
#include <linux/string.h>
#include <linux/mman.h>
#include <linux/proc_fs.h>
#include <linux/ioport.h>
#include <linux/config.h>
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <linux/swap.h>
#include <linux/slab.h>
#include <linux/smp.h>
#include <linux/signal.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
#include <asm/io.h>
#include <linux/module.h>
#include <linux/table.h>
#include "version.h"
extern void scheduling_functions_start_here(void);
extern void scheduling_functions_end_here(void);
int (*table_function_ptr) (int, union table *, const void *) = 0;
EXPORT_SYMBOL(table_function_ptr);
EXPORT_SYMBOL(nr_running);
EXPORT_SYMBOL(pidhash);
EXPORT_SYMBOL(task);
EXPORT_SYMBOL(si_swapinfo);
EXPORT_SYMBOL(scheduling_functions_start_here);
EXPORT_SYMBOL(scheduling_functions_end_here);
EXPORT_SYMBOL(avenrun);
EXPORT_SYMBOL(nr_tasks);
EXPORT_SYMBOL(last_pid);
EXPORT_SYMBOL(page_cache_size);
EXPORT_SYMBOL(init_mm);
asmlinkage int
sys_table (int type, union table *buf, const void *param)
{
if (table_function_ptr == 0)
return -ENOSYS;
return (*table_function_ptr) (type, buf, param);
}

607
kernel/table21/module.c Normal file
View File

@@ -0,0 +1,607 @@
/*
* linux/table/table_impl.c
* Copyright (C) 1998 Martin Baulig
*/
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/kernel_stat.h>
#include <linux/tty.h>
#include <linux/user.h>
#include <linux/a.out.h>
#include <linux/string.h>
#include <linux/mman.h>
#include <linux/proc_fs.h>
#include <linux/ioport.h>
#include <linux/config.h>
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <linux/swap.h>
#include <linux/slab.h>
#include <linux/smp.h>
#include <linux/signal.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
#include <asm/io.h>
#include <linux/module.h>
#include <linux/table.h>
#include "version.h"
extern int (*table_function_ptr) (int, union table *, const void *);
int table_fkt (int, union table *, const void *);
EXPORT_NO_SYMBOLS;
int
init_module(void)
{
printk ("init_module () = %p - %d, %d\n",
table_fkt, sizeof (union table), sizeof (sigset_t));
table_function_ptr = table_fkt;
return 0;
}
void
cleanup_module(void)
{
table_function_ptr = 0;
}
#define LOAD_INT(x) ((x) >> FSHIFT)
#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)
#ifdef CONFIG_DEBUG_MALLOC
int get_malloc(char * buffer);
#endif
static void collect_sigign_sigcatch(struct task_struct *p, sigset_t *ign,
sigset_t *catch)
{
struct k_sigaction *k;
int i;
sigemptyset(ign);
sigemptyset(catch);
#if 0
printk ("collect_sigign_sigcatch: %p - %p\n",
p, p->sig);
#endif
if (p->sig) {
k = p->sig->action;
for (i = 1; i <= _NSIG; ++i, ++k) {
#if 0
printk ("signal: %d - %p (%p, %p)\n",
i, k->sa.sa_handler, SIG_IGN, SIG_DFL);
#endif
if (k->sa.sa_handler == SIG_IGN)
sigaddset(ign, i);
else if (k->sa.sa_handler != SIG_DFL)
sigaddset(catch, i);
}
}
}
/*
* These bracket the sleeping functions..
*/
extern void scheduling_functions_start_here(void);
extern void scheduling_functions_end_here(void);
#define first_sched ((unsigned long) scheduling_functions_start_here)
#define last_sched ((unsigned long) scheduling_functions_end_here)
static unsigned long get_wchan(struct task_struct *p)
{
if (!p || p == current || p->state == TASK_RUNNING)
return 0;
#if defined(__i386__)
{
unsigned long ebp, eip;
unsigned long stack_page;
int count = 0;
stack_page = 4096 + (unsigned long)p;
if (!stack_page)
return 0;
ebp = p->tss.ebp;
do {
if (ebp < stack_page || ebp >= 4092+stack_page)
return 0;
eip = *(unsigned long *) (ebp+4);
if (eip < first_sched || eip >= last_sched)
return eip;
ebp = *(unsigned long *) ebp;
} while (count++ < 16);
}
#elif defined(__alpha__)
/*
* This one depends on the frame size of schedule(). Do a
* "disass schedule" in gdb to find the frame size. Also, the
* code assumes that sleep_on() follows immediately after
* interruptible_sleep_on() and that add_timer() follows
* immediately after interruptible_sleep(). Ugly, isn't it?
* Maybe adding a wchan field to task_struct would be better,
* after all...
*/
{
unsigned long schedule_frame;
unsigned long pc;
pc = thread_saved_pc(&p->tss);
if (pc >= first_sched && pc < last_sched) {
schedule_frame = ((unsigned long *)p->tss.ksp)[6];
return ((unsigned long *)schedule_frame)[12];
}
return pc;
}
#elif defined(__mc68000__)
{
unsigned long fp, pc;
unsigned long stack_page;
int count = 0;
extern int sys_pause (void);
stack_page = p->kernel_stack_page;
if (!stack_page)
return 0;
fp = ((struct switch_stack *)p->tss.ksp)->a6;
do {
if (fp < stack_page || fp >= 4088+stack_page)
return 0;
pc = ((unsigned long *)fp)[1];
/* FIXME: This depends on the order of these functions. */
if (pc < first_sched || pc >= last_sched)
return pc;
fp = *(unsigned long *) fp;
} while (count++ < 16);
}
#elif defined(__powerpc__)
return (p->tss.wchan);
#elif defined (CONFIG_ARM)
{
unsigned long fp, lr;
unsigned long stack_page;
int count = 0;
stack_page = 4096 + (unsigned long)p;
fp = get_css_fp (&p->tss);
do {
if (fp < stack_page || fp > 4092+stack_page)
return 0;
lr = pc_pointer (((unsigned long *)fp)[-1]);
if (lr < first_sched || lr > last_sched)
return lr;
fp = *(unsigned long *) (fp - 12);
} while (count ++ < 16);
}
#endif
return 0;
}
#if defined(__i386__)
# define KSTK_EIP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)))[1019])
# define KSTK_ESP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)))[1022])
#elif defined(__alpha__)
/*
* See arch/alpha/kernel/ptrace.c for details.
*/
# define PT_REG(reg) (PAGE_SIZE - sizeof(struct pt_regs) \
+ (long)&((struct pt_regs *)0)->reg)
# define KSTK_EIP(tsk) \
(*(unsigned long *)(PT_REG(pc) + PAGE_SIZE + (unsigned long)(tsk)))
# define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->tss.usp)
#elif defined(CONFIG_ARM)
# define KSTK_EIP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)))[1022])
# define KSTK_ESP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)))[1020])
#elif defined(__mc68000__)
#define KSTK_EIP(tsk) \
({ \
unsigned long eip = 0; \
if ((tsk)->tss.esp0 > PAGE_SIZE && \
MAP_NR((tsk)->tss.esp0) < max_mapnr) \
eip = ((struct pt_regs *) (tsk)->tss.esp0)->pc; \
eip; })
#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->tss.usp)
#elif defined(__powerpc__)
#define KSTK_EIP(tsk) ((tsk)->tss.regs->nip)
#define KSTK_ESP(tsk) ((tsk)->tss.regs->gpr[1])
#elif defined (__sparc_v9__)
# define KSTK_EIP(tsk) ((tsk)->tss.kregs->tpc)
# define KSTK_ESP(tsk) ((tsk)->tss.kregs->u_regs[UREG_FP])
#elif defined(__sparc__)
# define KSTK_EIP(tsk) ((tsk)->tss.kregs->pc)
# define KSTK_ESP(tsk) ((tsk)->tss.kregs->u_regs[UREG_FP])
#endif
/* Gcc optimizes away "strlen(x)" for constant x */
#define ADDBUF(buffer, string) \
do { memcpy(buffer, string, strlen(string)); \
buffer += strlen(string); } while (0)
static inline void statm_pte_range(pmd_t * pmd, unsigned long address, unsigned long size,
int * pages, int * shared, int * dirty, int * total)
{
pte_t * pte;
unsigned long end;
if (pmd_none(*pmd))
return;
if (pmd_bad(*pmd)) {
printk("statm_pte_range: bad pmd (%08lx)\n", pmd_val(*pmd));
pmd_clear(pmd);
return;
}
pte = pte_offset(pmd, address);
address &= ~PMD_MASK;
end = address + size;
if (end > PMD_SIZE)
end = PMD_SIZE;
do {
pte_t page = *pte;
address += PAGE_SIZE;
pte++;
if (pte_none(page))
continue;
++*total;
if (!pte_present(page))
continue;
++*pages;
if (pte_dirty(page))
++*dirty;
if (MAP_NR(pte_page(page)) >= max_mapnr)
continue;
if (atomic_read(&mem_map[MAP_NR(pte_page(page))].count) > 1)
++*shared;
} while (address < end);
}
static inline void statm_pmd_range(pgd_t * pgd, unsigned long address, unsigned long size,
int * pages, int * shared, int * dirty, int * total)
{
pmd_t * pmd;
unsigned long end;
if (pgd_none(*pgd))
return;
if (pgd_bad(*pgd)) {
printk("statm_pmd_range: bad pgd (%08lx)\n", pgd_val(*pgd));
pgd_clear(pgd);
return;
}
pmd = pmd_offset(pgd, address);
address &= ~PGDIR_MASK;
end = address + size;
if (end > PGDIR_SIZE)
end = PGDIR_SIZE;
do {
statm_pte_range(pmd, address, end - address, pages, shared, dirty, total);
address = (address + PMD_SIZE) & PMD_MASK;
pmd++;
} while (address < end);
}
static void statm_pgd_range(pgd_t * pgd, unsigned long address, unsigned long end,
int * pages, int * shared, int * dirty, int * total)
{
while (address < end) {
statm_pmd_range(pgd, address, end - address, pages, shared, dirty, total);
address = (address + PGDIR_SIZE) & PGDIR_MASK;
pgd++;
}
}
int
table_fkt (int type, union table *buf, const void *param)
{
union table tbl;
struct sysinfo i;
struct task_struct *tsk = NULL;
struct proclist_args plistargs;
int index, tindex, err, tty;
sigset_t sigign, sigcatch;
pid_t pid;
if (type == TABLE_VERSION)
return _TABLE_VERSION;
if (!buf)
return -EFAULT;
memset (&tbl, 0, sizeof (union table));
/* For TABLE_PROC_*, read pid and get task_struct */
switch (type) {
case TABLE_PROC_UID:
case TABLE_PROC_MEM:
case TABLE_PROC_SEGMENT:
case TABLE_PROC_TIME:
case TABLE_PROC_STATE:
case TABLE_PROC_SIGNAL:
case TABLE_PROC_KERNEL:
err = verify_area (VERIFY_READ, param, sizeof (pid_t));
if (err)
return err;
copy_from_user (&pid, param, sizeof (pid_t));
read_lock (&tasklist_lock);
tsk = find_task_by_pid (pid);
/* FIXME!! This should be done after the last use */
read_unlock(&tasklist_lock);
if (tsk == NULL)
return -ESRCH;
break;
case TABLE_PROCLIST:
err = verify_area (VERIFY_READ, param,
sizeof (struct proclist_args));
if (err)
return err;
copy_from_user (&plistargs, param,
sizeof (struct proclist_args));
break;
}
/* Main function dispatcher */
switch (type) {
case TABLE_PROCLIST:
tsk = task [0];
read_lock (&tasklist_lock);
for (index = tindex = 0; index < nr_tasks;
index++, tsk = tsk->next_task) {
if (tsk->pid == 0) continue;
switch (plistargs.which & TABLE_KERN_PROC_MASK) {
case TABLE_KERN_PROC_PID:
if (tsk->pid != plistargs.arg) continue;
break;
case TABLE_KERN_PROC_PGRP:
if (tsk->pgrp != plistargs.arg) continue;
break;
case TABLE_KERN_PROC_SESSION:
if (tsk->session != plistargs.arg) continue;
case TABLE_KERN_PROC_TTY:
tty = tsk->tty ?
kdev_t_to_nr (tsk->tty->device) : 0;
if (tty != plistargs.arg) continue;
break;
case TABLE_KERN_PROC_UID:
if (tsk->uid != plistargs.arg) continue;
break;
case TABLE_KERN_PROC_RUID:
if (tsk->euid != plistargs.arg) continue;
break;
}
if ((plistargs.which & TABLE_EXCLUDE_IDLE) &&
(tsk->state != 0))
continue;
if ((plistargs.which & TABLE_EXCLUDE_NOTTY) &&
(tsk->tty == NULL))
continue;
tbl.proclist.pids [tindex++] = tsk->pid;
}
tbl.proclist.nr_running = nr_running;
tbl.proclist.last_pid = last_pid;
tbl.proclist.nr_tasks = tindex;
read_unlock(&tasklist_lock);
break;
case TABLE_CPU:
tbl.cpu.total = jiffies;
tbl.cpu.user = kstat.cpu_user;
tbl.cpu.nice = kstat.cpu_nice;
tbl.cpu.sys = kstat.cpu_system;
tbl.cpu.idle = tbl.cpu.total -
(tbl.cpu.user + tbl.cpu.nice + tbl.cpu.sys);
tbl.cpu.frequency = HZ;
break;
case TABLE_MEM:
si_meminfo (&i);
tbl.mem.total = i.totalram;
tbl.mem.used = i.totalram - i.freeram;
tbl.mem.free = i.freeram;
tbl.mem.shared = i.sharedram;
tbl.mem.buffer = i.bufferram;
tbl.mem.cached = page_cache_size << PAGE_SHIFT;
break;
case TABLE_SWAP:
si_swapinfo (&i);
tbl.swap.total = i.totalswap;
tbl.swap.used = i.totalswap - i.freeswap;
tbl.swap.free = i.freeswap;
break;
case TABLE_LOADAVG:
tbl.loadavg.loadavg [0] = (double) avenrun [0] / (1 << FSHIFT);
tbl.loadavg.loadavg [1] = (double) avenrun [1] / (1 << FSHIFT);
tbl.loadavg.loadavg [2] = (double) avenrun [2] / (1 << FSHIFT);
tbl.loadavg.nr_running = nr_running;
tbl.loadavg.nr_tasks = nr_tasks;
tbl.loadavg.last_pid = last_pid;
break;
case TABLE_UPTIME:
tbl.uptime.uptime = jiffies;
tbl.uptime.idle = task[0]->times.tms_utime +
task[0]->times.tms_stime;
break;
case TABLE_PROC_STATE:
tbl.proc_state.uid = tsk->uid;
tbl.proc_state.gid = tsk->gid;
tbl.proc_state.state = tsk->state;
tbl.proc_state.flags = tsk->flags;
memcpy (tbl.proc_state.comm, tsk->comm,
sizeof (tbl.proc_state.comm));
break;
case TABLE_PROC_UID:
tbl.proc_uid.uid = tsk->uid;
tbl.proc_uid.euid = tsk->euid;
tbl.proc_uid.suid = tsk->suid;
tbl.proc_uid.fsuid = tsk->fsuid;
tbl.proc_uid.gid = tsk->gid;
tbl.proc_uid.egid = tsk->egid;
tbl.proc_uid.sgid = tsk->sgid;
tbl.proc_uid.fsgid = tsk->fsgid;
tbl.proc_uid.pid = tsk->pid;
tbl.proc_uid.pgrp = tsk->pgrp;
tbl.proc_uid.ppid = tsk->p_pptr->pid;
tbl.proc_uid.session = tsk->session;
tbl.proc_uid.tty = tsk->tty ?
kdev_t_to_nr (tsk->tty->device) : 0;
tbl.proc_uid.tpgid = tsk->tty ? tsk->tty->pgrp : -1;
tbl.proc_uid.priority = tsk->priority;
tbl.proc_uid.counter = tsk->counter;
tbl.proc_uid.def_priority = DEF_PRIORITY;
break;
case TABLE_PROC_SIGNAL:
memcpy (&tbl.proc_signal.signal, &tsk->signal,
sizeof (tbl.proc_signal.signal));
memcpy (&tbl.proc_signal.blocked, &tsk->blocked,
sizeof (tbl.proc_signal.blocked));
collect_sigign_sigcatch (tsk, &sigign, &sigcatch);
memcpy (&tbl.proc_signal.ignored, &sigign,
sizeof (tbl.proc_signal.ignored));
memcpy (&tbl.proc_signal.caught, &sigcatch,
sizeof (tbl.proc_signal.caught));
#if 0
printk ("PROC_SIGNAL: (%lu, %lu) - (%lu, %lu)\n",
tbl.proc_signal.ignored.sig [0],
tbl.proc_signal.ignored.sig [1],
tbl.proc_signal.caught.sig [0],
tbl.proc_signal.caught.sig [1]);
#endif
break;
case TABLE_PROC_MEM:
if (tsk->mm && tsk->mm != &init_mm) {
tbl.proc_mem.context = tsk->mm->context;
tbl.proc_mem.start_code = tsk->mm->start_code;
tbl.proc_mem.end_code = tsk->mm->end_code;
tbl.proc_mem.start_data = tsk->mm-> start_data;
tbl.proc_mem.end_data = tsk->mm->end_data;
tbl.proc_mem.start_brk = tsk->mm->start_brk;
tbl.proc_mem.brk = tsk->mm->brk;
tbl.proc_mem.start_stack = tsk->mm->start_stack;
tbl.proc_mem.start_mmap = tsk->mm->mmap ?
tsk->mm->mmap->vm_start : 0;
tbl.proc_mem.arg_start = tsk->mm->arg_start;
tbl.proc_mem.arg_end = tsk->mm->arg_end;
tbl.proc_mem.env_start = tsk->mm->env_start;
tbl.proc_mem.env_end = tsk->mm->env_end;
tbl.proc_mem.rss = tsk->mm->rss << PAGE_SHIFT;
tbl.proc_mem.total_vm = tsk->mm->total_vm;
tbl.proc_mem.locked_vm = tsk->mm->locked_vm;
}
tbl.proc_mem.rlim = tsk->rlim ? tsk->rlim[RLIMIT_RSS].rlim_cur : 0;
break;
case TABLE_PROC_SEGMENT:
if (tsk->mm && tsk->mm != &init_mm) {
unsigned long vsize = 0;
int size = 0, resident = 0, share = 0;
int trs = 0, lrs = 0, drs = 0, srs = 0, dt = 0;
struct vm_area_struct * vma = tsk->mm->mmap;
while (vma) {
pgd_t *pgd = pgd_offset(tsk->mm, vma->vm_start);
int pages = 0, shared = 0, dirty = 0, total = 0;
vsize += vma->vm_end - vma->vm_start;
statm_pgd_range (pgd, vma->vm_start, vma->vm_end,
&pages, &shared, &dirty, &total);
resident += pages;
share += shared;
dt += dirty;
size += total;
/* Well, shared library seem to get mapped
* above 0x40000000 and are executable,
* so I use this hack to get their size.
*/
if (vma->vm_flags & VM_GROWSDOWN)
srs += pages; /* stack */
else if ((vma->vm_flags & VM_EXEC) &&
(vma->vm_start > 0x40000000))
lrs += pages; /* library */
else if (vma->vm_flags & VM_EXECUTABLE)
trs += pages; /* text */
else
drs += pages;
vma = vma->vm_next;
}
tbl.proc_segment.vsize = vsize;
tbl.proc_segment.size = size << PAGE_SHIFT;
tbl.proc_segment.resident = resident << PAGE_SHIFT;
tbl.proc_segment.shared = share << PAGE_SHIFT;
tbl.proc_segment.trs = trs << PAGE_SHIFT;
tbl.proc_segment.lrs = lrs << PAGE_SHIFT;
tbl.proc_segment.drs = drs << PAGE_SHIFT;
tbl.proc_segment.srs = srs << PAGE_SHIFT;
tbl.proc_segment.dt = dt << PAGE_SHIFT;
}
break;
case TABLE_PROC_TIME:
tbl.proc_time.utime = tsk->times.tms_utime;
tbl.proc_time.stime = tsk->times.tms_stime;
tbl.proc_time.cutime = tsk->times.tms_cutime;
tbl.proc_time.cstime = tsk->times.tms_cstime;
tbl.proc_time.start_time = tsk->start_time;
tbl.proc_time.timeout = tsk->timeout;
tbl.proc_time.policy = tsk->policy;
tbl.proc_time.rt_priority = tsk->rt_priority;
tbl.proc_time.it_real_value = tsk->it_real_value;
tbl.proc_time.it_prof_value = tsk->it_prof_value;
tbl.proc_time.it_virt_value = tsk->it_virt_value;
tbl.proc_time.it_real_incr = tsk->it_real_incr;
tbl.proc_time.it_prof_incr = tsk->it_prof_incr;
tbl.proc_time.it_virt_incr = tsk->it_virt_incr;
break;
case TABLE_PROC_KERNEL:
tbl.proc_kernel.min_flt = tsk->min_flt;
tbl.proc_kernel.cmin_flt = tsk->cmin_flt;
tbl.proc_kernel.maj_flt = tsk->maj_flt;
tbl.proc_kernel.cmaj_flt = tsk->cmaj_flt;
tbl.proc_kernel.kesp = KSTK_ESP(tsk);
tbl.proc_kernel.keip = KSTK_EIP(tsk);
tbl.proc_kernel.nswap = tsk->nswap;
tbl.proc_kernel.cnswap = tsk->cnswap;
tbl.proc_kernel.wchan = get_wchan (tsk);
break;
default:
return -EINVAL;
}
err = verify_area (VERIFY_WRITE, buf, sizeof (struct table));
if (err)
return err;
copy_to_user (buf, &tbl, sizeof (union table));
return 0;
}

View File

@@ -0,0 +1,344 @@
#ifndef _ASM_I386_UNISTD_H_
#define _ASM_I386_UNISTD_H_
/*
* This file contains the system call numbers.
*/
#define __NR_setup 0 /* used only by init, to get system going */
#define __NR_exit 1
#define __NR_fork 2
#define __NR_read 3
#define __NR_write 4
#define __NR_open 5
#define __NR_close 6
#define __NR_waitpid 7
#define __NR_creat 8
#define __NR_link 9
#define __NR_unlink 10
#define __NR_execve 11
#define __NR_chdir 12
#define __NR_time 13
#define __NR_mknod 14
#define __NR_chmod 15
#define __NR_lchown 16
#define __NR_break 17
#define __NR_oldstat 18
#define __NR_lseek 19
#define __NR_getpid 20
#define __NR_mount 21
#define __NR_umount 22
#define __NR_setuid 23
#define __NR_getuid 24
#define __NR_stime 25
#define __NR_ptrace 26
#define __NR_alarm 27
#define __NR_oldfstat 28
#define __NR_pause 29
#define __NR_utime 30
#define __NR_stty 31
#define __NR_gtty 32
#define __NR_access 33
#define __NR_nice 34
#define __NR_ftime 35
#define __NR_sync 36
#define __NR_kill 37
#define __NR_rename 38
#define __NR_mkdir 39
#define __NR_rmdir 40
#define __NR_dup 41
#define __NR_pipe 42
#define __NR_times 43
#define __NR_prof 44
#define __NR_brk 45
#define __NR_setgid 46
#define __NR_getgid 47
#define __NR_signal 48
#define __NR_geteuid 49
#define __NR_getegid 50
#define __NR_acct 51
#define __NR_phys 52
#define __NR_lock 53
#define __NR_ioctl 54
#define __NR_fcntl 55
#define __NR_mpx 56
#define __NR_setpgid 57
#define __NR_ulimit 58
#define __NR_oldolduname 59
#define __NR_umask 60
#define __NR_chroot 61
#define __NR_ustat 62
#define __NR_dup2 63
#define __NR_getppid 64
#define __NR_getpgrp 65
#define __NR_setsid 66
#define __NR_sigaction 67
#define __NR_sgetmask 68
#define __NR_ssetmask 69
#define __NR_setreuid 70
#define __NR_setregid 71
#define __NR_sigsuspend 72
#define __NR_sigpending 73
#define __NR_sethostname 74
#define __NR_setrlimit 75
#define __NR_getrlimit 76
#define __NR_getrusage 77
#define __NR_gettimeofday 78
#define __NR_settimeofday 79
#define __NR_getgroups 80
#define __NR_setgroups 81
#define __NR_select 82
#define __NR_symlink 83
#define __NR_oldlstat 84
#define __NR_readlink 85
#define __NR_uselib 86
#define __NR_swapon 87
#define __NR_reboot 88
#define __NR_readdir 89
#define __NR_mmap 90
#define __NR_munmap 91
#define __NR_truncate 92
#define __NR_ftruncate 93
#define __NR_fchmod 94
#define __NR_fchown 95
#define __NR_getpriority 96
#define __NR_setpriority 97
#define __NR_profil 98
#define __NR_statfs 99
#define __NR_fstatfs 100
#define __NR_ioperm 101
#define __NR_socketcall 102
#define __NR_syslog 103
#define __NR_setitimer 104
#define __NR_getitimer 105
#define __NR_stat 106
#define __NR_lstat 107
#define __NR_fstat 108
#define __NR_olduname 109
#define __NR_iopl 110
#define __NR_vhangup 111
#define __NR_idle 112
#define __NR_vm86old 113
#define __NR_wait4 114
#define __NR_swapoff 115
#define __NR_sysinfo 116
#define __NR_ipc 117
#define __NR_fsync 118
#define __NR_sigreturn 119
#define __NR_clone 120
#define __NR_setdomainname 121
#define __NR_uname 122
#define __NR_modify_ldt 123
#define __NR_adjtimex 124
#define __NR_mprotect 125
#define __NR_sigprocmask 126
#define __NR_create_module 127
#define __NR_init_module 128
#define __NR_delete_module 129
#define __NR_get_kernel_syms 130
#define __NR_quotactl 131
#define __NR_getpgid 132
#define __NR_fchdir 133
#define __NR_bdflush 134
#define __NR_sysfs 135
#define __NR_personality 136
#define __NR_afs_syscall 137 /* Syscall for Andrew File System */
#define __NR_setfsuid 138
#define __NR_setfsgid 139
#define __NR__llseek 140
#define __NR_getdents 141
#define __NR__newselect 142
#define __NR_flock 143
#define __NR_msync 144
#define __NR_readv 145
#define __NR_writev 146
#define __NR_getsid 147
#define __NR_fdatasync 148
#define __NR__sysctl 149
#define __NR_mlock 150
#define __NR_munlock 151
#define __NR_mlockall 152
#define __NR_munlockall 153
#define __NR_sched_setparam 154
#define __NR_sched_getparam 155
#define __NR_sched_setscheduler 156
#define __NR_sched_getscheduler 157
#define __NR_sched_yield 158
#define __NR_sched_get_priority_max 159
#define __NR_sched_get_priority_min 160
#define __NR_sched_rr_get_interval 161
#define __NR_nanosleep 162
#define __NR_mremap 163
#define __NR_setresuid 164
#define __NR_getresuid 165
#define __NR_vm86 166
#define __NR_query_module 167
#define __NR_poll 168
#define __NR_nfsservctl 169
#define __NR_setresgid 170
#define __NR_getresgid 171
#define __NR_prctl 172
#define __NR_rt_sigreturn 173
#define __NR_rt_sigaction 174
#define __NR_rt_sigprocmask 175
#define __NR_rt_sigpending 176
#define __NR_rt_sigtimedwait 177
#define __NR_rt_sigqueueinfo 178
#define __NR_rt_sigsuspend 179
#define __NR_pread 180
#define __NR_pwrite 181
#define __NR_chown 182
#define __NR_getcwd 183
#define __NR_capget 184
#define __NR_capset 185
#define __NR_sigaltstack 186
#define __NR_sendfile 187
#define __NR_streams1 188 /* some people actually want it */
#define __NR_streams2 189 /* some people actually want it */
#define __NR_table 190
/* user-visible error numbers are in the range -1 - -122: see <asm-i386/errno.h> */
#define __syscall_return(type, res) \
do { \
if ((unsigned long)(res) >= (unsigned long)(-125)) { \
errno = -(res); \
res = -1; \
} \
return (type) (res); \
} while (0)
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
#define _syscall0(type,name) \
type name(void) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name)); \
__syscall_return(type,__res); \
}
#define _syscall1(type,name,type1,arg1) \
type name(type1 arg1) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1))); \
__syscall_return(type,__res); \
}
#define _syscall2(type,name,type1,arg1,type2,arg2) \
type name(type1 arg1,type2 arg2) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \
__syscall_return(type,__res); \
}
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
type name(type1 arg1,type2 arg2,type3 arg3) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
"d" ((long)(arg3))); \
__syscall_return(type,__res); \
}
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
"d" ((long)(arg3)),"S" ((long)(arg4))); \
__syscall_return(type,__res); \
}
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
type5,arg5) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
{ \
long __res; \
__asm__ volatile ("int $0x80" \
: "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
"d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \
__syscall_return(type,__res); \
}
#ifdef __KERNEL_SYSCALLS__
/*
* we need this inline - forking from kernel space will result
* in NO COPY ON WRITE (!!!), until an execve is executed. This
* is no problem, but for the stack. This is handled by not letting
* main() use the stack at all after fork(). Thus, no function
* calls - which means inline code for fork too, as otherwise we
* would use the stack upon exit from 'fork()'.
*
* Actually only pause and fork are needed inline, so that there
* won't be any messing with the stack from main(), but we define
* some others too.
*/
#define __NR__exit __NR_exit
static inline _syscall0(int,idle)
static inline _syscall0(int,pause)
static inline _syscall1(int,setup,int,magic)
static inline _syscall0(int,sync)
static inline _syscall0(pid_t,setsid)
static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
static inline _syscall3(int,read,int,fd,char *,buf,off_t,count)
static inline _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
static inline _syscall1(int,dup,int,fd)
static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
static inline _syscall1(int,close,int,fd)
static inline _syscall1(int,_exit,int,exitcode)
static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
static inline _syscall1(int,delete_module,const char *,name)
static inline pid_t wait(int * wait_stat)
{
return waitpid(-1,wait_stat,0);
}
/*
* This is the mechanism for creating a new kernel thread.
*
* NOTE! Only a kernel-only process(ie the swapper or direct descendants
* who haven't done an "execve()") should use this: it will work within
* a system call from a "real" process, but the process memory space will
* not be free'd until both the parent and the child have exited.
*/
static inline pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
{
long retval;
__asm__ __volatile__(
"movl %%esp,%%esi\n\t"
"int $0x80\n\t" /* Linux/i386 system call */
"cmpl %%esp,%%esi\n\t" /* child or parent? */
"je 1f\n\t" /* parent - jump */
"pushl %3\n\t" /* push argument */
"call *%4\n\t" /* call fn */
"movl %2,%0\n\t" /* exit */
"int $0x80\n"
"1:\t"
:"=a" (retval)
:"0" (__NR_clone), "i" (__NR_exit),
"r" (arg), "r" (fn),
"b" (flags | CLONE_VM)
:"si");
return retval;
}
#endif
#endif /* _ASM_I386_UNISTD_H_ */

1
kernel/table21/version.h Normal file
View File

@@ -0,0 +1 @@
#define _TABLE_VERSION 1

1
kernel/version.h Normal file
View File

@@ -0,0 +1 @@
#define _TABLE_VERSION 1

View File

@@ -5,4 +5,3 @@ Makefile.in
libgtop.la
*.lo
lib.c
error.loT

View File

@@ -31,11 +31,13 @@ void *
glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
const void *send_buf, size_t recv_size, void *recv_buf)
{
glibtop_command cmnd = {0};
glibtop_response response = {0};
glibtop_command cmnd;
glibtop_response response;
glibtop_init_r (&server, 0, 0);
memset (&cmnd, 0, sizeof (glibtop_command));
cmnd.command = command;
/* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we

View File

@@ -32,7 +32,7 @@ GQuark
glibtop_error_quark (void)
{
static GQuark q = 0;
if (G_UNLIKELY(q == 0))
if (q == 0)
q = g_quark_from_static_string ("glibtop-error-quark");
return q;

120
lib/glib-arrays.c Normal file
View File

@@ -0,0 +1,120 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* $Id$ */
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
LibGTop is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
LibGTop is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <glibtop.h>
#include <glibtop/union.h>
#include <glibtop/glib-arrays.h>
GArray *
glibtop_get_proclist_as_array_l (glibtop_client *client, int64_t which,
int64_t arg)
{
glibtop_array array;
GArray *retval;
unsigned *ptr;
int i;
ptr = glibtop_get_proclist_l (client, &array, which, arg);
if (!ptr) return NULL;
retval = g_array_new (FALSE, TRUE, sizeof (guint));
retval = g_array_set_size (retval, array.number);
for (i = 0; i < array.number; i++)
g_array_index (retval, guint, i) = ptr [i];
g_free (ptr);
return retval;
}
GPtrArray *
glibtop_get_proc_args_as_array_l (glibtop_client *client, pid_t pid)
{
glibtop_array array;
GPtrArray *retval;
char **ptr;
int i;
ptr = glibtop_get_proc_args_l (client, &array, pid);
if (!ptr) return NULL;
retval = g_ptr_array_new ();
g_ptr_array_set_size (retval, array.number);
for (i = 0; i < array.number; i++) {
retval->pdata [i] = g_strdup (ptr [i]);
g_free (ptr [i]);
}
g_free (ptr);
return retval;
}
GPtrArray *
glibtop_get_proc_map_as_array_l (glibtop_client *client, pid_t pid)
{
glibtop_array array;
GPtrArray *retval;
glibtop_map_entry *ptr;
int i;
ptr = glibtop_get_proc_map_l (client, &array, pid);
if (!ptr) return NULL;
retval = g_ptr_array_new ();
g_ptr_array_set_size (retval, array.number);
for (i = 0; i < array.number; i++)
retval->pdata [i] = g_memdup (ptr+i, sizeof (glibtop_map_entry));
g_free (ptr);
return retval;
}
GPtrArray *
glibtop_get_mountlist_as_array_l (glibtop_client *client, int all_fs)
{
glibtop_array array;
GPtrArray *retval;
glibtop_mountentry *ptr;
int i;
ptr = glibtop_get_mountlist_l (client, &array, all_fs);
if (!ptr) return NULL;
retval = g_ptr_array_new ();
g_ptr_array_set_size (retval, array.number);
for (i = 0; i < array.number; i++)
retval->pdata [i] = g_memdup (ptr+i, sizeof (glibtop_mountentry));
g_free (ptr);
return retval;
}

View File

@@ -29,7 +29,7 @@
#define DEFAULT_PORT 42800
#endif
static glibtop _glibtop_global_server = { 0 };
static glibtop _glibtop_global_server = { .flags = 0 };
glibtop *glibtop_global_server = &_glibtop_global_server;
static void

View File

@@ -67,7 +67,7 @@ print '';
print '/* Library functions. */';
print '';
$convert{'long'} = 'gint64';
$convert{'long'} = 'int64_t';
$convert{'ulong'} = 'guint64';
$convert{'pid_t'} = 'pid_t';
$convert{'int'} = 'int';

View File

@@ -31,24 +31,37 @@
static void
do_read (int s, void *ptr, size_t total_size)
{
ssize_t nread;
int nread;
size_t already_read = 0, remaining = total_size;
char *tmp_ptr;
if(!total_size) return;
while (already_read < total_size) {
nread = recv (s, ptr, remaining, 0);
while (total_size && (nread = recv (s, ptr, total_size, 0)) > 0) {
total_size -= nread;
ptr = (char*)ptr + nread;
if (nread == 0) {
close (s);
continue;
}
if (nread <= 0) {
glibtop_error_io ("recv");
return;
}
already_read += nread;
remaining -= nread;
/* (char *) ptr += nread; */
tmp_ptr = ptr;
tmp_ptr += nread;
ptr = tmp_ptr;
}
if(nread == 0)
close (s);
else if (nread < 0)
glibtop_error_io ("recv");
}
void
glibtop_read_l (glibtop *server, size_t size, void *buf)
{
int ret = 0;
glibtop_init_r (&server, 0, 0);
#ifdef DEBUG
@@ -58,11 +71,9 @@ glibtop_read_l (glibtop *server, size_t size, void *buf)
if (server->socket) {
do_read (server->socket, buf, size);
} else {
if(read (server->input [0], buf, size) < 0)
glibtop_error_io_r (
server,
ngettext ("read %d byte",
"read %d bytes", size),
size);
ret = read (server->input [0], buf, size);
}
if (ret < 0)
glibtop_error_io_r (server, ngettext ("read %d byte", "read %d bytes", size), size);
}

View File

@@ -42,9 +42,9 @@ glibtop_read_data_l (glibtop *server)
#endif
if (server->socket) {
ret = recv (server->socket, &size, sizeof (size_t), 0);
ret = recv (server->socket, (void *)&size, sizeof (size_t), 0);
} else {
ret = read (server->input [0], &size, sizeof (size_t));
ret = read (server->input [0], (void *)&size, sizeof (size_t));
}
if (ret < 0)

47
libgtop-mirror.sh Executable file
View File

@@ -0,0 +1,47 @@
#!/bin/sh
AUTODIR=/home/norwegen/auto
CVSROOT=/pub/master/home-of-linux
CVSHOST=cvs:
MODULE=libgtop
rm -rf $AUTODIR || exit 1
mkdir $AUTODIR || exit 1
cd $AUTODIR || exit 1
echo "Making cpio archive out of $CVSROOT/$MODULE ..."
find $CVSROOT/$MODULE | cpio -o --format=crc | gzip -9f > $MODULE-current-cvs.cpio.gz || exit 1
echo "Checking out $MODULE"
cvs -d $CVSHOST$CVSROOT co $MODULE || exit 1
echo "Making cpio archive out of checked out sources ..."
find $MODULE | cpio -o --format=crc | gzip -9f > $MODULE-current.cpio.gz || exit 1
for file in README LIESMICH NEWS ChangeLog ; do
if [ -s $MODULE/$file ] ; then
cp $MODULE/$file . || exit 1
fi
done
tar cvf - $MODULE | gzip -9f > $MODULE-current.tar.gz || exit 1
find $MODULE/doc -maxdepth 1 -type f -exec cp {} . \;
# echo "Making documentation ..."
# jade -D /usr/lib/sgml/jade_dsl -d libgtop.dsl -t sgml -V %no-make-index% libgtop.sgml > /dev/null || exit 1
# echo "Making TeX documentation ..."
# jade -D /usr/lib/sgml/jade_dsl -D /usr/lib/sgml/stylesheets -d docbook.dsl -t tex libgtop.sgml || exit 1
# jadetex libgtop.tex || exit 1
# jadetex libgtop.tex || exit 1
# dvips libgtop || exit 1
echo "Cleaning up ..."
rm -rf $MODULE
echo "Done."

View File

@@ -10,6 +10,54 @@ dnl define 'HAVE_GLIBTOP_MACHINE_H'.
dnl * 'libgtop_need_server' - is the server really needed? Defines 'NEED_LIBGTOP'
dnl if true; defines conditional 'NEED_LIBGTOP'.
AC_DEFUN([LIBGTOP_HACKER_TESTS],[
AC_REQUIRE([AC_CANONICAL_HOST])
case "$host_os" in
linux*)
AC_ARG_WITH(linux-table,
[ --with-linux-table Use the table () function from Martin Baulig],[
linux_table="$withval"],[linux_table=auto])
if test $linux_table = yes ; then
AC_CHECK_HEADER(linux/table.h, linux_table=yes, linux_table=no)
elif test $linux_table = auto ; then
AC_MSG_CHECKING(for table function in Linux Kernel)
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <linux/unistd.h>
#include <linux/table.h>
#include <syscall.h>
static inline _syscall3 (int, table, int, type, union table *, tbl, const void *, param);
int
main (void)
{
union table tbl;
int ret;
ret = table (TABLE_VERSION, NULL, NULL);
if (ret == -1)
exit (-errno);
exit (ret < 1 ? ret : 0);
}
], linux_table=yes, linux_table=no, linux_table=no)
AC_MSG_RESULT($linux_table)
fi
if test $linux_table = yes ; then
AC_DEFINE(HAVE_LINUX_TABLE)
fi
AM_CONDITIONAL(LINUX_TABLE, test $linux_table = yes)
;;
esac
])
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
AC_REQUIRE([AC_CANONICAL_HOST])
@@ -63,9 +111,14 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
case "$host_os" in
linux*)
libgtop_sysdeps_dir=linux
libgtop_use_machine_h=no
libgtop_have_sysinfo=yes
if test x$linux_table = xyes ; then
libgtop_sysdeps_dir=kernel
libgtop_use_machine_h=no
else
libgtop_sysdeps_dir=linux
libgtop_use_machine_h=no
libgtop_have_sysinfo=yes
fi
libgtop_need_server=no
;;
freebsd*|netbsd*|openbsd*|bsdi*)

View File

@@ -1,8 +0,0 @@
#ifndef LIBGTOPCONFIG_H
#define LIBGTOPCONFIG_H
#define LIBGTOP_MAJOR_VERSION @LIBGTOP_MAJOR_VERSION@
#define LIBGTOP_MINOR_VERSION @LIBGTOP_MINOR_VERSION@
#define LIBGTOP_MICRO_VERSION @LIBGTOP_MICRO_VERSION@
#endif /* LIBGTOPCONFIG_H */

View File

@@ -1,139 +1,4 @@
2004-11-23 Martin Willemoes Hansen <mwh@sysrq.dk>
* da.po: Updated Danish translation.
2004-09-26 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2004-09-24 Benoît Dejean <tazforever@dlfp.org>
* POTFILES.in: Updated.
2004-09-20 Alessio Frusciante <algol@firenze.linux.it>
* it.po: Updated Italian translation.
2004-09-14 Gora Mohanty <gmohanty@cvs.gnome.org>
* or.po: Updated Oriya translation.
2004-09-12 Laszlo Dvornik <dvornik@gnome.hu>
* hu.po: Updated Hungarian translation by Gabor Kelemen.
2004-09-12 Dafydd Harries <daf@muse.19inch.net>
* cy.po: Updated Welsh translation.
2004-09-10 Christophe Merlet <redfox@redfoxcenter.org>
* fr.po: Updated French translation from
Benoit Dejean <TazForEver@dlfp.org>.
2004-09-07 Akagic Amila <bono@linux.org.ba>
* bs.po: Updated Bosnian translation.
2004-09-06 Mugurel Tudor <mugurelu@go.ro>
* ro.po: Updated Romanian translation
by Misu Moldovan <dumol@go.ro>
2004-09-06 Kostas Papadimas <pkst@gnome.org>
* el.po: Updated Greek translation.
2004-09-05 Raphael Higino <raphaelh@cvs.gnome.org>
* pt_BR.po: Updated Brazilian Portuguese translation.
2004-09-03 Baris Cicek <baris@teamforce.name.tr>
* tr.po: Updated Turkish Translation
2004-09-02 Hendrik Richter <hendrik@gnome-de.org>
* de.po: Updated German translation
2004-08-30 Nikos Charonitakis <charosn@her.forthnet.gr>
* el.po: Updated Greek translation.
2004-08-28 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2004-08-28 Akagic Amila <bono@linux.org.ba>
* bs.po: Added Bosnian translation.
2004-08-26 Iñaki Larrañaga <dooteo@euskalgnu.org>
* eu.po: Updated Basque translation.
2004-08-23 Maxim Dziumanenko <mvd@mylinux.com.ua>
* uk.po: Updated Ukrainian translation.
2004-08-23 Martin Willemoes Hansen <mwh@sysrq.dk>
* da.po: Updated Danish translation.
2004-08-21 Jordi Mallach <jordi@sindominio.net>
* ca.po: Updated Catalan translation.
2004-08-21 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Add this.
2004-08-20 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian translation.
2004-08-18 Pauli Virtanen <pauli.virtanen@hut.fi>
* fi.po: Updated Finnish translation.
2004-08-18 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian translation.
2004-08-15 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Fixed typo in Portuguese translation.
2004-08-13 Tommi Vainikainen <thv@iki.fi>
* fi.po: Unified some fields in po headers for Finnish team.
2004-08-11 Dmitry G. Mastrukov <dmitry@taurussoft.org>
* ru.po: Updated Russian translation
from Russian team <gnome-cyr@gnome.org>.
2004-08-10 Artur Flinta <aflinta@cvs.gnome.org>
* pl.po: Updated Polish translation by GNOME PL Team.
2004-08-08 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2004-08-07 Marcel Telka <marcel@telka.sk>
* sk.po: Updated Slovak translation.
2004-08-07 Danilo Šegan <dsegan@gmx.net>
* sr.po, sr@Latn.po: Updated Serbian translation.
2004-08-04 Christian Rose <menthos@menthos.com>
* sv.po: Updated Swedish translation.
2004-08-03 Benoît Dejean <tazforever@dlfp.org>
2004-07-13 Benoît Dejean <tazforever@dlfp.org>
* am.po:
* ar.po:
@@ -168,7 +33,6 @@
* ko.po:
* lt.po:
* lv.po:
* mi.po:
* mk.po:
* ml.po:
* mn.po:
@@ -195,144 +59,10 @@
* zh_CN.po:
* zh_TW.po: Updated.
2004-08-03 Changwoo Ryu <cwryu@debian.org>
* ko.po: Updated Korean translation.
2004-08-01 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian translation.
2004-07-31 Laszlo Dvornik <dvornik@gnome.hu>
* hu.po: Updated Hungarian translation by Gabor Kelemen.
2004-07-31 Laszlo Dvornik <dvornik@gnome.hu>
* hu.po: Updated Hungarian translation by Gabor Kelemen.
2004-07-31 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanih translation.
2004-07-28 David Lodge <dave@cirt.net>
* en_GB.po: Updated British translation.
2004-07-26 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
2004-07-21 Metin Amiroff <metin@karegen.com>
* az.po: Translation updated by Mətin Əmirov.
2004-07-21 Takeshi AIHANA <aihana@gnome.gr.jp>
* ja.po: Updated Japanese translation.
2004-07-21 Guntupalli Karunakar <karunakar@freedomink.org>
* hi.po: Updated Hindi translation.
2004-07-21 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Jeroen van der Vegt.
2004-07-20 Benoît Dejean <tazforever@dlfp.org>
* am.po:
* ar.po:
* az.po:
* be.po:
* bg.po:
* bn.po:
* ca.po:
* cs.po:
* cy.po:
* da.po:
* de.po:
* el.po:
* en_CA.po:
* en_GB.po:
* es.po:
* et.po:
* eu.po:
* fa.po:
* fi.po:
* fr.po:
* ga.po:
* gl.po:
* gu.po:
* he.po:
* hi.po:
* hr.po:
* hu.po:
* id.po:
* it.po:
* ja.po:
* ko.po:
* lt.po:
* lv.po:
* mi.po:
* mk.po:
* ml.po:
* mn.po:
* ms.po:
* nl.po:
* nn.po:
* no.po:
* pa.po:
* pl.po:
* pt.po:
* pt_BR.po:
* ro.po:
* ru.po:
* sk.po:
* sl.po:
* sq.po:
* sr.po:
* sr@Latn.po:
* sv.po:
* ta.po:
* tr.po:
* uk.po:
* vi.po:
* zh_CN.po:
* zh_TW.po: Updated.
2004-07-19 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian translation.
2004-07-19 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2004-07-18 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2004-07-18 Benoît Dejean <tazforever@dlfp.org>
* POTFILES.in: Updated. Closes #147822.
2004-07-08 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Rostislav Raykov <zbrox@i-space.org>
2004-06-28 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Translation updated.
2004-06-26 John C Barstow <jbowtie@amathaine.com>
* mi.po: Translation added.
2004-05-14 Baris Cicek <baris@teamforce.name.tr>
* tr.po: Updated Turkish Translation
2004-04-16 Iñaki Larrañaga <dooteo@euskalgnu.org>
* eu.po: Added Basque translation.
@@ -360,7 +90,7 @@
2004-03-22 Guntupalli Karunakar <karunakar@freedomink.org>
* pa.po: Punjabi translation by
* pa.po: Punjabi translation by
Amanpreet Singh Alam <amanlinux@netscape.net>.
2004-03-21 Andras Timar <timar@gnome.hu>
@@ -506,7 +236,7 @@
2004-01-02 Sanlig Badral <Badral@openmn.org>
* mn.po: Updated Mongolian translation.
2003-12-14 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
@@ -566,7 +296,7 @@
2003-10-19 Carlos Perelló Marín <carlos@gnome.org>
* POTFILES.ignore: Removed, we use now POTFILES.skip
2003-10-01 Gustavo Maciel Dias Vieira <gdvieira@zaz.com.br>
* pt_BR.po: Applied revision by Augusta Marques da Silva
@@ -667,19 +397,19 @@
2003-06-04 Paul Duffy <dubhthach@frink.nuigalway.ie>
* ga.po: Updated Irish Translation.
2003-05-25 Abel Cheung <maddog@linux.org.hk>
* he.po: Mark wrong entry as fuzzy (msgfmt check failed).
2003-05-16 Danilo ©egan <dsegan@gmx.net>
* sr.po, sr@Latn.po: Updated Serbian translation by Serbian
* sr.po, sr@Latn.po: Updated Serbian translation by Serbian
team (Prevod.org).
2003-05-10 Danilo Segan <dsegan@gmx.net>
* sr.po, sr@Latn.po: Added Serbian translation by Serbian team
* sr.po, sr@Latn.po: Added Serbian translation by Serbian team
(Prevod.org).
2003-04-20 Abel Cheung <maddog@linux.org.hk>
@@ -759,7 +489,7 @@
2003-01-16 Daniel Yacob <locales@geez.org>
* am.po: Added Amharic translation.
2003-01-16 Pablo Saratxaga <pablo@mandrakesoft.com>
* vi.po: Updated Vietnamese file
@@ -903,7 +633,7 @@
2002-04-23 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
2002-04-19 Ole Laursen <olau@hardworking.dk>
* da.po: Updated Danish translation.
@@ -927,7 +657,7 @@
2002-03-25 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
* pt.po: Updated Portuguese translation.
2002-03-23 Hasbullah Bin Pit <sebol@ikhlas.com>
@@ -940,7 +670,7 @@
2002-03-06 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
2002-03-06 Germ??n Poo-Caama?±o <gpoo@ubiobio.cl>
* es.po: Fixed spanish translation encoding.
@@ -961,7 +691,7 @@
2002-02-12 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian (bokm?¥l) translation.
2002-02-09 Abel Cheung <maddog@linux.org.hk>
* zh_TW.po: Updated traditional Chinese translation.
@@ -1004,7 +734,7 @@
2001-07-16 Kjartan Maraas <kmaraas@gnome.org>
* nn.po: Added Norwegian (nynorsk) translation.
2001-03-25 Fatih Demir <kabalak@gtranslator.org>
* tr.po: %100'ification.
@@ -1094,11 +824,11 @@
2000-09-19 Christian Meyer <linux@chrisime.de>
* de.po: Minor fix.
2000-09-19 Christian Meyer <linux@chrisime.de>
* de.po: Updated German translation.
2000-09-10 Christian Meyer <linux@chrisime.de>
* de.po: Updated German translation.
@@ -1108,7 +838,7 @@
2000-08-16 Kjartan Maraas <kmaraas@gnome.org>
* no.po: Updated Norwegian translation.
2000-06-25 Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>
* ja.po: Updated Japanese translation.
@@ -1132,7 +862,7 @@
2000-05-17 Kjartan Maraas <kmaraas@online.no>
* no.po: Updated translation.
2000-05-16 Kenneth Christiansen <kenneth@gnome.org>
* POTFILES.in: New strings added
@@ -1187,7 +917,7 @@
1999-07-11 Kjartan Maraas <kmaraas@online.no>
* no.po: Updated translation.
1999-07-11 Tomas Ogren <stric@ing.umu.se>
* sv.po: New file
@@ -1195,7 +925,7 @@
1999-01-27 Kjartan Maraas <kmaraas@fib.hl.no>
* no.po: Updated translation
1998-12-22 Yukihiro Nakai <Nakai@TokyoNet.AD.JP>
* ja.po: New file - added Japanese translation
@@ -1207,7 +937,7 @@
1998-10-11 Kjartan Maraas <kmaraas@fib.hl.no>
* no.po: New file - added norwegian translation.
1998-10-07 Martin Baulig <martin@home-of-linux.org>
* de.po: New file - added german translation.

View File

@@ -54,9 +54,11 @@ src/inodedb/file_by_inode2.c
src/inodedb/mkinodedb2.c
sysdeps/common/error.c
sysdeps/common/fsusage.c
sysdeps/common/fsusage.h
sysdeps/common/gnuslib.c
sysdeps/common/inodedb.c
sysdeps/common/mountlist.c
sysdeps/common/mountlist.h
sysdeps/common/sysdeps_suid.c
sysdeps/linux/close.c
sysdeps/linux/cpu.c

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtop VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-03 14:09+0200\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2003-01-16 08:39+EDT\n"
"Last-Translator: Ge'ez Frontier Foundation <locales@geez.org>\n"
"Language-Team: Amharic <locales@geez.org>\n"
@@ -97,7 +97,7 @@ msgstr "ሲፒዩ %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr ""
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -237,7 +237,7 @@ msgstr ""
msgid "Bit field indicating which CPU is currently running"
msgstr ""
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr ""
@@ -249,23 +249,19 @@ msgstr ""
msgid "Available blocks"
msgstr ""
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr ""
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr ""
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr ""
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr ""
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr ""
@@ -403,7 +399,7 @@ msgstr ""
msgid "Number of system message headers"
msgstr ""
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr ""
@@ -411,69 +407,55 @@ msgstr ""
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr ""
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
#, fuzzy
msgid "IPv4 Address"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "አድራሻ"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr ""
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr ""
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr ""
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr ""
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr ""
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr ""
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr ""
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr ""
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr ""
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr ""
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
#, fuzzy
msgid "IPv6 Address"
msgstr "አድራሻ"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr ""
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr ""
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr ""

238
po/ar.po
View File

@@ -1,24 +1,26 @@
# translation of libgtop.po to Arabic
# translation of libgtop.libgtop-GNOME-2-0-port.ar.po to Arabic
# translation of libgtop.po to
# translation of libgtop.po to
# translation of libgtop.po to
# translation of libgtop.po to
# translation of libgtop.po to Arabic
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
# Arafat Medini <lumina@silverpen.de>, 2002,2003.
# Isam Bayazidi <bayazidi@arabeyes.org>, 2002.
# Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>, 2004.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# Arafat Medini <lumina@silverpen.de>, 2002,2003
# Isam Bayazidi <bayazidi@arabeyes.org>, 2002
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Project-Id-Version: libgtop.libgtop-GNOME-2-0-port.ar\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-02 12:39+0200\n"
"PO-Revision-Date: 2004-09-04 17:52+0300\n"
"Last-Translator: Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>\n"
"Language-Team: Arabic <support@arabeyes.org>\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2003-07-21 17:50+0200\n"
"Last-Translator: Arafat Medini <lumina@silverpen.de>\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.3\n"
"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : n>=3 && n<=10 ? 2 : 3\n\n"
"X-Generator: KBabel 1.0\n"
#: examples/smp.c:76
#, c-format
@@ -101,36 +103,30 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "تدوير:"
#: lib/read.c:65
#, c-format
#: lib/read.c:78
#, fuzzy, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "قراءة بايت واحدة"
msgstr[1] "قراءة بايتين"
msgstr[2] "قراءة %d بايتات"
msgstr[3] "قراءة %d بايت"
msgstr[0] "اقرء %d بايتس"
msgstr[1] "اقرء %d بايتس"
#: lib/read_data.c:51
msgid "read data size"
msgstr "قراءت حجم البيانات"
#: lib/read_data.c:68
#, c-format
#, fuzzy, c-format
msgid "read data %d byte"
msgid_plural "read data %d bytes"
msgstr[0] "البيانات المقروءة بايت واحدة"
msgstr[1] "البيانات المقروءة بايتان"
msgstr[2] "البيانات المقروءة %d بايتات"
msgstr[3] "البيانات المقروءة %d بايت"
msgstr[0] "قراءت بيانات %d بايتس"
msgstr[1] "قراءت بيانات %d بايتس"
#: lib/write.c:51
#, c-format
#, fuzzy, c-format
msgid "write %d byte"
msgid_plural "write %d bytes"
msgstr[0] "كتابة بايت واحدة"
msgstr[1] "كتابة بايتين"
msgstr[2] "كتابة %d بايتات"
msgstr[3] "كتابة %d بايت"
msgstr[0] "اكتب %d بايتس "
msgstr[1] "اكتب %d بايتس "
#: src/daemon/gnuserv.c:456
msgid "Enable debugging"
@@ -219,7 +215,7 @@ msgstr "وقت SMP CPU في العملية الفارغة"
#: sysdeps/names/cpu.c:55
msgid "SMP CPU Flags"
msgstr "أعلام معالج SMP"
msgstr ""
#: sysdeps/names/cpu.c:60 sysdeps/names/cpu.c:66
msgid "Number of clock ticks since system boot"
@@ -247,9 +243,9 @@ msgstr "تردد اﻻشارات (الافتراض 100)"
#: sysdeps/names/cpu.c:71
msgid "Bit field indicating which CPU is currently running"
msgstr "حقل بتّات يبيّن أي معالجٍ يعمل حاليّاً"
msgstr ""
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "جميع القوالب"
@@ -261,23 +257,19 @@ msgstr "القوالب المطلقوة"
msgid "Available blocks"
msgstr "القوالب الجاهزة"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "ملفات العقد الكلية"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "ملفات العقد المطلوقة"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "حجم الكتلة"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "القوالب المطلوقة المتوفرة للمستعمل العام"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "القوالب المطلوقة المتوفرة للمستخدمين المحليين"
@@ -299,7 +291,8 @@ msgstr "الـ PID الأخير"
#: sysdeps/names/loadavg.c:48
msgid "Number of jobs running simultaneously averaged over 1, 5 and 15 minutes"
msgstr "عدد الأعمال الشاغلة متزامنة موسطة على دقيقة واحدة أو 5 دقائق أو 15 دقيقة."
msgstr ""
"عدد الأعمال الشاغلة متزامنة موسطة على دقيقة واحدة أو 5 دقائق أو 15 دقيقة."
#: sysdeps/names/loadavg.c:49
msgid "Number of tasks currently running"
@@ -415,7 +408,7 @@ msgstr "حجم قطعة الرسالة"
msgid "Number of system message headers"
msgstr "عدد ترويسات رسائل النظام"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "شارات الواجهة"
@@ -423,67 +416,55 @@ msgstr "شارات الواجهة"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "شبكة IPv4 فرعيّة"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Subnet"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "عنوان IPv4"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "العنوان"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "الرزم الداخلة"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "الرزم الخارجة"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "الرزم الكلية"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "البايتات الداخلة"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "البايتات الخارجة"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "البايتات الكلية"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "الأخطاء الداخلة"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "الأخطاء الخارجة"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "الأخطاء الكلية"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "تصادمات"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "عنوان IPv6"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "سابقة IPv6"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "مجال IPv6"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "وحدة النقل القصوى"
@@ -679,7 +660,8 @@ msgstr ""
"صفحات حملت بطلب، او التي وقع اخراجها عند التبادل."
#: sysdeps/names/procmem.c:63
msgid "Current limit in bytes on the rss of the process (usually 2,147,483,647)."
msgid ""
"Current limit in bytes on the rss of the process (usually 2,147,483,647)."
msgstr "الحد الحالي بالبايتات لـ rss العملية (عادة 2,147,483,647)."
#: sysdeps/names/procsegment.c:43
@@ -795,24 +777,26 @@ msgid "GID"
msgstr "هوية المجموعة (GID)"
#: sysdeps/names/procstate.c:44
#, fuzzy
msgid "RGid"
msgstr "الهويّة الحقيقيّة للمجموعة"
msgstr "هوية المجموعة"
#: sysdeps/names/procstate.c:44
#, fuzzy
msgid "RUid"
msgstr "الهويّة الحقيقيّة للمستخدم"
msgstr "هوية المستعمل"
#: sysdeps/names/procstate.c:44
msgid "HasCPU"
msgstr "له المعالج"
msgstr ""
#: sysdeps/names/procstate.c:44
msgid "Proc"
msgstr "المعالج"
msgstr ""
#: sysdeps/names/procstate.c:44
msgid "LProc"
msgstr "المعالج الأخير"
msgstr ""
#: sysdeps/names/procstate.c:49
msgid "Basename of executable file in call to exec()"
@@ -831,24 +815,27 @@ msgid "GID of process"
msgstr "GID العملية"
#: sysdeps/names/procstate.c:53
#, fuzzy
msgid "Real UID of process"
msgstr "هويّة المستخدم الحقيقيّة للعمليّة"
msgstr "UID العملية"
#: sysdeps/names/procstate.c:54
#, fuzzy
msgid "Real GID of process"
msgstr "هويّة المجموعة الحقيقيّة للعمليّة"
msgstr "GID العملية"
#: sysdeps/names/procstate.c:55
msgid "Has CPU"
msgstr "له المعالج"
msgstr ""
#: sysdeps/names/procstate.c:56
#, fuzzy
msgid "Processor"
msgstr "المعالج"
msgstr "هوية العملية"
#: sysdeps/names/procstate.c:57
msgid "Last Processor"
msgstr "المعالج الأخير"
msgstr ""
#: sysdeps/names/proctime.c:45
msgid "Start_Time"
@@ -926,7 +913,8 @@ msgstr "الوقت (بالـ jiffies) لالـ timeout التالي للعملي
msgid ""
"The time (in jiffies) before the next SIGALRM is sent to the process due to "
"an interval timer."
msgstr "الوقت (بالـ jiffies) قبل بعث الـ SIGALRM التالي للعملية بسبب مؤقت فترات."
msgstr ""
"الوقت (بالـ jiffies) قبل بعث الـ SIGALRM التالي للعملية بسبب مؤقت فترات."
#: sysdeps/names/proctime.c:61
msgid "Tick frequency"
@@ -957,20 +945,24 @@ msgid "EGid"
msgstr "EGid"
#: sysdeps/names/procuid.c:48
#, fuzzy
msgid "SUid"
msgstr "هويّة المستخدم الموضوعة"
msgstr "هوية المستعمل"
#: sysdeps/names/procuid.c:49
#, fuzzy
msgid "SGid"
msgstr "هويّة المجموعة الموضوعة"
msgstr "هوية المجموعة"
#: sysdeps/names/procuid.c:49
#, fuzzy
msgid "FSUid"
msgstr "هوية المستخدم لنظام الملفّات"
msgstr "هوية المستعمل"
#: sysdeps/names/procuid.c:49
#, fuzzy
msgid "FSGid"
msgstr "هوية المجموعة لنظام الملفّات"
msgstr "هوية المجموعة"
#: sysdeps/names/procuid.c:49
msgid "Pid"
@@ -1001,12 +993,14 @@ msgid "Priority"
msgstr "الأولوية"
#: sysdeps/names/procuid.c:51
#, fuzzy
msgid "NGroups"
msgstr "عدد المجموعات"
msgstr "هزية المجموعة"
#: sysdeps/names/procuid.c:51
#, fuzzy
msgid "Groups"
msgstr "المجموعات"
msgstr "هزية المجموعة"
#: sysdeps/names/procuid.c:56
msgid "User ID"
@@ -1025,20 +1019,24 @@ msgid "Effective Group ID"
msgstr "هوية المجموعة الفعلية"
#: sysdeps/names/procuid.c:60
#, fuzzy
msgid "Set User ID"
msgstr "هويّة المستخدم الموضوعة"
msgstr "هوية المستخدم"
#: sysdeps/names/procuid.c:61
#, fuzzy
msgid "Set Group ID"
msgstr "هويّة المجموعة الموضوعة"
msgstr "هزية المجموعة"
#: sysdeps/names/procuid.c:62
#, fuzzy
msgid "Filesystem User ID"
msgstr "هويّة المستخدم لنظام الملفّات"
msgstr "استعمال نظام الملفات"
#: sysdeps/names/procuid.c:63
#, fuzzy
msgid "Filesystem Group ID"
msgstr "هويّة المجموعة لنظام الملفّات"
msgstr "هوية المجموعة الفعلية"
#: sysdeps/names/procuid.c:64
msgid "Process ID"
@@ -1073,12 +1071,14 @@ msgid "Standard unix nice level of process"
msgstr "المستوى الطيب باعتيادي يونكس للعملية"
#: sysdeps/names/procuid.c:72
#, fuzzy
msgid "Number of additional process groups"
msgstr "عدد مجموعات العمليّات الإضافيّة"
msgstr "هوية مجموعة الشاشات الطرفية"
#: sysdeps/names/procuid.c:73
#, fuzzy
msgid "Array of additional process groups"
msgstr "مصفوفة مجموعات العمليّات الإضافيّة"
msgstr "هوية مجموعة الشاشات الطرفية"
#: sysdeps/names/sem_limits.c:43 sysdeps/names/sem_limits.c:57
msgid "Number of entries in semaphore map"
@@ -1277,8 +1277,9 @@ msgid "Idletime"
msgstr "وقت العطل"
#: sysdeps/names/uptime.c:41
#, fuzzy
msgid "BootTime"
msgstr "وقت الإقلاع"
msgstr "وقتR"
#: sysdeps/names/uptime.c:46
msgid "Time in seconds since system boot"
@@ -1286,11 +1287,13 @@ msgstr "الوقت بالثواني منذ تشغيل النظام"
#: sysdeps/names/uptime.c:47
msgid "Time in seconds the system spent in the idle task since system boot"
msgstr "الوقت بالثواني الذي قضاه النظام في المهمة الفارغة منذ اعادة تشغيل النظام"
msgstr ""
"الوقت بالثواني الذي قضاه النظام في المهمة الفارغة منذ اعادة تشغيل النظام"
#: sysdeps/names/uptime.c:48
#, fuzzy
msgid "Time of last system boot in seconds since the epoch"
msgstr "وقت آخر إقلاعٍ للنّظام بالثّوني منذ بداية العصر"
msgstr "وقت البداية للعملية بالثوان منذ العصر"
#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28
msgid "Hangup"
@@ -1416,3 +1419,44 @@ msgstr "اشارة معرفة من طرف المستخدم 1"
msgid "User defined signal 2"
msgstr "اشارة معرفة من طرف المستخدم 2"
#~ msgid "Unknown system error"
#~ msgstr "خطأ جهاز مجهول"
#~ msgid "%s: option `%s' is ambiguous\n"
#~ msgstr "%s: الخيار `%s' شاذّ\n"
#~ msgid "%s: option `--%s' doesn't allow an argument\n"
#~ msgstr "%s: الخيار `--%s' لا يسمح بمتغيّر\n"
#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
#~ msgstr "%s: الخيار `%c%s' لا يسمح بمتغيّر\n"
#~ msgid "%s: option `%s' requires an argument\n"
#~ msgstr "%s: الخيار `%s' يحتاج متغيّر\n"
#~ msgid "%s: unrecognized option `--%s'\n"
#~ msgstr "%s: خيار غير معلوم `--%s'\n"
#~ msgid "%s: unrecognized option `%c%s'\n"
#~ msgstr "%s: خيار غير معروف `%c%s'\n"
#~ msgid "%s: illegal option -- %c\n"
#~ msgstr "%s: خيار ممنوع -- %c\n"
#~ msgid "%s: invalid option -- %c\n"
#~ msgstr "%s: خيار باطل -- %c\n"
#~ msgid "%s: option requires an argument -- %c\n"
#~ msgstr "%s: الخيار يستلزم متغيرّا -- %c\n"
#~ msgid "%s: option `-W %s' is ambiguous\n"
#~ msgstr "%s: الخيار `-W %s' ملتبس\n"
#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
#~ msgstr "%s: الخيار `-W %s' لا يسمح بمتغير\n"
#~ msgid "Show this help message"
#~ msgstr "إظهار رسالة المساعدة هذه"
#~ msgid "Display brief usage message"
#~ msgstr "عرض رسالة استعمال قصيرة"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtop.HEAD.az\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-03 14:09+0200\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2004-01-12 19:43+0200\n"
"Last-Translator: Mətin Əmirov <metin@karegen.com>\n"
"Language-Team: Azerbaijani Turkish <translation-team-az@lists.sourceforge."
@@ -99,7 +99,7 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Ox:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -241,7 +241,7 @@ msgstr "Tick sıxlığı (ön qurğulusu 100-dür)"
msgid "Bit field indicating which CPU is currently running"
msgstr "Hazırda hansı CPU-nun işlədiyini göstərən sahə"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Total blok sayısı"
@@ -253,23 +253,19 @@ msgstr "Boş blok sayısı"
msgid "Available blocks"
msgstr "Mövcud blok sayısı"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Ümumi dosye düyümləri"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Boş dosye düyümləri"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Blok böyüklüyü"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "İstifadəçi üçün ayrılan boş blokların sayısı"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "İstifadəçi üçün ayrılmayan boş blokların sayısı"
@@ -407,7 +403,7 @@ msgstr "Xəbər parçası böyüklüyü"
msgid "Number of system message headers"
msgstr "Sistem xəbərləri başlıqları sayısı"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Ara üz bayraqları"
@@ -415,67 +411,55 @@ msgstr "Ara üz bayraqları"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "IPv4 Subnet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Subnet"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "IPv4 Ünvanı"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Ünvan"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Alınan Paketlər"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Atılan Paketlər"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Ümumi Paket sayısı"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Alınan Byte"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Gedən Bayt"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Ümumi Bayt"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Gələn xətalar"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Çıxan Xətalat"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Ümumi Xəta Sayısı"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Kollision"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "IPv6 Ünvanı"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "IPv6 Prefiksi"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "IPv6 Əhatə Sahəsi"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Maksimal Daşıma Vahidi"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtop.HEAD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-03 14:09+0200\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2004-03-13 14:28+0200\n"
"Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
"Language-Team: Belarusian <i18n@mova.org>\n"
@@ -100,7 +100,7 @@ msgstr "ЦПУ %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Спін:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -246,7 +246,7 @@ msgstr "Часьціня цікаў (дапомна 100)"
msgid "Bit field indicating which CPU is currently running"
msgstr "Бітавае поле, якое сьведчыць, які ЦП зараз задзейнічаны"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Блёкаў агулам"
@@ -258,24 +258,19 @@ msgstr "Вольных блёкаў"
msgid "Available blocks"
msgstr "Даступных блёкаў"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Файлавых вузлоў агулам"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Вольных файлавых вузлоў"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
#, fuzzy
msgid "Block size"
msgstr "Заблякавана"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Вольна блёкаў, даступных супэркарыстальніку"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Вольна блёкаў, даступных ня супэркарыстальніку"
@@ -415,7 +410,7 @@ msgstr "Памер сегмэнту паведамленьня"
msgid "Number of system message headers"
msgstr "Колькасьць загалоўкаў сыстемных паведамленьняў"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Сьцягі інтэрфэйсу"
@@ -423,70 +418,55 @@ msgstr "Сьцягі інтэрфэйсу"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
#, fuzzy
msgid "IPv4 Subnet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Падсетка"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
#, fuzzy
msgid "IPv4 Address"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Адрэса"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Пакетаў атрымана"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Пакетаў даслана"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Пакетаў агулам"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Байтаў прынята"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Байтаў даслана"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Байтаў агулам"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Памылкі пад час прыйманьня"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Памылкі пад час адпраўкі"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Памылак агулам"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Кілізыі"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
#, fuzzy
msgid "IPv6 Address"
msgstr "Адрэса"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr ""
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr ""
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Максымальная адзінка перадачы (MTU)"

177
po/bg.po
View File

@@ -1,20 +1,20 @@
# Bulgarian translation for libgtop
# Copyright (C) 2002, 2004 Free Software Foundation, Inc.
# Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>, 2002.
# small updates for completeness, Yanko Kaneti <yaneti@declera.com>, 2002.
# Rostislav Raykov <zbrox@i-space.org>, 2004
#
# Bulgarian translation for libgtop
# Copyright (C) 2002 Free Software Foundation, Inc.
# Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>, 2002.
# small updates for completeness, Yanko Kaneti <yaneti@declera.com>, 2002.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-03 14:09+0200\n"
"PO-Revision-Date: 2004-07-03 17:19+0300\n"
"Last-Translator: Rostislav Raykov <zbrox@i-space.org>\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2002-06-25 10:26GMT\n"
"Last-Translator: Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>\n"
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.9.5\n"
#: examples/smp.c:76
#, c-format
@@ -31,7 +31,7 @@ msgstr "Потребител"
#: examples/smp.c:79 sysdeps/names/procuid.c:51
msgid "Nice"
msgstr ""
msgstr "Nice"
#: examples/smp.c:79
msgid "Sys"
@@ -95,14 +95,14 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
#: examples/smp.c:128
msgid "Spin:"
msgstr ""
msgstr "Spin:"
#: lib/read.c:65
#: lib/read.c:78
#, fuzzy, 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"
@@ -112,23 +112,23 @@ msgstr "размер прочетени данни"
#, fuzzy, c-format
msgid "read data %d byte"
msgid_plural "read data %d bytes"
msgstr[0] "прочетени данни - %d байт"
msgstr[1] "прочетени данни - %d байт"
msgstr[0] "прочетени данни - %d байта"
msgstr[1] "прочетени данни - %d байта"
#: lib/write.c:51
#, c-format
#, fuzzy, c-format
msgid "write %d byte"
msgid_plural "write %d bytes"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "записани %d байта"
msgstr[1] "записани %d байта"
#: src/daemon/gnuserv.c:456
msgid "Enable debugging"
msgstr ""
msgstr "Включен дебъгер"
#: src/daemon/gnuserv.c:456
msgid "DEBUG"
msgstr ""
msgstr "ДЕБЪГЕР"
#: src/daemon/gnuserv.c:458
msgid "Enable verbose output"
@@ -140,7 +140,7 @@ msgstr "ПОДРОБЕН"
#: src/daemon/gnuserv.c:460
msgid "Don't fork into background"
msgstr "Не се поражда процес във фонов режим"
msgstr "Не поражда процес във фонов режим"
#: src/daemon/gnuserv.c:460
msgid "NO-DAEMON"
@@ -245,7 +245,7 @@ msgstr "Честота на тиквания (по подразбиране 100)
msgid "Bit field indicating which CPU is currently running"
msgstr ""
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Общо блока"
@@ -257,24 +257,19 @@ msgstr "Свободни блока"
msgid "Available blocks"
msgstr "Налични блока"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Общо 'nodes' за файлове"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Свободни 'nodes' за файлове"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
#, fuzzy
msgid "Block size"
msgstr "Блокиран"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Свободни блока налични за суперпотребител"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Свободни блока налични за не суперпотребители"
@@ -412,7 +407,7 @@ msgstr "Размер на сегмент за съобщение"
msgid "Number of system message headers"
msgstr "Брой на заглавия на системните съобщения"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Флагове на Интерфейса"
@@ -420,70 +415,55 @@ msgstr "Флагове на Интерфейса"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
#, fuzzy
msgid "IPv4 Subnet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Подмрежа"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
#, fuzzy
msgid "IPv4 Address"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Адрес"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Получени пакети"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Изпратени пакети"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Общо пакети"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Получени байта"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Изпратени байта"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Общо байта"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Грешки при получаване"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Грешки при изпращане"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Общо грешки"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Колизии"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
#, fuzzy
msgid "IPv6 Address"
msgstr "Адрес"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr ""
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr ""
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Максимални единици за предаване (MTU)"
@@ -800,12 +780,14 @@ msgid "GID"
msgstr "GID"
#: sysdeps/names/procstate.c:44
#, fuzzy
msgid "RGid"
msgstr "RGid"
msgstr "Gid"
#: sysdeps/names/procstate.c:44
#, fuzzy
msgid "RUid"
msgstr "RUid"
msgstr "Uid"
#: sysdeps/names/procstate.c:44
msgid "HasCPU"
@@ -813,11 +795,11 @@ msgstr ""
#: sysdeps/names/procstate.c:44
msgid "Proc"
msgstr "Proc"
msgstr ""
#: sysdeps/names/procstate.c:44
msgid "LProc"
msgstr "LProc"
msgstr ""
#: sysdeps/names/procstate.c:49
msgid "Basename of executable file in call to exec()"
@@ -836,20 +818,23 @@ msgid "GID of process"
msgstr "GID на процес"
#: sysdeps/names/procstate.c:53
#, fuzzy
msgid "Real UID of process"
msgstr "Real UID на процес"
msgstr "UID на процес"
#: sysdeps/names/procstate.c:54
#, fuzzy
msgid "Real GID of process"
msgstr "Real GID на процес"
msgstr "GID на процес"
#: sysdeps/names/procstate.c:55
msgid "Has CPU"
msgstr ""
#: sysdeps/names/procstate.c:56
#, fuzzy
msgid "Processor"
msgstr ""
msgstr "ID на Процес"
#: sysdeps/names/procstate.c:57
msgid "Last Processor"
@@ -964,20 +949,24 @@ msgid "EGid"
msgstr "EGid"
#: sysdeps/names/procuid.c:48
#, fuzzy
msgid "SUid"
msgstr "SUid"
msgstr "Uid"
#: sysdeps/names/procuid.c:49
#, fuzzy
msgid "SGid"
msgstr "SGid"
msgstr "Gid"
#: sysdeps/names/procuid.c:49
#, fuzzy
msgid "FSUid"
msgstr "FSUid"
msgstr "Uid"
#: sysdeps/names/procuid.c:49
#, fuzzy
msgid "FSGid"
msgstr "FSGid"
msgstr "Gid"
#: sysdeps/names/procuid.c:49
msgid "Pid"
@@ -1008,12 +997,14 @@ msgid "Priority"
msgstr "Приоритет"
#: sysdeps/names/procuid.c:51
#, fuzzy
msgid "NGroups"
msgstr ""
msgstr "ID на Група"
#: sysdeps/names/procuid.c:51
#, fuzzy
msgid "Groups"
msgstr "Групи"
msgstr "ID на Група"
#: sysdeps/names/procuid.c:56
msgid "User ID"
@@ -1032,20 +1023,24 @@ msgid "Effective Group ID"
msgstr "Ефективно ID на Група"
#: sysdeps/names/procuid.c:60
#, fuzzy
msgid "Set User ID"
msgstr "Указване на потребителско ID"
msgstr "Потребителски ID"
#: sysdeps/names/procuid.c:61
#, fuzzy
msgid "Set Group ID"
msgstr "Указване на ID на група"
msgstr "ID на Група"
#: sysdeps/names/procuid.c:62
#, fuzzy
msgid "Filesystem User ID"
msgstr ""
msgstr "Използвана Файлова Система"
#: sysdeps/names/procuid.c:63
#, fuzzy
msgid "Filesystem Group ID"
msgstr ""
msgstr "Ефективно ID на Група"
#: sysdeps/names/procuid.c:64
msgid "Process ID"
@@ -1080,12 +1075,14 @@ msgid "Standard unix nice level of process"
msgstr "Стандартни nice нива на процес за unix"
#: sysdeps/names/procuid.c:72
#, fuzzy
msgid "Number of additional process groups"
msgstr "Брой допълнителни процесни групи"
msgstr "ID група на терминален процес"
#: sysdeps/names/procuid.c:73
#, fuzzy
msgid "Array of additional process groups"
msgstr ""
msgstr "ID група на терминален процес"
#: sysdeps/names/sem_limits.c:43 sysdeps/names/sem_limits.c:57
msgid "Number of entries in semaphore map"
@@ -1288,8 +1285,9 @@ msgid "Idletime"
msgstr "Време на очакване"
#: sysdeps/names/uptime.c:41
#, fuzzy
msgid "BootTime"
msgstr "BootTime"
msgstr "RTime"
#: sysdeps/names/uptime.c:46
msgid "Time in seconds since system boot"
@@ -1302,12 +1300,13 @@ msgstr ""
"стартиране"
#: sysdeps/names/uptime.c:48
#, fuzzy
msgid "Time of last system boot in seconds since the epoch"
msgstr "Време от предишното пускане на компютъра в секунди броени от 'Епохата'"
msgstr "Начално време време на процеса в секунди от 'Епохата'"
#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28
msgid "Hangup"
msgstr "Разпадане"
msgstr "Разпада"
#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29
msgid "Interrupt"
@@ -1315,7 +1314,7 @@ msgstr "Прекъсване"
#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30
msgid "Quit"
msgstr "Напускане"
msgstr "Напуска"
#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31
msgid "Illegal instruction"
@@ -1327,7 +1326,7 @@ msgstr "Захваща трасировка"
#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33
msgid "Abort"
msgstr "Прекъсване"
msgstr "Прекъсва"
#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34
msgid "EMT error"
@@ -1379,7 +1378,7 @@ msgstr "Стоп на клавиатура"
#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46
msgid "Continue"
msgstr "Продължаване"
msgstr "Продължава"
#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47
msgid "Child status has changed"
@@ -1415,7 +1414,7 @@ msgstr "Профилиран алармен часовник"
#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55
msgid "Window size change"
msgstr "Променяне размера на прозорец"
msgstr "Промяна размера на прозорец"
#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56
msgid "Information request"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-03 14:09+0200\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2003-05-23 11:39+0200\n"
"Last-Translator: Vat <vatzcar@yahoo.co.in>\n"
"Language-Team: Bengali <gnome-translation@bengalinux.org>\n"
@@ -101,7 +101,7 @@ msgstr "সিপিইউ %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3
msgid "Spin:"
msgstr "আবর্তন:"
#: lib/read.c:65
#: lib/read.c:78
#, fuzzy, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -274,7 +274,7 @@ msgstr "টিক কম্পাঙ্ক (ডিফল্ট হল ১০০)
msgid "Bit field indicating which CPU is currently running"
msgstr ""
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "মোট ব্লক"
@@ -289,31 +289,23 @@ msgid "Available blocks"
msgstr "ব্যবহারযোগ্য ব্লক"
# msgstr "ব্যবহারযোগ্য ব্লক"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "মোট ফাইল নোড"
# msgstr "মোট ফাইল নোড"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "ফাঁকা ফাইল নোড"
# msgstr "সংকেত (Signal)"
# msgstr "সিগন্যাল"
# এখানে Signal একটা Technical Term
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
#, fuzzy
msgid "Block size"
msgstr "আটকান আছে"
# msgstr "ফাঁকা ফাইল নোড"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "সুপারইউজারের ব্যবহারযোগ্য মুক্ত ব্লক"
# msgstr "প্রধানব্যবহারকারীর ব্যবহারযোগ্য ফাঁকা ব্লক"
# msgstr "সুপারইউজারের ব্যবহারযোগ্য ফাঁকা ব্লক" <-- এইটার ব্যাপারে নিশ্চিত না
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "সাধারন ব্যবহারকারীদের ব্যবহারযোগ্য মুক্ত ব্লক"
@@ -483,7 +475,7 @@ msgid "Number of system message headers"
msgstr "সিস্টেম বার্তা শিরোনামে সংখ্যা"
# ২ ভাল করে পড়ে দেখেন
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "ইন্টারফেস পতাকা"
@@ -493,75 +485,60 @@ msgstr "ইন্টারফেস পতাকা"
msgid "MTU"
msgstr "এমটিইউ"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
#, fuzzy
msgid "IPv4 Subnet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "সাবনেট"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
#, fuzzy
msgid "IPv4 Address"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "ঠিকানা"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "আগত প্যাকেট"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "বহিরাগত প্যাকেট"
# msgstr "প্যাকেট গেছে"
# msgstr "প্রেরিত প্যাকেট"
# ২ "বহিরাগত" মানে "বাইরে থেকে আগত" - মনে হয় আপনি এটা বোঝাতে চাচ্ছেন না
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "মোট প্যাকেট সংখ্যা"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "আগত বাইট"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "বহিরাগত বাইট"
# msgstr "বাইট গেছে"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "মোট বাইট"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "আগত ভুল"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "বহিরাগত ভুল"
# আগের মত
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "মোট ভুল"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "সংঘর্ষ"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
#, fuzzy
msgid "IPv6 Address"
msgstr "ঠিকানা"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr ""
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr ""
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "সর্বাধিক স্থানান্তরিত একক"

1419
po/bs.po

File diff suppressed because it is too large Load Diff

107
po/ca.po
View File

@@ -1,14 +1,14 @@
# Catalan translation of libgtop.
# Copyright © 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
# Copyright © 2000, 2001, 2002 Free Software Foundation, Inc.
# Softcatalà <gnome@softcatala.net>, 2000, 2001, 2002.
# Jordi Mallach <jordi@sindominio.net>, 2002, 2003, 2004.
# Jordi Mallach <jordi@sindominio.net>, 2002, 2003.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop 2.7.0\n"
"Project-Id-Version: libgtop 2.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-21 18:36+0200\n"
"PO-Revision-Date: 2004-08-21 18:41+0200\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2003-11-03 15:17+0100\n"
"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"MIME-Version: 1.0\n"
@@ -97,12 +97,12 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Rotació:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
msgstr[0] "llegeix %d octet"
msgstr[1] "llegeix %d octets"
msgstr[0] "llegeix %d byte"
msgstr[1] "llegeix %d bytes"
#: lib/read_data.c:51
msgid "read data size"
@@ -112,15 +112,15 @@ msgstr "llegeix la mida de les dades"
#, c-format
msgid "read data %d byte"
msgid_plural "read data %d bytes"
msgstr[0] "llegeix %d octet de les dades"
msgstr[1] "llegeix els %d octets de les dades"
msgstr[0] "llegeix %d byte de les dades"
msgstr[1] "llegeix els %d bytes de les dades"
#: lib/write.c:51
#, c-format
msgid "write %d byte"
msgid_plural "write %d bytes"
msgstr[0] "escriu %d octet"
msgstr[1] "escriu els %d octets"
msgstr[0] "escriu %d byte"
msgstr[1] "escriu els %d bytes"
#: src/daemon/gnuserv.c:456
msgid "Enable debugging"
@@ -243,7 +243,7 @@ msgstr "Freqüència de polsos (per defecte és 100)"
msgid "Bit field indicating which CPU is currently running"
msgstr "Camp de bit que indica quina CPU s'està executant actualment"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Nombre total de blocs"
@@ -255,23 +255,19 @@ msgstr "Blocs lliures"
msgid "Available blocks"
msgstr "Blocs disponibles"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Nombre total de nodes d'arxius"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Nodes d'arxiu lliures"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Mida del bloc"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Blocs lliures disponibles per al superusuari"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Blocs lliures disponibles per als no superusuaris"
@@ -384,7 +380,7 @@ msgstr "La mida d'un element de la llista"
#: sysdeps/names/msg_limits.c:41 sysdeps/names/msg_limits.c:52
msgid "Size in kilobytes of message pool"
msgstr "Mida en KB de la bústia de missatges"
msgstr "Mida en kB de la bústia de missatges"
#: sysdeps/names/msg_limits.c:42 sysdeps/names/msg_limits.c:53
msgid "Number of entries in message map"
@@ -410,7 +406,7 @@ msgstr "Mida dels segments de missatge"
msgid "Number of system message headers"
msgstr "Nombre d'encapçalaments de missatges del sistema"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Senyaladors d'interfície"
@@ -418,67 +414,55 @@ msgstr "Senyaladors d'interfície"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "Subxarxa IPv4"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Subxarxa"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "Adreça IPv4"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Adreça"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Els paquets a dins"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Els paquets a fora"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "El total de paquets "
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Octets a dins"
msgstr "Bytes a dins"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Octets a fora"
msgstr "Bytes a fora"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Total d'octets"
msgstr "El total de bytes"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Errors a dins"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Errors a fora"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "El total d'errors"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Col·lisions"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "Adreça IPv6"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "Prefix IPv6"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "Àmbit IPv6"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Unitat màxima de transferència"
@@ -488,19 +472,19 @@ msgstr "Estat del PPP"
#: sysdeps/names/ppp.c:40
msgid "Input bytes"
msgstr "Octets d'entrada"
msgstr "Bytes d'entrada"
#: sysdeps/names/ppp.c:41
msgid "Output bytes"
msgstr "Octets de sortida"
msgstr "Bytes de sortida"
#: sysdeps/names/ppp.c:47
msgid "Number of input bytes"
msgstr "Nombre d'octets d'entrada"
msgstr "Nombre de bytes d'entrada"
#: sysdeps/names/ppp.c:48
msgid "Number of output bytes"
msgstr "Nombre d'octets de sortida"
msgstr "Nombre de bytes de sortida"
#: sysdeps/names/procargs.c:39 sysdeps/names/procmem.c:48
msgid "Size"
@@ -508,7 +492,7 @@ msgstr "Mida"
#: sysdeps/names/procargs.c:44
msgid "Length in bytes of the returned string."
msgstr "Longitud en octets de la cadena retornada"
msgstr "Longitud en bytes de la cadena retornada"
#: sysdeps/names/prockernel.c:43
msgid "K_Flags"
@@ -680,7 +664,8 @@ msgstr ""
#: sysdeps/names/procmem.c:63
msgid ""
"Current limit in bytes on the rss of the process (usually 2,147,483,647)."
msgstr "Límit actual en octets de la rss del procés (normalment 2.147.483.647)."
msgstr ""
"Límit actual en octets de la rss del procés (normalment 2.147.483.647)."
#: sysdeps/names/procsegment.c:43
msgid "Text_RSS"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtop VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-03 14:09+0200\n"
"PO-Revision-Date: 2004-07-19 15:02+0200\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2004-01-27 16:36+0100\n"
"Last-Translator: Miloslav Trmac <mitr@volny.cz>\n"
"Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n"
@@ -98,7 +98,7 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Spin:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -244,7 +244,7 @@ msgstr "Frekvence tiků (implicitně 100)"
msgid "Bit field indicating which CPU is currently running"
msgstr "Pole bitů indikující, které CPU právě běží"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Celkem bloků"
@@ -256,23 +256,19 @@ msgstr "Volných bloků"
msgid "Available blocks"
msgstr "Dostupných bloků"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Celkem uzlů souborů"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Volných uzlů souborů"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Velikost bloku"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Volné bloky dostupné superuživateli"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Volné bloky dostupné obyčejným uživatelům"
@@ -410,7 +406,7 @@ msgstr "Velikost segmentu zprávy"
msgid "Number of system message headers"
msgstr "Počet hlaviček zpráv v systému"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Příznaky rozhraní"
@@ -418,67 +414,55 @@ msgstr "Příznaky rozhraní"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "Podsíť IPv4"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Podsíť"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "Adresa IPv4"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Adresa"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Pakety dovnitř"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Pakety ven"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Pakety celkem"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Bajty dovnitř"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Bajty ven"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Bajty celkem"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Chyby dovnitř"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Chyby ven"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Chyby celkem"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Kolize"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "Adresa IPv6"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "Prefix IPv6"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "Rozsah IPv6"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Maximální jednotka přenosu"

View File

@@ -1,13 +1,13 @@
# libgtop yn Gymraeg.
# This file is distributed under the same license as the libgtop package.
# Dafydd Harries <daf@muse.19inch.net>, 2003 2004.
# Dafydd Harries <daf@muse.19inch.net>, 2003
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-09-12 03:49+0100\n"
"PO-Revision-Date: 2004-09-12 03:51+0100\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2003-08-09 19:46+0100\n"
"Last-Translator: Dafydd Harries <daf@muse.19inch.net>\n"
"Language-Team: Welsh <gnome-cy@www.linux.org>\n"
"MIME-Version: 1.0\n"
@@ -96,7 +96,7 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Troelli:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -239,7 +239,7 @@ msgstr "Amledd tic (100 yw'r rhagoosdiad)"
msgid "Bit field indicating which CPU is currently running"
msgstr "Maes did yn penod i pa CPU sy'n rhedeg yn gyfredol"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Cyfanswm blociau"
@@ -251,23 +251,19 @@ msgstr "Blociau rhydd"
msgid "Available blocks"
msgstr "Blociau ar gael"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Cyfanswm nodau ffeil"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Nodau ffeil rhydd"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Maint bloc"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Blociau rhydd ar gael i'r uwchddefnyddiwr"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Blociau rhydd ar gale i nid-uwchddefnyddwyr"
@@ -407,7 +403,7 @@ msgstr "Maint segment neges"
msgid "Number of system message headers"
msgstr "Nifer o benawdau neges system"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Banneri Rhyngwyneb"
@@ -415,67 +411,55 @@ msgstr "Banneri Rhyngwyneb"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "Isrhwyd IPv4"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Isrhwyd"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "Cyfeiriad IPv4"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Cyfeiriad"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Pecynnau Mewn"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Pecynnau Allan"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Cyfanswm Pecynnau"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Beitiau Mewn"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Beitiau Allan"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Cyfanswm Beitiau"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Gwallau Mewn"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Gwallau Allan"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Cyfanswm Gwallau"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Gwrthdrawiadau"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "Cyfeiriad IPv6"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "Rhagddodiad IPv6"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "Cwmpas IPv6"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Uned Cludo Mwyaf"

105
po/da.po
View File

@@ -1,18 +1,19 @@
# Danish translation of libgtop.
# Copyright (C) 1998, 2002, 03, 04 Free Software Foundation, Inc.
# This file is distributed under the same license as the libgtop package.
# Copyright (C) 1998, 2002, 03 Free Software Foundation, Inc.
# Kenneth Christiansen <kenneth@ripen.dk>, 1998, 1999.
# Keld Simonsen <keld@dkuug.dk>, 2000.
# Ole Laursen <olau@hardworking.dk>, 2002, 03.
# Martin Willemoes Hansen <mwh@sysrq.dk>, 2004.
#
#
# BEMÆRK: oversættelsen er overhovedet ikke blevet rettet igennem.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-11-23 13:36+0100\n"
"PO-Revision-Date: 2004-11-23 13:35+0100\n"
"Last-Translator: Martin Willemoes Hansen <mwh@sysrq.dk>\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2003-11-20 21:23+0100\n"
"Last-Translator: Ole Laursen <olau@hardworking.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -100,7 +101,7 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Spin:"
#: lib/read.c:64
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -125,39 +126,39 @@ msgid_plural "write %d bytes"
msgstr[0] "skriv %d byte"
msgstr[1] "skriv %d byte"
#: src/daemon/gnuserv.c:461
#: src/daemon/gnuserv.c:456
msgid "Enable debugging"
msgstr "Slå fejlfinding til"
#: src/daemon/gnuserv.c:461
#: src/daemon/gnuserv.c:456
msgid "DEBUG"
msgstr "FEJLFINDING"
msgstr "DEBUG"
#: src/daemon/gnuserv.c:463
#: src/daemon/gnuserv.c:458
msgid "Enable verbose output"
msgstr "Slå meddelsom udskrift til"
#: src/daemon/gnuserv.c:463
#: src/daemon/gnuserv.c:458
msgid "VERBOSE"
msgstr "MEDDELSOM"
msgstr "VERBOSE"
#: src/daemon/gnuserv.c:465
#: src/daemon/gnuserv.c:460
msgid "Don't fork into background"
msgstr "Forgren ikke til baggrund"
#: src/daemon/gnuserv.c:465
#: src/daemon/gnuserv.c:460
msgid "NO-DAEMON"
msgstr "INGEN-SERVER"
msgstr "NO-DAEMON"
#: src/daemon/gnuserv.c:467
#: src/daemon/gnuserv.c:462
msgid "Invoked from inetd"
msgstr "Kaldt fra inetd"
#: src/daemon/gnuserv.c:467
#: src/daemon/gnuserv.c:462
msgid "INETD"
msgstr "INETD"
#: src/daemon/gnuserv.c:501
#: src/daemon/gnuserv.c:496
#, c-format
msgid ""
"Error on option %s: %s.\n"
@@ -242,7 +243,7 @@ msgstr "Tikfrekvens (standard er 100)"
msgid "Bit field indicating which CPU is currently running"
msgstr "Bitfelt som angiver hvilken processor der aktuelt kører"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Totalt antal blokke"
@@ -254,23 +255,19 @@ msgstr "Ledige blokke"
msgid "Available blocks"
msgstr "Tilgængelige blokke"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Antal filknuder"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Ledige filknuder"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Blokstørrelse"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Ledige blokke tilgængelig for superbruger"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Ledige blokke tilgængelige til ikke-superbrugere"
@@ -408,7 +405,7 @@ msgstr "Størrelse på meddelelsessegment"
msgid "Number of system message headers"
msgstr "Antal systemmeddelelseshoveder"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Grænseflade-flag"
@@ -416,67 +413,55 @@ msgstr "Grænseflade-flag"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "IPv4-undernet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Undernet"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "IPv4-adresse"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Adresse"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Pakker ind"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Pakker ud"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Pakker total"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Byte ind"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Byte ud"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Byte total"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Fejl ind"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Fejl ud"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Fejl total"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Kollisioner"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "IPv6-adresse"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "IPv6-præfiks"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "IPv6-virkefelt"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Maks. overførselsenhed"
@@ -1315,7 +1300,7 @@ msgstr "Afbryd"
#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34
msgid "EMT error"
msgstr "EMT-fejl"
msgstr "EMT fejl"
#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35
msgid "Floating-point exception"
@@ -1323,7 +1308,7 @@ msgstr "Flydende tals-undtagelse"
#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36
msgid "Kill"
msgstr "Afslut"
msgstr "Dræb"
#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37
msgid "Bus error"

View File

@@ -2,7 +2,6 @@
# Martin Baulig <martin@home-of-linux.org>, 1998-2000.
# Christian Meyer <cm@ggtt.de>, 2000, 2001.
# Christian Neumair <chris@gnome-de.org>, 2002-2004.
# Hendrik Richter <hendrik@gnome-de.org>, 2004
#
# hmm... ein paar englische Strings sollte man lieber in Ruhe lassen...! -cm-
#
@@ -10,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtop 2.5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-09-02 18:47+0000\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2004-01-04 18:32+0100\n"
"Last-Translator: Hendrik Richter <hendrik@gnome-de.org>\n"
"Last-Translator: Christian Neumair <chris@gnome-de.org>\n"
"Language-Team: German <gnome-de@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -100,7 +99,7 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Spin:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -247,7 +246,7 @@ msgstr "Impulsfrequenz (Vorgabe ist 100)"
msgid "Bit field indicating which CPU is currently running"
msgstr "Bitfeld, das anzeigt, welche CPU momentan läuft"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Blöcke insgesamt"
@@ -259,23 +258,19 @@ msgstr "Freie Blöcke"
msgid "Available blocks"
msgstr "Für Benutzer verfügbare Blöcke"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Knoten insgesamt"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Freie Knoten"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Blockgröße"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Freie Blöcke inklusive für den Administrator reservierter Blöcke"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Für Benutzer verfügbare Blöcke"
@@ -413,7 +408,7 @@ msgstr "Größe des Nachrichtensegments"
msgid "Number of system message headers"
msgstr "Anzahl der Systemnachrichtenköpfe"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Schnittstellenoption"
@@ -421,67 +416,55 @@ msgstr "Schnittstellenoption"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "IPv4 Subnetz"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Subnetz"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "IPv4 Adresse"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Adresse"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Pakete rein"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Pakete raus"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Pakete gesamt"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Bytes rein"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Bytes raus"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Bytes gesamt"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Fehler rein"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Fehler raus"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Fehler gesamt"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Kollisionen"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "IPv6 Adresse"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "IPv6 Präfix"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "IPv6 Adressbereich"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Maximale Übertragungseinheit"

270
po/el.po
View File

@@ -1,7 +1,6 @@
# translation of el.po to
# translation of el.po to Greek
# libgtop greek .po file
# Copyright (C) 2000-2001,2003, 2004 Free Software Foundation, Inc.
# Copyright (C) 2000-2001,2003 Free Software Foundation, Inc.
#
# sarantis: ~134 messages, (unknown), initial translation.
# simos: 240 messages, 19Feb2001, added more messages, still 65 left.
@@ -9,25 +8,23 @@
# simos: 310 messages, 07Nov2002, completed.
# kostas: 322 messages,30Oct2003, update for Gnome 2.6
# Nikos: add plurals, minor fixes, 21Feb2004.
# Nikos: small update, 30Aug2004.
# Sarantis Paskalis <paskalis@di.uoa.gr>, 2000.
# Simos Xenitellis <simos@hellug.gr>, 2001.
# Kostas Papadimas <pkst@gnome.org>, 2003, 2004.
# Nikos Charonitakis <charosn@her.forthnet.gr>, 2004.
# Kostas Papadimas <pkst@gnome.org>, 2003.
# Nikos Charonitakis <frolix68@yahoo.gr>, 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: el\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-09-06 12:46+0300\n"
"PO-Revision-Date: 2004-09-06 12:48+0300\n"
"Last-Translator: Kostas Papadimas <pkst@gnome.org>\n"
"Language-Team: <nls@tux.hellug.gr>\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2004-02-21 12:47+0200\n"
"Last-Translator: Nikos Charonitakis <frolix68@yahoo.gr>\n"
"Language-Team: Greek <nls@tux.hellug.gr>\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.3.1\n"
#: examples/smp.c:76
#, c-format
@@ -62,13 +59,13 @@ msgid ""
"CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n"
"\n"
msgstr ""
"CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n"
"ΚΜΕ (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n"
"\n"
#: examples/smp.c:85
#, c-format
msgid "CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"
msgstr "CPU %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"
msgstr "ΚΜΕ %3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"
#: examples/smp.c:102
msgid "Percent:"
@@ -76,7 +73,7 @@ msgstr "Ποσοστό:"
#: examples/smp.c:103
msgid "Total (%)"
msgstr "Συνολικά (%)"
msgstr "Συνολικα (%)"
# sysdeps/names/mem.c:49
#: examples/smp.c:103
@@ -101,19 +98,19 @@ msgid ""
"CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
"\n"
msgstr ""
"CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
"ΚΜΕ (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
"\n"
#: examples/smp.c:122
#, c-format
msgid "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgstr "ΚΜΕ %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
#: examples/smp.c:128
msgid "Spin:"
msgstr "Spin:"
msgstr "Σπινάρισμα:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -152,7 +149,7 @@ msgstr "Ενεργοποίηση περιφραστικής εξόδου"
#: src/daemon/gnuserv.c:458
msgid "VERBOSE"
msgstr "VERBOSE"
msgstr "ΠΕΡΙΦΡΑΣΤΙΚΉ"
#: src/daemon/gnuserv.c:460
msgid "Don't fork into background"
@@ -177,8 +174,8 @@ 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/names/cpu.c:45
#: sysdeps/names/cpu.c:44
@@ -253,7 +250,8 @@ msgstr "Αριθμός χτύπων ρολογιού που το σύστημα
# sysdeps/names/cpu.c:63 sysdeps/names/cpu.c:69
#: sysdeps/names/cpu.c:62 sysdeps/names/cpu.c:68
msgid "Number of clock ticks the system spent in user mode (nice)"
msgstr "Αριθμός χτύπων ρολογιού που το σύστημα κατανάλωσε σε τρόπο χρήστη (ευγενή)"
msgstr ""
"Αριθμός χτύπων ρολογιού που το σύστημα κατανάλωσε σε τρόπο χρήστη (ευγενή)"
# sysdeps/names/cpu.c:64 sysdeps/names/cpu.c:70
#: sysdeps/names/cpu.c:63 sysdeps/names/cpu.c:69
@@ -275,9 +273,9 @@ msgid "Bit field indicating which CPU is currently running"
msgstr "Το πεδίο bit δείχνει ποιά CPU εργάζεται αυτή την στιγμή"
# sysdeps/names/fsusage.c:41 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Σύνολο μπλοκ"
msgstr "Συνολικά μπλοκ"
# sysdeps/names/fsusage.c:42
#: sysdeps/names/fsusage.c:41
@@ -290,27 +288,22 @@ msgid "Available blocks"
msgstr "Διαθέσιμα μπλοκ"
# sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Συνολικοί κόμβοι αρχείων"
# sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Ελεύθεροι κόμβοι αρχείων"
# sysdeps/names/procsignal.c:42
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Μέγεθος μπλοκ"
# sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Ελεύθερα μπλοκ διαθέσιμα στον υπερχρήστη"
# sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Ελεύθερα μπλοκ διαθέσιμα σε μη-υπερχρήστες"
@@ -481,7 +474,7 @@ msgstr "Μέγεθος Τμήματος Μηνύματος (MSS)"
msgid "Number of system message headers"
msgstr "Αριθμός επικεφαλίδων μηνυμάτων συστήματος"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Σημαίες Διασύνδεσης"
@@ -489,67 +482,55 @@ msgstr "Σημαίες Διασύνδεσης"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "IPv4 Subnet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Επίθεμα"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "Διεύθυνση IPv4"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Διεύθυνση"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Πακέτα Εισερχόμενα"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Πακέτα Εξερχόμενα"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Πακέτα Συνολικά"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Byte Εισερχόμενα"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Byte Εξερχόμενα"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Bytes Συνολικά"
msgstr "Byte Συνολικά"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Σφάλματα Εισερχόμενα"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Σφάλματα Εξερχόμενα"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Σφάλματα Συνολικά"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Συγκρούσεις"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "Διεύθυνση IPv6"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "Πρόθεμα IPv6"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "IPv6 Scope"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Μέγιστη Μονάδα Μεταφοράς"
@@ -685,7 +666,8 @@ msgstr "Ο αριθμός ήσσονων λαθών που έχει κάνει
#. CMaj_Flt
#: sysdeps/names/prockernel.c:69
msgid "The number of major faults that the process and its children have made."
msgstr "Ο αριθμός των μείζονων λαθών που έχει κάνει η διεργασία και τα παιδιά της."
msgstr ""
"Ο αριθμός των μείζονων λαθών που έχει κάνει η διεργασία και τα παιδιά της."
# sysdeps/names/prockernel.c:73
#. KStk_ESP
@@ -783,7 +765,8 @@ msgstr ""
# sysdeps/names/procmem.c:64
#: sysdeps/names/procmem.c:63
msgid "Current limit in bytes on the rss of the process (usually 2,147,483,647)."
msgid ""
"Current limit in bytes on the rss of the process (usually 2,147,483,647)."
msgstr "Τρέχον όριο σε bytes στο rss της διεργασίας (συνήθως 2.147.483.547)."
# sysdeps/names/procsegment.c:50
@@ -1555,7 +1538,8 @@ msgstr ""
# sysdeps/names/proctime.c:54
#: sysdeps/names/uptime.c:48
msgid "Time of last system boot in seconds since the epoch"
msgstr "Χρόνος της τελευταίας εκκίνησης συστήματος σε δευτερόλεπτα από την εποχή"
msgstr ""
"Χρόνος της τελευταίας εκκίνησης συστήματος σε δευτερόλεπτα από την εποχή"
#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28
msgid "Hangup"
@@ -1567,7 +1551,7 @@ msgstr "Διακοπή"
#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30
msgid "Quit"
msgstr "Έξοδος"
msgstr "Τερματισμός"
#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31
msgid "Illegal instruction"
@@ -1623,15 +1607,15 @@ msgstr "Επείγουσα συνθήκη σε υποδοχέα"
#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44
msgid "Stop"
msgstr "Διακοπή"
msgstr "Σταμάτημα"
#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45
msgid "Keyboard stop"
msgstr "Διακοπή πληκτρολογίου"
msgstr "Σταμάτημα πληκτρολογίου"
#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46
msgid "Continue"
msgstr "Συνέχεια"
msgstr "Συνέχιση"
#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47
msgid "Child status has changed"
@@ -1683,3 +1667,149 @@ msgstr "Σήμα 1 οριζόμενο από το χρήστη"
msgid "User defined signal 2"
msgstr "Σήμα 2 οριζόμενο από το χρήστη"
# support/error.c:109
#~ msgid "Unknown system error"
#~ msgstr "Άγνωστο σφάλμα συστήματος"
# support/getopt.c:669
#~ msgid "%s: option `%s' is ambiguous\n"
#~ msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
# support/getopt.c:693
#~ msgid "%s: option `--%s' doesn't allow an argument\n"
#~ msgstr "%s: η επιλογή `--%s' δεν επιτρέπει ορίσματα\n"
# support/getopt.c:698
#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
#~ msgstr "%s: η επιλογή `%c%s' δεν επιτρέπει ορίσματα\n"
# support/getopt.c:715 support/getopt.c:888
#~ msgid "%s: option `%s' requires an argument\n"
#~ msgstr "%s: η επιλογή `%s' απαιτεί ένα όρισμα\n"
# support/getopt.c:744
#~ msgid "%s: unrecognized option `--%s'\n"
#~ msgstr "%s: μη αναγνωρίσιμη επιλογή `--%s'\n"
# support/getopt.c:748
#~ msgid "%s: unrecognized option `%c%s'\n"
#~ msgstr "%s: μη αναγνωρίσιμη επιλογή `%c%s'\n"
# support/getopt.c:774
#~ msgid "%s: illegal option -- %c\n"
#~ msgstr "%s: ακατάλληλη επιλογή -- %c\n"
# support/getopt.c:777
#~ msgid "%s: invalid option -- %c\n"
#~ msgstr "%s: μη έγκυρη επιλογή -- %c\n"
# support/getopt.c:807 support/getopt.c:937
#~ msgid "%s: option requires an argument -- %c\n"
#~ msgstr "%s: η επιλογή απαιτεί όρισμα -- %c\n"
# support/getopt.c:854
#~ msgid "%s: option `-W %s' is ambiguous\n"
#~ msgstr "%s: η επιλογή `-W %s' είναι αόριστη\n"
# support/getopt.c:872
#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
#~ msgstr "%s: η επιλογή `-W %s' δεν επιτρέπει ορίσματα\n"
#~ msgid "Show this help message"
#~ msgstr "Εμφάνιση αυτού του μηνύματος βοήθειας"
#~ msgid "Display brief usage message"
#~ msgstr "Εμφάνιση σύντομου μηνύματος βοήθειας"
# sysdeps/names/procsegment.c:52
#~ msgid "Start_Data"
#~ msgstr "Αρχή_Δεδομένων"
# sysdeps/names/procsegment.c:52
#~ msgid "End_Data"
#~ msgstr "Τέλος_Δεδομένων"
# sysdeps/names/procsegment.c:52
#, fuzzy
#~ msgid "Start_Brk"
#~ msgstr "Αρχή_Brk"
# sysdeps/names/procsegment.c:52
#, fuzzy
#~ msgid "Brk"
#~ msgstr "Brk"
# sysdeps/names/procsegment.c:53
#, fuzzy
#~ msgid "Start_MMap"
#~ msgstr "Αρχή_MMap"
# sysdeps/names/procsegment.c:53 sysdeps/names/procsegment.c:72
#~ msgid "Arg_Start"
#~ msgstr "Αρχή_Ορισμάτων"
# sysdeps/names/procsegment.c:54 sysdeps/names/procsegment.c:73
#, fuzzy
#~ msgid "Arg_End"
#~ msgstr "Τέλος_Ορισμάτων"
# sysdeps/names/procsegment.c:54 sysdeps/names/procsegment.c:74
#, fuzzy
#~ msgid "Env_Start"
#~ msgstr "Αρχή_Env"
# sysdeps/names/procsegment.c:54 sysdeps/names/procsegment.c:75
#, fuzzy
#~ msgid "Env_End"
#~ msgstr "Τέλος_Env"
# sysdeps/names/procsegment.c:66
#~ msgid "Address of beginning of data segment"
#~ msgstr "Διεύθυνση αρχής του τμήματος δεδομένων"
# sysdeps/names/procsegment.c:67
#~ msgid "Address of end of data segment"
#~ msgstr "Διεύθυνση τέλους του τμήματος δεδομένων"
# sysdeps/names/procsegment.c:68
#, fuzzy
#~ msgid "Brk_Start"
#~ msgstr "Brk_Start"
# sysdeps/names/procsegment.c:69
#, fuzzy
#~ msgid "Brk_End"
#~ msgstr "Brk_End"
# sysdeps/names/procsegment.c:71
#, fuzzy
#~ msgid "Start of mmap()ed areas"
#~ msgstr "Αρχή περιοχών mmap"
# sysdeps/names/procstate.c:45
#~ msgid "RUID"
#~ msgstr "RUID"
# sysdeps/names/procstate.c:46
#~ msgid "RGID"
#~ msgstr "RGID"
# sysdeps/names/procstate.c:54
#~ msgid "effective UID of process"
#~ msgstr "ουσιαστικό UID διεργασίας"
# sysdeps/names/procstate.c:55
#~ msgid "effective GID of process"
#~ msgstr "ουσιαστικό GID διεργασίας"
# sysdeps/names/procstate.c:58
#~ msgid "has_cpu"
#~ msgstr "έχει_cpu"
# sysdeps/names/procstate.c:59
#~ msgid "processor"
#~ msgstr "επεξεργαστής"
# sysdeps/names/procstate.c:60
#~ msgid "last_processor"
#~ msgstr "τελευταίος_επεξεργαστής"

View File

@@ -4,12 +4,13 @@
# Adam Weinberger <adamw@gnome.org>, 2004.
#
#
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-09-26 11:19-0400\n"
"PO-Revision-Date: 2004-09-26 15:51-0400\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2004-03-30 15:51-0500\n"
"Last-Translator: Adam Weinberger <adamw@gnome.org>\n"
"Language-Team: English/Canada <adamw@FreeBSD.org>\n"
"MIME-Version: 1.0\n"
@@ -98,7 +99,7 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Spin:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -123,39 +124,39 @@ msgid_plural "write %d bytes"
msgstr[0] "write %d byte"
msgstr[1] "write %d bytes"
#: src/daemon/gnuserv.c:461
#: src/daemon/gnuserv.c:456
msgid "Enable debugging"
msgstr "Enable debugging"
#: src/daemon/gnuserv.c:461
#: src/daemon/gnuserv.c:456
msgid "DEBUG"
msgstr "DEBUG"
#: src/daemon/gnuserv.c:463
#: src/daemon/gnuserv.c:458
msgid "Enable verbose output"
msgstr "Enable verbose output"
#: src/daemon/gnuserv.c:463
#: src/daemon/gnuserv.c:458
msgid "VERBOSE"
msgstr "VERBOSE"
#: src/daemon/gnuserv.c:465
#: src/daemon/gnuserv.c:460
msgid "Don't fork into background"
msgstr "Don't fork into background"
#: src/daemon/gnuserv.c:465
#: src/daemon/gnuserv.c:460
msgid "NO-DAEMON"
msgstr "NO-DAEMON"
#: src/daemon/gnuserv.c:467
#: src/daemon/gnuserv.c:462
msgid "Invoked from inetd"
msgstr "Invoked from inetd"
#: src/daemon/gnuserv.c:467
#: src/daemon/gnuserv.c:462
msgid "INETD"
msgstr "INETD"
#: src/daemon/gnuserv.c:501
#: src/daemon/gnuserv.c:496
#, c-format
msgid ""
"Error on option %s: %s.\n"
@@ -240,7 +241,7 @@ msgstr "Tick frequency (default is 100)"
msgid "Bit field indicating which CPU is currently running"
msgstr "Bit field indicating which CPU is currently running"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Total blocks"
@@ -252,23 +253,19 @@ msgstr "Free blocks"
msgid "Available blocks"
msgstr "Available blocks"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Total file nodes"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Free file nodes"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Block size"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Free blocks available to the superuser"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Free blocks available to non-superusers"
@@ -407,7 +404,7 @@ msgstr "Message segment size"
msgid "Number of system message headers"
msgstr "Number of system message headers"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Interface Flags"
@@ -415,67 +412,55 @@ msgstr "Interface Flags"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "IPv4 Subnet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Subnet"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "IPv4 Address"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Address"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Packets In"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Packets Out"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Packets Total"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Bytes In"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Bytes Out"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Bytes Total"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Errors In"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Errors Out"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Errors Total"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Collisions"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "IPv6 Address"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "IPv6 Prefix"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "IPv6 Scope"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Maximum Transfer Unit"
@@ -543,6 +528,7 @@ msgstr "NWChan"
msgid "WChan"
msgstr "WChan"
#. K_Flags
#: sysdeps/names/prockernel.c:51
msgid ""
"Kernel flags of the process.\n"
@@ -563,6 +549,7 @@ msgstr ""
"\n"
"The math bit should be a decimal 4, and the traced bit is decimal 10."
#. Min_Flt
#: sysdeps/names/prockernel.c:60
msgid ""
"The number of minor faults the process has made, those which have not "
@@ -571,6 +558,7 @@ msgstr ""
"The number of minor faults the process has made, those which have not "
"required loading a memory page from disk."
#. Maj_Flt
#: sysdeps/names/prockernel.c:63
msgid ""
"The number of major faults the process has made, those which have required "
@@ -579,16 +567,19 @@ msgstr ""
"The number of major faults the process has made, those which have required "
"loading a memory page from disk."
#. CMin_Flt
#: sysdeps/names/prockernel.c:66
msgid "The number of minor faults that the process and its children have made."
msgstr ""
"The number of minor faults that the process and its children have made."
#. CMaj_Flt
#: sysdeps/names/prockernel.c:69
msgid "The number of major faults that the process and its children have made."
msgstr ""
"The number of major faults that the process and its children have made."
#. KStk_ESP
#: sysdeps/names/prockernel.c:72
msgid ""
"The current value of esp (32-bit stack pointer), as found in the kernel "
@@ -602,6 +593,7 @@ msgstr ""
msgid "The current EIP (32-bit instruction pointer)."
msgstr "The current EIP (32-bit instruction pointer)."
#. NWChan
#: sysdeps/names/prockernel.c:77
msgid ""
"This is the \"channel\" in which the process is waiting. This is the "
@@ -935,47 +927,47 @@ msgstr "SMP kernel-mode CPU time accumulated by process"
#: sysdeps/names/procuid.c:48
msgid "Uid"
msgstr "UID"
msgstr "Uid"
#: sysdeps/names/procuid.c:48
msgid "EUid"
msgstr "EUID"
msgstr "EUid"
#: sysdeps/names/procuid.c:48
msgid "Gid"
msgstr "GID"
msgstr "Gid"
#: sysdeps/names/procuid.c:48
msgid "EGid"
msgstr "EGID"
msgstr "EGid"
#: sysdeps/names/procuid.c:48
msgid "SUid"
msgstr "SUID"
msgstr "SUid"
#: sysdeps/names/procuid.c:49
msgid "SGid"
msgstr "SGID"
msgstr "SGid"
#: sysdeps/names/procuid.c:49
msgid "FSUid"
msgstr "FSUID"
msgstr "FSUid"
#: sysdeps/names/procuid.c:49
msgid "FSGid"
msgstr "FSGID"
msgstr "FSGid"
#: sysdeps/names/procuid.c:49
msgid "Pid"
msgstr "PID"
msgstr "Pid"
#: sysdeps/names/procuid.c:50
msgid "PPid"
msgstr "PPID"
msgstr "PPid"
#: sysdeps/names/procuid.c:50
msgid "PGrp"
msgstr "PGRP"
msgstr "PGrp"
#: sysdeps/names/procuid.c:50
msgid "Session"
@@ -983,11 +975,11 @@ msgstr "Session"
#: sysdeps/names/procuid.c:50
msgid "Tty"
msgstr "TTY"
msgstr "Tty"
#: sysdeps/names/procuid.c:51
msgid "TPGid"
msgstr "TPGID"
msgstr "TPGid"
#: sysdeps/names/procuid.c:51
msgid "Priority"
@@ -1063,7 +1055,7 @@ msgstr "Kernel scheduling priority"
#: sysdeps/names/procuid.c:71
msgid "Standard unix nice level of process"
msgstr "Standard UNIX nice level of process"
msgstr "Standard unix nice level of process"
#: sysdeps/names/procuid.c:72
msgid "Number of additional process groups"
@@ -1083,11 +1075,11 @@ msgstr "Max number of arrays"
#: sysdeps/names/sem_limits.c:45 sysdeps/names/sem_limits.c:59
msgid "Max semaphores system wide"
msgstr "Max semaphores, system-wide"
msgstr "Max semaphores system wide"
#: sysdeps/names/sem_limits.c:46 sysdeps/names/sem_limits.c:60
msgid "Number of undo structures system wide"
msgstr "Number of undo structures, system-wide"
msgstr "Number of undo structures system wide"
#: sysdeps/names/sem_limits.c:47 sysdeps/names/sem_limits.c:61
msgid "Max semaphores per array"

View File

@@ -1,18 +1,16 @@
# English (British) translation.
# Copyright (C) 2004 The GNOME Foundation
# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the libgtop package.
# Gareth Owen <gowen72@yahoo.com>, David Lodge <dave@cirt.net>, 2004.
# Gareth Owen <gowen72@yahoo.comg>, 2004.
#
#
# Gareth Owen <gowen72@yahoo.com>, 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-03 14:09+0200\n"
"PO-Revision-Date: 2004-07-29 00:24+0100\n"
"Last-Translator: David Lodge <dave@cirt.net>\n"
"Language-Team: English/GB <en@li.org>\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2004-03-22 09:12-0500\n"
"Last-Translator: Gareth Owen <gowen72@yahoo.comg>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -99,7 +97,7 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Spin:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -241,7 +239,7 @@ msgstr "Tick frequency (default is 100)"
msgid "Bit field indicating which CPU is currently running"
msgstr "Bit field indicating which CPU is currently running"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Total blocks"
@@ -253,23 +251,19 @@ msgstr "Free blocks"
msgid "Available blocks"
msgstr "Available blocks"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Total file nodes"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Free file nodes"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Block size"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Free blocks available to the superuser"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Free blocks available to non-superusers"
@@ -408,7 +402,7 @@ msgstr "Message segment size"
msgid "Number of system message headers"
msgstr "Number of system message headers"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Interface Flags"
@@ -416,67 +410,55 @@ msgstr "Interface Flags"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "IPv4 Subnet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Subnet"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "IPv4 Address"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Address"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Packets In"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Packets Out"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Packets Total"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Bytes In"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Bytes Out"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Bytes Total"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Errors In"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Errors Out"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Errors Total"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Collisions"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "IPv6 Address"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "IPv6 Prefix"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "IPv6 Scope"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Maximum Transfer Unit"

View File

@@ -1,4 +1,3 @@
# traducción de es.po al Spanish
# translation of libgtop.libgtop-GNOME-2-0-port.po to Spanish
# Translation into spanish of glibtop
# FIXME: the strings still left empty are the ones I've no idea how
@@ -8,22 +7,21 @@
# Pablo Saratxaga <srtxg@chanae.alphanet.ch>, 2002.
# Juan Manuel García Molina <juanma_gm@wanadoo.es>, 2002.
# Francisco Javier F. Serrador <serrador@arrakis.es>, 2003.
# Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: es\n"
"Project-Id-Version: libgtop.libgtop-GNOME-2-0-port\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-28 16:45+0200\n"
"PO-Revision-Date: 2004-08-28 16:48+0200\n"
"Last-Translator: Francisco Javier F. Serrador <serrador@cvs.gnome.org>\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2003-12-14 11:56+0100\n"
"Last-Translator: Francisco Javier F. Serrador <serrador@arrakis.es>\n"
"Language-Team: Spanish <traductores@es.gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"First-Translator: Pablo Saratxaga <srtxg@chanae.alphanet.ch>\n"
"X-Generator: KBabel 1.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.0.2\n"
"Plural-Forms: nplurals=2; plural=(n == 1)\n"
#: examples/smp.c:76
#, c-format
@@ -106,7 +104,7 @@ msgstr "CPU %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr "Spin:"
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -247,9 +245,9 @@ msgstr "Frecuencia del tick (frecuencia de base es 100)"
#: sysdeps/names/cpu.c:71
msgid "Bit field indicating which CPU is currently running"
msgstr "Campo de bits indicando qué CPU está ejecutándose ahora"
msgstr "Campo de bits indicando qué CPU está ejecutándoe ahora"
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Total de bloques"
@@ -261,23 +259,19 @@ msgstr "Bloques libres"
msgid "Available blocks"
msgstr "Bloques disponibles"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Total de nodos de archivos"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Nodos de archivo libres"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr "Tamaño de bloque"
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Bloques libres disponibles para el superusuario"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Bloques libres disponibles para usuarios comunes"
@@ -417,7 +411,7 @@ msgstr "Tamaño de un mensaje segmento"
msgid "Number of system message headers"
msgstr "Cantidad de cabeceras de mensajes sistema"
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr "Flags de la interfaz"
@@ -425,67 +419,55 @@ msgstr "Flags de la interfaz"
msgid "MTU"
msgstr "MTU"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
msgid "IPv4 Subnet"
msgstr "Subred IPv4"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Subred"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
msgid "IPv4 Address"
msgstr "Dirección IPv4"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Dirección"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Paquetes de entrada"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Paquetes de salida"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Paquetes totales"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Bytes recibidos"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Bytes enviados"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Bytes totales"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Errores recibidos"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Errores enviados"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Errores totales"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Colisiones"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
msgid "IPv6 Address"
msgstr "Dirección IPv6"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr "Prefijo IPv6"
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr "Ámbito IPv6"
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr "Unidad de transferencia máxima"
@@ -666,7 +648,8 @@ msgstr "Cantidad de páginas de memoria virtual"
#: sysdeps/names/procmem.c:56
msgid "Number of resident set (non-swapped) pages"
msgstr "Cantidad de páginas de conjuntos residentes (que no están en intercambio)"
msgstr ""
"Cantidad de páginas de conjuntos residentes (que no están en intercambio)"
#: sysdeps/names/procmem.c:57
msgid "Number of pages of shared (mmap'd) memory"
@@ -691,7 +674,8 @@ msgstr ""
# otherwise it will default to es.po which uses the US format for numbers.
#
#: sysdeps/names/procmem.c:63
msgid "Current limit in bytes on the rss of the process (usually 2,147,483,647)."
msgid ""
"Current limit in bytes on the rss of the process (usually 2,147,483,647)."
msgstr ""
"Límite actual en bytes de conjunto compartido (RSS) del proceso "
"(habitualmente 2.147.483.647)."
@@ -866,7 +850,7 @@ msgstr "Último procesador"
#: sysdeps/names/proctime.c:45
msgid "Start_Time"
msgstr "T_iempo inicio"
msgstr "Tiempo_inicio"
#: sysdeps/names/proctime.c:45
msgid "RTime"
@@ -1479,4 +1463,3 @@ msgstr "Señal 2 definida por el usuario"
#~ msgid "Display brief usage message"
#~ msgstr "Muestra el mensaje de uso breve"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libgtop\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-08-03 14:09+0200\n"
"POT-Creation-Date: 2004-07-13 14:38+0200\n"
"PO-Revision-Date: 2003-02-25 01:05+0200\n"
"Last-Translator: Tõivo Leedjärv <toivo@linux.ee>\n"
"Language-Team: Estonian <gnome-et@linux.ee>\n"
@@ -96,7 +96,7 @@ msgstr "Prots. %3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
msgid "Spin:"
msgstr ""
#: lib/read.c:65
#: lib/read.c:78
#, c-format
msgid "read %d byte"
msgid_plural "read %d bytes"
@@ -236,7 +236,7 @@ msgstr ""
msgid "Bit field indicating which CPU is currently running"
msgstr ""
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:50
#: sysdeps/names/fsusage.c:40 sysdeps/names/fsusage.c:49
msgid "Total blocks"
msgstr "Blokke kokku"
@@ -248,23 +248,19 @@ msgstr "Blokke vaba"
msgid "Available blocks"
msgstr "Saadaval blokke"
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:53
#: sysdeps/names/fsusage.c:43 sysdeps/names/fsusage.c:52
msgid "Total file nodes"
msgstr "Failisõlmi kokku"
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:54
#: sysdeps/names/fsusage.c:44 sysdeps/names/fsusage.c:53
msgid "Free file nodes"
msgstr "Failisõlmi vaba"
#: sysdeps/names/fsusage.c:45 sysdeps/names/fsusage.c:55
msgid "Block size"
msgstr ""
#: sysdeps/names/fsusage.c:51
#: sysdeps/names/fsusage.c:50
msgid "Free blocks available to the superuser"
msgstr "Vabu blokke saadaval juurkasutajale"
#: sysdeps/names/fsusage.c:52
#: sysdeps/names/fsusage.c:51
msgid "Free blocks available to non-superusers"
msgstr "Vabu blokke saadaval tavakasutajatele"
@@ -402,7 +398,7 @@ msgstr ""
msgid "Number of system message headers"
msgstr ""
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:67
#: sysdeps/names/netload.c:46 sysdeps/names/netload.c:64
msgid "Interface Flags"
msgstr ""
@@ -410,70 +406,55 @@ msgstr ""
msgid "MTU"
msgstr ""
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:69
#, fuzzy
msgid "IPv4 Subnet"
#: sysdeps/names/netload.c:48 sysdeps/names/netload.c:66
msgid "Subnet"
msgstr "Alamvõrk"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:70
#, fuzzy
msgid "IPv4 Address"
#: sysdeps/names/netload.c:49 sysdeps/names/netload.c:67
msgid "Address"
msgstr "Aadress"
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:71
#: sysdeps/names/netload.c:50 sysdeps/names/netload.c:68
msgid "Packets In"
msgstr "Pakette sisse"
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:72
#: sysdeps/names/netload.c:51 sysdeps/names/netload.c:69
msgid "Packets Out"
msgstr "Pakette välja"
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:73
#: sysdeps/names/netload.c:52 sysdeps/names/netload.c:70
msgid "Packets Total"
msgstr "Kokku pakette"
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:74
#: sysdeps/names/netload.c:53 sysdeps/names/netload.c:71
msgid "Bytes In"
msgstr "Baite sisse"
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:75
#: sysdeps/names/netload.c:54 sysdeps/names/netload.c:72
msgid "Bytes Out"
msgstr "Baite välja"
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:76
#: sysdeps/names/netload.c:55 sysdeps/names/netload.c:73
msgid "Bytes Total"
msgstr "Kokku baite"
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:77
#: sysdeps/names/netload.c:56 sysdeps/names/netload.c:74
msgid "Errors In"
msgstr "Vigu sisse"
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:78
#: sysdeps/names/netload.c:57 sysdeps/names/netload.c:75
msgid "Errors Out"
msgstr "Vigu välja"
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:79
#: sysdeps/names/netload.c:58 sysdeps/names/netload.c:76
msgid "Errors Total"
msgstr "Kokku vigu"
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:80
#: sysdeps/names/netload.c:59 sysdeps/names/netload.c:77
msgid "Collisions"
msgstr "Põrkumisi"
#: sysdeps/names/netload.c:60 sysdeps/names/netload.c:81
#, fuzzy
msgid "IPv6 Address"
msgstr "Aadress"
#: sysdeps/names/netload.c:61 sysdeps/names/netload.c:82
msgid "IPv6 Prefix"
msgstr ""
#: sysdeps/names/netload.c:62 sysdeps/names/netload.c:83
msgid "IPv6 Scope"
msgstr ""
#: sysdeps/names/netload.c:68
#: sysdeps/names/netload.c:65
msgid "Maximum Transfer Unit"
msgstr ""

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