New file. Added definition of `proc_map'.
1998-08-10 Martin Baulig <martin@home-of-linux.org> * include/glibtop/procmap.h (glibtop_proc_map): New file. * features.def: Added definition of `proc_map'.
This commit is contained in:
		
				
					committed by
					
						
						Martin Baulig
					
				
			
			
				
	
			
			
			
						parent
						
							b6885555c1
						
					
				
				
					commit
					d9361d388c
				
			@@ -1,5 +1,8 @@
 | 
			
		||||
1998-08-10  Martin Baulig  <martin@home-of-linux.org>
 | 
			
		||||
 | 
			
		||||
	* include/glibtop/procmap.h (glibtop_proc_map): New file.
 | 
			
		||||
	* features.def: Added definition of `proc_map'.
 | 
			
		||||
 | 
			
		||||
	* include/glibtop/proctime.h (glibtop_proc_time): Added new
 | 
			
		||||
	fields `rtime' and `frequency'.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ DEFS			= @DEFS@
 | 
			
		||||
 | 
			
		||||
bin_PROGRAMS		= first first_static second second_static \
 | 
			
		||||
			  mountlist mountlist_static \
 | 
			
		||||
			  procmap procmap_static \
 | 
			
		||||
			  @guile_examples@
 | 
			
		||||
 | 
			
		||||
EXTRA_PROGRAMS		= third third_static
 | 
			
		||||
@@ -32,6 +33,18 @@ second_static_SOURCES	= $(second_SOURCES)
 | 
			
		||||
second_static_LDADD	= $(second_LDADD)
 | 
			
		||||
second_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
procmap_SOURCES		= procmap.c
 | 
			
		||||
procmap_LDADD		= $(top_builddir)/lib/libgtop.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/common/libgtop_common.la \
 | 
			
		||||
			  $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
 | 
			
		||||
			  @INTLLIBS@ @LIBSUPPORT@ @libs_xauth@
 | 
			
		||||
 | 
			
		||||
procmap_static_SOURCES	= $(procmap_SOURCES)
 | 
			
		||||
procmap_static_LDADD	= $(procmap_LDADD)
 | 
			
		||||
procmap_static_LDFLAGS	= -static
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
third_guile_names_LIBS	= $(top_builddir)/sysdeps/guile/names/libgtop_guile_names.la
 | 
			
		||||
third_names_LIBS	= $(top_builddir)/sysdeps/names/libgtop_names.la
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -32,6 +32,7 @@
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT	1
 | 
			
		||||
@@ -43,10 +44,12 @@ main (int argc, char *argv [])
 | 
			
		||||
	glibtop_union data;
 | 
			
		||||
	glibtop_sysdeps sysdeps;
 | 
			
		||||
	unsigned c, method, count, port, i, *ptr;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
	char buffer [BUFSIZ], *mmap_ptr;
 | 
			
		||||
	struct rlimit rlim;
 | 
			
		||||
	struct rusage ru;
 | 
			
		||||
	struct stat statb;
 | 
			
		||||
	pid_t pid, ppid;
 | 
			
		||||
	int fd;
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
@@ -74,6 +77,18 @@ main (int argc, char *argv [])
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	fd = open ("/COPYRIGHT", O_RDONLY);
 | 
			
		||||
	if (!fd) glibtop_error_io ("open (/COPYRIGHT)");
 | 
			
		||||
 | 
			
		||||
	if (stat ("/COPYRIGHT", &statb))
 | 
			
		||||
		glibtop_error_io ("stat (/COPYRIGHT)");
 | 
			
		||||
 | 
			
		||||
	mmap_ptr = mmap (NULL, statb.st_size, PROT_READ | PROT_WRITE,
 | 
			
		||||
			 MAP_PRIVATE, fd, 0);
 | 
			
		||||
	if (!mmap_ptr) glibtop_error_io ("mmap (/COPYRIGHT)");
 | 
			
		||||
 | 
			
		||||
	fprintf (stderr, "MMAP: %p - %lu\n", mmap_ptr, statb.st_size);
 | 
			
		||||
 | 
			
		||||
	for (c = 0; c < PROFILE_COUNT; c++)
 | 
			
		||||
	  	glibtop_get_cpu (&data.cpu);
 | 
			
		||||
 | 
			
		||||
