|  | <refentry id="media-ioc-setup-link"> | 
|  | <refmeta> | 
|  | <refentrytitle>ioctl MEDIA_IOC_SETUP_LINK</refentrytitle> | 
|  | &manvol; | 
|  | </refmeta> | 
|  |  | 
|  | <refnamediv> | 
|  | <refname>MEDIA_IOC_SETUP_LINK</refname> | 
|  | <refpurpose>Modify the properties of a link</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_link_desc *<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_SETUP_LINK</para> | 
|  | </listitem> | 
|  | </varlistentry> | 
|  | <varlistentry> | 
|  | <term><parameter>argp</parameter></term> | 
|  | <listitem> | 
|  | <para></para> | 
|  | </listitem> | 
|  | </varlistentry> | 
|  | </variablelist> | 
|  | </refsect1> | 
|  |  | 
|  | <refsect1> | 
|  | <title>Description</title> | 
|  |  | 
|  | <para>To change link properties applications fill a &media-link-desc; with | 
|  | link identification information (source and sink pad) and the new requested | 
|  | link flags. They then call the MEDIA_IOC_SETUP_LINK ioctl with a pointer to | 
|  | that structure.</para> | 
|  | <para>The only configurable property is the <constant>ENABLED</constant> | 
|  | link flag to enable/disable a link. Links marked with the | 
|  | <constant>IMMUTABLE</constant> link flag can not be enabled or disabled. | 
|  | </para> | 
|  | <para>Link configuration has no side effect on other links. If an enabled | 
|  | link at the sink pad prevents the link from being enabled, the driver | 
|  | returns with an &EBUSY;.</para> | 
|  | <para>Only links marked with the <constant>DYNAMIC</constant> link flag can | 
|  | be enabled/disabled while streaming media data. Attempting to enable or | 
|  | disable a streaming non-dynamic link will return an &EBUSY;.</para> | 
|  | <para>If the specified link can't be found the driver returns with an | 
|  | &EINVAL;.</para> | 
|  | </refsect1> | 
|  |  | 
|  | <refsect1> | 
|  | &return-value; | 
|  |  | 
|  | <variablelist> | 
|  | <varlistentry> | 
|  | <term><errorcode>EINVAL</errorcode></term> | 
|  | <listitem> | 
|  | <para>The &media-link-desc; references a non-existing link, or the | 
|  | link is immutable and an attempt to modify its configuration was made. | 
|  | </para> | 
|  | </listitem> | 
|  | </varlistentry> | 
|  | </variablelist> | 
|  | </refsect1> | 
|  | </refentry> |