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