Lines Matching refs:q

35 	struct seq_oss_readq *q;  in snd_seq_oss_readq_new()  local
37 q = kzalloc(sizeof(*q), GFP_KERNEL); in snd_seq_oss_readq_new()
38 if (!q) in snd_seq_oss_readq_new()
41 q->q = kcalloc(maxlen, sizeof(union evrec), GFP_KERNEL); in snd_seq_oss_readq_new()
42 if (!q->q) { in snd_seq_oss_readq_new()
43 kfree(q); in snd_seq_oss_readq_new()
47 q->maxlen = maxlen; in snd_seq_oss_readq_new()
48 q->qlen = 0; in snd_seq_oss_readq_new()
49 q->head = q->tail = 0; in snd_seq_oss_readq_new()
50 init_waitqueue_head(&q->midi_sleep); in snd_seq_oss_readq_new()
51 spin_lock_init(&q->lock); in snd_seq_oss_readq_new()
52 q->pre_event_timeout = SNDRV_SEQ_OSS_MAX_TIMEOUT; in snd_seq_oss_readq_new()
53 q->input_time = (unsigned long)-1; in snd_seq_oss_readq_new()
55 return q; in snd_seq_oss_readq_new()
62 snd_seq_oss_readq_delete(struct seq_oss_readq *q) in snd_seq_oss_readq_delete() argument
64 if (q) { in snd_seq_oss_readq_delete()
65 kfree(q->q); in snd_seq_oss_readq_delete()
66 kfree(q); in snd_seq_oss_readq_delete()
74 snd_seq_oss_readq_clear(struct seq_oss_readq *q) in snd_seq_oss_readq_clear() argument
76 if (q->qlen) { in snd_seq_oss_readq_clear()
77 q->qlen = 0; in snd_seq_oss_readq_clear()
78 q->head = q->tail = 0; in snd_seq_oss_readq_clear()
81 wake_up(&q->midi_sleep); in snd_seq_oss_readq_clear()
82 q->input_time = (unsigned long)-1; in snd_seq_oss_readq_clear()
89 snd_seq_oss_readq_puts(struct seq_oss_readq *q, int dev, unsigned char *data, int len) in snd_seq_oss_readq_puts() argument
100 result = snd_seq_oss_readq_put_event(q, &rec); in snd_seq_oss_readq_puts()
123 int snd_seq_oss_readq_sysex(struct seq_oss_readq *q, int dev, in snd_seq_oss_readq_sysex() argument
127 .readq = q, in snd_seq_oss_readq_sysex()
141 snd_seq_oss_readq_put_event(struct seq_oss_readq *q, union evrec *ev) in snd_seq_oss_readq_put_event() argument
145 spin_lock_irqsave(&q->lock, flags); in snd_seq_oss_readq_put_event()
146 if (q->qlen >= q->maxlen - 1) { in snd_seq_oss_readq_put_event()
147 spin_unlock_irqrestore(&q->lock, flags); in snd_seq_oss_readq_put_event()
151 memcpy(&q->q[q->tail], ev, sizeof(*ev)); in snd_seq_oss_readq_put_event()
152 q->tail = (q->tail + 1) % q->maxlen; in snd_seq_oss_readq_put_event()
153 q->qlen++; in snd_seq_oss_readq_put_event()
156 wake_up(&q->midi_sleep); in snd_seq_oss_readq_put_event()
158 spin_unlock_irqrestore(&q->lock, flags); in snd_seq_oss_readq_put_event()
169 snd_seq_oss_readq_pick(struct seq_oss_readq *q, union evrec *rec) in snd_seq_oss_readq_pick() argument
171 if (q->qlen == 0) in snd_seq_oss_readq_pick()
173 memcpy(rec, &q->q[q->head], sizeof(*rec)); in snd_seq_oss_readq_pick()
181 snd_seq_oss_readq_wait(struct seq_oss_readq *q) in snd_seq_oss_readq_wait() argument
183 wait_event_interruptible_timeout(q->midi_sleep, in snd_seq_oss_readq_wait()
184 (q->qlen > 0 || q->head == q->tail), in snd_seq_oss_readq_wait()
185 q->pre_event_timeout); in snd_seq_oss_readq_wait()
193 snd_seq_oss_readq_free(struct seq_oss_readq *q) in snd_seq_oss_readq_free() argument
195 if (q->qlen > 0) { in snd_seq_oss_readq_free()
196 q->head = (q->head + 1) % q->maxlen; in snd_seq_oss_readq_free()
197 q->qlen--; in snd_seq_oss_readq_free()
206 snd_seq_oss_readq_poll(struct seq_oss_readq *q, struct file *file, poll_table *wait) in snd_seq_oss_readq_poll() argument
208 poll_wait(file, &q->midi_sleep, wait); in snd_seq_oss_readq_poll()
209 return q->qlen; in snd_seq_oss_readq_poll()
216 snd_seq_oss_readq_put_timestamp(struct seq_oss_readq *q, unsigned long curt, int seq_mode) in snd_seq_oss_readq_put_timestamp() argument
218 if (curt != q->input_time) { in snd_seq_oss_readq_put_timestamp()
224 snd_seq_oss_readq_put_event(q, &rec); in snd_seq_oss_readq_put_timestamp()
230 snd_seq_oss_readq_put_event(q, &rec); in snd_seq_oss_readq_put_timestamp()
233 q->input_time = curt; in snd_seq_oss_readq_put_timestamp()
244 snd_seq_oss_readq_info_read(struct seq_oss_readq *q, struct snd_info_buffer *buf) in snd_seq_oss_readq_info_read() argument
247 (waitqueue_active(&q->midi_sleep) ? "sleeping":"running"), in snd_seq_oss_readq_info_read()
248 q->qlen, q->input_time); in snd_seq_oss_readq_info_read()