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