1.. Permission is granted to copy, distribute and/or modify this
2.. document under the terms of the GNU Free Documentation License,
3.. Version 1.1 or any later version published by the Free Software
4.. Foundation, with no Invariant Sections, no Front-Cover Texts
5.. and no Back-Cover Texts. A copy of the license is included at
6.. Documentation/userspace-api/media/fdl-appendix.rst.
7..
8.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
9
10.. _func-munmap:
11
12*************
13V4L2 munmap()
14*************
15
16Name
17====
18
19v4l2-munmap - Unmap device memory
20
21
22Synopsis
23========
24
25.. code-block:: c
26
27    #include <unistd.h>
28    #include <sys/mman.h>
29
30
31.. c:function:: int munmap( void *start, size_t length )
32    :name: v4l2-munmap
33
34Arguments
35=========
36
37``start``
38    Address of the mapped buffer as returned by the
39    :ref:`mmap() <func-mmap>` function.
40
41``length``
42    Length of the mapped buffer. This must be the same value as given to
43    :ref:`mmap() <func-mmap>` and returned by the driver in the struct
44    :c:type:`v4l2_buffer` ``length`` field for the
45    single-planar API and in the struct
46    :c:type:`v4l2_plane` ``length`` field for the
47    multi-planar API.
48
49
50Description
51===========
52
53Unmaps a previously with the :ref:`mmap() <func-mmap>` function mapped
54buffer and frees it, if possible.
55
56
57Return Value
58============
59
60On success :ref:`munmap() <func-munmap>` returns 0, on failure -1 and the
61``errno`` variable is set appropriately:
62
63EINVAL
64    The ``start`` or ``length`` is incorrect, or no buffers have been
65    mapped yet.
66