Annotation of sys/xfs/xfs_vnodeops.h, Revision 1.1.1.1
1.1 nbrk 1: /*
2: * Copyright (c) 1995 - 2002 Kungliga Tekniska Högskolan
3: * (Royal Institute of Technology, Stockholm, Sweden).
4: * All rights reserved.
5: *
6: * Redistribution and use in source and binary forms, with or without
7: * modification, are permitted provided that the following conditions
8: * are met:
9: *
10: * 1. Redistributions of source code must retain the above copyright
11: * notice, this list of conditions and the following disclaimer.
12: *
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: *
17: * 3. Neither the name of the Institute 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.
20: *
21: * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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
31: * SUCH DAMAGE.
32: */
33:
34: /* $arla: xfs_vnodeops.h,v 1.25 2002/09/07 10:46:12 lha Exp $ */
35:
36: #ifndef _xfs_vnodeops_h
37: #define _xfs_vnodeops_h
38:
39: /*
40: * xfs_vfs_readlock
41: * xfs_vfs_writelock
42: * xfs_vfs_unlock
43: */
44:
45: #ifdef __osf__ /* XXX - what about VN_LOCK? */
46:
47: #define xfs_vfs_readlock(vp, proc) VREF((vp))
48: #define xfs_vfs_writelock(vp, proc) VREF((vp))
49: #define xfs_vfs_unlock(vp, proc) vrele((vp))
50:
51: /* XXX - should this do anything? */
52:
53: #define xfs_vfs_vn_lock(vp, flags, proc) (0)
54:
55: #elif defined(HAVE_TWO_ARGUMENT_VOP_LOCK)
56:
57: #define xfs_vfs_readlock(vp, proc) vn_lock((vp), LK_SHARED | LK_RETRY)
58: #define xfs_vfs_writelock(vp, proc) vn_lock((vp), LK_EXCLUSIVE | LK_RETRY)
59: #define xfs_vfs_unlock(vp, proc) VOP_UNLOCK((vp), 0)
60: #define xfs_vfs_vn_lock(vp, flags, proc) vn_lock((vp), (flags))
61:
62: #elif defined(HAVE_THREE_ARGUMENT_VOP_LOCK)
63:
64: #define xfs_vfs_readlock(vp, proc) vn_lock((vp), LK_SHARED | LK_RETRY, (proc))
65: #define xfs_vfs_writelock(vp, proc) vn_lock((vp), LK_EXCLUSIVE | LK_RETRY, (proc))
66: #define xfs_vfs_unlock(vp, proc) VOP_UNLOCK((vp), 0, (proc))
67: #define xfs_vfs_vn_lock(vp, flags, proc) vn_lock((vp), (flags), (proc))
68:
69: #elif defined(HAVE_ONE_ARGUMENT_VOP_LOCK)
70:
71: #define xfs_vfs_readlock(vp, proc) VOP_LOCK((vp))
72: #define xfs_vfs_writelock(vp, proc) VOP_LOCK((vp))
73: #define xfs_vfs_unlock(vp, proc) VOP_UNLOCK((vp))
74:
75: /* XXX - should this do anything? */
76:
77: #define xfs_vfs_vn_lock(vp, flags, proc) (0)
78:
79: #else
80:
81: #error what kind of VOP_LOCK?
82:
83: #endif
84:
85: int
86: xfs_open_valid(struct vnode *vp, struct ucred *cred, d_thread_t *p,
87: u_int tok);
88:
89: int
90: xfs_attr_valid(struct vnode *vp, struct ucred *cred, d_thread_t *p,
91: u_int tok);
92:
93: int
94: xfs_fetch_rights(struct vnode *vp, struct ucred *cred, d_thread_t *p);
95:
96: int
97: xfs_data_valid(struct vnode *vp, struct ucred *cred, d_thread_t *p,
98: u_int tok, uint32_t offset);
99:
100: int
101: xfs_open_common(struct vnode *vp,
102: int mode,
103: struct ucred *cred,
104: d_thread_t *p);
105:
106: int
107: xfs_fsync_common(struct vnode *vp, struct ucred *cred,
108: int waitfor, d_thread_t *proc);
109:
110: int
111: xfs_close_common(struct vnode *vp, int fflag,
112: d_thread_t *proc, struct ucred *cred);
113:
114: int
115: xfs_read_common(struct vnode *vp, struct uio *uio, int ioflag,
116: struct ucred *cred);
117:
118: int
119: xfs_write_common(struct vnode *vp, struct uio *uiop, int ioflag,
120: struct ucred *cred);
121:
122: int
123: xfs_getattr_common(struct vnode *vp, struct vattr *vap,
124: struct ucred *cred, d_thread_t *p);
125:
126: int
127: xfs_setattr_common(struct vnode *vp, struct vattr *vap,
128: struct ucred *cred, d_thread_t *p);
129:
130: int
131: xfs_access_common(struct vnode *vp, int mode,
132: struct ucred *cred, d_thread_t *p);
133:
134: int
135: xfs_lookup_common(struct vnode *dvp,
136: xfs_componentname *cnp,
137: struct vnode **vpp);
138:
139: int
140: xfs_create_common(struct vnode *dvp,
141: const char *name,
142: struct vattr *vap,
143: struct ucred *cred,
144: d_thread_t *p);
145:
146: int
147: xfs_remove_common(struct vnode *dvp,
148: struct vnode *vp,
149: const char *name,
150: struct ucred *cred,
151: d_thread_t *p);
152:
153: int
154: xfs_rename_common(struct vnode *fdvp,
155: struct vnode *fvp,
156: const char *fname,
157: struct vnode *tdvp,
158: struct vnode *tvp,
159: const char *tname,
160: struct ucred *cred,
161: d_thread_t *p);
162:
163: int
164: xfs_mkdir_common(struct vnode *dvp,
165: const char *name,
166: struct vattr *vap,
167: struct ucred *cred,
168: d_thread_t *p);
169:
170: int
171: xfs_rmdir_common(struct vnode *dvp,
172: struct vnode *vp,
173: const char *name,
174: struct ucred *cred,
175: d_thread_t *p);
176:
177: int
178: xfs_readdir_common(struct vnode *vp,
179: struct uio *uiop,
180: struct ucred *cred,
181: d_thread_t *p,
182: int *eofflag);
183:
184: int
185: xfs_link_common(struct vnode *dvp,
186: struct vnode *vp,
187: const char *name,
188: struct ucred *cred,
189: d_thread_t *p);
190:
191: int
192: xfs_symlink_common(struct vnode *dvp,
193: struct vnode **vpp,
194: xfs_componentname *cnp,
195: struct vattr *vap,
196: char *target);
197:
198: int
199: xfs_readlink_common(struct vnode *vp, struct uio *uiop, struct ucred *cred);
200:
201: int
202: xfs_inactive_common(struct vnode *vp, d_thread_t *p);
203:
204: int
205: xfs_reclaim_common(struct vnode *vp);
206:
207: int
208: xfs_eopnotsupp (struct vop_generic_args *ap);
209:
210: int
211: xfs_returnzero (struct vop_generic_args *ap);
212:
213: void
214: xfs_printnode_common (struct vnode *vp);
215:
216: size_t
217: xfs_uio_end_length (struct uio *uio);
218:
219:
220: #endif /* _xfs_vnodeops_h */
CVSweb