1 /*
2 * This file is produced by the script /sys/kern/vnode_if.sh.
3 * Do not modify anything in here by hand.
4 *
5 * @(#)vnode_if.h 7.4 (Berkeley) 07/03/92
6 */
7 extern struct vnodeop_desc vop_default_desc;
8 struct vop_lookup_args {
9 struct vnodeop_desc *a_desc;
10 struct vnode *a_dvp;
11 struct vnode **a_vpp;
12 struct componentname *a_cnp;
13 };
14 extern struct vnodeop_desc vop_lookup_desc;
VOP_LOOKUP(dvp,vpp,cnp)15 static inline int VOP_LOOKUP(dvp, vpp, cnp)
16 struct vnode *dvp;
17 struct vnode **vpp;
18 struct componentname *cnp;
19 {
20 struct vop_lookup_args a;
21
22 a.a_desc = VDESC(vop_lookup);
23 a.a_dvp = dvp;
24 a.a_vpp = vpp;
25 a.a_cnp = cnp;
26 return (VCALL(dvp, VOFFSET(vop_lookup), &a));
27 }
28 struct vop_create_args {
29 struct vnodeop_desc *a_desc;
30 struct vnode *a_dvp;
31 struct vnode **a_vpp;
32 struct componentname *a_cnp;
33 struct vattr *a_vap;
34 };
35 extern struct vnodeop_desc vop_create_desc;
VOP_CREATE(dvp,vpp,cnp,vap)36 static inline int VOP_CREATE(dvp, vpp, cnp, vap)
37 struct vnode *dvp;
38 struct vnode **vpp;
39 struct componentname *cnp;
40 struct vattr *vap;
41 {
42 struct vop_create_args a;
43
44 a.a_desc = VDESC(vop_create);
45 a.a_dvp = dvp;
46 a.a_vpp = vpp;
47 a.a_cnp = cnp;
48 a.a_vap = vap;
49 return (VCALL(dvp, VOFFSET(vop_create), &a));
50 }
51 struct vop_mknod_args {
52 struct vnodeop_desc *a_desc;
53 struct vnode *a_dvp;
54 struct vnode **a_vpp;
55 struct componentname *a_cnp;
56 struct vattr *a_vap;
57 };
58 extern struct vnodeop_desc vop_mknod_desc;
VOP_MKNOD(dvp,vpp,cnp,vap)59 static inline int VOP_MKNOD(dvp, vpp, cnp, vap)
60 struct vnode *dvp;
61 struct vnode **vpp;
62 struct componentname *cnp;
63 struct vattr *vap;
64 {
65 struct vop_mknod_args a;
66
67 a.a_desc = VDESC(vop_mknod);
68 a.a_dvp = dvp;
69 a.a_vpp = vpp;
70 a.a_cnp = cnp;
71 a.a_vap = vap;
72 return (VCALL(dvp, VOFFSET(vop_mknod), &a));
73 }
74 struct vop_open_args {
75 struct vnodeop_desc *a_desc;
76 struct vnode *a_vp;
77 int a_mode;
78 struct ucred *a_cred;
79 struct proc *a_p;
80 };
81 extern struct vnodeop_desc vop_open_desc;
VOP_OPEN(vp,mode,cred,p)82 static inline int VOP_OPEN(vp, mode, cred, p)
83 struct vnode *vp;
84 int mode;
85 struct ucred *cred;
86 struct proc *p;
87 {
88 struct vop_open_args a;
89
90 a.a_desc = VDESC(vop_open);
91 a.a_vp = vp;
92 a.a_mode = mode;
93 a.a_cred = cred;
94 a.a_p = p;
95 return (VCALL(vp, VOFFSET(vop_open), &a));
96 }
97 struct vop_close_args {
98 struct vnodeop_desc *a_desc;
99 struct vnode *a_vp;
100 int a_fflag;
101 struct ucred *a_cred;
102 struct proc *a_p;
103 };
104 extern struct vnodeop_desc vop_close_desc;
VOP_CLOSE(vp,fflag,cred,p)105 static inline int VOP_CLOSE(vp, fflag, cred, p)
106 struct vnode *vp;
107 int fflag;
108 struct ucred *cred;
109 struct proc *p;
110 {
111 struct vop_close_args a;
112
113 a.a_desc = VDESC(vop_close);
114 a.a_vp = vp;
115 a.a_fflag = fflag;
116 a.a_cred = cred;
117 a.a_p = p;
118 return (VCALL(vp, VOFFSET(vop_close), &a));
119 }
120 struct vop_access_args {
121 struct vnodeop_desc *a_desc;
122 struct vnode *a_vp;
123 int a_mode;
124 struct ucred *a_cred;
125 struct proc *a_p;
126 };
127 extern struct vnodeop_desc vop_access_desc;
VOP_ACCESS(vp,mode,cred,p)128 static inline int VOP_ACCESS(vp, mode, cred, p)
129 struct vnode *vp;
130 int mode;
131 struct ucred *cred;
132 struct proc *p;
133 {
134 struct vop_access_args a;
135
136 a.a_desc = VDESC(vop_access);
137 a.a_vp = vp;
138 a.a_mode = mode;
139 a.a_cred = cred;
140 a.a_p = p;
141 return (VCALL(vp, VOFFSET(vop_access), &a));
142 }
143 struct vop_getattr_args {
144 struct vnodeop_desc *a_desc;
145 struct vnode *a_vp;
146 struct vattr *a_vap;
147 struct ucred *a_cred;
148 struct proc *a_p;
149 };
150 extern struct vnodeop_desc vop_getattr_desc;
VOP_GETATTR(vp,vap,cred,p)151 static inline int VOP_GETATTR(vp, vap, cred, p)
152 struct vnode *vp;
153 struct vattr *vap;
154 struct ucred *cred;
155 struct proc *p;
156 {
157 struct vop_getattr_args a;
158
159 a.a_desc = VDESC(vop_getattr);
160 a.a_vp = vp;
161 a.a_vap = vap;
162 a.a_cred = cred;
163 a.a_p = p;
164 return (VCALL(vp, VOFFSET(vop_getattr), &a));
165 }
166 struct vop_setattr_args {
167 struct vnodeop_desc *a_desc;
168 struct vnode *a_vp;
169 struct vattr *a_vap;
170 struct ucred *a_cred;
171 struct proc *a_p;
172 };
173 extern struct vnodeop_desc vop_setattr_desc;
VOP_SETATTR(vp,vap,cred,p)174 static inline int VOP_SETATTR(vp, vap, cred, p)
175 struct vnode *vp;
176 struct vattr *vap;
177 struct ucred *cred;
178 struct proc *p;
179 {
180 struct vop_setattr_args a;
181
182 a.a_desc = VDESC(vop_setattr);
183 a.a_vp = vp;
184 a.a_vap = vap;
185 a.a_cred = cred;
186 a.a_p = p;
187 return (VCALL(vp, VOFFSET(vop_setattr), &a));
188 }
189 struct vop_read_args {
190 struct vnodeop_desc *a_desc;
191 struct vnode *a_vp;
192 struct uio *a_uio;
193 int a_ioflag;
194 struct ucred *a_cred;
195 };
196 extern struct vnodeop_desc vop_read_desc;
VOP_READ(vp,uio,ioflag,cred)197 static inline int VOP_READ(vp, uio, ioflag, cred)
198 struct vnode *vp;
199 struct uio *uio;
200 int ioflag;
201 struct ucred *cred;
202 {
203 struct vop_read_args a;
204
205 a.a_desc = VDESC(vop_read);
206 a.a_vp = vp;
207 a.a_uio = uio;
208 a.a_ioflag = ioflag;
209 a.a_cred = cred;
210 return (VCALL(vp, VOFFSET(vop_read), &a));
211 }
212 struct vop_write_args {
213 struct vnodeop_desc *a_desc;
214 struct vnode *a_vp;
215 struct uio *a_uio;
216 int a_ioflag;
217 struct ucred *a_cred;
218 };
219 extern struct vnodeop_desc vop_write_desc;
VOP_WRITE(vp,uio,ioflag,cred)220 static inline int VOP_WRITE(vp, uio, ioflag, cred)
221 struct vnode *vp;
222 struct uio *uio;
223 int ioflag;
224 struct ucred *cred;
225 {
226 struct vop_write_args a;
227
228 a.a_desc = VDESC(vop_write);
229 a.a_vp = vp;
230 a.a_uio = uio;
231 a.a_ioflag = ioflag;
232 a.a_cred = cred;
233 return (VCALL(vp, VOFFSET(vop_write), &a));
234 }
235 struct vop_ioctl_args {
236 struct vnodeop_desc *a_desc;
237 struct vnode *a_vp;
238 int a_command;
239 caddr_t a_data;
240 int a_fflag;
241 struct ucred *a_cred;
242 struct proc *a_p;
243 };
244 extern struct vnodeop_desc vop_ioctl_desc;
VOP_IOCTL(vp,command,data,fflag,cred,p)245 static inline int VOP_IOCTL(vp, command, data, fflag, cred, p)
246 struct vnode *vp;
247 int command;
248 caddr_t data;
249 int fflag;
250 struct ucred *cred;
251 struct proc *p;
252 {
253 struct vop_ioctl_args a;
254
255 a.a_desc = VDESC(vop_ioctl);
256 a.a_vp = vp;
257 a.a_command = command;
258 a.a_data = data;
259 a.a_fflag = fflag;
260 a.a_cred = cred;
261 a.a_p = p;
262 return (VCALL(vp, VOFFSET(vop_ioctl), &a));
263 }
264 struct vop_select_args {
265 struct vnodeop_desc *a_desc;
266 struct vnode *a_vp;
267 int a_which;
268 int a_fflags;
269 struct ucred *a_cred;
270 struct proc *a_p;
271 };
272 extern struct vnodeop_desc vop_select_desc;
VOP_SELECT(vp,which,fflags,cred,p)273 static inline int VOP_SELECT(vp, which, fflags, cred, p)
274 struct vnode *vp;
275 int which;
276 int fflags;
277 struct ucred *cred;
278 struct proc *p;
279 {
280 struct vop_select_args a;
281
282 a.a_desc = VDESC(vop_select);
283 a.a_vp = vp;
284 a.a_which = which;
285 a.a_fflags = fflags;
286 a.a_cred = cred;
287 a.a_p = p;
288 return (VCALL(vp, VOFFSET(vop_select), &a));
289 }
290 struct vop_mmap_args {
291 struct vnodeop_desc *a_desc;
292 struct vnode *a_vp;
293 int a_fflags;
294 struct ucred *a_cred;
295 struct proc *a_p;
296 };
297 extern struct vnodeop_desc vop_mmap_desc;
VOP_MMAP(vp,fflags,cred,p)298 static inline int VOP_MMAP(vp, fflags, cred, p)
299 struct vnode *vp;
300 int fflags;
301 struct ucred *cred;
302 struct proc *p;
303 {
304 struct vop_mmap_args a;
305
306 a.a_desc = VDESC(vop_mmap);
307 a.a_vp = vp;
308 a.a_fflags = fflags;
309 a.a_cred = cred;
310 a.a_p = p;
311 return (VCALL(vp, VOFFSET(vop_mmap), &a));
312 }
313 struct vop_fsync_args {
314 struct vnodeop_desc *a_desc;
315 struct vnode *a_vp;
316 struct ucred *a_cred;
317 int a_waitfor;
318 struct proc *a_p;
319 };
320 extern struct vnodeop_desc vop_fsync_desc;
VOP_FSYNC(vp,cred,waitfor,p)321 static inline int VOP_FSYNC(vp, cred, waitfor, p)
322 struct vnode *vp;
323 struct ucred *cred;
324 int waitfor;
325 struct proc *p;
326 {
327 struct vop_fsync_args a;
328
329 a.a_desc = VDESC(vop_fsync);
330 a.a_vp = vp;
331 a.a_cred = cred;
332 a.a_waitfor = waitfor;
333 a.a_p = p;
334 return (VCALL(vp, VOFFSET(vop_fsync), &a));
335 }
336 struct vop_seek_args {
337 struct vnodeop_desc *a_desc;
338 struct vnode *a_vp;
339 off_t a_oldoff;
340 off_t a_newoff;
341 struct ucred *a_cred;
342 };
343 extern struct vnodeop_desc vop_seek_desc;
VOP_SEEK(vp,oldoff,newoff,cred)344 static inline int VOP_SEEK(vp, oldoff, newoff, cred)
345 struct vnode *vp;
346 off_t oldoff;
347 off_t newoff;
348 struct ucred *cred;
349 {
350 struct vop_seek_args a;
351
352 a.a_desc = VDESC(vop_seek);
353 a.a_vp = vp;
354 a.a_oldoff = oldoff;
355 a.a_newoff = newoff;
356 a.a_cred = cred;
357 return (VCALL(vp, VOFFSET(vop_seek), &a));
358 }
359 struct vop_remove_args {
360 struct vnodeop_desc *a_desc;
361 struct vnode *a_dvp;
362 struct vnode *a_vp;
363 struct componentname *a_cnp;
364 };
365 extern struct vnodeop_desc vop_remove_desc;
VOP_REMOVE(dvp,vp,cnp)366 static inline int VOP_REMOVE(dvp, vp, cnp)
367 struct vnode *dvp;
368 struct vnode *vp;
369 struct componentname *cnp;
370 {
371 struct vop_remove_args a;
372
373 a.a_desc = VDESC(vop_remove);
374 a.a_dvp = dvp;
375 a.a_vp = vp;
376 a.a_cnp = cnp;
377 return (VCALL(dvp, VOFFSET(vop_remove), &a));
378 }
379 struct vop_link_args {
380 struct vnodeop_desc *a_desc;
381 struct vnode *a_vp;
382 struct vnode *a_tdvp;
383 struct componentname *a_cnp;
384 };
385 extern struct vnodeop_desc vop_link_desc;
VOP_LINK(vp,tdvp,cnp)386 static inline int VOP_LINK(vp, tdvp, cnp)
387 struct vnode *vp;
388 struct vnode *tdvp;
389 struct componentname *cnp;
390 {
391 struct vop_link_args a;
392
393 a.a_desc = VDESC(vop_link);
394 a.a_vp = vp;
395 a.a_tdvp = tdvp;
396 a.a_cnp = cnp;
397 return (VCALL(vp, VOFFSET(vop_link), &a));
398 }
399 struct vop_rename_args {
400 struct vnodeop_desc *a_desc;
401 struct vnode *a_fdvp;
402 struct vnode *a_fvp;
403 struct componentname *a_fcnp;
404 struct vnode *a_tdvp;
405 struct vnode *a_tvp;
406 struct componentname *a_tcnp;
407 };
408 extern struct vnodeop_desc vop_rename_desc;
VOP_RENAME(fdvp,fvp,fcnp,tdvp,tvp,tcnp)409 static inline int VOP_RENAME(fdvp, fvp, fcnp, tdvp, tvp, tcnp)
410 struct vnode *fdvp;
411 struct vnode *fvp;
412 struct componentname *fcnp;
413 struct vnode *tdvp;
414 struct vnode *tvp;
415 struct componentname *tcnp;
416 {
417 struct vop_rename_args a;
418
419 a.a_desc = VDESC(vop_rename);
420 a.a_fdvp = fdvp;
421 a.a_fvp = fvp;
422 a.a_fcnp = fcnp;
423 a.a_tdvp = tdvp;
424 a.a_tvp = tvp;
425 a.a_tcnp = tcnp;
426 return (VCALL(fdvp, VOFFSET(vop_rename), &a));
427 }
428 struct vop_mkdir_args {
429 struct vnodeop_desc *a_desc;
430 struct vnode *a_dvp;
431 struct vnode **a_vpp;
432 struct componentname *a_cnp;
433 struct vattr *a_vap;
434 };
435 extern struct vnodeop_desc vop_mkdir_desc;
VOP_MKDIR(dvp,vpp,cnp,vap)436 static inline int VOP_MKDIR(dvp, vpp, cnp, vap)
437 struct vnode *dvp;
438 struct vnode **vpp;
439 struct componentname *cnp;
440 struct vattr *vap;
441 {
442 struct vop_mkdir_args a;
443
444 a.a_desc = VDESC(vop_mkdir);
445 a.a_dvp = dvp;
446 a.a_vpp = vpp;
447 a.a_cnp = cnp;
448 a.a_vap = vap;
449 return (VCALL(dvp, VOFFSET(vop_mkdir), &a));
450 }
451 struct vop_rmdir_args {
452 struct vnodeop_desc *a_desc;
453 struct vnode *a_dvp;
454 struct vnode *a_vp;
455 struct componentname *a_cnp;
456 };
457 extern struct vnodeop_desc vop_rmdir_desc;
VOP_RMDIR(dvp,vp,cnp)458 static inline int VOP_RMDIR(dvp, vp, cnp)
459 struct vnode *dvp;
460 struct vnode *vp;
461 struct componentname *cnp;
462 {
463 struct vop_rmdir_args a;
464
465 a.a_desc = VDESC(vop_rmdir);
466 a.a_dvp = dvp;
467 a.a_vp = vp;
468 a.a_cnp = cnp;
469 return (VCALL(dvp, VOFFSET(vop_rmdir), &a));
470 }
471 struct vop_symlink_args {
472 struct vnodeop_desc *a_desc;
473 struct vnode *a_dvp;
474 struct vnode **a_vpp;
475 struct componentname *a_cnp;
476 struct vattr *a_vap;
477 char *a_target;
478 };
479 extern struct vnodeop_desc vop_symlink_desc;
VOP_SYMLINK(dvp,vpp,cnp,vap,target)480 static inline int VOP_SYMLINK(dvp, vpp, cnp, vap, target)
481 struct vnode *dvp;
482 struct vnode **vpp;
483 struct componentname *cnp;
484 struct vattr *vap;
485 char *target;
486 {
487 struct vop_symlink_args a;
488
489 a.a_desc = VDESC(vop_symlink);
490 a.a_dvp = dvp;
491 a.a_vpp = vpp;
492 a.a_cnp = cnp;
493 a.a_vap = vap;
494 a.a_target = target;
495 return (VCALL(dvp, VOFFSET(vop_symlink), &a));
496 }
497 struct vop_readdir_args {
498 struct vnodeop_desc *a_desc;
499 struct vnode *a_vp;
500 struct uio *a_uio;
501 struct ucred *a_cred;
502 };
503 extern struct vnodeop_desc vop_readdir_desc;
VOP_READDIR(vp,uio,cred)504 static inline int VOP_READDIR(vp, uio, cred)
505 struct vnode *vp;
506 struct uio *uio;
507 struct ucred *cred;
508 {
509 struct vop_readdir_args a;
510
511 a.a_desc = VDESC(vop_readdir);
512 a.a_vp = vp;
513 a.a_uio = uio;
514 a.a_cred = cred;
515 return (VCALL(vp, VOFFSET(vop_readdir), &a));
516 }
517 struct vop_readlink_args {
518 struct vnodeop_desc *a_desc;
519 struct vnode *a_vp;
520 struct uio *a_uio;
521 struct ucred *a_cred;
522 };
523 extern struct vnodeop_desc vop_readlink_desc;
VOP_READLINK(vp,uio,cred)524 static inline int VOP_READLINK(vp, uio, cred)
525 struct vnode *vp;
526 struct uio *uio;
527 struct ucred *cred;
528 {
529 struct vop_readlink_args a;
530
531 a.a_desc = VDESC(vop_readlink);
532 a.a_vp = vp;
533 a.a_uio = uio;
534 a.a_cred = cred;
535 return (VCALL(vp, VOFFSET(vop_readlink), &a));
536 }
537 struct vop_abortop_args {
538 struct vnodeop_desc *a_desc;
539 struct vnode *a_dvp;
540 struct componentname *a_cnp;
541 };
542 extern struct vnodeop_desc vop_abortop_desc;
VOP_ABORTOP(dvp,cnp)543 static inline int VOP_ABORTOP(dvp, cnp)
544 struct vnode *dvp;
545 struct componentname *cnp;
546 {
547 struct vop_abortop_args a;
548
549 a.a_desc = VDESC(vop_abortop);
550 a.a_dvp = dvp;
551 a.a_cnp = cnp;
552 return (VCALL(dvp, VOFFSET(vop_abortop), &a));
553 }
554 struct vop_inactive_args {
555 struct vnodeop_desc *a_desc;
556 struct vnode *a_vp;
557 };
558 extern struct vnodeop_desc vop_inactive_desc;
VOP_INACTIVE(vp)559 static inline int VOP_INACTIVE(vp)
560 struct vnode *vp;
561 {
562 struct vop_inactive_args a;
563
564 a.a_desc = VDESC(vop_inactive);
565 a.a_vp = vp;
566 return (VCALL(vp, VOFFSET(vop_inactive), &a));
567 }
568 struct vop_reclaim_args {
569 struct vnodeop_desc *a_desc;
570 struct vnode *a_vp;
571 };
572 extern struct vnodeop_desc vop_reclaim_desc;
VOP_RECLAIM(vp)573 static inline int VOP_RECLAIM(vp)
574 struct vnode *vp;
575 {
576 struct vop_reclaim_args a;
577
578 a.a_desc = VDESC(vop_reclaim);
579 a.a_vp = vp;
580 return (VCALL(vp, VOFFSET(vop_reclaim), &a));
581 }
582 struct vop_lock_args {
583 struct vnodeop_desc *a_desc;
584 struct vnode *a_vp;
585 };
586 extern struct vnodeop_desc vop_lock_desc;
VOP_LOCK(vp)587 static inline int VOP_LOCK(vp)
588 struct vnode *vp;
589 {
590 struct vop_lock_args a;
591
592 a.a_desc = VDESC(vop_lock);
593 a.a_vp = vp;
594 return (VCALL(vp, VOFFSET(vop_lock), &a));
595 }
596 struct vop_unlock_args {
597 struct vnodeop_desc *a_desc;
598 struct vnode *a_vp;
599 };
600 extern struct vnodeop_desc vop_unlock_desc;
VOP_UNLOCK(vp)601 static inline int VOP_UNLOCK(vp)
602 struct vnode *vp;
603 {
604 struct vop_unlock_args a;
605
606 a.a_desc = VDESC(vop_unlock);
607 a.a_vp = vp;
608 return (VCALL(vp, VOFFSET(vop_unlock), &a));
609 }
610 struct vop_bmap_args {
611 struct vnodeop_desc *a_desc;
612 struct vnode *a_vp;
613 daddr_t a_bn;
614 struct vnode **a_vpp;
615 daddr_t *a_bnp;
616 };
617 extern struct vnodeop_desc vop_bmap_desc;
VOP_BMAP(vp,bn,vpp,bnp)618 static inline int VOP_BMAP(vp, bn, vpp, bnp)
619 struct vnode *vp;
620 daddr_t bn;
621 struct vnode **vpp;
622 daddr_t *bnp;
623 {
624 struct vop_bmap_args a;
625
626 a.a_desc = VDESC(vop_bmap);
627 a.a_vp = vp;
628 a.a_bn = bn;
629 a.a_vpp = vpp;
630 a.a_bnp = bnp;
631 return (VCALL(vp, VOFFSET(vop_bmap), &a));
632 }
633 struct vop_print_args {
634 struct vnodeop_desc *a_desc;
635 struct vnode *a_vp;
636 };
637 extern struct vnodeop_desc vop_print_desc;
VOP_PRINT(vp)638 static inline int VOP_PRINT(vp)
639 struct vnode *vp;
640 {
641 struct vop_print_args a;
642
643 a.a_desc = VDESC(vop_print);
644 a.a_vp = vp;
645 return (VCALL(vp, VOFFSET(vop_print), &a));
646 }
647 struct vop_islocked_args {
648 struct vnodeop_desc *a_desc;
649 struct vnode *a_vp;
650 };
651 extern struct vnodeop_desc vop_islocked_desc;
VOP_ISLOCKED(vp)652 static inline int VOP_ISLOCKED(vp)
653 struct vnode *vp;
654 {
655 struct vop_islocked_args a;
656
657 a.a_desc = VDESC(vop_islocked);
658 a.a_vp = vp;
659 return (VCALL(vp, VOFFSET(vop_islocked), &a));
660 }
661 struct vop_advlock_args {
662 struct vnodeop_desc *a_desc;
663 struct vnode *a_vp;
664 caddr_t a_id;
665 int a_op;
666 struct flock *a_fl;
667 int a_flags;
668 };
669 extern struct vnodeop_desc vop_advlock_desc;
VOP_ADVLOCK(vp,id,op,fl,flags)670 static inline int VOP_ADVLOCK(vp, id, op, fl, flags)
671 struct vnode *vp;
672 caddr_t id;
673 int op;
674 struct flock *fl;
675 int flags;
676 {
677 struct vop_advlock_args a;
678
679 a.a_desc = VDESC(vop_advlock);
680 a.a_vp = vp;
681 a.a_id = id;
682 a.a_op = op;
683 a.a_fl = fl;
684 a.a_flags = flags;
685 return (VCALL(vp, VOFFSET(vop_advlock), &a));
686 }
687 struct vop_blkatoff_args {
688 struct vnodeop_desc *a_desc;
689 struct vnode *a_vp;
690 off_t a_offset;
691 char **a_res;
692 struct buf **a_bpp;
693 };
694 extern struct vnodeop_desc vop_blkatoff_desc;
VOP_BLKATOFF(vp,offset,res,bpp)695 static inline int VOP_BLKATOFF(vp, offset, res, bpp)
696 struct vnode *vp;
697 off_t offset;
698 char **res;
699 struct buf **bpp;
700 {
701 struct vop_blkatoff_args a;
702
703 a.a_desc = VDESC(vop_blkatoff);
704 a.a_vp = vp;
705 a.a_offset = offset;
706 a.a_res = res;
707 a.a_bpp = bpp;
708 return (VCALL(vp, VOFFSET(vop_blkatoff), &a));
709 }
710 struct vop_valloc_args {
711 struct vnodeop_desc *a_desc;
712 struct vnode *a_pvp;
713 int a_mode;
714 struct ucred *a_cred;
715 struct vnode **a_vpp;
716 };
717 extern struct vnodeop_desc vop_valloc_desc;
VOP_VALLOC(pvp,mode,cred,vpp)718 static inline int VOP_VALLOC(pvp, mode, cred, vpp)
719 struct vnode *pvp;
720 int mode;
721 struct ucred *cred;
722 struct vnode **vpp;
723 {
724 struct vop_valloc_args a;
725
726 a.a_desc = VDESC(vop_valloc);
727 a.a_pvp = pvp;
728 a.a_mode = mode;
729 a.a_cred = cred;
730 a.a_vpp = vpp;
731 return (VCALL(pvp, VOFFSET(vop_valloc), &a));
732 }
733 struct vop_vfree_args {
734 struct vnodeop_desc *a_desc;
735 struct vnode *a_pvp;
736 ino_t a_ino;
737 int a_mode;
738 };
739 extern struct vnodeop_desc vop_vfree_desc;
VOP_VFREE(pvp,ino,mode)740 static inline int VOP_VFREE(pvp, ino, mode)
741 struct vnode *pvp;
742 ino_t ino;
743 int mode;
744 {
745 struct vop_vfree_args a;
746
747 a.a_desc = VDESC(vop_vfree);
748 a.a_pvp = pvp;
749 a.a_ino = ino;
750 a.a_mode = mode;
751 return (VCALL(pvp, VOFFSET(vop_vfree), &a));
752 }
753 struct vop_truncate_args {
754 struct vnodeop_desc *a_desc;
755 struct vnode *a_vp;
756 off_t a_length;
757 int a_flags;
758 struct ucred *a_cred;
759 struct proc *a_p;
760 };
761 extern struct vnodeop_desc vop_truncate_desc;
VOP_TRUNCATE(vp,length,flags,cred,p)762 static inline int VOP_TRUNCATE(vp, length, flags, cred, p)
763 struct vnode *vp;
764 off_t length;
765 int flags;
766 struct ucred *cred;
767 struct proc *p;
768 {
769 struct vop_truncate_args a;
770
771 a.a_desc = VDESC(vop_truncate);
772 a.a_vp = vp;
773 a.a_length = length;
774 a.a_flags = flags;
775 a.a_cred = cred;
776 a.a_p = p;
777 return (VCALL(vp, VOFFSET(vop_truncate), &a));
778 }
779 struct vop_update_args {
780 struct vnodeop_desc *a_desc;
781 struct vnode *a_vp;
782 struct timeval *a_ta;
783 struct timeval *a_tm;
784 int a_waitfor;
785 };
786 extern struct vnodeop_desc vop_update_desc;
VOP_UPDATE(vp,ta,tm,waitfor)787 static inline int VOP_UPDATE(vp, ta, tm, waitfor)
788 struct vnode *vp;
789 struct timeval *ta;
790 struct timeval *tm;
791 int waitfor;
792 {
793 struct vop_update_args a;
794
795 a.a_desc = VDESC(vop_update);
796 a.a_vp = vp;
797 a.a_ta = ta;
798 a.a_tm = tm;
799 a.a_waitfor = waitfor;
800 return (VCALL(vp, VOFFSET(vop_update), &a));
801 }
802 #include <sys/buf.h>
803 struct vop_strategy_args {
804 struct vnodeop_desc *a_desc;
805 struct buf *a_bp;
806 };
807 extern struct vnodeop_desc vop_strategy_desc;
VOP_STRATEGY(bp)808 static inline int VOP_STRATEGY(bp)
809 struct buf *bp;
810 {
811 struct vop_strategy_args a;
812
813 a.a_desc = VDESC(vop_strategy);
814 a.a_bp = bp;
815 return (VCALL((bp)->b_vp, VOFFSET(vop_strategy), &a));
816 }
817
818 struct vop_bwrite_args {
819 struct vnodeop_desc *a_desc;
820 struct buf *a_bp;
821 };
822 extern struct vnodeop_desc vop_bwrite_desc;
VOP_BWRITE(bp)823 static inline int VOP_BWRITE(bp)
824 struct buf *bp;
825 {
826 struct vop_bwrite_args a;
827
828 a.a_desc = VDESC(vop_bwrite);
829 a.a_bp = bp;
830 return (VCALL((bp)->b_vp, VOFFSET(vop_bwrite), &a));
831 }
832