aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorJiaming Zhang <r772577952@gmail.com>2026-01-31 19:00:28 +0800
committerThoth <pimyn@google.com>2026-02-05 09:41:27 +0000
commit70271b22d844f914bba2d3a7f387dbc901837994 (patch)
tree99e989fb8a968bc8f9f63beb767608cb3f8df8a2 /sys/linux
parent4936e85caf1095184a3676a69dea8fc9ecbc42cc (diff)
sys/linux: add descriptions for dvb subsystem
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/dev_dvb_demux.txt79
-rw-r--r--sys/linux/dev_dvb_demux.txt.const54
-rw-r--r--sys/linux/dev_dvb_dvr.txt15
-rw-r--r--sys/linux/dev_dvb_dvr.txt.const9
-rw-r--r--sys/linux/dev_dvb_frontend.txt154
-rw-r--r--sys/linux/dev_dvb_frontend.txt.const240
6 files changed, 551 insertions, 0 deletions
diff --git a/sys/linux/dev_dvb_demux.txt b/sys/linux/dev_dvb_demux.txt
new file mode 100644
index 000000000..c4126858f
--- /dev/null
+++ b/sys/linux/dev_dvb_demux.txt
@@ -0,0 +1,79 @@
+# Copyright 2026 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 <linux/ioctl.h>
+include <linux/fcntl.h>
+include <uapi/linux/dvb/dmx.h>
+
+resource fd_dvb_demux[fd]
+
+syz_open_dev$dvb_demux(dev ptr[in, string["/dev/dvb/adapter#/demux#"]], id intptr, flags flags[open_flags]) fd_dvb_demux
+ioctl$DVB_DEMUX_DMX_START(fd fd_dvb_demux, cmd const[DMX_START])
+ioctl$DVB_DEMUX_DMX_STOP(fd fd_dvb_demux, cmd const[DMX_STOP])
+ioctl$DVB_DEMUX_DMX_SET_FILTER(fd fd_dvb_demux, cmd const[DMX_SET_FILTER], arg ptr[in, dmx_sct_filter_params])
+ioctl$DVB_DEMUX_DMX_SET_PES_FILTER(fd fd_dvb_demux, cmd const[DMX_SET_PES_FILTER], arg ptr[in, dmx_pes_filter_params])
+ioctl$DVB_DEMUX_DMX_SET_BUFFER_SIZE(fd fd_dvb_demux, cmd const[DMX_SET_BUFFER_SIZE], arg intptr)
+ioctl$DVB_DEMUX_DMX_GET_PES_PIDS(fd fd_dvb_demux, cmd const[DMX_GET_PES_PIDS], arg ptr[out, array[int16, 5]])
+ioctl$DVB_DEMUX_DMX_GET_STC(fd fd_dvb_demux, cmd const[DMX_GET_STC], arg ptr[inout, dmx_stc])
+ioctl$DVB_DEMUX_DMX_ADD_PID(fd fd_dvb_demux, cmd const[DMX_ADD_PID], arg ptr[in, int16])
+ioctl$DVB_DEMUX_DMX_REMOVE_PID(fd fd_dvb_demux, cmd const[DMX_REMOVE_PID], arg ptr[in, int16])
+ioctl$DVB_DEMUX_DMX_REQBUFS(fd fd_dvb_demux, cmd const[DMX_REQBUFS], arg ptr[inout, dmx_requestbuffers])
+ioctl$DVB_DEMUX_DMX_QUERYBUF(fd fd_dvb_demux, cmd const[DMX_QUERYBUF], arg ptr[inout, dmx_buffer])
+ioctl$DVB_DEMUX_DMX_EXPBUF(fd fd_dvb_demux, cmd const[DMX_EXPBUF], arg ptr[inout, dmx_exportbuffer])
+ioctl$DVB_DEMUX_DMX_QBUF(fd fd_dvb_demux, cmd const[DMX_QBUF], arg ptr[inout, dmx_buffer])
+ioctl$DVB_DEMUX_DMX_DQBUF(fd fd_dvb_demux, cmd const[DMX_DQBUF], arg ptr[inout, dmx_buffer])
+
+dmx_sct_filter_flags = DMX_CHECK_CRC, DMX_ONESHOT, DMX_IMMEDIATE_START
+dmx_input = DMX_IN_FRONTEND, DMX_IN_DVR
+dmx_output = DMX_OUT_DECODER, DMX_OUT_TAP, DMX_OUT_TS_TAP, DMX_OUT_TSDEMUX_TAP
+dmx_ts_pes = DMX_PES_AUDIO0, DMX_PES_VIDEO0, DMX_PES_TELETEXT0, DMX_PES_SUBTITLE0, DMX_PES_PCR0, DMX_PES_AUDIO1, DMX_PES_VIDEO1, DMX_PES_TELETEXT1, DMX_PES_SUBTITLE1, DMX_PES_PCR1, DMX_PES_AUDIO2, DMX_PES_VIDEO2, DMX_PES_TELETEXT2, DMX_PES_SUBTITLE2, DMX_PES_PCR2, DMX_PES_AUDIO3, DMX_PES_VIDEO3, DMX_PES_TELETEXT3, DMX_PES_SUBTITLE3, DMX_PES_PCR3, DMX_PES_OTHER
+dmx_pes_filter_flags = DMX_IMMEDIATE_START
+dmx_buffer_flags = DMX_BUFFER_FLAG_HAD_CRC32_DISCARD, DMX_BUFFER_FLAG_TEI, DMX_BUFFER_PKT_COUNTER_MISMATCH, DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED, DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR
+dmx_exportbuffer_flags = O_CLOEXEC
+
+dmx_sct_filter_params {
+ pid int16
+ filter dmx_filter
+ timeout int32
+ flags flags[dmx_sct_filter_flags, int32]
+}
+
+dmx_filter {
+ filter array[int8, DMX_FILTER_SIZE]
+ mask array[int8, DMX_FILTER_SIZE]
+ mode array[int8, DMX_FILTER_SIZE]
+}
+
+dmx_pes_filter_params {
+ pid int16
+ input flags[dmx_input, int32]
+ output flags[dmx_output, int32]
+ pes_type flags[dmx_ts_pes, int32]
+ flags flags[dmx_pes_filter_flags, int32]
+}
+
+dmx_stc {
+ num int32 (in)
+ base int32 (out)
+ stc int64 (out)
+}
+
+dmx_requestbuffers {
+ count int32
+ size int32
+}
+
+dmx_buffer {
+ index int32
+ bytesused int32
+ offset int32
+ length int32
+ flags flags[dmx_buffer_flags, int32]
+ count int32
+}
+
+dmx_exportbuffer {
+ index int32
+ flags flags[dmx_exportbuffer_flags, int32]
+ fd fd
+}
diff --git a/sys/linux/dev_dvb_demux.txt.const b/sys/linux/dev_dvb_demux.txt.const
new file mode 100644
index 000000000..b4baccfba
--- /dev/null
+++ b/sys/linux/dev_dvb_demux.txt.const
@@ -0,0 +1,54 @@
+# Code generated by syz-sysgen. DO NOT EDIT.
+arches = 386, amd64, arm, arm64, mips64le, ppc64le, riscv64, s390x
+DMX_ADD_PID = 1073901363, mips64le:ppc64le:2147643187
+DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED = 8
+DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR = 16
+DMX_BUFFER_FLAG_HAD_CRC32_DISCARD = 1
+DMX_BUFFER_FLAG_TEI = 2
+DMX_BUFFER_PKT_COUNTER_MISMATCH = 4
+DMX_CHECK_CRC = 1
+DMX_DQBUF = 3222826816
+DMX_EXPBUF = 3222040382
+DMX_FILTER_SIZE = 16
+DMX_GET_PES_PIDS = 2148167471, mips64le:ppc64le:1074425647
+DMX_GET_STC = 3222302514
+DMX_IMMEDIATE_START = 4
+DMX_IN_DVR = 1
+DMX_IN_FRONTEND = 0
+DMX_ONESHOT = 2
+DMX_OUT_DECODER = 0
+DMX_OUT_TAP = 1
+DMX_OUT_TSDEMUX_TAP = 3
+DMX_OUT_TS_TAP = 2
+DMX_PES_AUDIO0 = 0
+DMX_PES_AUDIO1 = 5
+DMX_PES_AUDIO2 = 10
+DMX_PES_AUDIO3 = 15
+DMX_PES_OTHER = 20
+DMX_PES_PCR0 = 4
+DMX_PES_PCR1 = 9
+DMX_PES_PCR2 = 14
+DMX_PES_PCR3 = 19
+DMX_PES_SUBTITLE0 = 3
+DMX_PES_SUBTITLE1 = 8
+DMX_PES_SUBTITLE2 = 13
+DMX_PES_SUBTITLE3 = 18
+DMX_PES_TELETEXT0 = 2
+DMX_PES_TELETEXT1 = 7
+DMX_PES_TELETEXT2 = 12
+DMX_PES_TELETEXT3 = 17
+DMX_PES_VIDEO0 = 1
+DMX_PES_VIDEO1 = 6
+DMX_PES_VIDEO2 = 11
+DMX_PES_VIDEO3 = 16
+DMX_QBUF = 3222826815
+DMX_QUERYBUF = 3222826813
+DMX_REMOVE_PID = 1073901364, mips64le:ppc64le:2147643188
+DMX_REQBUFS = 3221778236
+DMX_SET_BUFFER_SIZE = 28461, mips64le:ppc64le:536899373
+DMX_SET_FILTER = 1077702443, mips64le:ppc64le:2151444267
+DMX_SET_PES_FILTER = 1075081004, mips64le:ppc64le:2148822828
+DMX_START = 28457, mips64le:ppc64le:536899369
+DMX_STOP = 28458, mips64le:ppc64le:536899370
+O_CLOEXEC = 524288
+__NR_ioctl = 54, amd64:16, arm64:riscv64:29, mips64le:5015
diff --git a/sys/linux/dev_dvb_dvr.txt b/sys/linux/dev_dvb_dvr.txt
new file mode 100644
index 000000000..50f209685
--- /dev/null
+++ b/sys/linux/dev_dvb_dvr.txt
@@ -0,0 +1,15 @@
+# Copyright 2026 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 <linux/ioctl.h>
+include <uapi/linux/dvb/dmx.h>
+
+resource fd_dvb_dvr[fd]
+
+syz_open_dev$dvb_dvr(dev ptr[in, string["/dev/dvb/adapter#/dvr#"]], id intptr, flags flags[open_flags]) fd_dvb_dvr
+ioctl$DVB_DVR_DMX_SET_BUFFER_SIZE(fd fd_dvb_dvr, cmd const[DMX_SET_BUFFER_SIZE], arg intptr)
+ioctl$DVB_DVR_DMX_REQBUFS(fd fd_dvb_dvr, cmd const[DMX_REQBUFS], arg ptr[inout, dmx_requestbuffers])
+ioctl$DVB_DVR_DMX_QUERYBUF(fd fd_dvb_dvr, cmd const[DMX_QUERYBUF], arg ptr[inout, dmx_buffer])
+ioctl$DVB_DVR_DMX_EXPBUF(fd fd_dvb_dvr, cmd const[DMX_EXPBUF], arg ptr[inout, dmx_exportbuffer])
+ioctl$DVB_DVR_DMX_QBUF(fd fd_dvb_dvr, cmd const[DMX_QBUF], arg ptr[inout, dmx_buffer])
+ioctl$DVB_DVR_DMX_DQBUF(fd fd_dvb_dvr, cmd const[DMX_DQBUF], arg ptr[inout, dmx_buffer])
diff --git a/sys/linux/dev_dvb_dvr.txt.const b/sys/linux/dev_dvb_dvr.txt.const
new file mode 100644
index 000000000..0aec74aa8
--- /dev/null
+++ b/sys/linux/dev_dvb_dvr.txt.const
@@ -0,0 +1,9 @@
+# Code generated by syz-sysgen. DO NOT EDIT.
+arches = 386, amd64, arm, arm64, mips64le, ppc64le, riscv64, s390x
+DMX_DQBUF = 3222826816
+DMX_EXPBUF = 3222040382
+DMX_QBUF = 3222826815
+DMX_QUERYBUF = 3222826813
+DMX_REQBUFS = 3221778236
+DMX_SET_BUFFER_SIZE = 28461, mips64le:ppc64le:536899373
+__NR_ioctl = 54, amd64:16, arm64:riscv64:29, mips64le:5015
diff --git a/sys/linux/dev_dvb_frontend.txt b/sys/linux/dev_dvb_frontend.txt
new file mode 100644
index 000000000..026d24f36
--- /dev/null
+++ b/sys/linux/dev_dvb_frontend.txt
@@ -0,0 +1,154 @@
+# Copyright 2026 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 <linux/ioctl.h>
+include <linux/dvb/frontend.h>
+
+resource fd_dvb_frontend[fd]
+
+syz_open_dev$dvb_frontend(dev ptr[in, string["/dev/dvb/adapter#/frontend#"]], id intptr, flags flags[open_flags]) fd_dvb_frontend
+ioctl$FE_SET_PROPERTY(fd fd_dvb_frontend, cmd const[FE_SET_PROPERTY], arg ptr[in, dtv_properties])
+ioctl$FE_GET_PROPERTY(fd fd_dvb_frontend, cmd const[FE_GET_PROPERTY], arg ptr[inout, dtv_properties])
+ioctl$FE_GET_INFO(fd fd_dvb_frontend, cmd const[FE_GET_INFO], arg ptr[out, dvb_frontend_info])
+ioctl$FE_READ_STATUS(fd fd_dvb_frontend, cmd const[FE_READ_STATUS], arg ptr[out, flags[fe_status, int32]])
+ioctl$FE_DISEQC_RESET_OVERLOAD(fd fd_dvb_frontend, cmd const[FE_DISEQC_RESET_OVERLOAD], arg const[0])
+ioctl$FE_DISEQC_SEND_MASTER_CMD(fd fd_dvb_frontend, cmd const[FE_DISEQC_SEND_MASTER_CMD], arg ptr[in, dvb_diseqc_master_cmd])
+ioctl$FE_DISEQC_SEND_BURST(fd fd_dvb_frontend, cmd const[FE_DISEQC_SEND_BURST], arg ptr[in, flags[fe_sec_mini_cmd, int32]])
+ioctl$FE_SET_TONE(fd fd_dvb_frontend, cmd const[FE_SET_TONE], arg ptr[in, flags[fe_sec_tone_mode, int32]])
+ioctl$FE_SET_VOLTAGE(fd fd_dvb_frontend, cmd const[FE_SET_VOLTAGE], arg ptr[in, flags[fe_sec_voltage, int32]])
+ioctl$FE_DISEQC_RECV_SLAVE_REPLY(fd fd_dvb_frontend, cmd const[FE_DISEQC_RECV_SLAVE_REPLY], arg ptr[out, dvb_diseqc_slave_reply])
+ioctl$FE_ENABLE_HIGH_LNB_VOLTAGE(fd fd_dvb_frontend, cmd const[FE_ENABLE_HIGH_LNB_VOLTAGE], arg intptr)
+ioctl$FE_SET_FRONTEND_TUNE_MODE(fd fd_dvb_frontend, cmd const[FE_SET_FRONTEND_TUNE_MODE], arg ptr[in, flags[fe_tune_mode, intptr]])
+ioctl$FE_DISHNETWORK_SEND_LEGACY_CMD(fd fd_dvb_frontend, cmd const[FE_DISHNETWORK_SEND_LEGACY_CMD], arg intptr)
+ioctl$FE_READ_BER(fd fd_dvb_frontend, cmd const[FE_READ_BER], arg ptr[out, int32])
+ioctl$FE_READ_SIGNAL_STRENGTH(fd fd_dvb_frontend, cmd const[FE_READ_SIGNAL_STRENGTH], arg ptr[out, int32])
+ioctl$FE_READ_SNR(fd fd_dvb_frontend, cmd const[FE_READ_SNR], arg ptr[out, int32])
+ioctl$FE_READ_UNCORRECTED_BLOCKS(fd fd_dvb_frontend, cmd const[FE_READ_UNCORRECTED_BLOCKS], arg ptr[out, int32])
+ioctl$FE_SET_FRONTEND(fd fd_dvb_frontend, cmd const[FE_SET_FRONTEND], arg ptr[in, dvb_frontend_parameters])
+ioctl$FE_GET_EVENT(fd fd_dvb_frontend, cmd const[FE_GET_EVENT], arg ptr[out, dvb_frontend_event])
+ioctl$FE_GET_FRONTEND(fd fd_dvb_frontend, cmd const[FE_GET_FRONTEND], arg ptr[out, dvb_frontend_parameters])
+
+dtv_property_cmd = DTV_UNDEFINED, DTV_TUNE, DTV_CLEAR, DTV_FREQUENCY, DTV_MODULATION, DTV_BANDWIDTH_HZ, DTV_INVERSION, DTV_DISEQC_MASTER, DTV_SYMBOL_RATE, DTV_INNER_FEC, DTV_VOLTAGE, DTV_TONE, DTV_PILOT, DTV_ROLLOFF, DTV_DISEQC_SLAVE_REPLY, DTV_FE_CAPABILITY_COUNT, DTV_FE_CAPABILITY, DTV_DELIVERY_SYSTEM, DTV_ISDBT_PARTIAL_RECEPTION, DTV_ISDBT_SOUND_BROADCASTING, DTV_ISDBT_SB_SUBCHANNEL_ID, DTV_ISDBT_SB_SEGMENT_IDX, DTV_ISDBT_SB_SEGMENT_COUNT, DTV_ISDBT_LAYERA_FEC, DTV_ISDBT_LAYERA_MODULATION, DTV_ISDBT_LAYERA_SEGMENT_COUNT, DTV_ISDBT_LAYERA_TIME_INTERLEAVING, DTV_ISDBT_LAYERB_FEC, DTV_ISDBT_LAYERB_MODULATION, DTV_ISDBT_LAYERB_SEGMENT_COUNT, DTV_ISDBT_LAYERB_TIME_INTERLEAVING, DTV_ISDBT_LAYERC_FEC, DTV_ISDBT_LAYERC_MODULATION, DTV_ISDBT_LAYERC_SEGMENT_COUNT, DTV_ISDBT_LAYERC_TIME_INTERLEAVING, DTV_CODE_RATE_HP, DTV_CODE_RATE_LP, DTV_GUARD_INTERVAL, DTV_TRANSMISSION_MODE, DTV_HIERARCHY, DTV_ISDBT_LAYER_ENABLED, DTV_STREAM_ID, DTV_DVBT2_PLP_ID_LEGACY, DTV_ENUM_DELSYS, DTV_ATSCMH_FIC_VER, DTV_ATSCMH_PARADE_ID, DTV_ATSCMH_NOG, DTV_ATSCMH_TNOG, DTV_ATSCMH_SGN, DTV_ATSCMH_PRC, DTV_ATSCMH_RS_FRAME_MODE, DTV_ATSCMH_RS_FRAME_ENSEMBLE, DTV_ATSCMH_RS_CODE_MODE_PRI, DTV_ATSCMH_RS_CODE_MODE_SEC, DTV_ATSCMH_SCCC_BLOCK_MODE, DTV_ATSCMH_SCCC_CODE_MODE_A, DTV_ATSCMH_SCCC_CODE_MODE_B, DTV_ATSCMH_SCCC_CODE_MODE_C, DTV_ATSCMH_SCCC_CODE_MODE_D, DTV_INTERLEAVING, DTV_LNA, DTV_STAT_SIGNAL_STRENGTH, DTV_STAT_CNR, DTV_STAT_PRE_ERROR_BIT_COUNT, DTV_STAT_PRE_TOTAL_BIT_COUNT, DTV_STAT_POST_ERROR_BIT_COUNT, DTV_STAT_POST_TOTAL_BIT_COUNT, DTV_STAT_ERROR_BLOCK_COUNT, DTV_STAT_TOTAL_BLOCK_COUNT, DTV_SCRAMBLING_SEQUENCE_INDEX
+fe_type = FE_QPSK, FE_QAM, FE_OFDM, FE_ATSC
+fe_caps = FE_IS_STUPID, FE_CAN_INVERSION_AUTO, FE_CAN_FEC_1_2, FE_CAN_FEC_2_3, FE_CAN_FEC_3_4, FE_CAN_FEC_4_5, FE_CAN_FEC_5_6, FE_CAN_FEC_6_7, FE_CAN_FEC_7_8, FE_CAN_FEC_8_9, FE_CAN_FEC_AUTO, FE_CAN_QPSK, FE_CAN_QAM_16, FE_CAN_QAM_32, FE_CAN_QAM_64, FE_CAN_QAM_128, FE_CAN_QAM_256, FE_CAN_QAM_AUTO, FE_CAN_TRANSMISSION_MODE_AUTO, FE_CAN_BANDWIDTH_AUTO, FE_CAN_GUARD_INTERVAL_AUTO, FE_CAN_HIERARCHY_AUTO, FE_CAN_8VSB, FE_CAN_16VSB, FE_HAS_EXTENDED_CAPS, FE_CAN_MULTISTREAM, FE_CAN_TURBO_FEC, FE_CAN_2G_MODULATION, FE_NEEDS_BENDING, FE_CAN_RECOVER, FE_CAN_MUTE_TS
+fe_status = FE_NONE, FE_HAS_SIGNAL, FE_HAS_CARRIER, FE_HAS_VITERBI, FE_HAS_SYNC, FE_HAS_LOCK, FE_TIMEDOUT, FE_REINIT
+fe_sec_mini_cmd = SEC_MINI_A, SEC_MINI_B
+fe_sec_tone_mode = SEC_TONE_ON, SEC_TONE_OFF
+fe_sec_voltage = SEC_VOLTAGE_13, SEC_VOLTAGE_18, SEC_VOLTAGE_OFF
+fe_tune_mode = FE_TUNE_MODE_ONESHOT
+fe_spectral_inversion = INVERSION_OFF, INVERSION_ON, INVERSION_AUTO
+fe_code_rate = FEC_NONE, FEC_1_2, FEC_2_3, FEC_3_4, FEC_4_5, FEC_5_6, FEC_6_7, FEC_7_8, FEC_8_9, FEC_AUTO, FEC_3_5, FEC_9_10, FEC_2_5, FEC_1_3, FEC_1_4, FEC_5_9, FEC_7_9, FEC_8_15, FEC_11_15, FEC_13_18, FEC_9_20, FEC_11_20, FEC_23_36, FEC_25_36, FEC_13_45, FEC_26_45, FEC_28_45, FEC_32_45, FEC_77_90, FEC_11_45, FEC_4_15, FEC_14_45, FEC_7_15
+fe_modulation = QPSK, QAM_16, QAM_32, QAM_64, QAM_128, QAM_256, QAM_AUTO, VSB_8, VSB_16, PSK_8, APSK_16, APSK_32, DQPSK, QAM_4_NR, QAM_1024, QAM_4096, APSK_8_L, APSK_16_L, APSK_32_L, APSK_64, APSK_64_L
+fe_transmit_mode = TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, TRANSMISSION_MODE_AUTO, TRANSMISSION_MODE_4K, TRANSMISSION_MODE_1K, TRANSMISSION_MODE_16K, TRANSMISSION_MODE_32K, TRANSMISSION_MODE_C1, TRANSMISSION_MODE_C3780
+fe_guard_interval = GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, GUARD_INTERVAL_1_4, GUARD_INTERVAL_AUTO, GUARD_INTERVAL_1_128, GUARD_INTERVAL_19_128, GUARD_INTERVAL_19_256, GUARD_INTERVAL_PN420, GUARD_INTERVAL_PN595, GUARD_INTERVAL_PN945, GUARD_INTERVAL_1_64
+fe_hierarchy = HIERARCHY_NONE, HIERARCHY_1, HIERARCHY_2, HIERARCHY_4, HIERARCHY_AUTO
+fecap_scale = FE_SCALE_NOT_AVAILABLE, FE_SCALE_DECIBEL, FE_SCALE_RELATIVE, FE_SCALE_COUNTER
+fe_bandwidth = BANDWIDTH_8_MHZ, BANDWIDTH_7_MHZ, BANDWIDTH_6_MHZ, BANDWIDTH_AUTO, BANDWIDTH_5_MHZ, BANDWIDTH_10_MHZ, BANDWIDTH_1_712_MHZ
+
+dtv_properties {
+ num int32[0:DTV_IOCTL_MAX_MSGS]
+ props ptr[in, array[dtv_property]]
+}
+
+dtv_property {
+ cmd flags[dtv_property_cmd, int32]
+ reserved array[const[0, int32], 3]
+ u dtv_property_u
+ result int32
+} [packed]
+
+dtv_property_u [
+ data int32
+ st dtv_fe_stats
+ buffer dtv_property_u_buffer
+]
+
+dtv_fe_stats {
+ len len[stat, int8]
+ stat array[dtv_stats, MAX_DTV_STATS]
+}
+
+dtv_property_u_buffer {
+ data array[int8, 32]
+ len len[data, int32]
+ reserved1 array[const[0, int32], 3]
+ reserved2 const[0, intptr]
+}
+
+dtv_stats {
+ scale flags[fecap_scale, int8]
+ u dtv_stats_u
+} [packed]
+
+dtv_stats_u [
+ uvalue int64
+ svalue int64
+]
+
+dvb_frontend_info {
+ name array[int8, 128]
+ type flags[fe_type, int32]
+ frequency_min int32
+ frequency_max int32
+ frequency_stepsize int32
+ frequency_tolerance int32
+ symbol_rate_min int32
+ symbol_rate_max int32
+ symbol_rate_tolerance int32
+ notifier_delay int32
+ caps flags[fe_caps, int32]
+}
+
+dvb_diseqc_master_cmd {
+ msg array[int8, 6]
+ msg_len len[msg, int8]
+}
+
+dvb_diseqc_slave_reply {
+ msg array[int8, 4]
+ msg_len len[msg, int8]
+ timeout int32
+}
+
+dvb_qpsk_parameters {
+ symbol_rate int32
+ fec_inner flags[fe_code_rate, int32]
+}
+
+dvb_qam_parameters {
+ symbol_rate int32
+ fec_inner flags[fe_code_rate, int32]
+ modulation flags[fe_modulation, int32]
+}
+
+dvb_ofdm_parameters {
+ bandwidth flags[fe_bandwidth, int32]
+ code_rate_HP flags[fe_code_rate, int32]
+ code_rate_LP flags[fe_code_rate, int32]
+ constellation flags[fe_modulation, int32]
+ transmission_mode flags[fe_transmit_mode, int32]
+ guard_interval flags[fe_guard_interval, int32]
+ hierarchy_information flags[fe_hierarchy, int32]
+}
+
+dvb_vsb_parameters {
+ modulation flags[fe_modulation, int32]
+}
+
+dvb_frontend_parameters {
+ frequency int32
+ inversion flags[fe_spectral_inversion, int32]
+ u dvb_frontend_parameters_u
+}
+
+dvb_frontend_parameters_u [
+ qpsk dvb_qpsk_parameters
+ qam dvb_qam_parameters
+ ofdm dvb_ofdm_parameters
+ vsb dvb_vsb_parameters
+]
+
+dvb_frontend_event {
+ status flags[fe_status, int32]
+ parameters dvb_frontend_parameters
+}
diff --git a/sys/linux/dev_dvb_frontend.txt.const b/sys/linux/dev_dvb_frontend.txt.const
new file mode 100644
index 000000000..7c2252893
--- /dev/null
+++ b/sys/linux/dev_dvb_frontend.txt.const
@@ -0,0 +1,240 @@
+# Code generated by syz-sysgen. DO NOT EDIT.
+arches = 386, amd64, arm, arm64, mips64le, ppc64le, riscv64, s390x
+APSK_16 = 10
+APSK_16_L = 17
+APSK_32 = 11
+APSK_32_L = 18
+APSK_64 = 19
+APSK_64_L = 20
+APSK_8_L = 16
+BANDWIDTH_10_MHZ = 5
+BANDWIDTH_1_712_MHZ = 6
+BANDWIDTH_5_MHZ = 4
+BANDWIDTH_6_MHZ = 2
+BANDWIDTH_7_MHZ = 1
+BANDWIDTH_8_MHZ = 0
+BANDWIDTH_AUTO = 3
+DQPSK = 12
+DTV_ATSCMH_FIC_VER = 45
+DTV_ATSCMH_NOG = 47
+DTV_ATSCMH_PARADE_ID = 46
+DTV_ATSCMH_PRC = 50
+DTV_ATSCMH_RS_CODE_MODE_PRI = 53
+DTV_ATSCMH_RS_CODE_MODE_SEC = 54
+DTV_ATSCMH_RS_FRAME_ENSEMBLE = 52
+DTV_ATSCMH_RS_FRAME_MODE = 51
+DTV_ATSCMH_SCCC_BLOCK_MODE = 55
+DTV_ATSCMH_SCCC_CODE_MODE_A = 56
+DTV_ATSCMH_SCCC_CODE_MODE_B = 57
+DTV_ATSCMH_SCCC_CODE_MODE_C = 58
+DTV_ATSCMH_SCCC_CODE_MODE_D = 59
+DTV_ATSCMH_SGN = 49
+DTV_ATSCMH_TNOG = 48
+DTV_BANDWIDTH_HZ = 5
+DTV_CLEAR = 2
+DTV_CODE_RATE_HP = 36
+DTV_CODE_RATE_LP = 37
+DTV_DELIVERY_SYSTEM = 17
+DTV_DISEQC_MASTER = 7
+DTV_DISEQC_SLAVE_REPLY = 14
+DTV_DVBT2_PLP_ID_LEGACY = 43
+DTV_ENUM_DELSYS = 44
+DTV_FE_CAPABILITY = 16
+DTV_FE_CAPABILITY_COUNT = 15
+DTV_FREQUENCY = 3
+DTV_GUARD_INTERVAL = 38
+DTV_HIERARCHY = 40
+DTV_INNER_FEC = 9
+DTV_INTERLEAVING = 60
+DTV_INVERSION = 6
+DTV_IOCTL_MAX_MSGS = 64
+DTV_ISDBT_LAYERA_FEC = 23
+DTV_ISDBT_LAYERA_MODULATION = 24
+DTV_ISDBT_LAYERA_SEGMENT_COUNT = 25
+DTV_ISDBT_LAYERA_TIME_INTERLEAVING = 26
+DTV_ISDBT_LAYERB_FEC = 27
+DTV_ISDBT_LAYERB_MODULATION = 28
+DTV_ISDBT_LAYERB_SEGMENT_COUNT = 29
+DTV_ISDBT_LAYERB_TIME_INTERLEAVING = 30
+DTV_ISDBT_LAYERC_FEC = 31
+DTV_ISDBT_LAYERC_MODULATION = 32
+DTV_ISDBT_LAYERC_SEGMENT_COUNT = 33
+DTV_ISDBT_LAYERC_TIME_INTERLEAVING = 34
+DTV_ISDBT_LAYER_ENABLED = 41
+DTV_ISDBT_PARTIAL_RECEPTION = 18
+DTV_ISDBT_SB_SEGMENT_COUNT = 22
+DTV_ISDBT_SB_SEGMENT_IDX = 21
+DTV_ISDBT_SB_SUBCHANNEL_ID = 20
+DTV_ISDBT_SOUND_BROADCASTING = 19
+DTV_LNA = 61
+DTV_MODULATION = 4
+DTV_PILOT = 12
+DTV_ROLLOFF = 13
+DTV_SCRAMBLING_SEQUENCE_INDEX = 70
+DTV_STAT_CNR = 63
+DTV_STAT_ERROR_BLOCK_COUNT = 68
+DTV_STAT_POST_ERROR_BIT_COUNT = 66
+DTV_STAT_POST_TOTAL_BIT_COUNT = 67
+DTV_STAT_PRE_ERROR_BIT_COUNT = 64
+DTV_STAT_PRE_TOTAL_BIT_COUNT = 65
+DTV_STAT_SIGNAL_STRENGTH = 62
+DTV_STAT_TOTAL_BLOCK_COUNT = 69
+DTV_STREAM_ID = 42
+DTV_SYMBOL_RATE = 8
+DTV_TONE = 11
+DTV_TRANSMISSION_MODE = 39
+DTV_TUNE = 1
+DTV_UNDEFINED = 0
+DTV_VOLTAGE = 10
+FEC_11_15 = 18
+FEC_11_20 = 21
+FEC_11_45 = 29
+FEC_13_18 = 19
+FEC_13_45 = 24
+FEC_14_45 = 31
+FEC_1_2 = 1
+FEC_1_3 = 13
+FEC_1_4 = 14
+FEC_23_36 = 22
+FEC_25_36 = 23
+FEC_26_45 = 25
+FEC_28_45 = 26
+FEC_2_3 = 2
+FEC_2_5 = 12
+FEC_32_45 = 27
+FEC_3_4 = 3
+FEC_3_5 = 10
+FEC_4_15 = 30
+FEC_4_5 = 4
+FEC_5_6 = 5
+FEC_5_9 = 15
+FEC_6_7 = 6
+FEC_77_90 = 28
+FEC_7_15 = 32
+FEC_7_8 = 7
+FEC_7_9 = 16
+FEC_8_15 = 17
+FEC_8_9 = 8
+FEC_9_10 = 11
+FEC_9_20 = 20
+FEC_AUTO = 9
+FEC_NONE = 0
+FE_ATSC = 3
+FE_CAN_16VSB = 4194304
+FE_CAN_2G_MODULATION = 268435456
+FE_CAN_8VSB = 2097152
+FE_CAN_BANDWIDTH_AUTO = 262144
+FE_CAN_FEC_1_2 = 2
+FE_CAN_FEC_2_3 = 4
+FE_CAN_FEC_3_4 = 8
+FE_CAN_FEC_4_5 = 16
+FE_CAN_FEC_5_6 = 32
+FE_CAN_FEC_6_7 = 64
+FE_CAN_FEC_7_8 = 128
+FE_CAN_FEC_8_9 = 256
+FE_CAN_FEC_AUTO = 512
+FE_CAN_GUARD_INTERVAL_AUTO = 524288
+FE_CAN_HIERARCHY_AUTO = 1048576
+FE_CAN_INVERSION_AUTO = 1
+FE_CAN_MULTISTREAM = 67108864
+FE_CAN_MUTE_TS = 2147483648
+FE_CAN_QAM_128 = 16384
+FE_CAN_QAM_16 = 2048
+FE_CAN_QAM_256 = 32768
+FE_CAN_QAM_32 = 4096
+FE_CAN_QAM_64 = 8192
+FE_CAN_QAM_AUTO = 65536
+FE_CAN_QPSK = 1024
+FE_CAN_RECOVER = 1073741824
+FE_CAN_TRANSMISSION_MODE_AUTO = 131072
+FE_CAN_TURBO_FEC = 134217728
+FE_DISEQC_RECV_SLAVE_REPLY = 2148298560, mips64le:ppc64le:1074556736
+FE_DISEQC_RESET_OVERLOAD = 28478, mips64le:ppc64le:536899390
+FE_DISEQC_SEND_BURST = 28481, mips64le:ppc64le:536899393
+FE_DISEQC_SEND_MASTER_CMD = 1074229055, mips64le:ppc64le:2147970879
+FE_DISHNETWORK_SEND_LEGACY_CMD = 28496, mips64le:ppc64le:536899408
+FE_ENABLE_HIGH_LNB_VOLTAGE = 28484, mips64le:ppc64le:536899396
+FE_GET_EVENT = 2150133582, mips64le:ppc64le:1076391758
+FE_GET_FRONTEND = 2149871437, mips64le:ppc64le:1076129613
+FE_GET_INFO = 2158522173, mips64le:ppc64le:1084780349
+FE_GET_PROPERTY = 2148560723, 386:arm:2148036435, mips64le:ppc64le:1074818899
+FE_HAS_CARRIER = 2
+FE_HAS_EXTENDED_CAPS = 8388608
+FE_HAS_LOCK = 16
+FE_HAS_SIGNAL = 1
+FE_HAS_SYNC = 8
+FE_HAS_VITERBI = 4
+FE_IS_STUPID = 0
+FE_NEEDS_BENDING = 536870912
+FE_NONE = 0
+FE_OFDM = 2
+FE_QAM = 1
+FE_QPSK = 0
+FE_READ_BER = 2147774278, mips64le:ppc64le:1074032454
+FE_READ_SIGNAL_STRENGTH = 2147643207, mips64le:ppc64le:1073901383
+FE_READ_SNR = 2147643208, mips64le:ppc64le:1073901384
+FE_READ_STATUS = 2147774277, mips64le:ppc64le:1074032453
+FE_READ_UNCORRECTED_BLOCKS = 2147774281, mips64le:ppc64le:1074032457
+FE_REINIT = 64
+FE_SCALE_COUNTER = 3
+FE_SCALE_DECIBEL = 1
+FE_SCALE_NOT_AVAILABLE = 0
+FE_SCALE_RELATIVE = 2
+FE_SET_FRONTEND = 1076129612, mips64le:ppc64le:2149871436
+FE_SET_FRONTEND_TUNE_MODE = 28497, mips64le:ppc64le:536899409
+FE_SET_PROPERTY = 1074818898, 386:arm:1074294610, mips64le:ppc64le:2148560722
+FE_SET_TONE = 28482, mips64le:ppc64le:536899394
+FE_SET_VOLTAGE = 28483, mips64le:ppc64le:536899395
+FE_TIMEDOUT = 32
+FE_TUNE_MODE_ONESHOT = 1
+GUARD_INTERVAL_19_128 = 6
+GUARD_INTERVAL_19_256 = 7
+GUARD_INTERVAL_1_128 = 5
+GUARD_INTERVAL_1_16 = 1
+GUARD_INTERVAL_1_32 = 0
+GUARD_INTERVAL_1_4 = 3
+GUARD_INTERVAL_1_64 = 11
+GUARD_INTERVAL_1_8 = 2
+GUARD_INTERVAL_AUTO = 4
+GUARD_INTERVAL_PN420 = 8
+GUARD_INTERVAL_PN595 = 9
+GUARD_INTERVAL_PN945 = 10
+HIERARCHY_1 = 1
+HIERARCHY_2 = 2
+HIERARCHY_4 = 3
+HIERARCHY_AUTO = 4
+HIERARCHY_NONE = 0
+INVERSION_AUTO = 2
+INVERSION_OFF = 0
+INVERSION_ON = 1
+MAX_DTV_STATS = 4
+PSK_8 = 9
+QAM_1024 = 14
+QAM_128 = 4
+QAM_16 = 1
+QAM_256 = 5
+QAM_32 = 2
+QAM_4096 = 15
+QAM_4_NR = 13
+QAM_64 = 3
+QAM_AUTO = 6
+QPSK = 0
+SEC_MINI_A = 0
+SEC_MINI_B = 1
+SEC_TONE_OFF = 1
+SEC_TONE_ON = 0
+SEC_VOLTAGE_13 = 0
+SEC_VOLTAGE_18 = 1
+SEC_VOLTAGE_OFF = 2
+TRANSMISSION_MODE_16K = 5
+TRANSMISSION_MODE_1K = 4
+TRANSMISSION_MODE_2K = 0
+TRANSMISSION_MODE_32K = 6
+TRANSMISSION_MODE_4K = 3
+TRANSMISSION_MODE_8K = 1
+TRANSMISSION_MODE_AUTO = 2
+TRANSMISSION_MODE_C1 = 7
+TRANSMISSION_MODE_C3780 = 8
+VSB_16 = 8
+VSB_8 = 7
+__NR_ioctl = 54, amd64:16, arm64:riscv64:29, mips64le:5015