Initial commit.

This commit is contained in:
2017-10-26 19:57:24 +02:00
commit 9ce8b5485d
1090 changed files with 47036 additions and 0 deletions
@@ -0,0 +1,15 @@
<area shape="rect" href="$d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="71,155,127,181">
<area shape="rect" href="$db/d62/moc__dma__ppu_8h.html" title="ppu/moc_dma_ppu.h" alt="" coords="499,229,640,256">
<area shape="rect" href="$d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="715,229,821,256">
<area shape="rect" href="$d8/d98/imoc__macros__ppu_8h.html" title="internal/ppu/imoc_macros_ppu.h" alt="" coords="365,80,573,107">
<area shape="rect" href="$de/df9/imoc__dma__ppu_8h.html" title="internal/ppu/imoc_dma_ppu.h" alt="" coords="232,229,424,256">
<area shape="rect" href="$d6/d09/imoc__core__ppu_8h.html" title="internal/ppu/imoc_core_ppu.h" alt="" coords="872,80,1064,107">
<area shape="rect" href="$dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="40,229,157,256">
<area shape="rect" href="$d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="49,304,191,331">
<area shape="rect" href="$d1/d82/moc_8h.html" title="../moc.h" alt="" coords="347,304,416,331">
<area shape="rect" href="$d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="471,379,596,405">
<area shape="rect" href="$df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="316,379,447,405">
<area shape="rect" href="$d8/de2/moc__datatype__ppu_8h.html" title="moc_datatype_ppu.h" alt="" coords="515,304,656,331">
<area shape="rect" href="$d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="731,304,821,331">
<area shape="rect" href="$d2/d42/imoc__macros_8h.html" title="../imoc_macros.h" alt="" coords="408,155,531,181">
<area shape="rect" href="$db/dae/ppu_2moc_8h.html" title="../../ppu/moc.h" alt="" coords="771,155,877,181">
@@ -0,0 +1 @@
1a91751e3b4daa21e9e7be15c37e54df
Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

