Compare commits
26 Commits
LIBGTOP_2_
...
LIBGTOP_2_
Author | SHA1 | Date | |
---|---|---|---|
|
647a313d5b | ||
|
70ac398a44 | ||
|
48056f7d8a | ||
|
7ca4171652 | ||
|
1537eea7e5 | ||
|
0a425e4e41 | ||
|
0fa9c9bc61 | ||
|
9561cf34b2 | ||
|
be721ca476 | ||
|
265da513de | ||
|
a180cb5b10 | ||
|
c517f20195 | ||
|
e4ad12fd93 | ||
|
c22300d109 | ||
|
bffc09b594 | ||
|
b7fd73bc5c | ||
|
15904773f3 | ||
|
b76ae7b1ca | ||
|
006eddb5fe | ||
|
7566ccf311 | ||
|
cde49f488c | ||
|
ce9ce223ca | ||
|
71900c0e30 | ||
|
817057bc3c | ||
|
9fe6dadcec | ||
|
3e06f95c84 |
59
ChangeLog
59
ChangeLog
@@ -1,3 +1,62 @@
|
||||
2005-01-10 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* NEWS: Released 2.9.4.
|
||||
|
||||
2005-01-10 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* configure.in:
|
||||
* examples/.cvsignore:
|
||||
* examples/Makefile.am:
|
||||
* examples/openfiles.c: (show_open_files), (main):
|
||||
* features.def:
|
||||
* include/glibtop/Makefile.am:
|
||||
* include/glibtop/command.h:
|
||||
* include/glibtop/procopenfiles.h:
|
||||
* include/glibtop/sysdeps.h:
|
||||
* include/glibtop/union.h:
|
||||
* structures.def:
|
||||
* sysdeps/linux/Makefile.am:
|
||||
* sysdeps/linux/procopenfiles.c: (glibtop_init_proc_open_files_s),
|
||||
(get_socket_endpoint), (glibtop_get_proc_open_files_s):
|
||||
* sysdeps/stub/Makefile.am:
|
||||
* sysdeps/stub/procopenfiles.c: (glibtop_init_proc_open_files_s),
|
||||
(glibtop_get_proc_open_files_s):
|
||||
|
||||
New feature by nick@reloco.com.ar (Nicolás Lichtmaier).
|
||||
|
||||
glibtop_get_open_files(pid) -> list of files by process.
|
||||
TODO: Add documentation.
|
||||
|
||||
2005-01-03 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* examples/pprint.c: (pprint_get_cpu):
|
||||
* features.def:
|
||||
* include/glibtop/cpu.h:
|
||||
* sysdeps/linux/cpu.c: (glibtop_init_cpu_s), (glibtop_get_cpu_s):
|
||||
Added I/O and IRQ wait time to glibtop_cpu. Closes #160443.
|
||||
|
||||
* configure.in: Post-release bump 2.9.4
|
||||
|
||||
2004-12-29 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* lib/read_data.c: (glibtop_read_data_l):
|
||||
* lib/write.c: (glibtop_write_l): Fixed error messages.
|
||||
Closes #162406.
|
||||
|
||||
2004-12-23 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* include/glibtop/error.h:
|
||||
* lib/parameter.c: (glibtop_set_parameter_l):
|
||||
* lib/read_data.c: (glibtop_read_data_l):
|
||||
* sysdeps/common/error.c: (print_server_name), (glibtop_error_vr),
|
||||
(glibtop_error_io_vr), (glibtop_warn_vr), (glibtop_warn_io_vr),
|
||||
(glibtop_error_r), (glibtop_warn_r), (glibtop_error_io_r),
|
||||
(glibtop_warn_io_r), (glibtop_error), (glibtop_warn),
|
||||
(glibtop_error_io), (glibtop_warn_io): Turned all macros to functions.
|
||||
Marked everything as G_GNUC_PRINTF and fixed format bugs.
|
||||
|
||||
* sysdeps/common/fsusage.c: Marked some functions as G_GNUC_INTERNAL
|
||||
|
||||
2004-12-20 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* NEWS:
|
||||
|
5
NEWS
5
NEWS
@@ -1,3 +1,8 @@
|
||||
January 10, 2004: Overview of Changes from 2.9.3 to 2.9.4
|
||||
=========================================================
|
||||
* New glibtop_proc_open_files nick@reloco.com.ar (Nicolás Lichtmaier).
|
||||
* Updated AIX support (Christophe Belle).
|
||||
|
||||
December 20, 2004: Overview of Changes from 2.9.0 to 2.9.3
|
||||
==========================================================
|
||||
* Removed libgtop_names.
|
||||
|
@@ -8,7 +8,7 @@ AC_CANONICAL_SYSTEM
|
||||
|
||||
LIBGTOP_MAJOR_VERSION=2
|
||||
LIBGTOP_MINOR_VERSION=9
|
||||
LIBGTOP_MICRO_VERSION=3
|
||||
LIBGTOP_MICRO_VERSION=4
|
||||
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
|
||||
AM_INIT_AUTOMAKE(libgtop, $LIBGTOP_VERSION)
|
||||
|
||||
@@ -122,7 +122,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 pprint_static procargs_static df_static netlist netlist_static openfiles_static"
|
||||
else
|
||||
static_targets=""
|
||||
fi
|
||||
@@ -254,7 +254,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 bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu id it ja ko lt lv mi mk ml mn ms nb ne nl nn no or pa pl pt pt_BR ro ru sk sl sq sr sr@Latn sv ta tr uk vi zh_CN zh_TW"
|
||||
|
||||
GETTEXT_PACKAGE=libgtop-2.0
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
|
@@ -1,3 +1,7 @@
|
||||
2005-01-03 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* reference.texi: Updated.
|
||||
|
||||
2004-12-04 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* reference.texi: Updated.
|
||||
|
@@ -56,18 +56,19 @@ struct _glibtop_cpu
|
||||
nice,
|
||||
sys,
|
||||
idle,
|
||||
iowait,
|
||||
irq,
|
||||
softirq,
|
||||
frequency,
|
||||
xcpu_total [GLIBTOP_NCPU],
|
||||
xcpu_user [GLIBTOP_NCPU],
|
||||
xcpu_nice [GLIBTOP_NCPU],
|
||||
xcpu_sys [GLIBTOP_NCPU],
|
||||
@ifset LIBGTOP-1-1
|
||||
xcpu_idle [GLIBTOP_NCPU],
|
||||
xcpu_iowait [GLIBTOP_NCPU],
|
||||
xcpu_irq [GLIBTOP_NCPU],
|
||||
xcpu_softirq [GLIBTOP_NCPU],
|
||||
xcpu_flags;
|
||||
@end ifset
|
||||
@ifclear LIBGTOP-1-1
|
||||
xcpu_idle [GLIBTOP_NCPU];
|
||||
@end ifclear
|
||||
@};
|
||||
@end cartouche
|
||||
@end example
|
||||
@@ -92,25 +93,33 @@ Number of clock ticks the system spent in system mode.
|
||||
@item idle
|
||||
Number of clock ticks the system spent in the idle task.
|
||||
|
||||
@item iowait
|
||||
Number of clock ticks the system spent waiting for I/O to complete.
|
||||
|
||||
@item irq
|
||||
Number of clock ticks the system spent servicing interrupts.
|
||||
|
||||
@item softirq
|
||||
Number of clock ticks the system spent servicing softirqs.
|
||||
|
||||
@item frequency
|
||||
Tick frequency (default is 100).
|
||||
|
||||
@end table
|
||||
|
||||
The @samp{xcpu_} values are for SMP systems - they are the same than
|
||||
@code{total}, @code{user}, @code{nice}, @code{sys} and @code{idle}
|
||||
@code{total}, @code{user}, @code{nice}, @code{sys}, @code{idle},
|
||||
@code{iowait}, @code{irq} and @code{softirq}
|
||||
except that they are arrays of @code{GLIBTOP_NCPU} (defined in
|
||||
@file{<glibtop/limits.h>}) elements and contain one value for each CPU
|
||||
in the system.
|
||||
|
||||
@ifset LIBGTOP-1-1
|
||||
@table @code
|
||||
@item xcpu_flags
|
||||
This is interpreted as a bit-field: on systems like Solaris, not all CPUs
|
||||
need to be running all the time, so we set the corresponding bit for each
|
||||
CPU that is currently running.
|
||||
@end table
|
||||
@end ifset
|
||||
|
||||
Please note that all of the cpu values are absolute values measured in
|
||||
certain units (to get seconds, divide them by @code{frequency}) since system
|
||||
@@ -1051,16 +1060,7 @@ struct _glibtop_proc_segment
|
||||
dirty_size,
|
||||
start_code,
|
||||
end_code,
|
||||
start_data,
|
||||
end_data,
|
||||
start_brk,
|
||||
end_brk,
|
||||
start_stack,
|
||||
start_mmap,
|
||||
arg_start,
|
||||
arg_end,
|
||||
env_start,
|
||||
env_end;
|
||||
start_stack;
|
||||
@};
|
||||
@end cartouche
|
||||
@end example
|
||||
|
@@ -22,4 +22,5 @@ df
|
||||
df_static
|
||||
netlist
|
||||
netlist_static
|
||||
|
||||
openfiles
|
||||
openfiles_static
|
||||
|
@@ -1,3 +1,8 @@
|
||||
2004-12-23 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* netload.c: (main):
|
||||
* procmap.c: (main): s/glibtop_error/g_error/g
|
||||
|
||||
2004-11-15 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* netload.c: (hwaddress_format_for_display), (main): Updated.
|
||||
|
@@ -8,11 +8,12 @@ DEFS = @DEFS@
|
||||
|
||||
noinst_PROGRAMS = first second pprint procargs df netlist \
|
||||
mountlist procmap netload sysdeps timings \
|
||||
openfiles \
|
||||
@static_targets@ @smp_examples@
|
||||
|
||||
EXTRA_PROGRAMS = first_static second_static \
|
||||
mountlist_static procmap_static \
|
||||
smp smp_static \
|
||||
smp smp_static openfiles_static \
|
||||
netload_static sysdeps_static \
|
||||
timings_static pprint_static procargs_static \
|
||||
df_static netlist_static
|
||||
@@ -108,3 +109,11 @@ netlist_static_LDADD = $(netlist_LDADD)
|
||||
netlist_static_LDFLAGS = -static
|
||||
|
||||
|
||||
openfiles_SOURCES = openfiles.c
|
||||
openfiles_LDADD = $(top_builddir)/lib/libgtop-2.0.la
|
||||
|
||||
openfiles_static_SOURCES = $(openfiles_SOURCES)
|
||||
openfiles_static_LDADD = $(openfiles_LDADD)
|
||||
openfiles_static_LDFLAGS = -static
|
||||
|
||||
|
||||
|
@@ -96,7 +96,7 @@ main (int argc, char *argv [])
|
||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
||||
|
||||
if (argc != 2)
|
||||
glibtop_error ("Usage: %s interface", argv [0]);
|
||||
g_error ("Usage: %s interface", argv [0]);
|
||||
|
||||
glibtop_get_netload (&netload, argv [1]);
|
||||
|
||||
|
64
examples/openfiles.c
Normal file
64
examples/openfiles.c
Normal file
@@ -0,0 +1,64 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/procopenfiles.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
static void show_open_files(pid_t pid)
|
||||
{
|
||||
glibtop_proc_open_files buf;
|
||||
glibtop_open_files_entry *files;
|
||||
unsigned i;
|
||||
|
||||
files = glibtop_get_proc_open_files(&buf, pid);
|
||||
|
||||
printf("<%ld>\n", (long)pid);
|
||||
|
||||
for(i = 0; i < buf.number; ++i)
|
||||
{
|
||||
printf("\tfd = %d\t", files[i].fd);
|
||||
|
||||
switch(files[i].type)
|
||||
{
|
||||
case GLIBTOP_FILE_TYPE_FILE:
|
||||
printf("file \"%s\"\n", files[i].info.file.name);
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_PIPE:
|
||||
printf("pipe\n");
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_INETSOCKET:
|
||||
printf("socket %s:%d\n", files[i].info.sock.dest_host, files[i].info.sock.dest_port);
|
||||
break;
|
||||
|
||||
case GLIBTOP_FILE_TYPE_LOCALSOCKET:
|
||||
printf("localsocket\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
putchar('\n');
|
||||
|
||||
g_free(files);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glibtop_init();
|
||||
|
||||
show_open_files(getpid());
|
||||
|
||||
while(*++argv)
|
||||
{
|
||||
pid_t pid = strtol(*argv, NULL, 10);
|
||||
show_open_files(pid);
|
||||
}
|
||||
|
||||
glibtop_close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -41,12 +41,18 @@ static void pprint_get_cpu()
|
||||
PPRINT(nice, "%llu");
|
||||
PPRINT(sys, "%llu");
|
||||
PPRINT(idle, "%llu");
|
||||
PPRINT(iowait, "%llu");
|
||||
PPRINT(irq, "%llu");
|
||||
PPRINT(softirq, "%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_ARRAY(xcpu_iowait, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, "%llu");
|
||||
PPRINT(xcpu_flags, "%llx");
|
||||
FOOTER_PPRINT();
|
||||
}
|
||||
|
@@ -83,7 +83,7 @@ main (int argc, char *argv [])
|
||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
||||
|
||||
if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
|
||||
glibtop_error ("Usage: %s pid", argv [0]);
|
||||
g_error ("Usage: %s pid", argv [0]);
|
||||
|
||||
#ifdef GLIBTOP_INODEDB
|
||||
inodedb = glibtop_inodedb_open (0, 0);
|
||||
|
@@ -1,4 +1,4 @@
|
||||
void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4])
|
||||
void|cpu|ulong(total,user,nice,sys,idle,iowait,irq,softirq,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4],xcpu_iowait[4],xcpu_irq[4],xcpu_softirq[4])
|
||||
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
|
||||
void|swap|ulong(total,used,free,pagein,pageout)
|
||||
void|uptime|double(uptime,idletime)
|
||||
@@ -16,6 +16,7 @@ void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_e
|
||||
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid)
|
||||
char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len)
|
||||
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
|
||||
glibtop_open_files_entry *|proc_open_files|ulong(number)|pid_t(pid)
|
||||
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
|
||||
|
@@ -7,4 +7,5 @@ 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 \
|
||||
netlist.h procopenfiles.h
|
||||
|
@@ -58,8 +58,9 @@ G_BEGIN_DECLS
|
||||
#define GLIBTOP_CMND_NETLOAD 22
|
||||
#define GLIBTOP_CMND_PPP 23
|
||||
#define GLIBTOP_CMND_NETLIST 24
|
||||
#define GLIBTOP_CMND_PROC_OPEN_FILES 25
|
||||
|
||||
#define GLIBTOP_MAX_CMND 25
|
||||
#define GLIBTOP_MAX_CMND 26
|
||||
|
||||
#define _GLIBTOP_PARAM_SIZE 16
|
||||
|
||||
|
@@ -41,9 +41,16 @@ G_BEGIN_DECLS
|
||||
#define GLIBTOP_XCPU_NICE 8
|
||||
#define GLIBTOP_XCPU_SYS 9
|
||||
#define GLIBTOP_XCPU_IDLE 10
|
||||
#define GLIBTOP_XCPU_FLAGS 11
|
||||
#define GLIBTOP_XCPU_FLAGS 11
|
||||
|
||||
#define GLIBTOP_MAX_CPU 12
|
||||
#define GLIBTOP_CPU_IOWAIT 12
|
||||
#define GLIBTOP_CPU_IRQ 13
|
||||
#define GLIBTOP_CPU_SOFTIRQ 14
|
||||
#define GLIBTOP_XCPU_IOWAIT 15
|
||||
#define GLIBTOP_XCPU_IRQ 16
|
||||
#define GLIBTOP_XCPU_SOFTIRQ 17
|
||||
|
||||
#define GLIBTOP_MAX_CPU 18
|
||||
|
||||
/* Nobody should really be using more than 4 processors. */
|
||||
#define GLIBTOP_NCPU 4
|
||||
@@ -58,12 +65,18 @@ struct _glibtop_cpu
|
||||
nice, /* GLIBTOP_CPU_NICE */
|
||||
sys, /* GLIBTOP_CPU_SYS */
|
||||
idle, /* GLIBTOP_CPU_IDLE */
|
||||
iowait, /* GLIBTOP_CPU_IOWAIT */
|
||||
irq, /* GLIBTOP_CPU_IRQ */
|
||||
softirq, /* GLIBTOP_CPU_SOFTIRQ */
|
||||
frequency, /* GLIBTOP_CPU_FREQUENCY */
|
||||
xcpu_total [GLIBTOP_NCPU], /* GLIBTOP_XCPU_TOTAL */
|
||||
xcpu_user [GLIBTOP_NCPU], /* GLIBTOP_XCPU_USER */
|
||||
xcpu_nice [GLIBTOP_NCPU], /* GLIBTOP_XCPU_NICE */
|
||||
xcpu_sys [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SYS */
|
||||
xcpu_idle [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IDLE */
|
||||
xcpu_iowait [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IOWAIT */
|
||||
xcpu_irq [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IRQ */
|
||||
xcpu_softirq [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SOFTIRQ */
|
||||
xcpu_flags; /* GLIBTOP_XCPU_IDLE */
|
||||
};
|
||||
|
||||
|
@@ -28,42 +28,20 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
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_vr (glibtop *server, const char *format, va_list args);
|
||||
void glibtop_warn_vr (glibtop *server, const char *format, va_list args);
|
||||
void glibtop_error_io_vr (glibtop *server, const char *format, int, va_list args);
|
||||
void glibtop_warn_io_vr (glibtop *server, const char *format, int, 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 glibtop_error_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
|
||||
void glibtop_warn_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
|
||||
void glibtop_error_io_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
|
||||
void glibtop_warn_io_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
|
||||
|
||||
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, ...);
|
||||
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
#define glibtop_error(p1, args...) glibtop_error_r(glibtop_global_server , p1 , ## args)
|
||||
#define glibtop_warn(p1, args...) glibtop_warn_r(glibtop_global_server , p1 , ## args)
|
||||
|
||||
#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
|
||||
|
||||
#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__)
|
||||
|
||||
#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__)
|
||||
|
||||
#else /* no __GNUC__, no C99*/
|
||||
|
||||
void glibtop_error (char *format, ...);
|
||||
void glibtop_warn (char *format, ...);
|
||||
void glibtop_error_io (char *format, ...);
|
||||
void glibtop_warn_io (char *format, ...);
|
||||
|
||||
#endif /* no __GNUC__ */
|
||||
void glibtop_error (const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
void glibtop_warn (const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
void glibtop_error_io (const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
void glibtop_warn_io (const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
116
include/glibtop/procopenfiles.h
Normal file
116
include/glibtop/procopenfiles.h
Normal file
@@ -0,0 +1,116 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
Copyright (C) 2004 Nicol<6F>s Lichtmaier
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
Modified by Nicol<6F>s Lichtmaier to give open process files.
|
||||
|
||||
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_PROC_OPEN_FILES_H__
|
||||
#define __GLIBTOP_PROC_OPEN_FILES_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_OPEN_FILES_NUMBER 0
|
||||
#define GLIBTOP_PROC_OPEN_FILES_TOTAL 1
|
||||
#define GLIBTOP_PROC_OPEN_FILES_SIZE 2
|
||||
|
||||
#define GLIBTOP_MAX_PROC_OPEN_FILES 3
|
||||
|
||||
#define GLIBTOP_FILE_ENTRY_FD 0
|
||||
#define GLIBTOP_FILE_ENTRY_NAME 1
|
||||
#define GLIBTOP_FILE_ENTRY_TYPE 2
|
||||
#define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_HOST 3
|
||||
#define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_PORT 4
|
||||
|
||||
#define GLIBTOP_MAX_OPEN_FILE_ENTRY 5
|
||||
|
||||
#define GLIBTOP_OPEN_FILENAME_LEN 215
|
||||
/* ready for IPv6 */
|
||||
#define GLIBTOP_OPEN_DEST_HOST_LEN 46
|
||||
|
||||
enum glibtop_file_type {
|
||||
GLIBTOP_FILE_TYPE_FILE = 1,
|
||||
GLIBTOP_FILE_TYPE_PIPE = 2,
|
||||
GLIBTOP_FILE_TYPE_INETSOCKET = 4,
|
||||
GLIBTOP_FILE_TYPE_LOCALSOCKET = 8
|
||||
};
|
||||
|
||||
typedef struct _glibtop_open_files_entry glibtop_open_files_entry;
|
||||
|
||||
typedef struct _glibtop_proc_open_files glibtop_proc_open_files;
|
||||
|
||||
struct _glibtop_open_files_entry
|
||||
{
|
||||
int fd;
|
||||
guint16 type; /* An "enum glibtop_file_type" value. */
|
||||
union {
|
||||
/* When type == GLIBTOP_FILE_TYPE_INETSOCKET */
|
||||
struct {
|
||||
char dest_host[GLIBTOP_OPEN_DEST_HOST_LEN+1];
|
||||
int dest_port;
|
||||
} sock;
|
||||
|
||||
/* When type == GLIBTOP_FILE_TYPE_FILE */
|
||||
struct {
|
||||
char name[GLIBTOP_OPEN_FILENAME_LEN+1];
|
||||
} file;
|
||||
} info;
|
||||
};
|
||||
|
||||
struct _glibtop_proc_open_files
|
||||
{
|
||||
guint64 flags,
|
||||
number, /* GLIBTOP_PROC_OPEN_FILES_NUMBER */
|
||||
total, /* GLIBTOP_PROC_OPEN_FILES_TOTAL */
|
||||
size; /* GLIBTOP_PROC_OPEN_FILES_SIZE */
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_open_files(proc_open_files,pid) glibtop_get_proc_open_files_l(glibtop_global_server, proc_open_files, pid)
|
||||
|
||||
#if GLIBTOP_SUID_PROC_FILE
|
||||
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_p
|
||||
#else
|
||||
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_s
|
||||
#endif
|
||||
|
||||
glibtop_open_files_entry *
|
||||
glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_FILE
|
||||
void glibtop_init_proc_open_files_p (glibtop *server);
|
||||
|
||||
glibtop_open_files_entry *
|
||||
glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
|
||||
#else
|
||||
void glibtop_init_proc_open_files_s (glibtop *server);
|
||||
|
||||
glibtop_open_files_entry *
|
||||
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
@@ -52,8 +52,9 @@ G_BEGIN_DECLS
|
||||
#define GLIBTOP_SYSDEPS_NETLOAD 21
|
||||
#define GLIBTOP_SYSDEPS_PPP 22
|
||||
#define GLIBTOP_SYSDEPS_NETLIST 23
|
||||
#define GLIBTOP_SYSDEPS_PROC_OPEN_FILES 24
|
||||
|
||||
#define GLIBTOP_MAX_SYSDEPS 24
|
||||
#define GLIBTOP_MAX_SYSDEPS 25
|
||||
|
||||
#define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1)
|
||||
|
||||
@@ -85,6 +86,7 @@ struct _glibtop_sysdeps
|
||||
proc_segment, /* glibtop_proc_segment */
|
||||
proc_args, /* glibtop_proc_args */
|
||||
proc_map, /* glibtop_proc_map */
|
||||
proc_open_files, /* glibtop_proc_open_files */
|
||||
mountlist, /* glibtop_mountlist */
|
||||
fsusage, /* glibtop_fsusage */
|
||||
netlist, /* glibtop_netlist */
|
||||
|
@@ -43,6 +43,7 @@
|
||||
#include <glibtop/procsegment.h>
|
||||
#include <glibtop/procargs.h>
|
||||
#include <glibtop/procmap.h>
|
||||
#include <glibtop/procopenfiles.h>
|
||||
|
||||
#include <glibtop/mountlist.h>
|
||||
#include <glibtop/fsusage.h>
|
||||
@@ -80,6 +81,7 @@ union _glibtop_union
|
||||
glibtop_netlist netlist;
|
||||
glibtop_netload netload;
|
||||
glibtop_ppp ppp;
|
||||
glibtop_proc_open_files proc_open_files;
|
||||
};
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -32,9 +32,9 @@
|
||||
|
||||
#define _check_data(size) \
|
||||
if ((data_ptr == NULL) || (data_size != size)) { \
|
||||
glibtop_warn_r (server, "glibtop_set_parameter (%d): " \
|
||||
glibtop_warn_r (server, "glibtop_set_parameter (%u): " \
|
||||
"Expected %lu bytes but got %lu.", \
|
||||
parameter, size, data_size); \
|
||||
(unsigned) parameter, (unsigned long) size, (unsigned long) data_size); \
|
||||
return; \
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ glibtop_set_parameter_l (glibtop *server, const unsigned parameter,
|
||||
break;
|
||||
case GLIBTOP_PARAM_FEATURES:
|
||||
/* You should not be allowed to set this field. */
|
||||
glibtop_warn_r (server, "glibtop_set_parameter (%d): " \
|
||||
glibtop_warn_r (server, "glibtop_set_parameter (%u): " \
|
||||
"Cannot modify read-only value.",
|
||||
parameter);
|
||||
break;
|
||||
|
@@ -38,7 +38,8 @@ glibtop_read_data_l (glibtop *server)
|
||||
glibtop_init_r (&server, 0, 0);
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "LIBRARY: reading %d data bytes.\n", sizeof (size_t));
|
||||
fprintf (stderr, "LIBRARY: reading %lu data bytes.\n",
|
||||
(unsigned long) sizeof (size_t));
|
||||
#endif
|
||||
|
||||
if (server->socket) {
|
||||
@@ -51,7 +52,8 @@ glibtop_read_data_l (glibtop *server)
|
||||
glibtop_error_io_r (server, _("read data size"));
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "LIBRARY: really reading %d data bytes (ret = %d).\n", size, ret);
|
||||
fprintf (stderr, "LIBRARY: really reading %lu data bytes (ret = %d).\n",
|
||||
(unsigned long) size, ret);
|
||||
#endif
|
||||
|
||||
if (!size) return NULL;
|
||||
@@ -65,7 +67,10 @@ glibtop_read_data_l (glibtop *server)
|
||||
}
|
||||
|
||||
if (ret < 0)
|
||||
glibtop_error_io_r (server, ngettext ("read data %d byte", "read data %d bytes", size));
|
||||
glibtop_error_io_r (server,
|
||||
ngettext ("read %lu byte of data",
|
||||
"read %lu bytes of data",
|
||||
(unsigned long) size));
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
@@ -48,5 +48,5 @@ glibtop_write_l (glibtop *server, size_t size, void *buf)
|
||||
}
|
||||
|
||||
if (ret < 0)
|
||||
glibtop_error_io_r (server, ngettext ("write %d byte", "write %d bytes", size), size);
|
||||
glibtop_error_io_r (server, ngettext ("wrote %d byte", "wrote %d bytes", size), size);
|
||||
}
|
||||
|
@@ -1,13 +1,14 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
POTFILES
|
||||
cat-id-tbl.c
|
||||
*.gmo
|
||||
*.mo
|
||||
libgtop.pot
|
||||
libgtop-2.0.pot
|
||||
*.pot
|
||||
Makefile
|
||||
Makefile.in
|
||||
Makefile.in.in
|
||||
POTFILES
|
||||
cat-id-tbl.c
|
||||
messages
|
||||
stamp-cat-id
|
||||
po2tbl.sed
|
||||
missing
|
||||
notexist
|
||||
po2tbl.sed
|
||||
po2tbl.sed.in
|
||||
stamp-cat-id
|
||||
|
55
po/ChangeLog
55
po/ChangeLog
@@ -1,3 +1,58 @@
|
||||
2005-01-02 Miloslav Trmac <mitr@volny.cz>
|
||||
|
||||
* cs.po: Updated Czech translation.
|
||||
|
||||
2004-12-29 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
|
||||
|
||||
* es.po: Updated Spanish translation
|
||||
|
||||
2004-12-29 Marcel Telka <marcel@telka.sk>
|
||||
|
||||
* sk.po: Updated Slovak translation.
|
||||
|
||||
2004-12-29 Christian Rose <menthos@menthos.com>
|
||||
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2004-12-29 Adam Weinberger <adamw@gnome.org>
|
||||
|
||||
* en_CA.po: Updated Canadian English translation.
|
||||
|
||||
2004-12-29 Pawan Chitrakar <pawan@nplinux.org>
|
||||
|
||||
* ne.po: Added Nepali Translation
|
||||
|
||||
2004-12-29 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* POTFILES.in: Removed a bunch of strings.
|
||||
|
||||
2004-12-28 Christian Rose <menthos@menthos.com>
|
||||
|
||||
* POTFILES.in: Added comment and missing file.
|
||||
* .cvsignore: Added entries and cleaned up.
|
||||
* sv.po: Updated Swedish translation.
|
||||
|
||||
2004-12-28 Kjartan Maraas <kmaraas@gnome.org>
|
||||
|
||||
* nb.po: Update
|
||||
* no.po: Update
|
||||
|
||||
2004-12-28 Marcel Telka <marcel@telka.sk>
|
||||
|
||||
* sk.po: Updated Slovak translation.
|
||||
|
||||
2004-12-27 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* POTFILES.in: Removed a lot of unused/useless files.
|
||||
|
||||
2004-12-26 Adam Weinberger <adamw@gnome.org>
|
||||
|
||||
* en_CA.po: Updated Canadian English translation.
|
||||
|
||||
2004-12-25 Miloslav Trmac <mitr@volny.cz>
|
||||
|
||||
* cs.po: Updated Czech translation.
|
||||
|
||||
2004-12-04 Žygimantas Beručka <uid0@akl.lt>
|
||||
|
||||
* lt.po: Updated Lithuanian translation.
|
||||
|
@@ -1,40 +1,5 @@
|
||||
examples/smp.c
|
||||
include/glibtop/close.h
|
||||
include/glibtop/command.h
|
||||
include/glibtop/cpu.h
|
||||
include/glibtop/error.h
|
||||
include/glibtop/fsusage.h
|
||||
include/glibtop/global.h
|
||||
include/glibtop/gnuserv.h
|
||||
include/glibtop/inodedb.h
|
||||
include/glibtop/loadavg.h
|
||||
include/glibtop/mem.h
|
||||
include/glibtop/mountlist.h
|
||||
include/glibtop/msg_limits.h
|
||||
include/glibtop/open.h
|
||||
include/glibtop/parameter.h
|
||||
include/glibtop/prockernel.h
|
||||
include/glibtop/proclist.h
|
||||
include/glibtop/procmap.h
|
||||
include/glibtop/procmem.h
|
||||
include/glibtop/procsegment.h
|
||||
include/glibtop/procsignal.h
|
||||
include/glibtop/procstate.h
|
||||
include/glibtop/proctime.h
|
||||
include/glibtop/procuid.h
|
||||
include/glibtop/read_data.h
|
||||
include/glibtop/read.h
|
||||
include/glibtop/sem_limits.h
|
||||
include/glibtop/shm_limits.h
|
||||
include/glibtop/signal.h
|
||||
include/glibtop/swap.h
|
||||
include/glibtop/sysdeps.h
|
||||
include/glibtop/sysinfo.h
|
||||
include/glibtop/types.h
|
||||
include/glibtop/union.h
|
||||
include/glibtop/uptime.h
|
||||
include/glibtop/version.h
|
||||
include/glibtop/write.h
|
||||
# List of source files containing translatable strings.
|
||||
# Please keep this file sorted alphabetically.
|
||||
lib/close.c
|
||||
lib/command.c
|
||||
lib/init.c
|
||||
@@ -52,34 +17,6 @@ src/daemon/slave.c
|
||||
src/daemon/version.c
|
||||
src/inodedb/file_by_inode2.c
|
||||
src/inodedb/mkinodedb2.c
|
||||
sysdeps/common/error.c
|
||||
sysdeps/common/fsusage.c
|
||||
sysdeps/common/gnuslib.c
|
||||
sysdeps/common/inodedb.c
|
||||
sysdeps/common/mountlist.c
|
||||
sysdeps/common/sysdeps_suid.c
|
||||
sysdeps/linux/close.c
|
||||
sysdeps/linux/cpu.c
|
||||
sysdeps/linux/glibtop_machine.h
|
||||
sysdeps/linux/glibtop_server.h
|
||||
sysdeps/linux/loadavg.c
|
||||
sysdeps/linux/mem.c
|
||||
sysdeps/linux/msg_limits.c
|
||||
sysdeps/linux/open.c
|
||||
sysdeps/linux/prockernel.c
|
||||
sysdeps/linux/proclist.c
|
||||
sysdeps/linux/procmap.c
|
||||
sysdeps/linux/procmem.c
|
||||
sysdeps/linux/procsegment.c
|
||||
sysdeps/linux/procsignal.c
|
||||
sysdeps/linux/procstate.c
|
||||
sysdeps/linux/proctime.c
|
||||
sysdeps/linux/procuid.c
|
||||
sysdeps/linux/sem_limits.c
|
||||
sysdeps/linux/shm_limits.c
|
||||
sysdeps/linux/siglist.c
|
||||
sysdeps/linux/swap.c
|
||||
sysdeps/linux/sysinfo.c
|
||||
sysdeps/linux/uptime.c
|
||||
sysdeps/osf1/siglist.c
|
||||
sysdeps/sun4/siglist.c
|
||||
|
1233
po/en_CA.po
1233
po/en_CA.po
File diff suppressed because it is too large
Load Diff
322
po/ne.po
Normal file
322
po/ne.po
Normal file
@@ -0,0 +1,322 @@
|
||||
# Nepali Translation Project.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the libgtop package.
|
||||
# Pawan Chitrakar <pawan@nplinux.org>, 2004.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: levgtop.HEAD.ne.po\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2004-12-11 04:37+0100\n"
|
||||
"PO-Revision-Date: 2004-12-25 04:13+0545\n"
|
||||
"Last-Translator: Rajeev Shrestha <rstha@ecomail.com.np>\n"
|
||||
"Language-Team: NEPALI <info@mpp.org.np>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: Nepali\n"
|
||||
"X-Poedit-Country: NEPAL\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#: examples/smp.c:76
|
||||
#, c-format
|
||||
msgid "Ticks (%ld per second):"
|
||||
msgstr "टिकटिक गर्छ (%ld प्रति सेकेन्ड):"
|
||||
|
||||
#: examples/smp.c:79
|
||||
msgid "Total"
|
||||
msgstr "जम्मा"
|
||||
|
||||
#: examples/smp.c:79
|
||||
msgid "User"
|
||||
msgstr "प्रयोगकर्ता"
|
||||
|
||||
#: examples/smp.c:79
|
||||
msgid "Nice"
|
||||
msgstr "असल"
|
||||
|
||||
#: examples/smp.c:79
|
||||
msgid "Sys"
|
||||
msgstr "प्रणाली"
|
||||
|
||||
#: examples/smp.c:79
|
||||
msgid "Idle"
|
||||
msgstr "बेकाम"
|
||||
|
||||
#: examples/smp.c:81
|
||||
#, c-format
|
||||
msgid ""
|
||||
"CPU (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"सिपियु (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 "सिपियु%3d (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n"
|
||||
|
||||
#: examples/smp.c:102
|
||||
msgid "Percent:"
|
||||
msgstr "प्रतिशत:"
|
||||
|
||||
#: examples/smp.c:103
|
||||
msgid "Total (%)"
|
||||
msgstr "जम्मा(%)"
|
||||
|
||||
#: examples/smp.c:103
|
||||
msgid "User (%)"
|
||||
msgstr "प्रयोगकर्ता(%)"
|
||||
|
||||
#: examples/smp.c:103
|
||||
msgid "Nice (%)"
|
||||
msgstr "असल(%)"
|
||||
|
||||
#: examples/smp.c:103
|
||||
msgid "Sys (%)"
|
||||
msgstr "प्रणाली(%)"
|
||||
|
||||
#: examples/smp.c:104
|
||||
msgid "Idle (%)"
|
||||
msgstr "बेकाम(%)"
|
||||
|
||||
#: examples/smp.c:106
|
||||
#, c-format
|
||||
msgid ""
|
||||
"CPU (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"सिपियु (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 "सिपियु%3d (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n"
|
||||
|
||||
#: examples/smp.c:128
|
||||
msgid "Spin:"
|
||||
msgstr "घुम:"
|
||||
|
||||
#: lib/read.c:64
|
||||
#, fuzzy, c-format
|
||||
msgid "read %d byte"
|
||||
msgid_plural "read %d bytes"
|
||||
msgstr[0] "[पढ्ने मात्र]"
|
||||
msgstr[1] ""
|
||||
|
||||
#: lib/read_data.c:51
|
||||
msgid "read data size"
|
||||
msgstr "तथ्य आकार पढ"
|
||||
|
||||
#: lib/read_data.c:68
|
||||
#, c-format
|
||||
msgid "read data %d byte"
|
||||
msgid_plural "read data %d bytes"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: lib/write.c:51
|
||||
#, fuzzy, c-format
|
||||
msgid "write %d byte"
|
||||
msgid_plural "write %d bytes"
|
||||
msgstr[0] "लेख्न निषेध"
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/daemon/gnuserv.c:461
|
||||
msgid "Enable debugging"
|
||||
msgstr "डिबग गर्न सक्षम गर"
|
||||
|
||||
#: src/daemon/gnuserv.c:461
|
||||
msgid "DEBUG"
|
||||
msgstr "डिबग"
|
||||
|
||||
#: src/daemon/gnuserv.c:463
|
||||
msgid "Enable verbose output"
|
||||
msgstr "भर्बोज निवेश सक्षम गर"
|
||||
|
||||
#: src/daemon/gnuserv.c:463
|
||||
msgid "VERBOSE"
|
||||
msgstr "भर्बोज"
|
||||
|
||||
#: src/daemon/gnuserv.c:465
|
||||
msgid "Don't fork into background"
|
||||
msgstr ""
|
||||
|
||||
#: src/daemon/gnuserv.c:465
|
||||
msgid "NO-DAEMON"
|
||||
msgstr "अवतारिक छैन"
|
||||
|
||||
#: src/daemon/gnuserv.c:467
|
||||
msgid "Invoked from inetd"
|
||||
msgstr "इनेट्डबाट जगाइएको"
|
||||
|
||||
#: src/daemon/gnuserv.c:467
|
||||
msgid "INETD"
|
||||
msgstr "इनेट्ड"
|
||||
|
||||
#: src/daemon/gnuserv.c:501
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Error on option %s: %s.\n"
|
||||
"Run '%s --help' to see a full list of available command line options.\n"
|
||||
msgstr ""
|
||||
"%s: %s विकल्पमा त्रटि।\n"
|
||||
"उपलब्ध आदेशरेखाको विकल्पहरुको एउटा पूर्ण सूची हेर्नको निम्ति '%s --मद्दत' सञ्चालन गर।\n"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:28
|
||||
#: sysdeps/sun4/siglist.c:28
|
||||
msgid "Hangup"
|
||||
msgstr "सम्पर्क छुटाउ"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:29
|
||||
#: sysdeps/sun4/siglist.c:29
|
||||
msgid "Interrupt"
|
||||
msgstr "रोक(अबरोध) "
|
||||
|
||||
#: sysdeps/osf1/siglist.c:30
|
||||
#: sysdeps/sun4/siglist.c:30
|
||||
msgid "Quit"
|
||||
msgstr "बाहिर जाउ"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:31
|
||||
#: sysdeps/sun4/siglist.c:31
|
||||
msgid "Illegal instruction"
|
||||
msgstr "अवैध उपदेश"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:32
|
||||
#: sysdeps/sun4/siglist.c:32
|
||||
msgid "Trace trap"
|
||||
msgstr "ट्याप खोज"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:33
|
||||
#: sysdeps/sun4/siglist.c:33
|
||||
msgid "Abort"
|
||||
msgstr "रोक्नु"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:34
|
||||
#: sysdeps/sun4/siglist.c:34
|
||||
msgid "EMT error"
|
||||
msgstr "इयमटि त्रुटि"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:35
|
||||
#: sysdeps/sun4/siglist.c:35
|
||||
msgid "Floating-point exception"
|
||||
msgstr "फ्लोटिङ्ग-प्वाइन्ट अपबाद"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:36
|
||||
#: sysdeps/sun4/siglist.c:36
|
||||
msgid "Kill"
|
||||
msgstr "नास गर"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:37
|
||||
#: sysdeps/sun4/siglist.c:37
|
||||
msgid "Bus error"
|
||||
msgstr "बस त्रुटि"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:38
|
||||
#: sysdeps/sun4/siglist.c:38
|
||||
msgid "Segmentation violation"
|
||||
msgstr "खण्डीकरण उल्लंघन"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:39
|
||||
#: sysdeps/sun4/siglist.c:39
|
||||
msgid "Bad argument to system call"
|
||||
msgstr "प्रणाली बोलाहटलाई खराब आर्गुमेन्ट"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:40
|
||||
#: sysdeps/sun4/siglist.c:40
|
||||
msgid "Broken pipe"
|
||||
msgstr "फुटेको पाइप"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:41
|
||||
#: sysdeps/sun4/siglist.c:41
|
||||
msgid "Alarm clock"
|
||||
msgstr "जागरन घडी"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:42
|
||||
#: sysdeps/sun4/siglist.c:42
|
||||
msgid "Termination"
|
||||
msgstr "समाप्त गर"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:43
|
||||
#: sysdeps/sun4/siglist.c:43
|
||||
msgid "Urgent condition on socket"
|
||||
msgstr "खोपिल्टोमा आकस्मिक अवस्था(गतिविधि)"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:44
|
||||
#: sysdeps/sun4/siglist.c:44
|
||||
msgid "Stop"
|
||||
msgstr "रोक"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:45
|
||||
#: sysdeps/sun4/siglist.c:45
|
||||
msgid "Keyboard stop"
|
||||
msgstr "किबोर्ड रोक"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:46
|
||||
#: sysdeps/sun4/siglist.c:46
|
||||
msgid "Continue"
|
||||
msgstr "जारी राख"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:47
|
||||
#: sysdeps/sun4/siglist.c:47
|
||||
msgid "Child status has changed"
|
||||
msgstr "बालक वस्तुस्थिति परिवर्तन गरिएको छ"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:48
|
||||
#: sysdeps/sun4/siglist.c:48
|
||||
msgid "Background read from tty"
|
||||
msgstr ""
|
||||
|
||||
#: sysdeps/osf1/siglist.c:49
|
||||
#: sysdeps/sun4/siglist.c:49
|
||||
msgid "Background write to tty"
|
||||
msgstr ""
|
||||
|
||||
#: sysdeps/osf1/siglist.c:50
|
||||
#: sysdeps/sun4/siglist.c:50
|
||||
msgid "I/O now possible"
|
||||
msgstr "प्र/नि अब सम्भव "
|
||||
|
||||
#: sysdeps/osf1/siglist.c:51
|
||||
#: sysdeps/sun4/siglist.c:51
|
||||
msgid "CPU limit exceeded"
|
||||
msgstr "सिपियुको सीमा नाघियो"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:52
|
||||
#: sysdeps/sun4/siglist.c:52
|
||||
msgid "File size limit exceeded"
|
||||
msgstr "फाईलको आकारको सीमा नाघियो"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:53
|
||||
#: sysdeps/sun4/siglist.c:53
|
||||
msgid "Virtual alarm clock"
|
||||
msgstr "काल्पनिक जागरन घडी "
|
||||
|
||||
#: sysdeps/osf1/siglist.c:54
|
||||
#: sysdeps/sun4/siglist.c:54
|
||||
msgid "Profiling alarm clock"
|
||||
msgstr "जागरन घडीको प्रोफाईलहुदैछ"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:55
|
||||
#: sysdeps/sun4/siglist.c:55
|
||||
msgid "Window size change"
|
||||
msgstr "विन्डो आकार परिवर्तन"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:56
|
||||
#: sysdeps/sun4/siglist.c:56
|
||||
msgid "Information request"
|
||||
msgstr "जानकारी अनुरोध"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:57
|
||||
#: sysdeps/sun4/siglist.c:57
|
||||
msgid "User defined signal 1"
|
||||
msgstr "प्रयोगकर्ताद्वारा परिभषित संकेत १"
|
||||
|
||||
#: sysdeps/osf1/siglist.c:58
|
||||
#: sysdeps/sun4/siglist.c:58
|
||||
msgid "User defined signal 2"
|
||||
msgstr "प्रयोगकर्ताद्वारा परिभषित संकेत २"
|
||||
|
@@ -1,4 +1,5 @@
|
||||
glibtop_map_entry|ulong(flags,start,end,offset,perm,inode,device):string(filename)
|
||||
glibtop_open_file_entry|ulong(flags,fd,type,dest_port):string(filename,dest_host)
|
||||
glibtop_mountentry|ulong(dev):string(devname,mountdir,type)
|
||||
glibtop_sysdeps|ulong(features,pointer_size,cpu,mem,swap,uptime,loadavg,shm_limits,msg_limits,sem_limits,proclist,proc_state,proc_uid,proc_mem,proc_time,proc_signal,proc_kernel,proc_segment,proc_args,proc_map,mountlist,fsusage,interface_names,netlist,netload,ppp)
|
||||
|
||||
|
@@ -1,3 +1,8 @@
|
||||
2004-12-23 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* netlist.c:
|
||||
* Makefile.am: Added dummy glibtop_get_netlist.
|
||||
|
||||
2004-10-22 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* procargs.c: (glibtop_get_proc_args_s):
|
||||
|
@@ -7,8 +7,8 @@ libgtop_sysdeps_2_0_la_SOURCES = siglist.c nosuid.c mem.c swap.c uptime.c \
|
||||
procargs.c prockernel.c proclist.c procmap.c \
|
||||
procmem.c procsegment.c procsignal.c \
|
||||
proctime.c procuid.c procmem.c utils.c \
|
||||
procstate.c sysinfo.c
|
||||
|
||||
procstate.c sysinfo.c netlist.c
|
||||
|
||||
|
||||
libgtop_sysdeps_2_0_la_LDFLAGS = $(LT_VERSION_INFO)
|
||||
|
||||
|
40
sysdeps/aix/netlist.c
Normal file
40
sysdeps/aix/netlist.c
Normal file
@@ -0,0 +1,40 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* 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.
|
||||
*/
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/netlist.h>
|
||||
|
||||
static const unsigned long _glibtop_sysdeps_netlist = 0;
|
||||
|
||||
/* Init function. */
|
||||
|
||||
void
|
||||
glibtop_init_netlist_s (glibtop *server)
|
||||
{
|
||||
server->sysdeps.netlist = _glibtop_sysdeps_netlist;
|
||||
}
|
||||
|
||||
char**
|
||||
glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf)
|
||||
{
|
||||
memset (buf, 0, sizeof (glibtop_netlist));
|
||||
|
||||
return NULL;
|
||||
}
|
@@ -30,17 +30,17 @@
|
||||
static void
|
||||
print_server_name (const glibtop *server)
|
||||
{
|
||||
fprintf (stderr, "%s: ", server ?
|
||||
(server->name ? server->name : DEFAULT_NAME)
|
||||
fprintf (stderr, "%s: ", server && server->name
|
||||
? server->name
|
||||
: DEFAULT_NAME);
|
||||
}
|
||||
|
||||
void
|
||||
glibtop_error_vr (glibtop *server, char *format, va_list args)
|
||||
glibtop_error_vr (glibtop *server, const char *format, va_list args)
|
||||
{
|
||||
print_server_name (server);
|
||||
vfprintf (stderr, format, args);
|
||||
fprintf (stderr, "\n");
|
||||
fputc('\n', stderr);
|
||||
|
||||
#ifdef LIBGTOP_ENABLE_DEBUG
|
||||
abort ();
|
||||
@@ -50,7 +50,7 @@ glibtop_error_vr (glibtop *server, char *format, va_list args)
|
||||
}
|
||||
|
||||
void
|
||||
glibtop_error_io_vr (glibtop *server, char *format, int error, va_list args)
|
||||
glibtop_error_io_vr (glibtop *server, const char *format, int error, va_list args)
|
||||
{
|
||||
print_server_name (server);
|
||||
vfprintf (stderr, format, args);
|
||||
@@ -64,11 +64,11 @@ glibtop_error_io_vr (glibtop *server, char *format, int error, va_list args)
|
||||
}
|
||||
|
||||
void
|
||||
glibtop_warn_vr (glibtop *server, char *format, va_list args)
|
||||
glibtop_warn_vr (glibtop *server, const char *format, va_list args)
|
||||
{
|
||||
print_server_name (server);
|
||||
vfprintf (stderr, format, args);
|
||||
fprintf (stderr, "\n");
|
||||
fputc('\n', stderr);
|
||||
|
||||
#ifdef LIBGTOP_FATAL_WARNINGS
|
||||
abort ();
|
||||
@@ -76,7 +76,7 @@ glibtop_warn_vr (glibtop *server, char *format, va_list args)
|
||||
}
|
||||
|
||||
void
|
||||
glibtop_warn_io_vr (glibtop *server, char *format, int error, va_list args)
|
||||
glibtop_warn_io_vr (glibtop *server, const char *format, int error, va_list args)
|
||||
{
|
||||
print_server_name (server);
|
||||
vfprintf (stderr, format, args);
|
||||
@@ -88,8 +88,8 @@ glibtop_warn_io_vr (glibtop *server, char *format, int error, va_list args)
|
||||
}
|
||||
|
||||
|
||||
void G_GNUC_UNUSED
|
||||
glibtop_error_r (glibtop *server, char *format, ...)
|
||||
void
|
||||
glibtop_error_r (glibtop *server, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
@@ -99,8 +99,8 @@ glibtop_error_r (glibtop *server, char *format, ...)
|
||||
}
|
||||
|
||||
|
||||
void G_GNUC_UNUSED
|
||||
glibtop_warn_r (glibtop *server, char *format, ...)
|
||||
void
|
||||
glibtop_warn_r (glibtop *server, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
@@ -109,8 +109,8 @@ glibtop_warn_r (glibtop *server, char *format, ...)
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
void G_GNUC_UNUSED
|
||||
glibtop_error_io_r (glibtop *server, char *format, ...)
|
||||
void
|
||||
glibtop_error_io_r (glibtop *server, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
@@ -119,8 +119,8 @@ glibtop_error_io_r (glibtop *server, char *format, ...)
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
void G_GNUC_UNUSED
|
||||
glibtop_warn_io_r (glibtop *server, char *format, ...)
|
||||
void
|
||||
glibtop_warn_io_r (glibtop *server, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
@@ -129,10 +129,9 @@ glibtop_warn_io_r (glibtop *server, char *format, ...)
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
#ifndef __GNUC__
|
||||
|
||||
void
|
||||
glibtop_error (char *format, ...)
|
||||
glibtop_error (const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
@@ -141,7 +140,7 @@ glibtop_error (char *format, ...)
|
||||
}
|
||||
|
||||
void
|
||||
glibtop_warn (char *format, ...)
|
||||
glibtop_warn (const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
@@ -150,7 +149,7 @@ glibtop_warn (char *format, ...)
|
||||
}
|
||||
|
||||
void
|
||||
glibtop_error_io (char *format, ...)
|
||||
glibtop_error_io (const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
@@ -159,12 +158,10 @@ glibtop_error_io (char *format, ...)
|
||||
}
|
||||
|
||||
void
|
||||
glibtop_warn_io (char *format, ...)
|
||||
glibtop_warn_io (const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
glibtop_warn_io_vr (glibtop_global_server, format, errno, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
#endif /* __GNUC__ */
|
||||
|
@@ -126,9 +126,10 @@ static const unsigned long _glibtop_sysdeps_fsusage =
|
||||
*/
|
||||
|
||||
#ifdef linux
|
||||
void _glibtop_linux_get_fsusage_read_write(glibtop *server,
|
||||
glibtop_fsusage *buf,
|
||||
const char *path);
|
||||
void G_GNUC_INTERNAL
|
||||
_glibtop_linux_get_fsusage_read_write(glibtop *server,
|
||||
glibtop_fsusage *buf,
|
||||
const char *path);
|
||||
|
||||
#define _glibtop_get_fsusage_read_write(S, B, P) \
|
||||
_glibtop_linux_get_fsusage_read_write(S, B, P)
|
||||
|
@@ -1,3 +1,19 @@
|
||||
2005-01-10 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* procopenfiles.c: (get_socket_endpoint): Fixed.
|
||||
|
||||
2005-01-10 Benoît Dejean <TazForEver@dlfp.org>
|
||||
|
||||
* glibtop_server.h:
|
||||
* procopenfiles.c: (get_socket_endpoint): Disabled.
|
||||
|
||||
(glibtop_get_proc_open_files_s): Secured -> g_snprintf.
|
||||
|
||||
2004-12-23 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* fsusage.c: (_glibtop_linux_get_fsusage_read_write):
|
||||
* glibtop_private.h: Marked private functions G_GNUC_INTERNAL.
|
||||
|
||||
2004-11-30 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* proclist.c: (glibtop_get_proclist_s): Glibified. g_array_free which
|
||||
|
@@ -8,7 +8,7 @@ libgtop_sysdeps_2_0_la_SOURCES = open.c close.c cpu.c mem.c swap.c \
|
||||
proctime.c procmem.c procsignal.c prockernel.c \
|
||||
procsegment.c procargs.c procmap.c siglist.c \
|
||||
sysinfo.c netload.c ppp.c glibtop_private.c \
|
||||
fsusage.c netlist.c
|
||||
fsusage.c netlist.c procopenfiles.c
|
||||
|
||||
libgtop_sysdeps_2_0_la_LIBADD = @GLIB_LIBS@
|
||||
|
||||
|
@@ -37,6 +37,14 @@ static const unsigned long _glibtop_sysdeps_cpu_smp =
|
||||
(1L << GLIBTOP_XCPU_NICE) + (1L << GLIBTOP_XCPU_SYS) +
|
||||
(1L << GLIBTOP_XCPU_IDLE);
|
||||
|
||||
static const unsigned long _glibtop_sysdeps_cpu_2_6 =
|
||||
(1L << GLIBTOP_CPU_IOWAIT) + (1L << GLIBTOP_CPU_IRQ) +
|
||||
(1L << GLIBTOP_CPU_SOFTIRQ);
|
||||
|
||||
static const unsigned long _glibtop_sysdeps_cpu_smp_2_6 =
|
||||
(1L << GLIBTOP_XCPU_IOWAIT) + (1L << GLIBTOP_XCPU_IRQ) +
|
||||
(1L << GLIBTOP_XCPU_SOFTIRQ);
|
||||
|
||||
/* Init function. */
|
||||
|
||||
void
|
||||
@@ -46,6 +54,15 @@ glibtop_init_cpu_s (glibtop *server)
|
||||
|
||||
if (server->ncpu)
|
||||
server->sysdeps.cpu |= _glibtop_sysdeps_cpu_smp;
|
||||
|
||||
|
||||
if(server->os_version_code >= LINUX_VERSION_CODE(2, 6, 0))
|
||||
{
|
||||
server->sysdeps.cpu |= _glibtop_sysdeps_cpu_2_6;
|
||||
|
||||
if (server->ncpu)
|
||||
server->sysdeps.cpu |= _glibtop_sysdeps_cpu_smp_2_6;
|
||||
}
|
||||
}
|
||||
|
||||
/* Provides information about cpu usage. */
|
||||
@@ -76,9 +93,15 @@ glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
|
||||
buf->idle = strtoull (p, &p, 0);
|
||||
|
||||
/* 2.6 kernel */
|
||||
buf->idle += strtoull(p, &p, 0); /* "iowait" */
|
||||
buf->sys += strtoull(p, &p, 0); /* "irq" */
|
||||
buf->sys += strtoull(p, &p, 0); /* "softirq" */
|
||||
if(server->os_version_code >= LINUX_VERSION_CODE(2, 6, 0))
|
||||
{
|
||||
buf->iowait = strtoull(p, &p, 0);
|
||||
buf->irq = strtoull(p, &p, 0);
|
||||
buf->softirq = strtoull(p, &p, 0);
|
||||
|
||||
buf->idle += buf->iowait;
|
||||
buf->sys += buf->irq + buf->softirq;
|
||||
}
|
||||
|
||||
buf->total = buf->user + buf->nice + buf->sys + buf->idle;
|
||||
|
||||
@@ -104,9 +127,15 @@ glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
|
||||
buf->xcpu_idle [i] = strtoull (p, &p, 0);
|
||||
|
||||
/* 2.6 kernel */
|
||||
buf->xcpu_idle [i] += strtoull(p, &p, 0); /* "iowait" */
|
||||
buf->xcpu_sys [i] += strtoull(p, &p, 0); /* "irq" */
|
||||
buf->xcpu_sys [i] += strtoull(p, &p, 0); /* "softirq" */
|
||||
if(server->os_version_code >= LINUX_VERSION_CODE(2, 6, 0))
|
||||
{
|
||||
buf->xcpu_iowait [i] = strtoull(p, &p, 0);
|
||||
buf->xcpu_irq [i] = strtoull(p, &p, 0);
|
||||
buf->xcpu_softirq [i] = strtoull(p, &p, 0);
|
||||
|
||||
buf->xcpu_idle [i] += buf->xcpu_iowait [i];
|
||||
buf->xcpu_sys [i] += buf->xcpu_irq [i] + buf->xcpu_softirq [i];
|
||||
}
|
||||
|
||||
buf->xcpu_total[i] = buf->xcpu_user [i] \
|
||||
+ buf->xcpu_nice [i] \
|
||||
@@ -116,4 +145,12 @@ glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf)
|
||||
|
||||
if(i >= 2) /* ok, that's a real SMP */
|
||||
buf->flags |= _glibtop_sysdeps_cpu_smp;
|
||||
|
||||
if(server->os_version_code >= LINUX_VERSION_CODE(2, 6, 0))
|
||||
{
|
||||
buf->flags |= _glibtop_sysdeps_cpu_2_6;
|
||||
|
||||
if(i >= 2) /* ok, that's a real SMP */
|
||||
buf->flags |= _glibtop_sysdeps_cpu_smp_2_6;
|
||||
}
|
||||
}
|
||||
|
@@ -13,9 +13,11 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
void _glibtop_linux_get_fsusage_read_write(glibtop *server,
|
||||
glibtop_fsusage *buf,
|
||||
const char *path);
|
||||
void
|
||||
G_GNUC_INTERNAL
|
||||
_glibtop_linux_get_fsusage_read_write(glibtop *server,
|
||||
glibtop_fsusage *buf,
|
||||
const char *path);
|
||||
|
||||
/*
|
||||
* Linux 2.6.x
|
||||
@@ -92,9 +94,10 @@ static void linux_2_4_0(glibtop *server, glibtop_fsusage *buf, const char *path)
|
||||
}
|
||||
|
||||
|
||||
void _glibtop_linux_get_fsusage_read_write(glibtop *server,
|
||||
glibtop_fsusage *buf,
|
||||
const char *path)
|
||||
void G_GNUC_INTERNAL
|
||||
_glibtop_linux_get_fsusage_read_write(glibtop *server,
|
||||
glibtop_fsusage *buf,
|
||||
const char *path)
|
||||
{
|
||||
if(server->os_version_code >= LINUX_VERSION_CODE(2, 6, 0))
|
||||
{
|
||||
|
@@ -67,17 +67,17 @@ skip_line (const char *p)
|
||||
}
|
||||
|
||||
|
||||
unsigned long long
|
||||
unsigned long long G_GNUC_INTERNAL
|
||||
get_scaled(const char *buffer, const char *key);
|
||||
|
||||
|
||||
/* aborts on error */
|
||||
void
|
||||
void G_GNUC_INTERNAL
|
||||
file_to_buffer(glibtop *server, char *buffer, const char *filename);
|
||||
|
||||
/* return < 0 on error, otherwise 0 on success */
|
||||
int
|
||||
try_file_to_buffer(char *buffer, const char *format, ...);
|
||||
int G_GNUC_INTERNAL
|
||||
try_file_to_buffer(char *buffer, const char *format, ...) G_GNUC_PRINTF(2, 3);
|
||||
|
||||
|
||||
/* some inline functions that wrap proc path
|
||||
|
@@ -44,5 +44,6 @@
|
||||
#define GLIBTOP_SUID_PROC_MAP 0
|
||||
#define GLIBTOP_SUID_NETLOAD 0
|
||||
#define GLIBTOP_SUID_PPP 0
|
||||
#define GLIBTOP_SUID_PROC_FILE 0
|
||||
|
||||
#endif /* __LINUX__GLIBTOP_SERVER_H__ */
|
||||
|
156
sysdeps/linux/procopenfiles.c
Normal file
156
sysdeps/linux/procopenfiles.c
Normal file
@@ -0,0 +1,156 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
Copyright (C) 2004 Nicol<6F>s Lichtmaier
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Modified by Nicol<6F>s Lichtmaier to give a process open files.
|
||||
|
||||
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/error.h>
|
||||
#include <glibtop/procopenfiles.h>
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include "glibtop_private.h"
|
||||
|
||||
static const unsigned long _glibtop_sysdeps_proc_open_files =
|
||||
(1L << GLIBTOP_PROC_OPEN_FILES_NUMBER)|
|
||||
(1L << GLIBTOP_PROC_OPEN_FILES_TOTAL)|
|
||||
(1L << GLIBTOP_PROC_OPEN_FILES_SIZE);
|
||||
|
||||
/* Init function. */
|
||||
|
||||
void
|
||||
glibtop_init_proc_open_files_s (glibtop *server)
|
||||
{
|
||||
server->sysdeps.proc_open_files = _glibtop_sysdeps_proc_open_files;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
get_socket_endpoint(char *buf, int *prmtport, int s)
|
||||
{
|
||||
FILE *f;
|
||||
char line[1024];
|
||||
|
||||
buf[0] = '\0';
|
||||
*prmtport = 0;
|
||||
|
||||
f = fopen("/proc/net/tcp", "r");
|
||||
if(!f)
|
||||
return;
|
||||
|
||||
if(!fgets(line, sizeof line, f)) goto eof;
|
||||
|
||||
|
||||
while(fgets(line, sizeof line, f))
|
||||
{
|
||||
unsigned int rmt;
|
||||
int sock = -42;
|
||||
|
||||
sscanf(line, "%*d: %*x:%*x %8x:%4x %*x %*x:%*x %*x:%*x %*d %*d %*d %d",
|
||||
&rmt, prmtport, &sock);
|
||||
|
||||
if(sock == s)
|
||||
{
|
||||
inet_ntop(AF_INET, &rmt, buf, GLIBTOP_OPEN_DEST_HOST_LEN);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
eof:
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
/* Provides detailed information about a process' open files */
|
||||
|
||||
glibtop_open_files_entry *
|
||||
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid)
|
||||
{
|
||||
char fn [BUFSIZ];
|
||||
GArray *entries;
|
||||
struct dirent *direntry;
|
||||
int rv;
|
||||
DIR *dir;
|
||||
|
||||
glibtop_init_s (&server, GLIBTOP_SYSDEPS_PROC_OPEN_FILES, 0);
|
||||
|
||||
memset (buf, 0, sizeof (glibtop_proc_open_files));
|
||||
|
||||
sprintf (fn, "/proc/%d/fd", pid);
|
||||
|
||||
dir = opendir (fn);
|
||||
if (!dir) return NULL;
|
||||
|
||||
entries = g_array_new(FALSE, FALSE, sizeof(glibtop_open_files_entry));
|
||||
|
||||
while((direntry = readdir(dir))) {
|
||||
char tgt [BUFSIZ];
|
||||
glibtop_open_files_entry entry = {0};
|
||||
|
||||
|
||||
if(direntry->d_name[0] == '.')
|
||||
continue;
|
||||
|
||||
g_snprintf(fn, sizeof fn, "/proc/%d/fd/%s",
|
||||
pid, direntry->d_name);
|
||||
|
||||
rv = readlink(fn, tgt, sizeof(tgt) - 1);
|
||||
if(rv < 0) continue;
|
||||
tgt[rv] = '\0';
|
||||
|
||||
entry.fd = atoi(direntry->d_name);
|
||||
|
||||
if(g_str_has_prefix(tgt, "socket:["))
|
||||
{
|
||||
int sockfd;
|
||||
entry.type = GLIBTOP_FILE_TYPE_INETSOCKET;
|
||||
sockfd = atoi(tgt + 8);
|
||||
get_socket_endpoint(entry.info.sock.dest_host,
|
||||
&(entry.info.sock.dest_port),
|
||||
sockfd);
|
||||
}
|
||||
else if(g_str_has_prefix(tgt, "pipe:["))
|
||||
{
|
||||
entry.type = GLIBTOP_FILE_TYPE_PIPE;
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.type = GLIBTOP_FILE_TYPE_FILE;
|
||||
g_strlcpy(entry.info.file.name, tgt, sizeof entry.info.file.name);
|
||||
}
|
||||
|
||||
g_array_append_val(entries, entry);
|
||||
}
|
||||
|
||||
closedir (dir);
|
||||
|
||||
buf->flags = _glibtop_sysdeps_proc_open_files;
|
||||
buf->number = entries->len;
|
||||
buf->size = sizeof(glibtop_open_files_entry);
|
||||
buf->total = buf->number * buf->size;
|
||||
|
||||
return (glibtop_open_files_entry*)g_array_free(entries, FALSE);
|
||||
}
|
@@ -1,3 +1,7 @@
|
||||
2004-12-23 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* netlist.c: (glibtop_get_netlist_s): Fixed.
|
||||
|
||||
2004-11-13 Benoît Dejean <tazforever@dlfp.org>
|
||||
|
||||
* Makefile.am:
|
||||
|
@@ -8,7 +8,7 @@ libgtop_sysdeps_2_0_la_SOURCES = open.c close.c siglist.c cpu.c mem.c swap.c \
|
||||
sem_limits.c proclist.c procstate.c procuid.c \
|
||||
proctime.c procmem.c procsignal.c prockernel.c \
|
||||
procsegment.c procargs.c procmap.c netload.c \
|
||||
ppp.c netlist.c
|
||||
ppp.c netlist.c procopenfiles.c
|
||||
|
||||
libgtop_sysdeps_2_0_la_LDFLAGS = $(LT_VERSION_INFO)
|
||||
|
||||
|
@@ -1,9 +1,6 @@
|
||||
/* $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.
|
||||
/* 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
|
||||
@@ -34,10 +31,10 @@ glibtop_init_netlist_s (glibtop *server)
|
||||
server->sysdeps.netlist = _glibtop_sysdeps_netlist;
|
||||
}
|
||||
|
||||
/* Provides load averange. */
|
||||
|
||||
void
|
||||
char**
|
||||
glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf)
|
||||
{
|
||||
memset (buf, 0, sizeof (glibtop_netlist));
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
48
sysdeps/stub/procopenfiles.c
Normal file
48
sysdeps/stub/procopenfiles.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
Copyright (C) 2004 Nicol<6F>s Lichtmaier
|
||||
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/error.h>
|
||||
#include <glibtop/procopenfiles.h>
|
||||
|
||||
/* Init function. */
|
||||
|
||||
void
|
||||
glibtop_init_proc_open_files_s (glibtop *server)
|
||||
{
|
||||
server->sysdeps.proc_open_files = 0;
|
||||
}
|
||||
|
||||
/* Provides detailed information about a process. */
|
||||
|
||||
glibtop_open_file_entry *
|
||||
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid)
|
||||
{
|
||||
glibtop_init_s (&server, GLIBTOP_SYSDEPS_PROC_MAP, 0);
|
||||
|
||||
memset (buf, 0, sizeof (glibtop_proc_open_files));
|
||||
|
||||
return NULL;
|
||||
}
|
Reference in New Issue
Block a user