<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>clEnqueueUnmapMemObject</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>       
            clEnqueueUnmapMemObject 
        </refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2010</year>
                <holder>The Khronos Group Inc. 
 Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.</holder>
            </copyright>
        </refmiscinfo>
        <manvolnum>3</manvolnum>
  
    </refmeta>


<!-- ================================ SYNOPSIS -->  

    <refnamediv id="clEnqueueUnmapMemObject ">
        <refname>     
            clEnqueueUnmapMemObject 
        </refname> 

        <refpurpose>          
            Enqueues a command to unmap a previously mapped region of a memory object. 
        </refpurpose> 
    </refnamediv> 

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>              
                    <link xlink:href="scalarDataTypes.html">cl_int</link>  <function>clEnqueueUnmapMemObject </function>
                </funcdef>
                    <paramdef><link xlink:href="abstractDataTypes.html">cl_command_queue</link><parameter>command_queue</parameter></paramdef>
                    <paramdef><link xlink:href="abstractDataTypes.html">cl_mem</link><parameter>memobj</parameter></paramdef>
                    <paramdef><link xlink:href="scalarDataTypes.html">void</link><parameter>*mapped_ptr</parameter></paramdef>
                    <paramdef><link xlink:href="scalarDataTypes.html">cl_uint</link><parameter>num_events_in_wait_list</parameter></paramdef>
                    <paramdef>const <link xlink:href="abstractDataTypes.html">cl_event</link><parameter>*event_wait_list</parameter></paramdef>
                    <paramdef><link xlink:href="abstractDataTypes.html">cl_event</link><parameter>*event</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>     
    </refsynopsisdiv>


<!-- ================================ PARAMETERS --> 

    <refsect1 id="parameters">
        <title>Parameters</title>
        <variablelist>


            <varlistentry>
                <term>
                    <varname>
                        command_queue
                    </varname>
                </term>

                <listitem>
                    <para> 
                        Must be a valid command-queue. 
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
                        memobj
                    </varname>
                </term>

                <listitem>
                    <para>
                        A valid memory object. The OpenCL context associated with <varname>command_queue</varname> and <varname>memobj</varname> must be the same.
                    </para>
               </listitem>
            </varlistentry>
            
            <varlistentry>
                <term>
                    <varname>
                        mapped_ptr
                    </varname>
                </term>
                
                <listitem>
                    <para>
                        The host address returned by a previous call to <citerefentry><refentrytitle>clEnqueueMapBuffer</refentrytitle></citerefentry> or
<citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry> for <varname>memobj</varname>.
                    </para>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
                        event_wait_list
                    ,</varname>
                    <varname>
                        num_events_in_wait_list
                    </varname>
                </term>
                
                <listitem>
                    <para>
                        Specify events that need to complete before  <function>clEnqueueUnmapMemObject</function> can be executed. If  <varname>event_wait_list</varname> is NULL, then <function>clEnqueueUnmapMemObject</function> does not wait on any event to complete. If <varname>event_wait_list</varname> is NULL, <varname>num_events_in_wait_list</varname> must be 0. If <varname>event_wait_list</varname> is not NULL, the list of events pointed to by <varname>event_wait_list</varname> must be valid and <varname>num_events_in_wait_list</varname> must be greater than 0. The events specified in <varname>event_wait_list</varname> act as synchronization points. The context associated with events in <varname>event_wait_list</varname> and <varname>command_queue</varname> must be the same.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
                        event
                    </varname>
                </term>
                
                <listitem>
                    <para>
                        Returns an event object that identifies this particular copy command and can be used to query or queue a wait for this particular command to complete. <varname>event</varname> can be NULL in which
                        case it will not be possible for the application to query the status of this command or queue a
                        wait for this command to complete. <citerefentry><refentrytitle>clEnqueueBarrier</refentrytitle></citerefentry> can be used instead.
                    </para>
                </listitem>
            </varlistentry> 

        </variablelist>
    </refsect1>

    
