[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.24

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.23      thorpej     8:  *     NetBSD: vnode_if.src,v 1.24 2000/05/13 23:43:07 perseant Exp
1.1       cgd         9:  * by the script:
1.24    ! thorpej    10:  *     NetBSD: vnode_if.sh,v 1.21 2000/09/13 16:09:27 thorpej 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
        !            50: #ifdef _LKM
        !            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.1       cgd        58: extern struct vnodeop_desc vop_default_desc;
                     59:
                     60:
                     61: struct vop_lookup_args {
                     62:        struct vnodeop_desc *a_desc;
                     63:        struct vnode *a_dvp;
                     64:        struct vnode **a_vpp;
                     65:        struct componentname *a_cnp;
                     66: };
                     67: extern 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 {
                     92:        struct vnodeop_desc *a_desc;
                     93:        struct vnode *a_dvp;
                     94:        struct vnode **a_vpp;
                     95:        struct componentname *a_cnp;
                     96:        struct vattr *a_vap;
                     97: };
                     98: extern struct vnodeop_desc vop_create_desc;
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 {
                    126:        struct vnodeop_desc *a_desc;
                    127:        struct vnode *a_dvp;
                    128:        struct vnode **a_vpp;
                    129:        struct componentname *a_cnp;
                    130:        struct vattr *a_vap;
                    131: };
                    132: extern 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 {
                    160:        struct vnodeop_desc *a_desc;
                    161:        struct vnode *a_vp;
                    162:        int a_mode;
                    163:        struct ucred *a_cred;
                    164:        struct proc *a_p;
                    165: };
                    166: extern 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 {
                    193:        struct vnodeop_desc *a_desc;
                    194:        struct vnode *a_vp;
                    195:        int a_fflag;
                    196:        struct ucred *a_cred;
                    197:        struct proc *a_p;
                    198: };
                    199: extern 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 {
                    226:        struct vnodeop_desc *a_desc;
                    227:        struct vnode *a_vp;
                    228:        int a_mode;
                    229:        struct ucred *a_cred;
                    230:        struct proc *a_p;
                    231: };
                    232: extern 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 {
                    259:        struct vnodeop_desc *a_desc;
                    260:        struct vnode *a_vp;
                    261:        struct vattr *a_vap;
                    262:        struct ucred *a_cred;
                    263:        struct proc *a_p;
                    264: };
                    265: extern 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 {
                    292:        struct vnodeop_desc *a_desc;
                    293:        struct vnode *a_vp;
                    294:        struct vattr *a_vap;
                    295:        struct ucred *a_cred;
                    296:        struct proc *a_p;
                    297: };
                    298: extern 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 {
                    325:        struct vnodeop_desc *a_desc;
                    326:        struct vnode *a_vp;
                    327:        struct uio *a_uio;
                    328:        int a_ioflag;
                    329:        struct ucred *a_cred;
                    330: };
                    331: extern 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 {
                    358:        struct vnodeop_desc *a_desc;
                    359:        struct vnode *a_vp;
                    360:        struct uio *a_uio;
                    361:        int a_ioflag;
                    362:        struct ucred *a_cred;
                    363: };
                    364: extern 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 {
                    391:        struct vnodeop_desc *a_desc;
                    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: };
                    399: extern 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 {
                    431:        struct vnodeop_desc *a_desc;
                    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: };
                    439: extern 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.1       cgd       471:        struct vnodeop_desc *a_desc;
                    472:        struct vnode *a_vp;
1.3       mycroft   473:        int a_events;
1.1       cgd       474:        struct proc *a_p;
                    475: };
1.3       mycroft   476: extern 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 {
                    501:        struct vnodeop_desc *a_desc;
                    502:        struct vnode *a_vp;
                    503:        int a_flags;
                    504: };
                    505: extern 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 {
                    528:        struct vnodeop_desc *a_desc;
                    529:        struct vnode *a_vp;
                    530:        int a_fflags;
                    531:        struct ucred *a_cred;
                    532:        struct proc *a_p;
                    533: };
                    534: extern 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 {
                    561:        struct vnodeop_desc *a_desc;
                    562:        struct vnode *a_vp;
                    563:        struct ucred *a_cred;
1.12      kleink    564:        int a_flags;
1.1       cgd       565:        struct proc *a_p;
                    566: };
                    567: extern struct vnodeop_desc vop_fsync_desc;
1.23      thorpej   568: #ifndef VNODE_OP_NOINLINE
                    569: static __inline
                    570: #endif
                    571: int VOP_FSYNC(struct vnode *, struct ucred *, int, struct proc *)
                    572: #ifndef VNODE_OP_NOINLINE
                    573: __attribute__((__unused__))
                    574: #endif
                    575: ;
                    576: #ifndef VNODE_OP_NOINLINE
1.12      kleink    577: static __inline int VOP_FSYNC(vp, cred, flags, p)
1.1       cgd       578:        struct vnode *vp;
                    579:        struct ucred *cred;
1.12      kleink    580:        int flags;
1.1       cgd       581:        struct proc *p;
                    582: {
                    583:        struct vop_fsync_args a;
                    584:        a.a_desc = VDESC(vop_fsync);
                    585:        a.a_vp = vp;
                    586:        a.a_cred = cred;
1.12      kleink    587:        a.a_flags = flags;
1.1       cgd       588:        a.a_p = p;
                    589:        return (VCALL(vp, VOFFSET(vop_fsync), &a));
                    590: }
1.23      thorpej   591: #endif
1.1       cgd       592:
                    593: struct vop_seek_args {
                    594:        struct vnodeop_desc *a_desc;
                    595:        struct vnode *a_vp;
                    596:        off_t a_oldoff;
                    597:        off_t a_newoff;
                    598:        struct ucred *a_cred;
                    599: };
                    600: extern struct vnodeop_desc vop_seek_desc;
