ioctl VIDIOC_PREPARE_BUF

&manvol;

VIDIOC_PREPARE_BUF

Prepare a buffer for I/O

    	int ioctl
    	int fd
    	int request
    	struct v4l2_buffer *argp

## Arguments

`fd`

- &fd;

`request`

- VIDIOC_PREPARE_BUF

`argp`

## Description

### Experimental

This is an experimental interface and may change in the future.

Applications can optionally call the `VIDIOC_PREPARE_BUF` ioctl to pass ownership of the buffer to the driver before actually enqueuing it, using the `VIDIOC_QBUF` ioctl, and to prepare it for future I/O. Such preparations may include cache invalidation or cleaning. Performing them in advance saves time during the actual I/O. In case such cache operations are not required, the application can use one of `V4L2_BUF_FLAG_NO_CACHE_INVALIDATE` and `V4L2_BUF_FLAG_NO_CACHE_CLEAN` flags to skip the respective step.

The v4l2_buffer structure is specified in buffer.

&return-value;

EBUSY

- File I/O is in progress.

EINVAL

- The buffer type is not supported, or the index is out of bounds, or no buffers have been allocated yet, or the userptr or length are invalid.