<?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>clEnqueueMapBuffer</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>       
            clEnqueueMapBuffer
        </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="clEnqueueMapBuffer">
        <refname>     
            clEnqueueMapBuffer
        </refname> 

        <refpurpose>          
            Enqueues a command to map a region of the buffer object given by <varname>buffer</varname> into the host address space and returns a pointer to this mapped region.
        </refpurpose> 
    </refnamediv> 

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>              
                    <link xlink:href="scalarDataTypes.html">void</link> * <function>clEnqueueMapBuffer</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>buffer</parameter></paramdef>
                    <paramdef><link xlink:href="enums.html#cl_bool">cl_bool</link><parameter>blocking_map</parameter></paramdef>
                    <paramdef><link xlink:href="enums.html#cl_map_flags">cl_map_flags</link><parameter>map_flags</parameter></paramdef>
                    <paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>offset</parameter></paramdef>
                    <paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>cb</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>
                    <paramdef><link xlink:href="scalarDataTypes.html">cl_int</link><parameter>*errcode_ret</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>
                        blocking_map
                    </varname>
                </term>
                
                <listitem>
                    <para>
                        Indicates if the map operation is <varname>blocking</varname> or <varname>non-blocking</varname>.
                    </para>
                    
                    <para>
                        If <varname>blocking_map</varname> is <constant>CL_TRUE</constant>, <function>clEnqueueMapBuffer</function> does not return until the specified region in <varname>buffer</varname> can be mapped.
                    </para>
                    
                    <para>
                        If <varname>blocking_map</varname> is <constant>CL_FALSE</constant> i.e. map operation is non-blocking, the pointer to the mapped region returned by <function>clEnqueueMapBuffer</function> cannot be used until the map command has completed. The <varname>event</varname> argument returns an event object which can be used to query the execution status of the map command. When the map command is completed, the application can access the contents of the mapped region using the pointer returned by <function>clEnqueueMapBuffer</function>.
                    </para>
                </listitem>
            </varlistentry>
            
            <varlistentry>
                <term>
                    <varname>
                        map_flags
                    </varname>
                </term>

                <listitem>
                    <para>
                        Is a bit-field and can be set to <constant>CL_MAP_READ</constant> to indicate that the region specified by (<varname>offset</varname>, <varname>cb</varname>) in the buffer object is being mapped for reading, and/or <constant>CL_MAP_WRITE</constant> to indicate that the region specified by (<varname>offset</varname>, <varname>cb</varname>) in the buffer object is being mapped for writing.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
                        buffer
                    </varname>
                </term>

                <listitem>
                    <para>
                        A valid buffer object. The OpenCL context associated with <varname>command_queue</varname> and <varname>buffer</varname> must be the same.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
                        offset,                    
                    </varname>  
                    <varname>
                        cb
                    </varname>
                </term>

                <listitem>
                    <para> 
                        The offset in bytes and the size of the region in the buffer object that is being mapped.
                    </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 this
                        particular command can be executed. If <varname>event_wait_list</varname> is NULL, then this particular command
                        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.         
                    </para>
                </listitem>
            </varlistentry> 
             <varlistentry>
                <term>
                    <varname>
                        errcode_ret
                    </varname>
                </term>
            
            <listitem>
                <para>
                    Returns an appropriate error code. If <varname>errcode_ret</varname> is NULL, no error code is returned.
                </para>
            </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>

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

    <refsect1 id="notes"><title>Notes</title>
    
<para>
    If the buffer object is created with <constant>CL_MEM_USE_HOST_PTR</constant> set in <varname>mem_flags</varname>, the <varname>host_ptr</varname> specified in <citerefentry><refentrytitle>clCreateBuffer</refentrytitle></citerefentry> is guaranteed to contain the latest bits in the region being mapped when the <function>clEnqueueMapBuffer</function> command has completed; and the pointer value returned by <function>clEnqueueMapBuffer</function> will be derived from the <varname>host_ptr</varname> specified when the buffer object is created.</para>