1.23      thorpej   601: #ifndef VNODE_OP_NOINLINE
                    602: static __inline
                    603: #endif
                    604: int VOP_SEEK(struct vnode *, off_t, off_t, struct ucred *)
                    605: #ifndef VNODE_OP_NOINLINE
                    606: __attribute__((__unused__))
                    607: #endif
                    608: ;
                    609: #ifndef VNODE_OP_NOINLINE
1.1       cgd       610: static __inline int VOP_SEEK(vp, oldoff, newoff, cred)
                    611:        struct vnode *vp;
                    612:        off_t oldoff;
                    613:        off_t newoff;
                    614:        struct ucred *cred;
                    615: {
                    616:        struct vop_seek_args a;
                    617:        a.a_desc = VDESC(vop_seek);
                    618:        a.a_vp = vp;
                    619:        a.a_oldoff = oldoff;
                    620:        a.a_newoff = newoff;
                    621:        a.a_cred = cred;
                    622:        return (VCALL(vp, VOFFSET(vop_seek), &a));
                    623: }
1.23      thorpej   624: #endif
1.1       cgd       625:
                    626: struct vop_remove_args {
                    627:        struct vnodeop_desc *a_desc;
                    628:        struct vnode *a_dvp;
                    629:        struct vnode *a_vp;
                    630:        struct componentname *a_cnp;
                    631: };
                    632: extern struct vnodeop_desc vop_remove_desc;
1.23      thorpej   633: #ifndef VNODE_OP_NOINLINE
                    634: static __inline
                    635: #endif
                    636: int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *)
                    637: #ifndef VNODE_OP_NOINLINE
                    638: __attribute__((__unused__))
                    639: #endif
                    640: ;
                    641: #ifndef VNODE_OP_NOINLINE
1.1       cgd       642: static __inline int VOP_REMOVE(dvp, vp, cnp)
                    643:        struct vnode *dvp;
                    644:        struct vnode *vp;
                    645:        struct componentname *cnp;
                    646: {
                    647:        struct vop_remove_args a;
                    648:        a.a_desc = VDESC(vop_remove);
                    649:        a.a_dvp = dvp;
                    650:        a.a_vp = vp;
                    651:        a.a_cnp = cnp;
                    652:        return (VCALL(dvp, VOFFSET(vop_remove), &a));
                    653: }
1.23      thorpej   654: #endif
1.1       cgd       655:
                    656: struct vop_link_args {
                    657:        struct vnodeop_desc *a_desc;
                    658:        struct vnode *a_dvp;
                    659:        struct vnode *a_vp;
                    660:        struct componentname *a_cnp;
                    661: };
                    662: extern struct vnodeop_desc vop_link_desc;
1.23      thorpej   663: #ifndef VNODE_OP_NOINLINE
                    664: static __inline
                    665: #endif
                    666: int VOP_LINK(struct vnode *, struct vnode *, struct componentname *)
                    667: #ifndef VNODE_OP_NOINLINE
                    668: __attribute__((__unused__))
                    669: #endif
                    670: ;
                    671: #ifndef VNODE_OP_NOINLINE
1.1       cgd       672: static __inline int VOP_LINK(dvp, vp, cnp)
                    673:        struct vnode *dvp;
                    674:        struct vnode *vp;
                    675:        struct componentname *cnp;
                    676: {
                    677:        struct vop_link_args a;
                    678:        a.a_desc = VDESC(vop_link);
                    679:        a.a_dvp = dvp;
                    680:        a.a_vp = vp;
                    681:        a.a_cnp = cnp;
                    682:        return (VCALL(dvp, VOFFSET(vop_link), &a));
                    683: }
1.23      thorpej   684: #endif
1.1       cgd       685:
                    686: struct vop_rename_args {
                    687:        struct vnodeop_desc *a_desc;
                    688:        struct vnode *a_fdvp;
                    689:        struct vnode *a_fvp;
                    690:        struct componentname *a_fcnp;
                    691:        struct vnode *a_tdvp;
                    692:        struct vnode *a_tvp;
                    693:        struct componentname *a_tcnp;
                    694: };
                    695: extern struct vnodeop_desc vop_rename_desc;
1.23      thorpej   696: #ifndef VNODE_OP_NOINLINE
                    697: static __inline
                    698: #endif
                    699: int VOP_RENAME(struct vnode *, struct vnode *, struct componentname *,
                    700:     struct vnode *, struct vnode *, struct componentname *)
                    701: #ifndef VNODE_OP_NOINLINE
                    702: __attribute__((__unused__))
                    703: #endif
                    704: ;
                    705: #ifndef VNODE_OP_NOINLINE
1.1       cgd       706: static __inline int VOP_RENAME(fdvp, fvp, fcnp, tdvp, tvp, tcnp)
                    707:        struct vnode *fdvp;
                    708:        struct vnode *fvp;
                    709:        struct componentname *fcnp;
                    710:        struct vnode *tdvp;
                    711:        struct vnode *tvp;
                    712:        struct componentname *tcnp;
                    713: {
                    714:        struct vop_rename_args a;
                    715:        a.a_desc = VDESC(vop_rename);
                    716:        a.a_fdvp = fdvp;
                    717:        a.a_fvp = fvp;
                    718:        a.a_fcnp = fcnp;
                    719:        a.a_tdvp = tdvp;
                    720:        a.a_tvp = tvp;
                    721:        a.a_tcnp = tcnp;
                    722:        return (VCALL(fdvp, VOFFSET(vop_rename), &a));
                    723: }
1.23      thorpej   724: #endif
1.1       cgd       725:
                    726: struct vop_mkdir_args {
                    727:        struct vnodeop_desc *a_desc;
                    728:        struct vnode *a_dvp;
                    729:        struct vnode **a_vpp;
                    730:        struct componentname *a_cnp;
                    731:        struct vattr *a_vap;
                    732: };
                    733: extern struct vnodeop_desc vop_mkdir_desc;
