Merge commit '81fd23e2b3ccf71c807e671444e8accaba98ca53' of https://git.pengutronix...
[linux-2.6-microblaze.git] / Documentation / userspace-api / media / dvb / dmx-fread.rst
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2 .. c:namespace:: DTV.dmx
3
4 .. _dmx_fread:
5
6 =======================
7 Digital TV demux read()
8 =======================
9
10 Name
11 ----
12
13 Digital TV demux read()
14
15 Synopsis
16 --------
17
18 .. c:function:: size_t read(int fd, void *buf, size_t count)
19
20 Arguments
21 ---------
22
23 ``fd``
24   File descriptor returned by a previous call to :c:func:`open()`.
25
26  ``buf``
27    Buffer to be filled
28
29 ``count``
30    Max number of bytes to read
31
32 Description
33 -----------
34
35 This system call returns filtered data, which might be section or Packetized
36 Elementary Stream (PES) data. The filtered data is transferred from
37 the driver's internal circular buffer to ``buf``. The maximum amount of data
38 to be transferred is implied by count.
39
40 .. note::
41
42    if a section filter created with
43    :c:type:`DMX_CHECK_CRC <dmx_sct_filter_params>` flag set,
44    data that fails on CRC check will be silently ignored.
45
46 Return Value
47 ------------
48
49 On success 0 is returned.
50
51 On error -1 is returned, and the ``errno`` variable is set
52 appropriately.
53
54 .. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
55
56 .. flat-table::
57     :header-rows:  0
58     :stub-columns: 0
59     :widths: 1 16
60
61     -  -  ``EWOULDBLOCK``
62        -  No data to return and ``O_NONBLOCK`` was specified.
63
64     -  -  ``EOVERFLOW``
65        -  The filtered data was not read from the buffer in due time,
66           resulting in non-read data being lost. The buffer is flushed.
67
68     -  -  ``ETIMEDOUT``
69        -  The section was not loaded within the stated timeout period.
70           See ioctl :ref:`DMX_SET_FILTER` for how to set a timeout.
71
72     -  -  ``EFAULT``
73        -  The driver failed to write to the callers buffer due to an
74           invalid \*buf pointer.
75
76 The generic error codes are described at the
77 :ref:`Generic Error Codes <gen-errors>` chapter.