7.45. ioctl VIDIOC_PREPARE_BUF

7.45.1. 名稱

VIDIOC_PREPARE_BUF - 準備用於 I/O 的緩衝區

7.45.2. 概要

VIDIOC_PREPARE_BUF

int ioctl(int fd, VIDIOC_PREPARE_BUF, struct v4l2_buffer *argp)

7.45.3. 引數

fd

open() 返回的檔案描述符。

argp

指向 struct v4l2_buffer 的指標。

7.45.4. 描述

應用程式可以選擇呼叫 ioctl VIDIOC_PREPARE_BUF ioctl,以便在使用 VIDIOC_QBUF ioctl 實際排隊緩衝區之前,將緩衝區的所有權傳遞給驅動程式,併為將來的 I/O 準備它。 這種準備可能包括快取失效或清理。 提前執行它們可以節省實際 I/O 期間的時間。

struct v4l2_buffer 結構在 緩衝區 中指定。

7.45.5. 返回值

成功時返回 0,出錯時返回 -1,並適當設定 errno 變數。 通用錯誤程式碼在 通用錯誤程式碼 章節中描述。

EBUSY

檔案 I/O 正在進行中。

EINVAL

不支援緩衝區 type,或者 index 超出範圍,或者尚未分配任何緩衝區,或者 userptrlength 無效。