1 2/* 3 * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. 4 * 5 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 6 * 7 * This file contains Original Code and/or Modifications of Original Code 8 * as defined in and that are subject to the Apple Public Source License 9 * Version 2.0 (the 'License'). You may not use this file except in 10 * compliance with the License. The rights granted to you under the License 11 * may not be used to create, or enable the creation or redistribution of, 12 * unlawful or unlicensed copies of an Apple operating system, or to 13 * circumvent, violate, or enable the circumvention or violation of, any 14 * terms of an Apple operating system software license agreement. 15 * 16 * Please obtain a copy of the License at 17 * http://www.opensource.apple.com/apsl/ and read it before using this file. 18 * 19 * The Original Code and all software distributed under the License are 20 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 21 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 22 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 23 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 24 * Please see the License for the specific language governing rights and 25 * limitations under the License. 26 * 27 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 28 */ 29/* 30 * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved 31 * Copyright (c) 1992, 1993, 1994, 1995 32 * The Regents of the University of California. All rights reserved. 33 * 34 * Redistribution and use in source and binary forms, with or without 35 * modification, are permitted provided that the following conditions 36 * are met: 37 * 1. Redistributions of source code must retain the above copyright 38 * notice, this list of conditions and the following disclaimer. 39 * 2. Redistributions in binary form must reproduce the above copyright 40 * notice, this list of conditions and the following disclaimer in the 41 * documentation and/or other materials provided with the distribution. 42 * 3. All advertising materials mentioning features or use of this software 43 * must display the following acknowledgement: 44 * This product includes software developed by the University of 45 * California, Berkeley and its contributors. 46 * 4. Neither the name of the University nor the names of its contributors 47 * may be used to endorse or promote products derived from this software 48 * without specific prior written permission. 49 * 50 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS AND 51 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 52 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 53 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 54 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 55 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 56 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 57 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 58 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 59 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 60 * SUCH DAMAGE. 61 */ 62 63 64/* 65 * Warning: This file is generated automatically. 66 * (Modifications made here may easily be lost!) 67 * 68 * Created by the script: 69 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95 70 */ 71 72 73#include <sys/param.h> 74#include <sys/mount_internal.h> 75#include <sys/vm.h> 76#include <sys/vnode_internal.h> 77 78struct vnodeop_desc vnop_default_desc = { 79 0, 80 "default", 81 0, 82 NULL, 83 VDESC_NO_OFFSET, 84 VDESC_NO_OFFSET, 85 VDESC_NO_OFFSET, 86 VDESC_NO_OFFSET, 87 VDESC_NO_OFFSET, 88 NULL 89}; 90 91 92int vnop_lookup_vp_offsets[] = { 93 VOPARG_OFFSETOF(struct vnop_lookup_args,a_dvp), 94 VDESC_NO_OFFSET 95}; 96struct vnodeop_desc vnop_lookup_desc = { 97 0, 98 "vnop_lookup", 99 0, 100 vnop_lookup_vp_offsets, 101 VOPARG_OFFSETOF(struct vnop_lookup_args, a_vpp), 102 VDESC_NO_OFFSET, 103 VDESC_NO_OFFSET, 104 VOPARG_OFFSETOF(struct vnop_lookup_args, a_cnp), 105 VOPARG_OFFSETOF(struct vnop_lookup_args, a_context), 106 NULL 107}; 108 109int vnop_create_vp_offsets[] = { 110 VOPARG_OFFSETOF(struct vnop_create_args,a_dvp), 111 VDESC_NO_OFFSET 112}; 113struct vnodeop_desc vnop_create_desc = { 114 0, 115 "vnop_create", 116 0 | VDESC_VP0_WILLRELE, 117 vnop_create_vp_offsets, 118 VOPARG_OFFSETOF(struct vnop_create_args, a_vpp), 119 VDESC_NO_OFFSET, 120 VDESC_NO_OFFSET, 121 VOPARG_OFFSETOF(struct vnop_create_args, a_cnp), 122 VOPARG_OFFSETOF(struct vnop_create_args, a_context), 123 NULL 124}; 125 126int vnop_whiteout_vp_offsets[] = { 127 VOPARG_OFFSETOF(struct vnop_whiteout_args,a_dvp), 128 VDESC_NO_OFFSET 129}; 130struct vnodeop_desc vnop_whiteout_desc = { 131 0, 132 "vnop_whiteout", 133 0 | VDESC_VP0_WILLRELE, 134 vnop_whiteout_vp_offsets, 135 VDESC_NO_OFFSET, 136 VDESC_NO_OFFSET, 137 VDESC_NO_OFFSET, 138 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp), 139 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context), 140 NULL 141}; 142 143int vnop_mknod_vp_offsets[] = { 144 VOPARG_OFFSETOF(struct vnop_mknod_args,a_dvp), 145 VDESC_NO_OFFSET 146}; 147struct vnodeop_desc vnop_mknod_desc = { 148 0, 149 "vnop_mknod", 150 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, 151 vnop_mknod_vp_offsets, 152 VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp), 153 VDESC_NO_OFFSET, 154 VDESC_NO_OFFSET, 155 VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp), 156 VOPARG_OFFSETOF(struct vnop_mknod_args, a_context), 157 NULL 158}; 159 160int vnop_open_vp_offsets[] = { 161 VOPARG_OFFSETOF(struct vnop_open_args,a_vp), 162 VDESC_NO_OFFSET 163}; 164struct vnodeop_desc vnop_open_desc = { 165 0, 166 "vnop_open", 167 0, 168 vnop_open_vp_offsets, 169 VDESC_NO_OFFSET, 170 VDESC_NO_OFFSET, 171 VDESC_NO_OFFSET, 172 VDESC_NO_OFFSET, 173 VOPARG_OFFSETOF(struct vnop_open_args, a_context), 174 NULL 175}; 176 177int vnop_close_vp_offsets[] = { 178 VOPARG_OFFSETOF(struct vnop_close_args,a_vp), 179 VDESC_NO_OFFSET 180}; 181struct vnodeop_desc vnop_close_desc = { 182 0, 183 "vnop_close", 184 0, 185 vnop_close_vp_offsets, 186 VDESC_NO_OFFSET, 187 VDESC_NO_OFFSET, 188 VDESC_NO_OFFSET, 189 VDESC_NO_OFFSET, 190 VOPARG_OFFSETOF(struct vnop_close_args, a_context), 191 NULL 192}; 193 194int vnop_access_vp_offsets[] = { 195 VOPARG_OFFSETOF(struct vnop_access_args,a_vp), 196 VDESC_NO_OFFSET 197}; 198struct vnodeop_desc vnop_access_desc = { 199 0, 200 "vnop_access", 201 0, 202 vnop_access_vp_offsets, 203 VDESC_NO_OFFSET, 204 VDESC_NO_OFFSET, 205 VDESC_NO_OFFSET, 206 VDESC_NO_OFFSET, 207 VOPARG_OFFSETOF(struct vnop_close_args, a_context), 208 NULL 209}; 210 211int vnop_getattr_vp_offsets[] = { 212 VOPARG_OFFSETOF(struct vnop_getattr_args,a_vp), 213 VDESC_NO_OFFSET 214}; 215struct vnodeop_desc vnop_getattr_desc = { 216 0, 217 "vnop_getattr", 218 0, 219 vnop_getattr_vp_offsets, 220 VDESC_NO_OFFSET, 221 VDESC_NO_OFFSET, 222 VDESC_NO_OFFSET, 223 VDESC_NO_OFFSET, 224 VOPARG_OFFSETOF(struct vnop_getattr_args, a_context), 225 NULL 226}; 227 228int vnop_setattr_vp_offsets[] = { 229 VOPARG_OFFSETOF(struct vnop_setattr_args,a_vp), 230 VDESC_NO_OFFSET 231}; 232struct vnodeop_desc vnop_setattr_desc = { 233 0, 234 "vnop_setattr", 235 0, 236 vnop_setattr_vp_offsets, 237 VDESC_NO_OFFSET, 238 VDESC_NO_OFFSET, 239 VDESC_NO_OFFSET, 240 VDESC_NO_OFFSET, 241 VOPARG_OFFSETOF(struct vnop_setattr_args, a_context), 242 NULL 243}; 244 245int vnop_read_vp_offsets[] = { 246 VOPARG_OFFSETOF(struct vnop_read_args,a_vp), 247 VDESC_NO_OFFSET 248}; 249struct vnodeop_desc vnop_read_desc = { 250 0, 251 "vnop_read", 252 0, 253 vnop_read_vp_offsets, 254 VDESC_NO_OFFSET, 255 VDESC_NO_OFFSET, 256 VDESC_NO_OFFSET, 257 VDESC_NO_OFFSET, 258 VOPARG_OFFSETOF(struct vnop_read_args, a_context), 259 NULL 260}; 261 262int vnop_write_vp_offsets[] = { 263 VOPARG_OFFSETOF(struct vnop_write_args,a_vp), 264 VDESC_NO_OFFSET 265}; 266struct vnodeop_desc vnop_write_desc = { 267 0, 268 "vnop_write", 269 0, 270 vnop_write_vp_offsets, 271 VDESC_NO_OFFSET, 272 VDESC_NO_OFFSET, 273 VDESC_NO_OFFSET, 274 VDESC_NO_OFFSET, 275 VOPARG_OFFSETOF(struct vnop_write_args, a_context), 276 NULL 277}; 278 279int vnop_ioctl_vp_offsets[] = { 280 VOPARG_OFFSETOF(struct vnop_ioctl_args,a_vp), 281 VDESC_NO_OFFSET 282}; 283struct vnodeop_desc vnop_ioctl_desc = { 284 0, 285 "vnop_ioctl", 286 0, 287 vnop_ioctl_vp_offsets, 288 VDESC_NO_OFFSET, 289 VDESC_NO_OFFSET, 290 VDESC_NO_OFFSET, 291 VDESC_NO_OFFSET, 292 VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context), 293 NULL 294}; 295 296int vnop_select_vp_offsets[] = { 297 VOPARG_OFFSETOF(struct vnop_select_args,a_vp), 298 VDESC_NO_OFFSET 299}; 300struct vnodeop_desc vnop_select_desc = { 301 0, 302 "vnop_select", 303 0, 304 vnop_select_vp_offsets, 305 VDESC_NO_OFFSET, 306 VDESC_NO_OFFSET, 307 VDESC_NO_OFFSET, 308 VDESC_NO_OFFSET, 309 VOPARG_OFFSETOF(struct vnop_select_args, a_context), 310 NULL 311}; 312 313int vnop_exchange_vp_offsets[] = { 314 VOPARG_OFFSETOF(struct vnop_exchange_args,a_fvp), 315 VOPARG_OFFSETOF(struct vnop_exchange_args,a_tvp), 316 VDESC_NO_OFFSET 317}; 318struct vnodeop_desc vnop_exchange_desc = { 319 0, 320 "vnop_exchange", 321 0, 322 vnop_exchange_vp_offsets, 323 VDESC_NO_OFFSET, 324 VDESC_NO_OFFSET, 325 VDESC_NO_OFFSET, 326 VDESC_NO_OFFSET, 327 VOPARG_OFFSETOF(struct vnop_exchange_args, a_context), 328 NULL 329}; 330 331int vnop_kqfilt_add_vp_offsets[] = { 332 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args,a_vp), 333 VDESC_NO_OFFSET 334}; 335struct vnodeop_desc vnop_kqfilt_add_desc = { 336 0, 337 "vnop_kqfilt_add", 338 0, 339 vnop_kqfilt_add_vp_offsets, 340 VDESC_NO_OFFSET, 341 VDESC_NO_OFFSET, 342 VDESC_NO_OFFSET, 343 VDESC_NO_OFFSET, 344 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context), 345 NULL 346}; 347 348int vnop_kqfilt_remove_vp_offsets[] = { 349 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args,a_vp), 350 VDESC_NO_OFFSET 351}; 352struct vnodeop_desc vnop_kqfilt_remove_desc = { 353 0, 354 "vnop_kqfilt_remove", 355 0, 356 vnop_kqfilt_remove_vp_offsets, 357 VDESC_NO_OFFSET, 358 VDESC_NO_OFFSET, 359 VDESC_NO_OFFSET, 360 VDESC_NO_OFFSET, 361 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context), 362 NULL 363}; 364 365int vnop_setlabel_vp_offsets[] = { 366 VOPARG_OFFSETOF(struct vnop_setlabel_args,a_vp), 367 VDESC_NO_OFFSET 368}; 369struct vnodeop_desc vnop_setlabel_desc = { 370 0, 371 "vnop_setlabel", 372 0, 373 vnop_setlabel_vp_offsets, 374 VDESC_NO_OFFSET, 375 VDESC_NO_OFFSET, 376 VDESC_NO_OFFSET, 377 VDESC_NO_OFFSET, 378 VOPARG_OFFSETOF(struct vnop_setlabel_args, a_context), 379 NULL, 380}; 381 382int vnop_revoke_vp_offsets[] = { 383 VOPARG_OFFSETOF(struct vnop_revoke_args,a_vp), 384 VDESC_NO_OFFSET 385}; 386struct vnodeop_desc vnop_revoke_desc = { 387 0, 388 "vnop_revoke", 389 0, 390 vnop_revoke_vp_offsets, 391 VDESC_NO_OFFSET, 392 VDESC_NO_OFFSET, 393 VDESC_NO_OFFSET, 394 VDESC_NO_OFFSET, 395 VDESC_NO_OFFSET, 396 NULL 397}; 398 399 400int vnop_mmap_vp_offsets[] = { 401 VOPARG_OFFSETOF(struct vnop_mmap_args,a_vp), 402 VDESC_NO_OFFSET 403}; 404struct vnodeop_desc vnop_mmap_desc = { 405 0, 406 "vnop_mmap", 407 0, 408 vnop_mmap_vp_offsets, 409 VDESC_NO_OFFSET, 410 VDESC_NO_OFFSET, 411 VDESC_NO_OFFSET, 412 VDESC_NO_OFFSET, 413 VDESC_NO_OFFSET, 414 NULL 415}; 416 417 418int vnop_mnomap_vp_offsets[] = { 419 VOPARG_OFFSETOF(struct vnop_mnomap_args,a_vp), 420 VDESC_NO_OFFSET 421}; 422struct vnodeop_desc vnop_mnomap_desc = { 423 0, 424 "vnop_mnomap", 425 0, 426 vnop_mnomap_vp_offsets, 427 VDESC_NO_OFFSET, 428 VDESC_NO_OFFSET, 429 VDESC_NO_OFFSET, 430 VDESC_NO_OFFSET, 431 VDESC_NO_OFFSET, 432 NULL 433}; 434 435 436int vnop_fsync_vp_offsets[] = { 437 VOPARG_OFFSETOF(struct vnop_fsync_args,a_vp), 438 VDESC_NO_OFFSET 439}; 440struct vnodeop_desc vnop_fsync_desc = { 441 0, 442 "vnop_fsync", 443 0, 444 vnop_fsync_vp_offsets, 445 VDESC_NO_OFFSET, 446 VDESC_NO_OFFSET, 447 VDESC_NO_OFFSET, 448 VDESC_NO_OFFSET, 449 VOPARG_OFFSETOF(struct vnop_fsync_args, a_context), 450 NULL 451}; 452 453int vnop_remove_vp_offsets[] = { 454 VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp), 455 VOPARG_OFFSETOF(struct vnop_remove_args,a_vp), 456 VDESC_NO_OFFSET 457}; 458struct vnodeop_desc vnop_remove_desc = { 459 0, 460 "vnop_remove", 461 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, 462 vnop_remove_vp_offsets, 463 VDESC_NO_OFFSET, 464 VDESC_NO_OFFSET, 465 VDESC_NO_OFFSET, 466 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp), 467 VOPARG_OFFSETOF(struct vnop_remove_args, a_context), 468 NULL 469}; 470 471int vnop_link_vp_offsets[] = { 472 VOPARG_OFFSETOF(struct vnop_link_args,a_vp), 473 VOPARG_OFFSETOF(struct vnop_link_args,a_tdvp), 474 VDESC_NO_OFFSET 475}; 476struct vnodeop_desc vnop_link_desc = { 477 0, 478 "vnop_link", 479 0 | VDESC_VP1_WILLRELE, 480 vnop_link_vp_offsets, 481 VDESC_NO_OFFSET, 482 VDESC_NO_OFFSET, 483 VDESC_NO_OFFSET, 484 VOPARG_OFFSETOF(struct vnop_link_args, a_cnp), 485 VOPARG_OFFSETOF(struct vnop_link_args, a_context), 486 NULL 487}; 488 489int vnop_rename_vp_offsets[] = { 490 VOPARG_OFFSETOF(struct vnop_rename_args,a_fdvp), 491 VOPARG_OFFSETOF(struct vnop_rename_args,a_fvp), 492 VOPARG_OFFSETOF(struct vnop_rename_args,a_tdvp), 493 VOPARG_OFFSETOF(struct vnop_rename_args,a_tvp), 494 VDESC_NO_OFFSET 495}; 496struct vnodeop_desc vnop_rename_desc = { 497 0, 498 "vnop_rename", 499 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE, 500 vnop_rename_vp_offsets, 501 VDESC_NO_OFFSET, 502 VDESC_NO_OFFSET, 503 VDESC_NO_OFFSET, 504 VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp), 505 VOPARG_OFFSETOF(struct vnop_rename_args, a_context), 506 NULL 507}; 508 509int vnop_mkdir_vp_offsets[] = { 510 VOPARG_OFFSETOF(struct vnop_mkdir_args,a_dvp), 511 VDESC_NO_OFFSET 512}; 513struct vnodeop_desc vnop_mkdir_desc = { 514 0, 515 "vnop_mkdir", 516 0 | VDESC_VP0_WILLRELE, 517 vnop_mkdir_vp_offsets, 518 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp), 519 VDESC_NO_OFFSET, 520 VDESC_NO_OFFSET, 521 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp), 522 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context), 523 NULL 524}; 525 526int vnop_rmdir_vp_offsets[] = { 527 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp), 528 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp), 529 VDESC_NO_OFFSET 530}; 531struct vnodeop_desc vnop_rmdir_desc = { 532 0, 533 "vnop_rmdir", 534 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, 535 vnop_rmdir_vp_offsets, 536 VDESC_NO_OFFSET, 537 VDESC_NO_OFFSET, 538 VDESC_NO_OFFSET, 539 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp), 540 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context), 541 NULL 542}; 543 544int vnop_symlink_vp_offsets[] = { 545 VOPARG_OFFSETOF(struct vnop_symlink_args,a_dvp), 546 VDESC_NO_OFFSET 547}; 548struct vnodeop_desc vnop_symlink_desc = { 549 0, 550 "vnop_symlink", 551 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, 552 vnop_symlink_vp_offsets, 553 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp), 554 VDESC_NO_OFFSET, 555 VDESC_NO_OFFSET, 556 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp), 557 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context), 558 NULL 559}; 560 561int vnop_readdir_vp_offsets[] = { 562 VOPARG_OFFSETOF(struct vnop_readdir_args,a_vp), 563 VDESC_NO_OFFSET 564}; 565struct vnodeop_desc vnop_readdir_desc = { 566 0, 567 "vnop_readdir", 568 0, 569 vnop_readdir_vp_offsets, 570 VDESC_NO_OFFSET, 571 VDESC_NO_OFFSET, 572 VDESC_NO_OFFSET, 573 VDESC_NO_OFFSET, 574 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context), 575 NULL 576}; 577 578int vnop_readdirattr_vp_offsets[] = { 579 VOPARG_OFFSETOF(struct vnop_readdirattr_args,a_vp), 580 VDESC_NO_OFFSET 581}; 582struct vnodeop_desc vnop_readdirattr_desc = { 583 0, 584 "vnop_readdirattr", 585 0, 586 vnop_readdirattr_vp_offsets, 587 VDESC_NO_OFFSET, 588 VDESC_NO_OFFSET, 589 VDESC_NO_OFFSET, 590 VDESC_NO_OFFSET, 591 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context), 592 NULL 593}; 594 595int vnop_readlink_vp_offsets[] = { 596 VOPARG_OFFSETOF(struct vnop_readlink_args,a_vp), 597 VDESC_NO_OFFSET 598}; 599struct vnodeop_desc vnop_readlink_desc = { 600 0, 601 "vnop_readlink", 602 0, 603 vnop_readlink_vp_offsets, 604 VDESC_NO_OFFSET, 605 VDESC_NO_OFFSET, 606 VDESC_NO_OFFSET, 607 VDESC_NO_OFFSET, 608 VOPARG_OFFSETOF(struct vnop_readlink_args, a_context), 609 NULL 610}; 611 612int vnop_inactive_vp_offsets[] = { 613 VOPARG_OFFSETOF(struct vnop_inactive_args,a_vp), 614 VDESC_NO_OFFSET 615}; 616struct vnodeop_desc vnop_inactive_desc = { 617 0, 618 "vnop_inactive", 619 0, 620 vnop_inactive_vp_offsets, 621 VDESC_NO_OFFSET, 622 VDESC_NO_OFFSET, 623 VDESC_NO_OFFSET, 624 VDESC_NO_OFFSET, 625 VOPARG_OFFSETOF(struct vnop_inactive_args, a_context), 626 NULL 627}; 628 629int vnop_reclaim_vp_offsets[] = { 630 VOPARG_OFFSETOF(struct vnop_reclaim_args,a_vp), 631 VDESC_NO_OFFSET 632}; 633struct vnodeop_desc vnop_reclaim_desc = { 634 0, 635 "vnop_reclaim", 636 0, 637 vnop_reclaim_vp_offsets, 638 VDESC_NO_OFFSET, 639 VDESC_NO_OFFSET, 640 VDESC_NO_OFFSET, 641 VDESC_NO_OFFSET, 642 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context), 643 NULL 644}; 645 646int vnop_pathconf_vp_offsets[] = { 647 VOPARG_OFFSETOF(struct vnop_pathconf_args,a_vp), 648 VDESC_NO_OFFSET 649}; 650struct vnodeop_desc vnop_pathconf_desc = { 651 0, 652 "vnop_pathconf", 653 0, 654 vnop_pathconf_vp_offsets, 655 VDESC_NO_OFFSET, 656 VDESC_NO_OFFSET, 657 VDESC_NO_OFFSET, 658 VDESC_NO_OFFSET, 659 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context), 660 NULL 661}; 662 663int vnop_advlock_vp_offsets[] = { 664 VOPARG_OFFSETOF(struct vnop_advlock_args,a_vp), 665 VDESC_NO_OFFSET 666}; 667struct vnodeop_desc vnop_advlock_desc = { 668 0, 669 "vnop_advlock", 670 0, 671 vnop_advlock_vp_offsets, 672 VDESC_NO_OFFSET, 673 VDESC_NO_OFFSET, 674 VDESC_NO_OFFSET, 675 VDESC_NO_OFFSET, 676 VOPARG_OFFSETOF(struct vnop_advlock_args, a_context), 677 NULL 678}; 679 680int vnop_allocate_vp_offsets[] = { 681 VOPARG_OFFSETOF(struct vnop_allocate_args,a_vp), 682 VDESC_NO_OFFSET 683}; 684struct vnodeop_desc vnop_allocate_desc = { 685 0, 686 "vnop_allocate", 687 0, 688 vnop_allocate_vp_offsets, 689 VDESC_NO_OFFSET, 690 VDESC_NO_OFFSET, 691 VDESC_NO_OFFSET, 692 VDESC_NO_OFFSET, 693 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context), 694 NULL 695}; 696 697int vnop_pagein_vp_offsets[] = { 698 VOPARG_OFFSETOF(struct vnop_pagein_args,a_vp), 699 VDESC_NO_OFFSET 700}; 701struct vnodeop_desc vnop_pagein_desc = { 702 0, 703 "vnop_pagein", 704 0, 705 vnop_pagein_vp_offsets, 706 VDESC_NO_OFFSET, 707 VDESC_NO_OFFSET, 708 VDESC_NO_OFFSET, 709 VDESC_NO_OFFSET, 710 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context), 711 NULL 712}; 713 714int vnop_pageout_vp_offsets[] = { 715 VOPARG_OFFSETOF(struct vnop_pageout_args,a_vp), 716 VDESC_NO_OFFSET 717}; 718struct vnodeop_desc vnop_pageout_desc = { 719 0, 720 "vnop_pageout", 721 0, 722 vnop_pageout_vp_offsets, 723 VDESC_NO_OFFSET, 724 VDESC_NO_OFFSET, 725 VDESC_NO_OFFSET, 726 VDESC_NO_OFFSET, 727 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context), 728 NULL 729}; 730 731int vnop_searchfs_vp_offsets[] = { 732 VOPARG_OFFSETOF(struct vnop_searchfs_args,a_vp), 733 VDESC_NO_OFFSET 734}; 735struct vnodeop_desc vnop_searchfs_desc = { 736 0, 737 "vnop_searchfs", 738 0, 739 vnop_searchfs_vp_offsets, 740 VDESC_NO_OFFSET, 741 VDESC_NO_OFFSET, 742 VDESC_NO_OFFSET, 743 VDESC_NO_OFFSET, 744 VDESC_NO_OFFSET, 745 NULL 746}; 747 748int vnop_copyfile_vp_offsets[] = { 749 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_fvp), 750 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tdvp), 751 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tvp), 752 VDESC_NO_OFFSET 753}; 754struct vnodeop_desc vnop_copyfile_desc = { 755 0, 756 "vnop_copyfile", 757 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE, 758 vnop_copyfile_vp_offsets, 759 VDESC_NO_OFFSET, 760 VDESC_NO_OFFSET, 761 VDESC_NO_OFFSET, 762 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp), 763 VDESC_NO_OFFSET, 764 NULL 765}; 766 767int vop_getxattr_vp_offsets[] = { 768 VOPARG_OFFSETOF(struct vnop_getxattr_args,a_vp), 769 VDESC_NO_OFFSET 770}; 771struct vnodeop_desc vnop_getxattr_desc = { 772 0, 773 "vnop_getxattr", 774 0, 775 vop_getxattr_vp_offsets, 776 VDESC_NO_OFFSET, 777 VDESC_NO_OFFSET, 778 VDESC_NO_OFFSET, 779 VDESC_NO_OFFSET, 780 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context), 781 NULL 782}; 783 784int vop_setxattr_vp_offsets[] = { 785 VOPARG_OFFSETOF(struct vnop_setxattr_args,a_vp), 786 VDESC_NO_OFFSET 787}; 788struct vnodeop_desc vnop_setxattr_desc = { 789 0, 790 "vnop_setxattr", 791 0, 792 vop_setxattr_vp_offsets, 793 VDESC_NO_OFFSET, 794 VDESC_NO_OFFSET, 795 VDESC_NO_OFFSET, 796 VDESC_NO_OFFSET, 797 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context), 798 NULL 799}; 800 801int vop_removexattr_vp_offsets[] = { 802 VOPARG_OFFSETOF(struct vnop_removexattr_args,a_vp), 803 VDESC_NO_OFFSET 804}; 805struct vnodeop_desc vnop_removexattr_desc = { 806 0, 807 "vnop_removexattr", 808 0, 809 vop_removexattr_vp_offsets, 810 VDESC_NO_OFFSET, 811 VDESC_NO_OFFSET, 812 VDESC_NO_OFFSET, 813 VDESC_NO_OFFSET, 814 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context), 815 NULL 816}; 817 818int vop_listxattr_vp_offsets[] = { 819 VOPARG_OFFSETOF(struct vnop_listxattr_args,a_vp), 820 VDESC_NO_OFFSET 821}; 822struct vnodeop_desc vnop_listxattr_desc = { 823 0, 824 "vnop_listxattr", 825 0, 826 vop_listxattr_vp_offsets, 827 VDESC_NO_OFFSET, 828 VDESC_NO_OFFSET, 829 VDESC_NO_OFFSET, 830 VDESC_NO_OFFSET, 831 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context), 832 NULL 833}; 834 835int vnop_blktooff_vp_offsets[] = { 836 VOPARG_OFFSETOF(struct vnop_blktooff_args,a_vp), 837 VDESC_NO_OFFSET 838}; 839struct vnodeop_desc vnop_blktooff_desc = { 840 0, 841 "vnop_blktooff", 842 0, 843 vnop_blktooff_vp_offsets, 844 VDESC_NO_OFFSET, 845 VDESC_NO_OFFSET, 846 VDESC_NO_OFFSET, 847 VDESC_NO_OFFSET, 848 VDESC_NO_OFFSET, 849 NULL 850}; 851 852int vnop_offtoblk_vp_offsets[] = { 853 VOPARG_OFFSETOF(struct vnop_offtoblk_args,a_vp), 854 VDESC_NO_OFFSET 855}; 856struct vnodeop_desc vnop_offtoblk_desc = { 857 0, 858 "vnop_offtoblk", 859 0, 860 vnop_offtoblk_vp_offsets, 861 VDESC_NO_OFFSET, 862 VDESC_NO_OFFSET, 863 VDESC_NO_OFFSET, 864 VDESC_NO_OFFSET, 865 VDESC_NO_OFFSET, 866 NULL 867}; 868 869int vnop_blockmap_vp_offsets[] = { 870 VOPARG_OFFSETOF(struct vnop_blockmap_args,a_vp), 871 VDESC_NO_OFFSET 872}; 873struct vnodeop_desc vnop_blockmap_desc = { 874 0, 875 "vnop_blockmap", 876 0, 877 vnop_blockmap_vp_offsets, 878 VDESC_NO_OFFSET, 879 VDESC_NO_OFFSET, 880 VDESC_NO_OFFSET, 881 VDESC_NO_OFFSET, 882 VDESC_NO_OFFSET, 883 NULL 884}; 885 886#if NAMEDSTREAMS 887int vnop_getnamedstream_vp_offsets[] = { 888 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp), 889 VDESC_NO_OFFSET 890}; 891struct vnodeop_desc vnop_getnamedstream_desc = { 892 0, 893 "vnop_getnamedstream", 894 0, 895 vnop_getnamedstream_vp_offsets, 896 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp), 897 VDESC_NO_OFFSET, 898 VDESC_NO_OFFSET, 899 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name), 900 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context), 901 NULL 902}; 903 904int vnop_makenamedstream_vp_offsets[] = { 905 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp), 906 VDESC_NO_OFFSET 907}; 908struct vnodeop_desc vnop_makenamedstream_desc = { 909 0, 910 "vnop_makenamedstream", 911 0, /* flags */ 912 vnop_makenamedstream_vp_offsets, 913 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp), 914 VDESC_NO_OFFSET, 915 VDESC_NO_OFFSET, 916 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name), 917 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context), 918 NULL 919}; 920 921int vnop_removenamedstream_vp_offsets[] = { 922 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp), 923 VDESC_NO_OFFSET 924}; 925struct vnodeop_desc vnop_removenamedstream_desc = { 926 0, 927 "vnop_removenamedstream", 928 0, 929 vnop_removenamedstream_vp_offsets, 930 VDESC_NO_OFFSET, 931 VDESC_NO_OFFSET, 932 VDESC_NO_OFFSET, 933 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_name), 934 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_context), 935 NULL 936}; 937#else 938/* These symbols are in the exports list so they need to always be defined. */ 939int vnop_getnamedstream_desc; 940int vnop_makenamedstream_desc; 941int vnop_removenamedstream_desc; 942#endif 943 944/* Special cases: */ 945 946int vnop_strategy_vp_offsets[] = { 947 VDESC_NO_OFFSET 948}; 949struct vnodeop_desc vnop_strategy_desc = { 950 0, 951 "vnop_strategy", 952 0, 953 vnop_strategy_vp_offsets, 954 VDESC_NO_OFFSET, 955 VDESC_NO_OFFSET, 956 VDESC_NO_OFFSET, 957 VDESC_NO_OFFSET, 958 VDESC_NO_OFFSET, 959 NULL 960}; 961 962int vnop_bwrite_vp_offsets[] = { 963 VDESC_NO_OFFSET 964}; 965struct vnodeop_desc vnop_bwrite_desc = { 966 0, 967 "vnop_bwrite", 968 0, 969 vnop_bwrite_vp_offsets, 970 VDESC_NO_OFFSET, 971 VDESC_NO_OFFSET, 972 VDESC_NO_OFFSET, 973 VDESC_NO_OFFSET, 974 VDESC_NO_OFFSET, 975 NULL 976}; 977 978/* End of special cases. */ 979 980struct vnodeop_desc *vfs_op_descs[] = { 981 &vnop_default_desc, /* MUST BE FIRST */ 982 &vnop_strategy_desc, /* XXX: SPECIAL CASE */ 983 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */ 984 985 &vnop_lookup_desc, 986 &vnop_create_desc, 987 &vnop_mknod_desc, 988 &vnop_whiteout_desc, 989 &vnop_open_desc, 990 &vnop_close_desc, 991 &vnop_access_desc, 992 &vnop_getattr_desc, 993 &vnop_setattr_desc, 994 &vnop_read_desc, 995 &vnop_write_desc, 996 &vnop_ioctl_desc, 997 &vnop_select_desc, 998 &vnop_exchange_desc, 999 &vnop_kqfilt_add_desc, 1000 &vnop_kqfilt_remove_desc, 1001 &vnop_setlabel_desc, 1002 &vnop_revoke_desc, 1003 &vnop_mmap_desc, 1004 &vnop_mnomap_desc, 1005 &vnop_fsync_desc, 1006 &vnop_remove_desc, 1007 &vnop_link_desc, 1008 &vnop_rename_desc, 1009 &vnop_mkdir_desc, 1010 &vnop_rmdir_desc, 1011 &vnop_symlink_desc, 1012 &vnop_readdir_desc, 1013 &vnop_readdirattr_desc, 1014 &vnop_readlink_desc, 1015 &vnop_inactive_desc, 1016 &vnop_reclaim_desc, 1017 &vnop_pathconf_desc, 1018 &vnop_advlock_desc, 1019 &vnop_allocate_desc, 1020 &vnop_pagein_desc, 1021 &vnop_pageout_desc, 1022 &vnop_searchfs_desc, 1023 &vnop_copyfile_desc, 1024 &vnop_getxattr_desc, 1025 &vnop_setxattr_desc, 1026 &vnop_removexattr_desc, 1027 &vnop_listxattr_desc, 1028 &vnop_blktooff_desc, 1029 &vnop_offtoblk_desc, 1030 &vnop_blockmap_desc, 1031#if NAMEDSTREAMS 1032 &vnop_getnamedstream_desc, 1033 &vnop_makenamedstream_desc, 1034 &vnop_removenamedstream_desc, 1035#endif 1036 NULL 1037}; 1038 1039