blob: 23d387f3168df8f10c44f38a4d99615961933c2e [file] [log] [blame]
<html>
<head>
<title>shmem_longlong_finc</title>
</head>
<h2 id="top">shmem_longlong_finc</h2>
<h4>Purpose</h4>
<p>Performs an atomic fetch-and-increment operation on a symmetric data object.
</p>
<h4>C syntax</h4>
<pre>
#include &lt;shmem.h&gt;
long long shmem_longlong_finc(long long *target, int pe);
</pre>
<h4>Parameters</h4>
<dl>
<dt class="bold">INPUT</dt>
<dd>
</dd>
<dt class="bold ">target</dt>
<dd>The remotely accessible integer data object to be updated on the PE.
</dd>
<dt class="bold ">pe</dt>
<dd>An integer indicating the PE number on which target is to be
updated.
</dd>
</dl>
<h4>Description</h4>
<div class="ledi">
<p>The shmem_longlong_finc routine performs an atomic fetch-and-increment operation. It increments the
data objet pointed by target on PE specified by pe and returns the previous contents
of target as an atomic operation. </p>
<p>The shmem_longlong_finc operates on long data object.</p>
<p>The atomic accessing of the shared variable is guaranteed only when that variable is updated solely using IBM openshmem functions.</p>
<h4>IBM NOTES</h4>
<div class="ledi">
<dl>
<p>To utilize the hardware atomic operations support of the PERCS system, the variables of these operations should be aligned with their natural byte alignments. For example, an int variable should be 4-byte aligned; a long long variable should be 8-byte aligned. If the participating variables are not aligned, the operation is done in software with sub-optimal performance</p>
</dd>
</dl>
<h4>C examples</h4>
<pre>
</pre>
<h4>Related information</h4>
<p>Subroutines: shmem_inc
</p>
<hr><a href="apiIndex.html">OpenSHMEM API Index</a>
</html>