Lines Matching refs:alloc

33 void snd_gf1_mem_lock(struct snd_gf1_mem * alloc, int xup)  in snd_gf1_mem_lock()  argument
36 mutex_lock(&alloc->memory_mutex); in snd_gf1_mem_lock()
38 mutex_unlock(&alloc->memory_mutex); in snd_gf1_mem_lock()
42 static struct snd_gf1_mem_block *snd_gf1_mem_xalloc(struct snd_gf1_mem * alloc, in snd_gf1_mem_xalloc() argument
51 pblock = alloc->first; in snd_gf1_mem_xalloc()
57 if (pblock == alloc->first) in snd_gf1_mem_xalloc()
58 alloc->first = nblock; in snd_gf1_mem_xalloc()
61 mutex_unlock(&alloc->memory_mutex); in snd_gf1_mem_xalloc()
67 if (alloc->last == NULL) { in snd_gf1_mem_xalloc()
69 alloc->first = alloc->last = nblock; in snd_gf1_mem_xalloc()
71 nblock->prev = alloc->last; in snd_gf1_mem_xalloc()
72 alloc->last->next = nblock; in snd_gf1_mem_xalloc()
73 alloc->last = nblock; in snd_gf1_mem_xalloc()
78 int snd_gf1_mem_xfree(struct snd_gf1_mem * alloc, struct snd_gf1_mem_block * block) in snd_gf1_mem_xfree() argument
82 mutex_unlock(&alloc->memory_mutex); in snd_gf1_mem_xfree()
85 if (alloc->first == block) { in snd_gf1_mem_xfree()
86 alloc->first = block->next; in snd_gf1_mem_xfree()
94 if (alloc->last == block) { in snd_gf1_mem_xfree()
95 alloc->last = block->prev; in snd_gf1_mem_xfree()
108 static struct snd_gf1_mem_block *snd_gf1_mem_look(struct snd_gf1_mem * alloc, in snd_gf1_mem_look() argument
113 for (block = alloc->first; block; block = block->next) { in snd_gf1_mem_look()
121 static struct snd_gf1_mem_block *snd_gf1_mem_share(struct snd_gf1_mem * alloc, in snd_gf1_mem_share() argument
129 for (block = alloc->first; block; block = block->next) in snd_gf1_mem_share()
136 static int snd_gf1_mem_find(struct snd_gf1_mem * alloc, in snd_gf1_mem_find() argument
140 struct snd_gf1_bank_info *info = w_16 ? alloc->banks_16 : alloc->banks_8; in snd_gf1_mem_find()
155 for (pblock = alloc->first, idx = 0; pblock; pblock = pblock->next) { in snd_gf1_mem_find()
188 struct snd_gf1_mem_block *snd_gf1_mem_alloc(struct snd_gf1_mem * alloc, int owner, in snd_gf1_mem_alloc() argument
194 snd_gf1_mem_lock(alloc, 0); in snd_gf1_mem_alloc()
196 nblock = snd_gf1_mem_share(alloc, share_id); in snd_gf1_mem_alloc()
204 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_alloc()
209 if (snd_gf1_mem_find(alloc, &block, size, w_16, align) < 0) { in snd_gf1_mem_alloc()
210 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_alloc()
217 nblock = snd_gf1_mem_xalloc(alloc, &block); in snd_gf1_mem_alloc()
218 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_alloc()
222 int snd_gf1_mem_free(struct snd_gf1_mem * alloc, unsigned int address) in snd_gf1_mem_free() argument
227 snd_gf1_mem_lock(alloc, 0); in snd_gf1_mem_free()
228 if ((block = snd_gf1_mem_look(alloc, address)) != NULL) { in snd_gf1_mem_free()
229 result = snd_gf1_mem_xfree(alloc, block); in snd_gf1_mem_free()
230 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_free()
233 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_free()
239 struct snd_gf1_mem *alloc; in snd_gf1_mem_init() local
245 alloc = &gus->gf1.mem_alloc; in snd_gf1_mem_init()
246 mutex_init(&alloc->memory_mutex); in snd_gf1_mem_init()
247 alloc->first = alloc->last = NULL; in snd_gf1_mem_init()
257 if (snd_gf1_mem_xalloc(alloc, &block) == NULL) in snd_gf1_mem_init()
263 if (snd_gf1_mem_xalloc(alloc, &block) == NULL) in snd_gf1_mem_init()
274 struct snd_gf1_mem *alloc; in snd_gf1_mem_done() local
277 alloc = &gus->gf1.mem_alloc; in snd_gf1_mem_done()
278 block = alloc->first; in snd_gf1_mem_done()
281 snd_gf1_mem_xfree(alloc, block); in snd_gf1_mem_done()
292 struct snd_gf1_mem *alloc; in snd_gf1_mem_info_read() local
298 alloc = &gus->gf1.mem_alloc; in snd_gf1_mem_info_read()
299 mutex_lock(&alloc->memory_mutex); in snd_gf1_mem_info_read()
302 …snd_iprintf(buffer, "0x%06x (%04ik)%s", alloc->banks_8[i].address, alloc->banks_8[i].size >> 10, i… in snd_gf1_mem_info_read()
306 …snd_iprintf(buffer, "0x%06x (%04ik)%s", alloc->banks_16[i].address, alloc->banks_16[i].size >> 10,… in snd_gf1_mem_info_read()
307 total += alloc->banks_16[i].size; in snd_gf1_mem_info_read()
311 for (block = alloc->first, i = 0; block; block = block->next, i++) { in snd_gf1_mem_info_read()
343 mutex_unlock(&alloc->memory_mutex); in snd_gf1_mem_info_read()