1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2 3.. _func-open: 4 5*********** 6V4L2 open() 7*********** 8 9Name 10==== 11 12v4l2-open - Open a V4L2 device 13 14 15Synopsis 16======== 17 18.. code-block:: c 19 20 #include <fcntl.h> 21 22 23.. c:function:: int open( const char *device_name, int flags ) 24 :name: v4l2-open 25 26Arguments 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 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. 43 44 Other flags have no effect. 45 46 47Description 48=========== 49 50To open a V4L2 device applications call :ref:`open() <func-open>` with the 51desired device name. This function has no side effects; all data format 52parameters, current input or output, control values or other properties 53remain unchanged. At the first :ref:`open() <func-open>` call after loading the 54driver they will be reset to default values, drivers are never in an 55undefined state. 56 57 58Return Value 59============ 60 61On success :ref:`open() <func-open>` returns the new file descriptor. On error 62-1 is returned, and the ``errno`` variable is set appropriately. 63Possible error codes are: 64 65EACCES 66 The caller has no permission to access the device. 67 68EBUSY 69 The driver does not support multiple opens and the device is already 70 in use. 71 72ENXIO 73 No device corresponding to this device special file exists. 74 75ENOMEM 76 Not enough kernel memory was available to complete the request. 77 78EMFILE 79 The process already has the maximum number of files open. 80 81ENFILE 82 The limit on the total number of files open on the system has been 83 reached. 84