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