blob: 181eef6a34e6c116bd822b30bd42cbd259b714a7 [file] [log] [blame]
Markus Heiser5377d912016-06-30 15:18:56 +02001.. -*- coding: utf-8; mode: rst -*-
2
Mauro Carvalho Chehabd2c68152016-07-09 08:54:35 -03003.. _media_ioc_enum_entities:
Markus Heiser5377d912016-06-30 15:18:56 +02004
5*****************************
6ioctl MEDIA_IOC_ENUM_ENTITIES
7*****************************
8
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -03009Name
Mauro Carvalho Chehab586027c2016-07-05 07:58:48 -030010====
Markus Heiser5377d912016-06-30 15:18:56 +020011
Mauro Carvalho Chehab586027c2016-07-05 07:58:48 -030012MEDIA_IOC_ENUM_ENTITIES - Enumerate entities and their properties
Markus Heiser5377d912016-06-30 15:18:56 +020013
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -030014
15Synopsis
Markus Heiser5377d912016-06-30 15:18:56 +020016========
17
Mauro Carvalho Chehabb7e67f62016-07-02 09:49:16 -030018.. cpp:function:: int ioctl( int fd, int request, struct media_entity_desc *argp )
Markus Heiser5377d912016-06-30 15:18:56 +020019
Mauro Carvalho Chehab586027c2016-07-05 07:58:48 -030020
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -030021Arguments
Markus Heiser5377d912016-06-30 15:18:56 +020022=========
23
24``fd``
25 File descriptor returned by :ref:`open() <media-func-open>`.
26
27``request``
28 MEDIA_IOC_ENUM_ENTITIES
29
30``argp``
31
32
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -030033Description
Markus Heiser5377d912016-06-30 15:18:56 +020034===========
35
36To query the attributes of an entity, applications set the id field of a
37struct :ref:`media_entity_desc <media-entity-desc>` structure and
38call the MEDIA_IOC_ENUM_ENTITIES ioctl with a pointer to this
39structure. The driver fills the rest of the structure or returns an
40EINVAL error code when the id is invalid.
41
Mauro Carvalho Chehabd2c68152016-07-09 08:54:35 -030042.. _media-ent-id-flag-next:
43
Markus Heiser5377d912016-06-30 15:18:56 +020044Entities can be enumerated by or'ing the id with the
45``MEDIA_ENT_ID_FLAG_NEXT`` flag. The driver will return information
46about the entity with the smallest id strictly larger than the requested
Mauro Carvalho Chehabcdb4af02016-07-03 11:53:09 -030047one ('next entity'), or the ``EINVAL`` error code if there is none.
Markus Heiser5377d912016-06-30 15:18:56 +020048
49Entity IDs can be non-contiguous. Applications must *not* try to
50enumerate entities by calling MEDIA_IOC_ENUM_ENTITIES with increasing
51id's until they get an error.
52
53
54.. _media-entity-desc:
55
56.. flat-table:: struct media_entity_desc
57 :header-rows: 0
58 :stub-columns: 0
Mauro Carvalho Chehab2ceb5d72016-07-06 07:55:55 -030059 :widths: 1 1 1 1 8
Markus Heiser5377d912016-06-30 15:18:56 +020060
61
62 - .. row 1
63
64 - __u32
65
66 - ``id``
67
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -030068 -
69 -
Markus Heiser5377d912016-06-30 15:18:56 +020070 - Entity id, set by the application. When the id is or'ed with
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -030071 ``MEDIA_ENT_ID_FLAG_NEXT``, the driver clears the flag and returns
72 the first entity with a larger id.
Markus Heiser5377d912016-06-30 15:18:56 +020073
74 - .. row 2
75
76 - char
77
Mauro Carvalho Chehabffbab692016-07-12 15:20:11 -030078 - ``name``\ \[32\]
Markus Heiser5377d912016-06-30 15:18:56 +020079
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -030080 -
81 -
Markus Heiser5377d912016-06-30 15:18:56 +020082 - Entity name as an UTF-8 NULL-terminated string.
83
84 - .. row 3
85
86 - __u32
87
88 - ``type``
89
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -030090 -
91 -
Markus Heiser5377d912016-06-30 15:18:56 +020092 - Entity type, see :ref:`media-entity-type` for details.
93
94 - .. row 4
95
96 - __u32
97
98 - ``revision``
99
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300100 -
101 -
Markus Heiser5377d912016-06-30 15:18:56 +0200102 - Entity revision. Always zero (obsolete)
103
104 - .. row 5
105
106 - __u32
107
108 - ``flags``
109
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300110 -
111 -
Markus Heiser5377d912016-06-30 15:18:56 +0200112 - Entity flags, see :ref:`media-entity-flag` for details.
113
114 - .. row 6
115
116 - __u32
117
118 - ``group_id``
119
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300120 -
121 -
Markus Heiser5377d912016-06-30 15:18:56 +0200122 - Entity group ID. Always zero (obsolete)
123
124 - .. row 7
125
126 - __u16
127
128 - ``pads``
129
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300130 -
131 -
Markus Heiser5377d912016-06-30 15:18:56 +0200132 - Number of pads
133
134 - .. row 8
135
136 - __u16
137
138 - ``links``
139
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300140 -
141 -
Markus Heiser5377d912016-06-30 15:18:56 +0200142 - Total number of outbound links. Inbound links are not counted in
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300143 this field.
Markus Heiser5377d912016-06-30 15:18:56 +0200144
145 - .. row 9
146
147 - union
148
149 - .. row 10
150
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300151 -
Markus Heiser5377d912016-06-30 15:18:56 +0200152 - struct
153
154 - ``dev``
155
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300156 -
Markus Heiser5377d912016-06-30 15:18:56 +0200157 - Valid for (sub-)devices that create a single device node.
158
159 - .. row 11
160
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300161 -
162 -
Markus Heiser5377d912016-06-30 15:18:56 +0200163 - __u32
164
165 - ``major``
166
167 - Device node major number.
168
169 - .. row 12
170
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300171 -
172 -
Markus Heiser5377d912016-06-30 15:18:56 +0200173 - __u32
174
175 - ``minor``
176
177 - Device node minor number.
178
179 - .. row 13
180
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300181 -
Markus Heiser5377d912016-06-30 15:18:56 +0200182 - __u8
183
Mauro Carvalho Chehabffbab692016-07-12 15:20:11 -0300184 - ``raw``\ \[184\]
Markus Heiser5377d912016-06-30 15:18:56 +0200185
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -0300186 -
187 -
Markus Heiser5377d912016-06-30 15:18:56 +0200188
189
Mauro Carvalho Chehab15e7d612016-07-05 15:14:35 -0300190Return Value
Markus Heiser5377d912016-06-30 15:18:56 +0200191============
192
193On success 0 is returned, on error -1 and the ``errno`` variable is set
194appropriately. The generic error codes are described at the
195:ref:`Generic Error Codes <gen-errors>` chapter.
196
197EINVAL
198 The struct :ref:`media_entity_desc <media-entity-desc>` ``id``
199 references a non-existing entity.