1.23      thorpej   734: #ifndef VNODE_OP_NOINLINE
                    735: static __inline
                    736: #endif
                    737: int VOP_MKDIR(struct vnode *, struct vnode **, struct componentname *,
                    738:     struct vattr *)
                    739: #ifndef VNODE_OP_NOINLINE
                    740: __attribute__((__unused__))
                    741: #endif
                    742: ;
                    743: #ifndef VNODE_OP_NOINLINE
1.1       cgd       744: static __inline int VOP_MKDIR(dvp, vpp, cnp, vap)
                    745:        struct vnode *dvp;
                    746:        struct vnode **vpp;
                    747:        struct componentname *cnp;
                    748:        struct vattr *vap;
                    749: {
                    750:        struct vop_mkdir_args a;
                    751:        a.a_desc = VDESC(vop_mkdir);
                    752:        a.a_dvp = dvp;
                    753:        a.a_vpp = vpp;
                    754:        a.a_cnp = cnp;
                    755:        a.a_vap = vap;
                    756:        return (VCALL(dvp, VOFFSET(vop_mkdir), &a));
                    757: }
1.23      thorpej   758: #endif
1.1       cgd       759:
                    760: struct vop_rmdir_args {
                    761:        struct vnodeop_desc *a_desc;
                    762:        struct vnode *a_dvp;
                    763:        struct vnode *a_vp;
                    764:        struct componentname *a_cnp;
                    765: };
                    766: extern struct vnodeop_desc vop_rmdir_desc;
1.23      thorpej   767: #ifndef VNODE_OP_NOINLINE
                    768: static __inline
                    769: #endif
                    770: int VOP_RMDIR(struct vnode *, struct vnode *, struct componentname *)
                    771: #ifndef VNODE_OP_NOINLINE
                    772: __attribute__((__unused__))
                    773: #endif
                    774: ;
                    775: #ifndef VNODE_OP_NOINLINE
1.1       cgd       776: static __inline int VOP_RMDIR(dvp, vp, cnp)
                    777:        struct vnode *dvp;
                    778:        struct vnode *vp;
                    779:        struct componentname *cnp;
                    780: {
                    781:        struct vop_rmdir_args a;
                    782:        a.a_desc = VDESC(vop_rmdir);
                    783:        a.a_dvp = dvp;
                    784:        a.a_vp = vp;
                    785:        a.a_cnp = cnp;
                    786:        return (VCALL(dvp, VOFFSET(vop_rmdir), &a));
                    787: }
1.23      thorpej   788: #endif
1.1       cgd       789:
                    790: struct vop_symlink_args {
                    791:        struct vnodeop_desc *a_desc;
                    792:        struct vnode *a_dvp;
                    793:        struct vnode **a_vpp;
                    794:        struct componentname *a_cnp;
                    795:        struct vattr *a_vap;
                    796:        char *a_target;
                    797: };
                    798: extern struct vnodeop_desc vop_symlink_desc;
1.23      thorpej   799: #ifndef VNODE_OP_NOINLINE
                    800: static __inline
                    801: #endif
                    802: int VOP_SYMLINK(struct vnode *, struct vnode **, struct componentname *,
                    803:     struct vattr *, char *)
                    804: #ifndef VNODE_OP_NOINLINE
                    805: __attribute__((__unused__))
                    806: #endif
                    807: ;
                    808: #ifndef VNODE_OP_NOINLINE
1.1       cgd       809: static __inline int VOP_SYMLINK(dvp, vpp, cnp, vap, target)
                    810:        struct vnode *dvp;
                    811:        struct vnode **vpp;
                    812:        struct componentname *cnp;
                    813:        struct vattr *vap;
                    814:        char *target;
                    815: {
                    816:        struct vop_symlink_args a;
                    817:        a.a_desc = VDESC(vop_symlink);
                    818:        a.a_dvp = dvp;
                    819:        a.a_vpp = vpp;
                    820:        a.a_cnp = cnp;
                    821:        a.a_vap = vap;
                    822:        a.a_target = target;
                    823:        return (VCALL(dvp, VOFFSET(vop_symlink), &a));
                    824: }
1.23      thorpej   825: #endif
1.1       cgd       826:
                    827: struct vop_readdir_args {
                    828:        struct vnodeop_desc *a_desc;
                    829:        struct vnode *a_vp;
                    830:        struct uio *a_uio;
                    831:        struct ucred *a_cred;
                    832:        int *a_eofflag;
1.10      fvdl      833:        off_t **a_cookies;
                    834:        int *a_ncookies;
1.1       cgd       835: };
                    836: extern struct vnodeop_desc vop_readdir_desc;
1.23      thorpej   837: #ifndef VNODE_OP_NOINLINE
                    838: static __inline
                    839: #endif
                    840: int VOP_READDIR(struct vnode *, struct uio *, struct ucred *, int *,
                    841:     off_t **, int *)
                    842: #ifndef VNODE_OP_NOINLINE
                    843: __attribute__((__unused__))
                    844: #endif
                    845: ;
                    846: #ifndef VNODE_OP_NOINLINE
1.1       cgd       847: static __inline int VOP_READDIR(vp, uio, cred, eofflag, cookies, ncookies)
                    848:        struct vnode *vp;
                    849:        struct uio *uio;
                    850:        struct ucred *cred;
                    851:        int *eofflag;
1.10      fvdl      852:        off_t **cookies;
                    853:        int *ncookies;
1.1       cgd       854: {
                    855:        struct vop_readdir_args a;
                    856:        a.a_desc = VDESC(vop_readdir);
                    857:        a.a_vp = vp;
                    858:        a.a_uio = uio;
                    859:        a.a_cred = cred;
                    860:        a.a_eofflag = eofflag;
                    861:        a.a_cookies = cookies;
                    862:        a.a_ncookies = ncookies;
                    863:        return (VCALL(vp, VOFFSET(vop_readdir), &a));
                    864: }
