cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cec-ioc-adap-g-caps.rst (4243B)


      1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
      2.. c:namespace:: CEC
      3
      4.. _CEC_ADAP_G_CAPS:
      5
      6*********************
      7ioctl CEC_ADAP_G_CAPS
      8*********************
      9
     10Name
     11====
     12
     13CEC_ADAP_G_CAPS - Query device capabilities
     14
     15Synopsis
     16========
     17
     18.. c:macro:: CEC_ADAP_G_CAPS
     19
     20``int ioctl(int fd, CEC_ADAP_G_CAPS, struct cec_caps *argp)``
     21
     22Arguments
     23=========
     24
     25``fd``
     26    File descriptor returned by :c:func:`open()`.
     27
     28``argp``
     29
     30Description
     31===========
     32
     33All cec devices must support :ref:`ioctl CEC_ADAP_G_CAPS <CEC_ADAP_G_CAPS>`. To query
     34device information, applications call the ioctl with a pointer to a
     35struct :c:type:`cec_caps`. The driver fills the structure and
     36returns the information to the application. The ioctl never fails.
     37
     38.. tabularcolumns:: |p{1.2cm}|p{2.5cm}|p{13.6cm}|
     39
     40.. c:type:: cec_caps
     41
     42.. flat-table:: struct cec_caps
     43    :header-rows:  0
     44    :stub-columns: 0
     45    :widths:       1 1 16
     46
     47    * - char
     48      - ``driver[32]``
     49      - The name of the cec adapter driver.
     50    * - char
     51      - ``name[32]``
     52      - The name of this CEC adapter. The combination ``driver`` and
     53	``name`` must be unique.
     54    * - __u32
     55      - ``available_log_addrs``
     56      - The maximum number of logical addresses that can be configured.
     57    * - __u32
     58      - ``capabilities``
     59      - The capabilities of the CEC adapter, see
     60	:ref:`cec-capabilities`.
     61    * - __u32
     62      - ``version``
     63      - CEC Framework API version, formatted with the ``KERNEL_VERSION()``
     64	macro.
     65
     66.. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.4cm}|
     67
     68.. _cec-capabilities:
     69
     70.. flat-table:: CEC Capabilities Flags
     71    :header-rows:  0
     72    :stub-columns: 0
     73    :widths:       3 1 8
     74
     75    * .. _`CEC-CAP-PHYS-ADDR`:
     76
     77      - ``CEC_CAP_PHYS_ADDR``
     78      - 0x00000001
     79      - Userspace has to configure the physical address by calling
     80	:ref:`ioctl CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>`. If
     81	this capability isn't set, then setting the physical address is
     82	handled by the kernel whenever the EDID is set (for an HDMI
     83	receiver) or read (for an HDMI transmitter).
     84    * .. _`CEC-CAP-LOG-ADDRS`:
     85
     86      - ``CEC_CAP_LOG_ADDRS``
     87      - 0x00000002
     88      - Userspace has to configure the logical addresses by calling
     89	:ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`. If
     90	this capability isn't set, then the kernel will have configured
     91	this.
     92    * .. _`CEC-CAP-TRANSMIT`:
     93
     94      - ``CEC_CAP_TRANSMIT``
     95      - 0x00000004
     96      - Userspace can transmit CEC messages by calling
     97	:ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. This implies that
     98	userspace can be a follower as well, since being able to transmit
     99	messages is a prerequisite of becoming a follower. If this
    100	capability isn't set, then the kernel will handle all CEC
    101	transmits and process all CEC messages it receives.
    102    * .. _`CEC-CAP-PASSTHROUGH`:
    103
    104      - ``CEC_CAP_PASSTHROUGH``
    105      - 0x00000008
    106      - Userspace can use the passthrough mode by calling
    107	:ref:`ioctl CEC_S_MODE <CEC_S_MODE>`.
    108    * .. _`CEC-CAP-RC`:
    109
    110      - ``CEC_CAP_RC``
    111      - 0x00000010
    112      - This adapter supports the remote control protocol.
    113    * .. _`CEC-CAP-MONITOR-ALL`:
    114
    115      - ``CEC_CAP_MONITOR_ALL``
    116      - 0x00000020
    117      - The CEC hardware can monitor all messages, not just directed and
    118	broadcast messages.
    119    * .. _`CEC-CAP-NEEDS-HPD`:
    120
    121      - ``CEC_CAP_NEEDS_HPD``
    122      - 0x00000040
    123      - The CEC hardware is only active if the HDMI Hotplug Detect pin is
    124        high. This makes it impossible to use CEC to wake up displays that
    125	set the HPD pin low when in standby mode, but keep the CEC bus
    126	alive.
    127    * .. _`CEC-CAP-MONITOR-PIN`:
    128
    129      - ``CEC_CAP_MONITOR_PIN``
    130      - 0x00000080
    131      - The CEC hardware can monitor CEC pin changes from low to high voltage
    132        and vice versa. When in pin monitoring mode the application will
    133	receive ``CEC_EVENT_PIN_CEC_LOW`` and ``CEC_EVENT_PIN_CEC_HIGH`` events.
    134    * .. _`CEC-CAP-CONNECTOR-INFO`:
    135
    136      - ``CEC_CAP_CONNECTOR_INFO``
    137      - 0x00000100
    138      - If this capability is set, then :ref:`CEC_ADAP_G_CONNECTOR_INFO` can
    139        be used.
    140
    141Return Value
    142============
    143
    144On success 0 is returned, on error -1 and the ``errno`` variable is set
    145appropriately. The generic error codes are described at the
    146:ref:`Generic Error Codes <gen-errors>` chapter.