OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [linux/] [mbcache.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
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
 
10
struct 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
 
24
struct mb_cache_op {
25
        int (*free)(struct mb_cache_entry *, gfp_t);
26
};
27
 
28
/* Functions on caches */
29
 
30
struct mb_cache * mb_cache_create(const char *, struct mb_cache_op *, size_t,
31
                                  int, int);
32
void mb_cache_shrink(struct block_device *);
33
void mb_cache_destroy(struct mb_cache *);
34
 
35
/* Functions on cache entries */
36
 
37
struct mb_cache_entry *mb_cache_entry_alloc(struct mb_cache *);
38
int mb_cache_entry_insert(struct mb_cache_entry *, struct block_device *,
39
                          sector_t, unsigned int[]);
40
void mb_cache_entry_release(struct mb_cache_entry *);
41
void mb_cache_entry_free(struct mb_cache_entry *);
42
struct 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)
46
struct mb_cache_entry *mb_cache_entry_find_first(struct mb_cache *cache, int,
47
                                                 struct block_device *,
48
                                                 unsigned int);
49
struct mb_cache_entry *mb_cache_entry_find_next(struct mb_cache_entry *, int,
50
                                                struct block_device *,
51
                                                unsigned int);
52
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.