linux/include/linux/mbcache.h
<<
>>
Prefs
   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
  53
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.