1 /* 2 * Copyright (c) 1989 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * %sccs.include.redist.c% 6 * 7 * @(#)mfsnode.h 7.9 (Berkeley) 04/21/92 8 */ 9 10 /* 11 * This structure defines the control data for the memory based file system. 12 */ 13 14 struct mfsnode { 15 struct vnode *mfs_vnode; /* vnode associated with this mfsnode */ 16 caddr_t mfs_baseoff; /* base of file system in memory */ 17 long mfs_size; /* size of memory file system */ 18 pid_t mfs_pid; /* supporting process pid */ 19 struct buf *mfs_buflist; /* list of I/O requests */ 20 long mfs_spare[4]; 21 }; 22 23 /* 24 * Convert between mfsnode pointers and vnode pointers 25 */ 26 #define VTOMFS(vp) ((struct mfsnode *)(vp)->v_data) 27 #define MFSTOV(mfsp) ((mfsp)->mfs_vnode) 28 29 /* Prototypes for MFS operations on vnodes. */ 30 #define mfs_lookup ((int (*) __P(( \ 31 struct vnode *dvp, \ 32 struct vnode **vpp, \ 33 struct componentname *cnp))) mfs_badop) 34 #define mfs_create ((int (*) __P(( \ 35 struct vnode *dvp, \ 36 struct vnode **vpp, \ 37 struct componentname *cnp, \ 38 struct vattr *vap))) mfs_badop) 39 #define mfs_mknod ((int (*) __P(( \ 40 struct vnode *dvp, \ 41 struct vnode **vpp, \ 42 struct componentname *cnp, \ 43 struct vattr *vap))) mfs_badop) 44 #define mfs_access ((int (*) __P(( \ 45 struct vnode *vp, \ 46 int mode, \ 47 struct ucred *cred, \ 48 struct proc *p))) mfs_badop) 49 #define mfs_getattr ((int (*) __P(( \ 50 struct vnode *vp, \ 51 struct vattr *vap, \ 52 struct ucred *cred, \ 53 struct proc *p))) mfs_badop) 54 #define mfs_setattr ((int (*) __P(( \ 55 struct vnode *vp, \ 56 struct vattr *vap, \ 57 struct ucred *cred, \ 58 struct proc *p))) mfs_badop) 59 #define mfs_read ((int (*) __P(( \ 60 struct vnode *vp, \ 61 struct uio *uio, \ 62 int ioflag, \ 63 struct ucred *cred))) mfs_badop) 64 #define mfs_write ((int (*) __P(( \ 65 struct vnode *vp, \ 66 struct uio *uio, \ 67 int ioflag, \ 68 struct ucred *cred))) mfs_badop) 69 #define mfs_select ((int (*) __P(( \ 70 struct vnode *vp, \ 71 int which, \ 72 int fflags, \ 73 struct ucred *cred, \ 74 struct proc *p))) mfs_badop) 75 #define mfs_mmap ((int (*) __P(( \ 76 struct vnode *vp, \ 77 int fflags, \ 78 struct ucred *cred, \ 79 struct proc *p))) mfs_badop) 80 #define mfs_fsync ((int (*) __P(( \ 81 struct vnode *vp, \ 82 int fflags, \ 83 struct ucred *cred, \ 84 int waitfor, \ 85 struct proc *p))) mfs_badop) 86 #define mfs_seek ((int (*) __P(( \ 87 struct vnode *vp, \ 88 off_t oldoff, \ 89 off_t newoff, \ 90 struct ucred *cred))) mfs_badop) 91 #define mfs_remove ((int (*) __P(( \ 92 struct vnode *dvp, \ 93 struct vnode *vp, \ 94 struct componentname *cnp))) mfs_badop) 95 #define mfs_link ((int (*) __P(( \ 96 register struct vnode *vp, \ 97 struct vnode *tdvp, \ 98 struct componentname *cnp))) mfs_badop) 99 #define mfs_rename ((int (*) __P(( \ 100 struct vnode *fdvp, \ 101 struct vnode *fvp, \ 102 struct componentname *fcnp, \ 103 struct vnode *tdvp, \ 104 struct vnode *tvp, \ 105 struct componentname *tcnp))) mfs_badop) 106 #define mfs_mkdir ((int (*) __P(( \ 107 struct vnode *dvp, \ 108 struct vnode **vpp, \ 109 struct componentname *cnp, \ 110 struct vattr *vap))) mfs_badop) 111 #define mfs_rmdir ((int (*) __P(( \ 112 struct vnode *dvp, \ 113 struct vnode *vp, \ 114 struct componentname *cnp))) mfs_badop) 115 #define mfs_symlink ((int (*) __P(( \ 116 struct vnode *dvp, \ 117 struct vnode **vpp, \ 118 struct componentname *cnp, \ 119 struct vattr *vap, \ 120 char *target))) mfs_badop) 121 #define mfs_readdir ((int (*) __P(( \ 122 struct vnode *vp, \ 123 struct uio *uio, \ 124 struct ucred *cred, \ 125 int *eofflagp))) mfs_badop) 126 #define mfs_readlink ((int (*) __P(( \ 127 struct vnode *vp, \ 128 struct uio *uio, \ 129 struct ucred *cred))) mfs_badop) 130 #define mfs_abortop ((int (*) __P(( \ 131 struct vnode *dvp, \ 132 struct componentname *cnp))) mfs_badop) 133 #define mfs_lock ((int (*) __P(( \ 134 struct vnode *vp))) nullop) 135 #define mfs_unlock ((int (*) __P(( \ 136 struct vnode *vp))) nullop) 137 #define mfs_islocked ((int (*) __P(( \ 138 struct vnode *vp))) nullop) 139 #define mfs_advlock ((int (*) __P(( \ 140 struct vnode *vp, \ 141 caddr_t id, \ 142 int op, \ 143 struct flock *fl, \ 144 int flags))) mfs_badop) 145 #define mfs_blkatoff ((int (*) __P(( \ 146 struct vnode *vp, \ 147 off_t offset, \ 148 char **res, \ 149 struct buf **bpp))) mfs_badop) 150 #define mfs_vget ((int (*) __P(( \ 151 struct mount *mp, \ 152 ino_t ino, \ 153 struct vnode **vpp))) mfs_badop) 154 #define mfs_valloc ((int (*) __P(( \ 155 struct vnode *pvp, \ 156 int mode, \ 157 struct ucred *cred, \ 158 struct vnode **vpp))) mfs_badop) 159 #define mfs_vfree ((void (*) __P(( \ 160 struct vnode *pvp, \ 161 ino_t ino, \ 162 int mode))) mfs_badop) 163 #define mfs_truncate ((int (*) __P(( \ 164 struct vnode *vp, \ 165 off_t length, \ 166 int flags, \ 167 struct ucred *cred))) mfs_badop) 168 #define mfs_update ((int (*) __P(( \ 169 struct vnode *vp, \ 170 struct timeval *ta, \ 171 struct timeval *tm, \ 172 int waitfor))) nullop) 173 #define mfs_bwrite ((int (*) __P(( \ 174 struct buf *bp))) nullop) 175