162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci.. c:namespace:: V4L
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci.. _func-ioctl:
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci************
762306a36Sopenharmony_ciV4L2 ioctl()
862306a36Sopenharmony_ci************
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciName
1162306a36Sopenharmony_ci====
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_civ4l2-ioctl - Program a V4L2 device
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciSynopsis
1662306a36Sopenharmony_ci========
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci.. code-block:: c
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci    #include <sys/ioctl.h>
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci``int ioctl(int fd, int request, void *argp)``
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciArguments
2562306a36Sopenharmony_ci=========
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci``fd``
2862306a36Sopenharmony_ci    File descriptor returned by :c:func:`open()`.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci``request``
3162306a36Sopenharmony_ci    V4L2 ioctl request code as defined in the ``videodev2.h`` header
3262306a36Sopenharmony_ci    file, for example VIDIOC_QUERYCAP.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci``argp``
3562306a36Sopenharmony_ci    Pointer to a function parameter, usually a structure.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciDescription
3862306a36Sopenharmony_ci===========
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ciThe :ref:`ioctl() <func-ioctl>` function is used to program V4L2 devices. The
4162306a36Sopenharmony_ciargument ``fd`` must be an open file descriptor. An ioctl ``request``
4262306a36Sopenharmony_cihas encoded in it whether the argument is an input, output or read/write
4362306a36Sopenharmony_ciparameter, and the size of the argument ``argp`` in bytes. Macros and
4462306a36Sopenharmony_cidefines specifying V4L2 ioctl requests are located in the
4562306a36Sopenharmony_ci``videodev2.h`` header file. Applications should use their own copy, not
4662306a36Sopenharmony_ciinclude the version in the kernel sources on the system they compile on.
4762306a36Sopenharmony_ciAll V4L2 ioctl requests, their respective function and parameters are
4862306a36Sopenharmony_cispecified in :ref:`user-func`.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciReturn Value
5162306a36Sopenharmony_ci============
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciOn success 0 is returned, on error -1 and the ``errno`` variable is set
5462306a36Sopenharmony_ciappropriately. The generic error codes are described at the
5562306a36Sopenharmony_ci:ref:`Generic Error Codes <gen-errors>` chapter.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciWhen an ioctl that takes an output or read/write parameter fails, the
5862306a36Sopenharmony_ciparameter remains unmodified.
59