Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / Documentation / userspace-api / media / v4l / vidioc-g-priority.rst
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2 .. c:namespace:: V4L
3
4 .. _VIDIOC_G_PRIORITY:
5
6 ******************************************
7 ioctl VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY
8 ******************************************
9
10 Name
11 ====
12
13 VIDIOC_G_PRIORITY - VIDIOC_S_PRIORITY - Query or request the access priority associated with a file descriptor
14
15 Synopsis
16 ========
17
18 .. c:macro:: VIDIOC_G_PRIORITY
19
20 ``int ioctl(int fd, VIDIOC_G_PRIORITY, enum v4l2_priority *argp)``
21
22 .. c:macro:: VIDIOC_S_PRIORITY
23
24 ``int ioctl(int fd, VIDIOC_S_PRIORITY, const enum v4l2_priority *argp)``
25
26 Arguments
27 =========
28
29 ``fd``
30     File descriptor returned by :c:func:`open()`.
31
32 ``argp``
33     Pointer to an enum :c:type:`v4l2_priority` type.
34
35 Description
36 ===========
37
38 To query the current access priority applications call the
39 :ref:`VIDIOC_G_PRIORITY <VIDIOC_G_PRIORITY>` ioctl with a pointer to an enum v4l2_priority
40 variable where the driver stores the current priority.
41
42 To request an access priority applications store the desired priority in
43 an enum v4l2_priority variable and call :ref:`VIDIOC_S_PRIORITY <VIDIOC_G_PRIORITY>` ioctl
44 with a pointer to this variable.
45
46 .. c:type:: v4l2_priority
47
48 .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
49
50 .. flat-table:: enum v4l2_priority
51     :header-rows:  0
52     :stub-columns: 0
53     :widths:       3 1 4
54
55     * - ``V4L2_PRIORITY_UNSET``
56       - 0
57       -
58     * - ``V4L2_PRIORITY_BACKGROUND``
59       - 1
60       - Lowest priority, usually applications running in background, for
61         example monitoring VBI transmissions. A proxy application running
62         in user space will be necessary if multiple applications want to
63         read from a device at this priority.
64     * - ``V4L2_PRIORITY_INTERACTIVE``
65       - 2
66       -
67     * - ``V4L2_PRIORITY_DEFAULT``
68       - 2
69       - Medium priority, usually applications started and interactively
70         controlled by the user. For example TV viewers, Teletext browsers,
71         or just "panel" applications to change the channel or video
72         controls. This is the default priority unless an application
73         requests another.
74     * - ``V4L2_PRIORITY_RECORD``
75       - 3
76       - Highest priority. Only one file descriptor can have this priority,
77         it blocks any other fd from changing device properties. Usually
78         applications which must not be interrupted, like video recording.
79
80 Return Value
81 ============
82
83 On success 0 is returned, on error -1 and the ``errno`` variable is set
84 appropriately. The generic error codes are described at the
85 :ref:`Generic Error Codes <gen-errors>` chapter.
86
87 EINVAL
88     The requested priority value is invalid.
89
90 EBUSY
91     Another application already requested higher priority.