windows-pcache-20050310
[openafs.git] / src / WINNT / afsd / cm_volume.h
index 0d01700..848f4be 100644 (file)
 #ifndef __CM_VOLUME_H_ENV__
 #define __CM_VOLUME_H_ENV__ 1
 
+#define VL_MAXNAMELEN                   65
+
+#define CM_VOLUME_MAGIC    ('V' | 'O' <<8 | 'L'<<16 | 'M'<<24)
+
 typedef struct cm_volume {
-       struct cm_cell *cellp;          /* never changes */
-    char *namep;                       /* by cm_volumeLock */
-       unsigned long rwID;             /* by cm_volumeLock */
-       unsigned long roID;             /* by cm_volumeLock */
-       unsigned long bkID;             /* by cm_volumeLock */
-    struct cm_volume *nextp;   /* by cm_volumeLock */
-       struct cm_fid *dotdotFidp;      /* parent of volume root */
+    afs_uint32  magic;
+    cm_cell_t *cellp;                  /* never changes */
+    char namep[VL_MAXNAMELEN];         /* by cm_volumeLock */
+    unsigned long rwID;                        /* by cm_volumeLock */
+    unsigned long roID;                        /* by cm_volumeLock */
+    unsigned long bkID;                        /* by cm_volumeLock */
+    struct cm_volume *nextp;           /* by cm_volumeLock */
+    struct cm_fid dotdotFid;           /* parent of volume root */
     osi_mutex_t mx;
-    long flags;                        /* by mx */
-    unsigned long refCount;                    /* by cm_volumeLock */
-    cm_serverRef_t *rwServersp;        /* by mx */
-    cm_serverRef_t *roServersp;        /* by mx */
-    cm_serverRef_t *bkServersp;        /* by mx */
+    long flags;                                /* by mx */
+    unsigned long refCount;            /* by cm_volumeLock */
+    cm_serverRef_t *rwServersp;                /* by mx */
+    cm_serverRef_t *roServersp;                /* by mx */
+    cm_serverRef_t *bkServersp;                /* by mx */
 } cm_volume_t;
 
 #define CM_VOLUMEFLAG_RESET    1       /* reload this info on next use */
 
-extern void cm_InitVolume(void);
+extern void cm_InitVolume(int newFile, long maxVols);
 
 extern long cm_GetVolumeByName(struct cm_cell *, char *, struct cm_user *,
        struct cm_req *, long, cm_volume_t **);
@@ -49,4 +54,7 @@ extern void cm_ChangeRankVolume(cm_server_t *tsp);
 
 extern void cm_CheckVolumes(void);
 
+extern long cm_ValidateVolume(void);
+
+extern long cm_ShutdownVolume(void);
 #endif /*  __CM_VOLUME_H_ENV__ */