media-func-ioctl.xml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <refentry id="media-func-ioctl">
  2. <refmeta>
  3. <refentrytitle>media ioctl()</refentrytitle>
  4. &manvol;
  5. </refmeta>
  6. <refnamediv>
  7. <refname>media-ioctl</refname>
  8. <refpurpose>Control a media device</refpurpose>
  9. </refnamediv>
  10. <refsynopsisdiv>
  11. <funcsynopsis>
  12. <funcsynopsisinfo>#include &lt;sys/ioctl.h&gt;</funcsynopsisinfo>
  13. <funcprototype>
  14. <funcdef>int <function>ioctl</function></funcdef>
  15. <paramdef>int <parameter>fd</parameter></paramdef>
  16. <paramdef>int <parameter>request</parameter></paramdef>
  17. <paramdef>void *<parameter>argp</parameter></paramdef>
  18. </funcprototype>
  19. </funcsynopsis>
  20. </refsynopsisdiv>
  21. <refsect1>
  22. <title>Arguments</title>
  23. <variablelist>
  24. <varlistentry>
  25. <term><parameter>fd</parameter></term>
  26. <listitem>
  27. <para>&fd;</para>
  28. </listitem>
  29. </varlistentry>
  30. <varlistentry>
  31. <term><parameter>request</parameter></term>
  32. <listitem>
  33. <para>Media ioctl request code as defined in the media.h header file,
  34. for example MEDIA_IOC_SETUP_LINK.</para>
  35. </listitem>
  36. </varlistentry>
  37. <varlistentry>
  38. <term><parameter>argp</parameter></term>
  39. <listitem>
  40. <para>Pointer to a request-specific structure.</para>
  41. </listitem>
  42. </varlistentry>
  43. </variablelist>
  44. </refsect1>
  45. <refsect1>
  46. <title>Description</title>
  47. <para>The <function>ioctl()</function> function manipulates media device
  48. parameters. The argument <parameter>fd</parameter> must be an open file
  49. descriptor.</para>
  50. <para>The ioctl <parameter>request</parameter> code specifies the media
  51. function to be called. It has encoded in it whether the argument is an
  52. input, output or read/write parameter, and the size of the argument
  53. <parameter>argp</parameter> in bytes.</para>
  54. <para>Macros and structures definitions specifying media ioctl requests and
  55. their parameters are located in the media.h header file. All media ioctl
  56. requests, their respective function and parameters are specified in
  57. <xref linkend="media-user-func" />.</para>
  58. </refsect1>
  59. <refsect1>
  60. <title>Return Value</title>
  61. <para><function>ioctl()</function> returns <returnvalue>0</returnvalue> on
  62. success. On failure, <returnvalue>-1</returnvalue> is returned, and the
  63. <varname>errno</varname> variable is set appropriately. Generic error codes
  64. are listed below, and request-specific error codes are listed in the
  65. individual requests descriptions.</para>
  66. <para>When an ioctl that takes an output or read/write parameter fails,
  67. the parameter remains unmodified.</para>
  68. <variablelist>
  69. <varlistentry>
  70. <term><errorcode>EBADF</errorcode></term>
  71. <listitem>
  72. <para><parameter>fd</parameter> is not a valid open file descriptor.
  73. </para>
  74. </listitem>
  75. </varlistentry>
  76. <varlistentry>
  77. <term><errorcode>EFAULT</errorcode></term>
  78. <listitem>
  79. <para><parameter>argp</parameter> references an inaccessible memory
  80. area.</para>
  81. </listitem>
  82. </varlistentry>
  83. <varlistentry>
  84. <term><errorcode>EINVAL</errorcode></term>
  85. <listitem>
  86. <para>The <parameter>request</parameter> or the data pointed to by
  87. <parameter>argp</parameter> is not valid. This is a very common error
  88. code, see the individual ioctl requests listed in
  89. <xref linkend="media-user-func" /> for actual causes.</para>
  90. </listitem>
  91. </varlistentry>
  92. <varlistentry>
  93. <term><errorcode>ENOMEM</errorcode></term>
  94. <listitem>
  95. <para>Insufficient kernel memory was available to complete the
  96. request.</para>
  97. </listitem>
  98. </varlistentry>
  99. <varlistentry>
  100. <term><errorcode>ENOTTY</errorcode></term>
  101. <listitem>
  102. <para><parameter>fd</parameter> is not associated with a character
  103. special device.</para>
  104. </listitem>
  105. </varlistentry>
  106. </variablelist>
  107. </refsect1>
  108. </refentry>