]> 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 577dde0996ae48e4cb7002efdf53a9b7e898f64e..0406d1b489f53ae31cb09c2958f0d23ff66c4d7b 100644 (file)
@@ -1,23 +1,29 @@
 /*
- * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
+ * 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. 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.
  * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * 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
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * 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... */
        int     nm_state;               /* Internal state flags */
-       struct  mount *nm_mountp;       /* Vfs structure for this filesystem */
+       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 */
@@ -89,21 +94,21 @@ 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 */
@@ -114,14 +119,21 @@ struct    nfsmount {
        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)   ((mp) ? ((struct nfsmount *)((mp)->mnt_data)) : NULL)
+#define VFSTONFS(mp)   ((mp) ? ((struct nfsmount *)vfs_fsprivate(mp)) : NULL)
 
 #ifndef NFS_TPRINTF_INITIAL_DELAY
 #define NFS_TPRINTF_INITIAL_DELAY      12