.. -*- coding: utf-8; mode: rst -*- .. _CEC_ADAP_G_CAPS: ********************* ioctl CEC_ADAP_G_CAPS ********************* Name ==== CEC_ADAP_G_CAPS - Query device capabilities Synopsis ======== .. c:function:: int ioctl( int fd, CEC_ADAP_G_CAPS, struct cec_caps *argp ) :name: CEC_ADAP_G_CAPS Arguments ========= ``fd`` File descriptor returned by :ref:`open() `. ``argp`` Description =========== .. note:: This documents the proposed CEC API. This API is not yet finalized and is currently only available as a staging kernel module. All cec devices must support :ref:`ioctl CEC_ADAP_G_CAPS `. To query device information, applications call the ioctl with a pointer to a struct :c:type:`cec_caps`. The driver fills the structure and returns the information to the application. The ioctl never fails. .. tabularcolumns:: |p{1.2cm}|p{2.5cm}|p{13.8cm}| .. c:type:: cec_caps .. flat-table:: struct cec_caps :header-rows: 0 :stub-columns: 0 :widths: 1 1 16 - .. row 1 - char - ``driver[32]`` - The name of the cec adapter driver. - .. row 2 - char - ``name[32]`` - The name of this CEC adapter. The combination ``driver`` and ``name`` must be unique. - .. row 3 - __u32 - ``capabilities`` - The capabilities of the CEC adapter, see :ref:`cec-capabilities`. - .. row 4 - __u32 - ``version`` - CEC Framework API version, formatted with the ``KERNEL_VERSION()`` macro. .. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.6cm}| .. _cec-capabilities: .. flat-table:: CEC Capabilities Flags :header-rows: 0 :stub-columns: 0 :widths: 3 1 8 - .. _`CEC-CAP-PHYS-ADDR`: - ``CEC_CAP_PHYS_ADDR`` - 0x00000001 - Userspace has to configure the physical address by calling :ref:`ioctl CEC_ADAP_S_PHYS_ADDR `. If this capability isn't set, then setting the physical address is handled by the kernel whenever the EDID is set (for an HDMI receiver) or read (for an HDMI transmitter). - .. _`CEC-CAP-LOG-ADDRS`: - ``CEC_CAP_LOG_ADDRS`` - 0x00000002 - Userspace has to configure the logical addresses by calling :ref:`ioctl CEC_ADAP_S_LOG_ADDRS `. If this capability isn't set, then the kernel will have configured this. - .. _`CEC-CAP-TRANSMIT`: - ``CEC_CAP_TRANSMIT`` - 0x00000004 - Userspace can transmit CEC messages by calling :ref:`ioctl CEC_TRANSMIT `. This implies that userspace can be a follower as well, since being able to transmit messages is a prerequisite of becoming a follower. If this capability isn't set, then the kernel will handle all CEC transmits and process all CEC messages it receives. - .. _`CEC-CAP-PASSTHROUGH`: - ``CEC_CAP_PASSTHROUGH`` - 0x00000008 - Userspace can use the passthrough mode by calling :ref:`ioctl CEC_S_MODE `. - .. _`CEC-CAP-RC`: - ``CEC_CAP_RC`` - 0x00000010 - This adapter supports the remote control protocol. - .. _`CEC-CAP-MONITOR-ALL`: - ``CEC_CAP_MONITOR_ALL`` - 0x00000020 - The CEC hardware can monitor all messages, not just directed and broadcast messages. Return Value ============ On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter.