| .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| .. c:namespace:: MC |
| |
| .. _media_ioc_enum_entities: |
| |
| ***************************** |
| ioctl MEDIA_IOC_ENUM_ENTITIES |
| ***************************** |
| |
| Name |
| ==== |
| |
| MEDIA_IOC_ENUM_ENTITIES - Enumerate entities and their properties |
| |
| Synopsis |
| ======== |
| |
| .. c:macro:: MEDIA_IOC_ENUM_ENTITIES |
| |
| ``int ioctl(int fd, MEDIA_IOC_ENUM_ENTITIES, struct media_entity_desc *argp)`` |
| |
| Arguments |
| ========= |
| |
| ``fd`` |
| File descriptor returned by :c:func:`open()`. |
| |
| ``argp`` |
| Pointer to struct :c:type:`media_entity_desc`. |
| |
| Description |
| =========== |
| |
| To query the attributes of an entity, applications set the id field of a |
| struct :c:type:`media_entity_desc` structure and |
| 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. |
| |
| .. _media-ent-id-flag-next: |
| |
| 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 |
| one ('next entity'), or the ``EINVAL`` error code if there is none. |
| |
| 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. |
| |
| .. c:type:: media_entity_desc |
| |
| .. tabularcolumns:: |p{1.5cm}|p{1.7cm}|p{1.6cm}|p{1.5cm}|p{10.6cm}| |
| |
| .. flat-table:: struct media_entity_desc |
| :header-rows: 0 |
| :stub-columns: 0 |
| :widths: 2 2 1 8 |
| |
| * - __u32 |
| - ``id`` |
| - |
| - Entity ID, set by the application. When the ID is or'ed with |
| ``MEDIA_ENT_ID_FLAG_NEXT``, the driver clears the flag and returns |
| the first entity with a larger ID. Do not expect that the ID will |
| always be the same for each instance of the device. In other words, |
| do not hardcode entity IDs in an application. |
| |
| * - char |
| - ``name``\ [32] |
| - |
| - Entity name as an UTF-8 NULL-terminated string. This name must be unique |
| within the media topology. |
| |
| * - __u32 |
| - ``type`` |
| - |
| - Entity type, see :ref:`media-entity-functions` for details. |
| |
| * - __u32 |
| - ``revision`` |
| - |
| - Entity revision. Always zero (obsolete) |
| |
| * - __u32 |
| - ``flags`` |
| - |
| - Entity flags, see :ref:`media-entity-flag` for details. |
| |
| * - __u32 |
| - ``group_id`` |
| - |
| - Entity group ID. Always zero (obsolete) |
| |
| * - __u16 |
| - ``pads`` |
| - |
| - Number of pads |
| |
| * - __u16 |
| - ``links`` |
| - |
| - Total number of outbound links. Inbound links are not counted in |
| this field. |
| |
| * - __u32 |
| - ``reserved[4]`` |
| - |
| - Reserved for future extensions. Drivers and applications must set |
| the array to zero. |
| |
| * - union { |
| - (anonymous) |
| |
| * - struct |
| - ``dev`` |
| - |
| - Valid for (sub-)devices that create a single device node. |
| |
| * - |
| - __u32 |
| - ``major`` |
| - Device node major number. |
| |
| * - |
| - __u32 |
| - ``minor`` |
| - Device node minor number. |
| |
| * - __u8 |
| - ``raw``\ [184] |
| - |
| - |
| * - } |
| - |
| |
| Return Value |
| ============ |
| |
| 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 |
| The struct :c:type:`media_entity_desc` ``id`` |
| references a non-existing entity. |