New file.

1998-07-22  Martin Baulig  <martin@home-of-linux.org>

	* include/glibtop/mountlist.h: New file.

	* features.def: Added new feature `mountlist'.

	* sysdeps/common/mountlist.c (glibtop_get_mountlist_s): New function.
	(read_filesystem_list): Declared as `static'.
This commit is contained in:
Martin Baulig
1998-07-22 20:52:42 +00:00
committed by Martin Baulig
parent dd5c4a716b
commit 6bf243c901
18 changed files with 392 additions and 75 deletions

View File

@@ -1,5 +1,12 @@
1998-07-22 Martin Baulig <martin@home-of-linux.org> 1998-07-22 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/mountlist.h: New file.
* features.def: Added new feature `mountlist'.
* sysdeps/common/mountlist.c (glibtop_get_mountlist_s): New function.
(read_filesystem_list): Declared as `static'.
* sysdeps/common/Makefile.am (libgtop_common_la_SOURCES): * sysdeps/common/Makefile.am (libgtop_common_la_SOURCES):
Added `fsusage.[ch]' and `mountlist.[ch]'. Added `fsusage.[ch]' and `mountlist.[ch]'.

View File

@@ -14,3 +14,4 @@ proc_time long(start_time,utime,stime,cutime,cstime,timeout,it_real_value)
proc_signal ulong(signal,blocked,sigignore,sigcatch) proc_signal ulong(signal,blocked,sigignore,sigcatch)
proc_kernel ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,wchan) proc_kernel ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,wchan)
proc_segment long(trs,lrs,drs,dt):ulong(start_code,end_code,start_stack) proc_segment long(trs,lrs,drs,dt):ulong(start_code,end_code,start_stack)
@mountlist ulong(number,size,total)

View File

@@ -48,7 +48,9 @@ __BEGIN_DECLS
#define GLIBTOP_CMND_PROC_KERNEL 16 #define GLIBTOP_CMND_PROC_KERNEL 16
#define GLIBTOP_CMND_PROC_SEGMENT 17 #define GLIBTOP_CMND_PROC_SEGMENT 17
#define GLIBTOP_MAX_CMND 18 #define GLIBTOP_CMND_MOUNTLIST 18
#define GLIBTOP_MAX_CMND 19
#define _GLIBTOP_PARAM_SIZE 16 #define _GLIBTOP_PARAM_SIZE 16

View File

@@ -0,0 +1,68 @@
/* $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_MOUNTLIST_H__
#define __GLIBTOP_MOUNTLIST_H__
#include <glibtop.h>
#include <glibtop/global.h>
__BEGIN_DECLS
#define GLIBTOP_MOUNTLIST_NUMBER 0
#define GLIBTOP_MOUNTLIST_TOTAL 1
#define GLIBTOP_MOUNTLIST_SIZE 2
#define GLIBTOP_MAX_MOUNTLIST 3
#define GLIBTOP_MOUNTENTRY_LEN 80
typedef struct _glibtop_mountentry glibtop_mountentry;
typedef struct _glibtop_mountlist glibtop_mountlist;
struct _glibtop_mountentry
{
char devname [GLIBTOP_MOUNTENTRY_LEN+1];
char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
char type [GLIBTOP_MOUNTENTRY_LEN+1];
dev_t dev;
};
struct _glibtop_mountlist
{
unsigned long flags,
number, /* GLIBTOP_MOUNTLIST_NUMBER */
total, /* GLIBTOP_MOUNTLIST_TOTAL */
size; /* GLIBTOP_MOUNTLIST_SIZE */
};
#define glibtop_get_mountlist(mountlist) glibtop_get_mountlist_l(glibtop_global_server, mountlist)
#define glibtop_get_mountlist_r glibtop_get_mountlist_s
extern glibtop_mountentry *glibtop_get_mountlist_l __P((glibtop *, glibtop_mountlist *));
extern glibtop_mountentry *glibtop_get_mountlist_s __P((glibtop *, glibtop_mountlist *));
__END_DECLS
#endif

View File

@@ -33,7 +33,8 @@ __BEGIN_DECLS
#define GLIBTOP_INIT_NO_OPEN 1 #define GLIBTOP_INIT_NO_OPEN 1
#define GLIBTOP_INIT_NO_INIT 2 #define GLIBTOP_INIT_NO_INIT 2
#define GLIBTOP_OPEN_NO_OVERRIDE 1 #define GLIBTOP_FEATURES_NO_SERVER 4
#define GLIBTOP_FEATURES_EXCEPT 8
#define GLIBTOP_METHOD_DIRECT 1 #define GLIBTOP_METHOD_DIRECT 1
#define GLIBTOP_METHOD_PIPE 2 #define GLIBTOP_METHOD_PIPE 2

View File

@@ -44,8 +44,9 @@ __BEGIN_DECLS
#define GLIBTOP_SYSDEPS_PROC_SIGNAL 14 #define GLIBTOP_SYSDEPS_PROC_SIGNAL 14
#define GLIBTOP_SYSDEPS_PROC_KERNEL 15 #define GLIBTOP_SYSDEPS_PROC_KERNEL 15
#define GLIBTOP_SYSDEPS_PROC_SEGMENT 16 #define GLIBTOP_SYSDEPS_PROC_SEGMENT 16
#define GLIBTOP_SYSDEPS_MOUNTLIST 17
#define GLIBTOP_MAX_SYSDEPS 17 #define GLIBTOP_MAX_SYSDEPS 18
#define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1) #define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1)
@@ -70,7 +71,8 @@ struct _glibtop_sysdeps
proc_time, /* glibtop_proc_time */ proc_time, /* glibtop_proc_time */
proc_signal, /* glibtop_proc_signal */ proc_signal, /* glibtop_proc_signal */
proc_kernel, /* glibtop_proc_kernel */ proc_kernel, /* glibtop_proc_kernel */
proc_segment; /* glibtop_proc_segment */ proc_segment, /* glibtop_proc_segment */
mountlist; /* glibtop_mountlist */
}; };
#define glibtop_get_sysdeps(sysdeps) glibtop_get_sysdeps_r(glibtop_global_server,sysdeps) #define glibtop_get_sysdeps(sysdeps) glibtop_get_sysdeps_r(glibtop_global_server,sysdeps)

View File

@@ -40,6 +40,8 @@
#include <glibtop/prockernel.h> #include <glibtop/prockernel.h>
#include <glibtop/procsegment.h> #include <glibtop/procsegment.h>
#include <glibtop/mountlist.h>
__BEGIN_DECLS __BEGIN_DECLS
typedef union _glibtop_union glibtop_union; typedef union _glibtop_union glibtop_union;
@@ -62,6 +64,7 @@ union _glibtop_union
glibtop_proc_signal proc_signal; glibtop_proc_signal proc_signal;
glibtop_proc_kernel proc_kernel; glibtop_proc_kernel proc_kernel;
glibtop_proc_segment proc_segment; glibtop_proc_segment proc_segment;
glibtop_mountlist mountlist;
}; };
__END_DECLS __END_DECLS

View File

@@ -8,8 +8,9 @@ CFLAGS = -Wall -W @CFLAGS@ -DGTOP_SERVER=\""@LIBGTOP_SERVER@"\"
lib_LTLIBRARIES = libgtop.la lib_LTLIBRARIES = libgtop.la
libgtop_la_SOURCES = init.c open.c close.c command.c read.c read_data.c \ libgtop_la_SOURCES = init.c open.c close.c command.c read.c \
write.c lib.c parameter.c read_data.c write.c lib.c parameter.c \
sysdeps.c
BUILT_SOURCES = lib.c BUILT_SOURCES = lib.c

View File

@@ -12,9 +12,14 @@ BEGIN {
} }
function output(feature) { function output(feature) {
orig = feature;
sub(/@/,"",feature);
if (feature ~ /^proclist$/) { if (feature ~ /^proclist$/) {
print "unsigned *"; print "unsigned *";
prefix = "return "; prefix = "return ";
} else if (feature ~ /^mountlist$/) {
print "glibtop_mountentry *";
prefix = "return ";
} else { } else {
prefix = ""; prefix = "";
print "void"; print "void";
@@ -42,7 +47,11 @@ function output(feature) {
print "#if (!GLIBTOP_SUID_"toupper(feature)")"; print "#if (!GLIBTOP_SUID_"toupper(feature)")";
print "\t\tglibtop_get_"feature"_r (server, buf, pid);"; print "\t\tglibtop_get_"feature"_r (server, buf, pid);";
} else { } else {
if (feature ~ /^proclist$/) { if (feature ~ /^mountlist$/) {
print "\t\treturn glibtop_call_l (server, GLIBTOP_CMND_MOUNTLIST,";
print "\t\t\t\t 0, NULL, sizeof (glibtop_mountlist),";
print "\t\t\t\t buf);";
} else if (feature ~ /^proclist$/) {
print "\t\treturn glibtop_call_l (server, GLIBTOP_CMND_PROCLIST,"; print "\t\treturn glibtop_call_l (server, GLIBTOP_CMND_PROCLIST,";
print "\t\t\t\t 0, NULL, sizeof (glibtop_proclist),"; print "\t\t\t\t 0, NULL, sizeof (glibtop_proclist),";
print "\t\t\t\t buf);"; print "\t\t\t\t buf);";
@@ -51,18 +60,25 @@ function output(feature) {
print "\t\t\t\tsizeof (glibtop_"feature"), buf);"; print "\t\t\t\tsizeof (glibtop_"feature"), buf);";
} }
print "\t} else {"; print "\t} else {";
print "#if (!GLIBTOP_SUID_"toupper(feature)")"; if (orig ~ /^@/) {
print "\t\t"prefix"glibtop_get_"feature"_r (server, buf);"; print "\t\t"prefix"glibtop_get_"feature"_s (server, buf);";
} else {
print "#if (!GLIBTOP_SUID_"toupper(feature)")";
print "\t\t"prefix"glibtop_get_"feature"_r (server, buf);";
}
}
if (!(orig ~ /^@/)) {
print "#else";
print "\t\terrno = ENOSYS;";
print "\t\tglibtop_error_io_r (server, \"glibtop_get_"feature"\");";
print "#endif";
} }
print "#else";
print "\t\terrno = ENOSYS;";
print "\t\tglibtop_error_io_r (server, \"glibtop_get_"feature"\");";
print "#endif";
print "\t}"; print "\t}";
print "}"; print "}";
print ""; print "";
} }
/^@(\w+)/ { output($1) }
/^(\w+)/ { output($1) } /^(\w+)/ { output($1) }

View File

@@ -44,6 +44,17 @@ glibtop_open_l (glibtop *server, const char *program_name,
server->flags |= _GLIBTOP_INIT_STATE_OPEN; server->flags |= _GLIBTOP_INIT_STATE_OPEN;
if (flags & GLIBTOP_FEATURES_EXCEPT)
features = ~features & GLIBTOP_SYSDEPS_ALL;
if (features == 0)
features = GLIBTOP_SYSDEPS_ALL;
if (flags & GLIBTOP_FEATURES_NO_SERVER) {
server->method = GLIBTOP_METHOD_DIRECT;
features = 0;
}
server->features = features; server->features = features;
switch (server->method) { switch (server->method) {

View File

@@ -1,68 +1,206 @@
lib/close.c
lib/command.c lib/command.c
lib/close.c
lib/init.c
lib/sysdeps.c
lib/open.c lib/open.c
lib/read.c lib/read.c
lib/write.c
lib/read_data.c lib/read_data.c
acconfig.h lib/parameter.c
glibtop.h lib/write.c
include/glibtop/command.h examples/mountlist.c
examples/first.c
examples/second.c
examples/third.c
include/glibtop/close.h include/glibtop/close.h
include/glibtop/global.h include/glibtop/signal.h
include/glibtop/command.h
include/glibtop/cpu.h include/glibtop/cpu.h
include/glibtop/global.h
include/glibtop/error.h include/glibtop/error.h
include/glibtop/shm_limits.h
include/glibtop/uptime.h
include/glibtop/output.h
include/glibtop/mem.h
include/glibtop/open.h
include/glibtop/sysdeps.h
include/glibtop/union.h
include/glibtop/read.h
include/glibtop/swap.h
include/glibtop/loadavg.h include/glibtop/loadavg.h
include/glibtop/mem.h
include/glibtop/msg_limits.h
include/glibtop/open.h
include/glibtop/output.h
include/glibtop/prockernel.h
include/glibtop/proclist.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.h
include/glibtop/read_data.h
include/glibtop/sem_limits.h
include/glibtop/shm_limits.h
include/glibtop/swap.h
include/glibtop/sysdeps.h
include/glibtop/types.h
include/glibtop/union.h
include/glibtop/uptime.h
include/glibtop/version.h include/glibtop/version.h
include/glibtop/write.h include/glibtop/write.h
include/glibtop/parameter.h
include/glibtop/gnuserv.h
include/glibtop/mountlist.h
include/glibtop/xmalloc.h include/glibtop/xmalloc.h
include/glibtop/msg_limits.h src/daemon/main.c
include/glibtop/proclist.h src/daemon/slave.c
include/glibtop/sem_limits.h src/daemon/io.c
include/glibtop/read_data.h src/daemon/server_config.h
src/server/main.c src/daemon/daemon.h
src/server/output.c src/daemon/gnuserv.c
src/server/version.c sysdeps/common/gnuslib.c
sysdeps/common/fsusage.c
sysdeps/common/fsusage.h
sysdeps/common/mountlist.c
sysdeps/common/mountlist.h
sysdeps/linux/loadavg.c
sysdeps/linux/close.c sysdeps/linux/close.c
sysdeps/linux/cpu.c sysdeps/linux/cpu.c
sysdeps/linux/mem.c
sysdeps/linux/open.c
sysdeps/linux/swap.c
sysdeps/linux/shm_limits.c
sysdeps/linux/msg_limits.c sysdeps/linux/msg_limits.c
sysdeps/linux/uptime.c sysdeps/linux/mem.c
sysdeps/linux/loadavg.c sysdeps/linux/procdata.c
sysdeps/linux/sem_limits.c sysdeps/linux/open.c
sysdeps/linux/prockernel.c
sysdeps/linux/proclist.c sysdeps/linux/proclist.c
sysdeps/stub/proclist.c sysdeps/linux/procmem.c
sysdeps/stub/close.c sysdeps/linux/procsegment.c
sysdeps/stub/cpu.c sysdeps/linux/procsignal.c
sysdeps/stub/mem.c sysdeps/linux/procstate.c
sysdeps/stub/open.c sysdeps/linux/proctime.c
sysdeps/stub/swap.c sysdeps/linux/procuid.c
sysdeps/stub/loadavg.c sysdeps/linux/sem_limits.c
sysdeps/stub/uptime.c sysdeps/linux/siglist.c
sysdeps/stub/shm_limits.c sysdeps/linux/glibtop_server.h
sysdeps/stub/msg_limits.c sysdeps/linux/swap.c
sysdeps/stub/sem_limits.c sysdeps/linux/uptime.c
sysdeps/common/sysdeps.c sysdeps/linux/glibtop_machine.h
sysdeps/common/xmalloc.c sysdeps/linux/shm_limits.c
sysdeps/common/error.c
sysdeps/names/sysdeps.c
sysdeps/names/cpu.c
sysdeps/names/loadavg.c sysdeps/names/loadavg.c
sysdeps/names/cpu.c
sysdeps/names/msg_limits.c
sysdeps/names/mem.c sysdeps/names/mem.c
sysdeps/names/prockernel.c
sysdeps/names/proclist.c
sysdeps/names/procmem.c
sysdeps/names/procsegment.c
sysdeps/names/procsignal.c
sysdeps/names/procstate.c
sysdeps/names/proctime.c
sysdeps/names/procuid.c
sysdeps/names/sem_limits.c
sysdeps/names/shm_limits.c
sysdeps/names/swap.c sysdeps/names/swap.c
sysdeps/names/uptime.c sysdeps/names/uptime.c
sysdeps/names/shm_limits.c sysdeps/names/sysdeps.c
sysdeps/names/msg_limits.c sysdeps/osf1/close.c
sysdeps/names/sem_limits.c sysdeps/osf1/glibtop_machine.h
sysdeps/names/proclist.c sysdeps/osf1/loadavg.c
sysdeps/osf1/cpu.c
sysdeps/osf1/msg_limits.c
sysdeps/osf1/mem.c
sysdeps/osf1/procdata.c
sysdeps/osf1/open.c
sysdeps/osf1/sem_limits.c
sysdeps/osf1/shm_limits.c
sysdeps/osf1/glibtop_server.h
sysdeps/osf1/siglist.c
sysdeps/osf1/swap.c
sysdeps/osf1/uptime.c
sysdeps/stub/loadavg.c
sysdeps/stub/close.c
sysdeps/stub/cpu.c
sysdeps/stub/msg_limits.c
sysdeps/stub/mem.c
sysdeps/stub/prockernel.c
sysdeps/stub/open.c
sysdeps/stub/proclist.c
sysdeps/stub/procmem.c
sysdeps/stub/procsegment.c
sysdeps/stub/procsignal.c
sysdeps/stub/procstate.c
sysdeps/stub/proctime.c
sysdeps/stub/procuid.c
sysdeps/stub/sem_limits.c
sysdeps/stub/swap.c
sysdeps/stub/glibtop_server.h
sysdeps/stub/shm_limits.c
sysdeps/stub/siglist.c
sysdeps/stub/uptime.c
sysdeps/kernel/loadavg.c
sysdeps/kernel/close.c
sysdeps/kernel/cpu.c
sysdeps/kernel/msg_limits.c
sysdeps/kernel/mem.c
sysdeps/kernel/procdata.c
sysdeps/kernel/open.c
sysdeps/kernel/prockernel.c
sysdeps/kernel/proclist.c
sysdeps/kernel/procmem.c
sysdeps/kernel/procsegment.c
sysdeps/kernel/procsignal.c
sysdeps/kernel/procstate.c
sysdeps/kernel/proctime.c
sysdeps/kernel/procuid.c
sysdeps/kernel/sem_limits.c
sysdeps/kernel/kernel.h
sysdeps/kernel/glibtop_server.h
sysdeps/kernel/swap.c
sysdeps/kernel/uptime.c
sysdeps/kernel/shm_limits.c
sysdeps/kernel/siglist.c
intl/bindtextdom.c
intl/cat-compat.c
intl/dcgettext.c
intl/dgettext.c
intl/explodename.c
intl/gettext.h
intl/gettextP.h
intl/hash-string.h
intl/finddomain.c
intl/gettext.c
intl/libgettext.h
intl/loadinfo.h
intl/intl-compat.c
intl/l10nflist.c
intl/loadmsgcat.c
intl/localealias.c
intl/textdomain.c
support/argp-ba.c
support/argp-eexst.c
support/argp-fmtstream.c
support/argp-fmtstream.h
support/argp-fs-xinl.c
support/argp-help.c
support/argp-namefrob.h
support/argp-parse.c
support/argp-pv.c
support/argp-pvh.c
support/argp-test.c
support/argp-xinl.c
support/argp.h
support/easy-vsnprintf.c
support/getopt.c
support/getopt.h
support/getopt1.c
support/gnome-argp.c
support/gnome-argp.h
support/long-options.c
support/long-options.h
support/scandir.c
support/strcasecmp.c
support/strerror.c
support/strndup.c
support/strnlen.c
support/strtok_r.c
support/vasprintf.c
support/vsnprintf.c
support/strtod.c
support/memmove.c
support/gnomesupport.h
support/mkstemp.c
support/strtol.c
support/strtoul.c
glibtop.h

View File

@@ -1,4 +1,5 @@
Makefile.in Makefile.in
Makefile Makefile
gnuserv libgtop_daemon
server_config.h server_config.h
server.conf

View File

@@ -27,6 +27,7 @@ handle_parent_connection (int s)
glibtop *server = glibtop_global_server; glibtop *server = glibtop_global_server;
glibtop_response _resp, *resp = &_resp; glibtop_response _resp, *resp = &_resp;
glibtop_command _cmnd, *cmnd = &_cmnd; glibtop_command _cmnd, *cmnd = &_cmnd;
glibtop_mountentry *mount_list;
char parameter [BUFSIZ]; char parameter [BUFSIZ];
pid_t pid; pid_t pid;
void *ptr; void *ptr;
@@ -158,6 +159,13 @@ handle_parent_connection (int s)
(server, &resp->u.data.proc_segment, pid); (server, &resp->u.data.proc_segment, pid);
do_output (s, resp, _offset_data (proc_segment), 0, NULL); do_output (s, resp, _offset_data (proc_segment), 0, NULL);
break; break;
case GLIBTOP_CMND_MOUNTLIST:
mount_list = glibtop_get_mountlist_l
(server, &resp->u.data.mountlist);
do_output (s, resp, _offset_data (mountlist),
resp->u.data.mountlist.total, mount_list);
glibtop_free_r (server, mount_list);
break;
default: default:
glibtop_warn ("Parent received unknown command %u", glibtop_warn ("Parent received unknown command %u",
cmnd->command); cmnd->command);

View File

@@ -8,7 +8,7 @@ CFLAGS = -Wall -W @CFLAGS@
lib_LTLIBRARIES = libgtop_common.la libgtop_suid_common.la lib_LTLIBRARIES = libgtop_common.la libgtop_suid_common.la
libgtop_common_la_SOURCES = sysdeps.c xmalloc.c error.c gnuslib.c \ libgtop_common_la_SOURCES = xmalloc.c error.c gnuslib.c \
fsusage.c fsusage.h mountlist.c mountlist.h fsusage.c fsusage.h mountlist.c mountlist.h
libgtop_suid_common_la_SOURCES = xmalloc.c error.c libgtop_suid_common_la_SOURCES = xmalloc.c error.c

View File

@@ -23,6 +23,8 @@
#include <sys/types.h> #include <sys/types.h>
#include "mountlist.h" #include "mountlist.h"
static struct mount_entry *read_filesystem_list __P((int, int));
#ifdef STDC_HEADERS #ifdef STDC_HEADERS
#include <stdlib.h> #include <stdlib.h>
#else #else
@@ -36,6 +38,7 @@ void free ();
#include <glibtop.h> #include <glibtop.h>
#include <glibtop/xmalloc.h> #include <glibtop/xmalloc.h>
#include <glibtop/mountlist.h>
#undef xmalloc #undef xmalloc
#undef xrealloc #undef xrealloc
@@ -255,7 +258,7 @@ fstype_to_string (t)
If ALL_FS is zero, do not return entries for filesystems that If ALL_FS is zero, do not return entries for filesystems that
are automounter (dummy) entries. */ are automounter (dummy) entries. */
struct mount_entry * static struct mount_entry *
read_filesystem_list (need_fs_type, all_fs) read_filesystem_list (need_fs_type, all_fs)
int need_fs_type, all_fs; int need_fs_type, all_fs;
{ {
@@ -584,3 +587,61 @@ read_filesystem_list (need_fs_type, all_fs)
free (me); free (me);
return mount_list; return mount_list;
} }
glibtop_mountentry *
glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf)
{
struct mount_entry *me, *tmp, *next;
glibtop_mountentry *mount_list;
int count;
glibtop_init_r (&server, 0, 0);
memset (buf, 0, sizeof (glibtop_mountlist));
/* Read filesystem list. */
me = read_filesystem_list (1, 0);
if (me == NULL)
return NULL;
/* Count entries. */
for (count = 0, tmp = me; tmp; count++, tmp = tmp->me_next)
;
buf->size = sizeof (glibtop_mountentry);
buf->number = count;
buf->total = buf->number * buf->size;
mount_list = glibtop_malloc_r (server, buf->total);
/* Write data into mount_list. */
for (count = 0, tmp = me; tmp; count++, tmp = tmp->me_next) {
strncpy (mount_list [count].devname, tmp->me_devname,
GLIBTOP_MOUNTENTRY_LEN);
strncpy (mount_list [count].mountdir, tmp->me_mountdir,
GLIBTOP_MOUNTENTRY_LEN);
strncpy (mount_list [count].type, tmp->me_type,
GLIBTOP_MOUNTENTRY_LEN);
mount_list [count].devname [GLIBTOP_MOUNTENTRY_LEN] = 0;
mount_list [count].mountdir [GLIBTOP_MOUNTENTRY_LEN] = 0;
mount_list [count].type [GLIBTOP_MOUNTENTRY_LEN] = 0;
mount_list [count].dev = tmp->me_dev;
}
/* Free memory. */
for (count = 0, tmp = me; tmp; count++, tmp = next) {
next = tmp->me_next;
xfree (tmp->me_devname);
xfree (tmp->me_mountdir);
xfree (tmp->me_type);
xfree (tmp);
}
return mount_list;
}

View File

@@ -25,8 +25,3 @@ struct mount_entry
struct mount_entry *me_next; struct mount_entry *me_next;
}; };
#if __STDC__
struct mount_entry *read_filesystem_list (int need_fs_type, int all_fs);
#else
struct mount_entry *read_filesystem_list ();
#endif

View File

@@ -26,7 +26,7 @@ const char *glibtop_names_sysdeps [GLIBTOP_MAX_SYSDEPS] =
"features", "cpu", "mem", "swap", "uptime", "loadavg", "features", "cpu", "mem", "swap", "uptime", "loadavg",
"shm_limits", "msg_limits", "sem_limits", "proclist", "shm_limits", "msg_limits", "sem_limits", "proclist",
"proc_state", "proc_uid", "proc_mem", "proc_time", "proc_state", "proc_uid", "proc_mem", "proc_time",
"proc_signal", "proc_kernel", "proc_segment" "proc_signal", "proc_kernel", "proc_segment", "mountlist"
}; };
const unsigned glibtop_types_sysdeps [GLIBTOP_MAX_SYSDEPS] = const unsigned glibtop_types_sysdeps [GLIBTOP_MAX_SYSDEPS] =
@@ -36,7 +36,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,
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] = const char *glibtop_labels_sysdeps [GLIBTOP_MAX_SYSDEPS] =
@@ -57,7 +57,8 @@ const char *glibtop_labels_sysdeps [GLIBTOP_MAX_SYSDEPS] =
N_("Process Time information"), N_("Process Time information"),
N_("Process Signal information"), N_("Process Signal information"),
N_("Process Kernel Data information"), N_("Process Kernel Data information"),
N_("Process Segment information") N_("Process Segment information"),
N_("Mount List")
}; };
const char *glibtop_descriptions_sysdeps [GLIBTOP_MAX_SYSDEPS] = const char *glibtop_descriptions_sysdeps [GLIBTOP_MAX_SYSDEPS] =
@@ -78,5 +79,6 @@ const char *glibtop_descriptions_sysdeps [GLIBTOP_MAX_SYSDEPS] =
N_("Process Time information"), N_("Process Time information"),
N_("Process Signal information"), N_("Process Signal information"),
N_("Process Kernel Data information"), N_("Process Kernel Data information"),
N_("Process Segment information") N_("Process Segment information"),
N_("List of currently mounted filesystems"),
}; };