<?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 atomicFunctionsInc SYSTEM "atomicFunctionsInc.xml">
]>

<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>atomic_flag_test_and_set</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>                                    
        <refentrytitle>atomic_flag_test_and_set</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>

<!-- ================================ SYNOPSIS -->

    <refnamediv id="atomic_flag_test_and_set">             
        <refname>atomic_flag_test_and_set functions</refname>

        <refpurpose>
            Atomically sets the value pointed to by <varname>object</varname> to true.
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">bool</link>
                    <function>atomic_flag_test_and_set</function>
                </funcdef>
                <paramdef>volatile <link xlink:href="atomic_flag.html">atomic_flag</link>
                    <parameter>*object</parameter>
                </paramdef>
            </funcprototype>
        </funcsynopsis>

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">bool</link>
                    <function>atomic_flag_test_and_set_explicit</function>
                </funcdef>
                <paramdef>volatile <link xlink:href="atomic_flag.html">atomic_flag</link>
                    <parameter>*object</parameter>
                </paramdef>
                <paramdef><link xlink:href="memory_order.html">memory_order</link><parameter>order</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">bool</link>
                    <function>atomic_flag_test_and_set_explicit</function>
                </funcdef>
                <paramdef>volatile <link xlink:href="atomic_flag.html">atomic_flag</link>
                    <parameter>*object</parameter>
                </paramdef>
                <paramdef><link xlink:href="memory_order.html">memory_order</link><parameter>order</parameter></paramdef>
                <paramdef><link xlink:href="memory_scope.html">memory_scope</link><parameter>scope</parameter></paramdef>    
            </funcprototype>
        </funcsynopsis>

    </refsynopsisdiv>

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

    <refsect1 id="parameters"><title>Parameters</title>
        <variablelist>

            <varlistentry>
                <term><varname>object</varname></term>
                <listitem>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term><varname>order</varname></term>
                <listitem>
                </listitem>
            </varlistentry>

            <varlistentry>
                <term><varname>scope</varname></term>
                <listitem>
                </listitem>
            </varlistentry>

        </variablelist>
    </refsect1>


<!-- ================================ DESCRIPTION  -->

    <refsect1 id="description"><title>Description</title>
        <para>
            Atomically sets the value pointed to by 
            <varname>object</varname> to true. Memory is 
            affected according to the 
            value of <varname>order</varname>. These 
            operations are atomic read-modify-write operations (as defined by 
            section 5.1.2.4 of the C11 specification). 
            Returns atomically, the value of the object immediately 
            before the effects.
        </para>

        &atomicFunctionsInc;

    </refsect1>

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

    <refsect1 id="notes"><title>Notes</title>
         
    </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="atomic_flag_test_and_set">OpenCL Specification</olink>
        </para>
    </refsect1>


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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="atomicFunctions"><refentrytitle>Atomic Functions</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>

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

