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

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/dvb/dmx-expbuf.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 ] ~

  1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2 .. c:namespace:: DTV.dmx
  3 
  4 .. _DMX_EXPBUF:
  5 
  6 ****************
  7 ioctl DMX_EXPBUF
  8 ****************
  9 
 10 Name
 11 ====
 12 
 13 DMX_EXPBUF - Export a buffer as a DMABUF file descriptor.
 14 
 15 .. warning:: this API is still experimental
 16 
 17 Synopsis
 18 ========
 19 
 20 .. c:macro:: DMX_EXPBUF
 21 
 22 ``int ioctl(int fd, DMX_EXPBUF, struct dmx_exportbuffer *argp)``
 23 
 24 Arguments
 25 =========
 26 
 27 ``fd``
 28     File descriptor returned by :c:func:`open()`.
 29 
 30 ``argp``
 31     Pointer to struct :c:type:`dmx_exportbuffer`.
 32 
 33 Description
 34 ===========
 35 
 36 This ioctl is an extension to the memory mapping I/O method.
 37 It can be used to export a buffer as a DMABUF file at any time after
 38 buffers have been allocated with the :ref:`DMX_REQBUFS` ioctl.
 39 
 40 To export a buffer, applications fill struct :c:type:`dmx_exportbuffer`.
 41 Applications must set the ``index`` field. Valid index numbers
 42 range from zero to the number of buffers allocated with :ref:`DMX_REQBUFS`
 43 (struct :c:type:`dmx_requestbuffers` ``count``) minus one.
 44 Additional flags may be posted in the ``flags`` field. Refer to a manual
 45 for open() for details. Currently only O_CLOEXEC, O_RDONLY, O_WRONLY,
 46 and O_RDWR are supported.
 47 All other fields must be set to zero. In the
 48 case of multi-planar API, every plane is exported separately using
 49 multiple :ref:`DMX_EXPBUF` calls.
 50 
 51 After calling :ref:`DMX_EXPBUF` the ``fd`` field will be set by a
 52 driver, on success. This is a DMABUF file descriptor. The application may
 53 pass it to other DMABUF-aware devices. It is recommended to close a DMABUF
 54 file when it is no longer used to allow the associated memory to be reclaimed.
 55 
 56 Examples
 57 ========
 58 
 59 .. code-block:: c
 60 
 61     int buffer_export(int v4lfd, enum dmx_buf_type bt, int index, int *dmafd)
 62     {
 63         struct dmx_exportbuffer expbuf;
 64 
 65         memset(&expbuf, 0, sizeof(expbuf));
 66         expbuf.type = bt;
 67         expbuf.index = index;
 68         if (ioctl(v4lfd, DMX_EXPBUF, &expbuf) == -1) {
 69             perror("DMX_EXPBUF");
 70             return -1;
 71         }
 72 
 73         *dmafd = expbuf.fd;
 74 
 75         return 0;
 76     }
 77 
 78 Return Value
 79 ============
 80 
 81 On success 0 is returned, on error -1 and the ``errno`` variable is set
 82 appropriately. The generic error codes are described at the
 83 :ref:`Generic Error Codes <gen-errors>` chapter.
 84 
 85 EINVAL
 86     A queue is not in MMAP mode or DMABUF exporting is not supported or
 87     ``flags`` or ``index`` fields are invalid.

~ [ 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