3 * Copyright (c) 2006 Apple Computer, Inc. All Rights Reserved.
5 * @APPLE_LICENSE_OSREFERENCE_HEADER_START@
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
11 * License may not be used to create, or enable the creation or
12 * redistribution of, unlawful or unlicensed copies of an Apple operating
13 * system, or to circumvent, violate, or enable the circumvention or
14 * violation of, any terms of an Apple operating system software license
17 * Please obtain a copy of the License at
18 * http://www.opensource.apple.com/apsl/ and read it before using this
21 * The Original Code and all software distributed under the License are
22 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
23 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
24 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
25 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
26 * Please see the License for the specific language governing rights and
27 * limitations under the License.
29 * @APPLE_LICENSE_OSREFERENCE_HEADER_END@
32 * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
33 * Copyright (c) 1992, 1993, 1994, 1995
34 * The Regents of the University of California. All rights reserved.
36 * Redistribution and use in source and binary forms, with or without
37 * modification, are permitted provided that the following conditions
39 * 1. Redistributions of source code must retain the above copyright
40 * notice, this list of conditions and the following disclaimer.
41 * 2. Redistributions in binary form must reproduce the above copyright
42 * notice, this list of conditions and the following disclaimer in the
43 * documentation and/or other materials provided with the distribution.
44 * 3. All advertising materials mentioning features or use of this software
45 * must display the following acknowledgement:
46 * This product includes software developed by the University of
47 * California, Berkeley and its contributors.
48 * 4. Neither the name of the University nor the names of its contributors
49 * may be used to endorse or promote products derived from this software
50 * without specific prior written permission.
52 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS AND
53 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
54 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
55 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
56 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
57 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
58 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
59 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
60 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
61 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
67 * Warning: This file is generated automatically.
68 * (Modifications made here may easily be lost!)
70 * Created by the script:
71 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
75 #include <sys/param.h>
76 #include <sys/mount_internal.h>
78 #include <sys/vnode_internal.h>
80 struct vnodeop_desc vnop_default_desc
= {
93 int vnop_lookup_vp_offsets
[] = {
94 VOPARG_OFFSETOF(struct vnop_lookup_args
,a_dvp
),
97 struct vnodeop_desc vnop_lookup_desc
= {
101 vnop_lookup_vp_offsets
,
102 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_vpp
),
105 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_cnp
),
106 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_context
),
110 int vnop_create_vp_offsets
[] = {
111 VOPARG_OFFSETOF(struct vnop_create_args
,a_dvp
),
114 struct vnodeop_desc vnop_create_desc
= {
117 0 | VDESC_VP0_WILLRELE
,
118 vnop_create_vp_offsets
,
119 VOPARG_OFFSETOF(struct vnop_create_args
, a_vpp
),
122 VOPARG_OFFSETOF(struct vnop_create_args
, a_cnp
),
123 VOPARG_OFFSETOF(struct vnop_create_args
, a_context
),
127 int vnop_whiteout_vp_offsets
[] = {
128 VOPARG_OFFSETOF(struct vnop_whiteout_args
,a_dvp
),
131 struct vnodeop_desc vnop_whiteout_desc
= {
134 0 | VDESC_VP0_WILLRELE
,
135 vnop_whiteout_vp_offsets
,
139 VOPARG_OFFSETOF(struct vnop_whiteout_args
, a_cnp
),
140 VOPARG_OFFSETOF(struct vnop_whiteout_args
, a_context
),
144 int vnop_mknod_vp_offsets
[] = {
145 VOPARG_OFFSETOF(struct vnop_mknod_args
,a_dvp
),
148 struct vnodeop_desc vnop_mknod_desc
= {
151 0 | VDESC_VP0_WILLRELE
| VDESC_VPP_WILLRELE
,
152 vnop_mknod_vp_offsets
,
153 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_vpp
),
156 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_cnp
),
157 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_context
),
161 int vnop_open_vp_offsets
[] = {
162 VOPARG_OFFSETOF(struct vnop_open_args
,a_vp
),
165 struct vnodeop_desc vnop_open_desc
= {
169 vnop_open_vp_offsets
,
174 VOPARG_OFFSETOF(struct vnop_open_args
, a_context
),
178 int vnop_close_vp_offsets
[] = {
179 VOPARG_OFFSETOF(struct vnop_close_args
,a_vp
),
182 struct vnodeop_desc vnop_close_desc
= {
186 vnop_close_vp_offsets
,
191 VOPARG_OFFSETOF(struct vnop_close_args
, a_context
),
195 int vnop_access_vp_offsets
[] = {
196 VOPARG_OFFSETOF(struct vnop_access_args
,a_vp
),
199 struct vnodeop_desc vnop_access_desc
= {
203 vnop_access_vp_offsets
,
208 VOPARG_OFFSETOF(struct vnop_close_args
, a_context
),
212 int vnop_getattr_vp_offsets
[] = {
213 VOPARG_OFFSETOF(struct vnop_getattr_args
,a_vp
),
216 struct vnodeop_desc vnop_getattr_desc
= {
220 vnop_getattr_vp_offsets
,
225 VOPARG_OFFSETOF(struct vnop_getattr_args
, a_context
),
229 int vnop_setattr_vp_offsets
[] = {
230 VOPARG_OFFSETOF(struct vnop_setattr_args
,a_vp
),
233 struct vnodeop_desc vnop_setattr_desc
= {
237 vnop_setattr_vp_offsets
,
242 VOPARG_OFFSETOF(struct vnop_setattr_args
, a_context
),
246 int vnop_getattrlist_vp_offsets
[] = {
247 VOPARG_OFFSETOF(struct vnop_getattrlist_args
,a_vp
),
250 struct vnodeop_desc vnop_getattrlist_desc
= {
254 vnop_getattrlist_vp_offsets
,
259 VOPARG_OFFSETOF(struct vnop_getattrlist_args
, a_context
),
263 int vnop_setattrlist_vp_offsets
[] = {
264 VOPARG_OFFSETOF(struct vnop_setattrlist_args
,a_vp
),
267 struct vnodeop_desc vnop_setattrlist_desc
= {
271 vnop_setattrlist_vp_offsets
,
276 VOPARG_OFFSETOF(struct vnop_setattrlist_args
, a_context
),
280 int vnop_read_vp_offsets
[] = {
281 VOPARG_OFFSETOF(struct vnop_read_args
,a_vp
),
284 struct vnodeop_desc vnop_read_desc
= {
288 vnop_read_vp_offsets
,
293 VOPARG_OFFSETOF(struct vnop_read_args
, a_context
),
297 int vnop_write_vp_offsets
[] = {
298 VOPARG_OFFSETOF(struct vnop_write_args
,a_vp
),
301 struct vnodeop_desc vnop_write_desc
= {
305 vnop_write_vp_offsets
,
310 VOPARG_OFFSETOF(struct vnop_write_args
, a_context
),
314 int vnop_ioctl_vp_offsets
[] = {
315 VOPARG_OFFSETOF(struct vnop_ioctl_args
,a_vp
),
318 struct vnodeop_desc vnop_ioctl_desc
= {
322 vnop_ioctl_vp_offsets
,
327 VOPARG_OFFSETOF(struct vnop_ioctl_args
, a_context
),
331 int vnop_select_vp_offsets
[] = {
332 VOPARG_OFFSETOF(struct vnop_select_args
,a_vp
),
335 struct vnodeop_desc vnop_select_desc
= {
339 vnop_select_vp_offsets
,
344 VOPARG_OFFSETOF(struct vnop_select_args
, a_context
),
349 int vnop_exchange_vp_offsets
[] = {
350 VOPARG_OFFSETOF(struct vnop_exchange_args
,a_fvp
),
351 VOPARG_OFFSETOF(struct vnop_exchange_args
,a_tvp
),
354 struct vnodeop_desc vnop_exchange_desc
= {
358 vnop_exchange_vp_offsets
,
363 VOPARG_OFFSETOF(struct vnop_exchange_args
, a_context
),
367 int vnop_kqfilt_add_vp_offsets
[] = {
368 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args
,a_vp
),
371 struct vnodeop_desc vnop_kqfilt_add_desc
= {
375 vnop_kqfilt_add_vp_offsets
,
380 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args
, a_context
),
384 int vnop_kqfilt_remove_vp_offsets
[] = {
385 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args
,a_vp
),
388 struct vnodeop_desc vnop_kqfilt_remove_desc
= {
390 "vnop_kqfilt_remove",
392 vnop_kqfilt_remove_vp_offsets
,
397 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args
, a_context
),
401 int vnop_revoke_vp_offsets
[] = {
402 VOPARG_OFFSETOF(struct vnop_revoke_args
,a_vp
),
405 struct vnodeop_desc vnop_revoke_desc
= {
409 vnop_revoke_vp_offsets
,
418 int vnop_mmap_vp_offsets
[] = {
419 VOPARG_OFFSETOF(struct vnop_mmap_args
,a_vp
),
422 struct vnodeop_desc vnop_mmap_desc
= {
426 vnop_mmap_vp_offsets
,
435 int vnop_mnomap_vp_offsets
[] = {
436 VOPARG_OFFSETOF(struct vnop_mnomap_args
,a_vp
),
439 struct vnodeop_desc vnop_mnomap_desc
= {
443 vnop_mnomap_vp_offsets
,
452 int vnop_fsync_vp_offsets
[] = {
453 VOPARG_OFFSETOF(struct vnop_fsync_args
,a_vp
),
456 struct vnodeop_desc vnop_fsync_desc
= {
460 vnop_fsync_vp_offsets
,
465 VOPARG_OFFSETOF(struct vnop_fsync_args
, a_context
),
469 int vnop_remove_vp_offsets
[] = {
470 VOPARG_OFFSETOF(struct vnop_remove_args
,a_dvp
),
471 VOPARG_OFFSETOF(struct vnop_remove_args
,a_vp
),
474 struct vnodeop_desc vnop_remove_desc
= {
477 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
,
478 vnop_remove_vp_offsets
,
482 VOPARG_OFFSETOF(struct vnop_remove_args
, a_cnp
),
483 VOPARG_OFFSETOF(struct vnop_remove_args
, a_context
),
487 int vnop_link_vp_offsets
[] = {
488 VOPARG_OFFSETOF(struct vnop_link_args
,a_vp
),
489 VOPARG_OFFSETOF(struct vnop_link_args
,a_tdvp
),
492 struct vnodeop_desc vnop_link_desc
= {
495 0 | VDESC_VP1_WILLRELE
,
496 vnop_link_vp_offsets
,
500 VOPARG_OFFSETOF(struct vnop_link_args
, a_cnp
),
501 VOPARG_OFFSETOF(struct vnop_link_args
, a_context
),
505 int vnop_rename_vp_offsets
[] = {
506 VOPARG_OFFSETOF(struct vnop_rename_args
,a_fdvp
),
507 VOPARG_OFFSETOF(struct vnop_rename_args
,a_fvp
),
508 VOPARG_OFFSETOF(struct vnop_rename_args
,a_tdvp
),
509 VOPARG_OFFSETOF(struct vnop_rename_args
,a_tvp
),
512 struct vnodeop_desc vnop_rename_desc
= {
515 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
| VDESC_VP2_WILLRELE
| VDESC_VP3_WILLRELE
,
516 vnop_rename_vp_offsets
,
520 VOPARG_OFFSETOF(struct vnop_rename_args
, a_fcnp
),
521 VOPARG_OFFSETOF(struct vnop_rename_args
, a_context
),
525 int vnop_mkdir_vp_offsets
[] = {
526 VOPARG_OFFSETOF(struct vnop_mkdir_args
,a_dvp
),
529 struct vnodeop_desc vnop_mkdir_desc
= {
532 0 | VDESC_VP0_WILLRELE
,
533 vnop_mkdir_vp_offsets
,
534 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_vpp
),
537 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_cnp
),
538 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_context
),
542 int vnop_rmdir_vp_offsets
[] = {
543 VOPARG_OFFSETOF(struct vnop_rmdir_args
,a_dvp
),
544 VOPARG_OFFSETOF(struct vnop_rmdir_args
,a_vp
),
547 struct vnodeop_desc vnop_rmdir_desc
= {
550 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
,
551 vnop_rmdir_vp_offsets
,
555 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_cnp
),
556 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_context
),
560 int vnop_symlink_vp_offsets
[] = {
561 VOPARG_OFFSETOF(struct vnop_symlink_args
,a_dvp
),
564 struct vnodeop_desc vnop_symlink_desc
= {
567 0 | VDESC_VP0_WILLRELE
| VDESC_VPP_WILLRELE
,
568 vnop_symlink_vp_offsets
,
569 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_vpp
),
572 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_cnp
),
573 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_context
),
577 int vnop_readdir_vp_offsets
[] = {
578 VOPARG_OFFSETOF(struct vnop_readdir_args
,a_vp
),
581 struct vnodeop_desc vnop_readdir_desc
= {
585 vnop_readdir_vp_offsets
,
590 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_context
),
594 int vnop_readdirattr_vp_offsets
[] = {
595 VOPARG_OFFSETOF(struct vnop_readdirattr_args
,a_vp
),
598 struct vnodeop_desc vnop_readdirattr_desc
= {
602 vnop_readdirattr_vp_offsets
,
607 VOPARG_OFFSETOF(struct vnop_readdirattr_args
, a_context
),
611 int vnop_readlink_vp_offsets
[] = {
612 VOPARG_OFFSETOF(struct vnop_readlink_args
,a_vp
),
615 struct vnodeop_desc vnop_readlink_desc
= {
619 vnop_readlink_vp_offsets
,
624 VOPARG_OFFSETOF(struct vnop_readlink_args
, a_context
),
628 int vnop_inactive_vp_offsets
[] = {
629 VOPARG_OFFSETOF(struct vnop_inactive_args
,a_vp
),
632 struct vnodeop_desc vnop_inactive_desc
= {
636 vnop_inactive_vp_offsets
,
641 VOPARG_OFFSETOF(struct vnop_inactive_args
, a_context
),
645 int vnop_reclaim_vp_offsets
[] = {
646 VOPARG_OFFSETOF(struct vnop_reclaim_args
,a_vp
),
649 struct vnodeop_desc vnop_reclaim_desc
= {
653 vnop_reclaim_vp_offsets
,
658 VOPARG_OFFSETOF(struct vnop_reclaim_args
, a_context
),
662 int vnop_pathconf_vp_offsets
[] = {
663 VOPARG_OFFSETOF(struct vnop_pathconf_args
,a_vp
),
666 struct vnodeop_desc vnop_pathconf_desc
= {
670 vnop_pathconf_vp_offsets
,
675 VOPARG_OFFSETOF(struct vnop_pathconf_args
, a_context
),
679 int vnop_advlock_vp_offsets
[] = {
680 VOPARG_OFFSETOF(struct vnop_advlock_args
,a_vp
),
683 struct vnodeop_desc vnop_advlock_desc
= {
687 vnop_advlock_vp_offsets
,
692 VOPARG_OFFSETOF(struct vnop_advlock_args
, a_context
),
696 int vnop_allocate_vp_offsets
[] = {
697 VOPARG_OFFSETOF(struct vnop_allocate_args
,a_vp
),
700 struct vnodeop_desc vnop_allocate_desc
= {
704 vnop_allocate_vp_offsets
,
709 VOPARG_OFFSETOF(struct vnop_allocate_args
, a_context
),
713 int vnop_pagein_vp_offsets
[] = {
714 VOPARG_OFFSETOF(struct vnop_pagein_args
,a_vp
),
717 struct vnodeop_desc vnop_pagein_desc
= {
721 vnop_pagein_vp_offsets
,
726 VOPARG_OFFSETOF(struct vnop_pagein_args
, a_context
),
730 int vnop_pageout_vp_offsets
[] = {
731 VOPARG_OFFSETOF(struct vnop_pageout_args
,a_vp
),
734 struct vnodeop_desc vnop_pageout_desc
= {
738 vnop_pageout_vp_offsets
,
743 VOPARG_OFFSETOF(struct vnop_pageout_args
, a_context
),
747 int vnop_devblocksize_vp_offsets
[] = {
748 VOPARG_OFFSETOF(struct vnop_devblocksize_args
,a_vp
),
751 struct vnodeop_desc vnop_devblocksize_desc
= {
755 vnop_devblocksize_vp_offsets
,
763 int vnop_searchfs_vp_offsets
[] = {
764 VOPARG_OFFSETOF(struct vnop_searchfs_args
,a_vp
),
767 struct vnodeop_desc vnop_searchfs_desc
= {
771 vnop_searchfs_vp_offsets
,
779 int vnop_copyfile_vp_offsets
[] = {
780 VOPARG_OFFSETOF(struct vnop_copyfile_args
,a_fvp
),
781 VOPARG_OFFSETOF(struct vnop_copyfile_args
,a_tdvp
),
782 VOPARG_OFFSETOF(struct vnop_copyfile_args
,a_tvp
),
785 struct vnodeop_desc vnop_copyfile_desc
= {
788 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
| VDESC_VP2_WILLRELE
,
789 vnop_copyfile_vp_offsets
,
793 VOPARG_OFFSETOF(struct vnop_copyfile_args
, a_tcnp
),
797 int vop_getxattr_vp_offsets
[] = {
798 VOPARG_OFFSETOF(struct vnop_getxattr_args
,a_vp
),
801 struct vnodeop_desc vnop_getxattr_desc
= {
805 vop_getxattr_vp_offsets
,
810 VOPARG_OFFSETOF(struct vnop_getxattr_args
, a_context
),
814 int vop_setxattr_vp_offsets
[] = {
815 VOPARG_OFFSETOF(struct vnop_setxattr_args
,a_vp
),
818 struct vnodeop_desc vnop_setxattr_desc
= {
822 vop_setxattr_vp_offsets
,
827 VOPARG_OFFSETOF(struct vnop_setxattr_args
, a_context
),
831 int vop_removexattr_vp_offsets
[] = {
832 VOPARG_OFFSETOF(struct vnop_removexattr_args
,a_vp
),
835 struct vnodeop_desc vnop_removexattr_desc
= {
839 vop_removexattr_vp_offsets
,
844 VOPARG_OFFSETOF(struct vnop_removexattr_args
, a_context
),
848 int vop_listxattr_vp_offsets
[] = {
849 VOPARG_OFFSETOF(struct vnop_listxattr_args
,a_vp
),
852 struct vnodeop_desc vnop_listxattr_desc
= {
856 vop_listxattr_vp_offsets
,
861 VOPARG_OFFSETOF(struct vnop_listxattr_args
, a_context
),
865 int vnop_blktooff_vp_offsets
[] = {
866 VOPARG_OFFSETOF(struct vnop_blktooff_args
,a_vp
),
869 struct vnodeop_desc vnop_blktooff_desc
= {
873 vnop_blktooff_vp_offsets
,
881 int vnop_offtoblk_vp_offsets
[] = {
882 VOPARG_OFFSETOF(struct vnop_offtoblk_args
,a_vp
),
885 struct vnodeop_desc vnop_offtoblk_desc
= {
889 vnop_offtoblk_vp_offsets
,
897 int vnop_blockmap_vp_offsets
[] = {
898 VOPARG_OFFSETOF(struct vnop_blockmap_args
,a_vp
),
901 struct vnodeop_desc vnop_blockmap_desc
= {
905 vnop_blockmap_vp_offsets
,
915 int vnop_strategy_vp_offsets
[] = {
918 struct vnodeop_desc vnop_strategy_desc
= {
922 vnop_strategy_vp_offsets
,
930 int vnop_bwrite_vp_offsets
[] = {
933 struct vnodeop_desc vnop_bwrite_desc
= {
937 vnop_bwrite_vp_offsets
,
945 /* End of special cases. */
947 struct vnodeop_desc
*vfs_op_descs
[] = {
948 &vnop_default_desc
, /* MUST BE FIRST */
949 &vnop_strategy_desc
, /* XXX: SPECIAL CASE */
950 &vnop_bwrite_desc
, /* XXX: SPECIAL CASE */
961 &vnop_getattrlist_desc
,
962 &vnop_setattrlist_desc
,
968 &vnop_kqfilt_add_desc
,
969 &vnop_kqfilt_remove_desc
,
981 &vnop_readdirattr_desc
,
990 &vnop_devblocksize_desc
,
995 &vnop_removexattr_desc
,
996 &vnop_listxattr_desc
,