Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2.. c:namespace:: DTV.dmx
3
4.. _dmx_fread:
5
6=======================
7Digital TV demux read()
8=======================
9
10Name
11----
12
13Digital TV demux read()
14
15Synopsis
16--------
17
18.. c:function:: size_t read(int fd, void *buf, size_t count)
19
20Arguments
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
32Description
33-----------
34
35This system call returns filtered data, which might be section or Packetized
36Elementary Stream (PES) data. The filtered data is transferred from
37the driver's internal circular buffer to ``buf``. The maximum amount of data
38to 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
46Return Value
47------------
48
49On success 0 is returned.
50
51On error -1 is returned, and the ``errno`` variable is set
52appropriately.
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
76The generic error codes are described at the
77:ref:`Generic Error Codes <gen-errors>` chapter.