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