• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2018 syzkaller project authors. All rights reserved.
2# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
3
4include <sound/asound.h>
5
6resource fd_midi[fd]
7
8syz_open_dev$sndmidi(dev ptr[in, string["/dev/snd/midiC#D#"]], id intptr, flags flags[open_flags]) fd_midi
9
10ioctl$SNDRV_RAWMIDI_IOCTL_PVERSION(fd fd_midi, cmd const[SNDRV_RAWMIDI_IOCTL_PVERSION], arg ptr[out, int32])
11ioctl$SNDRV_RAWMIDI_IOCTL_INFO(fd fd_midi, cmd const[SNDRV_RAWMIDI_IOCTL_INFO], arg ptr[out, snd_rawmidi_info_raw])
12ioctl$SNDRV_RAWMIDI_IOCTL_PARAMS(fd fd_midi, cmd const[SNDRV_RAWMIDI_IOCTL_PARAMS], arg ptr[inout, snd_rawmidi_params])
13ioctl$SNDRV_RAWMIDI_IOCTL_STATUS(fd fd_midi, cmd const[SNDRV_RAWMIDI_IOCTL_STATUS], arg ptr[inout, snd_rawmidi_status])
14ioctl$SNDRV_RAWMIDI_IOCTL_DROP(fd fd_midi, cmd const[SNDRV_RAWMIDI_IOCTL_DROP], arg ptr[in, int32])
15ioctl$SNDRV_RAWMIDI_IOCTL_DRAIN(fd fd_midi, cmd const[SNDRV_RAWMIDI_IOCTL_DRAIN], arg ptr[in, int32])
16
17snd_rawmidi_info_raw {
18	device			int32
19	subdevice		int32
20	stream			flags[sndrv_rawmidi_stream, int32]
21	card			int32
22	flags			flags[snd_rawmidi_info_flags, int32]
23	id			array[int8, 64]
24	name			array[int8, 80]
25	subname			array[int8, 32]
26	subdevices_count	int32
27	subdevices_avail	int32
28	reserved		array[const[0, int8], 64]
29}
30
31snd_rawmidi_params {
32	stream			flags[sndrv_rawmidi_stream, int32]
33	buffer_size		int32
34	avail_min		int32
35	no_active_sensing	int32
36	reserved		array[const[0, int8], 16]
37}
38
39snd_rawmidi_status {
40	stream		flags[sndrv_rawmidi_stream, int32]
41	tstamp		timespec
42	avail		int32
43	xruns		int32
44	reserved	array[const[0, int8], 16]
45}
46
47sndrv_rawmidi_stream = SNDRV_RAWMIDI_STREAM_OUTPUT, SNDRV_RAWMIDI_STREAM_INPUT, SNDRV_RAWMIDI_STREAM_LAST
48snd_rawmidi_info_flags = SNDRV_RAWMIDI_INFO_OUTPUT, SNDRV_RAWMIDI_INFO_INPUT, SNDRV_RAWMIDI_INFO_DUPLEX
49