ffs_extern.h revision 12158
11541Srgrimes/*-
21541Srgrimes * Copyright (c) 1991, 1993, 1994
31541Srgrimes *	The Regents of the University of California.  All rights reserved.
41541Srgrimes *
51541Srgrimes * Redistribution and use in source and binary forms, with or without
61541Srgrimes * modification, are permitted provided that the following conditions
71541Srgrimes * are met:
81541Srgrimes * 1. Redistributions of source code must retain the above copyright
91541Srgrimes *    notice, this list of conditions and the following disclaimer.
101541Srgrimes * 2. Redistributions in binary form must reproduce the above copyright
111541Srgrimes *    notice, this list of conditions and the following disclaimer in the
121541Srgrimes *    documentation and/or other materials provided with the distribution.
131541Srgrimes * 3. All advertising materials mentioning features or use of this software
141541Srgrimes *    must display the following acknowledgement:
151541Srgrimes *	This product includes software developed by the University of
161541Srgrimes *	California, Berkeley and its contributors.
171541Srgrimes * 4. Neither the name of the University nor the names of its contributors
181541Srgrimes *    may be used to endorse or promote products derived from this software
191541Srgrimes *    without specific prior written permission.
201541Srgrimes *
211541Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
221541Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
231541Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
241541Srgrimes * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
251541Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
261541Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
271541Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
281541Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
291541Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
301541Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
311541Srgrimes * SUCH DAMAGE.
321541Srgrimes *
331541Srgrimes *	@(#)ffs_extern.h	8.3 (Berkeley) 4/16/94
3412158Sbde * $Id: ffs_extern.h,v 1.7 1995/09/06 05:41:16 dyson Exp $
351541Srgrimes */
361541Srgrimes
371541Srgrimesstruct buf;
381541Srgrimesstruct fid;
391541Srgrimesstruct fs;
401541Srgrimesstruct inode;
411541Srgrimesstruct mount;
421541Srgrimesstruct nameidata;
431541Srgrimesstruct proc;
441541Srgrimesstruct statfs;
451541Srgrimesstruct timeval;
461541Srgrimesstruct ucred;
471541Srgrimesstruct uio;
481541Srgrimesstruct vnode;
491541Srgrimesstruct mbuf;
501541Srgrimes
511541Srgrimes__BEGIN_DECLS
521541Srgrimesint	ffs_alloc __P((struct inode *,
531541Srgrimes	    daddr_t, daddr_t, int, struct ucred *, daddr_t *));
541541Srgrimesint	ffs_balloc __P((struct inode *,
551541Srgrimes	    daddr_t, int, struct ucred *, struct buf **, int));
561541Srgrimesint	ffs_blkatoff __P((struct vop_blkatoff_args *));
571549Srgrimesvoid	ffs_blkfree __P((struct inode *, daddr_t, long));
581541Srgrimesdaddr_t	ffs_blkpref __P((struct inode *, daddr_t, int, daddr_t *));
591541Srgrimesint	ffs_bmap __P((struct vop_bmap_args *));
601541Srgrimesvoid	ffs_clrblock __P((struct fs *, u_char *, daddr_t));
611541Srgrimesint	ffs_fhtovp __P((struct mount *, struct fid *, struct mbuf *,
621541Srgrimes	    struct vnode **, int *, struct ucred **));
637430Sbdeint	ffs_flushfiles __P((struct mount *, int, struct proc *));
641541Srgrimesvoid	ffs_fragacct __P((struct fs *, int, long [], int));
651541Srgrimesint	ffs_fsync __P((struct vop_fsync_args *));
661541Srgrimesint	ffs_init __P((void));
671541Srgrimesint	ffs_isblock __P((struct fs *, u_char *, daddr_t));
681541Srgrimesint	ffs_mount __P((struct mount *,
691541Srgrimes	    char *, caddr_t, struct nameidata *, struct proc *));
701541Srgrimesint	ffs_mountfs __P((struct vnode *, struct mount *, struct proc *));
711541Srgrimesint	ffs_mountroot __P((void));
721541Srgrimesint	ffs_read __P((struct vop_read_args *));
731541Srgrimesint	ffs_reallocblks __P((struct vop_reallocblks_args *));
741541Srgrimesint	ffs_realloccg __P((struct inode *,
751541Srgrimes	    daddr_t, daddr_t, int, int, struct ucred *, struct buf **));
761541Srgrimesint	ffs_reclaim __P((struct vop_reclaim_args *));
771541Srgrimesvoid	ffs_setblock __P((struct fs *, u_char *, daddr_t));
781541Srgrimesint	ffs_statfs __P((struct mount *, struct statfs *, struct proc *));
791541Srgrimesint	ffs_sync __P((struct mount *, int, struct ucred *, struct proc *));
801541Srgrimesint	ffs_truncate __P((struct vop_truncate_args *));
811541Srgrimesint	ffs_unmount __P((struct mount *, int, struct proc *));
821541Srgrimesint	ffs_update __P((struct vop_update_args *));
831541Srgrimesint	ffs_valloc __P((struct vop_valloc_args *));
841541Srgrimesint	ffs_vfree __P((struct vop_vfree_args *));
851541Srgrimesint	ffs_vget __P((struct mount *, ino_t, struct vnode **));
861541Srgrimesint	ffs_vptofh __P((struct vnode *, struct fid *));
871541Srgrimesint	ffs_write __P((struct vop_write_args *));
8810578Sdysonint	ffs_getpages __P((struct vop_getpages_args *));
891541Srgrimes
901541Srgrimes#ifdef DIAGNOSTIC
911541Srgrimesvoid	ffs_checkoverlap __P((struct buf *, struct inode *));
921541Srgrimes#endif
931541Srgrimes__END_DECLS
941541Srgrimes
9512158Sbdeextern vop_t **ffs_vnodeop_p;
9612158Sbdeextern vop_t **ffs_specop_p;
9712158Sbdeextern vop_t **ffs_fifoop_p;
981541Srgrimes#define FFS_FIFOOPS ffs_fifoop_p
99