Initial commit.

This commit is contained in:
2017-10-26 19:57:24 +02:00
commit 9ce8b5485d
1090 changed files with 47036 additions and 0 deletions
+659
View File
@@ -0,0 +1,659 @@
<!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): Datatypes</title>
<link href="../../doxygen.css" rel="stylesheet" type="text/css">
<link href="../../tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="../../main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="../../modules.html"><span>Modules</span></a></li>
<li><a href="../../annotated.html"><span>Data&nbsp;Structures</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Datatypes<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 Datatypes:</div>
<div class="dynsection">
<center><table><tr><td><img src="../../dc/d6e/group__p2p__datatype.png" border="0" alt="" usemap="#dc/d96/dc_2d6e_2group____p2p____datatype_map">
<map name="dc/d96/dc_2d6e_2group____p2p____datatype_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>
Datatypes supported by MOC.
<p>
There are the normal datatypes defined by C (char, short, int, ...) and special vector-datatypes used by the Cell Broadband Engine. For more information see "C/C++ Language Extensions for Cell Broadband Engine Architecture - Version 2.5" chapter 1.1.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>PPU &amp; SPU</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Typedef defining MOC_Datatype. <a href="#gb4e45f15c08578bd3fc97c0cca2a509a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g6462a2cd9ec6c0cb9445760ac396ec72">MOC_BYTE</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)0+0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">MOC_Byte is a special datatype. <a href="#g6462a2cd9ec6c0cb9445760ac396ec72"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g022696d5df791525793150cc3fa1404d">MOC_CHAR</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)0+1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype char. <a href="#g022696d5df791525793150cc3fa1404d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g11c8f43b6a61c5d1fe0950c51b2658d7">MOC_UNSIGNED_CHAR</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)0+2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype unsigned char. <a href="#g11c8f43b6a61c5d1fe0950c51b2658d7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g448c8046fc3be4e6a5937953e660ef23">MOC_SHORT</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)16+0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype short. <a href="#g448c8046fc3be4e6a5937953e660ef23"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g7ff42e830b5855f22684868c215b9678">MOC_UNSIGNED_SHORT</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)16+1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype unsigned short. <a href="#g7ff42e830b5855f22684868c215b9678"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gc928d8f53f09f8405d6de2244b506d61">MOC_INT</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype int. <a href="#gc928d8f53f09f8405d6de2244b506d61"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g367725451f261222bc8035b593c1dd84">MOC_UNSIGNED</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype unsigned int. <a href="#g367725451f261222bc8035b593c1dd84"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g2a011db78a35d63a6927a5713d1d8f63">MOC_LONG_LONG</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype long long. <a href="#g2a011db78a35d63a6927a5713d1d8f63"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#ga99c6a2d2d560a49f7a09cf4ee20f440">MOC_UNSIGNED_LONG_LONG</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype unsigned long long. <a href="#ga99c6a2d2d560a49f7a09cf4ee20f440"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gae9a34cd3ac381b9b7427db7902e06ba">MOC_FLOAT</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype float. <a href="#gae9a34cd3ac381b9b7427db7902e06ba"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g3ea523671eaeaf32160ddc4b447e47fa">MOC_DOUBLE</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+5)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype double. <a href="#g3ea523671eaeaf32160ddc4b447e47fa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g6e4b8858f8baa34cd254610445292e2c">MOC_VEC_UCHAR16</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector unsigned char (vec_uchar16). <a href="#g6e4b8858f8baa34cd254610445292e2c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g15fefb339c331120b7166c45a21e90d5">MOC_VEC_USHORT8</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector unsigned short (vec_ushort8). <a href="#g15fefb339c331120b7166c45a21e90d5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gcca02cda68af06c8d3523ddc1884bbaf">MOC_VEC_UINT4</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector unsigned int (vec_uint4). <a href="#gcca02cda68af06c8d3523ddc1884bbaf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g46f26a2dc0bd937a492890408eb0096a">MOC_VEC_CHAR16</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+4)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector signed char (vec_char16). <a href="#g46f26a2dc0bd937a492890408eb0096a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g7c1826e9569a0413783a3cda94701e5e">MOC_VEC_SHORT8</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+3)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector signed short (vec_short8). <a href="#g7c1826e9569a0413783a3cda94701e5e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g323f5fd7cc11fa35455060816adcdf13">MOC_VEC_INT4</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+5)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector signed int (vec_int4). <a href="#g323f5fd7cc11fa35455060816adcdf13"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g257aaa00d63f4bdbe56428c8687a070a">MOC_VEC_FLOAT4</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+6)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector float (vec_float4). <a href="#g257aaa00d63f4bdbe56428c8687a070a"></a><br></td></tr>
<tr><td colspan="2"><br><h2>PPU-only</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g38cae657eabde06ce8e851cea1239398">MOC_LONG</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype long. <a href="#g38cae657eabde06ce8e851cea1239398"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb57eeb637cbd234015a8411061e77dac">MOC_UNSIGNED_LONG</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+3)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype unsigned long. <a href="#gb57eeb637cbd234015a8411061e77dac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gdc8da17a061cafcea7b90d36154e9e51">MOC_VEC_BCHAR16</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector bool char (vec_bchar16). <a href="#gdc8da17a061cafcea7b90d36154e9e51"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gd63c2823c8de31536a3e7557fb62cb84">MOC_VEC_BSHORT8</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector bool short (vec_bshort8). <a href="#gd63c2823c8de31536a3e7557fb62cb84"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gae8ee669e938fa84641bac5aa2f85976">MOC_VEC_PIXEL8</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector pixel (vec_pixel8). <a href="#gae8ee669e938fa84641bac5aa2f85976"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#ga7577143580aabf3f4bac65352e53993">MOC_VEC_BINT4</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector bool int (vec_bint4). <a href="#ga7577143580aabf3f4bac65352e53993"></a><br></td></tr>
<tr><td colspan="2"><br><h2>SPU-only</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g38cae657eabde06ce8e851cea1239398">MOC_LONG</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype long. <a href="#g38cae657eabde06ce8e851cea1239398"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb57eeb637cbd234015a8411061e77dac">MOC_UNSIGNED_LONG</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+3)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C-Datatype unsigned long. <a href="#gb57eeb637cbd234015a8411061e77dac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g9116c12975ccdf0f323a56828d18fe52">MOC_VEC_ULLONG2</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector unsigned long long (vec_ullong2). <a href="#g9116c12975ccdf0f323a56828d18fe52"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#gdfe53f246c2b4d5e520888c43393ac6f">MOC_VEC_LLONG2</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector signed long long (vec_llong2). <a href="#gdfe53f246c2b4d5e520888c43393ac6f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d6e/group__p2p__datatype.html#g803ad689579f62bebcd84411a684e871">MOC_VEC_DOUBLE2</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cell-specific Datatype vector double (vec_double2). <a href="#g803ad689579f62bebcd84411a684e871"></a><br></td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="g6462a2cd9ec6c0cb9445760ac396ec72"></a><!-- doxytag: member="moc_datatype.h::MOC_BYTE" ref="g6462a2cd9ec6c0cb9445760ac396ec72" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_BYTE&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)0+0) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
MOC_Byte is a special datatype.
<p>
It can match any datatype. It has a size of 1 byte.
</div>
</div><p>
<a class="anchor" name="g022696d5df791525793150cc3fa1404d"></a><!-- doxytag: member="moc_datatype.h::MOC_CHAR" ref="g022696d5df791525793150cc3fa1404d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_CHAR&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)0+1) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype char.
<p>
It has a size of 1 byte.
</div>
</div><p>
<a class="anchor" name="g3ea523671eaeaf32160ddc4b447e47fa"></a><!-- doxytag: member="moc_datatype.h::MOC_DOUBLE" ref="g3ea523671eaeaf32160ddc4b447e47fa" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_DOUBLE&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+5) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype double.
<p>
It has a size of 8 byte.
</div>
</div><p>
<a class="anchor" name="gae9a34cd3ac381b9b7427db7902e06ba"></a><!-- doxytag: member="moc_datatype.h::MOC_FLOAT" ref="gae9a34cd3ac381b9b7427db7902e06ba" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_FLOAT&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+2) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype float.
<p>
It has a size of 4 byte.
</div>
</div><p>
<a class="anchor" name="gc928d8f53f09f8405d6de2244b506d61"></a><!-- doxytag: member="moc_datatype.h::MOC_INT" ref="gc928d8f53f09f8405d6de2244b506d61" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_INT&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+0) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype int.
<p>
It has a size of 4 byte.
</div>
</div><p>
<a class="anchor" name="g38cae657eabde06ce8e851cea1239398"></a><!-- doxytag: member="moc_datatype_spu.h::MOC_LONG" ref="g38cae657eabde06ce8e851cea1239398" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_LONG&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+2) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype long.
<p>
It has a size of 4 byte. <dl class="attention" compact><dt><b>Attention:</b></dt><dd>On the PPU long has a size of 8 byte. So if you are trying to send data of type long from the PPU to a SPU or vice versa there will be an error. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g38cae657eabde06ce8e851cea1239398"></a><!-- doxytag: member="moc_datatype_ppu.h::MOC_LONG" ref="g38cae657eabde06ce8e851cea1239398" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_LONG&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+2) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype long.
<p>
It has a size of 8 byte. <dl class="attention" compact><dt><b>Attention:</b></dt><dd>On the SPU long has a size of 4 byte. So if you are trying to send data of type long from the PPU to a SPU or vice versa there will be an error. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g2a011db78a35d63a6927a5713d1d8f63"></a><!-- doxytag: member="moc_datatype.h::MOC_LONG_LONG" ref="g2a011db78a35d63a6927a5713d1d8f63" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_LONG_LONG&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+0) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype long long.
<p>
It has a size of 8 byte.
</div>
</div><p>
<a class="anchor" name="g448c8046fc3be4e6a5937953e660ef23"></a><!-- doxytag: member="moc_datatype.h::MOC_SHORT" ref="g448c8046fc3be4e6a5937953e660ef23" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_SHORT&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)16+0) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype short.
<p>
It has a size of 2 byte.
</div>
</div><p>
<a class="anchor" name="g367725451f261222bc8035b593c1dd84"></a><!-- doxytag: member="moc_datatype.h::MOC_UNSIGNED" ref="g367725451f261222bc8035b593c1dd84" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_UNSIGNED&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+1) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype unsigned int.
<p>
It has a size of 4 byte.
</div>
</div><p>
<a class="anchor" name="g11c8f43b6a61c5d1fe0950c51b2658d7"></a><!-- doxytag: member="moc_datatype.h::MOC_UNSIGNED_CHAR" ref="g11c8f43b6a61c5d1fe0950c51b2658d7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_UNSIGNED_CHAR&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)0+2) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype unsigned char.
<p>
It has a size of 1 byte.
</div>
</div><p>
<a class="anchor" name="gb57eeb637cbd234015a8411061e77dac"></a><!-- doxytag: member="moc_datatype_spu.h::MOC_UNSIGNED_LONG" ref="gb57eeb637cbd234015a8411061e77dac" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_UNSIGNED_LONG&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)32+3) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype unsigned long.
<p>
It has a size of 4 byte. <dl class="attention" compact><dt><b>Attention:</b></dt><dd>On the SPU unsigned long has a size of 8 byte. So if you are trying to send data of type long from the PPU to a SPU or vice versa there will be an error. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gb57eeb637cbd234015a8411061e77dac"></a><!-- doxytag: member="moc_datatype_ppu.h::MOC_UNSIGNED_LONG" ref="gb57eeb637cbd234015a8411061e77dac" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_UNSIGNED_LONG&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+3) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype unsigned long.
<p>
It has a size of 8 byte. <dl class="attention" compact><dt><b>Attention:</b></dt><dd>On the SPU unsigned long has a size of 4 byte. So if you are trying to send data of type long from the PPU to a SPU or vice versa there will be an error. </dd></dl>
</div>
</div><p>
<a class="anchor" name="ga99c6a2d2d560a49f7a09cf4ee20f440"></a><!-- doxytag: member="moc_datatype.h::MOC_UNSIGNED_LONG_LONG" ref="ga99c6a2d2d560a49f7a09cf4ee20f440" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_UNSIGNED_LONG_LONG&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)64+1) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype unsigned long long.
<p>
It has a size of 8 byte.
</div>
</div><p>
<a class="anchor" name="g7ff42e830b5855f22684868c215b9678"></a><!-- doxytag: member="moc_datatype.h::MOC_UNSIGNED_SHORT" ref="g7ff42e830b5855f22684868c215b9678" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_UNSIGNED_SHORT&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)16+1) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
C-Datatype unsigned short.
<p>
It has a size of 2 byte.
</div>
</div><p>
<a class="anchor" name="gdc8da17a061cafcea7b90d36154e9e51"></a><!-- doxytag: member="moc_datatype_ppu.h::MOC_VEC_BCHAR16" ref="gdc8da17a061cafcea7b90d36154e9e51" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_BCHAR16&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+0) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector bool char (vec_bchar16).
<p>
It has a size of 16 byte. <dl class="note" compact><dt><b>Note:</b></dt><dd>PPU-only. Is mapped to the SPU-Datatype vector unsigned char. </dd></dl>
</div>
</div><p>
<a class="anchor" name="ga7577143580aabf3f4bac65352e53993"></a><!-- doxytag: member="moc_datatype_ppu.h::MOC_VEC_BINT4" ref="ga7577143580aabf3f4bac65352e53993" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_BINT4&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+2) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector bool int (vec_bint4).
<p>
It has a size of 16 byte. <dl class="note" compact><dt><b>Note:</b></dt><dd>PPU-only. Is mapped to the SPU-Datatype vector unsigned int. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd63c2823c8de31536a3e7557fb62cb84"></a><!-- doxytag: member="moc_datatype_ppu.h::MOC_VEC_BSHORT8" ref="gd63c2823c8de31536a3e7557fb62cb84" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_BSHORT8&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+1) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector bool short (vec_bshort8).
<p>
It has a size of 16 byte. <dl class="note" compact><dt><b>Note:</b></dt><dd>PPU-only. Is mapped to the SPU-Datatype vector unsigned short. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g46f26a2dc0bd937a492890408eb0096a"></a><!-- doxytag: member="moc_datatype.h::MOC_VEC_CHAR16" ref="g46f26a2dc0bd937a492890408eb0096a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_CHAR16&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+4) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector signed char (vec_char16).
<p>
It has a size of 16 byte.
</div>
</div><p>
<a class="anchor" name="g803ad689579f62bebcd84411a684e871"></a><!-- doxytag: member="moc_datatype_spu.h::MOC_VEC_DOUBLE2" ref="g803ad689579f62bebcd84411a684e871" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_DOUBLE2&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+2) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector double (vec_double2).
<p>
It has a size of 16 byte. <dl class="note" compact><dt><b>Note:</b></dt><dd>SPU-only. Is mapped to the PPU-Datatype vector bool int. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g257aaa00d63f4bdbe56428c8687a070a"></a><!-- doxytag: member="moc_datatype.h::MOC_VEC_FLOAT4" ref="g257aaa00d63f4bdbe56428c8687a070a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_FLOAT4&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+6) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector float (vec_float4).
<p>
It has a size of 16 byte.
</div>
</div><p>
<a class="anchor" name="g323f5fd7cc11fa35455060816adcdf13"></a><!-- doxytag: member="moc_datatype.h::MOC_VEC_INT4" ref="g323f5fd7cc11fa35455060816adcdf13" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_INT4&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+5) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector signed int (vec_int4).
<p>
It has a size of 16 byte.
</div>
</div><p>
<a class="anchor" name="gdfe53f246c2b4d5e520888c43393ac6f"></a><!-- doxytag: member="moc_datatype_spu.h::MOC_VEC_LLONG2" ref="gdfe53f246c2b4d5e520888c43393ac6f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_LLONG2&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+1) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector signed long long (vec_llong2).
<p>
It has a size of 16 byte. <dl class="note" compact><dt><b>Note:</b></dt><dd>SPU-only. Is mapped to the PPU-Datatype vector bool short. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gae8ee669e938fa84641bac5aa2f85976"></a><!-- doxytag: member="moc_datatype_ppu.h::MOC_VEC_PIXEL8" ref="gae8ee669e938fa84641bac5aa2f85976" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_PIXEL8&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+1) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector pixel (vec_pixel8).
<p>
It has a size of 16 byte. <dl class="note" compact><dt><b>Note:</b></dt><dd>PPU-only. Is mapped to the SPU-Datatype vector unsigned short. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g7c1826e9569a0413783a3cda94701e5e"></a><!-- doxytag: member="moc_datatype.h::MOC_VEC_SHORT8" ref="g7c1826e9569a0413783a3cda94701e5e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_SHORT8&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+3) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector signed short (vec_short8).
<p>
It has a size of 16 byte.
</div>
</div><p>
<a class="anchor" name="g6e4b8858f8baa34cd254610445292e2c"></a><!-- doxytag: member="moc_datatype.h::MOC_VEC_UCHAR16" ref="g6e4b8858f8baa34cd254610445292e2c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_UCHAR16&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+0) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector unsigned char (vec_uchar16).
<p>
It has a size of 16 byte.
</div>
</div><p>
<a class="anchor" name="gcca02cda68af06c8d3523ddc1884bbaf"></a><!-- doxytag: member="moc_datatype.h::MOC_VEC_UINT4" ref="gcca02cda68af06c8d3523ddc1884bbaf" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_UINT4&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+2) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector unsigned int (vec_uint4).
<p>
It has a size of 16 byte.
</div>
</div><p>
<a class="anchor" name="g9116c12975ccdf0f323a56828d18fe52"></a><!-- doxytag: member="moc_datatype_spu.h::MOC_VEC_ULLONG2" ref="g9116c12975ccdf0f323a56828d18fe52" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_ULLONG2&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+0) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector unsigned long long (vec_ullong2).
<p>
It has a size of 16 byte. <dl class="note" compact><dt><b>Note:</b></dt><dd>SPU-only. Is mapped to the PPU-Datatype vector bool char. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g15fefb339c331120b7166c45a21e90d5"></a><!-- doxytag: member="moc_datatype.h::MOC_VEC_USHORT8" ref="g15fefb339c331120b7166c45a21e90d5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MOC_VEC_USHORT8&nbsp;&nbsp;&nbsp;((<a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a>)128+1) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Cell-specific Datatype vector unsigned short (vec_ushort8).
<p>
It has a size of 16 byte.
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gb4e45f15c08578bd3fc97c0cca2a509a"></a><!-- doxytag: member="moc_datatype.h::MOC_Datatype" ref="gb4e45f15c08578bd3fc97c0cca2a509a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint8_t <a class="el" href="../../dc/d6e/group__p2p__datatype.html#gb4e45f15c08578bd3fc97c0cca2a509a">MOC_Datatype</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Typedef defining MOC_Datatype.
<p>
One byte is used to encode the Data-Type. The first four msb hold the size in byte / 2 ( if ((datatype &amp; 0xF0)&gt;&gt;4) == 0 then size = 1 else size = ((datatype &amp; 0xF0)&gt;&gt;4)*2 ) and the four lsb hold an id. The combination of id and size is used to uniquely identify a datatype (or rather a group of datatypes belonging together).
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 13:48:19 2009 for MPI On Cell (Documentation) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="../../doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB