162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 262306a36Sopenharmony_ci.. c:namespace:: V4L 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci.. _VIDIOC_PREPARE_BUF: 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci************************ 762306a36Sopenharmony_ciioctl VIDIOC_PREPARE_BUF 862306a36Sopenharmony_ci************************ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciName 1162306a36Sopenharmony_ci==== 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciVIDIOC_PREPARE_BUF - Prepare a buffer for I/O 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciSynopsis 1662306a36Sopenharmony_ci======== 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci.. c:macro:: VIDIOC_PREPARE_BUF 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci``int ioctl(int fd, VIDIOC_PREPARE_BUF, struct v4l2_buffer *argp)`` 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciArguments 2362306a36Sopenharmony_ci========= 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci``fd`` 2662306a36Sopenharmony_ci File descriptor returned by :c:func:`open()`. 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci``argp`` 2962306a36Sopenharmony_ci Pointer to struct :c:type:`v4l2_buffer`. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciDescription 3262306a36Sopenharmony_ci=========== 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciApplications can optionally call the :ref:`VIDIOC_PREPARE_BUF` ioctl to 3562306a36Sopenharmony_cipass ownership of the buffer to the driver before actually enqueuing it, 3662306a36Sopenharmony_ciusing the :ref:`VIDIOC_QBUF <VIDIOC_QBUF>` ioctl, and to prepare it for future I/O. Such 3762306a36Sopenharmony_cipreparations may include cache invalidation or cleaning. Performing them 3862306a36Sopenharmony_ciin advance saves time during the actual I/O. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciThe struct :c:type:`v4l2_buffer` structure is specified in 4162306a36Sopenharmony_ci:ref:`buffer`. 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciReturn Value 4462306a36Sopenharmony_ci============ 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciOn success 0 is returned, on error -1 and the ``errno`` variable is set 4762306a36Sopenharmony_ciappropriately. The generic error codes are described at the 4862306a36Sopenharmony_ci:ref:`Generic Error Codes <gen-errors>` chapter. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciEBUSY 5162306a36Sopenharmony_ci File I/O is in progress. 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciEINVAL 5462306a36Sopenharmony_ci The buffer ``type`` is not supported, or the ``index`` is out of 5562306a36Sopenharmony_ci bounds, or no buffers have been allocated yet, or the ``userptr`` or 5662306a36Sopenharmony_ci ``length`` are invalid. 57