Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / Documentation / media / uapi / mediactl / media-request-ioc-reinit.rst
1 .. This file is dual-licensed: you can use it either under the terms
2 .. of the GPL 2.0 or the GFDL 1.1+ license, at your option. Note that this
3 .. dual licensing only applies to this file, and not this project as a
4 .. whole.
5 ..
6 .. a) This file is free software; you can redistribute it and/or
7 ..    modify it under the terms of the GNU General Public License as
8 ..    published by the Free Software Foundation version 2 of
9 ..    the License.
10 ..
11 ..    This file is distributed in the hope that it will be useful,
12 ..    but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ..    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 ..    GNU General Public License for more details.
15 ..
16 .. Or, alternatively,
17 ..
18 .. b) Permission is granted to copy, distribute and/or modify this
19 ..    document under the terms of the GNU Free Documentation License,
20 ..    Version 1.1 or any later version published by the Free Software
21 ..    Foundation, with no Invariant Sections, no Front-Cover Texts
22 ..    and no Back-Cover Texts. A copy of the license is included at
23 ..    Documentation/media/uapi/fdl-appendix.rst.
24 ..
25 .. TODO: replace it to GPL-2.0 OR GFDL-1.1-or-later WITH no-invariant-sections
26
27 .. _media_request_ioc_reinit:
28
29 ******************************
30 ioctl MEDIA_REQUEST_IOC_REINIT
31 ******************************
32
33 Name
34 ====
35
36 MEDIA_REQUEST_IOC_REINIT - Re-initialize a request
37
38
39 Synopsis
40 ========
41
42 .. c:function:: int ioctl( int request_fd, MEDIA_REQUEST_IOC_REINIT )
43     :name: MEDIA_REQUEST_IOC_REINIT
44
45
46 Arguments
47 =========
48
49 ``request_fd``
50     File descriptor returned by :ref:`MEDIA_IOC_REQUEST_ALLOC`.
51
52 Description
53 ===========
54
55 If the media device supports :ref:`requests <media-request-api>`, then
56 this request ioctl can be used to re-initialize a previously allocated
57 request.
58
59 Re-initializing a request will clear any existing data from the request.
60 This avoids having to :ref:`close() <request-func-close>` a completed
61 request and allocate a new request. Instead the completed request can just
62 be re-initialized and it is ready to be used again.
63
64 A request can only be re-initialized if it either has not been queued
65 yet, or if it was queued and completed. Otherwise it will set ``errno``
66 to ``EBUSY``. No other error codes can be returned.
67
68 Return Value
69 ============
70
71 On success 0 is returned, on error -1 and the ``errno`` variable is set
72 appropriately.
73
74 EBUSY
75     The request is queued but not yet completed.