aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/dev_dvb_frontend.txt
blob: 026d24f365dae2c3d271d5a60515e425c1ffcd41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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
}