# Copyright 2024 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 include resource fd_cec[fd] syz_open_dev$cec(dev ptr[in, string["/dev/cec#"]], id proc[0, 1], flags flags[open_flags]) fd_cec ioctl$CEC_ADAP_G_CAPS(fd fd_cec, cmd const[CEC_ADAP_G_CAPS], arg ptr[out, cec_caps]) ioctl$CEC_ADAP_G_PHYS_ADDR(fd fd_cec, cmd const[CEC_ADAP_G_PHYS_ADDR], arg ptr[out, int16]) ioctl$CEC_ADAP_S_PHYS_ADDR(fd fd_cec, cmd const[CEC_ADAP_S_PHYS_ADDR], arg ptr[in, int16]) ioctl$CEC_ADAP_G_LOG_ADDRS(fd fd_cec, cmd const[CEC_ADAP_G_LOG_ADDRS], arg ptr[out, cec_log_addrs]) ioctl$CEC_ADAP_S_LOG_ADDRS(fd fd_cec, cmd const[CEC_ADAP_S_LOG_ADDRS], arg ptr[inout, cec_log_addrs]) ioctl$CEC_ADAP_G_CONNECTOR_INFO(fd fd_cec, cmd const[CEC_ADAP_G_CONNECTOR_INFO], arg ptr[out, cec_connector_info]) ioctl$CEC_TRANSMIT(fd fd_cec, cmd const[CEC_TRANSMIT], arg ptr[inout, cec_msg]) ioctl$CEC_RECEIVE(fd fd_cec, cmd const[CEC_RECEIVE], arg ptr[inout, cec_msg]) ioctl$CEC_DQEVENT(fd fd_cec, cmd const[CEC_DQEVENT], arg ptr[out, cec_event]) ioctl$CEC_G_MODE(fd fd_cec, cmd const[CEC_G_MODE], arg ptr[out, int32]) ioctl$CEC_S_MODE(fd fd_cec, cmd const[CEC_S_MODE], arg ptr[in, int32]) cec_caps { driver array[int8, 32] name array[int8, 32] available_log_addrs int32 capabilities int32 version int32 } cec_log_addrs { log_addr array[int8, CEC_MAX_LOG_ADDRS] log_addr_mask int16 cec_version int8 num_log_addrs int8 vendor_id int32 flags int32 osd_name array[int8, 15] primary_device_type array[int8, CEC_MAX_LOG_ADDRS] log_addr_type array[int8, CEC_MAX_LOG_ADDRS] all_device_types array[int8, CEC_MAX_LOG_ADDRS] features array[array[int8, 12], CEC_MAX_LOG_ADDRS] } cec_connector_info { type int32 u cec_connector_info_union } cec_msg { tx_ts int64 rx_ts int64 len int32 timeout int32 sequence int32 flags int32 msg array[int8, CEC_MAX_MSG_SIZE] reply int8 rx_status int8 tx_status int8 tx_arb_lost_cnt int8 tx_nack_cnt int8 tx_low_drive_cnt int8 tx_error_cnt int8 } cec_event { ts int64 event int32 flags int32 union cec_event_union } cec_connector_info_union [ drm cec_drm_connector_info raw array[int32, 16] ] cec_event_union [ state_change cec_event_state_change lost_msgs cec_event_lost_msgs raw array[int32, 16] ] cec_drm_connector_info { card_no int32 connector_id drm_connector_id } cec_event_state_change { phys_addr int16 log_addr_mask int16 have_conn_info int16 } cec_event_lost_msgs { lost_msgs int32 }