Commit | Line | Data |
---|---|---|
e2460b1d MH |
1 | .. -*- coding: utf-8; mode: rst -*- |
2 | ||
3 | .. _cec-func-open: | |
4 | ||
5 | ********** | |
6 | cec open() | |
7 | ********** | |
8 | ||
21c62694 MH |
9 | Name |
10 | ==== | |
e2460b1d | 11 | |
21c62694 | 12 | cec-open - Open a cec device |
e2460b1d MH |
13 | |
14 | Synopsis | |
15 | ======== | |
16 | ||
17 | .. code-block:: c | |
18 | ||
19 | #include <fcntl.h> | |
20 | ||
21 | ||
21c62694 MH |
22 | .. cpp:function:: int open( const char *device_name, int flags ) |
23 | ||
e2460b1d MH |
24 | |
25 | Arguments | |
26 | ========= | |
27 | ||
28 | ``device_name`` | |
29 | Device to be opened. | |
30 | ||
31 | ``flags`` | |
32 | Open flags. Access mode must be ``O_RDWR``. | |
33 | ||
34 | When the ``O_NONBLOCK`` flag is given, the | |
21c62694 | 35 | :ref:`CEC_RECEIVE` ioctl will return EAGAIN |
e2460b1d | 36 | error code when no message is available, and the |
21c62694 MH |
37 | :ref:`CEC_TRANSMIT`, |
38 | :ref:`CEC_ADAP_S_PHYS_ADDR` and | |
39 | :ref:`CEC_ADAP_S_LOG_ADDRS` ioctls | |
e2460b1d MH |
40 | all act in non-blocking mode. |
41 | ||
42 | Other flags have no effect. | |
43 | ||
44 | ||
45 | Description | |
46 | =========== | |
47 | ||
48 | Note: this documents the proposed CEC API. This API is not yet finalized | |
49 | and is currently only available as a staging kernel module. | |
50 | ||
51 | To open a cec device applications call :c:func:`open()` with the | |
52 | desired device name. The function has no side effects; the device | |
53 | configuration remain unchanged. | |
54 | ||
55 | When the device is opened in read-only mode, attempts to modify its | |
56 | configuration will result in an error, and ``errno`` will be set to | |
57 | EBADF. | |
58 | ||
59 | ||
60 | Return Value | |
61 | ============ | |
62 | ||
63 | :c:func:`open()` returns the new file descriptor on success. On error, | |
64 | -1 is returned, and ``errno`` is set appropriately. Possible error codes | |
65 | include: | |
66 | ||
b2a58436 | 67 | ``EACCES`` |
e2460b1d MH |
68 | The requested access to the file is not allowed. |
69 | ||
b2a58436 | 70 | ``EMFILE`` |
e2460b1d MH |
71 | The process already has the maximum number of files open. |
72 | ||
b2a58436 | 73 | ``ENFILE`` |
e2460b1d MH |
74 | The system limit on the total number of open files has been reached. |
75 | ||
b2a58436 | 76 | ``ENOMEM`` |
e2460b1d MH |
77 | Insufficient kernel memory was available. |
78 | ||
b2a58436 | 79 | ``ENXIO`` |
e2460b1d | 80 | No device corresponding to this device special file exists. |