<?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>clGetPlatformInfo</keyword></keywordset>
    </refentryinfo>
    <refmeta>
        <refentrytitle>clGetPlatformInfo</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="clGetPlatformInfo">
<refname>clGetPlatformInfo</refname> 
           <refpurpose>Get specific information about the OpenCL platform.</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>clGetPlatformInfo</function></funcdef>
                <paramdef><link xlink:href="abstractDataTypes.html">cl_platform_id</link><parameter>platform</parameter></paramdef>
<paramdef><link xlink:href="enums.html#cl_platform_info">cl_platform_info</link><parameter>param_name</parameter></paramdef>
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>param_value_size</parameter></paramdef>                   
<paramdef><link xlink:href="scalarDataTypes.html">void</link><parameter>*param_value</parameter></paramdef> 
<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>*param_value_size_ret</parameter></paramdef>  
            </funcprototype>
        </funcsynopsis>     
    </refsynopsisdiv>

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

    <refsect1 id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><varname>platform</varname></term>
            <listitem>
                <para>The platform ID returned by <citerefentry><refentrytitle>clGetPlatformIDs</refentrytitle></citerefentry> or can be NULL. If <varname>platform</varname> is NULL, the behavior is implementation-defined.</para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><varname>param_name</varname></term>
            <listitem>
                <para>An enumeration constant that identifies the platform information being queried. It can be one of the following values as specified in the table below.</para>
            </listitem>
        </varlistentry>
      
        <varlistentry>
            <term><varname>param_value_size</varname></term>
            <listitem>
                <para>Specifies the size in bytes of memory pointed to by <varname>param_value</varname>. This size in bytes must be greater than or equal to size of return type specified in the table below.</para>
            </listitem>
        </varlistentry> 
  <varlistentry>
            <term><varname>param_value</varname></term>
            <listitem>
                <para>A pointer to memory location where appropriate values for a given <varname>param_value</varname> will be returned. Possible <varname>param_value</varname> values returned are listed in the table below. If <varname>param_value</varname> is NULL, it is ignored.</para>
            </listitem> 
        </varlistentry>             
<varlistentry>
            <term><varname>param_value_size_ret</varname></term>
            <listitem>
                <para>Returns the actual size in bytes of data being queried by <varname>param_value</varname>. If <varname>param_value_size_ret</varname> is NULL, it is ignored</para>
            </listitem>
        </varlistentry>
<!-- ================================ PARAMETER TABLE (OPTIONAL) -->        
        <varlistentry>
            <term></term>
            <listitem>
                <para>
                    OpenCL Platform Queries
                </para>
                <informaltable frame="all"><tgroup cols="3" align="left" colsep="1" rowsep="1">
    <colspec colname="col1" colnum="1" />
    <colspec colname="col2" colnum="2" />
    <colspec colname="col2" colnum="3" />   
    <thead>
        <row>
        <entry>cl_platform_info</entry>
        <entry>Return Type</entry>
        <entry>Description</entry>
        </row>
    </thead>
    <tbody>
        <row>
            <entry><constant>CL_PLATFORM_PROFILE</constant></entry>
            <entry>char[]</entry>
            <entry>
            <para>OpenCL profile string. Returns the profile name supported by the
implementation. The profile name returned can be one of the following strings:</para>
<para>FULL_PROFILE - if the implementation supports the OpenCL specification (functionality defined as part of the core specification and does not require any extensions to be
supported).</para>
<para>EMBEDDED_PROFILE - if the implementation supports the OpenCL embedded profile. The embedded profile is defined to be a subset for each version of OpenCL.</para></entry>
        </row>
        <row>
            <entry><constant>CL_PLATFORM_VERSION</constant></entry>
            <entry>char[]</entry>
            <entry><para>OpenCL version string. Returns the OpenCL version supported by the
implementation. This version string has the following format:</para>
<para><varname>OpenCL&lt;space&gt;&lt;major_version.minor_version&gt;&lt;space&gt;&lt;platform-specific information&gt;</varname></para>
<para>The <varname>major_version.minor_version</varname> value returned will be 1.1.</para>
            </entry>
        </row>
        <row>
            <entry><constant>CL_PLATFORM_NAME</constant></entry>
            <entry>char[]</entry>
            <entry>Platform name string.</entry>
        </row>
        
        <row>
            <entry><constant>CL_PLATFORM_VENDOR</constant></entry>
            <entry>char[]</entry>
            <entry>Platform vendor string.</entry>
        </row>
        <row>
            <entry><constant>CL_PLATFORM_EXTENSIONS</constant></entry>
            <entry>char[]</entry>
            <entry>Returns a space-separated list of extension names (the extension names
themselves do not contain any spaces) supported by the platform. Extensions defined here must be supported by all devices associated with this platform.</entry>
        </row>
    </tbody>    
        
    </tgroup></informaltable>   
            </listitem>
        </varlistentry>
<!-- ================================ END PARAMETER TABLE  -->          

        </variablelist>
    </refsect1>
    

<!-- ================================ NOTES  -->
    <refsect1 id="notes"><title>Notes</title>
        <para>
         A null terminated string is returned by OpenCL query function calls if the return type of the information being queried is a char[].
        </para>

    </refsect1>     
        
    
<!-- ================================ ERRORS  -->
    <refsect1 id="errors"><title>Errors</title>
    <para>Returns <errorname>CL_SUCCESS</errorname> if the function is executed successfully. Otherwise, it returns the following:</para>
<itemizedlist mark="disc">
        <listitem>
            <errorname>CL_INVALID_PLATFORM</errorname> if <varname>platform</varname> is not a valid platform.
        </listitem>
        <listitem>
            <errorname>CL_INVALID_VALUE</errorname> if <varname>param_name</varname> is not one of the supported values or if size in bytes specified by <varname>param_value_size</varname> is less than size of return type and <varname>param_value</varname> is not a NULL value.
        </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>
        The OpenCL specification does not describe the order of precedence for error codes returned by API calls.
        </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="clGetPlatformInfo">OpenCL Specification</olink>
        </para>
    </refsect1>     

<!-- ================================ ALSO SEE  --> 
    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>clGetPlatformIDs</refentrytitle></citerefentry>
        </para>
    </refsect1>


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

    <refsect3 id="Copyright"><title></title>
            Copyright &#169; 
    </refsect3>

</refentry>

