2 * Copyright (c) 1991, 1993, 1994
3 * The Regents of the University of California. All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * @(#)ufs_extern.h 8.10 (Berkeley) 5/14/95
34 * $FreeBSD: src/sys/ufs/ufs/ufs_extern.h,v 1.27.2.1 2000/12/28 11:01:46 ps Exp $
35 * $DragonFly: src/sys/vfs/ufs/ufs_extern.h,v 1.15 2006/09/10 01:26:41 dillon Exp $
38 #ifndef _VFS_UFS_EXTERN_H_
39 #define _VFS_UFS_EXTERN_H_
53 struct vop_old_lookup_args
;
54 struct vop_generic_args
;
55 struct vop_inactive_args
;
56 struct vop_reclaim_args
;
58 int ufs_vnoperate(struct vop_generic_args
*);
59 int ufs_vnoperatefifo(struct vop_generic_args
*);
60 int ufs_vnoperatespec(struct vop_generic_args
*);
62 int ufs_bmap(struct vop_bmap_args
*);
63 int ufs_bmaparray(struct vnode
*, daddr_t
, daddr_t
*, struct indir
*,
65 int ufs_check_export(struct mount
*, struct sockaddr
*,
66 int *, struct ucred
**);
67 int ufs_fhtovp(struct mount
*, struct ufid
*, struct vnode
**);
68 int ufs_checkpath(struct inode
*, struct inode
*, struct ucred
*);
69 void ufs_dirbad(struct inode
*, doff_t
, char *);
70 int ufs_dirbadentry(struct vnode
*, struct direct
*, int);
71 int ufs_dirempty(struct inode
*, ino_t
, struct ucred
*);
72 void ufs_makedirentry(struct inode
*, struct componentname
*,
74 int ufs_direnter(struct vnode
*, struct vnode
*, struct direct
*,
75 struct componentname
*, struct buf
*);
76 int ufs_dirremove(struct vnode
*, struct inode
*, int, int);
77 int ufs_dirrewrite(struct inode
*, struct inode
*, ino_t
, int, int);
78 int ufs_getlbns(struct vnode
*, ufs_daddr_t
, struct indir
*, int *);
80 ufs_ihashget(cdev_t
, ino_t
);
81 int ufs_ihashcheck(cdev_t
, ino_t
);
82 void ufs_ihashinit(void);
83 int ufs_ihashins(struct inode
*);
85 ufs_ihashlookup(cdev_t
, ino_t
);
86 void ufs_ihashrem(struct inode
*);
87 int ufs_inactive(struct vop_inactive_args
*);
88 int ufs_init(struct vfsconf
*);
89 int ufs_uninit(struct vfsconf
*);
90 void ufs_itimes(struct vnode
*vp
);
91 int ufs_lookup(struct vop_old_lookup_args
*);
92 int ufs_reclaim(struct vop_reclaim_args
*);
93 int ufs_root(struct mount
*, struct vnode
**);
94 int ufs_start(struct mount
*, int, struct thread
*);
95 int ufs_vinit(struct mount
*, struct vnode
**);
98 * Soft update function prototypes.
100 void softdep_setup_directory_add(struct buf
*, struct inode
*, off_t
,
101 ino_t
, struct buf
*);
102 void softdep_change_directoryentry_offset(struct inode
*, caddr_t
,
103 caddr_t
, caddr_t
, int);
104 void softdep_setup_remove(struct buf
*,struct inode
*, struct inode
*,
106 void softdep_setup_directory_change(struct buf
*, struct inode
*,
107 struct inode
*, ino_t
, int);
108 void softdep_change_linkcnt(struct inode
*);
109 int softdep_slowdown(struct vnode
*);
111 #endif /* !_VFS_UFS_EXTERN_H_ */