xref: /csrg-svn/sys/deprecated/lofs/lofs.h (revision 65803)
153840Spendry /*
263237Sbostic  * Copyright (c) 1992, 1993
363237Sbostic  *	The Regents of the University of California.  All rights reserved.
453840Spendry  *
553840Spendry  * This code is derived from software donated to Berkeley by
653840Spendry  * Jan-Simon Pendry.
753840Spendry  *
853840Spendry  * %sccs.include.redist.c%
953840Spendry  *
10*65803Sbostic  *	@(#)lofs.h	8.5 (Berkeley) 01/21/94
1153840Spendry  *
1253840Spendry  * $Id: lofs.h,v 1.8 1992/05/30 10:05:43 jsp Exp jsp $
1353840Spendry  */
1453840Spendry 
1553840Spendry struct lofs_args {
1653840Spendry 	char		*target;	/* Target of loopback  */
1753840Spendry };
1853840Spendry 
1953840Spendry struct lofsmount {
2053840Spendry 	struct mount	*looped_vfs;
2153840Spendry 	struct vnode	*rootvp;	/* Reference to root lofsnode */
2253840Spendry };
2353840Spendry 
2453840Spendry #ifdef KERNEL
2553840Spendry /*
2653840Spendry  * A cache of vnode references
2753840Spendry  */
2853840Spendry struct lofsnode {
2953840Spendry 	struct lofsnode	*a_forw;	/* Hash chain */
3053840Spendry 	struct lofsnode	*a_back;
3153840Spendry 	struct vnode	*a_lofsvp;	/* Aliased vnode - VREFed once */
3253840Spendry 	struct vnode	*a_vnode;	/* Back pointer to vnode/lofsnode */
3353840Spendry };
3453840Spendry 
3565518Spendry extern int lofs_init __P((void));
3653840Spendry extern int make_lofs __P((struct mount *mp, struct vnode **vpp));
3753840Spendry 
3853840Spendry #define	VFSTOLOFS(mp) ((struct lofsmount *)((mp)->mnt_data))
3953840Spendry #define	LOFSP(vp) ((struct lofsnode *)(vp)->v_data)
4053840Spendry #define	LOFSVP(vp) (LOFSP(vp)->a_lofsvp)
4153840Spendry 
4253840Spendry extern int (**lofs_vnodeop_p)();
4353840Spendry extern struct vfsops lofs_vfsops;
4453840Spendry #endif /* KERNEL */
45