1.23      thorpej   865: #endif
1.1       cgd       866:
                    867: struct vop_readlink_args {
                    868:        struct vnodeop_desc *a_desc;
                    869:        struct vnode *a_vp;
                    870:        struct uio *a_uio;
                    871:        struct ucred *a_cred;
                    872: };
                    873: extern struct vnodeop_desc vop_readlink_desc;
1.23      thorpej   874: #ifndef VNODE_OP_NOINLINE
                    875: static __inline
                    876: #endif
                    877: int VOP_READLINK(struct vnode *, struct uio *, struct ucred *)
                    878: #ifndef VNODE_OP_NOINLINE
                    879: __attribute__((__unused__))
                    880: #endif
                    881: ;
                    882: #ifndef VNODE_OP_NOINLINE
1.1       cgd       883: static __inline int VOP_READLINK(vp, uio, cred)
                    884:        struct vnode *vp;
                    885:        struct uio *uio;
                    886:        struct ucred *cred;
                    887: {
                    888:        struct vop_readlink_args a;
                    889:        a.a_desc = VDESC(vop_readlink);
                    890:        a.a_vp = vp;
                    891:        a.a_uio = uio;
                    892:        a.a_cred = cred;
                    893:        return (VCALL(vp, VOFFSET(vop_readlink), &a));
                    894: }
1.23      thorpej   895: #endif
1.1       cgd       896:
                    897: struct vop_abortop_args {
                    898:        struct vnodeop_desc *a_desc;
                    899:        struct vnode *a_dvp;
                    900:        struct componentname *a_cnp;
                    901: };
                    902: extern struct vnodeop_desc vop_abortop_desc;
1.23      thorpej   903: #ifndef VNODE_OP_NOINLINE
                    904: static __inline
                    905: #endif
                    906: int VOP_ABORTOP(struct vnode *, struct componentname *)
                    907: #ifndef VNODE_OP_NOINLINE
                    908: __attribute__((__unused__))
                    909: #endif
                    910: ;
                    911: #ifndef VNODE_OP_NOINLINE
1.1       cgd       912: static __inline int VOP_ABORTOP(dvp, cnp)
                    913:        struct vnode *dvp;
                    914:        struct componentname *cnp;
                    915: {
                    916:        struct vop_abortop_args a;
                    917:        a.a_desc = VDESC(vop_abortop);
                    918:        a.a_dvp = dvp;
                    919:        a.a_cnp = cnp;
                    920:        return (VCALL(dvp, VOFFSET(vop_abortop), &a));
                    921: }
1.23      thorpej   922: #endif
1.1       cgd       923:
                    924: struct vop_inactive_args {
                    925:        struct vnodeop_desc *a_desc;
                    926:        struct vnode *a_vp;
1.10      fvdl      927:        struct proc *a_p;
1.1       cgd       928: };
                    929: extern struct vnodeop_desc vop_inactive_desc;
1.23      thorpej   930: #ifndef VNODE_OP_NOINLINE
                    931: static __inline
                    932: #endif
                    933: int VOP_INACTIVE(struct vnode *, struct proc *)
                    934: #ifndef VNODE_OP_NOINLINE
                    935: __attribute__((__unused__))
                    936: #endif
                    937: ;
                    938: #ifndef VNODE_OP_NOINLINE
1.10      fvdl      939: static __inline int VOP_INACTIVE(vp, p)
1.1       cgd       940:        struct vnode *vp;
1.10      fvdl      941:        struct proc *p;
1.1       cgd       942: {
                    943:        struct vop_inactive_args a;
                    944:        a.a_desc = VDESC(vop_inactive);
                    945:        a.a_vp = vp;
1.10      fvdl      946:        a.a_p = p;
1.1       cgd       947:        return (VCALL(vp, VOFFSET(vop_inactive), &a));
                    948: }
1.23      thorpej   949: #endif
1.1       cgd       950:
                    951: struct vop_reclaim_args {
                    952:        struct vnodeop_desc *a_desc;
                    953:        struct vnode *a_vp;
1.10      fvdl      954:        struct proc *a_p;
1.1       cgd       955: };
                    956: extern struct vnodeop_desc vop_reclaim_desc;
1.23      thorpej   957: #ifndef VNODE_OP_NOINLINE
                    958: static __inline
                    959: #endif
                    960: int VOP_RECLAIM(struct vnode *, struct proc *)
                    961: #ifndef VNODE_OP_NOINLINE
                    962: __attribute__((__unused__))
                    963: #endif
                    964: ;
                    965: #ifndef VNODE_OP_NOINLINE
1.10      fvdl      966: static __inline int VOP_RECLAIM(vp, p)
1.1       cgd       967:        struct vnode *vp;
1.10      fvdl      968:        struct proc *p;
1.1       cgd       969: {
                    970:        struct vop_reclaim_args a;
                    971:        a.a_desc = VDESC(vop_reclaim);
                    972:        a.a_vp = vp;
1.10      fvdl      973:        a.a_p = p;
1.1       cgd       974:        return (VCALL(vp, VOFFSET(vop_reclaim), &a));
                    975: }
1.23      thorpej   976: #endif
1.1       cgd       977:
                    978: struct vop_lock_args {
                    979:        struct vnodeop_desc *a_desc;
                    980:        struct vnode *a_vp;
1.10      fvdl      981:        int a_flags;
1.1       cgd       982: };
                    983: extern struct vnodeop_desc vop_lock_desc;
1.23      thorpej   984: #ifndef VNODE_OP_NOINLINE
                    985: static __inline
                    986: #endif
                    987: int VOP_LOCK(struct vnode *, int)
                    988: #ifndef VNODE_OP_NOINLINE
                    989: __attribute__((__unused__))
                    990: #endif
                    991: ;
                    992: #ifndef VNODE_OP_NOINLINE
