diff --git a/usr.bin/lsvfs/Makefile b/usr.bin/lsvfs/Makefile new file mode 100644 index 000000000000..3b25443ca3a2 --- /dev/null +++ b/usr.bin/lsvfs/Makefile @@ -0,0 +1,4 @@ +# $Id$ +PROG= lsvfs + +.include diff --git a/usr.bin/lsvfs/lsvfs.1 b/usr.bin/lsvfs/lsvfs.1 new file mode 100644 index 000000000000..03a113932a7f --- /dev/null +++ b/usr.bin/lsvfs/lsvfs.1 @@ -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. diff --git a/usr.bin/lsvfs/lsvfs.c b/usr.bin/lsvfs/lsvfs.c new file mode 100644 index 000000000000..30ce386c78ed --- /dev/null +++ b/usr.bin/lsvfs/lsvfs.c @@ -0,0 +1,50 @@ +/* + * lsvfs - lsit loaded VFSes + * Garrett A. Wollman, September 1994 + * This file is in the public domain. + */ + +#include +#include +#include +#include +#include + +#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; +} +