xref: /csrg-svn/sys/ufs/ffs/ffs_extern.h (revision 68666)
151475Sbostic /*-
266804Sbostic  * Copyright (c) 1991, 1993, 1994
363371Sbostic  *	The Regents of the University of California.  All rights reserved.
451475Sbostic  *
551475Sbostic  * %sccs.include.redist.c%
651475Sbostic  *
7*68666Smckusick  *	@(#)ffs_extern.h	8.6 (Berkeley) 03/30/95
851475Sbostic  */
951475Sbostic 
10*68666Smckusick /*
11*68666Smckusick  * Sysctl values for the fast filesystem.
12*68666Smckusick  */
13*68666Smckusick #define FFS_CLUSTERREAD		1	/* cluster reading enabled */
14*68666Smckusick #define FFS_CLUSTERWRITE	2	/* cluster writing enabled */
15*68666Smckusick #define FFS_REALLOCBLKS		3	/* block reallocation enabled */
16*68666Smckusick #define FFS_ASYNCFREE		4	/* asynchronous block freeing enabled */
17*68666Smckusick #define	FFS_MAXID		5	/* number of valid ffs ids */
18*68666Smckusick 
19*68666Smckusick #define FFS_NAMES { \
20*68666Smckusick 	{ 0, 0 }, \
21*68666Smckusick 	{ "doclusterread", CTLTYPE_INT }, \
22*68666Smckusick 	{ "doclusterwrite", CTLTYPE_INT }, \
23*68666Smckusick 	{ "doreallocblks", CTLTYPE_INT }, \
24*68666Smckusick 	{ "doasyncfree", CTLTYPE_INT }, \
25*68666Smckusick }
26*68666Smckusick 
2751475Sbostic struct buf;
2851540Smckusick struct fid;
2951475Sbostic struct fs;
3051475Sbostic struct inode;
3151475Sbostic struct mount;
3251475Sbostic struct nameidata;
3351475Sbostic struct proc;
3451475Sbostic struct statfs;
3551475Sbostic struct timeval;
3651475Sbostic struct ucred;
3751475Sbostic struct uio;
3851475Sbostic struct vnode;
3954736Smckusick struct mbuf;
40*68666Smckusick struct vfsconf;
4151475Sbostic 
4251475Sbostic __BEGIN_DECLS
4353243Smckusick int	ffs_alloc __P((struct inode *,
4468554Smckusick 	    ufs_daddr_t, ufs_daddr_t, int, struct ucred *, ufs_daddr_t *));
4553243Smckusick int	ffs_balloc __P((struct inode *,
4668554Smckusick 	    ufs_daddr_t, int, struct ucred *, struct buf **, int));
4753576Sheideman int	ffs_blkatoff __P((struct vop_blkatoff_args *));
4868554Smckusick int	ffs_blkfree __P((struct inode *, ufs_daddr_t, long));
4968554Smckusick ufs_daddr_t ffs_blkpref __P((struct inode *, ufs_daddr_t, int, ufs_daddr_t *));
5053576Sheideman int	ffs_bmap __P((struct vop_bmap_args *));
5168554Smckusick void	ffs_clrblock __P((struct fs *, u_char *, ufs_daddr_t));
5254736Smckusick int	ffs_fhtovp __P((struct mount *, struct fid *, struct mbuf *,
5354736Smckusick 	    struct vnode **, int *, struct ucred **));
5468122Smckusick void	ffs_fragacct __P((struct fs *, int, int32_t [], int));
5553558Sheideman int	ffs_fsync __P((struct vop_fsync_args *));
56*68666Smckusick int	ffs_init __P((struct vfsconf *));
5768554Smckusick int	ffs_isblock __P((struct fs *, u_char *, ufs_daddr_t));
5851475Sbostic int	ffs_mount __P((struct mount *,
5951475Sbostic 	    char *, caddr_t, struct nameidata *, struct proc *));
6051475Sbostic int	ffs_mountfs __P((struct vnode *, struct mount *, struct proc *));
6151475Sbostic int	ffs_mountroot __P((void));
6253576Sheideman int	ffs_read __P((struct vop_read_args *));
6365975Smckusick int	ffs_reallocblks __P((struct vop_reallocblks_args *));
6453243Smckusick int	ffs_realloccg __P((struct inode *,
6568554Smckusick 	    ufs_daddr_t, ufs_daddr_t, int, int, struct ucred *, struct buf **));
6653576Sheideman int	ffs_reclaim __P((struct vop_reclaim_args *));
6768554Smckusick void	ffs_setblock __P((struct fs *, u_char *, ufs_daddr_t));
6851475Sbostic int	ffs_statfs __P((struct mount *, struct statfs *, struct proc *));
6954459Smckusick int	ffs_sync __P((struct mount *, int, struct ucred *, struct proc *));
70*68666Smckusick int	ffs_sysctl __P((int *, u_int, void *, size_t *, void *, size_t,
71*68666Smckusick 	    struct proc *));
7253576Sheideman int	ffs_truncate __P((struct vop_truncate_args *));
7351475Sbostic int	ffs_unmount __P((struct mount *, int, struct proc *));
7453558Sheideman int	ffs_update __P((struct vop_update_args *));
7553576Sheideman int	ffs_valloc __P((struct vop_valloc_args *));
7653576Sheideman int	ffs_vfree __P((struct vop_vfree_args *));
7754652Smckusick int	ffs_vget __P((struct mount *, ino_t, struct vnode **));
7851540Smckusick int	ffs_vptofh __P((struct vnode *, struct fid *));
7953576Sheideman int	ffs_write __P((struct vop_write_args *));
8051475Sbostic 
8151475Sbostic int	bwrite();		/* FFS needs a bwrite routine.  XXX */
8251475Sbostic 
8351475Sbostic #ifdef DIAGNOSTIC
8451475Sbostic void	ffs_checkoverlap __P((struct buf *, struct inode *));
8551475Sbostic #endif
8651475Sbostic __END_DECLS
8751475Sbostic 
8853558Sheideman extern int (**ffs_vnodeop_p)();
8953558Sheideman extern int (**ffs_specop_p)();
9051596Smckusick #ifdef FIFO
9153558Sheideman extern int (**ffs_fifoop_p)();
9253508Sheideman #define FFS_FIFOOPS ffs_fifoop_p
9351596Smckusick #else
9451596Smckusick #define FFS_FIFOOPS NULL
9551596Smckusick #endif
96