5.9. ioctl MEDIA_IOC_REQUEST_ALLOC

5.9.1. 名称

MEDIA_IOC_REQUEST_ALLOC - 分配一个请求

5.9.2. 概要

MEDIA_IOC_REQUEST_ALLOC

int ioctl(int fd, MEDIA_IOC_REQUEST_ALLOC, int *argp)

5.9.3. 参数

fd

open() 返回的文件描述符。

argp

指向整数的指针。

5.9.4. 描述

如果媒体设备支持请求,则可以使用此 ioctl 分配一个请求。如果不支持,则 errno 设置为 ENOTTY。通过在 *argp 中返回的文件描述符访问请求。

如果请求已成功分配,则可以将请求文件描述符传递给 VIDIOC_QBUFVIDIOC_G_EXT_CTRLSVIDIOC_S_EXT_CTRLSVIDIOC_TRY_EXT_CTRLS ioctl。

此外,可以通过调用 ioctl MEDIA_REQUEST_IOC_QUEUE 来将请求入队,并通过调用 ioctl MEDIA_REQUEST_IOC_REINIT 来重新初始化。

最后,可以轮询文件描述符,以等待请求完成。

该请求将保持分配状态,直到与它关联的所有文件描述符都被 close() 关闭,并且驱动程序不再在内部使用该请求为止。有关更多信息,另请参阅此处

5.9.5. 返回值

成功时返回 0,错误时返回 -1,并且会适当地设置 errno 变量。通用错误代码在通用错误代码章节中描述。

ENOTTY

驱动程序不支持请求。