Lines Matching full:cell
49 * ext.data.ptr = the additiona cell head
50 * -> cell.next -> cell.next -> ..
71 struct snd_seq_event_cell *cell; in dump_var_event() local
104 cell = (struct snd_seq_event_cell *)event->data.ext.ptr; in dump_var_event()
105 for (; len > 0 && cell; cell = cell->next) { in dump_var_event()
107 char *curptr = (char *)&cell->event; in dump_var_event()
222 * release this cell, free extended data if available
226 struct snd_seq_event_cell *cell) in free_cell() argument
228 cell->next = pool->free; in free_cell()
229 pool->free = cell; in free_cell()
233 void snd_seq_cell_free(struct snd_seq_event_cell * cell) in snd_seq_cell_free() argument
238 if (snd_BUG_ON(!cell)) in snd_seq_cell_free()
240 pool = cell->pool; in snd_seq_cell_free()
245 free_cell(pool, cell); in snd_seq_cell_free()
246 if (snd_seq_ev_is_variable(&cell->event)) { in snd_seq_cell_free()
247 if (cell->event.data.ext.len & SNDRV_SEQ_EXT_CHAINED) { in snd_seq_cell_free()
249 curp = cell->event.data.ext.ptr; in snd_seq_cell_free()
267 * allocate an event cell.
274 struct snd_seq_event_cell *cell; in snd_seq_cell_alloc() local
314 cell = pool->free; in snd_seq_cell_alloc()
315 if (cell) { in snd_seq_cell_alloc()
317 pool->free = cell->next; in snd_seq_cell_alloc()
323 /* clear cell pointers */ in snd_seq_cell_alloc()
324 cell->next = NULL; in snd_seq_cell_alloc()
328 *cellp = cell; in snd_seq_cell_alloc()
337 * duplicate the event to a cell.
347 struct snd_seq_event_cell *cell; in snd_seq_event_dup() local
361 err = snd_seq_cell_alloc(pool, &cell, nonblock, file, mutexp); in snd_seq_event_dup()
367 memcpy(&cell->ump, event, size); in snd_seq_event_dup()
369 if (size < sizeof(cell->event)) in snd_seq_event_dup()
370 cell->ump.raw.extra = 0; in snd_seq_event_dup()
381 cell->event.data.ext.len = extlen | SNDRV_SEQ_EXT_CHAINED; in snd_seq_event_dup()
382 cell->event.data.ext.ptr = NULL; in snd_seq_event_dup()
396 if (cell->event.data.ext.ptr == NULL) in snd_seq_event_dup()
397 cell->event.data.ext.ptr = tmp; in snd_seq_event_dup()
418 *cellp = cell; in snd_seq_event_dup()
422 snd_seq_cell_free(cell); in snd_seq_event_dup()
439 int cell; in snd_seq_pool_init() local
451 /* add new cells to the free cell list */ in snd_seq_pool_init()
462 for (cell = 0; cell < pool->size; cell++) { in snd_seq_pool_init()
463 cellptr = pool->ptr + cell; in snd_seq_pool_init()