root/ufs/ufs/ufs_extern.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


    1 /*      $OpenBSD: ufs_extern.h,v 1.28 2007/05/09 17:04:22 deraadt Exp $ */
    2 /*      $NetBSD: ufs_extern.h,v 1.5 1996/02/09 22:36:03 christos Exp $  */
    3 
    4 /*-
    5  * Copyright (c) 1991, 1993, 1994
    6  *      The Regents of the University of California.  All rights reserved.
    7  *
    8  * Redistribution and use in source and binary forms, with or without
    9  * modification, are permitted provided that the following conditions
   10  * are met:
   11  * 1. Redistributions of source code must retain the above copyright
   12  *    notice, this list of conditions and the following disclaimer.
   13  * 2. Redistributions in binary form must reproduce the above copyright
   14  *    notice, this list of conditions and the following disclaimer in the
   15  *    documentation and/or other materials provided with the distribution.
   16  * 3. Neither the name of the University nor the names of its contributors
   17  *    may be used to endorse or promote products derived from this software
   18  *    without specific prior written permission.
   19  *
   20  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   30  * SUCH DAMAGE.
   31  *
   32  *      @(#)ufs_extern.h        8.6 (Berkeley) 8/10/94
   33  */
   34 
   35 struct buf;
   36 struct componentname;
   37 struct direct;
   38 struct disklabel;
   39 struct dquot;
   40 struct fid;
   41 struct flock;
   42 struct indir;
   43 struct inode;
   44 struct mbuf;
   45 struct mount;
   46 struct nameidata;
   47 struct proc;
   48 struct ucred;
   49 struct ufs_args;
   50 struct ufsmount;
   51 struct uio;
   52 struct vattr;
   53 struct vfsconf;
   54 struct vnode;
   55 
   56 __BEGIN_DECLS
   57 int      ufs_access(void *);
   58 int      ufs_advlock(void *);
   59 int      ufs_bmap(void *);
   60 int      ufs_close(void *);
   61 int      ufs_create(void *);
   62 int      ufs_getattr(void *);
   63 int      ufs_inactive(void *);
   64 int      ufs_ioctl(void *);
   65 int      ufs_islocked(void *);
   66 int      ufs_link(void *);
   67 int      ufs_lock(void *);
   68 int      ufs_lookup(void *);
   69 int      ufs_mkdir(void *);
   70 int      ufs_mknod(void *);
   71 int      ufs_mmap(void *);
   72 int      ufs_open(void *);
   73 int      ufs_pathconf(void *);
   74 int      ufs_print(void *);
   75 int      ufs_readdir(void *);
   76 int      ufs_readlink(void *);
   77 int      ufs_remove(void *);
   78 int      ufs_rename(void *);
   79 #define  ufs_revoke  vop_generic_revoke
   80 int      ufs_rmdir(void *);
   81 int      ufs_poll(void *);
   82 int      ufs_kqfilter(void *);
   83 int      ufs_setattr(void *);
   84 int      ufs_strategy(void *);
   85 int      ufs_symlink(void *);
   86 int      ufs_unlock(void *);
   87 int      ufsspec_close(void *);
   88 int      ufsspec_read(void *);
   89 int      ufsspec_write(void *);
   90 
   91 #ifdef FIFO
   92 int     ufsfifo_read(void *);
   93 int     ufsfifo_write(void *);
   94 int     ufsfifo_close(void *);
   95 #endif
   96 
   97 /* ufs_bmap.c */
   98 int ufs_bmaparray(struct vnode *, daddr_t, daddr64_t *, struct indir *,
   99                        int *, int *);
  100 int ufs_getlbns(struct vnode *, daddr_t, struct indir *, int *);
  101 
  102 /* ufs_ihash.c */
  103 void ufs_ihashinit(void);
  104 struct vnode *ufs_ihashlookup(dev_t, ino_t);
  105 struct vnode *ufs_ihashget(dev_t, ino_t);
  106 int ufs_ihashins(struct inode *);
  107 void ufs_ihashrem(struct inode *);
  108 
  109 /* ufs_inode.c */
  110 int ufs_init(struct vfsconf *);
  111 int ufs_reclaim(struct vnode *, struct proc *);
  112 
  113 /* ufs_lookup.c */
  114 void ufs_dirbad(struct inode *, doff_t, char *);
  115 int ufs_dirbadentry(struct vnode *, struct direct *, int);
  116 void ufs_makedirentry(struct inode *, struct componentname *,
  117                            struct direct *);
  118 int ufs_direnter(struct vnode *, struct vnode *, struct direct *,
  119                       struct componentname *, struct buf *);
  120 int ufs_dirremove(struct vnode *, struct inode *, int, int);
  121 int ufs_dirrewrite(struct inode *, struct inode *,
  122                         ino_t, int, int);
  123 int ufs_dirempty(struct inode *, ino_t, struct ucred *);
  124 int ufs_checkpath(struct inode *, struct inode *, struct ucred *);
  125 
  126 /* ufs_vfsops.c */
  127 int ufs_start(struct mount *, int, struct proc *);
  128 int ufs_root(struct mount *, struct vnode **);
  129 int ufs_quotactl(struct mount *, int, uid_t, caddr_t, struct proc *);
  130 int ufs_fhtovp(struct mount *, struct ufid *, struct vnode **);
  131 int ufs_check_export(struct mount *, struct mbuf *, int *,
  132                 struct ucred **);
  133 
  134 /* ufs_vnops.c */
  135 int ufs_vinit(struct mount *, int (**)(void *),
  136               int (**)(void *), struct vnode **);
  137 int ufs_makeinode(int, struct vnode *, struct vnode **,
  138                   struct componentname *);
  139 
  140  
  141 /*
  142  * Soft dependency function prototypes.
  143  */
  144 int  softdep_setup_directory_add(struct buf *, struct inode *, off_t,
  145           long, struct buf *, int);
  146 void  softdep_change_directoryentry_offset(struct inode *, caddr_t,
  147           caddr_t, caddr_t, int);
  148 void  softdep_setup_remove(struct buf *,struct inode *, struct inode *,
  149           int);
  150 void  softdep_setup_directory_change(struct buf *, struct inode *,
  151           struct inode *, long, int);
  152 void  softdep_change_linkcnt(struct inode *, int);
  153 int   softdep_slowdown(struct vnode *);
  154 
  155 __END_DECLS

/* [<][>][^][v][top][bottom][index][help] */