net: allocate tx queues in register_netdevice
[pandora-kernel.git] / include / linux / mbcache.h
1 /*
2   File: linux/mbcache.h
3
4   (C) 2001 by Andreas Gruenbacher, <a.gruenbacher@computer.org>
5 */
6
7 struct mb_cache_entry {
8         struct list_head                e_lru_list;
9         struct mb_cache                 *e_cache;
10         unsigned short                  e_used;
11         unsigned short                  e_queued;
12         struct block_device             *e_bdev;
13         sector_t                        e_block;
14         struct list_head                e_block_list;
15         struct {
16                 struct list_head        o_list;
17                 unsigned int            o_key;
18         } e_index;
19 };
20
21 /* Functions on caches */
22
23 struct mb_cache *mb_cache_create(const char *, int);
24 void mb_cache_shrink(struct block_device *);
25 void mb_cache_destroy(struct mb_cache *);
26
27 /* Functions on cache entries */
28
29 struct mb_cache_entry *mb_cache_entry_alloc(struct mb_cache *, gfp_t);
30 int mb_cache_entry_insert(struct mb_cache_entry *, struct block_device *,
31                           sector_t, unsigned int);
32 void mb_cache_entry_release(struct mb_cache_entry *);
33 void mb_cache_entry_free(struct mb_cache_entry *);
34 struct mb_cache_entry *mb_cache_entry_get(struct mb_cache *,
35                                           struct block_device *,
36                                           sector_t);
37 struct mb_cache_entry *mb_cache_entry_find_first(struct mb_cache *cache,
38                                                  struct block_device *, 
39                                                  unsigned int);
40 struct mb_cache_entry *mb_cache_entry_find_next(struct mb_cache_entry *,
41                                                 struct block_device *, 
42                                                 unsigned int);