vfs_mount.c (2893) | vfs_mount.c (2946) |
---|---|
1/* 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)vfs_conf.c 8.8 (Berkeley) 3/31/94 | 1/* 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)vfs_conf.c 8.8 (Berkeley) 3/31/94 |
34 * $Id: vfs_conf.c,v 1.3 1994/08/20 16:03:12 davidg Exp $ | 34 * $Id: vfs_conf.c,v 1.4 1994/09/19 15:41:13 dfr Exp $ |
35 */ 36 37#include <sys/param.h> 38#include <sys/mount.h> 39#include <sys/vnode.h> 40 41#ifdef FFS 42#include <ufs/ffs/ffs_extern.h> 43 44/* 45 * This specifies the filesystem used to mount the root. 46 * This specification should be done by /etc/config. 47 */ 48int (*mountroot)() = ffs_mountroot; 49#endif 50 51struct vnode *rootvnode; 52 | 35 */ 36 37#include <sys/param.h> 38#include <sys/mount.h> 39#include <sys/vnode.h> 40 41#ifdef FFS 42#include <ufs/ffs/ffs_extern.h> 43 44/* 45 * This specifies the filesystem used to mount the root. 46 * This specification should be done by /etc/config. 47 */ 48int (*mountroot)() = ffs_mountroot; 49#endif 50 51struct vnode *rootvnode; 52 |
53/* 54 * Set up the filesystem operations for vnodes. 55 * The types are defined in mount.h. 56 */ 57#ifdef FFS 58extern struct vfsops ufs_vfsops; 59#define UFS_VFSOPS &ufs_vfsops 60#else 61#define UFS_VFSOPS NULL 62#endif 63 64#ifdef LFS 65extern struct vfsops lfs_vfsops; 66#define LFS_VFSOPS &lfs_vfsops 67#else 68#define LFS_VFSOPS NULL 69#endif 70 71#ifdef MFS 72extern struct vfsops mfs_vfsops; 73#define MFS_VFSOPS &mfs_vfsops 74#else 75#define MFS_VFSOPS NULL 76#endif 77 78#ifdef NFS 79extern struct vfsops nfs_vfsops; 80#define NFS_VFSOPS &nfs_vfsops 81#else 82#define NFS_VFSOPS NULL 83#endif 84 85#ifdef FDESC 86extern struct vfsops fdesc_vfsops; 87#define FDESC_VFSOPS &fdesc_vfsops 88#else 89#define FDESC_VFSOPS NULL 90#endif 91 92#ifdef PORTAL 93extern struct vfsops portal_vfsops; 94#define PORTAL_VFSOPS &portal_vfsops 95#else 96#define PORTAL_VFSOPS NULL 97#endif 98 99#ifdef NULLFS 100extern struct vfsops null_vfsops; 101#define NULL_VFSOPS &null_vfsops 102#else 103#define NULL_VFSOPS NULL 104#endif 105 106#ifdef UMAPFS 107extern struct vfsops umap_vfsops; 108#define UMAP_VFSOPS &umap_vfsops 109#else 110#define UMAP_VFSOPS NULL 111#endif 112 113#ifdef KERNFS 114extern struct vfsops kernfs_vfsops; 115#define KERNFS_VFSOPS &kernfs_vfsops 116#else 117#define KERNFS_VFSOPS NULL 118#endif 119 120#ifdef PROCFS 121extern struct vfsops procfs_vfsops; 122#define PROCFS_VFSOPS &procfs_vfsops 123#else 124#define PROCFS_VFSOPS NULL 125#endif 126 127#ifdef AFS 128extern struct vfsops afs_vfsops; 129#define AFS_VFSOPS &afs_vfsops 130#else 131#define AFS_VFSOPS NULL 132#endif 133 134#ifdef CD9660 135extern struct vfsops cd9660_vfsops; 136#define CD9660_VFSOPS &cd9660_vfsops 137#else 138#define CD9660_VFSOPS NULL 139#endif 140 141#ifdef MSDOSFS 142extern struct vfsops msdosfs_vfsops; 143#define MSDOSFS_VFSOPS &msdosfs_vfsops 144#else 145#define MSDOSFS_VFSOPS NULL 146#endif 147 148#ifdef UNION 149extern struct vfsops union_vfsops; 150#define UNION_VFSOPS &union_vfsops 151#else 152#define UNION_VFSOPS NULL 153#endif 154 155struct vfsops *vfssw[] = { 156 NULL, /* 0 = MOUNT_NONE */ 157 UFS_VFSOPS, /* 1 = MOUNT_UFS */ 158 NFS_VFSOPS, /* 2 = MOUNT_NFS */ 159 MFS_VFSOPS, /* 3 = MOUNT_MFS */ 160 MSDOSFS_VFSOPS, /* 4 = MOUNT_MSDOS */ 161 LFS_VFSOPS, /* 5 = MOUNT_LFS */ 162 NULL, /* 6 = MOUNT_LOFS */ 163 FDESC_VFSOPS, /* 7 = MOUNT_FDESC */ 164 PORTAL_VFSOPS, /* 8 = MOUNT_PORTAL */ 165 NULL_VFSOPS, /* 9 = MOUNT_NULL */ 166 UMAP_VFSOPS, /* 10 = MOUNT_UMAP */ 167 KERNFS_VFSOPS, /* 11 = MOUNT_KERNFS */ 168 PROCFS_VFSOPS, /* 12 = MOUNT_PROCFS */ 169 AFS_VFSOPS, /* 13 = MOUNT_AFS */ 170 CD9660_VFSOPS, /* 14 = MOUNT_CD9660 */ 171 UNION_VFSOPS, /* 15 = MOUNT_UNION */ 172 0 173}; 174 175 176/* 177 * 178 * vfs_opv_descs enumerates the list of vnode classes, each with it's own 179 * vnode operation vector. It is consulted at system boot to build operation 180 * vectors. It is NULL terminated. 181 * 182 */ 183extern struct vnodeopv_desc ffs_vnodeop_opv_desc; 184extern struct vnodeopv_desc ffs_specop_opv_desc; 185extern struct vnodeopv_desc ffs_fifoop_opv_desc; 186extern struct vnodeopv_desc lfs_vnodeop_opv_desc; 187extern struct vnodeopv_desc lfs_specop_opv_desc; 188extern struct vnodeopv_desc lfs_fifoop_opv_desc; 189extern struct vnodeopv_desc mfs_vnodeop_opv_desc; 190extern struct vnodeopv_desc dead_vnodeop_opv_desc; 191extern struct vnodeopv_desc fifo_vnodeop_opv_desc; 192extern struct vnodeopv_desc spec_vnodeop_opv_desc; 193extern struct vnodeopv_desc nfsv2_vnodeop_opv_desc; 194extern struct vnodeopv_desc spec_nfsv2nodeop_opv_desc; 195extern struct vnodeopv_desc fifo_nfsv2nodeop_opv_desc; 196extern struct vnodeopv_desc fdesc_vnodeop_opv_desc; 197extern struct vnodeopv_desc portal_vnodeop_opv_desc; 198extern struct vnodeopv_desc null_vnodeop_opv_desc; 199extern struct vnodeopv_desc umap_vnodeop_opv_desc; 200extern struct vnodeopv_desc kernfs_vnodeop_opv_desc; 201extern struct vnodeopv_desc procfs_vnodeop_opv_desc; 202extern struct vnodeopv_desc cd9660_vnodeop_opv_desc; 203extern struct vnodeopv_desc cd9660_specop_opv_desc; 204extern struct vnodeopv_desc cd9660_fifoop_opv_desc; 205extern struct vnodeopv_desc msdosfs_vnodeop_opv_desc; 206extern struct vnodeopv_desc union_vnodeop_opv_desc; 207 208struct vnodeopv_desc *vfs_opv_descs[] = { 209 &ffs_vnodeop_opv_desc, 210 &ffs_specop_opv_desc, 211#ifdef FIFO 212 &ffs_fifoop_opv_desc, 213#endif 214 &dead_vnodeop_opv_desc, 215#ifdef FIFO 216 &fifo_vnodeop_opv_desc, 217#endif 218 &spec_vnodeop_opv_desc, 219#ifdef LFS 220 &lfs_vnodeop_opv_desc, 221 &lfs_specop_opv_desc, 222#ifdef FIFO 223 &lfs_fifoop_opv_desc, 224#endif 225#endif 226#ifdef MFS 227 &mfs_vnodeop_opv_desc, 228#endif 229#ifdef NFS 230 &nfsv2_vnodeop_opv_desc, 231 &spec_nfsv2nodeop_opv_desc, 232#ifdef FIFO 233 &fifo_nfsv2nodeop_opv_desc, 234#endif 235#endif 236#ifdef FDESC 237 &fdesc_vnodeop_opv_desc, 238#endif 239#ifdef PORTAL 240 &portal_vnodeop_opv_desc, 241#endif 242#ifdef NULLFS 243 &null_vnodeop_opv_desc, 244#endif 245#ifdef UMAPFS 246 &umap_vnodeop_opv_desc, 247#endif 248#ifdef KERNFS 249 &kernfs_vnodeop_opv_desc, 250#endif 251#ifdef PROCFS 252 &procfs_vnodeop_opv_desc, 253#endif 254#ifdef CD9660 255 &cd9660_vnodeop_opv_desc, 256 &cd9660_specop_opv_desc, 257#ifdef FIFO 258 &cd9660_fifoop_opv_desc, 259#endif 260#endif 261#ifdef MSDOSFS 262 &msdosfs_vnodeop_opv_desc, 263#endif 264#ifdef UNION 265 &union_vnodeop_opv_desc, 266#endif 267 NULL 268}; | |