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.3 (Berkeley) 04/16/91 8 */ 9 10 /* 11 * This structure defines the control data for the memory 12 * based file system. 13 */ 14 15 struct mfsnode { 16 struct vnode *mfs_vnode; /* vnode associated with this mfsnode */ 17 caddr_t mfs_baseoff; /* base of file system in memory */ 18 long mfs_size; /* size of memory file system */ 19 pid_t mfs_pid; /* supporting process pid */ 20 struct buf *mfs_buflist; /* list of I/O requests */ 21 long mfs_spare[4]; 22 }; 23 24 /* 25 * Convert between mfsnode pointers and vnode pointers 26 */ 27 #define VTOMFS(vp) ((struct mfsnode *)(vp)->v_data) 28 #define MFSTOV(mfsp) ((mfsp)->mfs_vnode) 29 30 /* 31 * Prototypes for MFS operations on vnodes. 32 */ 33 int mfs_badop(); 34 #define mfs_lookup ((int (*) __P(( \ 35 struct vnode *vp, \ 36 struct nameidata *ndp, \ 37 struct proc *p))) mfs_badop) 38 #define mfs_create ((int (*) __P(( \ 39 struct nameidata *ndp, \ 40 struct vattr *vap, \ 41 struct proc *p))) mfs_badop) 42 #define mfs_mknod ((int (*) __P(( \ 43 struct nameidata *ndp, \ 44 struct vattr *vap, \ 45 struct ucred *cred, \ 46 struct proc *p))) mfs_badop) 47 int mfs_open __P(( 48 struct vnode *vp, 49 int mode, 50 struct ucred *cred, 51 struct proc *p)); 52 int mfs_close __P(( 53 struct vnode *vp, 54 int fflag, 55 struct ucred *cred, 56 struct proc *p)); 57 #define mfs_access ((int (*) __P(( \ 58 struct vnode *vp, \ 59 int mode, \ 60 struct ucred *cred, \ 61 struct proc *p))) mfs_badop) 62 #define mfs_getattr ((int (*) __P(( \ 63 struct vnode *vp, \ 64 struct vattr *vap, \ 65 struct ucred *cred, \ 66 struct proc *p))) mfs_badop) 67 #define mfs_setattr ((int (*) __P(( \ 68 struct vnode *vp, \ 69 struct vattr *vap, \ 70 struct ucred *cred, \ 71 struct proc *p))) mfs_badop) 72 #define mfs_read ((int (*) __P(( \ 73 struct vnode *vp, \ 74 struct uio *uio, \ 75 int ioflag, \ 76 struct ucred *cred))) mfs_badop) 77 #define mfs_write ((int (*) __P(( \ 78 struct vnode *vp, \ 79 struct uio *uio, \ 80 int ioflag, \ 81 struct ucred *cred))) mfs_badop) 82 int mfs_ioctl __P(( 83 struct vnode *vp, 84 int command, 85 caddr_t data, 86 int fflag, 87 struct ucred *cred, 88 struct proc *p)); 89 #define mfs_select ((int (*) __P(( \ 90 struct vnode *vp, \ 91 int which, \ 92 int fflags, \ 93 struct ucred *cred, \ 94 struct proc *p))) mfs_badop) 95 #define mfs_mmap ((int (*) __P(( \ 96 struct vnode *vp, \ 97 int fflags, \ 98 struct ucred *cred, \ 99 struct proc *p))) mfs_badop) 100 #define mfs_fsync ((int (*) __P(( \ 101 struct vnode *vp, \ 102 int fflags, \ 103 struct ucred *cred, \ 104 int waitfor, \ 105 struct proc *p))) mfs_badop) 106 #define mfs_seek ((int (*) __P(( \ 107 struct vnode *vp, \ 108 off_t oldoff, \ 109 off_t newoff, \ 110 struct ucred *cred))) mfs_badop) 111 #define mfs_remove ((int (*) __P(( \ 112 struct nameidata *ndp, \ 113 struct proc *p))) mfs_badop) 114 #define mfs_link ((int (*) __P(( \ 115 struct vnode *vp, \ 116 struct nameidata *ndp, \ 117 struct proc *p))) mfs_badop) 118 #define mfs_rename ((int (*) __P(( \ 119 struct nameidata *fndp, \ 120 struct nameidata *tdnp, \ 121 struct proc *p))) mfs_badop) 122 #define mfs_mkdir ((int (*) __P(( \ 123 struct nameidata *ndp, \ 124 struct vattr *vap, \ 125 struct proc *p))) mfs_badop) 126 #define mfs_rmdir ((int (*) __P(( \ 127 struct nameidata *ndp, \ 128 struct proc *p))) mfs_badop) 129 #define mfs_symlink ((int (*) __P(( \ 130 struct nameidata *ndp, \ 131 struct vattr *vap, \ 132 char *target, \ 133 struct proc *p))) mfs_badop) 134 #define mfs_readdir ((int (*) __P(( \ 135 struct vnode *vp, \ 136 struct uio *uio, \ 137 struct ucred *cred, \ 138 int *eofflagp))) mfs_badop) 139 #define mfs_readlink ((int (*) __P(( \ 140 struct vnode *vp, \ 141 struct uio *uio, \ 142 struct ucred *cred))) mfs_badop) 143 #define mfs_abortop ((int (*) __P(( \ 144 struct nameidata *ndp))) mfs_badop) 145 int mfs_inactive __P(( 146 struct vnode *vp, 147 struct proc *p)); 148 #define mfs_reclaim ((int (*) __P(( \ 149 struct vnode *vp))) nullop) 150 #define mfs_lock ((int (*) __P(( \ 151 struct vnode *vp))) nullop) 152 #define mfs_unlock ((int (*) __P(( \ 153 struct vnode *vp))) nullop) 154 int mfs_bmap __P(( 155 struct vnode *vp, 156 daddr_t bn, 157 struct vnode **vpp, 158 daddr_t *bnp)); 159 int mfs_strategy __P(( 160 struct buf *bp)); 161 int mfs_print __P(( 162 struct vnode *vp)); 163 #define mfs_islocked ((int (*) __P(( \ 164 struct vnode *vp))) nullop) 165 #define mfs_advlock ((int (*) __P(( \ 166 struct vnode *vp, \ 167 caddr_t id, \ 168 int op, \ 169 struct flock *fl, \ 170 int flags))) mfs_badop) 171