1
2 #ifndef __SOUND_UTIL_MEM_H
3 #define __SOUND_UTIL_MEM_H
4
5 #include <linux/mutex.h>
6
7
8
9
10
11
12
13
14
15 struct snd_util_memblk {
16 unsigned int size;
17 unsigned int offset;
18 struct list_head list;
19 };
20
21 #define snd_util_memblk_argptr(blk) (void*)((char*)(blk) + sizeof(struct snd_util_memblk))
22
23
24
25
26 struct snd_util_memhdr {
27 unsigned int size;
28 struct list_head block;
29 int nblocks;
30 unsigned int used;
31 int block_extra_size;
32 struct mutex block_mutex;
33 };
34
35
36
37
38 struct snd_util_memhdr *snd_util_memhdr_new(int memsize);
39 void snd_util_memhdr_free(struct snd_util_memhdr *hdr);
40 struct snd_util_memblk *snd_util_mem_alloc(struct snd_util_memhdr *hdr, int size);
41 int snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk);
42 int snd_util_mem_avail(struct snd_util_memhdr *hdr);
43
44
45 struct snd_util_memblk *__snd_util_mem_alloc(struct snd_util_memhdr *hdr, int size);
46 void __snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk);
47 struct snd_util_memblk *__snd_util_memblk_new(struct snd_util_memhdr *hdr,
48 unsigned int units,
49 struct list_head *prev);
50
51 #endif