2 * Copyright 2004, Secure Endpoints Inc.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
13 #define CM_CONFIG_DATA_MAGIC ('A' | 'F'<<8 | 'S'<<16 | 'D'<<24)
15 typedef struct cm_config_data {
27 cm_volume_t * volumeBaseAddress;
28 cm_cell_t * cellBaseAddress;
29 cm_aclent_t * aclBaseAddress;
30 cm_scache_t * scacheBaseAddress;
31 cm_nc_t * dnlcBaseAddress;
32 cm_buf_t * bufHeaderBaseAddress;
33 char * bufDataBaseAddress;
36 cm_volume_t * allVolumesp;
40 cm_cell_t * allCellsp;
44 cm_volume_t * rootVolumep;
45 cm_cell_t * rootCellp;
47 cm_scache_t * rootSCachep;
48 cm_scache_t fakeSCache;
49 afs_uint32 fakeDirVersion;
51 cm_aclent_t * aclLRUp;
52 cm_aclent_t * aclLRUEndp;
54 cm_scache_t ** hashTablep;
59 cm_scache_t * scacheLRUFirstp;
60 cm_scache_t * scacheLRULastp;
66 cm_buf_t * buf_freeListp;
67 cm_buf_t * buf_freeListEndp;
68 cm_buf_t ** buf_hashTablepp;
69 cm_buf_t ** buf_fileHashTablepp;
74 long buf_nOrigBuffers;
75 long buf_reservedBufs;
76 long buf_maxReservedBufs;
77 long buf_reserveWaiting;
83 extern cm_config_data_t cm_data;
85 DWORD GranularityAdjustment(DWORD size);
86 DWORD ComputeSizeOfConfigData(void);
87 DWORD ComputeSizeOfVolumes(DWORD maxvols);
88 DWORD ComputeSizeOfCells(DWORD maxcells);
89 DWORD ComputeSizeOfACLCache(DWORD stats);
90 DWORD ComputeSizeOfSCache(DWORD stats);
91 DWORD ComputeSizeOfSCacheHT(DWORD stats);
92 DWORD ComputeSizeOfDNLCache(void);
93 DWORD ComputeSizeOfDataBuffers(DWORD cacheBlocks, DWORD blockSize);
94 DWORD ComputeSizeOfDataHT(void);
95 DWORD ComputeSizeOfDataHeaders(DWORD cacheBlocks);
96 DWORD ComputeSizeOfMappingFile(DWORD stats, DWORD chunkSize, DWORD cacheBlocks, DWORD blockSize);
97 PSECURITY_ATTRIBUTES CreateCacheFileSA();
98 VOID FreeCacheFileSA(PSECURITY_ATTRIBUTES psa);
99 int cm_ShutdownMappedMemory(void);
100 int cm_ValidateMappedMemory(char * cachePath);
101 int cm_InitMappedMemory(DWORD virtualCache, char * cachePath, DWORD stats, DWORD chunkSize, DWORD cacheBlocks );
102 #endif /* CM_MEMMAP_H */