aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/dev_snd_seq.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sys/linux/dev_snd_seq.txt')
-rw-r--r--sys/linux/dev_snd_seq.txt277
1 files changed, 277 insertions, 0 deletions
diff --git a/sys/linux/dev_snd_seq.txt b/sys/linux/dev_snd_seq.txt
new file mode 100644
index 000000000..5a918db50
--- /dev/null
+++ b/sys/linux/dev_snd_seq.txt
@@ -0,0 +1,277 @@
+# Copyright 2015 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <sound/asound.h>
+include <sound/asequencer.h>
+
+resource fd_sndseq[fd]
+
+syz_open_dev$sndseq(dev ptr[in, string["/dev/snd/seq"]], id const[0], flags flags[open_flags]) fd_sndseq
+write$sndseq(fd fd_sndseq, data ptr[in, array[snd_seq_event]], len bytesize[data])
+
+ioctl$SNDRV_SEQ_IOCTL_PVERSION(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_PVERSION], arg ptr[out, int32])
+ioctl$SNDRV_SEQ_IOCTL_CLIENT_ID(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_CLIENT_ID], arg ptr[out, int32])
+
+ioctl$SNDRV_SEQ_IOCTL_SYSTEM_INFO(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_SYSTEM_INFO], arg ptr[in, snd_seq_system_info])
+ioctl$SNDRV_SEQ_IOCTL_RUNNING_MODE(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_RUNNING_MODE], arg ptr[in, snd_seq_running_info])
+ioctl$SNDRV_SEQ_IOCTL_GET_CLIENT_INFO(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_CLIENT_INFO], arg ptr[out, snd_seq_client_info])
+ioctl$SNDRV_SEQ_IOCTL_SET_CLIENT_INFO(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_SET_CLIENT_INFO], arg ptr[in, snd_seq_client_info])
+ioctl$SNDRV_SEQ_IOCTL_CREATE_PORT(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_CREATE_PORT], arg ptr[in, snd_seq_port_info])
+ioctl$SNDRV_SEQ_IOCTL_DELETE_PORT(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_DELETE_PORT], arg ptr[in, snd_seq_port_info])
+ioctl$SNDRV_SEQ_IOCTL_GET_PORT_INFO(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_PORT_INFO], arg ptr[out, snd_seq_port_info])
+ioctl$SNDRV_SEQ_IOCTL_SET_PORT_INFO(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_SET_PORT_INFO], arg ptr[in, snd_seq_port_info])
+ioctl$SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT], arg ptr[in, snd_seq_port_subscribe])
+ioctl$SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT], arg ptr[in, snd_seq_port_subscribe])
+ioctl$SNDRV_SEQ_IOCTL_CREATE_QUEUE(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_CREATE_QUEUE], arg ptr[in, snd_seq_queue_info])
+ioctl$SNDRV_SEQ_IOCTL_DELETE_QUEUE(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_DELETE_QUEUE], arg ptr[in, snd_seq_queue_info])
+ioctl$SNDRV_SEQ_IOCTL_GET_QUEUE_INFO(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_QUEUE_INFO], arg ptr[in, snd_seq_queue_info])
+ioctl$SNDRV_SEQ_IOCTL_SET_QUEUE_INFO(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_SET_QUEUE_INFO], arg ptr[in, snd_seq_queue_info])
+ioctl$SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE], arg ptr[in, snd_seq_queue_info])
+ioctl$SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS], arg ptr[in, snd_seq_queue_status])
+ioctl$SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO], arg ptr[out, snd_seq_queue_status])
+ioctl$SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO], arg ptr[in, snd_seq_queue_status])
+ioctl$SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER], arg ptr[in, snd_seq_queue_timer])
+ioctl$SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER], arg ptr[in, snd_seq_queue_timer])
+ioctl$SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT], arg ptr[in, snd_seq_queue_client])
+ioctl$SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT], arg ptr[in, snd_seq_queue_client])
+ioctl$SNDRV_SEQ_IOCTL_GET_CLIENT_POOL(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_CLIENT_POOL], arg ptr[in, snd_seq_client_pool])
+ioctl$SNDRV_SEQ_IOCTL_SET_CLIENT_POOL(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_SET_CLIENT_POOL], arg ptr[in, snd_seq_client_pool])
+ioctl$SNDRV_SEQ_IOCTL_REMOVE_EVENTS(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_REMOVE_EVENTS], arg ptr[in, snd_seq_remove_events])
+ioctl$SNDRV_SEQ_IOCTL_QUERY_SUBS(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_QUERY_SUBS], arg ptr[in, snd_seq_query_subs])
+ioctl$SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION], arg ptr[in, snd_seq_port_subscribe])
+ioctl$SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT], arg ptr[in, snd_seq_client_info])
+ioctl$SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT(fd fd_sndseq, cmd const[SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT], arg ptr[in, snd_seq_port_info])
+
+snd_seq_client_type = NO_CLIENT, USER_CLIENT, KERNEL_CLIENT
+snd_seq_filter = SNDRV_SEQ_FILTER_BROADCAST, SNDRV_SEQ_FILTER_MULTICAST, SNDRV_SEQ_FILTER_BOUNCE, SNDRV_SEQ_FILTER_USE_EVENT
+snd_seq_port_cap = SNDRV_SEQ_PORT_CAP_READ, SNDRV_SEQ_PORT_CAP_WRITE, SNDRV_SEQ_PORT_CAP_SYNC_READ, SNDRV_SEQ_PORT_CAP_SYNC_WRITE, SNDRV_SEQ_PORT_CAP_DUPLEX, SNDRV_SEQ_PORT_CAP_SUBS_READ, SNDRV_SEQ_PORT_CAP_SUBS_WRITE, SNDRV_SEQ_PORT_CAP_NO_EXPORT
+snd_seq_port_type = SNDRV_SEQ_PORT_TYPE_SPECIFIC, SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC, SNDRV_SEQ_PORT_TYPE_MIDI_GM, SNDRV_SEQ_PORT_TYPE_MIDI_GS, SNDRV_SEQ_PORT_TYPE_MIDI_XG, SNDRV_SEQ_PORT_TYPE_MIDI_MT32, SNDRV_SEQ_PORT_TYPE_MIDI_GM2, SNDRV_SEQ_PORT_TYPE_SYNTH, SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE, SNDRV_SEQ_PORT_TYPE_SAMPLE, SNDRV_SEQ_PORT_TYPE_HARDWARE, SNDRV_SEQ_PORT_TYPE_SOFTWARE, SNDRV_SEQ_PORT_TYPE_SYNTHESIZER, SNDRV_SEQ_PORT_TYPE_PORT, SNDRV_SEQ_PORT_TYPE_APPLICATION
+snd_seq_port_flags = SNDRV_SEQ_PORT_FLG_GIVEN_PORT, SNDRV_SEQ_PORT_FLG_TIMESTAMP, SNDRV_SEQ_PORT_FLG_TIME_REAL
+snd_seq_sub_flags = SNDRV_SEQ_PORT_SUBS_EXCLUSIVE, SNDRV_SEQ_PORT_SUBS_TIMESTAMP, SNDRV_SEQ_PORT_SUBS_TIME_REAL
+snd_seq_timer_type = SNDRV_SEQ_TIMER_ALSA, SNDRV_SEQ_TIMER_MIDI_CLOCK, SNDRV_SEQ_TIMER_MIDI_TICK
+snd_seq_remove_mode = SNDRV_SEQ_REMOVE_INPUT, SNDRV_SEQ_REMOVE_OUTPUT, SNDRV_SEQ_REMOVE_DEST, SNDRV_SEQ_REMOVE_DEST_CHANNEL, SNDRV_SEQ_REMOVE_TIME_BEFORE, SNDRV_SEQ_REMOVE_TIME_AFTER, SNDRV_SEQ_REMOVE_TIME_TICK, SNDRV_SEQ_REMOVE_EVENT_TYPE, SNDRV_SEQ_REMOVE_IGNORE_OFF, SNDRV_SEQ_REMOVE_TAG_MATCH
+snd_timer_class = SNDRV_TIMER_CLASS_NONE, SNDRV_TIMER_CLASS_SLAVE, SNDRV_TIMER_CLASS_GLOBAL, SNDRV_TIMER_CLASS_CARD, SNDRV_TIMER_CLASS_PCM
+snd_timer_sclass = SNDRV_TIMER_SCLASS_NONE, SNDRV_TIMER_SCLASS_APPLICATION, SNDRV_TIMER_SCLASS_SEQUENCER, SNDRV_TIMER_SCLASS_OSS_SEQUENCER
+snd_timer_dev = SNDRV_TIMER_GLOBAL_SYSTEM, SNDRV_TIMER_GLOBAL_RTC, SNDRV_TIMER_GLOBAL_HPET, SNDRV_TIMER_GLOBAL_HRTIMER
+snd_seq_subs_type = SNDRV_SEQ_QUERY_SUBS_READ, SNDRV_SEQ_QUERY_SUBS_WRITE
+
+snd_seq_client_name = "client0", "client1"
+snd_seq_port_name = "port0", "port1"
+snd_seq_queue_name = "queue0", "queue1"
+
+snd_seq_system_info {
+ queues int32
+ clients int32
+ ports int32
+ channel int32
+ nclient int32
+ nqueue int32
+ pad array[const[0, int8], 24]
+}
+
+snd_seq_running_info {
+ client int8
+ bigend int8
+ cpumode int8
+ pad1 const[0, int8]
+ pad2 array[const[0, int8], 12]
+}
+
+snd_seq_client_info {
+ client int32
+ type flags[snd_seq_client_type, int32]
+ name string[snd_seq_client_name, 64]
+ filter flags[snd_seq_filter, int32]
+ mfilt array[int8, 8]
+ evfilt array[int8, 32]
+ nports int32
+ lost int32
+ pad array[const[0, int8], 64]
+}
+
+snd_seq_port_info {
+ addr snd_seq_addr
+ name string[snd_seq_port_name, 64]
+ cap flags[snd_seq_port_cap, int32]
+ type flags[snd_seq_port_type, int32]
+ chans int32
+ voices int32
+ svoices int32
+ readuse int32
+ wruse int32
+ kernel const[0, intptr]
+ flags flags[snd_seq_port_flags, int32]
+ timeq int32
+ pad array[const[0, int8], 59]
+}
+
+snd_seq_port_subscribe {
+ sender snd_seq_addr
+ dest snd_seq_addr
+ voices int32
+ flags flags[snd_seq_sub_flags, int32]
+ queue int8
+ pad1 array[const[0, int8], 3]
+ pad2 array[const[0, int8], 64]
+}
+
+snd_seq_queue_info {
+ queue int32
+ owner int32
+ locked int32
+ name string[snd_seq_queue_name, 64]
+ flags int32
+ pad array[const[0, int8], 60]
+}
+
+snd_seq_queue_status {
+ queue int32
+ events int32
+ tick int32
+ time timespec
+ runnint int32
+ flags int32
+ pad array[const[0, int8], 64]
+}
+
+snd_seq_queue_timer {
+ queue int32
+ type flags[snd_seq_timer_type, int32]
+ id snd_timer_id
+ pad array[const[0, int8], 64]
+}
+
+snd_timer_id {
+ class flags[snd_timer_class, int32]
+ sclass flags[snd_timer_sclass, int32]
+ card int32
+ dev flags[snd_timer_dev, int32]
+ subdev int32
+}
+
+snd_seq_queue_client {
+ queue int32
+ client int32
+ used int32
+ pad array[const[0, int8], 64]
+}
+
+snd_seq_client_pool {
+ client int32
+ opool int32
+ ipool int32
+ oroom int32
+ ofree int32
+ ifree int32
+ pad array[const[0, int8], 64]
+}
+
+snd_seq_remove_events {
+ mode flags[snd_seq_remove_mode, int32]
+ time snd_seq_timestamp
+ queue int8
+ dest snd_seq_addr
+ chan int8
+ type flags[snd_seq_client_type, int32]
+ tag int8
+ pad array[const[0, int32], 10]
+}
+
+snd_seq_query_subs {
+ root snd_seq_addr
+ type flags[snd_seq_subs_type, int32]
+ index int32
+ nsubs int32
+ addr snd_seq_addr
+ queue int8
+ flags int32
+ pad array[const[0, int8], 64]
+}
+
+snd_seq_event {
+ type int8
+ flags int8
+ tag int8
+ queue int8
+ time snd_seq_timestamp
+ src snd_seq_addr
+ dst snd_seq_addr
+ data snd_seq_event_data
+}
+
+snd_seq_event_data [
+ note snd_seq_ev_note
+ control snd_seq_ev_ctrl
+ raw8 snd_seq_ev_raw8
+ raw32 snd_seq_ev_raw32
+ ext snd_seq_ev_ext
+ queue snd_seq_ev_queue_control
+ time snd_seq_timestamp
+ addr snd_seq_addr
+ connect snd_seq_connect
+ result snd_seq_result
+ quote snd_seq_ev_quote
+]
+
+snd_seq_ev_note {
+ chan int8
+ note int8
+ veloc int8
+ oveloc int8
+ dur int32
+}
+
+snd_seq_ev_ctrl {
+ chan int8
+ param int32
+ val int32
+}
+
+snd_seq_ev_raw8 {
+ data array[int8, 12]
+}
+
+snd_seq_ev_raw32 {
+ data array[int32, 3]
+}
+
+snd_seq_ev_ext {
+ len len[ptr, int32]
+ ptr buffer[in]
+} [packed]
+
+snd_seq_ev_queue_control {
+ queue int8
+ param snd_seq_queue_skew
+}
+
+snd_seq_connect {
+ sender snd_seq_addr
+ dest snd_seq_addr
+}
+
+snd_seq_result {
+ event int32
+ result int32
+}
+
+snd_seq_ev_quote {
+ origin snd_seq_addr
+ val int16
+ event ptr[in, snd_seq_event, opt]
+} [packed]
+
+snd_seq_queue_skew {
+ val int32
+ base int32
+}
+
+snd_seq_timestamp [
+ tick int32
+ time timespec
+]
+
+snd_seq_addr {
+ client int8
+ port int8
+}