]> 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 df30827aec99ff66f8d5b30f3fddd906d2539304..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
@@ -362,6 +380,23 @@ struct vnodeop_desc vnop_kqfilt_remove_desc = {
        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
@@ -468,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),
@@ -506,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
@@ -523,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),
@@ -541,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
@@ -592,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
@@ -987,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,
@@ -1004,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,
@@ -1028,6 +1158,7 @@ struct vnodeop_desc *vfs_op_descs[] = {
        &vnop_blktooff_desc,
        &vnop_offtoblk_desc,
        &vnop_blockmap_desc,
+       &vnop_monitor_desc,
 #if NAMEDSTREAMS
        &vnop_getnamedstream_desc,
        &vnop_makenamedstream_desc,