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-write.rst (2009B)


      1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
      2.. c:namespace:: V4L
      3
      4.. _func-write:
      5
      6************
      7V4L2 write()
      8************
      9
     10Name
     11====
     12
     13v4l2-write - Write to a V4L2 device
     14
     15Synopsis
     16========
     17
     18.. code-block:: c
     19
     20    #include <unistd.h>
     21
     22.. c:function:: ssize_t write( int fd, void *buf, size_t count )
     23
     24Arguments
     25=========
     26
     27``fd``
     28    File descriptor returned by :c:func:`open()`.
     29
     30``buf``
     31     Buffer with data to be written
     32
     33``count``
     34    Number of bytes at the buffer
     35
     36Description
     37===========
     38
     39:c:func:`write()` writes up to ``count`` bytes to the device
     40referenced by the file descriptor ``fd`` from the buffer starting at
     41``buf``. When the hardware outputs are not active yet, this function
     42enables them. When ``count`` is zero, :c:func:`write()` returns 0
     43without any other effect.
     44
     45When the application does not provide more data in time, the previous
     46video frame, raw VBI image, sliced VPS or WSS data is displayed again.
     47Sliced Teletext or Closed Caption data is not repeated, the driver
     48inserts a blank line instead.
     49
     50Return Value
     51============
     52
     53On success, the number of bytes written are returned. Zero indicates
     54nothing was written. On error, -1 is returned, and the ``errno``
     55variable is set appropriately. In this case the next write will start at
     56the beginning of a new frame. Possible error codes are:
     57
     58EAGAIN
     59    Non-blocking I/O has been selected using the
     60    :ref:`O_NONBLOCK <func-open>` flag and no buffer space was
     61    available to write the data immediately.
     62
     63EBADF
     64    ``fd`` is not a valid file descriptor or is not open for writing.
     65
     66EBUSY
     67    The driver does not support multiple write streams and the device is
     68    already in use.
     69
     70EFAULT
     71    ``buf`` references an inaccessible memory area.
     72
     73EINTR
     74    The call was interrupted by a signal before any data was written.
     75
     76EIO
     77    I/O error. This indicates some hardware problem.
     78
     79EINVAL
     80    The :c:func:`write()` function is not supported by this driver,
     81    not on this device, or generally not on this type of device.