summaryrefslogtreecommitdiffstats
path: root/sys/fs/nfs/nfs_var.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/nfs/nfs_var.h')
-rw-r--r--sys/fs/nfs/nfs_var.h604
1 files changed, 604 insertions, 0 deletions
diff --git a/sys/fs/nfs/nfs_var.h b/sys/fs/nfs/nfs_var.h
new file mode 100644
index 0000000..64b1e90
--- /dev/null
+++ b/sys/fs/nfs/nfs_var.h
@@ -0,0 +1,604 @@
+/*-
+ * Copyright (c) 1989, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Rick Macklem at The University of Guelph.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * XXX needs <nfs/rpcv2.h> and <nfs/nfs.h> because of typedefs
+ */
+
+struct uio;
+struct ucred;
+struct nfscred;
+NFSPROC_T;
+struct buf;
+struct nfs_diskless;
+struct sockaddr_in;
+struct nfs_dlmount;
+struct file;
+struct nfsmount;
+struct socket;
+struct nfsreq;
+struct nfssockreq;
+struct vattr;
+struct nameidata;
+struct nfsnode;
+struct nfsfh;
+struct sillyrename;
+struct componentname;
+struct nfsd_srvargs;
+struct nfsrv_descript;
+struct nfs_fattr;
+union nethostaddr;
+struct nfsstate;
+struct nfslock;
+struct nfsclient;
+struct nfslockconflict;
+struct nfsd_idargs;
+struct nfsd_clid;
+struct nfsusrgrp;
+struct nfsclowner;
+struct nfsclopen;
+struct nfsclopenhead;
+struct nfsclclient;
+struct nfscllockowner;
+struct nfscllock;
+struct nfscldeleg;
+struct nfsv4lock;
+struct nfsvattr;
+struct nfs_vattr;
+struct NFSSVCARGS;
+#ifdef __FreeBSD__
+NFS_ACCESS_ARGS;
+NFS_OPEN_ARGS;
+NFS_GETATTR_ARGS;
+NFS_LOOKUP_ARGS;
+NFS_READDIR_ARGS;
+#endif
+
+/* nfsd_srvstate.c */
+int nfsrv_setclient(struct nfsrv_descript *, struct nfsclient **,
+ nfsquad_t *, nfsquad_t *, NFSPROC_T *);
+int nfsrv_getclient(nfsquad_t, int, struct nfsclient **, nfsquad_t,
+ struct nfsrv_descript *, NFSPROC_T *);
+int nfsrv_adminrevoke(struct nfsd_clid *, NFSPROC_T *);
+void nfsrv_dumpclients(struct nfsd_dumpclients *, int);
+void nfsrv_dumplocks(vnode_t, struct nfsd_dumplocks *, int, NFSPROC_T *);
+int nfsrv_lockctrl(vnode_t, struct nfsstate **,
+ struct nfslock **, struct nfslockconflict *, nfsquad_t, nfsv4stateid_t *,
+ struct nfsexstuff *, struct nfsrv_descript *, NFSPROC_T *);
+int nfsrv_openctrl(struct nfsrv_descript *, vnode_t,
+ struct nfsstate **, nfsquad_t, nfsv4stateid_t *, nfsv4stateid_t *,
+ u_int32_t *, struct nfsexstuff *, NFSPROC_T *, u_quad_t);
+int nfsrv_opencheck(nfsquad_t, nfsv4stateid_t *, struct nfsstate *,
+ vnode_t, struct nfsrv_descript *, NFSPROC_T *, int);
+int nfsrv_openupdate(vnode_t, struct nfsstate *, nfsquad_t,
+ nfsv4stateid_t *, struct nfsrv_descript *, NFSPROC_T *);
+int nfsrv_delegupdate(nfsquad_t, nfsv4stateid_t *, vnode_t, int,
+ struct ucred *, NFSPROC_T *);
+int nfsrv_releaselckown(struct nfsstate *, nfsquad_t, NFSPROC_T *);
+void nfsrv_zapclient(struct nfsclient *, NFSPROC_T *);
+int nfssvc_idname(struct nfsd_idargs *);
+void nfsrv_servertimer(void);
+int nfsrv_getclientipaddr(struct nfsrv_descript *, struct nfsclient *);
+void nfsrv_setupstable(NFSPROC_T *);
+void nfsrv_updatestable(NFSPROC_T *);
+void nfsrv_writestable(u_char *, int, int, NFSPROC_T *);
+void nfsrv_throwawayopens(NFSPROC_T *);
+int nfsrv_checkremove(vnode_t, int, NFSPROC_T *);
+void nfsd_recalldelegation(vnode_t, NFSPROC_T *);
+void nfsd_disabledelegation(vnode_t, NFSPROC_T *);
+int nfsrv_checksetattr(vnode_t, struct nfsrv_descript *,
+ nfsv4stateid_t *, struct nfsvattr *, nfsattrbit_t *, struct nfsexstuff *,
+ NFSPROC_T *);
+int nfsrv_checkgetattr(struct nfsrv_descript *, vnode_t,
+ struct nfsvattr *, nfsattrbit_t *, struct ucred *, NFSPROC_T *);
+int nfsrv_nfsuserdport(u_short, NFSPROC_T *);
+void nfsrv_nfsuserddelport(void);
+
+/* nfsd_serv.c */
+int nfsrvd_access(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_getattr(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_setattr(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_lookup(struct nfsrv_descript *, int,
+ vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsrvd_readlink(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_read(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_write(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_create(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_mknod(struct nfsrv_descript *, int,
+ vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsrvd_remove(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_rename(struct nfsrv_descript *, int,
+ vnode_t, vnode_t, NFSPROC_T *, struct nfsexstuff *,
+ struct nfsexstuff *);
+int nfsrvd_link(struct nfsrv_descript *, int,
+ vnode_t, vnode_t, NFSPROC_T *, struct nfsexstuff *,
+ struct nfsexstuff *);
+int nfsrvd_symlink(struct nfsrv_descript *, int,
+ vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsrvd_mkdir(struct nfsrv_descript *, int,
+ vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsrvd_readdir(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_readdirplus(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_commit(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_statfs(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_fsinfo(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_close(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_delegpurge(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_delegreturn(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_getfh(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_lock(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_lockt(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_locku(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_openconfirm(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_opendowngrade(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_renew(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_secinfo(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_setclientid(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_setclientidcfrm(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_verify(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_open(struct nfsrv_descript *, int,
+ vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsrvd_openattr(struct nfsrv_descript *, int,
+ vnode_t, vnode_t *, fhandle_t *, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsrvd_releaselckown(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+int nfsrvd_pathconf(struct nfsrv_descript *, int,
+ vnode_t, NFSPROC_T *, struct nfsexstuff *);
+
+/* newnfs_socket.c */
+int newnfs_request(struct nfsrv_descript *, struct nfsmount *,
+ struct nfsclient *, struct nfssockreq *, vnode_t, NFSPROC_T *,
+ struct ucred *, u_int32_t, u_int32_t, u_char *, int, u_int64_t *);
+int newnfs_connect(struct nfsmount *, struct nfssockreq *,
+ struct ucred *, NFSPROC_T *, int);
+void newnfs_disconnect(struct nfssockreq *);
+void newnfs_timer(void *);
+int newnfs_sigintr(struct nfsmount *, NFSPROC_T *);
+int newnfs_sndlock(int *);
+void newnfs_sndunlock(int *);
+
+/* nfsd_srvsocket.c */
+void nfsrvd_rephead(struct nfsrv_descript *);
+void nfsrvd_dorpc(struct nfsrv_descript *, int, NFSPROC_T *);
+
+/* nfs_srvcache.c */
+void nfsrvd_initcache(void);
+int nfsrvd_getcache(struct nfsrv_descript *, struct socket *);
+struct nfsrvcache *nfsrvd_updatecache(struct nfsrv_descript *,
+ struct socket *);
+void nfsrvd_sentcache(struct nfsrvcache *, struct socket *, int);
+void nfsrvd_cleancache(void);
+void nfsrvd_refcache(struct nfsrvcache *);
+void nfsrvd_derefcache(struct nfsrvcache *);
+void nfsrvd_delcache(struct nfsrvcache *);
+
+/* newnfs_subs.c */
+void newnfs_init(void);
+int nfsaddr_match(int, union nethostaddr *, NFSSOCKADDR_T);
+int nfsaddr2_match(NFSSOCKADDR_T, NFSSOCKADDR_T);
+int nfsm_strtom(struct nfsrv_descript *, const char *, int);
+int nfsm_mbufuio(struct nfsrv_descript *, struct uio *, int);
+int nfsm_fhtom(struct nfsrv_descript *, u_int8_t *, int, int);
+int nfsm_advance(struct nfsrv_descript *, int, int);
+void *nfsm_dissct(struct nfsrv_descript *, int);
+void newnfs_trimleading(struct nfsrv_descript *);
+void newnfs_trimtrailing(struct nfsrv_descript *, mbuf_t,
+ caddr_t);
+void newnfs_copycred(struct nfscred *, struct ucred *);
+void newnfs_copyincred(struct ucred *, struct nfscred *);
+int nfsrv_dissectacl(struct nfsrv_descript *, NFSACL_T *, int *,
+ int *, NFSPROC_T *);
+int nfsrv_getattrbits(struct nfsrv_descript *, nfsattrbit_t *, int *,
+ int *);
+int nfsv4_loadattr(struct nfsrv_descript *, vnode_t,
+ struct nfsvattr *, struct nfsfh **, fhandle_t *, int,
+ struct nfsv3_pathconf *, struct statfs *, struct nfsstatfs *,
+ struct nfsfsinfo *, NFSACL_T *,
+ int, int *, u_int32_t *, u_int32_t *, NFSPROC_T *, struct ucred *);
+int nfsv4_lock(struct nfsv4lock *, int, int *, void *);
+void nfsv4_unlock(struct nfsv4lock *, int);
+void nfsv4_relref(struct nfsv4lock *);
+void nfsv4_getref(struct nfsv4lock *, int *, void *);
+int nfsrv_mtostr(struct nfsrv_descript *, char *, int);
+int nfsrv_checkutf8(u_int8_t *, int);
+
+/* nfscl_subs.c */
+void nfsm_uiombuf(struct nfsrv_descript *, struct uio *, int);
+void nfscl_reqstart(struct nfsrv_descript *, int, struct nfsmount *,
+ u_int8_t *, int, u_int32_t **);
+nfsuint64 *nfscl_getcookie(struct nfsnode *, off_t off, int);
+void nfscl_fillsattr(struct nfsrv_descript *, struct vattr *,
+ vnode_t, int, u_int32_t);
+u_int8_t *nfscl_getmyip(struct nfsmount *, int *);
+int nfsm_getfh(struct nfsrv_descript *, struct nfsfh **);
+int nfscl_mtofh(struct nfsrv_descript *, struct nfsfh **,
+ struct nfsvattr *, int *);
+int nfscl_postop_attr(struct nfsrv_descript *, struct nfsvattr *, int *,
+ void *);
+int nfscl_wcc_data(struct nfsrv_descript *, vnode_t,
+ struct nfsvattr *, int *, int *, void *);
+int nfsm_loadattr(struct nfsrv_descript *, struct nfsvattr *);
+int nfscl_request(struct nfsrv_descript *, vnode_t,
+ NFSPROC_T *, struct ucred *, void *);
+void nfsm_stateidtom(struct nfsrv_descript *, nfsv4stateid_t *, int);
+
+/* nfsd_srvsubs.c */
+void nfsd_fhtovp(struct nfsrv_descript *, struct nfsrvfh *,
+ vnode_t *, struct nfsexstuff *,
+ mount_t *, int, NFSPROC_T *);
+int nfsd_excred(struct nfsrv_descript *, struct nfsexstuff *, struct ucred *);
+int nfsrv_mtofh(struct nfsrv_descript *, struct nfsrvfh *);
+int nfsrv_putattrbit(struct nfsrv_descript *, nfsattrbit_t *);
+void nfsrv_wcc(struct nfsrv_descript *, int, struct nfsvattr *, int,
+ struct nfsvattr *);
+int nfsv4_fillattr(struct nfsrv_descript *, vnode_t, NFSACL_T *,
+ struct vattr *, fhandle_t *, int, nfsattrbit_t *,
+ struct ucred *, NFSPROC_T *, int, int);
+void nfsrv_fillattr(struct nfsrv_descript *, struct nfsvattr *);
+void nfsrv_adj(mbuf_t, int, int);
+void nfsrv_postopattr(struct nfsrv_descript *, int, struct nfsvattr *);
+int nfsd_errmap(struct nfsrv_descript *);
+void nfsv4_uidtostr(uid_t, u_char **, int *, NFSPROC_T *);
+int nfsv4_strtouid(u_char *, int, uid_t *, NFSPROC_T *);
+void nfsv4_gidtostr(gid_t, u_char **, int *, NFSPROC_T *);
+int nfsv4_strtogid(u_char *, int, gid_t *, NFSPROC_T *);
+int nfsrv_checkuidgid(struct nfsrv_descript *, struct nfsvattr *);
+void nfsrv_fixattr(struct nfsrv_descript *, vnode_t,
+ struct nfsvattr *, NFSACL_T *, NFSPROC_T *, nfsattrbit_t *,
+ struct nfsexstuff *);
+int nfsrv_errmoved(int);
+int nfsrv_putreferralattr(struct nfsrv_descript *, nfsattrbit_t *,
+ struct nfsreferral *, int, int *);
+int nfsrv_parsename(struct nfsrv_descript *, char *, u_long *,
+ NFSPATHLEN_T *);
+
+/* nfs_srvsyscalls.c */
+void nfsd_init(void);
+
+/* nfs_vfsops.c */
+
+/* newnfs_port.c */
+int nfsrv_checksockseqnum(struct socket *, tcp_seq);
+int nfsrv_getsockseqnum(struct socket *, tcp_seq *);
+int nfsrv_getsocksndseq(struct socket *, tcp_seq *, tcp_seq *);
+int nfsrv_lookupfilename(struct nameidata *, char *, NFSPROC_T *);
+void nfsrv_object_create(vnode_t, NFSPROC_T *);
+int nfsrv_mallocmget_limit(void);
+int nfsvno_v4rootexport(struct nfsrv_descript *);
+void newnfs_portinit(void);
+struct ucred *newnfs_getcred(void);
+void newnfs_setroot(struct ucred *);
+int nfs_catnap(int, const char *);
+struct nfsreferral *nfsv4root_getreferral(vnode_t, vnode_t, u_int32_t);
+int nfsrv_atroot(vnode_t, long *);
+
+/* newnfs_acl.c */
+int nfsrv_dissectace(struct nfsrv_descript *, struct acl_entry *,
+ int *, int *, NFSPROC_T *);
+#ifdef NFS4_ACL_EXTATTR_NAME
+int nfsrv_buildacl(struct nfsrv_descript *, NFSACL_T *, enum vtype,
+ NFSPROC_T *);
+int nfsrv_aclaccess(vnode_t, accmode_t, u_int32_t, struct ucred *,
+ NFSPROC_T *);
+int nfsrv_setacl(vnode_t, NFSACL_T *, struct ucred *,
+ NFSPROC_T *);
+int nfsrv_compareacl(NFSACL_T *, NFSACL_T *);
+#endif
+
+/* nfscl_rpcops.c */
+int nfsrpc_null(vnode_t, struct ucred *, NFSPROC_T *);
+int nfsrpc_access(vnode_t, int, struct ucred *, NFSPROC_T *,
+ struct nfsvattr *, int *);
+int nfsrpc_accessrpc(vnode_t, u_int32_t, struct ucred *,
+ NFSPROC_T *, struct nfsvattr *, int *, u_int32_t *, void *);
+int nfsrpc_open(vnode_t, int, struct ucred *, NFSPROC_T *);
+int nfsrpc_openrpc(struct nfsmount *, vnode_t, u_int8_t *, int, u_int8_t *, int,
+ u_int32_t, struct nfsclopen *, u_int8_t *, int, struct nfscldeleg **, int,
+ u_int32_t, struct ucred *, NFSPROC_T *, int, int);
+int nfsrpc_opendowngrade(vnode_t, u_int32_t, struct nfsclopen *,
+ struct ucred *, NFSPROC_T *);
+int nfsrpc_close(vnode_t, struct ucred *, NFSPROC_T *);
+int nfsrpc_closerpc(struct nfsrv_descript *, struct nfsmount *,
+ struct nfsclopen *, struct ucred *, NFSPROC_T *, int);
+int nfsrpc_openconfirm(vnode_t, u_int8_t *, int, struct nfsclopen *,
+ struct ucred *, NFSPROC_T *);
+int nfsrpc_setclient(struct nfsmount *, struct nfsclclient *,
+ struct ucred *, NFSPROC_T *);
+int nfsrpc_getattr(vnode_t, struct ucred *, NFSPROC_T *,
+ struct nfsvattr *, void *);
+int nfsrpc_getattrnovp(struct nfsmount *, u_int8_t *, int, int,
+ struct ucred *, NFSPROC_T *, struct nfsvattr *, u_int64_t *);
+int nfsrpc_setattr(vnode_t, struct vattr *, NFSACL_T *, struct ucred *,
+ NFSPROC_T *, struct nfsvattr *, int *, void *);
+int nfsrpc_lookup(vnode_t, char *, int, struct ucred *, NFSPROC_T *,
+ struct nfsvattr *, struct nfsvattr *, struct nfsfh **, int *, int *,
+ void *);
+int nfsrpc_readlink(vnode_t, struct uio *, struct ucred *,
+ NFSPROC_T *, struct nfsvattr *, int *, void *);
+int nfsrpc_read(vnode_t, struct uio *, struct ucred *, NFSPROC_T *,
+ struct nfsvattr *, int *, void *);
+int nfsrpc_write(vnode_t, struct uio *, int *, u_char *,
+ struct ucred *, NFSPROC_T *, struct nfsvattr *, int *, void *);
+int nfsrpc_mknod(vnode_t, char *, int, struct vattr *, u_int32_t,
+ enum vtype, struct ucred *, NFSPROC_T *, struct nfsvattr *,
+ struct nfsvattr *, struct nfsfh **, int *, int *, void *);
+int nfsrpc_create(vnode_t, char *, int, struct vattr *, nfsquad_t,
+ int, struct ucred *, NFSPROC_T *, struct nfsvattr *, struct nfsvattr *,
+ struct nfsfh **, int *, int *, void *);
+int nfsrpc_remove(vnode_t, char *, int, vnode_t, struct ucred *, NFSPROC_T *,
+ struct nfsvattr *, int *, void *);
+int nfsrpc_rename(vnode_t, vnode_t, char *, int, vnode_t, vnode_t, char *, int,
+ struct ucred *, NFSPROC_T *, struct nfsvattr *, struct nfsvattr *,
+ int *, int *, void *, void *);
+int nfsrpc_link(vnode_t, vnode_t, char *, int,
+ struct ucred *, NFSPROC_T *, struct nfsvattr *, struct nfsvattr *,
+ int *, int *, void *);
+int nfsrpc_symlink(vnode_t, char *, int, char *, struct vattr *,
+ struct ucred *, NFSPROC_T *, struct nfsvattr *, struct nfsvattr *,
+ struct nfsfh **, int *, int *, void *);
+int nfsrpc_mkdir(vnode_t, char *, int, struct vattr *,
+ struct ucred *, NFSPROC_T *, struct nfsvattr *, struct nfsvattr *,
+ struct nfsfh **, int *, int *, void *);
+int nfsrpc_rmdir(vnode_t, char *, int, struct ucred *, NFSPROC_T *,
+ struct nfsvattr *, int *, void *);
+int nfsrpc_readdir(vnode_t, struct uio *, nfsuint64 *, struct ucred *,
+ NFSPROC_T *, struct nfsvattr *, int *, int *, void *);
+int nfsrpc_readdirplus(vnode_t, struct uio *, nfsuint64 *,
+ struct ucred *, NFSPROC_T *, struct nfsvattr *, int *, int *, void *);
+int nfsrpc_commit(vnode_t, u_quad_t, int, struct ucred *,
+ NFSPROC_T *, u_char *, struct nfsvattr *, int *, void *);
+int nfsrpc_advlock(vnode_t, off_t, int, struct flock *, int,
+ struct ucred *, NFSPROC_T *);
+int nfsrpc_lockt(struct nfsrv_descript *, vnode_t,
+ struct nfsclclient *, u_int64_t, u_int64_t, struct flock *,
+ struct ucred *, NFSPROC_T *);
+int nfsrpc_lock(struct nfsrv_descript *, struct nfsmount *, vnode_t,
+ u_int8_t *, int, struct nfscllockowner *, int, int, u_int64_t,
+ u_int64_t, short, struct ucred *, NFSPROC_T *, int);
+int nfsrpc_statfs(vnode_t, struct nfsstatfs *, struct nfsfsinfo *,
+ struct ucred *, NFSPROC_T *, struct nfsvattr *, int *, void *);
+int nfsrpc_fsinfo(vnode_t, struct nfsfsinfo *, struct ucred *,
+ NFSPROC_T *, struct nfsvattr *, int *, void *);
+int nfsrpc_pathconf(vnode_t, struct nfsv3_pathconf *,
+ struct ucred *, NFSPROC_T *, struct nfsvattr *, int *, void *);
+int nfsrpc_renew(struct nfsclclient *, struct ucred *,
+ NFSPROC_T *);
+int nfsrpc_rellockown(struct nfsmount *, struct nfscllockowner *,
+ struct ucred *, NFSPROC_T *);
+int nfsrpc_getdirpath(struct nfsmount *, u_char *, struct ucred *,
+ NFSPROC_T *);
+int nfsrpc_delegreturn(struct nfscldeleg *, struct ucred *,
+ struct nfsmount *, NFSPROC_T *, int);
+int nfsrpc_getacl(vnode_t, struct ucred *, NFSPROC_T *, NFSACL_T *, void *);
+int nfsrpc_setacl(vnode_t, struct ucred *, NFSPROC_T *, NFSACL_T *, void *);
+
+/* nfscl_state.c */
+int nfscl_open(vnode_t, u_int8_t *, int, u_int32_t, int,
+ struct ucred *, NFSPROC_T *, struct nfsclowner **, struct nfsclopen **,
+ int *, int *, int);
+int nfscl_getstateid(vnode_t, u_int8_t *, int, u_int32_t, struct ucred *,
+ NFSPROC_T *, nfsv4stateid_t *, void **);
+void nfscl_ownerrelease(struct nfsclowner *, int, int, int);
+void nfscl_openrelease(struct nfsclopen *, int, int);
+int nfscl_getcl(vnode_t, struct ucred *, NFSPROC_T *,
+ struct nfsclclient **);
+struct nfsclclient *nfscl_findcl(struct nfsmount *);
+void nfscl_clientrelease(struct nfsclclient *);
+void nfscl_freelock(struct nfscllock *, int);
+int nfscl_getbytelock(vnode_t, u_int64_t, u_int64_t, short,
+ struct ucred *, NFSPROC_T *, struct nfsclclient *, int, u_int8_t *,
+ u_int8_t *, struct nfscllockowner **, int *, int *);
+int nfscl_relbytelock(vnode_t, u_int64_t, u_int64_t,
+ struct ucred *, NFSPROC_T *, int, struct nfsclclient *,
+ struct nfscllockowner **, int *);
+int nfscl_checkwritelocked(vnode_t, struct flock *,
+ struct ucred *, NFSPROC_T *);
+void nfscl_lockrelease(struct nfscllockowner *, int, int);
+void nfscl_fillclid(u_int64_t, char *, u_int8_t *, u_int16_t);
+void nfscl_filllockowner(NFSPROC_T *, u_int8_t *);
+void nfscl_freeopen(struct nfsclopen *, int);
+void nfscl_umount(struct nfsmount *, NFSPROC_T *);
+void nfscl_renewthread(struct nfsclclient *, NFSPROC_T *);
+void nfscl_initiate_recovery(struct nfsclclient *);
+int nfscl_hasexpired(struct nfsclclient *, u_int32_t, NFSPROC_T *);
+void nfscl_dumpstate(struct nfsmount *, int, int, int, int);
+void nfscl_dupopen(vnode_t, int);
+int nfscl_getclose(vnode_t, struct ucred *, NFSPROC_T *,
+ struct nfsclclient **, struct nfsclopenhead *);
+int nfscl_deleg(mount_t, struct nfsclclient *, u_int8_t *, int,
+ struct ucred *, NFSPROC_T *, struct nfscldeleg **);
+void nfscl_lockinit(struct nfsv4lock *);
+void nfscl_lockexcl(struct nfsv4lock *, void *);
+void nfscl_lockunlock(struct nfsv4lock *);
+void nfscl_lockderef(struct nfsv4lock *);
+void nfscl_docb(struct nfsrv_descript *, NFSPROC_T *);
+void nfscl_releasealllocks(struct nfsclclient *, vnode_t, NFSPROC_T *);
+int nfscl_lockt(vnode_t, struct nfsclclient *, u_int64_t,
+ u_int64_t, struct flock *, NFSPROC_T *);
+int nfscl_mustflush(vnode_t);
+int nfscl_nodeleg(vnode_t, int);
+int nfscl_removedeleg(vnode_t, NFSPROC_T *, nfsv4stateid_t *);
+int nfscl_getref(struct nfsmount *);
+void nfscl_relref(struct nfsmount *);
+int nfscl_renamedeleg(vnode_t, nfsv4stateid_t *, int *, vnode_t,
+ nfsv4stateid_t *, int *, NFSPROC_T *);
+void nfscl_reclaimnode(vnode_t);
+void nfscl_newnode(vnode_t);
+void nfscl_delegmodtime(vnode_t);
+void nfscl_deleggetmodtime(vnode_t, struct timespec *);
+int nfscl_tryclose(struct nfsclopen *, struct ucred *,
+ struct nfsmount *, NFSPROC_T *);
+void nfscl_cleanup(NFSPROC_T *);
+
+/* nfscl_port.c */
+int nfscl_nget(mount_t, vnode_t, struct nfsfh *,
+ struct componentname *, NFSPROC_T *, struct nfsnode **, void *);
+NFSPROC_T *nfscl_getparent(NFSPROC_T *);
+void nfscl_start_renewthread(struct nfsclclient *);
+void nfscl_loadsbinfo(struct nfsmount *, struct nfsstatfs *, void *);
+void nfscl_loadfsinfo (struct nfsmount *, struct nfsfsinfo *);
+void nfscl_delegreturn(struct nfscldeleg *, int, struct nfsmount *,
+ struct ucred *, NFSPROC_T *);
+void nfsrvd_cbinit(int);
+int nfscl_checksattr(struct vattr *, struct nfsvattr *);
+int nfscl_ngetreopen(mount_t, u_int8_t *, int, NFSPROC_T *,
+ struct nfsnode **);
+int nfscl_procdoesntexist(u_int8_t *);
+int nfscl_maperr(NFSPROC_T *, int, uid_t, gid_t);
+
+/* nfsclient/ncl_subs.c */
+void nfscl_init(void);
+
+/* nfsclient/ncl_bio.c */
+int ncl_flush(vnode_t, int, struct ucred *, NFSPROC_T *, int);
+
+/* nfsclient/ncl_node.c */
+void ncl_invalcaches(vnode_t);
+
+/* nfsd/nfsd_port.c */
+int nfsvno_getattr(vnode_t, struct nfsvattr *, struct ucred *,
+ NFSPROC_T *);
+int nfsvno_setattr(vnode_t, struct nfsvattr *, struct ucred *,
+ NFSPROC_T *, struct nfsexstuff *);
+int nfsvno_getfh(vnode_t, fhandle_t *, NFSPROC_T *);
+int nfsvno_accchk(vnode_t, u_int32_t, struct ucred *,
+ struct nfsexstuff *, NFSPROC_T *, int, int);
+int nfsvno_namei(struct nfsrv_descript *, struct nameidata *,
+ vnode_t, int, struct nfsexstuff *, NFSPROC_T *, vnode_t *);
+void nfsvno_setpathbuf(struct nameidata *, char **, u_long **);
+void nfsvno_relpathbuf(struct nameidata *);
+int nfsvno_readlink(vnode_t, struct ucred *, NFSPROC_T *, mbuf_t *,
+ mbuf_t *, int *);
+int nfsvno_read(vnode_t, off_t, int, struct ucred *, NFSPROC_T *,
+ mbuf_t *, mbuf_t *);
+int nfsvno_write(vnode_t, off_t, int, int, int, mbuf_t,
+ char *, struct ucred *, NFSPROC_T *);
+int nfsvno_createsub(struct nfsrv_descript *, struct nameidata *,
+ vnode_t *, struct nfsvattr *, int *, u_char *, NFSDEV_T, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsvno_mknod(struct nameidata *, struct nfsvattr *, struct ucred *,
+ NFSPROC_T *);
+int nfsvno_mkdir(struct nameidata *,
+ struct nfsvattr *, uid_t, struct ucred *, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsvno_symlink(struct nameidata *, struct nfsvattr *, char *, int, int,
+ uid_t, struct ucred *, NFSPROC_T *, struct nfsexstuff *);
+int nfsvno_getsymlink(struct nfsrv_descript *, struct nfsvattr *,
+ NFSPROC_T *, char **, int *);
+int nfsvno_removesub(struct nameidata *, int, struct ucred *, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsvno_rmdirsub(struct nameidata *, int, struct ucred *, NFSPROC_T *,
+ struct nfsexstuff *);
+int nfsvno_rename(struct nameidata *, struct nameidata *, u_int32_t,
+ u_int32_t, struct ucred *, NFSPROC_T *);
+int nfsvno_link(struct nameidata *, vnode_t, struct ucred *,
+ NFSPROC_T *, struct nfsexstuff *);
+int nfsvno_fsync(vnode_t, u_int64_t, int, struct ucred *, NFSPROC_T *);
+int nfsvno_statfs(vnode_t, struct statfs *, struct ucred *, NFSPROC_T *);
+void nfsvno_getfs(struct nfsfsinfo *, int);
+void nfsvno_open(struct nfsrv_descript *, struct nameidata *, nfsquad_t,
+ nfsv4stateid_t *, struct nfsstate *, int *, struct nfsvattr *, u_char *,
+ int, NFSACL_T *, nfsattrbit_t *, struct ucred *, NFSPROC_T *,
+ struct nfsexstuff *, vnode_t *);
+void nfsvno_updfilerev(vnode_t, struct nfsvattr *, struct ucred *,
+ NFSPROC_T *);
+int nfsvno_fillattr(struct nfsrv_descript *, vnode_t,
+ struct nfsvattr *, fhandle_t *, int, nfsattrbit_t *,
+ struct ucred *, NFSPROC_T *, int, int);
+int nfsrv_sattr(struct nfsrv_descript *, struct nfsvattr *, nfsattrbit_t *,
+ NFSACL_T *, NFSPROC_T *);
+int nfsv4_sattr(struct nfsrv_descript *, struct nfsvattr *, nfsattrbit_t *,
+ NFSACL_T *, NFSPROC_T *);
+int nfsvno_checkexp(mount_t, NFSSOCKADDR_T, struct nfsexstuff *,
+ struct ucred **);
+int nfsvno_fhtovp(mount_t, fhandle_t *, NFSSOCKADDR_T,
+ vnode_t *, struct nfsexstuff *, struct ucred **);
+int nfsvno_pathconf(vnode_t, int, register_t *, struct ucred *,
+ NFSPROC_T *);
+vnode_t nfsvno_getvp(fhandle_t *);
+int nfsvno_localconflict(vnode_t, int, u_int64_t, u_int64_t,
+ struct nfslockconflict *, NFSPROC_T *);
+int nfsvno_advlock(vnode_t, int, u_int64_t, u_int64_t, NFSPROC_T *);
+void nfsvno_unlockvfs(mount_t);
+int nfsvno_lockvfs(mount_t);
+int nfsrv_v4rootexport(void *, struct ucred *, NFSPROC_T *);
+
+/* newnfs_krpc.c */
+int newnfs_nmcancelreqs(struct nfsmount *);
+void newnfs_set_sigmask(struct thread *, sigset_t *);
+void newnfs_restore_sigmask(struct thread *, sigset_t *);
+int newnfs_msleep(struct thread *, void *, struct mtx *, int, char *, int);
+
+/* nfsd_srvkrpc.c */
+int nfsrvd_addsock(struct file *);
+int nfsrvd_nfsd(NFSPROC_T *, struct nfsd_nfsd_args *);
+void nfsrvd_init(int);
+
+/* nfscl_srvkrpc.c */
+int nfscbd_addsock(struct file *);
+int nfscbd_nfsd(NFSPROC_T *, struct nfsd_nfscbd_args *);
+
OpenPOWER on IntegriCloud