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

指向 media_device_info 结构的指针。

5.4.4. 描述

所有媒体设备都必须支持 MEDIA_IOC_DEVICE_INFO ioctl。要查询设备信息,应用程序调用 ioctl,并传入指向 media_device_info 结构的指针。驱动程序填充该结构,并将信息返回给应用程序。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]

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

serialbus_info 字段可用于区分同一硬件的多个实例。如果提供了序列号,则序列号优先,并且可以假定其是唯一的。如果序列号为空字符串,则可以使用 bus_info 字段代替。bus_info 字段保证是唯一的,但可能会在重启或设备插拔/重新插拔时发生变化。

5.4.5. 返回值

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