Lines Matching refs:alloc

18 void snd_gf1_mem_lock(struct snd_gf1_mem * alloc, int xup)  in snd_gf1_mem_lock()  argument
21 mutex_lock(&alloc->memory_mutex); in snd_gf1_mem_lock()
23 mutex_unlock(&alloc->memory_mutex); in snd_gf1_mem_lock()
27 static struct snd_gf1_mem_block *snd_gf1_mem_xalloc(struct snd_gf1_mem * alloc, in snd_gf1_mem_xalloc() argument
36 pblock = alloc->first; in snd_gf1_mem_xalloc()
42 if (pblock == alloc->first) in snd_gf1_mem_xalloc()
43 alloc->first = nblock; in snd_gf1_mem_xalloc()
46 mutex_unlock(&alloc->memory_mutex); in snd_gf1_mem_xalloc()
52 if (alloc->last == NULL) { in snd_gf1_mem_xalloc()
54 alloc->first = alloc->last = nblock; in snd_gf1_mem_xalloc()
56 nblock->prev = alloc->last; in snd_gf1_mem_xalloc()
57 alloc->last->next = nblock; in snd_gf1_mem_xalloc()
58 alloc->last = nblock; in snd_gf1_mem_xalloc()
63 int snd_gf1_mem_xfree(struct snd_gf1_mem * alloc, struct snd_gf1_mem_block * block) in snd_gf1_mem_xfree() argument
67 mutex_unlock(&alloc->memory_mutex); in snd_gf1_mem_xfree()
70 if (alloc->first == block) { in snd_gf1_mem_xfree()
71 alloc->first = block->next; in snd_gf1_mem_xfree()
79 if (alloc->last == block) { in snd_gf1_mem_xfree()
80 alloc->last = block->prev; in snd_gf1_mem_xfree()
93 static struct snd_gf1_mem_block *snd_gf1_mem_look(struct snd_gf1_mem * alloc, in snd_gf1_mem_look() argument
98 for (block = alloc->first; block; block = block->next) { in snd_gf1_mem_look()
106 static struct snd_gf1_mem_block *snd_gf1_mem_share(struct snd_gf1_mem * alloc, in snd_gf1_mem_share() argument
114 for (block = alloc->first; block; block = block->next) in snd_gf1_mem_share()
121 static int snd_gf1_mem_find(struct snd_gf1_mem * alloc, in snd_gf1_mem_find() argument
125 struct snd_gf1_bank_info *info = w_16 ? alloc->banks_16 : alloc->banks_8; in snd_gf1_mem_find()
140 for (pblock = alloc->first, idx = 0; pblock; pblock = pblock->next) { in snd_gf1_mem_find()
173 struct snd_gf1_mem_block *snd_gf1_mem_alloc(struct snd_gf1_mem * alloc, int owner, in snd_gf1_mem_alloc() argument
179 snd_gf1_mem_lock(alloc, 0); in snd_gf1_mem_alloc()
181 nblock = snd_gf1_mem_share(alloc, share_id); in snd_gf1_mem_alloc()
189 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_alloc()
194 if (snd_gf1_mem_find(alloc, &block, size, w_16, align) < 0) { in snd_gf1_mem_alloc()
195 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_alloc()
202 nblock = snd_gf1_mem_xalloc(alloc, &block); in snd_gf1_mem_alloc()
203 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_alloc()
207 int snd_gf1_mem_free(struct snd_gf1_mem * alloc, unsigned int address) in snd_gf1_mem_free() argument
212 snd_gf1_mem_lock(alloc, 0); in snd_gf1_mem_free()
213 block = snd_gf1_mem_look(alloc, address); in snd_gf1_mem_free()
215 result = snd_gf1_mem_xfree(alloc, block); in snd_gf1_mem_free()
216 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_free()
219 snd_gf1_mem_lock(alloc, 1); in snd_gf1_mem_free()
225 struct snd_gf1_mem *alloc; in snd_gf1_mem_init() local
228 alloc = &gus->gf1.mem_alloc; in snd_gf1_mem_init()
229 mutex_init(&alloc->memory_mutex); in snd_gf1_mem_init()
230 alloc->first = alloc->last = NULL; in snd_gf1_mem_init()
240 if (snd_gf1_mem_xalloc(alloc, &block) == NULL) in snd_gf1_mem_init()
246 if (snd_gf1_mem_xalloc(alloc, &block) == NULL) in snd_gf1_mem_init()
256 struct snd_gf1_mem *alloc; in snd_gf1_mem_done() local
259 alloc = &gus->gf1.mem_alloc; in snd_gf1_mem_done()
260 block = alloc->first; in snd_gf1_mem_done()
263 snd_gf1_mem_xfree(alloc, block); in snd_gf1_mem_done()
274 struct snd_gf1_mem *alloc; in snd_gf1_mem_info_read() local
280 alloc = &gus->gf1.mem_alloc; in snd_gf1_mem_info_read()
281 mutex_lock(&alloc->memory_mutex); in snd_gf1_mem_info_read()
284 …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()
288 …snd_iprintf(buffer, "0x%06x (%04ik)%s", alloc->banks_16[i].address, alloc->banks_16[i].size >> 10,… in snd_gf1_mem_info_read()
289 total += alloc->banks_16[i].size; in snd_gf1_mem_info_read()
293 for (block = alloc->first, i = 0; block; block = block->next, i++) { in snd_gf1_mem_info_read()
325 mutex_unlock(&alloc->memory_mutex); in snd_gf1_mem_info_read()