<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>