source: svn/trunk/newcon3bcm2_21bu/toolchain/mipsel-linux-uclibc/include/linux/mbcache.h @ 48

Last change on this file since 48 was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 1.5 KB
Line 
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 *, int);
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 mb_cache *, 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 *);
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
Note: See TracBrowser for help on using the repository browser.