3 * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
5 * @APPLE_OSREFERENCE_LICENSE_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 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.
16 * Please obtain a copy of the License at
17 * http://www.opensource.apple.com/apsl/ and read it before using this file.
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.
27 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
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.
34 * Redistribution and use in source and binary forms, with or without
35 * modification, are permitted provided that the following conditions
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.
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
65 * Warning: This file is generated automatically.
66 * (Modifications made here may easily be lost!)
68 * Created by the script:
69 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
73 #include <sys/param.h>
74 #include <sys/mount_internal.h>
76 #include <sys/vnode_internal.h>
78 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_create_vp_offsets
[] = {
109 VOPARG_OFFSETOF(struct vnop_create_args
,a_dvp
),
112 struct vnodeop_desc vnop_create_desc
= {
115 0 | VDESC_VP0_WILLRELE
,
116 vnop_create_vp_offsets
,
117 VOPARG_OFFSETOF(struct vnop_create_args
, a_vpp
),
120 VOPARG_OFFSETOF(struct vnop_create_args
, a_cnp
),
121 VOPARG_OFFSETOF(struct vnop_create_args
, a_context
),
125 int vnop_whiteout_vp_offsets
[] = {
126 VOPARG_OFFSETOF(struct vnop_whiteout_args
,a_dvp
),
129 struct vnodeop_desc vnop_whiteout_desc
= {
132 0 | VDESC_VP0_WILLRELE
,
133 vnop_whiteout_vp_offsets
,
137 VOPARG_OFFSETOF(struct vnop_whiteout_args
, a_cnp
),
138 VOPARG_OFFSETOF(struct vnop_whiteout_args
, a_context
),
142 int vnop_mknod_vp_offsets
[] = {
143 VOPARG_OFFSETOF(struct vnop_mknod_args
,a_dvp
),
146 struct vnodeop_desc vnop_mknod_desc
= {
149 0 | VDESC_VP0_WILLRELE
| VDESC_VPP_WILLRELE
,
150 vnop_mknod_vp_offsets
,
151 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_vpp
),
154 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_cnp
),
155 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_context
),
159 int vnop_open_vp_offsets
[] = {
160 VOPARG_OFFSETOF(struct vnop_open_args
,a_vp
),
163 struct vnodeop_desc vnop_open_desc
= {
167 vnop_open_vp_offsets
,
172 VOPARG_OFFSETOF(struct vnop_open_args
, a_context
),
176 int vnop_close_vp_offsets
[] = {
177 VOPARG_OFFSETOF(struct vnop_close_args
,a_vp
),
180 struct vnodeop_desc vnop_close_desc
= {
184 vnop_close_vp_offsets
,
189 VOPARG_OFFSETOF(struct vnop_close_args
, a_context
),
193 int vnop_access_vp_offsets
[] = {
194 VOPARG_OFFSETOF(struct vnop_access_args
,a_vp
),
197 struct vnodeop_desc vnop_access_desc
= {
201 vnop_access_vp_offsets
,
206 VOPARG_OFFSETOF(struct vnop_close_args
, a_context
),
210 int vnop_getattr_vp_offsets
[] = {
211 VOPARG_OFFSETOF(struct vnop_getattr_args
,a_vp
),
214 struct vnodeop_desc vnop_getattr_desc
= {
218 vnop_getattr_vp_offsets
,
223 VOPARG_OFFSETOF(struct vnop_getattr_args
, a_context
),
227 int vnop_setattr_vp_offsets
[] = {
228 VOPARG_OFFSETOF(struct vnop_setattr_args
,a_vp
),
231 struct vnodeop_desc vnop_setattr_desc
= {
235 vnop_setattr_vp_offsets
,
240 VOPARG_OFFSETOF(struct vnop_setattr_args
, a_context
),
244 int vnop_getattrlist_vp_offsets
[] = {
245 VOPARG_OFFSETOF(struct vnop_getattrlist_args
,a_vp
),
248 struct vnodeop_desc vnop_getattrlist_desc
= {
252 vnop_getattrlist_vp_offsets
,
257 VOPARG_OFFSETOF(struct vnop_getattrlist_args
, a_context
),
261 int vnop_setattrlist_vp_offsets
[] = {
262 VOPARG_OFFSETOF(struct vnop_setattrlist_args
,a_vp
),
265 struct vnodeop_desc vnop_setattrlist_desc
= {
269 vnop_setattrlist_vp_offsets
,
274 VOPARG_OFFSETOF(struct vnop_setattrlist_args
, a_context
),
278 int vnop_read_vp_offsets
[] = {
279 VOPARG_OFFSETOF(struct vnop_read_args
,a_vp
),
282 struct vnodeop_desc vnop_read_desc
= {
286 vnop_read_vp_offsets
,
291 VOPARG_OFFSETOF(struct vnop_read_args
, a_context
),
295 int vnop_write_vp_offsets
[] = {
296 VOPARG_OFFSETOF(struct vnop_write_args
,a_vp
),
299 struct vnodeop_desc vnop_write_desc
= {
303 vnop_write_vp_offsets
,
308 VOPARG_OFFSETOF(struct vnop_write_args
, a_context
),
312 int vnop_ioctl_vp_offsets
[] = {
313 VOPARG_OFFSETOF(struct vnop_ioctl_args
,a_vp
),
316 struct vnodeop_desc vnop_ioctl_desc
= {
320 vnop_ioctl_vp_offsets
,
325 VOPARG_OFFSETOF(struct vnop_ioctl_args
, a_context
),
329 int vnop_select_vp_offsets
[] = {
330 VOPARG_OFFSETOF(struct vnop_select_args
,a_vp
),
333 struct vnodeop_desc vnop_select_desc
= {
337 vnop_select_vp_offsets
,
342 VOPARG_OFFSETOF(struct vnop_select_args
, a_context
),
347 int vnop_exchange_vp_offsets
[] = {
348 VOPARG_OFFSETOF(struct vnop_exchange_args
,a_fvp
),
349 VOPARG_OFFSETOF(struct vnop_exchange_args
,a_tvp
),
352 struct vnodeop_desc vnop_exchange_desc
= {
356 vnop_exchange_vp_offsets
,
361 VOPARG_OFFSETOF(struct vnop_exchange_args
, a_context
),
365 int vnop_kqfilt_add_vp_offsets
[] = {
366 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args
,a_vp
),
369 struct vnodeop_desc vnop_kqfilt_add_desc
= {
373 vnop_kqfilt_add_vp_offsets
,
378 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args
, a_context
),
382 int vnop_kqfilt_remove_vp_offsets
[] = {
383 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args
,a_vp
),
386 struct vnodeop_desc vnop_kqfilt_remove_desc
= {
388 "vnop_kqfilt_remove",
390 vnop_kqfilt_remove_vp_offsets
,
395 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args
, a_context
),
399 int vnop_revoke_vp_offsets
[] = {
400 VOPARG_OFFSETOF(struct vnop_revoke_args
,a_vp
),
403 struct vnodeop_desc vnop_revoke_desc
= {
407 vnop_revoke_vp_offsets
,
416 int vnop_mmap_vp_offsets
[] = {
417 VOPARG_OFFSETOF(struct vnop_mmap_args
,a_vp
),
420 struct vnodeop_desc vnop_mmap_desc
= {
424 vnop_mmap_vp_offsets
,
433 int vnop_mnomap_vp_offsets
[] = {
434 VOPARG_OFFSETOF(struct vnop_mnomap_args
,a_vp
),
437 struct vnodeop_desc vnop_mnomap_desc
= {
441 vnop_mnomap_vp_offsets
,
450 int vnop_fsync_vp_offsets
[] = {
451 VOPARG_OFFSETOF(struct vnop_fsync_args
,a_vp
),
454 struct vnodeop_desc vnop_fsync_desc
= {
458 vnop_fsync_vp_offsets
,
463 VOPARG_OFFSETOF(struct vnop_fsync_args
, a_context
),
467 int vnop_remove_vp_offsets
[] = {
468 VOPARG_OFFSETOF(struct vnop_remove_args
,a_dvp
),
469 VOPARG_OFFSETOF(struct vnop_remove_args
,a_vp
),
472 struct vnodeop_desc vnop_remove_desc
= {
475 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
,
476 vnop_remove_vp_offsets
,
480 VOPARG_OFFSETOF(struct vnop_remove_args
, a_cnp
),
481 VOPARG_OFFSETOF(struct vnop_remove_args
, a_context
),
485 int vnop_link_vp_offsets
[] = {
486 VOPARG_OFFSETOF(struct vnop_link_args
,a_vp
),
487 VOPARG_OFFSETOF(struct vnop_link_args
,a_tdvp
),
490 struct vnodeop_desc vnop_link_desc
= {
493 0 | VDESC_VP1_WILLRELE
,
494 vnop_link_vp_offsets
,
498 VOPARG_OFFSETOF(struct vnop_link_args
, a_cnp
),
499 VOPARG_OFFSETOF(struct vnop_link_args
, a_context
),
503 int vnop_rename_vp_offsets
[] = {
504 VOPARG_OFFSETOF(struct vnop_rename_args
,a_fdvp
),
505 VOPARG_OFFSETOF(struct vnop_rename_args
,a_fvp
),
506 VOPARG_OFFSETOF(struct vnop_rename_args
,a_tdvp
),
507 VOPARG_OFFSETOF(struct vnop_rename_args
,a_tvp
),
510 struct vnodeop_desc vnop_rename_desc
= {
513 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
| VDESC_VP2_WILLRELE
| VDESC_VP3_WILLRELE
,
514 vnop_rename_vp_offsets
,
518 VOPARG_OFFSETOF(struct vnop_rename_args
, a_fcnp
),
519 VOPARG_OFFSETOF(struct vnop_rename_args
, a_context
),
523 int vnop_mkdir_vp_offsets
[] = {
524 VOPARG_OFFSETOF(struct vnop_mkdir_args
,a_dvp
),
527 struct vnodeop_desc vnop_mkdir_desc
= {
530 0 | VDESC_VP0_WILLRELE
,
531 vnop_mkdir_vp_offsets
,
532 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_vpp
),
535 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_cnp
),
536 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_context
),
540 int vnop_rmdir_vp_offsets
[] = {
541 VOPARG_OFFSETOF(struct vnop_rmdir_args
,a_dvp
),
542 VOPARG_OFFSETOF(struct vnop_rmdir_args
,a_vp
),
545 struct vnodeop_desc vnop_rmdir_desc
= {
548 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
,
549 vnop_rmdir_vp_offsets
,
553 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_cnp
),
554 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_context
),
558 int vnop_symlink_vp_offsets
[] = {
559 VOPARG_OFFSETOF(struct vnop_symlink_args
,a_dvp
),
562 struct vnodeop_desc vnop_symlink_desc
= {
565 0 | VDESC_VP0_WILLRELE
| VDESC_VPP_WILLRELE
,
566 vnop_symlink_vp_offsets
,
567 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_vpp
),
570 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_cnp
),
571 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_context
),
575 int vnop_readdir_vp_offsets
[] = {
576 VOPARG_OFFSETOF(struct vnop_readdir_args
,a_vp
),
579 struct vnodeop_desc vnop_readdir_desc
= {
583 vnop_readdir_vp_offsets
,
588 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_context
),
592 int vnop_readdirattr_vp_offsets
[] = {
593 VOPARG_OFFSETOF(struct vnop_readdirattr_args
,a_vp
),
596 struct vnodeop_desc vnop_readdirattr_desc
= {
600 vnop_readdirattr_vp_offsets
,
605 VOPARG_OFFSETOF(struct vnop_readdirattr_args
, a_context
),
609 int vnop_readlink_vp_offsets
[] = {
610 VOPARG_OFFSETOF(struct vnop_readlink_args
,a_vp
),
613 struct vnodeop_desc vnop_readlink_desc
= {
617 vnop_readlink_vp_offsets
,
622 VOPARG_OFFSETOF(struct vnop_readlink_args
, a_context
),
626 int vnop_inactive_vp_offsets
[] = {
627 VOPARG_OFFSETOF(struct vnop_inactive_args
,a_vp
),
630 struct vnodeop_desc vnop_inactive_desc
= {
634 vnop_inactive_vp_offsets
,
639 VOPARG_OFFSETOF(struct vnop_inactive_args
, a_context
),
643 int vnop_reclaim_vp_offsets
[] = {
644 VOPARG_OFFSETOF(struct vnop_reclaim_args
,a_vp
),
647 struct vnodeop_desc vnop_reclaim_desc
= {
651 vnop_reclaim_vp_offsets
,
656 VOPARG_OFFSETOF(struct vnop_reclaim_args
, a_context
),
660 int vnop_pathconf_vp_offsets
[] = {
661 VOPARG_OFFSETOF(struct vnop_pathconf_args
,a_vp
),
664 struct vnodeop_desc vnop_pathconf_desc
= {
668 vnop_pathconf_vp_offsets
,
673 VOPARG_OFFSETOF(struct vnop_pathconf_args
, a_context
),
677 int vnop_advlock_vp_offsets
[] = {
678 VOPARG_OFFSETOF(struct vnop_advlock_args
,a_vp
),
681 struct vnodeop_desc vnop_advlock_desc
= {
685 vnop_advlock_vp_offsets
,
690 VOPARG_OFFSETOF(struct vnop_advlock_args
, a_context
),
694 int vnop_allocate_vp_offsets
[] = {
695 VOPARG_OFFSETOF(struct vnop_allocate_args
,a_vp
),
698 struct vnodeop_desc vnop_allocate_desc
= {
702 vnop_allocate_vp_offsets
,
707 VOPARG_OFFSETOF(struct vnop_allocate_args
, a_context
),
711 int vnop_pagein_vp_offsets
[] = {
712 VOPARG_OFFSETOF(struct vnop_pagein_args
,a_vp
),
715 struct vnodeop_desc vnop_pagein_desc
= {
719 vnop_pagein_vp_offsets
,
724 VOPARG_OFFSETOF(struct vnop_pagein_args
, a_context
),
728 int vnop_pageout_vp_offsets
[] = {
729 VOPARG_OFFSETOF(struct vnop_pageout_args
,a_vp
),
732 struct vnodeop_desc vnop_pageout_desc
= {
736 vnop_pageout_vp_offsets
,
741 VOPARG_OFFSETOF(struct vnop_pageout_args
, a_context
),
745 int vnop_searchfs_vp_offsets
[] = {
746 VOPARG_OFFSETOF(struct vnop_searchfs_args
,a_vp
),
749 struct vnodeop_desc vnop_searchfs_desc
= {
753 vnop_searchfs_vp_offsets
,
761 int vnop_copyfile_vp_offsets
[] = {
762 VOPARG_OFFSETOF(struct vnop_copyfile_args
,a_fvp
),
763 VOPARG_OFFSETOF(struct vnop_copyfile_args
,a_tdvp
),
764 VOPARG_OFFSETOF(struct vnop_copyfile_args
,a_tvp
),
767 struct vnodeop_desc vnop_copyfile_desc
= {
770 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
| VDESC_VP2_WILLRELE
,
771 vnop_copyfile_vp_offsets
,
775 VOPARG_OFFSETOF(struct vnop_copyfile_args
, a_tcnp
),
779 int vop_getxattr_vp_offsets
[] = {
780 VOPARG_OFFSETOF(struct vnop_getxattr_args
,a_vp
),
783 struct vnodeop_desc vnop_getxattr_desc
= {
787 vop_getxattr_vp_offsets
,
792 VOPARG_OFFSETOF(struct vnop_getxattr_args
, a_context
),
796 int vop_setxattr_vp_offsets
[] = {
797 VOPARG_OFFSETOF(struct vnop_setxattr_args
,a_vp
),
800 struct vnodeop_desc vnop_setxattr_desc
= {
804 vop_setxattr_vp_offsets
,
809 VOPARG_OFFSETOF(struct vnop_setxattr_args
, a_context
),
813 int vop_removexattr_vp_offsets
[] = {
814 VOPARG_OFFSETOF(struct vnop_removexattr_args
,a_vp
),
817 struct vnodeop_desc vnop_removexattr_desc
= {
821 vop_removexattr_vp_offsets
,
826 VOPARG_OFFSETOF(struct vnop_removexattr_args
, a_context
),
830 int vop_listxattr_vp_offsets
[] = {
831 VOPARG_OFFSETOF(struct vnop_listxattr_args
,a_vp
),
834 struct vnodeop_desc vnop_listxattr_desc
= {
838 vop_listxattr_vp_offsets
,
843 VOPARG_OFFSETOF(struct vnop_listxattr_args
, a_context
),
847 int vnop_blktooff_vp_offsets
[] = {
848 VOPARG_OFFSETOF(struct vnop_blktooff_args
,a_vp
),
851 struct vnodeop_desc vnop_blktooff_desc
= {
855 vnop_blktooff_vp_offsets
,
863 int vnop_offtoblk_vp_offsets
[] = {
864 VOPARG_OFFSETOF(struct vnop_offtoblk_args
,a_vp
),
867 struct vnodeop_desc vnop_offtoblk_desc
= {
871 vnop_offtoblk_vp_offsets
,
879 int vnop_blockmap_vp_offsets
[] = {
880 VOPARG_OFFSETOF(struct vnop_blockmap_args
,a_vp
),
883 struct vnodeop_desc vnop_blockmap_desc
= {
887 vnop_blockmap_vp_offsets
,
897 int vnop_strategy_vp_offsets
[] = {
900 struct vnodeop_desc vnop_strategy_desc
= {
904 vnop_strategy_vp_offsets
,
912 int vnop_bwrite_vp_offsets
[] = {
915 struct vnodeop_desc vnop_bwrite_desc
= {
919 vnop_bwrite_vp_offsets
,
927 /* End of special cases. */
929 struct vnodeop_desc
*vfs_op_descs
[] = {
930 &vnop_default_desc
, /* MUST BE FIRST */
931 &vnop_strategy_desc
, /* XXX: SPECIAL CASE */
932 &vnop_bwrite_desc
, /* XXX: SPECIAL CASE */
943 &vnop_getattrlist_desc
,
944 &vnop_setattrlist_desc
,
950 &vnop_kqfilt_add_desc
,
951 &vnop_kqfilt_remove_desc
,
963 &vnop_readdirattr_desc
,
976 &vnop_removexattr_desc
,
977 &vnop_listxattr_desc
,