blob: 5479d76b6a86eecb3cf99d1345f830226695ce2b [file] [log] [blame]
<?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" [
<!ENTITY multipleHostThreads SYSTEM "multipleHostThreadsInc.xml">
]>
<refentry>
<refentryinfo>
<keywordset>
<keyword>clSetKernelArgSVMPointer</keyword>
</keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
clSetKernelArgSVMPointer
</refentrytitle>
<refmiscinfo>
<copyright>
<year>2007-2015</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="clSetKernelArgSVMPointer">
<refname>
clSetKernelArgSVMPointer
</refname>
<refpurpose>
Set a SVM pointer as the argument value for a specific argument of a kernel.
</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>clSetKernelArgSVMPointer</function>
</funcdef>
<paramdef><link xlink:href="abstractDataTypes.html">cl_kernel</link><parameter>kernel</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">cl_uint</link><parameter>arg_index</parameter></paramdef>
<paramdef>const <link xlink:href="scalarDataTypes.html">void</link><parameter>*arg_value</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- ================================ PARAMETERS -->
<!-- For each <varlistentry />, place the parameter name in <term /><varname />, then the definition in
<listitem /><para />. When refering to anything
that has a page in this system, use <citerefentry /><refentrytitle /> to make it a link.
-->
<refsect1 id="parameters" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Parameters</title>
<variablelist>
<varlistentry>
<term>
<varname>kernel</varname>
</term>
<listitem>
<para>
A valid kernel object.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>arg_index</varname>
</term>
<listitem>
<para>
The argument index. Arguments to the kernel are
referred by indices that go from 0
for the leftmost argument to <varname>n</varname> - 1,
where <varname>n</varname> is the total
number of arguments declared by a kernel.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<varname>arg_value</varname>
</term>
<listitem>
<para>
The SVM pointer that should be used as the argument value for
argument specified by <varname>arg_index</varname>.
The SVM pointer specified is the value used by all
API calls that enqueue <varname>kernel</varname>
(<citerefentry><refentrytitle>clEnqueueNDRangeKernel</refentrytitle></citerefentry>)
until the argument value is changed by a call to
<function>clSetKernelArgSVMPointer</function>
for <varname>kernel</varname>.
The SVM pointer can only be used for arguments that
are declared to be a pointer to <code>global</code> or <code>constant</code>
memory. The SVM pointer value must
be aligned according to the argument type. For
example, if the argument is declared to be
<code>global float4 *p</code>, the SVM pointer
value passed for <varname>p</varname> must
be at a minimum aligned to a
<type>float4</type>. The SVM pointer value
specified as the argument value can be the pointer returned by
<citerefentry><refentrytitle>clSVMAlloc</refentrytitle></citerefentry>
or can be a pointer + offset into the SVM region.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<!-- ================================ NOTES -->
<!-- Use <function /> to refer ONLY to the function that this page describes. All other functions should use
<citerefentry /><refentrytitle /> to make it a link. Use <varname /> for parameters. Use <constant /> for
constants (or anything to be set in monospace, non-bold type. -->
<refsect1 id="notes"><title>Notes</title>
&multipleHostThreads;
</refsect1>
<!-- ================================ ERRORS -->
<refsect1 id="errors"><title>Errors</title>
<para>
<function>clSetKernelArgSVMPointer</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_KERNEL</errorname> if <varname>kernel</varname>
is not a valid kernel object.
</listitem>
<listitem>
<errorname>CL_INVALID_ARG_INDEX</errorname> if <varname>arg_index</varname>
is not a valid argument index.
</listitem>
<listitem>
<errorname>CL_INVALID_ARG_VALUE</errorname> if <varname>arg_value</varname>
specified is not a valid value.
</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>
</refsect1>
<!-- ================================ EXAMPLE -->
<!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE -->
<!-- -->
<!-- ================================ 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="clSetKernelArgSVMPointer">OpenCL Specification</olink>
</para>
</refsect1>
<!-- ================================ ALSO SEE -->
<refsect1 id="seealso"><title>Also see</title>
<para>
<citerefentry><refentrytitle>clSetKernelArg</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>clCreateKernel</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>clCreateKernelsInProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>clReleaseKernel</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>clRetainKernel</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>clGetKernelInfo</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>clGetKernelWorkGroupInfo</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>
<!-- 27-Oct-2015, API ver 2.1 rev. 19 -->
</refentry>