1ca27c028SRick Macklem /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 3fe267a55SPedro F. Giffuni * 4ca27c028SRick Macklem * Copyright (c) 2009 Rick Macklem, University of Guelph 5ca27c028SRick Macklem * All rights reserved. 6ca27c028SRick Macklem * 7ca27c028SRick Macklem * Redistribution and use in source and binary forms, with or without 8ca27c028SRick Macklem * modification, are permitted provided that the following conditions 9ca27c028SRick Macklem * are met: 10ca27c028SRick Macklem * 1. Redistributions of source code must retain the above copyright 11ca27c028SRick Macklem * notice, this list of conditions and the following disclaimer. 12ca27c028SRick Macklem * 2. Redistributions in binary form must reproduce the above copyright 13ca27c028SRick Macklem * notice, this list of conditions and the following disclaimer in the 14ca27c028SRick Macklem * documentation and/or other materials provided with the distribution. 15ca27c028SRick Macklem * 16ca27c028SRick Macklem * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17ca27c028SRick Macklem * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18ca27c028SRick Macklem * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19ca27c028SRick Macklem * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20ca27c028SRick Macklem * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21ca27c028SRick Macklem * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22ca27c028SRick Macklem * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23ca27c028SRick Macklem * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24ca27c028SRick Macklem * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25ca27c028SRick Macklem * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26ca27c028SRick Macklem * SUCH DAMAGE. 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 */ 374d4f9a37SRick Macklem typedef void nfs_getinfofromvp_ftype(struct vnode *, uint8_t *, size_t *, 3890305aa3SRick Macklem struct sockaddr_storage *, int *, off_t *, 3990305aa3SRick Macklem struct timeval *); 4090305aa3SRick Macklem typedef int nfs_vinvalbuf_ftype(struct vnode *, int, struct thread *, int); 41ca27c028SRick Macklem 42ca27c028SRick Macklem struct nfsmount_common { 43ca27c028SRick Macklem struct mtx nmcom_mtx; 44ca27c028SRick Macklem int nmcom_flag; /* Flags for soft/hard... */ 45ca27c028SRick Macklem int nmcom_state; /* Internal state flags */ 46ca27c028SRick Macklem struct mount *nmcom_mountp; /* Vfs structure for this filesystem */ 47ca27c028SRick Macklem int nmcom_timeo; /* Init timer for NFSMNT_DUMBTIMR */ 48ca27c028SRick Macklem int nmcom_retry; /* Max retries */ 49ca27c028SRick Macklem char nmcom_hostname[MNAMELEN]; /* server's name */ 50ca27c028SRick Macklem nfs_getinfofromvp_ftype *nmcom_getinfo; /* Get info from nfsnode */ 5190305aa3SRick Macklem nfs_vinvalbuf_ftype *nmcom_vinvalbuf; /* Invalidate buffers */ 52ca27c028SRick Macklem }; 53ca27c028SRick Macklem 54ca27c028SRick Macklem #endif /* _NFS_MOUNTCOMMON_H_ */ 55