Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / vol / vg_cache_impl.h
1 /*
2 * Copyright 2009-2010, Sine Nomine Associates and others.
3 * All Rights Reserved.
4 *
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
8 */
9
10 /*
11 * demand attach fs
12 * volume group membership cache
13 */
14
15 #ifndef _AFS_VOL_VG_CACHE_IMPL_H
16 #define _AFS_VOL_VG_CACHE_IMPL_H 1
17
18 #define VVGC_SCAN_TBL_LEN 4096 /**< thread-local partition scan table size */
19
20 #include "vg_cache_impl_types.h"
21
22 extern VVGCache_hash_table_t VVGCache_hash_table;
23 extern VVGCache_t VVGCache;
24
25 extern int _VVGC_flush_part(struct DiskPartition64 * part);
26 extern int _VVGC_flush_part_r(struct DiskPartition64 * part);
27 extern int _VVGC_scan_start(struct DiskPartition64 * dp);
28 extern int _VVGC_state_change(struct DiskPartition64 * part,
29 VVGCache_part_state_t state);
30 extern int _VVGC_entry_purge_r(struct DiskPartition64 * dp,
31 VolumeId parent, VolumeId child);
32 extern int _VVGC_dlist_add_r(struct DiskPartition64 *dp,
33 VolumeId parent, VolumeId child);
34 extern int _VVGC_dlist_del_r(struct DiskPartition64 *dp,
35 VolumeId parent, VolumeId child);
36
37 #define VVGC_HASH(volumeId) (volumeId&(VolumeHashTable.Mask))
38
39 #endif /* _AFS_VOL_VG_CACHE_H */