1.10      fvdl      993: static __inline int VOP_LOCK(vp, flags)
1.1       cgd       994:        struct vnode *vp;
1.10      fvdl      995:        int flags;
1.1       cgd       996: {
                    997:        struct vop_lock_args a;
                    998:        a.a_desc = VDESC(vop_lock);
                    999:        a.a_vp = vp;
1.10      fvdl     1000:        a.a_flags = flags;
1.1       cgd      1001:        return (VCALL(vp, VOFFSET(vop_lock), &a));
                   1002: }
1.23      thorpej  1003: #endif
1.1       cgd      1004:
                   1005: struct vop_unlock_args {
                   1006:        struct vnodeop_desc *a_desc;
                   1007:        struct vnode *a_vp;
1.10      fvdl     1008:        int a_flags;
1.1       cgd      1009: };
                   1010: extern struct vnodeop_desc vop_unlock_desc;
1.23      thorpej  1011: #ifndef VNODE_OP_NOINLINE
                   1012: static __inline
                   1013: #endif
                   1014: int VOP_UNLOCK(struct vnode *, int)
                   1015: #ifndef VNODE_OP_NOINLINE
                   1016: __attribute__((__unused__))
                   1017: #endif
                   1018: ;
                   1019: #ifndef VNODE_OP_NOINLINE
1.10      fvdl     1020: static __inline int VOP_UNLOCK(vp, flags)
1.1       cgd      1021:        struct vnode *vp;
1.10      fvdl     1022:        int flags;
1.1       cgd      1023: {
                   1024:        struct vop_unlock_args a;
                   1025:        a.a_desc = VDESC(vop_unlock);
                   1026:        a.a_vp = vp;
1.10      fvdl     1027:        a.a_flags = flags;
1.1       cgd      1028:        return (VCALL(vp, VOFFSET(vop_unlock), &a));
                   1029: }
1.23      thorpej  1030: #endif
1.1       cgd      1031:
                   1032: struct vop_bmap_args {
                   1033:        struct vnodeop_desc *a_desc;
                   1034:        struct vnode *a_vp;
                   1035:        daddr_t a_bn;
                   1036:        struct vnode **a_vpp;
                   1037:        daddr_t *a_bnp;
                   1038:        int *a_runp;
                   1039: };
                   1040: extern struct vnodeop_desc vop_bmap_desc;
1.23      thorpej  1041: #ifndef VNODE_OP_NOINLINE
                   1042: static __inline
                   1043: #endif
                   1044: int VOP_BMAP(struct vnode *, daddr_t, struct vnode **, daddr_t *, int *)
                   1045: #ifndef VNODE_OP_NOINLINE
                   1046: __attribute__((__unused__))
                   1047: #endif
                   1048: ;
                   1049: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1050: static __inline int VOP_BMAP(vp, bn, vpp, bnp, runp)
                   1051:        struct vnode *vp;
                   1052:        daddr_t bn;
                   1053:        struct vnode **vpp;
                   1054:        daddr_t *bnp;
                   1055:        int *runp;
                   1056: {
                   1057:        struct vop_bmap_args a;
                   1058:        a.a_desc = VDESC(vop_bmap);
                   1059:        a.a_vp = vp;
                   1060:        a.a_bn = bn;
                   1061:        a.a_vpp = vpp;
                   1062:        a.a_bnp = bnp;
                   1063:        a.a_runp = runp;
                   1064:        return (VCALL(vp, VOFFSET(vop_bmap), &a));
                   1065: }
1.23      thorpej  1066: #endif
1.1       cgd      1067:
                   1068: struct vop_print_args {
                   1069:        struct vnodeop_desc *a_desc;
                   1070:        struct vnode *a_vp;
                   1071: };
                   1072: extern struct vnodeop_desc vop_print_desc;
1.23      thorpej  1073: #ifndef VNODE_OP_NOINLINE
                   1074: static __inline
                   1075: #endif
                   1076: int VOP_PRINT(struct vnode *)
                   1077: #ifndef VNODE_OP_NOINLINE
                   1078: __attribute__((__unused__))
                   1079: #endif
                   1080: ;
                   1081: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1082: static __inline int VOP_PRINT(vp)
                   1083:        struct vnode *vp;
                   1084: {
                   1085:        struct vop_print_args a;
                   1086:        a.a_desc = VDESC(vop_print);
                   1087:        a.a_vp = vp;
                   1088:        return (VCALL(vp, VOFFSET(vop_print), &a));
                   1089: }
1.23      thorpej  1090: #endif
1.1       cgd      1091:
                   1092: struct vop_islocked_args {
                   1093:        struct vnodeop_desc *a_desc;
                   1094:        struct vnode *a_vp;
                   1095: };
                   1096: extern struct vnodeop_desc vop_islocked_desc;
1.23      thorpej  1097: #ifndef VNODE_OP_NOINLINE
                   1098: static __inline
                   1099: #endif
                   1100: int VOP_ISLOCKED(struct vnode *)
                   1101: #ifndef VNODE_OP_NOINLINE
                   1102: __attribute__((__unused__))
                   1103: #endif
                   1104: ;
                   1105: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1106: static __inline int VOP_ISLOCKED(vp)
                   1107:        struct vnode *vp;
                   1108: {
                   1109:        struct vop_islocked_args a;
                   1110:        a.a_desc = VDESC(vop_islocked);
                   1111:        a.a_vp = vp;
                   1112:        return (VCALL(vp, VOFFSET(vop_islocked), &a));
                   1113: }
1.23      thorpej  1114: #endif
1.1       cgd      1115:
                   1116: struct vop_pathconf_args {
                   1117:        struct vnodeop_desc *a_desc;
                   1118:        struct vnode *a_vp;
                   1119:        int a_name;
                   1120:        register_t *a_retval;
                   1121: };
                   1122: extern struct vnodeop_desc vop_pathconf_desc;
