media: Documentation/media/uapi/mediactl: redo tables
[platform/kernel/linux-rpi.git] / Documentation / media / uapi / mediactl / media-ioc-enum-entities.rst
1 .. -*- coding: utf-8; mode: rst -*-
2
3 .. _media_ioc_enum_entities:
4
5 *****************************
6 ioctl MEDIA_IOC_ENUM_ENTITIES
7 *****************************
8
9 Name
10 ====
11
12 MEDIA_IOC_ENUM_ENTITIES - Enumerate entities and their properties
13
14
15 Synopsis
16 ========
17
18 .. c:function:: int ioctl( int fd, MEDIA_IOC_ENUM_ENTITIES, struct media_entity_desc *argp )
19     :name: MEDIA_IOC_ENUM_ENTITIES
20
21
22 Arguments
23 =========
24
25 ``fd``
26     File descriptor returned by :ref:`open() <media-func-open>`.
27
28 ``argp``
29
30
31 Description
32 ===========
33
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.
39
40 .. _media-ent-id-flag-next:
41
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.
46
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.
50
51
52 .. c:type:: media_entity_desc
53
54 .. tabularcolumns:: |p{1.5cm}|p{1.7cm}|p{1.6cm}|p{1.5cm}|p{11.2cm}|
55
56 .. flat-table:: struct media_entity_desc
57     :header-rows:  0
58     :stub-columns: 0
59     :widths: 1 1 1 1 8
60
61     *  -  __u32
62        -  ``id``
63        -
64        -
65        -  Entity id, set by the application. When the id is or'ed with
66           ``MEDIA_ENT_ID_FLAG_NEXT``, the driver clears the flag and returns
67           the first entity with a larger id.
68
69     *  -  char
70        -  ``name``\ [32]
71        -
72        -
73        -  Entity name as an UTF-8 NULL-terminated string.
74
75     *  -  __u32
76        -  ``type``
77        -
78        -
79        -  Entity type, see :ref:`media-entity-functions` for details.
80
81     *  -  __u32
82        -  ``revision``
83        -
84        -
85        -  Entity revision. Always zero (obsolete)
86
87     *  -  __u32
88        -  ``flags``
89        -
90        -
91        -  Entity flags, see :ref:`media-entity-flag` for details.
92
93     *  -  __u32
94        -  ``group_id``
95        -
96        -
97        -  Entity group ID. Always zero (obsolete)
98
99     *  -  __u16
100        -  ``pads``
101        -
102        -
103        -  Number of pads
104
105     *  -  __u16
106        -  ``links``
107        -
108        -
109        -  Total number of outbound links. Inbound links are not counted in
110           this field.
111
112     *  -  __u32
113        -  ``reserved[4]``
114        -
115        -
116        -  Reserved for future extensions. Drivers and applications must set
117           the array to zero.
118
119     *  -  union
120
121     *  -
122        -  struct
123        -  ``dev``
124        -
125        -  Valid for (sub-)devices that create a single device node.
126
127     *  -
128        -
129        -  __u32
130        -  ``major``
131        -  Device node major number.
132
133     *  -
134        -
135        -  __u32
136        -  ``minor``
137        -  Device node minor number.
138
139     *  -
140        -  __u8
141        -  ``raw``\ [184]
142        -
143        -
144
145
146 Return Value
147 ============
148
149 On success 0 is returned, on error -1 and the ``errno`` variable is set
150 appropriately. The generic error codes are described at the
151 :ref:`Generic Error Codes <gen-errors>` chapter.
152
153 EINVAL
154     The struct :c:type:`media_entity_desc` ``id``
155     references a non-existing entity.