vnode_if.c revision 1.23 1 1.20 wrstuden /* $NetBSD: vnode_if.c,v 1.23 2000/09/13 15:51:19 thorpej Exp $ */
2 1.9 thorpej
3 1.1 cgd /*
4 1.1 cgd * Warning: This file is generated automatically.
5 1.1 cgd * (Modifications made here may easily be lost!)
6 1.1 cgd *
7 1.1 cgd * Created from the file:
8 1.23 thorpej * NetBSD: vnode_if.src,v 1.24 2000/05/13 23:43:07 perseant Exp
9 1.1 cgd * by the script:
10 1.23 thorpej * NetBSD: vnode_if.sh,v 1.20 2000/09/13 15:50:26 thorpej Exp
11 1.1 cgd */
12 1.1 cgd
13 1.1 cgd /*
14 1.10 fvdl * Copyright (c) 1992, 1993, 1994, 1995
15 1.1 cgd * The Regents of the University of California. All rights reserved.
16 1.1 cgd *
17 1.1 cgd * Redistribution and use in source and binary forms, with or without
18 1.1 cgd * modification, are permitted provided that the following conditions
19 1.1 cgd * are met:
20 1.1 cgd * 1. Redistributions of source code must retain the above copyright
21 1.1 cgd * notice, this list of conditions and the following disclaimer.
22 1.1 cgd * 2. Redistributions in binary form must reproduce the above copyright
23 1.1 cgd * notice, this list of conditions and the following disclaimer in the
24 1.1 cgd * documentation and/or other materials provided with the distribution.
25 1.1 cgd * 3. All advertising materials mentioning features or use of this software
26 1.1 cgd * must display the following acknowledgement:
27 1.1 cgd * This product includes software developed by the University of
28 1.1 cgd * California, Berkeley and its contributors.
29 1.1 cgd * 4. Neither the name of the University nor the names of its contributors
30 1.1 cgd * may be used to endorse or promote products derived from this software
31 1.1 cgd * without specific prior written permission.
32 1.1 cgd *
33 1.14 christos * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
34 1.1 cgd * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
35 1.1 cgd * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
36 1.1 cgd * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
37 1.1 cgd * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38 1.1 cgd * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
39 1.1 cgd * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40 1.1 cgd * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
41 1.1 cgd * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
42 1.1 cgd * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43 1.1 cgd * SUCH DAMAGE.
44 1.1 cgd */
45 1.1 cgd
46 1.1 cgd #include <sys/param.h>
47 1.1 cgd #include <sys/mount.h>
48 1.23 thorpej #include <sys/buf.h>
49 1.1 cgd #include <sys/vnode.h>
50 1.1 cgd
51 1.1 cgd struct vnodeop_desc vop_default_desc = {
52 1.1 cgd 0,
53 1.1 cgd "default",
54 1.1 cgd 0,
55 1.1 cgd NULL,
56 1.1 cgd VDESC_NO_OFFSET,
57 1.1 cgd VDESC_NO_OFFSET,
58 1.1 cgd VDESC_NO_OFFSET,
59 1.1 cgd VDESC_NO_OFFSET,
60 1.1 cgd NULL,
61 1.1 cgd };
62 1.1 cgd
63 1.1 cgd
64 1.1 cgd int vop_lookup_vp_offsets[] = {
65 1.1 cgd VOPARG_OFFSETOF(struct vop_lookup_args,a_dvp),
66 1.1 cgd VDESC_NO_OFFSET
67 1.1 cgd };
68 1.1 cgd struct vnodeop_desc vop_lookup_desc = {
69 1.1 cgd 0,
70 1.1 cgd "vop_lookup",
71 1.1 cgd 0,
72 1.1 cgd vop_lookup_vp_offsets,
73 1.1 cgd VOPARG_OFFSETOF(struct vop_lookup_args, a_vpp),
74 1.1 cgd VDESC_NO_OFFSET,
75 1.1 cgd VDESC_NO_OFFSET,
76 1.1 cgd VOPARG_OFFSETOF(struct vop_lookup_args, a_cnp),
77 1.1 cgd NULL,
78 1.1 cgd };
79 1.23 thorpej #ifdef VNODE_OP_NOINLINE
80 1.23 thorpej int
81 1.23 thorpej VOP_LOOKUP(dvp, vpp, cnp)
82 1.23 thorpej struct vnode *dvp;
83 1.23 thorpej struct vnode **vpp;
84 1.23 thorpej struct componentname *cnp;
85 1.23 thorpej {
86 1.23 thorpej struct vop_lookup_args a;
87 1.23 thorpej a.a_desc = VDESC(vop_lookup);
88 1.23 thorpej a.a_dvp = dvp;
89 1.23 thorpej a.a_vpp = vpp;
90 1.23 thorpej a.a_cnp = cnp;
91 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_lookup), &a));
92 1.23 thorpej }
93 1.23 thorpej #endif
94 1.1 cgd
95 1.1 cgd int vop_create_vp_offsets[] = {
96 1.1 cgd VOPARG_OFFSETOF(struct vop_create_args,a_dvp),
97 1.1 cgd VDESC_NO_OFFSET
98 1.1 cgd };
99 1.1 cgd struct vnodeop_desc vop_create_desc = {
100 1.1 cgd 0,
101 1.1 cgd "vop_create",
102 1.17 wrstuden 0 | VDESC_VP0_WILLPUT,
103 1.1 cgd vop_create_vp_offsets,
104 1.1 cgd VOPARG_OFFSETOF(struct vop_create_args, a_vpp),
105 1.1 cgd VDESC_NO_OFFSET,
106 1.1 cgd VDESC_NO_OFFSET,
107 1.1 cgd VOPARG_OFFSETOF(struct vop_create_args, a_cnp),
108 1.1 cgd NULL,
109 1.1 cgd };
110 1.23 thorpej #ifdef VNODE_OP_NOINLINE
111 1.23 thorpej int
112 1.23 thorpej VOP_CREATE(dvp, vpp, cnp, vap)
113 1.23 thorpej struct vnode *dvp;
114 1.23 thorpej struct vnode **vpp;
115 1.23 thorpej struct componentname *cnp;
116 1.23 thorpej struct vattr *vap;
117 1.23 thorpej {
118 1.23 thorpej struct vop_create_args a;
119 1.23 thorpej a.a_desc = VDESC(vop_create);
120 1.23 thorpej a.a_dvp = dvp;
121 1.23 thorpej a.a_vpp = vpp;
122 1.23 thorpej a.a_cnp = cnp;
123 1.23 thorpej a.a_vap = vap;
124 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_create), &a));
125 1.23 thorpej }
126 1.23 thorpej #endif
127 1.1 cgd
128 1.1 cgd int vop_mknod_vp_offsets[] = {
129 1.1 cgd VOPARG_OFFSETOF(struct vop_mknod_args,a_dvp),
130 1.1 cgd VDESC_NO_OFFSET
131 1.1 cgd };
132 1.1 cgd struct vnodeop_desc vop_mknod_desc = {
133 1.1 cgd 0,
134 1.1 cgd "vop_mknod",
135 1.17 wrstuden 0 | VDESC_VP0_WILLPUT | VDESC_VPP_WILLRELE,
136 1.1 cgd vop_mknod_vp_offsets,
137 1.1 cgd VOPARG_OFFSETOF(struct vop_mknod_args, a_vpp),
138 1.1 cgd VDESC_NO_OFFSET,
139 1.1 cgd VDESC_NO_OFFSET,
140 1.1 cgd VOPARG_OFFSETOF(struct vop_mknod_args, a_cnp),
141 1.1 cgd NULL,
142 1.1 cgd };
143 1.23 thorpej #ifdef VNODE_OP_NOINLINE
144 1.23 thorpej int
145 1.23 thorpej VOP_MKNOD(dvp, vpp, cnp, vap)
146 1.23 thorpej struct vnode *dvp;
147 1.23 thorpej struct vnode **vpp;
148 1.23 thorpej struct componentname *cnp;
149 1.23 thorpej struct vattr *vap;
150 1.23 thorpej {
151 1.23 thorpej struct vop_mknod_args a;
152 1.23 thorpej a.a_desc = VDESC(vop_mknod);
153 1.23 thorpej a.a_dvp = dvp;
154 1.23 thorpej a.a_vpp = vpp;
155 1.23 thorpej a.a_cnp = cnp;
156 1.23 thorpej a.a_vap = vap;
157 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_mknod), &a));
158 1.23 thorpej }
159 1.23 thorpej #endif
160 1.1 cgd
161 1.1 cgd int vop_open_vp_offsets[] = {
162 1.1 cgd VOPARG_OFFSETOF(struct vop_open_args,a_vp),
163 1.1 cgd VDESC_NO_OFFSET
164 1.1 cgd };
165 1.1 cgd struct vnodeop_desc vop_open_desc = {
166 1.1 cgd 0,
167 1.1 cgd "vop_open",
168 1.1 cgd 0,
169 1.1 cgd vop_open_vp_offsets,
170 1.1 cgd VDESC_NO_OFFSET,
171 1.1 cgd VOPARG_OFFSETOF(struct vop_open_args, a_cred),
172 1.1 cgd VOPARG_OFFSETOF(struct vop_open_args, a_p),
173 1.1 cgd VDESC_NO_OFFSET,
174 1.1 cgd NULL,
175 1.1 cgd };
176 1.23 thorpej #ifdef VNODE_OP_NOINLINE
177 1.23 thorpej int
178 1.23 thorpej VOP_OPEN(vp, mode, cred, p)
179 1.23 thorpej struct vnode *vp;
180 1.23 thorpej int mode;
181 1.23 thorpej struct ucred *cred;
182 1.23 thorpej struct proc *p;
183 1.23 thorpej {
184 1.23 thorpej struct vop_open_args a;
185 1.23 thorpej a.a_desc = VDESC(vop_open);
186 1.23 thorpej a.a_vp = vp;
187 1.23 thorpej a.a_mode = mode;
188 1.23 thorpej a.a_cred = cred;
189 1.23 thorpej a.a_p = p;
190 1.23 thorpej return (VCALL(vp, VOFFSET(vop_open), &a));
191 1.23 thorpej }
192 1.23 thorpej #endif
193 1.1 cgd
194 1.1 cgd int vop_close_vp_offsets[] = {
195 1.1 cgd VOPARG_OFFSETOF(struct vop_close_args,a_vp),
196 1.1 cgd VDESC_NO_OFFSET
197 1.1 cgd };
198 1.1 cgd struct vnodeop_desc vop_close_desc = {
199 1.1 cgd 0,
200 1.1 cgd "vop_close",
201 1.1 cgd 0,
202 1.1 cgd vop_close_vp_offsets,
203 1.1 cgd VDESC_NO_OFFSET,
204 1.1 cgd VOPARG_OFFSETOF(struct vop_close_args, a_cred),
205 1.1 cgd VOPARG_OFFSETOF(struct vop_close_args, a_p),
206 1.1 cgd VDESC_NO_OFFSET,
207 1.1 cgd NULL,
208 1.1 cgd };
209 1.23 thorpej #ifdef VNODE_OP_NOINLINE
210 1.23 thorpej int
211 1.23 thorpej VOP_CLOSE(vp, fflag, cred, p)
212 1.23 thorpej struct vnode *vp;
213 1.23 thorpej int fflag;
214 1.23 thorpej struct ucred *cred;
215 1.23 thorpej struct proc *p;
216 1.23 thorpej {
217 1.23 thorpej struct vop_close_args a;
218 1.23 thorpej a.a_desc = VDESC(vop_close);
219 1.23 thorpej a.a_vp = vp;
220 1.23 thorpej a.a_fflag = fflag;
221 1.23 thorpej a.a_cred = cred;
222 1.23 thorpej a.a_p = p;
223 1.23 thorpej return (VCALL(vp, VOFFSET(vop_close), &a));
224 1.23 thorpej }
225 1.23 thorpej #endif
226 1.1 cgd
227 1.1 cgd int vop_access_vp_offsets[] = {
228 1.1 cgd VOPARG_OFFSETOF(struct vop_access_args,a_vp),
229 1.1 cgd VDESC_NO_OFFSET
230 1.1 cgd };
231 1.1 cgd struct vnodeop_desc vop_access_desc = {
232 1.1 cgd 0,
233 1.1 cgd "vop_access",
234 1.1 cgd 0,
235 1.1 cgd vop_access_vp_offsets,
236 1.1 cgd VDESC_NO_OFFSET,
237 1.1 cgd VOPARG_OFFSETOF(struct vop_access_args, a_cred),
238 1.1 cgd VOPARG_OFFSETOF(struct vop_access_args, a_p),
239 1.1 cgd VDESC_NO_OFFSET,
240 1.1 cgd NULL,
241 1.1 cgd };
242 1.23 thorpej #ifdef VNODE_OP_NOINLINE
243 1.23 thorpej int
244 1.23 thorpej VOP_ACCESS(vp, mode, cred, p)
245 1.23 thorpej struct vnode *vp;
246 1.23 thorpej int mode;
247 1.23 thorpej struct ucred *cred;
248 1.23 thorpej struct proc *p;
249 1.23 thorpej {
250 1.23 thorpej struct vop_access_args a;
251 1.23 thorpej a.a_desc = VDESC(vop_access);
252 1.23 thorpej a.a_vp = vp;
253 1.23 thorpej a.a_mode = mode;
254 1.23 thorpej a.a_cred = cred;
255 1.23 thorpej a.a_p = p;
256 1.23 thorpej return (VCALL(vp, VOFFSET(vop_access), &a));
257 1.23 thorpej }
258 1.23 thorpej #endif
259 1.1 cgd
260 1.1 cgd int vop_getattr_vp_offsets[] = {
261 1.1 cgd VOPARG_OFFSETOF(struct vop_getattr_args,a_vp),
262 1.1 cgd VDESC_NO_OFFSET
263 1.1 cgd };
264 1.1 cgd struct vnodeop_desc vop_getattr_desc = {
265 1.1 cgd 0,
266 1.1 cgd "vop_getattr",
267 1.1 cgd 0,
268 1.1 cgd vop_getattr_vp_offsets,
269 1.1 cgd VDESC_NO_OFFSET,
270 1.1 cgd VOPARG_OFFSETOF(struct vop_getattr_args, a_cred),
271 1.1 cgd VOPARG_OFFSETOF(struct vop_getattr_args, a_p),
272 1.1 cgd VDESC_NO_OFFSET,
273 1.1 cgd NULL,
274 1.1 cgd };
275 1.23 thorpej #ifdef VNODE_OP_NOINLINE
276 1.23 thorpej int
277 1.23 thorpej VOP_GETATTR(vp, vap, cred, p)
278 1.23 thorpej struct vnode *vp;
279 1.23 thorpej struct vattr *vap;
280 1.23 thorpej struct ucred *cred;
281 1.23 thorpej struct proc *p;
282 1.23 thorpej {
283 1.23 thorpej struct vop_getattr_args a;
284 1.23 thorpej a.a_desc = VDESC(vop_getattr);
285 1.23 thorpej a.a_vp = vp;
286 1.23 thorpej a.a_vap = vap;
287 1.23 thorpej a.a_cred = cred;
288 1.23 thorpej a.a_p = p;
289 1.23 thorpej return (VCALL(vp, VOFFSET(vop_getattr), &a));
290 1.23 thorpej }
291 1.23 thorpej #endif
292 1.1 cgd
293 1.1 cgd int vop_setattr_vp_offsets[] = {
294 1.1 cgd VOPARG_OFFSETOF(struct vop_setattr_args,a_vp),
295 1.1 cgd VDESC_NO_OFFSET
296 1.1 cgd };
297 1.1 cgd struct vnodeop_desc vop_setattr_desc = {
298 1.1 cgd 0,
299 1.1 cgd "vop_setattr",
300 1.1 cgd 0,
301 1.1 cgd vop_setattr_vp_offsets,
302 1.1 cgd VDESC_NO_OFFSET,
303 1.1 cgd VOPARG_OFFSETOF(struct vop_setattr_args, a_cred),
304 1.1 cgd VOPARG_OFFSETOF(struct vop_setattr_args, a_p),
305 1.1 cgd VDESC_NO_OFFSET,
306 1.1 cgd NULL,
307 1.1 cgd };
308 1.23 thorpej #ifdef VNODE_OP_NOINLINE
309 1.23 thorpej int
310 1.23 thorpej VOP_SETATTR(vp, vap, cred, p)
311 1.23 thorpej struct vnode *vp;
312 1.23 thorpej struct vattr *vap;
313 1.23 thorpej struct ucred *cred;
314 1.23 thorpej struct proc *p;
315 1.23 thorpej {
316 1.23 thorpej struct vop_setattr_args a;
317 1.23 thorpej a.a_desc = VDESC(vop_setattr);
318 1.23 thorpej a.a_vp = vp;
319 1.23 thorpej a.a_vap = vap;
320 1.23 thorpej a.a_cred = cred;
321 1.23 thorpej a.a_p = p;
322 1.23 thorpej return (VCALL(vp, VOFFSET(vop_setattr), &a));
323 1.23 thorpej }
324 1.23 thorpej #endif
325 1.1 cgd
326 1.1 cgd int vop_read_vp_offsets[] = {
327 1.1 cgd VOPARG_OFFSETOF(struct vop_read_args,a_vp),
328 1.1 cgd VDESC_NO_OFFSET
329 1.1 cgd };
330 1.1 cgd struct vnodeop_desc vop_read_desc = {
331 1.1 cgd 0,
332 1.1 cgd "vop_read",
333 1.1 cgd 0,
334 1.1 cgd vop_read_vp_offsets,
335 1.1 cgd VDESC_NO_OFFSET,
336 1.1 cgd VOPARG_OFFSETOF(struct vop_read_args, a_cred),
337 1.1 cgd VDESC_NO_OFFSET,
338 1.1 cgd VDESC_NO_OFFSET,
339 1.1 cgd NULL,
340 1.1 cgd };
341 1.23 thorpej #ifdef VNODE_OP_NOINLINE
342 1.23 thorpej int
343 1.23 thorpej VOP_READ(vp, uio, ioflag, cred)
344 1.23 thorpej struct vnode *vp;
345 1.23 thorpej struct uio *uio;
346 1.23 thorpej int ioflag;
347 1.23 thorpej struct ucred *cred;
348 1.23 thorpej {
349 1.23 thorpej struct vop_read_args a;
350 1.23 thorpej a.a_desc = VDESC(vop_read);
351 1.23 thorpej a.a_vp = vp;
352 1.23 thorpej a.a_uio = uio;
353 1.23 thorpej a.a_ioflag = ioflag;
354 1.23 thorpej a.a_cred = cred;
355 1.23 thorpej return (VCALL(vp, VOFFSET(vop_read), &a));
356 1.23 thorpej }
357 1.23 thorpej #endif
358 1.1 cgd
359 1.1 cgd int vop_write_vp_offsets[] = {
360 1.1 cgd VOPARG_OFFSETOF(struct vop_write_args,a_vp),
361 1.1 cgd VDESC_NO_OFFSET
362 1.1 cgd };
363 1.1 cgd struct vnodeop_desc vop_write_desc = {
364 1.1 cgd 0,
365 1.1 cgd "vop_write",
366 1.1 cgd 0,
367 1.1 cgd vop_write_vp_offsets,
368 1.1 cgd VDESC_NO_OFFSET,
369 1.1 cgd VOPARG_OFFSETOF(struct vop_write_args, a_cred),
370 1.1 cgd VDESC_NO_OFFSET,
371 1.1 cgd VDESC_NO_OFFSET,
372 1.1 cgd NULL,
373 1.1 cgd };
374 1.23 thorpej #ifdef VNODE_OP_NOINLINE
375 1.23 thorpej int
376 1.23 thorpej VOP_WRITE(vp, uio, ioflag, cred)
377 1.23 thorpej struct vnode *vp;
378 1.23 thorpej struct uio *uio;
379 1.23 thorpej int ioflag;
380 1.23 thorpej struct ucred *cred;
381 1.23 thorpej {
382 1.23 thorpej struct vop_write_args a;
383 1.23 thorpej a.a_desc = VDESC(vop_write);
384 1.23 thorpej a.a_vp = vp;
385 1.23 thorpej a.a_uio = uio;
386 1.23 thorpej a.a_ioflag = ioflag;
387 1.23 thorpej a.a_cred = cred;
388 1.23 thorpej return (VCALL(vp, VOFFSET(vop_write), &a));
389 1.23 thorpej }
390 1.23 thorpej #endif
391 1.1 cgd
392 1.1 cgd int vop_ioctl_vp_offsets[] = {
393 1.1 cgd VOPARG_OFFSETOF(struct vop_ioctl_args,a_vp),
394 1.1 cgd VDESC_NO_OFFSET
395 1.1 cgd };
396 1.1 cgd struct vnodeop_desc vop_ioctl_desc = {
397 1.1 cgd 0,
398 1.1 cgd "vop_ioctl",
399 1.1 cgd 0,
400 1.1 cgd vop_ioctl_vp_offsets,
401 1.1 cgd VDESC_NO_OFFSET,
402 1.1 cgd VOPARG_OFFSETOF(struct vop_ioctl_args, a_cred),
403 1.1 cgd VOPARG_OFFSETOF(struct vop_ioctl_args, a_p),
404 1.1 cgd VDESC_NO_OFFSET,
405 1.1 cgd NULL,
406 1.1 cgd };
407 1.23 thorpej #ifdef VNODE_OP_NOINLINE
408 1.23 thorpej int
409 1.23 thorpej VOP_IOCTL(vp, command, data, fflag, cred, p)
410 1.23 thorpej struct vnode *vp;
411 1.23 thorpej u_long command;
412 1.23 thorpej caddr_t data;
413 1.23 thorpej int fflag;
414 1.23 thorpej struct ucred *cred;
415 1.23 thorpej struct proc *p;
416 1.23 thorpej {
417 1.23 thorpej struct vop_ioctl_args a;
418 1.23 thorpej a.a_desc = VDESC(vop_ioctl);
419 1.23 thorpej a.a_vp = vp;
420 1.23 thorpej a.a_command = command;
421 1.23 thorpej a.a_data = data;
422 1.23 thorpej a.a_fflag = fflag;
423 1.23 thorpej a.a_cred = cred;
424 1.23 thorpej a.a_p = p;
425 1.23 thorpej return (VCALL(vp, VOFFSET(vop_ioctl), &a));
426 1.23 thorpej }
427 1.23 thorpej #endif
428 1.1 cgd
429 1.18 wrstuden int vop_fcntl_vp_offsets[] = {
430 1.18 wrstuden VOPARG_OFFSETOF(struct vop_fcntl_args,a_vp),
431 1.18 wrstuden VDESC_NO_OFFSET
432 1.18 wrstuden };
433 1.18 wrstuden struct vnodeop_desc vop_fcntl_desc = {
434 1.18 wrstuden 0,
435 1.18 wrstuden "vop_fcntl",
436 1.18 wrstuden 0,
437 1.18 wrstuden vop_fcntl_vp_offsets,
438 1.18 wrstuden VDESC_NO_OFFSET,
439 1.18 wrstuden VOPARG_OFFSETOF(struct vop_fcntl_args, a_cred),
440 1.18 wrstuden VOPARG_OFFSETOF(struct vop_fcntl_args, a_p),
441 1.18 wrstuden VDESC_NO_OFFSET,
442 1.18 wrstuden NULL,
443 1.18 wrstuden };
444 1.23 thorpej #ifdef VNODE_OP_NOINLINE
445 1.23 thorpej int
446 1.23 thorpej VOP_FCNTL(vp, command, data, fflag, cred, p)
447 1.23 thorpej struct vnode *vp;
448 1.23 thorpej u_int command;
449 1.23 thorpej caddr_t data;
450 1.23 thorpej int fflag;
451 1.23 thorpej struct ucred *cred;
452 1.23 thorpej struct proc *p;
453 1.23 thorpej {
454 1.23 thorpej struct vop_fcntl_args a;
455 1.23 thorpej a.a_desc = VDESC(vop_fcntl);
456 1.23 thorpej a.a_vp = vp;
457 1.23 thorpej a.a_command = command;
458 1.23 thorpej a.a_data = data;
459 1.23 thorpej a.a_fflag = fflag;
460 1.23 thorpej a.a_cred = cred;
461 1.23 thorpej a.a_p = p;
462 1.23 thorpej return (VCALL(vp, VOFFSET(vop_fcntl), &a));
463 1.23 thorpej }
464 1.23 thorpej #endif
465 1.18 wrstuden
466 1.3 mycroft int vop_poll_vp_offsets[] = {
467 1.3 mycroft VOPARG_OFFSETOF(struct vop_poll_args,a_vp),
468 1.1 cgd VDESC_NO_OFFSET
469 1.1 cgd };
470 1.3 mycroft struct vnodeop_desc vop_poll_desc = {
471 1.1 cgd 0,
472 1.3 mycroft "vop_poll",
473 1.1 cgd 0,
474 1.3 mycroft vop_poll_vp_offsets,
475 1.1 cgd VDESC_NO_OFFSET,
476 1.3 mycroft VDESC_NO_OFFSET,
477 1.3 mycroft VOPARG_OFFSETOF(struct vop_poll_args, a_p),
478 1.1 cgd VDESC_NO_OFFSET,
479 1.1 cgd NULL,
480 1.1 cgd };
481 1.23 thorpej #ifdef VNODE_OP_NOINLINE
482 1.23 thorpej int
483 1.23 thorpej VOP_POLL(vp, events, p)
484 1.23 thorpej struct vnode *vp;
485 1.23 thorpej int events;
486 1.23 thorpej struct proc *p;
487 1.23 thorpej {
488 1.23 thorpej struct vop_poll_args a;
489 1.23 thorpej a.a_desc = VDESC(vop_poll);
490 1.23 thorpej a.a_vp = vp;
491 1.23 thorpej a.a_events = events;
492 1.23 thorpej a.a_p = p;
493 1.23 thorpej return (VCALL(vp, VOFFSET(vop_poll), &a));
494 1.23 thorpej }
495 1.23 thorpej #endif
496 1.1 cgd
497 1.10 fvdl int vop_revoke_vp_offsets[] = {
498 1.10 fvdl VOPARG_OFFSETOF(struct vop_revoke_args,a_vp),
499 1.10 fvdl VDESC_NO_OFFSET
500 1.10 fvdl };
501 1.10 fvdl struct vnodeop_desc vop_revoke_desc = {
502 1.10 fvdl 0,
503 1.10 fvdl "vop_revoke",
504 1.10 fvdl 0,
505 1.10 fvdl vop_revoke_vp_offsets,
506 1.10 fvdl VDESC_NO_OFFSET,
507 1.10 fvdl VDESC_NO_OFFSET,
508 1.10 fvdl VDESC_NO_OFFSET,
509 1.10 fvdl VDESC_NO_OFFSET,
510 1.10 fvdl NULL,
511 1.10 fvdl };
512 1.23 thorpej #ifdef VNODE_OP_NOINLINE
513 1.23 thorpej int
514 1.23 thorpej VOP_REVOKE(vp, flags)
515 1.23 thorpej struct vnode *vp;
516 1.23 thorpej int flags;
517 1.23 thorpej {
518 1.23 thorpej struct vop_revoke_args a;
519 1.23 thorpej a.a_desc = VDESC(vop_revoke);
520 1.23 thorpej a.a_vp = vp;
521 1.23 thorpej a.a_flags = flags;
522 1.23 thorpej return (VCALL(vp, VOFFSET(vop_revoke), &a));
523 1.23 thorpej }
524 1.23 thorpej #endif
525 1.10 fvdl
526 1.1 cgd int vop_mmap_vp_offsets[] = {
527 1.1 cgd VOPARG_OFFSETOF(struct vop_mmap_args,a_vp),
528 1.1 cgd VDESC_NO_OFFSET
529 1.1 cgd };
530 1.1 cgd struct vnodeop_desc vop_mmap_desc = {
531 1.1 cgd 0,
532 1.1 cgd "vop_mmap",
533 1.1 cgd 0,
534 1.1 cgd vop_mmap_vp_offsets,
535 1.1 cgd VDESC_NO_OFFSET,
536 1.1 cgd VOPARG_OFFSETOF(struct vop_mmap_args, a_cred),
537 1.1 cgd VOPARG_OFFSETOF(struct vop_mmap_args, a_p),
538 1.1 cgd VDESC_NO_OFFSET,
539 1.1 cgd NULL,
540 1.1 cgd };
541 1.23 thorpej #ifdef VNODE_OP_NOINLINE
542 1.23 thorpej int
543 1.23 thorpej VOP_MMAP(vp, fflags, cred, p)
544 1.23 thorpej struct vnode *vp;
545 1.23 thorpej int fflags;
546 1.23 thorpej struct ucred *cred;
547 1.23 thorpej struct proc *p;
548 1.23 thorpej {
549 1.23 thorpej struct vop_mmap_args a;
550 1.23 thorpej a.a_desc = VDESC(vop_mmap);
551 1.23 thorpej a.a_vp = vp;
552 1.23 thorpej a.a_fflags = fflags;
553 1.23 thorpej a.a_cred = cred;
554 1.23 thorpej a.a_p = p;
555 1.23 thorpej return (VCALL(vp, VOFFSET(vop_mmap), &a));
556 1.23 thorpej }
557 1.23 thorpej #endif
558 1.1 cgd
559 1.1 cgd int vop_fsync_vp_offsets[] = {
560 1.1 cgd VOPARG_OFFSETOF(struct vop_fsync_args,a_vp),
561 1.1 cgd VDESC_NO_OFFSET
562 1.1 cgd };
563 1.1 cgd struct vnodeop_desc vop_fsync_desc = {
564 1.1 cgd 0,
565 1.1 cgd "vop_fsync",
566 1.1 cgd 0,
567 1.1 cgd vop_fsync_vp_offsets,
568 1.1 cgd VDESC_NO_OFFSET,
569 1.1 cgd VOPARG_OFFSETOF(struct vop_fsync_args, a_cred),
570 1.1 cgd VOPARG_OFFSETOF(struct vop_fsync_args, a_p),
571 1.1 cgd VDESC_NO_OFFSET,
572 1.1 cgd NULL,
573 1.1 cgd };
574 1.23 thorpej #ifdef VNODE_OP_NOINLINE
575 1.23 thorpej int
576 1.23 thorpej VOP_FSYNC(vp, cred, flags, p)
577 1.23 thorpej struct vnode *vp;
578 1.23 thorpej struct ucred *cred;
579 1.23 thorpej int flags;
580 1.23 thorpej struct proc *p;
581 1.23 thorpej {
582 1.23 thorpej struct vop_fsync_args a;
583 1.23 thorpej a.a_desc = VDESC(vop_fsync);
584 1.23 thorpej a.a_vp = vp;
585 1.23 thorpej a.a_cred = cred;
586 1.23 thorpej a.a_flags = flags;
587 1.23 thorpej a.a_p = p;
588 1.23 thorpej return (VCALL(vp, VOFFSET(vop_fsync), &a));
589 1.23 thorpej }
590 1.23 thorpej #endif
591 1.1 cgd
592 1.1 cgd int vop_seek_vp_offsets[] = {
593 1.1 cgd VOPARG_OFFSETOF(struct vop_seek_args,a_vp),
594 1.1 cgd VDESC_NO_OFFSET
595 1.1 cgd };
596 1.1 cgd struct vnodeop_desc vop_seek_desc = {
597 1.1 cgd 0,
598 1.1 cgd "vop_seek",
599 1.1 cgd 0,
600 1.1 cgd vop_seek_vp_offsets,
601 1.1 cgd VDESC_NO_OFFSET,
602 1.1 cgd VOPARG_OFFSETOF(struct vop_seek_args, a_cred),
603 1.1 cgd VDESC_NO_OFFSET,
604 1.1 cgd VDESC_NO_OFFSET,
605 1.1 cgd NULL,
606 1.1 cgd };
607 1.23 thorpej #ifdef VNODE_OP_NOINLINE
608 1.23 thorpej int
609 1.23 thorpej VOP_SEEK(vp, oldoff, newoff, cred)
610 1.23 thorpej struct vnode *vp;
611 1.23 thorpej off_t oldoff;
612 1.23 thorpej off_t newoff;
613 1.23 thorpej struct ucred *cred;
614 1.23 thorpej {
615 1.23 thorpej struct vop_seek_args a;
616 1.23 thorpej a.a_desc = VDESC(vop_seek);
617 1.23 thorpej a.a_vp = vp;
618 1.23 thorpej a.a_oldoff = oldoff;
619 1.23 thorpej a.a_newoff = newoff;
620 1.23 thorpej a.a_cred = cred;
621 1.23 thorpej return (VCALL(vp, VOFFSET(vop_seek), &a));
622 1.23 thorpej }
623 1.23 thorpej #endif
624 1.1 cgd
625 1.1 cgd int vop_remove_vp_offsets[] = {
626 1.1 cgd VOPARG_OFFSETOF(struct vop_remove_args,a_dvp),
627 1.1 cgd VOPARG_OFFSETOF(struct vop_remove_args,a_vp),
628 1.1 cgd VDESC_NO_OFFSET
629 1.1 cgd };
630 1.1 cgd struct vnodeop_desc vop_remove_desc = {
631 1.1 cgd 0,
632 1.1 cgd "vop_remove",
633 1.17 wrstuden 0 | VDESC_VP0_WILLPUT | VDESC_VP1_WILLPUT,
634 1.1 cgd vop_remove_vp_offsets,
635 1.1 cgd VDESC_NO_OFFSET,
636 1.1 cgd VDESC_NO_OFFSET,
637 1.1 cgd VDESC_NO_OFFSET,
638 1.1 cgd VOPARG_OFFSETOF(struct vop_remove_args, a_cnp),
639 1.1 cgd NULL,
640 1.1 cgd };
641 1.23 thorpej #ifdef VNODE_OP_NOINLINE
642 1.23 thorpej int
643 1.23 thorpej VOP_REMOVE(dvp, vp, cnp)
644 1.23 thorpej struct vnode *dvp;
645 1.23 thorpej struct vnode *vp;
646 1.23 thorpej struct componentname *cnp;
647 1.23 thorpej {
648 1.23 thorpej struct vop_remove_args a;
649 1.23 thorpej a.a_desc = VDESC(vop_remove);
650 1.23 thorpej a.a_dvp = dvp;
651 1.23 thorpej a.a_vp = vp;
652 1.23 thorpej a.a_cnp = cnp;
653 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_remove), &a));
654 1.23 thorpej }
655 1.23 thorpej #endif
656 1.1 cgd
657 1.1 cgd int vop_link_vp_offsets[] = {
658 1.1 cgd VOPARG_OFFSETOF(struct vop_link_args,a_dvp),
659 1.1 cgd VOPARG_OFFSETOF(struct vop_link_args,a_vp),
660 1.1 cgd VDESC_NO_OFFSET
661 1.1 cgd };
662 1.1 cgd struct vnodeop_desc vop_link_desc = {
663 1.1 cgd 0,
664 1.1 cgd "vop_link",
665 1.17 wrstuden 0 | VDESC_VP0_WILLPUT,
666 1.1 cgd vop_link_vp_offsets,
667 1.1 cgd VDESC_NO_OFFSET,
668 1.1 cgd VDESC_NO_OFFSET,
669 1.1 cgd VDESC_NO_OFFSET,
670 1.1 cgd VOPARG_OFFSETOF(struct vop_link_args, a_cnp),
671 1.1 cgd NULL,
672 1.1 cgd };
673 1.23 thorpej #ifdef VNODE_OP_NOINLINE
674 1.23 thorpej int
675 1.23 thorpej VOP_LINK(dvp, vp, cnp)
676 1.23 thorpej struct vnode *dvp;
677 1.23 thorpej struct vnode *vp;
678 1.23 thorpej struct componentname *cnp;
679 1.23 thorpej {
680 1.23 thorpej struct vop_link_args a;
681 1.23 thorpej a.a_desc = VDESC(vop_link);
682 1.23 thorpej a.a_dvp = dvp;
683 1.23 thorpej a.a_vp = vp;
684 1.23 thorpej a.a_cnp = cnp;
685 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_link), &a));
686 1.23 thorpej }
687 1.23 thorpej #endif
688 1.1 cgd
689 1.1 cgd int vop_rename_vp_offsets[] = {
690 1.1 cgd VOPARG_OFFSETOF(struct vop_rename_args,a_fdvp),
691 1.1 cgd VOPARG_OFFSETOF(struct vop_rename_args,a_fvp),
692 1.1 cgd VOPARG_OFFSETOF(struct vop_rename_args,a_tdvp),
693 1.1 cgd VOPARG_OFFSETOF(struct vop_rename_args,a_tvp),
694 1.1 cgd VDESC_NO_OFFSET
695 1.1 cgd };
696 1.1 cgd struct vnodeop_desc vop_rename_desc = {
697 1.1 cgd 0,
698 1.1 cgd "vop_rename",
699 1.17 wrstuden 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLPUT | VDESC_VP3_WILLRELE,
700 1.1 cgd vop_rename_vp_offsets,
701 1.1 cgd VDESC_NO_OFFSET,
702 1.1 cgd VDESC_NO_OFFSET,
703 1.1 cgd VDESC_NO_OFFSET,
704 1.1 cgd VOPARG_OFFSETOF(struct vop_rename_args, a_fcnp),
705 1.1 cgd NULL,
706 1.1 cgd };
707 1.23 thorpej #ifdef VNODE_OP_NOINLINE
708 1.23 thorpej int
709 1.23 thorpej VOP_RENAME(fdvp, fvp, fcnp, tdvp, tvp, tcnp)
710 1.23 thorpej struct vnode *fdvp;
711 1.23 thorpej struct vnode *fvp;
712 1.23 thorpej struct componentname *fcnp;
713 1.23 thorpej struct vnode *tdvp;
714 1.23 thorpej struct vnode *tvp;
715 1.23 thorpej struct componentname *tcnp;
716 1.23 thorpej {
717 1.23 thorpej struct vop_rename_args a;
718 1.23 thorpej a.a_desc = VDESC(vop_rename);
719 1.23 thorpej a.a_fdvp = fdvp;
720 1.23 thorpej a.a_fvp = fvp;
721 1.23 thorpej a.a_fcnp = fcnp;
722 1.23 thorpej a.a_tdvp = tdvp;
723 1.23 thorpej a.a_tvp = tvp;
724 1.23 thorpej a.a_tcnp = tcnp;
725 1.23 thorpej return (VCALL(fdvp, VOFFSET(vop_rename), &a));
726 1.23 thorpej }
727 1.23 thorpej #endif
728 1.1 cgd
729 1.1 cgd int vop_mkdir_vp_offsets[] = {
730 1.1 cgd VOPARG_OFFSETOF(struct vop_mkdir_args,a_dvp),
731 1.1 cgd VDESC_NO_OFFSET
732 1.1 cgd };
733 1.1 cgd struct vnodeop_desc vop_mkdir_desc = {
734 1.1 cgd 0,
735 1.1 cgd "vop_mkdir",
736 1.17 wrstuden 0 | VDESC_VP0_WILLPUT,
737 1.1 cgd vop_mkdir_vp_offsets,
738 1.1 cgd VOPARG_OFFSETOF(struct vop_mkdir_args, a_vpp),
739 1.1 cgd VDESC_NO_OFFSET,
740 1.1 cgd VDESC_NO_OFFSET,
741 1.1 cgd VOPARG_OFFSETOF(struct vop_mkdir_args, a_cnp),
742 1.1 cgd NULL,
743 1.1 cgd };
744 1.23 thorpej #ifdef VNODE_OP_NOINLINE
745 1.23 thorpej int
746 1.23 thorpej VOP_MKDIR(dvp, vpp, cnp, vap)
747 1.23 thorpej struct vnode *dvp;
748 1.23 thorpej struct vnode **vpp;
749 1.23 thorpej struct componentname *cnp;
750 1.23 thorpej struct vattr *vap;
751 1.23 thorpej {
752 1.23 thorpej struct vop_mkdir_args a;
753 1.23 thorpej a.a_desc = VDESC(vop_mkdir);
754 1.23 thorpej a.a_dvp = dvp;
755 1.23 thorpej a.a_vpp = vpp;
756 1.23 thorpej a.a_cnp = cnp;
757 1.23 thorpej a.a_vap = vap;
758 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_mkdir), &a));
759 1.23 thorpej }
760 1.23 thorpej #endif
761 1.1 cgd
762 1.1 cgd int vop_rmdir_vp_offsets[] = {
763 1.1 cgd VOPARG_OFFSETOF(struct vop_rmdir_args,a_dvp),
764 1.1 cgd VOPARG_OFFSETOF(struct vop_rmdir_args,a_vp),
765 1.1 cgd VDESC_NO_OFFSET
766 1.1 cgd };
767 1.1 cgd struct vnodeop_desc vop_rmdir_desc = {
768 1.1 cgd 0,
769 1.1 cgd "vop_rmdir",
770 1.17 wrstuden 0 | VDESC_VP0_WILLPUT | VDESC_VP1_WILLPUT,
771 1.1 cgd vop_rmdir_vp_offsets,
772 1.1 cgd VDESC_NO_OFFSET,
773 1.1 cgd VDESC_NO_OFFSET,
774 1.1 cgd VDESC_NO_OFFSET,
775 1.1 cgd VOPARG_OFFSETOF(struct vop_rmdir_args, a_cnp),
776 1.1 cgd NULL,
777 1.1 cgd };
778 1.23 thorpej #ifdef VNODE_OP_NOINLINE
779 1.23 thorpej int
780 1.23 thorpej VOP_RMDIR(dvp, vp, cnp)
781 1.23 thorpej struct vnode *dvp;
782 1.23 thorpej struct vnode *vp;
783 1.23 thorpej struct componentname *cnp;
784 1.23 thorpej {
785 1.23 thorpej struct vop_rmdir_args a;
786 1.23 thorpej a.a_desc = VDESC(vop_rmdir);
787 1.23 thorpej a.a_dvp = dvp;
788 1.23 thorpej a.a_vp = vp;
789 1.23 thorpej a.a_cnp = cnp;
790 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_rmdir), &a));
791 1.23 thorpej }
792 1.23 thorpej #endif
793 1.1 cgd
794 1.1 cgd int vop_symlink_vp_offsets[] = {
795 1.1 cgd VOPARG_OFFSETOF(struct vop_symlink_args,a_dvp),
796 1.1 cgd VDESC_NO_OFFSET
797 1.1 cgd };
798 1.1 cgd struct vnodeop_desc vop_symlink_desc = {
799 1.1 cgd 0,
800 1.1 cgd "vop_symlink",
801 1.17 wrstuden 0 | VDESC_VP0_WILLPUT | VDESC_VPP_WILLRELE,
802 1.1 cgd vop_symlink_vp_offsets,
803 1.1 cgd VOPARG_OFFSETOF(struct vop_symlink_args, a_vpp),
804 1.1 cgd VDESC_NO_OFFSET,
805 1.1 cgd VDESC_NO_OFFSET,
806 1.1 cgd VOPARG_OFFSETOF(struct vop_symlink_args, a_cnp),
807 1.1 cgd NULL,
808 1.1 cgd };
809 1.23 thorpej #ifdef VNODE_OP_NOINLINE
810 1.23 thorpej int
811 1.23 thorpej VOP_SYMLINK(dvp, vpp, cnp, vap, target)
812 1.23 thorpej struct vnode *dvp;
813 1.23 thorpej struct vnode **vpp;
814 1.23 thorpej struct componentname *cnp;
815 1.23 thorpej struct vattr *vap;
816 1.23 thorpej char *target;
817 1.23 thorpej {
818 1.23 thorpej struct vop_symlink_args a;
819 1.23 thorpej a.a_desc = VDESC(vop_symlink);
820 1.23 thorpej a.a_dvp = dvp;
821 1.23 thorpej a.a_vpp = vpp;
822 1.23 thorpej a.a_cnp = cnp;
823 1.23 thorpej a.a_vap = vap;
824 1.23 thorpej a.a_target = target;
825 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_symlink), &a));
826 1.23 thorpej }
827 1.23 thorpej #endif
828 1.1 cgd
829 1.1 cgd int vop_readdir_vp_offsets[] = {
830 1.1 cgd VOPARG_OFFSETOF(struct vop_readdir_args,a_vp),
831 1.1 cgd VDESC_NO_OFFSET
832 1.1 cgd };
833 1.1 cgd struct vnodeop_desc vop_readdir_desc = {
834 1.1 cgd 0,
835 1.1 cgd "vop_readdir",
836 1.1 cgd 0,
837 1.1 cgd vop_readdir_vp_offsets,
838 1.1 cgd VDESC_NO_OFFSET,
839 1.1 cgd VOPARG_OFFSETOF(struct vop_readdir_args, a_cred),
840 1.1 cgd VDESC_NO_OFFSET,
841 1.1 cgd VDESC_NO_OFFSET,
842 1.1 cgd NULL,
843 1.1 cgd };
844 1.23 thorpej #ifdef VNODE_OP_NOINLINE
845 1.23 thorpej int
846 1.23 thorpej VOP_READDIR(vp, uio, cred, eofflag, cookies, ncookies)
847 1.23 thorpej struct vnode *vp;
848 1.23 thorpej struct uio *uio;
849 1.23 thorpej struct ucred *cred;
850 1.23 thorpej int *eofflag;
851 1.23 thorpej off_t **cookies;
852 1.23 thorpej int *ncookies;
853 1.23 thorpej {
854 1.23 thorpej struct vop_readdir_args a;
855 1.23 thorpej a.a_desc = VDESC(vop_readdir);
856 1.23 thorpej a.a_vp = vp;
857 1.23 thorpej a.a_uio = uio;
858 1.23 thorpej a.a_cred = cred;
859 1.23 thorpej a.a_eofflag = eofflag;
860 1.23 thorpej a.a_cookies = cookies;
861 1.23 thorpej a.a_ncookies = ncookies;
862 1.23 thorpej return (VCALL(vp, VOFFSET(vop_readdir), &a));
863 1.23 thorpej }
864 1.23 thorpej #endif
865 1.1 cgd
866 1.1 cgd int vop_readlink_vp_offsets[] = {
867 1.1 cgd VOPARG_OFFSETOF(struct vop_readlink_args,a_vp),
868 1.1 cgd VDESC_NO_OFFSET
869 1.1 cgd };
870 1.1 cgd struct vnodeop_desc vop_readlink_desc = {
871 1.1 cgd 0,
872 1.1 cgd "vop_readlink",
873 1.1 cgd 0,
874 1.1 cgd vop_readlink_vp_offsets,
875 1.1 cgd VDESC_NO_OFFSET,
876 1.1 cgd VOPARG_OFFSETOF(struct vop_readlink_args, a_cred),
877 1.1 cgd VDESC_NO_OFFSET,
878 1.1 cgd VDESC_NO_OFFSET,
879 1.1 cgd NULL,
880 1.1 cgd };
881 1.23 thorpej #ifdef VNODE_OP_NOINLINE
882 1.23 thorpej int
883 1.23 thorpej VOP_READLINK(vp, uio, cred)
884 1.23 thorpej struct vnode *vp;
885 1.23 thorpej struct uio *uio;
886 1.23 thorpej struct ucred *cred;
887 1.23 thorpej {
888 1.23 thorpej struct vop_readlink_args a;
889 1.23 thorpej a.a_desc = VDESC(vop_readlink);
890 1.23 thorpej a.a_vp = vp;
891 1.23 thorpej a.a_uio = uio;
892 1.23 thorpej a.a_cred = cred;
893 1.23 thorpej return (VCALL(vp, VOFFSET(vop_readlink), &a));
894 1.23 thorpej }
895 1.23 thorpej #endif
896 1.1 cgd
897 1.1 cgd int vop_abortop_vp_offsets[] = {
898 1.1 cgd VOPARG_OFFSETOF(struct vop_abortop_args,a_dvp),
899 1.1 cgd VDESC_NO_OFFSET
900 1.1 cgd };
901 1.1 cgd struct vnodeop_desc vop_abortop_desc = {
902 1.1 cgd 0,
903 1.1 cgd "vop_abortop",
904 1.1 cgd 0,
905 1.1 cgd vop_abortop_vp_offsets,
906 1.1 cgd VDESC_NO_OFFSET,
907 1.1 cgd VDESC_NO_OFFSET,
908 1.1 cgd VDESC_NO_OFFSET,
909 1.1 cgd VOPARG_OFFSETOF(struct vop_abortop_args, a_cnp),
910 1.1 cgd NULL,
911 1.1 cgd };
912 1.23 thorpej #ifdef VNODE_OP_NOINLINE
913 1.23 thorpej int
914 1.23 thorpej VOP_ABORTOP(dvp, cnp)
915 1.23 thorpej struct vnode *dvp;
916 1.23 thorpej struct componentname *cnp;
917 1.23 thorpej {
918 1.23 thorpej struct vop_abortop_args a;
919 1.23 thorpej a.a_desc = VDESC(vop_abortop);
920 1.23 thorpej a.a_dvp = dvp;
921 1.23 thorpej a.a_cnp = cnp;
922 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_abortop), &a));
923 1.23 thorpej }
924 1.23 thorpej #endif
925 1.1 cgd
926 1.1 cgd int vop_inactive_vp_offsets[] = {
927 1.1 cgd VOPARG_OFFSETOF(struct vop_inactive_args,a_vp),
928 1.1 cgd VDESC_NO_OFFSET
929 1.1 cgd };
930 1.1 cgd struct vnodeop_desc vop_inactive_desc = {
931 1.1 cgd 0,
932 1.1 cgd "vop_inactive",
933 1.17 wrstuden 0 | VDESC_VP0_WILLUNLOCK,
934 1.1 cgd vop_inactive_vp_offsets,
935 1.1 cgd VDESC_NO_OFFSET,
936 1.1 cgd VDESC_NO_OFFSET,
937 1.10 fvdl VOPARG_OFFSETOF(struct vop_inactive_args, a_p),
938 1.1 cgd VDESC_NO_OFFSET,
939 1.1 cgd NULL,
940 1.1 cgd };
941 1.23 thorpej #ifdef VNODE_OP_NOINLINE
942 1.23 thorpej int
943 1.23 thorpej VOP_INACTIVE(vp, p)
944 1.23 thorpej struct vnode *vp;
945 1.23 thorpej struct proc *p;
946 1.23 thorpej {
947 1.23 thorpej struct vop_inactive_args a;
948 1.23 thorpej a.a_desc = VDESC(vop_inactive);
949 1.23 thorpej a.a_vp = vp;
950 1.23 thorpej a.a_p = p;
951 1.23 thorpej return (VCALL(vp, VOFFSET(vop_inactive), &a));
952 1.23 thorpej }
953 1.23 thorpej #endif
954 1.1 cgd
955 1.1 cgd int vop_reclaim_vp_offsets[] = {
956 1.1 cgd VOPARG_OFFSETOF(struct vop_reclaim_args,a_vp),
957 1.1 cgd VDESC_NO_OFFSET
958 1.1 cgd };
959 1.1 cgd struct vnodeop_desc vop_reclaim_desc = {
960 1.1 cgd 0,
961 1.1 cgd "vop_reclaim",
962 1.1 cgd 0,
963 1.1 cgd vop_reclaim_vp_offsets,
964 1.1 cgd VDESC_NO_OFFSET,
965 1.1 cgd VDESC_NO_OFFSET,
966 1.10 fvdl VOPARG_OFFSETOF(struct vop_reclaim_args, a_p),
967 1.1 cgd VDESC_NO_OFFSET,
968 1.1 cgd NULL,
969 1.1 cgd };
970 1.23 thorpej #ifdef VNODE_OP_NOINLINE
971 1.23 thorpej int
972 1.23 thorpej VOP_RECLAIM(vp, p)
973 1.23 thorpej struct vnode *vp;
974 1.23 thorpej struct proc *p;
975 1.23 thorpej {
976 1.23 thorpej struct vop_reclaim_args a;
977 1.23 thorpej a.a_desc = VDESC(vop_reclaim);
978 1.23 thorpej a.a_vp = vp;
979 1.23 thorpej a.a_p = p;
980 1.23 thorpej return (VCALL(vp, VOFFSET(vop_reclaim), &a));
981 1.23 thorpej }
982 1.23 thorpej #endif
983 1.1 cgd
984 1.1 cgd int vop_lock_vp_offsets[] = {
985 1.1 cgd VOPARG_OFFSETOF(struct vop_lock_args,a_vp),
986 1.1 cgd VDESC_NO_OFFSET
987 1.1 cgd };
988 1.1 cgd struct vnodeop_desc vop_lock_desc = {
989 1.1 cgd 0,
990 1.1 cgd "vop_lock",
991 1.1 cgd 0,
992 1.1 cgd vop_lock_vp_offsets,
993 1.1 cgd VDESC_NO_OFFSET,
994 1.1 cgd VDESC_NO_OFFSET,
995 1.1 cgd VDESC_NO_OFFSET,
996 1.1 cgd VDESC_NO_OFFSET,
997 1.1 cgd NULL,
998 1.1 cgd };
999 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1000 1.23 thorpej int
1001 1.23 thorpej VOP_LOCK(vp, flags)
1002 1.23 thorpej struct vnode *vp;
1003 1.23 thorpej int flags;
1004 1.23 thorpej {
1005 1.23 thorpej struct vop_lock_args a;
1006 1.23 thorpej a.a_desc = VDESC(vop_lock);
1007 1.23 thorpej a.a_vp = vp;
1008 1.23 thorpej a.a_flags = flags;
1009 1.23 thorpej return (VCALL(vp, VOFFSET(vop_lock), &a));
1010 1.23 thorpej }
1011 1.23 thorpej #endif
1012 1.1 cgd
1013 1.1 cgd int vop_unlock_vp_offsets[] = {
1014 1.1 cgd VOPARG_OFFSETOF(struct vop_unlock_args,a_vp),
1015 1.1 cgd VDESC_NO_OFFSET
1016 1.1 cgd };
1017 1.1 cgd struct vnodeop_desc vop_unlock_desc = {
1018 1.1 cgd 0,
1019 1.1 cgd "vop_unlock",
1020 1.1 cgd 0,
1021 1.1 cgd vop_unlock_vp_offsets,
1022 1.1 cgd VDESC_NO_OFFSET,
1023 1.1 cgd VDESC_NO_OFFSET,
1024 1.1 cgd VDESC_NO_OFFSET,
1025 1.1 cgd VDESC_NO_OFFSET,
1026 1.1 cgd NULL,
1027 1.1 cgd };
1028 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1029 1.23 thorpej int
1030 1.23 thorpej VOP_UNLOCK(vp, flags)
1031 1.23 thorpej struct vnode *vp;
1032 1.23 thorpej int flags;
1033 1.23 thorpej {
1034 1.23 thorpej struct vop_unlock_args a;
1035 1.23 thorpej a.a_desc = VDESC(vop_unlock);
1036 1.23 thorpej a.a_vp = vp;
1037 1.23 thorpej a.a_flags = flags;
1038 1.23 thorpej return (VCALL(vp, VOFFSET(vop_unlock), &a));
1039 1.23 thorpej }
1040 1.23 thorpej #endif
1041 1.1 cgd
1042 1.1 cgd int vop_bmap_vp_offsets[] = {
1043 1.1 cgd VOPARG_OFFSETOF(struct vop_bmap_args,a_vp),
1044 1.1 cgd VDESC_NO_OFFSET
1045 1.1 cgd };
1046 1.1 cgd struct vnodeop_desc vop_bmap_desc = {
1047 1.1 cgd 0,
1048 1.1 cgd "vop_bmap",
1049 1.1 cgd 0,
1050 1.1 cgd vop_bmap_vp_offsets,
1051 1.1 cgd VOPARG_OFFSETOF(struct vop_bmap_args, a_vpp),
1052 1.1 cgd VDESC_NO_OFFSET,
1053 1.1 cgd VDESC_NO_OFFSET,
1054 1.1 cgd VDESC_NO_OFFSET,
1055 1.1 cgd NULL,
1056 1.1 cgd };
1057 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1058 1.23 thorpej int
1059 1.23 thorpej VOP_BMAP(vp, bn, vpp, bnp, runp)
1060 1.23 thorpej struct vnode *vp;
1061 1.23 thorpej daddr_t bn;
1062 1.23 thorpej struct vnode **vpp;
1063 1.23 thorpej daddr_t *bnp;
1064 1.23 thorpej int *runp;
1065 1.23 thorpej {
1066 1.23 thorpej struct vop_bmap_args a;
1067 1.23 thorpej a.a_desc = VDESC(vop_bmap);
1068 1.23 thorpej a.a_vp = vp;
1069 1.23 thorpej a.a_bn = bn;
1070 1.23 thorpej a.a_vpp = vpp;
1071 1.23 thorpej a.a_bnp = bnp;
1072 1.23 thorpej a.a_runp = runp;
1073 1.23 thorpej return (VCALL(vp, VOFFSET(vop_bmap), &a));
1074 1.23 thorpej }
1075 1.23 thorpej #endif
1076 1.1 cgd
1077 1.1 cgd int vop_print_vp_offsets[] = {
1078 1.1 cgd VOPARG_OFFSETOF(struct vop_print_args,a_vp),
1079 1.1 cgd VDESC_NO_OFFSET
1080 1.1 cgd };
1081 1.1 cgd struct vnodeop_desc vop_print_desc = {
1082 1.1 cgd 0,
1083 1.1 cgd "vop_print",
1084 1.1 cgd 0,
1085 1.1 cgd vop_print_vp_offsets,
1086 1.1 cgd VDESC_NO_OFFSET,
1087 1.1 cgd VDESC_NO_OFFSET,
1088 1.1 cgd VDESC_NO_OFFSET,
1089 1.1 cgd VDESC_NO_OFFSET,
1090 1.1 cgd NULL,
1091 1.1 cgd };
1092 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1093 1.23 thorpej int
1094 1.23 thorpej VOP_PRINT(vp)
1095 1.23 thorpej struct vnode *vp;
1096 1.23 thorpej {
1097 1.23 thorpej struct vop_print_args a;
1098 1.23 thorpej a.a_desc = VDESC(vop_print);
1099 1.23 thorpej a.a_vp = vp;
1100 1.23 thorpej return (VCALL(vp, VOFFSET(vop_print), &a));
1101 1.23 thorpej }
1102 1.23 thorpej #endif
1103 1.1 cgd
1104 1.1 cgd int vop_islocked_vp_offsets[] = {
1105 1.1 cgd VOPARG_OFFSETOF(struct vop_islocked_args,a_vp),
1106 1.1 cgd VDESC_NO_OFFSET
1107 1.1 cgd };
1108 1.1 cgd struct vnodeop_desc vop_islocked_desc = {
1109 1.1 cgd 0,
1110 1.1 cgd "vop_islocked",
1111 1.1 cgd 0,
1112 1.1 cgd vop_islocked_vp_offsets,
1113 1.1 cgd VDESC_NO_OFFSET,
1114 1.1 cgd VDESC_NO_OFFSET,
1115 1.1 cgd VDESC_NO_OFFSET,
1116 1.1 cgd VDESC_NO_OFFSET,
1117 1.1 cgd NULL,
1118 1.1 cgd };
1119 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1120 1.23 thorpej int
1121 1.23 thorpej VOP_ISLOCKED(vp)
1122 1.23 thorpej struct vnode *vp;
1123 1.23 thorpej {
1124 1.23 thorpej struct vop_islocked_args a;
1125 1.23 thorpej a.a_desc = VDESC(vop_islocked);
1126 1.23 thorpej a.a_vp = vp;
1127 1.23 thorpej return (VCALL(vp, VOFFSET(vop_islocked), &a));
1128 1.23 thorpej }
1129 1.23 thorpej #endif
1130 1.1 cgd
1131 1.1 cgd int vop_pathconf_vp_offsets[] = {
1132 1.1 cgd VOPARG_OFFSETOF(struct vop_pathconf_args,a_vp),
1133 1.1 cgd VDESC_NO_OFFSET
1134 1.1 cgd };
1135 1.1 cgd struct vnodeop_desc vop_pathconf_desc = {
1136 1.1 cgd 0,
1137 1.1 cgd "vop_pathconf",
1138 1.1 cgd 0,
1139 1.1 cgd vop_pathconf_vp_offsets,
1140 1.1 cgd VDESC_NO_OFFSET,
1141 1.1 cgd VDESC_NO_OFFSET,
1142 1.1 cgd VDESC_NO_OFFSET,
1143 1.1 cgd VDESC_NO_OFFSET,
1144 1.1 cgd NULL,
1145 1.1 cgd };
1146 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1147 1.23 thorpej int
1148 1.23 thorpej VOP_PATHCONF(vp, name, retval)
1149 1.23 thorpej struct vnode *vp;
1150 1.23 thorpej int name;
1151 1.23 thorpej register_t *retval;
1152 1.23 thorpej {
1153 1.23 thorpej struct vop_pathconf_args a;
1154 1.23 thorpej a.a_desc = VDESC(vop_pathconf);
1155 1.23 thorpej a.a_vp = vp;
1156 1.23 thorpej a.a_name = name;
1157 1.23 thorpej a.a_retval = retval;
1158 1.23 thorpej return (VCALL(vp, VOFFSET(vop_pathconf), &a));
1159 1.23 thorpej }
1160 1.23 thorpej #endif
1161 1.1 cgd
1162 1.1 cgd int vop_advlock_vp_offsets[] = {
1163 1.1 cgd VOPARG_OFFSETOF(struct vop_advlock_args,a_vp),
1164 1.1 cgd VDESC_NO_OFFSET
1165 1.1 cgd };
1166 1.1 cgd struct vnodeop_desc vop_advlock_desc = {
1167 1.1 cgd 0,
1168 1.1 cgd "vop_advlock",
1169 1.1 cgd 0,
1170 1.1 cgd vop_advlock_vp_offsets,
1171 1.1 cgd VDESC_NO_OFFSET,
1172 1.1 cgd VDESC_NO_OFFSET,
1173 1.1 cgd VDESC_NO_OFFSET,
1174 1.1 cgd VDESC_NO_OFFSET,
1175 1.1 cgd NULL,
1176 1.1 cgd };
1177 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1178 1.23 thorpej int
1179 1.23 thorpej VOP_ADVLOCK(vp, id, op, fl, flags)
1180 1.23 thorpej struct vnode *vp;
1181 1.23 thorpej caddr_t id;
1182 1.23 thorpej int op;
1183 1.23 thorpej struct flock *fl;
1184 1.23 thorpej int flags;
1185 1.23 thorpej {
1186 1.23 thorpej struct vop_advlock_args a;
1187 1.23 thorpej a.a_desc = VDESC(vop_advlock);
1188 1.23 thorpej a.a_vp = vp;
1189 1.23 thorpej a.a_id = id;
1190 1.23 thorpej a.a_op = op;
1191 1.23 thorpej a.a_fl = fl;
1192 1.23 thorpej a.a_flags = flags;
1193 1.23 thorpej return (VCALL(vp, VOFFSET(vop_advlock), &a));
1194 1.23 thorpej }
1195 1.23 thorpej #endif
1196 1.1 cgd
1197 1.1 cgd int vop_blkatoff_vp_offsets[] = {
1198 1.1 cgd VOPARG_OFFSETOF(struct vop_blkatoff_args,a_vp),
1199 1.1 cgd VDESC_NO_OFFSET
1200 1.1 cgd };
1201 1.1 cgd struct vnodeop_desc vop_blkatoff_desc = {
1202 1.1 cgd 0,
1203 1.1 cgd "vop_blkatoff",
1204 1.1 cgd 0,
1205 1.1 cgd vop_blkatoff_vp_offsets,
1206 1.1 cgd VDESC_NO_OFFSET,
1207 1.1 cgd VDESC_NO_OFFSET,
1208 1.1 cgd VDESC_NO_OFFSET,
1209 1.1 cgd VDESC_NO_OFFSET,
1210 1.1 cgd NULL,
1211 1.1 cgd };
1212 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1213 1.23 thorpej int
1214 1.23 thorpej VOP_BLKATOFF(vp, offset, res, bpp)
1215 1.23 thorpej struct vnode *vp;
1216 1.23 thorpej off_t offset;
1217 1.23 thorpej char **res;
1218 1.23 thorpej struct buf **bpp;
1219 1.23 thorpej {
1220 1.23 thorpej struct vop_blkatoff_args a;
1221 1.23 thorpej a.a_desc = VDESC(vop_blkatoff);
1222 1.23 thorpej a.a_vp = vp;
1223 1.23 thorpej a.a_offset = offset;
1224 1.23 thorpej a.a_res = res;
1225 1.23 thorpej a.a_bpp = bpp;
1226 1.23 thorpej return (VCALL(vp, VOFFSET(vop_blkatoff), &a));
1227 1.23 thorpej }
1228 1.23 thorpej #endif
1229 1.1 cgd
1230 1.1 cgd int vop_valloc_vp_offsets[] = {
1231 1.1 cgd VOPARG_OFFSETOF(struct vop_valloc_args,a_pvp),
1232 1.1 cgd VDESC_NO_OFFSET
1233 1.1 cgd };
1234 1.1 cgd struct vnodeop_desc vop_valloc_desc = {
1235 1.1 cgd 0,
1236 1.1 cgd "vop_valloc",
1237 1.1 cgd 0,
1238 1.1 cgd vop_valloc_vp_offsets,
1239 1.1 cgd VOPARG_OFFSETOF(struct vop_valloc_args, a_vpp),
1240 1.1 cgd VOPARG_OFFSETOF(struct vop_valloc_args, a_cred),
1241 1.1 cgd VDESC_NO_OFFSET,
1242 1.1 cgd VDESC_NO_OFFSET,
1243 1.1 cgd NULL,
1244 1.1 cgd };
1245 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1246 1.23 thorpej int
1247 1.23 thorpej VOP_VALLOC(pvp, mode, cred, vpp)
1248 1.23 thorpej struct vnode *pvp;
1249 1.23 thorpej int mode;
1250 1.23 thorpej struct ucred *cred;
1251 1.23 thorpej struct vnode **vpp;
1252 1.23 thorpej {
1253 1.23 thorpej struct vop_valloc_args a;
1254 1.23 thorpej a.a_desc = VDESC(vop_valloc);
1255 1.23 thorpej a.a_pvp = pvp;
1256 1.23 thorpej a.a_mode = mode;
1257 1.23 thorpej a.a_cred = cred;
1258 1.23 thorpej a.a_vpp = vpp;
1259 1.23 thorpej return (VCALL(pvp, VOFFSET(vop_valloc), &a));
1260 1.23 thorpej }
1261 1.23 thorpej #endif
1262 1.1 cgd
1263 1.20 wrstuden int vop_balloc_vp_offsets[] = {
1264 1.20 wrstuden VOPARG_OFFSETOF(struct vop_balloc_args,a_vp),
1265 1.20 wrstuden VDESC_NO_OFFSET
1266 1.20 wrstuden };
1267 1.20 wrstuden struct vnodeop_desc vop_balloc_desc = {
1268 1.20 wrstuden 0,
1269 1.20 wrstuden "vop_balloc",
1270 1.20 wrstuden 0,
1271 1.20 wrstuden vop_balloc_vp_offsets,
1272 1.20 wrstuden VDESC_NO_OFFSET,
1273 1.20 wrstuden VOPARG_OFFSETOF(struct vop_balloc_args, a_cred),
1274 1.20 wrstuden VDESC_NO_OFFSET,
1275 1.20 wrstuden VDESC_NO_OFFSET,
1276 1.20 wrstuden NULL,
1277 1.20 wrstuden };
1278 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1279 1.23 thorpej int
1280 1.23 thorpej VOP_BALLOC(vp, startoffset, size, cred, flags, bpp)
1281 1.23 thorpej struct vnode *vp;
1282 1.23 thorpej off_t startoffset;
1283 1.23 thorpej int size;
1284 1.23 thorpej struct ucred *cred;
1285 1.23 thorpej int flags;
1286 1.23 thorpej struct buf **bpp;
1287 1.23 thorpej {
1288 1.23 thorpej struct vop_balloc_args a;
1289 1.23 thorpej a.a_desc = VDESC(vop_balloc);
1290 1.23 thorpej a.a_vp = vp;
1291 1.23 thorpej a.a_startoffset = startoffset;
1292 1.23 thorpej a.a_size = size;
1293 1.23 thorpej a.a_cred = cred;
1294 1.23 thorpej a.a_flags = flags;
1295 1.23 thorpej a.a_bpp = bpp;
1296 1.23 thorpej return (VCALL(vp, VOFFSET(vop_balloc), &a));
1297 1.23 thorpej }
1298 1.23 thorpej #endif
1299 1.20 wrstuden
1300 1.1 cgd int vop_reallocblks_vp_offsets[] = {
1301 1.1 cgd VOPARG_OFFSETOF(struct vop_reallocblks_args,a_vp),
1302 1.1 cgd VDESC_NO_OFFSET
1303 1.1 cgd };
1304 1.1 cgd struct vnodeop_desc vop_reallocblks_desc = {
1305 1.1 cgd 0,
1306 1.1 cgd "vop_reallocblks",
1307 1.1 cgd 0,
1308 1.1 cgd vop_reallocblks_vp_offsets,
1309 1.1 cgd VDESC_NO_OFFSET,
1310 1.1 cgd VDESC_NO_OFFSET,
1311 1.1 cgd VDESC_NO_OFFSET,
1312 1.1 cgd VDESC_NO_OFFSET,
1313 1.1 cgd NULL,
1314 1.1 cgd };
1315 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1316 1.23 thorpej int
1317 1.23 thorpej VOP_REALLOCBLKS(vp, buflist)
1318 1.23 thorpej struct vnode *vp;
1319 1.23 thorpej struct cluster_save *buflist;
1320 1.23 thorpej {
1321 1.23 thorpej struct vop_reallocblks_args a;
1322 1.23 thorpej a.a_desc = VDESC(vop_reallocblks);
1323 1.23 thorpej a.a_vp = vp;
1324 1.23 thorpej a.a_buflist = buflist;
1325 1.23 thorpej return (VCALL(vp, VOFFSET(vop_reallocblks), &a));
1326 1.23 thorpej }
1327 1.23 thorpej #endif
1328 1.1 cgd
1329 1.1 cgd int vop_vfree_vp_offsets[] = {
1330 1.1 cgd VOPARG_OFFSETOF(struct vop_vfree_args,a_pvp),
1331 1.1 cgd VDESC_NO_OFFSET
1332 1.1 cgd };
1333 1.1 cgd struct vnodeop_desc vop_vfree_desc = {
1334 1.1 cgd 0,
1335 1.1 cgd "vop_vfree",
1336 1.1 cgd 0,
1337 1.1 cgd vop_vfree_vp_offsets,
1338 1.1 cgd VDESC_NO_OFFSET,
1339 1.1 cgd VDESC_NO_OFFSET,
1340 1.1 cgd VDESC_NO_OFFSET,
1341 1.1 cgd VDESC_NO_OFFSET,
1342 1.1 cgd NULL,
1343 1.1 cgd };
1344 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1345 1.23 thorpej int
1346 1.23 thorpej VOP_VFREE(pvp, ino, mode)
1347 1.23 thorpej struct vnode *pvp;
1348 1.23 thorpej ino_t ino;
1349 1.23 thorpej int mode;
1350 1.23 thorpej {
1351 1.23 thorpej struct vop_vfree_args a;
1352 1.23 thorpej a.a_desc = VDESC(vop_vfree);
1353 1.23 thorpej a.a_pvp = pvp;
1354 1.23 thorpej a.a_ino = ino;
1355 1.23 thorpej a.a_mode = mode;
1356 1.23 thorpej return (VCALL(pvp, VOFFSET(vop_vfree), &a));
1357 1.23 thorpej }
1358 1.23 thorpej #endif
1359 1.1 cgd
1360 1.1 cgd int vop_truncate_vp_offsets[] = {
1361 1.1 cgd VOPARG_OFFSETOF(struct vop_truncate_args,a_vp),
1362 1.1 cgd VDESC_NO_OFFSET
1363 1.1 cgd };
1364 1.1 cgd struct vnodeop_desc vop_truncate_desc = {
1365 1.1 cgd 0,
1366 1.1 cgd "vop_truncate",
1367 1.1 cgd 0,
1368 1.1 cgd vop_truncate_vp_offsets,
1369 1.1 cgd VDESC_NO_OFFSET,
1370 1.1 cgd VOPARG_OFFSETOF(struct vop_truncate_args, a_cred),
1371 1.1 cgd VOPARG_OFFSETOF(struct vop_truncate_args, a_p),
1372 1.1 cgd VDESC_NO_OFFSET,
1373 1.1 cgd NULL,
1374 1.1 cgd };
1375 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1376 1.23 thorpej int
1377 1.23 thorpej VOP_TRUNCATE(vp, length, flags, cred, p)
1378 1.23 thorpej struct vnode *vp;
1379 1.23 thorpej off_t length;
1380 1.23 thorpej int flags;
1381 1.23 thorpej struct ucred *cred;
1382 1.23 thorpej struct proc *p;
1383 1.23 thorpej {
1384 1.23 thorpej struct vop_truncate_args a;
1385 1.23 thorpej a.a_desc = VDESC(vop_truncate);
1386 1.23 thorpej a.a_vp = vp;
1387 1.23 thorpej a.a_length = length;
1388 1.23 thorpej a.a_flags = flags;
1389 1.23 thorpej a.a_cred = cred;
1390 1.23 thorpej a.a_p = p;
1391 1.23 thorpej return (VCALL(vp, VOFFSET(vop_truncate), &a));
1392 1.23 thorpej }
1393 1.23 thorpej #endif
1394 1.1 cgd
1395 1.1 cgd int vop_update_vp_offsets[] = {
1396 1.1 cgd VOPARG_OFFSETOF(struct vop_update_args,a_vp),
1397 1.1 cgd VDESC_NO_OFFSET
1398 1.1 cgd };
1399 1.1 cgd struct vnodeop_desc vop_update_desc = {
1400 1.1 cgd 0,
1401 1.1 cgd "vop_update",
1402 1.1 cgd 0,
1403 1.1 cgd vop_update_vp_offsets,
1404 1.1 cgd VDESC_NO_OFFSET,
1405 1.1 cgd VDESC_NO_OFFSET,
1406 1.1 cgd VDESC_NO_OFFSET,
1407 1.1 cgd VDESC_NO_OFFSET,
1408 1.1 cgd NULL,
1409 1.1 cgd };
1410 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1411 1.23 thorpej int
1412 1.23 thorpej VOP_UPDATE(vp, access, modify, flags)
1413 1.23 thorpej struct vnode *vp;
1414 1.23 thorpej struct timespec *access;
1415 1.23 thorpej struct timespec *modify;
1416 1.23 thorpej int flags;
1417 1.23 thorpej {
1418 1.23 thorpej struct vop_update_args a;
1419 1.23 thorpej a.a_desc = VDESC(vop_update);
1420 1.23 thorpej a.a_vp = vp;
1421 1.23 thorpej a.a_access = access;
1422 1.23 thorpej a.a_modify = modify;
1423 1.23 thorpej a.a_flags = flags;
1424 1.23 thorpej return (VCALL(vp, VOFFSET(vop_update), &a));
1425 1.23 thorpej }
1426 1.23 thorpej #endif
1427 1.1 cgd
1428 1.1 cgd int vop_lease_vp_offsets[] = {
1429 1.1 cgd VOPARG_OFFSETOF(struct vop_lease_args,a_vp),
1430 1.1 cgd VDESC_NO_OFFSET
1431 1.1 cgd };
1432 1.1 cgd struct vnodeop_desc vop_lease_desc = {
1433 1.1 cgd 0,
1434 1.1 cgd "vop_lease",
1435 1.1 cgd 0,
1436 1.1 cgd vop_lease_vp_offsets,
1437 1.1 cgd VDESC_NO_OFFSET,
1438 1.1 cgd VOPARG_OFFSETOF(struct vop_lease_args, a_cred),
1439 1.1 cgd VOPARG_OFFSETOF(struct vop_lease_args, a_p),
1440 1.1 cgd VDESC_NO_OFFSET,
1441 1.1 cgd NULL,
1442 1.1 cgd };
1443 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1444 1.23 thorpej int
1445 1.23 thorpej VOP_LEASE(vp, p, cred, flag)
1446 1.23 thorpej struct vnode *vp;
1447 1.23 thorpej struct proc *p;
1448 1.23 thorpej struct ucred *cred;
1449 1.23 thorpej int flag;
1450 1.23 thorpej {
1451 1.23 thorpej struct vop_lease_args a;
1452 1.23 thorpej a.a_desc = VDESC(vop_lease);
1453 1.23 thorpej a.a_vp = vp;
1454 1.23 thorpej a.a_p = p;
1455 1.23 thorpej a.a_cred = cred;
1456 1.23 thorpej a.a_flag = flag;
1457 1.23 thorpej return (VCALL(vp, VOFFSET(vop_lease), &a));
1458 1.23 thorpej }
1459 1.23 thorpej #endif
1460 1.1 cgd
1461 1.1 cgd int vop_whiteout_vp_offsets[] = {
1462 1.1 cgd VOPARG_OFFSETOF(struct vop_whiteout_args,a_dvp),
1463 1.1 cgd VDESC_NO_OFFSET
1464 1.1 cgd };
1465 1.1 cgd struct vnodeop_desc vop_whiteout_desc = {
1466 1.1 cgd 0,
1467 1.1 cgd "vop_whiteout",
1468 1.1 cgd 0,
1469 1.1 cgd vop_whiteout_vp_offsets,
1470 1.1 cgd VDESC_NO_OFFSET,
1471 1.1 cgd VDESC_NO_OFFSET,
1472 1.1 cgd VDESC_NO_OFFSET,
1473 1.1 cgd VOPARG_OFFSETOF(struct vop_whiteout_args, a_cnp),
1474 1.1 cgd NULL,
1475 1.1 cgd };
1476 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1477 1.23 thorpej int
1478 1.23 thorpej VOP_WHITEOUT(dvp, cnp, flags)
1479 1.23 thorpej struct vnode *dvp;
1480 1.23 thorpej struct componentname *cnp;
1481 1.23 thorpej int flags;
1482 1.23 thorpej {
1483 1.23 thorpej struct vop_whiteout_args a;
1484 1.23 thorpej a.a_desc = VDESC(vop_whiteout);
1485 1.23 thorpej a.a_dvp = dvp;
1486 1.23 thorpej a.a_cnp = cnp;
1487 1.23 thorpej a.a_flags = flags;
1488 1.23 thorpej return (VCALL(dvp, VOFFSET(vop_whiteout), &a));
1489 1.23 thorpej }
1490 1.23 thorpej #endif
1491 1.1 cgd
1492 1.1 cgd /* Special cases: */
1493 1.1 cgd
1494 1.1 cgd int vop_strategy_vp_offsets[] = {
1495 1.1 cgd VDESC_NO_OFFSET
1496 1.1 cgd };
1497 1.1 cgd struct vnodeop_desc vop_strategy_desc = {
1498 1.1 cgd 0,
1499 1.1 cgd "vop_strategy",
1500 1.1 cgd 0,
1501 1.1 cgd vop_strategy_vp_offsets,
1502 1.1 cgd VDESC_NO_OFFSET,
1503 1.1 cgd VDESC_NO_OFFSET,
1504 1.1 cgd VDESC_NO_OFFSET,
1505 1.1 cgd VDESC_NO_OFFSET,
1506 1.1 cgd NULL,
1507 1.1 cgd };
1508 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1509 1.23 thorpej int
1510 1.23 thorpej VOP_STRATEGY(bp)
1511 1.23 thorpej struct buf *bp;
1512 1.23 thorpej {
1513 1.23 thorpej struct vop_strategy_args a;
1514 1.23 thorpej a.a_desc = VDESC(vop_strategy);
1515 1.23 thorpej a.a_bp = bp;
1516 1.23 thorpej return (VCALL(bp->b_vp, VOFFSET(vop_strategy), &a));
1517 1.23 thorpej }
1518 1.23 thorpej #endif
1519 1.1 cgd
1520 1.1 cgd int vop_bwrite_vp_offsets[] = {
1521 1.1 cgd VDESC_NO_OFFSET
1522 1.1 cgd };
1523 1.1 cgd struct vnodeop_desc vop_bwrite_desc = {
1524 1.1 cgd 0,
1525 1.1 cgd "vop_bwrite",
1526 1.1 cgd 0,
1527 1.1 cgd vop_bwrite_vp_offsets,
1528 1.1 cgd VDESC_NO_OFFSET,
1529 1.1 cgd VDESC_NO_OFFSET,
1530 1.1 cgd VDESC_NO_OFFSET,
1531 1.1 cgd VDESC_NO_OFFSET,
1532 1.1 cgd NULL,
1533 1.1 cgd };
1534 1.23 thorpej #ifdef VNODE_OP_NOINLINE
1535 1.23 thorpej int
1536 1.23 thorpej VOP_BWRITE(bp)
1537 1.23 thorpej struct buf *bp;
1538 1.23 thorpej {
1539 1.23 thorpej struct vop_bwrite_args a;
1540 1.23 thorpej a.a_desc = VDESC(vop_bwrite);
1541 1.23 thorpej a.a_bp = bp;
1542 1.23 thorpej return (VCALL(bp->b_vp, VOFFSET(vop_bwrite), &a));
1543 1.23 thorpej }
1544 1.23 thorpej #endif
1545 1.1 cgd
1546 1.1 cgd /* End of special cases. */
1547 1.1 cgd
1548 1.1 cgd struct vnodeop_desc *vfs_op_descs[] = {
1549 1.1 cgd &vop_default_desc, /* MUST BE FIRST */
1550 1.1 cgd &vop_strategy_desc, /* XXX: SPECIAL CASE */
1551 1.1 cgd &vop_bwrite_desc, /* XXX: SPECIAL CASE */
1552 1.1 cgd
1553 1.1 cgd &vop_lookup_desc,
1554 1.1 cgd &vop_create_desc,
1555 1.1 cgd &vop_mknod_desc,
1556 1.1 cgd &vop_open_desc,
1557 1.1 cgd &vop_close_desc,
1558 1.1 cgd &vop_access_desc,
1559 1.1 cgd &vop_getattr_desc,
1560 1.1 cgd &vop_setattr_desc,
1561 1.1 cgd &vop_read_desc,
1562 1.1 cgd &vop_write_desc,
1563 1.1 cgd &vop_ioctl_desc,
1564 1.18 wrstuden &vop_fcntl_desc,
1565 1.3 mycroft &vop_poll_desc,
1566 1.10 fvdl &vop_revoke_desc,
1567 1.1 cgd &vop_mmap_desc,
1568 1.1 cgd &vop_fsync_desc,
1569 1.1 cgd &vop_seek_desc,
1570 1.1 cgd &vop_remove_desc,
1571 1.1 cgd &vop_link_desc,
1572 1.1 cgd &vop_rename_desc,
1573 1.1 cgd &vop_mkdir_desc,
1574 1.1 cgd &vop_rmdir_desc,
1575 1.1 cgd &vop_symlink_desc,
1576 1.1 cgd &vop_readdir_desc,
1577 1.1 cgd &vop_readlink_desc,
1578 1.1 cgd &vop_abortop_desc,
1579 1.1 cgd &vop_inactive_desc,
1580 1.1 cgd &vop_reclaim_desc,
1581 1.1 cgd &vop_lock_desc,
1582 1.1 cgd &vop_unlock_desc,
1583 1.1 cgd &vop_bmap_desc,
1584 1.1 cgd &vop_print_desc,
1585 1.1 cgd &vop_islocked_desc,
1586 1.1 cgd &vop_pathconf_desc,
1587 1.1 cgd &vop_advlock_desc,
1588 1.1 cgd &vop_blkatoff_desc,
1589 1.1 cgd &vop_valloc_desc,
1590 1.20 wrstuden &vop_balloc_desc,
1591 1.1 cgd &vop_reallocblks_desc,
1592 1.1 cgd &vop_vfree_desc,
1593 1.1 cgd &vop_truncate_desc,
1594 1.1 cgd &vop_update_desc,
1595 1.1 cgd &vop_lease_desc,
1596 1.1 cgd &vop_whiteout_desc,
1597 1.1 cgd NULL
1598 1.1 cgd };
1599 1.1 cgd
1600