@@ -247,6 +262,20 @@ main (int argc, char *argv [])
 | 
			
		||||
		 (unsigned long) rlim.rlim_max,
 | 
			
		||||
		 (unsigned long) ((1 << 63) - 1));
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     PID  %5u (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", pid,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
		(unsigned long) data.proc_mem.size,
 | 
			
		||||
		(unsigned long) data.proc_mem.vsize,
 | 
			
		||||
		(unsigned long) data.proc_mem.resident,
 | 
			
		||||
		(unsigned long) data.proc_mem.share,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss,
 | 
			
		||||
		(unsigned long) data.proc_mem.rss_rlim);
 | 
			
		||||
 | 
			
		||||
	mmap_ptr [0] = 'M';
 | 
			
		||||
	
 | 
			
		||||
	glibtop_get_proc_mem (&data.proc_mem, pid);
 | 
			
		||||
 | 
			
		||||
	printf ("Proc_Mem     PID  %5u (0x%08lx): "
 | 
			
		||||
		"%lu %lu %lu %lu %lu %lu\n", pid,
 | 
			
		||||
		(unsigned long) data.proc_mem.flags,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										96
									
								
								examples/procmap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								examples/procmap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
 | 
			
		||||
   This file is part of the Gnome Top Library.
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   The Gnome Top Library is free software; you can redistribute it and/or
 | 
			
		||||
   modify it under the terms of the GNU Library General Public License as
 | 
			
		||||
   published by the Free Software Foundation; either version 2 of the
 | 
			
		||||
   License, or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   The Gnome Top Library 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
 | 
			
		||||
   Library General Public License for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU Library General Public
 | 
			
		||||
   License along with the GNU C Library; see the file COPYING.LIB.  If not,
 | 
			
		||||
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.  */
 | 
			
		||||
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/open.h>
 | 
			
		||||
#include <glibtop/close.h>
 | 
			
		||||
#include <glibtop/xmalloc.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/parameter.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/procmap.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
 | 
			
		||||
#ifndef PROFILE_COUNT
 | 
			
		||||
#define PROFILE_COUNT	1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char *argv [])
 | 
			
		||||
{
 | 
			
		||||
	glibtop_proc_map procmap;
 | 
			
		||||
	glibtop_map_entry *maps;
 | 
			
		||||
	unsigned method, count, port, i, *ptr;
 | 
			
		||||
	char buffer [BUFSIZ];
 | 
			
		||||
	pid_t pid;
 | 
			
		||||
 | 
			
		||||
	count = PROFILE_COUNT;
 | 
			
		||||
 | 
			
		||||
	setlocale (LC_ALL, "");
 | 
			
		||||
	bindtextdomain (PACKAGE, GTOPLOCALEDIR);
 | 
			
		||||
	textdomain (PACKAGE);
 | 
			
		||||
	
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
 | 
			
		||||
 | 
			
		||||
	printf ("Method = %d\n", method);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	printf ("Command = '%s'\n", buffer);
 | 
			
		||||
 | 
			
		||||
	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
 | 
			
		||||
	buffer [count] = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
 | 
			
		||||
 | 
			
		||||
	printf ("Host = '%s' - %u\n\n", buffer, port);
 | 
			
		||||
 | 
			
		||||
	glibtop_init_r (&glibtop_global_server, 0, 0);
 | 
			
		||||
 | 
			
		||||
	if ((argc != 2) || (sscanf (argv [1], "%d", &pid) != 1))
 | 
			
		||||
		glibtop_error ("Usage: %s pid", argv [0]);
 | 
			
		||||
 | 
			
		||||
	fprintf (stderr, "Getting memory maps for pid %d.\n\n", pid);
 | 
			
		||||
 | 
			
		||||
	maps = glibtop_get_proc_map (&procmap, pid);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < procmap.number; i++) {
 | 
			
		||||
		fprintf (stderr, "%08x - %08x - %08lu - %08lu - '%s'\n",
 | 
			
		||||
			 (unsigned long) maps [i].start,
 | 
			
		||||
			 (unsigned long) maps [i].end,
 | 
			
		||||
			 (unsigned long) maps [i].device,
 | 
			
		||||
			 (unsigned long) maps [i].inode,
 | 
			
		||||
			 devname (maps [i].device, S_IFBLK));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	glibtop_free (maps);
 | 
			
		||||
 | 
			
		||||
	glibtop_close ();
 | 
			
		||||
 | 
			
		||||
	exit (0);
 | 
			
		||||
}
 | 
			
		||||
@@ -14,5 +14,6 @@ void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_v
 | 
			
		||||
void|proc_signal|ulong(signal,blocked,sigignore,sigcatch)|pid_t(pid)
 | 
			
		||||
void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,nwchan):str(wchan)|pid_t(pid)
 | 
			
		||||
void|proc_segment|long(trs,lrs,drs,dt):ulong(start_code,end_code,start_stack)|pid_t(pid)
 | 
			
		||||
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
 | 
			
		||||
glibtop_mountentry *|@mountlist|ulong(number,size,total)|pid_t(all_fs)
 | 
			
		||||
void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,10 @@
 | 
			
		||||
#include <glibtop_machine.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef GLIBTOP_MOUNTENTRY_LEN
 | 
			
		||||
#define GLIBTOP_MOUNTENTRY_LEN	79
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop		glibtop;
 | 
			
		||||
 | 
			
		||||
#include <glibtop/sysdeps.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -6,4 +6,4 @@ glibtop_HEADERS		= close.h loadavg.h prockernel.h procstate.h \
 | 
			
		||||
			  procmem.h procuid.h swap.h write.h error.h open.h \
 | 
			
		||||
			  procsegment.h read.h sysdeps.h xmalloc.h global.h \
 | 
			
		||||
			  procsignal.h read_data.h union.h types.h \
 | 
			
		||||
			  parameter.h mountlist.h fsusage.h
 | 
			
		||||
			  parameter.h mountlist.h fsusage.h procmap.h
 | 
			
		||||
 
 | 
			
		||||