1.23      thorpej  1123: #ifndef VNODE_OP_NOINLINE
                   1124: static __inline
                   1125: #endif
                   1126: int VOP_PATHCONF(struct vnode *, int, register_t *)
                   1127: #ifndef VNODE_OP_NOINLINE
                   1128: __attribute__((__unused__))
                   1129: #endif
                   1130: ;
                   1131: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1132: static __inline int VOP_PATHCONF(vp, name, retval)
                   1133:        struct vnode *vp;
                   1134:        int name;
                   1135:        register_t *retval;
                   1136: {
                   1137:        struct vop_pathconf_args a;
                   1138:        a.a_desc = VDESC(vop_pathconf);
                   1139:        a.a_vp = vp;
                   1140:        a.a_name = name;
                   1141:        a.a_retval = retval;
                   1142:        return (VCALL(vp, VOFFSET(vop_pathconf), &a));
                   1143: }
1.23      thorpej  1144: #endif
1.1       cgd      1145:
                   1146: struct vop_advlock_args {
                   1147:        struct vnodeop_desc *a_desc;
                   1148:        struct vnode *a_vp;
                   1149:        caddr_t a_id;
                   1150:        int a_op;
                   1151:        struct flock *a_fl;
                   1152:        int a_flags;
                   1153: };
                   1154: extern struct vnodeop_desc vop_advlock_desc;
1.23      thorpej  1155: #ifndef VNODE_OP_NOINLINE
                   1156: static __inline
                   1157: #endif
                   1158: int VOP_ADVLOCK(struct vnode *, caddr_t, int, struct flock *, int)
                   1159: #ifndef VNODE_OP_NOINLINE
                   1160: __attribute__((__unused__))
                   1161: #endif
                   1162: ;
                   1163: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1164: static __inline int VOP_ADVLOCK(vp, id, op, fl, flags)
                   1165:        struct vnode *vp;
                   1166:        caddr_t id;
                   1167:        int op;
                   1168:        struct flock *fl;
                   1169:        int flags;
                   1170: {
                   1171:        struct vop_advlock_args a;
                   1172:        a.a_desc = VDESC(vop_advlock);
                   1173:        a.a_vp = vp;
                   1174:        a.a_id = id;
                   1175:        a.a_op = op;
                   1176:        a.a_fl = fl;
                   1177:        a.a_flags = flags;
                   1178:        return (VCALL(vp, VOFFSET(vop_advlock), &a));
                   1179: }
1.23      thorpej  1180: #endif
1.1       cgd      1181:
                   1182: struct vop_blkatoff_args {
                   1183:        struct vnodeop_desc *a_desc;
                   1184:        struct vnode *a_vp;
                   1185:        off_t a_offset;
                   1186:        char **a_res;
                   1187:        struct buf **a_bpp;
                   1188: };
                   1189: extern struct vnodeop_desc vop_blkatoff_desc;
1.23      thorpej  1190: #ifndef VNODE_OP_NOINLINE
                   1191: static __inline
                   1192: #endif
                   1193: int VOP_BLKATOFF(struct vnode *, off_t, char **, struct buf **)
                   1194: #ifndef VNODE_OP_NOINLINE
                   1195: __attribute__((__unused__))
                   1196: #endif
                   1197: ;
                   1198: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1199: static __inline int VOP_BLKATOFF(vp, offset, res, bpp)
                   1200:        struct vnode *vp;
                   1201:        off_t offset;
                   1202:        char **res;
                   1203:        struct buf **bpp;
                   1204: {
                   1205:        struct vop_blkatoff_args a;
                   1206:        a.a_desc = VDESC(vop_blkatoff);
                   1207:        a.a_vp = vp;
                   1208:        a.a_offset = offset;
                   1209:        a.a_res = res;
                   1210:        a.a_bpp = bpp;
                   1211:        return (VCALL(vp, VOFFSET(vop_blkatoff), &a));
                   1212: }
1.23      thorpej  1213: #endif
1.1       cgd      1214:
                   1215: struct vop_valloc_args {
                   1216:        struct vnodeop_desc *a_desc;
                   1217:        struct vnode *a_pvp;
                   1218:        int a_mode;
                   1219:        struct ucred *a_cred;
                   1220:        struct vnode **a_vpp;
                   1221: };
                   1222: extern struct vnodeop_desc vop_valloc_desc;
1.23      thorpej  1223: #ifndef VNODE_OP_NOINLINE
                   1224: static __inline
                   1225: #endif
                   1226: int VOP_VALLOC(struct vnode *, int, struct ucred *, struct vnode **)
                   1227: #ifndef VNODE_OP_NOINLINE
                   1228: __attribute__((__unused__))
                   1229: #endif
                   1230: ;
                   1231: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1232: static __inline int VOP_VALLOC(pvp, mode, cred, vpp)
                   1233:        struct vnode *pvp;
                   1234:        int mode;
                   1235:        struct ucred *cred;
                   1236:        struct vnode **vpp;
                   1237: {
                   1238:        struct vop_valloc_args a;
                   1239:        a.a_desc = VDESC(vop_valloc);
                   1240:        a.a_pvp = pvp;
                   1241:        a.a_mode = mode;
                   1242:        a.a_cred = cred;
                   1243:        a.a_vpp = vpp;
                   1244:        return (VCALL(pvp, VOFFSET(vop_valloc), &a));
1.20      wrstuden 1245: }
1.23      thorpej  1246: #endif
1.20      wrstuden 1247:
                   1248: struct vop_balloc_args {
                   1249:        struct vnodeop_desc *a_desc;
                   1250:        struct vnode *a_vp;
                   1251:        off_t a_startoffset;
                   1252:        int a_size;
                   1253:        struct ucred *a_cred;
                   1254:        int a_flags;
                   1255:        struct buf **a_bpp;
                   1256: };
                   1257: extern struct vnodeop_desc vop_balloc_desc;
1.23      thorpej  1258: #ifndef VNODE_OP_NOINLINE
                   1259: static __inline
                   1260: #endif
                   1261: int VOP_BALLOC(struct vnode *, off_t, int, struct ucred *, int, struct buf **)
                   1262: #ifndef VNODE_OP_NOINLINE
                   1263: __attribute__((__unused__))
                   1264: #endif
                   1265: ;
                   1266: #ifndef VNODE_OP_NOINLINE
