cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

func-open.rst (2018B)


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