xref: /csrg-svn/sys/kern/vfs_conf.c (revision 53494)
1 /*
2  * Copyright (c) 1989 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  *
7  *	@(#)vfs_conf.c	7.7 (Berkeley) 05/14/92
8  */
9 
10 #include <sys/param.h>
11 #include <sys/mount.h>
12 #include <sys/vnode.h>
13 
14 #ifdef FFS
15 #include <ufs/ffs/ffs_extern.h>
16 
17 /*
18  * This specifies the filesystem used to mount the root.
19  * This specification should be done by /etc/config.
20  */
21 int (*mountroot)() = ffs_mountroot;
22 #endif
23 
24 /*
25  * These define the root filesystem and device.
26  */
27 struct mount *rootfs;
28 struct vnode *rootdir;
29 
30 /*
31  * Set up the filesystem operations for vnodes.
32  * The types are defined in mount.h.
33  */
34 #ifdef FFS
35 extern	struct vfsops ufs_vfsops;
36 #define	UFS_VFSOPS	&ufs_vfsops
37 #else
38 #define	UFS_VFSOPS	NULL
39 #endif
40 
41 #ifdef LFS
42 extern	struct vfsops lfs_vfsops;
43 #define	LFS_VFSOPS	&lfs_vfsops
44 #else
45 #define	LFS_VFSOPS	NULL
46 #endif
47 
48 #ifdef MFS
49 extern	struct vfsops mfs_vfsops;
50 #define	MFS_VFSOPS	&mfs_vfsops
51 #else
52 #define	MFS_VFSOPS	NULL
53 #endif
54 
55 #ifdef NFS
56 extern	struct vfsops nfs_vfsops;
57 #define	NFS_VFSOPS	&nfs_vfsops
58 #else
59 #define	NFS_VFSOPS	NULL
60 #endif
61 
62 struct vfsops *vfssw[] = {
63 	NULL,			/* 0 = MOUNT_NONE */
64 	UFS_VFSOPS,		/* 1 = MOUNT_UFS */
65 	NFS_VFSOPS,		/* 2 = MOUNT_NFS */
66 	MFS_VFSOPS,		/* 3 = MOUNT_MFS */
67 	NULL,			/* 4 = MOUNT_PC */
68 	LFS_VFSOPS,		/* 5 = MOUNT_LFS */
69 };
70