GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / userspace-api / media / mediactl / media-func-ioctl.rst
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2 .. c:namespace:: MC
3
4 .. _media-func-ioctl:
5
6 *************
7 media ioctl()
8 *************
9
10 Name
11 ====
12
13 media-ioctl - Control a media device
14
15 Synopsis
16 ========
17
18 .. code-block:: c
19
20     #include <sys/ioctl.h>
21
22 ``int ioctl(int fd, int request, void *argp)``
23
24 Arguments
25 =========
26
27 ``fd``
28     File descriptor returned by :c:func:`open()`.
29
30 ``request``
31     Media ioctl request code as defined in the media.h header file, for
32     example MEDIA_IOC_SETUP_LINK.
33
34 ``argp``
35     Pointer to a request-specific structure.
36
37 Description
38 ===========
39
40 The :ref:`ioctl() <media-func-ioctl>` function manipulates media device
41 parameters. The argument ``fd`` must be an open file descriptor.
42
43 The ioctl ``request`` code specifies the media function to be called. It
44 has encoded in it whether the argument is an input, output or read/write
45 parameter, and the size of the argument ``argp`` in bytes.
46
47 Macros and structures definitions specifying media ioctl requests and
48 their parameters are located in the media.h header file. All media ioctl
49 requests, their respective function and parameters are specified in
50 :ref:`media-user-func`.
51
52 Return Value
53 ============
54
55 On success 0 is returned, on error -1 and the ``errno`` variable is set
56 appropriately. The generic error codes are described at the
57 :ref:`Generic Error Codes <gen-errors>` chapter.
58
59 Request-specific error codes are listed in the individual requests
60 descriptions.
61
62 When an ioctl that takes an output or read/write parameter fails, the
63 parameter remains unmodified.