-
/*
- * Copyright (c) 2006 Apple Computer, Inc. All Rights Reserved.
- *
- * @APPLE_LICENSE_OSREFERENCE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the
- * License may not be used to create, or enable the creation or
- * redistribution of, unlawful or unlicensed copies of an Apple operating
- * system, or to circumvent, violate, or enable the circumvention or
- * violation of, any terms of an Apple operating system software license
- * agreement.
+ * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
*
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
*
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
* limitations under the License.
*
- * @APPLE_LICENSE_OSREFERENCE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
*/
/*
* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
int vnop_lookup_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_lookup_args,a_dvp),
+ VOPARG_OFFSETOF(struct vnop_lookup_args, a_dvp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_lookup_desc = {
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_lookup_args, a_cnp),
VOPARG_OFFSETOF(struct vnop_lookup_args, a_context),
- NULL,
+ NULL
+};
+
+int vnop_compound_open_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_compound_open_args, a_dvp),
+ VDESC_NO_OFFSET
+};
+
+struct vnodeop_desc vnop_compound_open_desc = {
+ 0,
+ "vnop_compound_open",
+ 0 | VDESC_VP0_WILLRELE,
+ vnop_compound_open_vp_offsets,
+ VOPARG_OFFSETOF(struct vnop_compound_open_args, a_vpp),
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_compound_open_args, a_cnp),
+ VOPARG_OFFSETOF(struct vnop_compound_open_args, a_context),
+ NULL
};
int vnop_create_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_create_args,a_dvp),
+ VOPARG_OFFSETOF(struct vnop_create_args, a_dvp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_create_desc = {
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_create_args, a_cnp),
VOPARG_OFFSETOF(struct vnop_create_args, a_context),
- NULL,
+ NULL
};
int vnop_whiteout_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_whiteout_args,a_dvp),
+ VOPARG_OFFSETOF(struct vnop_whiteout_args, a_dvp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_whiteout_desc = {
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp),
VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context),
- NULL,
+ NULL
};
int vnop_mknod_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_mknod_args,a_dvp),
- VDESC_NO_OFFSET
+ VOPARG_OFFSETOF(struct vnop_mknod_args, a_dvp),
+ VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_mknod_desc = {
- 0,
- "vnop_mknod",
- 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
- vnop_mknod_vp_offsets,
- VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp),
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp),
- VOPARG_OFFSETOF(struct vnop_mknod_args, a_context),
- NULL,
+ 0,
+ "vnop_mknod",
+ 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
+ vnop_mknod_vp_offsets,
+ VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp),
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp),
+ VOPARG_OFFSETOF(struct vnop_mknod_args, a_context),
+ NULL
};
int vnop_open_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_open_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_open_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_open_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_open_args, a_context),
- NULL,
+ NULL
};
int vnop_close_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_close_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_close_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_close_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_close_args, a_context),
- NULL,
+ NULL
};
int vnop_access_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_access_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_access_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_access_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_close_args, a_context),
- NULL,
+ NULL
};
int vnop_getattr_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_getattr_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_getattr_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_getattr_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_getattr_args, a_context),
- NULL,
+ NULL
};
int vnop_setattr_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_setattr_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_setattr_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_setattr_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_setattr_args, a_context),
- NULL,
-};
-
-int vnop_getattrlist_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_getattrlist_args,a_vp),
- VDESC_NO_OFFSET
-};
-struct vnodeop_desc vnop_getattrlist_desc = {
- 0,
- "vnop_getattrlist",
- 0,
- vnop_getattrlist_vp_offsets,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VOPARG_OFFSETOF(struct vnop_getattrlist_args, a_context),
- NULL,
-};
-
-int vnop_setattrlist_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_setattrlist_args,a_vp),
- VDESC_NO_OFFSET
-};
-struct vnodeop_desc vnop_setattrlist_desc = {
- 0,
- "vnop_setattrlist",
- 0,
- vnop_setattrlist_vp_offsets,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VOPARG_OFFSETOF(struct vnop_setattrlist_args, a_context),
- NULL,
+ NULL
};
int vnop_read_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_read_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_read_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_read_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_read_args, a_context),
- NULL,
+ NULL
};
int vnop_write_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_write_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_write_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_write_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_write_args, a_context),
- NULL,
+ NULL
};
int vnop_ioctl_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_ioctl_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_ioctl_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_ioctl_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context),
- NULL,
+ NULL
};
int vnop_select_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_select_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_select_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_select_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_select_args, a_context),
- VDESC_NO_OFFSET,
- NULL,
+ NULL
};
int vnop_exchange_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_exchange_args,a_fvp),
- VOPARG_OFFSETOF(struct vnop_exchange_args,a_tvp),
+ VOPARG_OFFSETOF(struct vnop_exchange_args, a_fvp),
+ VOPARG_OFFSETOF(struct vnop_exchange_args, a_tvp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_exchange_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_exchange_args, a_context),
- NULL,
+ NULL
};
int vnop_kqfilt_add_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_kqfilt_add_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_kqfilt_add_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context),
- NULL,
+ NULL
};
int vnop_kqfilt_remove_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_kqfilt_remove_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context),
+ NULL
+};
+
+int vnop_monitor_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_monitor_args, a_vp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_monitor_desc = {
+ 0,
+ "vnop_monitor",
+ 0,
+ vnop_monitor_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_monitor_args, a_context),
+ NULL
+};
+
+int vnop_setlabel_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_setlabel_args, a_vp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_setlabel_desc = {
+ 0,
+ "vnop_setlabel",
+ 0,
+ vnop_setlabel_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_setlabel_args, a_context),
NULL,
};
int vnop_revoke_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_revoke_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_revoke_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_revoke_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
+int vnop_mmap_check_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_mmap_check_args, a_vp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_mmap_check_desc = {
+ 0,
+ "vnop_mmap_check",
+ 0,
+ vnop_mmap_check_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ NULL
+};
int vnop_mmap_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_mmap_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_mmap_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_mmap_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
-
int vnop_mnomap_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_mnomap_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_mnomap_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_mnomap_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
-
int vnop_fsync_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_fsync_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_fsync_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_fsync_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_fsync_args, a_context),
- NULL,
+ NULL
};
int vnop_remove_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp),
- VOPARG_OFFSETOF(struct vnop_remove_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_remove_args, a_dvp),
+ VOPARG_OFFSETOF(struct vnop_remove_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_remove_desc = {
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
- NULL,
+ NULL
+};
+
+int vnop_remove_extended_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_remove_args, a_dvp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_compound_remove_desc = {
+ 0,
+ "vnop_compound_remove",
+ 0,
+ vnop_remove_vp_offsets,
+ VOPARG_OFFSETOF(struct vnop_compound_remove_args, a_vpp),
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
+ VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
+ NULL
};
int vnop_link_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_link_args,a_vp),
- VOPARG_OFFSETOF(struct vnop_link_args,a_tdvp),
+ VOPARG_OFFSETOF(struct vnop_link_args, a_vp),
+ VOPARG_OFFSETOF(struct vnop_link_args, a_tdvp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_link_desc = {
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_link_args, a_cnp),
VOPARG_OFFSETOF(struct vnop_link_args, a_context),
- NULL,
+ NULL
};
int vnop_rename_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_rename_args,a_fdvp),
- VOPARG_OFFSETOF(struct vnop_rename_args,a_fvp),
- VOPARG_OFFSETOF(struct vnop_rename_args,a_tdvp),
- VOPARG_OFFSETOF(struct vnop_rename_args,a_tvp),
+ VOPARG_OFFSETOF(struct vnop_rename_args, a_fdvp),
+ VOPARG_OFFSETOF(struct vnop_rename_args, a_fvp),
+ VOPARG_OFFSETOF(struct vnop_rename_args, a_tdvp),
+ VOPARG_OFFSETOF(struct vnop_rename_args, a_tvp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_rename_desc = {
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp),
VOPARG_OFFSETOF(struct vnop_rename_args, a_context),
- NULL,
+ NULL
+};
+
+int vnop_renamex_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_renamex_args, a_fdvp),
+ VOPARG_OFFSETOF(struct vnop_renamex_args, a_fvp),
+ VOPARG_OFFSETOF(struct vnop_renamex_args, a_tdvp),
+ VOPARG_OFFSETOF(struct vnop_renamex_args, a_tvp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_renamex_desc = {
+ 0,
+ "vnop_renamex",
+ 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
+ vnop_renamex_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_renamex_args, a_fcnp),
+ VOPARG_OFFSETOF(struct vnop_renamex_args, a_context),
+ NULL
+};
+
+int vnop_compound_rename_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fdvp),
+ VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fvpp),
+ VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_tdvp),
+ VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_tvpp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_compound_rename_desc = {
+ 0,
+ "vnop_compound_rename",
+ 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
+ vnop_compound_rename_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fcnp),
+ VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_context),
+ NULL
};
int vnop_mkdir_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_mkdir_args,a_dvp),
- VDESC_NO_OFFSET
+ VOPARG_OFFSETOF(struct vnop_mkdir_args, a_dvp),
+ VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_mkdir_desc = {
- 0,
- "vnop_mkdir",
- 0 | VDESC_VP0_WILLRELE,
- vnop_mkdir_vp_offsets,
- VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
- VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
- NULL,
+ 0,
+ "vnop_mkdir",
+ 0 | VDESC_VP0_WILLRELE,
+ vnop_mkdir_vp_offsets,
+ VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
+ VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
+ NULL
+};
+
+int vnop_compound_mkdir_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_dvp),
+ VDESC_NO_OFFSET
};
+struct vnodeop_desc vnop_compound_mkdir_desc = {
+ 0,
+ "vnop_compound_mkdir",
+ 0 | VDESC_VP0_WILLRELE,
+ vnop_compound_mkdir_vp_offsets,
+ VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_vpp),
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_cnp),
+ VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_context),
+ NULL
+};
+
int vnop_rmdir_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp),
- VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_rmdir_args, a_dvp),
+ VOPARG_OFFSETOF(struct vnop_rmdir_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_rmdir_desc = {
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp),
VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context),
- NULL,
+ NULL
+};
+
+int vnop_compound_rmdir_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_dvp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_compound_rmdir_desc = {
+ 0,
+ "vnop_compound_rmdir",
+ 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
+ vnop_rmdir_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_cnp),
+ VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_context),
+ NULL
};
int vnop_symlink_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_symlink_args,a_dvp),
- VDESC_NO_OFFSET
+ VOPARG_OFFSETOF(struct vnop_symlink_args, a_dvp),
+ VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_symlink_desc = {
- 0,
- "vnop_symlink",
- 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
- vnop_symlink_vp_offsets,
- VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
- VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
- NULL,
+ 0,
+ "vnop_symlink",
+ 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
+ vnop_symlink_vp_offsets,
+ VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
+ VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
+ NULL
};
int vnop_readdir_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_readdir_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_readdir_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_readdir_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
- NULL,
+ NULL
};
int vnop_readdirattr_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_readdirattr_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_readdirattr_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context),
- NULL,
+ NULL
+};
+
+int vnop_getattrlistbulk_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_vp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_getattrlistbulk_desc = {
+ 0,
+ "vnop_getattrlistbulk",
+ 0,
+ vnop_getattrlistbulk_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_context),
+ NULL
};
int vnop_readlink_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_readlink_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_readlink_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_readlink_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_readlink_args, a_context),
- NULL,
+ NULL
};
int vnop_inactive_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_inactive_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_inactive_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_inactive_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_inactive_args, a_context),
- NULL,
+ NULL
};
int vnop_reclaim_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_reclaim_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_reclaim_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_reclaim_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context),
- NULL,
+ NULL
};
int vnop_pathconf_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_pathconf_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_pathconf_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_pathconf_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context),
- NULL,
+ NULL
};
int vnop_advlock_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_advlock_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_advlock_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_advlock_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_advlock_args, a_context),
- NULL,
+ NULL
};
int vnop_allocate_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_allocate_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_allocate_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_allocate_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_allocate_args, a_context),
- NULL,
+ NULL
};
int vnop_pagein_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_pagein_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_pagein_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_pagein_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_pagein_args, a_context),
- NULL,
+ NULL
};
int vnop_pageout_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_pageout_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_pageout_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_pageout_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_pageout_args, a_context),
- NULL,
-};
-
-int vnop_devblocksize_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_devblocksize_args,a_vp),
- VDESC_NO_OFFSET
-};
-struct vnodeop_desc vnop_devblocksize_desc = {
- 0,
- "vnop_devblocksize",
- 0,
- vnop_devblocksize_vp_offsets,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- NULL,
+ NULL
};
int vnop_searchfs_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_searchfs_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_searchfs_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_searchfs_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
int vnop_copyfile_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_copyfile_args,a_fvp),
- VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tdvp),
- VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tvp),
+ VOPARG_OFFSETOF(struct vnop_copyfile_args, a_fvp),
+ VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tdvp),
+ VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tvp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_copyfile_desc = {
- 0,
- "vnop_copyfile",
- 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
- vnop_copyfile_vp_offsets,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VDESC_NO_OFFSET,
- VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
- NULL,
+ .vdesc_offset = 0,
+ .vdesc_name = "vnop_copyfile",
+ .vdesc_flags = 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
+ .vdesc_vp_offsets = vnop_copyfile_vp_offsets,
+ .vdesc_vpp_offset = VDESC_NO_OFFSET,
+ .vdesc_cred_offset = VDESC_NO_OFFSET,
+ .vdesc_proc_offset = VDESC_NO_OFFSET,
+ .vdesc_componentname_offset = VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
+ .vdesc_context_offset = VDESC_NO_OFFSET,
+ .vdesc_transports = NULL
+};
+
+int vnop_clonefile_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_clonefile_args, a_fvp),
+ VOPARG_OFFSETOF(struct vnop_clonefile_args, a_dvp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_clonefile_desc = {
+ .vdesc_offset = 0,
+ .vdesc_name = "vnop_clonefile",
+ .vdesc_flags = 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VPP_WILLRELE,
+ .vdesc_vp_offsets = vnop_clonefile_vp_offsets,
+ .vdesc_vpp_offset = VOPARG_OFFSETOF(struct vnop_clonefile_args, a_vpp),
+ .vdesc_cred_offset = VDESC_NO_OFFSET,
+ .vdesc_proc_offset = VDESC_NO_OFFSET,
+ .vdesc_componentname_offset = VOPARG_OFFSETOF(struct vnop_clonefile_args, a_cnp),
+ .vdesc_context_offset = VOPARG_OFFSETOF(struct vnop_clonefile_args, a_context),
+ .vdesc_transports = NULL
};
int vop_getxattr_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_getxattr_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_getxattr_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_getxattr_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context),
- NULL,
+ NULL
};
int vop_setxattr_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_setxattr_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_setxattr_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_setxattr_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context),
- NULL,
+ NULL
};
int vop_removexattr_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_removexattr_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_removexattr_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_removexattr_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context),
- NULL,
+ NULL
};
int vop_listxattr_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_listxattr_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_listxattr_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_listxattr_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context),
- NULL,
+ NULL
};
int vnop_blktooff_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_blktooff_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_blktooff_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_blktooff_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
int vnop_offtoblk_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_offtoblk_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_offtoblk_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_offtoblk_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
int vnop_blockmap_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vnop_blockmap_args,a_vp),
+ VOPARG_OFFSETOF(struct vnop_blockmap_args, a_vp),
VDESC_NO_OFFSET
};
struct vnodeop_desc vnop_blockmap_desc = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
+#if NAMEDSTREAMS
+int vnop_getnamedstream_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_getnamedstream_desc = {
+ 0,
+ "vnop_getnamedstream",
+ 0,
+ vnop_getnamedstream_vp_offsets,
+ VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp),
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name),
+ VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context),
+ NULL
+};
+
+int vnop_makenamedstream_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_makenamedstream_desc = {
+ 0,
+ "vnop_makenamedstream",
+ 0, /* flags */
+ vnop_makenamedstream_vp_offsets,
+ VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp),
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name),
+ VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context),
+ NULL
+};
+
+int vnop_removenamedstream_vp_offsets[] = {
+ VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp),
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_removenamedstream_desc = {
+ 0,
+ "vnop_removenamedstream",
+ 0,
+ vnop_removenamedstream_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_name),
+ VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_context),
+ NULL
+};
+#else
+int vnop_getnamedstream_vp_offsets[] = {
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_getnamedstream_desc = {
+ 0,
+ "vnop_getnamedstream",
+ VDESC_DISABLED, /* flags */
+ vnop_getnamedstream_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ NULL
+};
+
+int vnop_makenamedstream_vp_offsets[] = {
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_makenamedstream_desc = {
+ 0,
+ "vnop_makenamedstream",
+ VDESC_DISABLED, /* flags */
+ vnop_makenamedstream_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ NULL
+};
+
+int vnop_removenamedstream_vp_offsets[] = {
+ VDESC_NO_OFFSET
+};
+struct vnodeop_desc vnop_removenamedstream_desc = {
+ 0,
+ "vnop_removenamedstream",
+ VDESC_DISABLED, /* flags */
+ vnop_removenamedstream_vp_offsets,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ VDESC_NO_OFFSET,
+ NULL
+};
+#endif
+
/* Special cases: */
int vnop_strategy_vp_offsets[] = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
int vnop_bwrite_vp_offsets[] = {
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- NULL,
+ VDESC_NO_OFFSET,
+ NULL
};
/* End of special cases. */
struct vnodeop_desc *vfs_op_descs[] = {
- &vnop_default_desc, /* MUST BE FIRST */
- &vnop_strategy_desc, /* XXX: SPECIAL CASE */
- &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
+ &vnop_default_desc, /* MUST BE FIRST */
+ &vnop_strategy_desc, /* XXX: SPECIAL CASE */
+ &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
&vnop_lookup_desc,
&vnop_create_desc,
&vnop_mknod_desc,
&vnop_whiteout_desc,
&vnop_open_desc,
+ &vnop_compound_open_desc,
&vnop_close_desc,
&vnop_access_desc,
&vnop_getattr_desc,
&vnop_setattr_desc,
- &vnop_getattrlist_desc,
- &vnop_setattrlist_desc,
&vnop_read_desc,
&vnop_write_desc,
&vnop_ioctl_desc,
&vnop_exchange_desc,
&vnop_kqfilt_add_desc,
&vnop_kqfilt_remove_desc,
+ &vnop_setlabel_desc,
&vnop_revoke_desc,
+ &vnop_mmap_check_desc,
&vnop_mmap_desc,
&vnop_mnomap_desc,
&vnop_fsync_desc,
&vnop_remove_desc,
+ &vnop_compound_remove_desc,
&vnop_link_desc,
&vnop_rename_desc,
+ &vnop_renamex_desc,
+ &vnop_compound_rename_desc,
&vnop_mkdir_desc,
+ &vnop_compound_mkdir_desc,
&vnop_rmdir_desc,
+ &vnop_compound_rmdir_desc,
&vnop_symlink_desc,
&vnop_readdir_desc,
&vnop_readdirattr_desc,
+ &vnop_getattrlistbulk_desc,
&vnop_readlink_desc,
&vnop_inactive_desc,
&vnop_reclaim_desc,
&vnop_allocate_desc,
&vnop_pagein_desc,
&vnop_pageout_desc,
- &vnop_devblocksize_desc,
&vnop_searchfs_desc,
&vnop_copyfile_desc,
+ &vnop_clonefile_desc,
&vnop_getxattr_desc,
&vnop_setxattr_desc,
&vnop_removexattr_desc,
&vnop_blktooff_desc,
&vnop_offtoblk_desc,
&vnop_blockmap_desc,
+ &vnop_monitor_desc,
+#if !defined(NAMEDSTREAMS)
+ /*
+ * We define the named streams ops descriptors as we _always_ have to
+ * have symbols with their names, and as such we really really need
+ * those symbols to be valid operations descriptors. However if
+ * named streams support is not enabled, we flag these descriptors
+ * as ignored.
+ */
+#endif
+ &vnop_getnamedstream_desc,
+ &vnop_makenamedstream_desc,
+ &vnop_removenamedstream_desc,
NULL
};
-