@@ -48,11 +48,12 @@ __BEGIN_DECLS
 | 
			
		||||
#define GLIBTOP_CMND_PROC_SIGNAL	15
 | 
			
		||||
#define GLIBTOP_CMND_PROC_KERNEL	16
 | 
			
		||||
#define GLIBTOP_CMND_PROC_SEGMENT	17
 | 
			
		||||
#define GLIBTOP_CMND_PROC_MAP		18
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_CMND_MOUNTLIST		18
 | 
			
		||||
#define GLIBTOP_CMND_FSUSAGE		19
 | 
			
		||||
#define GLIBTOP_CMND_MOUNTLIST		19
 | 
			
		||||
#define GLIBTOP_CMND_FSUSAGE		20
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_CMND		20
 | 
			
		||||
#define GLIBTOP_MAX_CMND		21
 | 
			
		||||
 | 
			
		||||
#define _GLIBTOP_PARAM_SIZE		16
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,8 +33,6 @@ __BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_MOUNTLIST		3
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MOUNTENTRY_LEN		79
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_mountentry	glibtop_mountentry;
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_mountlist	glibtop_mountlist;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										103
									
								
								include/glibtop/procmap.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								include/glibtop/procmap.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,103 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
 | 
			
		||||
   This file is part of the Gnome Top Library.
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   The Gnome Top Library is free software; you can redistribute it and/or
 | 
			
		||||
   modify it under the terms of the GNU Library General Public License as
 | 
			
		||||
   published by the Free Software Foundation; either version 2 of the
 | 
			
		||||
   License, or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   The Gnome Top Library 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
 | 
			
		||||
   Library General Public License for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU Library General Public
 | 
			
		||||
   License along with the GNU C Library; see the file COPYING.LIB.  If not,
 | 
			
		||||
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.  */
 | 
			
		||||
 | 
			
		||||
#ifndef __GLIBTOP_PROC_MAP_H__
 | 
			
		||||
#define __GLIBTOP_PROC_MAP_H__
 | 
			
		||||
 | 
			
		||||
#include <glibtop.h>
 | 
			
		||||
#include <glibtop/global.h>
 | 
			
		||||
 | 
			
		||||
__BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_PROC_MAP_NUMBER	0
 | 
			
		||||
#define GLIBTOP_PROC_MAP_TOTAL	1
 | 
			
		||||
#define GLIBTOP_PROC_MAP_SIZE	2
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_PROC_MAP	3
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_map_entry	glibtop_map_entry;
 | 
			
		||||
 | 
			
		||||
typedef struct _glibtop_proc_map	glibtop_proc_map;
 | 
			
		||||
 | 
			
		||||
