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****************************** 30ioctl MEDIA_REQUEST_IOC_REINIT 31****************************** 32 33Name 34==== 35 36MEDIA_REQUEST_IOC_REINIT - Re-initialize a request 37 38 39Synopsis 40======== 41 42.. c:function:: int ioctl( int request_fd, MEDIA_REQUEST_IOC_REINIT ) 43 :name: MEDIA_REQUEST_IOC_REINIT 44 45 46Arguments 47========= 48 49``request_fd`` 50 File descriptor returned by :ref:`MEDIA_IOC_REQUEST_ALLOC`. 51 52Description 53=========== 54 55If the media device supports :ref:`requests <media-request-api>`, then 56this request ioctl can be used to re-initialize a previously allocated 57request. 58 59Re-initializing a request will clear any existing data from the request. 60This avoids having to :ref:`close() <request-func-close>` a completed 61request and allocate a new request. Instead the completed request can just 62be re-initialized and it is ready to be used again. 63 64A request can only be re-initialized if it either has not been queued 65yet, or if it was queued and completed. Otherwise it will set ``errno`` 66to ``EBUSY``. No other error codes can be returned. 67 68Return Value 69============ 70 71On success 0 is returned, on error -1 and the ``errno`` variable is set 72appropriately. 73 74EBUSY 75 The request is queued but not yet completed. 76