1 /* $NetBSD: vnode_if.c,v 1.14 1998/09/13 14:45:22 christos Exp $ */ 2 3 /* 4 * Warning: This file is generated automatically. 5 * (Modifications made here may easily be lost!) 6 * 7 * Created from the file: 8 * NetBSD: vnode_if.src,v 1.14 1998/06/05 19:38:56 kleink Exp 9 * by the script: 10 * NetBSD: vnode_if.sh,v 1.18 1998/09/13 14:44:34 christos Exp 11 */ 12 13 /* 14 * Copyright (c) 1992, 1993, 1994, 1995 15 * The Regents of the University of California. All rights reserved. 16 * 17 * Redistribution and use in source and binary forms, with or without 18 * modification, are permitted provided that the following conditions 19 * are met: 20 * 1. Redistributions of source code must retain the above copyright 21 * notice, this list of conditions and the following disclaimer. 22 * 2. Redistributions in binary form must reproduce the above copyright 23 * notice, this list of conditions and the following disclaimer in the 24 * documentation and/or other materials provided with the distribution. 25 * 3. All advertising materials mentioning features or use of this software 26 * must display the following acknowledgement: 27 * This product includes software developed by the University of 28 * California, Berkeley and its contributors. 29 * 4. Neither the name of the University nor the names of its contributors 30 * may be used to endorse or promote products derived from this software 31 * without specific prior written permission. 32 * 33 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 34 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 35 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 36 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 37 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 38 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 39 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 40 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 41 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 42 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 43 * SUCH DAMAGE. 44 */ 45 46 #include <sys/param.h> 47 #include <sys/mount.h> 48 #include <sys/vnode.h> 49 50 struct vnodeop_desc vop_default_desc = { 51 0, 52 "default", 53 0, 54 NULL, 55 VDESC_NO_OFFSET, 56 VDESC_NO_OFFSET, 57 VDESC_NO_OFFSET, 58 VDESC_NO_OFFSET, 59 NULL, 60 }; 61 62 63 int vop_lookup_vp_offsets[] = { 64 VOPARG_OFFSETOF(struct vop_lookup_args,a_dvp), 65 VDESC_NO_OFFSET 66 }; 67 struct vnodeop_desc vop_lookup_desc = { 68 0, 69 "vop_lookup", 70 0, 71 vop_lookup_vp_offsets, 72 VOPARG_OFFSETOF(struct vop_lookup_args, a_vpp), 73 VDESC_NO_OFFSET, 74 VDESC_NO_OFFSET, 75 VOPARG_OFFSETOF(struct vop_lookup_args, a_cnp), 76 NULL, 77 }; 78 79 int vop_create_vp_offsets[] = { 80 VOPARG_OFFSETOF(struct vop_create_args,a_dvp), 81 VDESC_NO_OFFSET 82 }; 83 struct vnodeop_desc vop_create_desc = { 84 0, 85 "vop_create", 86 0 | VDESC_VP0_WILLRELE, 87 vop_create_vp_offsets, 88 VOPARG_OFFSETOF(struct vop_create_args, a_vpp), 89 VDESC_NO_OFFSET, 90 VDESC_NO_OFFSET, 91 VOPARG_OFFSETOF(struct vop_create_args, a_cnp), 92 NULL, 93 }; 94 95 int vop_mknod_vp_offsets[] = { 96 VOPARG_OFFSETOF(struct vop_mknod_args,a_dvp), 97 VDESC_NO_OFFSET 98 }; 99 struct vnodeop_desc vop_mknod_desc = { 100 0, 101 "vop_mknod", 102 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, 103 vop_mknod_vp_offsets, 104 VOPARG_OFFSETOF(struct vop_mknod_args, a_vpp), 105 VDESC_NO_OFFSET, 106 VDESC_NO_OFFSET, 107 VOPARG_OFFSETOF(struct vop_mknod_args, a_cnp), 108 NULL, 109 }; 110 111 int vop_open_vp_offsets[] = { 112 VOPARG_OFFSETOF(struct vop_open_args,a_vp), 113 VDESC_NO_OFFSET 114 }; 115 struct vnodeop_desc vop_open_desc = { 116 0, 117 "vop_open", 118 0, 119 vop_open_vp_offsets, 120 VDESC_NO_OFFSET, 121 VOPARG_OFFSETOF(struct vop_open_args, a_cred), 122 VOPARG_OFFSETOF(struct vop_open_args, a_p), 123 VDESC_NO_OFFSET, 124 NULL, 125 }; 126 127 int vop_close_vp_offsets[] = { 128 VOPARG_OFFSETOF(struct vop_close_args,a_vp), 129 VDESC_NO_OFFSET 130 }; 131 struct vnodeop_desc vop_close_desc = { 132 0, 133 "vop_close", 134 0, 135 vop_close_vp_offsets, 136 VDESC_NO_OFFSET, 137 VOPARG_OFFSETOF(struct vop_close_args, a_cred), 138 VOPARG_OFFSETOF(struct vop_close_args, a_p), 139 VDESC_NO_OFFSET, 140 NULL, 141 }; 142 143 int vop_access_vp_offsets[] = { 144 VOPARG_OFFSETOF(struct vop_access_args,a_vp), 145 VDESC_NO_OFFSET 146 }; 147 struct vnodeop_desc vop_access_desc = { 148 0, 149 "vop_access", 150 0, 151 vop_access_vp_offsets, 152 VDESC_NO_OFFSET, 153 VOPARG_OFFSETOF(struct vop_access_args, a_cred), 154 VOPARG_OFFSETOF(struct vop_access_args, a_p), 155 VDESC_NO_OFFSET, 156 NULL, 157 }; 158 159 int vop_getattr_vp_offsets[] = { 160 VOPARG_OFFSETOF(struct vop_getattr_args,a_vp), 161 VDESC_NO_OFFSET 162 }; 163 struct vnodeop_desc vop_getattr_desc = { 164 0, 165 "vop_getattr", 166 0, 167 vop_getattr_vp_offsets, 168 VDESC_NO_OFFSET, 169 VOPARG_OFFSETOF(struct vop_getattr_args, a_cred), 170 VOPARG_OFFSETOF(struct vop_getattr_args, a_p), 171 VDESC_NO_OFFSET, 172 NULL, 173 }; 174 175 int vop_setattr_vp_offsets[] = { 176 VOPARG_OFFSETOF(struct vop_setattr_args,a_vp), 177 VDESC_NO_OFFSET 178 }; 179 struct vnodeop_desc vop_setattr_desc = { 180 0, 181 "vop_setattr", 182 0, 183 vop_setattr_vp_offsets, 184 VDESC_NO_OFFSET, 185 VOPARG_OFFSETOF(struct vop_setattr_args, a_cred), 186 VOPARG_OFFSETOF(struct vop_setattr_args, a_p), 187 VDESC_NO_OFFSET, 188 NULL, 189 }; 190 191 int vop_read_vp_offsets[] = { 192 VOPARG_OFFSETOF(struct vop_read_args,a_vp), 193 VDESC_NO_OFFSET 194 }; 195 struct vnodeop_desc vop_read_desc = { 196 0, 197 "vop_read", 198 0, 199 vop_read_vp_offsets, 200 VDESC_NO_OFFSET, 201 VOPARG_OFFSETOF(struct vop_read_args, a_cred), 202 VDESC_NO_OFFSET, 203 VDESC_NO_OFFSET, 204 NULL, 205 }; 206 207 int vop_write_vp_offsets[] = { 208 VOPARG_OFFSETOF(struct vop_write_args,a_vp), 209 VDESC_NO_OFFSET 210 }; 211 struct vnodeop_desc vop_write_desc = { 212 0, 213 "vop_write", 214 0, 215 vop_write_vp_offsets, 216 VDESC_NO_OFFSET, 217 VOPARG_OFFSETOF(struct vop_write_args, a_cred), 218 VDESC_NO_OFFSET, 219 VDESC_NO_OFFSET, 220 NULL, 221 }; 222 223 int vop_ioctl_vp_offsets[] = { 224 VOPARG_OFFSETOF(struct vop_ioctl_args,a_vp), 225 VDESC_NO_OFFSET 226 }; 227 struct vnodeop_desc vop_ioctl_desc = { 228 0, 229 "vop_ioctl", 230 0, 231 vop_ioctl_vp_offsets, 232 VDESC_NO_OFFSET, 233 VOPARG_OFFSETOF(struct vop_ioctl_args, a_cred), 234 VOPARG_OFFSETOF(struct vop_ioctl_args, a_p), 235 VDESC_NO_OFFSET, 236 NULL, 237 }; 238 239 int vop_poll_vp_offsets[] = { 240 VOPARG_OFFSETOF(struct vop_poll_args,a_vp), 241 VDESC_NO_OFFSET 242 }; 243 struct vnodeop_desc vop_poll_desc = { 244 0, 245 "vop_poll", 246 0, 247 vop_poll_vp_offsets, 248 VDESC_NO_OFFSET, 249 VDESC_NO_OFFSET, 250 VOPARG_OFFSETOF(struct vop_poll_args, a_p), 251 VDESC_NO_OFFSET, 252 NULL, 253 }; 254 255 int vop_revoke_vp_offsets[] = { 256 VOPARG_OFFSETOF(struct vop_revoke_args,a_vp), 257 VDESC_NO_OFFSET 258 }; 259 struct vnodeop_desc vop_revoke_desc = { 260 0, 261 "vop_revoke", 262 0, 263 vop_revoke_vp_offsets, 264 VDESC_NO_OFFSET, 265 VDESC_NO_OFFSET, 266 VDESC_NO_OFFSET, 267 VDESC_NO_OFFSET, 268 NULL, 269 }; 270 271 int vop_mmap_vp_offsets[] = { 272 VOPARG_OFFSETOF(struct vop_mmap_args,a_vp), 273 VDESC_NO_OFFSET 274 }; 275 struct vnodeop_desc vop_mmap_desc = { 276 0, 277 "vop_mmap", 278 0, 279 vop_mmap_vp_offsets, 280 VDESC_NO_OFFSET, 281 VOPARG_OFFSETOF(struct vop_mmap_args, a_cred), 282 VOPARG_OFFSETOF(struct vop_mmap_args, a_p), 283 VDESC_NO_OFFSET, 284 NULL, 285 }; 286 287 int vop_fsync_vp_offsets[] = { 288 VOPARG_OFFSETOF(struct vop_fsync_args,a_vp), 289 VDESC_NO_OFFSET 290 }; 291 struct vnodeop_desc vop_fsync_desc = { 292 0, 293 "vop_fsync", 294 0, 295 vop_fsync_vp_offsets, 296 VDESC_NO_OFFSET, 297 VOPARG_OFFSETOF(struct vop_fsync_args, a_cred), 298 VOPARG_OFFSETOF(struct vop_fsync_args, a_p), 299 VDESC_NO_OFFSET, 300 NULL, 301 }; 302 303 int vop_seek_vp_offsets[] = { 304 VOPARG_OFFSETOF(struct vop_seek_args,a_vp), 305 VDESC_NO_OFFSET 306 }; 307 struct vnodeop_desc vop_seek_desc = { 308 0, 309 "vop_seek", 310 0, 311 vop_seek_vp_offsets, 312 VDESC_NO_OFFSET, 313 VOPARG_OFFSETOF(struct vop_seek_args, a_cred), 314 VDESC_NO_OFFSET, 315 VDESC_NO_OFFSET, 316 NULL, 317 }; 318 319 int vop_remove_vp_offsets[] = { 320 VOPARG_OFFSETOF(struct vop_remove_args,a_dvp), 321 VOPARG_OFFSETOF(struct vop_remove_args,a_vp), 322 VDESC_NO_OFFSET 323 }; 324 struct vnodeop_desc vop_remove_desc = { 325 0, 326 "vop_remove", 327 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, 328 vop_remove_vp_offsets, 329 VDESC_NO_OFFSET, 330 VDESC_NO_OFFSET, 331 VDESC_NO_OFFSET, 332 VOPARG_OFFSETOF(struct vop_remove_args, a_cnp), 333 NULL, 334 }; 335 336 int vop_link_vp_offsets[] = { 337 VOPARG_OFFSETOF(struct vop_link_args,a_dvp), 338 VOPARG_OFFSETOF(struct vop_link_args,a_vp), 339 VDESC_NO_OFFSET 340 }; 341 struct vnodeop_desc vop_link_desc = { 342 0, 343 "vop_link", 344 0 | VDESC_VP0_WILLRELE, 345 vop_link_vp_offsets, 346 VDESC_NO_OFFSET, 347 VDESC_NO_OFFSET, 348 VDESC_NO_OFFSET, 349 VOPARG_OFFSETOF(struct vop_link_args, a_cnp), 350 NULL, 351 }; 352 353 int vop_rename_vp_offsets[] = { 354 VOPARG_OFFSETOF(struct vop_rename_args,a_fdvp), 355 VOPARG_OFFSETOF(struct vop_rename_args,a_fvp), 356 VOPARG_OFFSETOF(struct vop_rename_args,a_tdvp), 357 VOPARG_OFFSETOF(struct vop_rename_args,a_tvp), 358 VDESC_NO_OFFSET 359 }; 360 struct vnodeop_desc vop_rename_desc = { 361 0, 362 "vop_rename", 363 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE, 364 vop_rename_vp_offsets, 365 VDESC_NO_OFFSET, 366 VDESC_NO_OFFSET, 367 VDESC_NO_OFFSET, 368 VOPARG_OFFSETOF(struct vop_rename_args, a_fcnp), 369 NULL, 370 }; 371 372 int vop_mkdir_vp_offsets[] = { 373 VOPARG_OFFSETOF(struct vop_mkdir_args,a_dvp), 374 VDESC_NO_OFFSET 375 }; 376 struct vnodeop_desc vop_mkdir_desc = { 377 0, 378 "vop_mkdir", 379 0 | VDESC_VP0_WILLRELE, 380 vop_mkdir_vp_offsets, 381 VOPARG_OFFSETOF(struct vop_mkdir_args, a_vpp), 382 VDESC_NO_OFFSET, 383 VDESC_NO_OFFSET, 384 VOPARG_OFFSETOF(struct vop_mkdir_args, a_cnp), 385 NULL, 386 }; 387 388 int vop_rmdir_vp_offsets[] = { 389 VOPARG_OFFSETOF(struct vop_rmdir_args,a_dvp), 390 VOPARG_OFFSETOF(struct vop_rmdir_args,a_vp), 391 VDESC_NO_OFFSET 392 }; 393 struct vnodeop_desc vop_rmdir_desc = { 394 0, 395 "vop_rmdir", 396 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, 397 vop_rmdir_vp_offsets, 398 VDESC_NO_OFFSET, 399 VDESC_NO_OFFSET, 400 VDESC_NO_OFFSET, 401 VOPARG_OFFSETOF(struct vop_rmdir_args, a_cnp), 402 NULL, 403 }; 404 405 int vop_symlink_vp_offsets[] = { 406 VOPARG_OFFSETOF(struct vop_symlink_args,a_dvp), 407 VDESC_NO_OFFSET 408 }; 409 struct vnodeop_desc vop_symlink_desc = { 410 0, 411 "vop_symlink", 412 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, 413 vop_symlink_vp_offsets, 414 VOPARG_OFFSETOF(struct vop_symlink_args, a_vpp), 415 VDESC_NO_OFFSET, 416 VDESC_NO_OFFSET, 417 VOPARG_OFFSETOF(struct vop_symlink_args, a_cnp), 418 NULL, 419 }; 420 421 int vop_readdir_vp_offsets[] = { 422 VOPARG_OFFSETOF(struct vop_readdir_args,a_vp), 423 VDESC_NO_OFFSET 424 }; 425 struct vnodeop_desc vop_readdir_desc = { 426 0, 427 "vop_readdir", 428 0, 429 vop_readdir_vp_offsets, 430 VDESC_NO_OFFSET, 431 VOPARG_OFFSETOF(struct vop_readdir_args, a_cred), 432 VDESC_NO_OFFSET, 433 VDESC_NO_OFFSET, 434 NULL, 435 }; 436 437 int vop_readlink_vp_offsets[] = { 438 VOPARG_OFFSETOF(struct vop_readlink_args,a_vp), 439 VDESC_NO_OFFSET 440 }; 441 struct vnodeop_desc vop_readlink_desc = { 442 0, 443 "vop_readlink", 444 0, 445 vop_readlink_vp_offsets, 446 VDESC_NO_OFFSET, 447 VOPARG_OFFSETOF(struct vop_readlink_args, a_cred), 448 VDESC_NO_OFFSET, 449 VDESC_NO_OFFSET, 450 NULL, 451 }; 452 453 int vop_abortop_vp_offsets[] = { 454 VOPARG_OFFSETOF(struct vop_abortop_args,a_dvp), 455 VDESC_NO_OFFSET 456 }; 457 struct vnodeop_desc vop_abortop_desc = { 458 0, 459 "vop_abortop", 460 0, 461 vop_abortop_vp_offsets, 462 VDESC_NO_OFFSET, 463 VDESC_NO_OFFSET, 464 VDESC_NO_OFFSET, 465 VOPARG_OFFSETOF(struct vop_abortop_args, a_cnp), 466 NULL, 467 }; 468 469 int vop_inactive_vp_offsets[] = { 470 VOPARG_OFFSETOF(struct vop_inactive_args,a_vp), 471 VDESC_NO_OFFSET 472 }; 473 struct vnodeop_desc vop_inactive_desc = { 474 0, 475 "vop_inactive", 476 0, 477 vop_inactive_vp_offsets, 478 VDESC_NO_OFFSET, 479 VDESC_NO_OFFSET, 480 VOPARG_OFFSETOF(struct vop_inactive_args, a_p), 481 VDESC_NO_OFFSET, 482 NULL, 483 }; 484 485 int vop_reclaim_vp_offsets[] = { 486 VOPARG_OFFSETOF(struct vop_reclaim_args,a_vp), 487 VDESC_NO_OFFSET 488 }; 489 struct vnodeop_desc vop_reclaim_desc = { 490 0, 491 "vop_reclaim", 492 0, 493 vop_reclaim_vp_offsets, 494 VDESC_NO_OFFSET, 495 VDESC_NO_OFFSET, 496 VOPARG_OFFSETOF(struct vop_reclaim_args, a_p), 497 VDESC_NO_OFFSET, 498 NULL, 499 }; 500 501 int vop_lock_vp_offsets[] = { 502 VOPARG_OFFSETOF(struct vop_lock_args,a_vp), 503 VDESC_NO_OFFSET 504 }; 505 struct vnodeop_desc vop_lock_desc = { 506 0, 507 "vop_lock", 508 0, 509 vop_lock_vp_offsets, 510 VDESC_NO_OFFSET, 511 VDESC_NO_OFFSET, 512 VDESC_NO_OFFSET, 513 VDESC_NO_OFFSET, 514 NULL, 515 }; 516 517 int vop_unlock_vp_offsets[] = { 518 VOPARG_OFFSETOF(struct vop_unlock_args,a_vp), 519 VDESC_NO_OFFSET 520 }; 521 struct vnodeop_desc vop_unlock_desc = { 522 0, 523 "vop_unlock", 524 0, 525 vop_unlock_vp_offsets, 526 VDESC_NO_OFFSET, 527 VDESC_NO_OFFSET, 528 VDESC_NO_OFFSET, 529 VDESC_NO_OFFSET, 530 NULL, 531 }; 532 533 int vop_bmap_vp_offsets[] = { 534 VOPARG_OFFSETOF(struct vop_bmap_args,a_vp), 535 VDESC_NO_OFFSET 536 }; 537 struct vnodeop_desc vop_bmap_desc = { 538 0, 539 "vop_bmap", 540 0, 541 vop_bmap_vp_offsets, 542 VOPARG_OFFSETOF(struct vop_bmap_args, a_vpp), 543 VDESC_NO_OFFSET, 544 VDESC_NO_OFFSET, 545 VDESC_NO_OFFSET, 546 NULL, 547 }; 548 549 int vop_print_vp_offsets[] = { 550 VOPARG_OFFSETOF(struct vop_print_args,a_vp), 551 VDESC_NO_OFFSET 552 }; 553 struct vnodeop_desc vop_print_desc = { 554 0, 555 "vop_print", 556 0, 557 vop_print_vp_offsets, 558 VDESC_NO_OFFSET, 559 VDESC_NO_OFFSET, 560 VDESC_NO_OFFSET, 561 VDESC_NO_OFFSET, 562 NULL, 563 }; 564 565 int vop_islocked_vp_offsets[] = { 566 VOPARG_OFFSETOF(struct vop_islocked_args,a_vp), 567 VDESC_NO_OFFSET 568 }; 569 struct vnodeop_desc vop_islocked_desc = { 570 0, 571 "vop_islocked", 572 0, 573 vop_islocked_vp_offsets, 574 VDESC_NO_OFFSET, 575 VDESC_NO_OFFSET, 576 VDESC_NO_OFFSET, 577 VDESC_NO_OFFSET, 578 NULL, 579 }; 580 581 int vop_pathconf_vp_offsets[] = { 582 VOPARG_OFFSETOF(struct vop_pathconf_args,a_vp), 583 VDESC_NO_OFFSET 584 }; 585 struct vnodeop_desc vop_pathconf_desc = { 586 0, 587 "vop_pathconf", 588 0, 589 vop_pathconf_vp_offsets, 590 VDESC_NO_OFFSET, 591 VDESC_NO_OFFSET, 592 VDESC_NO_OFFSET, 593 VDESC_NO_OFFSET, 594 NULL, 595 }; 596 597 int vop_advlock_vp_offsets[] = { 598 VOPARG_OFFSETOF(struct vop_advlock_args,a_vp), 599 VDESC_NO_OFFSET 600 }; 601 struct vnodeop_desc vop_advlock_desc = { 602 0, 603 "vop_advlock", 604 0, 605 vop_advlock_vp_offsets, 606 VDESC_NO_OFFSET, 607 VDESC_NO_OFFSET, 608 VDESC_NO_OFFSET, 609 VDESC_NO_OFFSET, 610 NULL, 611 }; 612 613 int vop_blkatoff_vp_offsets[] = { 614 VOPARG_OFFSETOF(struct vop_blkatoff_args,a_vp), 615 VDESC_NO_OFFSET 616 }; 617 struct vnodeop_desc vop_blkatoff_desc = { 618 0, 619 "vop_blkatoff", 620 0, 621 vop_blkatoff_vp_offsets, 622 VDESC_NO_OFFSET, 623 VDESC_NO_OFFSET, 624 VDESC_NO_OFFSET, 625 VDESC_NO_OFFSET, 626 NULL, 627 }; 628 629 int vop_valloc_vp_offsets[] = { 630 VOPARG_OFFSETOF(struct vop_valloc_args,a_pvp), 631 VDESC_NO_OFFSET 632 }; 633 struct vnodeop_desc vop_valloc_desc = { 634 0, 635 "vop_valloc", 636 0, 637 vop_valloc_vp_offsets, 638 VOPARG_OFFSETOF(struct vop_valloc_args, a_vpp), 639 VOPARG_OFFSETOF(struct vop_valloc_args, a_cred), 640 VDESC_NO_OFFSET, 641 VDESC_NO_OFFSET, 642 NULL, 643 }; 644 645 int vop_reallocblks_vp_offsets[] = { 646 VOPARG_OFFSETOF(struct vop_reallocblks_args,a_vp), 647 VDESC_NO_OFFSET 648 }; 649 struct vnodeop_desc vop_reallocblks_desc = { 650 0, 651 "vop_reallocblks", 652 0, 653 vop_reallocblks_vp_offsets, 654 VDESC_NO_OFFSET, 655 VDESC_NO_OFFSET, 656 VDESC_NO_OFFSET, 657 VDESC_NO_OFFSET, 658 NULL, 659 }; 660 661 int vop_vfree_vp_offsets[] = { 662 VOPARG_OFFSETOF(struct vop_vfree_args,a_pvp), 663 VDESC_NO_OFFSET 664 }; 665 struct vnodeop_desc vop_vfree_desc = { 666 0, 667 "vop_vfree", 668 0, 669 vop_vfree_vp_offsets, 670 VDESC_NO_OFFSET, 671 VDESC_NO_OFFSET, 672 VDESC_NO_OFFSET, 673 VDESC_NO_OFFSET, 674 NULL, 675 }; 676 677 int vop_truncate_vp_offsets[] = { 678 VOPARG_OFFSETOF(struct vop_truncate_args,a_vp), 679 VDESC_NO_OFFSET 680 }; 681 struct vnodeop_desc vop_truncate_desc = { 682 0, 683 "vop_truncate", 684 0, 685 vop_truncate_vp_offsets, 686 VDESC_NO_OFFSET, 687 VOPARG_OFFSETOF(struct vop_truncate_args, a_cred), 688 VOPARG_OFFSETOF(struct vop_truncate_args, a_p), 689 VDESC_NO_OFFSET, 690 NULL, 691 }; 692 693 int vop_update_vp_offsets[] = { 694 VOPARG_OFFSETOF(struct vop_update_args,a_vp), 695 VDESC_NO_OFFSET 696 }; 697 struct vnodeop_desc vop_update_desc = { 698 0, 699 "vop_update", 700 0, 701 vop_update_vp_offsets, 702 VDESC_NO_OFFSET, 703 VDESC_NO_OFFSET, 704 VDESC_NO_OFFSET, 705 VDESC_NO_OFFSET, 706 NULL, 707 }; 708 709 int vop_lease_vp_offsets[] = { 710 VOPARG_OFFSETOF(struct vop_lease_args,a_vp), 711 VDESC_NO_OFFSET 712 }; 713 struct vnodeop_desc vop_lease_desc = { 714 0, 715 "vop_lease", 716 0, 717 vop_lease_vp_offsets, 718 VDESC_NO_OFFSET, 719 VOPARG_OFFSETOF(struct vop_lease_args, a_cred), 720 VOPARG_OFFSETOF(struct vop_lease_args, a_p), 721 VDESC_NO_OFFSET, 722 NULL, 723 }; 724 725 int vop_whiteout_vp_offsets[] = { 726 VOPARG_OFFSETOF(struct vop_whiteout_args,a_dvp), 727 VDESC_NO_OFFSET 728 }; 729 struct vnodeop_desc vop_whiteout_desc = { 730 0, 731 "vop_whiteout", 732 0, 733 vop_whiteout_vp_offsets, 734 VDESC_NO_OFFSET, 735 VDESC_NO_OFFSET, 736 VDESC_NO_OFFSET, 737 VOPARG_OFFSETOF(struct vop_whiteout_args, a_cnp), 738 NULL, 739 }; 740 741 /* Special cases: */ 742 743 int vop_strategy_vp_offsets[] = { 744 VDESC_NO_OFFSET 745 }; 746 struct vnodeop_desc vop_strategy_desc = { 747 0, 748 "vop_strategy", 749 0, 750 vop_strategy_vp_offsets, 751 VDESC_NO_OFFSET, 752 VDESC_NO_OFFSET, 753 VDESC_NO_OFFSET, 754 VDESC_NO_OFFSET, 755 NULL, 756 }; 757 758 int vop_bwrite_vp_offsets[] = { 759 VDESC_NO_OFFSET 760 }; 761 struct vnodeop_desc vop_bwrite_desc = { 762 0, 763 "vop_bwrite", 764 0, 765 vop_bwrite_vp_offsets, 766 VDESC_NO_OFFSET, 767 VDESC_NO_OFFSET, 768 VDESC_NO_OFFSET, 769 VDESC_NO_OFFSET, 770 NULL, 771 }; 772 773 /* End of special cases. */ 774 775 struct vnodeop_desc *vfs_op_descs[] = { 776 &vop_default_desc, /* MUST BE FIRST */ 777 &vop_strategy_desc, /* XXX: SPECIAL CASE */ 778 &vop_bwrite_desc, /* XXX: SPECIAL CASE */ 779 780 &vop_lookup_desc, 781 &vop_create_desc, 782 &vop_mknod_desc, 783 &vop_open_desc, 784 &vop_close_desc, 785 &vop_access_desc, 786 &vop_getattr_desc, 787 &vop_setattr_desc, 788 &vop_read_desc, 789 &vop_write_desc, 790 &vop_ioctl_desc, 791 &vop_poll_desc, 792 &vop_revoke_desc, 793 &vop_mmap_desc, 794 &vop_fsync_desc, 795 &vop_seek_desc, 796 &vop_remove_desc, 797 &vop_link_desc, 798 &vop_rename_desc, 799 &vop_mkdir_desc, 800 &vop_rmdir_desc, 801 &vop_symlink_desc, 802 &vop_readdir_desc, 803 &vop_readlink_desc, 804 &vop_abortop_desc, 805 &vop_inactive_desc, 806 &vop_reclaim_desc, 807 &vop_lock_desc, 808 &vop_unlock_desc, 809 &vop_bmap_desc, 810 &vop_print_desc, 811 &vop_islocked_desc, 812 &vop_pathconf_desc, 813 &vop_advlock_desc, 814 &vop_blkatoff_desc, 815 &vop_valloc_desc, 816 &vop_reallocblks_desc, 817 &vop_vfree_desc, 818 &vop_truncate_desc, 819 &vop_update_desc, 820 &vop_lease_desc, 821 &vop_whiteout_desc, 822 NULL 823 }; 824 825