1/* 2 * Copyright (c) 1989, 1993, 1995 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Rick Macklem at The University of Guelph. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)nfs.h 8.4 (Berkeley) 5/1/95 |
37 * $Id: nfs.h,v 1.29 1997/07/16 09:06:27 dfr Exp $ |
38 */ 39 40#ifndef _NFS_NFS_H_ 41#define _NFS_NFS_H_ 42 43/* 44 * Tunable constants for nfs 45 */ --- 331 unchanged lines hidden (view full) --- 377#define NFSNOHASH(fhsum) \ 378 (&nfsnodehashtbl[(fhsum) & nfsnodehash]) 379 380/* 381 * Network address hash list element 382 */ 383union nethostaddr { 384 u_long had_inetaddr; |
385 struct sockaddr *had_nam; |
386}; 387 388struct nfsuid { 389 TAILQ_ENTRY(nfsuid) nu_lru; /* LRU chain */ 390 LIST_ENTRY(nfsuid) nu_hash; /* Hash list */ 391 int nu_flag; /* Flags */ 392 union nethostaddr nu_haddr; /* Host addr. for dgram sockets */ 393 struct ucred nu_cr; /* Cred uid mapped to */ --- 7 unchanged lines hidden (view full) --- 401#define nu_nam nu_haddr.had_nam 402/* Bits for nu_flag */ 403#define NU_INETADDR 0x1 404#define NU_NAM 0x2 405#define NU_NETFAM(u) (((u)->nu_flag & NU_INETADDR) ? AF_INET : AF_ISO) 406 407struct nfsrv_rec { 408 STAILQ_ENTRY(nfsrv_rec) nr_link; |
409 struct sockaddr *nr_address; |
410 struct mbuf *nr_packet; 411}; 412 413struct nfssvc_sock { 414 TAILQ_ENTRY(nfssvc_sock) ns_chain; /* List of all nfssvc_sock's */ 415 TAILQ_HEAD(, nfsuid) ns_uidlruhead; 416 struct file *ns_fp; 417 struct socket *ns_so; |
418 struct sockaddr *ns_nam; |
419 struct mbuf *ns_raw; 420 struct mbuf *ns_rawend; 421 STAILQ_HEAD(, nfsrv_rec) ns_rec; 422 struct mbuf *ns_frag; 423 int ns_flag; 424 int ns_solock; 425 int ns_cc; 426 int ns_reclen; --- 48 unchanged lines hidden (view full) --- 475 off_t nd_off; /* Start byte offset */ 476 off_t nd_eoff; /* and end byte offset */ 477 LIST_ENTRY(nfsrv_descript) nd_hash; /* Hash list */ 478 LIST_ENTRY(nfsrv_descript) nd_tq; /* and timer list */ 479 LIST_HEAD(,nfsrv_descript) nd_coalesce; /* coalesced writes */ 480 struct mbuf *nd_mrep; /* Request mbuf list */ 481 struct mbuf *nd_md; /* Current dissect mbuf */ 482 struct mbuf *nd_mreq; /* Reply mbuf list */ |
483 struct sockaddr *nd_nam; /* and socket addr */ 484 struct sockaddr *nd_nam2; /* return socket addr */ |
485 caddr_t nd_dpos; /* Current dissect pos */ 486 u_int32_t nd_procnum; /* RPC # */ 487 int nd_stable; /* storage type */ 488 int nd_flag; /* nd_flag */ 489 int nd_len; /* Length of this write */ 490 int nd_repstat; /* Reply status */ 491 u_long nd_retxid; /* Reply xid */ 492 u_long nd_duration; /* Lease duration */ --- 69 unchanged lines hidden (view full) --- 562 563#define NFS_DPF(cat, args) 564 565#endif 566 567int nfs_init __P((struct vfsconf *vfsp)); 568int nfs_reply __P((struct nfsreq *)); 569int nfs_getreq __P((struct nfsrv_descript *,struct nfsd *,int)); |
570int nfs_send __P((struct socket *, struct sockaddr *, struct mbuf *, 571 struct nfsreq *)); 572int nfs_rephead __P((int, struct nfsrv_descript *, struct nfssvc_sock *, 573 int, int, u_quad_t *, struct mbuf **, struct mbuf **, 574 caddr_t *)); 575int nfs_sndlock __P((int *, struct nfsreq *)); |
576void nfs_sndunlock __P((int *flagp)); |
577int nfs_disct __P((struct mbuf **, caddr_t *, int, int, caddr_t *)); 578int nfs_vinvalbuf __P((struct vnode *, int, struct ucred *, struct proc *, 579 int)); 580int nfs_readrpc __P((struct vnode *, struct uio *, struct ucred *)); 581int nfs_writerpc __P((struct vnode *, struct uio *, struct ucred *, int *, 582 int *)); 583int nfs_readdirrpc __P((struct vnode *, struct uio *, struct ucred *)); 584int nfs_asyncio __P((struct buf *, struct ucred *)); 585int nfs_doio __P((struct buf *, struct ucred *, struct proc *)); 586int nfs_readlinkrpc __P((struct vnode *, struct uio *, struct ucred *)); 587int nfs_sigintr __P((struct nfsmount *, struct nfsreq *, struct proc *)); 588int nfs_readdirplusrpc __P((struct vnode *, struct uio *, struct ucred *)); 589int nfsm_disct __P((struct mbuf **, caddr_t *, int, int, caddr_t *)); 590void nfsm_srvfattr __P((struct nfsrv_descript *, struct vattr *, 591 struct nfs_fattr *)); 592void nfsm_srvwcc __P((struct nfsrv_descript *, int, struct vattr *, int, 593 struct vattr *, struct mbuf **, char **)); 594void nfsm_srvpostopattr __P((struct nfsrv_descript *, int, struct vattr *, 595 struct mbuf **, char **)); 596int netaddr_match __P((int, union nethostaddr *, struct sockaddr *)); 597int nfs_request __P((struct vnode *, struct mbuf *, int, struct proc *, 598 struct ucred *, struct mbuf **, struct mbuf **, 599 caddr_t *)); 600int nfs_loadattrcache __P((struct vnode **, struct mbuf **, caddr_t *, 601 struct vattr *)); 602int nfs_namei __P((struct nameidata *, fhandle_t *, int, 603 struct nfssvc_sock *, struct sockaddr *, struct mbuf **, 604 caddr_t *, struct vnode **, struct proc *, int, int)); 605void nfsm_adj __P((struct mbuf *, int, int)); 606int nfsm_mbuftouio __P((struct mbuf **, struct uio *, int, caddr_t *)); |
607void nfsrv_initcache __P((void)); |
608int nfs_getauth __P((struct nfsmount *, struct nfsreq *, struct ucred *, 609 char **, int *, char *, int *, NFSKERBKEY_T)); 610int nfs_getnickauth __P((struct nfsmount *, struct ucred *, char **, 611 int *, char *, int)); 612int nfs_savenickauth __P((struct nfsmount *, struct ucred *, int, 613 NFSKERBKEY_T, struct mbuf **, char **, 614 struct mbuf *)); 615int nfs_adv __P((struct mbuf **, caddr_t *, int, int)); |
616void nfs_nhinit __P((void)); 617void nfs_timer __P((void*)); |
618u_long nfs_hash __P((nfsfh_t *, int)); 619int nfsrv_dorec __P((struct nfssvc_sock *, struct nfsd *, 620 struct nfsrv_descript **)); 621int nfsrv_getcache __P((struct nfsrv_descript *, struct nfssvc_sock *, 622 struct mbuf **)); 623void nfsrv_updatecache __P((struct nfsrv_descript *, int, struct mbuf *)); |
624void nfsrv_cleancache __P((void)); |
625int nfs_connect __P((struct nfsmount *, struct nfsreq *)); |
626void nfs_disconnect __P((struct nfsmount *)); |
627int nfs_getattrcache __P((struct vnode *, struct vattr *)); 628int nfsm_strtmbuf __P((struct mbuf **, char **, char *, long)); 629int nfs_bioread __P((struct vnode *, struct uio *, int, struct ucred *, 630 int)); 631int nfsm_uiotombuf __P((struct uio *, struct mbuf **, int, caddr_t *)); |
632void nfsrv_init __P((int)); 633void nfs_clearcommit __P((struct mount *)); 634int nfsrv_errmap __P((struct nfsrv_descript *, int)); |
635void nfsrvw_sort __P((gid_t *, int)); 636void nfsrv_setcred __P((struct ucred *, struct ucred *)); 637int nfs_writebp __P((struct buf *, int)); 638int nfsrv_object_create __P((struct vnode *)); |
639void nfsrv_wakenfsd __P((struct nfssvc_sock *slp)); 640int nfsrv_writegather __P((struct nfsrv_descript **, struct nfssvc_sock *, 641 struct proc *, struct mbuf **)); 642int nfs_fsinfo __P((struct nfsmount *, struct vnode *, struct ucred *, 643 struct proc *p)); 644 |
645int nfsrv3_access __P((struct nfsrv_descript *nfsd, 646 struct nfssvc_sock *slp, |
647 struct proc *procp, struct mbuf **mrq)); 648int nfsrv_commit __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 649 struct proc *procp, struct mbuf **mrq)); 650int nfsrv_create __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 651 struct proc *procp, struct mbuf **mrq)); |
652int nfsrv_fhtovp __P((fhandle_t *, int, struct vnode **, struct ucred *, 653 struct nfssvc_sock *, struct sockaddr *, int *, 654 int, int)); |
655int nfsrv_setpublicfs __P((struct mount *, struct netexport *, 656 struct export_args *)); 657int nfs_ispublicfh __P((fhandle_t *)); 658int nfsrv_fsinfo __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 659 struct proc *procp, struct mbuf **mrq)); 660int nfsrv_getattr __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 661 struct proc *procp, struct mbuf **mrq)); 662int nfsrv_link __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, --- 8 unchanged lines hidden (view full) --- 671 struct proc *procp, struct mbuf **mrq)); 672int nfsrv_null __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 673 struct proc *procp, struct mbuf **mrq)); 674int nfsrv_pathconf __P((struct nfsrv_descript *nfsd, 675 struct nfssvc_sock *slp, struct proc *procp, 676 struct mbuf **mrq)); 677int nfsrv_read __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 678 struct proc *procp, struct mbuf **mrq)); |
679int nfsrv_readdir __P((struct nfsrv_descript *nfsd, 680 struct nfssvc_sock *slp, |
681 struct proc *procp, struct mbuf **mrq)); 682int nfsrv_readdirplus __P((struct nfsrv_descript *nfsd, 683 struct nfssvc_sock *slp, struct proc *procp, 684 struct mbuf **mrq)); 685int nfsrv_readlink __P((struct nfsrv_descript *nfsd, 686 struct nfssvc_sock *slp, struct proc *procp, 687 struct mbuf **mrq)); 688int nfsrv_remove __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 689 struct proc *procp, struct mbuf **mrq)); 690int nfsrv_rename __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 691 struct proc *procp, struct mbuf **mrq)); 692int nfsrv_rmdir __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 693 struct proc *procp, struct mbuf **mrq)); |
694int nfsrv_setattr __P((struct nfsrv_descript *nfsd, 695 struct nfssvc_sock *slp, |
696 struct proc *procp, struct mbuf **mrq)); |
697int nfsrv_statfs __P((struct nfsrv_descript *nfsd, 698 struct nfssvc_sock *slp, |
699 struct proc *procp, struct mbuf **mrq)); |
700int nfsrv_symlink __P((struct nfsrv_descript *nfsd, 701 struct nfssvc_sock *slp, |
702 struct proc *procp, struct mbuf **mrq)); 703int nfsrv_write __P((struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, 704 struct proc *procp, struct mbuf **mrq)); 705void nfsrv_rcv __P((struct socket *so, caddr_t arg, int waitflag)); 706void nfsrv_slpderef __P((struct nfssvc_sock *slp)); 707#endif /* KERNEL */ 708 709#endif |