162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci.. c:namespace:: CEC
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci.. _cec-func-ioctl:
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci***********
762306a36Sopenharmony_cicec ioctl()
862306a36Sopenharmony_ci***********
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciName
1162306a36Sopenharmony_ci====
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cicec-ioctl - Control a cec 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    CEC ioctl request code as defined in the cec.h header file, for
3262306a36Sopenharmony_ci    example :ref:`CEC_ADAP_G_CAPS <CEC_ADAP_G_CAPS>`.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci``argp``
3562306a36Sopenharmony_ci    Pointer to a request-specific structure.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciDescription
3862306a36Sopenharmony_ci===========
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ciThe :c:func:`ioctl()` function manipulates cec device parameters. The
4162306a36Sopenharmony_ciargument ``fd`` must be an open file descriptor.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciThe ioctl ``request`` code specifies the cec function to be called. It
4462306a36Sopenharmony_cihas encoded in it whether the argument is an input, output or read/write
4562306a36Sopenharmony_ciparameter, and the size of the argument ``argp`` in bytes.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciMacros and structures definitions specifying cec ioctl requests and
4862306a36Sopenharmony_citheir parameters are located in the cec.h header file. All cec ioctl
4962306a36Sopenharmony_cirequests, their respective function and parameters are specified in
5062306a36Sopenharmony_ci:ref:`cec-user-func`.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciReturn Value
5362306a36Sopenharmony_ci============
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciOn success 0 is returned, on error -1 and the ``errno`` variable is set
5662306a36Sopenharmony_ciappropriately. The generic error codes are described at the
5762306a36Sopenharmony_ci:ref:`Generic Error Codes <gen-errors>` chapter.
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciRequest-specific error codes are listed in the individual requests
6062306a36Sopenharmony_cidescriptions.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciWhen an ioctl that takes an output or read/write parameter fails, the
6362306a36Sopenharmony_ciparameter remains unmodified.
64