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