• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/core/seq/

Lines Matching defs:cell

147 /* enqueue cell to prioq */
149 struct snd_seq_event_cell * cell)
156 if (snd_BUG_ON(!f || !cell))
160 prior = (cell->event.flags & SNDRV_SEQ_PRIORITY_MASK);
168 if (compare_timestamp(&cell->event, &f->tail->event)) {
169 /* add new cell to tail of the fifo */
170 f->tail->next = cell;
171 f->tail = cell;
172 cell->next = NULL;
178 /* traverse list of elements to find the place where the new cell is
181 prev = NULL; /* previous cell */
187 int rel = compare_timestamp_rel(&cell->event, &cur->event);
189 /* new cell has earlier schedule time, */
194 /* new cell has equal or larger schedule time, */
195 /* move cursor to next cell */
207 prev->next = cell;
208 cell->next = cur;
210 if (f->head == cur) /* this is the first cell, set head to it */
211 f->head = cell;
213 f->tail = cell;
219 /* dequeue cell from prioq */
222 struct snd_seq_event_cell *cell;
231 cell = f->head;
232 if (cell) {
233 f->head = cell->next;
236 if (f->tail == cell)
239 cell->next = NULL;
244 return cell;
258 /* peek at cell at the head of the prioq */
269 static inline int prioq_match(struct snd_seq_event_cell *cell,
272 if (cell->event.source.client == client ||
273 cell->event.dest.client == client)
277 switch (cell->event.flags & SNDRV_SEQ_TIME_STAMP_MASK) {
279 if (cell->event.time.tick)
283 if (cell->event.time.time.tv_sec ||
284 cell->event.time.time.tv_nsec)
294 register struct snd_seq_event_cell *cell, *next;
301 cell = f->head;
302 while (cell) {
303 next = cell->next;
304 if (prioq_match(cell, client, timestamp)) {
305 /* remove cell from prioq */
306 if (cell == f->head) {
307 f->head = cell->next;
309 prev->next = cell->next;
311 if (cell == f->tail)
312 f->tail = cell->next;
314 /* add cell to free list */
315 cell->next = NULL;
317 freefirst = cell;
319 freeprev->next = cell;
321 freeprev = cell;
323 prev = cell;
325 cell = next;
396 struct snd_seq_event_cell *cell, *next;
403 cell = f->head;
405 while (cell) {
406 next = cell->next;
407 if (cell->event.source.client == client &&
408 prioq_remove_match(info, &cell->event)) {
410 /* remove cell from prioq */
411 if (cell == f->head) {
412 f->head = cell->next;
414 prev->next = cell->next;
417 if (cell == f->tail)
418 f->tail = cell->next;
421 /* add cell to free list */
422 cell->next = NULL;
424 freefirst = cell;
426 freeprev->next = cell;
429 freeprev = cell;
431 prev = cell;
433 cell = next;