1.20      wrstuden 1267: static __inline int VOP_BALLOC(vp, startoffset, size, cred, flags, bpp)
                   1268:        struct vnode *vp;
                   1269:        off_t startoffset;
                   1270:        int size;
                   1271:        struct ucred *cred;
                   1272:        int flags;
                   1273:        struct buf **bpp;
                   1274: {
                   1275:        struct vop_balloc_args a;
                   1276:        a.a_desc = VDESC(vop_balloc);
                   1277:        a.a_vp = vp;
                   1278:        a.a_startoffset = startoffset;
                   1279:        a.a_size = size;
                   1280:        a.a_cred = cred;
                   1281:        a.a_flags = flags;
                   1282:        a.a_bpp = bpp;
                   1283:        return (VCALL(vp, VOFFSET(vop_balloc), &a));
1.1       cgd      1284: }
1.23      thorpej  1285: #endif
1.1       cgd      1286:
                   1287: struct vop_reallocblks_args {
                   1288:        struct vnodeop_desc *a_desc;
                   1289:        struct vnode *a_vp;
                   1290:        struct cluster_save *a_buflist;
                   1291: };
                   1292: extern struct vnodeop_desc vop_reallocblks_desc;
1.23      thorpej  1293: #ifndef VNODE_OP_NOINLINE
                   1294: static __inline
                   1295: #endif
                   1296: int VOP_REALLOCBLKS(struct vnode *, struct cluster_save *)
                   1297: #ifndef VNODE_OP_NOINLINE
                   1298: __attribute__((__unused__))
                   1299: #endif
                   1300: ;
                   1301: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1302: static __inline int VOP_REALLOCBLKS(vp, buflist)
                   1303:        struct vnode *vp;
                   1304:        struct cluster_save *buflist;
                   1305: {
                   1306:        struct vop_reallocblks_args a;
                   1307:        a.a_desc = VDESC(vop_reallocblks);
                   1308:        a.a_vp = vp;
                   1309:        a.a_buflist = buflist;
                   1310:        return (VCALL(vp, VOFFSET(vop_reallocblks), &a));
                   1311: }
1.23      thorpej  1312: #endif
1.1       cgd      1313:
                   1314: struct vop_vfree_args {
                   1315:        struct vnodeop_desc *a_desc;
                   1316:        struct vnode *a_pvp;
                   1317:        ino_t a_ino;
                   1318:        int a_mode;
                   1319: };
                   1320: extern struct vnodeop_desc vop_vfree_desc;
1.23      thorpej  1321: #ifndef VNODE_OP_NOINLINE
                   1322: static __inline
                   1323: #endif
                   1324: int VOP_VFREE(struct vnode *, ino_t, int)
                   1325: #ifndef VNODE_OP_NOINLINE
                   1326: __attribute__((__unused__))
                   1327: #endif
                   1328: ;
                   1329: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1330: static __inline int VOP_VFREE(pvp, ino, mode)
                   1331:        struct vnode *pvp;
                   1332:        ino_t ino;
                   1333:        int mode;
                   1334: {
                   1335:        struct vop_vfree_args a;
                   1336:        a.a_desc = VDESC(vop_vfree);
                   1337:        a.a_pvp = pvp;
                   1338:        a.a_ino = ino;
                   1339:        a.a_mode = mode;
                   1340:        return (VCALL(pvp, VOFFSET(vop_vfree), &a));
                   1341: }
1.23      thorpej  1342: #endif
1.1       cgd      1343:
                   1344: struct vop_truncate_args {
                   1345:        struct vnodeop_desc *a_desc;
                   1346:        struct vnode *a_vp;
                   1347:        off_t a_length;
                   1348:        int a_flags;
                   1349:        struct ucred *a_cred;
                   1350:        struct proc *a_p;
                   1351: };
                   1352: extern struct vnodeop_desc vop_truncate_desc;
1.23      thorpej  1353: #ifndef VNODE_OP_NOINLINE
                   1354: static __inline
                   1355: #endif
                   1356: int VOP_TRUNCATE(struct vnode *, off_t, int, struct ucred *, struct proc *)
                   1357: #ifndef VNODE_OP_NOINLINE
                   1358: __attribute__((__unused__))
                   1359: #endif
                   1360: ;
                   1361: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1362: static __inline int VOP_TRUNCATE(vp, length, flags, cred, p)
                   1363:        struct vnode *vp;
                   1364:        off_t length;
                   1365:        int flags;
                   1366:        struct ucred *cred;
                   1367:        struct proc *p;
                   1368: {
                   1369:        struct vop_truncate_args a;
                   1370:        a.a_desc = VDESC(vop_truncate);
                   1371:        a.a_vp = vp;
                   1372:        a.a_length = length;
                   1373:        a.a_flags = flags;
                   1374:        a.a_cred = cred;
                   1375:        a.a_p = p;
                   1376:        return (VCALL(vp, VOFFSET(vop_truncate), &a));
                   1377: }
1.23      thorpej  1378: #endif
1.1       cgd      1379:
                   1380: struct vop_update_args {
                   1381:        struct vnodeop_desc *a_desc;
                   1382:        struct vnode *a_vp;
1.2       mycroft  1383:        struct timespec *a_access;
                   1384:        struct timespec *a_modify;
1.22      perseant 1385:        int a_flags;
1.1       cgd      1386: };
                   1387: extern struct vnodeop_desc vop_update_desc;
1.23      thorpej  1388: #ifndef VNODE_OP_NOINLINE
                   1389: static __inline
                   1390: #endif
                   1391: int VOP_UPDATE(struct vnode *, struct timespec *, struct timespec *, int)
                   1392: #ifndef VNODE_OP_NOINLINE
                   1393: __attribute__((__unused__))
                   1394: #endif
                   1395: ;
                   1396: #ifndef VNODE_OP_NOINLINE
