media-ioc-enum-entities.rst 3.55 KB
Newer Older
1 2
.. -*- coding: utf-8; mode: rst -*-

3
.. _media_ioc_enum_entities:
4 5 6 7 8

*****************************
ioctl MEDIA_IOC_ENUM_ENTITIES
*****************************

9
Name
10
====
11

12
MEDIA_IOC_ENUM_ENTITIES - Enumerate entities and their properties
13

14 15

Synopsis
16 17
========

18 19
.. c:function:: int ioctl( int fd, MEDIA_IOC_ENUM_ENTITIES, struct media_entity_desc *argp )
    :name: MEDIA_IOC_ENUM_ENTITIES
20

21

22
Arguments
23 24 25 26 27 28 29 30
=========

``fd``
    File descriptor returned by :ref:`open() <media-func-open>`.

``argp``


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 37 38 39
call the MEDIA_IOC_ENUM_ENTITIES ioctl with a pointer to this
structure. The driver fills the rest of the structure or returns an
EINVAL error code when the id is invalid.

40 41
.. _media-ent-id-flag-next:

42 43 44
Entities can be enumerated by or'ing the id with the
``MEDIA_ENT_ID_FLAG_NEXT`` flag. The driver will return information
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 48 49 50 51

Entity IDs can be non-contiguous. Applications must *not* try to
enumerate entities by calling MEDIA_IOC_ENUM_ENTITIES with increasing
id's until they get an error.


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 57 58
.. flat-table:: struct media_entity_desc
    :header-rows:  0
    :stub-columns: 0
59
    :widths: 1 1 1 1 8
60 61 62 63 64 65 66 67


    -  .. row 1

       -  __u32

       -  ``id``

68 69
       -
       -
70
       -  Entity id, set by the application. When the id is or'ed with
71 72
	  ``MEDIA_ENT_ID_FLAG_NEXT``, the driver clears the flag and returns
	  the first entity with a larger id.
73 74 75 76 77

    -  .. row 2

       -  char

78
       -  ``name``\ [32]
79

80 81
       -
       -
82 83 84 85 86 87 88 89
       -  Entity name as an UTF-8 NULL-terminated string.

    -  .. row 3

       -  __u32

       -  ``type``

90 91
       -
       -
92 93 94 95 96 97 98 99
       -  Entity type, see :ref:`media-entity-type` for details.

    -  .. row 4

       -  __u32

       -  ``revision``

100 101
       -
       -
102 103 104 105 106 107 108 109
       -  Entity revision. Always zero (obsolete)

    -  .. row 5

       -  __u32

       -  ``flags``

110 111
       -
       -
112 113 114 115 116 117 118 119
       -  Entity flags, see :ref:`media-entity-flag` for details.

    -  .. row 6

       -  __u32

       -  ``group_id``

120 121
       -
       -
122 123 124 125 126 127 128 129
       -  Entity group ID. Always zero (obsolete)

    -  .. row 7

       -  __u16

       -  ``pads``

130 131
       -
       -
132 133 134 135 136 137 138 139
       -  Number of pads

    -  .. row 8

       -  __u16

       -  ``links``

140 141
       -
       -
142
       -  Total number of outbound links. Inbound links are not counted in
143
	  this field.
144 145 146

    -  .. row 9

147 148 149 150 151 152 153 154
       -  __u32

       -  ``reserved[4]``

       -
       -
       -  Reserved for future extensions. Drivers and applications must set
          the array to zero.
155 156 157

    -  .. row 10

158 159 160 161
       -  union

    -  .. row 11

162
       -
163 164 165 166
       -  struct

       -  ``dev``

167
       -
168 169
       -  Valid for (sub-)devices that create a single device node.

170
    -  .. row 12
171

172 173
       -
       -
174 175 176 177 178 179
       -  __u32

       -  ``major``

       -  Device node major number.

180
    -  .. row 13
181

182 183
       -
       -
184 185 186 187 188 189
       -  __u32

       -  ``minor``

       -  Device node minor number.

190
    -  .. row 14
191

192
       -
193 194
       -  __u8

195
       -  ``raw``\ [184]
196

197 198
       -
       -
199 200


201
Return Value
202 203 204 205 206 207 208
============

On success 0 is returned, on error -1 and the ``errno`` variable is set
appropriately. The generic error codes are described at the
:ref:`Generic Error Codes <gen-errors>` chapter.

EINVAL
209
    The struct :c:type:`media_entity_desc` ``id``
210
    references a non-existing entity.