The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/ufs/ffs/ffs_extern.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: ffs_extern.h,v 1.36.2.1 2004/05/23 10:44:57 tron Exp $ */
    2 
    3 /*-
    4  * Copyright (c) 1991, 1993, 1994
    5  *      The Regents of the University of California.  All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  * 3. Neither the name of the University nor the names of its contributors
   16  *    may be used to endorse or promote products derived from this software
   17  *    without specific prior written permission.
   18  *
   19  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   20  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   22  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   23  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   24  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   25  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   26  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   27  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   28  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   29  * SUCH DAMAGE.
   30  *
   31  *      @(#)ffs_extern.h        8.6 (Berkeley) 3/30/95
   32  */
   33 
   34 #ifndef _UFS_FFS_FFS_EXTERN_H_
   35 #define _UFS_FFS_FFS_EXTERN_H_
   36 
   37 /*
   38  * Sysctl values for the fast filesystem.
   39  */
   40 #define FFS_CLUSTERREAD         1       /* cluster reading enabled */
   41 #define FFS_CLUSTERWRITE        2       /* cluster writing enabled */
   42 #define FFS_REALLOCBLKS         3       /* block reallocation enabled */
   43 #define FFS_ASYNCFREE           4       /* asynchronous block freeing enabled */
   44 #define FFS_LOG_CHANGEOPT       5       /* log optimalization strategy change */
   45 #define FFS_MAXID               6       /* number of valid ffs ids */
   46 
   47 #define FFS_NAMES { \
   48         { 0, 0 }, \
   49         { "doclusterread", CTLTYPE_INT }, \
   50         { "doclusterwrite", CTLTYPE_INT }, \
   51         { "doreallocblks", CTLTYPE_INT }, \
   52         { "doasyncfree", CTLTYPE_INT }, \
   53         { "log_changeopt", CTLTYPE_INT }, \
   54 }
   55 
   56 struct buf;
   57 struct fid;
   58 struct fs;
   59 struct inode;
   60 struct ufs1_dinode;
   61 struct ufs2_dinode;
   62 struct mount;
   63 struct nameidata;
   64 struct proc;
   65 struct statfs;
   66 struct timeval;
   67 struct ucred;
   68 struct ufsmount;
   69 struct uio;
   70 struct vnode;
   71 struct mbuf;
   72 struct cg;
   73 
   74 extern struct pool ffs_inode_pool;      /* memory pool for inodes */
   75 extern struct pool ffs_dinode1_pool;    /* memory pool for UFS1 dinodes */
   76 extern struct pool ffs_dinode2_pool;    /* memory pool for UFS2 dinodes */
   77 
   78 __BEGIN_DECLS
   79 
   80 /* ffs_alloc.c */
   81 int ffs_alloc __P((struct inode *, daddr_t, daddr_t , int, struct ucred *,
   82                    daddr_t *));
   83 int ffs_realloccg __P((struct inode *, daddr_t, daddr_t, int, int ,
   84                        struct ucred *, struct buf **, daddr_t *));
   85 int ffs_reallocblks __P((void *));
   86 int ffs_valloc __P((void *));
   87 daddr_t ffs_blkpref_ufs1 __P((struct inode *, daddr_t, int, int32_t *));
   88 daddr_t ffs_blkpref_ufs2 __P((struct inode *, daddr_t, int, int64_t *));
   89 void ffs_blkfree __P((struct inode *, daddr_t, long));
   90 int ffs_vfree __P((void *));
   91 void ffs_clusteracct __P((struct fs *, struct cg *, int32_t, int));
   92 
   93 /* ffs_balloc.c */
   94 int ffs_balloc __P((void *));
   95 
   96 /* ffs_bswap.c */
   97 void ffs_sb_swap __P((struct fs*, struct fs *));
   98 void ffs_dinode1_swap __P((struct ufs1_dinode *, struct ufs1_dinode *));
   99 void ffs_dinode2_swap __P((struct ufs2_dinode *, struct ufs2_dinode *));
  100 void ffs_csum_swap __P((struct csum *, struct csum *, int));
  101 void ffs_csumtotal_swap __P((struct csum_total *, struct csum_total *));
  102 void ffs_cg_swap __P((struct cg *, struct cg *, struct fs *));
  103 
  104 /* ffs_inode.c */
  105 int ffs_update __P((void *));
  106 int ffs_truncate __P((void *));
  107 
  108 /* ffs_subr.c */
  109 void ffs_load_inode __P((struct buf *, struct inode *, struct fs *, ino_t));
  110 int ffs_blkatoff __P((void *));
  111 int ffs_freefile __P((void *));
  112 void ffs_fragacct __P((struct fs *, int, int32_t[], int, int));
  113 #ifdef DIAGNOSTIC
  114 void    ffs_checkoverlap __P((struct buf *, struct inode *));
  115 #endif
  116 int ffs_isblock __P((struct fs *, u_char *, int32_t));
  117 int ffs_isfreeblock __P((struct fs *, u_char *, int32_t));
  118 void ffs_clrblock __P((struct fs *, u_char *, int32_t));
  119 void ffs_setblock __P((struct fs *, u_char *, int32_t));
  120 
  121 /* ffs_vfsops.c */
  122 void ffs_init __P((void));
  123 void ffs_reinit __P((void));
  124 void ffs_done __P((void));
  125 int ffs_mountroot __P((void));
  126 int ffs_mount __P((struct mount *, const char *, void *, struct nameidata *,
  127                    struct proc *));
  128 int ffs_reload __P((struct mount *, struct ucred *, struct proc *));
  129 int ffs_mountfs __P((struct vnode *, struct mount *, struct proc *));
  130 int ffs_unmount __P((struct mount *, int, struct proc *));
  131 int ffs_flushfiles __P((struct mount *, int, struct proc *));
  132 int ffs_statfs __P((struct mount *, struct statfs *, struct proc *));
  133 int ffs_sync __P((struct mount *, int, struct ucred *, struct proc *));
  134 int ffs_vget __P((struct mount *, ino_t, struct vnode **));
  135 int ffs_fhtovp __P((struct mount *, struct fid *, struct vnode **));
  136 int ffs_vptofh __P((struct vnode *, struct fid *));
  137 int ffs_sbupdate __P((struct ufsmount *, int));
  138 int ffs_cgupdate __P((struct ufsmount *, int));
  139 
  140 /* ffs_appleufs.c */
  141 u_int16_t ffs_appleufs_cksum __P((const struct appleufslabel *));
  142 int ffs_appleufs_validate __P((const char*,const struct appleufslabel *,struct appleufslabel *));
  143 void ffs_appleufs_set __P((struct appleufslabel *, const char *, time_t, uint64_t));
  144 
  145 
  146 /* ffs_vnops.c */
  147 int ffs_read __P((void *));
  148 int ffs_write __P((void *));
  149 int ffs_fsync __P((void *));
  150 int ffs_reclaim __P((void *));
  151 int ffs_getpages __P((void *));
  152 int ffs_putpages __P((void *));
  153 void ffs_gop_size __P((struct vnode *, off_t, off_t *, int));
  154 
  155 #ifdef SYSCTL_SETUP_PROTO
  156 SYSCTL_SETUP_PROTO(sysctl_vfs_ffs_setup);
  157 #endif /* SYSCTL_SETUP_PROTO */
  158 
  159 __END_DECLS
  160 
  161  
  162 /*
  163  * Soft dependency function prototypes.
  164  */
  165 void    softdep_initialize __P((void));
  166 void    softdep_reinitialize __P((void));
  167 int     softdep_mount __P((struct vnode *, struct mount *, struct fs *,
  168             struct ucred *));
  169 int     softdep_flushworklist __P((struct mount *, int *, struct proc *));
  170 int     softdep_flushfiles __P((struct mount *, int, struct proc *));
  171 void    softdep_update_inodeblock __P((struct inode *, struct buf *, int));
  172 void    softdep_load_inodeblock __P((struct inode *));
  173 void    softdep_freefile __P((void *));
  174 void    softdep_setup_freeblocks __P((struct inode *, off_t, int));
  175 void    softdep_setup_inomapdep __P((struct buf *, struct inode *, ino_t));
  176 void    softdep_setup_blkmapdep __P((struct buf *, struct fs *, daddr_t));
  177 void    softdep_setup_allocdirect __P((struct inode *, daddr_t, daddr_t,
  178             daddr_t, long, long, struct buf *));
  179 void    softdep_setup_allocindir_meta __P((struct buf *, struct inode *,
  180             struct buf *, int, daddr_t));
  181 void    softdep_setup_allocindir_page __P((struct inode *, daddr_t,
  182             struct buf *, int, daddr_t, daddr_t, struct buf *));
  183 void    softdep_fsync_mountdev __P((struct vnode *));
  184 int     softdep_sync_metadata __P((void *));
  185 
  186 extern int (**ffs_vnodeop_p) __P((void *));
  187 extern int (**ffs_specop_p) __P((void *));
  188 extern int (**ffs_fifoop_p) __P((void *));
  189 
  190 #endif /* !_UFS_FFS_FFS_EXTERN_H_ */

Cache object: c0ecaf7651bca254b9b9e7b0def8f1d0


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.