Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[linux/fpc-iii.git] / Documentation / media / uapi / mediactl / media-ioc-enum-entities.rst
blob0fd329279befeaa3c6d981fce2ab881a3447f21b
1 .. -*- coding: utf-8; mode: rst -*-
3 .. _media_ioc_enum_entities:
5 *****************************
6 ioctl MEDIA_IOC_ENUM_ENTITIES
7 *****************************
9 Name
10 ====
12 MEDIA_IOC_ENUM_ENTITIES - Enumerate entities and their properties
15 Synopsis
16 ========
18 .. c:function:: int ioctl( int fd, MEDIA_IOC_ENUM_ENTITIES, struct media_entity_desc *argp )
19     :name: MEDIA_IOC_ENUM_ENTITIES
22 Arguments
23 =========
25 ``fd``
26     File descriptor returned by :ref:`open() <media-func-open>`.
28 ``argp``
31 Description
32 ===========
34 To query the attributes of an entity, applications set the id field of a
35 struct :c:type:`media_entity_desc` structure and
36 call the MEDIA_IOC_ENUM_ENTITIES ioctl with a pointer to this
37 structure. The driver fills the rest of the structure or returns an
38 EINVAL error code when the id is invalid.
40 .. _media-ent-id-flag-next:
42 Entities can be enumerated by or'ing the id with the
43 ``MEDIA_ENT_ID_FLAG_NEXT`` flag. The driver will return information
44 about the entity with the smallest id strictly larger than the requested
45 one ('next entity'), or the ``EINVAL`` error code if there is none.
47 Entity IDs can be non-contiguous. Applications must *not* try to
48 enumerate entities by calling MEDIA_IOC_ENUM_ENTITIES with increasing
49 id's until they get an error.
52 .. c:type:: media_entity_desc
54 .. tabularcolumns:: |p{1.5cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|p{11.5cm}|
56 .. flat-table:: struct media_entity_desc
57     :header-rows:  0
58     :stub-columns: 0
59     :widths: 1 1 1 1 8
62     -  .. row 1
64        -  __u32
66        -  ``id``
68        -
69        -
70        -  Entity id, set by the application. When the id is or'ed with
71           ``MEDIA_ENT_ID_FLAG_NEXT``, the driver clears the flag and returns
72           the first entity with a larger id.
74     -  .. row 2
76        -  char
78        -  ``name``\ [32]
80        -
81        -
82        -  Entity name as an UTF-8 NULL-terminated string.
84     -  .. row 3
86        -  __u32
88        -  ``type``
90        -
91        -
92        -  Entity type, see :ref:`media-entity-type` for details.
94     -  .. row 4
96        -  __u32
98        -  ``revision``
100        -
101        -
102        -  Entity revision. Always zero (obsolete)
104     -  .. row 5
106        -  __u32
108        -  ``flags``
110        -
111        -
112        -  Entity flags, see :ref:`media-entity-flag` for details.
114     -  .. row 6
116        -  __u32
118        -  ``group_id``
120        -
121        -
122        -  Entity group ID. Always zero (obsolete)
124     -  .. row 7
126        -  __u16
128        -  ``pads``
130        -
131        -
132        -  Number of pads
134     -  .. row 8
136        -  __u16
138        -  ``links``
140        -
141        -
142        -  Total number of outbound links. Inbound links are not counted in
143           this field.
145     -  .. row 9
147        -  union
149     -  .. row 10
151        -
152        -  struct
154        -  ``dev``
156        -
157        -  Valid for (sub-)devices that create a single device node.
159     -  .. row 11
161        -
162        -
163        -  __u32
165        -  ``major``
167        -  Device node major number.
169     -  .. row 12
171        -
172        -
173        -  __u32
175        -  ``minor``
177        -  Device node minor number.
179     -  .. row 13
181        -
182        -  __u8
184        -  ``raw``\ [184]
186        -
187        -
190 Return Value
191 ============
193 On success 0 is returned, on error -1 and the ``errno`` variable is set
194 appropriately. The generic error codes are described at the
195 :ref:`Generic Error Codes <gen-errors>` chapter.
197 EINVAL
198     The struct :c:type:`media_entity_desc` ``id``
199     references a non-existing entity.