Lines Matching refs:alloc

18 void snd_gf1_mem_lock(struct snd_gf1_mem * alloc, int xup)
21 mutex_lock(&alloc->memory_mutex);
23 mutex_unlock(&alloc->memory_mutex);
28 snd_gf1_mem_xalloc(struct snd_gf1_mem *alloc, struct snd_gf1_mem_block *block,
43 pblock = alloc->first;
49 if (pblock == alloc->first)
50 alloc->first = nblock;
53 mutex_unlock(&alloc->memory_mutex);
59 if (alloc->last == NULL) {
61 alloc->first = alloc->last = nblock;
63 nblock->prev = alloc->last;
64 alloc->last->next = nblock;
65 alloc->last = nblock;
70 int snd_gf1_mem_xfree(struct snd_gf1_mem * alloc, struct snd_gf1_mem_block * block)
74 mutex_unlock(&alloc->memory_mutex);
77 if (alloc->first == block) {
78 alloc->first = block->next;
86 if (alloc->last == block) {
87 alloc->last = block->prev;
100 static struct snd_gf1_mem_block *snd_gf1_mem_look(struct snd_gf1_mem * alloc,
105 for (block = alloc->first; block; block = block->next) {
113 static struct snd_gf1_mem_block *snd_gf1_mem_share(struct snd_gf1_mem * alloc,
121 for (block = alloc->first; block; block = block->next)
128 static int snd_gf1_mem_find(struct snd_gf1_mem * alloc,
132 struct snd_gf1_bank_info *info = w_16 ? alloc->banks_16 : alloc->banks_8;
147 for (pblock = alloc->first, idx = 0; pblock; pblock = pblock->next) {
180 struct snd_gf1_mem_block *snd_gf1_mem_alloc(struct snd_gf1_mem * alloc, int owner,
186 snd_gf1_mem_lock(alloc, 0);
188 nblock = snd_gf1_mem_share(alloc, share_id);
196 snd_gf1_mem_lock(alloc, 1);
201 if (snd_gf1_mem_find(alloc, &block, size, w_16, align) < 0) {
202 snd_gf1_mem_lock(alloc, 1);
208 nblock = snd_gf1_mem_xalloc(alloc, &block, name);
209 snd_gf1_mem_lock(alloc, 1);
213 int snd_gf1_mem_free(struct snd_gf1_mem * alloc, unsigned int address)
218 snd_gf1_mem_lock(alloc, 0);
219 block = snd_gf1_mem_look(alloc, address);
221 result = snd_gf1_mem_xfree(alloc, block);
222 snd_gf1_mem_lock(alloc, 1);
225 snd_gf1_mem_lock(alloc, 1);
231 struct snd_gf1_mem *alloc;
234 alloc = &gus->gf1.mem_alloc;
235 mutex_init(&alloc->memory_mutex);
236 alloc->first = alloc->last = NULL;
245 if (!snd_gf1_mem_xalloc(alloc, &block, "InterWave LFOs"))
250 if (!snd_gf1_mem_xalloc(alloc, &block, "Voice default (NULL's)"))
260 struct snd_gf1_mem *alloc;
263 alloc = &gus->gf1.mem_alloc;
264 block = alloc->first;
267 snd_gf1_mem_xfree(alloc, block);
278 struct snd_gf1_mem *alloc;
284 alloc = &gus->gf1.mem_alloc;
285 mutex_lock(&alloc->memory_mutex);
288 snd_iprintf(buffer, "0x%06x (%04ik)%s", alloc->banks_8[i].address, alloc->banks_8[i].size >> 10, i + 1 < 4 ? "," : "");
292 snd_iprintf(buffer, "0x%06x (%04ik)%s", alloc->banks_16[i].address, alloc->banks_16[i].size >> 10, i + 1 < 4 ? "," : "");
293 total += alloc->banks_16[i].size;
297 for (block = alloc->first, i = 0; block; block = block->next, i++) {
329 mutex_unlock(&alloc->memory_mutex);