Commit | Line | Data |
---|---|---|
5377d91f MH |
1 | .. -*- coding: utf-8; mode: rst -*- |
2 | ||
af4a4d0d | 3 | .. _VIDIOC_PREPARE_BUF: |
5377d91f MH |
4 | |
5 | ************************ | |
6 | ioctl VIDIOC_PREPARE_BUF | |
7 | ************************ | |
8 | ||
15e7d615 | 9 | Name |
586027ce | 10 | ==== |
5377d91f | 11 | |
586027ce | 12 | VIDIOC_PREPARE_BUF - Prepare a buffer for I/O |
5377d91f | 13 | |
15e7d615 MCC |
14 | |
15 | Synopsis | |
5377d91f MH |
16 | ======== |
17 | ||
b7e67f6c | 18 | .. cpp:function:: int ioctl( int fd, int request, struct v4l2_buffer *argp ) |
5377d91f | 19 | |
586027ce | 20 | |
15e7d615 | 21 | Arguments |
5377d91f MH |
22 | ========= |
23 | ||
24 | ``fd`` | |
25 | File descriptor returned by :ref:`open() <func-open>`. | |
26 | ||
27 | ``request`` | |
28 | VIDIOC_PREPARE_BUF | |
29 | ||
30 | ``argp`` | |
31 | ||
32 | ||
15e7d615 | 33 | Description |
5377d91f MH |
34 | =========== |
35 | ||
2212ff25 | 36 | Applications can optionally call the :ref:`VIDIOC_PREPARE_BUF` ioctl to |
5377d91f | 37 | pass ownership of the buffer to the driver before actually enqueuing it, |
2212ff25 | 38 | using the :ref:`VIDIOC_QBUF` ioctl, and to prepare it for future I/O. Such |
5377d91f MH |
39 | preparations may include cache invalidation or cleaning. Performing them |
40 | in advance saves time during the actual I/O. In case such cache | |
41 | operations are not required, the application can use one of | |
42 | ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE`` and | |
43 | ``V4L2_BUF_FLAG_NO_CACHE_CLEAN`` flags to skip the respective step. | |
44 | ||
acf309a2 | 45 | The :ref:`struct v4l2_buffer <v4l2-buffer>` structure is specified in |
5377d91f MH |
46 | :ref:`buffer`. |
47 | ||
48 | ||
15e7d615 | 49 | Return Value |
5377d91f MH |
50 | ============ |
51 | ||
52 | On success 0 is returned, on error -1 and the ``errno`` variable is set | |
53 | appropriately. The generic error codes are described at the | |
54 | :ref:`Generic Error Codes <gen-errors>` chapter. | |
55 | ||
56 | EBUSY | |
57 | File I/O is in progress. | |
58 | ||
59 | EINVAL | |
60 | The buffer ``type`` is not supported, or the ``index`` is out of | |
61 | bounds, or no buffers have been allocated yet, or the ``userptr`` or | |
62 | ``length`` are invalid. |