| <refentry id="func-munmap"> |
| <refmeta> |
| <refentrytitle>V4L2 munmap()</refentrytitle> |
| &manvol; |
| </refmeta> |
| |
| <refnamediv> |
| <refname>v4l2-munmap</refname> |
| <refpurpose>Unmap device memory</refpurpose> |
| </refnamediv> |
| |
| <refsynopsisdiv> |
| <funcsynopsis> |
| <funcsynopsisinfo> |
| #include <unistd.h> |
| #include <sys/mman.h></funcsynopsisinfo> |
| <funcprototype> |
| <funcdef>int <function>munmap</function></funcdef> |
| <paramdef>void *<parameter>start</parameter></paramdef> |
| <paramdef>size_t <parameter>length</parameter></paramdef> |
| </funcprototype> |
| </funcsynopsis> |
| </refsynopsisdiv> |
| <refsect1> |
| <title>Arguments</title> |
| <variablelist> |
| <varlistentry> |
| <term><parameter>start</parameter></term> |
| <listitem> |
| <para>Address of the mapped buffer as returned by the |
| &func-mmap; function.</para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><parameter>length</parameter></term> |
| <listitem> |
| <para>Length of the mapped buffer. This must be the same |
| value as given to <function>mmap()</function> and returned by the |
| driver in the &v4l2-buffer; <structfield>length</structfield> |
| field for the single-planar API and in the &v4l2-plane; |
| <structfield>length</structfield> field for the multi-planar API.</para> |
| </listitem> |
| </varlistentry> |
| </variablelist> |
| </refsect1> |
| |
| <refsect1> |
| <title>Description</title> |
| |
| <para>Unmaps a previously with the &func-mmap; function mapped |
| buffer and frees it, if possible. <!-- ? This function (not freeing) |
| has no impact on I/O in progress, specifically it does not imply |
| &VIDIOC-STREAMOFF; to terminate I/O. Unmapped buffers can still be |
| enqueued, dequeued or queried, they are just not accessible by the |
| application.--></para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Return Value</title> |
| |
| <para>On success <function>munmap()</function> returns 0, on |
| failure -1 and the <varname>errno</varname> variable is set |
| appropriately:</para> |
| |
| <variablelist> |
| <varlistentry> |
| <term><errorcode>EINVAL</errorcode></term> |
| <listitem> |
| <para>The <parameter>start</parameter> or |
| <parameter>length</parameter> is incorrect, or no buffers have been |
| mapped yet.</para> |
| </listitem> |
| </varlistentry> |
| </variablelist> |
| </refsect1> |
| </refentry> |