162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 262306a36Sopenharmony_ci.. c:namespace:: MC 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci.. _media_ioc_enum_entities: 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci***************************** 762306a36Sopenharmony_ciioctl MEDIA_IOC_ENUM_ENTITIES 862306a36Sopenharmony_ci***************************** 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciName 1162306a36Sopenharmony_ci==== 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciMEDIA_IOC_ENUM_ENTITIES - Enumerate entities and their properties 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciSynopsis 1662306a36Sopenharmony_ci======== 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci.. c:macro:: MEDIA_IOC_ENUM_ENTITIES 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci``int ioctl(int fd, MEDIA_IOC_ENUM_ENTITIES, struct media_entity_desc *argp)`` 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciArguments 2362306a36Sopenharmony_ci========= 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci``fd`` 2662306a36Sopenharmony_ci File descriptor returned by :c:func:`open()`. 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci``argp`` 2962306a36Sopenharmony_ci Pointer to struct :c:type:`media_entity_desc`. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciDescription 3262306a36Sopenharmony_ci=========== 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciTo query the attributes of an entity, applications set the id field of a 3562306a36Sopenharmony_cistruct :c:type:`media_entity_desc` structure and 3662306a36Sopenharmony_cicall the MEDIA_IOC_ENUM_ENTITIES ioctl with a pointer to this 3762306a36Sopenharmony_cistructure. The driver fills the rest of the structure or returns an 3862306a36Sopenharmony_ciEINVAL error code when the id is invalid. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci.. _media-ent-id-flag-next: 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciEntities can be enumerated by or'ing the id with the 4362306a36Sopenharmony_ci``MEDIA_ENT_ID_FLAG_NEXT`` flag. The driver will return information 4462306a36Sopenharmony_ciabout the entity with the smallest id strictly larger than the requested 4562306a36Sopenharmony_cione ('next entity'), or the ``EINVAL`` error code if there is none. 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciEntity IDs can be non-contiguous. Applications must *not* try to 4862306a36Sopenharmony_cienumerate entities by calling MEDIA_IOC_ENUM_ENTITIES with increasing 4962306a36Sopenharmony_ciid's until they get an error. 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci.. c:type:: media_entity_desc 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci.. tabularcolumns:: |p{1.5cm}|p{1.7cm}|p{1.6cm}|p{1.5cm}|p{10.6cm}| 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci.. flat-table:: struct media_entity_desc 5662306a36Sopenharmony_ci :header-rows: 0 5762306a36Sopenharmony_ci :stub-columns: 0 5862306a36Sopenharmony_ci :widths: 2 2 1 8 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci * - __u32 6162306a36Sopenharmony_ci - ``id`` 6262306a36Sopenharmony_ci - 6362306a36Sopenharmony_ci - Entity ID, set by the application. When the ID is or'ed with 6462306a36Sopenharmony_ci ``MEDIA_ENT_ID_FLAG_NEXT``, the driver clears the flag and returns 6562306a36Sopenharmony_ci the first entity with a larger ID. Do not expect that the ID will 6662306a36Sopenharmony_ci always be the same for each instance of the device. In other words, 6762306a36Sopenharmony_ci do not hardcode entity IDs in an application. 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci * - char 7062306a36Sopenharmony_ci - ``name``\ [32] 7162306a36Sopenharmony_ci - 7262306a36Sopenharmony_ci - Entity name as an UTF-8 NULL-terminated string. This name must be unique 7362306a36Sopenharmony_ci within the media topology. 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci * - __u32 7662306a36Sopenharmony_ci - ``type`` 7762306a36Sopenharmony_ci - 7862306a36Sopenharmony_ci - Entity type, see :ref:`media-entity-functions` for details. 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci * - __u32 8162306a36Sopenharmony_ci - ``revision`` 8262306a36Sopenharmony_ci - 8362306a36Sopenharmony_ci - Entity revision. Always zero (obsolete) 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci * - __u32 8662306a36Sopenharmony_ci - ``flags`` 8762306a36Sopenharmony_ci - 8862306a36Sopenharmony_ci - Entity flags, see :ref:`media-entity-flag` for details. 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci * - __u32 9162306a36Sopenharmony_ci - ``group_id`` 9262306a36Sopenharmony_ci - 9362306a36Sopenharmony_ci - Entity group ID. Always zero (obsolete) 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci * - __u16 9662306a36Sopenharmony_ci - ``pads`` 9762306a36Sopenharmony_ci - 9862306a36Sopenharmony_ci - Number of pads 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci * - __u16 10162306a36Sopenharmony_ci - ``links`` 10262306a36Sopenharmony_ci - 10362306a36Sopenharmony_ci - Total number of outbound links. Inbound links are not counted in 10462306a36Sopenharmony_ci this field. 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci * - __u32 10762306a36Sopenharmony_ci - ``reserved[4]`` 10862306a36Sopenharmony_ci - 10962306a36Sopenharmony_ci - Reserved for future extensions. Drivers and applications must set 11062306a36Sopenharmony_ci the array to zero. 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci * - union { 11362306a36Sopenharmony_ci - (anonymous) 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci * - struct 11662306a36Sopenharmony_ci - ``dev`` 11762306a36Sopenharmony_ci - 11862306a36Sopenharmony_ci - Valid for (sub-)devices that create a single device node. 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci * - 12162306a36Sopenharmony_ci - __u32 12262306a36Sopenharmony_ci - ``major`` 12362306a36Sopenharmony_ci - Device node major number. 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci * - 12662306a36Sopenharmony_ci - __u32 12762306a36Sopenharmony_ci - ``minor`` 12862306a36Sopenharmony_ci - Device node minor number. 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci * - __u8 13162306a36Sopenharmony_ci - ``raw``\ [184] 13262306a36Sopenharmony_ci - 13362306a36Sopenharmony_ci - 13462306a36Sopenharmony_ci * - } 13562306a36Sopenharmony_ci - 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ciReturn Value 13862306a36Sopenharmony_ci============ 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ciOn success 0 is returned, on error -1 and the ``errno`` variable is set 14162306a36Sopenharmony_ciappropriately. The generic error codes are described at the 14262306a36Sopenharmony_ci:ref:`Generic Error Codes <gen-errors>` chapter. 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ciEINVAL 14562306a36Sopenharmony_ci The struct :c:type:`media_entity_desc` ``id`` 14662306a36Sopenharmony_ci references a non-existing entity. 147