struct _glibtop_map_entry
 | 
			
		||||
{
 | 
			
		||||
	u_int64_t start, end, inode, device;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _glibtop_proc_map
 | 
			
		||||
{
 | 
			
		||||
	u_int64_t	flags,
 | 
			
		||||
		number,			/* GLIBTOP_PROC_MAP_NUMBER	*/
 | 
			
		||||
		total,			/* GLIBTOP_PROC_MAP_TOTAL	*/
 | 
			
		||||
		size;			/* GLIBTOP_PROC_MAP_SIZE	*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define glibtop_get_proc_map(proc_map,pid) glibtop_get_proc_map_l(glibtop_global_server, proc_map, pid)
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_PROC_MAP
 | 
			
		||||
#define glibtop_get_proc_map_r		glibtop_get_proc_map_p
 | 
			
		||||
#else
 | 
			
		||||
#define glibtop_get_proc_map_r		glibtop_get_proc_map_s
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
extern glibtop_map_entry *glibtop_get_proc_map_l __P((glibtop *, glibtop_proc_map *, pid_t));
 | 
			
		||||
 | 
			
		||||
#if GLIBTOP_SUID_PROC_MAP
 | 
			
		||||
extern void glibtop_init_proc_map_p __P((glibtop *));
 | 
			
		||||
extern glibtop_map_entry *glibtop_get_proc_map_p __P((glibtop *, glibtop_proc_map *, pid_t));
 | 
			
		||||
#else
 | 
			
		||||
extern void glibtop_init_proc_map_s __P((glibtop *));
 | 
			
		||||
extern glibtop_map_entry *glibtop_get_proc_map_s __P((glibtop *, glibtop_proc_map *, pid_t));
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_GUILE
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_guile to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern SCM glibtop_guile_get_proc_map __P((SCM));
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_GUILE_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_guile_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern SCM glibtop_guile_names_proc_map __P((void));
 | 
			
		||||
extern SCM glibtop_guile_types_proc_map __P((void));
 | 
			
		||||
extern SCM glibtop_guile_labels_proc_map __P((void));
 | 
			
		||||
extern SCM glibtop_guile_descriptions_proc_map __P((void));
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLIBTOP_NAMES
 | 
			
		||||
 | 
			
		||||
/* You need to link with -lgtop_names to get this stuff here. */
 | 
			
		||||
 | 
			
		||||
extern const char *glibtop_names_proc_map [];
 | 
			
		||||
extern const unsigned glibtop_types_proc_map [];
 | 
			
		||||
extern const char *glibtop_labels_proc_map [];
 | 
			
		||||
extern const char *glibtop_descriptions_proc_map [];
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
__END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -43,10 +43,11 @@ __BEGIN_DECLS
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_SIGNAL	14
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_KERNEL	15
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_SEGMENT	16
 | 
			
		||||
#define GLIBTOP_SYSDEPS_MOUNTLIST	17
 | 
			
		||||
#define GLIBTOP_SYSDEPS_FSUSAGE		18
 | 
			
		||||
#define GLIBTOP_SYSDEPS_PROC_MAP	17
 | 
			
		||||
#define GLIBTOP_SYSDEPS_MOUNTLIST	18
 | 
			
		||||
#define GLIBTOP_SYSDEPS_FSUSAGE		19
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_MAX_SYSDEPS		19
 | 
			
		||||
#define GLIBTOP_MAX_SYSDEPS		20
 | 
			
		||||
 | 
			
		||||
#define GLIBTOP_SYSDEPS_ALL		((1 << GLIBTOP_MAX_SYSDEPS) - 1)
 | 
			
		||||
 | 
			
		||||
@@ -76,6 +77,7 @@ struct _glibtop_sysdeps
 | 
			
		||||
		proc_signal,		/* glibtop_proc_signal	*/
 | 
			
		||||
		proc_kernel,		/* glibtop_proc_kernel	*/
 | 
			
		||||
		proc_segment,		/* glibtop_proc_segment	*/
 | 
			
		||||
		proc_map,		/* glibtop_proc_map	*/
 | 
			
		||||
		mountlist,		/* glibtop_mountlist	*/
 | 
			
		||||
		fsusage;		/* glibtop_fsusage	*/
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -39,6 +39,7 @@
 | 
			
		||||
#include <glibtop/procsignal.h>
 | 
			
		||||
#include <glibtop/prockernel.h>
 | 
			
		||||
#include <glibtop/procsegment.h>
 | 
			
		||||
#include <glibtop/procmap.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop/mountlist.h>
 | 
			
		||||
#include <glibtop/fsusage.h>
 | 
			
		||||
@@ -65,6 +66,7 @@ union _glibtop_union
 | 
			
		||||
	glibtop_proc_signal	proc_signal;
 | 
			
		||||
	glibtop_proc_kernel	proc_kernel;
 | 
			
		||||
	glibtop_proc_segment	proc_segment;
 | 
			
		||||
	glibtop_proc_map	proc_map;
 | 
			
		||||
	glibtop_mountlist	mountlist;
 | 
			
		||||
	glibtop_fsusage		fsusage;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,8 @@ GLIBTOP_SUID_PROC_MEM +
 | 
			
		||||
GLIBTOP_SUID_PROC_TIME +
 | 
			
		||||
GLIBTOP_SUID_PROC_SIGNAL +
 | 
			
		||||
GLIBTOP_SUID_PROC_KERNEL +
 | 
			
		||||
GLIBTOP_SUID_PROC_SEGMENT;
 | 
			
		||||
GLIBTOP_SUID_PROC_SEGMENT +
 | 
			
		||||
GLIBTOP_SUID_PROC_MAP;
 | 
			
		||||
 | 
			
		||||
glibtop_init_func_t _glibtop_init_hook_s [] = {
 | 
			
		||||
#if !GLIBTOP_SUID_CPU
 | 
			
		||||
@@ -87,6 +88,9 @@ glibtop_init_func_t _glibtop_init_hook_s [] = {
 | 
			
		||||
#endif
 | 
			
		||||
#if !GLIBTOP_SUID_PROC_SEGMENT
 | 
			
		||||
	glibtop_init_proc_segment_s,
 | 
			
		||||
#endif
 | 
			
		||||
#if !GLIBTOP_SUID_PROC_MAP
 | 
			
		||||
	glibtop_init_proc_map_s,
 | 
			
		||||
#endif
 | 
			
		||||
	NULL
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -141,6 +141,15 @@ handle_parent_connection (int s)
 | 
			
		||||
				   resp->u.data.proclist.total, ptr);
 | 
			
		||||
			glibtop_free_r (server, ptr);
 | 
			
		||||
			break;
 | 
			
		||||
		case GLIBTOP_CMND_PROC_MAP:
 | 
			
		||||
			memcpy (&pid, parameter, sizeof (pid_t));
 | 
			
		||||
			ptr = glibtop_get_proc_map_l (server,
 | 
			
		||||
						      &resp->u.data.proc_map,
 | 
			
		||||
						      pid);
 | 
			
		||||
			do_output (s, resp, _offset_data (proc_map),
 | 
			
		||||
				   resp->u.data.proc_map.total, ptr);
 | 
			
		||||
			glibtop_free_r (server, ptr);
 | 
			
		||||
			break;
 | 
			
		||||
		case GLIBTOP_CMND_PROC_STATE:
 | 
			
		||||
			memcpy (&pid, parameter, sizeof (pid_t));
 | 
			
		||||
			glibtop_get_proc_state_l
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,8 @@ GLIBTOP_SUID_PROC_MEM +
 | 
			
		||||
GLIBTOP_SUID_PROC_TIME +
 | 
			
		||||
GLIBTOP_SUID_PROC_SIGNAL +
 | 
			
		||||
GLIBTOP_SUID_PROC_KERNEL +
 | 
			
		||||
GLIBTOP_SUID_PROC_SEGMENT;
 | 
			
		||||
GLIBTOP_SUID_PROC_SEGMENT +
 | 
			
		||||
GLIBTOP_SUID_PROC_MEM;
 | 
			
		||||
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -30,6 +30,7 @@ handle_slave_connection (int input, int output)
 | 
			
		||||
	char parameter [BUFSIZ];
 | 
			
		||||
	int64_t *param_ptr;
 | 
			
		||||
	void *ptr;
 | 
			
		||||
	pid_t pid;
 | 
			
		||||
 | 
			
		||||
	glibtop_send_version (glibtop_global_server, output);
 | 
			
		||||
 | 
			
		||||
@@ -74,6 +75,17 @@ handle_slave_connection (int input, int output)
 | 
			
		||||
				   resp->u.data.proclist.total, ptr);
 | 
			
		||||
			glibtop_free_r (server, ptr);
 | 
			
		||||
			break;
 | 
			
		||||
#endif
 | 
			
		||||
#if GLIBTOP_SUID_PROC_MAP
 | 
			
		||||
		case GLIBTOP_CMND_PROC_MAP:
 | 
			
		||||
			memcpy (&pid, parameter, sizeof (pid_t));
 | 
			
		||||
			ptr = glibtop_get_proc_map_p (server,
 | 
			
		||||
						      &resp->u.data.proc_map,
 | 
			
		||||
						      pid);
 | 
			
		||||
			do_output (output, resp, _offset_data (proc_map),
 | 
			
		||||
				   resp->u.data.proc_map.total, ptr);
 | 
			
		||||
			glibtop_free_r (server, ptr);
 | 
			
		||||
			break;
 | 
			
		||||
#endif
 | 
			
		||||
		default:
 | 
			
		||||
			handle_slave_command (cmnd, resp, parameter);
 | 
			
		||||
 
 | 
			
		||||
@@ -70,6 +70,9 @@ glibtop_init_func_t _glibtop_init_hook_p [] = {
 | 
			
		||||
#endif
 | 
			
		||||
#if GLIBTOP_SUID_PROC_SEGMENT
 | 
			
		||||
	glibtop_init_proc_segment_p,
 | 
			
		||||
#endif
 | 
			
		||||
#if GLIBTOP_SUID_PROC_MAP
 | 
			
		||||
	glibtop_init_proc_map_p,
 | 
			
		||||
#endif
 | 
			
		||||
	NULL
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,6 @@ libgtop_sysdeps_suid_la_SOURCES	= open.c close.c siglist.c cpu.c mem.c swap.c \
 | 
			
		||||
				  uptime.c loadavg.c shm_limits.c msg_limits.c \
 | 
			
		||||
				  sem_limits.c proclist.c procstate.c procuid.c \
 | 
			
		||||
				  proctime.c procmem.c procsignal.c prockernel.c \
 | 
			
		||||
				  procsegment.c
 | 
			
		||||
				  procsegment.c procmap.c
 | 
			
		||||
 | 
			
		||||
include_HEADERS			= glibtop_server.h glibtop_machine.h
 | 
			
		||||
 
 | 
			
		||||
@@ -40,6 +40,7 @@ __BEGIN_DECLS
 | 
			
		||||
#define GLIBTOP_SUID_PROC_SIGNAL	(1 << GLIBTOP_SYSDEPS_PROC_SIGNAL)
 | 
			
		||||
#define GLIBTOP_SUID_PROC_KERNEL	(1 << GLIBTOP_SYSDEPS_PROC_KERNEL)
 | 
			
		||||
#define GLIBTOP_SUID_PROC_SEGMENT	(1 << GLIBTOP_SYSDEPS_PROC_SEGMENT)
 | 
			
		||||
#define GLIBTOP_SUID_PROC_MAP		(1 << GLIBTOP_SYSDEPS_PROC_MAP)
 | 
			
		||||
 | 
			
		||||
__END_DECLS
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										176
									
								
								sysdeps/freebsd/procmap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										176
									
								
								sysdeps/freebsd/procmap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,176 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
 | 
			
		||||
   This file is part of the Gnome Top Library.
 | 
			
		||||
   Contributed by Joshua Sled <jsled@xcf.berkeley.edu>, July 1998.
 | 
			
		||||
 | 
			
		||||
   The Gnome Top Library is free software; you can redistribute it and/or
 | 
			
		||||
   modify it under the terms of the GNU Library General Public License as
 | 
			
		||||
   published by the Free Software Foundation; either version 2 of the
 | 
			
		||||
   License, or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   The Gnome Top Library 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
 | 
			
		||||
   Library General Public License for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU Library General Public
 | 
			
		||||
   License along with the GNU C Library; see the file COPYING.LIB.  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/xmalloc.h>
 | 
			
		||||
#include <glibtop/procmap.h>
 | 
			
		||||
 | 
			
		||||
#include <glibtop_suid.h>
 | 
			
		||||
 | 
			
		||||
#include <kvm.h>
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#include <sys/proc.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <vm/vm_object.h>
 | 
			
		||||
#include <vm/vm_map.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/vnode.h>
 | 
			
		||||
#include <sys/mount.h>
 | 
			
		||||
#include <ufs/ufs/quota.h>
 | 
			
		||||
#include <ufs/ufs/inode.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/ucred.h>
 | 
			
		||||
#include <sys/user.h>
 | 
			
		||||
#include <sys/sysctl.h>
 | 
			
		||||
#include <vm/vm.h>
 | 
			
		||||
 | 
			
		||||
static const unsigned long _glibtop_sysdeps_proc_map =
 | 
			
		||||
(1 << GLIBTOP_PROC_MAP_TOTAL) + (1 << GLIBTOP_PROC_MAP_NUMBER) +
 | 
			
		||||
(1 << GLIBTOP_PROC_MAP_SIZE);
 | 
			
		||||
 | 
			
		||||
/* Init function. */
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
glibtop_init_proc_map_p (glibtop *server)
 | 
			
		||||
{
 | 
			
		||||
	register int pagesize;
 | 
			
		||||
 | 
			
		||||
	server->sysdeps.proc_map = _glibtop_sysdeps_proc_map;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Provides detailed information about a process. */
 | 
			
		||||
 | 
			
		||||
glibtop_map_entry *
 | 
			
		||||
glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,
 | 
			
		||||
			pid_t pid)
 | 
			
		||||
{
 | 
			
		||||
	struct kinfo_proc *pinfo;
 | 
			
		||||
	struct vm_map_entry entry, *first;
 | 
			
		||||
	struct vmspace *vms, vmspace;
 | 
			
		||||
	struct vm_object object;
 | 
			
		||||
	glibtop_map_entry *maps;
 | 
			
		||||
	struct vnode vnode;
 | 
			
		||||
	struct inode inode;
 | 
			
		||||
	struct mount mount;
 | 
			
		||||
	int count, i = 0;
 | 
			
		||||
	int update = 0;
 | 
			
		||||
 | 
			
		||||
	glibtop_suid_enter (server);
 | 
			
		||||
 | 
			
		||||
	/* Get the process data */
 | 
			
		||||
	pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
 | 
			
		||||
	if ((pinfo == NULL) || (count < 1))
 | 
			
		||||
		glibtop_error_io_r (server, "kvm_getprocs (proclist)");
 | 
			
		||||
 | 
			
		||||
	/* Now we get the memory maps. */
 | 
			
		||||
 | 
			
		||||
	if (kvm_read (server->machine.kd,
 | 
			
		||||
		      (unsigned long) pinfo [0].kp_proc.p_vmspace,
 | 
			
		||||
		      (char *) &vmspace, sizeof (vmspace)) != sizeof (vmspace))
 | 
			
		||||
		glibtop_error_io_r (server, "kvm_read (vmspace)");
 | 
			
		||||
 | 
			
		||||
	first = vmspace.vm_map.header.next;
 | 
			
		||||
 | 
			
		||||
	if (kvm_read (server->machine.kd,
 | 
			
		||||
		      (unsigned long) vmspace.vm_map.header.next,
 | 
			
		||||
		      (char *) &entry, sizeof (entry)) != sizeof (entry))
 | 
			
		||||
		glibtop_error_io_r (server, "kvm_read (entry)");
 | 
			
		||||
 | 
			
		||||
	/* Allocate space. */
 | 
			
		||||
 | 
			
		||||
	buf->number = vmspace.vm_map.nentries;
 | 
			
		||||
	buf->size = sizeof (glibtop_map_entry);
 | 
			
		||||
 | 
			
		||||
	buf->total = buf->number * buf->size;
 | 
			
		||||
 | 
			
		||||
	maps = glibtop_malloc_r (server, buf->total);
 | 
			
		||||
 | 
			
		||||
	memset (maps, 0, buf->total);
 | 
			
		||||
 | 
			
		||||
	buf->flags = _glibtop_sysdeps_proc_map;
 | 
			
		||||
 | 
			
		||||
	/* Walk through the `vm_map_entry' list ... */
 | 
			
		||||
 | 
			
		||||
	/* I tested this a few times with `mmap'; as soon as you write
 | 
			
		||||
	 * to the mmap'ed area, the object type changes from OBJT_VNODE
 | 
			
		||||
	 * to OBJT_DEFAULT so if seems this really works. */
 | 
			
		||||
 | 
			
		||||
	do {
 | 
			
		||||
		if (update) {
 | 
			
		||||
			if (kvm_read (server->machine.kd,
 | 
			
		||||
				      (unsigned long) entry.next,
 | 
			
		||||
				      &entry, sizeof (entry)) != sizeof (entry))
 | 
			
		||||
				glibtop_error_io_r (server, "kvm_read (entry)");
 | 
			
		||||
		} else {
 | 
			
		||||
			update = 1;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (entry.eflags & (MAP_ENTRY_IS_A_MAP|MAP_ENTRY_IS_SUB_MAP))
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		maps [i].start = entry.start;
 | 
			
		||||
		maps [i].end   = entry.end;
 | 
			
		||||
		i++;
 | 
			
		||||
 | 
			
		||||
		if (!entry.object.vm_object)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		/* We're only interested in `vm_object's */
 | 
			
		||||
 | 
			
		||||
		if (kvm_read (server->machine.kd,
 | 
			
		||||
			      (unsigned long) entry.object.vm_object,
 | 
			
		||||
			      &object, sizeof (object)) != sizeof (object))
 | 
			
		||||
			glibtop_error_io_r (server, "kvm_read (object)");
 | 
			
		||||
 | 
			
		||||
		/* If the object is of type vnode, add its size */
 | 
			
		||||
 | 
			
		||||
		if (object.type != OBJT_VNODE)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		if (!object.handle)
 | 
			
		||||
			continue;
 | 
			
		||||
		
 | 
			
		||||
		if (kvm_read (server->machine.kd,
 | 
			
		||||
			      (unsigned long) object.handle,
 | 
			
		||||
			      &vnode, sizeof (vnode)) != sizeof (vnode))
 | 
			
		||||
			glibtop_error_io_r (server, "kvm_read (vnode)");
 | 
			
		||||
 | 
			
		||||
		if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
 | 
			
		||||
		    !vnode.v_data) continue;
 | 
			
		||||
 | 
			
		||||
		if (kvm_read (server->machine.kd,
 | 
			
		||||
			      (unsigned long) vnode.v_data,
 | 
			
		||||
			      &inode, sizeof (inode)) != sizeof (inode))
 | 
			
		||||
			glibtop_error_io_r (server, "kvm_read (inode)");
 | 
			
		||||
 | 
			
		||||
		if (kvm_read (server->machine.kd,
 | 
			
		||||
			      (unsigned long) vnode.v_mount,
 | 
			
		||||
			      &mount, sizeof (mount)) != sizeof (mount))
 | 
			
		||||
			glibtop_error_io_r (server, "kvm_read (mount)");
 | 
			
		||||
 | 
			
		||||
		maps [i-1].inode  = inode.i_number;
 | 
			
		||||
		maps [i-1].device = inode.i_dev;
 | 
			
		||||
 | 
			
		||||
	} while (entry.next != first);
 | 
			
		||||
 | 
			
		||||
	return maps;
 | 
			
		||||
}
 | 
			
		||||
@@ -32,6 +32,10 @@
 | 
			
		||||
#include <vm/vm_object.h>
 | 
			
		||||
#include <vm/vm_map.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/vnode.h>
 | 
			
		||||
#include <ufs/ufs/quota.h>
 | 
			
		||||
#include <ufs/ufs/inode.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/ucred.h>
 | 
			
		||||
#include <sys/user.h>
 | 
			
		||||
#include <sys/sysctl.h>
 | 
			
		||||
@@ -89,6 +93,8 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
 | 
			
		||||
	struct vmspace *vms, vmspace;
 | 
			
		||||
	struct vm_object object;
 | 
			
		||||
	struct plimit plimit;
 | 
			
		||||
	struct vnode vnode;
 | 
			
		||||
	struct inode inode;
 | 
			
		||||
	int count;
 | 
			
		||||
 | 
			
		||||
	glibtop_suid_enter (server);
 | 
			
		||||
@@ -157,8 +163,29 @@ glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf,
 | 
			
		||||
 | 
			
		||||
		/* If the object is of type vnode, add its size */
 | 
			
		||||
 | 
			
		||||
		if (object.type == OBJT_VNODE)
 | 
			
		||||
			buf->share += object.un_pager.vnp.vnp_size;
 | 
			
		||||
		if (object.type != OBJT_VNODE)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		buf->share += object.un_pager.vnp.vnp_size;
 | 
			
		||||
 | 
			
		||||
		if (!object.handle)
 | 
			
		||||
			continue;
 | 
			
		||||
		
 | 
			
		||||
		if (kvm_read (server->machine.kd,
 | 
			
		||||
			      (unsigned long) object.handle,
 | 
			
		||||
			      &vnode, sizeof (vnode)) != sizeof (vnode))
 | 
			
		||||
			glibtop_error_io_r (server, "kvm_read (vnode)");
 | 
			
		||||
 | 
			
		||||
		if ((vnode.v_type != VREG) || (vnode.v_tag != VT_UFS) ||
 | 
			
		||||
		    !vnode.v_data) continue;
 | 
			
		||||
 | 
			
		||||
		if (kvm_read (server->machine.kd,
 | 
			
		||||
			      (unsigned long) vnode.v_data,
 | 
			
		||||
			      &inode, sizeof (inode)) != sizeof (inode))
 | 
			
		||||
			glibtop_error_io_r (server, "kvm_read (inode)");
 | 
			
		||||
 | 
			
		||||
		fprintf (stderr, "INODE: %ld\n", inode.i_number);
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	buf->flags = _glibtop_sysdeps_proc_mem;
 | 
			
		||||
 
 | 
			
		||||
@@ -9,4 +9,4 @@ libgtop_names_la_SOURCES	= cpu.c mem.c swap.c uptime.c loadavg.c \
 | 
			
		||||
				  proclist.c sysdeps.c procstate.c procuid.c \
 | 
			
		||||
				  proctime.c procmem.c procsignal.c \
 | 
			
		||||
				  prockernel.c procsegment.c fsusage.c \
 | 
			
		||||
				  mountlist.c
 | 
			
		||||
				  mountlist.c procmap.c
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								sysdeps/names/procmap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								sysdeps/names/procmap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
/* $Id$ */
 | 
			
		||||
 | 
			
		||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
 | 
			
		||||
   This file is part of the Gnome Top Library.
 | 
			
		||||
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
 | 
			
		||||
 | 
			
		||||
   The Gnome Top Library is free software; you can redistribute it and/or
 | 
			
		||||
   modify it under the terms of the GNU Library General Public License as
 | 
			
		||||
   published by the Free Software Foundation; either version 2 of the
 | 
			
		||||
   License, or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
   The Gnome Top Library 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
 | 
			
		||||
   Library General Public License for more details.
 | 
			
		||||
 | 
			
		||||
   You should have received a copy of the GNU Library General Public
 | 
			
		||||
   License along with the GNU C Library; see the file COPYING.LIB.  If not,
 | 
			
		||||
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
   Boston, MA 02111-1307, USA.  */
 | 
			
		||||
 | 
			
		||||
#include <glibtop/procmap.h>
 | 
			
		||||
 | 
			
		||||
const char *glibtop_names_proc_map [GLIBTOP_MAX_PROC_MAP] =
 | 
			
		||||
{
 | 
			
		||||
	"number", "total", "size"
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const unsigned glibtop_types_proc_map [GLIBTOP_MAX_PROC_MAP] =
 | 
			
		||||
{
 | 
			
		||||
	GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const char *glibtop_labels_proc_map [GLIBTOP_MAX_PROC_MAP] =
 | 
			
		||||
{
 | 
			
		||||
	N_("Number of list elements"),
 | 
			
		||||
	N_("Total size of list"),
 | 
			
		||||
	N_("Size of a single list element")
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const char *glibtop_descriptions_proc_map [GLIBTOP_MAX_PROC_MAP] =
 | 
			
		||||
{
 | 
			
		||||
	N_("Number of list elements"),
 | 
			
		||||
	N_("Total size of list"),
 | 
			
		||||
	N_("Size of a single list element")
 | 
			
		||||
};
 | 
			
		||||
@@ -26,8 +26,8 @@ const char *glibtop_names_sysdeps [GLIBTOP_MAX_SYSDEPS] =
 | 
			
		||||
	"features", "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", "mountlist",
 | 
			
		||||
	"fsusage"
 | 
			
		||||
	"proc_signal", "proc_kernel", "proc_segment", "proc_map",
 | 
			
		||||
	"mountlist", "fsusage"
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const unsigned glibtop_types_sysdeps [GLIBTOP_MAX_SYSDEPS] =
 | 
			
		||||
@@ -38,7 +38,7 @@ const unsigned glibtop_types_sysdeps [GLIBTOP_MAX_SYSDEPS] =
 | 
			
		||||
	GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG,
 | 
			
		||||
	GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG,
 | 
			
		||||
	GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG,
 | 
			
		||||
	GLIBTOP_TYPE_ULONG
 | 
			
		||||
	GLIBTOP_TYPE_ULONG, GLIBTOP_TYPE_ULONG
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const char *glibtop_labels_sysdeps [GLIBTOP_MAX_SYSDEPS] =
 | 
			
		||||
@@ -60,6 +60,7 @@ const char *glibtop_labels_sysdeps [GLIBTOP_MAX_SYSDEPS] =
 | 
			
		||||
	N_("Process Signal information"),
 | 
			
		||||
	N_("Process Kernel Data information"),
 | 
			
		||||
	N_("Process Segment information"),
 | 
			
		||||
	N_("Process Memory Map"),
 | 
			
		||||
	N_("Mount List"),
 | 
			
		||||
	N_("File System Usage"),
 | 
			
		||||
};
 | 
			
		||||
@@ -83,6 +84,7 @@ const char *glibtop_descriptions_sysdeps [GLIBTOP_MAX_SYSDEPS] =
 | 
			
		||||
	N_("Process Signal information"),
 | 
			
		||||
	N_("Process Kernel Data information"),
 | 
			
		||||
	N_("Process Segment information"),
 | 
			
		||||
	N_("Process Memory Map"),
 | 
			
		||||
	N_("List of currently mounted filesystems"),
 | 
			
		||||
	N_("File System Usage"),
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user