xref: /csrg-svn/sys/miscfs/portal/portal.h (revision 53845)
1*53845Spendry /*
2*53845Spendry  * Copyright (c) 1992 The Regents of the University of California
3*53845Spendry  * Copyright (c) 1990, 1992 Jan-Simon Pendry
4*53845Spendry  * All rights reserved.
5*53845Spendry  *
6*53845Spendry  * This code is derived from software donated to Berkeley by
7*53845Spendry  * Jan-Simon Pendry.
8*53845Spendry  *
9*53845Spendry  * %sccs.include.redist.c%
10*53845Spendry  *
11*53845Spendry  *	@(#)portal.h	1.1 (Berkeley) 06/03/92
12*53845Spendry  *
13*53845Spendry  * $Id: portal.h,v 1.3 1992/05/30 10:05:24 jsp Exp jsp $
14*53845Spendry  */
15*53845Spendry 
16*53845Spendry struct portal_args {
17*53845Spendry 	char		*pa_config;	/* Config file */
18*53845Spendry 	int		pa_socket;	/* Socket to server */
19*53845Spendry };
20*53845Spendry 
21*53845Spendry struct portal_cred {
22*53845Spendry 	uid_t		pcr_uid;	/* From ucred */
23*53845Spendry 	gid_t		pcr_gid;	/* From ucred */
24*53845Spendry };
25*53845Spendry 
26*53845Spendry 
27*53845Spendry #ifdef KERNEL
28*53845Spendry struct portalmount {
29*53845Spendry 	struct vnode	*pm_root;	/* Root node */
30*53845Spendry 	struct file	*pm_server;	/* Held reference to server socket */
31*53845Spendry };
32*53845Spendry 
33*53845Spendry struct portalnode {
34*53845Spendry 	int		pt_size;	/* Length of Arg */
35*53845Spendry 	char		*pt_arg;	/* Arg to send to server */
36*53845Spendry 	int		pt_fileid;	/* cookie */
37*53845Spendry };
38*53845Spendry 
39*53845Spendry #define VFSTOPORTAL(mp)	((struct portalmount *)((mp)->mnt_data))
40*53845Spendry #define	VTOPORTAL(vp) ((struct portalnode *)(vp)->v_data)
41*53845Spendry 
42*53845Spendry #define PORTAL_ROOTFILEID	2
43*53845Spendry 
44*53845Spendry extern int (**portal_vnodeop_p)();
45*53845Spendry extern struct vfsops portal_vfsops;
46*53845Spendry #endif /* KERNEL */
47