X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/9bccf70c0258c7cac2dcb80011b2a964d884c552..e8c3f78193f1895ea514044358b93b1add9322f3:/bsd/vfs/vnode_if.sh?ds=sidebyside

diff --git a/bsd/vfs/vnode_if.sh b/bsd/vfs/vnode_if.sh
old mode 100644
new mode 100755
index 574dd9770..ff699a78e
--- a/bsd/vfs/vnode_if.sh
+++ b/bsd/vfs/vnode_if.sh
@@ -1,9 +1,9 @@
 #!/bin/sh -
 copyright='
 /*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
  * The contents of this file constitute Original Code as defined in and
  * are subject to the Apple Public Source License Version 1.1 (the
@@ -19,7 +19,7 @@ copyright='
  * License for the specific language governing rights and limitations
  * under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
  * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
@@ -174,6 +174,7 @@ echo '
 #define _SYS_VNODE_IF_H_
 
 #include <sys/appleapiopts.h>
+#include <sys/ubc.h>
 
 #ifdef __APPLE_API_UNSTABLE
 extern struct vnodeop_desc vop_default_desc;
@@ -206,26 +207,23 @@ function doit() {
 	printf("static __inline int _%s(", toupper(name));
 	for (i=0; i<argc; i++) {
 		# generate ANSI protoypes now, hurrah!
-		printf("%s %s", argtype[i], argname[i]);
+		printf("%s _%s", argtype[i], argname[i]);
 		if (i < (argc-1)) printf(", ");
 	}
 	printf(")\n");
 	printf("{\n\tstruct %s_args a;\n", name);
 	printf("\ta.a_desc = VDESC(%s);\n", name);
 	for (i=0; i<argc; i++) {
-		printf("\ta.a_%s = %s;\n", argname[i], argname[i]);
+		printf("\ta.a_%s = _%s;\n", argname[i], argname[i]);
 	}
 	if (toupper(ubc) == "UBC") {
-		printf("\t{\n\t\tint _err;\n\t\t"   \
-			"extern int ubc_hold(struct vnode *vp);\n\t\t"	\
-			"extern void ubc_rele(struct vnode *vp);\n\t\t"	\
-			"int _didhold = ubc_hold(%s);\n\t\t"  \
-			"_err = VCALL(%s%s, VOFFSET(%s), &a);\n\t\t"    \
-			"if (_didhold)\n\t\t\tubc_rele(%s);\n\t\t"	\
+		printf("\t{\n\t\t" \
+			"int _err;\n\t\t"   \
+			"_err = VCALL(_%s%s, VOFFSET(%s), &a);\n\t\t"    \
 			"return (_err);\n\t}\n}\n",
 			argname[0], argname[0], arg0special, name, argname[0]);
 	} else {
-		printf("\treturn (VCALL(%s%s, VOFFSET(%s), &a));\n}\n",
+		printf("\treturn (VCALL(_%s%s, VOFFSET(%s), &a));\n}\n",
 			argname[0], arg0special, name);
 	}
 }
@@ -240,7 +238,7 @@ END	{
 	arg0special="->b_vp";
 	name="vop_strategy";
 	doit();
-	name="vop_bwrite";
+	name="VNOP_BWRITE";
 	doit();
 }
 '"$awk_parser" | sed -e "$space_elim"
@@ -315,13 +313,15 @@ function doit() {
 	printf("\t0");
 	vpnum = 0;
 	for (i=0; i<argc; i++) {
-		if (willrele[i]) {
-			if (argdir[i] ~ /OUT/) {
-				printf(" | VDESC_VPP_WILLRELE");
-			} else {
-				printf(" | VDESC_VP%s_WILLRELE", vpnum);
-			};
-			vpnum++;
+		if (match(argtype[i], "struct vnode *") == 1) {
+			if (willrele[i]) {
+				if (argdir[i] ~ /OUT/) {
+					printf(" | VDESC_VPP_WILLRELE");
+				} else {
+					printf(" | VDESC_VP%s_WILLRELE", vpnum);
+				};
+			}
+		vpnum++;
 		}
 	}
 	print ",";
@@ -330,7 +330,7 @@ function doit() {
 	# vpp (if any)
 	do_offset("struct vnode **");
 	# cred (if any)
-	do_offset("struct ucred *");
+	do_offset("kauth_credential_t");
 	# proc (if any)
 	do_offset("struct proc *");
 	# componentname
@@ -347,7 +347,7 @@ END	{
 	willrele[0]=0;
 	name="vop_strategy";
 	doit();
-	name="vop_bwrite";
+	name="VNOP_BWRITE";
 	doit();
 }
 '"$awk_parser" | sed -e "$space_elim"
@@ -362,7 +362,7 @@ echo '
 struct vnodeop_desc *vfs_op_descs[] = {
 	&vop_default_desc,	/* MUST BE FIRST */
 	&vop_strategy_desc,	/* XXX: SPECIAL CASE */
-	&vop_bwrite_desc,	/* XXX: SPECIAL CASE */
+	&VNOP_BWRITE_desc,	/* XXX: SPECIAL CASE */
 '
 
 # Body stuff