blob: f19c37cf5000f4540de6fab11d01d6e6da6849ab [file] [log] [blame]
<!-- common stuff for global, local, constant, and private -->
<para>
OpenCL implements the following disjoint address spaces: <function>__global</function>,
<function>__local</function>, <function>__constant</function>, and
<function>__private</function> The address space qualifier may be used in variable
declarations to specify the region of memory that is used to allocate the object. The
C syntax for type qualifiers is extended in OpenCL to include an address space name as
a valid type qualifier. If the type of an object is qualified by an address space name,
the object is allocated in the specified address name; otherwise, the object is allocated
in the generic address space.
</para>
<para>
The address space names without the __prefix i.e. <function>global</function>,
<function>local</function>, <function>constant</function> and <function>private</function>
may be substituted for the corresponding address space names with the __prefix.
</para>
<para>
The generic address space name for arguments to a function in a program, or local variables
of a function is <function>__private</function>. All function arguments shall be in the
<function>__private</function> address space.
</para>
<para>
<citerefentry
href="functionQualifiers"><refentrytitle>__kernel</refentrytitle></citerefentry>
function arguments declared to be a pointer of a type can point to one of the following
address spaces only: <function>__global</function>, <function>__local</function> or
<function>__constant</function>. A pointer to address space A can only be assigned to
a pointer to the same address space A. Casting a pointer to address space A to a pointer
to address space B is illegal.
</para>
<para>
Function arguments of type
<type><citerefentry href="otherDataTypes"><refentrytitle>image2d_t</refentrytitle></citerefentry></type>,
<type><citerefentry href="otherDataTypes"><refentrytitle>image3d_t</refentrytitle></citerefentry></type>,
<type><citerefentry href="otherDataTypes"><refentrytitle>image2d_array_t</refentrytitle></citerefentry></type>,
<type><citerefentry href="otherDataTypes"><refentrytitle>image1d_t</refentrytitle></citerefentry></type>,
<type><citerefentry href="otherDataTypes"><refentrytitle>image1d_buffer_t</refentrytitle></citerefentry></type>, and
<type><citerefentry href="otherDataTypes"><refentrytitle>image1d_array_t</refentrytitle></citerefentry></type>
refer to image memory objects allocated in the <function>__global</function> address space.
</para>
<!-- 14-Oct-2011 -->