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