ioctl MEDIA_IOC_ENUM_ENTITIES
&manvol;

# MEDIA_IOC_ENUM_ENTITIES

Enumerate entities and their properties

    	int ioctl
    	int fd
    	int request
    	struct media_entity_desc *argp

## Arguments

`fd`

  File descriptor returned by `open()`.

`request`

  MEDIA_IOC_ENUM_ENTITIES

`argp`

## Description

To query the attributes of an entity, applications set the id field of a &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; when the id is invalid.

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; 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.

Two or more entities that share a common non-zero group_id value are considered as logically grouped. Groups are used to report

- ALSA, VBI and video nodes that carry the same media stream

- lens and flash controllers associated with a sensor

### struct media_entity_desc

__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.
char | name[32] |  |  | Entity name as an UTF-8 NULL-terminated string.
__u32 | type |  |  | Entity type, see for details.
__u32 | revision |  |  | Entity revision in a driver/hardware specific format.
__u32 | flags |  |  | Entity flags, see for details.
__u32 | group_id |  |  | Entity group ID
__u16 | pads |  |  | Number of pads
__u16 | links |  |  | Total number of outbound links. Inbound links are not counted in this field.
union
| struct | v4l |  | Valid for V4L sub-devices and nodes only.
|  | __u32 | major | V4L device node major number. For V4L sub-devices with no device node, set by the driver to 0.
|  | __u32 | minor | V4L device node minor number. For V4L sub-devices with no device node, set by the driver to 0.
| struct | fb |  | Valid for frame buffer nodes only.
|  | __u32 | major | Frame buffer device node major number.
|  | __u32 | minor | Frame buffer device node minor number.
| struct | alsa |  | Valid for ALSA devices only.
|  | __u32 | card | ALSA card number
|  | __u32 | device | ALSA device number
|  | __u32 | subdevice | ALSA sub-device number
| int | dvb |  | DVB card number
| __u8 | raw[180] |  |

### Media entity types

`MEDIA_ENT_T_DEVNODE` | Unknown device node
`MEDIA_ENT_T_DEVNODE_V4L` | V4L video, radio or vbi device node
`MEDIA_ENT_T_DEVNODE_FB` | Frame buffer device node
`MEDIA_ENT_T_DEVNODE_ALSA` | ALSA card
`MEDIA_ENT_T_DEVNODE_DVB` | DVB card
`MEDIA_ENT_T_V4L2_SUBDEV` | Unknown V4L sub-device
`MEDIA_ENT_T_V4L2_SUBDEV_SENSOR` | Video sensor
`MEDIA_ENT_T_V4L2_SUBDEV_FLASH` | Flash controller
`MEDIA_ENT_T_V4L2_SUBDEV_LENS` | Lens controller

`MEDIA_ENT_T_V4L2_SUBDEV_DECODER`

Video decoder, the basic function of the video decoder is to accept analogue video from a wide variety of sources such as broadcast, DVD players, cameras and video cassette recorders, in either NTSC, PAL or HD format and still occasionally SECAM, separate it into its component parts, luminance and chrominance, and output it in some digital video standard, with appropriate embedded timing signals.

### Media entity flags

`MEDIA_ENT_FL_DEFAULT` | Default entity for its type. Used to discover the default audio, VBI and video devices, the default camera sensor, ...

&return-value;

EINVAL

  The &media-entity-desc; id references a non-existing entity.