@@ -0,0 +1,41 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/noarch/system/moc_error_class.c Source File</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>src/noarch/system/moc_error_class.c</h1><a href="../../d9/d19/moc__error__class_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00003"></a>00003
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>&gt;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;<a class="code" href="../../d9/db3/imoc_8h.html">internal/imoc.h</a>&gt;</span>
<a name="l00006"></a>00006
<a name="l00007"></a><a class="code" href="../../d8/da1/group__environment__error.html#g46d1823f8eb05511d5b98ecdeafa33b2">00007</a> <span class="keywordtype">int</span> <a class="code" href="../../d8/da1/group__environment__error.html#g46d1823f8eb05511d5b98ecdeafa33b2" title="Converts an error code into an error class.">MOC_Error_class</a>(<span class="keywordtype">int</span> errorcode, <span class="keywordtype">int</span> *errorclass)
<a name="l00008"></a>00008 {
<a name="l00009"></a>00009 <span class="keywordflow">if</span> (errorcode &lt; 0 || errorcode &gt; <a class="code" href="../../d8/da1/group__environment__error.html#gf902162b08ca55cd57455ee66e8e73d7" title="Last error code.">MOC_ERR_LASTCODE</a>)
<a name="l00010"></a>00010 {
<a name="l00011"></a>00011 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g734aa5985b6d809690f10979ff44785c" title="Invalid argument of some other kind.">MOC_ERR_ARG</a>;
<a name="l00012"></a>00012 }
<a name="l00013"></a>00013 <span class="keywordflow">else</span>
<a name="l00014"></a>00014 {
<a name="l00015"></a>00015 *errorclass = ((int) (errorcode / 1000)) * 1000;
<a name="l00016"></a>00016 <span class="keywordflow">return</span> 0;
<a name="l00017"></a>00017 }
<a name="l00018"></a>00018 }
<a name="l00019"></a>00019
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:47 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
+49
View File
@@ -0,0 +1,49 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/noarch/communication/moc_test.c File Reference</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>src/noarch/communication/moc_test.c File Reference</h1>
<p>
<code>#include &lt;stdint.h&gt;</code><br>
<code>#include &lt;<a class="el" href="../../dc/dcb/spu_2moc_8h-source.html">moc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d4/d9b/imoc_8h-source.html">internal/imoc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">internal/ppu/imoc_core_ppu.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../de/de1/imoc__dma__ppu_8h-source.html">internal/ppu/imoc_dma_ppu.h</a>&gt;</code><br>
<p>
<div class="dynheader">
Include dependency graph for moc_test.c:</div>
<div class="dynsection">
<p><center><img src="../../d3/d5e/moc__test_8c__incl.png" border="0" usemap="#src/noarch/communication/moc_test.c_map" alt=""></center>
<map name="src/noarch/communication/moc_test.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="69,155,125,181"><area shape="rect" href="../../d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="231,229,337,256"><area shape="rect" href="../../d6/d09/imoc__core__ppu_8h.html" title="internal/ppu/imoc_core_ppu.h" alt="" coords="796,80,988,107"><area shape="rect" href="../../de/df9/imoc__dma__ppu_8h.html" title="internal/ppu/imoc_dma_ppu.h" alt="" coords="361,229,553,256"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="39,229,156,256"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="55,304,196,331"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="345,304,415,331"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="321,379,447,405"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="471,379,601,405"><area shape="rect" href="../../d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="655,304,745,331"><area shape="rect" href="../../db/dae/ppu_2moc_8h.html" title="../../ppu/moc.h" alt="" coords="687,155,793,181"><area shape="rect" href="../../db/d62/moc__dma__ppu_8h.html" title="moc_dma_ppu.h" alt="" coords="628,229,745,256"><area shape="rect" href="../../d8/de2/moc__datatype__ppu_8h.html" title="moc_datatype_ppu.h" alt="" coords="489,304,631,331"></map>
</div>
<p>
<a href="../../d7/d24/moc__test_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d62/group__p2p__imm.html#g5ee1f1c1275717d2dc78d6058ff81e9e">MOC_Test</a> (<a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *request, int *flag, <a class="el" href="../../dd/d7a/structMOC__Status__struct.html">MOC_Status</a> *status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests, if a non-blocking communication has been completed. <a href="../../d7/d62/group__p2p__imm.html#g5ee1f1c1275717d2dc78d6058ff81e9e"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:09 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,52 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/ppu/dma/moc_dma-iput_ppu.c File Reference</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>src/ppu/dma/moc_dma-iput_ppu.c File Reference</h1>
<p>
<code>#include &lt;string.h&gt;</code><br>
<code>#include &lt;stdlib.h&gt;</code><br>
<code>#include &lt;<a class="el" href="../../dc/dcb/spu_2moc_8h-source.html">moc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d8/df3/moc__dma__ppu_8h-source.html">ppu/moc_dma_ppu.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d4/d9b/imoc_8h-source.html">internal/imoc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d0/d87/imoc__macros_8h-source.html">internal/imoc_macros.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../de/de1/imoc__dma__ppu_8h-source.html">internal/ppu/imoc_dma_ppu.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">internal/ppu/imoc_core_ppu.h</a>&gt;</code><br>
<p>
<div class="dynheader">
Include dependency graph for moc_dma-iput_ppu.c:</div>
<div class="dynsection">
<p><center><img src="../../d0/da9/moc__dma-iput__ppu_8c__incl.png" border="0" usemap="#src/ppu/dma/moc_dma-iput_ppu.c_map" alt=""></center>
<map name="src/ppu/dma/moc_dma-iput_ppu.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="144,155,200,181"><area shape="rect" href="../../db/d62/moc__dma__ppu_8h.html" title="ppu/moc_dma_ppu.h" alt="" coords="657,229,799,256"><area shape="rect" href="../../d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="260,229,367,256"><area shape="rect" href="../../d2/d42/imoc__macros_8h.html" title="internal/imoc_macros.h" alt="" coords="1057,80,1212,107"><area shape="rect" href="../../de/df9/imoc__dma__ppu_8h.html" title="internal/ppu/imoc_dma_ppu.h" alt="" coords="391,229,583,256"><area shape="rect" href="../../d6/d09/imoc__core__ppu_8h.html" title="internal/ppu/imoc_core_ppu.h" alt="" coords="841,80,1033,107"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="17,229,135,256"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="101,304,243,331"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="399,304,468,331"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="317,379,443,405"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="517,379,648,405"><area shape="rect" href="../../d8/de2/moc__datatype__ppu_8h.html" title="moc_datatype_ppu.h" alt="" coords="543,304,684,331"><area shape="rect" href="../../d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="708,304,799,331"><area shape="rect" href="../../db/dae/ppu_2moc_8h.html" title="../../ppu/moc.h" alt="" coords="788,155,895,181"></map>
</div>
<p>
<a href="../../dd/dd5/moc__dma-iput__ppu_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d16/group__dma__access.html#g1fd9a141352dd4344e20f1bde778d265">MOC_IPut_data</a> (void *source, uint32_t target, int count, <a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a> datatype, int src, <a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *request)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper-function for a non-blocking DMA-put operation. <a href="../../d9/d16/group__dma__access.html#g1fd9a141352dd4344e20f1bde778d265"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:20 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,47 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/spu/dma/moc_dma-test_spu.c File Reference</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>src/spu/dma/moc_dma-test_spu.c File Reference</h1>
<p>
<code>#include &lt;<a class="el" href="../../dc/dcb/spu_2moc_8h-source.html">moc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d4/d95/imoc__dma__spu_8h-source.html">internal/spu/imoc_dma_spu.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d1/d03/moc__dma__spu_8h-source.html">spu/moc_dma_spu.h</a>&gt;</code><br>
<p>
<div class="dynheader">
Include dependency graph for moc_dma-test_spu.c:</div>
<div class="dynsection">
<p><center><img src="../../dd/d5a/moc__dma-test__spu_8c__incl.png" border="0" usemap="#src/spu/dma/moc_dma-test_spu.c_map" alt=""></center>
<map name="src/spu/dma/moc_dma-test_spu.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="125,80,181,107"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="191,155,308,181"><area shape="rect" href="../../d4/dce/imoc__dma__spu_8h.html" title="internal/spu/imoc_dma_spu.h" alt="" coords="332,155,524,181"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="37,229,179,256"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="207,229,276,256"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="37,304,163,331"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="237,304,368,331"></map>
</div>
<p>
<a href="../../da/d35/moc__dma-test__spu_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d16/group__dma__access.html#g342d07658aae4252a2e2cd6a8cc185dd">MOC_Test_data</a> (<a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *request, int *flag)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests if a MOC_IGet_data or IMOC_IPut_data is completed. <a href="../../d9/d16/group__dma__access.html#g342d07658aae4252a2e2cd6a8cc185dd"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:36 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,51 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/spu/system/moc_finalize_spu.c File Reference</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>src/spu/system/moc_finalize_spu.c File Reference</h1>
<p>
<code>#include &lt;stdlib.h&gt;</code><br>
<code>#include &lt;free_align.h&gt;</code><br>
<code>#include &lt;stdio.h&gt;</code><br>
<code>#include &lt;spu_mfcio.h&gt;</code><br>
<code>#include &lt;<a class="el" href="../../db/dd9/imoc__core__spu_8h-source.html">internal/spu/imoc_core_spu.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d4/d9b/imoc_8h-source.html">internal/imoc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../dc/dcb/spu_2moc_8h-source.html">spu/moc.h</a>&gt;</code><br>
<p>
<div class="dynheader">
Include dependency graph for moc_finalize_spu.c:</div>
<div class="dynsection">
<p><center><img src="../../da/d71/moc__finalize__spu_8c__incl.png" border="0" usemap="#src/spu/system/moc_finalize_spu.c_map" alt=""></center>
<map name="src/spu/system/moc_finalize_spu.c_map">
<area shape="rect" href="../../d9/d00/imoc__core__spu_8h.html" title="internal/spu/imoc_core_spu.h" alt="" coords="660,155,852,181"><area shape="rect" href="../../d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="529,155,636,181"><area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="spu/moc.h" alt="" coords="403,80,485,107"><area shape="rect" href="../../d7/d3d/imoc__core_8h.html" title="../imoc_core.h" alt="" coords="687,229,791,256"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="460,229,529,256"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="moc_datatype.h" alt="" coords="241,304,356,331"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="431,304,561,331"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="337,155,455,181"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="223,229,364,256"></map>
</div>
<p>
<a href="../../da/d29/moc__finalize__spu_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g0fd366b8b49db32818786c773c4919b8">MOC_Finalize</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Terminates MPI execution environment. <a href="../../d8/d9a/group__environment__startup.html#g0fd366b8b49db32818786c773c4919b8"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:41 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,51 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/spu/internal/dma/imoc_dma-iput_spu.c File Reference</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>src/spu/internal/dma/imoc_dma-iput_spu.c File Reference</h1>
<p>
<code>#include &lt;spu_mfcio.h&gt;</code><br>
<code>#include &lt;string.h&gt;</code><br>
<code>#include &lt;stdlib.h&gt;</code><br>
<code>#include &lt;<a class="el" href="../../dc/dcb/spu_2moc_8h-source.html">moc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d1/d03/moc__dma__spu_8h-source.html">spu/moc_dma_spu.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d0/d87/imoc__macros_8h-source.html">internal/imoc_macros.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d4/d95/imoc__dma__spu_8h-source.html">internal/spu/imoc_dma_spu.h</a>&gt;</code><br>
<p>
<div class="dynheader">
Include dependency graph for imoc_dma-iput_spu.c:</div>
<div class="dynsection">
<p><center><img src="../../d0/d3d/imoc__dma-iput__spu_8c__incl.png" border="0" usemap="#src/spu/internal/dma/imoc_dma-iput_spu.c_map" alt=""></center>
<map name="src/spu/internal/dma/imoc_dma-iput_spu.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="296,80,352,107"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="345,155,463,181"><area shape="rect" href="../../d2/d42/imoc__macros_8h.html" title="internal/imoc_macros.h" alt="" coords="477,80,632,107"><area shape="rect" href="../../d4/dce/imoc__dma__spu_8h.html" title="internal/spu/imoc_dma_spu.h" alt="" coords="487,155,679,181"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="195,229,336,256"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="365,229,435,256"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="195,304,320,331"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="395,304,525,331"></map>
</div>
<p>
<a href="../../d0/d4d/imoc__dma-iput__spu_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html#ga362f58242dfec61a0a9efb4f3c7ffcb">IMOC_iput_data</a> (void *source, uint64_t target, uint32_t size, <a class="el" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a> *request)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal wrapper-function for a blocking DMA-put operation. <a href="../../d2/de2/group__internal__p2p__dma.html#ga362f58242dfec61a0a9efb4f3c7ffcb"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:38 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,20 @@
<area shape="rect" href="$d3/dc2/moc__isend_8c.html" title="src/noarch/communication/moc_isend.c" alt="" coords="5,80,256,107">
<area shape="rect" href="$db/d55/moc__send_8c.html" title="src/noarch/communication/moc_send.c" alt="" coords="280,80,528,107">
<area shape="rect" href="$d8/d02/moc__test_8c.html" title="src/noarch/communication/moc_test.c" alt="" coords="552,80,795,107">
<area shape="rect" href="$d4/dfc/moc__wait_8c.html" title="src/noarch/communication/moc_wait.c" alt="" coords="819,80,1061,107">
<area shape="rect" href="$d9/d14/moc__bsend__ppu_8c.html" title="src/ppu/communication/moc_bsend_ppu.c" alt="" coords="1085,80,1352,107">
<area shape="rect" href="$dc/db7/moc__recv__ppu_8c.html" title="src/ppu/communication/moc_recv_ppu.c" alt="" coords="1376,80,1629,107">
<area shape="rect" href="$d2/d00/moc__ssend__ppu_8c.html" title="src/ppu/communication/moc_ssend_ppu.c" alt="" coords="1653,80,1920,107">
<area shape="rect" href="$d7/d58/moc__dma-get__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;get_ppu.c" alt="" coords="1944,80,2160,107">
<area shape="rect" href="$d3/dc6/moc__dma-iget__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iget_ppu.c" alt="" coords="2184,80,2403,107">
<area shape="rect" href="$d8/d06/moc__dma-iput__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iput_ppu.c" alt="" coords="2427,80,2645,107">
<area shape="rect" href="$d3/dfa/moc__dma-put__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;put_ppu.c" alt="" coords="2669,80,2885,107">
<area shape="rect" href="$d0/d04/moc__dma-test__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;test_ppu.c" alt="" coords="2909,80,3128,107">
<area shape="rect" href="$d6/de5/moc__dma-wait__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;wait_ppu.c" alt="" coords="3152,80,3371,107">
<area shape="rect" href="$d4/d2d/imoc__dma-get__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;get_ppu.c" alt="" coords="3395,80,3659,107">
<area shape="rect" href="$d1/da6/imoc__dma-iget__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;iget_ppu.c" alt="" coords="3683,80,3949,107">
<area shape="rect" href="$df/d10/imoc__dma-iput__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;iput_ppu.c" alt="" coords="3973,80,4240,107">
<area shape="rect" href="$d3/d8f/imoc__dma-put__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;put_ppu.c" alt="" coords="4264,80,4528,107">
<area shape="rect" href="$d0/dba/imoc__dma-tags__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;tags_ppu.c" alt="" coords="4552,80,4824,107">
<area shape="rect" href="$d4/d5b/imoc__dma-test__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;test_ppu.c" alt="" coords="4848,80,5115,107">
<area shape="rect" href="$df/d8b/imoc__dma-wait__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;wait_ppu.c" alt="" coords="5139,80,5408,107">
@@ -0,0 +1 @@
98e96232ee8f2b169051b8642010da66
Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

@@ -0,0 +1,32 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/ppu/system/moc_wtick_ppu.c Source File</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>src/ppu/system/moc_wtick_ppu.c</h1><a href="../../d6/dfa/moc__wtick__ppu_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>&gt;</span>
<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;time.h&gt;</span>
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;sys/time.h&gt;</span>
<a name="l00005"></a>00005
<a name="l00006"></a><a class="code" href="../../d8/da6/group__environment__timer.html#gc846a7a21aeafdc5e960e91cb7d602be">00006</a> <span class="keywordtype">double</span> <a class="code" href="../../d8/da6/group__environment__timer.html#gc846a7a21aeafdc5e960e91cb7d602be" title="Returns the resolution of Moc_Wtime in seconds.">MOC_Wtick</a>(<span class="keywordtype">void</span>)
<a name="l00007"></a>00007 {
<a name="l00008"></a>00008 <span class="keywordflow">return</span> 1.0 / ((double) CLOCKS_PER_SEC);
<a name="l00009"></a>00009 }
<a name="l00010"></a>00010
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:47 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,48 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/noarch/system/moc_comm_size.c Source File</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>src/noarch/system/moc_comm_size.c</h1><a href="../../df/ddd/moc__comm__size_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>&gt;</span>
<a name="l00002"></a>00002 <span class="preprocessor">#ifdef __SPU__</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span><span class="preprocessor">#include &lt;<a class="code" href="../../d9/d00/imoc__core__spu_8h.html">internal/spu/imoc_core_spu.h</a>&gt;</span>
<a name="l00004"></a>00004 <span class="preprocessor">#else</span>
<a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#include &lt;<a class="code" href="../../d6/d09/imoc__core__ppu_8h.html">internal/ppu/imoc_core_ppu.h</a>&gt;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#endif</span>
<a name="l00007"></a>00007 <span class="preprocessor"></span>
<a name="l00008"></a><a class="code" href="../../d1/dd1/group__comm__mgt.html#g36ac8a2d969216d52418aedd77a5829e">00008</a> <span class="keywordtype">int</span> <a class="code" href="../../d1/dd1/group__comm__mgt.html#g36ac8a2d969216d52418aedd77a5829e" title="Determines the size of the group associated with a communictor.">MOC_Comm_size</a>(<a class="code" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767" title="Communicator-Handle.">MOC_Comm</a> comm, <span class="keywordtype">int</span> *size)
<a name="l00009"></a>00009 {
<a name="l00010"></a>00010 <span class="keywordflow">if</span> (comm == <a class="code" href="../../d1/dd1/group__comm__mgt.html#g14e1cb53b99b5e239d4cc6a8d370ad94" title="Specifies a constant that contains all of the processes.">MOC_COMM_WORLD</a>)
<a name="l00011"></a>00011 {
<a name="l00012"></a>00012 *size = <a class="code" href="../../dd/df8/group__internal__core.html#geed5a271d50368d3cf9a858c4f57c895" title="Information each node knowns about himself and the world.">node_handle</a>.<a class="code" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778" title="number of overall processes">comm_size</a>;
<a name="l00013"></a>00013 }
<a name="l00014"></a>00014 <span class="keywordflow">else</span>
<a name="l00015"></a>00015 <span class="keywordflow">if</span> (comm == <a class="code" href="../../d1/dd1/group__comm__mgt.html#gf8c5dfb6bb79027948fe63f4cf6504eb" title="Specifies a constant that contains only the calling process.">MOC_COMM_SELF</a>)
<a name="l00016"></a>00016 {
<a name="l00017"></a>00017 *size = 1;
<a name="l00018"></a>00018 }
<a name="l00019"></a>00019 <span class="keywordflow">else</span> <span class="comment">// if ( comm == MPI_COMM_NULL )</span>
<a name="l00020"></a>00020 {
<a name="l00021"></a>00021 *size = 0;
<a name="l00022"></a>00022 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#gc1e776c0e7cb8c97391dd6ac476295a1" title="Invalid communicator.">MOC_ERR_COMM</a>;
<a name="l00023"></a>00023 }
<a name="l00024"></a>00024 <span class="keywordflow">return</span> 0;
<a name="l00025"></a>00025 }
<a name="l00026"></a>00026
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:47 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,46 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/ppu/system/moc_get_avail_spu_ppu.c File Reference</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>src/ppu/system/moc_get_avail_spu_ppu.c File Reference</h1>
<p>
<code>#include &lt;<a class="el" href="../../dc/dcb/spu_2moc_8h-source.html">moc.h</a>&gt;</code><br>
<code>#include &lt;libspe2.h&gt;</code><br>
<p>
<div class="dynheader">
Include dependency graph for moc_get_avail_spu_ppu.c:</div>
<div class="dynsection">
<p><center><img src="../../da/d4d/moc__get__avail__spu__ppu_8c__incl.png" border="0" usemap="#src/ppu/system/moc_get_avail_spu_ppu.c_map" alt=""></center>
<map name="src/ppu/system/moc_get_avail_spu_ppu.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="184,80,240,107"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="32,155,149,181"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="28,229,169,256"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="193,229,263,256"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="32,304,157,331"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="232,304,363,331"></map>
</div>
<p>
<a href="../../d3/dfa/moc__get__avail__spu__ppu_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g66028682d3c25b76e25ca57655d47625">MOC_Get_avail_spu_count</a> (int *count)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of available SPUs. <a href="../../d8/d9a/group__environment__startup.html#g66028682d3c25b76e25ca57655d47625"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:28 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,15 @@
<area shape="rect" href="$d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="99,155,155,181">
<area shape="rect" href="$d8/de2/moc__datatype__ppu_8h.html" title="ppu/moc_datatype_ppu.h" alt="" coords="543,304,711,331">
<area shape="rect" href="$d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="260,229,367,256">
<area shape="rect" href="$d8/d98/imoc__macros__ppu_8h.html" title="internal/ppu/imoc_macros_ppu.h" alt="" coords="1176,80,1384,107">
<area shape="rect" href="$de/df9/imoc__dma__ppu_8h.html" title="internal/ppu/imoc_dma_ppu.h" alt="" coords="391,229,583,256">
<area shape="rect" href="$d6/d09/imoc__core__ppu_8h.html" title="internal/ppu/imoc_core_ppu.h" alt="" coords="932,80,1124,107">
<area shape="rect" href="$dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="68,229,185,256">
<area shape="rect" href="$d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="17,304,159,331">
<area shape="rect" href="$d1/d82/moc_8h.html" title="../moc.h" alt="" coords="399,304,468,331">
<area shape="rect" href="$d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="439,379,564,405">
<area shape="rect" href="$df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="284,379,415,405">
<area shape="rect" href="$d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="735,304,825,331">
<area shape="rect" href="$d2/d42/imoc__macros_8h.html" title="../imoc_macros.h" alt="" coords="1247,155,1369,181">
<area shape="rect" href="$db/dae/ppu_2moc_8h.html" title="../../ppu/moc.h" alt="" coords="803,155,909,181">
<area shape="rect" href="$db/d62/moc__dma__ppu_8h.html" title="moc_dma_ppu.h" alt="" coords="759,229,876,256">
@@ -0,0 +1 @@
aeaf46284877bf181b722bce7b50e006
Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

@@ -0,0 +1,30 @@
<area shape="rect" href="$d8/d98/imoc__macros__ppu_8h.html" title="include/internal/ppu/imoc_macros_ppu.h" alt="" coords="1427,80,1680,107">
<area shape="rect" href="$db/d33/imoc__get__entry_8c.html" title="src/noarch/internal/communication/imoc_get_entry.c" alt="" coords="1704,80,2027,107">
<area shape="rect" href="$d7/d58/moc__dma-get__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;get_ppu.c" alt="" coords="2051,80,2267,107">
<area shape="rect" href="$d8/d06/moc__dma-iput__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iput_ppu.c" alt="" coords="2291,80,2509,107">
<area shape="rect" href="$d4/d2d/imoc__dma-get__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;get_ppu.c" alt="" coords="2533,80,2797,107">
<area shape="rect" href="$df/d10/imoc__dma-iput__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;iput_ppu.c" alt="" coords="2821,80,3088,107">
<area shape="rect" href="$dc/d59/moc__barrier__spu_8c.html" title="src/spu/communication/moc_barrier_spu.c" alt="" coords="3112,80,3379,107">
<area shape="rect" href="$d6/d8c/moc__bsend__spu_8c.html" title="src/spu/communication/moc_bsend_spu.c" alt="" coords="3403,80,3669,107">
<area shape="rect" href="$de/d76/moc__issend__spu_8c.html" title="src/spu/communication/moc_issend_spu.c" alt="" coords="3693,80,3963,107">
<area shape="rect" href="$d9/dab/moc__recv__spu_8c.html" title="src/spu/communication/moc_recv_spu.c" alt="" coords="3987,80,4240,107">
<area shape="rect" href="$d3/d71/moc__ssend__spu_8c.html" title="src/spu/communication/moc_ssend_spu.c" alt="" coords="4264,80,4531,107">
<area shape="rect" href="$d8/d91/moc__dma-get__spu_8c.html" title="src/spu/dma/moc_dma&#45;get_spu.c" alt="" coords="4555,80,4771,107">
<area shape="rect" href="$da/dea/moc__dma-iget__spu_8c.html" title="src/spu/dma/moc_dma&#45;iget_spu.c" alt="" coords="4795,80,5013,107">
<area shape="rect" href="$dc/de8/moc__dma-iput__spu_8c.html" title="src/spu/dma/moc_dma&#45;iput_spu.c" alt="" coords="5037,80,5256,107">
<area shape="rect" href="$df/ddc/moc__dma-put__spu_8c.html" title="src/spu/dma/moc_dma&#45;put_spu.c" alt="" coords="5280,80,5496,107">
<area shape="rect" href="$d5/d1c/imoc__dma-get__spu_8c.html" title="src/spu/internal/dma/imoc_dma&#45;get_spu.c" alt="" coords="5520,80,5784,107">
<area shape="rect" href="$d7/daf/imoc__dma-iget__spu_8c.html" title="src/spu/internal/dma/imoc_dma&#45;iget_spu.c" alt="" coords="5808,80,6075,107">
<area shape="rect" href="$d8/d30/imoc__dma-iput__spu_8c.html" title="src/spu/internal/dma/imoc_dma&#45;iput_spu.c" alt="" coords="6099,80,6365,107">
<area shape="rect" href="$da/db1/imoc__dma-put__spu_8c.html" title="src/spu/internal/dma/imoc_dma&#45;put_spu.c" alt="" coords="6389,80,6653,107">
<area shape="rect" href="$d3/dc2/moc__isend_8c.html" title="src/noarch/communication/moc_isend.c" alt="" coords="5,155,256,181">
<area shape="rect" href="$db/d55/moc__send_8c.html" title="src/noarch/communication/moc_send.c" alt="" coords="280,155,528,181">
<area shape="rect" href="$d1/d72/moc__barrier__ppu_8c.html" title="src/ppu/communication/moc_barrier_ppu.c" alt="" coords="552,155,819,181">
<area shape="rect" href="$d9/d14/moc__bsend__ppu_8c.html" title="src/ppu/communication/moc_bsend_ppu.c" alt="" coords="843,155,1109,181">
<area shape="rect" href="$dc/d02/moc__issend__ppu_8c.html" title="src/ppu/communication/moc_issend_ppu.c" alt="" coords="1133,155,1403,181">
<area shape="rect" href="$dc/db7/moc__recv__ppu_8c.html" title="src/ppu/communication/moc_recv_ppu.c" alt="" coords="1427,155,1680,181">
<area shape="rect" href="$d2/d00/moc__ssend__ppu_8c.html" title="src/ppu/communication/moc_ssend_ppu.c" alt="" coords="1704,155,1971,181">
<area shape="rect" href="$d3/dc6/moc__dma-iget__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iget_ppu.c" alt="" coords="1995,155,2213,181">
<area shape="rect" href="$d3/dfa/moc__dma-put__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;put_ppu.c" alt="" coords="2237,155,2453,181">
<area shape="rect" href="$d1/da6/imoc__dma-iget__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;iget_ppu.c" alt="" coords="2477,155,2744,181">
<area shape="rect" href="$d3/d8f/imoc__dma-put__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;put_ppu.c" alt="" coords="2768,155,3032,181">
@@ -0,0 +1 @@
c1d9082aad6241034d1ff55107b46781
Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

@@ -0,0 +1,425 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): Point-to-Point Communication</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Point-to-Point Communication<br>
<small>
[<a class="el" href="../../dc/dc0/group__internal__main.html">Developer Documentation</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Point-to-Point Communication:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d8/d88/group__internal__p2p__main.png" border="0" alt="" usemap="#d8/d87/d8_2d88_2group____internal____p2p____main_map">
<map name="d8/d87/d8_2d88_2group____internal____p2p____main_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html" title="Functions wrapping DMA&#45;Transfers." alt="" coords="484,5,636,32"><area shape="rect" href="../../de/db4/group__internal__p2p__blocking.html" title="Internals about blocking Point&#45;to&#45;Point Communication." alt="" coords="477,56,643,83"><area shape="rect" href="../../d7/d41/group__internal__p2p__imm.html" title="Internals about non&#45;blocking communication." alt="" coords="464,107,656,133"><area shape="rect" href="../../dc/dc0/group__internal__main.html" title="This section deals with the internal design and functionality." alt="" coords="5,56,173,83"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Internals about Point-to-Point Communication.
<p>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html">DMA-Helper Functions</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Functions wrapping DMA-Transfers. <br></td></tr>
<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/db4/group__internal__p2p__blocking.html">Blocking Communication</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internals about blocking Point-to-Point Communication. <br></td></tr>
<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d41/group__internal__p2p__imm.html">Non-Blocking Communication</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internals about non-blocking communication. <br></td></tr>
<p>
<tr><td colspan="2"><br><h2>Internal shared functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g8980da77fa506e9a6d503c8c6eba68e2">IMOC_get_entry</a> (int source, int tag, <a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a> comm, int isSpecial, <a class="el" href="../../dd/d7a/structMOC__Status__struct.html">MOC_Status</a> *status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the next valid message-envelope from "source" with specified "tag" and "comm". <a href="#g8980da77fa506e9a6d503c8c6eba68e2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g2a948cdecce651ae6cc1b0c0ddb1b750">IMOC_getFreeEntry</a> (<a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a> *pqueue, uint8_t tag, <a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a> comm, int isSpecial, int *index)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get next free entry in message-queue (a local copy of the message-queue has to be used). <a href="#g2a948cdecce651ae6cc1b0c0ddb1b750"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g409bdbea503611cf04829413d15830df">IMOC_getFreeMID</a> (int *mid)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get free message-ID. <a href="#g409bdbea503611cf04829413d15830df"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g8675f9552168f2dd8926cad5ac00be69">IMOC_waitForMessageCompletion</a> (uint8_t mid)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait till message with message-ID mid has been received. <a href="#g8675f9552168f2dd8926cad5ac00be69"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g2e74930cd8e161a131b90f2f1081037a">IMOC_testForMessageCompletion</a> (uint8_t mid, uint8_t *status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests if message with message-ID mid has been received. <a href="#g2e74930cd8e161a131b90f2f1081037a"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Internal constants</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#ge9f5f9bdfa51d7683fbe312d4a667afd">MEMCPY_GET_TRESHOLD</a>&nbsp;&nbsp;&nbsp;156</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines a treshold, when to use memcpy and when to use DMA in a get-operation on the PPU. <a href="#ge9f5f9bdfa51d7683fbe312d4a667afd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/group__internal__p2p__main.html#g928a3b77f3303eca97315e8133c2f634">MEMCPY_PUT_TRESHOLD</a>&nbsp;&nbsp;&nbsp;2210</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines a treshold, when to use memcpy and when to use DMA in a put-operation on the PPU. <a href="#g928a3b77f3303eca97315e8133c2f634"></a><br></td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="ge9f5f9bdfa51d7683fbe312d4a667afd"></a><!-- doxytag: member="imoc.h::MEMCPY_GET_TRESHOLD" ref="ge9f5f9bdfa51d7683fbe312d4a667afd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MEMCPY_GET_TRESHOLD&nbsp;&nbsp;&nbsp;156 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Defines a treshold, when to use memcpy and when to use DMA in a get-operation on the PPU.
<p>
<p>Definition at line <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00049">49</a> of file <a class="el" href="../../d4/d9b/imoc_8h-source.html">imoc.h</a>.</p>
<p>Referenced by <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, and <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>.</p>
</div>
</div><p>
<a class="anchor" name="g928a3b77f3303eca97315e8133c2f634"></a><!-- doxytag: member="imoc.h::MEMCPY_PUT_TRESHOLD" ref="g928a3b77f3303eca97315e8133c2f634" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MEMCPY_PUT_TRESHOLD&nbsp;&nbsp;&nbsp;2210 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Defines a treshold, when to use memcpy and when to use DMA in a put-operation on the PPU.
<p>
<p>Definition at line <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00055">55</a> of file <a class="el" href="../../d4/d9b/imoc_8h-source.html">imoc.h</a>.</p>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g8980da77fa506e9a6d503c8c6eba68e2"></a><!-- doxytag: member="imoc.h::IMOC_get_entry" ref="g8980da77fa506e9a6d503c8c6eba68e2" args="(int source, int tag, MOC_Comm comm, int isSpecial, MOC_Status *status)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a>* IMOC_get_entry </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>tag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a>&nbsp;</td>
<td class="paramname"> <em>comm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>isSpecial</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dd/d7a/structMOC__Status__struct.html">MOC_Status</a> *&nbsp;</td>
<td class="paramname"> <em>status</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the next valid message-envelope from "source" with specified "tag" and "comm".
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td><b>in</b> rank of sending node </td></tr>
<tr><td valign="top"></td><td valign="top"><em>tag</em>&nbsp;</td><td><b>in</b> message-tag </td></tr>
<tr><td valign="top"></td><td valign="top"><em>comm</em>&nbsp;</td><td><b>in</b> message-communicator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>isSpecial</em>&nbsp;</td><td><b>in</b> true to return special-message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td><b>inout</b> MOC_status-instance to add some information (e.g. source by MOC_ANY_SOURCE) </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the appropriate message-queue-entry. </dd></dl>
<p>Definition at line <a class="el" href="../../de/dbb/imoc__get__entry_8c-source.html#l00013">13</a> of file <a class="el" href="../../de/dbb/imoc__get__entry_8c-source.html">imoc_get_entry.c</a>.</p>
<p>References <a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b">moc_message_envelope_struct::bits</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00033">moc_node_handle_ppu_struct::comm_size</a>, <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00080">moc_message_envelope_struct::communicator</a>, <a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807">moc_message_envelope_struct::flags</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00026">IMOC_LOCAL_QUEUE</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00035">moc_node_handle_ppu_struct::message_queue_base</a>, <a class="el" href="../../d7/de1/moc_8h-source.html#l00028">MOC_ANY_SOURCE</a>, <a class="el" href="../../d7/de1/moc_8h-source.html#l00013">MOC_ANY_TAG</a>, <a class="el" href="../../d7/de1/moc_8h-source.html#l00227">MOC_Status_struct::MOC_SOURCE</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00034">moc_node_handle_ppu_struct::queue_size</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00032">moc_node_handle_ppu_struct::rank</a>, and <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00079">moc_message_envelope_struct::tag</a>.</p>
<p>Referenced by <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../da/d3c/moc__iprobe_8c-source.html#l00005">MOC_Iprobe()</a>, <a class="el" href="../../d6/d74/moc__probe_8c-source.html#l00004">MOC_Probe()</a>, and <a class="el" href="../../d8/dbc/moc__recv__ppu_8c-source.html#l00011">MOC_Recv()</a>.</p>
<p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d8/d88/group__internal__p2p__main_g8980da77fa506e9a6d503c8c6eba68e2_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g8980da77fa506e9a6d503c8c6eba68e2_icgraph_map" alt=""></center>
<map name="d8/d88/group__internal__p2p__main_g8980da77fa506e9a6d503c8c6eba68e2_icgraph_map">
<area shape="rect" href="../../db/dc2/group__broadcast.html#g110b00d5a4d9f970ddf8e9bd4c2d8834" title="Blocks the caller until all processes in the communicator have called it; that is..." alt="" coords="171,5,267,32"><area shape="rect" href="../../d0/d64/group__p2p__main.html#g0bc7e537cd866537357a01a12a115a84" title="Tests if a message is available and returns information without actually receiving..." alt="" coords="172,56,265,83"><area shape="rect" href="../../d0/d64/group__p2p__main.html#g39ceb4e6f08da2cd3dac3e93bb6e3ee1" title="Waits till a message is received and returns information without actually receiving..." alt="" coords="173,107,264,133"><area shape="rect" href="../../d0/d64/group__p2p__main.html#g30c532510cffd36acd1b9b0b3edb3832" title="Performs a blocking standard mode receive operation." alt="" coords="176,157,261,184"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g2a948cdecce651ae6cc1b0c0ddb1b750"></a><!-- doxytag: member="imoc.h::IMOC_getFreeEntry" ref="g2a948cdecce651ae6cc1b0c0ddb1b750" args="(moc_message_envelope_t *pqueue, uint8_t tag, MOC_Comm comm, int isSpecial, int *index)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int IMOC_getFreeEntry </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a> *&nbsp;</td>
<td class="paramname"> <em>pqueue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>tag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a>&nbsp;</td>
<td class="paramname"> <em>comm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>isSpecial</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>index</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get next free entry in message-queue (a local copy of the message-queue has to be used).
<p>
To ensure correct ordering message-tag and -comm and -type has to be specified.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>pqueue</em>&nbsp;</td><td><b>in</b> pointer to local copy of remote message-queue </td></tr>
<tr><td valign="top"></td><td valign="top"><em>tag</em>&nbsp;</td><td><b>in</b> message-tag </td></tr>
<tr><td valign="top"></td><td valign="top"><em>comm</em>&nbsp;</td><td><b>in</b> message-communicator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>isSpecial</em>&nbsp;</td><td><b>in</b> true if message should be a special message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td><b>out</b> index of free entry </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 when success otherwise error-code </dd></dl>
<p>Definition at line <a class="el" href="../../d1/d2a/imoc__get__free__entry_8c-source.html#l00009">9</a> of file <a class="el" href="../../d1/d2a/imoc__get__free__entry_8c-source.html">imoc_get_free_entry.c</a>.</p>
<p>References <a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b">moc_message_envelope_struct::bits</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00065">MOC_ERR_MESSAGE_EXHAUSTED</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00034">moc_node_handle_ppu_struct::queue_size</a>.</p>
<p>Referenced by <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, and <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>.</p>
<p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d8/d88/group__internal__p2p__main_g2a948cdecce651ae6cc1b0c0ddb1b750_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g2a948cdecce651ae6cc1b0c0ddb1b750_icgraph_map" alt=""></center>
<map name="d8/d88/group__internal__p2p__main_g2a948cdecce651ae6cc1b0c0ddb1b750_icgraph_map">
<area shape="rect" href="../../db/dc2/group__broadcast.html#g110b00d5a4d9f970ddf8e9bd4c2d8834" title="Blocks the caller until all processes in the communicator have called it; that is..." alt="" coords="191,5,287,32"><area shape="rect" href="../../de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b" title="Performs a blocking buffered mode send operation." alt="" coords="191,56,287,83"><area shape="rect" href="../../d7/d62/group__p2p__imm.html#gc148ff9b9bee69164139425a7df53697" title="Performs a non&#45;blocking synchronous mode send operation." alt="" coords="189,107,288,133"><area shape="rect" href="../../d5/dc2/group__p2p__synch.html#g46cb2ff2b5a0601165978598932d6120" title="Performs a blocking synchronous mode send operation." alt="" coords="191,157,287,184"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g409bdbea503611cf04829413d15830df"></a><!-- doxytag: member="imoc.h::IMOC_getFreeMID" ref="g409bdbea503611cf04829413d15830df" args="(int *mid)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int IMOC_getFreeMID </td>
<td>(</td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>mid</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get free message-ID.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Message-ID is index of message-status-array</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mid</em>&nbsp;</td><td><b>out</b> free message-ID </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_MESSAGE_EXHAUSTED</em>&nbsp;</td><td>No further messages possible. </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../dd/d18/imoc__get__free__mid_8c-source.html#l00009">9</a> of file <a class="el" href="../../dd/d18/imoc__get__free__mid_8c-source.html">imoc_get_free_mid.c</a>.</p>
<p>References <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#c0bdc214525521d58f12c72874de0512">moc_message_status_struct::bits</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00033">moc_node_handle_ppu_struct::comm_size</a>, <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#086c0d449d25774d43512b6f7fdab8ed">moc_message_status_struct::flags</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00065">MOC_ERR_MESSAGE_EXHAUSTED</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00034">moc_node_handle_ppu_struct::queue_size</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">moc_node_handle_ppu_struct::status_array_base</a>.</p>
<p>Referenced by <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, and <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>.</p>
<p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d8/d88/group__internal__p2p__main_g409bdbea503611cf04829413d15830df_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g409bdbea503611cf04829413d15830df_icgraph_map" alt=""></center>
<map name="d8/d88/group__internal__p2p__main_g409bdbea503611cf04829413d15830df_icgraph_map">
<area shape="rect" href="../../de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b" title="Performs a blocking buffered mode send operation." alt="" coords="183,5,279,32"><area shape="rect" href="../../d7/d62/group__p2p__imm.html#gc148ff9b9bee69164139425a7df53697" title="Performs a non&#45;blocking synchronous mode send operation." alt="" coords="181,56,280,83"><area shape="rect" href="../../d5/dc2/group__p2p__synch.html#g46cb2ff2b5a0601165978598932d6120" title="Performs a blocking synchronous mode send operation." alt="" coords="183,107,279,133"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g2e74930cd8e161a131b90f2f1081037a"></a><!-- doxytag: member="imoc.h::IMOC_testForMessageCompletion" ref="g2e74930cd8e161a131b90f2f1081037a" args="(uint8_t mid, uint8_t *status)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int IMOC_testForMessageCompletion </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>mid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&nbsp;</td>
<td class="paramname"> <em>status</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Tests if message with message-ID mid has been received.
<p>
Tests if message-status-flag 'outstanding' is 0.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mid</em>&nbsp;</td><td><b>in</b> message-ID </td></tr>
<tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td><b>out</b> status of message </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../dd/d1f/imoc__test__message_8c-source.html#l00009">9</a> of file <a class="el" href="../../dd/d1f/imoc__test__message_8c-source.html">imoc_test_message.c</a>.</p>
<p>References <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#c0bdc214525521d58f12c72874de0512">moc_message_status_struct::bits</a>, <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#086c0d449d25774d43512b6f7fdab8ed">moc_message_status_struct::flags</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">moc_node_handle_ppu_struct::status_array_base</a>.</p>
<p>Referenced by <a class="el" href="../../d7/d24/moc__test_8c-source.html#l00013">MOC_Test()</a>.</p>
<p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d8/d88/group__internal__p2p__main_g2e74930cd8e161a131b90f2f1081037a_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g2e74930cd8e161a131b90f2f1081037a_icgraph_map" alt=""></center>
<map name="d8/d88/group__internal__p2p__main_g2e74930cd8e161a131b90f2f1081037a_icgraph_map">
<area shape="rect" href="../../d7/d62/group__p2p__imm.html#g5ee1f1c1275717d2dc78d6058ff81e9e" title="Tests, if a non&#45;blocking communication has been completed." alt="" coords="275,5,357,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g8675f9552168f2dd8926cad5ac00be69"></a><!-- doxytag: member="imoc.h::IMOC_waitForMessageCompletion" ref="g8675f9552168f2dd8926cad5ac00be69" args="(uint8_t mid)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int IMOC_waitForMessageCompletion </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>mid</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wait till message with message-ID mid has been received.
<p>
Waits till message-status-flag 'outstanding' is 0.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mid</em>&nbsp;</td><td><b>in</b> message-ID </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 when success otherwise error-code </dd></dl>
<p>Definition at line <a class="el" href="../../d2/dd3/imoc__wait__message_8c-source.html#l00009">9</a> of file <a class="el" href="../../d2/dd3/imoc__wait__message_8c-source.html">imoc_wait_message.c</a>.</p>
<p>References <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#c0bdc214525521d58f12c72874de0512">moc_message_status_struct::bits</a>, <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#086c0d449d25774d43512b6f7fdab8ed">moc_message_status_struct::flags</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">moc_node_handle_ppu_struct::status_array_base</a>.</p>
<p>Referenced by <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>, and <a class="el" href="../../de/d33/moc__wait_8c-source.html#l00011">MOC_Wait()</a>.</p>
<p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d8/d88/group__internal__p2p__main_g8675f9552168f2dd8926cad5ac00be69_icgraph.png" border="0" usemap="#d8/d88/group__internal__p2p__main_g8675f9552168f2dd8926cad5ac00be69_icgraph_map" alt=""></center>
<map name="d8/d88/group__internal__p2p__main_g8675f9552168f2dd8926cad5ac00be69_icgraph_map">
<area shape="rect" href="../../d5/dc2/group__p2p__synch.html#g46cb2ff2b5a0601165978598932d6120" title="Performs a blocking synchronous mode send operation." alt="" coords="275,5,371,32"><area shape="rect" href="../../d7/d62/group__p2p__imm.html#g68043e4a0893fdc25c67f87bae1015a6" title="Wait till a non&#45;blocking communication has been completed." alt="" coords="280,56,365,83"><area shape="rect" href="../../db/dc2/group__broadcast.html#gfd25e9a19a1ad4032fdf3703531167d6" title="Broadcasts a message from the process with rank &quot;root&quot; to all other processes..." alt="" coords="420,56,511,83"></map>
</div>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:51:09 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

@@ -0,0 +1,4 @@
<area shape="rect" href="$db/dc2/group__broadcast.html#g110b00d5a4d9f970ddf8e9bd4c2d8834" title="Blocks the caller until all processes in the communicator have called it; that is..." alt="" coords="191,5,287,32">
<area shape="rect" href="$de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b" title="Performs a blocking buffered mode send operation." alt="" coords="191,56,287,83">
<area shape="rect" href="$d7/d62/group__p2p__imm.html#gc148ff9b9bee69164139425a7df53697" title="Performs a non&#45;blocking synchronous mode send operation." alt="" coords="189,107,288,133">
<area shape="rect" href="$d5/dc2/group__p2p__synch.html#g46cb2ff2b5a0601165978598932d6120" title="Performs a blocking synchronous mode send operation." alt="" coords="191,157,287,184">
@@ -0,0 +1 @@
037aaa621f76c7a1bcf3888d2e1201c6
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

@@ -0,0 +1 @@
<area shape="rect" href="$d7/d62/group__p2p__imm.html#g5ee1f1c1275717d2dc78d6058ff81e9e" title="Tests, if a non&#45;blocking communication has been completed." alt="" coords="275,5,357,32">
@@ -0,0 +1 @@
caa376f6469dd3058cf931a47696eefb
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

@@ -0,0 +1,3 @@
<area shape="rect" href="$de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b" title="Performs a blocking buffered mode send operation." alt="" coords="183,5,279,32">
<area shape="rect" href="$d7/d62/group__p2p__imm.html#gc148ff9b9bee69164139425a7df53697" title="Performs a non&#45;blocking synchronous mode send operation." alt="" coords="181,56,280,83">
<area shape="rect" href="$d5/dc2/group__p2p__synch.html#g46cb2ff2b5a0601165978598932d6120" title="Performs a blocking synchronous mode send operation." alt="" coords="183,107,279,133">
@@ -0,0 +1 @@
c00f1e16996577169cebb9bdb642792a
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

@@ -0,0 +1,3 @@
<area shape="rect" href="$d5/dc2/group__p2p__synch.html#g46cb2ff2b5a0601165978598932d6120" title="Performs a blocking synchronous mode send operation." alt="" coords="275,5,371,32">
<area shape="rect" href="$d7/d62/group__p2p__imm.html#g68043e4a0893fdc25c67f87bae1015a6" title="Wait till a non&#45;blocking communication has been completed." alt="" coords="280,56,365,83">
<area shape="rect" href="$db/dc2/group__broadcast.html#gfd25e9a19a1ad4032fdf3703531167d6" title="Broadcasts a message from the process with rank &quot;root&quot; to all other processes..." alt="" coords="420,56,511,83">
@@ -0,0 +1 @@
59740295441f1f4ee5f159b200048773
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -0,0 +1,4 @@
<area shape="rect" href="$db/dc2/group__broadcast.html#g110b00d5a4d9f970ddf8e9bd4c2d8834" title="Blocks the caller until all processes in the communicator have called it; that is..." alt="" coords="171,5,267,32">
<area shape="rect" href="$d0/d64/group__p2p__main.html#g0bc7e537cd866537357a01a12a115a84" title="Tests if a message is available and returns information without actually receiving..." alt="" coords="172,56,265,83">
<area shape="rect" href="$d0/d64/group__p2p__main.html#g39ceb4e6f08da2cd3dac3e93bb6e3ee1" title="Waits till a message is received and returns information without actually receiving..." alt="" coords="173,107,264,133">
<area shape="rect" href="$d0/d64/group__p2p__main.html#g30c532510cffd36acd1b9b0b3edb3832" title="Performs a blocking standard mode receive operation." alt="" coords="176,157,261,184">
@@ -0,0 +1 @@
870033bf32aebbe76cafeee73779ab5c
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

@@ -0,0 +1,15 @@
<area shape="rect" href="$d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="372,155,428,181">
<area shape="rect" href="$d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="96,229,203,256">
<area shape="rect" href="$d8/de2/moc__datatype__ppu_8h.html" title="ppu/moc_datatype_ppu.h" alt="" coords="801,304,969,331">
<area shape="rect" href="$d6/d09/imoc__core__ppu_8h.html" title="internal/ppu/imoc_core_ppu.h" alt="" coords="437,80,629,107">
<area shape="rect" href="$de/df9/imoc__dma__ppu_8h.html" title="internal/ppu/imoc_dma_ppu.h" alt="" coords="1061,229,1253,256">
<area shape="rect" href="$d8/d98/imoc__macros__ppu_8h.html" title="internal/ppu/imoc_macros_ppu.h" alt="" coords="1112,80,1320,107">
<area shape="rect" href="$dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="429,229,547,256">
<area shape="rect" href="$d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="379,304,520,331">
<area shape="rect" href="$d1/d82/moc_8h.html" title="../moc.h" alt="" coords="595,304,664,331">
<area shape="rect" href="$d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="635,379,760,405">
<area shape="rect" href="$df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="429,379,560,405">
<area shape="rect" href="$d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="163,304,253,331">
<area shape="rect" href="$db/dae/ppu_2moc_8h.html" title="../../ppu/moc.h" alt="" coords="725,155,832,181">
<area shape="rect" href="$db/d62/moc__dma__ppu_8h.html" title="moc_dma_ppu.h" alt="" coords="768,229,885,256">
<area shape="rect" href="$d2/d42/imoc__macros_8h.html" title="../imoc_macros.h" alt="" coords="1155,155,1277,181">
@@ -0,0 +1 @@
1affa7a7abd98e8b29f52e5bf698b759
Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

@@ -0,0 +1,216 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): Implementation Information</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Implementation Information<br>
<small>
[<a class="el" href="../../de/d1b/group__environment__main.html">Environmental Management</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Implementation Information:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d8/d8f/group__environment__information.png" border="0" alt="" usemap="#d6/daa/d8_2d8f_2group____environment____information_map">
<map name="d6/daa/d8_2d8f_2group____environment____information_map">
<area shape="rect" href="../../de/d1b/group__environment__main.html" title="This chapter discusses routines for getting and, where appropriate, setting various..." alt="" coords="5,5,187,32"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Functions to return some information about the execution environment and the MOC-implementation.
<p>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#g872c24341022407f606e48c7987f1d40">MOC_VERSION</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Major version-number of this MOC-Implementation. <a href="#g872c24341022407f606e48c7987f1d40"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#gd51bfe8de83ee5b0dad9f61c855ae666">MOC_SUBVERSION</a>&nbsp;&nbsp;&nbsp;9</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Minor version-number of this MOC-Implementation. <a href="#gd51bfe8de83ee5b0dad9f61c855ae666"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#g58f559d6df810dbe1c633b3d68e9624f">MOC_MAX_PROCESSOR_NAME</a>&nbsp;&nbsp;&nbsp;4</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum length of the string returned by MOC_Get_processor_name. <a href="#g58f559d6df810dbe1c633b3d68e9624f"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#gf69e7617a61a2eaa2783e718f2df5270">MOC_Get_processor_name</a> (char *name, int *resultlen)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the name of the processor. <a href="#gf69e7617a61a2eaa2783e718f2df5270"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html#g9a54df3ad074f8fc91abddf7666474ea">MOC_Get_version</a> (int *version, int *subversion)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the major and minor version of this MOC-implementation. <a href="#g9a54df3ad074f8fc91abddf7666474ea"></a><br></td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g58f559d6df810dbe1c633b3d68e9624f"></a><!-- doxytag: member="moc.h::MOC_MAX_PROCESSOR_NAME" ref="g58f559d6df810dbe1c633b3d68e9624f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_MAX_PROCESSOR_NAME&nbsp;&nbsp;&nbsp;4 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The maximum length of the string returned by MOC_Get_processor_name.
<p>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00153">153</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="gd51bfe8de83ee5b0dad9f61c855ae666"></a><!-- doxytag: member="moc.h::MOC_SUBVERSION" ref="gd51bfe8de83ee5b0dad9f61c855ae666" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_SUBVERSION&nbsp;&nbsp;&nbsp;9 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Minor version-number of this MOC-Implementation.
<p>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00148">148</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>.</p>
<p>Referenced by <a class="el" href="../../d3/d88/moc__get__version_8c-source.html#l00003">MOC_Get_version()</a>.</p>
</div>
</div><p>
<a class="anchor" name="g872c24341022407f606e48c7987f1d40"></a><!-- doxytag: member="moc.h::MOC_VERSION" ref="g872c24341022407f606e48c7987f1d40" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VERSION&nbsp;&nbsp;&nbsp;0 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Major version-number of this MOC-Implementation.
<p>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00143">143</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>.</p>
<p>Referenced by <a class="el" href="../../d3/d88/moc__get__version_8c-source.html#l00003">MOC_Get_version()</a>.</p>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gf69e7617a61a2eaa2783e718f2df5270"></a><!-- doxytag: member="moc.h::MOC_Get_processor_name" ref="gf69e7617a61a2eaa2783e718f2df5270" args="(char *name, int *resultlen)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_processor_name </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>resultlen</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the name of the processor.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This function returns "SPU" if the calling process is running on a SPU otherwise it's running on the "PPU".</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td><b>out</b> Specifies the processor-type the calling process is runnning on </td></tr>
<tr><td valign="top"></td><td valign="top"><em>resultlen</em>&nbsp;</td><td><b>out</b> Length (in characters) of the name </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../dd/d14/moc__get__proc__name__ppu_8c-source.html#l00003">3</a> of file <a class="el" href="../../dd/d14/moc__get__proc__name__ppu_8c-source.html">moc_get_proc_name_ppu.c</a>.</p>
</div>
</div><p>
<a class="anchor" name="g9a54df3ad074f8fc91abddf7666474ea"></a><!-- doxytag: member="moc.h::MOC_Get_version" ref="g9a54df3ad074f8fc91abddf7666474ea" args="(int *version, int *subversion)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_version </td>
<td>(</td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>version</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>subversion</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the major and minor version of this MOC-implementation.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Can be called before MOC_Init and after MOC_Finalize.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>version</em>&nbsp;</td><td><b>out</b> Major version of this MOC-implementation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>subversion</em>&nbsp;</td><td><b>out</b> Minor version of this MOC-implementation </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>Function returned successfully </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../d3/d88/moc__get__version_8c-source.html#l00003">3</a> of file <a class="el" href="../../d3/d88/moc__get__version_8c-source.html">moc_get_version.c</a>.</p>
<p>References <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00043">MOC_ERR_ARG</a>, <a class="el" href="../../d7/de1/moc_8h-source.html#l00148">MOC_SUBVERSION</a>, and <a class="el" href="../../d7/de1/moc_8h-source.html#l00143">MOC_VERSION</a>.</p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:44 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,50 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/spu/dma/moc_dma-get_spu.c File Reference</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>src/spu/dma/moc_dma-get_spu.c File Reference</h1>
<p>
<code>#include &lt;spu_mfcio.h&gt;</code><br>
<code>#include &lt;string.h&gt;</code><br>
<code>#include &lt;<a class="el" href="../../dc/dcb/spu_2moc_8h-source.html">moc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d1/d03/moc__dma__spu_8h-source.html">spu/moc_dma_spu.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d0/d87/imoc__macros_8h-source.html">internal/imoc_macros.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d4/d95/imoc__dma__spu_8h-source.html">internal/spu/imoc_dma_spu.h</a>&gt;</code><br>
<p>
<div class="dynheader">
Include dependency graph for moc_dma-get_spu.c:</div>
<div class="dynsection">
<p><center><img src="../../d2/dc7/moc__dma-get__spu_8c__incl.png" border="0" usemap="#src/spu/dma/moc_dma-get_spu.c_map" alt=""></center>
<map name="src/spu/dma/moc_dma-get_spu.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="208,80,264,107"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="257,155,375,181"><area shape="rect" href="../../d2/d42/imoc__macros_8h.html" title="internal/imoc_macros.h" alt="" coords="389,80,544,107"><area shape="rect" href="../../d4/dce/imoc__dma__spu_8h.html" title="internal/spu/imoc_dma_spu.h" alt="" coords="399,155,591,181"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="107,229,248,256"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="277,229,347,256"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="107,304,232,331"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="307,304,437,331"></map>
</div>
<p>
<a href="../../dd/dfd/moc__dma-get__spu_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d16/group__dma__access.html#g7af2715950a0ab51937a63c38756b85b">MOC_Get_data</a> (void *target, uint64_t source, int count, <a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a> datatype)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper-function for a blocking DMA-get operation. <a href="../../d9/d16/group__dma__access.html#g7af2715950a0ab51937a63c38756b85b"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:34 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,11 @@
<area shape="rect" href="$d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="156,155,212,181">
<area shape="rect" href="$d6/d09/imoc__core__ppu_8h.html" title="internal/ppu/imoc_core_ppu.h" alt="" coords="389,80,581,107">
<area shape="rect" href="$dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="125,229,243,256">
<area shape="rect" href="$d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="17,304,159,331">
<area shape="rect" href="$d1/d82/moc_8h.html" title="../moc.h" alt="" coords="315,304,384,331">
<area shape="rect" href="$d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="439,379,564,405">
<area shape="rect" href="$df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="284,379,415,405">
<area shape="rect" href="$d7/d3d/imoc__core_8h.html" title="../imoc_core.h" alt="" coords="689,379,793,405">
<area shape="rect" href="$db/dae/ppu_2moc_8h.html" title="../../ppu/moc.h" alt="" coords="489,155,596,181">
<area shape="rect" href="$db/d62/moc__dma__ppu_8h.html" title="moc_dma_ppu.h" alt="" coords="464,229,581,256">
<area shape="rect" href="$d8/de2/moc__datatype__ppu_8h.html" title="moc_datatype_ppu.h" alt="" coords="491,304,632,331">
@@ -0,0 +1 @@
62fdb38fe7e1dc6fffb7aaf6ee8ca586
Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

@@ -0,0 +1,12 @@
<area shape="rect" href="$d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="149,155,205,181">
<area shape="rect" href="$d6/d09/imoc__core__ppu_8h.html" title="internal/ppu/imoc_core_ppu.h" alt="" coords="745,80,937,107">
<area shape="rect" href="$db/d62/moc__dma__ppu_8h.html" title="moc_dma_ppu.h" alt="" coords="532,229,649,256">
<area shape="rect" href="$de/df9/imoc__dma__ppu_8h.html" title="internal/ppu/imoc_dma_ppu.h" alt="" coords="265,229,457,256">
<area shape="rect" href="$dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="23,229,140,256">
<area shape="rect" href="$d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="91,304,232,331">
<area shape="rect" href="$d1/d82/moc_8h.html" title="../moc.h" alt="" coords="371,304,440,331">
<area shape="rect" href="$d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="483,379,608,405">
<area shape="rect" href="$df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="277,379,408,405">
<area shape="rect" href="$d7/d3d/imoc__core_8h.html" title="../imoc_core.h" alt="" coords="948,379,1052,405">
<area shape="rect" href="$db/dae/ppu_2moc_8h.html" title="../../ppu/moc.h" alt="" coords="652,155,759,181">
<area shape="rect" href="$d8/de2/moc__datatype__ppu_8h.html" title="moc_datatype_ppu.h" alt="" coords="559,304,700,331">
@@ -0,0 +1 @@
89c0453f82df8de6d3b763842c9b42e1
Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

@@ -0,0 +1,271 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): moc_node_handle_ppu_struct Struct Reference</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li class="current"><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="../../functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>moc_node_handle_ppu_struct Struct Reference<br>
<small>
[<a class="el" href="../../dd/df8/group__internal__core.html">Implementation-Core</a>]</small>
</h1><!-- doxytag: class="moc_node_handle_ppu_struct" --><code>#include &lt;<a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>&gt;</code>
<p>
<div class="dynheader">
Collaboration diagram for moc_node_handle_ppu_struct:</div>
<div class="dynsection">
<p><center><img src="../../db/d66/structmoc__node__handle__ppu__struct__coll__graph.png" border="0" usemap="#d0/d5e/moc__node__handle__ppu__struct__coll__map" alt="Collaboration graph"></center>
<map name="d0/d5e/moc__node__handle__ppu__struct__coll__map">
<area shape="rect" href="../../d0/db8/structmoc__process__struct.html" title="Process&#45;information structure." alt="" coords="97,365,239,509"><area shape="rect" href="../../df/dd4/structmoc__message__envelope__struct.html" title="Message&#45;envelope structure." alt="" coords="341,277,544,597"><area shape="rect" href="../../dd/df5/structmoc__message__status__struct.html" title="Message&#45;status structure." alt="" coords="725,317,915,557"></map>
<center><font size="2">[<a target="top" href="../../graph_legend.html">legend</a>]</font></center></div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Node-handle structure.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>PPU only</dd></dl>
Information each node knowns about himself and the world.
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00030">30</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#9005ee3d6d0ee8b2f15628dcca724710">rank</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">rank of node <a href="#9005ee3d6d0ee8b2f15628dcca724710"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778">comm_size</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of overall processes <a href="#3779cc1bda02c45a880389b109173778"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#ee1aa72cd99190cf97523a955cfa6141">queue_size</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Size of a message-queue. <a href="#ee1aa72cd99190cf97523a955cfa6141"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">volatile <a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#58ca7dd0e2874d0317038dbb0c279b82">message_queue_base</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">base-address of own message-queues <a href="#58ca7dd0e2874d0317038dbb0c279b82"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">volatile <a class="el" href="../../dd/df5/structmoc__message__status__struct.html">moc_message_status_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#abccbc7beefa7b1e2ccc84b8bd2b8805">status_array_base</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">base-address of own message-status-array <a href="#abccbc7beefa7b1e2ccc84b8bd2b8805"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#ee118aad604058291438923545af37db">buffer_base</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">base-address of own buffer <a href="#ee118aad604058291438923545af37db"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#90096c2a63d01f0251fdd6c642601f45">buffer_size</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">size of own buffer <a href="#90096c2a63d01f0251fdd6c642601f45"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">volatile uint32_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3d13ba21e187a05cb548b6b3ae39ffe7">signal_area</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">address of own signal-area <a href="#3d13ba21e187a05cb548b6b3ae39ffe7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">volatile <a class="el" href="../../d0/db8/structmoc__process__struct.html">moc_process_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#528d5743c1b49553cc9b812a211afa53">moc_process_list</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list of all other MOC-processes (index is rank of process) <a href="#528d5743c1b49553cc9b812a211afa53"></a><br></td></tr>
</table>
<hr><h2>Field Documentation</h2>
<a class="anchor" name="9005ee3d6d0ee8b2f15628dcca724710"></a><!-- doxytag: member="moc_node_handle_ppu_struct::rank" ref="9005ee3d6d0ee8b2f15628dcca724710" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#9005ee3d6d0ee8b2f15628dcca724710">moc_node_handle_ppu_struct::rank</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
rank of node
<p>
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00032">32</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<p>Referenced by <a class="el" href="../../de/dbb/imoc__get__entry_8c-source.html#l00013">IMOC_get_entry()</a>, <a class="el" href="../../d4/d28/moc__barrier__spu_8c-source.html#l00012">MOC_Barrier()</a>, <a class="el" href="../../da/d19/moc__bcast_8c-source.html#l00009">MOC_Bcast()</a>, <a class="el" href="../../d9/dd3/moc__comm__rank_8c-source.html#l00008">MOC_Comm_rank()</a>, <a class="el" href="../../da/d29/moc__finalize__spu_8c-source.html#l00010">MOC_Finalize()</a>, <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>, <a class="el" href="../../d5/d4e/moc__isend_8c-source.html#l00018">MOC_ISend()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, and <a class="el" href="../../de/d33/moc__wait_8c-source.html#l00011">MOC_Wait()</a>.</p>
</div>
</div><p>
<a class="anchor" name="3779cc1bda02c45a880389b109173778"></a><!-- doxytag: member="moc_node_handle_ppu_struct::comm_size" ref="3779cc1bda02c45a880389b109173778" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778">moc_node_handle_ppu_struct::comm_size</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
number of overall processes
<p>
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00033">33</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<p>Referenced by <a class="el" href="../../de/dbb/imoc__get__entry_8c-source.html#l00013">IMOC_get_entry()</a>, <a class="el" href="../../dd/d18/imoc__get__free__mid_8c-source.html#l00009">IMOC_getFreeMID()</a>, <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../d8/d65/moc__comm__size_8c-source.html#l00008">MOC_Comm_size()</a>, and <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>.</p>
</div>
</div><p>
<a class="anchor" name="ee1aa72cd99190cf97523a955cfa6141"></a><!-- doxytag: member="moc_node_handle_ppu_struct::queue_size" ref="ee1aa72cd99190cf97523a955cfa6141" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#ee1aa72cd99190cf97523a955cfa6141">moc_node_handle_ppu_struct::queue_size</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Size of a message-queue.
<p>
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00034">34</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<p>Referenced by <a class="el" href="../../de/dbb/imoc__get__entry_8c-source.html#l00013">IMOC_get_entry()</a>, <a class="el" href="../../d1/d2a/imoc__get__free__entry_8c-source.html#l00009">IMOC_getFreeEntry()</a>, <a class="el" href="../../dd/d18/imoc__get__free__mid_8c-source.html#l00009">IMOC_getFreeMID()</a>, <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>, <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, and <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>.</p>
</div>
</div><p>
<a class="anchor" name="58ca7dd0e2874d0317038dbb0c279b82"></a><!-- doxytag: member="moc_node_handle_ppu_struct::message_queue_base" ref="58ca7dd0e2874d0317038dbb0c279b82" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a>* <a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#58ca7dd0e2874d0317038dbb0c279b82">moc_node_handle_ppu_struct::message_queue_base</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
base-address of own message-queues
<p>
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00035">35</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<p>Referenced by <a class="el" href="../../de/dbb/imoc__get__entry_8c-source.html#l00013">IMOC_get_entry()</a>, <a class="el" href="../../d1/d67/moc__finalize__ppu_8c-source.html#l00011">MOC_Finalize()</a>, and <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>.</p>
</div>
</div><p>
<a class="anchor" name="abccbc7beefa7b1e2ccc84b8bd2b8805"></a><!-- doxytag: member="moc_node_handle_ppu_struct::status_array_base" ref="abccbc7beefa7b1e2ccc84b8bd2b8805" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="../../dd/df5/structmoc__message__status__struct.html">moc_message_status_t</a>* <a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#abccbc7beefa7b1e2ccc84b8bd2b8805">moc_node_handle_ppu_struct::status_array_base</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
base-address of own message-status-array
<p>
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">36</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<p>Referenced by <a class="el" href="../../d7/d1f/imoc__buffer__malloc_8c-source.html#l00056">__attribute__()</a>, <a class="el" href="../../d7/d1f/imoc__buffer__malloc_8c-source.html#l00085">IMOC_bmalloc()</a>, <a class="el" href="../../dd/d18/imoc__get__free__mid_8c-source.html#l00009">IMOC_getFreeMID()</a>, <a class="el" href="../../dd/d1f/imoc__test__message_8c-source.html#l00009">IMOC_testForMessageCompletion()</a>, <a class="el" href="../../d2/dd3/imoc__wait__message_8c-source.html#l00009">IMOC_waitForMessageCompletion()</a>, <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>, <a class="el" href="../../d1/d67/moc__finalize__ppu_8c-source.html#l00011">MOC_Finalize()</a>, <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>, <a class="el" href="../../d7/d24/moc__test_8c-source.html#l00013">MOC_Test()</a>, and <a class="el" href="../../de/d33/moc__wait_8c-source.html#l00011">MOC_Wait()</a>.</p>
</div>
</div><p>
<a class="anchor" name="ee118aad604058291438923545af37db"></a><!-- doxytag: member="moc_node_handle_ppu_struct::buffer_base" ref="ee118aad604058291438923545af37db" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#ee118aad604058291438923545af37db">moc_node_handle_ppu_struct::buffer_base</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
base-address of own buffer
<p>
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00037">37</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<p>Referenced by <a class="el" href="../../d7/d1f/imoc__buffer__malloc_8c-source.html#l00085">IMOC_bmalloc()</a>, <a class="el" href="../../d1/d67/moc__finalize__ppu_8c-source.html#l00011">MOC_Finalize()</a>, and <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>.</p>
</div>
</div><p>
<a class="anchor" name="90096c2a63d01f0251fdd6c642601f45"></a><!-- doxytag: member="moc_node_handle_ppu_struct::buffer_size" ref="90096c2a63d01f0251fdd6c642601f45" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t <a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#90096c2a63d01f0251fdd6c642601f45">moc_node_handle_ppu_struct::buffer_size</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
size of own buffer
<p>
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00038">38</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<p>Referenced by <a class="el" href="../../d7/d1f/imoc__buffer__malloc_8c-source.html#l00085">IMOC_bmalloc()</a>, and <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>.</p>
</div>
</div><p>
<a class="anchor" name="3d13ba21e187a05cb548b6b3ae39ffe7"></a><!-- doxytag: member="moc_node_handle_ppu_struct::signal_area" ref="3d13ba21e187a05cb548b6b3ae39ffe7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile uint32_t* <a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3d13ba21e187a05cb548b6b3ae39ffe7">moc_node_handle_ppu_struct::signal_area</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
address of own signal-area
<p>
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00039">39</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<p>Referenced by <a class="el" href="../../d1/d67/moc__finalize__ppu_8c-source.html#l00011">MOC_Finalize()</a>, and <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>.</p>
</div>
</div><p>
<a class="anchor" name="528d5743c1b49553cc9b812a211afa53"></a><!-- doxytag: member="moc_node_handle_ppu_struct::moc_process_list" ref="528d5743c1b49553cc9b812a211afa53" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="../../d0/db8/structmoc__process__struct.html">moc_process_t</a>* <a class="el" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#528d5743c1b49553cc9b812a211afa53">moc_node_handle_ppu_struct::moc_process_list</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
list of all other MOC-processes (index is rank of process)
<p>
<p>Definition at line <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00040">40</a> of file <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a>.</p>
<p>Referenced by <a class="el" href="../../d1/d67/moc__finalize__ppu_8c-source.html#l00011">MOC_Finalize()</a>, and <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>.</p>
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>include/internal/ppu/<a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html">imoc_core_ppu.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:51:20 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): include/internal/ppu/imoc_macros_ppu.h File Reference</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>include/internal/ppu/imoc_macros_ppu.h File Reference</h1>
<p>
<code>#include &quot;<a class="el" href="../../d0/d87/imoc__macros_8h-source.html">../imoc_macros.h</a>&quot;</code><br>
<p>
<div class="dynheader">
Include dependency graph for imoc_macros_ppu.h:</div>
<div class="dynsection">
<p><center><img src="../../d5/d49/imoc__macros__ppu_8h__incl.png" border="0" usemap="#include/internal/ppu/imoc_macros_ppu.h_map" alt=""></center>
<map name="include/internal/ppu/imoc_macros_ppu.h_map">
<area shape="rect" href="../../d2/d42/imoc__macros_8h.html" title="../imoc_macros.h" alt="" coords="71,80,193,107"></map>
</div>
<p>
<div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dynsection">
<p><center><img src="../../d6/d83/imoc__macros__ppu_8h__dep__incl.png" border="0" usemap="#include/internal/ppu/imoc_macros_ppu.hdep_map" alt=""></center>
<map name="include/internal/ppu/imoc_macros_ppu.hdep_map">
<area shape="rect" href="../../d3/dc2/moc__isend_8c.html" title="src/noarch/communication/moc_isend.c" alt="" coords="5,80,256,107"><area shape="rect" href="../../db/d55/moc__send_8c.html" title="src/noarch/communication/moc_send.c" alt="" coords="280,80,528,107"><area shape="rect" href="../../d1/d72/moc__barrier__ppu_8c.html" title="src/ppu/communication/moc_barrier_ppu.c" alt="" coords="552,80,819,107"><area shape="rect" href="../../d9/d14/moc__bsend__ppu_8c.html" title="src/ppu/communication/moc_bsend_ppu.c" alt="" coords="843,80,1109,107"><area shape="rect" href="../../dc/d02/moc__issend__ppu_8c.html" title="src/ppu/communication/moc_issend_ppu.c" alt="" coords="1133,80,1403,107"><area shape="rect" href="../../dc/db7/moc__recv__ppu_8c.html" title="src/ppu/communication/moc_recv_ppu.c" alt="" coords="1427,80,1680,107"><area shape="rect" href="../../d2/d00/moc__ssend__ppu_8c.html" title="src/ppu/communication/moc_ssend_ppu.c" alt="" coords="1704,80,1971,107"><area shape="rect" href="../../d3/dc6/moc__dma-iget__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iget_ppu.c" alt="" coords="1995,80,2213,107"><area shape="rect" href="../../d3/dfa/moc__dma-put__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;put_ppu.c" alt="" coords="2237,80,2453,107"><area shape="rect" href="../../d1/da6/imoc__dma-iget__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;iget_ppu.c" alt="" coords="2477,80,2744,107"><area shape="rect" href="../../d3/d8f/imoc__dma-put__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;put_ppu.c" alt="" coords="2768,80,3032,107"></map>
</div>
<p>
<a href="../../db/db7/imoc__macros__ppu_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">PPU-only</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/ddf/group__internal__am.html#g48013d236aaa37226bbba460eaf3aca5">IMOC_LS_REMOTE_QUEUE</a>(proc)&nbsp;&nbsp;&nbsp;( (proc &gt; node_handle.rank) ? <a class="el" href="../../dc/df1/group__internal__spu__thread.html#ga5b74732b1e31ec1674ea0e5ae465c4e">moc_spu_thread_list</a>[proc-<a class="el" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52">moc_ppu_thread_count</a>].queue_base_in_ls+sizeof(<a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a>)*node_handle.queue_size*node_handle.rank : <a class="el" href="../../dc/df1/group__internal__spu__thread.html#ga5b74732b1e31ec1674ea0e5ae465c4e">moc_spu_thread_list</a>[proc-<a class="el" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52">moc_ppu_thread_count</a>].queue_base_in_ls+sizeof(<a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a>)*node_handle.queue_size*(node_handle.rank-1) )</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">LS-Address of own remote queue at node 'rank'. <a href="../../df/ddf/group__internal__am.html#g48013d236aaa37226bbba460eaf3aca5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/ddf/group__internal__am.html#gbe88027dec24d5a28cae9988d60d1606">IMOC_LS_REMOTE_QUEUE_ENTRY</a>(proc, index)&nbsp;&nbsp;&nbsp;( (proc &gt; node_handle.rank) ? <a class="el" href="../../dc/df1/group__internal__spu__thread.html#ga5b74732b1e31ec1674ea0e5ae465c4e">moc_spu_thread_list</a>[proc-<a class="el" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52">moc_ppu_thread_count</a>].queue_base_in_ls+sizeof(<a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a>)*node_handle.queue_size*node_handle.rank+sizeof(<a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a>)*(index) : <a class="el" href="../../dc/df1/group__internal__spu__thread.html#ga5b74732b1e31ec1674ea0e5ae465c4e">moc_spu_thread_list</a>[proc-<a class="el" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52">moc_ppu_thread_count</a>].queue_base_in_ls+sizeof(<a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a>)*node_handle.queue_size*(node_handle.rank-1)+sizeof(<a class="el" href="../../df/dd4/structmoc__message__envelope__struct.html">moc_message_envelope_t</a>)*(index) )</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">LS-Address of own remote queue-entry at node 'rank'. <a href="../../df/ddf/group__internal__am.html#gbe88027dec24d5a28cae9988d60d1606"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/ddf/group__internal__am.html#gded7ed7d01abe015b3fa13abeb73b303">IMOC_LS_REMOTE_STATUS_ENTRY</a>(id, rank)&nbsp;&nbsp;&nbsp;( <a class="el" href="../../dc/df1/group__internal__spu__thread.html#ga5b74732b1e31ec1674ea0e5ae465c4e">moc_spu_thread_list</a>[rank-<a class="el" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52">moc_ppu_thread_count</a>].status_base_in_ls+sizeof(<a class="el" href="../../dd/df5/structmoc__message__status__struct.html">moc_message_status_t</a>)*(id) )</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Effective Address of remote status-array entry at node 'rank'. <a href="../../df/ddf/group__internal__am.html#gded7ed7d01abe015b3fa13abeb73b303"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:53 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,406 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): Startup &amp; Shutdown</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Startup &amp; Shutdown<br>
<small>
[<a class="el" href="../../de/d1b/group__environment__main.html">Environmental Management</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Startup &amp; Shutdown:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d8/d9a/group__environment__startup.png" border="0" alt="" usemap="#df/df9/d8_2d9a_2group____environment____startup_map">
<map name="df/df9/d8_2d9a_2group____environment____startup_map">
<area shape="rect" href="../../de/d1b/group__environment__main.html" title="This chapter discusses routines for getting and, where appropriate, setting various..." alt="" coords="5,5,187,32"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Functions to start and terminate the MOC-execution environment.
<p>
To be able to communicate with other processes every MOC-process needs to setup his MOC-Environment before any MOC-function can be called (there are some exceptions though).<p>
The PPU-process has a special role, because he is the one who starts the SPU-processes. SPU-processes can be added to the MOC-environment by calling <a class="el" href="../../d8/d9a/group__environment__startup.html#geea5b7c117adae78e954f0959fe0c447">MOC_Add_spu_thread</a> with the appropriate SPU-thread-handle (This implementation only supports the embedded binary concept where the SPU-binary is embedded into the PPU-binary and accessed via a handle). The order of calling determines the rank of the SPU-processes. To get the number of total and available SPUs the functions <a class="el" href="../../d8/d9a/group__environment__startup.html#g66028682d3c25b76e25ca57655d47625">MOC_Get_avail_spu_count</a> and <a class="el" href="../../d8/d9a/group__environment__startup.html#g58c038d9978a55d6f346102dfef9acc7">MOC_Get_max_spu_count</a> can be used.<p>
The buffer-size and the size of the message-queues can be set before calling <a class="el" href="../../d4/de2/moc__init__spu_8c.html#ee36daffc6d5276cabe2b44afeb35ece">MOC_Init</a> on the PPU using <a class="el" href="../../d8/d9a/group__environment__startup.html#g0ac2f7a8d9b93b8da0408a5307f0c925">MOC_Set_buffer_size</a> and <a class="el" href="../../d8/d9a/group__environment__startup.html#g3e83e7a629951e6788a682aad654baf8">MOC_Set_queue_size</a>.<p>
MOC_Init only returns after all processes have called this function and have set up their environment.<p>
If the MOC-environment isn't needed anymore, <a class="el" href="../../d8/d9a/group__environment__startup.html#g0fd366b8b49db32818786c773c4919b8">MOC_Finalize</a> should be called by all MOC-processes. MOC_Finalize only returns after all MOC-processes have called this functions and have shutdown their environments.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>PPU &amp; SPU</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g0fd366b8b49db32818786c773c4919b8">MOC_Finalize</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Terminates MPI execution environment. <a href="#g0fd366b8b49db32818786c773c4919b8"></a><br></td></tr>
<tr><td colspan="2"><br><h2>PPU-only</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g66028682d3c25b76e25ca57655d47625">MOC_Get_avail_spu_count</a> (int *count)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of available SPUs. <a href="#g66028682d3c25b76e25ca57655d47625"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g58c038d9978a55d6f346102dfef9acc7">MOC_Get_max_spu_count</a> (int *count)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of SPUs. <a href="#g58c038d9978a55d6f346102dfef9acc7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#geea5b7c117adae78e954f0959fe0c447">MOC_Add_spu_thread</a> (spe_program_handle_t *phandle, void *argp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a SPU-Thread. <a href="#geea5b7c117adae78e954f0959fe0c447"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g0ac2f7a8d9b93b8da0408a5307f0c925">MOC_Set_buffer_size</a> (uint32_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the size of the buffer used for buffered communication. <a href="#g0ac2f7a8d9b93b8da0408a5307f0c925"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g3e83e7a629951e6788a682aad654baf8">MOC_Set_queue_size</a> (uint8_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the size of the message-queues. <a href="#g3e83e7a629951e6788a682aad654baf8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g9a59090c9d03e89f019e8276d4013c72">MOC_Init</a> (int *argc, char ***argv)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the MPI execution environment. <a href="#g9a59090c9d03e89f019e8276d4013c72"></a><br></td></tr>
<tr><td colspan="2"><br><h2>SPU-only</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html#g4d96c98b95bd1a0f6ed8c1e5e6f6c873">MOC_Init</a> (unsigned long long argp, int length, void *buffer)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the MPI execution environment. <a href="#g4d96c98b95bd1a0f6ed8c1e5e6f6c873"></a><br></td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="geea5b7c117adae78e954f0959fe0c447"></a><!-- doxytag: member="moc.h::MOC_Add_spu_thread" ref="geea5b7c117adae78e954f0959fe0c447" args="(spe_program_handle_t *phandle, void *argp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Add_spu_thread </td>
<td>(</td>
<td class="paramtype">spe_program_handle_t *&nbsp;</td>
<td class="paramname"> <em>phandle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>argp</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Adds a SPU-Thread.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before calling <a class="el" href="../../d4/de2/moc__init__spu_8c.html#ee36daffc6d5276cabe2b44afeb35ece">MOC_Init</a><p>
The order of executions defines the order of the ranks of the SPU-Threads</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>phandle</em>&nbsp;</td><td><b>in</b> Handle of the SPE-Program </td></tr>
<tr><td valign="top"></td><td valign="top"><em>argp</em>&nbsp;</td><td><b>in</b> Pointer to some user-defined information in the main-memory </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_BUFFER_OVERFLOW</em>&nbsp;</td><td>A Buffer-Overflow occured. Mosst likely you tried to add more SPU-threads than defined by <a class="el" href="../../db/dae/ppu_2moc_8h.html#a6aacc64a745d563ed72610e08ceb3ef">MOC_SPU_THREAD_MAX</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_INTERN</em>&nbsp;</td><td>Internal Error </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../dd/db2/moc__add__spu__thread__ppu_8c-source.html#l00011">11</a> of file <a class="el" href="../../dd/db2/moc__add__spu__thread__ppu_8c-source.html">moc_add_spu_thread_ppu.c</a>.</p>
<p>References <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00081">moc_spu_thread_struct::argp</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00062">MOC_ERR_BUFFER_OVERFLOW</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00047">MOC_ERR_INTERN</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00098">moc_spu_thread_count</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00123">moc_spu_thread_list</a>, <a class="el" href="../../d9/df9/ppu_2moc_8h-source.html#l00017">MOC_SPU_THREAD_MAX</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00080">moc_spu_thread_struct::spe_entry_adress</a>.</p>
</div>
</div><p>
<a class="anchor" name="g0fd366b8b49db32818786c773c4919b8"></a><!-- doxytag: member="moc.h::MOC_Finalize" ref="g0fd366b8b49db32818786c773c4919b8" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Finalize </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Terminates MPI execution environment.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>All processes must call this routine before exiting.</dd></dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../d1/d67/moc__finalize__ppu_8c-source.html#l00011">11</a> of file <a class="el" href="../../d1/d67/moc__finalize__ppu_8c-source.html">moc_finalize_ppu.c</a>.</p>
<p>References <a class="el" href="../../d7/d1f/imoc__buffer__malloc_8c-source.html#l00020">bmalloc_first_node</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00037">moc_node_handle_ppu_struct::buffer_base</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00035">moc_node_handle_ppu_struct::message_queue_base</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00047">MOC_ERR_INTERN</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00040">moc_node_handle_ppu_struct::moc_process_list</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00098">moc_spu_thread_count</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00123">moc_spu_thread_list</a>, <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00182">moc_internal_buffer_node_struct::next_node</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00032">moc_node_handle_ppu_struct::rank</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00039">moc_node_handle_ppu_struct::signal_area</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">moc_node_handle_ppu_struct::status_array_base</a>.</p>
</div>
</div><p>
<a class="anchor" name="g66028682d3c25b76e25ca57655d47625"></a><!-- doxytag: member="moc.h::MOC_Get_avail_spu_count" ref="g66028682d3c25b76e25ca57655d47625" args="(int *count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_avail_spu_count </td>
<td>(</td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>count</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the number of available SPUs.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before <a class="el" href="../../d4/de2/moc__init__spu_8c.html#ee36daffc6d5276cabe2b44afeb35ece">MOC_Init</a><p>
This function should return the count of free SPUs. But this doesn't really works. To get the available SPU-count the function spe_cpu_info_get() from libspe2 with SPE_COUNT_USABLE_SPES-flag is used. However this function can only detect if a SPU-thread is used by the calling function. There seems to be no means to detect SPU-thread used by other applications.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>out</b> number of available SPUs </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>error-code </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../d3/dfa/moc__get__avail__spu__ppu_8c-source.html#l00004">4</a> of file <a class="el" href="../../d3/dfa/moc__get__avail__spu__ppu_8c-source.html">moc_get_avail_spu_ppu.c</a>.</p>
<p>References <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00047">MOC_ERR_INTERN</a>.</p>
</div>
</div><p>
<a class="anchor" name="g58c038d9978a55d6f346102dfef9acc7"></a><!-- doxytag: member="moc.h::MOC_Get_max_spu_count" ref="g58c038d9978a55d6f346102dfef9acc7" args="(int *count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_max_spu_count </td>
<td>(</td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>count</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the number of SPUs.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before <a class="el" href="../../d4/de2/moc__init__spu_8c.html#ee36daffc6d5276cabe2b44afeb35ece">MOC_Init</a></dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>out</b> SPU-count </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>error-code </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../de/d0b/moc__get__max__spu__ppu_8c-source.html#l00004">4</a> of file <a class="el" href="../../de/d0b/moc__get__max__spu__ppu_8c-source.html">moc_get_max_spu_ppu.c</a>.</p>
<p>References <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00047">MOC_ERR_INTERN</a>.</p>
</div>
</div><p>
<a class="anchor" name="g4d96c98b95bd1a0f6ed8c1e5e6f6c873"></a><!-- doxytag: member="moc.h::MOC_Init" ref="g4d96c98b95bd1a0f6ed8c1e5e6f6c873" args="(unsigned long long argp, int length, void *buffer)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Init </td>
<td>(</td>
<td class="paramtype">unsigned long long&nbsp;</td>
<td class="paramname"> <em>argp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>buffer</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initialize the MPI execution environment.
<p>
<a class="anchor" name="moc_init_spu"></a><p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>SPU-only function</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>All processes must call this routine before executing any MOC-routine.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>argp</em>&nbsp;</td><td><b>in</b> Pointer to user-defined information in the main-memory </td></tr>
<tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td><b>in</b> Length of the user-defined information in bytes </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td><b>out</b> Buffer into which the user-defined information should be copied </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_NO_MEMORY</em>&nbsp;</td><td>Insufficient Memory. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_INTERN</em>&nbsp;</td><td>Internal Error </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g9a59090c9d03e89f019e8276d4013c72"></a><!-- doxytag: member="moc.h::MOC_Init" ref="g9a59090c9d03e89f019e8276d4013c72" args="(int *argc, char ***argv)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Init </td>
<td>(</td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ***&nbsp;</td>
<td class="paramname"> <em>argv</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initialize the MPI execution environment.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only function</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>All processes must call this routine before executing any MOC-routine.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td><b>in</b> Pointer to the number of arguments </td></tr>
<tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td><b>in</b> Pointer to the argument vector </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_NO_MEMORY</em>&nbsp;</td><td>Insufficient Memory. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_INTERN</em>&nbsp;</td><td>Internal Error </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g0ac2f7a8d9b93b8da0408a5307f0c925"></a><!-- doxytag: member="moc.h::MOC_Set_buffer_size" ref="g0ac2f7a8d9b93b8da0408a5307f0c925" args="(uint32_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Set_buffer_size </td>
<td>(</td>
<td class="paramtype">uint32_t&nbsp;</td>
<td class="paramname"> <em>size</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the size of the buffer used for buffered communication.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before <a class="el" href="../../d4/de2/moc__init__spu_8c.html#ee36daffc6d5276cabe2b44afeb35ece">MOC_Init</a></dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>buffer-size </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if success, otherwise error-code </dd></dl>
<p>Definition at line <a class="el" href="../../da/d1a/moc__set__buffer__size__ppu_8c-source.html#l00003">3</a> of file <a class="el" href="../../da/d1a/moc__set__buffer__size__ppu_8c-source.html">moc_set_buffer_size_ppu.c</a>.</p>
<p>References <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00111">moc_spu_buffer_size</a>.</p>
</div>
</div><p>
<a class="anchor" name="g3e83e7a629951e6788a682aad654baf8"></a><!-- doxytag: member="moc.h::MOC_Set_queue_size" ref="g3e83e7a629951e6788a682aad654baf8" args="(uint8_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Set_queue_size </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>size</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the size of the message-queues.
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>PPU-only</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Must be called before <a class="el" href="../../d4/de2/moc__init__spu_8c.html#ee36daffc6d5276cabe2b44afeb35ece">MOC_Init</a></dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>queue-size </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if success, otherwise error-code </dd></dl>
<p>Definition at line <a class="el" href="../../df/d1a/moc__set__queue__size__ppu_8c-source.html#l00003">3</a> of file <a class="el" href="../../df/d1a/moc__set__queue__size__ppu_8c-source.html">moc_set_queue_size_ppu.c</a>.</p>
<p>References <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00116">moc_spu_queue_size</a>.</p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:44 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@@ -0,0 +1,828 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): Error-Handling</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Error-Handling<br>
<small>
[<a class="el" href="../../de/d1b/group__environment__main.html">Environmental Management</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Error-Handling:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d8/da1/group__environment__error.png" border="0" alt="" usemap="#d1/dc5/d8_2da1_2group____environment____error_map">
<map name="d1/dc5/d8_2da1_2group____environment____error_map">
<area shape="rect" href="../../de/d1b/group__environment__main.html" title="This chapter discusses routines for getting and, where appropriate, setting various..." alt="" coords="5,5,187,32"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This section describes how errors are handled.
<p>
Every function should return an integer if possible. This integer should be MOC_SUCCESS if the operation teminated successfully otherwise an error-code telling the reason of the error is returned.<p>
Every function should return an integer if possible. This integer should be MOC_SUCCESS if the operation teminated successfully otherwise an error-code telling the reason of the error is returned.<p>
For more information see Chapter 7.2 of the MPI 1.3 Standard.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>MPI_ERROR-CLASSES</h2></td></tr>
<tr><td colspan="2">Error-classes defined by the MPI-standard.<p>
Every error-code returned by a MOC-function should belong to an error-class or be an error-class itself. This enables implementation-independend error-handling.<p>
Value-range: 0 = MOC_SUCCESS &lt; MOC_ERR_... &lt;= MOC_ERR_LASTCODE <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g8a73ed6676bcf0c0607d98482ca1aca4">MOC_SUCCESS</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">No error. <a href="#g8a73ed6676bcf0c0607d98482ca1aca4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gec3f466bf958e93fc3792674d00bfa06">MOC_ERR_BUFFER</a>&nbsp;&nbsp;&nbsp;1000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid buffer pointer. <a href="#gec3f466bf958e93fc3792674d00bfa06"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g5adca254d3feab57a4786c17b90d91c4">MOC_ERR_COUNT</a>&nbsp;&nbsp;&nbsp;2000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid count argument. <a href="#g5adca254d3feab57a4786c17b90d91c4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#ge1052e542cdd8d265d99d2950936ba8e">MOC_ERR_TYPE</a>&nbsp;&nbsp;&nbsp;3000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid datatype argument. <a href="#ge1052e542cdd8d265d99d2950936ba8e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g4dda6446879941989962c0fbdf4ba0e5">MOC_ERR_TAG</a>&nbsp;&nbsp;&nbsp;4000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid tag argument. <a href="#g4dda6446879941989962c0fbdf4ba0e5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gc1e776c0e7cb8c97391dd6ac476295a1">MOC_ERR_COMM</a>&nbsp;&nbsp;&nbsp;5000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid communicator. <a href="#gc1e776c0e7cb8c97391dd6ac476295a1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g88202a7ec7634ce5634b0ead0368c802">MOC_ERR_RANK</a>&nbsp;&nbsp;&nbsp;6000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid rank. <a href="#g88202a7ec7634ce5634b0ead0368c802"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g0f3215c59df79197899fc28f7e9499c8">MOC_ERR_REQUEST</a>&nbsp;&nbsp;&nbsp;7000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid request (handle). <a href="#g0f3215c59df79197899fc28f7e9499c8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g5ea365a8f03f9c490adb267ae677157c">MOC_ERR_ROOT</a>&nbsp;&nbsp;&nbsp;8000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid root. <a href="#g5ea365a8f03f9c490adb267ae677157c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g9dadfbad2e34895bfe793e87ef476807">MOC_ERR_GROUP</a>&nbsp;&nbsp;&nbsp;9000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid group. <a href="#g9dadfbad2e34895bfe793e87ef476807"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g37e46a78874b2078225de0260f4666a8">MOC_ERR_OP</a>&nbsp;&nbsp;&nbsp;10000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid operation. <a href="#g37e46a78874b2078225de0260f4666a8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g36581c314c20ec3f8286a61784b41bd9">MOC_ERR_TOPOLOGY</a>&nbsp;&nbsp;&nbsp;11000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid topology. <a href="#g36581c314c20ec3f8286a61784b41bd9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g91dd648378f64ca3dff7af4750c79608">MOC_ERR_DIMS</a>&nbsp;&nbsp;&nbsp;12000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid dimension argument. <a href="#g91dd648378f64ca3dff7af4750c79608"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g734aa5985b6d809690f10979ff44785c">MOC_ERR_ARG</a>&nbsp;&nbsp;&nbsp;13000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid argument of some other kind. <a href="#g734aa5985b6d809690f10979ff44785c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#ge00d9070a65099e436eb470ecb45ce35">MOC_ERR_UNKNOWN</a>&nbsp;&nbsp;&nbsp;14000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unknown error. <a href="#ge00d9070a65099e436eb470ecb45ce35"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g333d5841713c32c0ecf1cc85f0077744">MOC_ERR_TRUNCATE</a>&nbsp;&nbsp;&nbsp;15000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Message truncated on receive. <a href="#g333d5841713c32c0ecf1cc85f0077744"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gf1353d5719f5e14d8d89d72801e40144">MOC_ERR_OTHER</a>&nbsp;&nbsp;&nbsp;16000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Known error not in this list. <a href="#gf1353d5719f5e14d8d89d72801e40144"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g05b3a70831c823a59014c4853a76ca7e">MOC_ERR_INTERN</a>&nbsp;&nbsp;&nbsp;17000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal MOC (implementation) error. <a href="#g05b3a70831c823a59014c4853a76ca7e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g941c5327e6430023994f32d25584059e">MOC_ERR_IN_STATUS</a>&nbsp;&nbsp;&nbsp;18000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Error code is in status. <a href="#g941c5327e6430023994f32d25584059e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g878ba1491199d12b999e1cb24020ddba">MOC_ERR_PENDING</a>&nbsp;&nbsp;&nbsp;19000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pending request. <a href="#g878ba1491199d12b999e1cb24020ddba"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gf902162b08ca55cd57455ee66e8e73d7">MOC_ERR_LASTCODE</a>&nbsp;&nbsp;&nbsp;20000</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Last error code. <a href="#gf902162b08ca55cd57455ee66e8e73d7"></a><br></td></tr>
<tr><td colspan="2"><br><h2>MOC-Error-Codes</h2></td></tr>
<tr><td colspan="2">Implementation dependent Error-Codes. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gb5f8a2dbcd2a4b257dcedd8f08ab6367">MOC_ERR_NOT_IMPLEMENTED</a>&nbsp;&nbsp;&nbsp;17001</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function not implemented. <a href="#gb5f8a2dbcd2a4b257dcedd8f08ab6367"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gb41314dc085e915eab769ff2a2958061">MOC_ERR_BUFFER_OVERFLOW</a>&nbsp;&nbsp;&nbsp;17002</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal Buffer Overflow. <a href="#gb41314dc085e915eab769ff2a2958061"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gfd59894aba31d32eeff506d8df838089">MOC_ERR_NO_MEMORY</a>&nbsp;&nbsp;&nbsp;17003</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Insufficient Memory. <a href="#gfd59894aba31d32eeff506d8df838089"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#gb3b13f443f9a869ef4200334eb8792d0">MOC_ERR_NO_BUFFER</a>&nbsp;&nbsp;&nbsp;17004</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Insufficient Buffer-Space. <a href="#gb3b13f443f9a869ef4200334eb8792d0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g5a536510d86dbad4f4bacf1dc3f08c47">MOC_ERR_MESSAGE_EXHAUSTED</a>&nbsp;&nbsp;&nbsp;17005</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">No further messages possible. <a href="#g5a536510d86dbad4f4bacf1dc3f08c47"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g8dd6c4666118378bdd3cb6cfeaeea5b1">MOC_ERR_BAD_ALIGNMENT</a>&nbsp;&nbsp;&nbsp;16001</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Base-Adress of Buffer isn't 16-byte aligned. <a href="#g8dd6c4666118378bdd3cb6cfeaeea5b1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g9200eb7b0bf9f5605bc92943fee2cbdd">MOC_ERR_BAD_SIZE</a>&nbsp;&nbsp;&nbsp;16002</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bad Size (probably no multiple of 16). <a href="#g9200eb7b0bf9f5605bc92943fee2cbdd"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g4f071cd9d3fc73bd6e4542a9abbb1610">MOC_MAX_ERROR_STRING</a>&nbsp;&nbsp;&nbsp;255</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximal length of error-text. <a href="#g4f071cd9d3fc73bd6e4542a9abbb1610"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#ge79331149c12155246d206d5bb7a7729">MOC_Error_string</a> (int errorcode, char *string, int *resultlen)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an error-text for a given error code. <a href="#ge79331149c12155246d206d5bb7a7729"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html#g46d1823f8eb05511d5b98ecdeafa33b2">MOC_Error_class</a> (int errorcode, int *errorclass)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts an error code into an error class. <a href="#g46d1823f8eb05511d5b98ecdeafa33b2"></a><br></td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g734aa5985b6d809690f10979ff44785c"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_ARG" ref="g734aa5985b6d809690f10979ff44785c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_ARG&nbsp;&nbsp;&nbsp;13000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid argument of some other kind.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00043">43</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../d8/d02/moc__error__class_8c-source.html#l00007">MOC_Error_class()</a>, <a class="el" href="../../d3/d68/moc__error__string__ppu_8c-source.html#l00068">MOC_Error_string()</a>, <a class="el" href="../../d1/ddf/moc__get__count_8c-source.html#l00003">MOC_Get_count()</a>, and <a class="el" href="../../d3/d88/moc__get__version_8c-source.html#l00003">MOC_Get_version()</a>.</p>
</div>
</div><p>
<a class="anchor" name="g8dd6c4666118378bdd3cb6cfeaeea5b1"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_BAD_ALIGNMENT" ref="g8dd6c4666118378bdd3cb6cfeaeea5b1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_BAD_ALIGNMENT&nbsp;&nbsp;&nbsp;16001 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Base-Adress of Buffer isn't 16-byte aligned.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00066">66</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../dd/d90/moc__dma-get__ppu_8c-source.html#l00009">MOC_Get_data()</a>, <a class="el" href="../../d8/da3/moc__dma-iget__ppu_8c-source.html#l00011">MOC_IGet_data()</a>, <a class="el" href="../../dd/dd5/moc__dma-iput__ppu_8c-source.html#l00011">MOC_IPut_data()</a>, and <a class="el" href="../../da/d4a/moc__dma-put__ppu_8c-source.html#l00009">MOC_Put_data()</a>.</p>
</div>
</div><p>
<a class="anchor" name="g9200eb7b0bf9f5605bc92943fee2cbdd"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_BAD_SIZE" ref="g9200eb7b0bf9f5605bc92943fee2cbdd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_BAD_SIZE&nbsp;&nbsp;&nbsp;16002 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Bad Size (probably no multiple of 16).
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00067">67</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../dd/dd5/moc__dma-iput__ppu_8c-source.html#l00011">MOC_IPut_data()</a>, and <a class="el" href="../../da/d4a/moc__dma-put__ppu_8c-source.html#l00009">MOC_Put_data()</a>.</p>
</div>
</div><p>
<a class="anchor" name="gec3f466bf958e93fc3792674d00bfa06"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_BUFFER" ref="gec3f466bf958e93fc3792674d00bfa06" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_BUFFER&nbsp;&nbsp;&nbsp;1000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid buffer pointer.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00031">31</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="gb41314dc085e915eab769ff2a2958061"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_BUFFER_OVERFLOW" ref="gb41314dc085e915eab769ff2a2958061" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_BUFFER_OVERFLOW&nbsp;&nbsp;&nbsp;17002 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Internal Buffer Overflow.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00062">62</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../dd/db2/moc__add__spu__thread__ppu_8c-source.html#l00011">MOC_Add_spu_thread()</a>.</p>
</div>
</div><p>
<a class="anchor" name="gc1e776c0e7cb8c97391dd6ac476295a1"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_COMM" ref="gc1e776c0e7cb8c97391dd6ac476295a1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_COMM&nbsp;&nbsp;&nbsp;5000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid communicator.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00035">35</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../d9/dd3/moc__comm__rank_8c-source.html#l00008">MOC_Comm_rank()</a>, and <a class="el" href="../../d8/d65/moc__comm__size_8c-source.html#l00008">MOC_Comm_size()</a>.</p>
</div>
</div><p>
<a class="anchor" name="g5adca254d3feab57a4786c17b90d91c4"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_COUNT" ref="g5adca254d3feab57a4786c17b90d91c4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_COUNT&nbsp;&nbsp;&nbsp;2000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid count argument.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00032">32</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g91dd648378f64ca3dff7af4750c79608"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_DIMS" ref="g91dd648378f64ca3dff7af4750c79608" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_DIMS&nbsp;&nbsp;&nbsp;12000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid dimension argument.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00042">42</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g9dadfbad2e34895bfe793e87ef476807"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_GROUP" ref="g9dadfbad2e34895bfe793e87ef476807" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_GROUP&nbsp;&nbsp;&nbsp;9000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid group.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00039">39</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g941c5327e6430023994f32d25584059e"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_IN_STATUS" ref="g941c5327e6430023994f32d25584059e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_IN_STATUS&nbsp;&nbsp;&nbsp;18000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Error code is in status.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00048">48</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g05b3a70831c823a59014c4853a76ca7e"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_INTERN" ref="g05b3a70831c823a59014c4853a76ca7e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_INTERN&nbsp;&nbsp;&nbsp;17000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Internal MOC (implementation) error.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00047">47</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../d7/df2/imoc__dma-get__ppu_8c-source.html#l00009">IMOC_get_data()</a>, <a class="el" href="../../d6/df6/imoc__dma-iget__ppu_8c-source.html#l00010">IMOC_iget_data()</a>, <a class="el" href="../../dd/d07/imoc__dma-iput__ppu_8c-source.html#l00019">IMOC_iput_data()</a>, <a class="el" href="../../db/db1/imoc__dma-put__ppu_8c-source.html#l00009">IMOC_put_data()</a>, <a class="el" href="../../d2/df9/imoc__dma-test__ppu_8c-source.html#l00009">IMOC_test_dma()</a>, <a class="el" href="../../d8/da5/imoc__dma-wait__ppu_8c-source.html#l00009">IMOC_wait_dma()</a>, <a class="el" href="../../dd/db2/moc__add__spu__thread__ppu_8c-source.html#l00011">MOC_Add_spu_thread()</a>, <a class="el" href="../../dc/d5d/moc__barrier__ppu_8c-source.html#l00011">MOC_Barrier()</a>, <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>, <a class="el" href="../../d1/d67/moc__finalize__ppu_8c-source.html#l00011">MOC_Finalize()</a>, <a class="el" href="../../d3/dfa/moc__get__avail__spu__ppu_8c-source.html#l00004">MOC_Get_avail_spu_count()</a>, <a class="el" href="../../de/d0b/moc__get__max__spu__ppu_8c-source.html#l00004">MOC_Get_max_spu_count()</a>, <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, <a class="el" href="../../d8/dbc/moc__recv__ppu_8c-source.html#l00011">MOC_Recv()</a>, <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>, <a class="el" href="../../d0/d43/imoc__dma-tags__ppu_8c-source.html#l00032">moc_tag_release()</a>, and <a class="el" href="../../d0/d43/imoc__dma-tags__ppu_8c-source.html#l00014">moc_tag_reserve()</a>.</p>
</div>
</div><p>
<a class="anchor" name="gf902162b08ca55cd57455ee66e8e73d7"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_LASTCODE" ref="gf902162b08ca55cd57455ee66e8e73d7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_LASTCODE&nbsp;&nbsp;&nbsp;20000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Last error code.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00050">50</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../d8/d02/moc__error__class_8c-source.html#l00007">MOC_Error_class()</a>, and <a class="el" href="../../d3/d68/moc__error__string__ppu_8c-source.html#l00068">MOC_Error_string()</a>.</p>
</div>
</div><p>
<a class="anchor" name="g5a536510d86dbad4f4bacf1dc3f08c47"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_MESSAGE_EXHAUSTED" ref="g5a536510d86dbad4f4bacf1dc3f08c47" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_MESSAGE_EXHAUSTED&nbsp;&nbsp;&nbsp;17005 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
No further messages possible.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00065">65</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../d1/d2a/imoc__get__free__entry_8c-source.html#l00009">IMOC_getFreeEntry()</a>, and <a class="el" href="../../dd/d18/imoc__get__free__mid_8c-source.html#l00009">IMOC_getFreeMID()</a>.</p>
</div>
</div><p>
<a class="anchor" name="gb3b13f443f9a869ef4200334eb8792d0"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_NO_BUFFER" ref="gb3b13f443f9a869ef4200334eb8792d0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_NO_BUFFER&nbsp;&nbsp;&nbsp;17004 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Insufficient Buffer-Space.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00064">64</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">MOC_Bsend()</a>.</p>
</div>
</div><p>
<a class="anchor" name="gfd59894aba31d32eeff506d8df838089"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_NO_MEMORY" ref="gfd59894aba31d32eeff506d8df838089" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_NO_MEMORY&nbsp;&nbsp;&nbsp;17003 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Insufficient Memory.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00063">63</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">MOC_Init()</a>.</p>
</div>
</div><p>
<a class="anchor" name="gb5f8a2dbcd2a4b257dcedd8f08ab6367"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_NOT_IMPLEMENTED" ref="gb5f8a2dbcd2a4b257dcedd8f08ab6367" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_NOT_IMPLEMENTED&nbsp;&nbsp;&nbsp;17001 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Function not implemented.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00061">61</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g37e46a78874b2078225de0260f4666a8"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_OP" ref="g37e46a78874b2078225de0260f4666a8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_OP&nbsp;&nbsp;&nbsp;10000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid operation.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00040">40</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="gf1353d5719f5e14d8d89d72801e40144"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_OTHER" ref="gf1353d5719f5e14d8d89d72801e40144" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_OTHER&nbsp;&nbsp;&nbsp;16000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Known error not in this list.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00046">46</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g878ba1491199d12b999e1cb24020ddba"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_PENDING" ref="g878ba1491199d12b999e1cb24020ddba" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_PENDING&nbsp;&nbsp;&nbsp;19000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Pending request.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00049">49</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g88202a7ec7634ce5634b0ead0368c802"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_RANK" ref="g88202a7ec7634ce5634b0ead0368c802" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_RANK&nbsp;&nbsp;&nbsp;6000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid rank.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00036">36</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g0f3215c59df79197899fc28f7e9499c8"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_REQUEST" ref="g0f3215c59df79197899fc28f7e9499c8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_REQUEST&nbsp;&nbsp;&nbsp;7000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid request (handle).
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00037">37</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../d7/d24/moc__test_8c-source.html#l00013">MOC_Test()</a>, and <a class="el" href="../../de/d33/moc__wait_8c-source.html#l00011">MOC_Wait()</a>.</p>
</div>
</div><p>
<a class="anchor" name="g5ea365a8f03f9c490adb267ae677157c"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_ROOT" ref="g5ea365a8f03f9c490adb267ae677157c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_ROOT&nbsp;&nbsp;&nbsp;8000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid root.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00038">38</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g4dda6446879941989962c0fbdf4ba0e5"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_TAG" ref="g4dda6446879941989962c0fbdf4ba0e5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_TAG&nbsp;&nbsp;&nbsp;4000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid tag argument.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00034">34</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g36581c314c20ec3f8286a61784b41bd9"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_TOPOLOGY" ref="g36581c314c20ec3f8286a61784b41bd9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_TOPOLOGY&nbsp;&nbsp;&nbsp;11000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid topology.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00041">41</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g333d5841713c32c0ecf1cc85f0077744"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_TRUNCATE" ref="g333d5841713c32c0ecf1cc85f0077744" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_TRUNCATE&nbsp;&nbsp;&nbsp;15000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Message truncated on receive.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00045">45</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="ge1052e542cdd8d265d99d2950936ba8e"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_TYPE" ref="ge1052e542cdd8d265d99d2950936ba8e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_TYPE&nbsp;&nbsp;&nbsp;3000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Invalid datatype argument.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00033">33</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../d8/dbc/moc__recv__ppu_8c-source.html#l00011">MOC_Recv()</a>.</p>
</div>
</div><p>
<a class="anchor" name="ge00d9070a65099e436eb470ecb45ce35"></a><!-- doxytag: member="moc_error_codes.h::MOC_ERR_UNKNOWN" ref="ge00d9070a65099e436eb470ecb45ce35" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_ERR_UNKNOWN&nbsp;&nbsp;&nbsp;14000 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Unknown error.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00044">44</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g4f071cd9d3fc73bd6e4542a9abbb1610"></a><!-- doxytag: member="moc.h::MOC_MAX_ERROR_STRING" ref="g4f071cd9d3fc73bd6e4542a9abbb1610" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_MAX_ERROR_STRING&nbsp;&nbsp;&nbsp;255 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Maximal length of error-text.
<p>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00101">101</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>.</p>
</div>
</div><p>
<a class="anchor" name="g8a73ed6676bcf0c0607d98482ca1aca4"></a><!-- doxytag: member="moc_error_codes.h::MOC_SUCCESS" ref="g8a73ed6676bcf0c0607d98482ca1aca4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_SUCCESS&nbsp;&nbsp;&nbsp;0 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
No error.
<p>
<p>Definition at line <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00030">30</a> of file <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html">moc_error_codes.h</a>.</p>
<p>Referenced by <a class="el" href="../../d7/df2/imoc__dma-get__ppu_8c-source.html#l00009">IMOC_get_data()</a>, <a class="el" href="../../d6/df6/imoc__dma-iget__ppu_8c-source.html#l00010">IMOC_iget_data()</a>, <a class="el" href="../../dd/d07/imoc__dma-iput__ppu_8c-source.html#l00019">IMOC_iput_data()</a>, <a class="el" href="../../db/db1/imoc__dma-put__ppu_8c-source.html#l00009">IMOC_put_data()</a>, <a class="el" href="../../d2/df9/imoc__dma-test__ppu_8c-source.html#l00009">IMOC_test_dma()</a>, <a class="el" href="../../d8/da5/imoc__dma-wait__ppu_8c-source.html#l00009">IMOC_wait_dma()</a>, <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</a>, <a class="el" href="../../d4/db6/moc__ssend__ppu_8c-source.html#l00010">MOC_Ssend()</a>, and <a class="el" href="../../d0/d43/imoc__dma-tags__ppu_8c-source.html#l00032">moc_tag_release()</a>.</p>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g46d1823f8eb05511d5b98ecdeafa33b2"></a><!-- doxytag: member="moc.h::MOC_Error_class" ref="g46d1823f8eb05511d5b98ecdeafa33b2" args="(int errorcode, int *errorclass)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Error_class </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>errorcode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>errorclass</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Converts an error code into an error class.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>errorcode</em>&nbsp;</td><td><b>in</b> Error code returned by an MPI routine </td></tr>
<tr><td valign="top"></td><td valign="top"><em>errorclass</em>&nbsp;</td><td><b>out</b> Error class associated with errorcode </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_COMM</em>&nbsp;</td><td>Invalid argument. Most likely an error-code out of range. </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../d8/d02/moc__error__class_8c-source.html#l00007">7</a> of file <a class="el" href="../../d8/d02/moc__error__class_8c-source.html">moc_error_class.c</a>.</p>
<p>References <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00043">MOC_ERR_ARG</a>, and <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00050">MOC_ERR_LASTCODE</a>.</p>
</div>
</div><p>
<a class="anchor" name="ge79331149c12155246d206d5bb7a7729"></a><!-- doxytag: member="moc.h::MOC_Error_string" ref="ge79331149c12155246d206d5bb7a7729" args="(int errorcode, char *string, int *resultlen)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Error_string </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>errorcode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>resultlen</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns an error-text for a given error code.
<p>
The error-text is already terminated by '\0'.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>errorcode</em>&nbsp;</td><td><b>in</b> Error code returned by an MPI routine </td></tr>
<tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td><b>out</b> Text that corresponds to the errorcode </td></tr>
<tr><td valign="top"></td><td valign="top"><em>resultlen</em>&nbsp;</td><td><b>out</b> Length of string </td></tr>
</table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em>&nbsp;</td><td>No error; MPI routine completed successfully. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>MOC_ERR_ARG</em>&nbsp;</td><td>Invalid argument. Most likely an error-code out of range. </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../d3/d68/moc__error__string__ppu_8c-source.html#l00068">68</a> of file <a class="el" href="../../d3/d68/moc__error__string__ppu_8c-source.html">moc_error_string_ppu.c</a>.</p>
<p>References <a class="el" href="../../d3/d68/moc__error__string__ppu_8c-source.html#l00062">ERROR_STRINGS_COUNT</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00043">MOC_ERR_ARG</a>, and <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00050">MOC_ERR_LASTCODE</a>.</p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:45 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -0,0 +1,55 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/ppu/dma/moc_dma-iget_ppu.c Source File</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>src/ppu/dma/moc_dma-iget_ppu.c</h1><a href="../../d3/dc6/moc__dma-iget__ppu_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;malloc_align.h&gt;</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00003"></a>00003
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>&gt;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;<a class="code" href="../../db/d62/moc__dma__ppu_8h.html">ppu/moc_dma_ppu.h</a>&gt;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;<a class="code" href="../../d9/db3/imoc_8h.html">internal/imoc.h</a>&gt;</span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;<a class="code" href="../../d8/d98/imoc__macros__ppu_8h.html">internal/ppu/imoc_macros_ppu.h</a>&gt;</span>
<a name="l00008"></a>00008 <span class="preprocessor">#include &lt;<a class="code" href="../../de/df9/imoc__dma__ppu_8h.html">internal/ppu/imoc_dma_ppu.h</a>&gt;</span>
<a name="l00009"></a>00009 <span class="preprocessor">#include &lt;<a class="code" href="../../d6/d09/imoc__core__ppu_8h.html">internal/ppu/imoc_core_ppu.h</a>&gt;</span>
<a name="l00010"></a>00010
<a name="l00011"></a><a class="code" href="../../d9/d16/group__dma__access.html#g08f0af30f2e0e6840ec2be5ca93fd14f">00011</a> <span class="keywordtype">int</span> <a class="code" href="../../d9/d16/group__dma__access.html#g08f0af30f2e0e6840ec2be5ca93fd14f" title="Wrapper-function for a non-blocking DMA-get operation.">MOC_IGet_data</a>(<span class="keywordtype">void</span>* target, uint32_t source, <span class="keywordtype">int</span> count,
<a name="l00012"></a>00012 <a class="code" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a" title="Typedef defining MOC_Datatype.">MOC_Datatype</a> datatype, <span class="keywordtype">int</span> dest, <a class="code" href="../../db/d17/structmoc__request__struct.html" title="Communication-Request (Handle).">MOC_Request</a> *request)
<a name="l00013"></a>00013 {
<a name="l00014"></a>00014 <span class="keywordtype">int</span> bytecount;
<a name="l00015"></a>00015
<a name="l00016"></a>00016 <span class="keywordflow">if</span> (((datatype &amp; 0xF0) &gt;&gt; 4) == 0)
<a name="l00017"></a>00017 bytecount = count;
<a name="l00018"></a>00018 <span class="keywordflow">else</span>
<a name="l00019"></a>00019 bytecount = count * (((datatype &amp; 0xF0) &gt;&gt; 4) * 2);
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="keywordflow">if</span> (target == 0 || source == 0 || bytecount == 0)
<a name="l00022"></a>00022 <span class="keywordflow">return</span> 0;
<a name="l00023"></a>00023 <span class="keywordflow">if</span> ((((uint64_t) target) % 16) != 0 || (source % 16) != 0)
<a name="l00024"></a>00024 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g8dd6c4666118378bdd3cb6cfeaeea5b1" title="Base-Adress of Buffer isn&amp;#39;t 16-byte aligned.">MOC_ERR_BAD_ALIGNMENT</a>;
<a name="l00025"></a>00025 <a class="code" href="../../d3/d32/group__internal__tm.html#g8026463e106a01cc8efb816d7dc1036a" title="Tests if invalid byte-count in a recv-operation.">IMOC_TEST_BYTECOUNT</a>(bytecount)
<a name="l00026"></a>00026 <a class="code" href="../../d3/d32/group__internal__tm.html#g1dfddaa8f7d9aad32b00248c7dc782d2" title="Tests if invalid rank.">IMOC_TEST_RANK</a>(dest)
<a name="l00027"></a>00027
<a name="l00028"></a>00028 request-&gt;<a class="code" href="../../db/d17/structmoc__request__struct.html#56ab14d3df6e8c232e66aec78be949f3">request_type</a> = <a class="code" href="../../d7/d41/group__internal__p2p__imm.html#gb4f3aa7dbf7ddfbc4a612fda560ec03b" title="MOC_Request is associated with a DMA-Communication.">MOC_REQ_TYPE_DMA</a>;
<a name="l00029"></a>00029
<a name="l00030"></a>00030 <span class="keywordflow">return</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#g0c76eeaa08ac299e19dc2758d4142cd9" title="Internal wrapper-function for a non-blocking DMA-get operation.">IMOC_iget_data</a>(target, source, bytecount, dest,
<a name="l00031"></a>00031 &amp;request-&gt;<a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#b2b561710b814f4804bce54568b67cfe">dma_data</a>);
<a name="l00032"></a>00032 }
<a name="l00033"></a>00033
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:47 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,48 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/ppu/internal/dma/imoc_dma-wait_ppu.c Source File</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>src/ppu/internal/dma/imoc_dma-wait_ppu.c</h1><a href="../../df/d8b/imoc__dma-wait__ppu_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;free_align.h&gt;</span>
<a name="l00004"></a>00004
<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>&gt;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;<a class="code" href="../../d6/d09/imoc__core__ppu_8h.html">internal/ppu/imoc_core_ppu.h</a>&gt;</span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;<a class="code" href="../../de/df9/imoc__dma__ppu_8h.html">internal/ppu/imoc_dma_ppu.h</a>&gt;</span>
<a name="l00008"></a>00008
<a name="l00009"></a><a class="code" href="../../d2/de2/group__internal__p2p__dma.html#g57b89667357146b299f32bd114e0e5ad">00009</a> <span class="keywordtype">int</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#g57b89667357146b299f32bd114e0e5ad" title="Waits till a IMOC_iget_data or IMOC_iput_data is completed.">IMOC_wait_dma</a>(<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a>* request)
<a name="l00010"></a>00010 {
<a name="l00011"></a>00011 uint32_t dmastatus;
<a name="l00012"></a>00012 <span class="keywordtype">int</span> err;
<a name="l00013"></a>00013 err = spe_mfcio_tag_status_read(<a class="code" href="../../dc/df1/group__internal__spu__thread.html#ga5b74732b1e31ec1674ea0e5ae465c4e" title="array of SPU-Threads.">moc_spu_thread_list</a>[request-&gt;<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#f81a1887a3f1aa7f965e1fb15e2220de">dest</a>
<a name="l00014"></a>00014 - <a class="code" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52" title="actual number of PPU-Threads.">moc_ppu_thread_count</a>].<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#61d6807e3bab9b37ef07b0543e33574e" title="SPE-Context.">speid</a>, 0, SPE_TAG_ALL, &amp;dmastatus);
<a name="l00015"></a>00015 <span class="keywordflow">if</span> (err)
<a name="l00016"></a>00016 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g05b3a70831c823a59014c4853a76ca7e" title="Internal MOC (implementation) error.">MOC_ERR_INTERN</a>;
<a name="l00017"></a>00017
<a name="l00018"></a>00018 <span class="keywordflow">if</span> (request-&gt;<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#e9940544a153813fd1284eaa8883a1f2">remainder</a> != 0) <span class="comment">// check if buffer was used and copy back data from there to target</span>
<a name="l00019"></a>00019 {
<a name="l00020"></a>00020 memcpy(request-&gt;<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#aab928f79935740e686706a1296b01a9">target</a> + request-&gt;<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#8322ab9ff0dbd0be788bf765f3e85e94">size</a>, request-&gt;<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#efdb405d93fc52fbe483551e3bbaafac">buffer</a>,
<a name="l00021"></a>00021 request-&gt;<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#e9940544a153813fd1284eaa8883a1f2">remainder</a>);
<a name="l00022"></a>00022 _free_align(request-&gt;<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#efdb405d93fc52fbe483551e3bbaafac">buffer</a>);
<a name="l00023"></a>00023 }
<a name="l00024"></a>00024 <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#gf465203c58c5a8066a7ef3ee91b15cec" title="Releases a reserved tag.">moc_tag_release</a>(request-&gt;<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#f81a1887a3f1aa7f965e1fb15e2220de">dest</a> - <a class="code" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52" title="actual number of PPU-Threads.">moc_ppu_thread_count</a>, request-&gt;<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#93345f8438f78d7a0309b4b0b0670476">tag_id</a>);
<a name="l00025"></a>00025 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g8a73ed6676bcf0c0607d98482ca1aca4" title="No error.">MOC_SUCCESS</a>;
<a name="l00026"></a>00026 }
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:47 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,102 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): Timers and Synchronization</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Timers and Synchronization<br>
<small>
[<a class="el" href="../../de/d1b/group__environment__main.html">Environmental Management</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Timers and Synchronization:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d8/da6/group__environment__timer.png" border="0" alt="" usemap="#d0/d16/d8_2da6_2group____environment____timer_map">
<map name="d0/d16/d8_2da6_2group____environment____timer_map">
<area shape="rect" href="../../de/d1b/group__environment__main.html" title="This chapter discusses routines for getting and, where appropriate, setting various..." alt="" coords="5,5,187,32"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Functions to measure time.
<p>
On the PPU gettimeofday from time.h is used. On the SPU either also gettimeofday or the spu-timer-library is used depending on the configuration during compilation of the MOC-library. When gettimeofday is used on the SPU the time is global in the MOC-environment with the disadvantage that the SPU-threads get their times from the PPU using DMA causing inaccuracy and delays.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da6/group__environment__timer.html#g415b17505f06a12f26c6aa735d00158f">MOC_Wtime</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a floating-point number of seconds, representing elapsed wall-clock time since some time in the past. <a href="#g415b17505f06a12f26c6aa735d00158f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da6/group__environment__timer.html#gc846a7a21aeafdc5e960e91cb7d602be">MOC_Wtick</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the resolution of Moc_Wtime in seconds. <a href="#gc846a7a21aeafdc5e960e91cb7d602be"></a><br></td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gc846a7a21aeafdc5e960e91cb7d602be"></a><!-- doxytag: member="moc.h::MOC_Wtick" ref="gc846a7a21aeafdc5e960e91cb7d602be" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double MOC_Wtick </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the resolution of Moc_Wtime in seconds.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>resolution in seconds. </dd></dl>
<p>Definition at line <a class="el" href="../../d8/d3b/moc__wtick__ppu_8c-source.html#l00006">6</a> of file <a class="el" href="../../d8/d3b/moc__wtick__ppu_8c-source.html">moc_wtick_ppu.c</a>.</p>
</div>
</div><p>
<a class="anchor" name="g415b17505f06a12f26c6aa735d00158f"></a><!-- doxytag: member="moc.h::MOC_Wtime" ref="g415b17505f06a12f26c6aa735d00158f" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double MOC_Wtime </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns a floating-point number of seconds, representing elapsed wall-clock time since some time in the past.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>wall-clock time in seconds. </dd></dl>
<p>Definition at line <a class="el" href="../../d5/de2/moc__wtime__ppu_8c-source.html#l00006">6</a> of file <a class="el" href="../../d5/de2/moc__wtime__ppu_8c-source.html">moc_wtime_ppu.c</a>.</p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:45 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

@@ -0,0 +1,50 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/spu/dma/moc_dma-put_spu.c Source File</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>src/spu/dma/moc_dma-put_spu.c</h1><a href="../../df/ddc/moc__dma-put__spu_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;spu_mfcio.h&gt;</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00003"></a>00003
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>&gt;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;<a class="code" href="../../d2/d42/imoc__macros_8h.html">internal/imoc_macros.h</a>&gt;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;<a class="code" href="../../d4/dce/imoc__dma__spu_8h.html">internal/spu/imoc_dma_spu.h</a>&gt;</span>
<a name="l00007"></a>00007
<a name="l00008"></a><a class="code" href="../../d9/d16/group__dma__access.html#g1baab78008563718380887026cf9444f">00008</a> <span class="keywordtype">int</span> <a class="code" href="../../d9/d16/group__dma__access.html#ge07f4b35da50be472772f9d3a426669e" title="Wrapper-function for a blocking DMA-put operation.">MOC_Put_data</a>(<span class="keywordtype">void</span>* source, uint64_t target, <span class="keywordtype">int</span> count,
<a name="l00009"></a>00009 <a class="code" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a" title="Typedef defining MOC_Datatype.">MOC_Datatype</a> datatype)
<a name="l00010"></a>00010 {
<a name="l00011"></a>00011 <span class="keywordtype">int</span> bytecount;
<a name="l00012"></a>00012
<a name="l00013"></a>00013 <span class="keywordflow">if</span> (((datatype &amp; 0xF0) &gt;&gt; 4) == 0)
<a name="l00014"></a>00014 bytecount = count;
<a name="l00015"></a>00015 <span class="keywordflow">else</span>
<a name="l00016"></a>00016 bytecount = count * (((datatype &amp; 0xF0) &gt;&gt; 4) * 2);
<a name="l00017"></a>00017
<a name="l00018"></a>00018 <span class="keywordflow">if</span> (target == 0 || source == 0 || bytecount == 0)
<a name="l00019"></a>00019 <span class="keywordflow">return</span> 0;
<a name="l00020"></a>00020 <span class="keywordflow">if</span> ((target % 16) != 0 || (((uint32_t) source) % 16) != 0)
<a name="l00021"></a>00021 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g8dd6c4666118378bdd3cb6cfeaeea5b1" title="Base-Adress of Buffer isn&amp;#39;t 16-byte aligned.">MOC_ERR_BAD_ALIGNMENT</a>;
<a name="l00022"></a>00022 <span class="keywordflow">if</span> ((bytecount % 16) != 0)
<a name="l00023"></a>00023 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g9200eb7b0bf9f5605bc92943fee2cbdd" title="Bad Size (probably no multiple of 16).">MOC_ERR_BAD_SIZE</a>;
<a name="l00024"></a>00024 <a class="code" href="../../d3/d32/group__internal__tm.html#g8026463e106a01cc8efb816d7dc1036a" title="Tests if invalid byte-count in a recv-operation.">IMOC_TEST_BYTECOUNT</a>(bytecount)
<a name="l00025"></a>00025
<a name="l00026"></a>00026 <span class="keywordflow">return</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#gb48c58191a7cf4d3e502d1c7a6c0ab9c" title="Internal wrapper-function for a blocking DMA-put operation.">IMOC_put_data</a>(source, target, bytecount);
<a name="l00027"></a>00027 }
<a name="l00028"></a>00028
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:47 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,140 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): src/ppu/communication/moc_recv_ppu.c Source File</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>src/ppu/communication/moc_recv_ppu.c</h1><a href="../../dc/db7/moc__recv__ppu_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00003"></a>00003
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>&gt;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;<a class="code" href="../../d8/de2/moc__datatype__ppu_8h.html">ppu/moc_datatype_ppu.h</a>&gt;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;<a class="code" href="../../d9/db3/imoc_8h.html">internal/imoc.h</a>&gt;</span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;<a class="code" href="../../d8/d98/imoc__macros__ppu_8h.html">internal/ppu/imoc_macros_ppu.h</a>&gt;</span>
<a name="l00008"></a>00008 <span class="preprocessor">#include &lt;<a class="code" href="../../de/df9/imoc__dma__ppu_8h.html">internal/ppu/imoc_dma_ppu.h</a>&gt;</span>
<a name="l00009"></a>00009 <span class="preprocessor">#include &lt;<a class="code" href="../../d6/d09/imoc__core__ppu_8h.html">internal/ppu/imoc_core_ppu.h</a>&gt;</span>
<a name="l00010"></a>00010
<a name="l00011"></a><a class="code" href="../../d0/d64/group__p2p__main.html#g30c532510cffd36acd1b9b0b3edb3832">00011</a> <span class="keywordtype">int</span> <a class="code" href="../../d0/d64/group__p2p__main.html#g30c532510cffd36acd1b9b0b3edb3832" title="Performs a blocking standard mode receive operation.">MOC_Recv</a>(<span class="keywordtype">void</span>* buf, <span class="keywordtype">int</span> count, <a class="code" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a" title="Typedef defining MOC_Datatype.">MOC_Datatype</a> datatype, <span class="keywordtype">int</span> source, <span class="keywordtype">int</span> tag,
<a name="l00012"></a>00012 <a class="code" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767" title="Communicator-Handle.">MOC_Comm</a> comm, <a class="code" href="../../dd/d7a/structMOC__Status__struct.html" title="Structure holding information about a received message.">MOC_Status</a> *status)
<a name="l00013"></a>00013 {
<a name="l00014"></a>00014
<a name="l00015"></a>00015 <a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html" title="Message-envelope structure.">moc_message_envelope_t</a>* sourceQueueEntry;
<a name="l00016"></a>00016 <a class="code" href="../../dd/df5/structmoc__message__status__struct.html" title="Message-status structure.">moc_message_status_t</a> sourceMessageStatus <a class="code" href="../../d3/dd3/group__internal__p2p__bmalloc.html#gad8750c7ba3d6da9c137c2c462d2c531" title="void bmalloc_print_nodes() { if (!bmalloc_first_node) printf(&amp;quot;No nodes in list\n&amp;quot;);...">__attribute__</a>((__aligned__(16)));
<a name="l00017"></a>00017 <span class="keywordtype">int</span> bytecount, err;
<a name="l00018"></a>00018
<a name="l00019"></a>00019 err = 0;
<a name="l00020"></a>00020 <span class="keywordflow">if</span> (((datatype &amp; 0xF0) &gt;&gt; 4) == 0)
<a name="l00021"></a>00021 bytecount = count;
<a name="l00022"></a>00022 <span class="keywordflow">else</span>
<a name="l00023"></a>00023 bytecount = count * (((datatype &amp; 0xF0) &gt;&gt; 4) * 2);
<a name="l00024"></a>00024
<a name="l00025"></a>00025 status-&gt;<a class="code" href="../../dd/d7a/structMOC__Status__struct.html#1a3fde58aca11d3b901c890916371661" title="message-source">MOC_SOURCE</a> = source;
<a name="l00026"></a>00026 status-&gt;<a class="code" href="../../dd/d7a/structMOC__Status__struct.html#872c34c85569926730eebe10e47af384" title="message-size in byte (internal-variable)">message_size</a> = bytecount;
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <a class="code" href="../../d3/d32/group__internal__tm.html#g615b65fb3c3ad16711686a178ac7d1c3" title="Tests if rank is MOC_PROC_NULL and returns with MOC_SUCCESS itself.">IMOC_TEST_PROC_NULL</a>(source)
<a name="l00029"></a>00029 <a class="code" href="../../d3/d32/group__internal__tm.html#gf902b6e1cbe077abf0f8d02a488fec8a" title="Tests if rank is own rank and returns with MOC_SUCCESS itself.">IMOC_TEST_PROC_SELF</a>(source)
<a name="l00030"></a>00030 <a class="code" href="../../d3/d32/group__internal__tm.html#g8026463e106a01cc8efb816d7dc1036a" title="Tests if invalid byte-count in a recv-operation.">IMOC_TEST_BYTECOUNT</a>(bytecount)
<a name="l00031"></a>00031 <span class="comment">// if there is no data, permit Null-Buffer-Pointer</span>
<a name="l00032"></a>00032 <span class="keywordflow">if</span> (bytecount != 0)
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 <a class="code" href="../../d3/d32/group__internal__tm.html#g52f61fd7f3253d10b740a9fc792052c6" title="Tests if invalid buffer-pointer.">IMOC_TEST_BUFFER</a>(buf)
<a name="l00035"></a>00035 }
<a name="l00036"></a>00036 <a class="code" href="../../d3/d32/group__internal__tm.html#g796b45379e44e6ad2d1895ac56d80d3c" title="Tests if invalid rank in a recv-operation.">IMOC_TEST_RANK_RECV</a>(source)
<a name="l00037"></a>00037 <a class="code" href="../../d3/d32/group__internal__tm.html#ge0070a22959ddde28816cc5676687b1d" title="Tests if invalid tag in a recv-operation.">IMOC_TEST_TAG_RECV</a>(tag)
<a name="l00038"></a>00038 <a class="code" href="../../d3/d32/group__internal__tm.html#g7e5044180aa40d4a5a41108f88559871" title="Tests if invalid communicator in a recv-operation.">IMOC_TEST_COMM_RECV</a>(comm)
<a name="l00039"></a>00039
<a name="l00040"></a>00040 <span class="comment">/*looking for data to receive*/</span>
<a name="l00041"></a>00041 sourceQueueEntry = NULL;
<a name="l00042"></a>00042 <span class="keywordflow">while</span> (sourceQueueEntry == NULL)
<a name="l00043"></a>00043 {
<a name="l00044"></a>00044 sourceQueueEntry = <a class="code" href="../../d8/d88/group__internal__p2p__main.html#g8980da77fa506e9a6d503c8c6eba68e2" title="Get the next valid message-envelope from &amp;quot;source&amp;quot; with specified &amp;quot;tag&amp;quot;...">IMOC_get_entry</a>(source, tag, comm, 0, status);
<a name="l00045"></a>00045 }
<a name="l00046"></a>00046 <span class="comment">/*set status MOC_TAG and mid*/</span>
<a name="l00047"></a>00047 status-&gt;<a class="code" href="../../dd/d7a/structMOC__Status__struct.html#ae670a7f91ed4d4326bfda4f17ee14f0" title="message-tag">MOC_TAG</a> = tag;
<a name="l00048"></a>00048 status-&gt;<a class="code" href="../../dd/d7a/structMOC__Status__struct.html#c84605b34d90e4fde486028fa8b00853" title="message-ID (internal-variable)">mid</a> = sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#8e4a31624fc7e1d66e972d570ba0207c" title="Message-ID.">id</a>;
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <span class="comment">/*check if datatype from send and recv is the same*/</span>
<a name="l00051"></a>00051 <span class="keywordflow">if</span> (sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#d378e074ce754a4db919128cede7dae3" title="Data-type of message-entries.">datatype</a> != datatype &amp;&amp; sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#d378e074ce754a4db919128cede7dae3" title="Data-type of message-entries.">datatype</a>
<a name="l00052"></a>00052 !=<a class="code" href="../../dc/d6e/group__p2p__datatype.html#g6462a2cd9ec6c0cb9445760ac396ec72" title="MOC_Byte is a special datatype.">MOC_BYTE</a> &amp;&amp; datatype != <a class="code" href="../../dc/d6e/group__p2p__datatype.html#g6462a2cd9ec6c0cb9445760ac396ec72" title="MOC_Byte is a special datatype.">MOC_BYTE</a>)
<a name="l00053"></a>00053 {
<a name="l00054"></a>00054 status-&gt;<a class="code" href="../../dd/d7a/structMOC__Status__struct.html#3d3497f7a93c00e6800da9500e52daf2" title="error-code">MOC_ERROR</a> = <a class="code" href="../../d8/da1/group__environment__error.html#ge1052e542cdd8d265d99d2950936ba8e" title="Invalid datatype argument.">MOC_ERR_TYPE</a>;
<a name="l00055"></a>00055 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#ge1052e542cdd8d265d99d2950936ba8e" title="Invalid datatype argument.">MOC_ERR_TYPE</a>;
<a name="l00056"></a>00056 }
<a name="l00057"></a>00057
<a name="l00058"></a>00058 <span class="comment">/*check if the data is in the envelope or if data has to be loaded with dma*/</span>
<a name="l00059"></a>00059 <span class="keywordflow">if</span> (sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.channel == <a class="code" href="../../dd/df8/group__internal__core.html#g1a3153033a1eaac0ddff04deac271947" title="Constant for moc_message_envelope_t.flags.channel.">IMOC_MESSAGE_CHANNEL_ENV</a>)
<a name="l00060"></a>00060 {
<a name="l00061"></a>00061 <span class="comment">/*get data from envelope*/</span>
<a name="l00062"></a>00062 memcpy(buf, (<span class="keywordtype">void</span>*) &amp;sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#1e4384284a652a24abc1cf65fc47d665" title="Effective address of message-data.">message_address</a>, (bytecount
<a name="l00063"></a>00063 &lt; sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#33c0974607df68bb2dcb47c8cad3a909" title="Message-size in byte.">size</a>) ? bytecount : sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#33c0974607df68bb2dcb47c8cad3a909" title="Message-size in byte.">size</a>);
<a name="l00064"></a>00064 }
<a name="l00065"></a>00065 <span class="keywordflow">else</span>
<a name="l00066"></a>00066 <span class="keywordflow">if</span> (sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.channel == <a class="code" href="../../dd/df8/group__internal__core.html#gda23ff5baabe186f8c37c0424598c7bc" title="Constant for moc_message_envelope_t.flags.channel.">IMOC_MESSAGE_CHANNEL_DMA</a>)
<a name="l00067"></a>00067 {
<a name="l00068"></a>00068 <span class="comment">/*lookup if data is in memory*/</span>
<a name="l00069"></a>00069 <span class="keywordflow">if</span> (sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.in_mm == 1)
<a name="l00070"></a>00070 <span class="comment">/*copy data from memory*/</span>
<a name="l00071"></a>00071 memcpy(buf, (<span class="keywordtype">void</span>*) sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#1e4384284a652a24abc1cf65fc47d665" title="Effective address of message-data.">message_address</a>,
<a name="l00072"></a>00072 bytecount);
<a name="l00073"></a>00073 <span class="keywordflow">else</span>
<a name="l00074"></a>00074 {
<a name="l00075"></a>00075 <span class="comment">/*get data via IMOC_get_data*/</span>
<a name="l00076"></a>00076 uint32_t lsa =
<a name="l00077"></a>00077 sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#1e4384284a652a24abc1cf65fc47d665" title="Effective address of message-data.">message_address</a>
<a name="l00078"></a>00078 - <a class="code" href="../../dc/df1/group__internal__spu__thread.html#ga5b74732b1e31ec1674ea0e5ae465c4e" title="array of SPU-Threads.">moc_spu_thread_list</a>[source
<a name="l00079"></a>00079 - <a class="code" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52" title="actual number of PPU-Threads.">moc_ppu_thread_count</a>].<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#a1af310737612cbf58480cbb172e33c4" title="Effective Basis-Address of SPU&amp;#39;s local-storage.">ls_base</a>;
<a name="l00080"></a>00080 <span class="keywordflow">if</span> (bytecount != 0)
<a name="l00081"></a>00081 {
<a name="l00082"></a>00082 <a class="code" href="../../d3/d32/group__internal__tm.html#gc89a1f53869fe90c838a714621e20d88" title="Tests if address is 16-byte aligned.">IMOC_TEST_ALIGNMENT</a>(buf)
<a name="l00083"></a>00083 }
<a name="l00084"></a>00084
<a name="l00085"></a>00085 err = <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#g53d36c567e4c98e5d258a7857096e7ab" title="Internal wrapper-function for a blocking DMA-get operation.">IMOC_get_data</a>(buf, lsa, bytecount, source);
<a name="l00086"></a>00086 <span class="keywordflow">if</span> (err)
<a name="l00087"></a>00087 {
<a name="l00088"></a>00088 <span class="keywordflow">return</span> err;
<a name="l00089"></a>00089 }
<a name="l00090"></a>00090 }
<a name="l00091"></a>00091 }
<a name="l00092"></a>00092 <span class="keywordflow">else</span>
<a name="l00093"></a>00093 {
<a name="l00094"></a>00094 <span class="comment">/*an error occourred*/</span>
<a name="l00095"></a>00095 status-&gt;<a class="code" href="../../dd/d7a/structMOC__Status__struct.html#3d3497f7a93c00e6800da9500e52daf2" title="error-code">MOC_ERROR</a> = <a class="code" href="../../d8/da1/group__environment__error.html#g05b3a70831c823a59014c4853a76ca7e" title="Internal MOC (implementation) error.">MOC_ERR_INTERN</a>;
<a name="l00096"></a>00096 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g05b3a70831c823a59014c4853a76ca7e" title="Internal MOC (implementation) error.">MOC_ERR_INTERN</a>;
<a name="l00097"></a>00097 }
<a name="l00098"></a>00098 <span class="comment">/* look if send needs answer*/</span>
<a name="l00099"></a>00099 <span class="keywordflow">if</span> (sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.signal_back == 1)
<a name="l00100"></a>00100 {
<a name="l00101"></a>00101 <span class="comment">/*set message status*/</span>
<a name="l00102"></a>00102 sourceMessageStatus.buffer_offset = 0;
<a name="l00103"></a>00103 sourceMessageStatus.flags.value = 0;
<a name="l00104"></a>00104 <span class="keywordflow">if</span> (sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.keep_valid)
<a name="l00105"></a>00105 sourceMessageStatus.flags.bits.valid = 1;
<a name="l00106"></a>00106
<a name="l00107"></a>00107 <span class="comment">/*send back message_status, because transfer-size is always 16-byte,</span>
<a name="l00108"></a>00108 <span class="comment"> * memcpy is fastest method */</span>
<a name="l00109"></a>00109 memcpy(
<a name="l00110"></a>00110 (<span class="keywordtype">void</span>*) <a class="code" href="../../df/ddf/group__internal__am.html#g55e4226e422d3dbf1a1ee6a871c09da7" title="Effective Address of remote status-array entry at node &amp;#39;rank&amp;#39;.">IMOC_EA_REMOTE_STATUS_ENTRY</a>(sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#8e4a31624fc7e1d66e972d570ba0207c" title="Message-ID.">id</a>,status-&gt;<a class="code" href="../../dd/d7a/structMOC__Status__struct.html#1a3fde58aca11d3b901c890916371661" title="message-source">MOC_SOURCE</a>),
<a name="l00111"></a>00111 &amp;sourceMessageStatus, <span class="keyword">sizeof</span>(<a class="code" href="../../dd/df5/structmoc__message__status__struct.html" title="Message-status structure.">moc_message_status_t</a>));
<a name="l00112"></a>00112 }
<a name="l00113"></a>00113
<a name="l00114"></a>00114 sourceQueueEntry-&gt;<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#e51379150ad496c8844a4b9b0096120b" title="union-value">value</a> = 0;
<a name="l00115"></a>00115
<a name="l00116"></a>00116 status-&gt;<a class="code" href="../../dd/d7a/structMOC__Status__struct.html#3d3497f7a93c00e6800da9500e52daf2" title="error-code">MOC_ERROR</a> = 0;
<a name="l00117"></a>00117 <span class="keywordflow">return</span> 0;
<a name="l00118"></a>00118 }
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:47 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
@@ -0,0 +1,49 @@
<area shape="rect" href="$d1/d82/moc_8h.html" title="include/moc.h" alt="" coords="5387,80,5488,107">
<area shape="rect" href="$d8/de2/moc__datatype__ppu_8h.html" title="include/ppu/moc_datatype_ppu.h" alt="" coords="2024,80,2235,107">
<area shape="rect" href="$d0/d1d/moc__datatype__spu_8h.html" title="include/spu/moc_datatype_spu.h" alt="" coords="9784,80,9995,107">
<area shape="rect" href="$d9/db3/imoc_8h.html" title="include/internal/imoc.h" alt="" coords="5745,229,5897,256">
<area shape="rect" href="$db/d62/moc__dma__ppu_8h.html" title="include/ppu/moc_dma_ppu.h" alt="" coords="1259,155,1445,181">
<area shape="rect" href="$db/dae/ppu_2moc_8h.html" title="include/ppu/moc.h" alt="" coords="3744,229,3872,256">
<area shape="rect" href="$de/df9/imoc__dma__ppu_8h.html" title="include/internal/ppu/imoc_dma_ppu.h" alt="" coords="1623,229,1857,256">
<area shape="rect" href="$d4/dce/imoc__dma__spu_8h.html" title="include/internal/spu/imoc_dma_spu.h" alt="" coords="9816,229,10051,256">
<area shape="rect" href="$dd/d9c/moc__dma__spu_8h.html" title="include/spu/moc_dma_spu.h" alt="" coords="9597,155,9784,181">
<area shape="rect" href="$d0/d3a/spu_2moc_8h.html" title="include/spu/moc.h" alt="" coords="5373,229,5501,256">
<area shape="rect" href="$d2/d97/moc__iprobe_8c.html" title="src/noarch/communication/moc_iprobe.c" alt="" coords="8456,304,8712,331">
<area shape="rect" href="$d3/dc2/moc__isend_8c.html" title="src/noarch/communication/moc_isend.c" alt="" coords="1485,304,1736,331">
<area shape="rect" href="$d1/d8a/moc__probe_8c.html" title="src/noarch/communication/moc_probe.c" alt="" coords="8736,304,8989,331">
<area shape="rect" href="$db/d55/moc__send_8c.html" title="src/noarch/communication/moc_send.c" alt="" coords="971,304,1219,331">
<area shape="rect" href="$d8/d02/moc__test_8c.html" title="src/noarch/communication/moc_test.c" alt="" coords="2280,304,2523,331">
<area shape="rect" href="$d4/dfc/moc__wait_8c.html" title="src/noarch/communication/moc_wait.c" alt="" coords="2547,304,2789,331">
<area shape="rect" href="$db/d33/imoc__get__entry_8c.html" title="src/noarch/internal/communication/imoc_get_entry.c" alt="" coords="4741,304,5064,331">
<area shape="rect" href="$df/d20/imoc__get__free__entry_8c.html" title="src/noarch/internal/communication/imoc_get_free_entry.c" alt="" coords="5088,304,5440,331">
<area shape="rect" href="$dd/d9a/imoc__get__free__mid_8c.html" title="src/noarch/internal/communication/imoc_get_free_mid.c" alt="" coords="5464,304,5808,331">
<area shape="rect" href="$db/d43/imoc__test__message_8c.html" title="src/noarch/internal/communication/imoc_test_message.c" alt="" coords="5832,304,6184,331">
<area shape="rect" href="$da/d91/imoc__wait__message_8c.html" title="src/noarch/internal/communication/imoc_wait_message.c" alt="" coords="6208,304,6560,331">
<area shape="rect" href="$d2/d7b/imoc__buffer__malloc_8c.html" title="src/noarch/internal/imoc_buffer_malloc.c" alt="" coords="9304,304,9557,331">
<area shape="rect" href="$d9/d19/moc__error__class_8c.html" title="src/noarch/system/moc_error_class.c" alt="" coords="6584,304,6824,331">
<area shape="rect" href="$d1/d72/moc__barrier__ppu_8c.html" title="src/ppu/communication/moc_barrier_ppu.c" alt="" coords="6848,304,7115,331">
<area shape="rect" href="$d9/d14/moc__bsend__ppu_8c.html" title="src/ppu/communication/moc_bsend_ppu.c" alt="" coords="2813,304,3080,331">
<area shape="rect" href="$dc/d02/moc__issend__ppu_8c.html" title="src/ppu/communication/moc_issend_ppu.c" alt="" coords="4448,304,4717,331">
<area shape="rect" href="$dc/db7/moc__recv__ppu_8c.html" title="src/ppu/communication/moc_recv_ppu.c" alt="" coords="2003,304,2256,331">
<area shape="rect" href="$d2/d00/moc__ssend__ppu_8c.html" title="src/ppu/communication/moc_ssend_ppu.c" alt="" coords="3104,304,3371,331">
<area shape="rect" href="$d3/dc6/moc__dma-iget__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iget_ppu.c" alt="" coords="1243,304,1461,331">
<area shape="rect" href="$d8/d06/moc__dma-iput__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iput_ppu.c" alt="" coords="1760,304,1979,331">
<area shape="rect" href="$df/dac/imoc__spe__thread__ppu_8c.html" title="src/ppu/internal/imoc_spe_thread_ppu.c" alt="" coords="3395,304,3645,331">
<area shape="rect" href="$dc/dd0/moc__add__spu__thread__ppu_8c.html" title="src/ppu/system/moc_add_spu_thread_ppu.c" alt="" coords="3669,304,3947,331">
<area shape="rect" href="$de/d4d/moc__error__string__ppu_8c.html" title="src/ppu/system/moc_error_string_ppu.c" alt="" coords="7139,304,7389,331">
<area shape="rect" href="$d3/d9e/moc__finalize__ppu_8c.html" title="src/ppu/system/moc_finalize_ppu.c" alt="" coords="3971,304,4197,331">
<area shape="rect" href="$d9/d04/moc__init__ppu_8c.html" title="src/ppu/system/moc_init_ppu.c" alt="" coords="4221,304,4424,331">
<area shape="rect" href="$dc/d59/moc__barrier__spu_8c.html" title="src/spu/communication/moc_barrier_spu.c" alt="" coords="7413,304,7680,331">
<area shape="rect" href="$d6/d8c/moc__bsend__spu_8c.html" title="src/spu/communication/moc_bsend_spu.c" alt="" coords="9013,304,9280,331">
<area shape="rect" href="$de/d76/moc__issend__spu_8c.html" title="src/spu/communication/moc_issend_spu.c" alt="" coords="10067,304,10336,331">
<area shape="rect" href="$d9/dab/moc__recv__spu_8c.html" title="src/spu/communication/moc_recv_spu.c" alt="" coords="10360,304,10613,331">
<area shape="rect" href="$d3/d71/moc__ssend__spu_8c.html" title="src/spu/communication/moc_ssend_spu.c" alt="" coords="10637,304,10904,331">
<area shape="rect" href="$da/dea/moc__dma-iget__spu_8c.html" title="src/spu/dma/moc_dma&#45;iget_spu.c" alt="" coords="9581,304,9800,331">
<area shape="rect" href="$dc/de8/moc__dma-iput__spu_8c.html" title="src/spu/dma/moc_dma&#45;iput_spu.c" alt="" coords="9824,304,10043,331">
<area shape="rect" href="$d9/d79/moc__error__string__spu_8c.html" title="src/spu/system/moc_error_string_spu.c" alt="" coords="7704,304,7955,331">
<area shape="rect" href="$d8/d2f/moc__finalize__spu_8c.html" title="src/spu/system/moc_finalize_spu.c" alt="" coords="7979,304,8205,331">
<area shape="rect" href="$d4/de2/moc__init__spu_8c.html" title="src/spu/system/moc_init_spu.c" alt="" coords="8229,304,8432,331">
<area shape="rect" href="$d7/d58/moc__dma-get__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;get_ppu.c" alt="" coords="491,304,707,331">
<area shape="rect" href="$d3/dfa/moc__dma-put__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;put_ppu.c" alt="" coords="731,304,947,331">
<area shape="rect" href="$d0/d04/moc__dma-test__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;test_ppu.c" alt="" coords="5,304,224,331">
<area shape="rect" href="$d6/de5/moc__dma-wait__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;wait_ppu.c" alt="" coords="248,304,467,331">
@@ -0,0 +1 @@
e208da3341bd6fd7b6b05b8589279626
Binary file not shown.

After

Width:  |  Height:  |  Size: 559 KiB

@@ -0,0 +1,266 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): include/doxygen_main.doxygen Source File</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>include/doxygen_main.doxygen</h1><a href="../../da/d41/doxygen__main_8doxygen.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef MOC_DOXYGEN_MAIN_H_</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define MOC_DOXYGEN_MAIN_H_</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">/**</span>
<a name="l00005"></a>00005 <span class="comment"> * \mainpage MPI On Cell</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> * The idea of this project is to implement a message passing</span>
<a name="l00008"></a>00008 <span class="comment"> * library for work on the Cell BE. The main idea behind such</span>
<a name="l00009"></a>00009 <span class="comment"> * an implementation would be to help the programmer by adding</span>
<a name="l00010"></a>00010 <span class="comment"> * an layer of abstraction between the very low level libraries</span>
<a name="l00011"></a>00011 <span class="comment"> * by IBM and give him the possibility to work with an interface</span>
<a name="l00012"></a>00012 <span class="comment"> * he is more familiar with. To achieve this we decided to try</span>
<a name="l00013"></a>00013 <span class="comment"> * to keep very closely to the standard provided by the Message</span>
<a name="l00014"></a>00014 <span class="comment"> * Passing Interface (MPI), so that programmers knowing how to</span>
<a name="l00015"></a>00015 <span class="comment"> * write MPI programmers can easily work with our library.</span>
<a name="l00016"></a>00016 <span class="comment"> * Because of the very special nature of the Cell, it might not</span>
<a name="l00017"></a>00017 <span class="comment"> * be possible to keep 100% true to the standard, but we try to</span>
<a name="l00018"></a>00018 <span class="comment"> * introduce changes only when absolutely necessary and of great</span>
<a name="l00019"></a>00019 <span class="comment"> * benefit, because of some specialties of the Cell's hardware.</span>
<a name="l00020"></a>00020 <span class="comment"> *</span>
<a name="l00021"></a>00021 <span class="comment"> *</span>
<a name="l00022"></a>00022 <span class="comment"> * \par Table of Content</span>
<a name="l00023"></a>00023 <span class="comment"> * \par</span>
<a name="l00024"></a>00024 <span class="comment"> * \ref end_user</span>
<a name="l00025"></a>00025 <span class="comment"> * \par</span>
<a name="l00026"></a>00026 <span class="comment"> * \subpage restrictions</span>
<a name="l00027"></a>00027 <span class="comment"> * \par</span>
<a name="l00028"></a>00028 <span class="comment"> * \subpage violations</span>
<a name="l00029"></a>00029 <span class="comment"> * \par</span>
<a name="l00030"></a>00030 <span class="comment"> * \subpage performance</span>
<a name="l00031"></a>00031 <span class="comment"> * \par</span>
<a name="l00032"></a>00032 <span class="comment"> * \subpage conclusion</span>
<a name="l00033"></a>00033 <span class="comment"> * \if full</span>
<a name="l00034"></a>00034 <span class="comment"> * \par</span>
<a name="l00035"></a>00035 <span class="comment"> * \par</span>
<a name="l00036"></a>00036 <span class="comment"> * \ref internal_main</span>
<a name="l00037"></a>00037 <span class="comment"> * \endif</span>
<a name="l00038"></a>00038 <span class="comment"> **/</span>
<a name="l00039"></a>00039
<a name="l00040"></a>00040 <span class="comment"></span>
<a name="l00041"></a>00041 <span class="comment">/**</span>
<a name="l00042"></a>00042 <span class="comment"> * \defgroup end_user End-User Documentation</span>
<a name="l00043"></a>00043 <span class="comment"> *</span>
<a name="l00044"></a>00044 <span class="comment"> * This section describes the public API provided by the MOC-library.</span>
<a name="l00045"></a>00045 <span class="comment"> *</span>
<a name="l00046"></a>00046 <span class="comment"> * If some things remain unclear, consult the official MPI-standard (Version 1.3).</span>
<a name="l00047"></a>00047 <span class="comment"> *</span>
<a name="l00048"></a>00048 <span class="comment"> * This library uses Direct Memory Access (DMA) provided by the Cell Broadband Engine.</span>
<a name="l00049"></a>00049 <span class="comment"> * So the use of other DMA operations than provided of this library is discouraged,</span>
<a name="l00050"></a>00050 <span class="comment"> * because it may interfere with this library. One exceptions are signals.</span>
<a name="l00051"></a>00051 <span class="comment"> * We don't use signals at all at the moment, so one can savely use signal.</span>
<a name="l00052"></a>00052 <span class="comment"> **/</span>
<a name="l00053"></a>00053
<a name="l00054"></a>00054 <span class="comment"></span>
<a name="l00055"></a>00055 <span class="comment">/**</span>
<a name="l00056"></a>00056 <span class="comment"> * \defgroup environment_main Environmental Management</span>
<a name="l00057"></a>00057 <span class="comment"> * \ingroup end_user</span>
<a name="l00058"></a>00058 <span class="comment"> *</span>
<a name="l00059"></a>00059 <span class="comment"> * This chapter discusses routines for getting and, where appropriate, setting various parameters</span>
<a name="l00060"></a>00060 <span class="comment"> * that relate to the MPI implementation and the execution environment (such as error handling,</span>
<a name="l00061"></a>00061 <span class="comment"> * startup&amp;shutdown and Time).</span>
<a name="l00062"></a>00062 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00063"></a>00063 <span class="comment">/**</span>
<a name="l00064"></a>00064 <span class="comment"> * \defgroup environment_startup Startup &amp; Shutdown</span>
<a name="l00065"></a>00065 <span class="comment"> * \ingroup environment_main</span>
<a name="l00066"></a>00066 <span class="comment"> *</span>
<a name="l00067"></a>00067 <span class="comment"> * Functions to start and terminate the MOC-execution environment.</span>
<a name="l00068"></a>00068 <span class="comment"> *</span>
<a name="l00069"></a>00069 <span class="comment"> * To be able to communicate with other processes every MOC-process needs to setup his</span>
<a name="l00070"></a>00070 <span class="comment"> * MOC-Environment before any MOC-function can be called (there are some exceptions though).</span>
<a name="l00071"></a>00071 <span class="comment"> *</span>
<a name="l00072"></a>00072 <span class="comment"> * The PPU-process has a special role, because he is the one who starts the SPU-processes.</span>
<a name="l00073"></a>00073 <span class="comment"> * SPU-processes can be added to the MOC-environment by calling \ref MOC_Add_spu_thread with</span>
<a name="l00074"></a>00074 <span class="comment"> * the appropriate SPU-thread-handle (This implementation only supports the embedded binary</span>
<a name="l00075"></a>00075 <span class="comment"> * concept where the SPU-binary is embedded into the PPU-binary and accessed via a handle).</span>
<a name="l00076"></a>00076 <span class="comment"> * The order of calling determines the rank of the SPU-processes. To get the number of total</span>
<a name="l00077"></a>00077 <span class="comment"> * and available SPUs the functions \ref MOC_Get_avail_spu_count and \ref MOC_Get_max_spu_count</span>
<a name="l00078"></a>00078 <span class="comment"> * can be used.</span>
<a name="l00079"></a>00079 <span class="comment"> *</span>
<a name="l00080"></a>00080 <span class="comment"> * The buffer-size and the size of the message-queues can be set before calling \ref MOC_Init</span>
<a name="l00081"></a>00081 <span class="comment"> * on the PPU using \ref MOC_Set_buffer_size and \ref MOC_Set_queue_size.</span>
<a name="l00082"></a>00082 <span class="comment"> *</span>
<a name="l00083"></a>00083 <span class="comment"> * MOC_Init only returns after all processes have called this function and have set up their</span>
<a name="l00084"></a>00084 <span class="comment"> * environment.</span>
<a name="l00085"></a>00085 <span class="comment"> *</span>
<a name="l00086"></a>00086 <span class="comment"> * If the MOC-environment isn't needed anymore, \ref MOC_Finalize should be called by all</span>
<a name="l00087"></a>00087 <span class="comment"> * MOC-processes. MOC_Finalize only returns after all MOC-processes have called this functions</span>
<a name="l00088"></a>00088 <span class="comment"> * and have shutdown their environments.</span>
<a name="l00089"></a>00089 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00090"></a>00090 <span class="comment">/**</span>
<a name="l00091"></a>00091 <span class="comment"> * \defgroup environment_information Implementation Information</span>
<a name="l00092"></a>00092 <span class="comment"> * \ingroup environment_main</span>
<a name="l00093"></a>00093 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00094"></a>00094 <span class="comment">/**</span>
<a name="l00095"></a>00095 <span class="comment"> * \defgroup environment_error Error-Handling</span>
<a name="l00096"></a>00096 <span class="comment"> * \ingroup environment_main</span>
<a name="l00097"></a>00097 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00098"></a>00098 <span class="comment">/**</span>
<a name="l00099"></a>00099 <span class="comment"> * \defgroup environment_timer Timers and Synchronization</span>
<a name="l00100"></a>00100 <span class="comment"> * \ingroup environment_main</span>
<a name="l00101"></a>00101 <span class="comment"> **/</span>
<a name="l00102"></a>00102 <span class="comment"></span>
<a name="l00103"></a>00103 <span class="comment">/**</span>
<a name="l00104"></a>00104 <span class="comment"> * \defgroup p2p_main Point-to-Point Communication</span>
<a name="l00105"></a>00105 <span class="comment"> * \ingroup end_user</span>
<a name="l00106"></a>00106 <span class="comment"> *</span>
<a name="l00107"></a>00107 <span class="comment"> * Sending and receiving of messages by processes is the basic MPI communication mechanism.</span>
<a name="l00108"></a>00108 <span class="comment"> * The basic point-to-point communication operations are send and receive.</span>
<a name="l00109"></a>00109 <span class="comment"> *</span>
<a name="l00110"></a>00110 <span class="comment"> * \ref MOC_Send uses either buffered or synchronous send depending on the message-size</span>
<a name="l00111"></a>00111 <span class="comment"> * (Short messages are transmitted using buffered send and long messages are transmitted using</span>
<a name="l00112"></a>00112 <span class="comment"> * synchronous send).</span>
<a name="l00113"></a>00113 <span class="comment"> *</span>
<a name="l00114"></a>00114 <span class="comment"> * \ref MOC_Recv receives all messages irrespective wether buffered or synchronous</span>
<a name="l00115"></a>00115 <span class="comment"> * communication is used.</span>
<a name="l00116"></a>00116 <span class="comment"> *</span>
<a name="l00117"></a>00117 <span class="comment"> * \note Because there are separate message-queues for each remote process and no distinct</span>
<a name="l00118"></a>00118 <span class="comment"> * global ordering of messages, there may be some situation where a message from a</span>
<a name="l00119"></a>00119 <span class="comment"> * process may never be received. This may occur when MOC_Recv, MOC_Probe and MOC_IProbe</span>
<a name="l00120"></a>00120 <span class="comment"> * are used with MOC_ANY_SOURCE, because then there is the possibility that new messages</span>
<a name="l00121"></a>00121 <span class="comment"> * are received before a specific message from a process with a higher rank than the other</span>
<a name="l00122"></a>00122 <span class="comment"> * senders. This may also occur with lower possibility when using MOC_ANY_TAG between</span>
<a name="l00123"></a>00123 <span class="comment"> * messages from the same sender but with other tags.</span>
<a name="l00124"></a>00124 <span class="comment"> *</span>
<a name="l00125"></a>00125 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00126"></a>00126 <span class="comment">/**</span>
<a name="l00127"></a>00127 <span class="comment"> * \defgroup p2p_status Return Status</span>
<a name="l00128"></a>00128 <span class="comment"> * \ingroup p2p_main</span>
<a name="l00129"></a>00129 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00130"></a>00130 <span class="comment">/**</span>
<a name="l00131"></a>00131 <span class="comment"> * \defgroup p2p_datatype Datatypes</span>
<a name="l00132"></a>00132 <span class="comment"> * \ingroup p2p_main</span>
<a name="l00133"></a>00133 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00134"></a>00134 <span class="comment">/**</span>
<a name="l00135"></a>00135 <span class="comment"> * \defgroup p2p_synch Synchronous Communication</span>
<a name="l00136"></a>00136 <span class="comment"> * \ingroup p2p_main</span>
<a name="l00137"></a>00137 <span class="comment"> *</span>
<a name="l00138"></a>00138 <span class="comment"> * Direct blocking sending of messages without any intermediate buffer.</span>
<a name="l00139"></a>00139 <span class="comment"> *</span>
<a name="l00140"></a>00140 <span class="comment"> * The blocking synchronous send-operation returns only when the receiver has completely</span>
<a name="l00141"></a>00141 <span class="comment"> * received the message.</span>
<a name="l00142"></a>00142 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00143"></a>00143 <span class="comment">/**</span>
<a name="l00144"></a>00144 <span class="comment"> * \defgroup p2p_buffered Buffered Communication</span>
<a name="l00145"></a>00145 <span class="comment"> * \ingroup p2p_main</span>
<a name="l00146"></a>00146 <span class="comment"> *</span>
<a name="l00147"></a>00147 <span class="comment"> * Blocking sending of messages with the use of an intermediate buffer.</span>
<a name="l00148"></a>00148 <span class="comment"> *</span>
<a name="l00149"></a>00149 <span class="comment"> * The blocking buffered send-operation returns if the send-buffer can be safely reused</span>
<a name="l00150"></a>00150 <span class="comment"> * (after the data has been copied into the intermediate buffer).</span>
<a name="l00151"></a>00151 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00152"></a>00152 <span class="comment">/**</span>
<a name="l00153"></a>00153 <span class="comment"> * \defgroup p2p_sendrecv Send-Receive</span>
<a name="l00154"></a>00154 <span class="comment"> * \ingroup p2p_main</span>
<a name="l00155"></a>00155 <span class="comment"> *</span>
<a name="l00156"></a>00156 <span class="comment"> * The send-receive operations combine in one call the sending of a message</span>
<a name="l00157"></a>00157 <span class="comment"> * to one destination and the receiving of another message, from another process.</span>
<a name="l00158"></a>00158 <span class="comment"> *</span>
<a name="l00159"></a>00159 <span class="comment"> * A message sent by a send-receive operation can be received by a regular receive</span>
<a name="l00160"></a>00160 <span class="comment"> * operation or probed by a probe operation; a send-receive operation can receive</span>
<a name="l00161"></a>00161 <span class="comment"> * a message sent by a regular send operation.</span>
<a name="l00162"></a>00162 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00163"></a>00163 <span class="comment">/**</span>
<a name="l00164"></a>00164 <span class="comment"> * \defgroup p2p_imm Non-Blocking Communication</span>
<a name="l00165"></a>00165 <span class="comment"> * \ingroup p2p_main</span>
<a name="l00166"></a>00166 <span class="comment"> *</span>
<a name="l00167"></a>00167 <span class="comment"> * Non-blocking sending and receiving messages.</span>
<a name="l00168"></a>00168 <span class="comment"> *</span>
<a name="l00169"></a>00169 <span class="comment"> * Because of restrictions of the Cell Broadband Engine non-blocking communication can</span>
<a name="l00170"></a>00170 <span class="comment"> * only be provided with a lot of limitations. In fact the only operation where</span>
<a name="l00171"></a>00171 <span class="comment"> * non-blocking communication make sense is synchronous send.</span>
<a name="l00172"></a>00172 <span class="comment"> *</span>
<a name="l00173"></a>00173 <span class="comment"> * \ref MOC_ISend uses blocking buffered send or non-blocking synchronous send according to</span>
<a name="l00174"></a>00174 <span class="comment"> * the message size.</span>
<a name="l00175"></a>00175 <span class="comment"> *</span>
<a name="l00176"></a>00176 <span class="comment"> * \note Every non-blocking communication operation has to be finished using \ref MOC_Test</span>
<a name="l00177"></a>00177 <span class="comment"> * or \ref MOC_Wait, otherwise resources are no freed and some data are not copied correctly.</span>
<a name="l00178"></a>00178 <span class="comment"> **/</span>
<a name="l00179"></a>00179
<a name="l00180"></a>00180 <span class="comment"></span>
<a name="l00181"></a>00181 <span class="comment">/**</span>
<a name="l00182"></a>00182 <span class="comment"> * \defgroup broadcast Collective Communication</span>
<a name="l00183"></a>00183 <span class="comment"> * \ingroup end_user</span>
<a name="l00184"></a>00184 <span class="comment"> *</span>
<a name="l00185"></a>00185 <span class="comment"> * Communication that involves a group of processes.</span>
<a name="l00186"></a>00186 <span class="comment"> *</span>
<a name="l00187"></a>00187 <span class="comment"> * A collective operation is normally executed by having all processes in the group call</span>
<a name="l00188"></a>00188 <span class="comment"> * the communication routine, with matching arguments. Since there are no means for creating</span>
<a name="l00189"></a>00189 <span class="comment"> * groups currently implemented, the only available groups are MOC_COMM_WORLD and</span>
<a name="l00190"></a>00190 <span class="comment"> * MOC_COMM_SELF.</span>
<a name="l00191"></a>00191 <span class="comment"> **/</span>
<a name="l00192"></a>00192
<a name="l00193"></a>00193 <span class="comment"></span>
<a name="l00194"></a>00194 <span class="comment">/**</span>
<a name="l00195"></a>00195 <span class="comment"> * \defgroup dma_access Direct Memory Access</span>
<a name="l00196"></a>00196 <span class="comment"> * \ingroup end_user</span>
<a name="l00197"></a>00197 <span class="comment"> *</span>
<a name="l00198"></a>00198 <span class="comment"> * Functions which use DMA to transfer Data.</span>
<a name="l00199"></a>00199 <span class="comment"> *</span>
<a name="l00200"></a>00200 <span class="comment"> * The operations defined in this section provide simple means to use Direct Memory</span>
<a name="l00201"></a>00201 <span class="comment"> * Access (DMA).</span>
<a name="l00202"></a>00202 <span class="comment"> *</span>
<a name="l00203"></a>00203 <span class="comment"> * The MPI-standard assumes a distributed memory architecture, where</span>
<a name="l00204"></a>00204 <span class="comment"> * active participation of the sending and the receiving processes is required. But</span>
<a name="l00205"></a>00205 <span class="comment"> * the Cell Broadband Engine is a distributed shared memory architecture which provides</span>
<a name="l00206"></a>00206 <span class="comment"> * a common address space and DMA-Operations enabling processes to write data directly</span>
<a name="l00207"></a>00207 <span class="comment"> * into the memory of an remote process without active participation of the receiving</span>
<a name="l00208"></a>00208 <span class="comment"> * process.</span>
<a name="l00209"></a>00209 <span class="comment"> * DMA is faster than Send-Receive but more complicated to handle, and so there are some</span>
<a name="l00210"></a>00210 <span class="comment"> * functions provided to enable the advantages of DMA and to hide as much complexity as</span>
<a name="l00211"></a>00211 <span class="comment"> * possible. So the user doesn't have to care about the upper-limit of an DMA-transfer</span>
<a name="l00212"></a>00212 <span class="comment"> * and in get-operations the data-size doesn't have to be a multiple of 16-byte. However</span>
<a name="l00213"></a>00213 <span class="comment"> * the data-address should be at least 16-byte aligned and in put-operations the data-size</span>
<a name="l00214"></a>00214 <span class="comment"> * has to be a multiple of 16-byte.</span>
<a name="l00215"></a>00215 <span class="comment"> *</span>
<a name="l00216"></a>00216 <span class="comment"> * There are two kind of addresses. Local-store addresses are used on the SPUs and are only</span>
<a name="l00217"></a>00217 <span class="comment"> * valid in context of a specific SPU. Effective addresses define a common address-space and</span>
<a name="l00218"></a>00218 <span class="comment"> * are used on the PPU. Functions to translate between those address types are provided.</span>
<a name="l00219"></a>00219 <span class="comment"> *</span>
<a name="l00220"></a>00220 <span class="comment"> * DMA-operations can be blocking or non-blocking. The status of non-blocking DMA-calls can</span>
<a name="l00221"></a>00221 <span class="comment"> * be requested by using \ref MOC_Test and \ref MOC_Wait.</span>
<a name="l00222"></a>00222 <span class="comment"> *</span>
<a name="l00223"></a>00223 <span class="comment"> * \note Every non-blocking DMA operation has to be finished using \ref MOC_Test</span>
<a name="l00224"></a>00224 <span class="comment"> * or \ref MOC_Wait, otherwise resources are no freed and some data are not copied correctly.</span>
<a name="l00225"></a>00225 <span class="comment"> **/</span>
<a name="l00226"></a>00226 <span class="comment"></span>
<a name="l00227"></a>00227 <span class="comment">/**</span>
<a name="l00228"></a>00228 <span class="comment"> * \defgroup comm_main Groups, Context and Communicators</span>
<a name="l00229"></a>00229 <span class="comment"> * \ingroup end_user</span>
<a name="l00230"></a>00230 <span class="comment"> *</span>
<a name="l00231"></a>00231 <span class="comment"> * The MOC communicator specifies a group of processes inside which</span>
<a name="l00232"></a>00232 <span class="comment"> * a communication occurs.</span>
<a name="l00233"></a>00233 <span class="comment"> * Initially there is a single communicator, MPI_COMM_WORLD, which</span>
<a name="l00234"></a>00234 <span class="comment"> * contains all of the processes involved in the computation.</span>
<a name="l00235"></a>00235 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00236"></a>00236 <span class="comment">/**</span>
<a name="l00237"></a>00237 <span class="comment"> * \defgroup comm_mgt Communicator Management</span>
<a name="l00238"></a>00238 <span class="comment"> * \ingroup comm_main</span>
<a name="l00239"></a>00239 <span class="comment"> **/</span>
<a name="l00240"></a>00240
<a name="l00241"></a>00241
<a name="l00242"></a>00242
<a name="l00243"></a>00243
<a name="l00244"></a>00244 <span class="preprocessor">#endif </span><span class="comment">/*MOC_DOXYGEN_MAIN_H_*/</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:47 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
File diff suppressed because one or more lines are too long
@@ -0,0 +1,42 @@
<area shape="rect" href="$db/d62/moc__dma__ppu_8h.html" title="include/ppu/moc_dma_ppu.h" alt="" coords="8397,80,8584,107">
<area shape="rect" href="$db/dae/ppu_2moc_8h.html" title="include/ppu/moc.h" alt="" coords="10123,155,10251,181">
<area shape="rect" href="$d3/dc2/moc__isend_8c.html" title="src/noarch/communication/moc_isend.c" alt="" coords="5,304,256,331">
<area shape="rect" href="$db/d55/moc__send_8c.html" title="src/noarch/communication/moc_send.c" alt="" coords="280,304,528,331">
<area shape="rect" href="$dc/d02/moc__issend__ppu_8c.html" title="src/ppu/communication/moc_issend_ppu.c" alt="" coords="552,304,821,331">
<area shape="rect" href="$dc/db7/moc__recv__ppu_8c.html" title="src/ppu/communication/moc_recv_ppu.c" alt="" coords="845,304,1099,331">
<area shape="rect" href="$d7/d58/moc__dma-get__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;get_ppu.c" alt="" coords="1123,304,1339,331">
<area shape="rect" href="$d3/dc6/moc__dma-iget__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iget_ppu.c" alt="" coords="1363,304,1581,331">
<area shape="rect" href="$d8/d06/moc__dma-iput__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iput_ppu.c" alt="" coords="7656,304,7875,331">
<area shape="rect" href="$d3/dfa/moc__dma-put__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;put_ppu.c" alt="" coords="7899,304,8115,331">
<area shape="rect" href="$d0/d04/moc__dma-test__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;test_ppu.c" alt="" coords="8139,304,8357,331">
<area shape="rect" href="$d6/de5/moc__dma-wait__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;wait_ppu.c" alt="" coords="8381,304,8600,331">
<area shape="rect" href="$d2/d2a/moc__translate__ea__ls__ppu_8c.html" title="src/ppu/dma/moc_translate_ea_ls_ppu.c" alt="" coords="8624,304,8880,331">
<area shape="rect" href="$d4/d2d/imoc__dma-get__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;get_ppu.c" alt="" coords="8904,304,9168,331">
<area shape="rect" href="$d1/da6/imoc__dma-iget__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;iget_ppu.c" alt="" coords="9192,304,9459,331">
<area shape="rect" href="$df/d10/imoc__dma-iput__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;iput_ppu.c" alt="" coords="9483,304,9749,331">
<area shape="rect" href="$d3/d8f/imoc__dma-put__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;put_ppu.c" alt="" coords="9773,304,10037,331">
<area shape="rect" href="$d6/d09/imoc__core__ppu_8h.html" title="include/internal/ppu/imoc_core_ppu.h" alt="" coords="5813,229,6048,256">
<area shape="rect" href="$df/dac/imoc__spe__thread__ppu_8c.html" title="src/ppu/internal/imoc_spe_thread_ppu.c" alt="" coords="10061,304,10312,331">
<area shape="rect" href="$dc/dd0/moc__add__spu__thread__ppu_8c.html" title="src/ppu/system/moc_add_spu_thread_ppu.c" alt="" coords="10336,304,10613,331">
<area shape="rect" href="$d3/d9e/moc__finalize__ppu_8c.html" title="src/ppu/system/moc_finalize_ppu.c" alt="" coords="10637,304,10864,331">
<area shape="rect" href="$d9/d04/moc__init__ppu_8c.html" title="src/ppu/system/moc_init_ppu.c" alt="" coords="10888,304,11091,331">
<area shape="rect" href="$d6/db1/moc__bcast_8c.html" title="src/noarch/communication/moc_bcast.c" alt="" coords="1605,304,1859,331">
<area shape="rect" href="$d8/d02/moc__test_8c.html" title="src/noarch/communication/moc_test.c" alt="" coords="1883,304,2125,331">
<area shape="rect" href="$d4/dfc/moc__wait_8c.html" title="src/noarch/communication/moc_wait.c" alt="" coords="2149,304,2392,331">
<area shape="rect" href="$db/d33/imoc__get__entry_8c.html" title="src/noarch/internal/communication/imoc_get_entry.c" alt="" coords="2416,304,2739,331">
<area shape="rect" href="$df/d20/imoc__get__free__entry_8c.html" title="src/noarch/internal/communication/imoc_get_free_entry.c" alt="" coords="2763,304,3115,331">
<area shape="rect" href="$dd/d9a/imoc__get__free__mid_8c.html" title="src/noarch/internal/communication/imoc_get_free_mid.c" alt="" coords="3139,304,3483,331">
<area shape="rect" href="$db/d43/imoc__test__message_8c.html" title="src/noarch/internal/communication/imoc_test_message.c" alt="" coords="3507,304,3859,331">
<area shape="rect" href="$da/d91/imoc__wait__message_8c.html" title="src/noarch/internal/communication/imoc_wait_message.c" alt="" coords="3883,304,4235,331">
<area shape="rect" href="$d2/d7b/imoc__buffer__malloc_8c.html" title="src/noarch/internal/imoc_buffer_malloc.c" alt="" coords="4259,304,4512,331">
<area shape="rect" href="$d3/d9d/moc__comm__rank_8c.html" title="src/noarch/system/moc_comm_rank.c" alt="" coords="4536,304,4779,331">
<area shape="rect" href="$df/ddd/moc__comm__size_8c.html" title="src/noarch/system/moc_comm_size.c" alt="" coords="4803,304,5045,331">
<area shape="rect" href="$d1/d72/moc__barrier__ppu_8c.html" title="src/ppu/communication/moc_barrier_ppu.c" alt="" coords="5069,304,5336,331">
<area shape="rect" href="$d9/d14/moc__bsend__ppu_8c.html" title="src/ppu/communication/moc_bsend_ppu.c" alt="" coords="5360,304,5627,331">
<area shape="rect" href="$d2/d00/moc__ssend__ppu_8c.html" title="src/ppu/communication/moc_ssend_ppu.c" alt="" coords="5651,304,5917,331">
<area shape="rect" href="$d0/dba/imoc__dma-tags__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;tags_ppu.c" alt="" coords="5941,304,6213,331">
<area shape="rect" href="$d4/d5b/imoc__dma-test__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;test_ppu.c" alt="" coords="6237,304,6504,331">
<area shape="rect" href="$df/d8b/imoc__dma-wait__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma&#45;wait_ppu.c" alt="" coords="6528,304,6797,331">
<area shape="rect" href="$df/d69/imoc__core__ppu_8c.html" title="src/ppu/internal/imoc_core_ppu.c" alt="" coords="6821,304,7035,331">
<area shape="rect" href="$d2/d15/moc__set__buffer__size__ppu_8c.html" title="src/ppu/system/moc_set_buffer_size_ppu.c" alt="" coords="7059,304,7331,331">
<area shape="rect" href="$df/dbf/moc__set__queue__size__ppu_8c.html" title="src/ppu/system/moc_set_queue_size_ppu.c" alt="" coords="7355,304,7632,331">
@@ -0,0 +1 @@
8b53a27a44ebd459fa39b408d1c7caed
Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

@@ -0,0 +1,141 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPI On Cell (Documentation): include/ppu/moc_dma_ppu.h Source File</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>include/ppu/moc_dma_ppu.h</h1><a href="../../db/d62/moc__dma__ppu_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef MOC_DATA_TRANSFER_PPU_H_</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define MOC_DATA_TRANSFER_PPU_H_</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include "../moc.h"</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include "<a class="code" href="../../d8/de2/moc__datatype__ppu_8h.html">moc_datatype_ppu.h</a>"</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">/**</span>
<a name="l00009"></a>00009 <span class="comment"> * \addtogroup dma_access</span>
<a name="l00010"></a>00010 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00011"></a>00011 <span class="comment">//@{</span>
<a name="l00012"></a>00012 <span class="comment"></span><span class="comment">/**</span>
<a name="l00013"></a>00013 <span class="comment"> * @name PPU-only</span>
<a name="l00014"></a>00014 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00015"></a>00015 <span class="comment">//@{</span>
<a name="l00016"></a>00016 <span class="comment"></span>
<a name="l00017"></a>00017 <span class="comment"></span>
<a name="l00018"></a>00018 <span class="comment">/**</span>
<a name="l00019"></a>00019 <span class="comment"> * Wrapper-function for a blocking DMA-get operation.</span>
<a name="l00020"></a>00020 <span class="comment"> * Data can be of any size, constraints of low-level DMA-functions</span>
<a name="l00021"></a>00021 <span class="comment"> * are dealt by this function.</span>
<a name="l00022"></a>00022 <span class="comment"> * However data-addresses have to be at least 16-byte aligned.</span>
<a name="l00023"></a>00023 <span class="comment"> *</span>
<a name="l00024"></a>00024 <span class="comment"> * @param target \b out pointer to buffer</span>
<a name="l00025"></a>00025 <span class="comment"> * @param source \b in local-store address of data</span>
<a name="l00026"></a>00026 <span class="comment"> * @param count \b in size of data in byte</span>
<a name="l00027"></a>00027 <span class="comment"> * @param datatype \b in Type of Elements</span>
<a name="l00028"></a>00028 <span class="comment"> * @param dest \b in rank of source spe</span>
<a name="l00029"></a>00029 <span class="comment"> * @retval MOC_SUCCESS No error; MPI routine completed successfully.</span>
<a name="l00030"></a>00030 <span class="comment"> * @retval ... error-code</span>
<a name="l00031"></a>00031 <span class="comment"> **/</span>
<a name="l00032"></a>00032 <span class="keywordtype">int</span> <a class="code" href="../../d9/d16/group__dma__access.html#g3716465d42f20379bbf65002ecd9e448" title="Wrapper-function for a blocking DMA-get operation.">MOC_Get_data</a>(<span class="keywordtype">void</span>* target, uint32_t source, <span class="keywordtype">int</span> count,
<a name="l00033"></a>00033 <a class="code" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a" title="Typedef defining MOC_Datatype.">MOC_Datatype</a> datatype, <span class="keywordtype">int</span> dest);
<a name="l00034"></a>00034 <span class="comment"></span>
<a name="l00035"></a>00035 <span class="comment">/**</span>
<a name="l00036"></a>00036 <span class="comment"> * Wrapper-function for a blocking DMA-put operation.</span>
<a name="l00037"></a>00037 <span class="comment"> * Data-size should be a multiple of 16 because of low-level constraints, but</span>
<a name="l00038"></a>00038 <span class="comment"> * there is no upper limit of transfer-size.</span>
<a name="l00039"></a>00039 <span class="comment"> * Data-addresses have to be at least 16-byte aligned.</span>
<a name="l00040"></a>00040 <span class="comment"> *</span>
<a name="l00041"></a>00041 <span class="comment"> * @param source \b in pointer to data</span>
<a name="l00042"></a>00042 <span class="comment"> * @param target \b in local-store address of buffer</span>
<a name="l00043"></a>00043 <span class="comment"> * @param count \b in size of data in byte</span>
<a name="l00044"></a>00044 <span class="comment"> * @param datatype \b in Type of Elements</span>
<a name="l00045"></a>00045 <span class="comment"> * @param src \b in rank of source-SPE</span>
<a name="l00046"></a>00046 <span class="comment"> * @retval MOC_SUCCESS No error; MPI routine completed successfully.</span>
<a name="l00047"></a>00047 <span class="comment"> * @retval ... error-code</span>
<a name="l00048"></a>00048 <span class="comment"> **/</span>
<a name="l00049"></a>00049 <span class="keywordtype">int</span> <a class="code" href="../../d9/d16/group__dma__access.html#ge07f4b35da50be472772f9d3a426669e" title="Wrapper-function for a blocking DMA-put operation.">MOC_Put_data</a>(<span class="keywordtype">void</span>* source, uint32_t target, <span class="keywordtype">int</span> count,
<a name="l00050"></a>00050 <a class="code" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a" title="Typedef defining MOC_Datatype.">MOC_Datatype</a> datatype, <span class="keywordtype">int</span> src);
<a name="l00051"></a>00051 <span class="comment"></span>
<a name="l00052"></a>00052 <span class="comment">/**</span>
<a name="l00053"></a>00053 <span class="comment"> * Wrapper-function for a non-blocking DMA-get operation.</span>
<a name="l00054"></a>00054 <span class="comment"> * Data can be of any size, constraints of low-level DMA-functions</span>
<a name="l00055"></a>00055 <span class="comment"> * are dealt by this function.</span>
<a name="l00056"></a>00056 <span class="comment"> * However data-addresses have to be at least 16-byte aligned.</span>
<a name="l00057"></a>00057 <span class="comment"> * Operation-completion can be derived with MOC_Test and MOC_Wait.</span>
<a name="l00058"></a>00058 <span class="comment"> *</span>
<a name="l00059"></a>00059 <span class="comment"> * @param target \b out pointer to buffer</span>
<a name="l00060"></a>00060 <span class="comment"> * @param source \b in local-store address of data</span>
<a name="l00061"></a>00061 <span class="comment"> * @param count \b in size of data in byte</span>
<a name="l00062"></a>00062 <span class="comment"> * @param datatype \b in Type of Elements</span>
<a name="l00063"></a>00063 <span class="comment"> * @param dest \b in rank of source spe</span>
<a name="l00064"></a>00064 <span class="comment"> * @param request \b out communication request (handle)</span>
<a name="l00065"></a>00065 <span class="comment"> * @retval MOC_SUCCESS No error; MPI routine completed successfully.</span>
<a name="l00066"></a>00066 <span class="comment"> * @retval ... error-code</span>
<a name="l00067"></a>00067 <span class="comment"> **/</span>
<a name="l00068"></a>00068 <span class="keywordtype">int</span> <a class="code" href="../../d9/d16/group__dma__access.html#g08f0af30f2e0e6840ec2be5ca93fd14f" title="Wrapper-function for a non-blocking DMA-get operation.">MOC_IGet_data</a>(<span class="keywordtype">void</span>* target, uint32_t source, <span class="keywordtype">int</span> count,
<a name="l00069"></a>00069 <a class="code" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a" title="Typedef defining MOC_Datatype.">MOC_Datatype</a> datatype, <span class="keywordtype">int</span> dest, <a class="code" href="../../db/d17/structmoc__request__struct.html" title="Communication-Request (Handle).">MOC_Request</a> *request);
<a name="l00070"></a>00070 <span class="comment"></span>
<a name="l00071"></a>00071 <span class="comment">/**</span>
<a name="l00072"></a>00072 <span class="comment"> * Wrapper-function for a non-blocking DMA-put operation.</span>
<a name="l00073"></a>00073 <span class="comment"> * Data-size should be a multiple of 16 because of low-level constraints, but</span>
<a name="l00074"></a>00074 <span class="comment"> * there is no upper limit of transfer-size.</span>
<a name="l00075"></a>00075 <span class="comment"> * Data-addresses have to be at least 16-byte aligned.</span>
<a name="l00076"></a>00076 <span class="comment"> * Operation-completion can be derived with MOC_Test and MOC_Wait.</span>
<a name="l00077"></a>00077 <span class="comment"> *</span>
<a name="l00078"></a>00078 <span class="comment"> * @param source \b in pointer to data</span>
<a name="l00079"></a>00079 <span class="comment"> * @param target \b in local-store address of buffer</span>
<a name="l00080"></a>00080 <span class="comment"> * @param count \b in size of data in byte</span>
<a name="l00081"></a>00081 <span class="comment"> * @param datatype \b in Type of Elements</span>
<a name="l00082"></a>00082 <span class="comment"> * @param src \b in rank of source-SPE</span>
<a name="l00083"></a>00083 <span class="comment"> * @param request \b out communication request (handle)</span>
<a name="l00084"></a>00084 <span class="comment"> * @retval MOC_SUCCESS No error; MPI routine completed successfully.</span>
<a name="l00085"></a>00085 <span class="comment"> * @retval ... error-code</span>
<a name="l00086"></a>00086 <span class="comment"> **/</span>
<a name="l00087"></a>00087 <span class="keywordtype">int</span> <a class="code" href="../../d9/d16/group__dma__access.html#g1fd9a141352dd4344e20f1bde778d265" title="Wrapper-function for a non-blocking DMA-put operation.">MOC_IPut_data</a>(<span class="keywordtype">void</span>* source, uint32_t target, <span class="keywordtype">int</span> count,
<a name="l00088"></a>00088 <a class="code" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a" title="Typedef defining MOC_Datatype.">MOC_Datatype</a> datatype, <span class="keywordtype">int</span> src, <a class="code" href="../../db/d17/structmoc__request__struct.html" title="Communication-Request (Handle).">MOC_Request</a> *request);
<a name="l00089"></a>00089 <span class="comment"></span>
<a name="l00090"></a>00090 <span class="comment">/**</span>
<a name="l00091"></a>00091 <span class="comment"> * Translates an effective-address of a SPU into the corresponding local-store address.</span>
<a name="l00092"></a>00092 <span class="comment"> *</span>
<a name="l00093"></a>00093 <span class="comment"> * @param ea \b in effective-address</span>
<a name="l00094"></a>00094 <span class="comment"> * @param rank \b in rank of SPU</span>
<a name="l00095"></a>00095 <span class="comment"> * @param ls \b out local-store address</span>
<a name="l00096"></a>00096 <span class="comment"> **/</span>
<a name="l00097"></a>00097 <span class="keywordtype">int</span> <a class="code" href="../../d9/d16/group__dma__access.html#g40b39bb7c07bc07d783c85b10f0bf60f" title="Translates an effective-address of a SPU into the corresponding local-store address...">MOC_Translate_EA_to_LS</a>(uint64_t ea, <span class="keywordtype">int</span> rank, uint32_t* ls);
<a name="l00098"></a>00098 <span class="comment"></span>
<a name="l00099"></a>00099 <span class="comment">//@}</span>
<a name="l00100"></a>00100 <span class="comment"></span><span class="comment"></span>
<a name="l00101"></a>00101 <span class="comment">/**</span>
<a name="l00102"></a>00102 <span class="comment"> * Waits till a MOC_IGet_data or IMOC_IPut_data is completed.</span>
<a name="l00103"></a>00103 <span class="comment"> *</span>
<a name="l00104"></a>00104 <span class="comment"> * @param request \b in request-handle</span>
<a name="l00105"></a>00105 <span class="comment"> * @return 0 when success otherwise error-code</span>
<a name="l00106"></a>00106 <span class="comment"> **/</span>
<a name="l00107"></a>00107 <span class="keywordtype">int</span> <a class="code" href="../../d9/d16/group__dma__access.html#g0ba7b00fbebaabb8b39737a7c13efc67" title="Waits till a MOC_IGet_data or IMOC_IPut_data is completed.">MOC_Wait_data</a>(<a class="code" href="../../db/d17/structmoc__request__struct.html" title="Communication-Request (Handle).">MOC_Request</a>* request);
<a name="l00108"></a>00108 <span class="comment"></span>
<a name="l00109"></a>00109 <span class="comment">/**</span>
<a name="l00110"></a>00110 <span class="comment"> * Tests if a MOC_IGet_data or IMOC_IPut_data is completed.</span>
<a name="l00111"></a>00111 <span class="comment"> *</span>
<a name="l00112"></a>00112 <span class="comment"> * @param request \b in request-handle</span>
<a name="l00113"></a>00113 <span class="comment"> * @param flag \b out true if operation is completed</span>
<a name="l00114"></a>00114 <span class="comment"> * @return 0 when success otherwise error-code</span>
<a name="l00115"></a>00115 <span class="comment"> **/</span>
<a name="l00116"></a>00116 <span class="keywordtype">int</span> <a class="code" href="../../d9/d16/group__dma__access.html#g342d07658aae4252a2e2cd6a8cc185dd" title="Tests if a MOC_IGet_data or IMOC_IPut_data is completed.">MOC_Test_data</a>(<a class="code" href="../../db/d17/structmoc__request__struct.html" title="Communication-Request (Handle).">MOC_Request</a>* request, <span class="keywordtype">int</span> *flag);
<a name="l00117"></a>00117 <span class="comment"></span>
<a name="l00118"></a>00118 <span class="comment">//@}</span>
<a name="l00119"></a>00119 <span class="comment"></span><span class="preprocessor">#endif </span><span class="comment">/*MOC_DATA_TRANSFER_PPU_H_*/</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:47 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>