7.65. ioctl VIDIOC_SUBDEV_QUERYCAP

7.65.1. 名稱

VIDIOC_SUBDEV_QUERYCAP - 查詢子裝置功能

7.65.2. 概要

VIDIOC_SUBDEV_QUERYCAP

int ioctl(int fd, VIDIOC_SUBDEV_QUERYCAP, struct v4l2_subdev_capability *argp)

7.65.3. 引數

fd

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

argp

指向 struct v4l2_subdev_capability 的指標。

7.65.4. 描述

所有 V4L2 子裝置都支援 VIDIOC_SUBDEV_QUERYCAP ioctl。 它用於識別與此規範相容的核心裝置,並獲取有關驅動程式和硬體功能的資訊。 該 ioctl 接收一個指向 struct v4l2_subdev_capability 的指標,該結構由驅動程式填充。 當驅動程式與此規範不相容時,ioctl 返回 ENOTTY 錯誤程式碼。

type v4l2_subdev_capability
struct v4l2_subdev_capability

__u32

version

驅動程式的版本號。

報告的版本由 V4L2 子系統按照核心編號方案提供。 但是,如果穩定或發行版修改的核心使用來自較新核心的 V4L2 堆疊,則它可能並不總是返回與核心相同的版本。

版本號使用 KERNEL_VERSION() 宏格式化

#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

__u32 version = KERNEL_VERSION(0, 8, 1);

printf ("Version: %u.%u.%u\\n",

(version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF);

__u32

capabilities

開啟的裝置的子裝置功能,請參閱 子裝置功能標誌

__u32

reserved[14]

保留供將來擴充套件使用。 由 V4L2 核心設定為 0。

子裝置功能標誌

V4L2_SUBDEV_CAP_RO_SUBDEV

0x00000001

子裝置裝置節點以只讀模式註冊。 訪問修改裝置狀態的子裝置ioctl受到限制。 有關哪些限制適用於只讀子裝置的描述,請參閱每個單獨的子裝置ioctl文件。

7.65.5. 返回值

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

ENOTTY

該裝置節點不是 V4L2 子裝置。