Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[linux/fpc-iii.git] / Documentation / media / uapi / rc / lirc-write.rst
blob3b035c6613b1b4656ef4abdd84048c10d79c88a8
1 .. -*- coding: utf-8; mode: rst -*-
3 .. _lirc-write:
5 ************
6 LIRC write()
7 ************
9 Name
10 ====
12 lirc-write - Write to a LIRC device
15 Synopsis
16 ========
18 .. code-block:: c
20     #include <unistd.h>
23 .. c:function:: ssize_t write( int fd, void *buf, size_t count )
24     :name: lirc-write
26 Arguments
27 =========
29 ``fd``
30     File descriptor returned by ``open()``.
32 ``buf``
33     Buffer with data to be written
35 ``count``
36     Number of bytes at the buffer
38 Description
39 ===========
41 :ref:`write() <lirc-write>` writes up to ``count`` bytes to the device
42 referenced by the file descriptor ``fd`` from the buffer starting at
43 ``buf``.
45 The data written to the chardev is a pulse/space sequence of integer
46 values. Pulses and spaces are only marked implicitly by their position.
47 The data must start and end with a pulse, therefore, the data must
48 always include an uneven number of samples. The write function must
49 block until the data has been transmitted by the hardware. If more data
50 is provided than the hardware can send, the driver returns ``EINVAL``.
53 Return Value
54 ============
56 On success, the number of bytes read is returned. It is not an error if
57 this number is smaller than the number of bytes requested, or the amount
58 of data required for one frame.  On error, -1 is returned, and the ``errno``
59 variable is set appropriately. The generic error codes are described at the
60 :ref:`Generic Error Codes <gen-errors>` chapter.