1.22      perseant 1397: static __inline int VOP_UPDATE(vp, access, modify, flags)
1.1       cgd      1398:        struct vnode *vp;
1.2       mycroft  1399:        struct timespec *access;
                   1400:        struct timespec *modify;
1.22      perseant 1401:        int flags;
1.1       cgd      1402: {
                   1403:        struct vop_update_args a;
                   1404:        a.a_desc = VDESC(vop_update);
                   1405:        a.a_vp = vp;
                   1406:        a.a_access = access;
                   1407:        a.a_modify = modify;
1.22      perseant 1408:        a.a_flags = flags;
1.1       cgd      1409:        return (VCALL(vp, VOFFSET(vop_update), &a));
                   1410: }
1.23      thorpej  1411: #endif
1.1       cgd      1412:
                   1413: struct vop_lease_args {
                   1414:        struct vnodeop_desc *a_desc;
                   1415:        struct vnode *a_vp;
                   1416:        struct proc *a_p;
                   1417:        struct ucred *a_cred;
                   1418:        int a_flag;
                   1419: };
                   1420: extern struct vnodeop_desc vop_lease_desc;
1.23      thorpej  1421: #ifndef VNODE_OP_NOINLINE
                   1422: static __inline
                   1423: #endif
                   1424: int VOP_LEASE(struct vnode *, struct proc *, struct ucred *, int)
                   1425: #ifndef VNODE_OP_NOINLINE
                   1426: __attribute__((__unused__))
                   1427: #endif
                   1428: ;
                   1429: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1430: static __inline int VOP_LEASE(vp, p, cred, flag)
                   1431:        struct vnode *vp;
                   1432:        struct proc *p;
                   1433:        struct ucred *cred;
                   1434:        int flag;
                   1435: {
                   1436:        struct vop_lease_args a;
                   1437:        a.a_desc = VDESC(vop_lease);
                   1438:        a.a_vp = vp;
                   1439:        a.a_p = p;
                   1440:        a.a_cred = cred;
                   1441:        a.a_flag = flag;
                   1442:        return (VCALL(vp, VOFFSET(vop_lease), &a));
                   1443: }
1.23      thorpej  1444: #endif
1.1       cgd      1445:
                   1446: struct vop_whiteout_args {
                   1447:        struct vnodeop_desc *a_desc;
                   1448:        struct vnode *a_dvp;
                   1449:        struct componentname *a_cnp;
                   1450:        int a_flags;
                   1451: };
                   1452: extern struct vnodeop_desc vop_whiteout_desc;
1.23      thorpej  1453: #ifndef VNODE_OP_NOINLINE
                   1454: static __inline
                   1455: #endif
                   1456: int VOP_WHITEOUT(struct vnode *, struct componentname *, int)
                   1457: #ifndef VNODE_OP_NOINLINE
                   1458: __attribute__((__unused__))
                   1459: #endif
                   1460: ;
                   1461: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1462: static __inline int VOP_WHITEOUT(dvp, cnp, flags)
                   1463:        struct vnode *dvp;
                   1464:        struct componentname *cnp;
                   1465:        int flags;
                   1466: {
                   1467:        struct vop_whiteout_args a;
                   1468:        a.a_desc = VDESC(vop_whiteout);
                   1469:        a.a_dvp = dvp;
                   1470:        a.a_cnp = cnp;
                   1471:        a.a_flags = flags;
                   1472:        return (VCALL(dvp, VOFFSET(vop_whiteout), &a));
                   1473: }
1.23      thorpej  1474: #endif
1.1       cgd      1475:
                   1476: /* Special cases: */
                   1477: #include <sys/buf.h>
                   1478:
                   1479: struct vop_strategy_args {
                   1480:        struct vnodeop_desc *a_desc;
                   1481:        struct buf *a_bp;
                   1482: };
                   1483: extern struct vnodeop_desc vop_strategy_desc;
1.23      thorpej  1484: #ifndef VNODE_OP_NOINLINE
                   1485: static __inline
                   1486: #endif
                   1487: int VOP_STRATEGY(struct buf *)
                   1488: #ifndef VNODE_OP_NOINLINE
                   1489: __attribute__((__unused__))
                   1490: #endif
                   1491: ;
                   1492: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1493: static __inline int VOP_STRATEGY(bp)
                   1494:        struct buf *bp;
                   1495: {
                   1496:        struct vop_strategy_args a;
                   1497:        a.a_desc = VDESC(vop_strategy);
                   1498:        a.a_bp = bp;
                   1499:        return (VCALL(bp->b_vp, VOFFSET(vop_strategy), &a));
                   1500: }
1.23      thorpej  1501: #endif
1.1       cgd      1502:
                   1503: struct vop_bwrite_args {
                   1504:        struct vnodeop_desc *a_desc;
                   1505:        struct buf *a_bp;
                   1506: };
                   1507: extern struct vnodeop_desc vop_bwrite_desc;
1.23      thorpej  1508: #ifndef VNODE_OP_NOINLINE
                   1509: static __inline
                   1510: #endif
                   1511: int VOP_BWRITE(struct buf *)
                   1512: #ifndef VNODE_OP_NOINLINE
                   1513: __attribute__((__unused__))
                   1514: #endif
                   1515: ;
                   1516: #ifndef VNODE_OP_NOINLINE
1.1       cgd      1517: static __inline int VOP_BWRITE(bp)
                   1518:        struct buf *bp;
                   1519: {
                   1520:        struct vop_bwrite_args a;
                   1521:        a.a_desc = VDESC(vop_bwrite);
                   1522:        a.a_bp = bp;
                   1523:        return (VCALL(bp->b_vp, VOFFSET(vop_bwrite), &a));
                   1524: }
1.23      thorpej  1525: #endif
1.1       cgd      1526:
                   1527: /* End of special cases. */
1.4       mikel    1528:
                   1529: #endif /* !_SYS_VNODE_IF_H_ */

CVSweb <webmaster@jp.NetBSD.org>