blob: 38fd7e0cfccd379ba332622a01dec59ab7764d84 [file] [log] [blame]
Markus Heisere2460b12016-07-08 20:55:42 +02001.. -*- coding: utf-8; mode: rst -*-
2
3.. _cec-func-open:
4
5**********
6cec open()
7**********
8
Markus Heiser21c62692016-07-08 20:55:43 +02009Name
10====
Markus Heisere2460b12016-07-08 20:55:42 +020011
Markus Heiser21c62692016-07-08 20:55:43 +020012cec-open - Open a cec device
Markus Heisere2460b12016-07-08 20:55:42 +020013
14Synopsis
15========
16
17.. code-block:: c
18
19 #include <fcntl.h>
20
21
Markus Heiser21c62692016-07-08 20:55:43 +020022.. cpp:function:: int open( const char *device_name, int flags )
23
Markus Heisere2460b12016-07-08 20:55:42 +020024
25Arguments
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
Hans Verkuile5208ed2016-07-19 06:26:13 -030035 :ref:`CEC_RECEIVE <CEC_RECEIVE>` and :ref:`CEC_DQEVENT <CEC_DQEVENT>` ioctls
36 will return the ``EAGAIN`` error code when no message or event is available, and
37 ioctls :ref:`CEC_TRANSMIT <CEC_TRANSMIT>`,
Hans Verkuil1267c602016-07-13 08:48:54 -030038 :ref:`CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>` and
39 :ref:`CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
Hans Verkuile5208ed2016-07-19 06:26:13 -030040 all return 0.
Markus Heisere2460b12016-07-08 20:55:42 +020041
42 Other flags have no effect.
43
44
45Description
46===========
47
Mauro Carvalho Chehab706f8a92016-07-10 11:57:43 -030048.. note:: This documents the proposed CEC API. This API is not yet finalized
49 and is currently only available as a staging kernel module.
Markus Heisere2460b12016-07-08 20:55:42 +020050
51To open a cec device applications call :c:func:`open()` with the
52desired device name. The function has no side effects; the device
53configuration remain unchanged.
54
55When the device is opened in read-only mode, attempts to modify its
56configuration will result in an error, and ``errno`` will be set to
57EBADF.
58
59
60Return 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
65include:
66
Mauro Carvalho Chehabb2a58432016-07-08 17:59:27 -030067``EACCES``
Markus Heisere2460b12016-07-08 20:55:42 +020068 The requested access to the file is not allowed.
69
Mauro Carvalho Chehabb2a58432016-07-08 17:59:27 -030070``EMFILE``
Markus Heisere2460b12016-07-08 20:55:42 +020071 The process already has the maximum number of files open.
72
Mauro Carvalho Chehabb2a58432016-07-08 17:59:27 -030073``ENFILE``
Markus Heisere2460b12016-07-08 20:55:42 +020074 The system limit on the total number of open files has been reached.
75
Mauro Carvalho Chehabb2a58432016-07-08 17:59:27 -030076``ENOMEM``
Markus Heisere2460b12016-07-08 20:55:42 +020077 Insufficient kernel memory was available.
78
Mauro Carvalho Chehabb2a58432016-07-08 17:59:27 -030079``ENXIO``
Markus Heisere2460b12016-07-08 20:55:42 +020080 No device corresponding to this device special file exists.