3 * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
5 * @APPLE_LICENSE_HEADER_START@
7 * The contents of this file constitute Original Code as defined in and
8 * are subject to the Apple Public Source License Version 1.1 (the
9 * "License"). You may not use this file except in compliance with the
10 * License. Please obtain a copy of the License at
11 * http://www.apple.com/publicsource and read it before using this file.
13 * This Original Code and all software distributed under the License are
14 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
18 * License for the specific language governing rights and limitations
21 * @APPLE_LICENSE_HEADER_END@
24 * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
25 * Copyright (c) 1992, 1993, 1994, 1995
26 * The Regents of the University of California. All rights reserved.
28 * Redistribution and use in source and binary forms, with or without
29 * modification, are permitted provided that the following conditions
31 * 1. Redistributions of source code must retain the above copyright
32 * notice, this list of conditions and the following disclaimer.
33 * 2. Redistributions in binary form must reproduce the above copyright
34 * notice, this list of conditions and the following disclaimer in the
35 * documentation and/or other materials provided with the distribution.
36 * 3. All advertising materials mentioning features or use of this software
37 * must display the following acknowledgement:
38 * This product includes software developed by the University of
39 * California, Berkeley and its contributors.
40 * 4. Neither the name of the University nor the names of its contributors
41 * may be used to endorse or promote products derived from this software
42 * without specific prior written permission.
44 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS AND
45 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
46 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
47 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
48 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
49 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
50 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
51 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
52 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
53 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
59 * Warning: This file is generated automatically.
60 * (Modifications made here may easily be lost!)
62 * Created by the script:
63 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
67 #include <sys/param.h>
68 #include <sys/mount_internal.h>
70 #include <sys/vnode_internal.h>
72 struct vnodeop_desc vnop_default_desc
= {
85 int vnop_lookup_vp_offsets
[] = {
86 VOPARG_OFFSETOF(struct vnop_lookup_args
,a_dvp
),
89 struct vnodeop_desc vnop_lookup_desc
= {
93 vnop_lookup_vp_offsets
,
94 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_vpp
),
97 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_cnp
),
98 VOPARG_OFFSETOF(struct vnop_lookup_args
, a_context
),
102 int vnop_create_vp_offsets
[] = {
103 VOPARG_OFFSETOF(struct vnop_create_args
,a_dvp
),
106 struct vnodeop_desc vnop_create_desc
= {
109 0 | VDESC_VP0_WILLRELE
,
110 vnop_create_vp_offsets
,
111 VOPARG_OFFSETOF(struct vnop_create_args
, a_vpp
),
114 VOPARG_OFFSETOF(struct vnop_create_args
, a_cnp
),
115 VOPARG_OFFSETOF(struct vnop_create_args
, a_context
),
119 int vnop_whiteout_vp_offsets
[] = {
120 VOPARG_OFFSETOF(struct vnop_whiteout_args
,a_dvp
),
123 struct vnodeop_desc vnop_whiteout_desc
= {
126 0 | VDESC_VP0_WILLRELE
,
127 vnop_whiteout_vp_offsets
,
131 VOPARG_OFFSETOF(struct vnop_whiteout_args
, a_cnp
),
132 VOPARG_OFFSETOF(struct vnop_whiteout_args
, a_context
),
136 int vnop_mknod_vp_offsets
[] = {
137 VOPARG_OFFSETOF(struct vnop_mknod_args
,a_dvp
),
140 struct vnodeop_desc vnop_mknod_desc
= {
143 0 | VDESC_VP0_WILLRELE
| VDESC_VPP_WILLRELE
,
144 vnop_mknod_vp_offsets
,
145 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_vpp
),
148 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_cnp
),
149 VOPARG_OFFSETOF(struct vnop_mknod_args
, a_context
),
153 int vnop_open_vp_offsets
[] = {
154 VOPARG_OFFSETOF(struct vnop_open_args
,a_vp
),
157 struct vnodeop_desc vnop_open_desc
= {
161 vnop_open_vp_offsets
,
166 VOPARG_OFFSETOF(struct vnop_open_args
, a_context
),
170 int vnop_close_vp_offsets
[] = {
171 VOPARG_OFFSETOF(struct vnop_close_args
,a_vp
),
174 struct vnodeop_desc vnop_close_desc
= {
178 vnop_close_vp_offsets
,
183 VOPARG_OFFSETOF(struct vnop_close_args
, a_context
),
187 int vnop_access_vp_offsets
[] = {
188 VOPARG_OFFSETOF(struct vnop_access_args
,a_vp
),
191 struct vnodeop_desc vnop_access_desc
= {
195 vnop_access_vp_offsets
,
200 VOPARG_OFFSETOF(struct vnop_close_args
, a_context
),
204 int vnop_getattr_vp_offsets
[] = {
205 VOPARG_OFFSETOF(struct vnop_getattr_args
,a_vp
),
208 struct vnodeop_desc vnop_getattr_desc
= {
212 vnop_getattr_vp_offsets
,
217 VOPARG_OFFSETOF(struct vnop_getattr_args
, a_context
),
221 int vnop_setattr_vp_offsets
[] = {
222 VOPARG_OFFSETOF(struct vnop_setattr_args
,a_vp
),
225 struct vnodeop_desc vnop_setattr_desc
= {
229 vnop_setattr_vp_offsets
,
234 VOPARG_OFFSETOF(struct vnop_setattr_args
, a_context
),
238 int vnop_getattrlist_vp_offsets
[] = {
239 VOPARG_OFFSETOF(struct vnop_getattrlist_args
,a_vp
),
242 struct vnodeop_desc vnop_getattrlist_desc
= {
246 vnop_getattrlist_vp_offsets
,
251 VOPARG_OFFSETOF(struct vnop_getattrlist_args
, a_context
),
255 int vnop_setattrlist_vp_offsets
[] = {
256 VOPARG_OFFSETOF(struct vnop_setattrlist_args
,a_vp
),
259 struct vnodeop_desc vnop_setattrlist_desc
= {
263 vnop_setattrlist_vp_offsets
,
268 VOPARG_OFFSETOF(struct vnop_setattrlist_args
, a_context
),
272 int vnop_read_vp_offsets
[] = {
273 VOPARG_OFFSETOF(struct vnop_read_args
,a_vp
),
276 struct vnodeop_desc vnop_read_desc
= {
280 vnop_read_vp_offsets
,
285 VOPARG_OFFSETOF(struct vnop_read_args
, a_context
),
289 int vnop_write_vp_offsets
[] = {
290 VOPARG_OFFSETOF(struct vnop_write_args
,a_vp
),
293 struct vnodeop_desc vnop_write_desc
= {
297 vnop_write_vp_offsets
,
302 VOPARG_OFFSETOF(struct vnop_write_args
, a_context
),
306 int vnop_ioctl_vp_offsets
[] = {
307 VOPARG_OFFSETOF(struct vnop_ioctl_args
,a_vp
),
310 struct vnodeop_desc vnop_ioctl_desc
= {
314 vnop_ioctl_vp_offsets
,
319 VOPARG_OFFSETOF(struct vnop_ioctl_args
, a_context
),
323 int vnop_select_vp_offsets
[] = {
324 VOPARG_OFFSETOF(struct vnop_select_args
,a_vp
),
327 struct vnodeop_desc vnop_select_desc
= {
331 vnop_select_vp_offsets
,
336 VOPARG_OFFSETOF(struct vnop_select_args
, a_context
),
341 int vnop_exchange_vp_offsets
[] = {
342 VOPARG_OFFSETOF(struct vnop_exchange_args
,a_fvp
),
343 VOPARG_OFFSETOF(struct vnop_exchange_args
,a_tvp
),
346 struct vnodeop_desc vnop_exchange_desc
= {
350 vnop_exchange_vp_offsets
,
355 VOPARG_OFFSETOF(struct vnop_exchange_args
, a_context
),
359 int vnop_kqfilt_add_vp_offsets
[] = {
360 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args
,a_vp
),
363 struct vnodeop_desc vnop_kqfilt_add_desc
= {
367 vnop_kqfilt_add_vp_offsets
,
372 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args
, a_context
),
376 int vnop_kqfilt_remove_vp_offsets
[] = {
377 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args
,a_vp
),
380 struct vnodeop_desc vnop_kqfilt_remove_desc
= {
382 "vnop_kqfilt_remove",
384 vnop_kqfilt_remove_vp_offsets
,
389 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args
, a_context
),
393 int vnop_revoke_vp_offsets
[] = {
394 VOPARG_OFFSETOF(struct vnop_revoke_args
,a_vp
),
397 struct vnodeop_desc vnop_revoke_desc
= {
401 vnop_revoke_vp_offsets
,
410 int vnop_mmap_vp_offsets
[] = {
411 VOPARG_OFFSETOF(struct vnop_mmap_args
,a_vp
),
414 struct vnodeop_desc vnop_mmap_desc
= {
418 vnop_mmap_vp_offsets
,
427 int vnop_mnomap_vp_offsets
[] = {
428 VOPARG_OFFSETOF(struct vnop_mnomap_args
,a_vp
),
431 struct vnodeop_desc vnop_mnomap_desc
= {
435 vnop_mnomap_vp_offsets
,
444 int vnop_fsync_vp_offsets
[] = {
445 VOPARG_OFFSETOF(struct vnop_fsync_args
,a_vp
),
448 struct vnodeop_desc vnop_fsync_desc
= {
452 vnop_fsync_vp_offsets
,
457 VOPARG_OFFSETOF(struct vnop_fsync_args
, a_context
),
461 int vnop_remove_vp_offsets
[] = {
462 VOPARG_OFFSETOF(struct vnop_remove_args
,a_dvp
),
463 VOPARG_OFFSETOF(struct vnop_remove_args
,a_vp
),
466 struct vnodeop_desc vnop_remove_desc
= {
469 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
,
470 vnop_remove_vp_offsets
,
474 VOPARG_OFFSETOF(struct vnop_remove_args
, a_cnp
),
475 VOPARG_OFFSETOF(struct vnop_remove_args
, a_context
),
479 int vnop_link_vp_offsets
[] = {
480 VOPARG_OFFSETOF(struct vnop_link_args
,a_vp
),
481 VOPARG_OFFSETOF(struct vnop_link_args
,a_tdvp
),
484 struct vnodeop_desc vnop_link_desc
= {
487 0 | VDESC_VP1_WILLRELE
,
488 vnop_link_vp_offsets
,
492 VOPARG_OFFSETOF(struct vnop_link_args
, a_cnp
),
493 VOPARG_OFFSETOF(struct vnop_link_args
, a_context
),
497 int vnop_rename_vp_offsets
[] = {
498 VOPARG_OFFSETOF(struct vnop_rename_args
,a_fdvp
),
499 VOPARG_OFFSETOF(struct vnop_rename_args
,a_fvp
),
500 VOPARG_OFFSETOF(struct vnop_rename_args
,a_tdvp
),
501 VOPARG_OFFSETOF(struct vnop_rename_args
,a_tvp
),
504 struct vnodeop_desc vnop_rename_desc
= {
507 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
| VDESC_VP2_WILLRELE
| VDESC_VP3_WILLRELE
,
508 vnop_rename_vp_offsets
,
512 VOPARG_OFFSETOF(struct vnop_rename_args
, a_fcnp
),
513 VOPARG_OFFSETOF(struct vnop_rename_args
, a_context
),
517 int vnop_mkdir_vp_offsets
[] = {
518 VOPARG_OFFSETOF(struct vnop_mkdir_args
,a_dvp
),
521 struct vnodeop_desc vnop_mkdir_desc
= {
524 0 | VDESC_VP0_WILLRELE
,
525 vnop_mkdir_vp_offsets
,
526 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_vpp
),
529 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_cnp
),
530 VOPARG_OFFSETOF(struct vnop_mkdir_args
, a_context
),
534 int vnop_rmdir_vp_offsets
[] = {
535 VOPARG_OFFSETOF(struct vnop_rmdir_args
,a_dvp
),
536 VOPARG_OFFSETOF(struct vnop_rmdir_args
,a_vp
),
539 struct vnodeop_desc vnop_rmdir_desc
= {
542 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
,
543 vnop_rmdir_vp_offsets
,
547 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_cnp
),
548 VOPARG_OFFSETOF(struct vnop_rmdir_args
, a_context
),
552 int vnop_symlink_vp_offsets
[] = {
553 VOPARG_OFFSETOF(struct vnop_symlink_args
,a_dvp
),
556 struct vnodeop_desc vnop_symlink_desc
= {
559 0 | VDESC_VP0_WILLRELE
| VDESC_VPP_WILLRELE
,
560 vnop_symlink_vp_offsets
,
561 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_vpp
),
564 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_cnp
),
565 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_context
),
569 int vnop_readdir_vp_offsets
[] = {
570 VOPARG_OFFSETOF(struct vnop_readdir_args
,a_vp
),
573 struct vnodeop_desc vnop_readdir_desc
= {
577 vnop_readdir_vp_offsets
,
582 VOPARG_OFFSETOF(struct vnop_symlink_args
, a_context
),
586 int vnop_readdirattr_vp_offsets
[] = {
587 VOPARG_OFFSETOF(struct vnop_readdirattr_args
,a_vp
),
590 struct vnodeop_desc vnop_readdirattr_desc
= {
594 vnop_readdirattr_vp_offsets
,
599 VOPARG_OFFSETOF(struct vnop_readdirattr_args
, a_context
),
603 int vnop_readlink_vp_offsets
[] = {
604 VOPARG_OFFSETOF(struct vnop_readlink_args
,a_vp
),
607 struct vnodeop_desc vnop_readlink_desc
= {
611 vnop_readlink_vp_offsets
,
616 VOPARG_OFFSETOF(struct vnop_readlink_args
, a_context
),
620 int vnop_inactive_vp_offsets
[] = {
621 VOPARG_OFFSETOF(struct vnop_inactive_args
,a_vp
),
624 struct vnodeop_desc vnop_inactive_desc
= {
628 vnop_inactive_vp_offsets
,
633 VOPARG_OFFSETOF(struct vnop_inactive_args
, a_context
),
637 int vnop_reclaim_vp_offsets
[] = {
638 VOPARG_OFFSETOF(struct vnop_reclaim_args
,a_vp
),
641 struct vnodeop_desc vnop_reclaim_desc
= {
645 vnop_reclaim_vp_offsets
,
650 VOPARG_OFFSETOF(struct vnop_reclaim_args
, a_context
),
654 int vnop_pathconf_vp_offsets
[] = {
655 VOPARG_OFFSETOF(struct vnop_pathconf_args
,a_vp
),
658 struct vnodeop_desc vnop_pathconf_desc
= {
662 vnop_pathconf_vp_offsets
,
667 VOPARG_OFFSETOF(struct vnop_pathconf_args
, a_context
),
671 int vnop_advlock_vp_offsets
[] = {
672 VOPARG_OFFSETOF(struct vnop_advlock_args
,a_vp
),
675 struct vnodeop_desc vnop_advlock_desc
= {
679 vnop_advlock_vp_offsets
,
684 VOPARG_OFFSETOF(struct vnop_advlock_args
, a_context
),
688 int vnop_allocate_vp_offsets
[] = {
689 VOPARG_OFFSETOF(struct vnop_allocate_args
,a_vp
),
692 struct vnodeop_desc vnop_allocate_desc
= {
696 vnop_allocate_vp_offsets
,
701 VOPARG_OFFSETOF(struct vnop_allocate_args
, a_context
),
705 int vnop_pagein_vp_offsets
[] = {
706 VOPARG_OFFSETOF(struct vnop_pagein_args
,a_vp
),
709 struct vnodeop_desc vnop_pagein_desc
= {
713 vnop_pagein_vp_offsets
,
718 VOPARG_OFFSETOF(struct vnop_pagein_args
, a_context
),
722 int vnop_pageout_vp_offsets
[] = {
723 VOPARG_OFFSETOF(struct vnop_pageout_args
,a_vp
),
726 struct vnodeop_desc vnop_pageout_desc
= {
730 vnop_pageout_vp_offsets
,
735 VOPARG_OFFSETOF(struct vnop_pageout_args
, a_context
),
739 int vnop_devblocksize_vp_offsets
[] = {
740 VOPARG_OFFSETOF(struct vnop_devblocksize_args
,a_vp
),
743 struct vnodeop_desc vnop_devblocksize_desc
= {
747 vnop_devblocksize_vp_offsets
,
755 int vnop_searchfs_vp_offsets
[] = {
756 VOPARG_OFFSETOF(struct vnop_searchfs_args
,a_vp
),
759 struct vnodeop_desc vnop_searchfs_desc
= {
763 vnop_searchfs_vp_offsets
,
771 int vnop_copyfile_vp_offsets
[] = {
772 VOPARG_OFFSETOF(struct vnop_copyfile_args
,a_fvp
),
773 VOPARG_OFFSETOF(struct vnop_copyfile_args
,a_tdvp
),
774 VOPARG_OFFSETOF(struct vnop_copyfile_args
,a_tvp
),
777 struct vnodeop_desc vnop_copyfile_desc
= {
780 0 | VDESC_VP0_WILLRELE
| VDESC_VP1_WILLRELE
| VDESC_VP2_WILLRELE
,
781 vnop_copyfile_vp_offsets
,
785 VOPARG_OFFSETOF(struct vnop_copyfile_args
, a_tcnp
),
789 int vop_getxattr_vp_offsets
[] = {
790 VOPARG_OFFSETOF(struct vnop_getxattr_args
,a_vp
),
793 struct vnodeop_desc vnop_getxattr_desc
= {
797 vop_getxattr_vp_offsets
,
802 VOPARG_OFFSETOF(struct vnop_getxattr_args
, a_context
),
806 int vop_setxattr_vp_offsets
[] = {
807 VOPARG_OFFSETOF(struct vnop_setxattr_args
,a_vp
),
810 struct vnodeop_desc vnop_setxattr_desc
= {
814 vop_setxattr_vp_offsets
,
819 VOPARG_OFFSETOF(struct vnop_setxattr_args
, a_context
),
823 int vop_removexattr_vp_offsets
[] = {
824 VOPARG_OFFSETOF(struct vnop_removexattr_args
,a_vp
),
827 struct vnodeop_desc vnop_removexattr_desc
= {
831 vop_removexattr_vp_offsets
,
836 VOPARG_OFFSETOF(struct vnop_removexattr_args
, a_context
),
840 int vop_listxattr_vp_offsets
[] = {
841 VOPARG_OFFSETOF(struct vnop_listxattr_args
,a_vp
),
844 struct vnodeop_desc vnop_listxattr_desc
= {
848 vop_listxattr_vp_offsets
,
853 VOPARG_OFFSETOF(struct vnop_listxattr_args
, a_context
),
857 int vnop_blktooff_vp_offsets
[] = {
858 VOPARG_OFFSETOF(struct vnop_blktooff_args
,a_vp
),
861 struct vnodeop_desc vnop_blktooff_desc
= {
865 vnop_blktooff_vp_offsets
,
873 int vnop_offtoblk_vp_offsets
[] = {
874 VOPARG_OFFSETOF(struct vnop_offtoblk_args
,a_vp
),
877 struct vnodeop_desc vnop_offtoblk_desc
= {
881 vnop_offtoblk_vp_offsets
,
889 int vnop_blockmap_vp_offsets
[] = {
890 VOPARG_OFFSETOF(struct vnop_blockmap_args
,a_vp
),
893 struct vnodeop_desc vnop_blockmap_desc
= {
897 vnop_blockmap_vp_offsets
,
907 int vnop_strategy_vp_offsets
[] = {
910 struct vnodeop_desc vnop_strategy_desc
= {
914 vnop_strategy_vp_offsets
,
922 int vnop_bwrite_vp_offsets
[] = {
925 struct vnodeop_desc vnop_bwrite_desc
= {
929 vnop_bwrite_vp_offsets
,
937 /* End of special cases. */
939 struct vnodeop_desc
*vfs_op_descs
[] = {
940 &vnop_default_desc
, /* MUST BE FIRST */
941 &vnop_strategy_desc
, /* XXX: SPECIAL CASE */
942 &vnop_bwrite_desc
, /* XXX: SPECIAL CASE */
953 &vnop_getattrlist_desc
,
954 &vnop_setattrlist_desc
,
960 &vnop_kqfilt_add_desc
,
961 &vnop_kqfilt_remove_desc
,
973 &vnop_readdirattr_desc
,
982 &vnop_devblocksize_desc
,
987 &vnop_removexattr_desc
,
988 &vnop_listxattr_desc
,