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