[BACK]Return to vnode_if.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / sys

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>