From d0304e9cb9f633eb4de1ecbb4e7328ae745198a8 Mon Sep 17 00:00:00 2001 From: Chenyuan Yang Date: Fri, 29 Dec 2023 21:12:56 -0600 Subject: sys/linux: add the descriptions for the CEC device --- sys/linux/dev_cec.txt | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 sys/linux/dev_cec.txt (limited to 'sys/linux/dev_cec.txt') diff --git a/sys/linux/dev_cec.txt b/sys/linux/dev_cec.txt new file mode 100644 index 000000000..c8a47e5e6 --- /dev/null +++ b/sys/linux/dev_cec.txt @@ -0,0 +1,98 @@ +# 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 +} -- cgit mrf-deployment