[BACK]Return to ffs_extern.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / ufs / ffs

Annotation of src/sys/ufs/ffs/ffs_extern.h, Revision 1.32.2.7

1.32.2.7! skrll       1: /*     $NetBSD: ffs_extern.h,v 1.32.2.5 2004/09/03 12:45:55 skrll Exp $        */
1.2       cgd         2:
1.1       mycroft     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.
1.32.2.2  skrll      15:  * 3. Neither the name of the University nor the names of its contributors
1.1       mycroft    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:  *
1.7       fvdl       31:  *     @(#)ffs_extern.h        8.6 (Berkeley) 3/30/95
1.1       mycroft    32:  */
1.9       sommerfe   33:
1.24      matt       34: #ifndef _UFS_FFS_FFS_EXTERN_H_
                     35: #define _UFS_FFS_FFS_EXTERN_H_
                     36:
1.7       fvdl       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 */
1.16      jdolecek   44: #define FFS_LOG_CHANGEOPT      5       /* log optimalization strategy change */
                     45: #define FFS_MAXID              6       /* number of valid ffs ids */
1.7       fvdl       46:
                     47: #define FFS_NAMES { \
                     48:        { 0, 0 }, \
                     49:        { "doclusterread", CTLTYPE_INT }, \
                     50:        { "doclusterwrite", CTLTYPE_INT }, \
                     51:        { "doreallocblks", CTLTYPE_INT }, \
                     52:        { "doasyncfree", CTLTYPE_INT }, \
1.16      jdolecek   53:        { "log_changeopt", CTLTYPE_INT }, \
1.7       fvdl       54: }
                     55:
1.1       mycroft    56: struct buf;
                     57: struct fid;
                     58: struct fs;
                     59: struct inode;
1.32      fvdl       60: struct ufs1_dinode;
                     61: struct ufs2_dinode;
1.1       mycroft    62: struct mount;
                     63: struct nameidata;
1.32.2.7! skrll      64: struct lwp;
1.32.2.2  skrll      65: struct statvfs;
1.1       mycroft    66: struct timeval;
1.32.2.2  skrll      67: struct timespec;
1.1       mycroft    68: struct ucred;
1.4       christos   69: struct ufsmount;
1.1       mycroft    70: struct uio;
                     71: struct vnode;
1.32      fvdl       72: struct mbuf;
                     73: struct cg;
1.11      thorpej    74:
1.28      fvdl       75: extern struct pool ffs_inode_pool;     /* memory pool for inodes */
                     76: extern struct pool ffs_dinode1_pool;   /* memory pool for UFS1 dinodes */
                     77: extern struct pool ffs_dinode2_pool;   /* memory pool for UFS2 dinodes */
1.1       mycroft    78:
                     79: __BEGIN_DECLS
                     80:
1.4       christos   81: /* ffs_alloc.c */
1.25      fvdl       82: int ffs_alloc __P((struct inode *, daddr_t, daddr_t , int, struct ucred *,
                     83:                   daddr_t *));
                     84: int ffs_realloccg __P((struct inode *, daddr_t, daddr_t, int, int ,
                     85:                       struct ucred *, struct buf **, daddr_t *));
1.4       christos   86: int ffs_reallocblks __P((void *));
                     87: int ffs_valloc __P((void *));
1.28      fvdl       88: daddr_t ffs_blkpref_ufs1 __P((struct inode *, daddr_t, int, int32_t *));
                     89: daddr_t ffs_blkpref_ufs2 __P((struct inode *, daddr_t, int, int64_t *));
1.32.2.2  skrll      90: void ffs_blkfree __P((struct fs *, struct vnode *, daddr_t, long, ino_t));
1.4       christos   91: int ffs_vfree __P((void *));
1.28      fvdl       92: void ffs_clusteracct __P((struct fs *, struct cg *, int32_t, int));
1.32.2.2  skrll      93: int ffs_checkfreefile __P((struct fs *, struct vnode *, ino_t));
1.4       christos   94:
                     95: /* ffs_balloc.c */
1.13      fvdl       96: int ffs_balloc __P((void *));
1.4       christos   97:
1.8       bouyer     98: /* ffs_bswap.c */
1.19      lukem      99: void ffs_sb_swap __P((struct fs*, struct fs *));
1.28      fvdl      100: void ffs_dinode1_swap __P((struct ufs1_dinode *, struct ufs1_dinode *));
                    101: void ffs_dinode2_swap __P((struct ufs2_dinode *, struct ufs2_dinode *));
1.8       bouyer    102: void ffs_csum_swap __P((struct csum *, struct csum *, int));
1.28      fvdl      103: void ffs_csumtotal_swap __P((struct csum_total *, struct csum_total *));
                    104: void ffs_cg_swap __P((struct cg *, struct cg *, struct fs *));
1.8       bouyer    105:
1.4       christos  106: /* ffs_inode.c */
                    107: int ffs_update __P((void *));
                    108: int ffs_truncate __P((void *));
                    109:
                    110: /* ffs_subr.c */
1.28      fvdl      111: void ffs_load_inode __P((struct buf *, struct inode *, struct fs *, ino_t));
1.4       christos  112: int ffs_blkatoff __P((void *));
1.32.2.5  skrll     113: int ffs_freefile __P((struct fs *, struct vnode *, ino_t, int));
1.8       bouyer    114: void ffs_fragacct __P((struct fs *, int, int32_t[], int, int));
1.1       mycroft   115: #ifdef DIAGNOSTIC
                    116: void   ffs_checkoverlap __P((struct buf *, struct inode *));
                    117: #endif
