must have directory vnode as first op
[unix-history] / usr / src / sys / ufs / ffs / ffs_extern.h
CommitLineData
bfc55274
KB
1/*-
2 * Copyright (c) 1991 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * %sccs.include.redist.c%
6 *
c906fba1 7 * @(#)ffs_extern.h 7.4 (Berkeley) %G%
bfc55274
KB
8 */
9
10struct buf;
a9013e03 11struct fid;
bfc55274
KB
12struct fs;
13struct inode;
14struct mount;
15struct nameidata;
16struct proc;
17struct statfs;
18struct timeval;
19struct ucred;
20struct uio;
21struct vnode;
22
23__BEGIN_DECLS
24int ffs_alloc __P((struct inode *, daddr_t, daddr_t, int, daddr_t *));
25int ffs_balloc __P((struct inode *, daddr_t, int, struct buf **, int));
a9013e03 26int ffs_blkatoff __P((struct vnode *, off_t, char **, struct buf **));
bfc55274
KB
27int ffs_blkfree __P((struct inode *, daddr_t, off_t));
28daddr_t ffs_blkpref __P((struct inode *, daddr_t, int, daddr_t *));
a9013e03 29int ffs_bmap __P((struct vnode *, daddr_t, struct vnode **, daddr_t *));
bfc55274 30void ffs_clrblock __P((struct fs *, u_char *, daddr_t));
c906fba1 31int ffs_fhtovp __P((struct mount *, struct fid *, int, struct vnode **));
bfc55274
KB
32void ffs_fragacct __P((struct fs *, int, long [], int));
33int ffs_fsync
34 __P((struct vnode *, int, struct ucred *, int, struct proc *));
a9013e03 35int ffs_inactive __P((struct vnode *, struct proc *));
bfc55274
KB
36int ffs_init __P((void));
37int ffs_isblock __P((struct fs *, u_char *, daddr_t));
bfc55274
KB
38int ffs_mount __P((struct mount *,
39 char *, caddr_t, struct nameidata *, struct proc *));
40int ffs_mountfs __P((struct vnode *, struct mount *, struct proc *));
41int ffs_mountroot __P((void));
42int ffs_read __P((struct vnode *, struct uio *, int, struct ucred *));
43int ffs_realloccg
44 __P((struct inode *, off_t, daddr_t, int, int, struct buf **));
45int ffs_reclaim __P((struct vnode *));
a9013e03 46int ffs_root __P((struct mount *, struct vnode **));
bfc55274
KB
47void ffs_setblock __P((struct fs *, u_char *, daddr_t));
48int ffs_statfs __P((struct mount *, struct statfs *, struct proc *));
49int ffs_sync __P((struct mount *, int));
a9013e03 50int ffs_truncate __P((struct vnode *, u_long, int));
bfc55274 51int ffs_unmount __P((struct mount *, int, struct proc *));
a9013e03
KM
52int ffs_update
53 __P((struct vnode *, struct timeval *, struct timeval *, int));
54int ffs_valloc __P((struct vnode *, int, struct ucred *, struct vnode **));
55void ffs_vfree __P((struct vnode *, ino_t, int));
56int ffs_vget __P((struct mount *, ino_t, struct vnode **));
57int ffs_vptofh __P((struct vnode *, struct fid *));
bfc55274
KB
58int ffs_write __P((struct vnode *, struct uio *, int, struct ucred *));
59
60int bwrite(); /* FFS needs a bwrite routine. XXX */
61
62#ifdef DIAGNOSTIC
63void ffs_checkoverlap __P((struct buf *, struct inode *));
64#endif
65__END_DECLS
66
67extern int inside[], around[];
68extern u_char *fragtbl[];
7ba38242
KM
69extern struct vnodeops ffs_vnodeops, ffs_specops;
70#ifdef FIFO
71extern struct vnodeops ffs_fifoops;
72#define FFS_FIFOOPS &ffs_fifoops
73#else
74#define FFS_FIFOOPS NULL
75#endif