#define FFS_CLUSTERREAD 1
#define FFS_CLUSTERWRITE 2
#define FFS_REALLOCBLKS 3
#define FFS_ASYNCFREE 4
#define FFS_MAX_SOFTDEPS 5
#define FFS_SD_TICKDELAY 6
#define FFS_SD_WORKLIST_PUSH 7
#define FFS_SD_BLK_LIMIT_PUSH 8
#define FFS_SD_INO_LIMIT_PUSH 9
#define FFS_SD_BLK_LIMIT_HIT 10
#define FFS_SD_INO_LIMIT_HIT 11
#define FFS_SD_SYNC_LIMIT_HIT 12
#define FFS_SD_INDIR_BLK_PTRS 13
#define FFS_SD_INODE_BITMAP 14
#define FFS_SD_DIRECT_BLK_PTRS 15
#define FFS_SD_DIR_ENTRY 16
#define FFS_DIRHASH_DIRSIZE 17
#define FFS_DIRHASH_MAXMEM 18
#define FFS_DIRHASH_MEM 19
#define FFS_MAXID 20
#define FFS_NAMES { \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ "dirhash_dirsize", CTLTYPE_INT }, \
{ "dirhash_maxmem", CTLTYPE_INT }, \
{ "dirhash_mem", CTLTYPE_INT }, \
}
struct buf;
struct fid;
struct fs;
struct inode;
struct mount;
struct nameidata;
struct proc;
struct statfs;
struct timeval;
struct ucred;
struct ufsmount;
struct vfsconf;
struct uio;
struct vnode;
struct mbuf;
struct cg;
struct vop_vfree_args;
extern const struct vops ffs_vops;
extern const struct vops ffs_specvops;
extern const struct vops ffs_fifovops;
int ffs_alloc(struct inode *, daddr_t, daddr_t , int, struct ucred *,
daddr_t *);
int ffs_realloccg(struct inode *, daddr_t, daddr_t, int, int ,
struct ucred *, struct buf **, daddr_t *);
int ffs_inode_alloc(struct inode *, mode_t, struct ucred *, struct vnode **);
int ffs_inode_free(struct inode *, ufsino_t, mode_t);
int ffs_freefile(struct inode *, ufsino_t, mode_t);
int32_t ffs1_blkpref(struct inode *, daddr_t, int, int32_t *);
#ifdef FFS2
int64_t ffs2_blkpref(struct inode *, daddr_t, int, int64_t *);
#endif
void ffs_blkfree(struct inode *, daddr_t, long);
void ffs_clusteracct(struct fs *, struct cg *, daddr_t, int);
int ffs_balloc(struct inode *, off_t, int, struct ucred *, int, struct buf **);
int ffs_init(struct vfsconf *);
int ffs_update(struct inode *, int);
int ffs_truncate(struct inode *, off_t, int, struct ucred *);
int ffs_bufatoff(struct inode *, off_t, char **, struct buf **);
void ffs_fragacct(struct fs *, int, int32_t[], int);
int ffs_isfreeblock(struct fs *, u_char *, daddr_t);
int ffs_isblock(struct fs *, u_char *, daddr_t);
void ffs_clrblock(struct fs *, u_char *, daddr_t);
void ffs_setblock(struct fs *, u_char *, daddr_t);
int ffs_vinit(struct mount *, struct vnode **);
int ffs_mountroot(void);
int ffs_mount(struct mount *, const char *, void *, struct nameidata *,
struct proc *);
int ffs_reload(struct mount *, struct ucred *, struct proc *);
int ffs_mountfs(struct vnode *, struct mount *, struct proc *);
int ffs_oldfscompat(struct fs *);
int ffs_unmount(struct mount *, int, struct proc *);
int ffs_flushfiles(struct mount *, int, struct proc *);
int ffs_statfs(struct mount *, struct statfs *, struct proc *);
int ffs_sync(struct mount *, int, int, struct ucred *, struct proc *);
int ffs_vget(struct mount *, ino_t, struct vnode **);
int ffs_fhtovp(struct mount *, struct fid *, struct vnode **);
int ffs_vptofh(struct vnode *, struct fid *);
int ffs_sysctl(int *, u_int, void *, size_t *, void *, size_t,
struct proc *);
int ffs_sbupdate(struct ufsmount *, int);
int ffs_read(void *);
int ffs_write(void *);
int ffs_fsync(void *);
int ffs_reclaim(void *);
int ffsfifo_reclaim(void *);
struct vop_vfree_args;
struct vop_fsync_args;
extern struct pool ffs_ino_pool;
extern struct pool ffs_dinode1_pool;
#ifdef FFS2
extern struct pool ffs_dinode2_pool;
#endif