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