162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 262306a36Sopenharmony_ci.. c:namespace:: CEC 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci.. _cec-func-open: 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci********** 762306a36Sopenharmony_cicec open() 862306a36Sopenharmony_ci********** 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciName 1162306a36Sopenharmony_ci==== 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cicec-open - Open a cec device 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciSynopsis 1662306a36Sopenharmony_ci======== 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci.. code-block:: c 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci #include <fcntl.h> 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci.. c:function:: int open( const char *device_name, int flags ) 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciArguments 2562306a36Sopenharmony_ci========= 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci``device_name`` 2862306a36Sopenharmony_ci Device to be opened. 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci``flags`` 3162306a36Sopenharmony_ci Open flags. Access mode must be ``O_RDWR``. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci When the ``O_NONBLOCK`` flag is given, the 3462306a36Sopenharmony_ci :ref:`CEC_RECEIVE <CEC_RECEIVE>` and :ref:`CEC_DQEVENT <CEC_DQEVENT>` ioctls 3562306a36Sopenharmony_ci will return the ``EAGAIN`` error code when no message or event is available, and 3662306a36Sopenharmony_ci ioctls :ref:`CEC_TRANSMIT <CEC_TRANSMIT>`, 3762306a36Sopenharmony_ci :ref:`CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>` and 3862306a36Sopenharmony_ci :ref:`CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` 3962306a36Sopenharmony_ci all return 0. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci Other flags have no effect. 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciDescription 4462306a36Sopenharmony_ci=========== 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciTo open a cec device applications call :c:func:`open()` with the 4762306a36Sopenharmony_cidesired device name. The function has no side effects; the device 4862306a36Sopenharmony_ciconfiguration remain unchanged. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciWhen the device is opened in read-only mode, attempts to modify its 5162306a36Sopenharmony_ciconfiguration will result in an error, and ``errno`` will be set to 5262306a36Sopenharmony_ciEBADF. 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciReturn Value 5562306a36Sopenharmony_ci============ 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci:c:func:`open()` returns the new file descriptor on success. On error, 5862306a36Sopenharmony_ci-1 is returned, and ``errno`` is set appropriately. Possible error codes 5962306a36Sopenharmony_ciinclude: 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci``EACCES`` 6262306a36Sopenharmony_ci The requested access to the file is not allowed. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci``EMFILE`` 6562306a36Sopenharmony_ci The process already has the maximum number of files open. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci``ENFILE`` 6862306a36Sopenharmony_ci The system limit on the total number of open files has been reached. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci``ENOMEM`` 7162306a36Sopenharmony_ci Insufficient kernel memory was available. 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci``ENXIO`` 7462306a36Sopenharmony_ci No device corresponding to this device special file exists. 75