]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/vfs/vnode_if.c
xnu-2782.1.97.tar.gz
[apple/xnu.git] / bsd / vfs / vnode_if.c
index 1a77414e2562a4d906ab965f212e6c6938c2595c..1fc9bd7df26ef0abf30855733edc8b9ac0c96c9c 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2014 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
@@ -106,6 +106,24 @@ struct vnodeop_desc vnop_lookup_desc = {
        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),
        VDESC_NO_OFFSET
@@ -485,6 +503,23 @@ struct vnodeop_desc vnop_remove_desc = {
        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),
@@ -523,6 +558,26 @@ struct vnodeop_desc vnop_rename_desc = {
        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
@@ -540,6 +595,24 @@ struct vnodeop_desc vnop_mkdir_desc = {
        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),
@@ -558,6 +631,23 @@ struct vnodeop_desc vnop_rmdir_desc = {
        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
@@ -609,6 +699,23 @@ struct vnodeop_desc vnop_readdirattr_desc = {
        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),
        VDESC_NO_OFFSET
@@ -1004,6 +1111,7 @@ struct vnodeop_desc *vfs_op_descs[] = {
        &vnop_mknod_desc,
        &vnop_whiteout_desc,
        &vnop_open_desc,
+       &vnop_compound_open_desc,
        &vnop_close_desc,
        &vnop_access_desc,
        &vnop_getattr_desc,
@@ -1021,13 +1129,18 @@ struct vnodeop_desc *vfs_op_descs[] = {
        &vnop_mnomap_desc,
        &vnop_fsync_desc,
        &vnop_remove_desc,
+       &vnop_compound_remove_desc,
        &vnop_link_desc,
        &vnop_rename_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,