-int nfs_vinvalbuf(vnode_t, int, struct ucred *, proc_t, int);
-int nfs_buf_page_inval(vnode_t vp, off_t offset);
-int nfs_readrpc(vnode_t, struct uio *, struct ucred *, proc_t);
-int nfs_writerpc(vnode_t, struct uio *, struct ucred *, proc_t, int *, uint64_t *);
-int nfs_readdirrpc(vnode_t, struct uio *, struct ucred *, proc_t);
-int nfs_readdirplusrpc(vnode_t, struct uio *, struct ucred *, proc_t);
-int nfs_asyncio(struct nfsbuf *, struct ucred *);
-int nfs_doio(struct nfsbuf *, struct ucred *, proc_t);
-int nfs_readlinkrpc(vnode_t, struct uio *, struct ucred *, proc_t);
-int nfs_sigintr(struct nfsmount *, struct nfsreq *, proc_t);
-int nfsm_disct(mbuf_t *, caddr_t *, int, int, caddr_t *);
-void nfsm_srvfattr(struct nfsrv_descript *, struct vnode_attr *,
- struct nfs_fattr *);
-void nfsm_srvwcc(struct nfsrv_descript *, int, struct vnode_attr *, int,
- struct vnode_attr *, mbuf_t *, char **);
-void nfsm_srvpostopattr(struct nfsrv_descript *, int, struct vnode_attr *,
- mbuf_t *, char **);
-int netaddr_match(int, union nethostaddr *, mbuf_t);
-int nfs_request(vnode_t, mount_t, mbuf_t, int, proc_t,
- struct ucred *, mbuf_t *, mbuf_t *,
- caddr_t *, u_int64_t *);
-int nfs_parsefattr(mbuf_t *, caddr_t *, int, struct nfs_vattr *);
-int nfs_loadattrcache(struct nfsnode *, struct nfs_vattr *, u_int64_t *, int);
-int nfsm_path_mbuftond(mbuf_t *, caddr_t *, int, int, int *, struct nameidata *);
-int nfs_namei(struct nfsrv_descript *, struct vfs_context *, struct nameidata *,
- struct nfs_filehandle *, mbuf_t, int, vnode_t *,
- struct nfs_export **, struct nfs_export_options **);
-void nfsm_adj(mbuf_t, int, int);
-int nfsm_mbuftouio(mbuf_t *, struct uio *, int, caddr_t *);
-void nfsrv_initcache(void);
-int nfs_getauth(struct nfsmount *, struct nfsreq *, struct ucred *,
- char **, int *, char *, int *, NFSKERBKEY_T);
-int nfs_getnickauth(struct nfsmount *, struct ucred *, char **,
- int *, char *, int);
-int nfs_savenickauth(struct nfsmount *, struct ucred *, int,
- NFSKERBKEY_T, mbuf_t *, char **,
- mbuf_t);
-int nfs_adv(mbuf_t *, caddr_t *, int, int);
-void nfs_nhinit(void);
-void nfs_timer_funnel(void*);
-void nfs_timer(void*);
-u_long nfs_hash(u_char *, int);
-int nfsrv_dorec(struct nfssvc_sock *, struct nfsd *,
- struct nfsrv_descript **);
-int nfsrv_getcache(struct nfsrv_descript *, struct nfssvc_sock *,
- mbuf_t *);
-void nfsrv_updatecache(struct nfsrv_descript *, int, mbuf_t);
+
+int nfs_lookitup(nfsnode_t, char *, int, vfs_context_t, nfsnode_t *);
+void nfs_dulookup_init(struct nfs_dulookup *, nfsnode_t, const char *, int);
+void nfs_dulookup_start(struct nfs_dulookup *, nfsnode_t, vfs_context_t);
+void nfs_dulookup_finish(struct nfs_dulookup *, nfsnode_t, vfs_context_t);
+
+int nfs_parsefattr(struct nfsm_chain *, int, struct nfs_vattr *);
+int nfs4_parsefattr(struct nfsm_chain *, struct nfs_fsattr *, struct nfs_vattr *, fhandle_t *, struct dqblk *);
+void nfs_vattr_set_supported(uint32_t *, struct vnode_attr *);
+void nfs3_pathconf_cache(struct nfsmount *, struct nfs_fsattr *);
+int nfs_node_mode_slot(nfsnode_t, uid_t, int);
+
+int nfs_vnop_access(struct vnop_access_args *);
+
+int nfs3_vnop_open(struct vnop_open_args *);
+int nfs3_vnop_close(struct vnop_close_args *);
+
+int nfs4_vnop_create(struct vnop_create_args *);
+int nfs4_vnop_mknod(struct vnop_mknod_args *);
+int nfs4_vnop_open(struct vnop_open_args *);
+int nfs4_vnop_close(struct vnop_close_args *);
+int nfs4_vnop_getattr(struct vnop_getattr_args *);
+int nfs4_vnop_link(struct vnop_link_args *);
+int nfs4_vnop_mkdir(struct vnop_mkdir_args *);
+int nfs4_vnop_rmdir(struct vnop_rmdir_args *);
+int nfs4_vnop_symlink(struct vnop_symlink_args *);
+int nfs4_vnop_advlock(struct vnop_advlock_args *ap);
+
+int nfs_read_rpc(nfsnode_t, struct uio *, vfs_context_t);
+int nfs_write_rpc(nfsnode_t, struct uio *, vfs_context_t, int *, uint64_t *);
+int nfs_write_rpc2(nfsnode_t, struct uio *, thread_t, kauth_cred_t, int *, uint64_t *);
+
+int nfs3_access_rpc(nfsnode_t, u_long *, vfs_context_t);
+int nfs4_access_rpc(nfsnode_t, u_long *, vfs_context_t);
+int nfs3_getattr_rpc(nfsnode_t, mount_t, u_char *, size_t, vfs_context_t, struct nfs_vattr *, u_int64_t *);
+int nfs4_getattr_rpc(nfsnode_t, mount_t, u_char *, size_t, vfs_context_t, struct nfs_vattr *, u_int64_t *);
+int nfs3_setattr_rpc(nfsnode_t, struct vnode_attr *, vfs_context_t, int);
+int nfs4_setattr_rpc(nfsnode_t, struct vnode_attr *, vfs_context_t, int);
+int nfs3_read_rpc_async(nfsnode_t, off_t, size_t, thread_t, kauth_cred_t, struct nfsreq_cbinfo *, struct nfsreq **);
+int nfs4_read_rpc_async(nfsnode_t, off_t, size_t, thread_t, kauth_cred_t, struct nfsreq_cbinfo *, struct nfsreq **);
+int nfs3_read_rpc_async_finish(nfsnode_t, struct nfsreq *, struct uio *, size_t *, int *);
+int nfs4_read_rpc_async_finish(nfsnode_t, struct nfsreq *, struct uio *, size_t *, int *);
+int nfs3_write_rpc_async(nfsnode_t, struct uio *, size_t, thread_t, kauth_cred_t, int, struct nfsreq_cbinfo *, struct nfsreq **);
+int nfs4_write_rpc_async(nfsnode_t, struct uio *, size_t, thread_t, kauth_cred_t, int, struct nfsreq_cbinfo *, struct nfsreq **);
+int nfs3_write_rpc_async_finish(nfsnode_t, struct nfsreq *, int *, size_t *, uint64_t *);
+int nfs4_write_rpc_async_finish(nfsnode_t, struct nfsreq *, int *, size_t *, uint64_t *);
+int nfs3_readdir_rpc(nfsnode_t, struct uio *, vfs_context_t);
+int nfs3_readdirplus_rpc(nfsnode_t, struct uio *, vfs_context_t);
+int nfs4_readdir_rpc(nfsnode_t, struct uio *, vfs_context_t);
+int nfs3_readlink_rpc(nfsnode_t, char *, uint32_t *, vfs_context_t);
+int nfs4_readlink_rpc(nfsnode_t, char *, uint32_t *, vfs_context_t);
+int nfs3_commit_rpc(nfsnode_t, u_int64_t, u_int64_t, kauth_cred_t);
+int nfs4_commit_rpc(nfsnode_t, u_int64_t, u_int64_t, kauth_cred_t);
+int nfs3_lookup_rpc_async(nfsnode_t, char *, int, vfs_context_t, struct nfsreq **);
+int nfs4_lookup_rpc_async(nfsnode_t, char *, int, vfs_context_t, struct nfsreq **);
+int nfs3_lookup_rpc_async_finish(nfsnode_t, vfs_context_t, struct nfsreq *, u_int64_t *, fhandle_t *, struct nfs_vattr *);
+int nfs4_lookup_rpc_async_finish(nfsnode_t, vfs_context_t, struct nfsreq *, u_int64_t *, fhandle_t *, struct nfs_vattr *);
+int nfs3_remove_rpc(nfsnode_t, char *, int, thread_t, kauth_cred_t);
+int nfs4_remove_rpc(nfsnode_t, char *, int, thread_t, kauth_cred_t);
+int nfs3_rename_rpc(nfsnode_t, char *, int, nfsnode_t, char *, int, vfs_context_t);
+int nfs4_rename_rpc(nfsnode_t, char *, int, nfsnode_t, char *, int, vfs_context_t);
+int nfs3_pathconf_rpc(nfsnode_t, struct nfs_fsattr *, vfs_context_t);
+int nfs4_pathconf_rpc(nfsnode_t, struct nfs_fsattr *, vfs_context_t);
+
+void nfsrv_active_user_list_reclaim(void);