<para>Mapped buffer objects are unmapped using <citerefentry><refentrytitle>clEnqueueUnmapMemObject</refentrytitle></citerefentry>.
    </para>

        <para>
        The contents of the regions of a memory object mapped for writing (i.e. <constant>CL_MAP_WRITE</constant> is set in <varname>map_flags</varname> argument to <function>clEnqueueMapBuffer</function> or <citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry>) are considered to be undefined until this region is unmapped. Reads and writes by a kernel executing on a device to a memory region(s) mapped for writing are undefined.
        </para>
        <para>
Multiple command-queues can map a region or overlapping regions of a memory object for
reading (i.e. <varname>map_flags</varname> = <constant>CL_MAP_READ</constant>). The contents of the regions of a memory object mapped for reading can also be read by kernels executing on a device(s). The behavior of writes by a kernel executing on a device to a mapped region of a memory object is undefined. Mapping (and unmapping) overlapped regions of a buffer or image memory object for writing is undefined.
        </para>
        <para>
The behavior of OpenCL function calls that enqueue commands that write or copy to regions of a
memory object that are mapped is undefined.
        </para>

        <para>
            The pointer returned maps a region starting at <varname>offset</varname> and is at least <varname>cb</varname> bytes in size. The result of a memory access outside this region is undefined.
        </para>
    </refsect1>
    

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


    <refsect1 id="errors"><title>Errors</title>
        <para>
            <function>clEnqueueMapBuffer</function> will return a pointer to the mapped region if the function is executed successfully.  The <varname>errcode_ret</varname> is set to <errorname>CL_SUCCESS</errorname>.
        </para>
        <para>
            A NULL pointer is returned otherwise with one of the following error values returned in <varname>errcode_ret</varname>:
        <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_CONTEXT</errorname> if the context associated with 
                <varname>command_queue</varname> and <varname>buffer</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>
            
            <listitem>
                <errorname>CL_INVALID_MEM_OBJECT</errorname> if <varname>buffer</varname> is not a valid buffer object.
            </listitem>
            
            
            <listitem>
                <errorname>CL_INVALID_VALUE</errorname> if region being mapped given by (<varname>offset</varname>, <varname>cb</varname>) is out of bounds or if
                values specified in <varname>map_flags</varname> are not valid
            </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_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST</errorname> if the map operation is blocking and the execution status of any of the events in <varname>event_wait_list</varname> is a negative integer value.
            </listitem>
            <listitem>
                <errorname>CL_MISALIGNED_SUB_BUFFER_OFFSET</errorname> if <varname>buffer</varname> is a sub-buffer object and 
                <varname>offset</varname> specified when the sub-buffer object is created is not aligned to <constant>CL_DEVICE_MEM_BASE_ADDR_ALIGN</constant> 
                value for device associated with <varname>queue</varname>.
            </listitem>
            
            <listitem>
                <errorname>CL_MAP_FAILURE</errorname> if there is a failure to map the requested region into the host address
                space. This error cannot occur for buffer objects created with <constant>CL_MEM_USE_HOST_PTR</constant>
                or <constant>CL_MEM_ALLOC_HOST_PTR</constant>.
            </listitem>
            <listitem>
                <errorname>CL_MEM_OBJECT_ALLOCATION_FAILURE</errorname> if there is a failure to allocate memory for
                data store associated with <varname>buffer</varname>.
            </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_OUT_OF_HOST_MEMORY</errorname> if there is a failure to allocate resources required by the
                OpenCL implementation on the host.
            </listitem>         
        </itemizedlist></para>
            
    </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="clEnqueueMapBuffer">OpenCL Specification</olink>
        </para>
    </refsect1>     


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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry>, 
            <citerefentry><refentrytitle>clEnqueueUnmapMemObject</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>

