1.. -*- coding: utf-8; mode: rst -*- 2 3.. _media_ioc_enum_links: 4 5************************** 6ioctl MEDIA_IOC_ENUM_LINKS 7************************** 8 9Name 10==== 11 12MEDIA_IOC_ENUM_LINKS - Enumerate all pads and links for a given entity 13 14 15Synopsis 16======== 17 18.. c:function:: int ioctl( int fd, MEDIA_IOC_ENUM_LINKS, struct media_links_enum *argp ) 19 :name: MEDIA_IOC_ENUM_LINKS 20 21 22Arguments 23========= 24 25``fd`` 26 File descriptor returned by :ref:`open() <media-func-open>`. 27 28``argp`` 29 30 31Description 32=========== 33 34To enumerate pads and/or links for a given entity, applications set the 35entity field of a struct :c:type:`media_links_enum` 36structure and initialize the struct 37:c:type:`media_pad_desc` and struct 38:c:type:`media_link_desc` structure arrays pointed by 39the ``pads`` and ``links`` fields. They then call the 40MEDIA_IOC_ENUM_LINKS ioctl with a pointer to this structure. 41 42If the ``pads`` field is not NULL, the driver fills the ``pads`` array 43with information about the entity's pads. The array must have enough 44room to store all the entity's pads. The number of pads can be retrieved 45with :ref:`MEDIA_IOC_ENUM_ENTITIES`. 46 47If the ``links`` field is not NULL, the driver fills the ``links`` array 48with information about the entity's outbound links. The array must have 49enough room to store all the entity's outbound links. The number of 50outbound links can be retrieved with :ref:`MEDIA_IOC_ENUM_ENTITIES`. 51 52Only forward links that originate at one of the entity's source pads are 53returned during the enumeration process. 54 55 56.. c:type:: media_links_enum 57 58.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 59 60.. flat-table:: struct media_links_enum 61 :header-rows: 0 62 :stub-columns: 0 63 :widths: 1 1 2 64 65 66 - .. row 1 67 68 - __u32 69 70 - ``entity`` 71 72 - Entity id, set by the application. 73 74 - .. row 2 75 76 - struct :c:type:`media_pad_desc` 77 78 - \*\ ``pads`` 79 80 - Pointer to a pads array allocated by the application. Ignored if 81 NULL. 82 83 - .. row 3 84 85 - struct :c:type:`media_link_desc` 86 87 - \*\ ``links`` 88 89 - Pointer to a links array allocated by the application. Ignored if 90 NULL. 91 92 93 94.. c:type:: media_pad_desc 95 96.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 97 98.. flat-table:: struct media_pad_desc 99 :header-rows: 0 100 :stub-columns: 0 101 :widths: 1 1 2 102 103 104 - .. row 1 105 106 - __u32 107 108 - ``entity`` 109 110 - ID of the entity this pad belongs to. 111 112 - .. row 2 113 114 - __u16 115 116 - ``index`` 117 118 - 0-based pad index. 119 120 - .. row 3 121 122 - __u32 123 124 - ``flags`` 125 126 - Pad flags, see :ref:`media-pad-flag` for more details. 127 128 129 130.. c:type:: media_link_desc 131 132.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 133 134.. flat-table:: struct media_link_desc 135 :header-rows: 0 136 :stub-columns: 0 137 :widths: 1 1 2 138 139 140 - .. row 1 141 142 - struct :c:type:`media_pad_desc` 143 144 - ``source`` 145 146 - Pad at the origin of this link. 147 148 - .. row 2 149 150 - struct :c:type:`media_pad_desc` 151 152 - ``sink`` 153 154 - Pad at the target of this link. 155 156 - .. row 3 157 158 - __u32 159 160 - ``flags`` 161 162 - Link flags, see :ref:`media-link-flag` for more details. 163 164 165Return Value 166============ 167 168On success 0 is returned, on error -1 and the ``errno`` variable is set 169appropriately. The generic error codes are described at the 170:ref:`Generic Error Codes <gen-errors>` chapter. 171 172EINVAL 173 The struct :c:type:`media_links_enum` ``id`` 174 references a non-existing entity. 175