Added lsvfs command to show loaded VFS modules (including statically-linked

ones).
This commit is contained in:
Garrett Wollman 1994-09-22 01:25:57 +00:00
parent c8939366a1
commit 2a136300ac
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=2965
3 changed files with 107 additions and 0 deletions

4
usr.bin/lsvfs/Makefile Normal file
View file

@ -0,0 +1,4 @@
# $Id$
PROG= lsvfs
.include <bsd.prog.mk>

53
usr.bin/lsvfs/lsvfs.1 Normal file
View file

@ -0,0 +1,53 @@
.\" $Id$
.\" Garrett A. Wollman, September 1994
.\" This file is in the public domain.
.\"
.Dd September 21, 1994
.Dt LSVFS 1
.Os
.Sh NAME
.Nm lsvfs
.Nd list installed virtual file systems
.Sh SYNOPSIS
.Nm lsvfs
.Op Ar vfsname Ar ...
.Sh DESCRIPTION
The
.Nm lsvfs
command lists information about the currently loaded virtual filesystem
modules. When
.Ar vfsname
arguments are given,
.Nm lsvfs
lists information about the specified VFS modules. Otherwise,
.Nm lsvfs
lists all currently loaded modules.
The information is as follows:
.Pp
.Bl -tag -compact -width Filesystem
.It Filesystem
the name of the filesystem, as would be used in the
.Fl t
option to
.Xr mount 8
.It Index
the kernel filesystem switch slot number for this filesystem, as would be
used in the
.Ar type
parameter to
.Xr mount 2
.It Refs
the number of references to this VFS; i.e., the number of currently
mounted filesystems of this type
.It Flags
flag bits (none are currently defined).
.El
.Sh SEE ALSO
.Xr mount 2 ,
.Xr mount 8
.Sh HISTORY
A
.Nm
comand appeared in
.Tn FreeBSD
2.0.

50
usr.bin/lsvfs/lsvfs.c Normal file
View file

@ -0,0 +1,50 @@
/*
* lsvfs - lsit loaded VFSes
* Garrett A. Wollman, September 1994
* This file is in the public domain.
*/
#include <sys/types.h>
#include <sys/param.h>
#include <sys/mount.h>
#include <stdio.h>
#include <err.h>
#define FMT "%-32.32s %5d %5d %5d\n"
#define HDRFMT "%-32.32s %5.5s %5.5s %5.5s\n"
#define DASHES "-------------------------------- ---- ---- ----\n"
int
main(int argc, char **argv)
{
int rv = 0;
struct vfsconf *vfc;
argc--, argv++;
setvfsent(1);
printf(HDRFMT, "Filesystem", "Index", "Refs", "Flags");
fputs(DASHES, stdout);
if(argc) {
for(; argc; argc--, argv++) {
vfc = getvfsbyname(*argv);
if(vfc) {
printf(FMT, vfc->vfc_name, vfc->vfc_index, vfc->vfc_refcount,
vfc->vfc_flags);
} else {
warnx("VFS %s unknown or not loaded", name);
rv++;
}
}
} else {
while(vfc = getvfsent()) {
printf(FMT, vfc->vfc_name, vfc->vfc_index, vfc->vfc_refcount,
vfc->vfc_flags);
}
}
endvfsent();
return rv;
}