]>
Commit | Line | Data |
---|---|---|
5377d91f MH |
1 | .. -*- coding: utf-8; mode: rst -*- |
2 | ||
3 | .. _func-open: | |
4 | ||
5 | *********** | |
6 | V4L2 open() | |
7 | *********** | |
8 | ||
15e7d615 | 9 | Name |
586027ce | 10 | ==== |
5377d91f | 11 | |
586027ce | 12 | v4l2-open - Open a V4L2 device |
5377d91f | 13 | |
15e7d615 MCC |
14 | |
15 | Synopsis | |
5377d91f MH |
16 | ======== |
17 | ||
18 | .. code-block:: c | |
19 | ||
20 | #include <fcntl.h> | |
21 | ||
22 | ||
1b81f010 | 23 | .. c:function:: int open( const char *device_name, int flags ) |
41d80465 | 24 | :name: v4l2-open |
586027ce | 25 | |
15e7d615 | 26 | Arguments |
5377d91f MH |
27 | ========= |
28 | ||
29 | ``device_name`` | |
30 | Device to be opened. | |
31 | ||
32 | ``flags`` | |
33 | Open flags. Access mode must be ``O_RDWR``. This is just a | |
34 | technicality, input devices still support only reading and output | |
35 | devices only writing. | |
36 | ||
f84dd900 MCC |
37 | When the ``O_NONBLOCK`` flag is given, the :ref:`read() <func-read>` |
38 | function and the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will | |
39 | return the ``EAGAIN`` error code when no data is available or no | |
40 | buffer is in the driver outgoing queue, otherwise these functions | |
41 | block until data becomes available. All V4L2 drivers exchanging data | |
42 | with applications must support the ``O_NONBLOCK`` flag. | |
5377d91f MH |
43 | |
44 | Other flags have no effect. | |
45 | ||
46 | ||
15e7d615 | 47 | Description |
5377d91f MH |
48 | =========== |
49 | ||
760c7010 | 50 | To open a V4L2 device applications call :ref:`open() <func-open>` with the |
5377d91f MH |
51 | desired device name. This function has no side effects; all data format |
52 | parameters, current input or output, control values or other properties | |
760c7010 | 53 | remain unchanged. At the first :ref:`open() <func-open>` call after loading the |
5377d91f MH |
54 | driver they will be reset to default values, drivers are never in an |
55 | undefined state. | |
56 | ||
57 | ||
15e7d615 | 58 | Return Value |
5377d91f MH |
59 | ============ |
60 | ||
760c7010 | 61 | On success :ref:`open() <func-open>` returns the new file descriptor. On error |
5377d91f MH |
62 | -1 is returned, and the ``errno`` variable is set appropriately. |
63 | Possible error codes are: | |
64 | ||
65 | EACCES | |
66 | The caller has no permission to access the device. | |
67 | ||
68 | EBUSY | |
69 | The driver does not support multiple opens and the device is already | |
70 | in use. | |
71 | ||
72 | ENXIO | |
73 | No device corresponding to this device special file exists. | |
74 | ||
75 | ENOMEM | |
76 | Not enough kernel memory was available to complete the request. | |
77 | ||
78 | EMFILE | |
79 | The process already has the maximum number of files open. | |
80 | ||
81 | ENFILE | |
82 | The limit on the total number of files open on the system has been | |
83 | reached. |