ioctl VIDIOC_QUERYBUF
&manvol;

# VIDIOC_QUERYBUF

Query the status of a buffer

    	int ioctl
    	int fd
    	int request
    	struct v4l2_buffer *argp

## Arguments

`fd`

  &fd;

`request`

  VIDIOC_QUERYBUF

`argp`

## Description

This ioctl is part of the memory mapping I/O method. It can be used to query the status of a buffer at any time after buffers have been allocated with the &VIDIOC-REQBUFS; ioctl.

Applications set the type field of a &v4l2-buffer; to the same buffer type as previously &v4l2-format; type and &v4l2-requestbuffers; type, and the index field. Valid index numbers range from zero to the number of buffers allocated with &VIDIOC-REQBUFS; (&v4l2-requestbuffers; count) minus one. After calling `VIDIOC_QUERYBUF` with a pointer to this structure drivers return an error code or fill the rest of the structure.

In the flags field the `V4L2_BUF_FLAG_MAPPED`, `V4L2_BUF_FLAG_QUEUED` and `V4L2_BUF_FLAG_DONE` flags will be valid. The memory field will be set to `V4L2_MEMORY_MMAP`, the m.offset contains the offset of the buffer from the start of the device memory, the length field its size. The driver may or may not set the remaining fields and flags, they are meaningless in this context.

The v4l2_buffer structure is specified in .

&return-value;

EINVAL

  The buffer type is not supported, or the index is out of bounds.