2 * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
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.
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
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.
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
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.
33 * Redistribution and use in source and binary forms, with or without
34 * modification, are permitted provided that the following conditions
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.
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
64 * Warning: This file is generated automatically.
65 * (Modifications made here may easily be lost!)
67 * Created by the script:
68 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
72 #include <sys/param.h>
73 #include <sys/mount_internal.h>
75 #include <sys/vnode_internal.h>
77 struct vnodeop_desc vnop_default_desc
= {
91 int vnop_lookup_vp_offsets
[] = {
92 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_dvp
),
95 struct vnodeop_desc vnop_lookup_desc
= {
99 vnop_lookup_vp_offsets
,
100 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_vpp
),
103 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_cnp
),
104 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_context
),
108 int vnop_compound_open_vp_offsets
[] = {
109 VOPARG_OFFSETOF(struct vnop_compound_open_args
, a_dvp
),
113 struct vnodeop_desc vnop_compound_open_desc
= {
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
),
121 VOPARG_OFFSETOF(struct vnop_compound_open_args
, a_cnp
),
122 VOPARG_OFFSETOF(struct vnop_compound_open_args
, a_context
),
126 int vnop_create_vp_offsets
[] = {
127 VOPARG_OFFSETOF(struct vnop_create_args
, a_dvp
),
130 struct vnodeop_desc vnop_create_desc
= {
133 0 | VDESC_VP0_WILLRELE
,
134 vnop_create_vp_offsets
,
135 VOPARG_OFFSETOF(struct vnop_create_args
, a_vpp
),
138 VOPARG_OFFSETOF(struct vnop_create_args
, a_cnp
),
139 VOPARG_OFFSETOF(struct vnop_create_args
, a_context
),
143 int vnop_whiteout_vp_offsets
[] = {
144 VOPARG_OFFSETOF(struct vnop_whiteout_args
, a_dvp
),
147 struct vnodeop_desc vnop_whiteout_desc
= {
150 0 | VDESC_VP0_WILLRELE
,
151 vnop_whiteout_vp_offsets
,
155 VOPARG_OFFSETOF(struct vnop_whiteout_args
, a_cnp
),
156 VOPARG_OFFSETOF(struct vnop_whiteout_args
, a_context
),
160 int vnop_mknod_vp_offsets
[] = {
161 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_dvp
),
164 struct vnodeop_desc vnop_mknod_desc
= {
167 0 | VDESC_VP0_WILLRELE
| VDESC_VPP_WILLRELE
,
168 vnop_mknod_vp_offsets
,
169 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_vpp
),
172 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_cnp
),
173 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_context
),
177 int vnop_open_vp_offsets
[] = {
178 VOPARG_OFFSETOF(struct vnop_open_args
, a_vp
),
181 struct vnodeop_desc vnop_open_desc
= {
185 vnop_open_vp_offsets
,
190 VOPARG_OFFSETOF(struct vnop_open_args
, a_context
),
194 int vnop_close_vp_offsets
[] = {
195 VOPARG_OFFSETOF(struct vnop_close_args
, a_vp
),
198 struct vnodeop_desc vnop_close_desc
= {
202 vnop_close_vp_offsets
,
207 VOPARG_OFFSETOF(struct vnop_close_args
, a_context
),
211 int vnop_access_vp_offsets
[] = {
212 VOPARG_OFFSETOF(struct vnop_access_args
, a_vp
),
215 struct vnodeop_desc vnop_access_desc
= {
219 vnop_access_vp_offsets
,
224 VOPARG_OFFSETOF(struct vnop_close_args
, a_context
),
228 int vnop_getattr_vp_offsets
[] = {
229 VOPARG_OFFSETOF(struct vnop_getattr_args
, a_vp
),
232 struct vnodeop_desc vnop_getattr_desc
= {
236 vnop_getattr_vp_offsets
,
241 VOPARG_OFFSETOF(struct vnop_getattr_args
, a_context
),
245 int vnop_setattr_vp_offsets
[] = {
246 VOPARG_OFFSETOF(struct vnop_setattr_args
, a_vp
),
249 struct vnodeop_desc vnop_setattr_desc
= {
253 vnop_setattr_vp_offsets
,
258 VOPARG_OFFSETOF(struct vnop_setattr_args
, a_context
),
262 int vnop_read_vp_offsets
[] = {
263 VOPARG_OFFSETOF(struct vnop_read_args
, a_vp
),
266 struct vnodeop_desc vnop_read_desc
= {
270 vnop_read_vp_offsets
,
275 VOPARG_OFFSETOF(struct vnop_read_args
, a_context
),
279 int vnop_write_vp_offsets
[] = {
280 VOPARG_OFFSETOF(struct vnop_write_args
, a_vp
),
283 struct vnodeop_desc vnop_write_desc
= {
287 vnop_write_vp_offsets
,
292 VOPARG_OFFSETOF(struct vnop_write_args
, a_context
),
296 int vnop_ioctl_vp_offsets
[] = {
297 VOPARG_OFFSETOF(struct vnop_ioctl_args
, a_vp
),
300 struct vnodeop_desc vnop_ioctl_desc
= {
304 vnop_ioctl_vp_offsets
,
309 VOPARG_OFFSETOF(struct vnop_ioctl_args
, a_context
),
313 int vnop_select_vp_offsets
[] = {
314 VOPARG_OFFSETOF(struct vnop_select_args
, a_vp
),
317 struct vnodeop_desc vnop_select_desc
= {
321 vnop_select_vp_offsets
,
326 VOPARG_OFFSETOF(struct vnop_select_args
, a_context
),
330 int vnop_exchange_vp_offsets
[] = {
331 VOPARG_OFFSETOF(struct vnop_exchange_args
, a_fvp
),
332 VOPARG_OFFSETOF(struct vnop_exchange_args
, a_tvp
),
335 struct vnodeop_desc vnop_exchange_desc
= {
339 vnop_exchange_vp_offsets
,
344 VOPARG_OFFSETOF(struct vnop_exchange_args
, a_context
),
348 int vnop_kqfilt_add_vp_offsets
[] = {
349 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args
, a_vp
),
352 struct vnodeop_desc vnop_kqfilt_add_desc
= {
356 vnop_kqfilt_add_vp_offsets
,
361 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args
, a_context
),
365 int vnop_kqfilt_remove_vp_offsets
[] = {
366 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args
, a_vp
),
369 struct vnodeop_desc vnop_kqfilt_remove_desc
= {
371 "vnop_kqfilt_remove",
373 vnop_kqfilt_remove_vp_offsets
,
378 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args
, a_context
),
382 int vnop_monitor_vp_offsets
[] = {
383 VOPARG_OFFSETOF(struct vnop_monitor_args
, a_vp
),
386 struct vnodeop_desc vnop_monitor_desc
= {
390 vnop_monitor_vp_offsets
,
395 VOPARG_OFFSETOF(struct vnop_monitor_args
, a_context
),
399 int vnop_setlabel_vp_offsets
[] = {
400 VOPARG_OFFSETOF(struct vnop_setlabel_args
, a_vp
),
403 struct vnodeop_desc vnop_setlabel_desc
= {
407 vnop_setlabel_vp_offsets
,
412 VOPARG_OFFSETOF(struct vnop_setlabel_args
, a_context
),
416 int vnop_revoke_vp_offsets
[] = {
417 VOPARG_OFFSETOF(struct vnop_revoke_args
, a_vp
),
420 struct vnodeop_desc vnop_revoke_desc
= {
424 vnop_revoke_vp_offsets
,
433 int vnop_mmap_check_vp_offsets
[] = {
434 VOPARG_OFFSETOF(struct vnop_mmap_check_args
, a_vp
),
437 struct vnodeop_desc vnop_mmap_check_desc
= {
441 vnop_mmap_check_vp_offsets
,
450 int vnop_mmap_vp_offsets
[] = {
451 VOPARG_OFFSETOF(struct vnop_mmap_args
, a_vp
),
454 struct vnodeop_desc vnop_mmap_desc
= {
458 vnop_mmap_vp_offsets
,
467 int vnop_mnomap_vp_offsets
[] = {
468 VOPARG_OFFSETOF(struct vnop_mnomap_args
, a_vp
),
471 struct vnodeop_desc vnop_mnomap_desc
= {
475 vnop_mnomap_vp_offsets
,
484 int vnop_fsync_vp_offsets
[] = {
485 VOPARG_OFFSETOF(struct vnop_fsync_args
, a_vp
),
488 struct vnodeop_desc vnop_fsync_desc
= {
492 vnop_fsync_vp_offsets
,
497 VOPARG_OFFSETOF(struct vnop_fsync_args
, a_context
),
501 int vnop_remove_vp_offsets
[] = {
502 VOPARG_OFFSETOF(struct vnop_remove_args
, a_dvp
),
503 VOPARG_OFFSETOF(struct vnop_remove_args
, a_vp
),
506 struct vnodeop_desc vnop_remove_desc
= {
509 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
,
510 vnop_remove_vp_offsets
,
514 VOPARG_OFFSETOF(struct vnop_remove_args
, a_cnp
),
515 VOPARG_OFFSETOF(struct vnop_remove_args
, a_context
),
519 int vnop_remove_extended_vp_offsets
[] = {
520 VOPARG_OFFSETOF(struct vnop_remove_args
, a_dvp
),
523 struct vnodeop_desc vnop_compound_remove_desc
= {
525 "vnop_compound_remove",
527 vnop_remove_vp_offsets
,
528 VOPARG_OFFSETOF(struct vnop_compound_remove_args
, a_vpp
),
531 VOPARG_OFFSETOF(struct vnop_remove_args
, a_cnp
),
532 VOPARG_OFFSETOF(struct vnop_remove_args
, a_context
),
536 int vnop_link_vp_offsets
[] = {
537 VOPARG_OFFSETOF(struct vnop_link_args
, a_vp
),
538 VOPARG_OFFSETOF(struct vnop_link_args
, a_tdvp
),
541 struct vnodeop_desc vnop_link_desc
= {
544 0 | VDESC_VP1_WILLRELE
,
545 vnop_link_vp_offsets
,
549 VOPARG_OFFSETOF(struct vnop_link_args
, a_cnp
),
550 VOPARG_OFFSETOF(struct vnop_link_args
, a_context
),
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
),
561 struct vnodeop_desc vnop_rename_desc
= {
564 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
| VDESC_VP2_WILLRELE
| VDESC_VP3_WILLRELE
,
565 vnop_rename_vp_offsets
,
569 VOPARG_OFFSETOF(struct vnop_rename_args
, a_fcnp
),
570 VOPARG_OFFSETOF(struct vnop_rename_args
, a_context
),
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
),
581 struct vnodeop_desc vnop_renamex_desc
= {
584 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
| VDESC_VP2_WILLRELE
| VDESC_VP3_WILLRELE
,
585 vnop_renamex_vp_offsets
,
589 VOPARG_OFFSETOF(struct vnop_renamex_args
, a_fcnp
),
590 VOPARG_OFFSETOF(struct vnop_renamex_args
, a_context
),
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
),
601 struct vnodeop_desc vnop_compound_rename_desc
= {
603 "vnop_compound_rename",
604 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
| VDESC_VP2_WILLRELE
| VDESC_VP3_WILLRELE
,
605 vnop_compound_rename_vp_offsets
,
609 VOPARG_OFFSETOF(struct vnop_compound_rename_args
, a_fcnp
),
610 VOPARG_OFFSETOF(struct vnop_compound_rename_args
, a_context
),
614 int vnop_mkdir_vp_offsets
[] = {
615 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_dvp
),
618 struct vnodeop_desc vnop_mkdir_desc
= {
621 0 | VDESC_VP0_WILLRELE
,
622 vnop_mkdir_vp_offsets
,
623 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_vpp
),
626 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_cnp
),
627 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_context
),
631 int vnop_compound_mkdir_vp_offsets
[] = {
632 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args
, a_dvp
),
635 struct vnodeop_desc vnop_compound_mkdir_desc
= {
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
),
643 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args
, a_cnp
),
644 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args
, a_context
),
649 int vnop_rmdir_vp_offsets
[] = {
650 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_dvp
),
651 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_vp
),
654 struct vnodeop_desc vnop_rmdir_desc
= {
657 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
,
658 vnop_rmdir_vp_offsets
,
662 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_cnp
),
663 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_context
),
667 int vnop_compound_rmdir_vp_offsets
[] = {
668 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args
, a_dvp
),
671 struct vnodeop_desc vnop_compound_rmdir_desc
= {
673 "vnop_compound_rmdir",
674 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
,
675 vnop_rmdir_vp_offsets
,
679 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args
, a_cnp
),
680 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args
, a_context
),
684 int vnop_symlink_vp_offsets
[] = {
685 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_dvp
),
688 struct vnodeop_desc vnop_symlink_desc
= {
691 0 | VDESC_VP0_WILLRELE
| VDESC_VPP_WILLRELE
,
692 vnop_symlink_vp_offsets
,
693 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_vpp
),
696 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_cnp
),
697 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_context
),
701 int vnop_readdir_vp_offsets
[] = {
702 VOPARG_OFFSETOF(struct vnop_readdir_args
, a_vp
),
705 struct vnodeop_desc vnop_readdir_desc
= {
709 vnop_readdir_vp_offsets
,
714 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_context
),
718 int vnop_readdirattr_vp_offsets
[] = {
719 VOPARG_OFFSETOF(struct vnop_readdirattr_args
, a_vp
),
722 struct vnodeop_desc vnop_readdirattr_desc
= {
726 vnop_readdirattr_vp_offsets
,
731 VOPARG_OFFSETOF(struct vnop_readdirattr_args
, a_context
),
735 int vnop_getattrlistbulk_vp_offsets
[] = {
736 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args
, a_vp
),
739 struct vnodeop_desc vnop_getattrlistbulk_desc
= {
741 "vnop_getattrlistbulk",
743 vnop_getattrlistbulk_vp_offsets
,
748 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args
, a_context
),
752 int vnop_readlink_vp_offsets
[] = {
753 VOPARG_OFFSETOF(struct vnop_readlink_args
, a_vp
),
756 struct vnodeop_desc vnop_readlink_desc
= {
760 vnop_readlink_vp_offsets
,
765 VOPARG_OFFSETOF(struct vnop_readlink_args
, a_context
),
769 int vnop_inactive_vp_offsets
[] = {
770 VOPARG_OFFSETOF(struct vnop_inactive_args
, a_vp
),
773 struct vnodeop_desc vnop_inactive_desc
= {
777 vnop_inactive_vp_offsets
,
782 VOPARG_OFFSETOF(struct vnop_inactive_args
, a_context
),
786 int vnop_reclaim_vp_offsets
[] = {
787 VOPARG_OFFSETOF(struct vnop_reclaim_args
, a_vp
),
790 struct vnodeop_desc vnop_reclaim_desc
= {
794 vnop_reclaim_vp_offsets
,
799 VOPARG_OFFSETOF(struct vnop_reclaim_args
, a_context
),
803 int vnop_pathconf_vp_offsets
[] = {
804 VOPARG_OFFSETOF(struct vnop_pathconf_args
, a_vp
),
807 struct vnodeop_desc vnop_pathconf_desc
= {
811 vnop_pathconf_vp_offsets
,
816 VOPARG_OFFSETOF(struct vnop_pathconf_args
, a_context
),
820 int vnop_advlock_vp_offsets
[] = {
821 VOPARG_OFFSETOF(struct vnop_advlock_args
, a_vp
),
824 struct vnodeop_desc vnop_advlock_desc
= {
828 vnop_advlock_vp_offsets
,
833 VOPARG_OFFSETOF(struct vnop_advlock_args
, a_context
),
837 int vnop_allocate_vp_offsets
[] = {
838 VOPARG_OFFSETOF(struct vnop_allocate_args
, a_vp
),
841 struct vnodeop_desc vnop_allocate_desc
= {
845 vnop_allocate_vp_offsets
,
850 VOPARG_OFFSETOF(struct vnop_allocate_args
, a_context
),
854 int vnop_pagein_vp_offsets
[] = {
855 VOPARG_OFFSETOF(struct vnop_pagein_args
, a_vp
),
858 struct vnodeop_desc vnop_pagein_desc
= {
862 vnop_pagein_vp_offsets
,
867 VOPARG_OFFSETOF(struct vnop_pagein_args
, a_context
),
871 int vnop_pageout_vp_offsets
[] = {
872 VOPARG_OFFSETOF(struct vnop_pageout_args
, a_vp
),
875 struct vnodeop_desc vnop_pageout_desc
= {
879 vnop_pageout_vp_offsets
,
884 VOPARG_OFFSETOF(struct vnop_pageout_args
, a_context
),
888 int vnop_searchfs_vp_offsets
[] = {
889 VOPARG_OFFSETOF(struct vnop_searchfs_args
, a_vp
),
892 struct vnodeop_desc vnop_searchfs_desc
= {
896 vnop_searchfs_vp_offsets
,
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
),
911 struct vnodeop_desc vnop_copyfile_desc
= {
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
924 int vnop_clonefile_vp_offsets
[] = {
925 VOPARG_OFFSETOF(struct vnop_clonefile_args
, a_fvp
),
926 VOPARG_OFFSETOF(struct vnop_clonefile_args
, a_dvp
),
929 struct vnodeop_desc vnop_clonefile_desc
= {
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
942 int vop_getxattr_vp_offsets
[] = {
943 VOPARG_OFFSETOF(struct vnop_getxattr_args
, a_vp
),
946 struct vnodeop_desc vnop_getxattr_desc
= {
950 vop_getxattr_vp_offsets
,
955 VOPARG_OFFSETOF(struct vnop_getxattr_args
, a_context
),
959 int vop_setxattr_vp_offsets
[] = {
960 VOPARG_OFFSETOF(struct vnop_setxattr_args
, a_vp
),
963 struct vnodeop_desc vnop_setxattr_desc
= {
967 vop_setxattr_vp_offsets
,
972 VOPARG_OFFSETOF(struct vnop_setxattr_args
, a_context
),
976 int vop_removexattr_vp_offsets
[] = {
977 VOPARG_OFFSETOF(struct vnop_removexattr_args
, a_vp
),
980 struct vnodeop_desc vnop_removexattr_desc
= {
984 vop_removexattr_vp_offsets
,
989 VOPARG_OFFSETOF(struct vnop_removexattr_args
, a_context
),
993 int vop_listxattr_vp_offsets
[] = {
994 VOPARG_OFFSETOF(struct vnop_listxattr_args
, a_vp
),
997 struct vnodeop_desc vnop_listxattr_desc
= {
1001 vop_listxattr_vp_offsets
,
1006 VOPARG_OFFSETOF(struct vnop_listxattr_args
, a_context
),
1010 int vnop_blktooff_vp_offsets
[] = {
1011 VOPARG_OFFSETOF(struct vnop_blktooff_args
, a_vp
),
1014 struct vnodeop_desc vnop_blktooff_desc
= {
1018 vnop_blktooff_vp_offsets
,
1027 int vnop_offtoblk_vp_offsets
[] = {
1028 VOPARG_OFFSETOF(struct vnop_offtoblk_args
, a_vp
),
1031 struct vnodeop_desc vnop_offtoblk_desc
= {
1035 vnop_offtoblk_vp_offsets
,
1044 int vnop_blockmap_vp_offsets
[] = {
1045 VOPARG_OFFSETOF(struct vnop_blockmap_args
, a_vp
),
1048 struct vnodeop_desc vnop_blockmap_desc
= {
1052 vnop_blockmap_vp_offsets
,
1062 int vnop_getnamedstream_vp_offsets
[] = {
1063 VOPARG_OFFSETOF(struct vnop_getnamedstream_args
, a_vp
),
1066 struct vnodeop_desc vnop_getnamedstream_desc
= {
1068 "vnop_getnamedstream",
1070 vnop_getnamedstream_vp_offsets
,
1071 VOPARG_OFFSETOF(struct vnop_getnamedstream_args
, a_svpp
),
1074 VOPARG_OFFSETOF(struct vnop_getnamedstream_args
, a_name
),
1075 VOPARG_OFFSETOF(struct vnop_getnamedstream_args
, a_context
),
1079 int vnop_makenamedstream_vp_offsets
[] = {
1080 VOPARG_OFFSETOF(struct vnop_makenamedstream_args
, a_vp
),
1083 struct vnodeop_desc vnop_makenamedstream_desc
= {
1085 "vnop_makenamedstream",
1087 vnop_makenamedstream_vp_offsets
,
1088 VOPARG_OFFSETOF(struct vnop_makenamedstream_args
, a_svpp
),
1091 VOPARG_OFFSETOF(struct vnop_makenamedstream_args
, a_name
),
1092 VOPARG_OFFSETOF(struct vnop_makenamedstream_args
, a_context
),
1096 int vnop_removenamedstream_vp_offsets
[] = {
1097 VOPARG_OFFSETOF(struct vnop_removenamedstream_args
, a_vp
),
1100 struct vnodeop_desc vnop_removenamedstream_desc
= {
1102 "vnop_removenamedstream",
1104 vnop_removenamedstream_vp_offsets
,
1108 VOPARG_OFFSETOF(struct vnop_removenamedstream_args
, a_name
),
1109 VOPARG_OFFSETOF(struct vnop_removenamedstream_args
, a_context
),
1113 int vnop_getnamedstream_vp_offsets
[] = {
1116 struct vnodeop_desc vnop_getnamedstream_desc
= {
1118 "vnop_getnamedstream",
1119 VDESC_DISABLED
, /* flags */
1120 vnop_getnamedstream_vp_offsets
,
1129 int vnop_makenamedstream_vp_offsets
[] = {
1132 struct vnodeop_desc vnop_makenamedstream_desc
= {
1134 "vnop_makenamedstream",
1135 VDESC_DISABLED
, /* flags */
1136 vnop_makenamedstream_vp_offsets
,
1145 int vnop_removenamedstream_vp_offsets
[] = {
1148 struct vnodeop_desc vnop_removenamedstream_desc
= {
1150 "vnop_removenamedstream",
1151 VDESC_DISABLED
, /* flags */
1152 vnop_removenamedstream_vp_offsets
,
1162 /* Special cases: */
1164 int vnop_strategy_vp_offsets
[] = {
1167 struct vnodeop_desc vnop_strategy_desc
= {
1171 vnop_strategy_vp_offsets
,
1180 int vnop_bwrite_vp_offsets
[] = {
1183 struct vnodeop_desc vnop_bwrite_desc
= {
1187 vnop_bwrite_vp_offsets
,
1196 int vnop_verify_vp_offsets
[] = {
1197 VOPARG_OFFSETOF(struct vnop_verify_args
, a_vp
),
1200 struct vnodeop_desc vnop_verify_desc
= {
1202 .vdesc_name
= "vnop_verify",
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
1213 /* End of special cases. */
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 */
1223 &vnop_whiteout_desc
,
1225 &vnop_compound_open_desc
,
1234 &vnop_exchange_desc
,
1235 &vnop_kqfilt_add_desc
,
1236 &vnop_kqfilt_remove_desc
,
1237 &vnop_setlabel_desc
,
1239 &vnop_mmap_check_desc
,
1244 &vnop_compound_remove_desc
,
1248 &vnop_compound_rename_desc
,
1250 &vnop_compound_mkdir_desc
,
1252 &vnop_compound_rmdir_desc
,
1255 &vnop_readdirattr_desc
,
1256 &vnop_getattrlistbulk_desc
,
1257 &vnop_readlink_desc
,
1258 &vnop_inactive_desc
,
1260 &vnop_pathconf_desc
,
1262 &vnop_allocate_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
,
1276 #if !defined(NAMEDSTREAMS)
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
1285 &vnop_getnamedstream_desc
,
1286 &vnop_makenamedstream_desc
,
1287 &vnop_removenamedstream_desc
,