Lines Matching refs:event
70 static int get_var_len(const struct snd_seq_event *event) in get_var_len() argument
72 if ((event->flags & SNDRV_SEQ_EVENT_LENGTH_MASK) != SNDRV_SEQ_EVENT_LENGTH_VARIABLE) in get_var_len()
75 return event->data.ext.len & ~SNDRV_SEQ_EXT_MASK; in get_var_len()
78 int snd_seq_dump_var_event(const struct snd_seq_event *event, in snd_seq_dump_var_event() argument
84 if ((len = get_var_len(event)) <= 0) in snd_seq_dump_var_event()
87 if (event->data.ext.len & SNDRV_SEQ_EXT_USRPTR) { in snd_seq_dump_var_event()
89 char __user *curptr = (char __user *)event->data.ext.ptr; in snd_seq_dump_var_event()
103 } if (! (event->data.ext.len & SNDRV_SEQ_EXT_CHAINED)) { in snd_seq_dump_var_event()
104 return func(private_data, event->data.ext.ptr, len); in snd_seq_dump_var_event()
107 cell = (struct snd_seq_event_cell *)event->data.ext.ptr; in snd_seq_dump_var_event()
112 err = func(private_data, &cell->event, size); in snd_seq_dump_var_event()
143 int snd_seq_expand_var_event(const struct snd_seq_event *event, int count, char *buf, in snd_seq_expand_var_event() argument
149 if ((len = get_var_len(event)) < 0) in snd_seq_expand_var_event()
157 if (event->data.ext.len & SNDRV_SEQ_EXT_USRPTR) { in snd_seq_expand_var_event()
160 if (copy_from_user(buf, (void __user *)event->data.ext.ptr, len)) in snd_seq_expand_var_event()
164 err = snd_seq_dump_var_event(event, in snd_seq_expand_var_event()
198 if (snd_seq_ev_is_variable(&cell->event)) { in snd_seq_cell_free()
199 if (cell->event.data.ext.len & SNDRV_SEQ_EXT_CHAINED) { in snd_seq_cell_free()
201 curp = cell->event.data.ext.ptr; in snd_seq_cell_free()
288 int snd_seq_event_dup(struct snd_seq_pool *pool, struct snd_seq_event *event, in snd_seq_event_dup() argument
300 if (snd_seq_ev_is_variable(event)) { in snd_seq_event_dup()
301 extlen = event->data.ext.len & ~SNDRV_SEQ_EXT_MASK; in snd_seq_event_dup()
312 cell->event = *event; in snd_seq_event_dup()
315 if (snd_seq_ev_is_variable(event)) { in snd_seq_event_dup()
317 int is_chained = event->data.ext.len & SNDRV_SEQ_EXT_CHAINED; in snd_seq_event_dup()
318 int is_usrptr = event->data.ext.len & SNDRV_SEQ_EXT_USRPTR; in snd_seq_event_dup()
322 cell->event.data.ext.len = extlen | SNDRV_SEQ_EXT_CHAINED; in snd_seq_event_dup()
323 cell->event.data.ext.ptr = NULL; in snd_seq_event_dup()
325 src = (struct snd_seq_event_cell *)event->data.ext.ptr; in snd_seq_event_dup()
326 buf = (char *)event->data.ext.ptr; in snd_seq_event_dup()
336 if (cell->event.data.ext.ptr == NULL) in snd_seq_event_dup()
337 cell->event.data.ext.ptr = tmp; in snd_seq_event_dup()
343 tmp->event = src->event; in snd_seq_event_dup()
346 if (copy_from_user(&tmp->event, (char __user *)buf, size)) { in snd_seq_event_dup()
351 memcpy(&tmp->event, buf, size); in snd_seq_event_dup()