Blame view

kernel/linux-rt-4.4.41/Documentation/DocBook/media/v4l/func-write.xml 3.78 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
  <refentry id="func-write">
    <refmeta>
      <refentrytitle>V4L2 write()</refentrytitle>
      &manvol;
    </refmeta>
  
    <refnamediv>
      <refname>v4l2-write</refname>
      <refpurpose>Write to a V4L2 device</refpurpose>
    </refnamediv>
  
    <refsynopsisdiv>
      <funcsynopsis>
        <funcsynopsisinfo>#include &lt;unistd.h&gt;</funcsynopsisinfo>
        <funcprototype>
  	<funcdef>ssize_t <function>write</function></funcdef>
  	<paramdef>int <parameter>fd</parameter></paramdef>
  	<paramdef>void *<parameter>buf</parameter></paramdef>
  	<paramdef>size_t <parameter>count</parameter></paramdef>
        </funcprototype>
      </funcsynopsis>
    </refsynopsisdiv>
  
    <refsect1>
      <title>Arguments</title>
  
      <variablelist>
        <varlistentry>
  	<term><parameter>fd</parameter></term>
  	<listitem>
  	  <para>&fd;</para>
  	</listitem>
        </varlistentry>
        <varlistentry>
  	<term><parameter>buf</parameter></term>
  	<listitem>
  	  <para></para>
  	</listitem>
        </varlistentry>
        <varlistentry>
  	<term><parameter>count</parameter></term>
  	<listitem>
  	  <para></para>
  	</listitem>
        </varlistentry>
      </variablelist>
    </refsect1>
  
    <refsect1>
      <title>Description</title>
  
      <para><function>write()</function> writes up to
  <parameter>count</parameter> bytes to the device referenced by the
  file descriptor <parameter>fd</parameter> from the buffer starting at
  <parameter>buf</parameter>. When the hardware outputs are not active
  yet, this function enables them. When <parameter>count</parameter> is
  zero, <function>write()</function> returns
  <returnvalue>0</returnvalue> without any other effect.</para>
  
      <para>When the application does not provide more data in time, the
  previous video frame, raw VBI image, sliced VPS or WSS data is
  displayed again. Sliced Teletext or Closed Caption data is not
  repeated, the driver inserts a blank line instead.</para>
    </refsect1>
  
    <refsect1>
      <title>Return Value</title>
  
      <para>On success, the number of bytes written are returned. Zero
  indicates nothing was written. On error, <returnvalue>-1</returnvalue>
  is returned, and the <varname>errno</varname> variable is set
  appropriately. In this case the next write will start at the beginning
  of a new frame. Possible error codes are:</para>
  
      <variablelist>
        <varlistentry>
  	<term><errorcode>EAGAIN</errorcode></term>
  	<listitem>
  	  <para>Non-blocking I/O has been selected using the <link
  linkend="func-open"><constant>O_NONBLOCK</constant></link> flag and no
  buffer space was available to write the data immediately.</para>
  	</listitem>
        </varlistentry>
        <varlistentry>
  	<term><errorcode>EBADF</errorcode></term>
  	<listitem>
  	  <para><parameter>fd</parameter> is not a valid file
  descriptor or is not open for writing.</para>
  	</listitem>
        </varlistentry>
        <varlistentry>
  	<term><errorcode>EBUSY</errorcode></term>
  	<listitem>
  	  <para>The driver does not support multiple write streams and the
  device is already in use.</para>
  	</listitem>
        </varlistentry>
        <varlistentry>
  	<term><errorcode>EFAULT</errorcode></term>
  	<listitem>
  	  <para><parameter>buf</parameter> references an inaccessible
  memory area.</para>
  	</listitem>
        </varlistentry>
        <varlistentry>
  	<term><errorcode>EINTR</errorcode></term>
  	<listitem>
  	  <para>The call was interrupted by a signal before any
  data was written.</para>
  	</listitem>
        </varlistentry>
        <varlistentry>
  	<term><errorcode>EIO</errorcode></term>
  	<listitem>
  	  <para>I/O error. This indicates some hardware problem.</para>
  	</listitem>
        </varlistentry>
        <varlistentry>
  	<term><errorcode>EINVAL</errorcode></term>
  	<listitem>
  	  <para>The <function>write()</function> function is not
  supported by this driver, not on this device, or generally not on this
  type of device.</para>
  	</listitem>
        </varlistentry>
      </variablelist>
    </refsect1>
  </refentry>