1ca27c028SRick Macklem /*- 2ca27c028SRick Macklem * Copyright (c) 2009 Rick Macklem, University of Guelph 3ca27c028SRick Macklem * All rights reserved. 4ca27c028SRick Macklem * 5ca27c028SRick Macklem * Redistribution and use in source and binary forms, with or without 6ca27c028SRick Macklem * modification, are permitted provided that the following conditions 7ca27c028SRick Macklem * are met: 8ca27c028SRick Macklem * 1. Redistributions of source code must retain the above copyright 9ca27c028SRick Macklem * notice, this list of conditions and the following disclaimer. 10ca27c028SRick Macklem * 2. Redistributions in binary form must reproduce the above copyright 11ca27c028SRick Macklem * notice, this list of conditions and the following disclaimer in the 12ca27c028SRick Macklem * documentation and/or other materials provided with the distribution. 13ca27c028SRick Macklem * 14ca27c028SRick Macklem * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15ca27c028SRick Macklem * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16ca27c028SRick Macklem * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17ca27c028SRick Macklem * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18ca27c028SRick Macklem * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19ca27c028SRick Macklem * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20ca27c028SRick Macklem * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21ca27c028SRick Macklem * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22ca27c028SRick Macklem * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23ca27c028SRick Macklem * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24ca27c028SRick Macklem * SUCH DAMAGE. 25ca27c028SRick Macklem * 26ca27c028SRick Macklem * $FreeBSD$ 27ca27c028SRick Macklem */ 28ca27c028SRick Macklem 29ca27c028SRick Macklem #ifndef _NFS_MOUNTCOMMON_H_ 30ca27c028SRick Macklem #define _NFS_MOUNTCOMMON_H_ 31ca27c028SRick Macklem 32ca27c028SRick Macklem /* 33ca27c028SRick Macklem * The common fields of the nfsmount structure for the two clients 34ca27c028SRick Macklem * used by the nlm. It includes a function pointer that provides 35ca27c028SRick Macklem * a mechanism for getting the client specific info for an nfs vnode. 36ca27c028SRick Macklem */ 37*4d4f9a37SRick Macklem typedef void nfs_getinfofromvp_ftype(struct vnode *, uint8_t *, size_t *, 38ca27c028SRick Macklem struct sockaddr_storage *, int *, off_t *); 39ca27c028SRick Macklem 40ca27c028SRick Macklem struct nfsmount_common { 41ca27c028SRick Macklem struct mtx nmcom_mtx; 42ca27c028SRick Macklem int nmcom_flag; /* Flags for soft/hard... */ 43ca27c028SRick Macklem int nmcom_state; /* Internal state flags */ 44ca27c028SRick Macklem struct mount *nmcom_mountp; /* Vfs structure for this filesystem */ 45ca27c028SRick Macklem int nmcom_timeo; /* Init timer for NFSMNT_DUMBTIMR */ 46ca27c028SRick Macklem int nmcom_retry; /* Max retries */ 47ca27c028SRick Macklem char nmcom_hostname[MNAMELEN]; /* server's name */ 48ca27c028SRick Macklem nfs_getinfofromvp_ftype *nmcom_getinfo; /* Get info from nfsnode */ 49ca27c028SRick Macklem }; 50ca27c028SRick Macklem 51ca27c028SRick Macklem #endif /* _NFS_MOUNTCOMMON_H_ */ 52