aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/dev_cec.txt
diff options
context:
space:
mode:
authorChenyuan Yang <cy1yang@outlook.com>2023-12-29 21:12:56 -0600
committerAleksandr Nogikh <nogikh@google.com>2024-01-05 17:28:58 +0000
commitd0304e9cb9f633eb4de1ecbb4e7328ae745198a8 (patch)
tree61f4faf501c47932d5cccdad392f8c085cb80882 /sys/linux/dev_cec.txt
parent397c964fceb327fe12c6f42334b879e1887412fc (diff)
sys/linux: add the descriptions for the CEC device
Diffstat (limited to 'sys/linux/dev_cec.txt')
-rw-r--r--sys/linux/dev_cec.txt98
1 files changed, 98 insertions, 0 deletions
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 <uapi/asm/ioctl.h>
+include <uapi/linux/cec.h>
+
+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
+}