<!-- ================================ NOTES  -->        
 

    <refsect1 id="notes"><title>Notes</title>
        <para>
            Reads or
            writes from the host using the pointer returned by <citerefentry><refentrytitle>clEnqueueMapBuffer</refentrytitle></citerefentry> or
            <citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry> are considered to be complete.
        </para>
        
        <para>
            <citerefentry><refentrytitle>clEnqueueMapBuffer</refentrytitle></citerefentry> and <citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry> increment the mapped count of the memory
            object. The initial mapped count value of a memory object is zero. Multiple calls to
            <citerefentry><refentrytitle>clEnqueueMapBuffer</refentrytitle></citerefentry> or <citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry> on the same memory object will increment this
            mapped count by appropriate number of calls. <function>clEnqueueUnmapMemObject</function> decrements the
            mapped count of the memory object.
        </para>
        
        <para>
            <citerefentry><refentrytitle>clEnqueueMapBuffer</refentrytitle></citerefentry> and <citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry> act as synchronization points for a region of
            the buffer object being mapped.
        </para>
    </refsect1>
    

<!-- ================================ ERRORS  -->       


    <refsect1 id="errors"><title>Errors</title>
        <para>
            <function>clEnqueueUnmapMemObject</function> returns <errorname>CL_SUCCESS</errorname> if the function is executed successfully.
            Otherwise, it returns one of the following errors:.
        </para>

        <itemizedlist mark="disc">
            <listitem>
                <errorname>CL_INVALID_COMMAND_QUEUE</errorname> if <varname>command_queue</varname> is not a valid command-queue.
            </listitem>
            
            <listitem>
                <errorname>CL_INVALID_MEM_OBJECT</errorname> if <varname>memobj</varname> is not a valid memory object.
            </listitem>
            
            <listitem>
                <errorname>CL_INVALID_VALUE</errorname> if <varname>mapped_ptr</varname> is not a valid pointer returned by 
                <citerefentry><refentrytitle>clEnqueueMapBuffer</refentrytitle></citerefentry> or 
                <citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry> for <varname>memobj</varname>.
            </listitem>                     
            
            <listitem>  
                <errorname>CL_INVALID_EVENT_WAIT_LIST</errorname> if <varname>event_wait_list</varname> is NULL and
                <varname>num_events_in_wait_list</varname> greater than 0, or <varname>event_wait_list</varname> is not NULL and
                <varname>num_events_in_wait_list</varname> is 0, or if event objects in <varname>event_wait_list</varname> are 
                not valid events.
            </listitem>
            <listitem>
                <errorname>CL_OUT_OF_HOST_MEMORY</errorname> if there is a failure to allocate resources required by the
                OpenCL implementation on the host.
            </listitem>
            <listitem>
                <errorname>CL_OUT_OF_RESOURCES</errorname> if there is a failure to allocate resources required by the 
                OpenCL implementation on the device.
            </listitem> 
            <listitem>          
                <errorname>CL_INVALID_CONTEXT</errorname> if the context associated with <varname>command_queue</varname> 
                and <varname>memobj</varname> are not the same or if the context associated with <varname>command_queue</varname> 
                and events in <varname>event_wait_list</varname> are not the same. 
            </listitem>
            
        </itemizedlist>
    </refsect1>
    

<!-- ================================ EXAMPLE  -->  
<!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE -->
<!--    
    <refsect2 id="example1">
        <title>
            Example
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
                            Example goes here - it will be set in "code" type with white space preserved.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>   
    </refsect2>  
--> 


<!-- ================================ SPECIFICATION  -->        
<!-- Set the "uri" attribute in the <olink /> element to the "named destination" for the PDF page
-->     
    <refsect1 id="specification"><title>Specification</title>
        <para>
            <imageobject>
                <imagedata fileref="pdficon_small1.gif" format="gif" />
            </imageobject>
            
                      
            <olink uri="clEnqueueUnmapMemObject ">OpenCL Specification</olink>
        </para>
    </refsect1>     


<!-- ================================ ALSO SEE  -->     
   

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>clEnqueueMapBuffer</refentrytitle></citerefentry>, 
            <citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry>
        </para>
    </refsect1>

<!-- ================================ COPYRIGHT  -->  
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
        <imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
        <para />
    </refsect3>

</refentry>

