5.6. ioctl MEDIA_IOC_ENUM_ENTITIES

5.6.1. 名称

MEDIA_IOC_ENUM_ENTITIES - 枚举实体及其属性

5.6.2. 概要

MEDIA_IOC_ENUM_ENTITIES

int ioctl(int fd, MEDIA_IOC_ENUM_ENTITIES, struct media_entity_desc *argp)

5.6.3. 参数

fd

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

argp

指向结构体 media_entity_desc 的指针。

5.6.4. 描述

要查询实体的属性,应用程序设置结构体 media_entity_desc 的 id 字段,并使用指向此结构体的指针调用 MEDIA_IOC_ENUM_ENTITIES ioctl。驱动程序会填充结构体的其余部分,或者在 id 无效时返回 EINVAL 错误代码。

可以通过将 id 与 MEDIA_ENT_ID_FLAG_NEXT 标志进行或运算来枚举实体。驱动程序将返回 id 严格大于请求的 id 的最小实体的相关信息(“下一个实体”),如果没有此类实体,则返回 EINVAL 错误代码。

实体 ID 可以是不连续的。应用程序绝不能尝试通过使用递增的 id 调用 MEDIA_IOC_ENUM_ENTITIES 直到出现错误来枚举实体。

类型 media_entity_desc
struct media_entity_desc

__u32

id

实体 ID,由应用程序设置。当 ID 与 MEDIA_ENT_ID_FLAG_NEXT 进行或运算时,驱动程序会清除该标志,并返回具有较大 ID 的第一个实体。不要期望设备的每个实例的 ID 始终相同。换句话说,不要在应用程序中硬编码实体 ID。

char

name[32]

实体名称,为 UTF-8 空终止字符串。此名称在媒体拓扑中必须是唯一的。

__u32

类型

实体类型,有关详细信息,请参见 媒体实体功能

__u32

revision

实体修订版。始终为零(已过时)

__u32

flags

实体标志,有关详细信息,请参见 媒体实体标志

__u32

group_id

实体组 ID。始终为零(已过时)

__u16

pads

焊盘数量

__u16

links

出站链接总数。入站链接不在此字段中计算。

__u32

reserved[4]

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

union {

(匿名)

struct

dev

对创建单个设备节点的(子)设备有效。

__u32

major

设备节点主编号。

__u32

minor

设备节点次编号。

__u8

raw[184]

}

5.6.5. 返回值

成功时返回 0,失败时返回 -1,并相应地设置 errno 变量。通用错误代码在 通用错误代码 章节中描述。

EINVAL

结构体 media_entity_desc id 引用一个不存在的实体。