From 9f528bbcc8a3d94c9be27a0eecc12022d4b3bfaa Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 1 Feb 2019 01:08:17 +0100 Subject: sys/linux: rename dev descriptions files Prefix file names of descriptions of /dev/* files with dev_. And give some of them more appropriate names. --- sys/linux/dev_cdrom.txt | 343 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 343 insertions(+) create mode 100644 sys/linux/dev_cdrom.txt (limited to 'sys/linux/dev_cdrom.txt') diff --git a/sys/linux/dev_cdrom.txt b/sys/linux/dev_cdrom.txt new file mode 100644 index 000000000..8c1361af7 --- /dev/null +++ b/sys/linux/dev_cdrom.txt @@ -0,0 +1,343 @@ +# Copyright 2018 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. + +# For fuzzing with qemu you need to enable cdrom option and provide an iso image. +# For example: in "vm" section of syzkaller configuration +# "vm" : { +# ... +# "cmdline": " -cdrom /.../ubuntu-18.04-desktop-amd64.iso " +# } +# In the kernel CONFIG_CDROM should be enabled. +# +# For more effective fuzzing one might want to disable +# CDROMEJECT && CDROMEJECT_SW. +# "disable_syscalls" : [ "ioctl$CDROMEJECT*" ] + +include +include + +resource fd_cdrom[fd] + +syz_open_dev$CDROM_DEV_LINK(dev ptr[in, string["/dev/cdrom"]], id intptr, flags flags[open_flags]) fd_cdrom + +ioctl$CDROMPAUSE(fd fd_cdrom, cmd const[CDROMPAUSE]) +ioctl$CDROMRESUME(fd fd_cdrom, cmd const[CDROMRESUME]) +ioctl$CDROMPLAYMSF(fd fd_cdrom, cmd const[CDROMPLAYMSF], arg ptr[in, cdrom_msf]) +ioctl$CDROMPLAYTRKIND(fd fd_cdrom, cmd const[CDROMPLAYTRKIND], arg ptr[in, cdrom_ti]) +ioctl$CDROMREADTOCHDR(fd fd_cdrom, cmd const[CDROMREADTOCHDR], arg ptr[inout, cdrom_tochdr]) +ioctl$CDROMREADTOCENTRY(fd fd_cdrom, cmd const[CDROMREADTOCENTRY], arg ptr[inout, cdrom_tocentry]) +ioctl$CDROMSTOP(fd fd_cdrom, cmd const[CDROMSTOP]) +ioctl$CDROMSTART(fd fd_cdrom, cmd const[CDROMSTART]) +ioctl$CDROMEJECT(fd fd_cdrom, cmd const[CDROMEJECT]) +ioctl$CDROMVOLCTRL(fd fd_cdrom, cmd const[CDROMVOLCTRL], arg ptr[in, cdrom_volctrl]) +ioctl$CDROMSUBCHNL(fd fd_cdrom, cmd const[CDROMSUBCHNL], arg ptr[inout, cdrom_subchnl]) +ioctl$CDROMREADMODE2(fd fd_cdrom, cmd const[CDROMREADMODE2], arg ptr[in, cdrom_msf_out_stub]) +ioctl$CDROMREADMODE1(fd fd_cdrom, cmd const[CDROMREADMODE1], arg ptr[in, cdrom_msf_out_stub]) +ioctl$CDROMREADAUDIO(fd fd_cdrom, cmd const[CDROMREADAUDIO], arg ptr[in, cdrom_read_audio]) +ioctl$CDROMEJECT_SW(fd fd_cdrom, cmd const[CDROMEJECT_SW], arg boolptr) +ioctl$CDROMMULTISESSION(fd fd_cdrom, cmd const[CDROMMULTISESSION], arg ptr[inout, cdrom_multisession]) +ioctl$CDROM_GET_MCN(fd fd_cdrom, cmd const[CDROM_GET_MCN], arg ptr[out, cdrom_mcn]) +ioctl$CDROMRESET(fd fd_cdrom, cmd const[CDROMRESET]) +ioctl$CDROMVOLREAD(fd fd_cdrom, cmd const[CDROMVOLREAD], arg ptr[out, cdrom_volctrl]) +ioctl$CDROMREADRAW(fd fd_cdrom, cmd const[CDROMREADRAW], arg ptr[in, cdrom_msf_out_stub]) + +ioctl$CDROMREADCOOKED(fd fd_cdrom, cmd const[CDROMREADCOOKED], arg ptr[out, cdrom_output_buffer]) +ioctl$CDROMSEEK(fd fd_cdrom, cmd const[CDROMSEEK], arg ptr[in, cdrom_msf]) + +ioctl$CDROMPLAYBLK(fd fd_cdrom, cmd const[CDROMPLAYBLK], arg ptr[in, cdrom_blk]) + +ioctl$CDROMREADALL(fd fd_cdrom, cmd const[CDROMREADALL], arg ptr[out, cdrom_output_buffer]) + +ioctl$CDROMGETSPINDOWN(fd fd_cdrom, cmd const[CDROMGETSPINDOWN], arg int8) +ioctl$CDROMSETSPINDOWN(fd fd_cdrom, cmd const[CDROMSETSPINDOWN], arg int8) + +ioctl$CDROMCLOSETRAY(fd fd_cdrom, cmd const[CDROMCLOSETRAY]) + +ioctl$CDROM_SET_OPTIONS(fd fd_cdrom, cmd const[CDROM_SET_OPTIONS], arg flags[cdrom_options]) +ioctl$CDROM_CLEAR_OPTIONS(fd fd_cdrom, cmd const[CDROM_CLEAR_OPTIONS], arg flags[cdrom_options]) +ioctl$CDROM_SELECT_SPEED(fd fd_cdrom, cmd const[CDROM_SELECT_SPEED], speed int64) +ioctl$CDROM_SELECT_DISK(fd fd_cdrom, cmd const[CDROM_SELECT_SPEED], disk int64) +ioctl$CDROM_MEDIA_CHANGED(fd fd_cdrom, cmd const[CDROM_MEDIA_CHANGED], slot int64) +ioctl$CDROM_DISC_STATUS(fd fd_cdrom, cmd const[CDROM_DISC_STATUS]) +ioctl$CDROM_CHANGER_NSLOTS(fd fd_cdrom, cmd const[CDROM_CHANGER_NSLOTS]) +ioctl$CDROM_LOCKDOOR(fd fd_cdrom, cmd const[CDROM_LOCKDOOR], lock boolptr) +ioctl$CDROM_DEBUG(fd fd_cdrom, cmd const[CDROM_DEBUG], debug boolptr) +ioctl$CDROM_GET_CAPABILITY(fd fd_cdrom, cmd const[CDROM_GET_CAPABILITY]) + +ioctl$CDROMAUDIOBUFSIZ(fd fd_cdrom, cmd const[CDROMAUDIOBUFSIZ], val int32) + +ioctl$DVD_READ_STRUCT(fd fd_cdrom, cmd const[DVD_READ_STRUCT], arg ptr[inout, dvd_struct]) +ioctl$DVD_WRITE_STRUCT(fd fd_cdrom, cmd const[DVD_READ_STRUCT], arg ptr[in, dvd_struct]) +ioctl$DVD_AUTH(fd fd_cdrom, cmd const[DVD_READ_STRUCT], arg ptr[inout, dvd_authinfo]) + +ioctl$CDROM_SEND_PACKET(fd fd_cdrom, cmd const[CDROM_SEND_PACKET], arg ptr[inout, cdrom_generic_command]) + +ioctl$CDROM_NEXT_WRITABLE(fd fd_cdrom, cmd const[CDROM_NEXT_WRITABLE], arg ptr[out, int64]) +ioctl$CDROM_LAST_WRITTEN(fd fd_cdrom, cmd const[CDROM_LAST_WRITTEN], arg ptr[out, int64]) + +cdrom_output_buffer { + reserved array[int8, CD_FRAMESIZE_RAWER] +} + +cdrom_msf { + cdmsf_min0 int8 + cdmsf_sec0 int8 + cdmsf_frame0 int8 + cdmsf_min1 int8 + cdmsf_sec1 int8 + cdmsf_frame1 int8 +} + +cdrom_msf_out_stub { + cdmsf_min0 int8 + cdmsf_sec0 int8 + cdmsf_frame0 int8 + cdmsf_min1 int8 + cdmsf_sec1 int8 + cdmsf_frame1 int8 + reserved array[const[0, int8], CDROM_MSF_OUT_STUB_SIZE] +} + +cdrom_ti { + cdti_trk0 int8 + cdti_int0 int8 + cdti_trk1 int8 + cdti_ind1 int8 +} + +cdrom_tochdr { + cdth_trk0 int8 + cdth_trk1 int8 +} + +cdrom_tocentry { + cdte_track int8 + cdte_adr int8:4 + cdte_ctrl int8:4 + cdte_format flags[cdrom_format, int8] + cdte_addr cdrom_addr + cdte_datamode int8 +} + +cdrom_addr [ + msf cdrom_msf0 + lba int32 +] + +cdrom_msf0 { + minute int8 + second int8 + frame int8 +} + +cdrom_read_audio { + addr cdrom_addr + addr_format flags[cdrom_format, int8] + nframes bytesize[buf, int32] + buf ptr[out, array[int8, 1:CD_FRAMES]] +} + +cdrom_volctrl { + channel0 int8 + channel1 int8 + channel2 int8 + channel3 int8 +} + +cdrom_subchnl { + cdsc_format flags[cdrom_format, int8] + cdsc_audiostatus int8 + cdsc_adr int8:4 + cdsc_ctrl int8:4 + cdsc_trk int8 + cdsc_ind int8 + cdsc_absaddr cdrom_addr + cdsc_reladdr cdrom_addr +} + +cdrom_multisession { + addr cdrom_addr + xa_flag bool8 + addr_format flags[cdrom_format, int8] +} + +cdrom_mcn { + medium_catalog_number array[int8, 14] +} + +cdrom_blk { + from int32 + len int16 +} + +dvd_struct [ + type flags[dvd_struct_type, int8] + + physical dvd_physical + copyright dvd_copyright + disckey dvd_disckey + bca dvd_bca + manufact dvd_manufact +] + +dvd_physical { + type const[DVD_STRUCT_PHYSICAL, int8] + layer_num int8[0:3] + layer array[dvd_layer, DVD_LAYERS] +} + +dvd_layer { + book_version int8:4 + book_type int8:4 + min_rate int8:4 + disc_size int8:4 + layer_type int8:4 + track_path int8:1 + nlayers int8:2 + track_density int8:4 + linear_density int8:4 + bca int8:1 + start_sector int32 + end_sector int32 + end_sector_l0 int32 +} + +dvd_copyright { + type const[DVD_STRUCT_COPYRIGHT, int8] + + layer_num int8[0:3] + cpst int8 + rmi int8 +} + +dvd_disckey { + type const[DVD_STRUCT_DISCKEY, int8] + + agid int32:2 + value array[int8, 2048] +} + +dvd_bca { + type const[DVD_STRUCT_BCA, int8] + + len len[value, int32] + value array[int8, 188] +} + +dvd_manufact { + type const[DVD_STRUCT_MANUFACT, int8] + + layer_num int8[0:3] + len len[value, int32] + value array[int8, 2048] +} + +dvd_authinfo [ + type flags[dvd_authinfo_type, int8] + + lsa dvd_lu_send_agid + hsc dvd_host_send_challenge + lsk dvd_send_key + lsc dvd_lu_send_challenge + hsk dvd_send_key + lstk dvd_lu_send_title_key + lsasf dvd_lu_send_asf + hrpcs dvd_host_send_rpcstate + lrpcs dvd_lu_send_rpcstate +] + +type dvd_key array[int8, 5] +type dvd_challenge array[int8, 10] + +dvd_lu_send_agid { + type const[DVD_LU_SEND_AGID, int8] + agid int32:2 +} + +dvd_host_send_challenge { + type const[DVD_HOST_SEND_CHALLENGE, int8] + agid int32:2 + + chal dvd_challenge +} + +dvd_send_key_type = DVD_LU_SEND_KEY1, DVD_HOST_SEND_KEY2 + +dvd_send_key { + type flags[dvd_send_key_type, int8] + agid int32:2 + + key dvd_key +} + +dvd_lu_send_challenge { + type const[DVD_LU_SEND_CHALLENGE, int8] + agid int32:2 + + chal dvd_challenge +} + +dvd_lu_send_title_key { + type const[DVD_LU_SEND_TITLE_KEY, int8] + agid int32:2 + + title_key dvd_key + lba int32 + cpm int32:1 + cp_sec int32:1 + cgms int32:2 +} + +dvd_lu_send_asf { + type const[DVD_LU_SEND_ASF, int8] + agid int32:2 + + asf int32:1 +} + +dvd_host_send_rpcstate { + type const[DVD_HOST_SEND_RPC_STATE, int8] + pdrc int8 +} + +dvd_lu_send_rpcstate { + type int8:2 + vra int8:3 + ucca int8:3 + region_mask int8 + rpc_scheme int8 +} + +cdrom_generic_command { + cmd array[int8, CDROM_PACKET_SIZE] + buffer ptr[inout, array[int8]] + buflen len[buffer, int32] + stat int32 + sense ptr[inout, request_sense] + data_direction flags[cdrom_data_direction, int8] + quiet int32 + timeout int32 + reserved ptr[out, array[intptr, 1]] +} + +request_sense { + valid_err_code int8 + segment_number int8 + ili_sense_key int8 + information array[int8, 4] + add_sense_len int8 + command_info array[int8, 4] + asc int8 + ascq int8 + fruc int8 + sks array[int8, 3] + asb array[int8, 46] +} + +cdrom_options = CDO_AUTO_CLOSE, CDO_AUTO_EJECT, CDO_USE_FFLAGS, CDO_LOCK, CDO_CHECK_TYPE +cdrom_format = CDROM_MSF, CDROM_LBA +dvd_struct_type = DVD_STRUCT_PHYSICAL, DVD_STRUCT_COPYRIGHT, DVD_STRUCT_DISCKEY, DVD_STRUCT_BCA, DVD_STRUCT_MANUFACT +dvd_authinfo_type = DVD_LU_SEND_AGID, DVD_LU_SEND_KEY1, DVD_LU_SEND_CHALLENGE, DVD_LU_SEND_TITLE_KEY, DVD_LU_SEND_ASF, DVD_HOST_SEND_CHALLENGE, DVD_HOST_SEND_KEY2, DVD_INVALIDATE_AGID, DVD_LU_SEND_RPC_STATE, DVD_LU_SEND_RPC_STATE +cdrom_data_direction = CGC_DATA_UNKNOWN, CGC_DATA_WRITE, CGC_DATA_READ, CGC_DATA_NONE + +define CDROM_MSF_OUT_STUB_SIZE CD_FRAMESIZE_RAWER-6 -- cgit mrf-deployment