Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / userspace-api / media / cec / cec-func-open.rst
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2 .. c:namespace:: CEC
3
4 .. _cec-func-open:
5
6 **********
7 cec open()
8 **********
9
10 Name
11 ====
12
13 cec-open - Open a cec device
14
15 Synopsis
16 ========
17
18 .. code-block:: c
19
20     #include <fcntl.h>
21
22 .. c:function:: int open( const char *device_name, int flags )
23
24 Arguments
25 =========
26
27 ``device_name``
28     Device to be opened.
29
30 ``flags``
31     Open flags. Access mode must be ``O_RDWR``.
32
33     When the ``O_NONBLOCK`` flag is given, the
34     :ref:`CEC_RECEIVE <CEC_RECEIVE>` and :ref:`CEC_DQEVENT <CEC_DQEVENT>` ioctls
35     will return the ``EAGAIN`` error code when no message or event is available, and
36     ioctls :ref:`CEC_TRANSMIT <CEC_TRANSMIT>`,
37     :ref:`CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>` and
38     :ref:`CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
39     all return 0.
40
41     Other flags have no effect.
42
43 Description
44 ===========
45
46 To open a cec device applications call :c:func:`open()` with the
47 desired device name. The function has no side effects; the device
48 configuration remain unchanged.
49
50 When the device is opened in read-only mode, attempts to modify its
51 configuration will result in an error, and ``errno`` will be set to
52 EBADF.
53
54 Return Value
55 ============
56
57 :c:func:`open()` returns the new file descriptor on success. On error,
58 -1 is returned, and ``errno`` is set appropriately. Possible error codes
59 include:
60
61 ``EACCES``
62     The requested access to the file is not allowed.
63
64 ``EMFILE``
65     The process already has the maximum number of files open.
66
67 ``ENFILE``
68     The system limit on the total number of open files has been reached.
69
70 ``ENOMEM``
71     Insufficient kernel memory was available.
72
73 ``ENXIO``
74     No device corresponding to this device special file exists.