5.4. ioctl MEDIA_IOC_DEVICE_INFO

5.4.1. 名称

MEDIA_IOC_DEVICE_INFO - 查询设备信息

5.4.2. 概要

MEDIA_IOC_DEVICE_INFO

int ioctl(int fd, MEDIA_IOC_DEVICE_INFO, struct media_device_info *argp)

5.4.3. 参数

fd

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

argp

指向 struct media_device_info 的指针。

5.4.4. 描述

所有媒体设备都必须支持 MEDIA_IOC_DEVICE_INFO ioctl。 要查询设备信息,应用程序使用指向 struct media_device_info 的指针调用ioctl。 驱动程序填充结构并返回信息给应用程序。 ioctl永远不会失败。

type media_device_info
struct media_device_info

char

driver[16]

实现媒体API的驱动程序名称,作为以NUL结尾的ASCII字符串。 驱动程序版本存储在 driver_version 字段中。

驱动程序特定的应用程序可以使用此信息来验证驱动程序身份。 它对于解决已知的错误或在错误报告中识别驱动程序也很有用。

char

model[32]

设备型号名称,作为以NUL结尾的UTF-8字符串。 设备版本存储在 device_version 字段中,不会附加到型号名称。

char

serial[40]

序列号,作为以NUL结尾的ASCII字符串。

char

bus_info[32]

设备在系统中的位置,作为以NUL结尾的ASCII字符串。 这包括总线类型名称(PCI,USB,...)和特定于总线的标识符。

__u32

media_version

媒体API版本,使用 KERNEL_VERSION() 宏格式化。

__u32

hw_revision

硬件设备修订版,采用驱动程序特定的格式。

__u32

driver_version

媒体设备驱动程序版本,使用 KERNEL_VERSION() 宏格式化。 与 driver 字段一起,它可以识别特定的驱动程序。

__u32

reserved[31]

保留供将来扩展使用。 驱动程序和应用程序必须将此数组设置为零。

The serialbus_info 字段可以用于区分其他方面相同的硬件的多个实例。如果提供了序列号,则优先使用该序列号,并且可以认为它是唯一的。如果序列号是一个空字符串,则可以使用 bus_info 字段代替。 bus_info 字段保证是唯一的,但可能因重新启动或设备插拔而异。

5.4.5. 返回值

成功时返回 0,错误时返回 -1 并且会适当设置 errno 变量。 泛型错误代码在 泛型错误代码 章节中进行了描述。