mbcache.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:1k
- /*
- File: linux/mbcache.h
- (C) 2001 by Andreas Gruenbacher, <a.gruenbacher@computer.org>
- */
- /* Hardwire the number of additional indexes */
- #define MB_CACHE_INDEXES_COUNT 1
- struct mb_cache_entry {
- struct list_head e_lru_list;
- struct mb_cache *e_cache;
- unsigned short e_used;
- unsigned short e_queued;
- struct block_device *e_bdev;
- sector_t e_block;
- struct list_head e_block_list;
- struct {
- struct list_head o_list;
- unsigned int o_key;
- } e_indexes[0];
- };
- struct mb_cache_op {
- int (*free)(struct mb_cache_entry *, int);
- };
- /* Functions on caches */
- struct mb_cache * mb_cache_create(const char *, struct mb_cache_op *, size_t,
- int, int);
- void mb_cache_shrink(struct block_device *);
- void mb_cache_destroy(struct mb_cache *);
- /* Functions on cache entries */
- struct mb_cache_entry *mb_cache_entry_alloc(struct mb_cache *);
- int mb_cache_entry_insert(struct mb_cache_entry *, struct block_device *,
- sector_t, unsigned int[]);
- void mb_cache_entry_release(struct mb_cache_entry *);
- void mb_cache_entry_free(struct mb_cache_entry *);
- struct mb_cache_entry *mb_cache_entry_get(struct mb_cache *,
- struct block_device *,
- sector_t);
- #if !defined(MB_CACHE_INDEXES_COUNT) || (MB_CACHE_INDEXES_COUNT > 0)
- struct mb_cache_entry *mb_cache_entry_find_first(struct mb_cache *cache, int,
- struct block_device *,
- unsigned int);
- struct mb_cache_entry *mb_cache_entry_find_next(struct mb_cache_entry *, int,
- struct block_device *,
- unsigned int);
- #endif