18c2ecf20Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
28c2ecf20Sopenharmony_ci.. c:namespace:: MC
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ci.. _request-func-ioctl:
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci***************
78c2ecf20Sopenharmony_cirequest ioctl()
88c2ecf20Sopenharmony_ci***************
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciName
118c2ecf20Sopenharmony_ci====
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cirequest-ioctl - Control a request file descriptor
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciSynopsis
168c2ecf20Sopenharmony_ci========
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci.. code-block:: c
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci    #include <sys/ioctl.h>
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci``int ioctl(int fd, int cmd, void *argp)``
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciArguments
258c2ecf20Sopenharmony_ci=========
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci``fd``
288c2ecf20Sopenharmony_ci    File descriptor returned by :ref:`MEDIA_IOC_REQUEST_ALLOC`.
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci``cmd``
318c2ecf20Sopenharmony_ci    The request ioctl command code as defined in the media.h header file, for
328c2ecf20Sopenharmony_ci    example :ref:`MEDIA_REQUEST_IOC_QUEUE`.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci``argp``
358c2ecf20Sopenharmony_ci    Pointer to a request-specific structure.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciDescription
388c2ecf20Sopenharmony_ci===========
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciThe :ref:`ioctl() <request-func-ioctl>` function manipulates request
418c2ecf20Sopenharmony_ciparameters. The argument ``fd`` must be an open file descriptor.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciThe ioctl ``cmd`` code specifies the request function to be called. It
448c2ecf20Sopenharmony_cihas encoded in it whether the argument is an input, output or read/write
458c2ecf20Sopenharmony_ciparameter, and the size of the argument ``argp`` in bytes.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciMacros and structures definitions specifying request ioctl commands and
488c2ecf20Sopenharmony_citheir parameters are located in the media.h header file. All request ioctl
498c2ecf20Sopenharmony_cicommands, their respective function and parameters are specified in
508c2ecf20Sopenharmony_ci:ref:`media-user-func`.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciReturn Value
538c2ecf20Sopenharmony_ci============
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciOn success 0 is returned, on error -1 and the ``errno`` variable is set
568c2ecf20Sopenharmony_ciappropriately. The generic error codes are described at the
578c2ecf20Sopenharmony_ci:ref:`Generic Error Codes <gen-errors>` chapter.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciCommand-specific error codes are listed in the individual command
608c2ecf20Sopenharmony_cidescriptions.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ciWhen an ioctl that takes an output or read/write parameter fails, the
638c2ecf20Sopenharmony_ciparameter remains unmodified.
64