summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/getvfsent.c
diff options
context:
space:
mode:
authorcvs2svn <cvs2svn@FreeBSD.org>2000-04-02 07:41:18 +0000
committercvs2svn <cvs2svn@FreeBSD.org>2000-04-02 07:41:18 +0000
commitb42951578188c5aab5c9f8cbcde4a743f8092cdc (patch)
tree87e472177973ff9d0a59ecabd43cb630c6936af9 /lib/libc/gen/getvfsent.c
parentd45e1e2b8b3d88e925564212283fb9072a911a32 (diff)
downloadFreeBSD-src-b42951578188c5aab5c9f8cbcde4a743f8092cdc.zip
FreeBSD-src-b42951578188c5aab5c9f8cbcde4a743f8092cdc.tar.gz
This commit was manufactured by cvs2svn to create branch 'ALSA'.
Diffstat (limited to 'lib/libc/gen/getvfsent.c')
-rw-r--r--lib/libc/gen/getvfsent.c177
1 files changed, 0 insertions, 177 deletions
diff --git a/lib/libc/gen/getvfsent.c b/lib/libc/gen/getvfsent.c
deleted file mode 100644
index bf3ca20..0000000
--- a/lib/libc/gen/getvfsent.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * getvfsent.c - get a listing of installed filesystems
- * Written September 1994 by Garrett A. Wollman
- * This file is in the public domain.
- */
-
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/mount.h>
-#include <sys/sysctl.h>
-#include <unistd.h>
-#include <sys/file.h>
-#include <sys/wait.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#include <paths.h>
-
-/* XXX hide some compatibility problems. */
-#undef getvfsbyname
-#define vfsconf ovfsconf
-
-static struct vfsconf *_vfslist = 0;
-static struct vfsconf _vfsconf;
-static size_t _vfslistlen = 0;
-static int _vfs_keeplist = 0;
-static int _vfs_index = 0;
-
-static int
-initvfs(void)
-{
- int mib[2] = { CTL_VFS, VFS_VFSCONF };
- size_t size = 0;
- int rv;
-
- rv = sysctl(mib, 2, (void *)0, &size, (void *)0, (size_t)0);
- if(rv < 0)
- return 0;
-
- if(_vfslist)
- free(_vfslist);
- _vfslist = malloc(size);
- if(!_vfslist)
- return 0;
-
- rv = sysctl(mib, 2, _vfslist, &size, (void *)0, (size_t)0);
- if(rv < 0) {
- free(_vfslist);
- _vfslist = 0;
- return 0;
- }
-
- _vfslistlen = size / sizeof _vfslist[0];
- return 1;
-}
-
-struct vfsconf *
-getvfsent(void)
-{
- if(!_vfslist && !initvfs()) {
- return 0;
- }
-
- do {
- if(_vfs_index >= _vfslistlen) {
- return 0;
- }
-
- _vfsconf = _vfslist[_vfs_index++];
- } while(!_vfsconf.vfc_vfsops);
-
- if(!_vfs_keeplist) {
- free(_vfslist);
- _vfslist = 0;
- }
- return &_vfsconf;
-}
-
-struct vfsconf *
-getvfsbyname(const char *name)
-{
- int i;
-
- if(!_vfslist && !initvfs()) {
- return 0;
- }
-
- for(i = 0; i < _vfslistlen; i++) {
- if( ! strcmp(_vfslist[i].vfc_name, name) )
- break;
- }
-
- if(i < _vfslistlen) {
- _vfsconf = _vfslist[i];
- }
-
- if(!_vfs_keeplist) {
- free(_vfslist);
- _vfslist = 0;
- }
-
- if(i < _vfslistlen) {
- return &_vfsconf;
- } else {
- return 0;
- }
-}
-
-struct vfsconf *
-getvfsbytype(int type)
-{
- int i;
-
- if(!_vfslist && !initvfs()) {
- return 0;
- }
-
- for(i = 0; i < _vfslistlen; i++) {
- if(_vfslist[i].vfc_index == type)
- break;
- }
-
- if(i < _vfslistlen) {
- _vfsconf = _vfslist[i];
- }
-
- if(!_vfs_keeplist) {
- free(_vfslist);
- _vfslist = 0;
- }
-
- if(i < _vfslistlen) {
- return &_vfsconf;
- } else {
- return 0;
- }
-}
-
-void
-setvfsent(int keep)
-{
- if(_vfslist && !keep) {
- free(_vfslist);
- _vfslist = 0;
- }
-
- _vfs_keeplist = keep;
- _vfs_index = 0;
-}
-
-void
-endvfsent(void)
-{
- if(_vfslist) {
- free(_vfslist);
- _vfslist = 0;
- }
-
- _vfs_index = 0;
-}
-
-int
-vfsisloadable(const char *name)
-{
- return 1;
-}
-
-int
-vfsload(const char *name)
-{
- int status;
-
- status = kldload(name);
- return status == -1 ? status : 0;
-}
-
OpenPOWER on IntegriCloud