57 lines · plain
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later2.. c:namespace:: V4L3 4.. _VIDIOC_PREPARE_BUF:5 6************************7ioctl VIDIOC_PREPARE_BUF8************************9 10Name11====12 13VIDIOC_PREPARE_BUF - Prepare a buffer for I/O14 15Synopsis16========17 18.. c:macro:: VIDIOC_PREPARE_BUF19 20``int ioctl(int fd, VIDIOC_PREPARE_BUF, struct v4l2_buffer *argp)``21 22Arguments23=========24 25``fd``26 File descriptor returned by :c:func:`open()`.27 28``argp``29 Pointer to struct :c:type:`v4l2_buffer`.30 31Description32===========33 34Applications can optionally call the :ref:`VIDIOC_PREPARE_BUF` ioctl to35pass ownership of the buffer to the driver before actually enqueuing it,36using the :ref:`VIDIOC_QBUF <VIDIOC_QBUF>` ioctl, and to prepare it for future I/O. Such37preparations may include cache invalidation or cleaning. Performing them38in advance saves time during the actual I/O.39 40The struct :c:type:`v4l2_buffer` structure is specified in41:ref:`buffer`.42 43Return Value44============45 46On success 0 is returned, on error -1 and the ``errno`` variable is set47appropriately. The generic error codes are described at the48:ref:`Generic Error Codes <gen-errors>` chapter.49 50EBUSY51 File I/O is in progress.52 53EINVAL54 The buffer ``type`` is not supported, or the ``index`` is out of55 bounds, or no buffers have been allocated yet, or the ``userptr`` or56 ``length`` are invalid.57