Annotation of kernel/bsd/sys/vnode_if.h, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.