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,62 @@
<!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/spu/imoc_core_spu.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/spu/imoc_core_spu.h File Reference</h1>
<p>
<code>#include &quot;<a class="el" href="../../d6/d2c/imoc__core_8h-source.html">../imoc_core.h</a>&quot;</code><br>
<p>
<div class="dynheader">
Include dependency graph for imoc_core_spu.h:</div>
<div class="dynsection">
<p><center><img src="../../d7/db6/imoc__core__spu_8h__incl.png" border="0" usemap="#include/internal/spu/imoc_core_spu.h_map" alt=""></center>
<map name="include/internal/spu/imoc_core_spu.h_map">
<area shape="rect" href="../../d7/d3d/imoc__core_8h.html" title="../imoc_core.h" alt="" coords="71,80,175,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="../../de/dc2/imoc__core__spu_8h__dep__incl.png" border="0" usemap="#include/internal/spu/imoc_core_spu.hdep_map" alt=""></center>
<map name="include/internal/spu/imoc_core_spu.hdep_map">
<area shape="rect" href="../../dc/d59/moc__barrier__spu_8c.html" title="src/spu/communication/moc_barrier_spu.c" alt="" coords="5,80,272,107"><area shape="rect" href="../../d6/d8c/moc__bsend__spu_8c.html" title="src/spu/communication/moc_bsend_spu.c" alt="" coords="296,80,563,107"><area shape="rect" href="../../de/d76/moc__issend__spu_8c.html" title="src/spu/communication/moc_issend_spu.c" alt="" coords="587,80,856,107"><area shape="rect" href="../../d9/dab/moc__recv__spu_8c.html" title="src/spu/communication/moc_recv_spu.c" alt="" coords="880,80,1133,107"><area shape="rect" href="../../d3/d71/moc__ssend__spu_8c.html" title="src/spu/communication/moc_ssend_spu.c" alt="" coords="1157,80,1424,107"><area shape="rect" href="../../d6/dcd/moc__translate__ls__ea__spu_8c.html" title="src/spu/dma/moc_translate_ls_ea_spu.c" alt="" coords="1448,80,1704,107"><area shape="rect" href="../../da/d67/imoc__core__spu_8c.html" title="src/spu/internal/imoc_core_spu.c" alt="" coords="1728,80,1941,107"><area shape="rect" href="../../d8/d2f/moc__finalize__spu_8c.html" title="src/spu/system/moc_finalize_spu.c" alt="" coords="1965,80,2192,107"><area shape="rect" href="../../d4/de2/moc__init__spu_8c.html" title="src/spu/system/moc_init_spu.c" alt="" coords="2216,80,2419,107"></map>
</div>
<p>
<a href="../../db/dd9/imoc__core__spu_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>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dde/structmoc__node__handle__spu__struct.html">moc_node_handle_spu_struct</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Node-handle structure. <a href="../../df/dde/structmoc__node__handle__spu__struct.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>SPU only</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
<a class="el" href="../../df/dde/structmoc__node__handle__spu__struct.html">moc_node_handle_spu_struct</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/df8/group__internal__core.html#g0fdc204b8f7480dbe12a5879157f2cc3">moc_node_handle_spu_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Node-handle structure. <a href="../../dd/df8/group__internal__core.html#g0fdc204b8f7480dbe12a5879157f2cc3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="../../df/dde/structmoc__node__handle__spu__struct.html">moc_node_handle_spu_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/df8/group__internal__core.html#g778478bb09824da1b673b244118aa82c">node_handle</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Information each node knowns about himself and the world. <a href="../../dd/df8/group__internal__core.html#g778478bb09824da1b673b244118aa82c"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:54 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>
+94
View File
@@ -0,0 +1,94 @@
<!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_init_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_init_ppu.c File Reference</h1>
<p>
<code>#include &lt;malloc_align.h&gt;</code><br>
<code>#include &lt;free_align.h&gt;</code><br>
<code>#include &lt;stdlib.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="../../d9/df9/ppu_2moc_8h-source.html">ppu/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>
<p>
<div class="dynheader">
Include dependency graph for moc_init_ppu.c:</div>
<div class="dynsection">
<p><center><img src="../../d5/d66/moc__init__ppu_8c__incl.png" border="0" usemap="#src/ppu/system/moc_init_ppu.c_map" alt=""></center>
<map name="src/ppu/system/moc_init_ppu.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="168,155,224,181"><area shape="rect" href="../../db/dae/ppu_2moc_8h.html" title="ppu/moc.h" alt="" coords="624,155,707,181"><area shape="rect" href="../../d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="329,229,436,256"><area shape="rect" href="../../d6/d09/imoc__core__ppu_8h.html" title="internal/ppu/imoc_core_ppu.h" alt="" coords="729,80,921,107"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="137,229,255,256"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="25,304,167,331"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="352,304,421,331"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="497,379,623,405"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="343,379,473,405"><area shape="rect" href="../../db/d62/moc__dma__ppu_8h.html" title="moc_dma_ppu.h" alt="" coords="511,229,628,256"><area shape="rect" href="../../d8/de2/moc__datatype__ppu_8h.html" title="moc_datatype_ppu.h" alt="" coords="500,304,641,331"><area shape="rect" href="../../d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="665,304,756,331"></map>
</div>
<p>
<a href="../../dd/dcb/moc__init__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/d04/moc__init__ppu_8c.html#9f5e3249bff688ab3258c8c5bfc7d61b">MOC_Init</a> (int *argc __attribute__((unused)), char ***argv __attribute__((unused)))</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="9f5e3249bff688ab3258c8c5bfc7d61b"></a><!-- doxytag: member="moc_init_ppu.c::MOC_Init" ref="9f5e3249bff688ab3258c8c5bfc7d61b" args="(int *argc __attribute__((unused)), char ***argv __attribute__((unused)))" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Init </td>
<td>(</td>
<td class="paramtype">int *argc &nbsp;</td>
<td class="paramname"> <em>__attribute__</em>(unused), </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ***argv &nbsp;</td>
<td class="paramname"> <em>__attribute__</em>(unused)</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>Definition at line <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html#l00011">11</a> of file <a class="el" href="../../dd/dcb/moc__init__ppu_8c-source.html">moc_init_ppu.c</a>.</p>
<p>References <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00084">moc_spu_thread_struct::buffer_base</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#l00085">moc_spu_thread_struct::buffer_size</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00038">moc_node_handle_ppu_struct::buffer_size</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="../../db/d45/imoc__core__ppu_8h-source.html#l00083">moc_spu_thread_struct::envp</a>, <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00166">moc_process_struct::inbox_queue_base</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00086">moc_spu_thread_struct::ls_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="../../d3/d95/moc__error__codes_8h-source.html#l00063">MOC_ERR_NO_MEMORY</a>, <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00148">MOC_PPU_PROCESS</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00106">moc_ppu_thread_count</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="../../d9/df3/imoc__spe__thread__ppu_8c-source.html#l00037">moc_spe_pthread_func()</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00111">moc_spu_buffer_size</a>, <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00153">MOC_SPU_PROCESS</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00116">moc_spu_queue_size</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="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>, <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00168">moc_process_struct::ps_base</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00087">moc_spu_thread_struct::queue_base_in_ls</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#l00076">moc_spu_thread_struct::rank</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>, <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00167">moc_process_struct::stat_array_base</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">moc_node_handle_ppu_struct::status_array_base</a>, <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00088">moc_spu_thread_struct::status_base_in_ls</a>, and <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00164">moc_process_struct::type</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d04/moc__init__ppu_8c_9f5e3249bff688ab3258c8c5bfc7d61b_cgraph.png" border="0" usemap="#d9/d04/moc__init__ppu_8c_9f5e3249bff688ab3258c8c5bfc7d61b_cgraph_map" alt=""></center>
<map name="d9/d04/moc__init__ppu_8c_9f5e3249bff688ab3258c8c5bfc7d61b_cgraph_map">
<area shape="rect" href="../../dc/df1/group__internal__spu__thread.html#g669046500ec44affc79468b12ddaaf92" title="PThread&#45;function for creating SPU&#45;Threads." alt="" coords="132,5,287,32"></map>
</div>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:30 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 @@
<area shape="rect" href="$dc/df1/group__internal__spu__thread.html#g669046500ec44affc79468b12ddaaf92" title="PThread&#45;function for creating SPU&#45;Threads." alt="" coords="132,5,287,32">
@@ -0,0 +1 @@
418c78977ebb62d717d4eda357df10c1
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -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/ppu/communication/moc_bsend_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/communication/moc_bsend_ppu.c File Reference</h1>
<p>
<code>#include &lt;stdio.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="../../d4/d9b/imoc_8h-source.html">internal/imoc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../db/db7/imoc__macros__ppu_8h-source.html">internal/ppu/imoc_macros_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>
<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_bsend_ppu.c:</div>
<div class="dynsection">
<p><center><img src="../../db/dbc/moc__bsend__ppu_8c__incl.png" border="0" usemap="#src/ppu/communication/moc_bsend_ppu.c_map" alt=""></center>
<map name="src/ppu/communication/moc_bsend_ppu.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="75,155,131,181"><area shape="rect" href="../../d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="236,229,343,256"><area shape="rect" href="../../d8/d98/imoc__macros__ppu_8h.html" title="internal/ppu/imoc_macros_ppu.h" alt="" coords="1095,80,1303,107"><area shape="rect" href="../../de/df9/imoc__dma__ppu_8h.html" title="internal/ppu/imoc_dma_ppu.h" alt="" coords="417,229,609,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="44,229,161,256"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="44,304,185,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="260,379,385,405"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="460,379,591,405"><area shape="rect" href="../../d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="660,304,751,331"><area shape="rect" href="../../d2/d42/imoc__macros_8h.html" title="../imoc_macros.h" alt="" coords="1149,155,1272,181"><area shape="rect" href="../../db/dae/ppu_2moc_8h.html" title="../../ppu/moc.h" alt="" coords="728,155,835,181"><area shape="rect" href="../../db/d62/moc__dma__ppu_8h.html" title="moc_dma_ppu.h" alt="" coords="684,229,801,256"><area shape="rect" href="../../d8/de2/moc__datatype__ppu_8h.html" title="moc_datatype_ppu.h" alt="" coords="495,304,636,331"></map>
</div>
<p>
<a href="../../d2/db6/moc__bsend__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="../../de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b">MOC_Bsend</a> (void *buf, int count, <a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a> datatype, int dest, int tag, <a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a> comm)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Performs a blocking buffered mode send operation. <a href="../../de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:17 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>
+894
View File
@@ -0,0 +1,894 @@
<!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): Direct Memory Access</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>Direct Memory Access<br>
<small>
[<a class="el" href="../../d3/d9e/group__end__user.html">End-User Documentation</a>]</small>
</h1>
<p>
<div class="dynheader">
Collaboration diagram for Direct Memory Access:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../d9/d16/group__dma__access.png" border="0" alt="" usemap="#d5/d02/d9_2d16_2group____dma____access_map">
<map name="d5/d02/d9_2d16_2group____dma____access_map">
<area shape="rect" href="../../d3/d9e/group__end__user.html" title="This section describes the public API provided by the MOC&#45;library." alt="" coords="7,5,172,32"></map></td></tr></table></center>
</div>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Functions which use DMA to transfer Data.
<p>
The operations defined in this section provide simple means to use Direct Memory Access (DMA).<p>
The MPI-standard assumes a distributed memory architecture, where active participation of the sending and the receiving processes is required. But the Cell Broadband Engine is a distributed shared memory architecture which provides a common address space and DMA-Operations enabling processes to write data directly into the memory of an remote process without active participation of the receiving process. DMA is faster than Send-Receive but more complicated to handle, and so there are some functions provided to enable the advantages of DMA and to hide as much complexity as possible. So the user doesn't have to care about the upper-limit of an DMA-transfer and in get-operations the data-size doesn't have to be a multiple of 16-byte. However the data-address should be at least 16-byte aligned and in put-operations the data-size has to be a multiple of 16-byte.<p>
There are two kind of addresses. Local-store addresses are used on the SPUs and are only valid in context of a specific SPU. Effective addresses define a common address-space and are used on the PPU. Functions to translate between those address types are provided.<p>
DMA-operations can be blocking or non-blocking. The status of non-blocking DMA-calls can be requested by using <a class="el" href="../../d7/d62/group__p2p__imm.html#g5ee1f1c1275717d2dc78d6058ff81e9e">MOC_Test</a> and <a class="el" href="../../d7/d62/group__p2p__imm.html#g68043e4a0893fdc25c67f87bae1015a6">MOC_Wait</a>.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Every non-blocking DMA operation has to be finished using <a class="el" href="../../d7/d62/group__p2p__imm.html#g5ee1f1c1275717d2dc78d6058ff81e9e">MOC_Test</a> or <a class="el" href="../../d7/d62/group__p2p__imm.html#g68043e4a0893fdc25c67f87bae1015a6">MOC_Wait</a>, otherwise resources are no freed and some data are not copied correctly. </dd></dl>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></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="../../d9/d16/group__dma__access.html#g3716465d42f20379bbf65002ecd9e448">MOC_Get_data</a> (void *target, uint32_t source, int count, <a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a> datatype, int dest)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper-function for a blocking DMA-get operation. <a href="#g3716465d42f20379bbf65002ecd9e448"></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="../../d9/d16/group__dma__access.html#ge07f4b35da50be472772f9d3a426669e">MOC_Put_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)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper-function for a blocking DMA-put operation. <a href="#ge07f4b35da50be472772f9d3a426669e"></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="../../d9/d16/group__dma__access.html#g08f0af30f2e0e6840ec2be5ca93fd14f">MOC_IGet_data</a> (void *target, uint32_t source, int count, <a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a> datatype, int dest, <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-get operation. <a href="#g08f0af30f2e0e6840ec2be5ca93fd14f"></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="../../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="#g1fd9a141352dd4344e20f1bde778d265"></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="../../d9/d16/group__dma__access.html#g40b39bb7c07bc07d783c85b10f0bf60f">MOC_Translate_EA_to_LS</a> (uint64_t ea, int rank, uint32_t *ls)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates an effective-address of a SPU into the corresponding local-store address. <a href="#g40b39bb7c07bc07d783c85b10f0bf60f"></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="../../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="#g7af2715950a0ab51937a63c38756b85b"></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="../../d9/d16/group__dma__access.html#g1baab78008563718380887026cf9444f">MOC_Put_data</a> (void *source, uint64_t target, 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-put operation. <a href="#g1baab78008563718380887026cf9444f"></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="../../d9/d16/group__dma__access.html#g9ff1639ada54f14994b7d199fc2ad984">MOC_IGet_data</a> (void *target, uint64_t source, int count, <a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a> datatype, <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-get operation. <a href="#g9ff1639ada54f14994b7d199fc2ad984"></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="../../d9/d16/group__dma__access.html#g3ee8513f7c0ebb782a3b0d17b8135693">MOC_IPut_data</a> (void *source, uint64_t target, int count, <a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a> datatype, <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="#g3ee8513f7c0ebb782a3b0d17b8135693"></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="../../d9/d16/group__dma__access.html#g1ee1f004fff19c3338f2de9d96471693">MOC_Translate_LS_to_EA</a> (void *ls, uint64_t *ea)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates a local-store address of the calling SPU into the corresponding effective-address. <a href="#g1ee1f004fff19c3338f2de9d96471693"></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="../../d9/d16/group__dma__access.html#g0ba7b00fbebaabb8b39737a7c13efc67">MOC_Wait_data</a> (<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">Waits till a MOC_IGet_data or IMOC_IPut_data is completed. <a href="#g0ba7b00fbebaabb8b39737a7c13efc67"></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="../../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="#g342d07658aae4252a2e2cd6a8cc185dd"></a><br></td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g7af2715950a0ab51937a63c38756b85b"></a><!-- doxytag: member="moc_dma_spu.h::MOC_Get_data" ref="g7af2715950a0ab51937a63c38756b85b" args="(void *target, uint64_t source, int count, MOC_Datatype datatype)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_data </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&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>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>&nbsp;</td>
<td class="paramname"> <em>datatype</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wrapper-function for a blocking DMA-get operation.
<p>
Data can be of any size, constraints of low-level DMA-functions are dealt by this function. However data-addresses have to be at least 16-byte aligned.<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>target</em>&nbsp;</td><td><b>out</b> pointer to buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td><b>in</b> ea-address of data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>in</b> size of data in byte </td></tr>
<tr><td valign="top"></td><td valign="top"><em>datatype</em>&nbsp;</td><td><b>in</b> Type of Elements </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="../../dd/dfd/moc__dma-get__spu_8c-source.html#l00009">9</a> of file <a class="el" href="../../dd/dfd/moc__dma-get__spu_8c-source.html">moc_dma-get_spu.c</a>.</p>
<p>References <a class="el" href="../../d7/df2/imoc__dma-get__ppu_8c-source.html#l00009">IMOC_get_data()</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00109">IMOC_TEST_BYTECOUNT</a>, and <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00066">MOC_ERR_BAD_ALIGNMENT</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_g7af2715950a0ab51937a63c38756b85b_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_g7af2715950a0ab51937a63c38756b85b_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_g7af2715950a0ab51937a63c38756b85b_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#g53d36c567e4c98e5d258a7857096e7ab" title="Internal wrapper&#45;function for a blocking DMA&#45;get operation." alt="" coords="165,5,277,32"><area shape="rect" href="../../d3/dd3/group__internal__p2p__bmalloc.html#gad8750c7ba3d6da9c137c2c462d2c531" title="void bmalloc_print_nodes() { if (!bmalloc_first_node) printf(&quot;No nodes in list\\n&quot;);..." alt="" coords="325,5,421,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g3716465d42f20379bbf65002ecd9e448"></a><!-- doxytag: member="moc_dma_ppu.h::MOC_Get_data" ref="g3716465d42f20379bbf65002ecd9e448" args="(void *target, uint32_t source, int count, MOC_Datatype datatype, int dest)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Get_data </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&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>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>&nbsp;</td>
<td class="paramname"> <em>datatype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>dest</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wrapper-function for a blocking DMA-get operation.
<p>
Data can be of any size, constraints of low-level DMA-functions are dealt by this function. However data-addresses have to be at least 16-byte aligned.<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>target</em>&nbsp;</td><td><b>out</b> pointer to buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td><b>in</b> local-store address of data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>in</b> size of data in byte </td></tr>
<tr><td valign="top"></td><td valign="top"><em>datatype</em>&nbsp;</td><td><b>in</b> Type of Elements </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>in</b> rank of source spe </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="../../dd/d90/moc__dma-get__ppu_8c-source.html#l00009">9</a> of file <a class="el" href="../../dd/d90/moc__dma-get__ppu_8c-source.html">moc_dma-get_ppu.c</a>.</p>
<p>References <a class="el" href="../../d7/df2/imoc__dma-get__ppu_8c-source.html#l00009">IMOC_get_data()</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00109">IMOC_TEST_BYTECOUNT</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00095">IMOC_TEST_RANK</a>, and <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00066">MOC_ERR_BAD_ALIGNMENT</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_g3716465d42f20379bbf65002ecd9e448_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_g3716465d42f20379bbf65002ecd9e448_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_g3716465d42f20379bbf65002ecd9e448_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#g53d36c567e4c98e5d258a7857096e7ab" title="Internal wrapper&#45;function for a blocking DMA&#45;get operation." alt="" coords="165,5,277,32"><area shape="rect" href="../../d3/dd3/group__internal__p2p__bmalloc.html#gad8750c7ba3d6da9c137c2c462d2c531" title="void bmalloc_print_nodes() { if (!bmalloc_first_node) printf(&quot;No nodes in list\\n&quot;);..." alt="" coords="325,5,421,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g9ff1639ada54f14994b7d199fc2ad984"></a><!-- doxytag: member="moc_dma_spu.h::MOC_IGet_data" ref="g9ff1639ada54f14994b7d199fc2ad984" args="(void *target, uint64_t source, int count, MOC_Datatype datatype, MOC_Request *request)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_IGet_data </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&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>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>&nbsp;</td>
<td class="paramname"> <em>datatype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *&nbsp;</td>
<td class="paramname"> <em>request</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wrapper-function for a non-blocking DMA-get operation.
<p>
Data can be of any size, constraints of low-level DMA-functions are dealt by this function. However data-addresses have to be at least 16-byte aligned. Operation-completion can be derived with MOC_Test and MOC_Wait.<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>target</em>&nbsp;</td><td><b>out</b> pointer to buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td><b>in</b> ea-address of data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>in</b> size of data in byte </td></tr>
<tr><td valign="top"></td><td valign="top"><em>datatype</em>&nbsp;</td><td><b>in</b> Type of Elements </td></tr>
<tr><td valign="top"></td><td valign="top"><em>request</em>&nbsp;</td><td><b>out</b> communication request (handle) </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="../../d5/df4/moc__dma-iget__spu_8c-source.html#l00010">10</a> of file <a class="el" href="../../d5/df4/moc__dma-iget__spu_8c-source.html">moc_dma-iget_spu.c</a>.</p>
<p>References <a class="el" href="../../d7/de1/moc_8h-source.html#l00574">moc_request_struct::dma_data</a>, <a class="el" href="../../d6/df6/imoc__dma-iget__ppu_8c-source.html#l00010">IMOC_iget_data()</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00109">IMOC_TEST_BYTECOUNT</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00066">MOC_ERR_BAD_ALIGNMENT</a>, <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00025">MOC_REQ_TYPE_DMA</a>, <a class="el" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">moc_request_struct::request_data</a>, and <a class="el" href="../../d7/de1/moc_8h-source.html#l00571">moc_request_struct::request_type</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_g9ff1639ada54f14994b7d199fc2ad984_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_g9ff1639ada54f14994b7d199fc2ad984_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_g9ff1639ada54f14994b7d199fc2ad984_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#g0c76eeaa08ac299e19dc2758d4142cd9" title="Internal wrapper&#45;function for a non&#45;blocking DMA&#45;get operation." alt="" coords="168,5,283,32"><area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33" title="Reserves a tag on the ppu, for communication with a given spu." alt="" coords="331,5,451,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g08f0af30f2e0e6840ec2be5ca93fd14f"></a><!-- doxytag: member="moc_dma_ppu.h::MOC_IGet_data" ref="g08f0af30f2e0e6840ec2be5ca93fd14f" args="(void *target, uint32_t source, int count, MOC_Datatype datatype, int dest, MOC_Request *request)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_IGet_data </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&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>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>&nbsp;</td>
<td class="paramname"> <em>datatype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *&nbsp;</td>
<td class="paramname"> <em>request</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wrapper-function for a non-blocking DMA-get operation.
<p>
Data can be of any size, constraints of low-level DMA-functions are dealt by this function. However data-addresses have to be at least 16-byte aligned. Operation-completion can be derived with MOC_Test and MOC_Wait.<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>target</em>&nbsp;</td><td><b>out</b> pointer to buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td><b>in</b> local-store address of data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>in</b> size of data in byte </td></tr>
<tr><td valign="top"></td><td valign="top"><em>datatype</em>&nbsp;</td><td><b>in</b> Type of Elements </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td><b>in</b> rank of source spe </td></tr>
<tr><td valign="top"></td><td valign="top"><em>request</em>&nbsp;</td><td><b>out</b> communication request (handle) </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="../../d8/da3/moc__dma-iget__ppu_8c-source.html#l00011">11</a> of file <a class="el" href="../../d8/da3/moc__dma-iget__ppu_8c-source.html">moc_dma-iget_ppu.c</a>.</p>
<p>References <a class="el" href="../../d7/de1/moc_8h-source.html#l00574">moc_request_struct::dma_data</a>, <a class="el" href="../../d6/df6/imoc__dma-iget__ppu_8c-source.html#l00010">IMOC_iget_data()</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00109">IMOC_TEST_BYTECOUNT</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00095">IMOC_TEST_RANK</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00066">MOC_ERR_BAD_ALIGNMENT</a>, <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00025">MOC_REQ_TYPE_DMA</a>, <a class="el" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">moc_request_struct::request_data</a>, and <a class="el" href="../../d7/de1/moc_8h-source.html#l00571">moc_request_struct::request_type</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_g08f0af30f2e0e6840ec2be5ca93fd14f_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_g08f0af30f2e0e6840ec2be5ca93fd14f_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_g08f0af30f2e0e6840ec2be5ca93fd14f_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#g0c76eeaa08ac299e19dc2758d4142cd9" title="Internal wrapper&#45;function for a non&#45;blocking DMA&#45;get operation." alt="" coords="168,5,283,32"><area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33" title="Reserves a tag on the ppu, for communication with a given spu." alt="" coords="331,5,451,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g3ee8513f7c0ebb782a3b0d17b8135693"></a><!-- doxytag: member="moc_dma_spu.h::MOC_IPut_data" ref="g3ee8513f7c0ebb782a3b0d17b8135693" args="(void *source, uint64_t target, int count, MOC_Datatype datatype, MOC_Request *request)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_IPut_data </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&nbsp;</td>
<td class="paramname"> <em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>&nbsp;</td>
<td class="paramname"> <em>datatype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *&nbsp;</td>
<td class="paramname"> <em>request</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wrapper-function for a non-blocking DMA-put operation.
<p>
Data-size should be a multiple of 16 because of low-level constraints, but there is no upper limit of transfer-size. Data-addresses have to be at least 16-byte aligned. Operation-completion can be derived with MOC_Test and MOC_Wait.<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> pointer to data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td><b>in</b> ea-address of buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>in</b> size of data in byte </td></tr>
<tr><td valign="top"></td><td valign="top"><em>datatype</em>&nbsp;</td><td><b>in</b> Type of Elements </td></tr>
<tr><td valign="top"></td><td valign="top"><em>request</em>&nbsp;</td><td><b>out</b> communication request (handle) </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="../../d7/d6a/moc__dma-iput__spu_8c-source.html#l00011">11</a> of file <a class="el" href="../../d7/d6a/moc__dma-iput__spu_8c-source.html">moc_dma-iput_spu.c</a>.</p>
<p>References <a class="el" href="../../d7/de1/moc_8h-source.html#l00574">moc_request_struct::dma_data</a>, <a class="el" href="../../dd/d07/imoc__dma-iput__ppu_8c-source.html#l00019">IMOC_iput_data()</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00109">IMOC_TEST_BYTECOUNT</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00066">MOC_ERR_BAD_ALIGNMENT</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00067">MOC_ERR_BAD_SIZE</a>, <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00025">MOC_REQ_TYPE_DMA</a>, <a class="el" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">moc_request_struct::request_data</a>, and <a class="el" href="../../d7/de1/moc_8h-source.html#l00571">moc_request_struct::request_type</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_g3ee8513f7c0ebb782a3b0d17b8135693_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_g3ee8513f7c0ebb782a3b0d17b8135693_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_g3ee8513f7c0ebb782a3b0d17b8135693_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#gc181bb2e3eb058990534c71355af3443" title="Internal wrapper&#45;function for a non&#45;blocking DMA&#45;put operation." alt="" coords="168,5,283,32"><area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33" title="Reserves a tag on the ppu, for communication with a given spu." alt="" coords="331,5,451,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g1fd9a141352dd4344e20f1bde778d265"></a><!-- doxytag: member="moc_dma_ppu.h::MOC_IPut_data" ref="g1fd9a141352dd4344e20f1bde778d265" args="(void *source, uint32_t target, int count, MOC_Datatype datatype, int src, MOC_Request *request)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_IPut_data </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&nbsp;</td>
<td class="paramname"> <em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>&nbsp;</td>
<td class="paramname"> <em>datatype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *&nbsp;</td>
<td class="paramname"> <em>request</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wrapper-function for a non-blocking DMA-put operation.
<p>
Data-size should be a multiple of 16 because of low-level constraints, but there is no upper limit of transfer-size. Data-addresses have to be at least 16-byte aligned. Operation-completion can be derived with MOC_Test and MOC_Wait.<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> pointer to data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td><b>in</b> local-store address of buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>in</b> size of data in byte </td></tr>
<tr><td valign="top"></td><td valign="top"><em>datatype</em>&nbsp;</td><td><b>in</b> Type of Elements </td></tr>
<tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td><b>in</b> rank of source-SPE </td></tr>
<tr><td valign="top"></td><td valign="top"><em>request</em>&nbsp;</td><td><b>out</b> communication request (handle) </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="../../dd/dd5/moc__dma-iput__ppu_8c-source.html#l00011">11</a> of file <a class="el" href="../../dd/dd5/moc__dma-iput__ppu_8c-source.html">moc_dma-iput_ppu.c</a>.</p>
<p>References <a class="el" href="../../d7/de1/moc_8h-source.html#l00574">moc_request_struct::dma_data</a>, <a class="el" href="../../dd/d07/imoc__dma-iput__ppu_8c-source.html#l00019">IMOC_iput_data()</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00109">IMOC_TEST_BYTECOUNT</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00095">IMOC_TEST_RANK</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00066">MOC_ERR_BAD_ALIGNMENT</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00067">MOC_ERR_BAD_SIZE</a>, <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00025">MOC_REQ_TYPE_DMA</a>, <a class="el" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">moc_request_struct::request_data</a>, and <a class="el" href="../../d7/de1/moc_8h-source.html#l00571">moc_request_struct::request_type</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_g1fd9a141352dd4344e20f1bde778d265_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_g1fd9a141352dd4344e20f1bde778d265_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_g1fd9a141352dd4344e20f1bde778d265_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#gc181bb2e3eb058990534c71355af3443" title="Internal wrapper&#45;function for a non&#45;blocking DMA&#45;put operation." alt="" coords="168,5,283,32"><area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33" title="Reserves a tag on the ppu, for communication with a given spu." alt="" coords="331,5,451,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g1baab78008563718380887026cf9444f"></a><!-- doxytag: member="moc_dma_spu.h::MOC_Put_data" ref="g1baab78008563718380887026cf9444f" args="(void *source, uint64_t target, int count, MOC_Datatype datatype)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Put_data </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&nbsp;</td>
<td class="paramname"> <em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>&nbsp;</td>
<td class="paramname"> <em>datatype</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wrapper-function for a blocking DMA-put operation.
<p>
Data-size should be a multiple of 16 because of low-level constraints, but there is no upper limit of transfer-size. Data-addresses have to be at least 16-byte aligned.<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> pointer to data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td><b>in</b> ea-address of buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>in</b> size of data in byte </td></tr>
<tr><td valign="top"></td><td valign="top"><em>datatype</em>&nbsp;</td><td><b>in</b> Type of Elements </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="../../d8/dbc/moc__dma-put__spu_8c-source.html#l00008">8</a> of file <a class="el" href="../../d8/dbc/moc__dma-put__spu_8c-source.html">moc_dma-put_spu.c</a>.</p>
<p>References <a class="el" href="../../db/db1/imoc__dma-put__ppu_8c-source.html#l00009">IMOC_put_data()</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00109">IMOC_TEST_BYTECOUNT</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00066">MOC_ERR_BAD_ALIGNMENT</a>, and <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00067">MOC_ERR_BAD_SIZE</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_g1baab78008563718380887026cf9444f_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_g1baab78008563718380887026cf9444f_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_g1baab78008563718380887026cf9444f_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#gb48c58191a7cf4d3e502d1c7a6c0ab9c" title="Internal wrapper&#45;function for a blocking DMA&#45;put operation." alt="" coords="165,5,277,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="ge07f4b35da50be472772f9d3a426669e"></a><!-- doxytag: member="moc_dma_ppu.h::MOC_Put_data" ref="ge07f4b35da50be472772f9d3a426669e" args="(void *source, uint32_t target, int count, MOC_Datatype datatype, int src)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Put_data </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&nbsp;</td>
<td class="paramname"> <em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>&nbsp;</td>
<td class="paramname"> <em>datatype</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>src</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Wrapper-function for a blocking DMA-put operation.
<p>
Data-size should be a multiple of 16 because of low-level constraints, but there is no upper limit of transfer-size. Data-addresses have to be at least 16-byte aligned.<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> pointer to data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td><b>in</b> local-store address of buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td><b>in</b> size of data in byte </td></tr>
<tr><td valign="top"></td><td valign="top"><em>datatype</em>&nbsp;</td><td><b>in</b> Type of Elements </td></tr>
<tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td><b>in</b> rank of source-SPE </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="../../da/d4a/moc__dma-put__ppu_8c-source.html#l00009">9</a> of file <a class="el" href="../../da/d4a/moc__dma-put__ppu_8c-source.html">moc_dma-put_ppu.c</a>.</p>
<p>References <a class="el" href="../../db/db1/imoc__dma-put__ppu_8c-source.html#l00009">IMOC_put_data()</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00109">IMOC_TEST_BYTECOUNT</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00095">IMOC_TEST_RANK</a>, <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00066">MOC_ERR_BAD_ALIGNMENT</a>, and <a class="el" href="../../d3/d95/moc__error__codes_8h-source.html#l00067">MOC_ERR_BAD_SIZE</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_ge07f4b35da50be472772f9d3a426669e_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_ge07f4b35da50be472772f9d3a426669e_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_ge07f4b35da50be472772f9d3a426669e_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#gb48c58191a7cf4d3e502d1c7a6c0ab9c" title="Internal wrapper&#45;function for a blocking DMA&#45;put operation." alt="" coords="165,5,277,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g342d07658aae4252a2e2cd6a8cc185dd"></a><!-- doxytag: member="moc_dma_ppu.h::MOC_Test_data" ref="g342d07658aae4252a2e2cd6a8cc185dd" args="(MOC_Request *request, int *flag)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Test_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *&nbsp;</td>
<td class="paramname"> <em>request</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>flag</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 a MOC_IGet_data or IMOC_IPut_data is completed.
<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>request</em>&nbsp;</td><td><b>in</b> request-handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>flag</em>&nbsp;</td><td><b>out</b> true if operation is completed </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="../../d7/dc5/moc__dma-test__ppu_8c-source.html#l00011">11</a> of file <a class="el" href="../../d7/dc5/moc__dma-test__ppu_8c-source.html">moc_dma-test_ppu.c</a>.</p>
<p>References <a class="el" href="../../d7/de1/moc_8h-source.html#l00574">moc_request_struct::dma_data</a>, <a class="el" href="../../d2/df9/imoc__dma-test__ppu_8c-source.html#l00009">IMOC_test_dma()</a>, and <a class="el" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">moc_request_struct::request_data</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_g342d07658aae4252a2e2cd6a8cc185dd_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_g342d07658aae4252a2e2cd6a8cc185dd_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_g342d07658aae4252a2e2cd6a8cc185dd_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#gdc3d91a083a9dc3aa539aee4d56616f0" title="Tests if a IMOC_iget_data or IMOC_iput_data is completed." alt="" coords="169,5,284,32"><area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#gf465203c58c5a8066a7ef3ee91b15cec" title="Releases a reserved tag." alt="" coords="333,5,453,32"></map>
</div>
</div>
</div><p>
<a class="anchor" name="g40b39bb7c07bc07d783c85b10f0bf60f"></a><!-- doxytag: member="moc_dma_ppu.h::MOC_Translate_EA_to_LS" ref="g40b39bb7c07bc07d783c85b10f0bf60f" args="(uint64_t ea, int rank, uint32_t *ls)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Translate_EA_to_LS </td>
<td>(</td>
<td class="paramtype">uint64_t&nbsp;</td>
<td class="paramname"> <em>ea</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>rank</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&nbsp;</td>
<td class="paramname"> <em>ls</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Translates an effective-address of a SPU into the corresponding local-store address.
<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>ea</em>&nbsp;</td><td><b>in</b> effective-address </td></tr>
<tr><td valign="top"></td><td valign="top"><em>rank</em>&nbsp;</td><td><b>in</b> rank of SPU </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ls</em>&nbsp;</td><td><b>out</b> local-store address </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../d4/d65/moc__translate__ea__ls__ppu_8c-source.html#l00004">4</a> of file <a class="el" href="../../d4/d65/moc__translate__ea__ls__ppu_8c-source.html">moc_translate_ea_ls_ppu.c</a>.</p>
<p>References <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00106">moc_ppu_thread_count</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00123">moc_spu_thread_list</a>.</p>
</div>
</div><p>
<a class="anchor" name="g1ee1f004fff19c3338f2de9d96471693"></a><!-- doxytag: member="moc_dma_spu.h::MOC_Translate_LS_to_EA" ref="g1ee1f004fff19c3338f2de9d96471693" args="(void *ls, uint64_t *ea)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Translate_LS_to_EA </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>ls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t *&nbsp;</td>
<td class="paramname"> <em>ea</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Translates a local-store address of the calling SPU into the corresponding effective-address.
<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>ls</em>&nbsp;</td><td><b>in</b> local-store address </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ea</em>&nbsp;</td><td><b>out</b> effective-address </td></tr>
</table>
</dl>
<p>Definition at line <a class="el" href="../../d7/d57/moc__translate__ls__ea__spu_8c-source.html#l00004">4</a> of file <a class="el" href="../../d7/d57/moc__translate__ls__ea__spu_8c-source.html">moc_translate_ls_ea_spu.c</a>.</p>
<p>References <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00052">node_handle</a>.</p>
</div>
</div><p>
<a class="anchor" name="g0ba7b00fbebaabb8b39737a7c13efc67"></a><!-- doxytag: member="moc_dma_ppu.h::MOC_Wait_data" ref="g0ba7b00fbebaabb8b39737a7c13efc67" args="(MOC_Request *request)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MOC_Wait_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *&nbsp;</td>
<td class="paramname"> <em>request</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Waits till a MOC_IGet_data or IMOC_IPut_data is completed.
<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>request</em>&nbsp;</td><td><b>in</b> request-handle </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="../../d4/df9/moc__dma-wait__ppu_8c-source.html#l00011">11</a> of file <a class="el" href="../../d4/df9/moc__dma-wait__ppu_8c-source.html">moc_dma-wait_ppu.c</a>.</p>
<p>References <a class="el" href="../../d7/de1/moc_8h-source.html#l00574">moc_request_struct::dma_data</a>, <a class="el" href="../../d8/da5/imoc__dma-wait__ppu_8c-source.html#l00009">IMOC_wait_dma()</a>, and <a class="el" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">moc_request_struct::request_data</a>.</p>
<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="../../d9/d16/group__dma__access_g0ba7b00fbebaabb8b39737a7c13efc67_cgraph.png" border="0" usemap="#d9/d16/group__dma__access_g0ba7b00fbebaabb8b39737a7c13efc67_cgraph_map" alt=""></center>
<map name="d9/d16/group__dma__access_g0ba7b00fbebaabb8b39737a7c13efc67_cgraph_map">
<area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#g57b89667357146b299f32bd114e0e5ad" title="Waits till a IMOC_iget_data or IMOC_iput_data is completed." alt="" coords="172,5,287,32"><area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#gf465203c58c5a8066a7ef3ee91b15cec" title="Releases a reserved tag." alt="" coords="336,5,456,32"></map>
</div>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:51:02 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,2 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#g0c76eeaa08ac299e19dc2758d4142cd9" title="Internal wrapper&#45;function for a non&#45;blocking DMA&#45;get operation." alt="" coords="168,5,283,32">
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33" title="Reserves a tag on the ppu, for communication with a given spu." alt="" coords="331,5,451,32">
@@ -0,0 +1 @@
e1e918e87469897698a8599843626d92
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

@@ -0,0 +1,2 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#g57b89667357146b299f32bd114e0e5ad" title="Waits till a IMOC_iget_data or IMOC_iput_data is completed." alt="" coords="172,5,287,32">
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#gf465203c58c5a8066a7ef3ee91b15cec" title="Releases a reserved tag." alt="" coords="336,5,456,32">
@@ -0,0 +1 @@
b0590e78d6dab1dd39762b15c2e670bc
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

@@ -0,0 +1 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#gb48c58191a7cf4d3e502d1c7a6c0ab9c" title="Internal wrapper&#45;function for a blocking DMA&#45;put operation." alt="" coords="165,5,277,32">
@@ -0,0 +1 @@
18bba259ab770d041c2d242f88f75d76
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,2 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#gc181bb2e3eb058990534c71355af3443" title="Internal wrapper&#45;function for a non&#45;blocking DMA&#45;put operation." alt="" coords="168,5,283,32">
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33" title="Reserves a tag on the ppu, for communication with a given spu." alt="" coords="331,5,451,32">
@@ -0,0 +1 @@
cc353fced3deaed14d950a770adedbb0
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -0,0 +1,2 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#gdc3d91a083a9dc3aa539aee4d56616f0" title="Tests if a IMOC_iget_data or IMOC_iput_data is completed." alt="" coords="169,5,284,32">
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#gf465203c58c5a8066a7ef3ee91b15cec" title="Releases a reserved tag." alt="" coords="333,5,453,32">
@@ -0,0 +1 @@
422279512d282edaae2adfffd596a931
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

@@ -0,0 +1,2 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#g53d36c567e4c98e5d258a7857096e7ab" title="Internal wrapper&#45;function for a blocking DMA&#45;get operation." alt="" coords="165,5,277,32">
<area shape="rect" href="$d3/dd3/group__internal__p2p__bmalloc.html#gad8750c7ba3d6da9c137c2c462d2c531" title="void bmalloc_print_nodes() { if (!bmalloc_first_node) printf(&quot;No nodes in list\\n&quot;);..." alt="" coords="325,5,421,32">
@@ -0,0 +1 @@
eb881a23b0f9133d77f6a732085f4477
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

@@ -0,0 +1,2 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#gc181bb2e3eb058990534c71355af3443" title="Internal wrapper&#45;function for a non&#45;blocking DMA&#45;put operation." alt="" coords="168,5,283,32">
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33" title="Reserves a tag on the ppu, for communication with a given spu." alt="" coords="331,5,451,32">
@@ -0,0 +1 @@
cc353fced3deaed14d950a770adedbb0
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -0,0 +1,2 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#g53d36c567e4c98e5d258a7857096e7ab" title="Internal wrapper&#45;function for a blocking DMA&#45;get operation." alt="" coords="165,5,277,32">
<area shape="rect" href="$d3/dd3/group__internal__p2p__bmalloc.html#gad8750c7ba3d6da9c137c2c462d2c531" title="void bmalloc_print_nodes() { if (!bmalloc_first_node) printf(&quot;No nodes in list\\n&quot;);..." alt="" coords="325,5,421,32">
@@ -0,0 +1 @@
eb881a23b0f9133d77f6a732085f4477
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

@@ -0,0 +1,2 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#g0c76eeaa08ac299e19dc2758d4142cd9" title="Internal wrapper&#45;function for a non&#45;blocking DMA&#45;get operation." alt="" coords="168,5,283,32">
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33" title="Reserves a tag on the ppu, for communication with a given spu." alt="" coords="331,5,451,32">
@@ -0,0 +1 @@
e1e918e87469897698a8599843626d92
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

@@ -0,0 +1 @@
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#gb48c58191a7cf4d3e502d1c7a6c0ab9c" title="Internal wrapper&#45;function for a blocking DMA&#45;put operation." alt="" coords="165,5,277,32">
@@ -0,0 +1 @@
18bba259ab770d041c2d242f88f75d76
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -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_error_class.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/system/moc_error_class.c File Reference</h1>
<p>
<code>#include &lt;stdlib.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="../../d4/d9b/imoc_8h-source.html">internal/imoc.h</a>&gt;</code><br>
<p>
<div class="dynheader">
Include dependency graph for moc_error_class.c:</div>
<div class="dynsection">
<p><center><img src="../../d9/dd3/moc__error__class_8c__incl.png" border="0" usemap="#src/noarch/system/moc_error_class.c_map" alt=""></center>
<map name="src/noarch/system/moc_error_class.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="193,80,249,107"><area shape="rect" href="../../d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="348,155,455,181"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="67,155,184,181"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="72,229,213,256"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="237,229,307,256"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="72,304,197,331"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="272,304,403,331"><area shape="rect" href="../../d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="477,304,568,331"></map>
</div>
<p>
<a href="../../d8/d02/moc__error__class_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/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="../../d8/da1/group__environment__error.html#g46d1823f8eb05511d5b98ecdeafa33b2"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:15 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,6 @@
<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">
@@ -0,0 +1 @@
ad35160ce49654b6db0ef5abb18637c0
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

@@ -0,0 +1,87 @@
<!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_datatype_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_datatype_ppu.h</h1><a href="../../d8/de2/moc__datatype__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_DATATYPE_PPU_H_</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define MOC_DATATYPE_PPU_H_</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a>00004 <span class="preprocessor">#include "../moc_datatype.h"</span><span class="comment"></span>
<a name="l00005"></a>00005 <span class="comment">/**</span>
<a name="l00006"></a>00006 <span class="comment"> * \addtogroup p2p_datatype</span>
<a name="l00007"></a>00007 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">//@{</span>
<a name="l00009"></a>00009 <span class="comment"></span><span class="comment">/**</span>
<a name="l00010"></a>00010 <span class="comment"> * @name PPU-only</span>
<a name="l00011"></a>00011 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00012"></a>00012 <span class="comment">//@{</span>
<a name="l00013"></a>00013 <span class="comment"></span><span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">/**</span>
<a name="l00015"></a>00015 <span class="comment"> * C-Datatype long.</span>
<a name="l00016"></a>00016 <span class="comment"> * It has a size of 8 byte.</span>
<a name="l00017"></a>00017 <span class="comment"> * \attention On the SPU long has a size of 4 byte. So if</span>
<a name="l00018"></a>00018 <span class="comment"> * you are trying to send data of type long from the PPU to a</span>
<a name="l00019"></a>00019 <span class="comment"> * SPU or vice versa there will be an error.</span>
<a name="l00020"></a>00020 <span class="comment"> **/</span>
<a name="l00021"></a><a class="code" href="../../dc/d6e/group__p2p__datatype.html#g38cae657eabde06ce8e851cea1239398">00021</a> <span class="preprocessor">#define MOC_LONG ((MOC_Datatype)64+2)</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00023"></a>00023 <span class="comment">/**</span>
<a name="l00024"></a>00024 <span class="comment"> * C-Datatype unsigned long.</span>
<a name="l00025"></a>00025 <span class="comment"> * It has a size of 8 byte.</span>
<a name="l00026"></a>00026 <span class="comment"> * \attention On the SPU unsigned long has a size of 4 byte. So if</span>
<a name="l00027"></a>00027 <span class="comment"> * you are trying to send data of type long from the PPU to a</span>
<a name="l00028"></a>00028 <span class="comment"> * SPU or vice versa there will be an error.</span>
<a name="l00029"></a>00029 <span class="comment"> **/</span>
<a name="l00030"></a><a class="code" href="../../dc/d6e/group__p2p__datatype.html#gb57eeb637cbd234015a8411061e77dac">00030</a> <span class="preprocessor">#define MOC_UNSIGNED_LONG ((MOC_Datatype)64+3)</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00032"></a>00032
<a name="l00033"></a>00033 <span class="comment"></span>
<a name="l00034"></a>00034 <span class="comment">/**</span>
<a name="l00035"></a>00035 <span class="comment"> * Cell-specific Datatype vector bool char (vec_bchar16).</span>
<a name="l00036"></a>00036 <span class="comment"> * It has a size of 16 byte.</span>
<a name="l00037"></a>00037 <span class="comment"> * \note PPU-only. Is mapped to the SPU-Datatype vector unsigned char.</span>
<a name="l00038"></a>00038 <span class="comment"> **/</span>
<a name="l00039"></a><a class="code" href="../../dc/d6e/group__p2p__datatype.html#gdc8da17a061cafcea7b90d36154e9e51">00039</a> <span class="preprocessor">#define MOC_VEC_BCHAR16 ((MOC_Datatype)128+0)</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00041"></a>00041 <span class="comment">/** </span>
<a name="l00042"></a>00042 <span class="comment"> * Cell-specific Datatype vector bool short (vec_bshort8).</span>
<a name="l00043"></a>00043 <span class="comment"> * It has a size of 16 byte.</span>
<a name="l00044"></a>00044 <span class="comment"> * \note PPU-only. Is mapped to the SPU-Datatype vector unsigned short.</span>
<a name="l00045"></a>00045 <span class="comment"> **/</span>
<a name="l00046"></a><a class="code" href="../../dc/d6e/group__p2p__datatype.html#gd63c2823c8de31536a3e7557fb62cb84">00046</a> <span class="preprocessor">#define MOC_VEC_BSHORT8 ((MOC_Datatype)128+1)</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00048"></a>00048 <span class="comment">/** </span>
<a name="l00049"></a>00049 <span class="comment"> * Cell-specific Datatype vector pixel (vec_pixel8).</span>
<a name="l00050"></a>00050 <span class="comment"> * It has a size of 16 byte.</span>
<a name="l00051"></a>00051 <span class="comment"> * \note PPU-only. Is mapped to the SPU-Datatype vector unsigned short.</span>
<a name="l00052"></a>00052 <span class="comment"> **/</span>
<a name="l00053"></a><a class="code" href="../../dc/d6e/group__p2p__datatype.html#gae8ee669e938fa84641bac5aa2f85976">00053</a> <span class="preprocessor">#define MOC_VEC_PIXEL8 ((MOC_Datatype)128+1)</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00055"></a>00055 <span class="comment">/** </span>
<a name="l00056"></a>00056 <span class="comment"> * Cell-specific Datatype vector bool int (vec_bint4).</span>
<a name="l00057"></a>00057 <span class="comment"> * It has a size of 16 byte.</span>
<a name="l00058"></a>00058 <span class="comment"> * \note PPU-only. Is mapped to the SPU-Datatype vector unsigned int.</span>
<a name="l00059"></a>00059 <span class="comment"> **/</span>
<a name="l00060"></a><a class="code" href="../../dc/d6e/group__p2p__datatype.html#ga7577143580aabf3f4bac65352e53993">00060</a> <span class="preprocessor">#define MOC_VEC_BINT4 ((MOC_Datatype)128+2)</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span>
<a name="l00062"></a>00062 <span class="comment"></span>
<a name="l00063"></a>00063 <span class="comment">//@}</span>
<a name="l00064"></a>00064 <span class="comment"></span><span class="comment">//@}</span>
<a name="l00065"></a>00065 <span class="comment"></span><span class="preprocessor">#endif </span><span class="comment">/*MOC_DATATYPE_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>
@@ -0,0 +1,49 @@
<area shape="rect" href="$d0/d3a/spu_2moc_8h.html" title="include/spu/moc.h" alt="" coords="6517,80,6645,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="11515,155,11731,181">
<area shape="rect" href="$da/dea/moc__dma-iget__spu_8c.html" title="src/spu/dma/moc_dma&#45;iget_spu.c" alt="" coords="11755,155,11973,181">
<area shape="rect" href="$dc/de8/moc__dma-iput__spu_8c.html" title="src/spu/dma/moc_dma&#45;iput_spu.c" alt="" coords="11997,155,12216,181">
<area shape="rect" href="$d8/d15/moc__dma-test__spu_8c.html" title="src/spu/dma/moc_dma&#45;test_spu.c" alt="" coords="12240,155,12459,181">
<area shape="rect" href="$d2/d14/moc__dma-wait__spu_8c.html" title="src/spu/dma/moc_dma&#45;wait_spu.c" alt="" coords="12483,155,12701,181">
<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="12725,155,12992,181">
<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="13016,155,13283,181">
<area shape="rect" href="$d6/dcd/moc__translate__ls__ea__spu_8c.html" title="src/spu/dma/moc_translate_ls_ea_spu.c" alt="" coords="12491,80,12747,107">
<area shape="rect" href="$d6/db1/moc__bcast_8c.html" title="src/noarch/communication/moc_bcast.c" alt="" coords="5205,155,5459,181">
<area shape="rect" href="$d2/d97/moc__iprobe_8c.html" title="src/noarch/communication/moc_iprobe.c" alt="" coords="5483,155,5739,181">
<area shape="rect" href="$d3/dc2/moc__isend_8c.html" title="src/noarch/communication/moc_isend.c" alt="" coords="5763,155,6013,181">
<area shape="rect" href="$d1/d8a/moc__probe_8c.html" title="src/noarch/communication/moc_probe.c" alt="" coords="6037,155,6291,181">
<area shape="rect" href="$db/d55/moc__send_8c.html" title="src/noarch/communication/moc_send.c" alt="" coords="6315,155,6563,181">
<area shape="rect" href="$d6/d21/moc__send__recv_8c.html" title="src/noarch/communication/moc_send_recv.c" alt="" coords="6587,155,6864,181">
<area shape="rect" href="$d7/d3b/moc__send__recv__replace_8c.html" title="src/noarch/communication/moc_send_recv_replace.c" alt="" coords="6888,155,7216,181">
<area shape="rect" href="$d8/d02/moc__test_8c.html" title="src/noarch/communication/moc_test.c" alt="" coords="7240,155,7483,181">
<area shape="rect" href="$d4/dfc/moc__wait_8c.html" title="src/noarch/communication/moc_wait.c" alt="" coords="7507,155,7749,181">
<area shape="rect" href="$db/d33/imoc__get__entry_8c.html" title="src/noarch/internal/communication/imoc_get_entry.c" alt="" coords="7773,155,8096,181">
<area shape="rect" href="$df/d20/imoc__get__free__entry_8c.html" title="src/noarch/internal/communication/imoc_get_free_entry.c" alt="" coords="8120,155,8472,181">
<area shape="rect" href="$dd/d9a/imoc__get__free__mid_8c.html" title="src/noarch/internal/communication/imoc_get_free_mid.c" alt="" coords="8496,155,8840,181">
<area shape="rect" href="$db/d43/imoc__test__message_8c.html" title="src/noarch/internal/communication/imoc_test_message.c" alt="" coords="8864,155,9216,181">
<area shape="rect" href="$da/d91/imoc__wait__message_8c.html" title="src/noarch/internal/communication/imoc_wait_message.c" alt="" coords="9240,155,9592,181">
<area shape="rect" href="$d3/d9d/moc__comm__rank_8c.html" title="src/noarch/system/moc_comm_rank.c" alt="" coords="9616,155,9859,181">
<area shape="rect" href="$df/ddd/moc__comm__size_8c.html" title="src/noarch/system/moc_comm_size.c" alt="" coords="9883,155,10125,181">
<area shape="rect" href="$d9/d19/moc__error__class_8c.html" title="src/noarch/system/moc_error_class.c" alt="" coords="10149,155,10389,181">
<area shape="rect" href="$df/d8a/moc__get__count_8c.html" title="src/noarch/system/moc_get_count.c" alt="" coords="10413,155,10645,181">
<area shape="rect" href="$da/d6c/moc__get__version_8c.html" title="src/noarch/system/moc_get_version.c" alt="" coords="10669,155,10909,181">
<area shape="rect" href="$d1/d72/moc__barrier__ppu_8c.html" title="src/ppu/communication/moc_barrier_ppu.c" alt="" coords="10933,155,11200,181">
<area shape="rect" href="$d9/d14/moc__bsend__ppu_8c.html" title="src/ppu/communication/moc_bsend_ppu.c" alt="" coords="11224,155,11491,181">
<area shape="rect" href="$dc/d02/moc__issend__ppu_8c.html" title="src/ppu/communication/moc_issend_ppu.c" alt="" coords="5,155,275,181">
<area shape="rect" href="$dc/db7/moc__recv__ppu_8c.html" title="src/ppu/communication/moc_recv_ppu.c" alt="" coords="299,155,552,181">
<area shape="rect" href="$d2/d00/moc__ssend__ppu_8c.html" title="src/ppu/communication/moc_ssend_ppu.c" alt="" coords="576,155,843,181">
<area shape="rect" href="$d7/d58/moc__dma-get__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;get_ppu.c" alt="" coords="867,155,1083,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="1107,155,1325,181">
<area shape="rect" href="$d8/d06/moc__dma-iput__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;iput_ppu.c" alt="" coords="1349,155,1568,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="1592,155,1808,181">
<area shape="rect" href="$d0/d04/moc__dma-test__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;test_ppu.c" alt="" coords="1832,155,2051,181">
<area shape="rect" href="$d6/de5/moc__dma-wait__ppu_8c.html" title="src/ppu/dma/moc_dma&#45;wait_ppu.c" alt="" coords="2075,155,2293,181">
<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="2317,155,2581,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="2605,155,2872,181">
<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="2896,155,3163,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="3187,155,3451,181">
<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="3475,155,3747,181">
<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="3771,155,4037,181">
<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="4061,155,4331,181">
<area shape="rect" href="$df/dac/imoc__spe__thread__ppu_8c.html" title="src/ppu/internal/imoc_spe_thread_ppu.c" alt="" coords="4355,155,4605,181">
<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="4629,155,4907,181">
<area shape="rect" href="$de/d4d/moc__error__string__ppu_8c.html" title="src/ppu/system/moc_error_string_ppu.c" alt="" coords="4931,155,5181,181">
@@ -0,0 +1 @@
1a33b6c77a6c189893850508b011234e
Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

@@ -0,0 +1,83 @@
<!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-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/internal/dma/imoc_dma-put_spu.c</h1><a href="../../da/db1/imoc__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="../../d2/de2/group__internal__p2p__dma.html#gbcda581536f49d62ee307da5cddc150e">00008</a> <span class="keywordtype">int</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>(<span class="keywordtype">void</span>* source, uint64_t target, uint32_t size)
<a name="l00009"></a>00009 {
<a name="l00010"></a>00010 uint32_t remainder_16b;
<a name="l00011"></a>00011 uint32_t remainder_16kb;
<a name="l00012"></a>00012 uint32_t offset;
<a name="l00013"></a>00013 uint32_t tag_id;
<a name="l00014"></a>00014
<a name="l00015"></a>00015 <span class="keywordflow">if</span> ((tag_id = mfc_tag_reserve()) == MFC_TAG_INVALID)
<a name="l00016"></a>00016 {
<a name="l00017"></a>00017 <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="l00018"></a>00018 }
<a name="l00019"></a>00019
<a name="l00020"></a>00020 <span class="comment">/* transfers have to be multiples of 16 bytes */</span>
<a name="l00021"></a>00021 remainder_16b = size % 16;
<a name="l00022"></a>00022
<a name="l00023"></a>00023 <span class="comment">/* subtracting remainder means the transfer has a valid size now */</span>
<a name="l00024"></a>00024 size -= remainder_16b;
<a name="l00025"></a>00025 offset = 0;
<a name="l00026"></a>00026
<a name="l00027"></a>00027 <span class="comment">/* first case: transfer of size smaller than maximum allowed one (16kbyte) */</span>
<a name="l00028"></a>00028 <span class="keywordflow">if</span> (size &lt;= <a class="code" href="../../d1/d82/moc_8h.html#0a017736e25e8020d6ddc62e8fc96141" title="Maximum byte-count which can be transferred by one DMA-transfer.">MAX_DMA_CALL_SIZE</a>)
<a name="l00029"></a>00029 {
<a name="l00030"></a>00030 mfc_put(source, target, size, tag_id, 0, 0);
<a name="l00031"></a>00031 }
<a name="l00032"></a>00032 <span class="comment">/* second case: transfer of bigger size is simply split into parts of 16kb */</span>
<a name="l00033"></a>00033 <span class="keywordflow">else</span>
<a name="l00034"></a>00034 {
<a name="l00035"></a>00035 remainder_16kb = size % <a class="code" href="../../d1/d82/moc_8h.html#0a017736e25e8020d6ddc62e8fc96141" title="Maximum byte-count which can be transferred by one DMA-transfer.">MAX_DMA_CALL_SIZE</a>;
<a name="l00036"></a>00036 <span class="keywordflow">while</span> (offset + <a class="code" href="../../d1/d82/moc_8h.html#0a017736e25e8020d6ddc62e8fc96141" title="Maximum byte-count which can be transferred by one DMA-transfer.">MAX_DMA_CALL_SIZE</a> &lt;= size)
<a name="l00037"></a>00037 {
<a name="l00038"></a>00038 mfc_put(source + offset, target + offset, <a class="code" href="../../d1/d82/moc_8h.html#0a017736e25e8020d6ddc62e8fc96141" title="Maximum byte-count which can be transferred by one DMA-transfer.">MAX_DMA_CALL_SIZE</a>,
<a name="l00039"></a>00039 tag_id, 0, 0);
<a name="l00040"></a>00040 offset += <a class="code" href="../../d1/d82/moc_8h.html#0a017736e25e8020d6ddc62e8fc96141" title="Maximum byte-count which can be transferred by one DMA-transfer.">MAX_DMA_CALL_SIZE</a>;
<a name="l00041"></a>00041 }
<a name="l00042"></a>00042 <span class="keywordflow">if</span> (remainder_16kb &gt; 0)
<a name="l00043"></a>00043 {
<a name="l00044"></a>00044 mfc_put(source + offset, target + offset, remainder_16kb, tag_id,
<a name="l00045"></a>00045 0, 0);
<a name="l00046"></a>00046 }
<a name="l00047"></a>00047 }
<a name="l00048"></a>00048 <span class="comment">/* if size was reduced previously the remaining bytes have to be transfered */</span>
<a name="l00049"></a>00049 <span class="keywordflow">if</span> (remainder_16b &gt; 0)
<a name="l00050"></a>00050 {
<a name="l00051"></a>00051 <span class="comment">/* minimum allowed transfer is 16bytes so transfer this size */</span>
<a name="l00052"></a>00052 mfc_put(source + size, target + size, 16, tag_id, 0, 0);
<a name="l00053"></a>00053 }
<a name="l00054"></a>00054
<a name="l00055"></a>00055 <span class="comment">/* waiting for dma completion necessary */</span>
<a name="l00056"></a>00056 mfc_write_tag_mask(1 &lt;&lt; tag_id);
<a name="l00057"></a>00057 mfc_read_tag_status_all();
<a name="l00058"></a>00058 mfc_tag_release(tag_id);
<a name="l00059"></a>00059 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g8a73ed6676bcf0c0607d98482ca1aca4" title="No error.">MOC_SUCCESS</a>;
<a name="l00060"></a>00060 }
<a name="l00061"></a>00061
</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,133 @@
<!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/communication/moc_bsend_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/communication/moc_bsend_spu.c</h1><a href="../../d6/d8c/moc__bsend__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;stdio.h&gt;</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;spu_mfcio.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="../../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="../../d2/d42/imoc__macros_8h.html">internal/imoc_macros.h</a>&gt;</span>
<a name="l00008"></a>00008 <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="l00009"></a>00009 <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="l00010"></a>00010
<a name="l00011"></a><a class="code" href="../../de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b">00011</a> <span class="keywordtype">int</span> <a class="code" href="../../de/d84/group__p2p__buffered.html#g307bf844e1416c7c021e4a3468209d0b" title="Performs a blocking buffered mode send operation.">MOC_Bsend</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> dest, <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 name="l00013"></a>00013 {
<a name="l00014"></a>00014 <a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html" title="Message-envelope structure.">moc_message_envelope_t</a> tempQueue[<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#ee1aa72cd99190cf97523a955cfa6141" title="Size of a message-queue.">queue_size</a>] <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="l00015"></a>00015 <span class="keywordtype">int</span> err, qindex, mid, bytecount;
<a name="l00016"></a>00016 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> tag_id;
<a name="l00017"></a>00017 uint64_t ea_buffer;
<a name="l00018"></a>00018
<a name="l00019"></a>00019 <span class="keywordflow">if</span> (((datatype &amp; 0xF0) &gt;&gt; 4) == 0)
<a name="l00020"></a>00020 bytecount = count;
<a name="l00021"></a>00021 <span class="keywordflow">else</span>
<a name="l00022"></a>00022 bytecount = count * (((datatype &amp; 0xF0) &gt;&gt; 4) * 2);
<a name="l00023"></a>00023
<a name="l00024"></a>00024 <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>(dest)
<a name="l00025"></a>00025 <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>(dest)
<a name="l00026"></a>00026 <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="l00027"></a>00027 <span class="comment">// if there is no data, permit Null-Buffer-Pointer</span>
<a name="l00028"></a>00028 <span class="keywordflow">if</span> (bytecount != 0)
<a name="l00029"></a>00029 {
<a name="l00030"></a>00030 <a class="code" href="../../d3/d32/group__internal__tm.html#g52f61fd7f3253d10b740a9fc792052c6" title="Tests if invalid buffer-pointer.">IMOC_TEST_BUFFER</a>(buf)
<a name="l00031"></a>00031 }
<a name="l00032"></a>00032 <a class="code" href="../../d3/d32/group__internal__tm.html#g1dfddaa8f7d9aad32b00248c7dc782d2" title="Tests if invalid rank.">IMOC_TEST_RANK</a>(dest)
<a name="l00033"></a>00033 <a class="code" href="../../d3/d32/group__internal__tm.html#g49637a9f588e1c44584d8def5c45e811" title="Tests if invalid tag in a send-operation.">IMOC_TEST_TAG_SEND</a>(tag)
<a name="l00034"></a>00034 <a class="code" href="../../d3/d32/group__internal__tm.html#gfc07f5e570f47525b80a1f3e5a36b3b3" title="Tests if invalid communicator in a send-operation.">IMOC_TEST_COMM_SEND</a>(comm)
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="comment">/* Get queue from remote-node */</span>
<a name="l00037"></a>00037 <span class="keywordflow">if</span> ((tag_id = mfc_tag_reserve()) == MFC_TAG_INVALID)
<a name="l00038"></a>00038 <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="l00039"></a>00039 mfc_get(tempQueue, <a class="code" href="../../df/ddf/group__internal__am.html#gf02c3d971a2b5e72d22c9c16b1748c04" title="Effective base-address of own remote queue at node &amp;#39;rank&amp;#39;.">IMOC_EA_REMOTE_QUEUE</a>(dest), <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#ee1aa72cd99190cf97523a955cfa6141" title="Size of a message-queue.">queue_size</a>
<a name="l00040"></a>00040 * <span class="keyword">sizeof</span>(<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html" title="Message-envelope structure.">moc_message_envelope_t</a>), tag_id, 0, 0);
<a name="l00041"></a>00041 mfc_write_tag_mask(1 &lt;&lt; tag_id);
<a name="l00042"></a>00042 mfc_read_tag_status_all();
<a name="l00043"></a>00043 mfc_tag_release(tag_id);
<a name="l00044"></a>00044
<a name="l00045"></a>00045 <span class="comment">/* search free entry in message-queue */</span>
<a name="l00046"></a>00046 err = <a class="code" href="../../d8/d88/group__internal__p2p__main.html#g2a948cdecce651ae6cc1b0c0ddb1b750" title="Get next free entry in message-queue (a local copy of the message-queue has to be...">IMOC_getFreeEntry</a>(tempQueue, tag, comm, 0, &amp;qindex);
<a name="l00047"></a>00047 <span class="keywordflow">if</span> (err)
<a name="l00048"></a>00048 <span class="keywordflow">return</span> err;
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <span class="comment">/* messages smaller-equal 8 bytes are stored directly into the message-envelope</span>
<a name="l00051"></a>00051 <span class="comment"> instead of the data's effective address */</span>
<a name="l00052"></a>00052 <span class="keywordflow">if</span> (bytecount &lt;= 8)
<a name="l00053"></a>00053 {
<a name="l00054"></a>00054 tempQueue[qindex].flags.bits.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="l00055"></a>00055 tempQueue[qindex].flags.bits.signal_back = 0;
<a name="l00056"></a>00056 tempQueue[qindex].flags.bits.in_mm = 0;
<a name="l00057"></a>00057 memcpy(&amp;tempQueue[qindex].message_address, buf, bytecount);
<a name="l00058"></a>00058 }
<a name="l00059"></a>00059 <span class="keywordflow">else</span> <span class="comment">/* normal delivery of messages */</span>
<a name="l00060"></a>00060 {
<a name="l00061"></a>00061 uint32_t buffer_padding = 16 - (bytecount % 16);
<a name="l00062"></a>00062 <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="l00063"></a>00063 <span class="keywordflow">if</span> (buffer_padding == 16)
<a name="l00064"></a>00064 buffer_padding = 0;
<a name="l00065"></a>00065
<a name="l00066"></a>00066 <span class="comment">/* search free message-ID */</span>
<a name="l00067"></a>00067 err = <a class="code" href="../../d8/d88/group__internal__p2p__main.html#g409bdbea503611cf04829413d15830df" title="Get free message-ID.">IMOC_getFreeMID</a>(&amp;mid);
<a name="l00068"></a>00068 <span class="keywordflow">if</span> (err)
<a name="l00069"></a>00069 <span class="keywordflow">return</span> err;
<a name="l00070"></a>00070
<a name="l00071"></a>00071 <span class="comment">/* search free buffer-space (buffer padded to be a multiple of 16) */</span>
<a name="l00072"></a>00072 ea_buffer = <a class="code" href="../../d3/dd3/group__internal__p2p__bmalloc.html#g5295b372d853993b2e6cfb6912a0ee41" title="Allocate buffer-space.">IMOC_bmalloc</a>(bytecount + buffer_padding, mid);
<a name="l00073"></a>00073 <span class="keywordflow">if</span> (!ea_buffer)
<a name="l00074"></a>00074 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#gb3b13f443f9a869ef4200334eb8792d0" title="Insufficient Buffer-Space.">MOC_ERR_NO_BUFFER</a>;
<a name="l00075"></a>00075
<a name="l00076"></a>00076 tempQueue[qindex].flags.bits.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="l00077"></a>00077 tempQueue[qindex].flags.bits.in_mm = 1;
<a name="l00078"></a>00078 tempQueue[qindex].flags.bits.signal_back = 1;
<a name="l00079"></a>00079 tempQueue[qindex].message_address = ea_buffer;
<a name="l00080"></a>00080
<a name="l00081"></a>00081 <span class="comment">/* copy data into buffer */</span>
<a name="l00082"></a>00082 <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>(buf, ea_buffer, bytecount + buffer_padding);
<a name="l00083"></a>00083
<a name="l00084"></a>00084 <span class="comment">/* fill message-status-entry */</span>
<a name="l00085"></a>00085 <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#abccbc7beefa7b1e2ccc84b8bd2b8805" title="base-address of own message-status-array">status_array_base</a>[mid].<a class="code" href="../../dd/df5/structmoc__message__status__struct.html#086c0d449d25774d43512b6f7fdab8ed" title="flag-union">flags</a>.<a class="code" href="../../dd/df5/structmoc__message__status__struct.html#c0bdc214525521d58f12c72874de0512" title="flag-struct">bits</a>.valid = 1;
<a name="l00086"></a>00086 <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#abccbc7beefa7b1e2ccc84b8bd2b8805" title="base-address of own message-status-array">status_array_base</a>[mid].<a class="code" href="../../dd/df5/structmoc__message__status__struct.html#086c0d449d25774d43512b6f7fdab8ed" title="flag-union">flags</a>.<a class="code" href="../../dd/df5/structmoc__message__status__struct.html#c0bdc214525521d58f12c72874de0512" title="flag-struct">bits</a>.outstanding = 1;
<a name="l00087"></a>00087 }
<a name="l00088"></a>00088
<a name="l00089"></a>00089 <span class="comment">/* fill missing message-envelope-entries */</span>
<a name="l00090"></a>00090 tempQueue[qindex].communicator = comm;
<a name="l00091"></a>00091 tempQueue[qindex].datatype = datatype;
<a name="l00092"></a>00092 tempQueue[qindex].id = mid;
<a name="l00093"></a>00093 tempQueue[qindex].size = bytecount;
<a name="l00094"></a>00094 tempQueue[qindex].tag = tag;
<a name="l00095"></a>00095 tempQueue[qindex].flags.bits.collaborative = 0;
<a name="l00096"></a>00096 tempQueue[qindex].flags.bits.special = 0;
<a name="l00097"></a>00097 tempQueue[qindex].flags.bits.valid = 1;
<a name="l00098"></a>00098 tempQueue[qindex].flags.bits.keep_valid = 0;
<a name="l00099"></a>00099
<a name="l00100"></a>00100 <span class="comment">/* write message-envelope into queue */</span>
<a name="l00101"></a>00101 <span class="keywordflow">if</span> ((tag_id = mfc_tag_reserve()) == MFC_TAG_INVALID)
<a name="l00102"></a>00102 <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="l00103"></a>00103 mfc_put(&amp;tempQueue[qindex], <a class="code" href="../../df/ddf/group__internal__am.html#gf9ad028ccbfa406c49a0ebd943486698" title="Effective base-address of own remote queue-entry at node &amp;#39;rank&amp;#39;.">IMOC_EA_REMOTE_QUEUE_ENTRY</a>(dest, qindex),
<a name="l00104"></a>00104 <span class="keyword">sizeof</span>(<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html" title="Message-envelope structure.">moc_message_envelope_t</a>), tag_id, 0, 0);
<a name="l00105"></a>00105 mfc_write_tag_mask(1 &lt;&lt; tag_id);
<a name="l00106"></a>00106 mfc_read_tag_status_all();
<a name="l00107"></a>00107 mfc_tag_release(tag_id);
<a name="l00108"></a>00108
<a name="l00109"></a>00109 <span class="keywordflow">return</span> 0;
<a name="l00110"></a>00110 }
<a name="l00111"></a>00111
</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,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/spu/system/moc_error_string_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_error_string_spu.c File Reference</h1>
<p>
<code>#include &lt;stdlib.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="../../d4/d9b/imoc_8h-source.html">internal/imoc.h</a>&gt;</code><br>
<p>
<div class="dynheader">
Include dependency graph for moc_error_string_spu.c:</div>
<div class="dynsection">
<p><center><img src="../../da/d3c/moc__error__string__spu_8c__incl.png" border="0" usemap="#src/spu/system/moc_error_string_spu.c_map" alt=""></center>
<map name="src/spu/system/moc_error_string_spu.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="193,80,249,107"><area shape="rect" href="../../d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="348,155,455,181"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="67,155,184,181"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="72,229,213,256"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="237,229,307,256"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="72,304,197,331"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="272,304,403,331"><area shape="rect" href="../../d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="477,304,568,331"></map>
</div>
<p>
<a href="../../da/d50/moc__error__string__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>SPU-only</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d97/group__internal__error.html#g4cc5a2e835e688e15548969e56cbc61e">ERROR_STRINGS_COUNT</a>&nbsp;&nbsp;&nbsp;28</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">error-message count <a href="../../d1/d97/group__internal__error.html#g4cc5a2e835e688e15548969e56cbc61e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="../../dd/dfe/structerror__strings__struct.html">error_strings_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d97/group__internal__error.html#g340b21d20b2ad476fb8d2203a5c6e538">error_strings</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">stores the error-messages <a href="../../d1/d97/group__internal__error.html#g340b21d20b2ad476fb8d2203a5c6e538"></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="../../d8/da1/group__environment__error.html#ge79331149c12155246d206d5bb7a7729"></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,7 @@
<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">
@@ -0,0 +1 @@
ca51acb4578d1e559fec35b0650c47ff
Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

@@ -0,0 +1,152 @@
<!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): imoc_issend_request_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>imoc_issend_request_struct Struct Reference</h1><!-- doxytag: class="imoc_issend_request_struct" --><code>#include &lt;<a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>&gt;</code>
<p>
<div class="dynheader">
Collaboration diagram for imoc_issend_request_struct:</div>
<div class="dynsection">
<p><center><img src="../../d7/d46/structimoc__issend__request__struct__coll__graph.png" border="0" usemap="#db/d9d/imoc__issend__request__struct__coll__map" alt="Collaboration graph"></center>
<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>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00073">73</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.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="../../d9/d89/structimoc__issend__request__struct.html#53cf82f3cdd5ddb731296d3c494d4958">mid</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d89/structimoc__issend__request__struct.html#db3150d28936af45c475ec5c9fb65cd8">isFinished</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d89/structimoc__issend__request__struct.html#2cfe5aa07e2fc69eff15e0e65da4efea">source</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d89/structimoc__issend__request__struct.html#526dc209a5b20ff98169e0803812fbb1">tag</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d89/structimoc__issend__request__struct.html#942c10dc3d21a8830d7714a4018cd42b">message_size</a></td></tr>
</table>
<hr><h2>Field Documentation</h2>
<a class="anchor" name="53cf82f3cdd5ddb731296d3c494d4958"></a><!-- doxytag: member="imoc_issend_request_struct::mid" ref="53cf82f3cdd5ddb731296d3c494d4958" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="../../d9/d89/structimoc__issend__request__struct.html#53cf82f3cdd5ddb731296d3c494d4958">imoc_issend_request_struct::mid</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00075">75</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>.</p>
<p>Referenced by <a class="el" href="../../df/df8/moc__issend__ppu_8c-source.html#l00010">MOC_ISsend()</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="db3150d28936af45c475ec5c9fb65cd8"></a><!-- doxytag: member="imoc_issend_request_struct::isFinished" ref="db3150d28936af45c475ec5c9fb65cd8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="../../d9/d89/structimoc__issend__request__struct.html#db3150d28936af45c475ec5c9fb65cd8">imoc_issend_request_struct::isFinished</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00076">76</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>.</p>
<p>Referenced by <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>, <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="2cfe5aa07e2fc69eff15e0e65da4efea"></a><!-- doxytag: member="imoc_issend_request_struct::source" ref="2cfe5aa07e2fc69eff15e0e65da4efea" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="../../d9/d89/structimoc__issend__request__struct.html#2cfe5aa07e2fc69eff15e0e65da4efea">imoc_issend_request_struct::source</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00077">77</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>.</p>
<p>Referenced by <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>, <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="526dc209a5b20ff98169e0803812fbb1"></a><!-- doxytag: member="imoc_issend_request_struct::tag" ref="526dc209a5b20ff98169e0803812fbb1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="../../d9/d89/structimoc__issend__request__struct.html#526dc209a5b20ff98169e0803812fbb1">imoc_issend_request_struct::tag</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00078">78</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>.</p>
<p>Referenced by <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>, <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="942c10dc3d21a8830d7714a4018cd42b"></a><!-- doxytag: member="imoc_issend_request_struct::message_size" ref="942c10dc3d21a8830d7714a4018cd42b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t <a class="el" href="../../d9/d89/structimoc__issend__request__struct.html#942c10dc3d21a8830d7714a4018cd42b">imoc_issend_request_struct::message_size</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>Definition at line <a class="el" href="../../d7/de1/moc_8h-source.html#l00079">79</a> of file <a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a>.</p>
<p>Referenced by <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>, <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>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>include/<a class="el" href="../../d7/de1/moc_8h-source.html">moc.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:51:18 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>
+2
View File
@@ -0,0 +1,2 @@
<area shape="rect" href="$d5/d94/moc__datatype_8h.html" title="moc_datatype.h" alt="" coords="28,80,143,107">
<area shape="rect" href="$df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="167,80,297,107">
+1
View File
@@ -0,0 +1 @@
fa3e8b968e7f40166eeffd57b0e37104
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

@@ -0,0 +1,39 @@
<!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_send_recv_replace.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/communication/moc_send_recv_replace.c</h1><a href="../../d7/d3b/moc__send__recv__replace_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
<a name="l00003"></a><a class="code" href="../../d2/ded/group__p2p__sendrecv.html#g1e5b32eaefd61f863f89778dcbbb70a2">00003</a> <span class="keywordtype">int</span> <a class="code" href="../../d2/ded/group__p2p__sendrecv.html#g1e5b32eaefd61f863f89778dcbbb70a2" title="Execute a blocking send and receive.">MOC_Sendrecv_replace</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> dest,
<a name="l00004"></a>00004 <span class="keywordtype">int</span> sendtag, <span class="keywordtype">int</span> source, <span class="keywordtype">int</span> recvtag, <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="l00005"></a>00005 {
<a name="l00006"></a>00006 <span class="keywordtype">int</span> err;
<a name="l00007"></a>00007
<a name="l00008"></a>00008 <span class="keywordflow">if</span> (0 != (err = <a class="code" href="../../d0/d64/group__p2p__main.html#g23e0afbe55bc4c86cb738c3361623a4c" title="Performs a blocking standard mode send operation.">MOC_Send</a>(buf, count, datatype, dest, sendtag, comm)))
<a name="l00009"></a>00009 <span class="keywordflow">return</span> err;
<a name="l00010"></a>00010
<a name="l00011"></a>00011 <span class="keywordflow">if</span> (0 != (err = <a class="code" href="../../d0/d64/group__p2p__main.html#g30c532510cffd36acd1b9b0b3edb3832" title="Performs a blocking standard mode receive operation.">MOC_Recv</a>(buf, count, datatype, source, recvtag, comm,
<a name="l00012"></a>00012 status)))
<a name="l00013"></a>00013 <span class="keywordflow">return</span> err;
<a name="l00014"></a>00014
<a name="l00015"></a>00015 <span class="keywordflow">return</span> 0;
<a name="l00016"></a>00016 }
<a name="l00017"></a>00017
</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,7 @@
<area shape="rect" href="$dd/d9c/moc__dma__spu_8h.html" title="spu/moc_dma_spu.h" alt="" coords="59,80,200,107">
<area shape="rect" href="$d9/d00/imoc__core__spu_8h.html" title="internal/spu/imoc_core_spu.h" alt="" coords="229,80,421,107">
<area shape="rect" href="$d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="23,155,164,181">
<area shape="rect" href="$d1/d82/moc_8h.html" title="../moc.h" alt="" coords="188,155,257,181">
<area shape="rect" href="$d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="27,229,152,256">
<area shape="rect" href="$df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="227,229,357,256">
<area shape="rect" href="$d7/d3d/imoc__core_8h.html" title="../imoc_core.h" alt="" coords="381,229,485,256">
@@ -0,0 +1 @@
51fb91ed8f22cd0000378466a0512759
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

@@ -0,0 +1,6 @@
<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">
@@ -0,0 +1 @@
23fa98af21847af12fb45ab8fb172990
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

+53
View File
@@ -0,0 +1,53 @@
<!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/communication/moc_recv_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/communication/moc_recv_spu.c File Reference</h1>
<p>
<code>#include &lt;string.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="../../dc/dcb/spu_2moc_8h-source.html">moc.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="../../d6/d82/moc__datatype__spu_8h-source.html">spu/moc_datatype_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="../../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>
<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>
<p>
<div class="dynheader">
Include dependency graph for moc_recv_spu.c:</div>
<div class="dynsection">
<p><center><img src="../../d3/d60/moc__recv__spu_8c__incl.png" border="0" usemap="#src/spu/communication/moc_recv_spu.c_map" alt=""></center>
<map name="src/spu/communication/moc_recv_spu.c_map">
<area shape="rect" href="../../d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="359,80,415,107"><area shape="rect" href="../../d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="345,229,487,256"><area shape="rect" href="../../d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="832,155,939,181"><area shape="rect" href="../../d2/d42/imoc__macros_8h.html" title="internal/imoc_macros.h" alt="" coords="591,80,745,107"><area shape="rect" href="../../d4/dce/imoc__dma__spu_8h.html" title="internal/spu/imoc_dma_spu.h" alt="" coords="616,155,808,181"><area shape="rect" href="../../d9/d00/imoc__core__spu_8h.html" title="internal/spu/imoc_core_spu.h" alt="" coords="963,155,1155,181"><area shape="rect" href="../../dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="424,155,541,181"><area shape="rect" href="../../d1/d82/moc_8h.html" title="../moc.h" alt="" coords="636,229,705,256"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="508,304,633,331"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="708,304,839,331"><area shape="rect" href="../../d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="964,229,1055,256"></map>
</div>
<p>
<a href="../../d5/d32/moc__recv__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="../../d0/d64/group__p2p__main.html#g30c532510cffd36acd1b9b0b3edb3832">MOC_Recv</a> (void *buf, int count, <a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a> datatype, int source, int tag, <a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a> comm, <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">Performs a blocking standard mode receive operation. <a href="../../d0/d64/group__p2p__main.html#g30c532510cffd36acd1b9b0b3edb3832"></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>
File diff suppressed because one or more lines are too long
@@ -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_rank.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_rank.c</h1><a href="../../d3/d9d/moc__comm__rank_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#gbadd556e16667ac8ee86af72299e4915">00008</a> <span class="keywordtype">int</span> <a class="code" href="../../d1/dd1/group__comm__mgt.html#gbadd556e16667ac8ee86af72299e4915" title="Determines the rank of the calling process in the communicator.">MOC_Comm_rank</a>(<a class="code" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767" title="Communicator-Handle.">MOC_Comm</a> comm, <span class="keywordtype">int</span> *rank)
<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 *rank = <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#9005ee3d6d0ee8b2f15628dcca724710" title="rank of node">rank</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 *rank = 0;
<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 *rank = 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,8 @@
<area shape="rect" href="$d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="193,80,249,107">
<area shape="rect" href="$d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="348,155,455,181">
<area shape="rect" href="$dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="67,155,184,181">
<area shape="rect" href="$d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="72,229,213,256">
<area shape="rect" href="$d1/d82/moc_8h.html" title="../moc.h" alt="" coords="237,229,307,256">
<area shape="rect" href="$d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="72,304,197,331">
<area shape="rect" href="$df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="272,304,403,331">
<area shape="rect" href="$d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="477,304,568,331">
@@ -0,0 +1 @@
9dd65016b995c223932fe70725d90896
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

@@ -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_max_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_max_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_max_spu_ppu.c:</div>
<div class="dynsection">
<p><center><img src="../../dc/dc2/moc__get__max__spu__ppu_8c__incl.png" border="0" usemap="#src/ppu/system/moc_get_max_spu_ppu.c_map" alt=""></center>
<map name="src/ppu/system/moc_get_max_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="../../de/d0b/moc__get__max__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#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="../../d8/d9a/group__environment__startup.html#g58c038d9978a55d6f346102dfef9acc7"></a><br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:29 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,118 @@
<!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/imoc_spe_thread_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/imoc_spe_thread_ppu.c</h1><a href="../../df/dac/imoc__spe__thread__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;free_align.h&gt;</span>
<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00005"></a>00005
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;<a class="code" href="../../db/dae/ppu_2moc_8h.html">moc.h</a>&gt;</span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;<a class="code" href="../../db/dae/ppu_2moc_8h.html">ppu/moc.h</a>&gt;</span>
<a name="l00008"></a>00008 <span class="preprocessor">#include &lt;<a class="code" href="../../d9/db3/imoc_8h.html">internal/imoc.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 <span class="comment"></span>
<a name="l00011"></a>00011 <span class="comment">/**</span>
<a name="l00012"></a>00012 <span class="comment"> * \addtogroup internal_spu_thread</span>
<a name="l00013"></a>00013 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">//@{</span>
<a name="l00015"></a>00015 <span class="comment"></span><span class="comment"></span>
<a name="l00016"></a>00016 <span class="comment">/**</span>
<a name="l00017"></a>00017 <span class="comment"> * Holds the value of currently configured SPU-Threads.</span>
<a name="l00018"></a>00018 <span class="comment"> **/</span>
<a name="l00019"></a><a class="code" href="../../dc/df1/group__internal__spu__thread.html#g6cf68c0afe2da7b3a29ecaab8ed45961">00019</a> uint8_t <a class="code" href="../../dc/df1/group__internal__spu__thread.html#g6cf68c0afe2da7b3a29ecaab8ed45961" title="actual number of SPU-Threads.">moc_spu_thread_count</a> = 0;
<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"> * Holds the value of currently configured PPU-Threads.</span>
<a name="l00023"></a>00023 <span class="comment"> **/</span>
<a name="l00024"></a><a class="code" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52">00024</a> uint8_t <a class="code" href="../../dc/df1/group__internal__spu__thread.html#gf4270da4dbf663fde50a876067ed0d52" title="actual number of PPU-Threads.">moc_ppu_thread_count</a> = 0;
<a name="l00025"></a>00025 <span class="comment"></span>
<a name="l00026"></a>00026 <span class="comment">/**</span>
<a name="l00027"></a>00027 <span class="comment"> * Holds information about the SPU-Threads.</span>
<a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * order of indices is equal to order of ranks.</span>
<a name="l00030"></a>00030 <span class="comment"> **/</span>
<a name="l00031"></a><a class="code" href="../../dc/df1/group__internal__spu__thread.html#ga5b74732b1e31ec1674ea0e5ae465c4e">00031</a> <a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html" title="SPU-Thread structure.">moc_spu_thread_t</a> <a class="code" href="../../dc/df1/group__internal__spu__thread.html#ga5b74732b1e31ec1674ea0e5ae465c4e" title="array of SPU-Threads.">moc_spu_thread_list</a>[<a class="code" href="../../db/dae/ppu_2moc_8h.html#a6aacc64a745d563ed72610e08ceb3ef" title="Maximum number of possible SPU-threads.">MOC_SPU_THREAD_MAX</a>];
<a name="l00032"></a>00032
<a name="l00033"></a><a class="code" href="../../dc/df1/group__internal__spu__thread.html#g8ad19e80234fb6b4d73684e47e007106">00033</a> uint32_t <a class="code" href="../../dc/df1/group__internal__spu__thread.html#g8ad19e80234fb6b4d73684e47e007106" title="init buffer size">moc_spu_buffer_size</a> = <a class="code" href="../../dd/df8/group__internal__core.html#g5a64c26720f2d3569ed03dd9d0547b5a" title="Default size of the buffers used for buffered communication.">MOC_BUFFER_SIZE</a>;
<a name="l00034"></a>00034
<a name="l00035"></a><a class="code" href="../../dc/df1/group__internal__spu__thread.html#g2af87be0fa5a8b93ac563c819047328a">00035</a> uint8_t <a class="code" href="../../dc/df1/group__internal__spu__thread.html#g2af87be0fa5a8b93ac563c819047328a" title="init message-queue size">moc_spu_queue_size</a> = <a class="code" href="../../dd/df8/group__internal__core.html#g081d07bc934f7112abc3c792b8941e0e" title="Default size of the message-queues.">MOC_QUEUE_SIZE</a>;
<a name="l00036"></a>00036
<a name="l00037"></a><a class="code" href="../../dc/df1/group__internal__spu__thread.html#g669046500ec44affc79468b12ddaaf92">00037</a> <span class="keywordtype">void</span>* <a class="code" href="../../dc/df1/group__internal__spu__thread.html#g669046500ec44affc79468b12ddaaf92" title="PThread-function for creating SPU-Threads.">moc_spe_pthread_func</a>(<span class="keywordtype">void</span> *arg)
<a name="l00038"></a>00038 {
<a name="l00039"></a>00039 <a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html" title="SPU-Thread structure.">moc_spu_thread_t</a>* handle = (<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html" title="SPU-Thread structure.">moc_spu_thread_t</a>*) arg;
<a name="l00040"></a>00040 <span class="comment">/* run the SPE context */</span>
<a name="l00041"></a>00041 <span class="keywordflow">if</span> (spe_cpu_info_get(SPE_COUNT_USABLE_SPES, -1) != 0)
<a name="l00042"></a>00042 {
<a name="l00043"></a>00043 <span class="keywordflow">if</span> (spe_context_run(handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#61d6807e3bab9b37ef07b0543e33574e" title="SPE-Context.">speid</a>, &amp;handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#4d3f668b79c172907febb25dbe2813ea" title="Spe-entry-address.">spe_entry_adress</a>, 0,
<a name="l00044"></a>00044 handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#a7f667cf56fc5e3cd906caa8aab765cc" title="effective address of user-defined information in main-memory">argp</a>, handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#603a62c8b05bb561c467e34acbcff2b5" title="Pointer to environment information.">envp</a>, &amp;handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#ef9a368d969bbfc92bee4076b1576b34" title="Error-Information.">stop_info</a>) &lt; 0)
<a name="l00045"></a>00045 {
<a name="l00046"></a>00046 fprintf(
<a name="l00047"></a>00047 stderr,
<a name="l00048"></a>00048 <span class="stringliteral">"FAILED Thread %u: spe_context_run(errno=%d strerror=%s)\n"</span>,
<a name="l00049"></a>00049 handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#610f1390167566df9b451401c0bb8667" title="rank of SPU-thread">rank</a>, errno, strerror(errno));
<a name="l00050"></a>00050 pthread_exit(NULL);
<a name="l00051"></a>00051 }
<a name="l00052"></a>00052 }
<a name="l00053"></a>00053 <span class="keywordflow">else</span>
<a name="l00054"></a>00054 {
<a name="l00055"></a>00055 fprintf(stderr, <span class="stringliteral">"ERROR Thread %u: No usable SPE\n"</span>, handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#610f1390167566df9b451401c0bb8667" title="rank of SPU-thread">rank</a>);
<a name="l00056"></a>00056 }
<a name="l00057"></a>00057 <span class="comment">/* destroy the SPE context */</span>
<a name="l00058"></a>00058 <span class="keywordflow">if</span> (spe_context_destroy(handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#61d6807e3bab9b37ef07b0543e33574e" title="SPE-Context.">speid</a>) != 0)
<a name="l00059"></a>00059 {
<a name="l00060"></a>00060 fprintf(
<a name="l00061"></a>00061 stderr,
<a name="l00062"></a>00062 <span class="stringliteral">"FAILED Thread %u: spe_context_destroy(errno=%d strerror=%s)\n"</span>,
<a name="l00063"></a>00063 handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#610f1390167566df9b451401c0bb8667" title="rank of SPU-thread">rank</a>, errno, strerror(errno));
<a name="l00064"></a>00064 pthread_exit(NULL);
<a name="l00065"></a>00065 }
<a name="l00066"></a>00066 <span class="comment">/* check the SPE status */</span>
<a name="l00067"></a>00067 <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#ef9a368d969bbfc92bee4076b1576b34" title="Error-Information.">stop_info</a>.stop_reason == SPE_EXIT)
<a name="l00068"></a>00068 {
<a name="l00069"></a>00069 <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#ef9a368d969bbfc92bee4076b1576b34" title="Error-Information.">stop_info</a>.result.spe_exit_code != 0)
<a name="l00070"></a>00070 {
<a name="l00071"></a>00071 fprintf(
<a name="l00072"></a>00072 stderr,
<a name="l00073"></a>00073 <span class="stringliteral">"FAILED Thread %u: SPE returned a non-zero exit status (%i)\n"</span>,
<a name="l00074"></a>00074 handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#610f1390167566df9b451401c0bb8667" title="rank of SPU-thread">rank</a>, handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#ef9a368d969bbfc92bee4076b1576b34" title="Error-Information.">stop_info</a>.result.spe_exit_code);
<a name="l00075"></a>00075 }
<a name="l00076"></a>00076 }
<a name="l00077"></a>00077 <span class="keywordflow">else</span>
<a name="l00078"></a>00078 <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#ef9a368d969bbfc92bee4076b1576b34" title="Error-Information.">stop_info</a>.stop_reason == SPE_STOP_AND_SIGNAL)
<a name="l00079"></a>00079 {
<a name="l00080"></a>00080 fprintf(
<a name="l00081"></a>00081 stderr,
<a name="l00082"></a>00082 <span class="stringliteral">" FAILED Thread %u: SPE Stop and Signal (Signalcode: %i)\n"</span>,
<a name="l00083"></a>00083 handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#610f1390167566df9b451401c0bb8667" title="rank of SPU-thread">rank</a>, handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#ef9a368d969bbfc92bee4076b1576b34" title="Error-Information.">stop_info</a>.result.spe_signal_code);
<a name="l00084"></a>00084 }
<a name="l00085"></a>00085 <span class="keywordflow">else</span>
<a name="l00086"></a>00086 {
<a name="l00087"></a>00087 fprintf(
<a name="l00088"></a>00088 stderr,
<a name="l00089"></a>00089 <span class="stringliteral">" FAILED Thread %u: SPE abnormally terminated (Reason: %i)\n"</span>,
<a name="l00090"></a>00090 handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#610f1390167566df9b451401c0bb8667" title="rank of SPU-thread">rank</a>, handle-&gt;<a class="code" href="../../d1/d8b/structmoc__spu__thread__struct.html#ef9a368d969bbfc92bee4076b1576b34" title="Error-Information.">stop_info</a>.stop_reason);
<a name="l00091"></a>00091 }
<a name="l00092"></a>00092 pthread_exit(NULL);
<a name="l00093"></a>00093 }<span class="comment"></span>
<a name="l00094"></a>00094 <span class="comment">//@}</span>
<a name="l00095"></a>00095 <span class="comment"></span>
<a name="l00096"></a>00096
</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>
+151
View File
@@ -0,0 +1,151 @@
<!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.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.h</h1><a href="../../db/dae/ppu_2moc_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_H_PPU</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define MOC_H_PPU</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a>00004
<a name="l00005"></a>00005 <span class="preprocessor">#include "<a class="code" href="../../db/d62/moc__dma__ppu_8h.html">moc_dma_ppu.h</a>"</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="preprocessor">#include "../moc.h"</span>
<a name="l00008"></a>00008
<a name="l00009"></a>00009 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00010"></a>00010 <span class="preprocessor">#include &lt;libspe2.h&gt;</span>
<a name="l00011"></a>00011
<a name="l00012"></a>00012
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">/**</span>
<a name="l00015"></a>00015 <span class="comment"> * Maximum number of possible SPU-threads.</span>
<a name="l00016"></a>00016 <span class="comment"> **/</span>
<a name="l00017"></a><a class="code" href="../../db/dae/ppu_2moc_8h.html#a6aacc64a745d563ed72610e08ceb3ef">00017</a> <span class="preprocessor">#define MOC_SPU_THREAD_MAX 8</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span>
<a name="l00019"></a>00019
<a name="l00020"></a>00020
<a name="l00021"></a>00021
<a name="l00022"></a>00022 <span class="comment"></span>
<a name="l00023"></a>00023 <span class="comment">/**</span>
<a name="l00024"></a>00024 <span class="comment"> * \addtogroup environment_startup</span>
<a name="l00025"></a>00025 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00026"></a>00026 <span class="comment">//@{</span>
<a name="l00027"></a>00027 <span class="comment"></span><span class="comment">/**</span>
<a name="l00028"></a>00028 <span class="comment"> * @name PPU-only</span>
<a name="l00029"></a>00029 <span class="comment"> **/</span><span class="comment"></span>
<a name="l00030"></a>00030 <span class="comment">//@{</span>
<a name="l00031"></a>00031 <span class="comment"></span><span class="comment"></span>
<a name="l00032"></a>00032 <span class="comment">/**</span>
<a name="l00033"></a>00033 <span class="comment"> * Returns the number of available SPUs.</span>
<a name="l00034"></a>00034 <span class="comment"> *</span>
<a name="l00035"></a>00035 <span class="comment"> * \attention PPU-only</span>
<a name="l00036"></a>00036 <span class="comment"> *</span>
<a name="l00037"></a>00037 <span class="comment"> * \note Must be called before \ref MOC_Init</span>
<a name="l00038"></a>00038 <span class="comment"> *</span>
<a name="l00039"></a>00039 <span class="comment"> * \note This function should return the count of free SPUs. But this</span>
<a name="l00040"></a>00040 <span class="comment"> * doesn't really works. To get the available SPU-count the</span>
<a name="l00041"></a>00041 <span class="comment"> * function spe_cpu_info_get() from libspe2 with</span>
<a name="l00042"></a>00042 <span class="comment"> * SPE_COUNT_USABLE_SPES-flag is used. However this function can only</span>
<a name="l00043"></a>00043 <span class="comment"> * detect if a SPU-thread is used by the calling function. There seems</span>
<a name="l00044"></a>00044 <span class="comment"> * to be no means to detect SPU-thread used by other applications.</span>
<a name="l00045"></a>00045 <span class="comment"> *</span>
<a name="l00046"></a>00046 <span class="comment"> *</span>
<a name="l00047"></a>00047 <span class="comment"> * \param count \b out number of available SPUs</span>
<a name="l00048"></a>00048 <span class="comment"> * \retval MOC_SUCCESS No error; MPI routine completed successfully.</span>
<a name="l00049"></a>00049 <span class="comment"> * \retval ... error-code</span>
<a name="l00050"></a>00050 <span class="comment"> **/</span>
<a name="l00051"></a>00051 <span class="keywordtype">int</span> <a class="code" href="../../d8/d9a/group__environment__startup.html#g66028682d3c25b76e25ca57655d47625" title="Returns the number of available SPUs.">MOC_Get_avail_spu_count</a>(<span class="keywordtype">int</span>* count);
<a name="l00052"></a>00052 <span class="comment"></span>
<a name="l00053"></a>00053 <span class="comment">/**</span>
<a name="l00054"></a>00054 <span class="comment"> * Returns the number of SPUs.</span>
<a name="l00055"></a>00055 <span class="comment"> *</span>
<a name="l00056"></a>00056 <span class="comment"> * \attention PPU-only</span>
<a name="l00057"></a>00057 <span class="comment"> *</span>
<a name="l00058"></a>00058 <span class="comment"> * \note Must be called before \ref MOC_Init</span>
<a name="l00059"></a>00059 <span class="comment"> *</span>
<a name="l00060"></a>00060 <span class="comment"> * \param count \b out SPU-count</span>
<a name="l00061"></a>00061 <span class="comment"> * \retval MOC_SUCCESS No error; MPI routine completed successfully.</span>
<a name="l00062"></a>00062 <span class="comment"> * \retval ... error-code</span>
<a name="l00063"></a>00063 <span class="comment"> **/</span>
<a name="l00064"></a>00064 <span class="keywordtype">int</span> <a class="code" href="../../d8/d9a/group__environment__startup.html#g58c038d9978a55d6f346102dfef9acc7" title="Returns the number of SPUs.">MOC_Get_max_spu_count</a>(<span class="keywordtype">int</span>* count);
<a name="l00065"></a>00065 <span class="comment"></span>
<a name="l00066"></a>00066 <span class="comment">/**</span>
<a name="l00067"></a>00067 <span class="comment"> * Adds a SPU-Thread.</span>
<a name="l00068"></a>00068 <span class="comment"> *</span>
<a name="l00069"></a>00069 <span class="comment"> * \attention PPU-only</span>
<a name="l00070"></a>00070 <span class="comment"> *</span>
<a name="l00071"></a>00071 <span class="comment"> * \note Must be called before calling \ref MOC_Init</span>
<a name="l00072"></a>00072 <span class="comment"> *</span>
<a name="l00073"></a>00073 <span class="comment"> * \note The order of executions defines the order of the ranks of the SPU-Threads</span>
<a name="l00074"></a>00074 <span class="comment"> *</span>
<a name="l00075"></a>00075 <span class="comment"> * \param phandle \b in Handle of the SPE-Program</span>
<a name="l00076"></a>00076 <span class="comment"> * \param argp \b in Pointer to some user-defined information in the main-memory</span>
<a name="l00077"></a>00077 <span class="comment"> * \retval MOC_SUCCESS No error; MPI routine completed successfully.</span>
<a name="l00078"></a>00078 <span class="comment"> * \retval MOC_ERR_BUFFER_OVERFLOW A Buffer-Overflow occured. Mosst likely you tried to add more</span>
<a name="l00079"></a>00079 <span class="comment"> * SPU-threads than defined by \ref MOC_SPU_THREAD_MAX.</span>
<a name="l00080"></a>00080 <span class="comment"> * \retval MOC_ERR_INTERN Internal Error</span>
<a name="l00081"></a>00081 <span class="comment"> **/</span>
<a name="l00082"></a>00082 <span class="keywordtype">int</span> <a class="code" href="../../d8/d9a/group__environment__startup.html#geea5b7c117adae78e954f0959fe0c447" title="Adds a SPU-Thread.">MOC_Add_spu_thread</a> ( spe_program_handle_t* phandle, <span class="keywordtype">void</span>* argp );
<a name="l00083"></a>00083 <span class="comment"></span>
<a name="l00084"></a>00084 <span class="comment">/**</span>
<a name="l00085"></a>00085 <span class="comment"> * Sets the size of the buffer used for buffered communication.</span>
<a name="l00086"></a>00086 <span class="comment"> *</span>
<a name="l00087"></a>00087 <span class="comment"> * \attention PPU-only</span>
<a name="l00088"></a>00088 <span class="comment"> *</span>
<a name="l00089"></a>00089 <span class="comment"> * \note Must be called before \ref MOC_Init</span>
<a name="l00090"></a>00090 <span class="comment"> *</span>
<a name="l00091"></a>00091 <span class="comment"> * \param size buffer-size</span>
<a name="l00092"></a>00092 <span class="comment"> * \return 0 if success, otherwise error-code</span>
<a name="l00093"></a>00093 <span class="comment"> **/</span>
<a name="l00094"></a>00094 <span class="keywordtype">int</span> <a class="code" href="../../d8/d9a/group__environment__startup.html#g0ac2f7a8d9b93b8da0408a5307f0c925" title="Sets the size of the buffer used for buffered communication.">MOC_Set_buffer_size</a> ( uint32_t size );
<a name="l00095"></a>00095 <span class="comment"></span>
<a name="l00096"></a>00096 <span class="comment">/**</span>
<a name="l00097"></a>00097 <span class="comment"> * Sets the size of the message-queues.</span>
<a name="l00098"></a>00098 <span class="comment"> *</span>
<a name="l00099"></a>00099 <span class="comment"> * \attention PPU-only</span>
<a name="l00100"></a>00100 <span class="comment"> *</span>
<a name="l00101"></a>00101 <span class="comment"> * \note Must be called before \ref MOC_Init</span>
<a name="l00102"></a>00102 <span class="comment"> *</span>
<a name="l00103"></a>00103 <span class="comment"> * \param size queue-size</span>
<a name="l00104"></a>00104 <span class="comment"> * \return 0 if success, otherwise error-code</span>
<a name="l00105"></a>00105 <span class="comment"> **/</span>
<a name="l00106"></a>00106 <span class="keywordtype">int</span> <a class="code" href="../../d8/d9a/group__environment__startup.html#g3e83e7a629951e6788a682aad654baf8" title="Sets the size of the message-queues.">MOC_Set_queue_size</a> ( uint8_t size );
<a name="l00107"></a>00107 <span class="comment"></span>
<a name="l00108"></a>00108 <span class="comment">/**</span>
<a name="l00109"></a>00109 <span class="comment"> * Initialize the MPI execution environment.</span>
<a name="l00110"></a>00110 <span class="comment"> *</span>
<a name="l00111"></a>00111 <span class="comment"> * \attention PPU-only function</span>
<a name="l00112"></a>00112 <span class="comment"> *</span>
<a name="l00113"></a>00113 <span class="comment"> * \note All processes must call this routine before executing any MOC-routine.</span>
<a name="l00114"></a>00114 <span class="comment"> *</span>
<a name="l00115"></a>00115 <span class="comment"> * \param argc \b in Pointer to the number of arguments</span>
<a name="l00116"></a>00116 <span class="comment"> * \param argv \b in Pointer to the argument vector</span>
<a name="l00117"></a>00117 <span class="comment"> * \retval MOC_SUCCESS No error; MPI routine completed successfully.</span>
<a name="l00118"></a>00118 <span class="comment"> * \retval MOC_ERR_NO_MEMORY Insufficient Memory.</span>
<a name="l00119"></a>00119 <span class="comment"> * \retval MOC_ERR_INTERN Internal Error</span>
<a name="l00120"></a>00120 <span class="comment"> **/</span>
<a name="l00121"></a>00121 <span class="keywordtype">int</span> <a class="code" href="../../d8/d9a/group__environment__startup.html#g9a59090c9d03e89f019e8276d4013c72" title="Initialize the MPI execution environment.">MOC_Init</a> ( <span class="keywordtype">int</span> *argc, <span class="keywordtype">char</span> ***argv );
<a name="l00122"></a>00122 <span class="comment"></span>
<a name="l00123"></a>00123 <span class="comment">//@}</span>
<a name="l00124"></a>00124 <span class="comment"></span><span class="comment">//@}</span>
<a name="l00125"></a>00125 <span class="comment"></span>
<a name="l00126"></a>00126
<a name="l00127"></a>00127
<a name="l00128"></a>00128 <span class="preprocessor">#endif </span><span class="comment">/*MOC_H_*/</span>
<a name="l00129"></a>00129
</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>