154f38fcaSMauro Carvalho Chehab.. Permission is granted to copy, distribute and/or modify this 254f38fcaSMauro Carvalho Chehab.. document under the terms of the GNU Free Documentation License, 354f38fcaSMauro Carvalho Chehab.. Version 1.1 or any later version published by the Free Software 454f38fcaSMauro Carvalho Chehab.. Foundation, with no Invariant Sections, no Front-Cover Texts 554f38fcaSMauro Carvalho Chehab.. and no Back-Cover Texts. A copy of the license is included at 654f38fcaSMauro Carvalho Chehab.. Documentation/userspace-api/media/fdl-appendix.rst. 754f38fcaSMauro Carvalho Chehab.. 854f38fcaSMauro Carvalho Chehab.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections 954f38fcaSMauro Carvalho Chehab 1054f38fcaSMauro Carvalho Chehab.. _cec-func-open: 1154f38fcaSMauro Carvalho Chehab 1254f38fcaSMauro Carvalho Chehab********** 1354f38fcaSMauro Carvalho Chehabcec open() 1454f38fcaSMauro Carvalho Chehab********** 1554f38fcaSMauro Carvalho Chehab 1654f38fcaSMauro Carvalho ChehabName 1754f38fcaSMauro Carvalho Chehab==== 1854f38fcaSMauro Carvalho Chehab 1954f38fcaSMauro Carvalho Chehabcec-open - Open a cec device 2054f38fcaSMauro Carvalho Chehab 2154f38fcaSMauro Carvalho ChehabSynopsis 2254f38fcaSMauro Carvalho Chehab======== 2354f38fcaSMauro Carvalho Chehab 2454f38fcaSMauro Carvalho Chehab.. code-block:: c 2554f38fcaSMauro Carvalho Chehab 2654f38fcaSMauro Carvalho Chehab #include <fcntl.h> 2754f38fcaSMauro Carvalho Chehab 2854f38fcaSMauro Carvalho Chehab 2954f38fcaSMauro Carvalho Chehab.. c:function:: int open( const char *device_name, int flags ) 3054f38fcaSMauro Carvalho Chehab :name: cec-open 3154f38fcaSMauro Carvalho Chehab 3254f38fcaSMauro Carvalho Chehab 3354f38fcaSMauro Carvalho ChehabArguments 3454f38fcaSMauro Carvalho Chehab========= 3554f38fcaSMauro Carvalho Chehab 3654f38fcaSMauro Carvalho Chehab``device_name`` 3754f38fcaSMauro Carvalho Chehab Device to be opened. 3854f38fcaSMauro Carvalho Chehab 3954f38fcaSMauro Carvalho Chehab``flags`` 4054f38fcaSMauro Carvalho Chehab Open flags. Access mode must be ``O_RDWR``. 4154f38fcaSMauro Carvalho Chehab 4254f38fcaSMauro Carvalho Chehab When the ``O_NONBLOCK`` flag is given, the 4354f38fcaSMauro Carvalho Chehab :ref:`CEC_RECEIVE <CEC_RECEIVE>` and :ref:`CEC_DQEVENT <CEC_DQEVENT>` ioctls 4454f38fcaSMauro Carvalho Chehab will return the ``EAGAIN`` error code when no message or event is available, and 4554f38fcaSMauro Carvalho Chehab ioctls :ref:`CEC_TRANSMIT <CEC_TRANSMIT>`, 4654f38fcaSMauro Carvalho Chehab :ref:`CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>` and 4754f38fcaSMauro Carvalho Chehab :ref:`CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` 4854f38fcaSMauro Carvalho Chehab all return 0. 4954f38fcaSMauro Carvalho Chehab 5054f38fcaSMauro Carvalho Chehab Other flags have no effect. 5154f38fcaSMauro Carvalho Chehab 5254f38fcaSMauro Carvalho Chehab 5354f38fcaSMauro Carvalho ChehabDescription 5454f38fcaSMauro Carvalho Chehab=========== 5554f38fcaSMauro Carvalho Chehab 5654f38fcaSMauro Carvalho ChehabTo open a cec device applications call :c:func:`open() <cec-open>` with the 5754f38fcaSMauro Carvalho Chehabdesired device name. The function has no side effects; the device 5854f38fcaSMauro Carvalho Chehabconfiguration remain unchanged. 5954f38fcaSMauro Carvalho Chehab 6054f38fcaSMauro Carvalho ChehabWhen the device is opened in read-only mode, attempts to modify its 6154f38fcaSMauro Carvalho Chehabconfiguration will result in an error, and ``errno`` will be set to 6254f38fcaSMauro Carvalho ChehabEBADF. 6354f38fcaSMauro Carvalho Chehab 6454f38fcaSMauro Carvalho Chehab 6554f38fcaSMauro Carvalho ChehabReturn Value 6654f38fcaSMauro Carvalho Chehab============ 6754f38fcaSMauro Carvalho Chehab 6854f38fcaSMauro Carvalho Chehab:c:func:`open() <cec-open>` returns the new file descriptor on success. On error, 6954f38fcaSMauro Carvalho Chehab-1 is returned, and ``errno`` is set appropriately. Possible error codes 7054f38fcaSMauro Carvalho Chehabinclude: 7154f38fcaSMauro Carvalho Chehab 7254f38fcaSMauro Carvalho Chehab``EACCES`` 7354f38fcaSMauro Carvalho Chehab The requested access to the file is not allowed. 7454f38fcaSMauro Carvalho Chehab 7554f38fcaSMauro Carvalho Chehab``EMFILE`` 7654f38fcaSMauro Carvalho Chehab The process already has the maximum number of files open. 7754f38fcaSMauro Carvalho Chehab 7854f38fcaSMauro Carvalho Chehab``ENFILE`` 7954f38fcaSMauro Carvalho Chehab The system limit on the total number of open files has been reached. 8054f38fcaSMauro Carvalho Chehab 8154f38fcaSMauro Carvalho Chehab``ENOMEM`` 8254f38fcaSMauro Carvalho Chehab Insufficient kernel memory was available. 8354f38fcaSMauro Carvalho Chehab 8454f38fcaSMauro Carvalho Chehab``ENXIO`` 8554f38fcaSMauro Carvalho Chehab No device corresponding to this device special file exists. 86