• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
75