nfs_vfree prototype changed for vn_if
[unix-history] / usr / src / sys / nfs / nfsmount.h
index 72a362c..5419060 100644 (file)
@@ -5,19 +5,9 @@
  * 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.3 (Berkeley) %G%
+ *     @(#)nfsmount.h  7.9 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
 struct nfsmount {
        int     nm_flag;                /* Flags for soft/hard... */
        struct  mount *nm_mountp;       /* Vfs structure for this filesystem */
 struct nfsmount {
        int     nm_flag;                /* Flags for soft/hard... */
        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  socket  *nm_so;         /* Rpc socket */
-       struct  nfshost *nm_hostinfo;   /* Host and congestion information */
-       short   nm_retry;               /* Max retry count */
-       short   nm_rexmit;              /* Rexmit on previous request */
-       short   nm_rtt;                 /* Round trip timer ticks @ NFS_HZ */
-       short   nm_rto;                 /* Current timeout */
-       short   nm_srtt;                /* Smoothed round trip time */
-       short   nm_rttvar;              /* RTT variance */
+       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 */
+       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 */
 };
 
 };
 
+#ifdef KERNEL
 /*
 /*
- * Hostinfo/congestion structure.
- * One allocated per NFS server.
- * Holds host address, congestion limits, request count, etc.
- * Reference count is of nfsmounts which point to it.
+ * Convert mount ptr to nfsmount ptr.
  */
  */
-struct nfshost {
-       struct  nfshost *nh_next, *nh_prev;
-       short   nh_refcnt;              /* Reference count */
-       short   nh_currto;              /* Current rto of any nfsmount */
-       short   nh_currexmit;           /* Max rexmit count of nfsmounts */
-       short   nh_sent;                /* Request send count */
-       short   nh_window;              /* Request send window (max) */
-       short   nh_winext;              /* Window incremental value */
-       short   nh_ssthresh;            /* Slowstart threshold */
-       short   nh_salen;               /* Actual length of nh_sockaddr */
-       struct  mbuf *nh_sockaddr;      /* Address of server */
-};
+#define VFSTONFS(mp)   ((struct nfsmount *)((mp)->mnt_data))
+#endif /* KERNEL */
 
 
-struct nfsmount *vfs_to_nfs();
+/*
+ * 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,
+               u_int uid,      /* should be uid_t */
+               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));
+int    nfs_fhtovp __P((
+               struct mount *mp,
+               struct fid *fhp,
+               int setgen,
+               struct vnode **vpp));
+int    nfs_vptofh __P((
+               struct vnode *vp,
+               struct fid *fhp));
+int    nfs_init __P(());