1.28      fvdl      118: int ffs_isblock __P((struct fs *, u_char *, int32_t));
                    119: int ffs_isfreeblock __P((struct fs *, u_char *, int32_t));
                    120: void ffs_clrblock __P((struct fs *, u_char *, int32_t));
                    121: void ffs_setblock __P((struct fs *, u_char *, int32_t));
1.4       christos  122:
                    123: /* ffs_vfsops.c */
1.15      jdolecek  124: void ffs_init __P((void));
1.20      chs       125: void ffs_reinit __P((void));
1.15      jdolecek  126: void ffs_done __P((void));
1.4       christos  127: int ffs_mountroot __P((void));
1.6       cgd       128: int ffs_mount __P((struct mount *, const char *, void *, struct nameidata *,
1.32.2.7! skrll     129:                   struct lwp *));
        !           130: int ffs_reload __P((struct mount *, struct ucred *, struct lwp *));
        !           131: int ffs_mountfs __P((struct vnode *, struct mount *, struct lwp *));
        !           132: int ffs_unmount __P((struct mount *, int, struct lwp *));
        !           133: int ffs_flushfiles __P((struct mount *, int, struct lwp *));
        !           134: int ffs_statvfs __P((struct mount *, struct statvfs *, struct lwp *));
        !           135: int ffs_sync __P((struct mount *, int, struct ucred *, struct lwp *));
1.32.2.4  skrll     136: int ffs_vget __P((struct mount *, ino_t, struct vnode **));
                    137: int ffs_fhtovp __P((struct mount *, struct fid *, struct vnode **));
1.4       christos  138: int ffs_vptofh __P((struct vnode *, struct fid *));
                    139: int ffs_sbupdate __P((struct ufsmount *, int));
                    140: int ffs_cgupdate __P((struct ufsmount *, int));
1.23      dbj       141:
                    142: /* ffs_appleufs.c */
                    143: u_int16_t ffs_appleufs_cksum __P((const struct appleufslabel *));
                    144: int ffs_appleufs_validate __P((const char*,const struct appleufslabel *,struct appleufslabel *));
1.32.2.2  skrll     145: void ffs_appleufs_set __P((struct appleufslabel *, const char *, time_t, uint64_t));
1.23      dbj       146:
1.4       christos  147:
                    148: /* ffs_vnops.c */
                    149: int ffs_read __P((void *));
                    150: int ffs_write __P((void *));
1.13      fvdl      151: int ffs_fsync __P((void *));
1.4       christos  152: int ffs_reclaim __P((void *));
1.21      chs       153: int ffs_getpages __P((void *));
1.22      chs       154: int ffs_putpages __P((void *));
1.26      perseant  155: void ffs_gop_size __P((struct vnode *, off_t, off_t *, int));
1.32.2.2  skrll     156:
                    157: #ifdef SYSCTL_SETUP_PROTO
                    158: SYSCTL_SETUP_PROTO(sysctl_vfs_ffs_setup);
                    159: #endif /* SYSCTL_SETUP_PROTO */
                    160:
1.1       mycroft   161: __END_DECLS
1.13      fvdl      162:
                    163:
                    164: /*
1.32.2.2  skrll     165:  * Snapshot function prototypes.
                    166:  */
                    167: int    ffs_snapblkfree(struct fs *, struct vnode *, daddr_t, long, ino_t);
                    168: void   ffs_snapremove(struct vnode *);
                    169: int    ffs_snapshot(struct mount *, struct vnode *, struct timespec *);
                    170: void   ffs_snapshot_mount(struct mount *);
                    171: void   ffs_snapshot_unmount(struct mount *);
                    172: void   ffs_snapgone(struct inode *);
                    173:
                    174: /*
1.13      fvdl      175:  * Soft dependency function prototypes.
                    176:  */
                    177: void   softdep_initialize __P((void));
1.20      chs       178: void   softdep_reinitialize __P((void));
1.13      fvdl      179: int    softdep_mount __P((struct vnode *, struct mount *, struct fs *,
                    180:            struct ucred *));
1.32.2.7! skrll     181: int    softdep_flushworklist __P((struct mount *, int *, struct lwp *));
        !           182: int    softdep_flushfiles __P((struct mount *, int, struct lwp *));
1.13      fvdl      183: void   softdep_update_inodeblock __P((struct inode *, struct buf *, int));
                    184: void   softdep_load_inodeblock __P((struct inode *));
                    185: void   softdep_freefile __P((void *));
1.28      fvdl      186: void   softdep_setup_freeblocks __P((struct inode *, off_t, int));
1.13      fvdl      187: void   softdep_setup_inomapdep __P((struct buf *, struct inode *, ino_t));
1.25      fvdl      188: void   softdep_setup_blkmapdep __P((struct buf *, struct fs *, daddr_t));
                    189: void   softdep_setup_allocdirect __P((struct inode *, daddr_t, daddr_t,
                    190:            daddr_t, long, long, struct buf *));
1.13      fvdl      191: void   softdep_setup_allocindir_meta __P((struct buf *, struct inode *,
1.25      fvdl      192:            struct buf *, int, daddr_t));
                    193: void   softdep_setup_allocindir_page __P((struct inode *, daddr_t,
                    194:            struct buf *, int, daddr_t, daddr_t, struct buf *));
1.13      fvdl      195: void   softdep_fsync_mountdev __P((struct vnode *));
                    196: int    softdep_sync_metadata __P((void *));
1.1       mycroft   197:
1.4       christos  198: extern int (**ffs_vnodeop_p) __P((void *));
                    199: extern int (**ffs_specop_p) __P((void *));
                    200: extern int (**ffs_fifoop_p) __P((void *));
1.10      sommerfe  201:
1.24      matt      202: #endif /* !_UFS_FFS_FFS_EXTERN_H_ */

CVSweb <webmaster@jp.NetBSD.org>