]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/nfs/nfsmount.h
xnu-792.21.3.tar.gz
[apple/xnu.git] / bsd / nfs / nfsmount.h
index efa40d2f881501fa901a88eead4dd91370cecb4d..0406d1b489f53ae31cb09c2958f0d23ff66c4d7b 100644 (file)
@@ -1,16 +1,19 @@
 /*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
  * 
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
@@ -20,7 +23,7 @@
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
 /*
  */
 struct nfsmount {
        int     nm_flag;                /* Flags for soft/hard... */
-       struct  mount *nm_mountp;       /* Vfs structure for this filesystem */
+       int     nm_state;               /* Internal state flags */
+       mount_t nm_mountp;              /* Vfs structure for this filesystem */
        int     nm_numgrps;             /* Max. size of groupslist */
        struct vnode *nm_dvp;           /* root directory vnode pointer */
-       struct  socket *nm_so;          /* Rpc socket */
+       socket_t 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 */
+       mbuf_t  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 */
@@ -91,36 +94,54 @@ struct      nfsmount {
        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_readdirsize;         /* Size of a readdir rpc */
        int     nm_readahead;           /* Num. of blocks to readahead */
-       int     nm_leaseterm;           /* Term (sec) for NQNFS lease */
-       CIRCLEQ_HEAD(, nfsnode) nm_timerhead; /* Head of lease timer queue */
-       struct vnode *nm_inprog;        /* Vnode in prog by nqnfs_clientd() */
+       int     nm_acregmin;            /* reg file min attr cache timeout */
+       int     nm_acregmax;            /* reg file max attr cache timeout */
+       int     nm_acdirmin;            /* dir min attr cache timeout */
+       int     nm_acdirmax;            /* dir max attr cache timeout */
        uid_t   nm_authuid;             /* Uid for authenticator */
        int     nm_authtype;            /* Authenticator type */
        int     nm_authlen;             /* and length */
        char    *nm_authstr;            /* Authenticator string */
        char    *nm_verfstr;            /* and the verifier */
        int     nm_verflen;
-       u_char  nm_verf[NFSX_V3WRITEVERF]; /* V3 write verifier */
+       uint64_t nm_verf;               /* V3 write verifier */
        NFSKERBKEY_T nm_key;            /* and the session key */
        int     nm_numuids;             /* Number of nfsuid mappings */
        TAILQ_HEAD(, nfsuid) nm_uidlruhead; /* Lists of nfsuid mappings */
        LIST_HEAD(, nfsuid) nm_uidhashtbl[NFS_MUIDHASHSIZ];
-       TAILQ_HEAD(, buf) nm_bufq;      /* async io buffer queue */
+       TAILQ_HEAD(, nfsbuf) nm_bufq;   /* async io buffer queue */
        short   nm_bufqlen;             /* number of buffers in queue */
        short   nm_bufqwant;            /* process wants to add to the queue */
        int     nm_bufqiods;            /* number of iods processing queue */
+       int     nm_tprintf_initial_delay;       /* delay first "server down" */
+       int     nm_tprintf_delay;       /* delay between "server down" */
+       struct {                        /* fsinfo & (homogenous) pathconf info */
+               u_int64_t maxfilesize;  /* max size of a file */
+               u_long  linkmax;        /* max # hard links to an object */
+               u_long  namemax;        /* max length of filename component */
+               u_char  pcflags;        /* boolean pathconf properties */
+               u_char  fsproperties;   /* fsinfo properties */
+       } nm_fsinfo;
 };
 
+
 #if defined(KERNEL)
 /*
- * Convert mount ptr to nfsmount ptr.
+ * Convert mount_t to struct nfsmount*
  */
-#define VFSTONFS(mp)   ((struct nfsmount *)((mp)->mnt_data))
+#define VFSTONFS(mp)   ((mp) ? ((struct nfsmount *)vfs_fsprivate(mp)) : NULL)
+
+#ifndef NFS_TPRINTF_INITIAL_DELAY
+#define NFS_TPRINTF_INITIAL_DELAY      12
+#endif
+
+#ifndef NFS_TPRINTF_DELAY
+#define NFS_TPRINTF_DELAY              30
+#endif
 
 #endif /* KERNEL */