xref: /linux/Documentation/userspace-api/media/dvb/dmx-fread.rst (revision 059b1c5b15579b09c3787c3a3f843574233ab976)
1059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
254f38fcaSMauro Carvalho Chehab
354f38fcaSMauro Carvalho Chehab.. _dmx_fread:
454f38fcaSMauro Carvalho Chehab
554f38fcaSMauro Carvalho Chehab=======================
654f38fcaSMauro Carvalho ChehabDigital TV demux read()
754f38fcaSMauro Carvalho Chehab=======================
854f38fcaSMauro Carvalho Chehab
954f38fcaSMauro Carvalho ChehabName
1054f38fcaSMauro Carvalho Chehab----
1154f38fcaSMauro Carvalho Chehab
1254f38fcaSMauro Carvalho ChehabDigital TV demux read()
1354f38fcaSMauro Carvalho Chehab
1454f38fcaSMauro Carvalho Chehab
1554f38fcaSMauro Carvalho ChehabSynopsis
1654f38fcaSMauro Carvalho Chehab--------
1754f38fcaSMauro Carvalho Chehab
1854f38fcaSMauro Carvalho Chehab.. c:function:: size_t read(int fd, void *buf, size_t count)
1954f38fcaSMauro Carvalho Chehab    :name: dvb-dmx-read
2054f38fcaSMauro Carvalho Chehab
2154f38fcaSMauro Carvalho ChehabArguments
2254f38fcaSMauro Carvalho Chehab---------
2354f38fcaSMauro Carvalho Chehab
2454f38fcaSMauro Carvalho Chehab``fd``
2554f38fcaSMauro Carvalho Chehab  File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
2654f38fcaSMauro Carvalho Chehab
2754f38fcaSMauro Carvalho Chehab ``buf``
2854f38fcaSMauro Carvalho Chehab   Buffer to be filled
2954f38fcaSMauro Carvalho Chehab
3054f38fcaSMauro Carvalho Chehab``count``
3154f38fcaSMauro Carvalho Chehab   Max number of bytes to read
3254f38fcaSMauro Carvalho Chehab
3354f38fcaSMauro Carvalho ChehabDescription
3454f38fcaSMauro Carvalho Chehab-----------
3554f38fcaSMauro Carvalho Chehab
3654f38fcaSMauro Carvalho ChehabThis system call returns filtered data, which might be section or Packetized
3754f38fcaSMauro Carvalho ChehabElementary Stream (PES) data. The filtered data is transferred from
3854f38fcaSMauro Carvalho Chehabthe driver’s internal circular buffer to ``buf``. The maximum amount of data
3954f38fcaSMauro Carvalho Chehabto be transferred is implied by count.
4054f38fcaSMauro Carvalho Chehab
4154f38fcaSMauro Carvalho Chehab.. note::
4254f38fcaSMauro Carvalho Chehab
4354f38fcaSMauro Carvalho Chehab   if a section filter created with
4454f38fcaSMauro Carvalho Chehab   :c:type:`DMX_CHECK_CRC <dmx_sct_filter_params>` flag set,
4554f38fcaSMauro Carvalho Chehab   data that fails on CRC check will be silently ignored.
4654f38fcaSMauro Carvalho Chehab
4754f38fcaSMauro Carvalho Chehab
4854f38fcaSMauro Carvalho ChehabReturn Value
4954f38fcaSMauro Carvalho Chehab------------
5054f38fcaSMauro Carvalho Chehab
5154f38fcaSMauro Carvalho ChehabOn success 0 is returned.
5254f38fcaSMauro Carvalho Chehab
5354f38fcaSMauro Carvalho ChehabOn error -1 is returned, and the ``errno`` variable is set
5454f38fcaSMauro Carvalho Chehabappropriately.
5554f38fcaSMauro Carvalho Chehab
5654f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
5754f38fcaSMauro Carvalho Chehab
5854f38fcaSMauro Carvalho Chehab.. flat-table::
5954f38fcaSMauro Carvalho Chehab    :header-rows:  0
6054f38fcaSMauro Carvalho Chehab    :stub-columns: 0
6154f38fcaSMauro Carvalho Chehab    :widths: 1 16
6254f38fcaSMauro Carvalho Chehab
6354f38fcaSMauro Carvalho Chehab    -  -  ``EWOULDBLOCK``
6454f38fcaSMauro Carvalho Chehab       -  No data to return and ``O_NONBLOCK`` was specified.
6554f38fcaSMauro Carvalho Chehab
6654f38fcaSMauro Carvalho Chehab    -  -  ``EOVERFLOW``
6754f38fcaSMauro Carvalho Chehab       -  The filtered data was not read from the buffer in due time,
6854f38fcaSMauro Carvalho Chehab	  resulting in non-read data being lost. The buffer is flushed.
6954f38fcaSMauro Carvalho Chehab
7054f38fcaSMauro Carvalho Chehab    -  -  ``ETIMEDOUT``
7154f38fcaSMauro Carvalho Chehab       -  The section was not loaded within the stated timeout period.
7254f38fcaSMauro Carvalho Chehab          See ioctl :ref:`DMX_SET_FILTER` for how to set a timeout.
7354f38fcaSMauro Carvalho Chehab
7454f38fcaSMauro Carvalho Chehab    -  -  ``EFAULT``
7554f38fcaSMauro Carvalho Chehab       -  The driver failed to write to the callers buffer due to an
7654f38fcaSMauro Carvalho Chehab          invalid \*buf pointer.
7754f38fcaSMauro Carvalho Chehab
7854f38fcaSMauro Carvalho Chehab
7954f38fcaSMauro Carvalho ChehabThe generic error codes are described at the
8054f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter.
81