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_compound_open_vp_offsets[] = { 110 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_dvp), 111 VDESC_NO_OFFSET 112}; 113 114struct vnodeop_desc vnop_compound_open_desc = { 115 0, 116 "vnop_compound_open", 117 0 | VDESC_VP0_WILLRELE, 118 vnop_compound_open_vp_offsets, 119 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_vpp), 120 VDESC_NO_OFFSET, 121 VDESC_NO_OFFSET, 122 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_cnp), 123 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_context), 124 NULL 125}; 126 127int vnop_create_vp_offsets[] = { 128 VOPARG_OFFSETOF(struct vnop_create_args,a_dvp), 129 VDESC_NO_OFFSET 130}; 131struct vnodeop_desc vnop_create_desc = { 132 0, 133 "vnop_create", 134 0 | VDESC_VP0_WILLRELE, 135 vnop_create_vp_offsets, 136 VOPARG_OFFSETOF(struct vnop_create_args, a_vpp), 137 VDESC_NO_OFFSET, 138 VDESC_NO_OFFSET, 139 VOPARG_OFFSETOF(struct vnop_create_args, a_cnp), 140 VOPARG_OFFSETOF(struct vnop_create_args, a_context), 141 NULL 142}; 143 144int vnop_whiteout_vp_offsets[] = { 145 VOPARG_OFFSETOF(struct vnop_whiteout_args,a_dvp), 146 VDESC_NO_OFFSET 147}; 148struct vnodeop_desc vnop_whiteout_desc = { 149 0, 150 "vnop_whiteout", 151 0 | VDESC_VP0_WILLRELE, 152 vnop_whiteout_vp_offsets, 153 VDESC_NO_OFFSET, 154 VDESC_NO_OFFSET, 155 VDESC_NO_OFFSET, 156 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp), 157 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context), 158 NULL 159}; 160 161int vnop_mknod_vp_offsets[] = { 162 VOPARG_OFFSETOF(struct vnop_mknod_args,a_dvp), 163 VDESC_NO_OFFSET 164}; 165struct vnodeop_desc vnop_mknod_desc = { 166 0, 167 "vnop_mknod", 168 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, 169 vnop_mknod_vp_offsets, 170 VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp), 171 VDESC_NO_OFFSET, 172 VDESC_NO_OFFSET, 173 VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp), 174 VOPARG_OFFSETOF(struct vnop_mknod_args, a_context), 175 NULL 176}; 177 178int vnop_open_vp_offsets[] = { 179 VOPARG_OFFSETOF(struct vnop_open_args,a_vp), 180 VDESC_NO_OFFSET 181}; 182struct vnodeop_desc vnop_open_desc = { 183 0, 184 "vnop_open", 185 0, 186 vnop_open_vp_offsets, 187 VDESC_NO_OFFSET, 188 VDESC_NO_OFFSET, 189 VDESC_NO_OFFSET, 190 VDESC_NO_OFFSET, 191 VOPARG_OFFSETOF(struct vnop_open_args, a_context), 192 NULL 193}; 194 195int vnop_close_vp_offsets[] = { 196 VOPARG_OFFSETOF(struct vnop_close_args,a_vp), 197 VDESC_NO_OFFSET 198}; 199struct vnodeop_desc vnop_close_desc = { 200 0, 201 "vnop_close", 202 0, 203 vnop_close_vp_offsets, 204 VDESC_NO_OFFSET, 205 VDESC_NO_OFFSET, 206 VDESC_NO_OFFSET, 207 VDESC_NO_OFFSET, 208 VOPARG_OFFSETOF(struct vnop_close_args, a_context), 209 NULL 210}; 211 212int vnop_access_vp_offsets[] = { 213 VOPARG_OFFSETOF(struct vnop_access_args,a_vp), 214 VDESC_NO_OFFSET 215}; 216struct vnodeop_desc vnop_access_desc = { 217 0, 218 "vnop_access", 219 0, 220 vnop_access_vp_offsets, 221 VDESC_NO_OFFSET, 222 VDESC_NO_OFFSET, 223 VDESC_NO_OFFSET, 224 VDESC_NO_OFFSET, 225 VOPARG_OFFSETOF(struct vnop_close_args, a_context), 226 NULL 227}; 228 229int vnop_getattr_vp_offsets[] = { 230 VOPARG_OFFSETOF(struct vnop_getattr_args,a_vp), 231 VDESC_NO_OFFSET 232}; 233struct vnodeop_desc vnop_getattr_desc = { 234 0, 235 "vnop_getattr", 236 0, 237 vnop_getattr_vp_offsets, 238 VDESC_NO_OFFSET, 239 VDESC_NO_OFFSET, 240 VDESC_NO_OFFSET, 241 VDESC_NO_OFFSET, 242 VOPARG_OFFSETOF(struct vnop_getattr_args, a_context), 243 NULL 244}; 245 246int vnop_setattr_vp_offsets[] = { 247 VOPARG_OFFSETOF(struct vnop_setattr_args,a_vp), 248 VDESC_NO_OFFSET 249}; 250struct vnodeop_desc vnop_setattr_desc = { 251 0, 252 "vnop_setattr", 253 0, 254 vnop_setattr_vp_offsets, 255 VDESC_NO_OFFSET, 256 VDESC_NO_OFFSET, 257 VDESC_NO_OFFSET, 258 VDESC_NO_OFFSET, 259 VOPARG_OFFSETOF(struct vnop_setattr_args, a_context), 260 NULL 261}; 262 263int vnop_read_vp_offsets[] = { 264 VOPARG_OFFSETOF(struct vnop_read_args,a_vp), 265 VDESC_NO_OFFSET 266}; 267struct vnodeop_desc vnop_read_desc = { 268 0, 269 "vnop_read", 270 0, 271 vnop_read_vp_offsets, 272 VDESC_NO_OFFSET, 273 VDESC_NO_OFFSET, 274 VDESC_NO_OFFSET, 275 VDESC_NO_OFFSET, 276 VOPARG_OFFSETOF(struct vnop_read_args, a_context), 277 NULL 278}; 279 280int vnop_write_vp_offsets[] = { 281 VOPARG_OFFSETOF(struct vnop_write_args,a_vp), 282 VDESC_NO_OFFSET 283}; 284struct vnodeop_desc vnop_write_desc = { 285 0, 286 "vnop_write", 287 0, 288 vnop_write_vp_offsets, 289 VDESC_NO_OFFSET, 290 VDESC_NO_OFFSET, 291 VDESC_NO_OFFSET, 292 VDESC_NO_OFFSET, 293 VOPARG_OFFSETOF(struct vnop_write_args, a_context), 294 NULL 295}; 296 297int vnop_ioctl_vp_offsets[] = { 298 VOPARG_OFFSETOF(struct vnop_ioctl_args,a_vp), 299 VDESC_NO_OFFSET 300}; 301struct vnodeop_desc vnop_ioctl_desc = { 302 0, 303 "vnop_ioctl", 304 0, 305 vnop_ioctl_vp_offsets, 306 VDESC_NO_OFFSET, 307 VDESC_NO_OFFSET, 308 VDESC_NO_OFFSET, 309 VDESC_NO_OFFSET, 310 VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context), 311 NULL 312}; 313 314int vnop_select_vp_offsets[] = { 315 VOPARG_OFFSETOF(struct vnop_select_args,a_vp), 316 VDESC_NO_OFFSET 317}; 318struct vnodeop_desc vnop_select_desc = { 319 0, 320 "vnop_select", 321 0, 322 vnop_select_vp_offsets, 323 VDESC_NO_OFFSET, 324 VDESC_NO_OFFSET, 325 VDESC_NO_OFFSET, 326 VDESC_NO_OFFSET, 327 VOPARG_OFFSETOF(struct vnop_select_args, a_context), 328 NULL 329}; 330 331int vnop_exchange_vp_offsets[] = { 332 VOPARG_OFFSETOF(struct vnop_exchange_args,a_fvp), 333 VOPARG_OFFSETOF(struct vnop_exchange_args,a_tvp), 334 VDESC_NO_OFFSET 335}; 336struct vnodeop_desc vnop_exchange_desc = { 337 0, 338 "vnop_exchange", 339 0, 340 vnop_exchange_vp_offsets, 341 VDESC_NO_OFFSET, 342 VDESC_NO_OFFSET, 343 VDESC_NO_OFFSET, 344 VDESC_NO_OFFSET, 345 VOPARG_OFFSETOF(struct vnop_exchange_args, a_context), 346 NULL 347}; 348 349int vnop_kqfilt_add_vp_offsets[] = { 350 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args,a_vp), 351 VDESC_NO_OFFSET 352}; 353struct vnodeop_desc vnop_kqfilt_add_desc = { 354 0, 355 "vnop_kqfilt_add", 356 0, 357 vnop_kqfilt_add_vp_offsets, 358 VDESC_NO_OFFSET, 359 VDESC_NO_OFFSET, 360 VDESC_NO_OFFSET, 361 VDESC_NO_OFFSET, 362 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context), 363 NULL 364}; 365 366int vnop_kqfilt_remove_vp_offsets[] = { 367 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args,a_vp), 368 VDESC_NO_OFFSET 369}; 370struct vnodeop_desc vnop_kqfilt_remove_desc = { 371 0, 372 "vnop_kqfilt_remove", 373 0, 374 vnop_kqfilt_remove_vp_offsets, 375 VDESC_NO_OFFSET, 376 VDESC_NO_OFFSET, 377 VDESC_NO_OFFSET, 378 VDESC_NO_OFFSET, 379 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context), 380 NULL 381}; 382 383int vnop_monitor_vp_offsets[] = { 384 VOPARG_OFFSETOF(struct vnop_monitor_args,a_vp), 385 VDESC_NO_OFFSET 386}; 387struct vnodeop_desc vnop_monitor_desc = { 388 0, 389 "vnop_monitor", 390 0, 391 vnop_monitor_vp_offsets, 392 VDESC_NO_OFFSET, 393 VDESC_NO_OFFSET, 394 VDESC_NO_OFFSET, 395 VDESC_NO_OFFSET, 396 VOPARG_OFFSETOF(struct vnop_monitor_args, a_context), 397 NULL 398}; 399 400int vnop_setlabel_vp_offsets[] = { 401 VOPARG_OFFSETOF(struct vnop_setlabel_args,a_vp), 402 VDESC_NO_OFFSET 403}; 404struct vnodeop_desc vnop_setlabel_desc = { 405 0, 406 "vnop_setlabel", 407 0, 408 vnop_setlabel_vp_offsets, 409 VDESC_NO_OFFSET, 410 VDESC_NO_OFFSET, 411 VDESC_NO_OFFSET, 412 VDESC_NO_OFFSET, 413 VOPARG_OFFSETOF(struct vnop_setlabel_args, a_context), 414 NULL, 415}; 416 417int vnop_revoke_vp_offsets[] = { 418 VOPARG_OFFSETOF(struct vnop_revoke_args,a_vp), 419 VDESC_NO_OFFSET 420}; 421struct vnodeop_desc vnop_revoke_desc = { 422 0, 423 "vnop_revoke", 424 0, 425 vnop_revoke_vp_offsets, 426 VDESC_NO_OFFSET, 427 VDESC_NO_OFFSET, 428 VDESC_NO_OFFSET, 429 VDESC_NO_OFFSET, 430 VDESC_NO_OFFSET, 431 NULL 432}; 433 434 435int vnop_mmap_vp_offsets[] = { 436 VOPARG_OFFSETOF(struct vnop_mmap_args,a_vp), 437 VDESC_NO_OFFSET 438}; 439struct vnodeop_desc vnop_mmap_desc = { 440 0, 441 "vnop_mmap", 442 0, 443 vnop_mmap_vp_offsets, 444 VDESC_NO_OFFSET, 445 VDESC_NO_OFFSET, 446 VDESC_NO_OFFSET, 447 VDESC_NO_OFFSET, 448 VDESC_NO_OFFSET, 449 NULL 450}; 451 452 453int vnop_mnomap_vp_offsets[] = { 454 VOPARG_OFFSETOF(struct vnop_mnomap_args,a_vp), 455 VDESC_NO_OFFSET 456}; 457struct vnodeop_desc vnop_mnomap_desc = { 458 0, 459 "vnop_mnomap", 460 0, 461 vnop_mnomap_vp_offsets, 462 VDESC_NO_OFFSET, 463 VDESC_NO_OFFSET, 464 VDESC_NO_OFFSET, 465 VDESC_NO_OFFSET, 466 VDESC_NO_OFFSET, 467 NULL 468}; 469 470 471int vnop_fsync_vp_offsets[] = { 472 VOPARG_OFFSETOF(struct vnop_fsync_args,a_vp), 473 VDESC_NO_OFFSET 474}; 475struct vnodeop_desc vnop_fsync_desc = { 476 0, 477 "vnop_fsync", 478 0, 479 vnop_fsync_vp_offsets, 480 VDESC_NO_OFFSET, 481 VDESC_NO_OFFSET, 482 VDESC_NO_OFFSET, 483 VDESC_NO_OFFSET, 484 VOPARG_OFFSETOF(struct vnop_fsync_args, a_context), 485 NULL 486}; 487 488int vnop_remove_vp_offsets[] = { 489 VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp), 490 VOPARG_OFFSETOF(struct vnop_remove_args,a_vp), 491 VDESC_NO_OFFSET 492}; 493struct vnodeop_desc vnop_remove_desc = { 494 0, 495 "vnop_remove", 496 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, 497 vnop_remove_vp_offsets, 498 VDESC_NO_OFFSET, 499 VDESC_NO_OFFSET, 500 VDESC_NO_OFFSET, 501 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp), 502 VOPARG_OFFSETOF(struct vnop_remove_args, a_context), 503 NULL 504}; 505 506int vnop_remove_extended_vp_offsets[] = { 507 VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp), 508 VDESC_NO_OFFSET 509}; 510struct vnodeop_desc vnop_compound_remove_desc = { 511 0, 512 "vnop_compound_remove", 513 0, 514 vnop_remove_vp_offsets, 515 VOPARG_OFFSETOF(struct vnop_compound_remove_args, a_vpp), 516 VDESC_NO_OFFSET, 517 VDESC_NO_OFFSET, 518 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp), 519 VOPARG_OFFSETOF(struct vnop_remove_args, a_context), 520 NULL 521}; 522 523int vnop_link_vp_offsets[] = { 524 VOPARG_OFFSETOF(struct vnop_link_args,a_vp), 525 VOPARG_OFFSETOF(struct vnop_link_args,a_tdvp), 526 VDESC_NO_OFFSET 527}; 528struct vnodeop_desc vnop_link_desc = { 529 0, 530 "vnop_link", 531 0 | VDESC_VP1_WILLRELE, 532 vnop_link_vp_offsets, 533 VDESC_NO_OFFSET, 534 VDESC_NO_OFFSET, 535 VDESC_NO_OFFSET, 536 VOPARG_OFFSETOF(struct vnop_link_args, a_cnp), 537 VOPARG_OFFSETOF(struct vnop_link_args, a_context), 538 NULL 539}; 540 541int vnop_rename_vp_offsets[] = { 542 VOPARG_OFFSETOF(struct vnop_rename_args,a_fdvp), 543 VOPARG_OFFSETOF(struct vnop_rename_args,a_fvp), 544 VOPARG_OFFSETOF(struct vnop_rename_args,a_tdvp), 545 VOPARG_OFFSETOF(struct vnop_rename_args,a_tvp), 546 VDESC_NO_OFFSET 547}; 548struct vnodeop_desc vnop_rename_desc = { 549 0, 550 "vnop_rename", 551 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE, 552 vnop_rename_vp_offsets, 553 VDESC_NO_OFFSET, 554 VDESC_NO_OFFSET, 555 VDESC_NO_OFFSET, 556 VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp), 557 VOPARG_OFFSETOF(struct vnop_rename_args, a_context), 558 NULL 559}; 560 561int vnop_compound_rename_vp_offsets[] = { 562 VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_fdvp), 563 VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_fvpp), 564 VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_tdvp), 565 VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_tvpp), 566 VDESC_NO_OFFSET 567}; 568struct vnodeop_desc vnop_compound_rename_desc = { 569 0, 570 "vnop_compound_rename", 571 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE, 572 vnop_compound_rename_vp_offsets, 573 VDESC_NO_OFFSET, 574 VDESC_NO_OFFSET, 575 VDESC_NO_OFFSET, 576 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fcnp), 577 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_context), 578 NULL 579}; 580 581int vnop_mkdir_vp_offsets[] = { 582 VOPARG_OFFSETOF(struct vnop_mkdir_args,a_dvp), 583 VDESC_NO_OFFSET 584}; 585struct vnodeop_desc vnop_mkdir_desc = { 586 0, 587 "vnop_mkdir", 588 0 | VDESC_VP0_WILLRELE, 589 vnop_mkdir_vp_offsets, 590 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp), 591 VDESC_NO_OFFSET, 592 VDESC_NO_OFFSET, 593 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp), 594 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context), 595 NULL 596}; 597 598int vnop_compound_mkdir_vp_offsets[] = { 599 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args,a_dvp), 600 VDESC_NO_OFFSET 601}; 602struct vnodeop_desc vnop_compound_mkdir_desc = { 603 0, 604 "vnop_compound_mkdir", 605 0 | VDESC_VP0_WILLRELE, 606 vnop_compound_mkdir_vp_offsets, 607 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_vpp), 608 VDESC_NO_OFFSET, 609 VDESC_NO_OFFSET, 610 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_cnp), 611 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_context), 612 NULL 613}; 614 615 616int vnop_rmdir_vp_offsets[] = { 617 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp), 618 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp), 619 VDESC_NO_OFFSET 620}; 621struct vnodeop_desc vnop_rmdir_desc = { 622 0, 623 "vnop_rmdir", 624 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, 625 vnop_rmdir_vp_offsets, 626 VDESC_NO_OFFSET, 627 VDESC_NO_OFFSET, 628 VDESC_NO_OFFSET, 629 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp), 630 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context), 631 NULL 632}; 633 634int vnop_compound_rmdir_vp_offsets[] = { 635 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args,a_dvp), 636 VDESC_NO_OFFSET 637}; 638struct vnodeop_desc vnop_compound_rmdir_desc = { 639 0, 640 "vnop_compound_rmdir", 641 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE, 642 vnop_rmdir_vp_offsets, 643 VDESC_NO_OFFSET, 644 VDESC_NO_OFFSET, 645 VDESC_NO_OFFSET, 646 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_cnp), 647 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_context), 648 NULL 649}; 650 651int vnop_symlink_vp_offsets[] = { 652 VOPARG_OFFSETOF(struct vnop_symlink_args,a_dvp), 653 VDESC_NO_OFFSET 654}; 655struct vnodeop_desc vnop_symlink_desc = { 656 0, 657 "vnop_symlink", 658 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE, 659 vnop_symlink_vp_offsets, 660 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp), 661 VDESC_NO_OFFSET, 662 VDESC_NO_OFFSET, 663 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp), 664 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context), 665 NULL 666}; 667 668int vnop_readdir_vp_offsets[] = { 669 VOPARG_OFFSETOF(struct vnop_readdir_args,a_vp), 670 VDESC_NO_OFFSET 671}; 672struct vnodeop_desc vnop_readdir_desc = { 673 0, 674 "vnop_readdir", 675 0, 676 vnop_readdir_vp_offsets, 677 VDESC_NO_OFFSET, 678 VDESC_NO_OFFSET, 679 VDESC_NO_OFFSET, 680 VDESC_NO_OFFSET, 681 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context), 682 NULL 683}; 684 685int vnop_readdirattr_vp_offsets[] = { 686 VOPARG_OFFSETOF(struct vnop_readdirattr_args,a_vp), 687 VDESC_NO_OFFSET 688}; 689struct vnodeop_desc vnop_readdirattr_desc = { 690 0, 691 "vnop_readdirattr", 692 0, 693 vnop_readdirattr_vp_offsets, 694 VDESC_NO_OFFSET, 695 VDESC_NO_OFFSET, 696 VDESC_NO_OFFSET, 697 VDESC_NO_OFFSET, 698 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context), 699 NULL 700}; 701 702int vnop_readlink_vp_offsets[] = { 703 VOPARG_OFFSETOF(struct vnop_readlink_args,a_vp), 704 VDESC_NO_OFFSET 705}; 706struct vnodeop_desc vnop_readlink_desc = { 707 0, 708 "vnop_readlink", 709 0, 710 vnop_readlink_vp_offsets, 711 VDESC_NO_OFFSET, 712 VDESC_NO_OFFSET, 713 VDESC_NO_OFFSET, 714 VDESC_NO_OFFSET, 715 VOPARG_OFFSETOF(struct vnop_readlink_args, a_context), 716 NULL 717}; 718 719int vnop_inactive_vp_offsets[] = { 720 VOPARG_OFFSETOF(struct vnop_inactive_args,a_vp), 721 VDESC_NO_OFFSET 722}; 723struct vnodeop_desc vnop_inactive_desc = { 724 0, 725 "vnop_inactive", 726 0, 727 vnop_inactive_vp_offsets, 728 VDESC_NO_OFFSET, 729 VDESC_NO_OFFSET, 730 VDESC_NO_OFFSET, 731 VDESC_NO_OFFSET, 732 VOPARG_OFFSETOF(struct vnop_inactive_args, a_context), 733 NULL 734}; 735 736int vnop_reclaim_vp_offsets[] = { 737 VOPARG_OFFSETOF(struct vnop_reclaim_args,a_vp), 738 VDESC_NO_OFFSET 739}; 740struct vnodeop_desc vnop_reclaim_desc = { 741 0, 742 "vnop_reclaim", 743 0, 744 vnop_reclaim_vp_offsets, 745 VDESC_NO_OFFSET, 746 VDESC_NO_OFFSET, 747 VDESC_NO_OFFSET, 748 VDESC_NO_OFFSET, 749 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context), 750 NULL 751}; 752 753int vnop_pathconf_vp_offsets[] = { 754 VOPARG_OFFSETOF(struct vnop_pathconf_args,a_vp), 755 VDESC_NO_OFFSET 756}; 757struct vnodeop_desc vnop_pathconf_desc = { 758 0, 759 "vnop_pathconf", 760 0, 761 vnop_pathconf_vp_offsets, 762 VDESC_NO_OFFSET, 763 VDESC_NO_OFFSET, 764 VDESC_NO_OFFSET, 765 VDESC_NO_OFFSET, 766 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context), 767 NULL 768}; 769 770int vnop_advlock_vp_offsets[] = { 771 VOPARG_OFFSETOF(struct vnop_advlock_args,a_vp), 772 VDESC_NO_OFFSET 773}; 774struct vnodeop_desc vnop_advlock_desc = { 775 0, 776 "vnop_advlock", 777 0, 778 vnop_advlock_vp_offsets, 779 VDESC_NO_OFFSET, 780 VDESC_NO_OFFSET, 781 VDESC_NO_OFFSET, 782 VDESC_NO_OFFSET, 783 VOPARG_OFFSETOF(struct vnop_advlock_args, a_context), 784 NULL 785}; 786 787int vnop_allocate_vp_offsets[] = { 788 VOPARG_OFFSETOF(struct vnop_allocate_args,a_vp), 789 VDESC_NO_OFFSET 790}; 791struct vnodeop_desc vnop_allocate_desc = { 792 0, 793 "vnop_allocate", 794 0, 795 vnop_allocate_vp_offsets, 796 VDESC_NO_OFFSET, 797 VDESC_NO_OFFSET, 798 VDESC_NO_OFFSET, 799 VDESC_NO_OFFSET, 800 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context), 801 NULL 802}; 803 804int vnop_pagein_vp_offsets[] = { 805 VOPARG_OFFSETOF(struct vnop_pagein_args,a_vp), 806 VDESC_NO_OFFSET 807}; 808struct vnodeop_desc vnop_pagein_desc = { 809 0, 810 "vnop_pagein", 811 0, 812 vnop_pagein_vp_offsets, 813 VDESC_NO_OFFSET, 814 VDESC_NO_OFFSET, 815 VDESC_NO_OFFSET, 816 VDESC_NO_OFFSET, 817 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context), 818 NULL 819}; 820 821int vnop_pageout_vp_offsets[] = { 822 VOPARG_OFFSETOF(struct vnop_pageout_args,a_vp), 823 VDESC_NO_OFFSET 824}; 825struct vnodeop_desc vnop_pageout_desc = { 826 0, 827 "vnop_pageout", 828 0, 829 vnop_pageout_vp_offsets, 830 VDESC_NO_OFFSET, 831 VDESC_NO_OFFSET, 832 VDESC_NO_OFFSET, 833 VDESC_NO_OFFSET, 834 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context), 835 NULL 836}; 837 838int vnop_searchfs_vp_offsets[] = { 839 VOPARG_OFFSETOF(struct vnop_searchfs_args,a_vp), 840 VDESC_NO_OFFSET 841}; 842struct vnodeop_desc vnop_searchfs_desc = { 843 0, 844 "vnop_searchfs", 845 0, 846 vnop_searchfs_vp_offsets, 847 VDESC_NO_OFFSET, 848 VDESC_NO_OFFSET, 849 VDESC_NO_OFFSET, 850 VDESC_NO_OFFSET, 851 VDESC_NO_OFFSET, 852 NULL 853}; 854 855int vnop_copyfile_vp_offsets[] = { 856 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_fvp), 857 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tdvp), 858 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tvp), 859 VDESC_NO_OFFSET 860}; 861struct vnodeop_desc vnop_copyfile_desc = { 862 0, 863 "vnop_copyfile", 864 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE, 865 vnop_copyfile_vp_offsets, 866 VDESC_NO_OFFSET, 867 VDESC_NO_OFFSET, 868 VDESC_NO_OFFSET, 869 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp), 870 VDESC_NO_OFFSET, 871 NULL 872}; 873 874int vop_getxattr_vp_offsets[] = { 875 VOPARG_OFFSETOF(struct vnop_getxattr_args,a_vp), 876 VDESC_NO_OFFSET 877}; 878struct vnodeop_desc vnop_getxattr_desc = { 879 0, 880 "vnop_getxattr", 881 0, 882 vop_getxattr_vp_offsets, 883 VDESC_NO_OFFSET, 884 VDESC_NO_OFFSET, 885 VDESC_NO_OFFSET, 886 VDESC_NO_OFFSET, 887 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context), 888 NULL 889}; 890 891int vop_setxattr_vp_offsets[] = { 892 VOPARG_OFFSETOF(struct vnop_setxattr_args,a_vp), 893 VDESC_NO_OFFSET 894}; 895struct vnodeop_desc vnop_setxattr_desc = { 896 0, 897 "vnop_setxattr", 898 0, 899 vop_setxattr_vp_offsets, 900 VDESC_NO_OFFSET, 901 VDESC_NO_OFFSET, 902 VDESC_NO_OFFSET, 903 VDESC_NO_OFFSET, 904 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context), 905 NULL 906}; 907 908int vop_removexattr_vp_offsets[] = { 909 VOPARG_OFFSETOF(struct vnop_removexattr_args,a_vp), 910 VDESC_NO_OFFSET 911}; 912struct vnodeop_desc vnop_removexattr_desc = { 913 0, 914 "vnop_removexattr", 915 0, 916 vop_removexattr_vp_offsets, 917 VDESC_NO_OFFSET, 918 VDESC_NO_OFFSET, 919 VDESC_NO_OFFSET, 920 VDESC_NO_OFFSET, 921 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context), 922 NULL 923}; 924 925int vop_listxattr_vp_offsets[] = { 926 VOPARG_OFFSETOF(struct vnop_listxattr_args,a_vp), 927 VDESC_NO_OFFSET 928}; 929struct vnodeop_desc vnop_listxattr_desc = { 930 0, 931 "vnop_listxattr", 932 0, 933 vop_listxattr_vp_offsets, 934 VDESC_NO_OFFSET, 935 VDESC_NO_OFFSET, 936 VDESC_NO_OFFSET, 937 VDESC_NO_OFFSET, 938 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context), 939 NULL 940}; 941 942int vnop_blktooff_vp_offsets[] = { 943 VOPARG_OFFSETOF(struct vnop_blktooff_args,a_vp), 944 VDESC_NO_OFFSET 945}; 946struct vnodeop_desc vnop_blktooff_desc = { 947 0, 948 "vnop_blktooff", 949 0, 950 vnop_blktooff_vp_offsets, 951 VDESC_NO_OFFSET, 952 VDESC_NO_OFFSET, 953 VDESC_NO_OFFSET, 954 VDESC_NO_OFFSET, 955 VDESC_NO_OFFSET, 956 NULL 957}; 958 959int vnop_offtoblk_vp_offsets[] = { 960 VOPARG_OFFSETOF(struct vnop_offtoblk_args,a_vp), 961 VDESC_NO_OFFSET 962}; 963struct vnodeop_desc vnop_offtoblk_desc = { 964 0, 965 "vnop_offtoblk", 966 0, 967 vnop_offtoblk_vp_offsets, 968 VDESC_NO_OFFSET, 969 VDESC_NO_OFFSET, 970 VDESC_NO_OFFSET, 971 VDESC_NO_OFFSET, 972 VDESC_NO_OFFSET, 973 NULL 974}; 975 976int vnop_blockmap_vp_offsets[] = { 977 VOPARG_OFFSETOF(struct vnop_blockmap_args,a_vp), 978 VDESC_NO_OFFSET 979}; 980struct vnodeop_desc vnop_blockmap_desc = { 981 0, 982 "vnop_blockmap", 983 0, 984 vnop_blockmap_vp_offsets, 985 VDESC_NO_OFFSET, 986 VDESC_NO_OFFSET, 987 VDESC_NO_OFFSET, 988 VDESC_NO_OFFSET, 989 VDESC_NO_OFFSET, 990 NULL 991}; 992 993#if NAMEDSTREAMS 994int vnop_getnamedstream_vp_offsets[] = { 995 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp), 996 VDESC_NO_OFFSET 997}; 998struct vnodeop_desc vnop_getnamedstream_desc = { 999 0, 1000 "vnop_getnamedstream", 1001 0, 1002 vnop_getnamedstream_vp_offsets, 1003 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp), 1004 VDESC_NO_OFFSET, 1005 VDESC_NO_OFFSET, 1006 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name), 1007 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context), 1008 NULL 1009}; 1010 1011int vnop_makenamedstream_vp_offsets[] = { 1012 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp), 1013 VDESC_NO_OFFSET 1014}; 1015struct vnodeop_desc vnop_makenamedstream_desc = { 1016 0, 1017 "vnop_makenamedstream", 1018 0, /* flags */ 1019 vnop_makenamedstream_vp_offsets, 1020 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp), 1021 VDESC_NO_OFFSET, 1022 VDESC_NO_OFFSET, 1023 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name), 1024 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context), 1025 NULL 1026}; 1027 1028int vnop_removenamedstream_vp_offsets[] = { 1029 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp), 1030 VDESC_NO_OFFSET 1031}; 1032struct vnodeop_desc vnop_removenamedstream_desc = { 1033 0, 1034 "vnop_removenamedstream", 1035 0, 1036 vnop_removenamedstream_vp_offsets, 1037 VDESC_NO_OFFSET, 1038 VDESC_NO_OFFSET, 1039 VDESC_NO_OFFSET, 1040 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_name), 1041 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_context), 1042 NULL 1043}; 1044#else 1045/* These symbols are in the exports list so they need to always be defined. */ 1046int vnop_getnamedstream_desc; 1047int vnop_makenamedstream_desc; 1048int vnop_removenamedstream_desc; 1049#endif 1050 1051/* Special cases: */ 1052 1053int vnop_strategy_vp_offsets[] = { 1054 VDESC_NO_OFFSET 1055}; 1056struct vnodeop_desc vnop_strategy_desc = { 1057 0, 1058 "vnop_strategy", 1059 0, 1060 vnop_strategy_vp_offsets, 1061 VDESC_NO_OFFSET, 1062 VDESC_NO_OFFSET, 1063 VDESC_NO_OFFSET, 1064 VDESC_NO_OFFSET, 1065 VDESC_NO_OFFSET, 1066 NULL 1067}; 1068 1069int vnop_bwrite_vp_offsets[] = { 1070 VDESC_NO_OFFSET 1071}; 1072struct vnodeop_desc vnop_bwrite_desc = { 1073 0, 1074 "vnop_bwrite", 1075 0, 1076 vnop_bwrite_vp_offsets, 1077 VDESC_NO_OFFSET, 1078 VDESC_NO_OFFSET, 1079 VDESC_NO_OFFSET, 1080 VDESC_NO_OFFSET, 1081 VDESC_NO_OFFSET, 1082 NULL 1083}; 1084 1085/* End of special cases. */ 1086 1087struct vnodeop_desc *vfs_op_descs[] = { 1088 &vnop_default_desc, /* MUST BE FIRST */ 1089 &vnop_strategy_desc, /* XXX: SPECIAL CASE */ 1090 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */ 1091 1092 &vnop_lookup_desc, 1093 &vnop_create_desc, 1094 &vnop_mknod_desc, 1095 &vnop_whiteout_desc, 1096 &vnop_open_desc, 1097 &vnop_compound_open_desc, 1098 &vnop_close_desc, 1099 &vnop_access_desc, 1100 &vnop_getattr_desc, 1101 &vnop_setattr_desc, 1102 &vnop_read_desc, 1103 &vnop_write_desc, 1104 &vnop_ioctl_desc, 1105 &vnop_select_desc, 1106 &vnop_exchange_desc, 1107 &vnop_kqfilt_add_desc, 1108 &vnop_kqfilt_remove_desc, 1109 &vnop_setlabel_desc, 1110 &vnop_revoke_desc, 1111 &vnop_mmap_desc, 1112 &vnop_mnomap_desc, 1113 &vnop_fsync_desc, 1114 &vnop_remove_desc, 1115 &vnop_compound_remove_desc, 1116 &vnop_link_desc, 1117 &vnop_rename_desc, 1118 &vnop_compound_rename_desc, 1119 &vnop_mkdir_desc, 1120 &vnop_compound_mkdir_desc, 1121 &vnop_rmdir_desc, 1122 &vnop_compound_rmdir_desc, 1123 &vnop_symlink_desc, 1124 &vnop_readdir_desc, 1125 &vnop_readdirattr_desc, 1126 &vnop_readlink_desc, 1127 &vnop_inactive_desc, 1128 &vnop_reclaim_desc, 1129 &vnop_pathconf_desc, 1130 &vnop_advlock_desc, 1131 &vnop_allocate_desc, 1132 &vnop_pagein_desc, 1133 &vnop_pageout_desc, 1134 &vnop_searchfs_desc, 1135 &vnop_copyfile_desc, 1136 &vnop_getxattr_desc, 1137 &vnop_setxattr_desc, 1138 &vnop_removexattr_desc, 1139 &vnop_listxattr_desc, 1140 &vnop_blktooff_desc, 1141 &vnop_offtoblk_desc, 1142 &vnop_blockmap_desc, 1143 &vnop_monitor_desc, 1144#if NAMEDSTREAMS 1145 &vnop_getnamedstream_desc, 1146 &vnop_makenamedstream_desc, 1147 &vnop_removenamedstream_desc, 1148#endif 1149 NULL 1150}; 1151 1152