Initial IBM OpenAFS 1.0 tree
[openafs.git] / src / WINNT / afsd / cm_dnlc.h
1 #include <ctype.h>
2
3 #define         CM_AFSNCNAMESIZE        36 /* multiple of 4 */
4 #define         NCSIZE                  300
5 #define         NHSIZE                  256 /* must be power of 2== NHASHENT */
6
7
8 struct nc {
9   unsigned int key;
10   struct nc *next, *prev;
11   cm_scache_t *dirp, *vp;
12   unsigned char name[CM_AFSNCNAMESIZE];   
13 };
14
15 typedef struct {
16   unsigned int enters, lookups, misses, removes;
17   unsigned int purgeds, purgevs, purgevols, purges;
18   unsigned int cycles, lookuprace;
19 } cm_dnlcstats_t;
20
21 #define dnlcHash(ts, hval) for (hval=0; *ts; ts++) {    \
22                                 hval *= 173;            \
23                                 hval += cm_foldUpper[(unsigned char)(*ts)]; \
24                            }
25 extern void cm_dnlcEnter(cm_scache_t *adp, char *name, cm_scache_t *avc);
26 extern void cm_dnlcRemove(cm_scache_t *adp, char *name);
27 extern void cm_dnlcPurgedp(cm_scache_t *adp);
28 extern void cm_dnlcPurgevp(cm_scache_t *avc);
29 extern void cm_dnlcPurge(void);
30 extern void cm_dnlcPurgeVol(struct AFSFid *fidp);
31 extern void cm_dnlcInit(void);
32 extern void cm_dnlcShutdown(void);
33 extern cm_scache_t* cm_dnlcLookup(cm_scache_t *adp, cm_lookupSearch_t* sp);