| <refentry id="media-ioc-enum-links"> |
| <refmeta> |
| <refentrytitle>ioctl MEDIA_IOC_ENUM_LINKS</refentrytitle> |
| &manvol; |
| </refmeta> |
| |
| <refnamediv> |
| <refname>MEDIA_IOC_ENUM_LINKS</refname> |
| <refpurpose>Enumerate all pads and links for a given entity</refpurpose> |
| </refnamediv> |
| |
| <refsynopsisdiv> |
| <funcsynopsis> |
| <funcprototype> |
| <funcdef>int <function>ioctl</function></funcdef> |
| <paramdef>int <parameter>fd</parameter></paramdef> |
| <paramdef>int <parameter>request</parameter></paramdef> |
| <paramdef>struct media_links_enum *<parameter>argp</parameter></paramdef> |
| </funcprototype> |
| </funcsynopsis> |
| </refsynopsisdiv> |
| |
| <refsect1> |
| <title>Arguments</title> |
| |
| <variablelist> |
| <varlistentry> |
| <term><parameter>fd</parameter></term> |
| <listitem> |
| <para>File descriptor returned by |
| <link linkend='media-func-open'><function>open()</function></link>.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><parameter>request</parameter></term> |
| <listitem> |
| <para>MEDIA_IOC_ENUM_LINKS</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><parameter>argp</parameter></term> |
| <listitem> |
| <para></para> |
| </listitem> |
| </varlistentry> |
| </variablelist> |
| </refsect1> |
| |
| <refsect1> |
| <title>Description</title> |
| |
| <para>To enumerate pads and/or links for a given entity, applications set |
| the entity field of a &media-links-enum; structure and initialize the |
| &media-pad-desc; and &media-link-desc; structure arrays pointed by the |
| <structfield>pads</structfield> and <structfield>links</structfield> fields. |
| They then call the MEDIA_IOC_ENUM_LINKS ioctl with a pointer to this |
| structure.</para> |
| <para>If the <structfield>pads</structfield> field is not NULL, the driver |
| fills the <structfield>pads</structfield> array with information about the |
| entity's pads. The array must have enough room to store all the entity's |
| pads. The number of pads can be retrieved with the &MEDIA-IOC-ENUM-ENTITIES; |
| ioctl.</para> |
| <para>If the <structfield>links</structfield> field is not NULL, the driver |
| fills the <structfield>links</structfield> array with information about the |
| entity's outbound links. The array must have enough room to store all the |
| entity's outbound links. The number of outbound links can be retrieved with |
| the &MEDIA-IOC-ENUM-ENTITIES; ioctl.</para> |
| <para>Only forward links that originate at one of the entity's source pads |
| are returned during the enumeration process.</para> |
| |
| <table pgwide="1" frame="none" id="media-links-enum"> |
| <title>struct <structname>media_links_enum</structname></title> |
| <tgroup cols="3"> |
| &cs-str; |
| <tbody valign="top"> |
| <row> |
| <entry>__u32</entry> |
| <entry><structfield>entity</structfield></entry> |
| <entry>Entity id, set by the application.</entry> |
| </row> |
| <row> |
| <entry>&media-pad-desc;</entry> |
| <entry>*<structfield>pads</structfield></entry> |
| <entry>Pointer to a pads array allocated by the application. Ignored |
| if NULL.</entry> |
| </row> |
| <row> |
| <entry>&media-link-desc;</entry> |
| <entry>*<structfield>links</structfield></entry> |
| <entry>Pointer to a links array allocated by the application. Ignored |
| if NULL.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table pgwide="1" frame="none" id="media-pad-desc"> |
| <title>struct <structname>media_pad_desc</structname></title> |
| <tgroup cols="3"> |
| &cs-str; |
| <tbody valign="top"> |
| <row> |
| <entry>__u32</entry> |
| <entry><structfield>entity</structfield></entry> |
| <entry>ID of the entity this pad belongs to.</entry> |
| </row> |
| <row> |
| <entry>__u16</entry> |
| <entry><structfield>index</structfield></entry> |
| <entry>0-based pad index.</entry> |
| </row> |
| <row> |
| <entry>__u32</entry> |
| <entry><structfield>flags</structfield></entry> |
| <entry>Pad flags, see <xref linkend="media-pad-flag" /> for more details.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table pgwide="1" frame="none" id="media-link-desc"> |
| <title>struct <structname>media_link_desc</structname></title> |
| <tgroup cols="3"> |
| &cs-str; |
| <tbody valign="top"> |
| <row> |
| <entry>&media-pad-desc;</entry> |
| <entry><structfield>source</structfield></entry> |
| <entry>Pad at the origin of this link.</entry> |
| </row> |
| <row> |
| <entry>&media-pad-desc;</entry> |
| <entry><structfield>sink</structfield></entry> |
| <entry>Pad at the target of this link.</entry> |
| </row> |
| <row> |
| <entry>__u32</entry> |
| <entry><structfield>flags</structfield></entry> |
| <entry>Link flags, see <xref linkend="media-link-flag" /> for more details.</entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </table> |
| |
| </refsect1> |
| |
| <refsect1> |
| &return-value; |
| |
| <variablelist> |
| <varlistentry> |
| <term><errorcode>EINVAL</errorcode></term> |
| <listitem> |
| <para>The &media-links-enum; <structfield>id</structfield> references |
| a non-existing entity.</para> |
| </listitem> |
| </varlistentry> |
| </variablelist> |
| </refsect1> |
| </refentry> |