Initial commit.
@@ -0,0 +1,33 @@
|
||||
<!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 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 Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>src/ppu/system/moc_get_max_spu_ppu.c</h1><a href="../../d9/dee/moc__get__max__spu__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 <<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>></span>
|
||||
<a name="l00002"></a>00002 <span class="preprocessor">#include <libspe2.h></span>
|
||||
<a name="l00003"></a>00003
|
||||
<a name="l00004"></a><a class="code" href="../../d8/d9a/group__environment__startup.html#g58c038d9978a55d6f346102dfef9acc7">00004</a> <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="l00005"></a>00005 {
|
||||
<a name="l00006"></a>00006 *count = spe_cpu_info_get(SPE_COUNT_PHYSICAL_SPES, -1);
|
||||
<a name="l00007"></a>00007 <span class="keywordflow">if</span> (*count < 0)
|
||||
<a name="l00008"></a>00008 <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="l00009"></a>00009 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00010"></a>00010 }
|
||||
<a name="l00011"></a>00011
|
||||
</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
|
||||
<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,65 @@
|
||||
<!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): Environmental Management</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 Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="../../files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Environmental Management<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 Environmental Management:</div>
|
||||
<div class="dynsection">
|
||||
<center><table><tr><td><img src="../../de/d1b/group__environment__main.png" border="0" alt="" usemap="#d2/df2/de_2d1b_2group____environment____main_map">
|
||||
<map name="d2/df2/de_2d1b_2group____environment____main_map">
|
||||
<area shape="rect" href="../../d8/d9a/group__environment__startup.html" title="Functions to start and terminate the MOC-execution environment." alt="" coords="475,5,611,32"><area shape="rect" href="../../d8/da1/group__environment__error.html" title="This section describes how errors are handled." alt="" coords="491,56,595,83"><area shape="rect" href="../../d8/da6/group__environment__timer.html" title="Functions to measure time." alt="" coords="452,107,633,133"><area shape="rect" href="../../d3/d9e/group__end__user.html" title="This section describes the public API provided by the MOC-library." alt="" coords="7,81,172,108"><area shape="rect" href="../../d8/d8f/group__environment__information.html" title="Functions to return some information about the execution environment and the MOC-implementation..." alt="" coords="455,157,631,184"></map></td></tr></table></center>
|
||||
</div>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
This chapter discusses routines for getting and, where appropriate, setting various parameters that relate to the MPI implementation and the execution environment (such as error handling, startup&shutdown and Time).
|
||||
<p>
|
||||
|
||||
<p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td></td></tr>
|
||||
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d9a/group__environment__startup.html">Startup & Shutdown</a></td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Functions to start and terminate the MOC-execution environment. <br></td></tr>
|
||||
|
||||
<p>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d8f/group__environment__information.html">Implementation Information</a></td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Functions to return some information about the execution environment and the MOC-implementation. <br></td></tr>
|
||||
|
||||
<p>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da1/group__environment__error.html">Error-Handling</a></td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">This section describes how errors are handled. <br></td></tr>
|
||||
|
||||
<p>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/da6/group__environment__timer.html">Timers and Synchronization</a></td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Functions to measure time. <br></td></tr>
|
||||
|
||||
<p>
|
||||
</table>
|
||||
</div>
|
||||
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:44 2009 for MPI On Cell (Documentation) by
|
||||
<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>
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,74 @@
|
||||
<!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_wait.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 Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>src/noarch/communication/moc_wait.c</h1><a href="../../d4/dfc/moc__wait_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 <<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>></span>
|
||||
<a name="l00002"></a>00002 <span class="preprocessor">#include <<a class="code" href="../../d9/db3/imoc_8h.html">internal/imoc.h</a>></span>
|
||||
<a name="l00003"></a>00003 <span class="preprocessor">#ifdef __SPU__</span>
|
||||
<a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="../../d9/d00/imoc__core__spu_8h.html">internal/spu/imoc_core_spu.h</a>></span>
|
||||
<a name="l00005"></a>00005 <span class="preprocessor">#include <<a class="code" href="../../d4/dce/imoc__dma__spu_8h.html">internal/spu/imoc_dma_spu.h</a>></span>
|
||||
<a name="l00006"></a>00006 <span class="preprocessor">#else</span>
|
||||
<a name="l00007"></a>00007 <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="../../d6/d09/imoc__core__ppu_8h.html">internal/ppu/imoc_core_ppu.h</a>></span>
|
||||
<a name="l00008"></a>00008 <span class="preprocessor">#include <<a class="code" href="../../de/df9/imoc__dma__ppu_8h.html">internal/ppu/imoc_dma_ppu.h</a>></span>
|
||||
<a name="l00009"></a>00009 <span class="preprocessor">#endif</span>
|
||||
<a name="l00010"></a>00010 <span class="preprocessor"></span>
|
||||
<a name="l00011"></a><a class="code" href="../../d7/d62/group__p2p__imm.html#g68043e4a0893fdc25c67f87bae1015a6">00011</a> <span class="keywordtype">int</span> <a class="code" href="../../d7/d62/group__p2p__imm.html#g68043e4a0893fdc25c67f87bae1015a6" title="Wait till a non-blocking communication has been completed.">MOC_Wait</a>(<a class="code" href="../../db/d17/structmoc__request__struct.html" title="Communication-Request (Handle).">MOC_Request</a> *request, <a class="code" href="../../dd/d7a/structMOC__Status__struct.html" title="Structure holding information about a received message.">MOC_Status</a> *status)
|
||||
<a name="l00012"></a>00012 {
|
||||
<a name="l00013"></a>00013 <span class="keywordtype">int</span> err;
|
||||
<a name="l00014"></a>00014 <span class="keywordflow">if</span> (request == 0)
|
||||
<a name="l00015"></a>00015 {
|
||||
<a name="l00016"></a>00016 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g0f3215c59df79197899fc28f7e9499c8" title="Invalid request (handle).">MOC_ERR_REQUEST</a>;
|
||||
<a name="l00017"></a>00017 }
|
||||
<a name="l00018"></a>00018
|
||||
<a name="l00019"></a>00019 <span class="keywordflow">switch</span> (request-><a class="code" href="../../db/d17/structmoc__request__struct.html#56ab14d3df6e8c232e66aec78be949f3">request_type</a>)
|
||||
<a name="l00020"></a>00020 {
|
||||
<a name="l00021"></a>00021 <span class="keywordflow">case</span> <a class="code" href="../../d7/d41/group__internal__p2p__imm.html#gb4f3aa7dbf7ddfbc4a612fda560ec03b" title="MOC_Request is associated with a DMA-Communication.">MOC_REQ_TYPE_DMA</a>:
|
||||
<a name="l00022"></a>00022 <span class="keywordflow">if</span> (0 != (err = <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#g57b89667357146b299f32bd114e0e5ad" title="Waits till a IMOC_iget_data or IMOC_iput_data is completed.">IMOC_wait_dma</a>(&request-><a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#b2b561710b814f4804bce54568b67cfe">dma_data</a>)))
|
||||
<a name="l00023"></a>00023 <span class="keywordflow">return</span> err;
|
||||
<a name="l00024"></a>00024 <span class="keywordflow">if</span> (status != 0)
|
||||
<a name="l00025"></a>00025 {
|
||||
<a name="l00026"></a>00026 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#872c34c85569926730eebe10e47af384" title="message-size in byte (internal-variable)">message_size</a> = request-><a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#b2b561710b814f4804bce54568b67cfe">dma_data</a>.<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html#8322ab9ff0dbd0be788bf765f3e85e94">size</a>;
|
||||
<a name="l00027"></a>00027 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#3d3497f7a93c00e6800da9500e52daf2" title="error-code">MOC_ERROR</a> = 0;
|
||||
<a name="l00028"></a>00028 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#ae670a7f91ed4d4326bfda4f17ee14f0" title="message-tag">MOC_TAG</a> = 0;
|
||||
<a name="l00029"></a>00029 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#1a3fde58aca11d3b901c890916371661" title="message-source">MOC_SOURCE</a> = <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="l00030"></a>00030 }
|
||||
<a name="l00031"></a>00031 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00032"></a>00032 <span class="keywordflow">case</span> <a class="code" href="../../d7/d41/group__internal__p2p__imm.html#g755884e41591a0d838f45b04f3a92ab9" title="MOC_Request is associated with aISsend-Communication.">MOC_REQ_TYPE_ISSEND</a>:
|
||||
<a name="l00033"></a>00033 <span class="keywordflow">if</span> (!request-><a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#47db330291fdf4864201fe106ec53db8">issend_request</a>.<a class="code" href="../../d9/d89/structimoc__issend__request__struct.html#db3150d28936af45c475ec5c9fb65cd8">isFinished</a>)
|
||||
<a name="l00034"></a>00034 {
|
||||
<a name="l00035"></a>00035 <a class="code" href="../../d8/d88/group__internal__p2p__main.html#g8675f9552168f2dd8926cad5ac00be69" title="Wait till message with message-ID mid has been received.">IMOC_waitForMessageCompletion</a>(
|
||||
<a name="l00036"></a>00036 request-><a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#47db330291fdf4864201fe106ec53db8">issend_request</a>.<a class="code" href="../../d9/d89/structimoc__issend__request__struct.html#53cf82f3cdd5ddb731296d3c494d4958">mid</a>);
|
||||
<a name="l00037"></a>00037 <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>[request-><a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#47db330291fdf4864201fe106ec53db8">issend_request</a>.<a class="code" href="../../d9/d89/structimoc__issend__request__struct.html#53cf82f3cdd5ddb731296d3c494d4958">mid</a>].<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#d6c989ccbfc4a74a8c3982a1098c3d78" title="union-value">value</a>
|
||||
<a name="l00038"></a>00038 = 0;
|
||||
<a name="l00039"></a>00039 request-><a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#47db330291fdf4864201fe106ec53db8">issend_request</a>.<a class="code" href="../../d9/d89/structimoc__issend__request__struct.html#db3150d28936af45c475ec5c9fb65cd8">isFinished</a> = 1;
|
||||
<a name="l00040"></a>00040 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#3d3497f7a93c00e6800da9500e52daf2" title="error-code">MOC_ERROR</a> = 0;
|
||||
<a name="l00041"></a>00041 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#1a3fde58aca11d3b901c890916371661" title="message-source">MOC_SOURCE</a> = request-><a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#47db330291fdf4864201fe106ec53db8">issend_request</a>.<a class="code" href="../../d9/d89/structimoc__issend__request__struct.html#2cfe5aa07e2fc69eff15e0e65da4efea">source</a>;
|
||||
<a name="l00042"></a>00042 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#ae670a7f91ed4d4326bfda4f17ee14f0" title="message-tag">MOC_TAG</a> = request-><a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#47db330291fdf4864201fe106ec53db8">issend_request</a>.<a class="code" href="../../d9/d89/structimoc__issend__request__struct.html#526dc209a5b20ff98169e0803812fbb1">tag</a>;
|
||||
<a name="l00043"></a>00043 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#872c34c85569926730eebe10e47af384" title="message-size in byte (internal-variable)">message_size</a>
|
||||
<a name="l00044"></a>00044 = request-><a class="code" href="../../db/d17/structmoc__request__struct.html#4878ce199375f8a411520c887f908a4f">request_data</a>.<a class="code" href="../../db/d17/structmoc__request__struct.html#47db330291fdf4864201fe106ec53db8">issend_request</a>.<a class="code" href="../../d9/d89/structimoc__issend__request__struct.html#942c10dc3d21a8830d7714a4018cd42b">message_size</a>;
|
||||
<a name="l00045"></a>00045 }
|
||||
<a name="l00046"></a>00046 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00047"></a>00047 <span class="keywordflow">default</span>:
|
||||
<a name="l00048"></a>00048 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#g0f3215c59df79197899fc28f7e9499c8" title="Invalid request (handle).">MOC_ERR_REQUEST</a>;
|
||||
<a name="l00049"></a>00049 }
|
||||
<a name="l00050"></a>00050
|
||||
<a name="l00051"></a>00051 }
|
||||
<a name="l00052"></a>00052
|
||||
</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
|
||||
<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/ppu/system/moc_error_string_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 Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data 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_error_string_ppu.c File Reference</h1>
|
||||
<p>
|
||||
<code>#include <stdlib.h></code><br>
|
||||
<code>#include <string.h></code><br>
|
||||
<code>#include <<a class="el" href="../../dc/dcb/spu_2moc_8h-source.html">moc.h</a>></code><br>
|
||||
<code>#include <<a class="el" href="../../d4/d9b/imoc_8h-source.html">internal/imoc.h</a>></code><br>
|
||||
|
||||
<p>
|
||||
<div class="dynheader">
|
||||
Include dependency graph for moc_error_string_ppu.c:</div>
|
||||
<div class="dynsection">
|
||||
<p><center><img src="../../d5/de0/moc__error__string__ppu_8c__incl.png" border="0" usemap="#src/ppu/system/moc_error_string_ppu.c_map" alt=""></center>
|
||||
<map name="src/ppu/system/moc_error_string_ppu.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="../../d3/d68/moc__error__string__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>PPU-only</h2></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d97/group__internal__error.html#g4cc5a2e835e688e15548969e56cbc61e">ERROR_STRINGS_COUNT</a> 28</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </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> </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"> </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 </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"> </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:27 2009 for MPI On Cell (Documentation) by
|
||||
<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,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_issend_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 Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data 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_issend_spu.c File Reference</h1>
|
||||
<p>
|
||||
<code>#include <string.h></code><br>
|
||||
<code>#include <stdio.h></code><br>
|
||||
<code>#include <spu_mfcio.h></code><br>
|
||||
<code>#include <<a class="el" href="../../dc/dcb/spu_2moc_8h-source.html">moc.h</a>></code><br>
|
||||
<code>#include <<a class="el" href="../../d6/d82/moc__datatype__spu_8h-source.html">spu/moc_datatype_spu.h</a>></code><br>
|
||||
<code>#include <<a class="el" href="../../d4/d9b/imoc_8h-source.html">internal/imoc.h</a>></code><br>
|
||||
<code>#include <<a class="el" href="../../d0/d87/imoc__macros_8h-source.html">internal/imoc_macros.h</a>></code><br>
|
||||
<code>#include <<a class="el" href="../../d4/d95/imoc__dma__spu_8h-source.html">internal/spu/imoc_dma_spu.h</a>></code><br>
|
||||
<code>#include <<a class="el" href="../../db/dd9/imoc__core__spu_8h-source.html">internal/spu/imoc_core_spu.h</a>></code><br>
|
||||
|
||||
<p>
|
||||
<div class="dynheader">
|
||||
Include dependency graph for moc_issend_spu.c:</div>
|
||||
<div class="dynsection">
|
||||
<p><center><img src="../../d3/de0/moc__issend__spu_8c__incl.png" border="0" usemap="#src/spu/communication/moc_issend_spu.c_map" alt=""></center>
|
||||
<map name="src/spu/communication/moc_issend_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="../../dd/d37/moc__issend__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 </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d62/group__p2p__imm.html#gc148ff9b9bee69164139425a7df53697">MOC_ISsend</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, <a class="el" href="../../db/d17/structmoc__request__struct.html">MOC_Request</a> *request)</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs a non-blocking synchronous mode send operation. <a href="../../d7/d62/group__p2p__imm.html#gc148ff9b9bee69164139425a7df53697"></a><br></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:33 2009 for MPI On Cell (Documentation) by
|
||||
<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,145 @@
|
||||
<!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): Buffered Communication</title>
|
||||
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<!-- Generated by Doxygen 1.5.6 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="../../main.html"><span>Main Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="../../files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Buffered Communication<br>
|
||||
<small>
|
||||
[<a class="el" href="../../d0/d64/group__p2p__main.html">Point-to-Point Communication</a>]</small>
|
||||
</h1>
|
||||
<p>
|
||||
<div class="dynheader">
|
||||
Collaboration diagram for Buffered Communication:</div>
|
||||
<div class="dynsection">
|
||||
<center><table><tr><td><img src="../../de/d84/group__p2p__buffered.png" border="0" alt="" usemap="#d0/dd5/de_2d84_2group____p2p____buffered_map">
|
||||
<map name="d0/dd5/de_2d84_2group____p2p____buffered_map">
|
||||
<area shape="rect" href="../../d0/d64/group__p2p__main.html" title="Sending and receiving of messages by processes is the basic MPI communication mechanism..." alt="" coords="5,5,200,32"></map></td></tr></table></center>
|
||||
</div>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
Blocking sending of messages with the use of an intermediate buffer.
|
||||
<p>
|
||||
The blocking buffered send-operation returns if the send-buffer can be safely reused (after the data has been copied into the intermediate buffer).
|
||||
<p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td></td></tr>
|
||||
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </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"> </td><td class="mdescRight">Performs a blocking buffered mode send operation. <a href="#g307bf844e1416c7c021e4a3468209d0b"></a><br></td></tr>
|
||||
</table>
|
||||
<hr><h2>Function Documentation</h2>
|
||||
<a class="anchor" name="g307bf844e1416c7c021e4a3468209d0b"></a><!-- doxytag: member="moc.h::MOC_Bsend" ref="g307bf844e1416c7c021e4a3468209d0b" args="(void *buf, int count, MOC_Datatype datatype, int dest, int tag, MOC_Comm comm)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int MOC_Bsend </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void * </td>
|
||||
<td class="paramname"> <em>buf</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </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> </td>
|
||||
<td class="paramname"> <em>datatype</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>dest</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>tag</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767">MOC_Comm</a> </td>
|
||||
<td class="paramname"> <em>comm</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>
|
||||
Performs a blocking buffered mode send operation.
|
||||
<p>
|
||||
<dl class="note" compact><dt><b>Note:</b></dt><dd>This routine blocks until the send-buffer is free.</dd></dl>
|
||||
<dl compact><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td><b>in</b> Pointer to buffer where data is stored </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>count</em> </td><td><b>in</b> Number of elements to be send (not equal to actual byte-value) </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>datatype</em> </td><td><b>in</b> Type of elements to be send </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td><b>in</b> Rank of receiving process </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>tag</em> </td><td><b>in</b> Tag of message </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>comm</em> </td><td><b>in</b> communicator of message </td></tr>
|
||||
</table>
|
||||
</dl>
|
||||
<dl compact><dt><b>Return values:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>MOC_SUCCESS</em> </td><td>No error; MPI routine completed successfully. </td></tr>
|
||||
<tr><td valign="top"></td><td valign="top"><em>...</em> </td><td>error-code </td></tr>
|
||||
</table>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html#l00010">10</a> of file <a class="el" href="../../d2/db6/moc__bsend__ppu_8c-source.html">moc_bsend_ppu.c</a>.</p>
|
||||
|
||||
<p>References <a class="el" href="../../d7/d1f/imoc__buffer__malloc_8c-source.html#l00056">__attribute__()</a>, <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#c0bdc214525521d58f12c72874de0512">moc_message_status_struct::bits</a>, <a class="el" href="../../dd/df5/structmoc__message__status__struct.html#086c0d449d25774d43512b6f7fdab8ed">moc_message_status_struct::flags</a>, <a class="el" href="../../d7/d1f/imoc__buffer__malloc_8c-source.html#l00085">IMOC_bmalloc()</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00019">IMOC_EA_REMOTE_QUEUE</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00034">IMOC_EA_REMOTE_QUEUE_ENTRY</a>, <a class="el" href="../../d1/d2a/imoc__get__free__entry_8c-source.html#l00009">IMOC_getFreeEntry()</a>, <a class="el" href="../../dd/d18/imoc__get__free__mid_8c-source.html#l00009">IMOC_getFreeMID()</a>, <a class="el" href="../../db/db7/imoc__macros__ppu_8h-source.html#l00025">IMOC_LS_REMOTE_QUEUE</a>, <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00108">IMOC_MESSAGE_CHANNEL_DMA</a>, <a class="el" href="../../d6/d2c/imoc__core_8h-source.html#l00116">IMOC_MESSAGE_CHANNEL_ENV</a>, <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#l00135">IMOC_TEST_ALIGNMENT</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00116">IMOC_TEST_BUFFER</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#l00067">IMOC_TEST_COMM_SEND</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00122">IMOC_TEST_PROC_NULL</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00128">IMOC_TEST_PROC_SELF</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00095">IMOC_TEST_RANK</a>, <a class="el" href="../../d0/d87/imoc__macros_8h-source.html#l00081">IMOC_TEST_TAG_SEND</a>, <a class="el" href="../../d4/d9b/imoc_8h-source.html#l00049">MEMCPY_GET_TRESHOLD</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#l00064">MOC_ERR_NO_BUFFER</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#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="../../db/d45/imoc__core__ppu_8h-source.html#l00034">moc_node_handle_ppu_struct::queue_size</a>, and <a class="el" href="../../db/d45/imoc__core__ppu_8h-source.html#l00036">moc_node_handle_ppu_struct::status_array_base</a>.</p>
|
||||
|
||||
<p>Referenced by <a class="el" href="../../d5/d4e/moc__isend_8c-source.html#l00018">MOC_ISend()</a>, and <a class="el" href="../../dd/d4a/moc__send_8c-source.html#l00019">MOC_Send()</a>.</p>
|
||||
|
||||
<p>
|
||||
<div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dynsection">
|
||||
<p><center><img src="../../de/d84/group__p2p__buffered_g307bf844e1416c7c021e4a3468209d0b_cgraph.png" border="0" usemap="#de/d84/group__p2p__buffered_g307bf844e1416c7c021e4a3468209d0b_cgraph_map" alt=""></center>
|
||||
<map name="de/d84/group__p2p__buffered_g307bf844e1416c7c021e4a3468209d0b_cgraph_map">
|
||||
<area shape="rect" href="../../d3/dd3/group__internal__p2p__bmalloc.html#gad8750c7ba3d6da9c137c2c462d2c531" title="void bmalloc_print_nodes() { if (!bmalloc_first_node) printf("No nodes in list\\n");..." alt="" coords="169,5,265,32"><area shape="rect" href="../../d3/dd3/group__internal__p2p__bmalloc.html#g5295b372d853993b2e6cfb6912a0ee41" title="Allocate buffer-space." alt="" coords="164,56,271,83"><area shape="rect" 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..." alt="" coords="149,107,285,133"><area shape="rect" href="../../d8/d88/group__internal__p2p__main.html#g409bdbea503611cf04829413d15830df" title="Get free message-ID." alt="" coords="153,157,281,184"><area shape="rect" href="../../d2/de2/group__internal__p2p__dma.html#gb48c58191a7cf4d3e502d1c7a6c0ab9c" title="Internal wrapper-function for a blocking DMA-put operation." alt="" coords="161,208,273,235"></map>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<div class="dynheader">
|
||||
Here is the caller graph for this function:</div>
|
||||
<div class="dynsection">
|
||||
<p><center><img src="../../de/d84/group__p2p__buffered_g307bf844e1416c7c021e4a3468209d0b_icgraph.png" border="0" usemap="#de/d84/group__p2p__buffered_g307bf844e1416c7c021e4a3468209d0b_icgraph_map" alt=""></center>
|
||||
<map name="de/d84/group__p2p__buffered_g307bf844e1416c7c021e4a3468209d0b_icgraph_map">
|
||||
<area shape="rect" href="../../d7/d62/group__p2p__imm.html#gd88773e68570adfad9f99159c69502af" title="Performs a non-blocking standard mode send operation." alt="" coords="151,5,241,32"><area shape="rect" href="../../d0/d64/group__p2p__main.html#g23e0afbe55bc4c86cb738c3361623a4c" title="Performs a blocking standard mode send operation." alt="" coords="152,56,240,83"><area shape="rect" href="../../db/dc2/group__broadcast.html#gfd25e9a19a1ad4032fdf3703531167d6" title="Broadcasts a message from the process with rank "root" to all other processes..." alt="" coords="325,5,416,32"><area shape="rect" href="../../d2/ded/group__p2p__sendrecv.html#g70885aadac98497e169267e74abee516" title="Execute a blocking send and receive operation." alt="" coords="315,56,427,83"><area shape="rect" href="../../d2/ded/group__p2p__sendrecv.html#g1e5b32eaefd61f863f89778dcbbb70a2" title="Execute a blocking send and receive." alt="" coords="291,107,451,133"></map>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><p>
|
||||
</div>
|
||||
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:50:52 2009 for MPI On Cell (Documentation) by
|
||||
<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>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,5 @@
|
||||
<area shape="rect" href="$d3/dd3/group__internal__p2p__bmalloc.html#gad8750c7ba3d6da9c137c2c462d2c531" title="void bmalloc_print_nodes() { if (!bmalloc_first_node) printf("No nodes in list\\n");..." alt="" coords="169,5,265,32">
|
||||
<area shape="rect" href="$d3/dd3/group__internal__p2p__bmalloc.html#g5295b372d853993b2e6cfb6912a0ee41" title="Allocate buffer-space." alt="" coords="164,56,271,83">
|
||||
<area shape="rect" 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..." alt="" coords="149,107,285,133">
|
||||
<area shape="rect" href="$d8/d88/group__internal__p2p__main.html#g409bdbea503611cf04829413d15830df" title="Get free message-ID." alt="" coords="153,157,281,184">
|
||||
<area shape="rect" href="$d2/de2/group__internal__p2p__dma.html#gb48c58191a7cf4d3e502d1c7a6c0ab9c" title="Internal wrapper-function for a blocking DMA-put operation." alt="" coords="161,208,273,235">
|
||||
@@ -0,0 +1 @@
|
||||
982ceb266004ec02527643c9d5bf5f05
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,5 @@
|
||||
<area shape="rect" href="$d7/d62/group__p2p__imm.html#gd88773e68570adfad9f99159c69502af" title="Performs a non-blocking standard mode send operation." alt="" coords="151,5,241,32">
|
||||
<area shape="rect" href="$d0/d64/group__p2p__main.html#g23e0afbe55bc4c86cb738c3361623a4c" title="Performs a blocking standard mode send operation." alt="" coords="152,56,240,83">
|
||||
<area shape="rect" href="$db/dc2/group__broadcast.html#gfd25e9a19a1ad4032fdf3703531167d6" title="Broadcasts a message from the process with rank "root" to all other processes..." alt="" coords="325,5,416,32">
|
||||
<area shape="rect" href="$d2/ded/group__p2p__sendrecv.html#g70885aadac98497e169267e74abee516" title="Execute a blocking send and receive operation." alt="" coords="315,56,427,83">
|
||||
<area shape="rect" href="$d2/ded/group__p2p__sendrecv.html#g1e5b32eaefd61f863f89778dcbbb70a2" title="Execute a blocking send and receive." alt="" coords="291,107,451,133">
|
||||
@@ -0,0 +1 @@
|
||||
f83d2d4aba5eb4378e78e0d6220b5f50
|
||||
|
After Width: | Height: | Size: 8.5 KiB |
@@ -0,0 +1,91 @@
|
||||
<!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_init_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 Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>src/spu/system/moc_init_spu.c</h1><a href="../../d4/de2/moc__init__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 <stdlib.h></span>
|
||||
<a name="l00002"></a>00002 <span class="preprocessor">#include <string.h></span>
|
||||
<a name="l00003"></a>00003 <span class="preprocessor">#include <malloc_align.h></span>
|
||||
<a name="l00004"></a>00004 <span class="preprocessor">#include <free_align.h></span>
|
||||
<a name="l00005"></a>00005 <span class="preprocessor">#include <stdio.h></span>
|
||||
<a name="l00006"></a>00006 <span class="preprocessor">#include <spu_mfcio.h></span>
|
||||
<a name="l00007"></a>00007
|
||||
<a name="l00008"></a>00008 <span class="preprocessor">#include <<a class="code" href="../../d9/d00/imoc__core__spu_8h.html">internal/spu/imoc_core_spu.h</a>></span>
|
||||
<a name="l00009"></a>00009 <span class="preprocessor">#include <<a class="code" href="../../d9/db3/imoc_8h.html">internal/imoc.h</a>></span>
|
||||
<a name="l00010"></a>00010 <span class="preprocessor">#include <<a class="code" href="../../d0/d3a/spu_2moc_8h.html">spu/moc.h</a>></span>
|
||||
<a name="l00011"></a>00011
|
||||
<a name="l00012"></a><a class="code" href="../../d4/de2/moc__init__spu_8c.html#ee36daffc6d5276cabe2b44afeb35ece">00012</a> <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">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> argp <a class="code" 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;);...">__attribute__</a>((unused)), <span class="keywordtype">int</span> length <a class="code" 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;);...">__attribute__</a>((unused)), <span class="keywordtype">void</span>* buffer <a class="code" 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;);...">__attribute__</a>((unused)) )
|
||||
<a name="l00013"></a>00013 {
|
||||
<a name="l00014"></a>00014 <span class="keywordtype">char</span> temp[24];
|
||||
<a name="l00015"></a>00015 uint32_t tag_id;
|
||||
<a name="l00016"></a>00016 <span class="comment">/* wait till four messages from PPU are received */</span>
|
||||
<a name="l00017"></a>00017 <span class="keywordflow">while</span> (spu_stat_in_mbox() < 4)
|
||||
<a name="l00018"></a>00018 ;
|
||||
<a name="l00019"></a>00019 <span class="comment">/* read messages */</span>
|
||||
<a name="l00020"></a>00020 *((uint32_t*) &temp[0]) = spu_read_in_mbox();
|
||||
<a name="l00021"></a>00021 *((uint32_t*) &temp[4]) = spu_read_in_mbox();
|
||||
<a name="l00022"></a>00022 *((uint32_t*) &temp[8]) = spu_read_in_mbox();
|
||||
<a name="l00023"></a>00023 *((uint32_t*) &temp[12]) = spu_read_in_mbox();
|
||||
<a name="l00024"></a>00024 <span class="comment">/* wait till two messages from PPU are received */</span>
|
||||
<a name="l00025"></a>00025 <span class="keywordflow">while</span> (spu_stat_in_mbox() < 2)
|
||||
<a name="l00026"></a>00026 ;
|
||||
<a name="l00027"></a>00027 <span class="comment">/* read messages */</span>
|
||||
<a name="l00028"></a>00028 *((uint32_t*) &temp[16]) = spu_read_in_mbox();
|
||||
<a name="l00029"></a>00029 *((uint32_t*) &temp[20]) = spu_read_in_mbox();
|
||||
<a name="l00030"></a>00030 <span class="comment">/* create own node-handle and data-structures */</span>
|
||||
<a name="l00031"></a>00031 <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> = temp[0];
|
||||
<a name="l00032"></a>00032 <a class="code" href="../../dd/df8/group__internal__core.html#geed5a271d50368d3cf9a858c4f57c895" title="Information each node knowns about himself and the world.">node_handle</a>.<a class="code" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778" title="number of overall processes">comm_size</a> = temp[1];
|
||||
<a name="l00033"></a>00033 <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> = temp[2];
|
||||
<a name="l00034"></a>00034 <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#90096c2a63d01f0251fdd6c642601f45" title="size of own buffer">buffer_size</a> = *((uint32_t*) &temp[4]);
|
||||
<a name="l00035"></a>00035 <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#ee118aad604058291438923545af37db" title="base-address of own buffer">buffer_base</a> = *((uint64_t*) &temp[8]);
|
||||
<a name="l00036"></a>00036 <a class="code" href="../../dd/df8/group__internal__core.html#geed5a271d50368d3cf9a858c4f57c895" title="Information each node knowns about himself and the world.">node_handle</a>.ls_base = *((uint64_t*) &temp[16]);
|
||||
<a name="l00037"></a>00037 <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#58ca7dd0e2874d0317038dbb0c279b82" title="base-address of own message-queues">message_queue_base</a> = _malloc_align(
|
||||
<a name="l00038"></a>00038 <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>) * (<a class="code" href="../../dd/df8/group__internal__core.html#geed5a271d50368d3cf9a858c4f57c895" title="Information each node knowns about himself and the world.">node_handle</a>.<a class="code" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778" title="number of overall processes">comm_size</a> - 1)
|
||||
<a name="l00039"></a>00039 * <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>, 4);
|
||||
<a name="l00040"></a>00040 <span class="keywordflow">if</span> (<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#58ca7dd0e2874d0317038dbb0c279b82" title="base-address of own message-queues">message_queue_base</a> == 0)
|
||||
<a name="l00041"></a>00041 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#gfd59894aba31d32eeff506d8df838089" title="Insufficient Memory.">MOC_ERR_NO_MEMORY</a>;
|
||||
<a name="l00042"></a>00042 <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> = _malloc_align(<span class="keyword">sizeof</span>(<a class="code" href="../../dd/df5/structmoc__message__status__struct.html" title="Message-status structure.">moc_message_status_t</a>)
|
||||
<a name="l00043"></a>00043 * (<a class="code" href="../../dd/df8/group__internal__core.html#geed5a271d50368d3cf9a858c4f57c895" title="Information each node knowns about himself and the world.">node_handle</a>.<a class="code" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778" title="number of overall processes">comm_size</a> - 1) * <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>, 4);
|
||||
<a name="l00044"></a>00044 <span class="keywordflow">if</span> (<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> == 0)
|
||||
<a name="l00045"></a>00045 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#gfd59894aba31d32eeff506d8df838089" title="Insufficient Memory.">MOC_ERR_NO_MEMORY</a>;
|
||||
<a name="l00046"></a>00046 <span class="comment">/* send memory addresses of message-queue and status-array to PPU */</span>
|
||||
<a name="l00047"></a>00047 spu_write_out_mbox((uint32_t) <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#58ca7dd0e2874d0317038dbb0c279b82" title="base-address of own message-queues">message_queue_base</a>);
|
||||
<a name="l00048"></a>00048 spu_write_out_mbox((uint32_t) <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>);
|
||||
<a name="l00049"></a>00049 <span class="comment">/* allocate space for process-list */</span>
|
||||
<a name="l00050"></a>00050 <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#528d5743c1b49553cc9b812a211afa53" title="list of all other MOC-processes (index is rank of process)">moc_process_list</a> = _malloc_align(<span class="keyword">sizeof</span>(<a class="code" href="../../d0/db8/structmoc__process__struct.html" title="Process-information structure.">moc_process_t</a>)
|
||||
<a name="l00051"></a>00051 * <a class="code" href="../../dd/df8/group__internal__core.html#geed5a271d50368d3cf9a858c4f57c895" title="Information each node knowns about himself and the world.">node_handle</a>.<a class="code" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778" title="number of overall processes">comm_size</a>, 4);
|
||||
<a name="l00052"></a>00052 <span class="keywordflow">if</span> (<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#528d5743c1b49553cc9b812a211afa53" title="list of all other MOC-processes (index is rank of process)">moc_process_list</a> == 0)
|
||||
<a name="l00053"></a>00053 <span class="keywordflow">return</span> <a class="code" href="../../d8/da1/group__environment__error.html#gfd59894aba31d32eeff506d8df838089" title="Insufficient Memory.">MOC_ERR_NO_MEMORY</a>;
|
||||
<a name="l00054"></a>00054 <span class="comment">/* receive memory-address of prozess-list in main-memory from PPU */</span>
|
||||
<a name="l00055"></a>00055 <span class="keywordflow">while</span> (spu_stat_in_mbox() < 2)
|
||||
<a name="l00056"></a>00056 ;
|
||||
<a name="l00057"></a>00057 *((uint32_t*) &temp[0]) = spu_read_in_mbox();
|
||||
<a name="l00058"></a>00058 *((uint32_t*) &temp[4]) = spu_read_in_mbox();
|
||||
<a name="l00059"></a>00059 <span class="comment">/* get process-list from main-memory via DMA */</span>
|
||||
<a name="l00060"></a>00060 <span class="keywordflow">if</span> ((tag_id = mfc_tag_reserve()) == MFC_TAG_INVALID)
|
||||
<a name="l00061"></a>00061 <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="l00062"></a>00062 mfc_get((<span class="keywordtype">void</span>*) <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#528d5743c1b49553cc9b812a211afa53" title="list of all other MOC-processes (index is rank of process)">moc_process_list</a>, *((uint64_t*) &temp[0]),
|
||||
<a name="l00063"></a>00063 <span class="keyword">sizeof</span>(<a class="code" href="../../d0/db8/structmoc__process__struct.html" title="Process-information structure.">moc_process_t</a>) * <a class="code" href="../../dd/df8/group__internal__core.html#geed5a271d50368d3cf9a858c4f57c895" title="Information each node knowns about himself and the world.">node_handle</a>.<a class="code" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778" title="number of overall processes">comm_size</a>, tag_id, 0, 0);
|
||||
<a name="l00064"></a>00064 mfc_write_tag_mask(1 << tag_id);
|
||||
<a name="l00065"></a>00065 mfc_read_tag_status_all();
|
||||
<a name="l00066"></a>00066 mfc_tag_release(tag_id);
|
||||
<a name="l00067"></a>00067 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00068"></a>00068 }
|
||||
<a name="l00069"></a>00069
|
||||
</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
|
||||
<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): Blocking Communication</title>
|
||||
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<!-- Generated by Doxygen 1.5.6 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="../../main.html"><span>Main Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="../../files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Blocking Communication<br>
|
||||
<small>
|
||||
[<a class="el" href="../../d8/d88/group__internal__p2p__main.html">Point-to-Point Communication</a>]</small>
|
||||
</h1>
|
||||
<p>
|
||||
<div class="dynheader">
|
||||
Collaboration diagram for Blocking Communication:</div>
|
||||
<div class="dynsection">
|
||||
<center><table><tr><td><img src="../../de/db4/group__internal__p2p__blocking.png" border="0" alt="" usemap="#da/d41/de_2db4_2group____internal____p2p____blocking_map">
|
||||
<map name="da/d41/de_2db4_2group____internal____p2p____blocking_map">
|
||||
<area shape="rect" href="../../d8/d88/group__internal__p2p__main.html" title="Internals about Point-to-Point Communication." alt="" coords="5,31,200,57"><area shape="rect" href="../../d2/dd7/group__internal__p2p__buffered.html" title="Internals about blocking buffered Communication." alt="" coords="476,5,639,32"><area shape="rect" href="../../d4/d71/group__internal__p2p__synch.html" title="Internals about blocking synchronous Communication." alt="" coords="461,56,653,83"></map></td></tr></table></center>
|
||||
</div>
|
||||
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||
Internals about blocking Point-to-Point Communication.
|
||||
<p>
|
||||
|
||||
<p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td></td></tr>
|
||||
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d71/group__internal__p2p__synch.html">Synchronous Communication</a></td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internals about blocking synchronous Communication. <br></td></tr>
|
||||
|
||||
<p>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/dd7/group__internal__p2p__buffered.html">Buffered Communication</a></td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internals about blocking buffered Communication. <br></td></tr>
|
||||
|
||||
<p>
|
||||
</table>
|
||||
</div>
|
||||
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:51:15 2009 for MPI On Cell (Documentation) by
|
||||
<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>
|
||||
|
After Width: | Height: | Size: 6.4 KiB |
@@ -0,0 +1,113 @@
|
||||
<!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/internal/communication/imoc_get_entry.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 Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>src/noarch/internal/communication/imoc_get_entry.c</h1><a href="../../db/d33/imoc__get__entry_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 <stdio.h></span>
|
||||
<a name="l00002"></a>00002
|
||||
<a name="l00003"></a>00003 <span class="preprocessor">#include <<a class="code" href="../../d0/d3a/spu_2moc_8h.html">moc.h</a>></span>
|
||||
<a name="l00004"></a>00004 <span class="preprocessor">#include <<a class="code" href="../../d9/db3/imoc_8h.html">internal/imoc.h</a>></span>
|
||||
<a name="l00005"></a>00005 <span class="preprocessor">#include <<a class="code" href="../../d2/d42/imoc__macros_8h.html">internal/imoc_macros.h</a>></span>
|
||||
<a name="l00006"></a>00006 <span class="preprocessor">#ifdef __SPU__</span>
|
||||
<a name="l00007"></a>00007 <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="../../d9/d00/imoc__core__spu_8h.html">internal/spu/imoc_core_spu.h</a>></span>
|
||||
<a name="l00008"></a>00008 <span class="preprocessor">#else</span>
|
||||
<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="../../d6/d09/imoc__core__ppu_8h.html">internal/ppu/imoc_core_ppu.h</a>></span>
|
||||
<a name="l00010"></a>00010 <span class="preprocessor">#endif </span>
|
||||
<a name="l00011"></a>00011 <span class="preprocessor"></span>
|
||||
<a name="l00012"></a>00012 <span class="comment">/*method looks for valid entries in the message queue*/</span>
|
||||
<a name="l00013"></a><a class="code" href="../../d8/d88/group__internal__p2p__main.html#g8980da77fa506e9a6d503c8c6eba68e2">00013</a> <a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html" title="Message-envelope structure.">moc_message_envelope_t</a>* <a class="code" href="../../d8/d88/group__internal__p2p__main.html#g8980da77fa506e9a6d503c8c6eba68e2" title="Get the next valid message-envelope from &quot;source&quot; with specified &quot;tag&quot;...">IMOC_get_entry</a>(<span class="keywordtype">int</span> source, <span class="keywordtype">int</span> tag, <a class="code" href="../../d1/dd1/group__comm__mgt.html#g3d2b8a9af65bff5f79d02bda13616767" title="Communicator-Handle.">MOC_Comm</a> comm,
|
||||
<a name="l00014"></a>00014 <span class="keywordtype">int</span> isSpecial, <a class="code" href="../../dd/d7a/structMOC__Status__struct.html" title="Structure holding information about a received message.">MOC_Status</a> *status)
|
||||
<a name="l00015"></a>00015 {
|
||||
<a name="l00016"></a>00016 <a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html" title="Message-envelope structure.">moc_message_envelope_t</a> *startQueue;
|
||||
<a name="l00017"></a>00017 <span class="keywordtype">int</span> count;
|
||||
<a name="l00018"></a>00018
|
||||
<a name="l00019"></a>00019 <span class="comment">/*check if source is ANY_SOURCE*/</span>
|
||||
<a name="l00020"></a>00020 <span class="keywordflow">if</span> (source == <a class="code" href="../../d1/d82/moc_8h.html#deff0c57411502be14ddf5fef3aa6e99" title="Indicates, in a receive, to accept a message from any source.">MOC_ANY_SOURCE</a>)
|
||||
<a name="l00021"></a>00021 {
|
||||
<a name="l00022"></a>00022 <span class="comment">/*set start to base adress of the message queue*/</span>
|
||||
<a name="l00023"></a>00023 startQueue =( <a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html" title="Message-envelope structure.">moc_message_envelope_t</a>*) <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#58ca7dd0e2874d0317038dbb0c279b82" title="base-address of own message-queues">message_queue_base</a>;
|
||||
<a name="l00024"></a>00024 <span class="comment">/*check if tag is ANY_TAG*/</span>
|
||||
<a name="l00025"></a>00025 <span class="keywordflow">if</span>(tag == <a class="code" href="../../d1/d82/moc_8h.html#a6d9dac1d01f8d03aa144056921e04dd" title="Indicates, in a receive, to accept a message with any tag value.">MOC_ANY_TAG</a>)
|
||||
<a name="l00026"></a>00026 {
|
||||
<a name="l00027"></a>00027 <span class="keywordflow">for</span>(count=0;count<(<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="../../dd/df8/group__internal__core.html#geed5a271d50368d3cf9a858c4f57c895" title="Information each node knowns about himself and the world.">node_handle</a>.<a class="code" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778" title="number of overall processes">comm_size</a>-1));count++)
|
||||
<a name="l00028"></a>00028 {
|
||||
<a name="l00029"></a>00029 <span class="comment">/*search for a valid entry*/</span>
|
||||
<a name="l00030"></a>00030 <span class="keywordflow">if</span>(startQueue[count].flags.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.valid && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#84160292a4e38f9f72a2937e8a0205ad" title="Communicator of message.">communicator</a> == comm
|
||||
<a name="l00031"></a>00031 && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.special == isSpecial)
|
||||
<a name="l00032"></a>00032 {
|
||||
<a name="l00033"></a>00033 <span class="comment">/*calculate source*/</span>
|
||||
<a name="l00034"></a>00034 <span class="keywordflow">if</span>(count/(<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="../../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="l00035"></a>00035 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#1a3fde58aca11d3b901c890916371661" title="message-source">MOC_SOURCE</a> = count/(<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>)+1;
|
||||
<a name="l00036"></a>00036 <span class="keywordflow">else</span>
|
||||
<a name="l00037"></a>00037 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#1a3fde58aca11d3b901c890916371661" title="message-source">MOC_SOURCE</a> = count/(<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="l00038"></a>00038 <span class="keywordflow">return</span> &startQueue[count];
|
||||
<a name="l00039"></a>00039 }
|
||||
<a name="l00040"></a>00040 }
|
||||
<a name="l00041"></a>00041 }
|
||||
<a name="l00042"></a>00042 <span class="keywordflow">else</span>
|
||||
<a name="l00043"></a>00043 {
|
||||
<a name="l00044"></a>00044 <span class="keywordflow">for</span>(count=0;count<(<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="../../dd/df8/group__internal__core.html#geed5a271d50368d3cf9a858c4f57c895" title="Information each node knowns about himself and the world.">node_handle</a>.<a class="code" href="../../d8/d93/structmoc__node__handle__ppu__struct.html#3779cc1bda02c45a880389b109173778" title="number of overall processes">comm_size</a>-1));count++)
|
||||
<a name="l00045"></a>00045 {
|
||||
<a name="l00046"></a>00046 <span class="comment">/*search for a valid entry with right tag*/</span>
|
||||
<a name="l00047"></a>00047 <span class="keywordflow">if</span>(startQueue[count].flags.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.valid && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#75502fafc90d03a3b101e5c43c8c1727" title="Message-tag.">tag</a> == tag
|
||||
<a name="l00048"></a>00048 && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#84160292a4e38f9f72a2937e8a0205ad" title="Communicator of message.">communicator</a> == comm
|
||||
<a name="l00049"></a>00049 && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.special == isSpecial)
|
||||
<a name="l00050"></a>00050 {
|
||||
<a name="l00051"></a>00051 <span class="comment">/*calculate source*/</span>
|
||||
<a name="l00052"></a>00052 <span class="keywordflow">if</span>(count/(<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="../../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="l00053"></a>00053 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#1a3fde58aca11d3b901c890916371661" title="message-source">MOC_SOURCE</a> = count/(<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>)+1;
|
||||
<a name="l00054"></a>00054 <span class="keywordflow">else</span>
|
||||
<a name="l00055"></a>00055 status-><a class="code" href="../../dd/d7a/structMOC__Status__struct.html#1a3fde58aca11d3b901c890916371661" title="message-source">MOC_SOURCE</a> = count/(<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="l00056"></a>00056
|
||||
<a name="l00057"></a>00057 <span class="keywordflow">return</span> &startQueue[count];
|
||||
<a name="l00058"></a>00058 }
|
||||
<a name="l00059"></a>00059 }
|
||||
<a name="l00060"></a>00060 }
|
||||
<a name="l00061"></a>00061 }
|
||||
<a name="l00062"></a>00062 <span class="keywordflow">else</span>
|
||||
<a name="l00063"></a>00063 {
|
||||
<a name="l00064"></a>00064 <span class="comment">/*set start to the base adress of the message queue of source process*/</span>
|
||||
<a name="l00065"></a>00065 startQueue = (<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html" title="Message-envelope structure.">moc_message_envelope_t</a>*) <a class="code" href="../../df/ddf/group__internal__am.html#gf7dce8bc9c6659f94b3431225de2e595" title="Effective Base-Address of local queue responsible for node &#39;rank&#39;.">IMOC_LOCAL_QUEUE</a>(source);
|
||||
<a name="l00066"></a>00066 <span class="comment">/*check if tag is ANY_TAG*/</span>
|
||||
<a name="l00067"></a>00067 <span class="keywordflow">if</span>(tag == <a class="code" href="../../d1/d82/moc_8h.html#a6d9dac1d01f8d03aa144056921e04dd" title="Indicates, in a receive, to accept a message with any tag value.">MOC_ANY_TAG</a>)
|
||||
<a name="l00068"></a>00068 {
|
||||
<a name="l00069"></a>00069 <span class="keywordflow">for</span>(count=0;count<<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>;count++)
|
||||
<a name="l00070"></a>00070 {
|
||||
<a name="l00071"></a>00071 <span class="comment">/*search for a valid entry from source*/</span>
|
||||
<a name="l00072"></a>00072 <span class="keywordflow">if</span>(startQueue[count].flags.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.valid && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#84160292a4e38f9f72a2937e8a0205ad" title="Communicator of message.">communicator</a> == comm
|
||||
<a name="l00073"></a>00073 && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.special == isSpecial)
|
||||
<a name="l00074"></a>00074 <span class="keywordflow">return</span> &startQueue[count];
|
||||
<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 {
|
||||
<a name="l00079"></a>00079 <span class="keywordflow">for</span>(count=0;count<<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>;count++)
|
||||
<a name="l00080"></a>00080 {
|
||||
<a name="l00081"></a>00081 <span class="comment">/*search for a valid entry from source with right tag*/</span>
|
||||
<a name="l00082"></a>00082 <span class="keywordflow">if</span>(startQueue[count].flags.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.valid && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#75502fafc90d03a3b101e5c43c8c1727" title="Message-tag.">tag</a> == tag
|
||||
<a name="l00083"></a>00083 && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#84160292a4e38f9f72a2937e8a0205ad" title="Communicator of message.">communicator</a> == comm
|
||||
<a name="l00084"></a>00084 && startQueue[count].<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#38288113f9b7adee1e444850112ff807" title="flag-union">flags</a>.<a class="code" href="../../df/dd4/structmoc__message__envelope__struct.html#5538e79854840d3caf08b90b5409e16b" title="flag-struct">bits</a>.special == isSpecial)
|
||||
<a name="l00085"></a>00085 <span class="keywordflow">return</span> &startQueue[count];
|
||||
<a name="l00086"></a>00086 }
|
||||
<a name="l00087"></a>00087 }
|
||||
<a name="l00088"></a>00088 }
|
||||
<a name="l00089"></a>00089
|
||||
<a name="l00090"></a>00090 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00091"></a>00091 }
|
||||
</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
|
||||
<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,9 @@
|
||||
<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">
|
||||
@@ -0,0 +1 @@
|
||||
64a2193bfba67e5340aa29bd7d6e5649
|
||||
|
After Width: | Height: | Size: 30 KiB |
@@ -0,0 +1,170 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>MPI On Cell (Documentation): include/internal/ppu/imoc_dma_ppu.h Source File</title>
|
||||
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<!-- Generated by Doxygen 1.5.6 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="../../main.html"><span>Main Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>include/internal/ppu/imoc_dma_ppu.h</h1><a href="../../de/df9/imoc__dma__ppu_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef MOC_INTERNAL_DATA_TRANSFER_PPU_H_</span>
|
||||
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define MOC_INTERNAL_DATA_TRANSFER_PPU_H_</span>
|
||||
<a name="l00003"></a>00003 <span class="preprocessor"></span>
|
||||
<a name="l00004"></a>00004
|
||||
<a name="l00005"></a>00005 <span class="preprocessor">#include <stdint.h></span>
|
||||
<a name="l00006"></a>00006
|
||||
<a name="l00007"></a>00007 <span class="preprocessor">#include "../../moc.h"</span>
|
||||
<a name="l00008"></a>00008
|
||||
<a name="l00009"></a>00009
|
||||
<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_p2p_dma</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"> * @name PPU-only</span>
|
||||
<a name="l00017"></a>00017 <span class="comment"> **/</span><span class="comment"></span>
|
||||
<a name="l00018"></a>00018 <span class="comment">//@{</span>
|
||||
<a name="l00019"></a>00019 <span class="comment"></span>
|
||||
<a name="l00020"></a>00020 <span class="comment"></span>
|
||||
<a name="l00021"></a>00021 <span class="comment">/**</span>
|
||||
<a name="l00022"></a>00022 <span class="comment"> * Internal wrapper-function for a blocking DMA-get operation.</span>
|
||||
<a name="l00023"></a>00023 <span class="comment"> * Data can be of any size, constraints of low-level DMA-functions</span>
|
||||
<a name="l00024"></a>00024 <span class="comment"> * are dealt by this function.</span>
|
||||
<a name="l00025"></a>00025 <span class="comment"> * However data-addresses have to be at least 16-byte aligned.</span>
|
||||
<a name="l00026"></a>00026 <span class="comment"> *</span>
|
||||
<a name="l00027"></a>00027 <span class="comment"> * This function actually always reads a multiple of 16 from the source,</span>
|
||||
<a name="l00028"></a>00028 <span class="comment"> * but copies only size bytes of it to target. This means however that up</span>
|
||||
<a name="l00029"></a>00029 <span class="comment"> * to 15 bytes are read from an invalid location. As it is never written to</span>
|
||||
<a name="l00030"></a>00030 <span class="comment"> * them this should always be safe.</span>
|
||||
<a name="l00031"></a>00031 <span class="comment"> *</span>
|
||||
<a name="l00032"></a>00032 <span class="comment"> * On the ppu the system for tag reservation is not present, so a hardcoded tag is used.</span>
|
||||
<a name="l00033"></a>00033 <span class="comment"> * It has also to be noted that the dma calls are actually initiated on the spu by the ppu.</span>
|
||||
<a name="l00034"></a>00034 <span class="comment"> *</span>
|
||||
<a name="l00035"></a>00035 <span class="comment"> * @param target \b in local-address of buffer</span>
|
||||
<a name="l00036"></a>00036 <span class="comment"> * @param source \b in ea-address of data</span>
|
||||
<a name="l00037"></a>00037 <span class="comment"> * @param size \b in size of data in byte</span>
|
||||
<a name="l00038"></a>00038 <span class="comment"> * @param dest \b in id of source spe</span>
|
||||
<a name="l00039"></a>00039 <span class="comment"> * @return 0 when success otherwise error-code</span>
|
||||
<a name="l00040"></a>00040 <span class="comment"> **/</span>
|
||||
<a name="l00041"></a>00041 <span class="keywordtype">int</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#g53d36c567e4c98e5d258a7857096e7ab" title="Internal wrapper-function for a blocking DMA-get operation.">IMOC_get_data</a>(<span class="keywordtype">void</span>* target, uint64_t source, uint32_t size, <span class="keywordtype">int</span> dest);
|
||||
<a name="l00042"></a>00042 <span class="comment"></span>
|
||||
<a name="l00043"></a>00043 <span class="comment">/**</span>
|
||||
<a name="l00044"></a>00044 <span class="comment"> * Internal wrapper-function for a blocking DMA-put operation.</span>
|
||||
<a name="l00045"></a>00045 <span class="comment"> * Data-size should be a multiple of 16 because of low-level constraints, but</span>
|
||||
<a name="l00046"></a>00046 <span class="comment"> * there is no upper limit of transfer-size.</span>
|
||||
<a name="l00047"></a>00047 <span class="comment"> * Data-addresses have to be at least 16-byte aligned.</span>
|
||||
<a name="l00048"></a>00048 <span class="comment"> *</span>
|
||||
<a name="l00049"></a>00049 <span class="comment"> * This function actually always reads a multiple of 16 from the source, and copies</span>
|
||||
<a name="l00050"></a>00050 <span class="comment"> * it to target. This means however that up to 15 bytes are written to and invalid</span>
|
||||
<a name="l00051"></a>00051 <span class="comment"> * location, so if one wants to use it with invalid sizes precautions have to be taken</span>
|
||||
<a name="l00052"></a>00052 <span class="comment"> * in order to make it safe.</span>
|
||||
<a name="l00053"></a>00053 <span class="comment"> *</span>
|
||||
<a name="l00054"></a>00054 <span class="comment"> * On the ppu the system for tag reservation is not present, so a hardcoded tag is used.</span>
|
||||
<a name="l00055"></a>00055 <span class="comment"> * It has also to be noted that the dma calls are actually initiated on the spu by the ppu.</span>
|
||||
<a name="l00056"></a>00056 <span class="comment"> *</span>
|
||||
<a name="l00057"></a>00057 <span class="comment"> * @param source \b in local-address of data</span>
|
||||
<a name="l00058"></a>00058 <span class="comment"> * @param target \b in ea-address of buffer</span>
|
||||
<a name="l00059"></a>00059 <span class="comment"> * @param size \b in size of data in byte</span>
|
||||
<a name="l00060"></a>00060 <span class="comment"> * @param dest \b in id of source spe</span>
|
||||
<a name="l00061"></a>00061 <span class="comment"> * @return 0 when success otherwise error-code</span>
|
||||
<a name="l00062"></a>00062 <span class="comment"> **/</span>
|
||||
<a name="l00063"></a>00063 <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, <span class="keywordtype">int</span> dest);
|
||||
<a name="l00064"></a>00064 <span class="comment"></span>
|
||||
<a name="l00065"></a>00065 <span class="comment">/**</span>
|
||||
<a name="l00066"></a>00066 <span class="comment"> * Internal wrapper-function for a non-blocking DMA-get operation.</span>
|
||||
<a name="l00067"></a>00067 <span class="comment"> * Data can be of any size, constraints of low-level DMA-functions</span>
|
||||
<a name="l00068"></a>00068 <span class="comment"> * are dealt by this function.</span>
|
||||
<a name="l00069"></a>00069 <span class="comment"> * However data-addresses have to be at least 16-byte aligned.</span>
|
||||
<a name="l00070"></a>00070 <span class="comment"> *</span>
|
||||
<a name="l00071"></a>00071 <span class="comment"> * This function actually always reads a multiple of 16 from the source,</span>
|
||||
<a name="l00072"></a>00072 <span class="comment"> * but copies only size bytes of it to target. This means however that up</span>
|
||||
<a name="l00073"></a>00073 <span class="comment"> * to 15 bytes are read from an invalid location. As it is never written to</span>
|
||||
<a name="l00074"></a>00074 <span class="comment"> * them this should always be safe.</span>
|
||||
<a name="l00075"></a>00075 <span class="comment"> *</span>
|
||||
<a name="l00076"></a>00076 <span class="comment"> * On the ppu the system for tag reservation is not present, so a hardcoded tag is used.</span>
|
||||
<a name="l00077"></a>00077 <span class="comment"> * It has also to be noted that the dma calls are actually initiated on the spu by the ppu.</span>
|
||||
<a name="l00078"></a>00078 <span class="comment"> *</span>
|
||||
<a name="l00079"></a>00079 <span class="comment"> * @param target \b in local-address of buffer</span>
|
||||
<a name="l00080"></a>00080 <span class="comment"> * @param source \b in ea-address of data</span>
|
||||
<a name="l00081"></a>00081 <span class="comment"> * @param size \b in size of data in byte</span>
|
||||
<a name="l00082"></a>00082 <span class="comment"> * @param dest \b in id of source spe</span>
|
||||
<a name="l00083"></a>00083 <span class="comment"> * @param request \b out request-handle</span>
|
||||
<a name="l00084"></a>00084 <span class="comment"> * @return 0 when success otherwise error-code</span>
|
||||
<a name="l00085"></a>00085 <span class="comment"> **/</span>
|
||||
<a name="l00086"></a>00086 <span class="keywordtype">int</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#g0c76eeaa08ac299e19dc2758d4142cd9" title="Internal wrapper-function for a non-blocking DMA-get operation.">IMOC_iget_data</a>(<span class="keywordtype">void</span>* target, uint64_t source, uint32_t size, uint32_t dest, <a class="code" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a>* request);
|
||||
<a name="l00087"></a>00087 <span class="comment"></span>
|
||||
<a name="l00088"></a>00088 <span class="comment">/**</span>
|
||||
<a name="l00089"></a>00089 <span class="comment"> * Internal wrapper-function for a non-blocking DMA-put operation.</span>
|
||||
<a name="l00090"></a>00090 <span class="comment"> * Data-size should be a multiple of 16 because of low-level constraints, but</span>
|
||||
<a name="l00091"></a>00091 <span class="comment"> * there is no upper limit of transfer-size.</span>
|
||||
<a name="l00092"></a>00092 <span class="comment"> * Data-addresses have to be at least 16-byte aligned.</span>
|
||||
<a name="l00093"></a>00093 <span class="comment"> *</span>
|
||||
<a name="l00094"></a>00094 <span class="comment"> * This function actually always reads a multiple of 16 from the source, and copies</span>
|
||||
<a name="l00095"></a>00095 <span class="comment"> * it to target. This means however that up to 15 bytes are written to and invalid</span>
|
||||
<a name="l00096"></a>00096 <span class="comment"> * location, so if one wants to use it with invalid sizes precautions have to be taken</span>
|
||||
<a name="l00097"></a>00097 <span class="comment"> * in order to make it safe.</span>
|
||||
<a name="l00098"></a>00098 <span class="comment"> *</span>
|
||||
<a name="l00099"></a>00099 <span class="comment"> * On the ppu the system for tag reservation is not present, so a hardcoded tag is used.</span>
|
||||
<a name="l00100"></a>00100 <span class="comment"> * It has also to be noted that the dma calls are actually initiated on the spu by the ppu.</span>
|
||||
<a name="l00101"></a>00101 <span class="comment"> *</span>
|
||||
<a name="l00102"></a>00102 <span class="comment"> * @param source \b in local-address of data</span>
|
||||
<a name="l00103"></a>00103 <span class="comment"> * @param target \b in ea-address of buffer</span>
|
||||
<a name="l00104"></a>00104 <span class="comment"> * @param size \b in size of data in byte</span>
|
||||
<a name="l00105"></a>00105 <span class="comment"> * @param dest \b in id of source spe</span>
|
||||
<a name="l00106"></a>00106 <span class="comment"> * @param request \b out request-handle</span>
|
||||
<a name="l00107"></a>00107 <span class="comment"> * @return 0 when success otherwise error-code</span>
|
||||
<a name="l00108"></a>00108 <span class="comment"> **/</span>
|
||||
<a name="l00109"></a>00109 <span class="keywordtype">int</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#gc181bb2e3eb058990534c71355af3443" title="Internal wrapper-function for a non-blocking DMA-put operation.">IMOC_iput_data</a>(<span class="keywordtype">void</span>* source, uint64_t target, uint32_t size, uint32_t dest, <a class="code" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a>* request);
|
||||
<a name="l00110"></a>00110 <span class="comment"></span>
|
||||
<a name="l00111"></a>00111 <span class="comment">/**</span>
|
||||
<a name="l00112"></a>00112 <span class="comment"> * Waits till a IMOC_iget_data or IMOC_iput_data is completed.</span>
|
||||
<a name="l00113"></a>00113 <span class="comment"> *</span>
|
||||
<a name="l00114"></a>00114 <span class="comment"> * @param request \b in request-handle</span>
|
||||
<a name="l00115"></a>00115 <span class="comment"> * @return 0 when success otherwise error-code</span>
|
||||
<a name="l00116"></a>00116 <span class="comment"> **/</span>
|
||||
<a name="l00117"></a>00117 <span class="keywordtype">int</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#g57b89667357146b299f32bd114e0e5ad" title="Waits till a IMOC_iget_data or IMOC_iput_data is completed.">IMOC_wait_dma</a>(<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a>* request);
|
||||
<a name="l00118"></a>00118 <span class="comment"></span>
|
||||
<a name="l00119"></a>00119 <span class="comment">/**</span>
|
||||
<a name="l00120"></a>00120 <span class="comment"> * Tests if a IMOC_iget_data or IMOC_iput_data is completed.</span>
|
||||
<a name="l00121"></a>00121 <span class="comment"> *</span>
|
||||
<a name="l00122"></a>00122 <span class="comment"> * @param request \b in request-handle</span>
|
||||
<a name="l00123"></a>00123 <span class="comment"> * @param flag \b out true if operation is completed</span>
|
||||
<a name="l00124"></a>00124 <span class="comment"> * @return 0 when success otherwise error-code</span>
|
||||
<a name="l00125"></a>00125 <span class="comment"> **/</span>
|
||||
<a name="l00126"></a>00126 <span class="keywordtype">int</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#gdc3d91a083a9dc3aa539aee4d56616f0" title="Tests if a IMOC_iget_data or IMOC_iput_data is completed.">IMOC_test_dma</a>(<a class="code" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a>* request, <span class="keywordtype">int</span> *flag);
|
||||
<a name="l00127"></a>00127 <span class="comment"></span>
|
||||
<a name="l00128"></a>00128 <span class="comment">/**</span>
|
||||
<a name="l00129"></a>00129 <span class="comment"> * Reserves a tag on the ppu, for communication with a given spu.</span>
|
||||
<a name="l00130"></a>00130 <span class="comment"> *</span>
|
||||
<a name="l00131"></a>00131 <span class="comment"> * @param speid \b id of spu to communicate with</span>
|
||||
<a name="l00132"></a>00132 <span class="comment"> * @return tag (0-14) when success otherwise error code</span>
|
||||
<a name="l00133"></a>00133 <span class="comment"> **/</span>
|
||||
<a name="l00134"></a>00134 <span class="keywordtype">int</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33" title="Reserves a tag on the ppu, for communication with a given spu.">moc_tag_reserve</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> speid);
|
||||
<a name="l00135"></a>00135 <span class="comment"></span>
|
||||
<a name="l00136"></a>00136 <span class="comment">/**</span>
|
||||
<a name="l00137"></a>00137 <span class="comment"> * Releases a reserved tag.</span>
|
||||
<a name="l00138"></a>00138 <span class="comment"> *</span>
|
||||
<a name="l00139"></a>00139 <span class="comment"> * @param speid \b id of spu for which the tag was reserved</span>
|
||||
<a name="l00140"></a>00140 <span class="comment"> * @param tag \b tag to be released</span>
|
||||
<a name="l00141"></a>00141 <span class="comment"> * @return 0 when success otherwise error-code</span>
|
||||
<a name="l00142"></a>00142 <span class="comment"> **/</span>
|
||||
<a name="l00143"></a>00143 <span class="keywordtype">int</span> <a class="code" href="../../d2/de2/group__internal__p2p__dma.html#gf465203c58c5a8066a7ef3ee91b15cec" title="Releases a reserved tag.">moc_tag_release</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> speid, <span class="keywordtype">int</span> tag);
|
||||
<a name="l00144"></a>00144 <span class="comment"></span>
|
||||
<a name="l00145"></a>00145 <span class="comment">//@}</span>
|
||||
<a name="l00146"></a>00146 <span class="comment"></span><span class="comment">//@}</span>
|
||||
<a name="l00147"></a>00147 <span class="comment"></span><span class="preprocessor">#endif </span><span class="comment">/*MOC_INTERNAL_DATA_TRANSFER_PPU_H_*/</span>
|
||||
<a name="l00148"></a>00148
|
||||
</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
|
||||
<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,12 @@
|
||||
<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">
|
||||
@@ -0,0 +1 @@
|
||||
20109350fb29469ea9a475f2f27089f4
|
||||
|
After Width: | Height: | Size: 93 KiB |
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>MPI On Cell (Documentation): include/internal/ppu/imoc_dma_ppu.h File Reference</title>
|
||||
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<!-- Generated by Doxygen 1.5.6 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="../../main.html"><span>Main Page</span></a></li>
|
||||
<li><a href="../../modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="../../annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>include/internal/ppu/imoc_dma_ppu.h File Reference</h1>
|
||||
<p>
|
||||
<code>#include <stdint.h></code><br>
|
||||
<code>#include "<a class="el" href="../../d7/de1/moc_8h-source.html">../../moc.h</a>"</code><br>
|
||||
|
||||
<p>
|
||||
<div class="dynheader">
|
||||
Include dependency graph for imoc_dma_ppu.h:</div>
|
||||
<div class="dynsection">
|
||||
<p><center><img src="../../dd/db2/imoc__dma__ppu_8h__incl.png" border="0" usemap="#include/internal/ppu/imoc_dma_ppu.h_map" alt=""></center>
|
||||
<map name="include/internal/ppu/imoc_dma_ppu.h_map">
|
||||
<area shape="rect" href="../../d1/d82/moc_8h.html" title="../../moc.h" alt="" coords="139,80,219,107"><area shape="rect" href="../../d5/d94/moc__datatype_8h.html" title="moc_datatype.h" alt="" coords="156,155,271,181"><area shape="rect" href="../../df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="295,155,425,181"></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="../../d8/d32/imoc__dma__ppu_8h__dep__incl.png" border="0" usemap="#include/internal/ppu/imoc_dma_ppu.hdep_map" alt=""></center>
|
||||
<map name="include/internal/ppu/imoc_dma_ppu.hdep_map">
|
||||
<area shape="rect" href="../../d3/dc2/moc__isend_8c.html" title="src/noarch/communication/moc_isend.c" alt="" coords="5,80,256,107"><area shape="rect" href="../../db/d55/moc__send_8c.html" title="src/noarch/communication/moc_send.c" alt="" coords="280,80,528,107"><area shape="rect" href="../../d8/d02/moc__test_8c.html" title="src/noarch/communication/moc_test.c" alt="" coords="552,80,795,107"><area shape="rect" href="../../d4/dfc/moc__wait_8c.html" title="src/noarch/communication/moc_wait.c" alt="" coords="819,80,1061,107"><area shape="rect" href="../../d9/d14/moc__bsend__ppu_8c.html" title="src/ppu/communication/moc_bsend_ppu.c" alt="" coords="1085,80,1352,107"><area shape="rect" href="../../dc/db7/moc__recv__ppu_8c.html" title="src/ppu/communication/moc_recv_ppu.c" alt="" coords="1376,80,1629,107"><area shape="rect" href="../../d2/d00/moc__ssend__ppu_8c.html" title="src/ppu/communication/moc_ssend_ppu.c" alt="" coords="1653,80,1920,107"><area shape="rect" href="../../d7/d58/moc__dma-get__ppu_8c.html" title="src/ppu/dma/moc_dma-get_ppu.c" alt="" coords="1944,80,2160,107"><area shape="rect" href="../../d3/dc6/moc__dma-iget__ppu_8c.html" title="src/ppu/dma/moc_dma-iget_ppu.c" alt="" coords="2184,80,2403,107"><area shape="rect" href="../../d8/d06/moc__dma-iput__ppu_8c.html" title="src/ppu/dma/moc_dma-iput_ppu.c" alt="" coords="2427,80,2645,107"><area shape="rect" href="../../d3/dfa/moc__dma-put__ppu_8c.html" title="src/ppu/dma/moc_dma-put_ppu.c" alt="" coords="2669,80,2885,107"><area shape="rect" href="../../d0/d04/moc__dma-test__ppu_8c.html" title="src/ppu/dma/moc_dma-test_ppu.c" alt="" coords="2909,80,3128,107"><area shape="rect" href="../../d6/de5/moc__dma-wait__ppu_8c.html" title="src/ppu/dma/moc_dma-wait_ppu.c" alt="" coords="3152,80,3371,107"><area shape="rect" href="../../d4/d2d/imoc__dma-get__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma-get_ppu.c" alt="" coords="3395,80,3659,107"><area shape="rect" href="../../d1/da6/imoc__dma-iget__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma-iget_ppu.c" alt="" coords="3683,80,3949,107"><area shape="rect" href="../../df/d10/imoc__dma-iput__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma-iput_ppu.c" alt="" coords="3973,80,4240,107"><area shape="rect" href="../../d3/d8f/imoc__dma-put__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma-put_ppu.c" alt="" coords="4264,80,4528,107"><area shape="rect" href="../../d0/dba/imoc__dma-tags__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma-tags_ppu.c" alt="" coords="4552,80,4824,107"><area shape="rect" href="../../d4/d5b/imoc__dma-test__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma-test_ppu.c" alt="" coords="4848,80,5115,107"><area shape="rect" href="../../df/d8b/imoc__dma-wait__ppu_8c.html" title="src/ppu/internal/dma/imoc_dma-wait_ppu.c" alt="" coords="5139,80,5408,107"></map>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<a href="../../de/de1/imoc__dma__ppu_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td></td></tr>
|
||||
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
|
||||
<tr><td colspan="2"><div class="groupHeader">PPU-only</div></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html#g53d36c567e4c98e5d258a7857096e7ab">IMOC_get_data</a> (void *target, uint64_t source, uint32_t size, int dest)</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal wrapper-function for a blocking DMA-get operation. <a href="../../d2/de2/group__internal__p2p__dma.html#g53d36c567e4c98e5d258a7857096e7ab"></a><br></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html#gb48c58191a7cf4d3e502d1c7a6c0ab9c">IMOC_put_data</a> (void *source, uint64_t target, uint32_t size, int dest)</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal wrapper-function for a blocking DMA-put operation. <a href="../../d2/de2/group__internal__p2p__dma.html#gb48c58191a7cf4d3e502d1c7a6c0ab9c"></a><br></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html#g0c76eeaa08ac299e19dc2758d4142cd9">IMOC_iget_data</a> (void *target, uint64_t source, uint32_t size, uint32_t dest, <a class="el" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a> *request)</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal wrapper-function for a non-blocking DMA-get operation. <a href="../../d2/de2/group__internal__p2p__dma.html#g0c76eeaa08ac299e19dc2758d4142cd9"></a><br></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html#gc181bb2e3eb058990534c71355af3443">IMOC_iput_data</a> (void *source, uint64_t target, uint32_t size, uint32_t dest, <a class="el" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a> *request)</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal wrapper-function for a non-blocking DMA-put operation. <a href="../../d2/de2/group__internal__p2p__dma.html#gc181bb2e3eb058990534c71355af3443"></a><br></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html#g57b89667357146b299f32bd114e0e5ad">IMOC_wait_dma</a> (<a class="el" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a> *request)</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Waits till a IMOC_iget_data or IMOC_iput_data is completed. <a href="../../d2/de2/group__internal__p2p__dma.html#g57b89667357146b299f32bd114e0e5ad"></a><br></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html#gdc3d91a083a9dc3aa539aee4d56616f0">IMOC_test_dma</a> (<a class="el" href="../../d4/da3/structimoc__dma__request__struct.html">imoc_dma_request</a> *request, int *flag)</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Tests if a IMOC_iget_data or IMOC_iput_data is completed. <a href="../../d2/de2/group__internal__p2p__dma.html#gdc3d91a083a9dc3aa539aee4d56616f0"></a><br></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33">moc_tag_reserve</a> (unsigned int speid)</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reserves a tag on the ppu, for communication with a given spu. <a href="../../d2/de2/group__internal__p2p__dma.html#g29d3bf9879af70f97d63e774a5aa4d33"></a><br></td></tr>
|
||||
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/de2/group__internal__p2p__dma.html#gf465203c58c5a8066a7ef3ee91b15cec">moc_tag_release</a> (unsigned int speid, int tag)</td></tr>
|
||||
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Releases a reserved tag. <a href="../../d2/de2/group__internal__p2p__dma.html#gf465203c58c5a8066a7ef3ee91b15cec"></a><br></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:49:53 2009 for MPI On Cell (Documentation) by
|
||||
<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,3 @@
|
||||
<area shape="rect" href="$d0/db8/structmoc__process__struct.html" title="Process-information structure." alt="" coords="236,365,377,509">
|
||||
<area shape="rect" href="$df/dd4/structmoc__message__envelope__struct.html" title="Message-envelope structure." alt="" coords="401,277,604,597">
|
||||
<area shape="rect" href="$dd/df5/structmoc__message__status__struct.html" title="Message-status structure." alt="" coords="815,317,1004,557">
|
||||
@@ -0,0 +1 @@
|
||||
041b270713124795f4bebb4d6b6bd407
|
||||
|
After Width: | Height: | Size: 97 KiB |
@@ -0,0 +1,13 @@
|
||||
<area shape="rect" href="$d0/d3a/spu_2moc_8h.html" title="moc.h" alt="" coords="176,155,232,181">
|
||||
<area shape="rect" href="$d9/db3/imoc_8h.html" title="internal/imoc.h" alt="" coords="732,229,839,256">
|
||||
<area shape="rect" href="$d2/d42/imoc__macros_8h.html" title="internal/imoc_macros.h" alt="" coords="735,80,889,107">
|
||||
<area shape="rect" href="$d6/d09/imoc__core__ppu_8h.html" title="internal/ppu/imoc_core_ppu.h" alt="" coords="519,80,711,107">
|
||||
<area shape="rect" href="$dd/d9c/moc__dma__spu_8h.html" title="moc_dma_spu.h" alt="" coords="49,229,167,256">
|
||||
<area shape="rect" href="$d0/d1d/moc__datatype__spu_8h.html" title="moc_datatype_spu.h" alt="" coords="69,304,211,331">
|
||||
<area shape="rect" href="$d1/d82/moc_8h.html" title="../moc.h" alt="" coords="400,304,469,331">
|
||||
<area shape="rect" href="$d5/d94/moc__datatype_8h.html" title="../moc_datatype.h" alt="" coords="139,379,264,405">
|
||||
<area shape="rect" href="$df/d5c/moc__error__codes_8h.html" title="moc_error_codes.h" alt="" coords="339,379,469,405">
|
||||
<area shape="rect" href="$d7/d3d/imoc__core_8h.html" title="imoc_core.h" alt="" coords="649,304,740,331">
|
||||
<area shape="rect" href="$db/dae/ppu_2moc_8h.html" title="../../ppu/moc.h" alt="" coords="401,155,508,181">
|
||||
<area shape="rect" href="$db/d62/moc__dma__ppu_8h.html" title="moc_dma_ppu.h" alt="" coords="343,229,460,256">
|
||||
<area shape="rect" href="$d8/de2/moc__datatype__ppu_8h.html" title="moc_datatype_ppu.h" alt="" coords="235,304,376,331">
|
||||
@@ -0,0 +1 @@
|
||||
3eb934685841085c980002717eab711e
|
||||
|
After Width: | Height: | Size: 87 KiB |