|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1989 The Regents of the University of California. ! 3: * 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 ! 9: * notice, this list of conditions and the following disclaimer. ! 10: * 2. Redistributions in binary form must reproduce the above copyright ! 11: * notice, this list of conditions and the following disclaimer in the ! 12: * documentation and/or other materials provided with the distribution. ! 13: * 3. All advertising materials mentioning features or use of this software ! 14: * must display the following acknowledgement: ! 15: * This product includes software developed by the University of ! 16: * California, Berkeley and its contributors. ! 17: * 4. Neither the name of the University nor the names of its contributors ! 18: * may be used to endorse or promote products derived from this software ! 19: * without specific prior written permission. ! 20: * ! 21: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 24: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 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: * @(#)mfsnode.h 7.3 (Berkeley) 4/16/91 ! 34: */ ! 35: ! 36: /* ! 37: * This structure defines the control data for the memory ! 38: * based file system. ! 39: */ ! 40: ! 41: struct mfsnode { ! 42: struct vnode *mfs_vnode; /* vnode associated with this mfsnode */ ! 43: caddr_t mfs_baseoff; /* base of file system in memory */ ! 44: long mfs_size; /* size of memory file system */ ! 45: pid_t mfs_pid; /* supporting process pid */ ! 46: struct buf *mfs_buflist; /* list of I/O requests */ ! 47: long mfs_spare[4]; ! 48: }; ! 49: ! 50: /* ! 51: * Convert between mfsnode pointers and vnode pointers ! 52: */ ! 53: #define VTOMFS(vp) ((struct mfsnode *)(vp)->v_data) ! 54: #define MFSTOV(mfsp) ((mfsp)->mfs_vnode) ! 55: ! 56: /* ! 57: * Prototypes for MFS operations on vnodes. ! 58: */ ! 59: int mfs_badop(); ! 60: #define mfs_lookup ((int (*) __P(( \ ! 61: struct vnode *vp, \ ! 62: struct nameidata *ndp, \ ! 63: struct proc *p))) mfs_badop) ! 64: #define mfs_create ((int (*) __P(( \ ! 65: struct nameidata *ndp, \ ! 66: struct vattr *vap, \ ! 67: struct proc *p))) mfs_badop) ! 68: #define mfs_mknod ((int (*) __P(( \ ! 69: struct nameidata *ndp, \ ! 70: struct vattr *vap, \ ! 71: struct ucred *cred, \ ! 72: struct proc *p))) mfs_badop) ! 73: int mfs_open __P(( ! 74: struct vnode *vp, ! 75: int mode, ! 76: struct ucred *cred, ! 77: struct proc *p)); ! 78: int mfs_close __P(( ! 79: struct vnode *vp, ! 80: int fflag, ! 81: struct ucred *cred, ! 82: struct proc *p)); ! 83: #define mfs_access ((int (*) __P(( \ ! 84: struct vnode *vp, \ ! 85: int mode, \ ! 86: struct ucred *cred, \ ! 87: struct proc *p))) mfs_badop) ! 88: #define mfs_getattr ((int (*) __P(( \ ! 89: struct vnode *vp, \ ! 90: struct vattr *vap, \ ! 91: struct ucred *cred, \ ! 92: struct proc *p))) mfs_badop) ! 93: #define mfs_setattr ((int (*) __P(( \ ! 94: struct vnode *vp, \ ! 95: struct vattr *vap, \ ! 96: struct ucred *cred, \ ! 97: struct proc *p))) mfs_badop) ! 98: #define mfs_read ((int (*) __P(( \ ! 99: struct vnode *vp, \ ! 100: struct uio *uio, \ ! 101: int ioflag, \ ! 102: struct ucred *cred))) mfs_badop) ! 103: #define mfs_write ((int (*) __P(( \ ! 104: struct vnode *vp, \ ! 105: struct uio *uio, \ ! 106: int ioflag, \ ! 107: struct ucred *cred))) mfs_badop) ! 108: int mfs_ioctl __P(( ! 109: struct vnode *vp, ! 110: int command, ! 111: caddr_t data, ! 112: int fflag, ! 113: struct ucred *cred, ! 114: struct proc *p)); ! 115: #define mfs_select ((int (*) __P(( \ ! 116: struct vnode *vp, \ ! 117: int which, \ ! 118: int fflags, \ ! 119: struct ucred *cred, \ ! 120: struct proc *p))) mfs_badop) ! 121: #define mfs_mmap ((int (*) __P(( \ ! 122: struct vnode *vp, \ ! 123: int fflags, \ ! 124: struct ucred *cred, \ ! 125: struct proc *p))) mfs_badop) ! 126: #define mfs_fsync ((int (*) __P(( \ ! 127: struct vnode *vp, \ ! 128: int fflags, \ ! 129: struct ucred *cred, \ ! 130: int waitfor, \ ! 131: struct proc *p))) mfs_badop) ! 132: #define mfs_seek ((int (*) __P(( \ ! 133: struct vnode *vp, \ ! 134: off_t oldoff, \ ! 135: off_t newoff, \ ! 136: struct ucred *cred))) mfs_badop) ! 137: #define mfs_remove ((int (*) __P(( \ ! 138: struct nameidata *ndp, \ ! 139: struct proc *p))) mfs_badop) ! 140: #define mfs_link ((int (*) __P(( \ ! 141: struct vnode *vp, \ ! 142: struct nameidata *ndp, \ ! 143: struct proc *p))) mfs_badop) ! 144: #define mfs_rename ((int (*) __P(( \ ! 145: struct nameidata *fndp, \ ! 146: struct nameidata *tdnp, \ ! 147: struct proc *p))) mfs_badop) ! 148: #define mfs_mkdir ((int (*) __P(( \ ! 149: struct nameidata *ndp, \ ! 150: struct vattr *vap, \ ! 151: struct proc *p))) mfs_badop) ! 152: #define mfs_rmdir ((int (*) __P(( \ ! 153: struct nameidata *ndp, \ ! 154: struct proc *p))) mfs_badop) ! 155: #define mfs_symlink ((int (*) __P(( \ ! 156: struct nameidata *ndp, \ ! 157: struct vattr *vap, \ ! 158: char *target, \ ! 159: struct proc *p))) mfs_badop) ! 160: #define mfs_readdir ((int (*) __P(( \ ! 161: struct vnode *vp, \ ! 162: struct uio *uio, \ ! 163: struct ucred *cred, \ ! 164: int *eofflagp))) mfs_badop) ! 165: #define mfs_readlink ((int (*) __P(( \ ! 166: struct vnode *vp, \ ! 167: struct uio *uio, \ ! 168: struct ucred *cred))) mfs_badop) ! 169: #define mfs_abortop ((int (*) __P(( \ ! 170: struct nameidata *ndp))) mfs_badop) ! 171: int mfs_inactive __P(( ! 172: struct vnode *vp, ! 173: struct proc *p)); ! 174: #define mfs_reclaim ((int (*) __P(( \ ! 175: struct vnode *vp))) nullop) ! 176: #define mfs_lock ((int (*) __P(( \ ! 177: struct vnode *vp))) nullop) ! 178: #define mfs_unlock ((int (*) __P(( \ ! 179: struct vnode *vp))) nullop) ! 180: int mfs_bmap __P(( ! 181: struct vnode *vp, ! 182: daddr_t bn, ! 183: struct vnode **vpp, ! 184: daddr_t *bnp)); ! 185: int mfs_strategy __P(( ! 186: struct buf *bp)); ! 187: int mfs_print __P(( ! 188: struct vnode *vp)); ! 189: #define mfs_islocked ((int (*) __P(( \ ! 190: struct vnode *vp))) nullop) ! 191: #define mfs_advlock ((int (*) __P(( \ ! 192: struct vnode *vp, \ ! 193: caddr_t id, \ ! 194: int op, \ ! 195: struct flock *fl, \ ! 196: int flags))) mfs_badop)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.