xref: /linux/Documentation/userspace-api/media/cec/cec-func-open.rst (revision a98f670e41a99f53acb1fb33cee9c6abbb2e6f23)
1.. Permission is granted to copy, distribute and/or modify this
2.. document under the terms of the GNU Free Documentation License,
3.. Version 1.1 or any later version published by the Free Software
4.. Foundation, with no Invariant Sections, no Front-Cover Texts
5.. and no Back-Cover Texts. A copy of the license is included at
6.. Documentation/userspace-api/media/fdl-appendix.rst.
7..
8.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
9
10.. _cec-func-open:
11
12**********
13cec open()
14**********
15
16Name
17====
18
19cec-open - Open a cec device
20
21Synopsis
22========
23
24.. code-block:: c
25
26    #include <fcntl.h>
27
28
29.. c:function:: int open( const char *device_name, int flags )
30   :name: cec-open
31
32
33Arguments
34=========
35
36``device_name``
37    Device to be opened.
38
39``flags``
40    Open flags. Access mode must be ``O_RDWR``.
41
42    When the ``O_NONBLOCK`` flag is given, the
43    :ref:`CEC_RECEIVE <CEC_RECEIVE>` and :ref:`CEC_DQEVENT <CEC_DQEVENT>` ioctls
44    will return the ``EAGAIN`` error code when no message or event is available, and
45    ioctls :ref:`CEC_TRANSMIT <CEC_TRANSMIT>`,
46    :ref:`CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>` and
47    :ref:`CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
48    all return 0.
49
50    Other flags have no effect.
51
52
53Description
54===========
55
56To open a cec device applications call :c:func:`open() <cec-open>` with the
57desired device name. The function has no side effects; the device
58configuration remain unchanged.
59
60When the device is opened in read-only mode, attempts to modify its
61configuration will result in an error, and ``errno`` will be set to
62EBADF.
63
64
65Return Value
66============
67
68:c:func:`open() <cec-open>` returns the new file descriptor on success. On error,
69-1 is returned, and ``errno`` is set appropriately. Possible error codes
70include:
71
72``EACCES``
73    The requested access to the file is not allowed.
74
75``EMFILE``
76    The process already has the maximum number of files open.
77
78``ENFILE``
79    The system limit on the total number of open files has been reached.
80
81``ENOMEM``
82    Insufficient kernel memory was available.
83
84``ENXIO``
85    No device corresponding to this device special file exists.
86