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.6 (Berkeley) 12/16/91 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 *vp, \ 32 struct nameidata *ndp, \ 33 struct proc *p))) mfs_badop) 34 #define mfs_create ((int (*) __P(( \ 35 struct nameidata *ndp, \ 36 struct vattr *vap, \ 37 struct proc *p))) mfs_badop) 38 #define mfs_mknod ((int (*) __P(( \ 39 struct nameidata *ndp, \ 40 struct vattr *vap, \ 41 struct ucred *cred, \ 42 struct proc *p))) mfs_badop) 43 #define mfs_access ((int (*) __P(( \ 44 struct vnode *vp, \ 45 int mode, \ 46 struct ucred *cred, \ 47 struct proc *p))) mfs_badop) 48 #define mfs_getattr ((int (*) __P(( \ 49 struct vnode *vp, \ 50 struct vattr *vap, \ 51 struct ucred *cred, \ 52 struct proc *p))) mfs_badop) 53 #define mfs_setattr ((int (*) __P(( \ 54 struct vnode *vp, \ 55 struct vattr *vap, \ 56 struct ucred *cred, \ 57 struct proc *p))) mfs_badop) 58 #define mfs_read ((int (*) __P(( \ 59 struct vnode *vp, \ 60 struct uio *uio, \ 61 int ioflag, \ 62 struct ucred *cred))) mfs_badop) 63 #define mfs_write ((int (*) __P(( \ 64 struct vnode *vp, \ 65 struct uio *uio, \ 66 int ioflag, \ 67 struct ucred *cred))) mfs_badop) 68 #define mfs_select ((int (*) __P(( \ 69 struct vnode *vp, \ 70 int which, \ 71 int fflags, \ 72 struct ucred *cred, \ 73 struct proc *p))) mfs_badop) 74 #define mfs_mmap ((int (*) __P(( \ 75 struct vnode *vp, \ 76 int fflags, \ 77 struct ucred *cred, \ 78 struct proc *p))) mfs_badop) 79 #define mfs_fsync ((int (*) __P(( \ 80 struct vnode *vp, \ 81 int fflags, \ 82 struct ucred *cred, \ 83 int waitfor, \ 84 struct proc *p))) mfs_badop) 85 #define mfs_seek ((int (*) __P(( \ 86 struct vnode *vp, \ 87 off_t oldoff, \ 88 off_t newoff, \ 89 struct ucred *cred))) mfs_badop) 90 #define mfs_remove ((int (*) __P(( \ 91 struct nameidata *ndp, \ 92 struct proc *p))) mfs_badop) 93 #define mfs_link ((int (*) __P(( \ 94 struct vnode *vp, \ 95 struct nameidata *ndp, \ 96 struct proc *p))) mfs_badop) 97 #define mfs_rename ((int (*) __P(( \ 98 struct nameidata *fndp, \ 99 struct nameidata *tdnp, \ 100 struct proc *p))) mfs_badop) 101 #define mfs_mkdir ((int (*) __P(( \ 102 struct nameidata *ndp, \ 103 struct vattr *vap, \ 104 struct proc *p))) mfs_badop) 105 #define mfs_rmdir ((int (*) __P(( \ 106 struct nameidata *ndp, \ 107 struct proc *p))) mfs_badop) 108 #define mfs_symlink ((int (*) __P(( \ 109 struct nameidata *ndp, \ 110 struct vattr *vap, \ 111 char *target, \ 112 struct proc *p))) mfs_badop) 113 #define mfs_readdir ((int (*) __P(( \ 114 struct vnode *vp, \ 115 struct uio *uio, \ 116 struct ucred *cred, \ 117 int *eofflagp))) mfs_badop) 118 #define mfs_readlink ((int (*) __P(( \ 119 struct vnode *vp, \ 120 struct uio *uio, \ 121 struct ucred *cred))) mfs_badop) 122 #define mfs_abortop ((int (*) __P(( \ 123 struct nameidata *ndp))) mfs_badop) 124 #define mfs_lock ((int (*) __P(( \ 125 struct vnode *vp))) nullop) 126 #define mfs_unlock ((int (*) __P(( \ 127 struct vnode *vp))) nullop) 128 #define mfs_islocked ((int (*) __P(( \ 129 struct vnode *vp))) nullop) 130 #define mfs_advlock ((int (*) __P(( \ 131 struct vnode *vp, \ 132 caddr_t id, \ 133 int op, \ 134 struct flock *fl, \ 135 int flags))) mfs_badop) 136 #define mfs_blkatoff ((int (*) __P(( \ 137 struct vnode *vp, \ 138 off_t offset, \ 139 char **res, \ 140 struct buf **bpp))) mfs_badop) 141 #define mfs_vget ((int (*) __P(( \ 142 struct mount *mp, \ 143 ino_t ino, \ 144 struct vnode **vpp))) mfs_badop) 145 #define mfs_valloc ((int (*) __P(( \ 146 struct vnode *pvp, \ 147 int mode, \ 148 struct ucred *cred, \ 149 struct vnode **vpp))) mfs_badop) 150 #define mfs_vfree ((void (*) __P(( \ 151 struct vnode *pvp, \ 152 ino_t ino, \ 153 int mode))) mfs_badop) 154 #define mfs_truncate ((int (*) __P(( \ 155 struct vnode *vp, \ 156 u_long length, \ 157 int flags))) mfs_badop) 158 #define mfs_update ((int (*) __P(( \ 159 struct vnode *vp, \ 160 struct timeval *ta, \ 161 struct timeval *tm, \ 162 int waitfor))) nullop) 163 #define mfs_bwrite ((int (*) __P(( \ 164 struct buf *bp))) nullop) 165