~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/dvb/dmx-qbuf.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/userspace-api/media/dvb/dmx-qbuf.rst (Architecture sparc64) and /Documentation/userspace-api/media/dvb/dmx-qbuf.rst (Architecture ppc)


  1 .. SPDX-License-Identifier: GFDL-1.1-no-invari      1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2 .. c:namespace:: DTV.dmx                            2 .. c:namespace:: DTV.dmx
  3                                                     3 
  4 .. _DMX_QBUF:                                       4 .. _DMX_QBUF:
  5                                                     5 
  6 *************************                           6 *************************
  7 ioctl DMX_QBUF, DMX_DQBUF                           7 ioctl DMX_QBUF, DMX_DQBUF
  8 *************************                           8 *************************
  9                                                     9 
 10 Name                                               10 Name
 11 ====                                               11 ====
 12                                                    12 
 13 DMX_QBUF - DMX_DQBUF - Exchange a buffer with      13 DMX_QBUF - DMX_DQBUF - Exchange a buffer with the driver
 14                                                    14 
 15 .. warning:: this API is still experimental        15 .. warning:: this API is still experimental
 16                                                    16 
 17 Synopsis                                           17 Synopsis
 18 ========                                           18 ========
 19                                                    19 
 20 .. c:macro:: DMX_QBUF                              20 .. c:macro:: DMX_QBUF
 21                                                    21 
 22 ``int ioctl(int fd, DMX_QBUF, struct dmx_buffe     22 ``int ioctl(int fd, DMX_QBUF, struct dmx_buffer *argp)``
 23                                                    23 
 24 .. c:macro:: DMX_DQBUF                             24 .. c:macro:: DMX_DQBUF
 25                                                    25 
 26 ``int ioctl(int fd, DMX_DQBUF, struct dmx_buff     26 ``int ioctl(int fd, DMX_DQBUF, struct dmx_buffer *argp)``
 27                                                    27 
 28 Arguments                                          28 Arguments
 29 =========                                          29 =========
 30                                                    30 
 31 ``fd``                                             31 ``fd``
 32     File descriptor returned by :c:func:`open(     32     File descriptor returned by :c:func:`open()`.
 33                                                    33 
 34 ``argp``                                           34 ``argp``
 35     Pointer to struct :c:type:`dmx_buffer`.        35     Pointer to struct :c:type:`dmx_buffer`.
 36                                                    36 
 37 Description                                        37 Description
 38 ===========                                        38 ===========
 39                                                    39 
 40 Applications call the ``DMX_QBUF`` ioctl to en     40 Applications call the ``DMX_QBUF`` ioctl to enqueue an empty
 41 (capturing) or filled (output) buffer in the d     41 (capturing) or filled (output) buffer in the driver's incoming queue.
 42 The semantics depend on the selected I/O metho     42 The semantics depend on the selected I/O method.
 43                                                    43 
 44 To enqueue a buffer applications set the ``ind     44 To enqueue a buffer applications set the ``index`` field. Valid index
 45 numbers range from zero to the number of buffe     45 numbers range from zero to the number of buffers allocated with
 46 :ref:`DMX_REQBUFS` (struct :c:type:`dmx_reques     46 :ref:`DMX_REQBUFS` (struct :c:type:`dmx_requestbuffers` ``count``) minus
 47 one. The contents of the struct :c:type:`dmx_b     47 one. The contents of the struct :c:type:`dmx_buffer` returned
 48 by a :ref:`DMX_QUERYBUF` ioctl will do as well     48 by a :ref:`DMX_QUERYBUF` ioctl will do as well.
 49                                                    49 
 50 When ``DMX_QBUF`` is called with a pointer to      50 When ``DMX_QBUF`` is called with a pointer to this structure, it locks the
 51 memory pages of the buffer in physical memory,     51 memory pages of the buffer in physical memory, so they cannot be swapped
 52 out to disk. Buffers remain locked until deque     52 out to disk. Buffers remain locked until dequeued, until the
 53 device is closed.                                  53 device is closed.
 54                                                    54 
 55 Applications call the ``DMX_DQBUF`` ioctl to d     55 Applications call the ``DMX_DQBUF`` ioctl to dequeue a filled
 56 (capturing) buffer from the driver's outgoing      56 (capturing) buffer from the driver's outgoing queue.
 57 They just set the ``index`` field with the buf     57 They just set the ``index`` field with the buffer ID to be queued.
 58 When ``DMX_DQBUF`` is called with a pointer to     58 When ``DMX_DQBUF`` is called with a pointer to struct :c:type:`dmx_buffer`,
 59 the driver fills the remaining fields or retur     59 the driver fills the remaining fields or returns an error code.
 60                                                    60 
 61 By default ``DMX_DQBUF`` blocks when no buffer     61 By default ``DMX_DQBUF`` blocks when no buffer is in the outgoing
 62 queue. When the ``O_NONBLOCK`` flag was given      62 queue. When the ``O_NONBLOCK`` flag was given to the
 63 :c:func:`open()` function, ``DMX_DQBUF`` retur     63 :c:func:`open()` function, ``DMX_DQBUF`` returns
 64 immediately with an ``EAGAIN`` error code when     64 immediately with an ``EAGAIN`` error code when no buffer is available.
 65                                                    65 
 66 The struct :c:type:`dmx_buffer` structure is s     66 The struct :c:type:`dmx_buffer` structure is specified in
 67 :ref:`buffer`.                                     67 :ref:`buffer`.
 68                                                    68 
 69 Return Value                                       69 Return Value
 70 ============                                       70 ============
 71                                                    71 
 72 On success 0 is returned, on error -1 and the      72 On success 0 is returned, on error -1 and the ``errno`` variable is set
 73 appropriately. The generic error codes are des     73 appropriately. The generic error codes are described at the
 74 :ref:`Generic Error Codes <gen-errors>` chapte     74 :ref:`Generic Error Codes <gen-errors>` chapter.
 75                                                    75 
 76 EAGAIN                                             76 EAGAIN
 77     Non-blocking I/O has been selected using `     77     Non-blocking I/O has been selected using ``O_NONBLOCK`` and no
 78     buffer was in the outgoing queue.              78     buffer was in the outgoing queue.
 79                                                    79 
 80 EINVAL                                             80 EINVAL
 81     The ``index`` is out of bounds, or no buff     81     The ``index`` is out of bounds, or no buffers have been allocated yet.
 82                                                    82 
 83 EIO                                                83 EIO
 84     ``DMX_DQBUF`` failed due to an internal er     84     ``DMX_DQBUF`` failed due to an internal error. Can also indicate
 85     temporary problems like signal loss or CRC     85     temporary problems like signal loss or CRC errors.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php