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

Subversion Repositories test_project

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 * Basic general purpose allocator for managing special purpose memory
3
 * not managed by the regular kmalloc/kfree interface.
4
 * Uses for this includes on-device special memory, uncached memory
5
 * etc.
6
 *
7
 * This source code is licensed under the GNU General Public License,
8
 * Version 2.  See the file COPYING for more details.
9
 */
10
 
11
 
12
/*
13
 *  General purpose special memory pool descriptor.
14
 */
15
struct gen_pool {
16
        rwlock_t lock;
17
        struct list_head chunks;        /* list of chunks in this pool */
18
        int min_alloc_order;            /* minimum allocation order */
19
};
20
 
21
/*
22
 *  General purpose special memory pool chunk descriptor.
23
 */
24
struct gen_pool_chunk {
25
        spinlock_t lock;
26
        struct list_head next_chunk;    /* next chunk in pool */
27
        unsigned long start_addr;       /* starting address of memory chunk */
28
        unsigned long end_addr;         /* ending address of memory chunk */
29
        unsigned long bits[0];           /* bitmap for allocating memory chunk */
30
};
31
 
32
extern struct gen_pool *gen_pool_create(int, int);
33
extern int gen_pool_add(struct gen_pool *, unsigned long, size_t, int);
34
extern void gen_pool_destroy(struct gen_pool *);
35
extern unsigned long gen_pool_alloc(struct gen_pool *, size_t);
36
extern void gen_pool_free(struct gen_pool *, unsigned long, size_t);

powered by: WebSVN 2.1.0

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