Annotation of sys/kern/vnode_if.c, Revision 1.1
1.1 ! nbrk 1: /*
! 2: * Warning: This file is generated automatically.
! 3: * (Modifications made here may easily be lost!)
! 4: *
! 5: * Created from the file:
! 6: * OpenBSD: vnode_if.src,v 1.32 2007/01/16 17:52:18 thib Exp
! 7: * by the script:
! 8: * OpenBSD: vnode_if.sh,v 1.15 2006/01/02 05:05:11 jsg Exp
! 9: */
! 10:
! 11: /*
! 12: * Copyright (c) 1992, 1993
! 13: * The Regents of the University of California. All rights reserved.
! 14: *
! 15: * Redistribution and use in source and binary forms, with or without
! 16: * modification, are permitted provided that the following conditions
! 17: * are met:
! 18: * 1. Redistributions of source code must retain the above copyright
! 19: * notice, this list of conditions and the following disclaimer.
! 20: * 2. Redistributions in binary form must reproduce the above copyright
! 21: * notice, this list of conditions and the following disclaimer in the
! 22: * documentation and/or other materials provided with the distribution.
! 23: * 3. Neither the name of the University nor the names of its contributors
! 24: * may be used to endorse or promote products derived from this software
! 25: * without specific prior written permission.
! 26: *
! 27: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND
! 28: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! 29: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
! 30: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
! 31: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
! 32: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
! 33: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 34: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
! 35: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 36: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 37: * SUCH DAMAGE.
! 38: */
! 39:
! 40: #include <sys/param.h>
! 41: #include <sys/mount.h>
! 42: #include <sys/vnode.h>
! 43:
! 44: struct vnodeop_desc vop_default_desc = {
! 45: 0,
! 46: "default",
! 47: 0,
! 48: NULL,
! 49: VDESC_NO_OFFSET,
! 50: VDESC_NO_OFFSET,
! 51: VDESC_NO_OFFSET,
! 52: VDESC_NO_OFFSET,
! 53: NULL,
! 54: };
! 55:
! 56:
! 57: int vop_islocked_vp_offsets[] = {
! 58: VOPARG_OFFSETOF(struct vop_islocked_args,a_vp),
! 59: VDESC_NO_OFFSET
! 60: };
! 61: struct vnodeop_desc vop_islocked_desc = {
! 62: 0,
! 63: "vop_islocked",
! 64: 0,
! 65: vop_islocked_vp_offsets,
! 66: VDESC_NO_OFFSET,
! 67: VDESC_NO_OFFSET,
! 68: VDESC_NO_OFFSET,
! 69: VDESC_NO_OFFSET,
! 70: NULL,
! 71: };
! 72:
! 73: int VOP_ISLOCKED(struct vnode *vp)
! 74: {
! 75: struct vop_islocked_args a;
! 76: a.a_desc = VDESC(vop_islocked);
! 77: a.a_vp = vp;
! 78: return (VCALL(vp, VOFFSET(vop_islocked), &a));
! 79: }
! 80:
! 81: int vop_lookup_vp_offsets[] = {
! 82: VOPARG_OFFSETOF(struct vop_lookup_args,a_dvp),
! 83: VDESC_NO_OFFSET
! 84: };
! 85: struct vnodeop_desc vop_lookup_desc = {
! 86: 0,
! 87: "vop_lookup",
! 88: 0,
! 89: vop_lookup_vp_offsets,
! 90: VOPARG_OFFSETOF(struct vop_lookup_args, a_vpp),
! 91: VDESC_NO_OFFSET,
! 92: VDESC_NO_OFFSET,
! 93: VOPARG_OFFSETOF(struct vop_lookup_args, a_cnp),
! 94: NULL,
! 95: };
! 96:
! 97: int VOP_LOOKUP(struct vnode *dvp, struct vnode **vpp,
! 98: struct componentname *cnp)
! 99: {
! 100: struct vop_lookup_args a;
! 101: a.a_desc = VDESC(vop_lookup);
! 102: a.a_dvp = dvp;
! 103: a.a_vpp = vpp;
! 104: a.a_cnp = cnp;
! 105: return (VCALL(dvp, VOFFSET(vop_lookup), &a));
! 106: }
! 107:
! 108: int vop_create_vp_offsets[] = {
! 109: VOPARG_OFFSETOF(struct vop_create_args,a_dvp),
! 110: VDESC_NO_OFFSET
! 111: };
! 112: struct vnodeop_desc vop_create_desc = {
! 113: 0,
! 114: "vop_create",
! 115: 0 | VDESC_VP0_WILLPUT,
! 116: vop_create_vp_offsets,
! 117: VOPARG_OFFSETOF(struct vop_create_args, a_vpp),
! 118: VDESC_NO_OFFSET,
! 119: VDESC_NO_OFFSET,
! 120: VOPARG_OFFSETOF(struct vop_create_args, a_cnp),
! 121: NULL,
! 122: };
! 123:
! 124: int VOP_CREATE(struct vnode *dvp, struct vnode **vpp,
! 125: struct componentname *cnp, struct vattr *vap)
! 126: {
! 127: struct vop_create_args a;
! 128: a.a_desc = VDESC(vop_create);
! 129: a.a_dvp = dvp;
! 130: #ifdef VFSDEBUG
! 131: if ((dvp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(dvp))
! 132: panic("vop_create: dvp");
! 133: #endif
! 134: a.a_vpp = vpp;
! 135: a.a_cnp = cnp;
! 136: a.a_vap = vap;
! 137: return (VCALL(dvp, VOFFSET(vop_create), &a));
! 138: }
! 139:
! 140: int vop_mknod_vp_offsets[] = {
! 141: VOPARG_OFFSETOF(struct vop_mknod_args,a_dvp),
! 142: VDESC_NO_OFFSET
! 143: };
! 144: struct vnodeop_desc vop_mknod_desc = {
! 145: 0,
! 146: "vop_mknod",
! 147: 0 | VDESC_VP0_WILLPUT | VDESC_VPP_WILLRELE,
! 148: vop_mknod_vp_offsets,
! 149: VOPARG_OFFSETOF(struct vop_mknod_args, a_vpp),
! 150: VDESC_NO_OFFSET,
! 151: VDESC_NO_OFFSET,
! 152: VOPARG_OFFSETOF(struct vop_mknod_args, a_cnp),
! 153: NULL,
! 154: };
! 155:
! 156: int VOP_MKNOD(struct vnode *dvp, struct vnode **vpp,
! 157: struct componentname *cnp, struct vattr *vap)
! 158: {
! 159: struct vop_mknod_args a;
! 160: a.a_desc = VDESC(vop_mknod);
! 161: a.a_dvp = dvp;
! 162: #ifdef VFSDEBUG
! 163: if ((dvp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(dvp))
! 164: panic("vop_mknod: dvp");
! 165: #endif
! 166: a.a_vpp = vpp;
! 167: a.a_cnp = cnp;
! 168: a.a_vap = vap;
! 169: return (VCALL(dvp, VOFFSET(vop_mknod), &a));
! 170: }
! 171:
! 172: int vop_open_vp_offsets[] = {
! 173: VOPARG_OFFSETOF(struct vop_open_args,a_vp),
! 174: VDESC_NO_OFFSET
! 175: };
! 176: struct vnodeop_desc vop_open_desc = {
! 177: 0,
! 178: "vop_open",
! 179: 0,
! 180: vop_open_vp_offsets,
! 181: VDESC_NO_OFFSET,
! 182: VOPARG_OFFSETOF(struct vop_open_args, a_cred),
! 183: VOPARG_OFFSETOF(struct vop_open_args, a_p),
! 184: VDESC_NO_OFFSET,
! 185: NULL,
! 186: };
! 187:
! 188: int VOP_OPEN(struct vnode *vp, int mode, struct ucred *cred, struct proc *p)
! 189: {
! 190: struct vop_open_args a;
! 191: a.a_desc = VDESC(vop_open);
! 192: a.a_vp = vp;
! 193: a.a_mode = mode;
! 194: a.a_cred = cred;
! 195: a.a_p = p;
! 196: return (VCALL(vp, VOFFSET(vop_open), &a));
! 197: }
! 198:
! 199: int vop_close_vp_offsets[] = {
! 200: VOPARG_OFFSETOF(struct vop_close_args,a_vp),
! 201: VDESC_NO_OFFSET
! 202: };
! 203: struct vnodeop_desc vop_close_desc = {
! 204: 0,
! 205: "vop_close",
! 206: 0,
! 207: vop_close_vp_offsets,
! 208: VDESC_NO_OFFSET,
! 209: VOPARG_OFFSETOF(struct vop_close_args, a_cred),
! 210: VOPARG_OFFSETOF(struct vop_close_args, a_p),
! 211: VDESC_NO_OFFSET,
! 212: NULL,
! 213: };
! 214:
! 215: int VOP_CLOSE(struct vnode *vp, int fflag, struct ucred *cred, struct proc *p)
! 216: {
! 217: struct vop_close_args a;
! 218: a.a_desc = VDESC(vop_close);
! 219: a.a_vp = vp;
! 220: #ifdef VFSDEBUG
! 221: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 222: panic("vop_close: vp");
! 223: #endif
! 224: a.a_fflag = fflag;
! 225: a.a_cred = cred;
! 226: a.a_p = p;
! 227: return (VCALL(vp, VOFFSET(vop_close), &a));
! 228: }
! 229:
! 230: int vop_access_vp_offsets[] = {
! 231: VOPARG_OFFSETOF(struct vop_access_args,a_vp),
! 232: VDESC_NO_OFFSET
! 233: };
! 234: struct vnodeop_desc vop_access_desc = {
! 235: 0,
! 236: "vop_access",
! 237: 0,
! 238: vop_access_vp_offsets,
! 239: VDESC_NO_OFFSET,
! 240: VOPARG_OFFSETOF(struct vop_access_args, a_cred),
! 241: VOPARG_OFFSETOF(struct vop_access_args, a_p),
! 242: VDESC_NO_OFFSET,
! 243: NULL,
! 244: };
! 245:
! 246: int VOP_ACCESS(struct vnode *vp, int mode, struct ucred *cred, struct proc *p)
! 247: {
! 248: struct vop_access_args a;
! 249: a.a_desc = VDESC(vop_access);
! 250: a.a_vp = vp;
! 251: #ifdef VFSDEBUG
! 252: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 253: panic("vop_access: vp");
! 254: #endif
! 255: a.a_mode = mode;
! 256: a.a_cred = cred;
! 257: a.a_p = p;
! 258: return (VCALL(vp, VOFFSET(vop_access), &a));
! 259: }
! 260:
! 261: int vop_getattr_vp_offsets[] = {
! 262: VOPARG_OFFSETOF(struct vop_getattr_args,a_vp),
! 263: VDESC_NO_OFFSET
! 264: };
! 265: struct vnodeop_desc vop_getattr_desc = {
! 266: 0,
! 267: "vop_getattr",
! 268: 0,
! 269: vop_getattr_vp_offsets,
! 270: VDESC_NO_OFFSET,
! 271: VOPARG_OFFSETOF(struct vop_getattr_args, a_cred),
! 272: VOPARG_OFFSETOF(struct vop_getattr_args, a_p),
! 273: VDESC_NO_OFFSET,
! 274: NULL,
! 275: };
! 276:
! 277: int VOP_GETATTR(struct vnode *vp, struct vattr *vap, struct ucred *cred,
! 278: struct proc *p)
! 279: {
! 280: struct vop_getattr_args a;
! 281: a.a_desc = VDESC(vop_getattr);
! 282: a.a_vp = vp;
! 283: a.a_vap = vap;
! 284: a.a_cred = cred;
! 285: a.a_p = p;
! 286: return (VCALL(vp, VOFFSET(vop_getattr), &a));
! 287: }
! 288:
! 289: int vop_setattr_vp_offsets[] = {
! 290: VOPARG_OFFSETOF(struct vop_setattr_args,a_vp),
! 291: VDESC_NO_OFFSET
! 292: };
! 293: struct vnodeop_desc vop_setattr_desc = {
! 294: 0,
! 295: "vop_setattr",
! 296: 0,
! 297: vop_setattr_vp_offsets,
! 298: VDESC_NO_OFFSET,
! 299: VOPARG_OFFSETOF(struct vop_setattr_args, a_cred),
! 300: VOPARG_OFFSETOF(struct vop_setattr_args, a_p),
! 301: VDESC_NO_OFFSET,
! 302: NULL,
! 303: };
! 304:
! 305: int VOP_SETATTR(struct vnode *vp, struct vattr *vap, struct ucred *cred,
! 306: struct proc *p)
! 307: {
! 308: struct vop_setattr_args a;
! 309: a.a_desc = VDESC(vop_setattr);
! 310: a.a_vp = vp;
! 311: #ifdef VFSDEBUG
! 312: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 313: panic("vop_setattr: vp");
! 314: #endif
! 315: a.a_vap = vap;
! 316: a.a_cred = cred;
! 317: a.a_p = p;
! 318: return (VCALL(vp, VOFFSET(vop_setattr), &a));
! 319: }
! 320:
! 321: int vop_read_vp_offsets[] = {
! 322: VOPARG_OFFSETOF(struct vop_read_args,a_vp),
! 323: VDESC_NO_OFFSET
! 324: };
! 325: struct vnodeop_desc vop_read_desc = {
! 326: 0,
! 327: "vop_read",
! 328: 0,
! 329: vop_read_vp_offsets,
! 330: VDESC_NO_OFFSET,
! 331: VOPARG_OFFSETOF(struct vop_read_args, a_cred),
! 332: VDESC_NO_OFFSET,
! 333: VDESC_NO_OFFSET,
! 334: NULL,
! 335: };
! 336:
! 337: int VOP_READ(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred)
! 338: {
! 339: struct vop_read_args a;
! 340: a.a_desc = VDESC(vop_read);
! 341: a.a_vp = vp;
! 342: #ifdef VFSDEBUG
! 343: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 344: panic("vop_read: vp");
! 345: #endif
! 346: a.a_uio = uio;
! 347: a.a_ioflag = ioflag;
! 348: a.a_cred = cred;
! 349: return (VCALL(vp, VOFFSET(vop_read), &a));
! 350: }
! 351:
! 352: int vop_write_vp_offsets[] = {
! 353: VOPARG_OFFSETOF(struct vop_write_args,a_vp),
! 354: VDESC_NO_OFFSET
! 355: };
! 356: struct vnodeop_desc vop_write_desc = {
! 357: 0,
! 358: "vop_write",
! 359: 0,
! 360: vop_write_vp_offsets,
! 361: VDESC_NO_OFFSET,
! 362: VOPARG_OFFSETOF(struct vop_write_args, a_cred),
! 363: VDESC_NO_OFFSET,
! 364: VDESC_NO_OFFSET,
! 365: NULL,
! 366: };
! 367:
! 368: int VOP_WRITE(struct vnode *vp, struct uio *uio, int ioflag,
! 369: struct ucred *cred)
! 370: {
! 371: struct vop_write_args a;
! 372: a.a_desc = VDESC(vop_write);
! 373: a.a_vp = vp;
! 374: #ifdef VFSDEBUG
! 375: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 376: panic("vop_write: vp");
! 377: #endif
! 378: a.a_uio = uio;
! 379: a.a_ioflag = ioflag;
! 380: a.a_cred = cred;
! 381: return (VCALL(vp, VOFFSET(vop_write), &a));
! 382: }
! 383:
! 384: int vop_ioctl_vp_offsets[] = {
! 385: VOPARG_OFFSETOF(struct vop_ioctl_args,a_vp),
! 386: VDESC_NO_OFFSET
! 387: };
! 388: struct vnodeop_desc vop_ioctl_desc = {
! 389: 0,
! 390: "vop_ioctl",
! 391: 0,
! 392: vop_ioctl_vp_offsets,
! 393: VDESC_NO_OFFSET,
! 394: VOPARG_OFFSETOF(struct vop_ioctl_args, a_cred),
! 395: VOPARG_OFFSETOF(struct vop_ioctl_args, a_p),
! 396: VDESC_NO_OFFSET,
! 397: NULL,
! 398: };
! 399:
! 400: int VOP_IOCTL(struct vnode *vp, u_long command, void *data, int fflag,
! 401: struct ucred *cred, struct proc *p)
! 402: {
! 403: struct vop_ioctl_args a;
! 404: a.a_desc = VDESC(vop_ioctl);
! 405: a.a_vp = vp;
! 406: a.a_command = command;
! 407: a.a_data = data;
! 408: a.a_fflag = fflag;
! 409: a.a_cred = cred;
! 410: a.a_p = p;
! 411: return (VCALL(vp, VOFFSET(vop_ioctl), &a));
! 412: }
! 413:
! 414: int vop_poll_vp_offsets[] = {
! 415: VOPARG_OFFSETOF(struct vop_poll_args,a_vp),
! 416: VDESC_NO_OFFSET
! 417: };
! 418: struct vnodeop_desc vop_poll_desc = {
! 419: 0,
! 420: "vop_poll",
! 421: 0,
! 422: vop_poll_vp_offsets,
! 423: VDESC_NO_OFFSET,
! 424: VDESC_NO_OFFSET,
! 425: VOPARG_OFFSETOF(struct vop_poll_args, a_p),
! 426: VDESC_NO_OFFSET,
! 427: NULL,
! 428: };
! 429:
! 430: int VOP_POLL(struct vnode *vp, int events, struct proc *p)
! 431: {
! 432: struct vop_poll_args a;
! 433: a.a_desc = VDESC(vop_poll);
! 434: a.a_vp = vp;
! 435: a.a_events = events;
! 436: a.a_p = p;
! 437: return (VCALL(vp, VOFFSET(vop_poll), &a));
! 438: }
! 439:
! 440: int vop_kqfilter_vp_offsets[] = {
! 441: VOPARG_OFFSETOF(struct vop_kqfilter_args,a_vp),
! 442: VDESC_NO_OFFSET
! 443: };
! 444: struct vnodeop_desc vop_kqfilter_desc = {
! 445: 0,
! 446: "vop_kqfilter",
! 447: 0,
! 448: vop_kqfilter_vp_offsets,
! 449: VDESC_NO_OFFSET,
! 450: VDESC_NO_OFFSET,
! 451: VDESC_NO_OFFSET,
! 452: VDESC_NO_OFFSET,
! 453: NULL,
! 454: };
! 455:
! 456: int VOP_KQFILTER(struct vnode *vp, struct knote *kn)
! 457: {
! 458: struct vop_kqfilter_args a;
! 459: a.a_desc = VDESC(vop_kqfilter);
! 460: a.a_vp = vp;
! 461: a.a_kn = kn;
! 462: return (VCALL(vp, VOFFSET(vop_kqfilter), &a));
! 463: }
! 464:
! 465: int vop_revoke_vp_offsets[] = {
! 466: VOPARG_OFFSETOF(struct vop_revoke_args,a_vp),
! 467: VDESC_NO_OFFSET
! 468: };
! 469: struct vnodeop_desc vop_revoke_desc = {
! 470: 0,
! 471: "vop_revoke",
! 472: 0,
! 473: vop_revoke_vp_offsets,
! 474: VDESC_NO_OFFSET,
! 475: VDESC_NO_OFFSET,
! 476: VDESC_NO_OFFSET,
! 477: VDESC_NO_OFFSET,
! 478: NULL,
! 479: };
! 480:
! 481: int VOP_REVOKE(struct vnode *vp, int flags)
! 482: {
! 483: struct vop_revoke_args a;
! 484: a.a_desc = VDESC(vop_revoke);
! 485: a.a_vp = vp;
! 486: a.a_flags = flags;
! 487: return (VCALL(vp, VOFFSET(vop_revoke), &a));
! 488: }
! 489:
! 490: int vop_fsync_vp_offsets[] = {
! 491: VOPARG_OFFSETOF(struct vop_fsync_args,a_vp),
! 492: VDESC_NO_OFFSET
! 493: };
! 494: struct vnodeop_desc vop_fsync_desc = {
! 495: 0,
! 496: "vop_fsync",
! 497: 0,
! 498: vop_fsync_vp_offsets,
! 499: VDESC_NO_OFFSET,
! 500: VOPARG_OFFSETOF(struct vop_fsync_args, a_cred),
! 501: VOPARG_OFFSETOF(struct vop_fsync_args, a_p),
! 502: VDESC_NO_OFFSET,
! 503: NULL,
! 504: };
! 505:
! 506: int VOP_FSYNC(struct vnode *vp, struct ucred *cred, int waitfor,
! 507: struct proc *p)
! 508: {
! 509: struct vop_fsync_args a;
! 510: a.a_desc = VDESC(vop_fsync);
! 511: a.a_vp = vp;
! 512: #ifdef VFSDEBUG
! 513: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 514: panic("vop_fsync: vp");
! 515: #endif
! 516: a.a_cred = cred;
! 517: a.a_waitfor = waitfor;
! 518: a.a_p = p;
! 519: return (VCALL(vp, VOFFSET(vop_fsync), &a));
! 520: }
! 521:
! 522: int vop_remove_vp_offsets[] = {
! 523: VOPARG_OFFSETOF(struct vop_remove_args,a_dvp),
! 524: VOPARG_OFFSETOF(struct vop_remove_args,a_vp),
! 525: VDESC_NO_OFFSET
! 526: };
! 527: struct vnodeop_desc vop_remove_desc = {
! 528: 0,
! 529: "vop_remove",
! 530: 0 | VDESC_VP0_WILLPUT | VDESC_VP1_WILLPUT,
! 531: vop_remove_vp_offsets,
! 532: VDESC_NO_OFFSET,
! 533: VDESC_NO_OFFSET,
! 534: VDESC_NO_OFFSET,
! 535: VOPARG_OFFSETOF(struct vop_remove_args, a_cnp),
! 536: NULL,
! 537: };
! 538:
! 539: int VOP_REMOVE(struct vnode *dvp, struct vnode *vp, struct componentname *cnp)
! 540: {
! 541: struct vop_remove_args a;
! 542: a.a_desc = VDESC(vop_remove);
! 543: a.a_dvp = dvp;
! 544: #ifdef VFSDEBUG
! 545: if ((dvp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(dvp))
! 546: panic("vop_remove: dvp");
! 547: #endif
! 548: a.a_vp = vp;
! 549: #ifdef VFSDEBUG
! 550: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 551: panic("vop_remove: vp");
! 552: #endif
! 553: a.a_cnp = cnp;
! 554: return (VCALL(dvp, VOFFSET(vop_remove), &a));
! 555: }
! 556:
! 557: int vop_link_vp_offsets[] = {
! 558: VOPARG_OFFSETOF(struct vop_link_args,a_dvp),
! 559: VOPARG_OFFSETOF(struct vop_link_args,a_vp),
! 560: VDESC_NO_OFFSET
! 561: };
! 562: struct vnodeop_desc vop_link_desc = {
! 563: 0,
! 564: "vop_link",
! 565: 0 | VDESC_VP0_WILLPUT,
! 566: vop_link_vp_offsets,
! 567: VDESC_NO_OFFSET,
! 568: VDESC_NO_OFFSET,
! 569: VDESC_NO_OFFSET,
! 570: VOPARG_OFFSETOF(struct vop_link_args, a_cnp),
! 571: NULL,
! 572: };
! 573:
! 574: int VOP_LINK(struct vnode *dvp, struct vnode *vp, struct componentname *cnp)
! 575: {
! 576: struct vop_link_args a;
! 577: a.a_desc = VDESC(vop_link);
! 578: a.a_dvp = dvp;
! 579: #ifdef VFSDEBUG
! 580: if ((dvp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(dvp))
! 581: panic("vop_link: dvp");
! 582: #endif
! 583: a.a_vp = vp;
! 584: a.a_cnp = cnp;
! 585: return (VCALL(dvp, VOFFSET(vop_link), &a));
! 586: }
! 587:
! 588: int vop_rename_vp_offsets[] = {
! 589: VOPARG_OFFSETOF(struct vop_rename_args,a_fdvp),
! 590: VOPARG_OFFSETOF(struct vop_rename_args,a_fvp),
! 591: VOPARG_OFFSETOF(struct vop_rename_args,a_tdvp),
! 592: VOPARG_OFFSETOF(struct vop_rename_args,a_tvp),
! 593: VDESC_NO_OFFSET
! 594: };
! 595: struct vnodeop_desc vop_rename_desc = {
! 596: 0,
! 597: "vop_rename",
! 598: 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLPUT | VDESC_VP3_WILLRELE,
! 599: vop_rename_vp_offsets,
! 600: VDESC_NO_OFFSET,
! 601: VDESC_NO_OFFSET,
! 602: VDESC_NO_OFFSET,
! 603: VOPARG_OFFSETOF(struct vop_rename_args, a_fcnp),
! 604: NULL,
! 605: };
! 606:
! 607: int VOP_RENAME(struct vnode *fdvp, struct vnode *fvp,
! 608: struct componentname *fcnp, struct vnode *tdvp, struct vnode *tvp,
! 609: struct componentname *tcnp)
! 610: {
! 611: struct vop_rename_args a;
! 612: a.a_desc = VDESC(vop_rename);
! 613: a.a_fdvp = fdvp;
! 614: a.a_fvp = fvp;
! 615: a.a_fcnp = fcnp;
! 616: a.a_tdvp = tdvp;
! 617: #ifdef VFSDEBUG
! 618: if ((tdvp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(tdvp))
! 619: panic("vop_rename: tdvp");
! 620: #endif
! 621: a.a_tvp = tvp;
! 622: a.a_tcnp = tcnp;
! 623: return (VCALL(fdvp, VOFFSET(vop_rename), &a));
! 624: }
! 625:
! 626: int vop_mkdir_vp_offsets[] = {
! 627: VOPARG_OFFSETOF(struct vop_mkdir_args,a_dvp),
! 628: VDESC_NO_OFFSET
! 629: };
! 630: struct vnodeop_desc vop_mkdir_desc = {
! 631: 0,
! 632: "vop_mkdir",
! 633: 0 | VDESC_VP0_WILLPUT,
! 634: vop_mkdir_vp_offsets,
! 635: VOPARG_OFFSETOF(struct vop_mkdir_args, a_vpp),
! 636: VDESC_NO_OFFSET,
! 637: VDESC_NO_OFFSET,
! 638: VOPARG_OFFSETOF(struct vop_mkdir_args, a_cnp),
! 639: NULL,
! 640: };
! 641:
! 642: int VOP_MKDIR(struct vnode *dvp, struct vnode **vpp,
! 643: struct componentname *cnp, struct vattr *vap)
! 644: {
! 645: struct vop_mkdir_args a;
! 646: a.a_desc = VDESC(vop_mkdir);
! 647: a.a_dvp = dvp;
! 648: #ifdef VFSDEBUG
! 649: if ((dvp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(dvp))
! 650: panic("vop_mkdir: dvp");
! 651: #endif
! 652: a.a_vpp = vpp;
! 653: a.a_cnp = cnp;
! 654: a.a_vap = vap;
! 655: return (VCALL(dvp, VOFFSET(vop_mkdir), &a));
! 656: }
! 657:
! 658: int vop_rmdir_vp_offsets[] = {
! 659: VOPARG_OFFSETOF(struct vop_rmdir_args,a_dvp),
! 660: VOPARG_OFFSETOF(struct vop_rmdir_args,a_vp),
! 661: VDESC_NO_OFFSET
! 662: };
! 663: struct vnodeop_desc vop_rmdir_desc = {
! 664: 0,
! 665: "vop_rmdir",
! 666: 0 | VDESC_VP0_WILLPUT | VDESC_VP1_WILLPUT,
! 667: vop_rmdir_vp_offsets,
! 668: VDESC_NO_OFFSET,
! 669: VDESC_NO_OFFSET,
! 670: VDESC_NO_OFFSET,
! 671: VOPARG_OFFSETOF(struct vop_rmdir_args, a_cnp),
! 672: NULL,
! 673: };
! 674:
! 675: int VOP_RMDIR(struct vnode *dvp, struct vnode *vp, struct componentname *cnp)
! 676: {
! 677: struct vop_rmdir_args a;
! 678: a.a_desc = VDESC(vop_rmdir);
! 679: a.a_dvp = dvp;
! 680: #ifdef VFSDEBUG
! 681: if ((dvp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(dvp))
! 682: panic("vop_rmdir: dvp");
! 683: #endif
! 684: a.a_vp = vp;
! 685: #ifdef VFSDEBUG
! 686: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 687: panic("vop_rmdir: vp");
! 688: #endif
! 689: a.a_cnp = cnp;
! 690: return (VCALL(dvp, VOFFSET(vop_rmdir), &a));
! 691: }
! 692:
! 693: int vop_symlink_vp_offsets[] = {
! 694: VOPARG_OFFSETOF(struct vop_symlink_args,a_dvp),
! 695: VDESC_NO_OFFSET
! 696: };
! 697: struct vnodeop_desc vop_symlink_desc = {
! 698: 0,
! 699: "vop_symlink",
! 700: 0 | VDESC_VP0_WILLPUT | VDESC_VPP_WILLRELE,
! 701: vop_symlink_vp_offsets,
! 702: VOPARG_OFFSETOF(struct vop_symlink_args, a_vpp),
! 703: VDESC_NO_OFFSET,
! 704: VDESC_NO_OFFSET,
! 705: VOPARG_OFFSETOF(struct vop_symlink_args, a_cnp),
! 706: NULL,
! 707: };
! 708:
! 709: int VOP_SYMLINK(struct vnode *dvp, struct vnode **vpp,
! 710: struct componentname *cnp, struct vattr *vap, char *target)
! 711: {
! 712: struct vop_symlink_args a;
! 713: a.a_desc = VDESC(vop_symlink);
! 714: a.a_dvp = dvp;
! 715: #ifdef VFSDEBUG
! 716: if ((dvp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(dvp))
! 717: panic("vop_symlink: dvp");
! 718: #endif
! 719: a.a_vpp = vpp;
! 720: a.a_cnp = cnp;
! 721: a.a_vap = vap;
! 722: a.a_target = target;
! 723: return (VCALL(dvp, VOFFSET(vop_symlink), &a));
! 724: }
! 725:
! 726: int vop_readdir_vp_offsets[] = {
! 727: VOPARG_OFFSETOF(struct vop_readdir_args,a_vp),
! 728: VDESC_NO_OFFSET
! 729: };
! 730: struct vnodeop_desc vop_readdir_desc = {
! 731: 0,
! 732: "vop_readdir",
! 733: 0,
! 734: vop_readdir_vp_offsets,
! 735: VDESC_NO_OFFSET,
! 736: VOPARG_OFFSETOF(struct vop_readdir_args, a_cred),
! 737: VDESC_NO_OFFSET,
! 738: VDESC_NO_OFFSET,
! 739: NULL,
! 740: };
! 741:
! 742: int VOP_READDIR(struct vnode *vp, struct uio *uio, struct ucred *cred,
! 743: int *eofflag, int *ncookies, u_long **cookies)
! 744: {
! 745: struct vop_readdir_args a;
! 746: a.a_desc = VDESC(vop_readdir);
! 747: a.a_vp = vp;
! 748: #ifdef VFSDEBUG
! 749: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 750: panic("vop_readdir: vp");
! 751: #endif
! 752: a.a_uio = uio;
! 753: a.a_cred = cred;
! 754: a.a_eofflag = eofflag;
! 755: a.a_ncookies = ncookies;
! 756: a.a_cookies = cookies;
! 757: return (VCALL(vp, VOFFSET(vop_readdir), &a));
! 758: }
! 759:
! 760: int vop_readlink_vp_offsets[] = {
! 761: VOPARG_OFFSETOF(struct vop_readlink_args,a_vp),
! 762: VDESC_NO_OFFSET
! 763: };
! 764: struct vnodeop_desc vop_readlink_desc = {
! 765: 0,
! 766: "vop_readlink",
! 767: 0,
! 768: vop_readlink_vp_offsets,
! 769: VDESC_NO_OFFSET,
! 770: VOPARG_OFFSETOF(struct vop_readlink_args, a_cred),
! 771: VDESC_NO_OFFSET,
! 772: VDESC_NO_OFFSET,
! 773: NULL,
! 774: };
! 775:
! 776: int VOP_READLINK(struct vnode *vp, struct uio *uio, struct ucred *cred)
! 777: {
! 778: struct vop_readlink_args a;
! 779: a.a_desc = VDESC(vop_readlink);
! 780: a.a_vp = vp;
! 781: #ifdef VFSDEBUG
! 782: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 783: panic("vop_readlink: vp");
! 784: #endif
! 785: a.a_uio = uio;
! 786: a.a_cred = cred;
! 787: return (VCALL(vp, VOFFSET(vop_readlink), &a));
! 788: }
! 789:
! 790: int vop_abortop_vp_offsets[] = {
! 791: VOPARG_OFFSETOF(struct vop_abortop_args,a_dvp),
! 792: VDESC_NO_OFFSET
! 793: };
! 794: struct vnodeop_desc vop_abortop_desc = {
! 795: 0,
! 796: "vop_abortop",
! 797: 0,
! 798: vop_abortop_vp_offsets,
! 799: VDESC_NO_OFFSET,
! 800: VDESC_NO_OFFSET,
! 801: VDESC_NO_OFFSET,
! 802: VOPARG_OFFSETOF(struct vop_abortop_args, a_cnp),
! 803: NULL,
! 804: };
! 805:
! 806: int VOP_ABORTOP(struct vnode *dvp, struct componentname *cnp)
! 807: {
! 808: struct vop_abortop_args a;
! 809: a.a_desc = VDESC(vop_abortop);
! 810: a.a_dvp = dvp;
! 811: a.a_cnp = cnp;
! 812: return (VCALL(dvp, VOFFSET(vop_abortop), &a));
! 813: }
! 814:
! 815: int vop_inactive_vp_offsets[] = {
! 816: VOPARG_OFFSETOF(struct vop_inactive_args,a_vp),
! 817: VDESC_NO_OFFSET
! 818: };
! 819: struct vnodeop_desc vop_inactive_desc = {
! 820: 0,
! 821: "vop_inactive",
! 822: 0 | VDESC_VP0_WILLUNLOCK,
! 823: vop_inactive_vp_offsets,
! 824: VDESC_NO_OFFSET,
! 825: VDESC_NO_OFFSET,
! 826: VOPARG_OFFSETOF(struct vop_inactive_args, a_p),
! 827: VDESC_NO_OFFSET,
! 828: NULL,
! 829: };
! 830:
! 831: int VOP_INACTIVE(struct vnode *vp, struct proc *p)
! 832: {
! 833: struct vop_inactive_args a;
! 834: a.a_desc = VDESC(vop_inactive);
! 835: a.a_vp = vp;
! 836: #ifdef VFSDEBUG
! 837: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 838: panic("vop_inactive: vp");
! 839: #endif
! 840: a.a_p = p;
! 841: return (VCALL(vp, VOFFSET(vop_inactive), &a));
! 842: }
! 843:
! 844: int vop_reclaim_vp_offsets[] = {
! 845: VOPARG_OFFSETOF(struct vop_reclaim_args,a_vp),
! 846: VDESC_NO_OFFSET
! 847: };
! 848: struct vnodeop_desc vop_reclaim_desc = {
! 849: 0,
! 850: "vop_reclaim",
! 851: 0,
! 852: vop_reclaim_vp_offsets,
! 853: VDESC_NO_OFFSET,
! 854: VDESC_NO_OFFSET,
! 855: VOPARG_OFFSETOF(struct vop_reclaim_args, a_p),
! 856: VDESC_NO_OFFSET,
! 857: NULL,
! 858: };
! 859:
! 860: int VOP_RECLAIM(struct vnode *vp, struct proc *p)
! 861: {
! 862: struct vop_reclaim_args a;
! 863: a.a_desc = VDESC(vop_reclaim);
! 864: a.a_vp = vp;
! 865: a.a_p = p;
! 866: return (VCALL(vp, VOFFSET(vop_reclaim), &a));
! 867: }
! 868:
! 869: int vop_lock_vp_offsets[] = {
! 870: VOPARG_OFFSETOF(struct vop_lock_args,a_vp),
! 871: VDESC_NO_OFFSET
! 872: };
! 873: struct vnodeop_desc vop_lock_desc = {
! 874: 0,
! 875: "vop_lock",
! 876: 0,
! 877: vop_lock_vp_offsets,
! 878: VDESC_NO_OFFSET,
! 879: VDESC_NO_OFFSET,
! 880: VOPARG_OFFSETOF(struct vop_lock_args, a_p),
! 881: VDESC_NO_OFFSET,
! 882: NULL,
! 883: };
! 884:
! 885: int VOP_LOCK(struct vnode *vp, int flags, struct proc *p)
! 886: {
! 887: struct vop_lock_args a;
! 888: a.a_desc = VDESC(vop_lock);
! 889: a.a_vp = vp;
! 890: a.a_flags = flags;
! 891: a.a_p = p;
! 892: return (VCALL(vp, VOFFSET(vop_lock), &a));
! 893: }
! 894:
! 895: int vop_unlock_vp_offsets[] = {
! 896: VOPARG_OFFSETOF(struct vop_unlock_args,a_vp),
! 897: VDESC_NO_OFFSET
! 898: };
! 899: struct vnodeop_desc vop_unlock_desc = {
! 900: 0,
! 901: "vop_unlock",
! 902: 0,
! 903: vop_unlock_vp_offsets,
! 904: VDESC_NO_OFFSET,
! 905: VDESC_NO_OFFSET,
! 906: VOPARG_OFFSETOF(struct vop_unlock_args, a_p),
! 907: VDESC_NO_OFFSET,
! 908: NULL,
! 909: };
! 910:
! 911: int VOP_UNLOCK(struct vnode *vp, int flags, struct proc *p)
! 912: {
! 913: struct vop_unlock_args a;
! 914: a.a_desc = VDESC(vop_unlock);
! 915: a.a_vp = vp;
! 916: a.a_flags = flags;
! 917: a.a_p = p;
! 918: return (VCALL(vp, VOFFSET(vop_unlock), &a));
! 919: }
! 920:
! 921: int vop_bmap_vp_offsets[] = {
! 922: VOPARG_OFFSETOF(struct vop_bmap_args,a_vp),
! 923: VDESC_NO_OFFSET
! 924: };
! 925: struct vnodeop_desc vop_bmap_desc = {
! 926: 0,
! 927: "vop_bmap",
! 928: 0,
! 929: vop_bmap_vp_offsets,
! 930: VOPARG_OFFSETOF(struct vop_bmap_args, a_vpp),
! 931: VDESC_NO_OFFSET,
! 932: VDESC_NO_OFFSET,
! 933: VDESC_NO_OFFSET,
! 934: NULL,
! 935: };
! 936:
! 937: int VOP_BMAP(struct vnode *vp, daddr64_t bn, struct vnode **vpp,
! 938: daddr64_t *bnp, int *runp)
! 939: {
! 940: struct vop_bmap_args a;
! 941: a.a_desc = VDESC(vop_bmap);
! 942: a.a_vp = vp;
! 943: #ifdef VFSDEBUG
! 944: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 945: panic("vop_bmap: vp");
! 946: #endif
! 947: a.a_bn = bn;
! 948: a.a_vpp = vpp;
! 949: a.a_bnp = bnp;
! 950: a.a_runp = runp;
! 951: return (VCALL(vp, VOFFSET(vop_bmap), &a));
! 952: }
! 953:
! 954: int vop_print_vp_offsets[] = {
! 955: VOPARG_OFFSETOF(struct vop_print_args,a_vp),
! 956: VDESC_NO_OFFSET
! 957: };
! 958: struct vnodeop_desc vop_print_desc = {
! 959: 0,
! 960: "vop_print",
! 961: 0,
! 962: vop_print_vp_offsets,
! 963: VDESC_NO_OFFSET,
! 964: VDESC_NO_OFFSET,
! 965: VDESC_NO_OFFSET,
! 966: VDESC_NO_OFFSET,
! 967: NULL,
! 968: };
! 969:
! 970: int VOP_PRINT(struct vnode *vp)
! 971: {
! 972: struct vop_print_args a;
! 973: a.a_desc = VDESC(vop_print);
! 974: a.a_vp = vp;
! 975: return (VCALL(vp, VOFFSET(vop_print), &a));
! 976: }
! 977:
! 978: int vop_pathconf_vp_offsets[] = {
! 979: VOPARG_OFFSETOF(struct vop_pathconf_args,a_vp),
! 980: VDESC_NO_OFFSET
! 981: };
! 982: struct vnodeop_desc vop_pathconf_desc = {
! 983: 0,
! 984: "vop_pathconf",
! 985: 0,
! 986: vop_pathconf_vp_offsets,
! 987: VDESC_NO_OFFSET,
! 988: VDESC_NO_OFFSET,
! 989: VDESC_NO_OFFSET,
! 990: VDESC_NO_OFFSET,
! 991: NULL,
! 992: };
! 993:
! 994: int VOP_PATHCONF(struct vnode *vp, int name, register_t *retval)
! 995: {
! 996: struct vop_pathconf_args a;
! 997: a.a_desc = VDESC(vop_pathconf);
! 998: a.a_vp = vp;
! 999: #ifdef VFSDEBUG
! 1000: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 1001: panic("vop_pathconf: vp");
! 1002: #endif
! 1003: a.a_name = name;
! 1004: a.a_retval = retval;
! 1005: return (VCALL(vp, VOFFSET(vop_pathconf), &a));
! 1006: }
! 1007:
! 1008: int vop_advlock_vp_offsets[] = {
! 1009: VOPARG_OFFSETOF(struct vop_advlock_args,a_vp),
! 1010: VDESC_NO_OFFSET
! 1011: };
! 1012: struct vnodeop_desc vop_advlock_desc = {
! 1013: 0,
! 1014: "vop_advlock",
! 1015: 0,
! 1016: vop_advlock_vp_offsets,
! 1017: VDESC_NO_OFFSET,
! 1018: VDESC_NO_OFFSET,
! 1019: VDESC_NO_OFFSET,
! 1020: VDESC_NO_OFFSET,
! 1021: NULL,
! 1022: };
! 1023:
! 1024: int VOP_ADVLOCK(struct vnode *vp, void *id, int op, struct flock *fl, int flags)
! 1025: {
! 1026: struct vop_advlock_args a;
! 1027: a.a_desc = VDESC(vop_advlock);
! 1028: a.a_vp = vp;
! 1029: a.a_id = id;
! 1030: a.a_op = op;
! 1031: a.a_fl = fl;
! 1032: a.a_flags = flags;
! 1033: return (VCALL(vp, VOFFSET(vop_advlock), &a));
! 1034: }
! 1035:
! 1036: int vop_reallocblks_vp_offsets[] = {
! 1037: VOPARG_OFFSETOF(struct vop_reallocblks_args,a_vp),
! 1038: VDESC_NO_OFFSET
! 1039: };
! 1040: struct vnodeop_desc vop_reallocblks_desc = {
! 1041: 0,
! 1042: "vop_reallocblks",
! 1043: 0,
! 1044: vop_reallocblks_vp_offsets,
! 1045: VDESC_NO_OFFSET,
! 1046: VDESC_NO_OFFSET,
! 1047: VDESC_NO_OFFSET,
! 1048: VDESC_NO_OFFSET,
! 1049: NULL,
! 1050: };
! 1051:
! 1052: int VOP_REALLOCBLKS(struct vnode *vp, struct cluster_save *buflist)
! 1053: {
! 1054: struct vop_reallocblks_args a;
! 1055: a.a_desc = VDESC(vop_reallocblks);
! 1056: a.a_vp = vp;
! 1057: #ifdef VFSDEBUG
! 1058: if ((vp->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp))
! 1059: panic("vop_reallocblks: vp");
! 1060: #endif
! 1061: a.a_buflist = buflist;
! 1062: return (VCALL(vp, VOFFSET(vop_reallocblks), &a));
! 1063: }
! 1064:
! 1065: /* Special cases: */
! 1066:
! 1067: int vop_strategy_vp_offsets[] = {
! 1068: VDESC_NO_OFFSET
! 1069: };
! 1070: struct vnodeop_desc vop_strategy_desc = {
! 1071: 0,
! 1072: "vop_strategy",
! 1073: 0,
! 1074: vop_strategy_vp_offsets,
! 1075: VDESC_NO_OFFSET,
! 1076: VDESC_NO_OFFSET,
! 1077: VDESC_NO_OFFSET,
! 1078: VDESC_NO_OFFSET,
! 1079: NULL,
! 1080: };
! 1081:
! 1082: int VOP_STRATEGY(struct buf *bp)
! 1083: {
! 1084: struct vop_strategy_args a;
! 1085: a.a_desc = VDESC(vop_strategy);
! 1086: a.a_bp = bp;
! 1087: return (VCALL(bp->b_vp, VOFFSET(vop_strategy), &a));
! 1088: }
! 1089:
! 1090: int vop_bwrite_vp_offsets[] = {
! 1091: VDESC_NO_OFFSET
! 1092: };
! 1093: struct vnodeop_desc vop_bwrite_desc = {
! 1094: 0,
! 1095: "vop_bwrite",
! 1096: 0,
! 1097: vop_bwrite_vp_offsets,
! 1098: VDESC_NO_OFFSET,
! 1099: VDESC_NO_OFFSET,
! 1100: VDESC_NO_OFFSET,
! 1101: VDESC_NO_OFFSET,
! 1102: NULL,
! 1103: };
! 1104:
! 1105: int VOP_BWRITE(struct buf *bp)
! 1106: {
! 1107: struct vop_bwrite_args a;
! 1108: a.a_desc = VDESC(vop_bwrite);
! 1109: a.a_bp = bp;
! 1110: return (VCALL(bp->b_vp, VOFFSET(vop_bwrite), &a));
! 1111: }
! 1112:
! 1113: /* End of special cases. */
! 1114:
! 1115: struct vnodeop_desc *vfs_op_descs[] = {
! 1116: &vop_default_desc, /* MUST BE FIRST */
! 1117: &vop_strategy_desc, /* XXX: SPECIAL CASE */
! 1118: &vop_bwrite_desc, /* XXX: SPECIAL CASE */
! 1119:
! 1120: &vop_islocked_desc,
! 1121: &vop_lookup_desc,
! 1122: &vop_create_desc,
! 1123: &vop_mknod_desc,
! 1124: &vop_open_desc,
! 1125: &vop_close_desc,
! 1126: &vop_access_desc,
! 1127: &vop_getattr_desc,
! 1128: &vop_setattr_desc,
! 1129: &vop_read_desc,
! 1130: &vop_write_desc,
! 1131: &vop_ioctl_desc,
! 1132: &vop_poll_desc,
! 1133: &vop_kqfilter_desc,
! 1134: &vop_revoke_desc,
! 1135: &vop_fsync_desc,
! 1136: &vop_remove_desc,
! 1137: &vop_link_desc,
! 1138: &vop_rename_desc,
! 1139: &vop_mkdir_desc,
! 1140: &vop_rmdir_desc,
! 1141: &vop_symlink_desc,
! 1142: &vop_readdir_desc,
! 1143: &vop_readlink_desc,
! 1144: &vop_abortop_desc,
! 1145: &vop_inactive_desc,
! 1146: &vop_reclaim_desc,
! 1147: &vop_lock_desc,
! 1148: &vop_unlock_desc,
! 1149: &vop_bmap_desc,
! 1150: &vop_print_desc,
! 1151: &vop_pathconf_desc,
! 1152: &vop_advlock_desc,
! 1153: &vop_reallocblks_desc,
! 1154: NULL
! 1155: };
! 1156:
CVSweb