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