2009-09-14 05:16:04 +04:00
<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>
2011-01-07 07:41:33 +03:00
field for the single-planar API and in the &v4l2-plane;
<structfield > length</structfield> field for the multi-planar API.</para>
2009-09-14 05:16:04 +04:00
</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>