at v2.6.35-rc2 1.5 kB view raw
1/* 2 File: linux/mbcache.h 3 4 (C) 2001 by Andreas Gruenbacher, <a.gruenbacher@computer.org> 5*/ 6 7/* Hardwire the number of additional indexes */ 8#define MB_CACHE_INDEXES_COUNT 1 9 10struct mb_cache_entry { 11 struct list_head e_lru_list; 12 struct mb_cache *e_cache; 13 unsigned short e_used; 14 unsigned short e_queued; 15 struct block_device *e_bdev; 16 sector_t e_block; 17 struct list_head e_block_list; 18 struct { 19 struct list_head o_list; 20 unsigned int o_key; 21 } e_indexes[0]; 22}; 23 24struct mb_cache_op { 25 int (*free)(struct mb_cache_entry *, gfp_t); 26}; 27 28/* Functions on caches */ 29 30struct mb_cache * mb_cache_create(const char *, struct mb_cache_op *, size_t, 31 int, int); 32void mb_cache_shrink(struct block_device *); 33void mb_cache_destroy(struct mb_cache *); 34 35/* Functions on cache entries */ 36 37struct mb_cache_entry *mb_cache_entry_alloc(struct mb_cache *, gfp_t); 38int mb_cache_entry_insert(struct mb_cache_entry *, struct block_device *, 39 sector_t, unsigned int[]); 40void mb_cache_entry_release(struct mb_cache_entry *); 41void mb_cache_entry_free(struct mb_cache_entry *); 42struct mb_cache_entry *mb_cache_entry_get(struct mb_cache *, 43 struct block_device *, 44 sector_t); 45#if !defined(MB_CACHE_INDEXES_COUNT) || (MB_CACHE_INDEXES_COUNT > 0) 46struct mb_cache_entry *mb_cache_entry_find_first(struct mb_cache *cache, int, 47 struct block_device *, 48 unsigned int); 49struct mb_cache_entry *mb_cache_entry_find_next(struct mb_cache_entry *, int, 50 struct block_device *, 51 unsigned int); 52#endif