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