#define ifaddr_withnet(x) ifa_ifwithnet(x)
#endif
+/* Vnode related macros */
+
+#if defined(AFS_DARWIN80_ENV)
+extern int afs_vfs_typenum;
+# define vType(vc) vnode_vtype(AFSTOV(vc))
+# define vSetVfsp(vc, vfsp)
+# define vSetType(vc, type) (vc)->f.m.Type = (type)
+# define SetAfsVnode(vn) /* nothing; done in getnewvnode() */
+# define IsAfsVnode(v) (vfs_typenum(vnode_mount((v))) == afs_vfs_typenum)
+#else
+extern int (**afs_vnodeop_p) ();
+# define vType(vc) AFSTOV(vc)->v_type
+# define vSetVfsp(vc, vfsp) AFSTOV(vc)->v_mount = (vfsp)
+# define vSetType(vc, type) AFSTOV(vc)->v_type = (type)
+# define IsAfsVnode(v) ((v)->v_op == afs_vnodeop_p)
+# define SetAfsVnode(v) /* nothing; done in getnewvnode() */
+#endif
+
#endif /* KERNEL */
#endif /* _OSI_MACHDEP_H_ */
#endif
#define osi_vnhold(avc,r) vref(AFSTOV(avc))
-#undef vSetVfsp
-#define vSetVfsp(vc, vfsp) AFSTOV(vc)->v_mount = (vfsp)
-#undef vSetType
-#define vSetType(vc, type) AFSTOV(vc)->v_type = (type)
-#undef vType
-#define vType(vc) AFSTOV(vc)->v_type
+
+#define vType(vc) AFSTOV(vc)->v_type
+#define vSetVfsp(vc, vfsp) AFSTOV(vc)->v_mount = (vfsp)
+#define vSetType(vc, type) AFSTOV(vc)->v_type = (type)
+#if defined(AFS_FBSD60_ENV) && defined(KERNEL)
+extern struct vop_vector afs_vnodeops;
+# define IsAfsVnode(v) ((v)->v_op == &afs_vnodeops)
+#else
+extern int (**afs_vnodeop_p) ();
+# define IsAfsVnode(v) ((v)->v_op == afs_vnodeop_p)
+#endif
+#define SetAfsVnode(v) /* nothing; done in getnewvnode() */
#undef gop_lookupname
#define gop_lookupname osi_lookupname
#endif
#define VN_HOLD(vp) VREF(vp)
-#ifdef AFS_FBSD60_ENV
-#undef IsAfsVnode
-#define IsAfsVnode(v) ((v)->v_op == &afs_vnodeops)
-extern struct vop_vector afs_vnodeops;
-#endif
+
#undef osi_getpid
#if defined(AFS_FBSD50_ENV)
#define afs_suser(x) capable(CAP_SYS_ADMIN)
#define wakeup afs_osi_Wakeup
-#undef vType
#define vType(V) ((AFSTOV((V)))->i_mode & S_IFMT)
-#undef vSetType
#define vSetType(V, type) AFSTOV((V))->i_mode = ((type) | (AFSTOV((V))->i_mode & ~S_IFMT)) /* preserve mode */
-
-#undef IsAfsVnode
+#define vSetVfsp(V, vfsp) /* unused */
#define IsAfsVnode(V) ((V)->i_sb == afs_globalVFS) /* test superblock instead */
-#undef SetAfsVnode
#define SetAfsVnode(V) /* unnecessary */
/* We often need to pretend we're in user space to get memory transfers
#define NETPRI
#undef USERPRI
#define USERPRI
+
+/* Vnode related macros */
+
+extern int (**afs_vnodeop_p) ();
+#define vType(vc) AFSTOV(vc)->v_type
+#define vSetVfsp(vc, vfsp) AFSTOV(vc)->v_mount = (vfsp)
+#define vSetType(vc, type) AFSTOV(vc)->v_type = (type)
+#define IsAfsVnode(v) ((v)->v_op == afs_vnodeop_p)
+#define SetAfsVnode(v) /* nothing; done in getnewvnode() */
+
#endif /* KERNEL */
#endif /* _OSI_MACHDEP_H_ */
#define USERPRI splx(splvar)
#endif /* KERNEL */
+/* vnodes */
+extern int (**afs_vnodeop_p) ();
+#define vType(vc) AFSTOV(vc)->v_type
+#define vSetVfsp(vc, vfsp) AFSTOV(vc)->v_mount = (vfsp)
+#define vSetType(vc, type) AFSTOV(vc)->v_type = (type)
+#define IsAfsVnode(v) ((v)->v_op == afs_vnodeop_p)
+#define SetAfsVnode(v) /* nothing; done in getnewvnode() */
+
#endif /* _OSI_MACHDEP_H_ */
#endif
/*
- * Vnode related macros
+ * Default vnode related macros
+ *
+ * Darwin, all of the BSDs, and Linux have their own
*/
-#if defined(AFS_DARWIN80_ENV)
-#define vType(vc) vnode_vtype(AFSTOV(vc))
-#define vSetVfsp(vc, vfsp)
-#define vSetType(vc, type) (vc)->f.m.Type = (type)
-extern int afs_vfs_typenum;
-#define SetAfsVnode(vn) /* nothing; done in getnewvnode() */
-#define IsAfsVnode(v) (vfs_typenum(vnode_mount((v))) == afs_vfs_typenum)
-#else
-#if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV) || defined(AFS_LINUX22_ENV)
-#define vSetVfsp(vc, vfsp) AFSTOV(vc)->v_mount = (vfsp)
-#define vSetType(vc, type) AFSTOV(vc)->v_type = (type)
-#define vType(vc) AFSTOV(vc)->v_type
-#else
-#define vType(vc) (vc)->v.v_type
-#define vSetType(vc,type) (vc)->v.v_type = (type)
-#define vSetVfsp(vc,vfsp) (vc)->v.v_vfsp = (vfsp)
-#endif
-#if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
-extern int (**afs_vnodeop_p) ();
-#define IsAfsVnode(v) ((v)->v_op == afs_vnodeop_p)
-#define SetAfsVnode(v) /* nothing; done in getnewvnode() */
-#else
+#if !defined(AFS_DARWIN_ENV) && !defined(AFS_XBSD_ENV) && !defined(AFS_LINUX20_ENV)
+# define vType(vc) (vc)->v.v_type
+# define vSetType(vc,type) (vc)->v.v_type = (type)
+# define vSetVfsp(vc,vfsp) (vc)->v.v_vfsp = (vfsp)
extern struct vnodeops *afs_ops;
-#define IsAfsVnode(v) ((v)->v_op == afs_ops)
-#define SetAfsVnode(v) (v)->v_op = afs_ops
-#endif
+# define IsAfsVnode(v) ((v)->v_op == afs_ops)
+# define SetAfsVnode(v) (v)->v_op = afs_ops
#endif
/*