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