home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / sys / ufs / mfsnode.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-04-15  |  5.9 KB  |  197 lines

  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)
  197.