1.. Permission is granted to copy, distribute and/or modify this 2.. document under the terms of the GNU Free Documentation License, 3.. Version 1.1 or any later version published by the Free Software 4.. Foundation, with no Invariant Sections, no Front-Cover Texts 5.. and no Back-Cover Texts. A copy of the license is included at 6.. Documentation/userspace-api/media/fdl-appendix.rst. 7.. 8.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections 9 10.. _VIDIOC_PREPARE_BUF: 11 12************************ 13ioctl VIDIOC_PREPARE_BUF 14************************ 15 16Name 17==== 18 19VIDIOC_PREPARE_BUF - Prepare a buffer for I/O 20 21 22Synopsis 23======== 24 25.. c:function:: int ioctl( int fd, VIDIOC_PREPARE_BUF, struct v4l2_buffer *argp ) 26 :name: VIDIOC_PREPARE_BUF 27 28 29Arguments 30========= 31 32``fd`` 33 File descriptor returned by :ref:`open() <func-open>`. 34 35``argp`` 36 Pointer to struct :c:type:`v4l2_buffer`. 37 38 39Description 40=========== 41 42Applications can optionally call the :ref:`VIDIOC_PREPARE_BUF` ioctl to 43pass ownership of the buffer to the driver before actually enqueuing it, 44using the :ref:`VIDIOC_QBUF <VIDIOC_QBUF>` ioctl, and to prepare it for future I/O. Such 45preparations may include cache invalidation or cleaning. Performing them 46in advance saves time during the actual I/O. 47 48The struct :c:type:`v4l2_buffer` structure is specified in 49:ref:`buffer`. 50 51 52Return Value 53============ 54 55On success 0 is returned, on error -1 and the ``errno`` variable is set 56appropriately. The generic error codes are described at the 57:ref:`Generic Error Codes <gen-errors>` chapter. 58 59EBUSY 60 File I/O is in progress. 61 62EINVAL 63 The buffer ``type`` is not supported, or the ``index`` is out of 64 bounds, or no buffers have been allocated yet, or the ``userptr`` or 65 ``length`` are invalid. 66