| <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_ENUM_LINKS</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>EBUSY</errorcode></term> |
| <listitem> |
| <para>The link properties can't be changed because the link is |
| currently busy. This can be caused, for instance, by an active media |
| stream (audio or video) on the link. The ioctl shouldn't be retried if |
| no other action is performed before to fix the problem.</para> |
| </listitem> |
| </varlistentry> |
| <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> |