| .. Permission is granted to copy, distribute and/or modify this |
| .. document under the terms of the GNU Free Documentation License, |
| .. Version 1.1 or any later version published by the Free Software |
| .. Foundation, with no Invariant Sections, no Front-Cover Texts |
| .. and no Back-Cover Texts. A copy of the license is included at |
| .. Documentation/userspace-api/media/fdl-appendix.rst. |
| .. |
| .. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections |
| |
| .. _cec-func-open: |
| |
| ********** |
| cec open() |
| ********** |
| |
| Name |
| ==== |
| |
| cec-open - Open a cec device |
| |
| Synopsis |
| ======== |
| |
| .. code-block:: c |
| |
| #include <fcntl.h> |
| |
| |
| .. c:function:: int open( const char *device_name, int flags ) |
| :name: cec-open |
| |
| |
| Arguments |
| ========= |
| |
| ``device_name`` |
| Device to be opened. |
| |
| ``flags`` |
| Open flags. Access mode must be ``O_RDWR``. |
| |
| When the ``O_NONBLOCK`` flag is given, the |
| :ref:`CEC_RECEIVE <CEC_RECEIVE>` and :ref:`CEC_DQEVENT <CEC_DQEVENT>` ioctls |
| will return the ``EAGAIN`` error code when no message or event is available, and |
| ioctls :ref:`CEC_TRANSMIT <CEC_TRANSMIT>`, |
| :ref:`CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>` and |
| :ref:`CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` |
| all return 0. |
| |
| Other flags have no effect. |
| |
| |
| Description |
| =========== |
| |
| To open a cec device applications call :c:func:`open() <cec-open>` with the |
| desired device name. The function has no side effects; the device |
| configuration remain unchanged. |
| |
| When the device is opened in read-only mode, attempts to modify its |
| configuration will result in an error, and ``errno`` will be set to |
| EBADF. |
| |
| |
| Return Value |
| ============ |
| |
| :c:func:`open() <cec-open>` returns the new file descriptor on success. On error, |
| -1 is returned, and ``errno`` is set appropriately. Possible error codes |
| include: |
| |
| ``EACCES`` |
| The requested access to the file is not allowed. |
| |
| ``EMFILE`` |
| The process already has the maximum number of files open. |
| |
| ``ENFILE`` |
| The system limit on the total number of open files has been reached. |
| |
| ``ENOMEM`` |
| Insufficient kernel memory was available. |
| |
| ``ENXIO`` |
| No device corresponding to this device special file exists. |