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);
27 static struct snd_gf1_mem_block *snd_gf1_mem_xalloc(struct snd_gf1_mem * alloc,
36 pblock = alloc->first;
42 if (pblock == alloc->first)
43 alloc->first = nblock;
46 mutex_unlock(&alloc->memory_mutex);
52 if (alloc->last == NULL) {
54 alloc->first = alloc->last = nblock;
56 nblock->prev = alloc->last;
57 alloc->last->next = nblock;
58 alloc->last = nblock;
63 int snd_gf1_mem_xfree(struct snd_gf1_mem * alloc, struct snd_gf1_mem_block * block)
67 mutex_unlock(&alloc->memory_mutex);
70 if (alloc->first == block) {
71 alloc->first = block->next;
79 if (alloc->last == block) {
80 alloc->last = block->prev;
93 static struct snd_gf1_mem_block *snd_gf1_mem_look(struct snd_gf1_mem * alloc,
98 for (block = alloc->first; block; block = block->next) {
106 static struct snd_gf1_mem_block *snd_gf1_mem_share(struct snd_gf1_mem * alloc,
114 for (block = alloc->first; block; block = block->next)
121 static int snd_gf1_mem_find(struct snd_gf1_mem * alloc,
125 struct snd_gf1_bank_info *info = w_16 ? alloc->banks_16 : alloc->banks_8;
140 for (pblock = alloc->first, idx = 0; pblock; pblock = pblock->next) {
173 struct snd_gf1_mem_block *snd_gf1_mem_alloc(struct snd_gf1_mem * alloc, int owner,
179 snd_gf1_mem_lock(alloc, 0);
181 nblock = snd_gf1_mem_share(alloc, share_id);
189 snd_gf1_mem_lock(alloc, 1);
194 if (snd_gf1_mem_find(alloc, &block, size, w_16, align) < 0) {
195 snd_gf1_mem_lock(alloc, 1);
202 nblock = snd_gf1_mem_xalloc(alloc, &block);
203 snd_gf1_mem_lock(alloc, 1);
207 int snd_gf1_mem_free(struct snd_gf1_mem * alloc, unsigned int address)
212 snd_gf1_mem_lock(alloc, 0);
213 if ((block = snd_gf1_mem_look(alloc, address)) != NULL) {
214 result = snd_gf1_mem_xfree(alloc, block);
215 snd_gf1_mem_lock(alloc, 1);
218 snd_gf1_mem_lock(alloc, 1);
224 struct snd_gf1_mem *alloc;
227 alloc = &gus->gf1.mem_alloc;
228 mutex_init(&alloc->memory_mutex);
229 alloc->first = alloc->last = NULL;
239 if (snd_gf1_mem_xalloc(alloc, &block) == NULL)
245 if (snd_gf1_mem_xalloc(alloc, &block) == NULL)
255 struct snd_gf1_mem *alloc;
258 alloc = &gus->gf1.mem_alloc;
259 block = alloc->first;
262 snd_gf1_mem_xfree(alloc, block);
273 struct snd_gf1_mem *alloc;
279 alloc = &gus->gf1.mem_alloc;
280 mutex_lock(&alloc->memory_mutex);
283 snd_iprintf(buffer, "0x%06x (%04ik)%s", alloc->banks_8[i].address, alloc->banks_8[i].size >> 10, i + 1 < 4 ? "," : "");
287 snd_iprintf(buffer, "0x%06x (%04ik)%s", alloc->banks_16[i].address, alloc->banks_16[i].size >> 10, i + 1 < 4 ? "," : "");
288 total += alloc->banks_16[i].size;
292 for (block = alloc->first, i = 0; block; block = block->next, i++) {
324 mutex_unlock(&alloc->memory_mutex);