clean up includes; nfs_netaddr_match goes to vfs_addr.c
[unix-history] / usr / src / sys / nfs / nfsmount.h
index 3641134..d409116 100644 (file)
@@ -5,38 +5,94 @@
  * This code is derived from software contributed to Berkeley by
  * Rick Macklem at The University of Guelph.
  *
  * 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 are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley.  The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ * %sccs.include.redist.c%
  *
  *
- *     @(#)nfsmount.h  7.1 (Berkeley) %G%
+ *     @(#)nfsmount.h  7.10 (Berkeley) %G%
  */
 
 /*
  * Mount structure.
  */
 
 /*
  * Mount structure.
- * One allocated on every nfs mount.
- * Holds nfs specific info for mount (sockets...)
+ * One allocated on every NFS mount.
+ * Holds NFS specific information for mount.
  */
 struct nfsmount {
        int     nm_flag;                /* Flags for soft/hard... */
  */
 struct nfsmount {
        int     nm_flag;                /* Flags for soft/hard... */
-       struct  mount *nm_mountp;       /* vfs structure for this filesystem */
+       struct  mount *nm_mountp;       /* Vfs structure for this filesystem */
+       int     nm_numgrps;             /* Max. size of groupslist */
        nfsv2fh_t nm_fh;                /* File handle of root dir */
        nfsv2fh_t nm_fh;                /* File handle of root dir */
-       struct  mbuf *nm_sockaddr;      /* Address of server */
-       struct  socket  *nm_so;         /* rpc socket */
-       int     nm_timeo;               /* Timeout interval */
-       int     nm_retrans;             /* # of retransmits */
+       struct  socket *nm_so;          /* Rpc socket */
+       int     nm_sotype;              /* Type of socket */
+       int     nm_soproto;             /* and protocol */
+       int     nm_soflags;             /* pr_flags for socket protocol */
+       struct  mbuf *nm_nam;           /* Addr of server */
+       int     nm_timeo;               /* Init timer for NFSMNT_DUMBTIMR */
+       int     nm_retry;               /* Max retries */
+       int     nm_srtt[4];             /* Timers for rpcs */
+       int     nm_sdrtt[4];
+       int     nm_sent;                /* Request send count */
+       int     nm_cwnd;                /* Request send window */
+       int     nm_timeouts;            /* Request timeouts */
+       int     nm_deadthresh;          /* Threshold of timeouts-->dead server*/
        int     nm_rsize;               /* Max size of read rpc */
        int     nm_wsize;               /* Max size of write rpc */
        int     nm_rsize;               /* Max size of read rpc */
        int     nm_wsize;               /* Max size of write rpc */
-       char    nm_path[MNAMELEN];      /* Path mounted on */
-       char    nm_host[MNAMELEN];      /* Remote host name */
+       int     nm_readahead;           /* Num. of blocks to readahead */
+       int     nm_leaseterm;           /* Term (sec) for NQNFS lease */
+       struct nfsnode *nm_tnext;       /* Head of lease timer queue */
+       struct nfsnode *nm_tprev;
+       struct vnode *nm_inprog;        /* Vnode in prog by nqnfs_clientd() */
+       uid_t   nm_authuid;             /* Uid for authenticator */
+       int     nm_authtype;            /* Authenticator type */
+       int     nm_authlen;             /* and length */
+       char    *nm_authstr;            /* Authenticator string */
 };
 
 };
 
-struct nfsmount *vfs_to_nfs();
+#ifdef KERNEL
+/*
+ * Convert mount ptr to nfsmount ptr.
+ */
+#define VFSTONFS(mp)   ((struct nfsmount *)((mp)->mnt_data))
+#endif /* KERNEL */
+
+/*
+ * Prototypes for NFS mount operations
+ */
+int    nfs_mount __P((
+               struct mount *mp,
+               char *path,
+               caddr_t data,
+               struct nameidata *ndp,
+               struct proc *p));
+int    nfs_start __P((
+               struct mount *mp,
+               int flags,
+               struct proc *p));
+int    nfs_unmount __P((
+               struct mount *mp,
+               int mntflags,
+               struct proc *p));
+int    nfs_root __P((
+               struct mount *mp,
+               struct vnode **vpp));
+int    nfs_quotactl __P((
+               struct mount *mp,
+               int cmds,
+               uid_t uid,
+               caddr_t arg,
+               struct proc *p));
+int    nfs_statfs __P((
+               struct mount *mp,
+               struct statfs *sbp,
+               struct proc *p));
+int    nfs_sync __P((
+               struct mount *mp,
+               int waitfor,
+               struct ucred *cred,
+               struct proc *p));
+int    nfs_fhtovp __P((
+               struct mount *mp,
+               struct fid *fhp,
+               struct vnode **vpp));
+int    nfs_vptofh __P((
+               struct vnode *vp,
+               struct fid *fhp));
+int    nfs_init __P(());