<?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>Pipe Functions</keyword>
        </keywordset>
    </refentryinfo>
    <refmeta>
        <refentrytitle>Pipe Functions</refentrytitle>
        <refmiscinfo>
            <copyright>
                <year>2007-2013</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>

    <refnamediv>
        <refname>Pipe Functions</refname>
        <refpurpose>Click an item in the table below for details about that function.</refpurpose>
    </refnamediv>

<refsect1 id="springboard"><title></title>
    <informaltable frame="all"><tgroup cols="2" align="left" colsep="1" rowsep="1">
    <colspec colnum="1" colwidth="2*" colname="col1" />
    <colspec colnum="2" colwidth="8*" colname="col2" />
    <tbody>

        <row>
            <entry><citerefentry><refentrytitle>read_pipe</refentrytitle></citerefentry></entry>
            <entry>Read packet from pipe</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>write_pipe</refentrytitle></citerefentry></entry>
            <entry>Write packet to pipe</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>reserve_read_pipe</refentrytitle></citerefentry></entry>
            <entry>Reserve entries for reading from pipe</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>reserve_write_pipe</refentrytitle></citerefentry></entry>
            <entry>Reserve entries for writing to pipe</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>commit_read_pipe</refentrytitle></citerefentry></entry>
            <entry>Indicates that all reads associated with a reservation are completed</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>commit_write_pipe</refentrytitle></citerefentry></entry>
            <entry>Indicates that all writes associated with a reservation are completed</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>is_valid_reserve_id</refentrytitle></citerefentry></entry>
            <entry>Test for a valid reservation ID</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>work_group_reserve_read_pipe</refentrytitle></citerefentry></entry>
            <entry>Reserve entries for reading from pipe</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>work_group_reserve_write_pipe</refentrytitle></citerefentry></entry>
            <entry>Reserve entries for writing to pipe</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>work_group_commit_read_pipe</refentrytitle></citerefentry></entry>
            <entry>Indicates that all reads associated with a reservation are completed</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>work_group_commit_write_pipe</refentrytitle></citerefentry></entry>
            <entry>Indicates that all writes associated with a reservation are completed</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>get_pipe_num_packets</refentrytitle></citerefentry></entry>
            <entry>Returns the number of available entries in the pipe</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>get_pipe_max_packets</refentrytitle></citerefentry></entry>
            <entry>Returns the maximum number of packets specified when pipe was created</entry>
        </row>

    </tbody>
    </tgroup>
    </informaltable>

    <bridgehead>Functions enabled by the cl_khr_subgroups extension:</bridgehead>

    <informaltable frame="all"><tgroup cols="2" align="left" colsep="1" rowsep="1">
    <colspec colnum="1" colwidth="2*" colname="col1" />
    <colspec colnum="2" colwidth="8*" colname="col2" />
    <tbody>

        <row>
            <entry><citerefentry><refentrytitle>sub_group_reserve_read_pipe</refentrytitle></citerefentry></entry>
            <entry>Reserve entries for reading from a pipe</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>sub_group_reserve_write_pipe</refentrytitle></citerefentry></entry>
            <entry>Reserve entries for writing to a pipe</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>sub_group_commit_read_pipe</refentrytitle></citerefentry></entry>
            <entry>Indicates that all reads associated with a reservation are completed</entry>
        </row>

        <row>
            <entry><citerefentry><refentrytitle>sub_group_commit_write_pipe</refentrytitle></citerefentry></entry>
            <entry>Indicates that all writes associated with a reservation are completed</entry>
        </row>

    </tbody>
    </tgroup>
    </informaltable>

</refsect1>

<!-- ================================ DESCRIPTION  -->
    <refsect1 id="description"><title>Description</title>
    </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="pipeFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>

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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
        </para>
    </refsect1>-->

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

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

<!-- 23-Dec-2013, rev. 19 -->
</refentry>

